Specification & Reference Sheets

ejabberd offers one of the most comprehensive feature sets of any instant messaging servers.

Send by email

ejabberd offers one of the most comprehensive feature sets among instant messaging servers. Built on the robust foundation of the eXtensible Messaging and Presence Protocol (XMPP), it integrates a vast range of XMPP Extension Protocols (XEPs) to support diverse use cases. Additionally, the ejabberd Business Edition (eBE) extends functionality with high-level features tailored for enterprise needs.

This page provides an overview of the supported protocols, extensions, and features, and emphasizes those that are exclusive to ejabberd Business Edition. To help you select the right ejabberd version for your needs, it highlights the key differences between the standard open-source edition and ejabberd Business Edition.

Core XMPP Specifications

RFC Title Description Community Server (eCS) Business Edition (eBE)
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

RFC Title Description Community Server (eCS) Business Edition (eBE)
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-0022 Message Events Request and respond to events relating to the delivery, display, and composition of messages
XEP-0023 Message Expiration Expiry time of offline message
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-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-0142 Workgroup Queues Enables a user to communicate with a representative of an organization, department, or workgroup
XEP-0153 vCard-Based Avatars Communicating user avatar information
XEP-0156 Discovering Alternative XMPP Connection Methods Discover alternative methods of connecting to an XMPP server via Web Host Metadata Link format
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 Best practices to be followed by Jabber/XMPP servers in handling messages sent to recipients who are offline
XEP-0163 Personal Eventing Protocol Personal events like location, mood, activity, etc.
XEP-0170 Recommended Order of Stream Feature Negotiation Recommended order for negotiation of XMPP stream features
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
XEP-0185 Dialback Key Generation and Validation Method for generating and validating the keys used in the XMPP server dialback protocol
XEP-0191 Simple Communication Blocking Simple messages blocker
XEP-0198 Stream Management XMPP protocol extension for active management of an XML stream between two XMPP entities
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 XMPP Basic Server 2008 compliance level
XEP-0215 External Service Discovery Discovery of extra-services addresses (TURN,...)
XEP-0216 XMPP Intermediate Server 2008 XMPP Intermedate IM Server 2008 compliance level
XEP-0220 Server Dialback Workflow to use when dialbacking
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 XMPP server compliance levels for 2009
XEP-0248 PubSub Collection Nodes Broadcast of pubsub event in a network of pubsub interdependent nodes
XEP-0249 Direct MUC Invitations Method for inviting a contact to a multi-user chat room directly, instead of sending the invitation through the chat room
XEP-0256 Last Activity in Presence Method for determining the last time that an XMPP entity was active
XEP-0270 XMPP Compliance Suites 2010 XMPP protocol compliance levels for 2010
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-0288 Bidirectional Server-to-Server Connections Protocol for using server-to-server connections in a bidirectional way such that stanzas are sent and received on the same TCP connection
XEP-0313 Message Archive Management Protocol to query and control an archive of messages stored on a server
XEP-0317 Hats More extensible model for roles and affiliations in Multi-User Chat rooms
XEP-0328 JID Preparation and Validation Service A way for an XMPP entity to request another entity to prepare and validate a given JID
XEP-0334 Message Processing Hints A way to include hints to entities routing or receiving a message
XEP-0352 Client State Indication A way for the client to indicate its active/inactive state
XEP-0355 Namespace Delegation A way for XMPP server to delegate treatments for a namespace to an other entity
XEP-0356 Privileged Entity A way for XMPP entities to have a privileged access to some other entities data
XEP-0357 Push Notifications A way for an XMPP servers to deliver information for use in push notifications to mobile and other devices
XEP-0359 Unique and Stable Stanza IDs Generate unique and stable IDs for messages.
XEP-0363 HTTP File Upload Protocol to request permissions from another entity to upload a file to a specific path on an HTTP server
XEP-0368 SRV records for XMPP over TLS Procedure to look up client and server SRV records (for direct TLS connections) in addition to weights/priorities
XEP-0369 Mediated Information eXchange (MIX) Exchange of information among multiple users through a mediating service
XEP-0386 Bind 2 Ssingle-request replacement for several activities an XMPP client needs to do at startup
XEP-0388 Extensible SASL Profile Replacement for the SASL profile documented in RFC 6120 which allows for greater extensibility
XEP-0398 User Avatar to vCard-Based Avatars Conversion Method for using PEP based avatars and vCard based avatars in parallel by having the user’s server do a conversion between the two
XEP-0402 PEP Native Bookmarks Syntax and storage profile for keeping a list of chatroom bookmarks on the server
XEP-0405 Mediated Information eXchange (MIX): Participant Server Requirements Specify behaviour of an XMPP server to which MIX Clients connect in order to enable correct operation of these clients in conjunction with a MIX server
XEP-0410 MUC Self-Ping (Schrödinger's Chat) Allow clients to check whether they are still joined to a chatroom
XEP-0411 Bookmarks Conversion Method to migrate to PEP based bookmarks without loosing compatibility with client that still use Private XML
XEP-0421 Anonymous unique occupant identifiers for MUCs Method that allows clients to identify a MUC participant across reconnects and renames
XEP-0424 Message Retraction Method for indicating that a message should be retracted
XEP-0425 Moderated Message Retraction Method for groupchat moderators to retract messages of other users
XEP-0440 SASL Channel-Binding Type Capability Allow servers to annouce their supported SASL channel-binding types to clients
XEP-0441 Message Archive Management Preferences Protocol to control a user's archiving preferences.
XEP-0474 SASL SCRAM Downgrade Protection A way to secure the SASL and SASL2 handshakes against method and channel-binding downgrades
XEP-0480 SASL Upgrade Tasks A way to upgrade to newer SASL mechanisms using SASL2 tasks
XEP-0484 Fast Authentication Streamlining Tokens Allow clients fully authenticated stream establishment within a single round-trip
XEP-0485 PubSub Server Information Data format whereby basic information of an XMPP domain can be expressed and exposed over PubSub Contribution: mod_pubsub_serverinfo

External IETF Specifications (non-XMPP)

RFC Title Description Community Server (eCS) Business Edition (eBE)
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

RFC Title Description Community Server (eCS) Business Edition (eBE)
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

Security

RFC Title Description Community Server (eCS) Business Edition (eBE)
P1-Spec Traffic shapers Comprehensive policy for limiting, managing, and optimizing incoming traffic bandwidth on the server

Mobile

RFC Title Description Community Server (eCS) Business Edition (eBE)
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 GCM & Firebase push Message notification for Android devices
P1-Spec Apple push Message notification for iOS devices
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