[jitsi-dev] iOS webrtc


#1

Hello,

I am trying to translate the sdp i get for local side to my jingle session-accept. The examples of how to convert in java are almost useless because they rely on supporting classes
that i cant find source for.

the sdp is the same every time with the exception of the lines marked with ***. i plan on manually converting this and just parsing and substituting the lines that have session dependent values so i can
get to a testing point quickly, eventually i would like to make a general purpose converter.

This is what i get for local sdp. What i noticed is there are no 'candiate' lines. is this correct? does this look like a valid SDP?

i know many lines are just going to be discarded, I believe the bold lines are not directly translated. This would create two content sections one for audio, one for video.
Is this a valid approach and do you have any tips on how to get this done as quickly as possible. i am about out of time to get this to establish a working video session.

v, o, s, t, a=groupe,a=msid
2014-11-11 11:34:57.187 AppRTCDemo[274:14556] *** did CREATE REMOTE session descripton sdp is

  v=0
*** o=- 4780210750428160133 2 IN IP4 127.0.0.1
  s=-
  t=0 0
  a=group:BUNDLE audio video
  a=msid-semantic: WMS ARDAMS

  m=audio 1 111 103 0 8 106 105 13 126
  c=IN IP4 0.0.0.0
  a=rtcp:1 IN IP4 0.0.0.0
*** a=ice-ufrag:nA+ZQQ7gBhJKhFiR
*** a=ice-pwd:O4juWauisg09xFhcLEdx9UYs
*** a=fingerprint:sha-1 5D:0D:EA:28:45:0C:C3:50:14:83:91:1D:6D:82:9F:0E:9F:90:BC:99
  a=setup:active
  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
  a=rtpmap:103 ISAC/16000
  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:126 telephone-event/8000
  a=maxptime:60
*** a=ssrc:4203279907 cname:ahXm7lKzi9Pj3LW/
*** a=ssrc:4203279907 msid:ARDAMS ARDAMSa0
*** a=ssrc:4203279907 mslabel:ARDAMS
*** a=ssrc:4203279907 label:ARDAMSa0

  m=video 1 100 116 117
  c=IN IP4 0.0.0.0
  a=rtcp:1 IN IP4 0.0.0.0
*** a=ice-ufrag:nA+ZQQ7gBhJKhFiR
*** a=ice-pwd:O4juWauisg09xFhcLEdx9UYs
*** a=fingerprint:sha-1 5D:0D:EA:28:45:0C:C3:50:14:83:91:1D:6D:82:9F:0E:9F:90:BC:99
  a=setup:active
  a=mid:video
  a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
  a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
  a=sendrecv
  a=rtcp-mux
  a=rtpmap:100 VP8/90000
  a=rtpmap:116 red/90000
  a=rtpmap:117 ulpfec/90000
*** a=ssrc:2551012855 cname:ahXm7lKzi9Pj3LW/
*** a=ssrc:2551012855 msid:ARDAMS ARDAMSv0
*** a=ssrc:2551012855 mslabel:ARDAMS
*** a=ssrc:2551012855 label:ARDAMSv0

Peter Mycue
pmycue@us.ibm.com
pmycue@gmail.com
704-626-9772


#2

Here's another implementation, not exactly easy to read but it might help:
https://github.com/jitsi/jitsi-meet/blob/master/libs/strophe/strophe.jingle.sdp.js#L197

