[Jingle] WebRTC + Jingle - Incomplete SDP

Valérian Saliou valerian at jappix.com
Tue Jun 25 09:52:45 UTC 2013


On Jun 25, 2013, at 11:38 AM, Philipp Hancke <fippo at goodadvice.pages.de> wrote:

Thanks for your quick reply, Philipp ;)

> 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.

I had a look, sounds good. But isn't it an issue that those 2 XEPs have been deferred? Any XEPs that replace them or do we need to use those 2 deferred ones?

> 
>> 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

Thanks, this one looks good, going to integrate it.

> 
>>  - 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)

No I don't map bundle anymore, and I don't use TURN. That's good!

> 
>>  - 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.

Gotcha.

> 
>> 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

Thanks a lot, I see that you previously got on the same way I am currently :)

I got inspired from: https://github.com/mweibel/strophejs-plugins/tree/jingle/jingle which is incomplete and using deprecated WebRTC APIs. Thanks for yours.

> 
> hth

Cheers,

-- 

Valérian Saliou

Jappix & FrenchTouch Web Agency founder.
Uno IM product lead.

More about me on my personal page.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.jabber.org/pipermail/jingle/attachments/20130625/37e8fbaa/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4185 bytes
Desc: not available
URL: <http://mail.jabber.org/pipermail/jingle/attachments/20130625/37e8fbaa/attachment-0001.bin>


More information about the Jingle mailing list