ejabberd offers one of the most comprehensive feature sets of any instant messaging servers. 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.
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-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-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-0190 | Best Practice for Closing Idle Streams | Best practice for closing an XML stream that is perceived to be idle | ✔ | ✔ |
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 | ✔ | ✔ 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 | 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-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 | XMPP server compliance levels for 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 | XMPP protocol compliance levels for 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 | XMPP protocol compliance levels for 2012 | ✔ | ✔ |
XEP-0313 | Message Archive Management | Protocol to query and control an archive of messages stored on a server | ✔ | ✔ |
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-0357 | Push Notifications | A way for an XMPP servers to deliver information for use in push notifications to mobile and other devices | Contribution module | |
XEP-0363 | HTTP File Upload | Protocol to request permissions from another entity to upload a file to a specific path on an HTTP server | 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 | ✔ | |
Security | ||||
P1-Spec | Traffic shapers | Bandwidth restriction policy for server's incoming traffic | ✔ | ✔ |
Mobile | ||||
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 | ✔ |