You can grab a session-accept sent from Jitsi Meet (it's printed in the console), and it should be easy to see where the stuff goes. It's quite similar to the session-initiate.

Regards,
Boris

···

On 11/11/14 20:35, Peter Mycue wrote:

Hello,

I am trying to translate the sdp i get for local side to my jingle
session-accept. The examples of how to convert in java are almost
useless because they rely on supporting classes
that i cant find source for.


#3

Boris,

Thank but i can not seem to get my chrome browsers to connect today. something is not right, of course i have not changed anything either.

Could you possibly send me a session-accept that i can use as a reference?

and maybe you know why this is going haywire, it worked fine - i have not needed to try chrome to chrome within my mac in a while.

-Peter

Using Chrome extension for desktop sharing desktopsharing.js?v=1:57
Chrome versionmozilla/5.0 (macintosh; intel mac os x 10_9_5) applewebkit/537.36 (khtml, like gecko) chrome/38.0.2125.111 safari/537.36 38 desktopsharing.js?v=1:35
init app.js?v=26:1082
This appears to be Chrome strophe.jingle.adapter.js?v=1:478
status 1 app.js?v=26:81
connected app.js?v=26:68
3onUserMediaSuccess strophe.jingle.adapter.js?v=1:611
hover in blob:https%3A//ibm903-r87y4km%3A7443/5f221ec3-4128-4358-82ae-116a248544a9 app.js?v=26:706
getroomnode /jitsi/apps/jitmeet/ config.js:7
entered myroom@conference.ibm903-r87y4km/fbb0303d Object {show: "", status: "", affiliation: "owner", role: "moderator", displayName: null} app.js?v=26:553
true app.js?v=26:554
presence change from myroom@conference.ibm903-r87y4km/fbb0303d muc.js?v=10:122
presence change from myroom@conference.ibm903-r87y4km/47985ead muc.js?v=10:122
presence change from myroom@conference.ibm903-r87y4km/fbb0303d muc.js?v=10:122
on jingle session-initiate from myroom@conference.ibm903-r87y4km/fbb0303d <iq xmlns=​"jabber:​client" to=​"47985ead@ibm903-r87y4km/​47985ead" type=​"set" id=​"10:​sendIQ" from=​"myroom@conference.ibm903-r87y4km/​fbb0303d">​<jingle xmlns=​"urn:​xmpp:​jingle:​1" action=​"session-initiate" initiator=​"fbb0303d@ibm903-r87y4km/​fbb0303d" sid=​"27fflh4hzyec">​…​</jingle>​</iq>​ strophe.jingle.js?v=1:48
emuc data for myroom@conference.ibm903-r87y4km/fbb0303d Object {show: "", status: "", affiliation: "owner", role: "moderator", displayName: null} app.js?v=26:462
2associated jid myroom@conference.ibm903-r87y4km/fbb0303d undefined app.js?v=26:257
new ssrcs Object {audio: "1858206376", video: "3729830157"} app.js?v=26:507
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:1599172431 1 udp 2122194687 9.2.219.51 53139 typ host generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:1599172431 2 udp 2122194686 9.2.219.51 62468 typ host generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:1599172431 1 udp 2122194687 9.2.219.51 65526 typ host generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:1599172431 2 udp 2122194686 9.2.219.51 50621 typ host generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:299013055 1 tcp 1518214911 9.2.219.51 0 typ host tcptype active generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:299013055 2 tcp 1518214910 9.2.219.51 0 typ host tcptype active generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:299013055 1 tcp 1518214911 9.2.219.51 0 typ host tcptype active generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
parseCandidate called with a line that is not a candidate line strophe.jingle.sdp.util.js?v=1:273
candidate:299013055 2 tcp 1518214910 9.2.219.51 0 typ host tcptype active generation 0 strophe.jingle.sdp.util.js?v=1:274
failed to get ice && jcand strophe.jingle.session.js?v=1:199
presence change from myroom@conference.ibm903-r87y4km/47985ead muc.js?v=10:122
Have we encountered any srflx candidates? false strophe.jingle.session.js?v=1:259
Have we encountered any relay candidates? false strophe.jingle.session.js?v=1:260
Peter Mycue
pmycue@us.ibm.com
pmycue@gmail.com
704-626-9772

···

On Nov 11, 2014, at 1:56 PM, Boris Grozev <boris@jitsi.org> wrote:

On 11/11/14 20:35, Peter Mycue wrote:

Hello,

I am trying to translate the sdp i get for local side to my jingle
session-accept. The examples of how to convert in java are almost
useless because they rely on supporting classes
that i cant find source for.

Here's another implementation, not exactly easy to read but it might help:
https://github.com/jitsi/jitsi-meet/blob/master/libs/strophe/strophe.jingle.sdp.js#L197

You can grab a session-accept sent from Jitsi Meet (it's printed in the console), and it should be easy to see where the stuff goes. It's quite similar to the session-initiate.

Regards,
Boris

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev


#4

<jingle xmlns="urn:xmpp:jingle:1" action="session-accept" initiator="briskbirdsjinxremorsefully@conference.boris.jitsi.net/19f06812" responder="b5ae7d96-b552-4026-b7de-85b476f89d6c@boris.jitsi.net/55d151a9-cfd0-44c6-988f-fec27912844e" sid="2bblk39wqcn8">
   <content name="audio" creator="responder" senders="both">
     <description xmlns="urn:xmpp:jingle:apps:rtp:1" ssrc="1644202480" media="audio">
       <payload-type name="opus" clockrate="48000" id="111" channels="2">
         <parameter value="10" name="minptime" />
       </payload-type>
       <payload-type name="ISAC" clockrate="16000" id="103" channels="1" />
       <payload-type name="ISAC" clockrate="32000" id="104" channels="1" />
       <payload-type name="PCMU" clockrate="8000" id="0" channels="1" />
       <payload-type name="PCMA" clockrate="8000" id="8" channels="1" />
       <payload-type name="CN" clockrate="32000" id="106" channels="1" />
       <payload-type name="CN" clockrate="16000" id="105" channels="1" />
       <payload-type name="CN" clockrate="8000" id="13" channels="1" />
       <payload-type name="telephone-event" clockrate="8000" id="126" channels="1" />
       <source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="1644202480">
         <parameter value="VuLWu8zUzVZ3snC3" name="cname" />
         <parameter value="f110a432-72ff-428f-ba02-303d07225f3c 2eb6de94-de88-4ea4-8584-f5f28d7d09e1" name="msid" />
         <parameter value="f110a432-72ff-428f-ba02-303d07225f3c" name="mslabel" />
         <parameter value="2eb6de94-de88-4ea4-8584-f5f28d7d09e1" name="label" />
       </source>
       <ssrc xmlns="http://estos.de/ns/ssrc" msid="f110a432-72ff-428f-ba02-303d07225f3c 2eb6de94-de88-4ea4-8584-f5f28d7d09e1" ssrc="1644202480" label="2eb6de94-de88-4ea4-8584-f5f28d7d09e1" cname="VuLWu8zUzVZ3snC3" mslabel="f110a432-72ff-428f-ba02-303d07225f3c" />
       <rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" id="1" uri="urn:ietf:params:rtp-hdrext:ssrc-audio-level" />
     </description>
     <transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" ufrag="OOEAeb1NIuoQfwm+" pwd="HaHNhbE3UDw3nmRUVWZkm8lN">
       <fingerprint xmlns="urn:xmpp:jingle:apps:dtls:0" hash="sha-256" setup="active">B2:AA:62:77:E0:9E:18:5B:18:F7:4F:E5:28:EA:A8:DF:78:98:E4:73:19:BC:37:72:24:3F:ED:BD:A0:52:8C:54</fingerprint>
     </transport>
   </content>
   <content name="video" creator="responder" senders="both">
     <description xmlns="urn:xmpp:jingle:apps:rtp:1" ssrc="3475562653" media="video">
       <payload-type name="VP8" clockrate="90000" id="100" channels="1">
         <rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="ccm" subtype="fir" />
         <rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="nack" />
         <rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="goog-remb" />
       </payload-type>
       <payload-type name="red" clockrate="90000" id="116" channels="1" />
       <payload-type name="ulpfec" clockrate="90000" id="117" channels="1" />
       <source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="3475562653">
         <parameter value="oN3NYD/dxCd+isJh" name="cname" />
         <parameter value="8bfdd465-0336-4d2e-9aaf-14b08a85c64a 445790ed-438f-442a-870d-c9287636e99d" name="msid" />
         <parameter value="8bfdd465-0336-4d2e-9aaf-14b08a85c64a" name="mslabel" />
         <parameter value="445790ed-438f-442a-870d-c9287636e99d" name="label" />
       </source>
       <ssrc xmlns="http://estos.de/ns/ssrc" msid="8bfdd465-0336-4d2e-9aaf-14b08a85c64a 445790ed-438f-442a-870d-c9287636e99d" ssrc="3475562653" label="445790ed-438f-442a-870d-c9287636e99d" cname="oN3NYD/dxCd+isJh" mslabel="8bfdd465-0336-4d2e-9aaf-14b08a85c64a" />
       <rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" id="2" uri="urn:ietf:params:rtp-hdrext:toffset" />
       <rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" id="3" uri="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" />
     </description>
     <transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" ufrag="1//bZ7ptNqWmo+6G" pwd="C0eISmb55wOf88op8M+ZU1HU">
       <fingerprint xmlns="urn:xmpp:jingle:apps:dtls:0" hash="sha-256" setup="active">B2:AA:62:77:E0:9E:18:5B:18:F7:4F:E5:28:EA:A8:DF:78:98:E4:73:19:BC:37:72:24:3F:ED:BD:A0:52:8C:54</fingerprint>
     </transport>
   </content>
   <content creator="responder" name="data">
     <transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" ufrag="i1KGpzzSxtxFeUC5" pwd="VCWVdgK29v8ORBvk8KpyiTtl">
       <sctpmap xmlns="urn:xmpp:jingle:transports:dtls-sctp:1" number="5000" streams="1024" protocol="webrtc-datachannel" />
       <fingerprint xmlns="urn:xmpp:jingle:apps:dtls:0" hash="sha-256" setup="active">B2:AA:62:77:E0:9E:18:5B:18:F7:4F:E5:28:EA:A8:DF:78:98:E4:73:19:BC:37:72:24:3F:ED:BD:A0:52:8C:54</fingerprint>
     </transport>
   </content>
</jingle>

···

On 11/11/14 21:47, Peter Mycue wrote:

Boris,

Thank but i can not seem to get my chrome browsers to connect today.
something is not right, of course i have not changed anything either.

Could you possibly send me a session-accept that i can use as a reference?