[Standards] LAST CALL: XEP-0166 (Jingle)

Dirk Meyer dmeyer at tzi.de
Mon Dec 1 18:53:04 UTC 2008


XMPP Extensions Editor wrote:
> Please consider the following questions during this Last Call and send
> your feedback to the standards at xmpp.org discussion list:

Ok, here are some comments

> 1. Is this specification needed to fill gaps in the XMPP protocol
> stack or to clarify an existing protocol?

I guess we all agree it does.

> 2. Does the specification solve the problem stated in the introduction and requirements?

Yes

> 3. Do you plan to implement this specification in your code? If not,
> why not?

I started with the basics needed for e2e TLS

> 4. Do you have any security concerns related to this specification?

Security is part of the transport or the application based on Jingle. So
no, looks fine by me.

> 5. Is the specification accurate and clearly written?

That may be a problem. When I first look at a XEP I read what problem it
solves and take a quick look at the examples. Jingle is very complicated
when looking at the examples, but the complicated stuff is part of the
application using Jingle. Example 15:

| <iq from='juliet at capulet.com/balcony'
|     id='accept1'
|     to='romeo at montague.net/orchard'
|     type='set'>
|   <jingle xmlns='urn:xmpp:jingle:0'
|           action='session-accept'
|           initiator='romeo at montague.net/orchard'
|           responder='juliet at capulet.com/balcony'
|           sid='a73sjjvkla37jfea'>
|     <content creator='initiator' name='voice'>
|       <description xmlns='urn:xmpp:jingle:apps:rtp:0' media='audio'>
|         <payload-type id='97' name='speex' clockrate='8000'/>
|         <payload-type id='18' name='G729'/>
|       </description>
|       <transport xmlns='urn:xmpp:jingle:transports:ice-udp:0'>
|         <candidate component='1'
|                    foundation='1'
|                    generation='0'
|                    ip='192.0.2.3'
|                    network='1'
|                    port='45664'
|                    priority='1678246398'
|                    protocol='udp'
|                    pwd='asd88fgpdd777uzjYhagZg'
|                    type='srflx'
|                    ufrag='8hhy'/>
|       </transport>
|     </content>
|   </jingle>
| </iq>

Wow, that is a long stanza. But if we look at it closly, description is
part of RTP over Jingle and transport is from ICE. So the real work
Jingle does is

| <iq from='juliet at capulet.com/balcony'
|     id='accept1'
|     to='romeo at montague.net/orchard'
|     type='set'>
|   <jingle xmlns='urn:xmpp:jingle:0'
|           action='session-accept'
|           initiator='romeo at montague.net/orchard'
|           responder='juliet at capulet.com/balcony'
|           sid='a73sjjvkla37jfea'>
|     <content creator='initiator' name='voice'>
|       <application specific code/>
|       <transport xmlns='urn:xmpp:jingle:transports:ice-udp:0'>
|         <transport specific code/>
|       </transport>
|     </content>
|   </jingle>
| </iq>

That example is easier to read, it is focused on what we need for
Jingle: the attributes in <jingle>. I know we should use real-life
examples, but maybe use some from file transfer over Jingle as a simpler
example. Or maybe add color-codes (I know we do not do that ATM): make
the application and transport specific stuff gray so anyone can find
what XEP-0166 is doing.


Dirk

-- 
"Either toss the Windows out of your computer, or toss your computer
out the window!" -- Richard Stallman



More information about the Standards mailing list