Sunday, September 27, 2009

Jingle Roundup - Accomplished So Far

XMPP completed 10 years in 2009 achieving dazzling results, which consolidates Jingle ground in terms of the main requirement.
But what Jingle by itself accomplished so far? What lies in Jingle's Reality Horizon? What is the biggest negligence ?

Lets enumerate the accomplishment followed by further explanations why it succeed:

Google Talk is using Jingle from its beginning. Absolute successful decision in scalability and simplicity aspects:
  • There was no better solution for Google Talk Voice Capabilities then using Jingle as it makes use of the already consolidated XMPP Protocol and Transport. Which combined with ICE capabilities (which are indeed more suitable for Jingle than to SIP), allowed Google to have a mass service deployed with optimal reliability, minimal resources and tiny complexity.
  • The easy interoperability with Google Mail was certainly another great example of Jingle consolidation in Google's Real Time Internet Business and Services.
"Imagine deploying in a short period a service for millions of users, with quality and reliability, without P2P support and using a secondary protocol stack/transport also requiring extra set of Servers and Services?
Google knew from the beginning that having SIP Stack running together with an XMPP Stack was indeed an overhead and unpractical for future browser and mobile based applications." - Personal Quote

Nimbuzz started their evolution to Jingle in December 2008, due trivial reasons. As mainly a mobile application, having dual stack clients was completely unpractical:

  • Battery consumption is too high to maintain several opened sockets and threads.
  • Multi Platform Support requires minimalistic solutions in order to keep up to date with Manufactures Releases. Usually several phone models are released every month. Embedding a SIP Stack is way more complex that extending an existing XMPP implementation to support Jingle. Development cycles should be minimized and Jingle proved so far to be the simplest and most efficient way to provide Internet Calling Services.
  • As a mobility enabler service, it is very likely that the Internet connectivity will be a wireless connection(3G, public WIFI Hotspots, etc...). Meaning that packet loss and NAT are almost constants. Using SIP via UDP requires intense KeepAlive and Packet retries is unpractical for bandwidth and battery consumption.
  • Nimbuzz application proved that SIP is interoperable via XMPP Gateway, meaning that legacy integration is doable and can enable Jingle Only Clients to support SIP Registration and Both Ways Calling. This wasn't achieved so far for SIP Server having a Jingle gateway like asterisk. As it only supports one way calling and no registration.

When talking about features build using Jingle, Coccinella has by far the biggest set of it. And as the most successful user of Jingle Extensibility this client has a lot to tell:
  • Communicate with Whiteboard, sketch to explain your words. Collaborate on diagrams. Enter mathematical formulas like on paper. Draw together for fun. You decide how you visually communicate.
  • Communicate with Voice, handsfree communication for people who love multitasking. Discuss while working together in the whiteboard. Make a call while working on a document. It is all possible.
So in summary, what Jingle really accomplished so far?
  • Jingle is a scalable solution with outstanding and graceful support for P2P. Google Talk proved it.
  • Jingle makes much more sense in mobile platform than SIP or legacy protocols. Nimbuzz demonstrated it.
  • Jingle extensibility is not only theory, in practice is much easier to have collaborative multimedia sessions over Jingle than in legacy protocols. Specially due the possibility to have that done via P2P. Coccinella assured it.
  • Simplicity and accuracy, in the sense of implementations. Most Jingle client and services are built with much less complexity than ANY other protocol. All clients proved it.
Current Specifications:
XEP-0166: Jingle


  1. Thanks for the overview! How about posting a follow up abotu what has changed during the last 2 years in comparison to this article? This would give us some overview about the progress. Thanks in advance!