Protocols Supported by ejabberd

ejabberd offers one of the most comprehensive feature sets of any instant messaging server. Based on the eXtensible Messaging and Presence Protocol (XMPP), it incorporates a very large subset of XMPP Extension Protocols (XEPs).

Additionally, ejabberd Business Edition (eBE) includes numerous high level features.

Full ejabberd XEP list

Reference Title Description Community Server (eCS) Business Edition (eBE)
Core XMPP specifications
RFC-3920 XMPP: Core XMPP Core mechanisms and routing
RFC-3921 XMPP: Instant Messaging and Presence XMPP IM and presence
RFC-6120 XMPP: Core XMPP Core mechanisms and routing (update)
RFC-6121 XMPP: Instant Messaging and Presence XMPP IM and presence (update)
RFC-6122 XMPP: Address Format Format for user and services addresses
XMPP Extensions
XEP-0004 Data Forms Queries and responses between entities, with forms
XEP-0012 Last Activity Date of the last activity of an entity before going offline
XEP-0013 Flexible Offline Message Retrieval Filter offline messages, to prevent storm when reconnecting
XEP-0016 Privacy Lists Personal rules to prevent spam and abuse, and protect privacy (for example invisibility)
XEP-0020 Feature Negotiation Discovery of component feature
XEP-0023 Message Expiration Expiry time of offline message
XEP-0027 Current Jabber OpenPGP Usage Client-side end-to-end encryption
XEP-0030 Service Discovery To query entity's features and capabilities
XEP-0033 Extended Stanza Addressing To send messages to multiple recepients, like email's to:, cc: and bcc: lists
XEP-0039 Statistics Gathering To query statistics of services
XEP-0045 Multi-User Chat For conferences with multiple users, with a large number of features (privacy, security, invitations, etc.)
XEP-0049 Private XML Storage For server-side storage of simple XML like config options
XEP-0050 Ad-Hoc Commands Sequences of forms (like wizards) for automated data exchange (human to machine, machine to machine)
XEP-0054 vcard-temp For vCards (business cards) storage and queries
XEP-0055 Jabber Search Forms dedicated to search
XEP-0059 Result Set Management Paging of large results sets
XEP-0060 Publish-Subscribe Publish and subscribe pattern applied to XMPP
XEP-0065 SOCKS5 Bytestreams Relay for file transfers
XEP-0077 In-band Registration For account creations, from the XMPP client
XEP-0078 Non-SASL Authentication Authentication method
XEP-0082 XMPP Date and Time Profiles Standard 08601 for dates
XEP-0085 Chat State Notifications Typing indicator
XEP-0086 Error Condition Mappings Error codes definition
XEP-0090 Legacy Entity Time Compliance with previous Jabber protocole
XEP-0091 Legacy Delayed Delivery Compliance with previous Jabber protocole
XEP-0092 Software Version Discovery of software release numbers
XEP-0100 Gateway Interaction Interoperability with private communities : Microsoft MSN/WLM, Yahoo! Messenger, ICQ, AOL IM, IRC, Twitter
XEP-0106 JID Escaping Ability to use email address as user name
XEP-0114 Jabber Component Protocol Plugin-like interface for server-side software components
XEP-0115 Entity Capabilities Discovery of client capabilities
XEP-0124 Bidirectional-streams Over Synchronous HTTP (BOSH) Long polling technique for web clients (HTTP Binding)
XEP-0133 Service Administration Server message broadcast and client-side server configuration
XEP-0138 Stream Compression Limit bandwith consumption used by XMPP protocole
XEP-0153 vCard-Based Avatars Communicating user avatar information
XEP-0157 Contact Addresses for XMPP Services Discover server admin contact detail
XEP-0158 CAPTCHA Forms Additional security to prevent bot massive operations
XEP-0160 Best Practices for Handling Offline Messages
XEP-0163 Personal Eventing Protocol Personal events like location, mood, activity, etc.
XEP-0170 Recommended Order of Stream Feature Negotiation
XEP-0172 User Nickname Nickname metadata
XEP-0175 Best Practices for Use of SASL ANONYMOUS Authentication method for user without account
XEP-0176 Jingle ICE-UDP Transport Method Technique for NAT traversal, see STUN and TURN(VoIP and binary exchanges)
XEP-0178 Best Practices for Use of SASL EXTERNAL Authentication method S2S Auth only
XEP-0190 Best Practice for Closing Idle Streams
XEP-0191 Simple Communication Blocking Simple messages blocker
XEP-0198 Stream Management
Custom mobile protocol for push and advanced features
XEP-0199 XMPP Ping A ping technique specific to XMPP
XEP-0202 Entity Time To query one's entity local time
XEP-0203 Delayed Delivery Offline message timestamp
XEP-0205 Best Practices to Discourage Denial of Service Attacks Best Practices to Discourage Denial of Service Attacks plus other protection mechanisms
XEP-0206 XMPP Over BOSH For web-based client, long-polling technique
XEP-0212 XMPP Basic Server 2008
XEP-0215 External Service Discovery Discovery of extra-services addresses (TURN,...)
XEP-0216 XMPP Intermediate Server 2008
XEP-0220 Server Dialback Workflow to use when dialbacking
XEP-0222 Persistent Storage of Public Data via PubSub Best practices to persistently store semi-public data objects such as public keys and personal profiles
XEP-0223 Persistent Storage of Private Data via PubSub Best practices to persistently store private information such as bookmarks and client configuration options
XEP-0225 Component Connections New protocol to connect components to XMPP servers
XEP-0227 Portable Import/Export Format for XMPP-IM Servers Import/Export for server data
XEP-0231 Bits of Binary Lightweight method for including small data in an XMPP stanza
XEP-0237 Roster Versioning Reduce bandwidth consumption by limiting contact details download
XEP-0243 XMPP Server Compliance 2009
XEP-0248 PubSub Collection Nodes Broadcast of pubsub event in a network of pubsub interdependent nodes
XEP-0256 Last Activity in Presence Method for determining the last time that an XMPP entity was active
XEP-0270 XMPP Compliance Suites 2010
XEP-0278 Jingle Relay Nodes (experimental) A powerful Skype-like P2P technique for VoIP
XEP-0279 Server IP Check Client can ask server its IP address mostly for VoIP services
XEP-0280 Message Carbons Send copy of your own messages to other connected resources
XEP-0297 Stanza Forwarding Forwarding a previously sent stanza to another entity
XEP-0302 XMPP Compliance Suites 2012
XEP-0313 Message Archive Management
XEP-0334 Message Processing Hints
XEP-0352 Client State Indication
XEP-0357 Push Notifications Contribution module
XEP-0363 HTTP File Upload Contribution module
External IETF specifications (non-XMPP)
RFC-5802 Salted Challenge Response (SCRAM) SASL and GSS-API Mechanism Secure authentication methods SCRAM only
RFC-5766 Session Traversal Utilities for NAT (STUN) Technique for easier binary session parameters negotiation
RFC-5766 Traversal Using Relays around NAT (TURN) Technique for binary data relay
RFC-5245 Interactive Connectivity Establishment (ICE) Technique mixing STUN and TURN
RFC-6455 The WebSocket protocol For web-based clients, real time bidirectional in-browser protocol
Performance and scalability
P1-Spec Clustering Unique clustering mode with no single point of failure. This is true active - active service for scalability and fault-tolerance
P1-Spec Consistent hash clustering Low latency, higher performance clustering method to build large scale platform
P1-Spec Traffic shapers Bandwidth restriction policy for server's incoming traffic
P1-Spec Out-of-reception state Mechanism to keep connection state on the server side, independently of the current network state
P1-Spec Fast reconnect ("rebind") Mechanism to reattach to an existing session when mobile is getting reconnected on the network
P1-Spec Apple push Message notification for iOS devices (iPhone, iPad, iPod Touch)
P1-Spec Acknowledgements and replay Message reliability: no message can be lost even under network inconsistencies
P1-Spec End-to-end traceability Message indicator (status: sent, delivered, offline, which server has been reached...)
P1-Spec Multi-device and archiving Message replication and synchronization across devices