From Surf Wiki (app.surf) — the open knowledge base
Jingle (protocol)
Peer-to-peer communications protocol
Peer-to-peer communications protocol

Jingle is an extension to XMPP (Extensible Messaging and Presence Protocol) which adds peer-to-peer (P2P) session control (signaling) for multimedia interactions such as in Voice over IP (VoIP) or videoconferencing communications. It was designed by Google and the XMPP Standards Foundation. The multimedia streams are delivered using the Real-time Transport Protocol (RTP). If needed, NAT traversal is assisted using Interactive Connectivity Establishment (ICE).
, the Jingle specification is a Stable Standard, meaning: "* Implementations are encouraged and the protocol is appropriate for deployment in production systems, but some changes to the protocol are possible before it becomes a Final Standard.*"
Data Flows
When Client CA is communicating with Client CB in a chat (i.e. one user communicating with another user, on the same of different servers) they client software on both ends uses the Jingle parts of the XMPP specification to establish if they are both Jingle capable. If they can negotiate a way to talk directly, e.g. over RTP (XEP-0167), then they will generally show the user a Telephone or Video icon, enabling them to establish a direct connection to the other client.
Libraries
The libjingle library, used by Google Talk to implement Jingle, has been released to the public under a BSD license. It implements both the current standard protocol and the older, pre-standard version.
Clients supporting Jingle
- Asterisk PBX
- Coccinella
- Conversations (software)
- Dino (software)
- Empathy (using Telepathy framework)
- FreeSWITCH
- Gajim
- Google Talk for Gmail, Android, Windows (defunct 2022)
- iChat for Apple OS X (last release 2012)
- Jitsi (multiplatform support using Java)
- KDE Telepathy (using Telepathy framework)
- Kopete
- Miranda NG (via JGTalk plugin)
- Movim
- Pidgin
- Psi
- QIP Infium
- Yate/YateClient supports Jingle in both client and server mode, audio and file transfer, also call transfer and DTMF. Though not an instant messaging client, RemoteVNC uses Jingle as one of the screen sharing means.
Technical Details and Further Resources
- XMPP Standards Foundation detailed specification.
- XMPP Standards Foundation overview
- libjingle project documentation on GitHub.
- Interactive Connectivity Establishment (ICE) protocol explanation.
- Real-time Transport Protocol (RTP) overview.
Notes
References
References
- (19 September 2018). "XEP". XMPP.
- "Code".
- "Software". XMPP.
- "Coccinella".
- "Questions". Coccinella.
- "XMPP Features".
- "Supported XEPs".
- "Empathy FAQ". Gnome.
- "Gajim 2.0.0".
- "Features". Jitsi.
- "Community". KDE.
- "Kopete". Zugaina.
- "Forums". Miranda IM.
- "Supported XEPs".
- Gal, Viktor. (2025-05-07). "vigsterkr/libjingle".
- Currently supports only older, pre-standard version.
- Doesn't support video chat.
This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.
Ask Mako anything about Jingle (protocol) — get instant answers, deeper analysis, and related topics.
Research with MakoFree with your Surf account
Create a free account to save articles, ask Mako questions, and organize your research.
Sign up freeThis content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.
Report