Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
RFC 3921
Document | Type |
RFC - Proposed Standard
(October 2004; No errata)
Obsoleted by RFC 6121
|
|
---|---|---|---|
Author | Peter Saint-Andre | ||
Last updated | 2015-10-14 | ||
Stream | Internent Engineering Task Force (IETF) | ||
Formats | plain text html pdf htmlized (tools) htmlized bibtex | ||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 3921 (Proposed Standard) | |
Action Holders |
(None)
|
||
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Scott Hollenbeck | ||
Send notices to | lisa@xythos.com |
Network Working Group P. Saint-Andre, Ed. Request for Comments: 3921 Jabber Software Foundation Category: Standards Track October 2004 Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2004). Abstract This memo describes extensions to and applications of the core features of the Extensible Messaging and Presence Protocol (XMPP) that provide the basic instant messaging (IM) and presence functionality defined in RFC 2779. Saint-Andre Standards Track [Page 1] RFC 3921 XMPP IM October 2004 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Syntax of XML Stanzas . . . . . . . . . . . . . . . . . . . 4 3. Session Establishment . . . . . . . . . . . . . . . . . . . 10 4. Exchanging Messages . . . . . . . . . . . . . . . . . . . . 13 5. Exchanging Presence Information . . . . . . . . . . . . . . 16 6. Managing Subscriptions . . . . . . . . . . . . . . . . . . . 26 7. Roster Management . . . . . . . . . . . . . . . . . . . . . 27 8. Integration of Roster Items and Presence Subscriptions . . . 32 9. Subscription States . . . . . . . . . . . . . . . . . . . . 56 10. Blocking Communication . . . . . . . . . . . . . . . . . . . 62 11. Server Rules for Handling XML Stanzas . . . . . . . . . . . 85 12. IM and Presence Compliance Requirements . . . . . . . . . . 88 13. Internationalization Considerations . . . . . . . . . . . . 89 14. Security Considerations . . . . . . . . . . . . . . . . . . 89 15. IANA Considerations . . . . . . . . . . . . . . . . . . . . 90 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 91 A. vCards . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 B. XML Schemas. . . . . . . . . . . . . . . . . . . . . . . . . 93 C. Differences Between Jabber IM/Presence Protocols and XMPP. . 105 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 106 Author's Address. . . . . . . . . . . . . . . . . . . . . . . . . 106 Full Copyright Statement. . . . . . . . . . . . . . . . . . . . . 107 1. Introduction 1.1. Overview The Extensible Messaging and Presence Protocol (XMPP) is a protocol for streaming XML [XML] elements in order to exchange messages and presence information in close to real time. The core features of XMPP are defined in Extensible Messaging and Presence Protocol (XMPP): Core [XMPP-CORE]. These features -- mainly XML streams, use of TLS and SASL, and the <message/>, <presence/>, and <iq/> children of the stream root -- provide the building blocks for many types of near-real-time applications, which may be layered on top of the core by sending application-specific data qualified by particular XML namespaces [XML-NAMES]. This memo describes extensions to and applications of the core features of XMPP that provide the basic functionality expected of an instant messaging (IM) and presence application as defined in RFC 2779 [IMP-REQS]. Saint-Andre Standards Track [Page 2] RFC 3921 XMPP IM October 2004 1.2. Requirements For the purposes of this memo, the requirements of a basic instant messaging and presence application are defined by [IMP-REQS], which at a high level stipulates that a user must be able to complete the following use cases: o Exchange messages with other users o Exchange presence information with other users o Manage subscriptions to and from other users o Manage items in a contact list (in XMPP this is called a "roster") o Block communications to or from specific other users Detailed definitions of these functionality areas are contained in [IMP-REQS], and the interested reader is directed to that document regarding the requirements addressed herein. [IMP-REQS] also stipulates that presence services must be separable from instant messaging services; i.e., it must be possible to use the protocol to provide a presence service, an instant messaging service, or both. Although the text of this memo assumes that implementations and deployments will want to offer a unified instant messaging andShow full document text