RFC 6120 ( Core) RFC 6121 ( IM & Presence) RFC 6122 ( Address Format ) RFC 3922 ( CPIM ) RFC 3923 ( Encryption )

The Extensible Messaging and Presence Protocol ( XMPP, English for extensible messaging and presence protocol, . Formerly Jabber, English [ dʒæbə ( ɹ ) ], ( therefore ) babble ') is one of the IETF as RFC 6120-6122 and 3922, 3923 published Internet standard for XML routing. XMPP follows the XML standard and is primarily used for instant messaging. Extensions of XMPP set published by the XSF XMPP Extension Protocols dar.


XMPP and its extensions support for messaging, conferencing with multiple users, view the online status, file transfers, dispatch of certificates and many more services. The network architecture is reminiscent of the Simple Mail Transfer Protocol ( SMTP). Each tethered to the Internet XMPP server can exchange messages with other servers. Thus, compounds on the seller 's borders are possible. Messages are then forwarded to your own server, from there to the remote server and the receiver by the user. Also, isolated networks, such as corporate intranets possible.

For the operation of an XMPP network at least one XMPP server (similar to the Mail Transfer Agent ) is required. This can exist in an intranet as the sole communication interface or via the Internet to other XMPP servers (the " XMPP Federation " ) make connections.

To identify the user within the XMPP network and address, there are the so-called " jabber Identifier" ( JID ). This has the form " [email protected] ", similar to an e -mail address and behaves similarly: So here is the username alice and the example.com server, where the user is registered. Through the concept of " resources ", it is possible to log on multiple times with an identity to a XMPP server.

A big advantage of XMPP is that there are almost for each operating system and in any programming language XMPP clients. However, the solutions differ in the extent to which they support the protocol.

The XMPP protocol is in contrast to other instant messaging protocols used in the Internet documented open and is actively developed.



XMPP support conferences with multiple users. Nowadays, this is the specification multi-user chat ( MUC ) the most common. It supports features such as role assignment for users within the chat, password protected or hidden rooms and is backward compatible with the previous specification Group Chat. Conference rooms are also represented by Jabber Identifier.

Peer-to- peer sessions

With the Jingle XMPP extension called peer-to- peer sessions may agree. This function is mainly used for IP telephony (VoIP ) and is very similar to the task of SIP.

Once Google had initially extended on 8 August 2005 with the release of Google Talk XMPP protocol proprietary to VoIP functions, the XMPP Standards Foundation published on December 15, 2005, the specification of the extension "Jingle Signalling ", the XMPP to P2P extended capabilities, as well as the specification of a first application, "Jingle audio" for VoIP. On the same day Google released the source code of the program library libjingle that implements this functionality.

Some other XMPP clients to implement ( for example, by use of libjingle ) now also "Jingle Audio", so that VoIP capabilities with XMPP are not only Google Talk and Windows systems reserved. The program versions with jingle audio support are mostly still in the experimental stage, so that availability is likely in each case with one of the next releases.

Meanwhile, there are other applications that "Jingle Signalling " - that settles for example, the communication through NATs through - use as a basis. So far, among other things, Jingle profiles for video (on Theora basis), UDP is (can be used at about the agreement of multiplayer network games ) and give the InterAsterisk protocol. Also, implementation of DTMF exists for the purpose of backward compatibility with the conventional telephone network.

We are currently working on profiles for data sharing and virtual private networks.

Communication with other chat networks

A special concept of XMPP is that of transportation. This makes it possible to use other networks ( in XMPP lingo legacy services called ) such as AIM, ICQ, Yahoo Messenger, Gadu -Gadu or IRC to use and interact with their users. Also on Windows Live Messenger (WLM ) is possible, but many administrators turn this transport for legal reasons from. Unlike multi-protocol clients, such as Trillian, Miranda IM, or Kopete to connect to foreign networks with XMPP does not the fact that the necessary protocols are supported on the client side. Instead, the communication will be provided to foreign networks of XMPP servers. The server transported the messages between the networks without the two users involved for this particular precautions need to be taken.

To communicate with users of a non- XMPP -compliant network a separate account in each network is needed. Each user of XMPP can register with transport by handing over the existing login information to this service. These clients need to support service discovery ( in German " service discovery "). Thus, it is possible to browse server after transport and offered to communicate without additional installation of plugins with users of proprietary instant messaging networks.


Jeremie Miller started in 1998 with the development of a real-time streaming XML protocol, which he published under the name Jabber 1999. 2004, the IETF had adopted the Protocol with some modifications as the official standard called Extensible Messaging and Presence Protocol. Since then, the XMPP Standards Foundation ( XSF ) is responsible for the standardization of building on XMPP protocols, called XMPP Extension Protocols. Director and author of most XEPs is Peter Saint -Andre.


In Germany XMPP is used by United Internet GMX / Web.de Multi Messenger, which also allows the integration of other services such as ICQ, Windows Live Messenger and Yahoo Messenger. However, Google and GMX customers can communicate with each other without using a transport. Other popular services are LJ Chat Live Journal, Nimbuzz and Ovi by Nokia, which offers both a Jabber client for its mobile devices. Since 2010, the social network Facebook provides an XMPP connection to its chat platform, but does not support the " Federation Feature", so to communicate with other XMPP servers.

Worldwide, there are several thousand XMPP server. Some individuals, but also organizations like the Chaos Computer Club and the Pirate Party 's servers run with no commercial intent. The XMPP Standards Foundation provides a list of public servers, in which operators can enter. In addition to the xmpp -server- scanner exists a bot, the server automatically queries and a list of information generated for availability and supported features.

In 2009, Cisco bought Jabber, Inc.. An integration into your own software solutions is planned.


  • RFC 3923
  • Implementation / dissemination / compatibility / future
  • Off -band encryption (VoIP, video etc. )
  • What information is encrypted when ( passwords, message, ...)

The connection between two XMPP clients is always built on at least one XMPP server. Are both clients registered on two different servers, so a connection must be established (Client Server A ↔ A ↔ B ↔ client server B) between the two servers. Since this transmission messages at each station (and in between) bugged, respectively, can be recorded, it is recommended that you encode it.

The connection between a client and the server to which this client is logged, can be encrypted using SSL / TLS (client - to-server encryption). SSL connections to the XMPP server were usually offered on port 5223, but now use TLS connections according to RFC 6120 using StartTLS also the default port 5222nd Some servers offer differing explicitly port 5224 for TLS to. Client - to-client encryption is for the operator of an XMPP server, make sure the preferred option, since less resources are consumed on the servers, but he can not understand then what content will be transmitted (ie, he can not text messages read along ), which is in turn advantageous for the client.

Even if the compounds of the client are encrypted to their respective servers, the communication between the servers is a potential point of attack. Therefore, many servers encrypt their connections to other servers (Server - to-server encryption). A combination with the client - to-server encryption is useful because otherwise the connection at the weakest point - is vulnerable - that is where the connection is not encrypted. If both methods are used, the security is greatly improved, but the servers are a point of attack, since even with a combination of server-to- server and client - to-server encryption, the data is decrypted on both servers.

Therefore, an even higher level of security is provided by the end-to -end encryption. As all data from the output client encrypts and only decrypted by the target client, weak spots are minimized. The connection is forcibly encrypted at all times, and the server can not decrypt the data they transmit. Thus, the operator of the server and potential attacker can connect only to draw conclusions about the timing, duration, and the approximate amount of a call.

A method for end-to -end encryption is OpenPGP. It is based on the principle of asymmetric encryption. The keys remain unchanged over a long period of time. Each key pair can be clearly assigned to a " key holder ". Therefore, with this form of encryption is not only the confidentiality of data transfer can be achieved, but also a liability in terms of information security: parties can thus prove later based on records, which statements were made ​​by the persons in the conversation.

Off- the-Record Messaging ( OTR) offers the possibility of ( confidential) to make transfers eavesdropping, but at the same time to allow a repudiation ( non-binding ): conversation participants do not reveal their identity. Based on the key used, no one can, not even the parties on the call prove later that the conversation took place. Due to the frequent change of key, a connection between different " snippets of conversation " can not be made ​​. This form of encryption is particularly suitable for whistleblowers and any other confidential discussions " sub rosa ".

Since the server-to- server encryption of XMPP can not be changed by the end user, because it takes place within the jurisdiction of the server administrators, the greatest possible for the end user security through the simultaneous use of client - to-server encryption and end -to-be end encryption accessible.

Enhancements such as audio and video chat via Jingle default is not encrypted. The only client which supports until now, Jitsi is.