Protocols Implementation

This table lists the protocols that a Jabber/XMPP server can implement, and which ones are implemented in ejabberd up to the ejabberd 15.06 release, or contributions. This list only includes protocols that require explicit implementation in the server side.

It is assumed that protocols are draft or final standards. Otherwise, it is explicitly stated that it's experimental, retracted, deferred, rejected or obsolete.

Protocol Title Implemented Comments
RFC-3261 SIP proxy/registrar yes since 14.05 mod_sip
RFC-3920 XMPP: Core (obsolete -> RFC-6120) yes
RFC-3921 XMPP: Instant Messaging and Presence (obsolete -> RFC-6121) yes
RFC-6120 XMPP: Core maybe
RFC-6121 XMPP: Instant Messaging and Presence maybe
RFC-6122 XMPP: Address Format maybe
RFC-5802 Salted Challenge Response (SCRAM) SASL and GSS-API Mechanism yes since 2.1.9 EJAB-1196
RFC-5766 TURN: Traversal Using Relays around NAT yes since 14.05 ejabberd_stun
RFC-6455 The WebSocket protocol yes since 15.03 ejabberd_websocket (EJAB-1305)
XEP-0004 Data Forms yes ?
XEP-0009 Jabber-RPC compatible
XEP-0012 Last Activity yes mod_last
XEP-0013 Flexible Offline Message Retrieval no -
XEP-0016 Privacy Lists yes (1.4) mod_privacy
XEP-0018 Invisible Presence (rejected) yes in 2.1.x,
no since 3.0.0
ejabberd_c2s (EJAB-810)
XEP-0020 Feature Negotiation no -
XEP-0022 Message Events (obsolete -> XEP-0085) yes mod_offline
XEP-0023 Message Expiration (obsolete -> XEP-0079) yes mod_offline
XEP-0025 Jabber HTTP Polling (obsolete -> XEP-0124) yes in older
no since 15.04
XEP-0030 Service Discovery yes mod_disco
XEP-0033 Extended Stanza Addressing yes since 3.0.0 mod_multicast (EJAB-265)
XEP-0039 Statistics Gathering (deferred) yes mod_stats
XEP-0045 Multi-User Chat yes mod_muc
XEP-0047 In-Band Bytestreams compatible
XEP-0048 Bookmarks compatible (xep-60, xep-49)
XEP-0049 Private XML Storage yes mod_private
XEP-0050 Ad-Hoc Commands yes mod_adhoc
XEP-0054 vcard-temp yes mod_vcard
XEP-0055 Jabber Search yes mod_vcard
XEP-0059 Result Set Management yes since 2.1.0 EJAB-807
XEP-0060 Publish-Subscribe yes mod_pubsub
XEP-0065 SOCKS5 Bytestreams yes mod_proxy65
XEP-0066 Out of Band Data compatible
XEP-0068 Field Standardization for Data Forms yes
XEP-0070 Verifying HTTP Requests via Jabber no -
XEP-0071 XHTML-IM compatible -
XEP-0072 SOAP Over XMPP compatible -
XEP-0077 In-Band Registration yes mod_register
XEP-0078 Non-SASL Authentication (deprecated -> RFC 3920) yes ejabberd_c2s
XEP-0079 Advanced Message Processing contrib EJAB-449
XEP-0082 XMPP Date and Time Profiles yes since 2.1.0
XEP-0083 Nested Roster Groups compatible (xep-49)
XEP-0085 Chat State Notifications yes since 2.1.0 mod_client_state
XEP-0086 Error Condition Mappings (deprecated) yes ?
XEP-0090 Legacy Entity Time (obsolete -> XEP-0202) yes in older
no since 15.05
mod_time (EJAB-849)
XEP-0091 Legacy Delayed Delivery (obsolete -> XEP-0203) yes in older
no since 15.05
XEP-0092 Software Version yes (1.0) mod_version
XEP-0106 JID Escaping yes EJAB-81
XEP-0114 Jabber Component Protocol yes ejabberd_service
XEP-0115 Entity Capabilities yes (1.5 since 2.1.4) mod_caps
XEP-0124 Bidirectional-streams Over Synchronous HTTP (BOSH) - HTTP Binding yes ejabberd_http_bind
XEP-0128 Service Discovery Extensions no -
XEP-0130 Waiting Lists no -
XEP-0131 Stanza Headers and Internet Metadata no -
XEP-0133 Service Administration yes (1.1) mod_announce, mod_configure
XEP-0136 Message Archiving contrib mod_archive
XEP-0137 Publishing SI Requests no -
XEP-0138 Stream Compression yes ejabberd_zlib
XEP-0145 Annotations compatible -
XEP-0154 User Profile (deferred) contrib EJAB-683
XEP-0157 Contact Addresses for XMPP Services yes since 2.1.0 EJAB-235
XEP-0158 CAPTCHA Forms yes since 2.1.0 ejabberd_captcha
XEP-0160 Best Practices for Handling Offline Messages yes mod_offline
XEP-0163 Personal Eventing Protocol yes mod_pubsub
XEP-0170 Recommended Order of Stream Feature Negotiation yes ? (EJAB-499)
XEP-0172 User Nickname no - (EJAB-78)
XEP-0175 Best Practices for Use of SASL ANONYMOUS yes cyrsasl_anonymous
XEP-0176 Jingle ICE-UDP Transport Method STUN in 2.1.0 ejabberd_stun, EJAB-1008
XEP-0178 Best Practices for Use of SASL EXTERNAL no -
XEP-0185 Dialback Key Generation and Validation ? -
XEP-0190 Best Practice for Closing Idle Streams ? -
XEP-0191 Simple Communication Blocking yes since 2.1.7 mod_blocking, EJAB-695
XEP-0193 Proposed Resource Binding Improvements (deprecated) contrib EJAB-430
XEP-0198 Stream Management yes since 14.05 EJAB-532
XEP-0199 XMPP Ping yes since 2.1.0 mod_ping, EJAB-974
XEP-0202 Entity Time yes since 2.1.0 mod_time
XEP-0203 Delayed Delivery yes since 2.1.0
XEP-0206 XMPP Over BOSH yes ejabberd_http_bind
XEP-0205 Best Practices to Discourage Denial of Service Attacks partially -
XEP-0212 XMPP Basic Server 2008 yes (1.0) -
XEP-0215 External Service Discovery (deferred) no (EJAB-1181)
XEP-0216 XMPP Intermediate Server 2008 yes (1.0) -
XEP-0220 Server Dialback (experimental) yes ejabberd_s2s
XEP-0223 Persistent Storage of Private Data via PubSub partially
XEP-0225 Component Connections (deferred) no (EJAB-1253)
XEP-0227 Portable Import/Export Format for XMPP-IM Servers (proposed) yes (0.2) in 2.1.0 ejabberd_piefxis, EJAB-993, (EJAB-1073)
XEP-0237 Roster Versioning yes since 2.1.0 mod_roster, EJAB-964
XEP-0243 XMPP Server Compliance 2009 yes (1.0) -
XEP-0248 PubSub Collection Nodes (deferred) yes since 2.1.0 mod_pubsub (EJAB-814)
XEP-0270 XMPP Compliance Suites 2010 yes since 2.1.7
XEP-0278 Jingle Relay Nodes (experimental) contrib mod_jinglenodes
XEP-0279 Server IP Check (deferred) yes since 2.1.3 EJAB-1205
XEP-0280 Message Carbons yes (0.8 since 13.06) mod_carboncopy.erl
XEP-0302 XMPP Compliance Suites 2012
XEP-0313 Message Archive Management yes (0.3 since 15.06) mod_mam.erl
XEP-0321 Remote Roster Management yes since 14.05
XEP-0352 Client State Indication yes since 14.12 mod_client_state.erl

The field 'Implemented' can provide this information:

  • no: the protocol isn't implemented in ejabberd, and no known patch is known to implement it
  • contrib: the protocol isn't implemented in any ejabberd stable release. But there is a contributed implementation, that you can find following a link and install in your server.
  • yes: the protocol is implemented since many time ago.
  • yes since 2.1.0: the protocol is implemented since the version 2.1.0 and newer.
  • yes (1.1): the protocol is implemented since many time ago. The most recent ejabberd release provides support for the protocol version 1.1
  • yes (xep-xxxx): the protocol does not need server implementation, but depends on other XEP that ejabberd implements.
  • compatible: the protocol does not need any specific server support, so it works correctly with ejabberd.

Protocols supported by