Skip to content


History

The Extensible Messaging and Presence Protocol (XMPP) is the IETF’s formalization of the base XML streaming protocols for instant messaging and presence developed within the Jabber community starting in 1999. This page provides a brief chronology of Jabber/XMPP technologies from the perspective of standardization.

1999

In January 1999, Jeremie Miller announced the existence of Jabber, an open technology for instant messaging and presence. Throughout 1999, development proceeded rapidly on an open-source server (jabberd), several open-source clients and code libraries, and open wire protocols for real-time XML streaming as well as basic instant messaging and presence extensions. These same base protocols have been in use (with various improvements and extensions) since 1999.

In August 1999, Jeremie submitted a statement pledging the Jabber community’s support for the IETF standards process. This statement was consistent with the founding mission of the Jabber project: to foster freedom of conversation and support open standards and interoperability in the real-time communications.

2000

In February 2000, the IETF published the results of work by the Instant Messaging and Presence Protocol (IMPP) Working Group: a model for instant messaging and presence systems (RFC 2778) and a set of requirements for such systems (RFC 2779). However, because of a lack of consensus, the IMPP WG never produced any protocols, instead deferring to other working groups that might develop protocols to meet the requirements defined in RFC 2779.

In May 2000, version 1.0 of the jabberd server was released and the base Jabber protocols (XML streaming, messaging, presence, contact lists, etc.) were stabilized.

In June 2000, Jeremie and other members of the Jabber project submitted an Internet-Draft (textHTML) to the Instant Messaging and Presence Protocol (IMPP) Working Group documenting the base Jabber protocols. Unfortunately, the Jabber community was not well organized at that time nor was it strongly focused on protocol development per se. Thus the initial Internet-Draft expired without the Jabber community following up or working closely with the IMPP WG.

In October 2000, jabberd 1.2 was released and the server dialback protocol was introduced to prevent address spoofing on the growing network of Jabber servers.

2001

In August 2001, the Jabber Software Foundation (JSF) was formed to coordinate among the growing number of open-source projects and commercial entities building or using Jabber technologies. (Note: As described below, in January 2007 the Jabber Software Foundation changed its name to the XMPP Standards Foundation or XSF.) The primary mandate of the Foundation is to manage the XML protocols used within the Jabber/XMPP community by documenting existing protocols and developing protocol extensions through an open standards process (see XEP-0001).

2002

In late 2001 and early 2002, prominent members of the Jabber community decided to once again submit the base Jabber protocols to the IETF, this time as an official submission by the JSF. The first submission was made in February 2002 as an informational Internet-Draft (textHTML). Following on the success of this submission, it was decided to explore the possibility of forming an IETF Working Group devoted to formalization of the base Jabber protocols, under the neutral name of Extensible Messaging and Presence Protocol (XMPP). As a result, three interrelated Internet-Drafts were submitted on 2002-06-21.

On 2002-07-15, an XMPP Birds of a Feather session (BOF) was held at the 54th IETF meeting in Yokohama, Japan. Given the overall favorable reaction (captured in the minutes), it was decided to proceed further by submitting a proposed working group charter to the IESG.

On 2002-10-31, the formation of the XMPP Working Group was approved bythe Internet Engineering Steering Group (IESG). As a result, the Foundation formally contributed the base Jabber protocols to the Internet Standards Process (see RFC 2026) and ceded change control over those protocols to the IETF under the name Extensible Messaging and Presence Protocol (XMPP). On 2002-11-03, updated Internet-Drafts were submitted for “XMPP Core” and “XMPP IM”. On 2002-11-19, the first meeting of the XMPP WG was held at IETF 55 including presentations by Jeremie Miller, Joe Hildebrand, and Peter Saint-Andre.

2003

In 2003, the XMPP WG essentially completed its work on formalizing the base Jabber protocols for adaptation as IETF-approved instant messaging and presence protocols that would fully meet the requirements of RFC 2779. Meetings of the XMPP WG were held on 2003-03-17 at IETF 56 and on 2003-07-18 at IETF 57 .

The revisions made to the base protocols mainly centered on improved security and internationalization. In the area of security, the XMPP Core document specifies:

  • The use of standard Simple Authentication and Security Layer (RFC 4422) for authentication (as earlier proposed in XEP-0034) rather than the old protocol of hashed passwords (as described informationally in XEP-0078).
  • The use of standard Transport Layer Security (RFC 4346) for channel encryption (as earlier proposed in XEP-0035) rather than the older method of using SSL on separate ports.

(In addition, the XMPP WG defined as an XMPP extension a protocol for end-to-end encryption using S/MIME and CPIM.)

In the area of internationalization, the XMPP Core document specifies profiles of stringprep (RFC 3454) for XMPP addresses (a.k.a. JIDs). In particular, XMPP uses Internationalized Domain Names (RFC 3490) for the domain portion of a JID and the XMPP-specific nodeprep and resourceprep profiles for the remaining portions of a JID. In addition, the XMPP Core document specifies the use of the ‘xml:lang’ attribute for proper localization of XMPP communications (as earlier proposed in XEP-0026).

In the area of user privacy, a protocol extension for block and allow lists was added to the XMPP IM specification, following up on the earlier proposal documented in XEP-0016.

The XMPP WG also defined a mapping of XMPP to the Common Profile for Instant Messaging (RFC 3860) and Common Profile for Presence (RFC 3859) produced by the IMPP WG for gateway interoperability.

Finally, the Foundation and Jabber, Inc. jointly submitted an IPR Notice to the IETF regarding the JABBER trademark.

2004

