Extensible Messaging and Presence Protocol (XMPP): Core
RFC 3920

Approval announcement
Draft of message to be sent after approval:

From: The IESG <iesg-secretary@ietf.org>
To: IETF-Announce <ietf-announce@ietf.org>
Cc: Internet Architecture Board <iab@iab.org>,
    RFC Editor <rfc-editor@rfc-editor.org>, 
    xmpp mailing list <xmppwg@xmpp.org>, 
    xmpp chair <xmpp-chairs@tools.ietf.org>
Subject: Protocol Action: 'Extensible Messaging and Presence 
         Protocol (XMPP): Core' to Proposed Standard 

The IESG has approved the following document:

- 'Extensible Messaging and Presence Protocol (XMPP): Core '
   <draft-ietf-xmpp-core-25.txt> as a Proposed Standard

This document is the product of the Extensible Messaging and Presence 
Protocol Working Group. 

The IESG contact persons are Scott Hollenbeck and Lisa Dusseault.

A URL of this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-xmpp-core-25.txt

Technical summary:

The Extensible Messaging and Presence Protocol (XMPP) is a general purpose 
protocol not necessarily limited to instant messaging and presence. XMPP is 
revision of the communication portion of the widely deployed "Jabber" 
protocol. XMPP is a TCP-based protocol which uses Extensible Markup 
Language (XML) as the syntax for its protocol elements. XMPP can be used 
as a client-to-server protocol as well as a server-to-server protocol. The 
base of the protocol exchange is the XML "stream", effectively a stream 
of XML data sent from one party to the other which starts with an XML 
"<stream>" tag an ending with an XML "</stream>" tag. Streams are
unidirectional, so communication between two parties requires two 
separate streams (though they can run over the same full-duplex 
connection). Within the stream, requests  and responses are exchanged 
between the two parties in XML "stanzas", a  portion of the stream that 
has semantic content. The document describes the routing of stanzas from 
machine to machine through streams. XMPP includes guidelines to ensure 
that extensions are possible without conflicts or breaking core 
interoperability. Lack of conflicts is ensured with use of XML 
namespaces. Interoperability is ensured with careful layering of 
stanzas of known types, on top of the base stream.

The document specifies primitives for instant messaging and presence. 
Being TCP-based, it should not have any independent congestion control 
issues. It specifies a reasonable error reporting facility, specific 
enough to give recipients reasonable indication of what action to take 
in response to an error, but not so specific to make management of error 
codes and the like a problem. The protocol uses UTF-8 for all user 
visible strings including error messages, and defines appropriate profiles 
of stringprep for internationalized identifiers. SASL is used for 
authentication and TLS is used for encryption (though SASL security layer 
may be used if TLS is not). The document also has plenty of examples for
XML usage, security negotiation and error reporting.

The document registers stringprep profiles and XML namespaces it uses 
and provides XML schemas for the core parts of the protocol.

Working Group summary:

The working group has done extensive review of this document and there 
has been good consensus. There has been a great deal of participation 
by many interested folks. Several members of the working group have 
already reported implementations of the XMPP core and have interoperable 
implementations running in different environments. XMPP is based on the 
widely implemented Jabber protocol, giving additional interoperability 
and deployment experience. Security experts have participated in the 
discussion and have reviewed and commented on the document during its 
development.  There were extensive Last Call comments, and these 
have been resolved to the satisfaction of those raising issues.

Protocol Quality

Pete Resnick and Lisa Dusseault reviewed this document for the IESG.