Tech pages/Jingle

Jump to navigation Jump to search


In essence, Jingle provides a way for XMPP clients to set up, manage, and tear down multimedia sessions. Such sessions can support a wide range of application types (such as voice chat, video chat, and file transfer) and use a wide range of media transport methods (such as TCP, UDP, RTP, or even in-band XMPP itself). The signalling to establish a Jingle session is sent over XMPP, and typically the media is sent directly peer-to-peer or through a media relay. Jingle provides a pluggable framework for both application types and media transports; in the case of voice and video chat, a Jingle negotiation usually results in use of the Real-time Transport Protocol (RTP) as the media transport and thus is compatible with existing multimedia technologies such as the Session Initiation Protocol (SIP). Furthermore, the semantics of Jingle signalling was designed to be consistent with both SIP and the Session Description Protocol (SDP), thus making it straightforward to provide signalling gateways between XMPP networks and SIP networks.


Jingle is defined in a number of specifications:


Note: Many of the following implementations support the older Google Talk protocol and are being upgraded to support Jingle as it is defined in the specifications; contact the project developers for details.



  • libjingle (C/C++)
  • Smack (Java)
  • Telepathy Gabble (C)
  • yjingle (C++)

Call Managers / VoIP Servers

  • Asterisk
  • FreeSWITCH
  • Yate

Discussion Venues

The XMPP Standards Foundation maintains a dedicated email list ( about Jingle, intended as a low-volume venue for discussion of MUC implementation and protocol issues. As with all XSF technology lists, the list is open to all interested individuals.

  • Info page and subscription information
  • Subscribe via email
  • Discussion archives