RFC 3920:Extensible Messaging and Presence Protoco...
RFC-Ref

XMPP


Click on the red underlined text to get to the source

... The Extensible Messaging and Presence Protocol (XMPP) is an open Extensible Markup Language [XML ...
... syntax and semantics were developed originally within the Jabber open-source community, mainly in 1999. In 2002, the XMPP WG was chartered with developing an adaptation of the Jabber ...
... instant messaging (IM) and presence technology. As a result of work by the XMPP WG, the current memo defines the core features of XMPP ...
... XMPP WG, the current memo defines the core features of XMPP 1.0; the extensions required to provide the instant messaging and presence functionality defined in RFC 2779 [IMP-REQS ...
... are specified in the Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence [XMPP-IM]. ...


... Although XMPP is not wedded to any specific network architecture, to date it usually has been implemented via a client-server architecture ...
... client-server architecture wherein a client utilizing XMPP accesses a server over a [TCP] connection ...
... high-level overview of this architecture (where "-" represents communications that use XMPP and "=" represents communications that use any other protocol). ...
... The symbols are as follows: o C1, C2, C3 = XMPP clients ...
... clients o S1, S2 = XMPP servers o G1 = A gateway ...
... o G1 = A gateway that translates between XMPP and the protocol(s) used on a foreign (non-XMPP) messaging network ...
... gateway that translates between XMPP and the protocol(s) used on a foreign (non-XMPP) messaging network ...
... A server acts as an intelligent abstraction layer for XMPP communications. Its primary responsibilities are: ...
... XML streams Most XMPP-compliant servers also assume responsibility for the storage of data that is used by clients (e.g., contact lists for ...
... storage of data that is used by clients (e.g., contact lists for users of XMPP-based instant messaging and presence applications); in this case, the XML data ...
... TCP] connection and use XMPP to take full advantage of the functionality provided by a server and any associated services. Multiple resources (e.g., ...
... client, with each resource differentiated by the resource identifier of an XMPP address (e.g., <node@domain ...
... server-side service whose primary function is to translate XMPP into the protocol used by a foreign (non-XMPP) messaging system ...
... primary function is to translate XMPP into the protocol used by a foreign (non-XMPP) messaging system, as well as to translate the return data back into XMPP ...
... XMPP) messaging system, as well as to translate the return data back into XMPP. Examples are gateways to email (see [SMTP ...


... endpoint (i.e., an ID on the network) and that can communicate using XMPP. All such entities are uniquely addressable in a form that is consistent with RFC 2396(-> 3986std66) ...
... URI]. For historical reasons, the address of an XMPP entity is called a Jabber Identifier or JID ...
... domain; within instant messaging and presence applications of XMPP, this address is called a "bare JID" and is of the form ...


... XML stanzas sent over the two XML streams. However, this perspective is a convenience only; XMPP does not deal in documents but in XML streams and XML stanzas ...
... HTTP]), this specification defines a binding of XMPP to TCP only. In the context of ...
... When negotiating XML streams in XMPP 1.0, TLS SHOULD be used as defined under Use of TLS ...
... language version | signals XMPP 1.0 support | signals XMPP 1.0 support ...
... version | signals XMPP 1.0 support | signals XMPP 1.0 support ...
... The version of XMPP specified herein is "1.0"; in particular, this encapsulates the stream ...
... semantics of the three defined XML stanza types (<message/>, <presence/>, and <iq/>). The numbering scheme for XMPP versions is "<major>.<minor>". The major and minor numbers MUST be treated as ...
... "<major>.<minor>". The major and minor numbers MUST be treated as separate integers and each number MAY be incremented higher than a single digit. Thus, "XMPP 2.4" would be a lower version than "XMPP ...
... single digit. Thus, "XMPP 2.4" would be a lower version than "XMPP 2.13", which in turn would be lower than "XMPP 12.3". Leading zeros ...
... version than "XMPP 2.13", which in turn would be lower than "XMPP 12.3". Leading zeros (e.g., "XMPP 6.01") MUST be ignored by recipients and MUST NOT be ...
... 2.13", which in turn would be lower than "XMPP 12.3". Leading zeros (e.g., "XMPP 6.01") MUST be ignored by recipients and MUST NOT be sent. ...
... header specifies a version of XMPP that is not supported by the server; the server MAY specify the version ...


... XMPP includes a method for securing the stream from tampering and ...
... certificate MUST be checked as "example.com". If a JID for any kind of XMPP entity (e.g., client or server ...
... ASN.1 Object Identifier for XMPP Address ...


... XMPP includes a method for authenticating a stream by means of an ...
... method for authenticating a stream by means of an XMPP-specific profile of the Simple Authentication and Security Layer ...
... adding authentication support to connection-based protocols, and XMPP uses a generic XML namespace profile ...
... in the case of server-to-server communications or its registered account name (user or node name as contained in an XMPP node identifier) in the case of client-to-server communications. ...
... additional features are available); any such additional features not defined herein MUST be defined by the relevant extension to XMPP. ...
... [TLS], then [SASL], then XMPP. use of the authorization identity ...


... The Jabber protocols from which XMPP was adapted include a "server dialback" method for protecting against domain ...


... o <jid-malformed/> -- the sending entity has provided or communicated an XMPP address (e.g., a value of the 'to' attribute) or aspect thereof (e.g., a resource identifier ...


... XML Usage within XMPP ...
... XMPP is a simplified and specialized protocol for streaming XML elements in order to exchange structured information in close to real time. Because XMPP ...
... XMPP is a simplified and specialized protocol for streaming XML elements in order to exchange structured information in close to real time. Because XMPP does not require the parsing of arbitrary and complete XML documents, there is no requirement ...
... complete XML documents, there is no requirement that XMPP needs to support the full feature set of [XML ...
... With regard to XML generation, an XMPP implementation MUST NOT inject into an XML stream any of the following: ...
... With regard to XML processing, if an XMPP implementation receives such restricted XML data, it MUST ignore the data. ...
... XML Namespaces [XML-NAMES] are used within all XMPP-compliant XML to create ...
... namespaces is to separate different vocabularies of XML elements that are structurally mixed together. Ensuring that XMPP-compliant XML is namespace ...
... XML to be structurally mixed with any data element within XMPP. Rules for XML namespace names and prefixes ...


... For the purposes of XMPP communications (client-to-server and server-to-server), the term "high security ...
... When an XMPP peer communicates with another peer securely, it MUST validate the peer's certificate ...
... 3. SASL 4. XMPP The rationale for this order is that [TCP ...
... SASL] is often provided at the application layer, and XMPP is the application itself. ...
... Communications using XMPP normally occur over [TCP] connections on ...
... well-known ports allows administrators to easily enable or disable XMPP activity through existing and commonly-deployed firewalls. ...
... XMPP makes use of the [NAMEPREP] profile of [STRINGPREP ...
... NAMEPREP]. In addition, XMPP defines two profiles of [STRINGPREP]: Nodeprep ...
... entity's address in XMPP. One common usage is as the username of an instant messaging ...
... entity's address in XMPP. One common usage is as the name for an instant messaging user's connected resource (active session ...


... sub-namespace for TLS-related data in the Extensible Messaging and Presence Protocol (XMPP) is defined as follows. (This namespace name adheres to the format defined in The IETF XML ...
... TLS-related data in the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3920prop. ...
... 3920prop. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org> ...
... sub-namespace for SASL-related data in the Extensible Messaging and Presence Protocol (XMPP) is defined as follows. (This namespace name adheres to the format defined in [XML-REG].) ...
... SASL-related data in the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3920prop. ...
... 3920prop. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org> ...
... sub-namespace for stream-related error data in the Extensible Messaging and Presence Protocol (XMPP) is defined as follows. (This namespace name adheres to the format defined in [XML-REG ...
... stream-related error data in the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3920prop. ...
... 3920prop. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org> ...
... sub-namespace for resource binding in the Extensible Messaging and Presence Protocol (XMPP) is defined as follows. (This namespace name adheres to the format defined in [XML-REG].) ...
... resource binding in the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3920prop. ...
... 3920prop. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org> ...
... sub-namespace for stanza-related error data in the Extensible Messaging and Presence Protocol (XMPP) is defined as follows. (This namespace name adheres to the format defined in [XML-REG ...
... stanza-related error data in the Extensible Messaging and Presence Protocol (XMPP) as defined by RFC 3920prop. ...
... 3920prop. Registrant Contact: IETF, XMPP Working Group, <xmppwg@jabber.org> ...


... Saint-Andre, P., Ed., "Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence", RFC 3921prop, October 2004. ...


... internationalized node identifiers in the Extensible Messaging and Presence Protocol (XMPP) and have the highest chance of getting the content of the strings correct. (An XMPP node identifier ...
... Extensible Messaging and Presence Protocol (XMPP) and have the highest chance of getting the content of the strings correct. (An XMPP node identifier is the optional portion of an XMPP ...
... XMPP node identifier is the optional portion of an XMPP address that precedes a domain identifier ...
... username.) These processing rules are intended only for XMPP node identifiers and are not intended for arbitrary text or any other aspect of an XMPP ...
... XMPP node identifiers and are not intended for arbitrary text or any other aspect of an XMPP address. ...
... o The intended applicability of the profile: internationalized node identifiers within XMPP o The character repertoire that is the input and output to ...


... internationalized resource identifiers in the Extensible Messaging and Presence Protocol (XMPP) and have the highest chance of getting the content of the strings correct. (An XMPP resource identifier ...
... Extensible Messaging and Presence Protocol (XMPP) and have the highest chance of getting the content of the strings correct. (An XMPP resource identifier is the optional portion of an XMPP ...
... XMPP resource identifier is the optional portion of an XMPP address that follows a domain identifier and the '/' separator; it is often but not exclusively ...
... associated with an instant messaging session name.) These processing rules are intended only for XMPP resource identifiers and are not intended for arbitrary text or any other aspect of an XMPP ...
... XMPP resource identifiers and are not intended for arbitrary text or any other aspect of an XMPP address. ...
... o The intended applicability of the profile: internationalized resource identifiers within XMPP o The character repertoire ...


... Appendix D. Differences Between Core Jabber Protocols and XMPP ...
... non-normative. XMPP has been adapted from the protocols originally developed in the Jabber open-source community ...
... Jabber open-source community, which can be thought of as "XMPP 0.9". Because there exists a large installed base of Jabber implementations ...
... deployments, it may be helpful to specify the key differences between the relevant Jabber protocols and XMPP in order to expedite and encourage upgrades of those implementations and deployments to ...
... and encourage upgrades of those implementations and deployments to XMPP. This section summarizes the core differences, while the corresponding section of [XMPP-IM] summarizes the differences that ...
... ports other than 5222 and 5269 (the convention is to use ports 5223 and 5270). XMPP uses TLS over the IANA-registered ...
... Jabber Software Foundation [JSF]). XMPP uses SASL for authentication, as defined under Use of ...
... Server Dialback (Section 8) protocol to prevent server spoofing. XMPP supersedes Server Dialback with a true server-to-server authentication ...
... jabber:iq:auth' namespace (which was also used for client authentication with a server). XMPP defines a dedicated namespace for resource binding ...
... Jabber Software Foundation [JSF]). XMPP specifies the use of [NAMEPREP] for domain identifiers and ...
... XML character data text in a <stream:error/> element. In XMPP, stream-related errors are handled via an extensible mechanism defined ...
... HTTP-style error codes. In XMPP, stanza-related errors are handled via an extensible mechanism defined under Stanza ...
... Stanza Errors (Section 9.3) herein. (Documentation of a mapping between Jabber and XMPP error handling mechanisms is contained in [JEP-0086], published by the ...
... language of human-readable text provided in XML character data. XMPP specifies the use of the 'xml:lang' attribute in such contexts ...
... stream headers. XMPP specifies inclusion of that attribute as a way to signal support for the stream features (authentication ...


... base protocol also included Ryan Eatmon, Peter Millard, Thomas Muldowney, and Dave Smith. Work by the XMPP Working Group has concentrated especially on security ...


... Keith Minkler, Julian Missig, Pete Resnick, Marshall Rose, Alexey Shchepin, Jean-Louis Seguineau, Iain Shigeoka, Greg Troxel, and David Waite. Thanks also to members of the XMPP Working Group and the IETF community for comments and feedback provided throughout the life of ...



Google
Web
RFC-Ref