# Protocol Support

Openfire provides full support for the XMPP protocol defined by RFC 3920 and RFC 3921. In addition to full XMPP support, Openfire also provides support for numerous extensions to XMPP that are defined through the XEP process at xmpp.org. This document provides a summary of that protocol support and is updated for every Openfire release.

This document is broken down into the following sections:

- Basic IM Protocol Suite Support
- Intermediate IM Protocol Suite Support
- List of XEPs Supported
- Footnotes

## Basic IM Protocol Suite Support

The basic suite includes full support of the XMPP RFC's as well as the most common extensions. The table below details the level of support for the requirements set by XEP-0073: Basic IM Protocol Suite.

Specification | Supported
--- | ---
RFC 3920: XMPP Core | Yes
RFC 3921: XMPP IM | Yes
XEP-0030: Service Discovery | Yes
XEP-0077: In-Band Registration | Yes
XEP-0078: Non-SASL Authentication | Yes
XEP-0086: Error Condition Mappings | Yes

## Intermediate IM Protocol Suite Support

The intermediate suite includes the full basic suite as well as more advanced features in common use by XMPP clients. The table below details the level of support for the requirements set by XEP-0117: Intermediate IM Protocol Suite.

Specification | Supported
--- | ---
XEP-0073: Basic IM Protocol Suite | Yes
XEP-0004: Data Forms | Yes
XEP-0020: Feature Negotiation | No
XEP-0045: Multi-User Chat | Yes
XEP-0047: In-Band Bytestreams | Yes
XEP-0065: SOCKS5 Bytestreams | Yes
XEP-0071: XHTML-IM | Yes [1]
XEP-0096: File Transfer | Yes
XEP-0115: Entity Capabilities | Yes [2]

## List of JEPs Supported

The table below lists all JEPs supported by Openfire and indicates which JEPs are part of the Basic or Intermediate Protocol Suites listed above. JEPs that only require client-side support are omitted.

Specification | Suite
--- | ---
XEP-0004: Data Forms | Intermediate
XEP-0012: Last Activity | -
XEP-0013: Flexible Offline Message Retrieval | -
XEP-0030: Service Discovery | Basic
XEP-0033: Extended Stanza Addressing | -
XEP-0045: Multi-User Chat | Intermediate
XEP-0049: Private XML Storage | -
XEP-0050: Ad-Hoc Commands | -
XEP-0054: vcard-temp | -
XEP-0055: Jabber Search [3] | -
XEP-0060: Publish-Subscribe | -
XEP-0065: SOCKS5 Bytestreams | Intermediate
XEP-0077: In-Band Registration | Basic
XEP-0078: Non-SASL Authentication | Basic
XEP-0082: Jabber Date and Time Profiles | -
XEP-0086: Error Condition Mappings | Basic
XEP-0090: Entity Time | -
XEP-0091: Delayed Delivery | -
XEP-0092: Software Version | -
XEP-0096: File Transfer | Intermediate
XEP-0106: JID Escaping | -
XEP-0114: Jabber Component Protocol | -
XEP-0124: HTTP Binding | -
XEP-0128: Service Discovery Extensions | -
XEP-0138: Stream Compression | -
XEP-0175: Best Practices for Use of SASL ANONYMOUS | -

## Footnotes

[1] Some requirements of XEP-0117: Intermediate IM Protocol Suite do not pertain to servers.
[2] The entity capabilities XEP is primarily for clients to implement. However, Openfire does not support an optional server extensions defined by the XEP.
[3] Support for XEP-0055: Jabber Search is provided by the Search plugin.