Incomplete SDP Answer Response from Janus

987 views
Skip to first unread message

Roxxy Rafael

unread,
Jul 16, 2015, 6:43:14 AM7/16/15
to meetech...@googlegroups.com
Hello,

Reading through Janus documentation of API, I managed to create room, joined, and passed SDP offer to Janus. Having android as publisher is working. The web displayed successfully my video and audio stream. But when android becomes the listener, the response SDP answer from Janus is incomplete for Video. Android can stream the audio but cannot the display the video stream. I already tried peer-to-peer connection between android to android and web to android, it is working. Below is the SDP offer I passed to Janus

Note
{local ip value} is the ip of android device
{janus server ip} is the ip of Janus server

OFFER:
v=0
o=- 8586175510130222931 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS ARDAMS
m=audio 49622 RTP/SAVPF 111 103 9 102 0 8 106 105 13 127 126
c=IN IP4 {local ip value}
a=rtcp:35331 IN IP4 {local ip value}
a=candidate:3178462403 1 udp 2122260223 {local ip value} 49622 typ host generation 0
a=candidate:3178462403 2 udp 2122260222 {local ip value} 35331 typ host generation 0
a=candidate:4092624947 1 tcp 1518280447 {local ip value} 45575 typ host tcptype passive generation 0
a=candidate:4092624947 2 tcp 1518280446 {local ip value} 44983 typ host tcptype passive generation 0
a=ice-ufrag:AYw6p5OunkObIOEl
a=ice-pwd:AvtydcwVt+bn+4rqkvob3cnP
a=fingerprint:sha-1 71:3C:88:9A:52:7E:49:62:29:80:0C:11:66:BE:39:04:E5:67:1E:35
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10; useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:127 red/8000
a=rtpmap:126 telephone-event/8000
a=maxptime:60
a=ssrc:1379003294 cname:jOSFNGtKD4lGkAc8
a=ssrc:1379003294 msid:ARDAMS ARDAMSa0
a=ssrc:1379003294 mslabel:ARDAMS
a=ssrc:1379003294 label:ARDAMSa0
m=video 38070 RTP/SAVPF 100 116 117 120 96
c=IN IP4 {local ip value}
a=rtcp:37395 IN IP4 {local ip value}
a=candidate:3178462403 1 udp 2122260223 {local ip value} 38070 typ host generation 0
a=candidate:3178462403 2 udp 2122260222 {local ip value} 37395 typ host generation 0
a=candidate:4092624947 1 tcp 1518280447 {local ip value} 48272 typ host tcptype passive generation 0
a=candidate:4092624947 2 tcp 1518280446 {local ip value} 34374 typ host tcptype passive generation 0
a=ice-ufrag:AYw6p5OunkObIOEl
a=ice-pwd:AvtydcwVt+bn+4rqkvob3cnP
a=fingerprint:sha-1 71:3C:88:9A:52:7E:49:62:29:80:0C:11:66:BE:39:04:E5:67:1E:35
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:4 urn:3gpp:video-orientation
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:120 H264/90000
a=rtcp-fb:120 ccm fir
a=rtcp-fb:120 nack
a=rtcp-fb:120 nack pli
a=rtcp-fb:120 goog-remb
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=ssrc-group:FID 2074330670 1427619031
a=ssrc:2074330670 cname:jOSFNGtKD4lGkAc8
a=ssrc:2074330670 msid:ARDAMS ARDAMSv0frontFacing
a=ssrc:2074330670 mslabel:ARDAMS
a=ssrc:2074330670 label:ARDAMSv0frontFacing
a=ssrc:1427619031 cname:jOSFNGtKD4lGkAc8
a=ssrc:1427619031 msid:ARDAMS ARDAMSv0frontFacing
a=ssrc:1427619031 mslabel:ARDAMS
a=ssrc:1427619031 label:ARDAMSv0frontFacing 

below is the SDP answer response I got from Janus

