/** * * Copyright 2015-2023 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Smack's API for XMPP extensions. *
* The XMPP protocol includes a base protocol and many optional extensions typically documented as "XEPs". Smack * provides the {@link org.jivesoftware.smack} package for the core XMPP protocol and the {@link org.jivesoftware.smackx * package} for many of the protocol extensions. *
*Name | *XEP | *Smack API | *Description | *
---|---|---|---|
Data Forms | *XEP-0004 | *{@link 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 | *{@link 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 | *{@link 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 | *{@link 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 | *{@link org.jivesoftware.smackx.caps.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 | *{@link org.jivesoftware.smackx.blocking.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 | *{@link org.jivesoftware.smackx.thumbnails.element} | *Defines a way for a client to supply a preview image for Jingle content. | *
Message Carbons | *XEP-0280 | *{@link 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 | *{@link 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 | *{@link org.jivesoftware.smack.packet.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 | *{@link org.jivesoftware.smackx.colors.ConsistentColor} | *Generate consistent colors for identifiers like usernames to provide a consistent user experience. | *
Message Markup | *XEP-0394 | *{@link 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 | *{@link 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 | *