2 Dec 2008 dgh   » (Journeyer)

Multi-User Jingle

Update Since I posted this, we discovered that our first choice of name, Mingle, has some trademark problems. For the time being, we're going to call it Multi-User Jingle.

When I joined Collabora in 2006, I was quickly thrown into the deep end when I was assigned to work on extending Jingle, the then-nascent VoIP protocol for Jabber, to support video. That work came to fruition on the Nokia N800, and the protocol we developed is incorporated into the latest Jingle drafts (which incidentally are now in Last Call).

This year, we wanted to try to take Jingle further by extending it to support more than two participants, and a grant from the NLnet Foundation made it possible for Sjoerd and I to spend time on it. I'm now happy to announce that we have a working implementation of the beast we've dubbed Mingle Multi-User Jingle. There is still much that remains to be done, but we think that the basic design is finished.

MUJ client screenshot

Our initial implementation builds heavily on work done by others. Wim's RTP session manager for GStreamer gives us clock syncing and RTCP support. Olivier's Farsight 2 work gives us multiparty-capable codec discovery and autoplugging. Youness's work on libnice gives us robust NAT traversal using ICE.

Future protocol work includes support for multicast transport, media mixers and relays, and of course ironing out all the corner cases that will inevitably turn up. Our ultimate goals are to standardise the protocol through the XEP process and to make it possible to use it with Empathy.

We've submitted a draft XEP to the XMPP editor, and kicked off some discussion on the Jingle mailing list. Our wiki page describes how to get our client working. This currently isn't as easy as we'd like due to the dependency on recent versions of various components, but should become easier with time.

Syndicated 2008-12-02 19:00:32 (Updated 2009-01-21 20:37:57) from Dafydd

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!