Get Started. It's Free
or sign up with your email address
XMPP by Mind Map: XMPP

1. extensions

1.1. XEP-0001: Extension Protocols

1.1.1. Procedure for accepting/progressing Extension proposals

1.2. XEP-0009: Jabber RPC

1.3. XEP-0030: Service Discovery

1.3.1. A requesting entity may want to discover information about another entity on the network.

1.3.1.1. The target entity's identity

1.3.1.2. The features offered and protocols supported by the target entity.

1.3.2. requesting entity MUST send an IQ stanza of type "get",

1.3.3. Discovering Items

1.4. XEP-0004: Data Forms

1.5. XEP-0077: In-Band Registration

1.6. XEP-0085: Chat State Notifications

1.6.1. Announce through XEP-0030

1.6.1.1. feature of "http://jabber.org/protocol/chatstates":

1.7. XEP-0126: Invisibility

1.8. XEP-0128: Service Discovery Extensions

1.9. XEP-0133: Service Administration

1.10. XEP-0050: Ad-Hoc Commands

1.10.1. Discovering Items

1.10.1.1. Commands

1.10.1.2. Command Information i.e. 'config'

1.10.2. Executing Commands

1.11. XEP-0141: Data Forms Layout

1.12. XEP-0144: Roster Item Exchange

1.13. XEP-0155: Stanza Session Negotiation

1.13.1. This specification defines an XMPP protocol extension for exchanging contact list items, including the ability to suggest whether the item is to be added, deleted, or modified in the contact list of the recipient, as well as the suggested roster group for the item.

1.14. XEP-0156: Discovering Alternative XMPP Connection Methods

1.15. XEP-0158: CAPTCHA Forms

1.16. XEP-0163: Personal Eventing Protocol

1.16.1. This specification defines semantics for using the XMPP publish-subscribe protocol to broadcast state change events associated with an instant messaging and presence account. This profile of pubsub therefore enables a standard XMPP user account to function as a virtual pubsub service, easing the discovery of syndicated data and event notifications associated with such an account.

1.17. XEP-0166: Jingle

1.17.1. This specification defines an XMPP protocol extension for initiating and managing peer-to-peer media sessions between two XMPP entities in a way that is interoperable with existing Internet standards. The protocol provides a pluggable model that enables the core session management semantics (compatible with SIP) to be used for a wide variety of application types (e.g., voice chat, video chat, file transfer) and with a wide variety of transport methods (e.g., TCP, UDP, ICE, application-specific transports).

1.18. XEP-0167: Jingle RTP Sessions

1.19. XEP-0172: User Nickname

1.20. XEP-0174: Serverless Messaging

1.20.1. This specification defines how to communicate over local or wide-area networks using the principles of zero-configuration networking for endpoint discovery and the syntax of XML streams and XMPP messaging for real-time communication. This method uses DNS-based Service Discovery and Multicast DNS to discover entities that support the protocol, including their IP addresses and preferred ports. Any two entities can then negotiate a serverless connection using XML streams in order to exchange XMPP message and IQ stanzas.

1.21. XEP-0182: Application-Specific Error Conditions

1.22. XEP-0184: Message Receipts

1.22.1. This specification defines an XMPP protocol extension for message receipts, whereby the sender of a message can request notification that it has been received by the intended recipient.

1.23. XEP-0191: Simple Communications Blocking

1.24. XEP-0199: XMPP Ping

1.25. XEP-0202: Entity Time

1.26. XEP-0203: Delayed Delivery

1.26.1. This specification defines an XMPP protocol extension for communicating the fact that an XML stanza has been delivered with a delay, for example because a message has been stored on a server while the intended recipient was offline or because a message is contained in the history of a multi-user chat room.

1.27. XEP-0222: Persistent Storage of Public Data via PubSub

1.28. XEP-0223: Persistent Storage of Private Data via PubSub

1.29. XEP-0224: Attention

1.30. XEP-0237: Roster Versioning

1.31. XEP-0045: Multi-User Chat

1.32. XEP-0245: The /me Command

1.33. XEP-0249: Direct MUC Invitations

1.34. XEP-0256: Last Activity in Presence

1.35. XEP-0060: Publish-Subscribe

1.35.1. This specification defines an XMPP protocol extension for generic publish-subscribe functionality. The protocol enables XMPP entities to create nodes (topics) at a pubsub service and publish information at those nodes; an event notification (with or without payload) is then broadcasted to all entities that have subscribed to the node. Pubsub therefore adheres to the classic Observer design pattern and can serve as the foundation for a wide variety of applications, including news feeds, content syndication, rich presence, geolocation, workflow systems, network management systems, and any other application that requires event notifications

