Openfire: Protocol Support

# Protocol Support

Openfire provides full support for the XMPP protocol defined by RFC 6120 and RFC 6121. 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:

- Core XMPP Server Compliance Support
- Advanced XMPP Server Compliance Support
- List of XEPs Supported
- Footnotes

## Core XMPP Server Compliance Support

The core compliance level 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-0302: XMPP Compliance Suites 2012.

Specification | Supported
--- | ---
RFC 6120: XMPP Core | Yes
RFC 6121: XMPP IM | Yes
RFC 6122: XMPP ADDR | Yes
XEP-0030: Service Discovery | Yes
XEP-0114: Jabber Component Protocol | Yes

## Advanced XMPP Server Compliance Support

The advanced compliance level 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 XMPP Compliance Suites 2012.

Specification | Supported
--- | ---
XEP-0115: Entity Capabilities | Yes
XEP-0191: Blocking Command | No
XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH) | Yes
XEP-0206: XMPP Over BOSH [2] | Yes
XEP-0054: vcard-temp | Yes
XEP-0163: Personal Eventing Protocol | Yes
XEP-0045: Multi-User Chat | Yes
XEP-0198: Stream Management | Partial

## List of XEPs Supported

The table below lists all XEPs supported by Openfire. XEPs that only require client-side support are omitted.

Specification
XEP-0004: Data Forms
XEP-0012: Last Activity
XEP-0013: Flexible Offline Message Retrieval
XEP-0030: Service Discovery
XEP-0033: Extended Stanza Addressing
XEP-0045: Multi-User Chat
XEP-0049: Private XML Storage
XEP-0050: Ad-Hoc Commands
XEP-0054: vcard-temp
XEP-0055: Jabber Search [1]
XEP-0059: Result Set Management
XEP-0060: Publish-Subscribe
XEP-0065: SOCKS5 Bytestreams
XEP-0077: In-Band Registration
XEP-0078: Non-SASL Authentication
XEP-0082: XMPP Date and Time Profiles
XEP-0086: Error Condition Mappings
XEP-0092: Software Version
XEP-0096: File Transfer
XEP-0106: JID Escaping
XEP-0114: Jabber Component Protocol
XEP-0115: Entity Capabilities
XEP-0124: HTTP Binding
XEP-0126: Invisibility
XEP-0128: Service Discovery Extensions
XEP-0138: Stream Compression
XEP-0160: Best Practices for Handling Offline Messages
XEP-0163: Personal Eventing via Pubsub
XEP-0175: Best Practices for Use of SASL ANONYMOUS
XEP-0198: Stream Management (partial)
XEP-0202: Entity Time
XEP-0203: Delayed Delivery
XEP-0280: Message Carbons
XEP-0359: Unique and Stable Stanza IDs
XEP-0410: MUC Self-Ping (Schrödinger's Chat)

## Footnotes

1. Support for XEP-0055: Jabber Search is provided by the Search plugin.
2. The implementation also follows the XMPP WebSocket subprotocol (RFC 7395) specification, which is a standard extension of the WebSocket protocol specification (RFC 6455).