DJabberd
view release on metacpan or search on metacpan
doc/rfc3921-notes.txt view on Meta::CPAN
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 and
presence service, there is no requirement that a service must offer
both a presence service and an instant messaging service, and the
protocol makes it possible to offer separate and distinct services
for presence and for instant messaging.
Note: While XMPP-based instant messaging and presence meets the
requirements of [IMP-REQS], it was not designed explicitly with that
specification in mind, since the base protocol evolved through an
open development process within the Jabber open-source community
before RFC 2779 was written. Note also that although protocols
addressing many other functionality areas have been defined in the
Jabber community, such protocols are not included in this memo
because they are not required by [IMP-REQS].
( run in 0.634 second using v1.01-cache-2.11-cpan-99c4e6809bf )