This article is being considered for deletion in accordance with Wikipedia's deletion policy. Please share your thoughts on the matter at this article's deletion discussion page. |
The table below details the level of support for the requirements set by XEP-0459: XMPP Compliance Suites 2022.
Servers | XMPP Core (RFC 6120) | Use of TLS in the XMPP (RFC 7590) | Service Discovery (XEP-0030) | Jabber Component Protocol (XEP-0114) | XMPP Subprotocol for WebSocket (RFC 7395) | XMPP Over BOSH (XEP-0206) | Bidirectional-streams Over Synchronous HTTP (BOSH) (XEP-0124) | XMPP Instant Messaging and Presence (RFC 6121) | vcard-temp (XEP-0054) | Message Carbons (XEP-0280) |
---|---|---|---|---|---|---|---|---|---|---|
XEP Status | N/A | N/A | Final | Active | N/A | Stable | Stable | N/A | Active | Stable |
ejabberd | Yes [1] | Unknown | Yes | Yes | Unknown | Yes | Yes | Yes | Yes | Yes |
jabberd14 | Unknown | Unknown | Yes [2] | Yes | Unknown | Unknown | Yes | Unknown | Unknown | Unknown |
jabberd2 | Unknown | Unknown | Yes [3] | Yes | Unknown | Yes | Yes | Unknown | Yes | Unknown |
Metronome | Yes | Unknown | Yes [4] | Yes | Unknown | Yes | Yes | Unknown | Yes | Yes |
MongooseIM | Yes [5] | Unknown | Yes [6] | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Openfire | Yes/Partial [7] | Yes [8] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Prosody | Yes | Unknown | Yes [9] | Yes | Unknown | Yes | Yes | Unknown | Yes | Yes |
Tigase | Yes [10] | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Yes | |
Interoperability compatibility | 75% | 25% | 100% | 100% | 38% | 88% | 100% | 38% | 88% | 63% |
Servers | Multi-User Chat (XEP-0045) | Direct MUC Invitations (XEP-0249)[ verification needed ] | HTTP File Upload (XEP-0363) | Stream Management (XEP-0198) | Client State Indication (XEP-0352) | External Service Discovery (XEP-0215) |
---|---|---|---|---|---|---|
XEP status | Stable | Stable | Stable | Stable | Stable | Deferred |
ejabberd | Yes | Unknown | Yes | Yes | Yes | Yes |
jabberd14 | Yes | Unknown | Unknown | Unknown | Unknown | |
jabberd2 | Plug-in | Unknown | Unknown | Yes | Unknown | Unknown |
Metronome | Yes | Unknown | Yes | Yes | Yes | Yes |
MongooseIM | Yes | Unknown | Unknown | Yes | Yes | Unknown |
Openfire | Yes | No | Yes | Yes | No | Yes |
Prosody | Yes | Yes | Plug-in [11] | Plug-in | Plug-in [12] | Yes |
Tigase | Yes | Yes | Yes | Yes | Yes | Yes |
Interoperability compatibility | 100% | 25% | 63% | 88% | 63% | 63% |
Servers | SRV records for XMPP over TLS (XEP-0368) | Entity Capabilities (XEP-0115)[ verification needed ] | Personal Eventing Protocol (XEP-0163) | User Avatar to vCard-Based Avatars Conversion (XEP-0398) | vCard-Based Avatars (XEP-0153) | Blocking Command (XEP-0191) | Bookmark Storage (XEP-0048)[ verification needed ] | Message Archive Management (XEP-0313) | PEP Native Bookmarks (XEP-0402) | MUC Self-Ping (Schrödinger's Chat) (XEP-0410) |
---|---|---|---|---|---|---|---|---|---|---|
XEP Status | Stable | Stable | Stable | Deferred | Active | Stable | Deprecated | Stable | Stable | Stable |
ejabberd | Unknown | Yes | Yes | Unknown | Yes | Yes | Unknown | Yes | Unknown | Yes |
jabberd14 | Unknown | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown | Unknown | Unknown |
jabberd2 | Unknown | Unknown | Unknown | Unknown | Yes | Yes | Yes | Unknown | Unknown | Unknown |
Metronome | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown | Unknown |
MongooseIM | Unknown | Unknown | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown | Unknown |
Openfire | Yes | Yes | Yes | Yes | Plug-in | Yes | Plug-in | Plug-in | Unknown | Yes |
Prosody | Unknown | Yes | Yes | Plug-in [13] | Yes | Yes | Yes | Yes | Yes | Yes |
Tigase | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Unknown | Unknown |
Interoperability compatibility | 38% | 75% | 75% | 50% | 75% | 75% | 75% | 63% | 13% | 38% |
Servers | Best Practices for Persistent Storage of Private Data via Publish-Subscribe (XEP-0223) | Private XML Storage (XEP-0049) | Push Notifications (XEP-0357) |
---|---|---|---|
XEP status | Active | Active | Deferred |
ejabberd | Yes | Yes | Contribution module |
jabberd14 | Unknown | Yes | Unknown |
jabberd2 | Unknown | Yes | Unknown |
Metronome | Yes | Yes | Yes |
MongooseIM | Unknown | Yes | Unknown |
Openfire | plug-in | Yes | plug-in |
Prosody | Yes | Yes [14] | Community Module [15] |
Tigase | Yes | Yes | Yes |
Interoperability compatibility | 63% | 100% | 63% |
Compliance status of XMPP servers, with RFCs/XEPs
Server | Compliance |
---|---|
ejabberd | 76% |
jabberd14 | 21% |
jabberd2 | 34% |
Metronome | 76% |
MongooseIM | 41% |
Openfire | 90% |
Prosody | 69% |
Tigase | 86% |
The table below lists all other XEPs supported by XMPP servers. XEPs that only require client-side support are omitted.
RFC | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | MongooseIM | Openfire | Prosody | Sun Java System Instant Messaging Server | Tigase |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RFC 3920 | XMPP Core | Obsolete | Yes [16] | Unknown | Yes [2] | Yes [17] | Unknown | Yes [5] | Yes [8] | Yes | Unknown | Yes [10] |
RFC 3921 | XMPP IM | Obsolete | Yes [16] | Unknown | Yes [2] | Yes [17] | Unknown | Yes [5] | Yes [8] | Yes | Unknown | Yes [10] |
RFC 3922 | XMPP CPIM | Final [18] | Yes | Unknown | Unknown | Unknown | Unknown | Yes [5] | Unknown | Unknown | Unknown | Unknown |
RFC 3923 | XMPP E2E | Final [18] | Yes | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
RFC 4854 | XMPP URN | Informational [18] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
RFC 4979 | XMPP ENUM | Final [18] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
RFC 5122 | XMPP URI | Final [18] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
RFC 6122 | XMPP AF | Obsolete | Yes [1] | Yes | Unknown | Unknown | Yes | Yes [5] | Yes [19] | Yes | Unknown | Yes [10] |
RFC 7622 | XMPP AF | Final [18] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0004 | Data forms | Final | Yes [1] | Unknown | Unknown | No [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] [20] |
0009 | Jabber RPC | Final | Yes [1] | Unknown | Unknown | No [3] | Unknown | No | No | Unknown | Yes [9] | Yes |
0012 | Last Activity | Final | Yes [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0013 | Flexible offline message retrieval | Stable | No [1] | Unknown | Yes [2] | No [3] | No [4] | No | No | Yes [8] | No [9] | Yes [10] |
0016 | Privacy Lists | Deprecated | Yes [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0018 | Invisible Presence | Rejected | Yes [1] | Unknown | Yes [2] | No [3] | No | No | Yes | Unknown | Unknown | No [10] |
0020 | Feature negotiation | Deprecated | Yes [21] | Unknown | Unknown | No [3] | Unknown | No | No | No [8] | Yes [9] | Yes [10] |
0022 | Message Events | Obsolete | Yes [1] | Unknown | Yes [2] | Yes [3] | Unknown | No | Yes | Unknown | Yes [9] | Yes [10] |
0023 | Message Expiration | Obsolete | Yes [1] | Unknown | Yes [2] | Yes [3] | Unknown | No | Yes | Unknown | Unknown | No |
0025 | HTTP Polling | Obsolete | Yes [1] | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No [10] |
0033 | Extended Stanza Addressing | Stable | Yes [1] [22] | Unknown | Unknown | No [3] | No [4] | No | No | Yes [8] | Partial Contrib. [9] [23] | No [10] |
0039 | Statistics Gathering (deferred) | Deferred | Yes [1] | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | Unknown | Yes [10] |
0047 | In-Band Bytestreams | Final | Yes [1] | Unknown | Unknown | No [3] | Unknown | No | Yes | Yes [8] | Yes [9] | Yes [10] |
0050 | Ad-Hoc Commands | Stable | Yes [1] | Unknown | Unknown | No [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
0055 | Jabber Search | Historical Use | Yes [1] | Unknown | Unknown | No [3] | Yes [4] | Yes [6] | Yes | Yes [8] [24] | No [9] | Unknown |
0059 | Result set management | Stable | Yes [1] | Unknown | Unknown | No [3] | Partial [4] | No | Yes | Yes [8] | No [9] | Yes [10] |
0060 | Publish-Subscribe | Stable | Yes [1] | Unknown | Contrib. [2] [25] | No [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0065 | SOCKS5 Bytestreams | Stable | Yes [1] | Unknown | Contrib. [2] [26] | No [3] | Yes [4] | No | No | Yes [8] | Yes [9] | Yes [10] |
0066 | Out of Band Data | Stable | Yes [1] | Unknown | Unknown | No [3] | Unknown | No | Yes | Unknown | Yes | Yes [10] |
0068 | Field Standardization for Data Forms | Approved | Yes [1] | Unknown | Unknown | No [3] | Unknown | Yes [6] | Yes | Unknown | Yes [9] | Yes [10] |
0070 | Verifying HTTP Requests via XMPP | Stable | No [1] | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No [10] |
0073 | Basic IM Protocol Suite | Obsolete | Unknown | Unknown | Yes [2] | Yes [3] | Yes | No | Yes | Yes [8] | Yes | Yes [10] |
0077 | In-Band Registration | Final | Yes [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0078 | Non-SASL Authentication | Obsolete | Yes [1] | Unknown | Yes [2] | Yes [3] | No [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0079 | Advanced Message Processing | Stable | Contrib. [1] [27] | Contrib. [1] | Unknown | Yes [3] | No [4] | No | Yes, partial | Unknown | No [9] | Yes [10] |
0080 | User Location | Stable | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0082 | XMPP Date and Time Profiles | Approved | Yes [1] | Unknown | Unknown | No [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0083 | Nested Roster Groups | Approved | Yes [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0084 | User Avatar | Stable | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Yes [10] |
0085 | Chat State Notifications | Final | Yes [1] | Unknown | Unknown | No [3] | Yes | No | Yes | Unknown | Yes [9] | Yes [10] |
0086 | Error Condition Mappings | Deprecated | Yes [1] | Unknown | Yes [2] | Yes [3] | No [4] | No | Yes | Yes [8] | No | Yes [10] |
0090 | Legacy Entity Time | Obsolete | Yes [1] [28] | Unknown | Yes [2] | Yes [3] | No [4] | No | No | Yes [8] | Yes [9] | Yes [10] |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
0091 | Legacy Delayed Delivery | Obsolete | Yes [1] [28] | Unknown | Yes [2] | Yes [3] | Yes | Yes [6] | No | Yes [8] | Yes [9] | Yes [10] |
0092 | Software Version | Stable | Yes [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | Yes [6] | No | Yes [8] | Yes [9] | Yes [10] |
0093 | Roster Item Exchange | Deprecated | Unknown | Unknown | Yes [2] | Yes [3] | Unknown | No | Yes | Unknown | No | No |
0095 | Stream Initiation | Deprecated | Unknown | Unknown | Unknown | No [3] | Unknown | No | Yes | Unknown | No | No |
0096 | SI File Transfer | Deprecated | Unknown | Unknown | Unknown | No [3] | Unknown | No | Yes | Yes [8] | Yes [9] | Yes [10] |
0106 | JID escaping | Stable | Yes [1] | Unknown | Unknown | No [3] | Yes | No | Yes | Yes [8] | Yes [9] | Yes [10] |
0107 | User Mood | Stable | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Yes [10] |
0108 | User Activity | Stable | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Yes [10] |
0118 | User Tune | Stable | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Yes [10] |
0122 | Data Forms Validation | Stable | Unknown | Unknown | Unknown | No [3] | No [4] | No | Yes | No | Yes [9] | No |
0126 | Invisibility | Approved | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | Yes | Yes [8] | Yes [9] | No |
0128 | Service Discovery Extensions | Approved | No [1] | Unknown | Unknown | Yes [3] | Yes [4] | Yes [6] | No | Yes [8] | Yes [9] | Yes [10] |
0130 | Waiting Lists | Deprecated | No [1] | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0131 | Stanza Headers and Internet Metadata | Stable | No [1] | Unknown | Unknown | No [3] | Unknown | Yes [6] | No | Unknown | Yes [9] | Yes [10] |
0133 | Service Administration | Approved | Yes [1] | Unknown | Unknown | No [3] | Yes [4] | Yes [6] | No | Unknown | Yes [9] | Yes [10] |
0136 | Message archiving | Deprecated | Contrib. [1] [29] | Unknown | Contrib. [2] [30] | No [3] | No [4] | No | No | Yes/Plugin [31] | Contrib. [32] | Yes [10] |
0137 | Publishing SI Requests | Deprecated | No [1] | Unknown | Unknown | No [3] | Yes | No | No | Unknown | No | No |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
0138 | Stream Compression | Final | Yes [1] | Unknown | Unknown | Yes [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0148 | Instant Messaging Intelligence Quotient | Humorous | Unknown | Unknown | Unknown | No [3] | unfinished [ citation needed ] | No | No | Unknown | experimental [ citation needed ] | Yes [10] |
0154 | User profile | Deferred | Contrib. [1] | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | No [9] | No |
0157 | Contact Addresses for XMPP Services | Approved | Yes [1] [33] | Unknown | Yes [2] | Yes [3] | Yes [4] | No | Yes | Unknown | Contrib. [9] | Yes [10] |
0158 | CAPTCHA Forms | Stable | Yes [1] | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0159 | Spim-Blocking Control | Deferred | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | No [9] | No |
0160 | Best Practices for Handling Offline Messages | Approved | Yes [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0161 | Abuse Reporting | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0168 | Resource Application Priority | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0170 | Recommended Order of Stream Feature Negotiation | Approved | Yes [1] [34] | Yes [1] | Yes [2] | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0171 | Language Translation | Stable | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | Yes [9] | No |
0172 | User Nickname | Stable | No [1] | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Yes [10] |
0175 | Best Practices for Use of SASL ANONYMOUS | Approved | Yes [1] | Unknown | Unknown | Yes [3] | Yes [4] | No | Yes | Yes [8] | Yes [9] | Yes [10] |
0176 | Jingle ICE-UDP Transport Method | Stable | Yes [1] | Unknown | Unknown | No [3] | Unknown | No | No | Unknown | Yes [9] | Yes [10] |
0178 | Best Practices for Use of SASL EXTERNAL with Certificates | Approved | No [1] | Unknown | Yes [2] | Yes [3] | Yes [4] | No | No | Unknown | Yes [9] | Yes [10] |
0182 | Application-Specific Error Conditions | Approved | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | Unknown | Unknown | Yes [9] | No |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
0184 | Message Delivery Receipts | Stable | No [1] | Unknown | Unknown [2] | Unknown [3] | Unknown | No | Yes | Unknown | Yes [9] | Yes [10] |
0185 | Dialback Key Generation and Validation | Approved | Unknown | Unknown | Yes [2] | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0189 | Public Key Publishing | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | Yes [9] | Yes [10] |
0190 | Best Practice for Closing Idle Streams | Obsolete | Yes [1] | Unknown | Unknown | Yes [3] | Yes [4] | No | Unknown | Unknown | No [9] | Yes [10] |
0192 | Proposed Stream Feature Improvements | Obsolete | Unknown | Unknown | Unknown | Yes [3] | No [4] | No | Unknown | Unknown | Unknown | Unknown |
0193 | Proposed Resource Binding Improvements | Obsolete | Contrib. [1] [35] | Contrib. [1] | Unknown | Yes [3] | No [4] | No | Unknown | Unknown | Unknown | Unknown |
0194 | User Chatting | Deferred | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Unknown |
0195 | User Browsing | Deferred | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Yes [9] | Unknown |
0199 | XMPP Ping | Final | Yes [1] [36] | Yes [1] | Yes [2] | Yes [3] | Yes [4] | Yes [6] | Yes | Unknown | Yes [9] | Yes [10] |
0202 | Entity Time | Final | Yes [1] | Unknown | Unknown | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | No |
0203 | Delayed Delivery | Final | Yes [1] | Unknown | Unknown | Yes [3] | Yes [4] | Yes [6] | Yes | Yes [8] | Yes [9] | Yes [10] |
0205 | Best Practices to Discourage Denial of Service Attacks | Approved | Partial [1] | Yes | Unknown | Yes [3] | Yes [4] | No | Partial | Unknown | No [9] | Yes [10] |
0209 | Metacontacts | Deferred | Unknown | Unknown | Unknown | Yes [3] | Yes [4] | No | Yes | Unknown | Yes [9] | Yes [10] |
0212 | XMPP Basic Server 2008 | Obsolete | Yes [1] | Unknown | Unknown | Yes [3] | Unknown | Yes [6] | Yes | Unknown | Yes | Yes [10] |
0214 | File Repository and Sharing | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | Unknown |
0216 | XMPP Intermediate IM Server 2008 | Obsolete | Yes [1] | Unknown | Unknown | Yes [3] | Unknown | No | Yes | Unknown | Yes [9] | Yes [10] |
0220 | Server Dialback | Stable | Unknown | Unknown | Unknown | Yes [3] | Yes [4] | Yes [6] | Unknown | Unknown | Yes [9] | Yes [10] |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
0221 | Data Forms Media Element | Stable | Unknown | Unknown | Unknown | No [3] | No [4] | No | Unknown | Unknown | Yes [9] | No |
0225 | Component Connections | Deferred | No [1] | Unknown | Unknown | Yes [3] | No [4] | No | No | Unknown | No [9] | Yes [10] |
0227 | Portable Import/Export Format for XMPP-IM Servers (proposed) | Stable | Yes [1] | Unknown | Unknown | No [3] | No [4] | Yes [6] | No | Unknown | Yes [9] | No |
0230 | Service Discovery Notifications | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0232 | Software Information | Deferred | Unknown | Unknown | Unknown | Yes [3] | No [4] | No | No | Unknown | No [9] | No |
0233 | Use of Domain-Based Service Names in XMPP SASL Negotiation | Stable | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0235 | OAuth Over XMPP | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0236 | Abuse Reporting | Retracted | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0237 | Roster Versioning | Obsolete | Yes [1] | Unknown | Unknown | Yes [3] | Yes [4] | Yes [6] | Yes | Unknown | Yes [9] | Yes [10] |
0238 | XMPP Protocol Flows for Inter-Domain Federation | Deferred | Unknown | Unknown | Unknown | Yes [3] | Unknown | No | Unknown | Unknown | Unknown | Unknown |
0241 | Encryption of Archived Messages | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | No |
0243 | XMPP Server Compliance 2009 | Obsolete | Yes [1] | Unknown | Unknown | Yes [3] | Yes | Yes [6] | Yes | Unknown | Yes [9] | Yes [10] |
0248 | PubSub Collection Nodes | Deferred | Yes [1] | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | Partial [10] |
0252 | BOSH Script Syntax | Deferred | Unknown | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | No [9] | No |
0253 | PubSub Chaining | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | Partial [10] |
0254 | PubSub Queueing | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | Unknown |
0255 | Location Query | Deferred | Unknown | Unknown | Unknown | No [3] | No | No | No | Unknown | No [9] | No |
0256 | Last Activity in Presence | Stable | Unknown | Unknown | Unknown | No [3] | No [4] | No | Unknown | Unknown | No [9] | No |
0257 | Client Certificate Management for SASL EXTERNAL | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | Contrib. [9] | Unknown |
0258 | Security Labels in XMPP | Stable | Unknown | Unknown | Unknown | Unknown | Yes [4] | Yes [6] | No | Unknown | Contrib. [9] | Unknown |
0259 | Message Mine-ing | Deferred | Unknown | Unknown | Unknown | No [3] | No [4] | No | No | Unknown | No [9] | Unknown |
0268 | Incident Handling | Deferred | Unknown | Unknown | Unknown | Unknown | Yes [4] | No | No | Unknown | Contrib. [37] | No |
0270 | XMPP Compliance Suites 2010 | Obsolete | Yes [1] | Unknown | Unknown | No [3] | Yes | Yes [6] | Yes | Unknown | Unknown | Unknown |
0273 | Stanza Interception and Filtering Technology (SIFT) | Deferred | Unknown | Unknown | Unknown | Unknown | Partial [4] | No | No | Unknown | Contrib. [9] | No |
0278 | Jingle Relay Nodes | Experimental | Yes [1] | Unknown | Unknown | No [3] | Yes [4] | No | No | Unknown | Unknown | No |
0279 | Server IP Check | Deferred | Yes [1] | Unknown | Unknown | No [38] | Yes [4] | No | Yes | Unknown | Contrib. [9] [39] | No |
0288 | Bidirectional Server-to-Server Connections | Stable | Unknown | Unknown | Unknown | Unknown | Yes [4] | Yes [6] | No | Unknown | Unknown | Unknown |
0289 | Federated MUC for Constrained Environments | Deferred | Unknown | Unknown | Unknown | Unknown | No | Yes [6] | No | Unknown | Unknown | Unknown |
0302 | XMPP Compliance Suites 2012 | Obsolete | Yes [1] | Unknown | Unknown | Unknown | Yes | No | Yes | Unknown | Unknown | Yes [10] |
0309 | Service Directories | Deferred | Unknown | Unknown | Unknown | Unknown | Yes [4] | Unknown | No | Unknown | Contrib. [9] | Unknown |
0321 | Remote Roster Management | Deferred | Yes [40] | Unknown | Unknown | Unknown | Unknown [4] | Unknown | No | Unknown | Unknown [41] | Unknown |
0375 | XMPP Compliance Suites 2016 | Retracted | Contrib | Unknown | Unknown | Unknown | Yes | Unknown | Unknown | Unknown | Unknown | Unknown |
0376 | Pubsub Account Management | Deferred | Contrib | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
0387 | XMPP Compliance Suites 2018 | Obsolete | Yes. [42] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
0412 | XMPP Compliance Suites 2019 | Obsolete | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
0423 | XMPP Compliance Suites 2020 | Stable | Unknown | Unknown | Unknown | Unknown | Yes. [43] | Unknown | Unknown | Unknown | Unknown | Unknown |
0443 | XMPP Compliance Suites 2021 | Stable | Unknown. [44] | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
XEP | Description | Status | ejabberd | iChat Server | jabberd14 | jabberd2 | Metronome | Isode M-Link | MongooseIM | Openfire | Prosody | Tigase |
Instant messaging (IM) technology is a type of online chat allowing real-time text transmission over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and triggers a transmission to the recipient(s), who are all connected on a common network. It differs from email in that conversations over instant messaging happen in real-time. Most modern IM applications use push technology and also add other features such as emojis, file transfer, chatbots, voice over IP, or video chat capabilities.
Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.
Psi is a free instant messaging client for the XMPP protocol which uses the Qt toolkit. It runs on Linux, Windows, macOS and OS/2.
ejabberd is an Extensible Messaging and Presence Protocol (XMPP) application server and an MQ Telemetry Transport (MQTT) broker, written mainly in the Erlang programming language. It can run under several Unix-like operating systems such as macOS, Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris. Additionally, ejabberd can run under Microsoft Windows. The name ejabberd stands for Erlang Jabber Daemon and is written in lowercase only, as is common for daemon software.
Google Talk was an instant messaging service that provided both text and voice communication. The instant messaging service was variously referred to colloquially as Gchat, Gtalk, or Gmessage among its users.
The following is a comparison of instant messaging protocols. It contains basic general information about the protocols.
Skype for Business Server is real-time communications server software that provides the infrastructure for enterprise instant messaging, presence, VoIP, ad hoc and structured conferences and PSTN connectivity through a third-party gateway or SIP trunk. These features are available within an organization, between organizations and with external users on the public internet or standard phones.
Openfire is an instant messaging (IM) and groupchat server for the Extensible Messaging and Presence Protocol (XMPP). It is written in Java and licensed under the Apache License 2.0.
Jingle is an extension to the Extensible Messaging and Presence Protocol (XMPP) which adds peer-to-peer (P2P) session control (signaling) for multimedia interactions such as in Voice over IP (VoIP) or videoconferencing communications. It was designed by Google and the XMPP Standards Foundation. The multimedia streams are delivered using the Real-time Transport Protocol (RTP). If needed, NAT traversal is assisted using Interactive Connectivity Establishment (ICE).
Tigase is an open source project started by Artur Hefczyc in October 2004 to develop an XMPP server implementation in Java.
XMPP Standards Foundation (XSF) is the foundation in charge of the standardization of the protocol extensions of XMPP, the open standard of instant messaging and presence of the IETF.
Prosody is a cross-platform XMPP server written in Lua. Its development goals include low resource usage, ease of use, and extensibility.
Federated VoIP is a form of packetized voice telephony that uses voice over IP between autonomous domains in the public Internet without the deployment of central virtual exchange points or switching centers for traffic routing. Federated VoIP uses decentralized addressing systems, such as ENUM, for location and identity information of participants and implements secure, trusted communications (TLS) for identify verification.
Jabber.org is a public, free instant messaging (IM) and presence service, based on XMPP, an open standard for IM.
Metronome is a light-weight XMPP server written in Lua based on Prosody. It's aimed to provide advanced features while maintaining a modest resource usage. Extensive PubSub and Microblogging over XMPP support along other extensions including: Stream Management, CSI, full support of Bidirectional S2S Streams (BIDI), MAM, Push Notifications, Security Labels, Direct TLS support for C2S/S2S.
The following is a general comparison of notable XMPP clients, which are instant messaging designed for decentralized, standardized, extensible, interoperable, federated, network using the XMPP protocol, which are open standard.
Spark is an open-source instant messaging program that allows users to communicate in real time. It can be integrated with the Openfire server to provide additional features such as controlling various parts of Spark functionality from a central management console and integrating with a proprietary customer support service known as Fastpath, allowing its users to interact with the platform using the Spark client. Being a cross-platform application, it can run on various systems. Installers for Windows, macOS and Linux are available on the official website.
OMEMO is an extension to the Extensible Messaging and Presence Protocol (XMPP) for multi-client end-to-end encryption developed by Andreas Straub. According to Straub, OMEMO uses the Double Ratchet Algorithm "to provide multi-end to multi-end encryption, allowing messages to be synchronized securely across multiple clients, even if some of them are offline". The name "OMEMO" is a recursive acronym for "OMEMO Multi-End Message and Object Encryption". It is an open standard based on the Double Ratchet Algorithm and the Personal Eventing Protocol . OMEMO offers future and forward secrecy and deniability with message synchronization and offline delivery.
Xabber is a XMPP client for the Android Operating System. It is developed as an open source Project on GitHub and is licensed under the GNU GPL v.3 license. The original developers are from a software company called Redsolution, Inc. Xabber is available on the Android Play Store and on F-Droid.
Conversations is a free software, instant messaging client application software for Android. It is largely based on recognized open standards such as the Extensible Messaging and Presence Protocol (XMPP) and Transport Layer Security (TLS).