1.36. XEP-0248: PubSub Collection Nodes

1.37. XEP-0115: Entity Capabilities

1.37.1. This document defines an XMPP protocol extension for broadcasting and dynamically discovering client, device, or generic entity capabilities. In order to minimize network impact, the transport mechanism is standard XMPP presence broadcast (thus forestalling the need for polling related to service discovery data), the capabilities information can be cached either within a session or across sessions, and the format has been kept as small as possible.

1.37.2. Use Cases

1.37.2.1. Advertising Capabilities

1.37.2.2. Discovering Capabilities

1.38. XEP-0114: Jabber Component Protocol

1.38.1. This specification documents the existing protocol used for communication between servers and "external" components over the Jabber network

2. CORE

2.1. XMPP Core (RFC-3920)

2.1.1. Client

2.1.1.1. Multiple resources (e.g., devices or locations) MAY connect simultaneously to a server on behalf of each authorized client, with each resource differentiated by the resource identifier of an XMPP address (e.g., <node@domain/ home> vs. <node@domain/work>)

2.1.1.2. RECOMMENDED port for connections between a clientand a server is 5222

2.1.2. Stanza

2.1.2.1. Stanzas

2.1.2.1.1. <presence/>

2.1.2.1.2. <message/>

2.1.2.1.3. <iq/>

2.1.2.2. Encapsulated through XML stream

2.1.2.3. common attributes

2.1.2.3.1. 'to'

2.1.2.3.2. 'from'

2.1.2.3.3. 'id'

2.1.2.3.4. 'type'

2.1.2.3.5. 'xml:lang'

2.1.2.4. errors

2.1.2.4.1. <bad-request/>

2.1.2.4.2. <conflict/>

2.1.2.4.3. <feature-not-implemented/>

2.1.2.4.4. <forbidden/>

2.1.2.4.5. <gone/>

2.1.2.4.6. <internal-server-error/>

2.1.2.4.7. <item-not-found/>

2.1.2.4.8. <jid-malformed/>

2.1.2.4.9. <not-acceptable/>

2.1.2.4.10. <not-allowed/>

2.1.2.4.11. <not-authorized/>

2.1.2.4.12. <payment-required/>

2.1.2.4.13. <recipient-unavailable/>

2.1.2.4.14. <redirect/>

2.1.2.4.15. <registration-required/>

2.1.2.4.16. <remote-server-not-found/>

2.1.2.4.17. <remote-server-timeout/>

2.1.2.4.18. <resource-constraint/>

2.1.2.4.19. <service-unavailable/>

2.1.2.4.20. <subscription-required/>

2.1.2.4.21. <undefined-condition/>

2.1.2.4.22. <unexpected-request/>

2.1.3. XML Stream

2.1.3.1. attributes

2.1.3.1.1. 'to'

2.1.3.1.2. 'from'

2.1.3.1.3. 'id'

2.1.3.1.4. 'xml:lang'

2.1.3.1.5. 'version'

2.1.3.2. error conditions

2.1.3.2.1. <bad-format/>

2.1.3.2.2. <bad-namespace-prefix/>

2.1.3.2.3. <conflict/>

2.1.3.2.4. <connection-timeout/>

2.1.3.2.5. <host-gone/>

2.1.3.2.6. <host-unknown/>

2.1.3.2.7. <improper-addressing/>

2.1.3.2.8. <internal-server-error/>

2.1.3.2.9. <invalid-from/>

2.1.3.2.10. <invalid-id/>

2.1.3.2.11. <invalid-namespace/>

2.1.3.2.12. <invalid-xml/>

2.1.3.2.13. <not-authorized/>

2.1.3.2.14. <policy-violation/>

2.1.3.2.15. <remote-connection-failed/>

2.1.3.2.16. <resource-constraint/>

2.1.3.2.17. <restricted-xml/>

2.1.3.2.18. <see-other-host/>

2.1.3.2.19. <system-shutdown/>

2.1.3.2.20. <undefined-condition/>

2.1.3.2.21. <unsupported-encoding/>

2.1.3.2.22. <unsupported-stanza-type/>

2.1.3.2.23. <unsupported-version/>

2.1.3.2.24. <xml-not-well-formed/>

2.2. XMPP Core (RFC-3921)