Project

General

Profile

DesignXMPP » History » Version 71

Adrian Georgescu, 09/03/2012 01:32 PM

1 1 Tijmen de Mes
h1. SIP/XMPP Gateway
2
3 70 Adrian Georgescu
h2. Background
4 1 Tijmen de Mes
5 70 Adrian Georgescu
Interoperability between XMPP and SIP protocol has become a necessity given that all closed or 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 common 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.
6
7
h2. Motivation
8
9
Various projects in the open source domain emerged to tackle the interoperability between XMPP and SIP but all focused on Presence Signaling or VoIP alone, never in the context of complete interoperability for all signaling and media. SylkServer XMPP gateway application goal is to cover this gap and provide an open source implementation for interoperability for all relevant media types and multimedia conferencing for them.
10
11
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.
12
13 1 Tijmen de Mes
This research and development is part of the WormHole Project sponsored by "NLNet and AG Projects":http://nlnet.nl/project/xmpp-sip/.
14
15
16
h2. Deployment Scenario
17 71 Adrian Georgescu
18
!http://sylkserver.com/images/sylk-server-diagram.png!
19 1 Tijmen de Mes
20 69 Adrian Georgescu
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).
21 1 Tijmen de Mes
22
h2. Specifications and Standards
23
24 49 Adrian Georgescu
h3. SIP Signaling and Media
25 42 Adrian Georgescu
26 50 Adrian Georgescu
* SIP (RFC3261) and related RFCs for DNS, SDP, ICE, RTP (too many to mention)
27 42 Adrian Georgescu
* MSRP Protocol http://tools.ietf.org/html/rfc4975
28
* MSRP Relay extension http://tools.ietf.org/html/rfc4976
29 60 Adrian Georgescu
* MSRP Alternative Connection Model (ACM) //tools.ietf.org/html/rfc6135
30 48 Adrian Georgescu
* Multi-party Chat Using MSRP http://tools.ietf.org/html/draft-ietf-simple-chat-14
31 42 Adrian Georgescu
32 44 Adrian Georgescu
h3. XMPP Signaling and Media
33 42 Adrian Georgescu
34 1 Tijmen de Mes
* XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html
35 41 Adrian Georgescu
* XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions
36 31 Adrian Georgescu
* Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html
37 1 Tijmen de Mes
* Multi-User Chat http://xmpp.org/extensions/xep-0045.html
38
* File Transfers http://xmpp.org/extensions/xep-0096.html
39
* Audio and Video Jingle http://xmpp.org/extensions/xep-0166.html
40
* Audio and Video  Jingle RTP http://xmpp.org/extensions/xep-0167.html
41
* Audio and Video Jingle ICE (UDP) http://xmpp.org/extensions/xep-0176.html
42
* Delivering Conference Information to Jingle Participants http://xmpp.org/extensions/xep-0298.html
43 23 Adrian Georgescu
44 42 Adrian Georgescu
h2. Protocol Translation Specifications
45 23 Adrian Georgescu
46 67 Adrian Georgescu
* "XMPP - SIP Core Interworking":http://tools.ietf.org/html/draft-saintandre-sip-xmpp-core-01
47 26 Adrian Georgescu
* "XMPP - SIP Presence":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-presence-02.html
48 22 Adrian Georgescu
* "XMPP - SIP Message":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-im-01.html
49 47 Adrian Georgescu
* "XMPP - MSRP Chat":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-chat-03.html
50 22 Adrian Georgescu
* "XMPP - MSRP Group Chat":http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-groupchat-01.html
51 1 Tijmen de Mes
52 66 Adrian Georgescu
Lessons learned during implementation and [[XMPP-Interop| Suggestions for improvement of Protocol Translation Specifications]]
53 61 Adrian Georgescu
54 8 Adrian Georgescu
h2. Progress
55 1 Tijmen de Mes
56 56 Adrian Georgescu
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 
57 1 Tijmen de Mes
58 52 Adrian Georgescu
h3. Completed Items
59
60 51 Adrian Georgescu
* "Software Library Analysis":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_analysis
61
* "Gateway Design":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_arch
62
* "SIP-XMPP Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_im
63
* "SIP-XMPP Presence":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_presence
64
* "SIP-XMPP Multiparty Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_conference
65
66
h3. Roadmap
67 38 Adrian Georgescu
68
* "SIP-XMPP Jingle Audio":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_jingle
69
* "SIP-XMPP File Transfer ":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_ft