Package org.jivesoftware.smackx

Smack's API for XMPP extensions.

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

XEPs supported by Smack
Name XEP Smack API Description
Data Forms XEP-0004 org.jivesoftware.smackx.xdata 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 org.jivesoftware.smackx.privacy 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 org.jivesoftware.smackx.muc 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.
Result Set Management XEP-0059 Page through and otherwise manage the receipt of large result sets
PubSub XEP-0060 Generic publish and subscribe functionality.
SOCKS5 Bytestreams XEP-0065 Out-of-band bytestream between any two XMPP entities.
Field Standardization for Data Forms XEP-0068 Standardized field variables used in the context of jabber:x:data forms.
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.
User Location XEP-0080 Enabled communicating information about the current geographical or physical location of an entity.
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.
Roster Item Exchange XEP-0093 Allows roster data to be shared between users.
Stream Initiation XEP-0095 Initiating a data stream between any two XMPP entities.
SI File Transfer XEP-0096 Transfer files between two users over XMPP.
URL Address Information XEP-0103 org.jivesoftware.smackx.urldata.element Provide information about an Uniform Resource Locator (URL), and a protocol signaling retrieval states.
HTTP Scheme for URL Data XEP-0104 A schema description for detailed information about HTTP URLs.
User Mood XEP-0107 Communicate the users current mood.
Entity Capabilities XEP-0115 EntityCapsManager Broadcasting and dynamic discovery of entity capabilities.
User Tune XEP-0118 Defines a payload format for communicating information about music to which a user is listening.
Data Forms Validation XEP-0122 Enables an application to specify additional validation guidelines.
Stanza Headers and Internet Metadata (SHIM) XEP-0131 Add Metadata Headers to Stanzas.
Service Administration XEP-0133 Recommended best practices for service-level administration of servers and components using Ad-Hoc Commands.
Stream Compression XEP-0138 Support for optional compression of the XMPP stream.
Data Forms Layout XEP-0141 Enables an application to specify form layouts.
Discovering Alternative XMPP Connection Methods XEP-0156 Defines ways to discover alternative connection methods.
Personal Eventing Protocol XEP-0163 Using the XMPP publish-subscribe protocol to broadcast state change events associated with an XMPP account.
Jingle XEP-0166 Initiate and manage sessions between two XMPP entities.
User Nickname XEP-0172 Communicate user nicknames.
Message Delivery Receipts XEP-0184 Extension for message delivery receipts. The sender can request notification that the message has been delivered.
Blocking Command XEP-0191 BlockingCommandManager Communications blocking that is intended to be simpler than privacy lists (XEP-0016).
Stream Management XEP-0198 Allows active management of an XML Stream between two XMPP entities (stanza acknowledgement, stream resumption).
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.
Data Forms Media Element XEP-0221 Allows to include media data in XEP-0004 data forms.
Attention XEP-0224 Getting attention of another user.
Bits of Binary XEP-0231 Including or referring to small bits of binary data in an XML stanza.
Software Information XEP-0232 Allows an entity to provide detailed data about itself in Service Discovery responses.
Roster Versioning XEP-0237 Efficient roster synchronization.
Direct MUC Invitations XEP-0249 Allows sending a MUC invitation directly from the user to the contact with mediation by the room.
Jingle Content Thumbnails XEP-0264 org.jivesoftware.smackx.thumbnails.element Defines a way for a client to supply a preview image for Jingle content.
Message Carbons XEP-0280 org.jivesoftware.smackx.carbons Keep all IM clients for a user engaged in a conversation, by carbon-copy outbound messages to all interested resources.
Best Practices for Resource Locking XEP-0296 Specifies best practices to be followed by Jabber/XMPP clients about when to lock into, and unlock away from, resources.
Stanza Forwarding XEP-0297 Allows forwarding of Stanzas.
Last Message Correction XEP-0308 Provides a method for indicating that a message is a correction of the last sent message.
Message Archive Management XEP-0313 Query and control an archive of messages stored on a server.
Data Forms XML Element XEP-0315 Allows to include XML-data in XEP-0004 data forms.
Last User Interaction in Presence XEP-0319 Communicate time of last user interaction via XMPP presence notifications.
Internet of Things - Sensor Data XEP-0323 Sensor data interchange over XMPP.
Internet of Things - Provisioning XEP-0324 Provisioning, access rights and user privileges for the Internet of Things.
Internet of Things - Control XEP-0325 Describes how to control devices or actuators in an XMPP-based sensor network.
Jid Prep XEP-0328 Describes a way for an XMPP client to request an XMPP server to prep and normalize a given JID.
HTTP over XMPP transport XEP-0332 org.jivesoftware.smackx.hoxt Allows to transport HTTP communication over XMPP peer-to-peer networks.
Chat Markers XEP-0333 A solution of marking the last received, displayed and acknowledged message in a chat.
Message Processing Hints XEP-0334 Hints to entities routing or receiving a message.
JSON Containers XEP-0335 Encapsulation of JSON data within XMPP Stanzas.
Internet of Things - Discovery XEP-0347 Describes how Things can be installed and discovered by their owners.
Data Forms Geolocation Element XEP-0350 Allows to include XEP-0080 gelocation data in XEP-0004 data forms.
Client State Indication XEP-0352 A way for the client to indicate its active/inactive state.
Push Notifications XEP-0357 Defines a way to manage push notifications from an XMPP Server.
Stable and Unique Stanza IDs XEP-0359 This specification describes unique and stable IDs for messages.
Nonzas XEP-0360 Nonza Defines the term “Nonza”, describing every top level stream element that is not a Stanza.
HTTP File Upload XEP-0363 Protocol to request permissions to upload a file to an HTTP server and get a shareable URL.
References XEP-0372 Add references like mentions or external data to stanzas.
Explicit Message Encryption XEP-0380 Mark a message as explicitly encrypted.
OpenPGP for XMPP XEP-0373 Utilize OpenPGP to exchange encrypted and signed content.
OpenPGP for XMPP: Instant Messaging XEP-0374 OpenPGP encrypted Instant Messaging.
Spoiler Messages XEP-0382 Indicate that the body of a message should be treated as a spoiler.
OMEMO Multi End Message and Object Encryption XEP-0384 Encrypt messages using OMEMO encryption (currently only with smack-omemo-signal -> GPLv3).
Consistent Color Generation XEP-0392 ConsistentColor Generate consistent colors for identifiers like usernames to provide a consistent user experience.
Message Markup XEP-0394 org.jivesoftware.smackx.message_markup.element Style message bodies while keeping body and markup information separated.
DNS Queries over XMPP (DoX) XEP-0418 Send DNS queries and responses over XMPP.
Stanza Content Encryption XEP-0420 End-to-end encryption of arbitrary extension elements. Smack provides elements and providers to be used by encryption mechanisms.
Message Fastening XEP-0422 Mark payloads on a message to be logistically fastened to a previous message.
Message Retraction XEP-0424 Mark messages as retracted.
Fallback Indication XEP-0428 Declare body elements of a message as ignorable fallback for naive legacy clients.
File metadata element XEP-0446 org.jivesoftware.smackx.file_metadata.element Defines a generic file metadata element to be used in other specifications.
Google GCM JSON payload Semantically the same as XEP-0335: JSON Containers.
Multi-User Chat Light XEP-MUCLIGHT Multi-User Chats for mobile XMPP applications and specific environment.
Jive Properties TODO