DesignXMPP
Version 73 (Adrian Georgescu, 09/03/2012 01:35 pm) → Version 74/89 (Adrian Georgescu, 09/03/2012 01:39 pm)
h1. SylkServer SIP/XMPP Gateway
h2. Background
Interoperability between XMPP and SIP protocols protocol has become a necessity given that all closed and public Internet Services for Real Time Communications have migrated to a variant of these protocols, if not internally at least at their borders. Both protocols share a common feature-set, features, the most important one being the usage of Internet identifiers in the form of user@domain and replace the need for classic telephone numbers.
h2. Motivation
Various projects in the open source domain emerged to tackle the interoperability between XMPP and SIP but all of them focused on one-to-one Presence signaling or VoIP sessions, VoIP, but never in the context of complete interoperability for all signaling using user@domain Internet addressing. and media. SylkServer SIP/XMPP XMPP gateway application goal is to cover this gap and provide an open source implementation for interoperability of for all relevant media types and multimedia conferencing for them. We consider relevant media the following: Wide-band audio, Session based IM, Presence and Multiparty Conferencing facilities for all of them.
We consider ScreenSharing and Video beyond the basic need of interoperability due to obvious reasons related to codecs, scalability or lack of standards.
The goal is to implement a bidirectional signaling and media gateway for Presence, Session based Instant Messaging, Multiparty IM, Audio, and File Transfer for SIP and XMPP signaling protocols, RTP and MSRP media planes. This software will work with ZERO configuration, a simple command like "apt-get install sylkserver" will be enough for deployment of the gateway on a Debian Linux OS.
We consider Video beyond the basic need of interoperability but this may change at a later time.
h2. Sponsors
This research and development is part of the WormHole Project sponsored by "NLNet and AG Projects":http://nlnet.nl/project/xmpp-sip/.
h2. Deployment Scenario
!http://sylkserver.com/images/sylk-server-diagram.png!
By pointing the correspondent DNS records for SIP or XMPP services of a given Internet domain to the address of this gateway, any packet sent to or connection established to the gateway by one of the protocols is transparently translated into the other. The server is designed in such way that it requires zero-configuration (except of course for the DNS domains configuration).
h2. Specifications and Standards
h3. SIP Signaling and Media
* SIP (RFC3261) and related RFCs for DNS, SDP, ICE, RTP (too many to mention)
* MSRP Protocol http://tools.ietf.org/html/rfc4975
* MSRP Relay extension http://tools.ietf.org/html/rfc4976
* MSRP Alternative Connection Model (ACM) //tools.ietf.org/html/rfc6135
* Multi-party Chat Using MSRP http://tools.ietf.org/html/draft-ietf-simple-chat-14
h3. XMPP Signaling and Media
* XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html
* XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions
* Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html
* Multi-User Chat http://xmpp.org/extensions/xep-0045.html
* File Transfers http://xmpp.org/extensions/xep-0096.html
* Audio and Video Jingle http://xmpp.org/extensions/xep-0166.html
* Audio and Video Jingle RTP http://xmpp.org/extensions/xep-0167.html
* Audio and Video Jingle ICE (UDP) http://xmpp.org/extensions/xep-0176.html
* Delivering Conference Information to Jingle Participants http://xmpp.org/extensions/xep-0298.html
h2. Protocol Translation Specifications
* "XMPP - SIP Core Interworking":http://tools.ietf.org/html/draft-saintandre-sip-xmpp-core-01
* "XMPP - SIP Presence":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-presence-02.html
* "XMPP - SIP Message":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-im-01.html
* "XMPP - MSRP Chat":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-chat-03.html
* "XMPP - MSRP Group Chat":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-groupchat-01.html
Lessons learned during implementation and [[XMPP-Interop| Suggestions for improvement of Protocol Translation Specifications]]
h2. Progress
Completed items are operational on "SIP2SIP":http://sip2sip.info which supports Chat and Presence to gmail.com an jabber.org domains. Progress announcements are made on "SIP beyond VoIP":http://lists.ag-projects.com/mailman/listinfo/sipbeyondvoip mailing list
h3. Completed Items
* "Software Library Analysis":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_analysis
* "Gateway Design":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_arch
* "SIP-XMPP Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_im
* "SIP-XMPP Presence":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_presence
* "SIP-XMPP Multiparty Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_conference
h3. Roadmap
* Public Release of SylkServer (scheduled in September 2012)
* "SIP-XMPP Jingle Audio":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_jingle
* "SIP-XMPP File Transfer ":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_ft
h2. Background
Interoperability between XMPP and SIP protocols protocol has become a necessity given that all closed and public Internet Services for Real Time Communications have migrated to a variant of these protocols, if not internally at least at their borders. Both protocols share a common feature-set, features, the most important one being the usage of Internet identifiers in the form of user@domain and replace the need for classic telephone numbers.
h2. Motivation
Various projects in the open source domain emerged to tackle the interoperability between XMPP and SIP but all of them focused on one-to-one Presence signaling or VoIP sessions, VoIP, but never in the context of complete interoperability for all signaling using user@domain Internet addressing. and media. SylkServer SIP/XMPP XMPP gateway application goal is to cover this gap and provide an open source implementation for interoperability of for all relevant media types and multimedia conferencing for them. We consider relevant media the following: Wide-band audio, Session based IM, Presence and Multiparty Conferencing facilities for all of them.
We consider ScreenSharing and Video beyond the basic need of interoperability due to obvious reasons related to codecs, scalability or lack of standards.
The goal is to implement a bidirectional signaling and media gateway for Presence, Session based Instant Messaging, Multiparty IM, Audio, and File Transfer for SIP and XMPP signaling protocols, RTP and MSRP media planes. This software will work with ZERO configuration, a simple command like "apt-get install sylkserver" will be enough for deployment of the gateway on a Debian Linux OS.
We consider Video beyond the basic need of interoperability but this may change at a later time.
h2. Sponsors
This research and development is part of the WormHole Project sponsored by "NLNet and AG Projects":http://nlnet.nl/project/xmpp-sip/.
h2. Deployment Scenario
!http://sylkserver.com/images/sylk-server-diagram.png!
By pointing the correspondent DNS records for SIP or XMPP services of a given Internet domain to the address of this gateway, any packet sent to or connection established to the gateway by one of the protocols is transparently translated into the other. The server is designed in such way that it requires zero-configuration (except of course for the DNS domains configuration).
h2. Specifications and Standards
h3. SIP Signaling and Media
* SIP (RFC3261) and related RFCs for DNS, SDP, ICE, RTP (too many to mention)
* MSRP Protocol http://tools.ietf.org/html/rfc4975
* MSRP Relay extension http://tools.ietf.org/html/rfc4976
* MSRP Alternative Connection Model (ACM) //tools.ietf.org/html/rfc6135
* Multi-party Chat Using MSRP http://tools.ietf.org/html/draft-ietf-simple-chat-14
h3. XMPP Signaling and Media
* XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html
* XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions
* Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html
* Multi-User Chat http://xmpp.org/extensions/xep-0045.html
* File Transfers http://xmpp.org/extensions/xep-0096.html
* Audio and Video Jingle http://xmpp.org/extensions/xep-0166.html
* Audio and Video Jingle RTP http://xmpp.org/extensions/xep-0167.html
* Audio and Video Jingle ICE (UDP) http://xmpp.org/extensions/xep-0176.html
* Delivering Conference Information to Jingle Participants http://xmpp.org/extensions/xep-0298.html
h2. Protocol Translation Specifications
* "XMPP - SIP Core Interworking":http://tools.ietf.org/html/draft-saintandre-sip-xmpp-core-01
* "XMPP - SIP Presence":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-presence-02.html
* "XMPP - SIP Message":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-im-01.html
* "XMPP - MSRP Chat":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-chat-03.html
* "XMPP - MSRP Group Chat":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-groupchat-01.html
Lessons learned during implementation and [[XMPP-Interop| Suggestions for improvement of Protocol Translation Specifications]]
h2. Progress
Completed items are operational on "SIP2SIP":http://sip2sip.info which supports Chat and Presence to gmail.com an jabber.org domains. Progress announcements are made on "SIP beyond VoIP":http://lists.ag-projects.com/mailman/listinfo/sipbeyondvoip mailing list
h3. Completed Items
* "Software Library Analysis":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_analysis
* "Gateway Design":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_arch
* "SIP-XMPP Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_im
* "SIP-XMPP Presence":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_presence
* "SIP-XMPP Multiparty Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_conference
h3. Roadmap
* Public Release of SylkServer (scheduled in September 2012)
* "SIP-XMPP Jingle Audio":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_jingle
* "SIP-XMPP File Transfer ":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_ft