Interoperability between the Session Initiation Protocol (SIP) and the
Extensible Messaging and Presence Protocol (XMPP)
Booz Allen Hamilton Inc.
8283 Greensboro Drive
McLean
VA
22102
USA
+1-301-419-5157
christou_chris@bah.com
Booz Allen Hamilton Inc.
8283 Greensboro Drive
McLean
VA
22102
USA
+1-703-785-7527
lundberg_michael@bah.com
Booz Allen Hamilton Inc.
8283 Greensboro Drive
McLean
VA
22102
USA
ross_christopher@bah.com
Cisco Systems, Inc.
1899 Wynkoop Street, Suite 600
Denver
CO
80202
USA
+1-303-308-3282
psaintan@cisco.com
RAI
XMPP
SIP
This document is intended to serve as a reference point for developers and operators implementing the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) within their networks. This document does not define any new protocols but does define the different reference models for deployment of combined use of SIP and XMPP ("CUSAX") clients and SIP-XMPP interworking to ensure consistency across the community.
Across the industry, both the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP) have been implemented extensively by the vendor and developer community to provide Internet users real-time communication services, including voice, video, and IM/Chat. Initially, SIP was developed to provide the signaling underpinnings for telephony-based communication services. Similarly, XMPP was initially optimized for Instant Messaging and Chat-based communications. Since then both protocols have been extended to enable a more full-suite of features. For example, the SIMPLE protocol was defined to allow SIP to be used for IM, Chat, presence and other "enhanced" features, such as multi-user chat, server-stored contacts, file transfer, etc. The XMPP community developed the Jingle protocol extensions to define how XMPP implementations can establish end-to-end voice and video sessions.
With both suites of protocols providing similar capabilities, the adopter community has implemented both SIP/SIMPLE and XMPP. In certain cases, vendors integrating voice, video, and IM/Chat into their products have implemented SIP for telephony and XMPP for IM/Chat, especially since SIP was initially and optimized for voice/video signaling and XMPP optimized for internet-based chat. However, in other instances, vendors have implemented all capabilities using SIP/SIMPLE or XMPP/Jingle. Unfortunately, interoperability and interworking between SIP/SIMPLE and XMPP-based implementations has been fairly limited thus far.
To help alleviate this lack of interworking, two primary collection of IETF documents have emerged describing how to interoperate between SIP/SIMPLE and XMPP:
Combined use of SIP and XMPP (CUSAX): The goal of this informational Internet-Draft is to define how software can be modified to enable a hybrid implementation using SIP for voice/video telephony and XMPP for IM/Chat and contact list management. This draft primarily addresses the use case where a user uses a dual stack SIP/XMPP client to access its services.
SIP-XMPP Interworking: A suite of documents was written to describe how SIMPLE-based and XMPP-based IM/Chat implementations can interoperate. These drafts primarily focus on the use case where one user SIP/SIMPLE domain needs to communicate with users who are a member of a separate XMPP domain.
While these documents are helpful, they might not cover all deployment use cases for real-time communication services using SIP and XMPP. As a result, the goal of this document is threefold:
Serve as reference guide for adopters implementing real-time communication services using SIP and XMPP. It can also define common terminology across both the SIP and XMPP communities as it relates to inter-working and interoperability between the two protocols.
Define all relevant deployment scenarios for SIP and XMPP hybrid implementations.
When necessary, provide a reference to other documents that describe any protocol enhancements that enable the combined use of SIP and XMPP or the interworking functions between the two protocols.
Therefore, this document is intended to serve as a reference point for developers and operators implementing SIP and XMPP within their networks. This document will not define any new standards or protocols but will define the different reference models for deployment of CUSAX clients and SIP-XMPP interworking to ensure consistency across the community.
This section defines the different reference models for the deployment of SIP and XMPP. These reference models are categorized as either "CUSAX", where a given network uses SIP for telephony and XMPP for IM/Chat, or as "Inter-Domain SIP/SIMPLE-XMPP", where one IM/chat domain using SIP/SIMPLE needs to interoperate with another XMPP IM/Chat domain.
In this use case, adopters deploy a single client which uses SIP for voice/video telephony and XMPP for IM/Chat and Presence. To successfully implement CUSAX using a single client, adopters need guidance on how to provision their systems to ensure consistent account information is configured between the SIP and XMPP infrastructures for the same user. There are no other interoperability issues since presence mapping occurs within the client and the two protocols do not interact elsewhere.
The CUSAX internet-draft explains this use case and provides guidance for implementers when configuring clients and server-side software.
In certain cases, CUSAX adopters might not have the opportunity to deploy SIP and XMPP in the same client. For example, a given service provider might implement a separate client for SIP telephony from the XMPP IM/Chat client. Alternatively, a service provider can deploy dedicated IP telephony devices (i.e., a phone) and a XMPP IM/Chat client. As a result, similar to what is provided in the CUSAX draft for a single client, guidance needs to be defined to explain how user accounts ought be configured between the two systems. This guidance will also need to define how presence is exchanged either client or server side.
The third use case involves implementing SIP and XMPP on separate clients by separate service providers. For example, a user might obtain their SIP-based telephony services from a telecommunications provider and their XMPP IM/Chat service from an Internet provider. To provide appropriate guidance for those interested in this use case, a document is needed to describe how to align account information between the two service providers and how to exchange presence consistently between the two service providers for the same user/account.
The second set of use cases involves scenarios where one domain deploys SIP/SIMPLE as its IM/Chat protocol and another domain implements XMPP as its IM/Chat protocol.
In order to consistently and effectively interoperate, four key areas need to be defined:
Presence exchange: In order to help ensure interworking between presence systems that conform to the instant message / presence requirements , it is important to clearly define protocol mappings between such systems. defines this mapping and can be used by adopters that need to exchange presence between SIP/SIMPLE and XMPP systems.
IM interoperability: The term "instant message" usually refers to messages sent between two entities for delivery in close to real time (rather than messages that are stored and forwarded to the intended recipient upon request). specifies mappings for one-to-one text chat sessions (sometimes called "session-mode" messaging); in particular, the document specifies mappings between XMPP and the Message Session Relay Protocol .
Address mapping: In order to inter work between the two IM/Chat systems, a mapping function needs to be defined between the identifiers that are used for XMPP and SIP/SIMPLE (JID and SIP URI). explains how to translate between the two identifiers while also explaining how to translate error conditions between the two systems.
Multi-User Chat (MUC)/Groupchat: Both XMPP and SIP/SIMPLE technologies enable multi-user text chat, whereby users can exchange messages in the context of a room. To ensure interworking between these technologies for the purposes of enabling "Groupchat" between the two systems, defines how to map syntax and semantics between the two protocols.
See the security considerations described in the specifications referenced herein.
This document has no actions for the IANA.
Instant Messaging / Presence Protocol Requirements
SightPath, Inc.
135 Beaver Street
Waltham
MA
02452
US
mday@alum.mit.edu
Microsoft Corporation
One Microsoft Way
Redmond
WA
98052
US
sonuag@microsoft.com
gojomo@usa.net
Into Networks, Inc.
150 Cambridgepark Drive
Cambridge
MA
02140
US
jesse@intonet.com
Presence and Instant Messaging have recently emerged as a new medium of communications over the Internet. Presence is a means for finding, retrieving, and subscribing to changes in the presence information (e.g. "online" or "offline") of other users. Instant messaging is a means for sending small, simple messages that are delivered immediately to online users.
Applications of presence and instant messaging currently use independent, non-standard and non-interoperable protocols developed by various vendors. The goal of the Instant Messaging and Presence Protocol (IMPP) Working Group is to define a standard protocol so that independently developed applications of instant messaging and/or presence can interoperate across the Internet. This document defines a minimal set of requirements that IMPP must meet.
The Message Session Relay Protocol (MSRP)
This document describes the Message Session Relay Protocol, a protocol for transmitting a series of related instant messages in the context of a session. Message sessions are treated like any other media stream when set up via a rendezvous or session creation protocol such as the Session Initiation Protocol. [STANDARDS-TRACK]
Combined Use of the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (CUSAX)
This document describes current practices for combined use of the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP). Such practices aim to provide a single fully featured real-time communication service by using complementary subsets of features from each of the protocols. Typically such subsets would include telephony capabilities from SIP and instant messaging and presence capabilities from XMPP. This specification does not define any new protocols or syntax for either SIP or XMPP. However, implementing it may require modifying or at least reconfiguring existing client and server-side software. Also, it is not the purpose of this document to make recommendations as to whether or not such combined use should be preferred to the mechanisms provided natively by each protocol like for example SIP's SIMPLE or XMPP's Jingle. It merely aims to provide guidance to those who are interested in such a combined use.
Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): One-to-One Text Chat
This document defines a bi-directional protocol mapping for the exchange of instant messages in the context of a one-to-one chat session between a user of the Session Initiation Protocol (SIP) and a user of the Extensible Messaging and Presence Protocol (XMPP). Specifically for SIP text chat, this document specifies a mapping to the Message Session Relay Protocol (MSRP).
Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Core
As a foundation for the definition of application-specific, bi- directional protocol mappings between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP), this document specifies the architectural assumptions underlying such mappings as well as the mapping of addresses and error conditions.
Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Multi-Party Text Chat
This document defines a bi-directional protocol mapping for the exchange of instant messages in the context of a many-to-many chat session among users of the Session Initiation Protocol (SIP) and users of the Extensible Messaging and Presence Protocol (XMPP). Specifically for SIP text chat, this document specifies a mapping to the Message Session Relay Protocol (MSRP).
Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): Presence
This document defines a bi-directional protocol mapping for the exchange of presence information between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP).