1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-22 22:32:06 +01:00
Smack/documentation/extensions/index.md
2018-02-22 14:54:48 +01:00

14 KiB

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.

Currently supported XEPs of Smack (all subprojects)

Name XEP Description
Nonzas XEP-0360 Defines the term "Nonza", describing every top level stream element that is not a Stanza.

Currently supported XEPs of smack-tcp

Name XEP Description
Stream Management XEP-0198 Allows active management of an XML Stream between two XMPP entities (stanza acknowledgement, stream resumption).

Smack Extensions and currently supported XEPs of 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.
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.
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 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.
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.
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.
Jingle XEP-0116 Initiate and manage sessions between two XMPP entities.
Data Forms Validation XEP-0122 Enables an application to specify additional validation guidelines .
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.
Personal Eventing Protocol XEP-0163 Using the XMPP publish-subscribe protocol to broadcast state change events associated with an XMPP account.
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 Communications blocking that is intended to be simpler than privacy lists (XEP-0016).
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.
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.
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.
Last Message Correction XEP-0308 Provides a method for indicating that a message is a correction of the last sent message.
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 of 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.
Message Archive Management XEP-0313 Query and control an archive of messages stored on a server.
Internet of Things - Sensor Data XEP-0323 Sensor data interchange over XMPP.
Internet of Things - Provisioning XEP-0324 Provisioning, access rights and user priviliges for the Internet of Things.
Internet of Things - Control XEP-0325 Describes how to control devices or actuators in an XMPP-based sensor netowrk.
HTTP over XMPP transport XEP-0332 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.
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.
HTTP File Upload XEP-0363 Protocol to request permissions to upload a file to an HTTP server and get a shareable URL.
Spoiler Messages XEP-0382 Indicate that the body of a message should be treated as a spoiler
Multi-User Chat Light XEP-xxxx Multi-User Chats for mobile XMPP applications and specific enviroment.
OMEMO Multi End Message and Object Encryption XEP-XXXX Encrypt messages using OMEMO encryption (currently only with smack-omemo-signal -> GPLv3).
Consistent Color Generation XEP-0392 Generate consistent colors for identifiers like usernames to provide a consistent user experience.
Google GCM JSON payload n/a Semantically the same as XEP-0335: JSON Containers
Message Markup XEP-0394 Style message bodies while keeping body and markup information separated.

Legacy Smack Extensions and currently supported XEPs of smack-legacy

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

Name XEP Description
Message Events XEP-0022 Requests and responds to message events.
Roster Item Exchange XEP-0093 Allows roster data to be shared between users.