DesignXMPP
Version 71 (Adrian Georgescu, 09/03/2012 01:32 pm)
1 | 1 | Tijmen de Mes | h1. SIP/XMPP Gateway |
---|---|---|---|
2 | 1 | Tijmen de Mes | |
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 | 70 | Adrian Georgescu | |
7 | 70 | Adrian Georgescu | h2. Motivation |
8 | 70 | Adrian Georgescu | |
9 | 70 | Adrian Georgescu | 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 | 70 | Adrian Georgescu | |
11 | 70 | Adrian Georgescu | 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 | 70 | Adrian Georgescu | |
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 | 1 | Tijmen de Mes | |
15 | 1 | Tijmen de Mes | |
16 | 1 | Tijmen de Mes | h2. Deployment Scenario |
17 | 71 | Adrian Georgescu | |
18 | 71 | Adrian Georgescu | !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 | 1 | Tijmen de Mes | h2. Specifications and Standards |
23 | 1 | Tijmen de Mes | |
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 | 42 | Adrian Georgescu | * 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 | 1 | Tijmen de Mes | * File Transfers http://xmpp.org/extensions/xep-0096.html |
39 | 1 | Tijmen de Mes | * Audio and Video Jingle http://xmpp.org/extensions/xep-0166.html |
40 | 1 | Tijmen de Mes | * Audio and Video Jingle RTP http://xmpp.org/extensions/xep-0167.html |
41 | 1 | Tijmen de Mes | * Audio and Video Jingle ICE (UDP) http://xmpp.org/extensions/xep-0176.html |
42 | 1 | Tijmen de Mes | * 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 | 52 | Adrian Georgescu | |
60 | 51 | Adrian Georgescu | * "Software Library Analysis":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_analysis |
61 | 51 | Adrian Georgescu | * "Gateway Design":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_arch |
62 | 51 | Adrian Georgescu | * "SIP-XMPP Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_im |
63 | 51 | Adrian Georgescu | * "SIP-XMPP Presence":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_presence |
64 | 51 | Adrian Georgescu | * "SIP-XMPP Multiparty Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_conference |
65 | 51 | Adrian Georgescu | |
66 | 51 | Adrian Georgescu | h3. Roadmap |
67 | 38 | Adrian Georgescu | |
68 | 38 | Adrian Georgescu | * "SIP-XMPP Jingle Audio":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_jingle |
69 | 38 | Adrian Georgescu | * "SIP-XMPP File Transfer ":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_ft |