Jingle

by Peter Saint-Andre

2005-12-15

Today we (i.e., the Jabber Software Foundation) released Jingle, a set of XMPP extensions for negotiating peer-to-peer multimedia sessions between Jabber clients. The first session type is Jingle Audio, which will enable voice over IP (VoIP) on the Jabber network. Future session types (still to be defined) will include video, file sharing, app casting, gaming, and who knows what else. Additional specifications are forthcoming that will define how to gateway from Jingle to SIP, H.323, and IAX.

Jingle came about because Joe Hildebrand and I received quite a bit of feedback on TINS, and most of it was not positive. :-) So we holed up in a conference room for a week, explored use cases, and started mapping out a protocol. The result was an early draft for a better way to do multimedia negotiation over XMPP. After I announced this effort on the Standards-JIG discussion list, Scott Ludwig of the Google Talk team contacted me and said Jingle was quite close in spirit and even syntax to their VoIP signalling protocol and would it make sense to merge efforts? That seemed quite sensible to me, so Scott and I got to work on harmonizing the protocols. Joe Beda contributed a lot of great feedback as well, so I added him as a co-author. We've been working in semi-private mode for the last two months or so, and decided it was finally time to go public, resulting in the specs published today.

Folks may wonder why we need Jingle. Why not just use SIP, H.323, IAX, or some other open signalling protocol? Once we realized that TINS was not the answer, we concluded that two approaches were possible:

  1. Tell developers to write dual-headed clients (probably XMPP and SIP).
  2. Write a real XMPP signalling protocol.

Option #1 turns out to be harder than you might think, and we specifically received feedback from a large company that had implemented such a solution that it was not a good solution, and that they wanted something like Option #2. That feedback fueled the fire, so we got busy on the XMPP signalling extensions. The rest, as they say, is history. ;-)

Naturally there is still a lot of work to be done -- these are just version 0.1 specs and we'll work hard to refine them over the next few months (join the conversation). But I think Jingle gives us a strong foundation not just for VoIP but for video, gaming, file sharing, app casting, whiteboarding, and a whole range of other multimedia session types. So stay tuned for more exciting developments...


Peter Saint-Andre > Journal