XMPP Protocol Stack
The XMPP Standards Foundation (XSF) recognizes the following protocols either as comprising the Extensible Messaging and Presence Protocol (XMPP) published by the Internet Engineering Task Force (IETF) or as being official XMPP extensions published by the XSF.
1.0 Base XMPP Protocols
The following are the base protocols that define the Extensible Messaging and Presence Protocol as specified in RFC 3920 and RFC 3921. These protocols were originally developed within the Jabber developer community in 1999 ("XMPP 0.9") and subsequently formalized by the IETF's XMPP Working Group in 2003 and 2004, resulting in definition of XMPP 1.0.
- Jabber Client
- Jabber Server
- Presence and IM Session Establishment
- Resource Binding
- Server Dialback
- Simple Authentication and Security Layer
- S/MIME Encryption
- Stanza Errors
- Stream Errors
- Transport Layer Security
- XML Streams
2.0 XMPP Extensions
Since mid-2001, the XMPP Standards Foundation (formerly the Jabber Software Foundation) has documented and managed the Jabber/XMPP protocols through an open standards process focused on the discussion and advancement of XMPP Extension Protocols (XEPs). Such specifications define XMPP extensions and must not be considered part of XMPP, which is all and only the core specifications produced by the IETF.
Note: The following lists do not include standards-track XEPs that are Deferred, Deprecated, Experimental, Obsolete, Rejected, or Retracted, nor XEPs that are Historical or Informational.
2.1 Final XMPP Extensions
The following XEPs have advanced to a status of Final within the XSF's standards process. The protocols defined in these specifications may be considered stable technologies for the purposes of implementation and deployment.
- Chat State Notifications
- Data Forms
- Delayed Delivery
- Entity Time
- In-Band Registration
- Jabber-RPC
- Last Activity
- Serverless Messaging
- Service Discovery
- Stream Compression
- XMPP Ping
2.2 Draft XMPP Extensions
The following XEPs have advanced to a status of Draft within the XSF's standards process. Implementations are encouraged and the protocols are appropriate for deployment in production systems, but it is possible that some changes to the protocols will be made before they become Final Standards.
- Attention
- Ad-Hoc Commands
- Advanced Message Processing
- Bits of Binary
- Bidirectional-streams Over Synchronous HTTP (BOSH)
- Bookmarks
- CAPTCHA Forms
- Data Forms Layout
- Data Forms Media Element
- Data Forms Validation
- Direct MUC Invitations
- Entity Capabilities
- Extended Stanza Addressing
- Feature Negotiation
- File Transfer
- Flexible Offline Message Retrieval
- In-Band Bytestreams
- JID Escaping
- Jingle
- Jingle ICE-UDP Transport Method
- Jingle RTP Sessions
- Jingle Raw UDP Transport Method
- Language Translation
- Message Archiving
- Message Receipts
- Multi-User Chat
- Out of Band Data
- Personal Eventing via Pubsub
- Portable Import/Export Format for XMPP-IM Servers
- Privacy Lists
- Publish-Subscribe
- Publishing Stream Initiation Requests
- Result Set Management
- Roster Item Exchange
- Roster Versioning
- Service Discovery
- Stanza Headers and Internet Metadata
- SOAP Over XMPP
- Simple Communications Blocking
- SOCKS5 Bytestreams
- Software Version
- Stanza Session Negotiation
- Stream Initiation
- Stream Management
- User Avatar
- User Activity
- User Location
- User Mood
- User Nickname
- User Tune
- Verifying HTTP Requests via XMPP
- XHTML-IM
- XMPP Over BOSH
In addition to the foregoing protocols, the XMPP Standards Foundation has informationally defined various best practices related to XMPP, has historically documented several protocols that are in wide use within the Jabber/XMPP community, and regularly considers numerous experimental technologies for advancement to Draft and then Final. However, such informational, historical, and experimental specifications are not officially recognized by the XSF as part of the XMPP protocol stack.
This page is maintained by the XMPP Registrar.
