Jingle (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 proposed Jingle specification had not yet been approved by the XMPP Standards Foundation, but is now a Draft 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."

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
Though not an instant messaging client, RemoteVNC uses Jingle as one of the screen sharing means.
 * Asterisk PBX
 * Coccinella
 * Conversations (software)
 * Empathy (using Telepathy framework)
 * FreeSWITCH
 * Gajim
 * Google Talk for Gmail, Android, Windows
 * iChat for Apple OS X
 * Jitsi (multiplatform support using Java)
 * KDE Telepathy (using Telepathy framework)
 * Kopete
 * Miranda NG (via JGTalk plugin)
 * Monal IM-Client for iOS
 * Pidgin
 * Psi
 * QIP Infium
 * Yate/YateClient supports Jingle in both client and server mode, audio and file transfer, also call transfer and DTMF.