The IESG approved the XMPP Core and XMPP IM specifications as Proposed Standards on 2004-01-29 and 2004-02-05, respectively, thus accepting XMPP 1.0 as an IETF Instant Messaging and Presence technology in conformance with the requirements of RFC 2779. The XMPP-CPIM Mapping specification was approved on 2004-05-19. The XMPP-E2E specification was approved on 2004-07-26.

In October 2004, these documents were published as the following RFCs:

Upon publication of the XMPP RFCs, the IETF announced the conclusion of the XMPP Working Group. However, development of further XMPP extensions continues.

2005

Other than continued publication and advancement of various XMPP extensions, no major standardization efforts were undertaken in 2005. However, implementation and deployment of large-scale XMPP-based services continued, highlighted by the launch of Google Talk in August 2005.

2006

In July 2006, the IETF published RFC 4622 defining the XMPP URI scheme.

In July 2006, the first XMPP Summit was held in Portland, Oregon, USA.

In October 2006, the JSF renamed its “Jabber Enhancement Proposals” (JEPs) specification series to “XMPP Extension Protocols” (XEPs) and moved them to the xmpp.org website.

In October 2006, work began on revisions to RFC 3920 and RFC 3921 in order to incorporate experience gained through several years of widespread implementation and deployment of XMPP technologies. It is envisioned that these revisions will be completed in 2008. See the Internet-Drafts page for details.

In December 2006, the JSF entered into a partnership with StartCom to offer free digital certificates to administrators of Jabber/XMPP servers through the XMPP Intermediate Certification Authority.

2007

In January 2007, the Jabber Software Foundation renamed itself to the XMPP Standards Foundation in order to more accurately describe its focus on developing open protocol extensions to the IETF’s base XMPP specifications (rather than open-source software).

In February 2007, the XSF held the second XMPP Summit in Brussels, Belgium.

In April 2007, the IETF published RFC 4854 defining URN namespace for use by the XMPP Registrar in generating XML namespace names for XMPP extensions.

In June 2007, the XSF approved XEP-0174: Link-Local Messaging, which formalizes the zero-configuration, serverless mode of XMPP communications pioneered in Apple’s Bonjour technology.

In July 2007, the XSF published the first of its yearly protocol suites for compliance testing related to XMPP implementations: XEP-0211XEP-0212XEP-0213, and XEP-0216.

In July 2007, the XSF held the third XMPP Summit in Portland, Oregon, USA.

2008

In February 2008, the XSF held the fourth XMPP Summit in Brussels, Belgium.

In May 2008, the XSF advanced XEP-0171: Language Translation to a status of Draft.

In July 2008, the XSF advanced XEP-0136: Message Archiving to a status of Draft. The XSF also held the fifth XMPP Summit in Portland, Oregon, USA.

In September 2008, the XSF advanced XEP-0231: Bits of Binary and XEP-0158: CAPTCHA Forms to a status of Draft. It also completed significant revisions to XEP-0060: Publish-Subscribe and related specifications, plus published its second series of compliance specifications (XEP-0242: XMPP Client Compliance 2009 and XEP-0243: XMPP Server Compliance 2009).

In November 2008, the XSF advanced XEP-0012: Last ActivityXEP-0085: Chat State Notifications, and XEP-0174: Serverless Messaging to a status of Final.

2009

In January 2009, the XSF approved XEP-0205: Best Practices to Discourage Denial of Service Attacks as an Informational specification.

In February 2009, the XSF held the sixth XMPP Summit in Brussels, Belgium.

In June 2009, the XMPP Council advanced to Draft status the Jingle specifications for voice, video, and multimedia sessions (see XEP-0166, XEP-0167, XEP-0176, and XEP-0177).

In July 2009, the XSF held the seventh XMPP Summit in San Jose, California, USA.

Throughout 2009, the XMPP Council advanced a number of specifications to a status of Final: Stream Compression, XMPP Ping, Entity Time, and Delayed Delivery.

2010

In February 2010, the XSF held the eighth XMPP Summit in Brussels, Belgium.

In July 2010, the XSF completed major revisions to the XMPP publish-subscribe extension (XEP-0060).

In July 2010, the XSF held the ninth XMPP Summit in Portland, Oregon, USA.

The IETF’s XMPP Working Group met at IETF 77 (March 2010) and IETF 78 (July 2010).

2011

In February 2011, the XSF held the tenth XMPP Summit in Brussels, Belgium, co-located with an interim meeting of the IETF’s XMPP Working Group, with a special focus on internationalization.

In March 2011, the IETF published RFC 6120 and RFC 6121 to replace RFC 3920 and RFC 3921 as the defining specifications for XMPP, along with RFC 6122 as an interim specification of the XMPP address format pending further work on internationalization at the IETF’s PRECIS Working Group.

Throughout 2011, the XMPP Council advanced several specifications to a status of Draft: Use of ZRTP in Jingle RTP Sessions, Jingle SOCKS5 Bytestreams Transport Method, Jingle In-Band Bytestreams Transport Method, and Security Labels in XMPP.

The IETF’s XMPP Working Group met at IETF 80 (March/April 2011) and IETF 81 (July 2011).

2012

In February 2012, the XSF held the eleventh XMPP Summit in Brussels, Belgium.

Also in February, the XSF completed significant revisions to the XMPP multi-user chat extension (XEP-0045).

In June 2012, the XMPP Council advanced the In-Band Bytestreams specification to Final.

The IETF’s XMPP Working Group met at IETF 83 (March 2012) and IETF 84 (July/August 2012).


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Continuing the Discussion

  1. What is XMPP? | TheMatthewBerry.com linked to this post on December 7, 2011

    [...] by the IETF in 2002 and 2003, resulting in publication of the XMPP RFCs in 2004 (see the history page for more [...]