DesignXMPP

Version 29 (Anonymous, 02/13/2012 03:24 pm)

1 24 Adrian Georgescu
= SIP/XMPP Gateway =
2 13 Adrian Georgescu
3 28 Adrian Georgescu
[[TOC(DesignXMPP, depth=3)]]
4 28 Adrian Georgescu
5 1 Adrian Georgescu
The goal for this project is to implement a bidirectional gateway for Presence and Instant Messaging between SIP and XMMP protocols based on the following specifications:
6 1 Adrian Georgescu
7 28 Adrian Georgescu
== XMPP specs ==
8 1 Adrian Georgescu
9 28 Adrian Georgescu
 * XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html
10 28 Adrian Georgescu
 * XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions
11 28 Adrian Georgescu
12 28 Adrian Georgescu
=== Session type specs ===
13 28 Adrian Georgescu
14 28 Adrian Georgescu
 * Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html
15 28 Adrian Georgescu
 * File Transfers http://xmpp.org/extensions/xep-0096.html
16 28 Adrian Georgescu
 * Audio
17 28 Adrian Georgescu
  * Jingle http://xmpp.org/extensions/xep-0166.html
18 28 Adrian Georgescu
  * Jingle RTP http://xmpp.org/extensions/xep-0167.html
19 28 Adrian Georgescu
  * Jingle ICE (UDP) http://xmpp.org/extensions/xep-0176.html
20 28 Adrian Georgescu
21 28 Adrian Georgescu
== Gateway specs ==
22 28 Adrian Georgescu
23 28 Adrian Georgescu
 * Presence http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-presence-02.html
24 28 Adrian Georgescu
 * Instant Messaging http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-im-01.html
25 28 Adrian Georgescu
 * Chat http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-chat-03.html
26 28 Adrian Georgescu
 * Group Chat http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-groupchat-01.html
27 28 Adrian Georgescu
28 28 Adrian Georgescu
== Libraries ==
29 28 Adrian Georgescu
30 1 Adrian Georgescu
The software must be written in Python programming language. 
31 1 Adrian Georgescu
32 1 Adrian Georgescu
The correspondent protocols are implemented by the following SDKs:
33 1 Adrian Georgescu
34 28 Adrian Georgescu
=== XMPP SDK ===
35 1 Adrian Georgescu
36 28 Adrian Georgescu
To be chosen in the analysis phase. Candidates:
37 21 Adrian Georgescu
38 28 Adrian Georgescu
 * SleekXMPP http://github.com/fritzy/SleekXMPP
39 28 Adrian Georgescu
 * Wokkel http://wokkel.ik.nu/
40 28 Adrian Georgescu
 * List on xmpp.org http://xmpp.org/xmpp-software/libraries/
41 20 Adrian Georgescu
42 28 Adrian Georgescu
=== SIP SDK ===
43 20 Adrian Georgescu
44 28 Adrian Georgescu
 * SIP SIMPLE SDK http://sipsimpleclient.com
45 27 Adrian Georgescu
46 28 Adrian Georgescu
== Deployment Scenario ==
47 27 Adrian Georgescu
48 28 Adrian Georgescu
By pointing the DNS records corespondent to the SIP or XMPP service to the address where the gateway listens to, any packet that enters the gateway by one of the protocols must be translated int the other.
49 28 Adrian Georgescu
 
50 29 Adrian Georgescu
== Milestones ==
51 29 Adrian Georgescu
52 29 Adrian Georgescu
 1. [http://sipsimpleclient.com/wiki/DesignXMPP_analysis XMPP library analysis]
53 29 Adrian Georgescu
 1. System architecture design