Smack Extensions User Manual

The XMPP protocol includes a base protocol and many optional extensions typically documented as "XEP's". Smack provides the org.jivesoftware.smack package for the core XMPP protocol, and the org.jivesoftware.smackx package for many of the protocol extensions.

This manual provides details about each of the "smackx" extensions, including what it is, how to use it, and some simple example code.

Smack Extensions and currently supported XEPs by Smack (smack-extensions)

Name XEP Description
Data Forms XEP-0004 Allows to gather data using Forms.
Last Activity XEP-0012 Communicating information about the last activity associated with an XMPP entity.
Flexible Offline Message Retrieval XEP-0013 Extension for flexible, POP3-like handling of offline messages.
Privacy Lists XEP-0016 Enabling or disabling communication with other entities.
Message Events XEP-0022 Requests and responds to message events.
Service Discovery XEP-0030 Allows to discover services in XMPP entities.
Extended Stanza Addressing XEP-0033 Allows to include headers in stanzas in order to specifiy multiple recipients or sub-addresses.
Multi User Chat XEP-0045 Allows configuration of, participation in, and administration of individual text-based conference rooms.
In-Band Bytestreams XEP-0047 Enables any two entities to establish a one-to-one bytestream between themselves using plain XMPP.
Bookmarks XEP-0048 Bookmarks, for e.g. MUC and web pages.
Private Data XEP-0049 Manages private data.
Ad-Hoc Commands XEP-0050 Advertising and executing application-specific commands.
vcard-temp XEP-0054 The vCard-XML format currently in use.
Jabber Search XEP-0055 Search information repositories on the XMPP network.
PubSub XEP-0060 Generic publish and subscribe functionality.
SOCKS5 Bytestrams XEP-0065 Out-of-band bytestream between any two XMPP entities.
XHTML-IM XEP-0071 Allows send and receiving formatted messages using XHTML.
In-Band Registration XEP-0077 In-band registration with XMPP services.
Advanced Message Processing XEP-0079 Enables entities to request, and servers to perform, advanced processing of XMPP message stanzas.
XMPP Date Time Profiles XEP-0082 Standardization of Date and Time representation in XMPP.
Chat State Notifications XEP-0085 Communicating the status of a user in a chat session.
Time Exchange XEP-0090 Allows local time information to be shared between users.
Software Version XEP-0092 Retrieve and announce the software application of an XMPP entity.
Stream Initation XEP-0095 Initiating a data stream between any two XMPP entities.
SI File Transfer XEP-0096 Transfer files between two users over XMPP.
Entity Capabilities XEP-0115 Broadcasting and dynamic discovery of entity capabilities.
Stream Compression XEP-0138 Support for optional compression of the XMPP stream.
Personal Eventing Protocol XEP-0163 Using the XMPP publish-subscribe protocol to broadcast state change events associated with a XMPP account.
Message Delivery Receipts XEP-0184 Extension for message delivery receipts. The sender can request notification that the message has been delivered.
XMPP Ping XEP-0199 Sending application-level pings over XML streams.
Entity Time XEP-0202 Allows entities to communicate their local time
Delayed Delivery XEP-0203 Extension for communicating the fact that an XML stanza has been delivered with a delay.
XMPP Over BOSH XEP-0206 Use Bidirectional-streams Over Synchronous HTTP (BOSH) to transport XMPP stanzas.
Group Chat Invitations n/a Send invitations to other users to join a group chat room.
Jive Properties n/a TODO

Experimental Smack Extensions and currently supported XEPs by Smack (smack-experimental)

Name XEP Description
Message Carbons XEP-0280 Keep all IM clients for a user engaged in a conversation, by carbon-copy outbound messages to all interested resources.
HTTP over XMPP transport XEP-0332 Allows to transport HTTP communication over XMPP peer-to-peer networks.

Legacy Smack Extensions and currently supported XEPs by Smack (smack-legacy)

If a XEP becomes 'Deprecated' or 'Obsolete' the code will be moved to the smack-legacy subproject.

Name XEP Description
Roster Item Exchange XEP-0093 Allows roster data to be shared between users.