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.
XMPP is the Extensible Messaging and Presence Protocol, a set of open technologies for instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.
XMPP was originally developed in the Jabber open-source community to provide an open, secure, spam-free, decentralized alternative to the closed instant messaging services at that time. XMPP offers several key advantages over such services:
XMPP Extensions.
XMPP and Jabber.
Do you consider this article interesting? Share it on your network of Twitter contacts, on your Facebook wall or simply press "+1" to suggest this result in searches in Google, Linkedin, Instagram or Pinterest. Spreading content that you find relevant helps this blog to grow. Thank you!
XMPP is the Extensible Messaging and Presence Protocol, a set of open technologies for instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.
XMPP was originally developed in the Jabber open-source community to provide an open, secure, spam-free, decentralized alternative to the closed instant messaging services at that time. XMPP offers several key advantages over such services:
- Open — the XMPP protocols are free, open, public, and easily understandable; in addition, multiple implementations exist in the form clients, servers, server components, and code libraries.
- Standard — the Internet Engineering Task Force (IETF) has formalized the core XML streaming protocols as an approved instant messaging and presence technology. The XMPP specifications were published as RFC 3920 and RFC 3921 in 2004, and the XMPP Standards Foundation continues to publish many XEP series.
- Proven — the first Jabber/XMPP technologies were developed by Jeremie Miller in 1998 and are now quite stable; hundreds of developers are working on these technologies, there are tens of thousands of Jabber servers running on the Internet today, and millions of people use XMPP for instant messaging through public services such as Google Talk and XMPP deployments at organizations worldwide.
- Decentralized — the architecture of the XMPP network is similar to email; as a result, anyone can run their own XMPP server, enabling individuals and organizations to take control of their communications experience.
- Secure — any XMPP server may be isolated from the public network (e.g., on a company intranet), robust security using SASL and TLS has been built into the core XMPP specifications, and the XMPP network is virtually spam-free. In addition, the XMPP developer is actively working on end-to-end encryption to raise the security bar even further.
- Extensible — using the power of XML, anyone can build custom functionality on top of the core protocols; to maintain interoperability, common extensions are published in the XEP series, but such publication is not required and organizations can maintain their own private extensions if so desired.
- Flexible — XMPP applications beyond IM include network management, content syndication, collaboration tools, file sharing, gaming, remote systems monitoring, web services, lightweight middleware, cloud computing, and much more.
- Diverse — a wide range of companies and open-source projects use XMPP to build and deploy real-time applications and services; you will never get “locked in” when you use XMPP technologies.
- Core — information about the core XMPP technologies for XML streaming
- BOSH — an HTTP binding for XMPP (and other) traffic
- Jingle — SIP-compatible multimedia signalling for voice, video, file transfer, and other applications
- Multi-User Chat — flexible, multi-party communication
- PubSub — alerts and notifications for data syndication, rich presence, and more
Updates: * SECURITY UPDATE: don't process google:jingleinfo updates from contacts - debian/patches/0001-ignore-google-jingleinfo-from-contacts.patch: don't accept jingleinfo except from self or server. Based on patch from upstream. - CVE-2011-XXXX Gabble is a Jabber/XMPP connection manager for the Telepathy framework, currently supporting single user chats, multi user chats and voice/video calls. Install this package to use Telepathy instant messaging clients with Jabber/XMPP servers, including Google Talk.
XMPP Extensions.
XMPP is the Extensible Messaging and Presence Protocol, a set of open technologies for instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.
The XMPP Standards Foundation (XSF) develops extensions to XMPP through a standards process centered around XMPP Extension Protocols (XEPs). The process is managed by the XMPP Extensions Editor and involves intensive discussion on the Standards mailing list, formal review and voting by the XMPP Council, and modification based on implementation experience and interoperability testing. All documents in the XEP series are available under a liberal IPR Policy for wide implementation. Submissions are welcome (see also the “inbox”). All XEPs and related files are under source control, old versions are available, and IETF-style XML reference files are provided. A compressed archive of all current XEPs can be downloaded here. You can view and submit XEP-related bugs and feature requests at the issue tracker.
This page lists approved XMPP extensions as well as proposals that are under active consideration. A list of all XEPs (including retracted, rejected, deprecated, and obsolete XEPs) is also available. Good places for developers to start are the client compliance and server compliance definitions, as well as the technology overview pages.
The XMPP Standards Foundation (XSF) develops extensions to XMPP through a standards process centered around XMPP Extension Protocols (XEPs). The process is managed by the XMPP Extensions Editor and involves intensive discussion on the Standards mailing list, formal review and voting by the XMPP Council, and modification based on implementation experience and interoperability testing. All documents in the XEP series are available under a liberal IPR Policy for wide implementation. Submissions are welcome (see also the “inbox”). All XEPs and related files are under source control, old versions are available, and IETF-style XML reference files are provided. A compressed archive of all current XEPs can be downloaded here. You can view and submit XEP-related bugs and feature requests at the issue tracker.
This page lists approved XMPP extensions as well as proposals that are under active consideration. A list of all XEPs (including retracted, rejected, deprecated, and obsolete XEPs) is also available. Good places for developers to start are the client compliance and server compliance definitions, as well as the technology overview pages.
Note: The following table is sortable, just click on the headers (click twice to reverse the sort order).
Note: You can change show/hide the various types of XEPs by checking/unchecking the checkboxes below.
Number | Name | Type | Status | Date |
---|---|---|---|---|
XEP-0001 (PDF) | XMPP Extension Protocols | Procedural | Active | 2010-03-10 |
XEP-0002 (PDF) | Special Interest Groups (SIGs) | Procedural | Active | 2002-01-11 |
XEP-0004 (PDF) | Data Forms | Standards Track | Final | 2007-08-13 |
XEP-0009 (PDF) | Jabber-RPC | Standards Track | Final | 2006-02-09 |
XEP-0012 (PDF) | Last Activity | Standards Track | Final | 2008-11-26 |
XEP-0013 (PDF) | Flexible Offline Message Retrieval | Standards Track | Draft | 2005-07-14 |
XEP-0016 (PDF) | Privacy Lists | Standards Track | Draft | 2007-02-15 |
XEP-0019 (PDF) | Streamlining the SIGs | Procedural | Active | 2002-03-20 |
XEP-0020 (PDF) | Feature Negotiation | Standards Track | Draft | 2006-11-21 |
XEP-0027 (PDF) | Current Jabber OpenPGP Usage | Historical | Active | 2006-11-29 |
XEP-0030 (PDF) | Service Discovery | Standards Track | Final | 2008-06-06 |
XEP-0033 (PDF) | Extended Stanza Addressing | Standards Track | Draft | 2004-09-15 |
XEP-0045 (PDF) | Multi-User Chat | Standards Track | Draft | 2008-07-16 |
XEP-0047 (PDF) | In-Band Bytestreams | Standards Track | Draft | 2009-03-17 |
XEP-0048 (PDF) | Bookmarks | Standards Track | Draft | 2007-11-07 |
XEP-0049 (PDF) | Private XML Storage | Historical | Active | 2004-03-01 |
XEP-0050 (PDF) | Ad-Hoc Commands | Standards Track | Draft | 2005-06-30 |
XEP-0053 (PDF) | XMPP Registrar Function | Procedural | Active | 2008-10-29 |
XEP-0054 (PDF) | vcard-temp | Historical | Active | 2008-07-16 |
XEP-0055 (PDF) | Jabber Search | Historical | Active | 2009-09-15 |
XEP-0059 (PDF) | Result Set Management | Standards Track | Draft | 2006-09-20 |
XEP-0060 (PDF) | Publish-Subscribe | Standards Track | Draft | 2010-07-12 |
XEP-0065 (PDF) | SOCKS5 Bytestreams | Standards Track | Draft | in progress, last updated 2010-03-15 |
XEP-0066 (PDF) | Out of Band Data | Standards Track | Draft | 2006-08-16 |
XEP-0068 (PDF) | Field Standardization for Data Forms | Informational | Active | 2004-07-07 |
XEP-0070 (PDF) | Verifying HTTP Requests via XMPP | Standards Track | Draft | 2005-12-14 |
XEP-0071 (PDF) | XHTML-IM | Standards Track | Draft | 2008-09-03 |
XEP-0072 (PDF) | SOAP Over XMPP | Standards Track | Draft | 2005-12-14 |
XEP-0076 (PDF) | Malicious Stanzas | Humorous | Active | 2003-04-01 |
XEP-0077 (PDF) | In-Band Registration | Standards Track | Final | 2009-09-15 |
XEP-0079 (PDF) | Advanced Message Processing | Standards Track | Draft | 2005-11-30 |
XEP-0080 (PDF) | User Location | Standards Track | Draft | 2009-09-15 |
XEP-0082 (PDF) | XMPP Date and Time Profiles | Informational | Active | 2003-05-28 |
XEP-0083 (PDF) | Nested Roster Groups | Informational | Active | 2004-10-11 |
XEP-0084 (PDF) | User Avatar | Standards Track | Draft | 2008-11-05 |
XEP-0085 (PDF) | Chat State Notifications | Standards Track | Final | 2009-09-23 |
XEP-0092 (PDF) | Software Version | Standards Track | Draft | 2007-02-15 |
XEP-0095 (PDF) | Stream Initiation | Standards Track | Draft | 2004-04-13 |
XEP-0096 (PDF) | SI File Transfer | Standards Track | Draft | 2004-04-13 |
XEP-0100 (PDF) | Gateway Interaction | Informational | Active | 2005-10-05 |
XEP-0106 (PDF) | JID Escaping | Standards Track | Draft | 2007-06-18 |
XEP-0107 (PDF) | User Mood | Standards Track | Draft | 2008-10-29 |
XEP-0108 (PDF) | User Activity | Standards Track | Draft | 2008-10-29 |
XEP-0109 (PDF) | Out-of-Office Messages | Standards Track | Experimental | 2010-05-24 |
XEP-0114 (PDF) | Jabber Component Protocol | Historical | Active | 2005-03-03 |
XEP-0115 (PDF) | Entity Capabilities | Standards Track | Draft | 2008-02-26 |
XEP-0118 (PDF) | User Tune | Standards Track | Draft | 2008-01-30 |
XEP-0122 (PDF) | Data Forms Validation | Standards Track | Draft | 2004-09-22 |
XEP-0124 (PDF) | Bidirectional-streams Over Synchronous HTTP (BOSH) | Standards Track | Draft | 2010-07-02 |
XEP-0126 (PDF) | Invisibility | Informational | Active | 2005-08-19 |
XEP-0127 (PDF) | Common Alerting Protocol (CAP) Over XMPP | Informational | Active | 2004-12-09 |
XEP-0128 (PDF) | Service Discovery Extensions | Informational | Active | 2004-10-20 |
XEP-0130 (PDF) | Waiting Lists | Historical | Active | 2006-09-13 |
XEP-0131 (PDF) | Stanza Headers and Internet Metadata | Standards Track | Draft | 2006-07-12 |
XEP-0132 (PDF) | Presence Obtained via Kinesthetic Excitation (POKE) | Humorous | Active | 2004-04-01 |
XEP-0133 (PDF) | Service Administration | Informational | Active | 2005-08-19 |
XEP-0134 (PDF) | XMPP Design Guidelines | Informational | Active | 2004-12-09 |
XEP-0136 (PDF) | Message Archiving | Standards Track | Draft | 2010-06-21 |
XEP-0137 (PDF) | Publishing Stream Initiation Requests | Standards Track | Draft | 2005-08-26 |
XEP-0138 (PDF) | Stream Compression | Standards Track | Final | 2009-05-27 |
XEP-0141 (PDF) | Data Forms Layout | Standards Track | Draft | 2005-05-12 |
XEP-0143 (PDF) | Guidelines for Authors of XMPP Extension Protocols | Procedural | Active | 2004-12-09 |
XEP-0144 (PDF) | Roster Item Exchange | Standards Track | Draft | 2005-08-26 |
XEP-0145 (PDF) | Annotations | Historical | Active | 2006-03-23 |
XEP-0146 (PDF) | Remote Controlling Clients | Informational | Active | 2006-03-23 |
XEP-0147 (PDF) | XMPP URI Scheme Query Components | Informational | Active | 2006-09-13 |
XEP-0148 (PDF) | Instant Messaging Intelligence Quotient (IM IQ) | Humorous | Active | 2005-04-01 |
XEP-0149 (PDF) | Time Periods | Informational | Active | 2006-01-24 |
XEP-0153 (PDF) | vCard-Based Avatars | Historical | Active | 2006-08-16 |
XEP-0155 (PDF) | Stanza Session Negotiation | Standards Track | Draft | 2008-01-14 |
XEP-0156 (PDF) | Discovering Alternative XMPP Connection Methods | Standards Track | Draft | 2007-06-12 |
XEP-0157 (PDF) | Contact Addresses for XMPP Services | Informational | Active | 2007-01-31 |
XEP-0158 (PDF) | CAPTCHA Forms | Standards Track | Draft | 2008-09-03 |
XEP-0160 (PDF) | Best Practices for Handling Offline Messages | Informational | Active | 2006-01-24 |
XEP-0163 (PDF) | Personal Eventing Protocol | Standards Track | Draft | 2010-07-12 |
XEP-0166 (PDF) | Jingle | Standards Track | Draft | 2009-12-23 |
XEP-0167 (PDF) | Jingle RTP Sessions | Standards Track | Draft | 2009-12-23 |
XEP-0169 (PDF) | Twas The Night Before Christmas (Jabber Version) | Humorous | Active | 2009-12-24 |
XEP-0170 (PDF) | Recommended Order of Stream Feature Negotiation | Informational | Active | 2007-01-04 |
XEP-0171 (PDF) | Language Translation | Standards Track | Draft | 2008-05-09 |
XEP-0172 (PDF) | User Nickname | Standards Track | Draft | 2006-06-05 |
XEP-0174 (PDF) | Serverless Messaging | Standards Track | Final | 2008-11-26 |
XEP-0175 (PDF) | Best Practices for Use of SASL ANONYMOUS | Informational | Active | 2009-09-30 |
XEP-0176 (PDF) | Jingle ICE-UDP Transport Method | Standards Track | Draft | 2009-06-10 |
XEP-0177 (PDF) | Jingle Raw UDP Transport Method | Standards Track | Draft | 2009-12-23 |
XEP-0178 (PDF) | Best Practices for Use of SASL EXTERNAL with Certificates | Informational | Active | 2007-02-15 |
XEP-0182 (PDF) | Application-Specific Error Conditions | Procedural | Active | 2008-03-05 |
XEP-0183 (PDF) | Jingle Telepathy Transport | Humorous | Active | 2006-04-01 |
XEP-0184 (PDF) | Message Receipts | Standards Track | Draft | 2010-03-31 |
XEP-0185 (PDF) | Dialback Key Generation and Validation | Informational | Active | 2007-02-15 |
XEP-0189 (PDF) | Public Key Publishing | Standards Track | Experimental | 2010-07-15 |
XEP-0190 (PDF) | Best Practice for Closing Idle Streams | Informational | Active | 2007-01-04 |
XEP-0191 (PDF) | Simple Communications Blocking | Standards Track | Draft | 2007-02-15 |
XEP-0192 (PDF) | Proposed Stream Feature Improvements | Standards Track | Draft | 2007-01-17 |
XEP-0193 (PDF) | Proposed Resource Binding Improvements | Standards Track | Draft | 2007-01-17 |
XEP-0198 (PDF) | Stream Management | Standards Track | Draft | 2010-03-05 |
XEP-0199 (PDF) | XMPP Ping | Standards Track | Final | 2009-06-03 |
XEP-0201 (PDF) | Best Practices for Message Threads | Informational | Active | 2010-11-29 |
XEP-0202 (PDF) | Entity Time | Standards Track | Final | 2009-09-11 |
XEP-0203 (PDF) | Delayed Delivery | Standards Track | Final | 2009-09-15 |
XEP-0205 (PDF) | Best Practices to Discourage Denial of Service Attacks | Informational | Active | 2009-01-07 |
XEP-0206 (PDF) | XMPP Over BOSH | Standards Track | Draft | 2010-07-02 |
XEP-0207 (PDF) | XMPP Eventing via Pubsub | Humorous | Active | 2007-04-01 |
XEP-0220 (PDF) | Server Dialback | Standards Track | Experimental | 2010-03-18 |
XEP-0221 (PDF) | Data Forms Media Element | Standards Track | Draft | 2008-09-03 |
XEP-0222 (PDF) | Persistent Storage of Public Data via PubSub | Informational | Active | 2008-09-08 |
XEP-0223 (PDF) | Persistent Storage of Private Data via PubSub | Informational | Active | 2008-09-08 |
XEP-0224 (PDF) | Attention | Standards Track | Draft | 2008-11-13 |
XEP-0227 (PDF) | Portable Import/Export Format for XMPP-IM Servers | Standards Track | Draft | 2010-03-12 |
XEP-0229 (PDF) | Stream Compression with LZW | Standards Track | Draft | 2007-09-26 |
XEP-0231 (PDF) | Bits of Binary | Standards Track | Draft | 2008-09-03 |
XEP-0233 (PDF) | Domain-Based Service Names in XMPP SASL Negotiation | Standards Track | Experimental | 2010-06-10 |
XEP-0234 (PDF) | Jingle File Transfer | Standards Track | Experimental | 2011-01-05 |
XEP-0237 (PDF) | Roster Versioning | Standards Track | Draft | 2010-03-05 |
XEP-0239 (PDF) | Binary XMPP | Humorous | Active | 2008-04-01 |
XEP-0242 (PDF) | XMPP Client Compliance 2009 | Standards Track | Draft | 2008-09-08 |
XEP-0243 (PDF) | XMPP Server Compliance 2009 | Standards Track | Draft | 2008-09-08 |
XEP-0245 (PDF) | The /me Command | Informational | Active | 2009-01-21 |
XEP-0248 (PDF) | PubSub Collection Nodes | Standards Track | Experimental | 2010-09-28 |
XEP-0249 (PDF) | Direct MUC Invitations | Standards Track | Draft | 2009-12-07 |
XEP-0256 (PDF) | Last Activity in Presence | Standards Track | Draft | 2009-09-15 |
XEP-0258 (PDF) | Security Labels in XMPP | Standards Track | Experimental | 2010-07-30 |
XEP-0260 (PDF) | Jingle SOCKS5 Bytestreams Transport Method | Standards Track | Experimental | 2010-04-13 |
XEP-0261 (PDF) | Jingle In-Band Bytestreams Transport Method | Standards Track | Experimental | 2010-04-14 |
XEP-0262 (PDF) | Use of ZRTP in Jingle RTP Sessions | Standards Track | Experimental | 2010-08-09 |
XEP-0263 (PDF) | ECO-XMPP | Humorous | Active | 2009-04-01 |
XEP-0266 (PDF) | Codecs for Jingle RTP Sessions | Informational | Experimental | 2011-01-12 |
XEP-0270 (PDF) | XMPP Compliance Suites 2010 | Standards Track | Draft | 2009-09-30 |
XEP-0273 (PDF) | Stanza Interception and Filtering Technology | Standards Track | Experimental | 2010-05-03 |
XEP-0274 (PDF) | Design Considerations for Digital Signatures in XMPP | Informational | Experimental | 2011-01-28 |
XEP-0278 (PDF) | Jingle Relay Nodes | Standards Track | Experimental | 2010-03-05 |
XEP-0279 (PDF) | Server IP Check | Standards Track | Experimental | 2010-03-05 |
XEP-0280 (PDF) | Message Carbons | Standards Track | Experimental | 2010-05-03 |
XEP-0281 (PDF) | DMUC1: Distributed Multi-User Chat | Standards Track | Experimental | 2010-07-20 |
XEP-0282 (PDF) | DMUC2: Distributed MUC | Standards Track | Experimental | 2010-06-11 |
XEP-0283 (PDF) | Moved | Standards Track | Experimental | 2010-06-16 |
XEP-0284 (PDF) | Shared XML Editing | Standards Track | Experimental | 2010-07-02 |
XEP-0285 (PDF) | Encapsulating Digital Signatures in XMPP | Standards Track | Experimental | 2011-01-12 |
XEP-0286 (PDF) | XMPP on Mobile Devices | Informational | Experimental | 2010-09-15 |
XEP-0287 (PDF) | Spim Markers and Reports | Standards Track | Experimental | 2010-10-04 |
XEP-0288 (PDF) | Bidirectional Server-to-Server Connections | Standards Track | Experimental | 2010-10-04 |
XEP-0289 (PDF) | Federated MUC for Constrained Environments | Standards Track | Experimental | 2010-11-29 |
XEP-0290 (PDF) | Encapsulated Digital Signatures in XMPP | Standards Track | Experimental | 2011-01-28 |
XEP-0291 (PDF) | Service Delegation | Standards Track | Experimental | 2011-01-26 |
XMPP and Jabber.
Jabber/XMPP is an open and extensible set of protocols for instant messaging and sharing presence information. The transferred data are expressed in XML, which makes the protocols easily extensible.
In Jabber/XMPP, peers are identified by their Jabber IDs, which are in the following format.
The Extensible Messaging and Presence Protocol (XMPP) emerged from the Jabber open-source community starting in 1999. Thus the terms "Jabber" and "XMPP" are often used interchangeably. This page provides a bit of background information about Jabber and XMPP.
Jabber technologies were invented by Jeremie Miller in 1998. He was tired of running four different clients for the popular instant messaging (IM) services, so in true open-source fashion he decided to "scratch an itch" by solving the problem himself. His goal? To foster freedom of conversation. His method? To build an IM technology that would be:
When Jeremie released the first version of his server on January 4, 1999, the open-source community responded by contributing clients, server components, and code libraries. To communicate over the Internet, these entities used a common XML protocol on the wire, which eventually became known as the Extensible Messaging and Presence Protocol or XMPP. The rest is history.
In Jabber/XMPP, peers are identified by their Jabber IDs, which are in the following format.
The Extensible Messaging and Presence Protocol (XMPP) emerged from the Jabber open-source community starting in 1999. Thus the terms "Jabber" and "XMPP" are often used interchangeably. This page provides a bit of background information about Jabber and XMPP.
Jabber technologies were invented by Jeremie Miller in 1998. He was tired of running four different clients for the popular instant messaging (IM) services, so in true open-source fashion he decided to "scratch an itch" by solving the problem himself. His goal? To foster freedom of conversation. His method? To build an IM technology that would be:
- Open -- anyone can write their own Jabber software using the open specifications that define how the technology works
- Decentralized -- anyone can run their own Jabber server and connect to other servers on the network
- Secure -- strong encryption, authentication, and identity features help to ensure confidentiality, protect privacy, and prevent spam
- Flexible -- the same Jabber transport used or IM can also be used to exchange any structured data, including custom payloads
When Jeremie released the first version of his server on January 4, 1999, the open-source community responded by contributing clients, server components, and code libraries. To communicate over the Internet, these entities used a common XML protocol on the wire, which eventually became known as the Extensible Messaging and Presence Protocol or XMPP. The rest is history.
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog:
0 comments:
Post a Comment