# Jive Messenger Protocol Support

A major goal of the Jive Messenger project is to provide full support for the XMPP specifications defined by RFC 3920 and RFC 3921. In addition to full XMPP support, we are also working to provide 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 Jive Messenger 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 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 table below details the level of support for the requirements set by JEP-0117: Intermediate IM Protocol Suite [1].

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 [3]
JEP-0096: File Transfer | No
JEP-0115: Entity Capabilities | No

## List of JEPs Supported

The table below lists all JEPs supported by Jive Messenger 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-0054: vcard-temp | -
JEP-0055: Jabber Search [2] | -
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 | -

## Notes on RFC 3920: XMPP Core

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

- TLS (RFC3920.5) -- Jive Messenger provides support for a dedicated TLS/SSL port (5223) as used by the older "Jabber" protocol but does not currently support TLS stream-negotiation as described in XMPP.
- Resource Binding (RFC3920.7)
- SASL (RFC33920.6) -- Jive Messenger currently relies on non-SASL authentication (JEP-0078) for authentication.

## Notes on RFC 3921: XMPP IM

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

- Privacy Lists (RFC3921.10)

## Footnotes

[1] JEP-0117: Intermediate IM Protocol Suite is currently an experimental proposal, but it provides a good roadmap for future development.
[2] Support for JEP-0055: Jabber Search is provided by the Search plugin.
[3] Some requirements of JEP-0117: Intermediate IM Protocol Suite do not pertain to servers.