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.
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 |