WikiStart

Version 86 (Adrian Georgescu, 12/20/2008 10:58 am)

1 19 Adrian Georgescu
2 81 Adrian Georgescu
= MSRP  software suite =
3 1
4 79 Adrian Georgescu
[[Image(http://msrprelay.org/chrome/site/files/MSRP-Relay-Scenarios.png, align=right)]] 
5 1
6 82 Adrian Georgescu
== Description ==
7 1
8 1
A series of related instant messages between two or more parties can be viewed as part of a "message session", that is, a conversational exchange of messages with a definite beginning and end. This is in contrast to individual messages each sent independently. Messaging schemes that track only individual messages can be described as "page-mode" messaging, whereas messaging that is part of a "session" with a definite start and end is called "session-mode" messaging.
9 1
10 1
Page-mode messaging is enabled in SIP via the SIP MESSAGE method, as defined in [http://tools.ietf.org/html/rfc3428 RFC 3428]. Session-mode messaging has a number of benefits over page-mode messaging, however, such as explicit rendezvous, tighter integration with other media-types, direct client-to-client operation, and brokered privacy and security.
11 1
12 37 Adrian Georgescu
Message Session Relay Protocol (MSRP) is a protocol for transmitting a series of related instant messages in the context of a session. Message sessions are treated like any other media stream when set up via a rendezvous or session creation protocol such as the Session Initiation Protocol (SIP). MSRP Sessions are defined in [http://tools.ietf.org/html/rfc4975 RFC 4975].
13 82 Adrian Georgescu
14 82 Adrian Georgescu
This project implements in Python programming language:
15 82 Adrian Georgescu
16 82 Adrian Georgescu
 * MSRP client library, it can be used to create clients from instant messaging and file transfer based on [http://tools.ietf.org/html/rfc4975 RFC 4975] and [http://tools.ietf.org/html/rfc4976 RFC 4976]
17 82 Adrian Georgescu
 * MSRP relay, a stand alone server. Its main role is to help NAT traversal of instant messaging and file transfer sessions between SIP end-points located behind NAT. This extension is defined in [http://tools.ietf.org/html/rfc4976 RFC 4976].
18 82 Adrian Georgescu
 * MSRP chat server, a stand alone server, which allows multi-party IM/File transfer sessions using SIP protocol [http://tools.ietf.org/html/draft-ietf-simple-chat-03 draft-ietf-simple-chat-03]
19 37 Adrian Georgescu
20 51 Adrian Georgescu
== Security ==
21 51 Adrian Georgescu
22 81 Adrian Georgescu
The software have the following security features:
23 51 Adrian Georgescu
24 51 Adrian Georgescu
  * TLS encryption and digital certificates using GnuTLS library
25 51 Adrian Georgescu
  * Digest or basic HTTP authentication with support for multiple realms
26 51 Adrian Georgescu
  * Database passwords can be stored in an encrypted format
27 5 Ruud Klaver
28 39 Adrian Georgescu
== Documentation ==
29 1
30 1
 * [wiki:MSRPRelayScenarios MSRP Relay scenarios] - This document describes several use case scenarios of how MSRP relay functionality may be deployed in the field
31 1
 * [wiki:MSRPRelayDesign MSRP Relay design] - The internal logic of the MSRPRelay is described as a series of message flow diagrams
32 1
 * [wiki:InstallationGuide MSRP Relay Installation guide] - How to install the software
33 1
  
34 1
== Download ==
35 1
36 81 Adrian Georgescu
The software can be downloaded as a tar archive from: [http://download.ag-projects.com/MSRPRelay/ http://download.ag-projects.com/MSRPRelay/]
37 1
38 81 Adrian Georgescu
For people running Debian testing or unstable there is an official public repository provided by AG Projects. 
39 1
40 81 Adrian Georgescu
Add the following lines to /etc/apt/sources.list:
41 1
42 81 Adrian Georgescu
{{{
43 81 Adrian Georgescu
# AG Projects software
44 81 Adrian Georgescu
deb	http://ag-projects.com/debian unstable main
45 81 Adrian Georgescu
deb-src http://ag-projects.com/debian unstable main
46 81 Adrian Georgescu
}}}
47 1
48 81 Adrian Georgescu
Update the list of available software:
49 81 Adrian Georgescu
50 81 Adrian Georgescu
{{{
51 81 Adrian Georgescu
apt-get update
52 81 Adrian Georgescu
}}}
53 81 Adrian Georgescu
54 81 Adrian Georgescu
To install the MSRP client:
55 81 Adrian Georgescu
56 81 Adrian Georgescu
{{{
57 81 Adrian Georgescu
apt-get install python-msrplib
58 81 Adrian Georgescu
}}}
59 81 Adrian Georgescu
60 81 Adrian Georgescu
To install the MSRP relay:
61 81 Adrian Georgescu
62 81 Adrian Georgescu
{{{
63 81 Adrian Georgescu
apt-get install msrprelay
64 81 Adrian Georgescu
}}}
65 81 Adrian Georgescu
66 81 Adrian Georgescu
=== Version control ===
67 81 Adrian Georgescu
68 81 Adrian Georgescu
The source code is managed using darcs version control tool. The darcs repository can be fetched with:
69 81 Adrian Georgescu
70 81 Adrian Georgescu
{{{
71 81 Adrian Georgescu
darcs get http://devel.ag-projects.com/repositories/python-msrplib
72 81 Adrian Georgescu
}}}
73 81 Adrian Georgescu
74 81 Adrian Georgescu
To obtain the incremental changes after the initial get, go to the openxcap directory and run:
75 81 Adrian Georgescu
76 81 Adrian Georgescu
{{{
77 81 Adrian Georgescu
cd python-msrplib
78 81 Adrian Georgescu
darcs pull -a
79 81 Adrian Georgescu
}}}
80 81 Adrian Georgescu
81 81 Adrian Georgescu
82 81 Adrian Georgescu
== MSRP clients ==
83 81 Adrian Georgescu
84 76 Adrian Georgescu
No server is relevant without clients supporting their features. Below is a list with MSRP clients. Not all implement the relay extension yet: 
85 1
86 1
    * [http://pypjua.org/ SIP SIMPLE client] (IM and file transfer with MSRP relay support)
87 1
    * [http://www.mercuro.net/ Mercuro] (MSRP IM and File transfer but no relay support)
88 1
    * http://www.xs4all.nl/~mfnboer/twinkle/index.html (on the roadmap)
89 78 Adrian Georgescu
    * [http://mac.softpedia.com/get/Development/Libraries/LibMSRP.shtml LibMSRP] 
90 78 Adrian Georgescu
91 84 Adrian Georgescu
At SIPIT 23-rd held in October 2008 at Lannion, France were five MSRP client implementations.
92 1
93 1
== Live testbed ==
94 46 Adrian Georgescu
95 1
We provide a live SIP testbed with MSRP relay enabled. You may use the SIP accounts registered at [http://sip2sip.info http://sip2sip.info] for reserving MSRP sessions in an operational MSRP relay. 
96 46 Adrian Georgescu
97 48 Adrian Georgescu
{{{
98 81 Adrian Georgescu
_msrps._tcp.sip2sip.info. 3600	IN	SRV	0 0 2855 node10.dns-hosting.info.
99 81 Adrian Georgescu
_msrps._tcp.sip2sip.info. 3600	IN	SRV	0 0 2855 node03.dns-hosting.info.
100 81 Adrian Georgescu
node10.dns-hosting.info. 900	IN	A	81.23.228.139
101 81 Adrian Georgescu
node03.dns-hosting.info. 900	IN	A	81.23.228.146
102 46 Adrian Georgescu
}}}
103 58 Adrian Georgescu
104 1
105 45 Adrian Georgescu
[[Image(http://nlnet.nl/image/logo.gif, align=right, nolink)]]
106 81 Adrian Georgescu
107 9 Adrian Georgescu
== Credits ==
108 34 Adrian Georgescu
109 86 Adrian Georgescu
 * Funding for MSRP relay and chat server provided by [http://www.nlnet.nl NLNet foundation]
110 83 Adrian Georgescu
 * Credits: Adrian Georgescu, Ruud Klaver, Denis Bilenko, Dan Pascu and the IETF community for advise and support
111 42 Adrian Georgescu
112 85 Adrian Georgescu
== Support == 
113 44 Adrian Georgescu
114 85 Adrian Georgescu
The project is supported via this wiki collaboration system by [http://ag-projects.com AG Projects]. To open  ticket please Register first. The ticketing support system is available only for registered users. The support is provided on a best-effort basis.
115 73 Adrian Georgescu
116 85 Adrian Georgescu
For commercial support see  [http://ag-projects.com Multimedia Service Platform]