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