SIP for Instant Messaging and Presence Level Extensions
SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) is one of several add-on extensions to the Session Initiation Protocol (SIP). It is used to enhance the basic SIP protocol with instant messaging and presence capabilities that most of us are familiar with today.
One should remember that SIP was originally developed for voice over IP (VoIP). SIP is an application-layer control protocol that is designed for beginning, modifying or ending multimedia and multiparty IP calls. Its original function was to operate much like SS7 does in the PSTN, but for IP-based networks. SIP has since matured to support for Web conferencing, live video, and other media.
But, SIP was not originally intended to deal with all of the idiosyncrasies of call intelligence, network usage for billing, or security as the migration away from the TDM-based PSTN towards an IP-based network evolved. (The PSTN expects to operate with a closed signaling system, SS7.) And therefore, SIP has been undergoing revisions and add-ons to enable it to function in more complex environments.
SIP was designed to support multimedia and multi-party sessions. But the nature of business today suggests real-time collaboration and conferencing capabilities as well. There are millions of users who use instant messaging and presence (IMP) programs in their daily lives. But different IMP clients have to be used to access the various IMP servers (AOL is different from Yahoo, different from Skype, etc.) because they are proprietary. Although there are multiprotocol clients like Trillian or GAIM available, this led to the IETF formulating the IMP Working Group.
The IETF SIMPLE Working Group was established to develop a standard framework for instant messaging and presence on top of a SIP-based framework. The result is a working group that focuses on the application of the SIP (RFC 3261) to a collection of services that are known as IMP.
From the WG main page:
- “The IETF has committed to producing an interoperable standard for these services compliant to the requirements for IM outlined in RFC 2779 (including the security and privacy requirements there) and in the Common Profile for Instant Messaging (CPIM) specification, developed within the IMPP working group. As the most common services for which SIP is used share quite a bit in common with IMP, the adaptation of SIP to IMP seems a natural choice given the widespread support for (and relative maturity of) the SIP standard.”
SIMPLE is designed to be applied to the Session Initiation Protocol in order to:
- Register presence information, and to receive notifications when events occur
- Send short messages (like SMS) or facilitate two-way paging
- Manage a session of near real-time messages (streaming) between two or more participants
SIMPLE is defined within RFC 3428. It has received backing from major players such as Microsoft, IBM, Sun, Novell, and others. But SIMPLE is anything but simple. It is defined by about 30 documents with over 1000 pages of information. (That is seven times more than the HTTP 1.1 specification, and more than 15 times that of SMTP.)
On the positive side, SIP and SIMPLE are the reigning protocols for unified communications, as they create a full set of standards for events, presence and instant messaging. So, when you see someone “logging on” or “stepping away” you are seeing the results of the SIMPLE protocols. It is believed that over time, SIP and SIMPLE will dominate all other non-SIP oriented protocols.
In addition, SIP and SIMPLE are becoming the cornerstone for IP Multimedia Subsystems (IMS) universal service architectures as the supporting 3G Wireless multimedia protocols within the Third Generation Partnership Project (3GPP). (IMS will be critical to both the wired and wireless worlds in the near future.)
SIMPLE compared with XMPP
Extensible Messaging and Presence Protocol (XMPP), is an open, data transport and XML-based protocol for near real time streaming of XML elements called stanzas. XMPP focuses on the exchange of instant messaging and presence information between two network IM elements/users.
It is the core protocol of underlying the Jabber Instant Messaging and Presence technology. Jabber is known to be deployed on thousands of servers and is used by millions of people across the Internet.
In 2002, the Internet Engineering Task Force formed an XMPP Working Group to formalize the core Jabber protocols as an IETF Instant Messaging and presence technology.
There are four specifications produced by the XMPP WG, and approved by in 2004.
- RFC 3920, Extensible Messaging and Presence Protocol (XMPP): Core which describes client-server messaging using two open ended XML streams.
- RFC 3921, Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence describes instant messaging (IM), the most common application of XMPP.
- RFC 3922, Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) relates XMPP and the Common Presence and Instant Messaging (CPIM) specifications.
- RFC 3923, End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP) describes end to end encryption of XMPP messages using S/MIME.
RFC 3920 and RFC 3921 are currently undergoing revisions in preparation for advancing them to Draft Standard within the Internet Standards Process. The XMPP Standards Foundation (formerly the Jabber Software Foundation) is active in developing open XMPP extensions.
In addition, the XMPP Standards Foundation develops and publishes extensions to XMPP through a standards process centered around XMPP Extension Protocols. As of April 2007, there were over 200 extensions listed.
SIMPLE is designed to be more general-purposed than XMPP, able to be used in more applications than merely IM and presence. SIMPLE can be used in voice, video, push-to-talk and other communications options.
That said, XMPP continues to grow in popularity.
- RFC 3428 for SIMPLE
- The IETF Instant Messaging and Presence Working Group
- The IETF SIMPLE Status Page
- The IETF SIP Working Group
- The IETF SIP RFC 3261
- The SIP Center
- Requirements for Instant Messaging in 3GPP Wireless Systems
- XMPP and http://www.xmpp.org/rfcs/rfc3920.html, http://www.xmpp.org/rfcs/rfc3921.html, http://www.xmpp.org/rfcs/rfc3922.html, http://www.xmpp.org/rfcs/rfc3923.html