# Protocol Support

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

This document is broken down into the following sections:

- Basic IM Protocol Suite Support
- Intermediate IM Protocol Suite Support
- List of JEPs 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 JEP-0073: Basic IM Protocol Suite.

Specification | Supported
--- | ---
RFC 3920: XMPP Core | Yes
RFC 3921: XMPP IM | Yes
JEP-0030: Service Discovery | Yes
JEP-0077: In-Band Registration | Yes
JEP-0078: Non-SASL Authentication | Yes
JEP-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 JEP-0117: Intermediate IM Protocol Suite.

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

## List of JEPs Supported

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

## Footnotes

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