DesignXMPP

Version 87 (Adrian Georgescu, 10/21/2014 12:45 am)

1 74 Adrian Georgescu
h1. SylkServer SIP/XMPP Gateway
2 1 Tijmen de Mes
3 70 Adrian Georgescu
h2. Background
4 1 Tijmen de Mes
5 74 Adrian Georgescu
Interoperability between XMPP and SIP protocols 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, 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 1 Tijmen de Mes
h2. Motivation
8 1 Tijmen de Mes
9 78 Adrian Georgescu
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, but never in the context of rich media interoperability and using standard user@domain Internet addressing. 
10 78 Adrian Georgescu
11 80 Saúl Ibarra Corretgé
SylkServer SIP/XMPP gateway application goal is to cover this gap and provide an Open Source implementation for interoperability of all relevant media types and multimedia conferencing for them. We consider the following as relevant media: Wide-band audio, Session based IM, File Transfer, 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.
12 70 Adrian Georgescu
13 81 Saúl Ibarra Corretgé
The goal is to implement a bidirectional signaling and media gateway for Presence, Session based Instant Messaging, Multiparty Chat, 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 server.
14 70 Adrian Georgescu
15 72 Adrian Georgescu
h2. Sponsors
16 1 Tijmen de Mes
17 72 Adrian Georgescu
This research and development is part of the WormHole Project sponsored by "NLNet and AG Projects":http://nlnet.nl/project/xmpp-sip/.
18 1 Tijmen de Mes
19 1 Tijmen de Mes
h2. Deployment Scenario
20 71 Adrian Georgescu
21 71 Adrian Georgescu
!http://sylkserver.com/images/sylk-server-diagram.png!
22 1 Tijmen de Mes
23 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).
24 1 Tijmen de Mes
25 1 Tijmen de Mes
h2. Specifications and Standards
26 1 Tijmen de Mes
27 49 Adrian Georgescu
h3. SIP Signaling and Media
28 42 Adrian Georgescu
29 50 Adrian Georgescu
* SIP (RFC3261) and related RFCs for DNS, SDP, ICE, RTP (too many to mention)
30 42 Adrian Georgescu
* MSRP Protocol http://tools.ietf.org/html/rfc4975
31 42 Adrian Georgescu
* MSRP Relay extension http://tools.ietf.org/html/rfc4976
32 60 Adrian Georgescu
* MSRP Alternative Connection Model (ACM) //tools.ietf.org/html/rfc6135
33 48 Adrian Georgescu
* Multi-party Chat Using MSRP http://tools.ietf.org/html/draft-ietf-simple-chat-14
34 42 Adrian Georgescu
35 44 Adrian Georgescu
h3. XMPP Signaling and Media
36 42 Adrian Georgescu
37 1 Tijmen de Mes
* XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html
38 41 Adrian Georgescu
* XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions
39 31 Adrian Georgescu
* Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html
40 1 Tijmen de Mes
* Multi-User Chat http://xmpp.org/extensions/xep-0045.html
41 1 Tijmen de Mes
* File Transfers http://xmpp.org/extensions/xep-0096.html
42 1 Tijmen de Mes
* Audio and Video Jingle http://xmpp.org/extensions/xep-0166.html
43 1 Tijmen de Mes
* Audio and Video  Jingle RTP http://xmpp.org/extensions/xep-0167.html
44 1 Tijmen de Mes
* Audio and Video Jingle ICE (UDP) http://xmpp.org/extensions/xep-0176.html
45 1 Tijmen de Mes
* Delivering Conference Information to Jingle Participants http://xmpp.org/extensions/xep-0298.html
46 23 Adrian Georgescu
47 86 Adrian Georgescu
h2. Protocol Translation Specifications (STOX)
48 1 Tijmen de Mes
49 86 Adrian Georgescu
http://datatracker.ietf.org/wg/stox/
50 86 Adrian Georgescu
51 87 Adrian Georgescu
* XMPP - SIP Core Interworking (RFC 7247) http://datatracker.ietf.org/doc/rfc7247/
52 86 Adrian Georgescu
* "XMPP - SIP Presence":http://datatracker.ietf.org/doc/draft-ietf-stox-presence/
53 86 Adrian Georgescu
* "XMPP - SIP Message":http://datatracker.ietf.org/doc/draft-ietf-stox-im/
54 86 Adrian Georgescu
* "XMPP - MSRP Chat":http://datatracker.ietf.org/doc/draft-ietf-stox-chat/
55 86 Adrian Georgescu
* "XMPP - MSRP Group Chat":http://datatracker.ietf.org/doc/draft-ietf-stox-groupchat/
56 1 Tijmen de Mes
57 66 Adrian Georgescu
Lessons learned during implementation and [[XMPP-Interop| Suggestions for improvement of Protocol Translation Specifications]]
58 61 Adrian Georgescu
59 8 Adrian Georgescu
h2. Progress
60 1 Tijmen de Mes
61 85 Adrian Georgescu
Completed items are operational on "SIP2SIP":http://sip2sip.info which supports Chat and Presence to several XMPP domains, audio works with jit.si domain. Progress announcements are  made on "SIP beyond VoIP":http://lists.ag-projects.com/mailman/listinfo/sipbeyondvoip mailing list 
62 1 Tijmen de Mes
63 52 Adrian Georgescu
h3. Completed Items
64 52 Adrian Georgescu
65 51 Adrian Georgescu
* "Software Library Analysis":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_analysis
66 51 Adrian Georgescu
* "Gateway Design":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_arch
67 51 Adrian Georgescu
* "SIP-XMPP Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_im
68 51 Adrian Georgescu
* "SIP-XMPP Presence":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_presence
69 51 Adrian Georgescu
* "SIP-XMPP Multiparty Chat":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_conference
70 83 Adrian Georgescu
* "SIP-XMPP Jingle Audio":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_jingle
71 1 Tijmen de Mes
72 85 Adrian Georgescu
h3. Nice to have
73 38 Adrian Georgescu
74 38 Adrian Georgescu
* "SIP-XMPP File Transfer ":http://sylkserver.ag-projects.com/projects/sylkserver/wiki/DesginXMPP_ft