ANSWER:
v=0
o=- 842506880639 842506880639 IN IP4 127.0.0.1
s=168 asdf
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS janus
m=audio 1 RTP/SAVPF 111
c=IN IP4 {janus server ip}
a=mid:audio
a=sendonly
a=rtcp-mux
a=ice-ufrag:zr5M
a=ice-pwd:3VFlW/q3atDxHbnK4lvbCq
a=ice-options:trickle
a=fingerprint:sha-256 D2:B9:31:8F:DF:24:D8:0E:ED:D2:EF:25:9E:AF:6F:B7:34:BE:53:9C:E6:F3:8F:F2:64:15:FB:E8:7F:53:2D:38
a=setup:active
a=connection:new
a=rtpmap:111 opus/48000/2
a=ssrc:778233885 cname:janusaudio
a=ssrc:778233885 msid:janus janusa0
a=ssrc:778233885 mslabel:janus
a=ssrc:778233885 label:janusa0
a=candidate:1 1 udp 2013266431 {janus server ip} 36134 typ host
m=video 0 RTP/SAVPF 0
c=IN IP4 {janus server ip}

This seems to be the issue why the android as listener could not display the video stream but has audio stream only.


Lorenzo Miniero

unread,
Jul 16, 2015, 6:51:54 AM7/16/15
to meetech...@googlegroups.com, roxx...@gmail.com
Not sure what you're trying to do or what plugin you're involving. If you mean the videoroom plugin, listeners wait for an offer from Janus, don't send one themselves.

L.

Roxxy Rafael

unread,
Jul 16, 2015, 7:02:12 AM7/16/15
to meetech...@googlegroups.com, roxx...@gmail.com
Yes I'm using the Janus video room plugin API. What do you mean by "don't send one themselves"? I passed the sdp offer created from ligjingle to Janus API with this format.

{"body":{"request":"start","ptype":"listener","audioSend":true,"audioRecv":true,"audio":true,"video":true,"videoRecv":true,"videoSend":true},"jsep":{"sdp":"my sdp offer value","type":"offer"},"handle_id":961249108,"session_id":2477612243,"janus":"message","transaction":"android-janus-vidchat"}

but the SDP answer (which I posted in this topic) from Janus response seems incomplete for Video where ice parameters, ice candidates, dtls parameters, codec parameters, ssrc parameters are missing.

Lorenzo Miniero

unread,
Jul 16, 2015, 7:06:01 AM7/16/15
to meetech...@googlegroups.com, roxx...@gmail.com
As I said, when you set up a listener you don't send an offer, you wait for the videoroom plugin to send you one, as listeners are constrained to what publishers offered in the first place. You send a join as a listener with no SDP, Janus sends you the offer, you send an answer in a start message later on. Check the videoroom web demo messaging exchange for a listener for more details.

L.

Roxxy Rafael

unread,
Jul 16, 2015, 10:58:39 AM7/16/15
to meetech...@googlegroups.com, roxx...@gmail.com
I corrected the it now and was able to received offer from Janus and passed the sdp answer I generated to Janus API. But android did not received any stream from web as publisher. Is it possible this is cause by codec? Thank you.

Here's the SDP logs I got from Janus
http://pastebin.com/RHf8kxU9

Roxxy Rafael

unread,
Jul 24, 2015, 4:02:55 AM7/24/15
to meetecho-janus, roxx...@gmail.com
It seems that the ice-candidates sent along the SDP in jsep is not added to ice-candidates used by janus. I called janus "trickle" to send the ice-candidates of android to Janus and it now works. Android can now send stream as publisher as well as receive stream as listener. Thank you!

Lorenzo Miniero

unread,
Jul 24, 2015, 4:05:36 AM7/24/15
to meetecho-janus, roxx...@gmail.com, roxx...@gmail.com
Cool, thanks for keeping us posted!

L.
Reply all
Reply to author
Forward
0 new messages