#compsci 

## Info
Extensible Messaging and Presence Protocol (**XMPP**), originally named **Jabber**, is an open communication protocol designed for [[Instant messaging]], presence information and contact list maintenance.

Based on [[XML]].

Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM, including signalling for VoIP, video, file transfer, gaming, and other uses.

![[Pasted image 20260507203416.png]]
Logo

## History
![[Pasted image 20260507203430.png]]
Original logo

Jeremie Miller began working on the Jabber technology in 1998 and released the first version of the `jabberd` server in January 1999.

The IETF formed an XMPP working group in 2002 to formalize the core protocols. The early Jabber protocol formed the basis for XMPP as published in RFC 3920 and RFC 3921 in October 2004 (added TLS for channel encryption and SASL for authentication).

In 2011, RFC 3920 and RFC 3921 were superseded by RFC 6120 and RFC 6121 respectively.

The first IM service based on XMPP was jabber.org, which has operated continuously and offered free accounts since 1999.

The XMPP Standards Foundation (XSF) develops and publiches extensions to XMPP through a standards process centered on XMPP Extension Protocols (**XEPs**), previously known as Jabber Enhancement Proposals (**JEPs**).

## Functioning
The primary application of XMPP is Federated Instant Messaging, to deliver a standard Instant Messaging and Presence Protocol:
![[Pasted image 20260507204145.png]]

The XMPP client communicates with the server over a TLS-encrypted TCP stream on port 5222. XMPP servers communicate with each other over a TLS-encrypted TCP stream on port 5269.

![[Pasted image 20260507204252.png]]


Using the extension called Jingle, XMPP can provide a framework VoIP
Using the Multi-User Chat (MUC) XEP (XEP-0045), XMPP supports conferences with multiple users.

Off-the-Record messaging (OTR) is an extension of XMPP enabling encryption of messages and data.
It has since been replaced by a better extension, multi-end-to-multi-end encryption (OMEMO, XEP-0384) between users. The server operator cannot decrypt the data the users are forwarding.

There exist so-called transports or gateways to other messaging protocols like ICQ, AIM, SMS, IRC, email, and so on.
## XEPs

## Implementations
Numerous XMPP server software exist, most well known are [[ejabberd]] and [[Prosody]].

A large number of XMPP client software exists on various modern and legacy platforms. Most popular ones are Conversations, Cheogram, Monocles (Android), Dino (Windows, BSD, Linux), Gajim (Windows, Linux), Pidgin, Psi.


![[Pasted image 20260507204950.png]]