# Wildfire Protocol Support

A major goal of the Wildfire project is to provide full support for the XMPP specifications 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
- Notes on RFC 3920: XMPP Core
- Notes on RFC 3921: XMPP IM
- 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/No (see below)
RFC 3921: XMPP IM | Yes/No (see below)
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 | No
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 | No
JEP-0071: XHTML-IM | Yes [1]
JEP-0096: File Transfer | No
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-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-0077: In-Band Registration | Basic
JEP-0078: Non-SASL Authentication | Basic
JEP-0086: Error Condition Mappings | Basic
JEP-0090: Entity Time | -
JEP-0091: Delayed Delivery | -
JEP-0092: Software Version | -
JEP-0114: Jabber Component Protocol | -
JEP-0128: Service Discovery Extensions | -
JEP-0138: Stream Compression | -

## Notes on RFC 3920: XMPP Core

Wildfire has full support for the XMPP Core specification (RFC 3920), except for the items listed below:

- TLS (RFC3920.5) -- Jive Wildfire provides support for client-to-server (c2s) TLS streams as defined in the RFC, but does not currently provide support for TLS between servers (s2s).
- SASL (RFC33920.6) -- Wildfire provides support for client-to-server (c2s) SASL authentication, but does not currently provide support for SASL between servers (s2s).

## Notes on RFC 3921: XMPP IM

Wildfire has full support for the XMPP IM specification (RFC 3921), except for the item listed below:

- Privacy Lists (RFC3921.10)

## 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.