[Jingle] WebRTC + Jingle - Incomplete SDP

Philipp Hancke fippo at goodadvice.pages.de
Tue Jun 25 09:38:34 UTC 2013


On Tue, 25 Jun 2013, Val?rian Saliou wrote:
> Hello everyone,
> I'm currently developing a JSJaC.js library implementing Jingle+WebRTC, that is called JSJaCJingle.js.
> 
> I tried to follow strictly the Jingle XEPs, which I managed to do until implementing SDP (Session Description Protocol).
> 
> I could get it work fine by using only XMPP for signaling:
> 
>  - Candidates passed as following XEP-0166 and XEP-0176
>  - BUT: with SDP passed as raw in an SDP XML element
> 
> Now, when I want to pass all SDP data not as raw but as Jingle specifies, I cannot find appropriate XML containers for some SDP attributes. XEP-0166 and XEP-0167 don't define all that I need to implement Jingle on the top of WebRTC.

Also take a look at 0293 / 0294 -- chrome isn't happy about omitting the 
PLI stuff for video.

> If I forget about SDP attributes that are not specified in Jingle, and simply get rid of them, Google Chrome returns me a DOM Exception 12 when applying them to RTCSessionDescription().
> 
> 
> Here is the raw SDP data that WebRTC generates from the 2 peers:
> 
>  - Peer 1: http://pastebin.com/Nvs4GLx4
>  - Peer 2: http://pastebin.com/F42BAt5j
> 
> 
> Notice the following elements that are not defined by Jingle:
> 
>  - a=fingerprint

XEP-0320

>  - a=ssrc (not all the msid, mslabel that are linked)

Right. We need to do something about that. Unless we get google to follow 
Emils no-plan :-)
You can omit them if you don't map bundle, which you currently can do 
unless you use turn (and use canary)

>  - m=audio 1 RTP/SAVPF 111 103 104 0 8 107 106 105 13 126 (RTP/SAVPF is not yet defined, as specified in http://xmpp.org/extensions/xep-0167.html#format)

Set the profile to SAVPF when you encounter both rtcp-fb and crypto or 
fingerprint.

> Any advice on how to pass them w/o appending invalid elements to Jingle stanza, that may break compatibility with external (non-JSJaCJingle.js) clients?
> 
> 
> JSJaCJingle.js
> 
>  - You can test the working version of the lib there: https://demo.frenchtouch.pro/valerian.saliou/jsjac-jingle/examples/simple_client.html
>  - The lib is already open-source: https://github.com/valeriansaliou/jsjac-jingle

You can compare the mapping to the one i do in 
https://github.com/ESTOS/strophe.jingle

hth


More information about the Jingle mailing list