WikiStart
Version 348 (Adrian Georgescu, 01/08/2009 08:20 pm)
1 | 298 | Adrian Georgescu | = Description = |
---|---|---|---|
2 | 95 | Ruud Klaver | |
3 | 292 | Adrian Georgescu | [[Image(htdocs:SIPSIMPLE-client.png, align=right, nolink)]] |
4 | 346 | Adrian Georgescu | SIP SIMPLE client is Python software library built on top of PJSIP that |
5 | 346 | Adrian Georgescu | together with middleware allows for easy development of Client/Server and |
6 | 346 | Adrian Georgescu | Peer-to-Peer Internet communications end-points based on SIP SIMPLE family |
7 | 346 | Adrian Georgescu | of protocols for voice, video, presence, instant messaging (IM) and file |
8 | 346 | Adrian Georgescu | transfer capabilities. |
9 | 1 | ||
10 | 347 | Adrian Georgescu | The software is provided under the [source:LICENSE GPL LICENSE] |
11 | 347 | Adrian Georgescu | |
12 | 346 | Adrian Georgescu | The goal of this project is to deliver the best open source Python library |
13 | 346 | Adrian Georgescu | for rich featured SIP end-points, while hiding the complex underlying |
14 | 346 | Adrian Georgescu | functionality behind an easy to use high-level application-programming |
15 | 346 | Adrian Georgescu | interface. This package supports to the SDP negotiation, audio codecs and |
16 | 346 | Adrian Georgescu | NAT traversal functionality provided by PJSIP and will thus deliver rich |
17 | 346 | Adrian Georgescu | communications combining instant messaging (IM), voice and video streams. It |
18 | 346 | Adrian Georgescu | also supports file transfer and multi-party chat sessions using MSRP |
19 | 346 | Adrian Georgescu | protocol, publication and subscription for rich presence information such as |
20 | 346 | Adrian Georgescu | availability, moods, activities and geo-location, management for presence |
21 | 346 | Adrian Georgescu | rules, resource lists, RLS services using XCAP protocol. |
22 | 1 | ||
23 | 1 | The software allows you to create elegant real-time communications applications without having to read [http://www.rfc3261.net the +1200 RFC documents] behind it. |
|
24 | 1 | ||
25 | 346 | Adrian Georgescu | == Background == |
26 | 346 | Adrian Georgescu | |
27 | 346 | Adrian Georgescu | SIP stands for 'Sessions Initiation Protocol', an IETF standard described by |
28 | 348 | Adrian Georgescu | [http://tools.ietf.org/html/rfc3261 RFC 3261]. SIP is an application-layer control protocol that can establish, |
29 | 346 | Adrian Georgescu | modify and terminate multimedia sessions such as Internet telephony calls |
30 | 346 | Adrian Georgescu | (VoIP). Media can be added to (and removed from) an existing session. |
31 | 346 | Adrian Georgescu | |
32 | 346 | Adrian Georgescu | SIP transparently supports name mapping and redirection services, which |
33 | 346 | Adrian Georgescu | supports personal mobility, users can maintain a single externally visible |
34 | 346 | Adrian Georgescu | address identifier, which can be in the form of a standard email address or |
35 | 346 | Adrian Georgescu | E.164 telephone number regardless of their physical network location. |
36 | 346 | Adrian Georgescu | |
37 | 346 | Adrian Georgescu | SIP allows the endpoints to negotiate and combine any type of session they |
38 | 346 | Adrian Georgescu | mutually understand like video, instant messaging (IM), file transfer, |
39 | 346 | Adrian Georgescu | desktop sharing and provides a generic event notification system with |
40 | 346 | Adrian Georgescu | real-time publications and subscriptions about state changes that can be |
41 | 346 | Adrian Georgescu | used for asynchronous services like presence, message waiting indicator and |
42 | 346 | Adrian Georgescu | busy line appearance. |
43 | 331 | Adrian Georgescu | |
44 | 344 | Adrian Georgescu | == Features == |
45 | 1 | ||
46 | 345 | Adrian Georgescu | As a library with a high-level [wiki:PyPJUADesign API], the toolkit can be used to add voice, IM |
47 | 344 | Adrian Georgescu | and Presence functionality to any network devices as long as Python/C |
48 | 344 | Adrian Georgescu | environment is supported by such platform. |
49 | 344 | Adrian Georgescu | |
50 | 344 | Adrian Georgescu | Additional to the SIP standards implemented by the underlying PJSIP library, |
51 | 344 | Adrian Georgescu | this project implements: |
52 | 344 | Adrian Georgescu | |
53 | 344 | Adrian Georgescu | * XCAP protocol [http://www.tools.ietf.org/html/rfc4825 RFC4825] |
54 | 344 | Adrian Georgescu | * MSRP protocol [http://tools.ietf.org/html/rfc4975 RFC4975] |
55 | 344 | Adrian Georgescu | * MSRP protocol relay extension [http://tools.ietf.org/html/rfc4976 RFC4976] |
56 | 344 | Adrian Georgescu | * Rich Presence Information Data model and Format (RPIDF) [http://tools.ietf.org/html/rfc3856 RFC3856], [http://tools.ietf.org/html/rfc3863 RFC3863 ], [http://tools.ietf.org/html/rfc4479 RFC4479] |
57 | 344 | Adrian Georgescu | * XCAP-diff event package [http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-diff-09.txt draft-ietf-simple-xcap-diff-09] |
58 | 344 | Adrian Georgescu | * Watcher-info [http://tools.ietf.org/html/rfc3857 RFC3857], [http://tools.ietf.org/html/rfc3858 RFC3858] |
59 | 344 | Adrian Georgescu | * Conference [http://tools.ietf.org/html/rfc4575 RFC4575] |
60 | 344 | Adrian Georgescu | * Message summary [http://tools.ietf.org/html/rfc3842 RFC3842] |
61 | 344 | Adrian Georgescu | * Presence rules [http://www.tools.ietf.org/html/rfc5025 RFC5025] |
62 | 344 | Adrian Georgescu | * Resource-lists and RLS-services [http://www.tools.ietf.org/html/rfc4826 RFC4826] |
63 | 344 | Adrian Georgescu | * PIDF manipulation [http://www.tools.ietf.org/html/rfc4827 RFC4827] |
64 | 344 | Adrian Georgescu | * Bonjour multicast DNS [http://www.ietf.org/internet-drafts/draft-lee-sip-dns-sd-uri-03.txt draft-lee-sip-dns-sd-uri-03] |
65 | 344 | Adrian Georgescu | * Locating SIP services [http://tools.ietf.org/html/rfc3263 RFC3263] |
66 | 344 | Adrian Georgescu | * MSRP ad-hoc multi-party chat sessions [http://tools.ietf.org/html/draft-ietf-simple-chat-03 draft-ietf-simple-chat-03] |
67 | 344 | Adrian Georgescu | |
68 | 344 | Adrian Georgescu | |
69 | 344 | Adrian Georgescu | == Download == |
70 | 344 | Adrian Georgescu | |
71 | 331 | Adrian Georgescu | === Tarball === |
72 | 1 | ||
73 | 331 | Adrian Georgescu | Tarball with the latest released version is available at [http://download.ag-projects.com/SipClient/ http://download.ag-projects.com/SipClient/] |
74 | 331 | Adrian Georgescu | |
75 | 331 | Adrian Georgescu | === Binary packages === |
76 | 331 | Adrian Georgescu | |
77 | 334 | Adrian Georgescu | Binary packages are available for Debian or Ubuntu on i386 and amd64 architectures. To install add the following lines to /etc/apt/sources.list: |
78 | 331 | Adrian Georgescu | |
79 | 180 | Adrian Georgescu | {{{ |
80 | 1 | deb http://ag-projects.com/debian unstable main |
|
81 | 1 | deb-src http://ag-projects.com/debian unstable main |
|
82 | 180 | Adrian Georgescu | }}} |
83 | 312 | Adrian Georgescu | |
84 | 1 | Install AG Projects debian repository signing key: |
|
85 | 1 | ||
86 | 1 | {{{ |
|
87 | 1 | wget http://download.ag-projects.com/agp-debian-gpg.key |
|
88 | 312 | Adrian Georgescu | apt-key add agp-debian-gpg.key |
89 | 312 | Adrian Georgescu | }}} |
90 | 324 | Adrian Georgescu | |
91 | 312 | Adrian Georgescu | Install the software: |
92 | 312 | Adrian Georgescu | |
93 | 312 | Adrian Georgescu | {{{ |
94 | 1 | apt-get update |
|
95 | 1 | apt-get install sipclient |
|
96 | 229 | Adrian Georgescu | }}} |
97 | 324 | Adrian Georgescu | |
98 | 324 | Adrian Georgescu | |
99 | 333 | Adrian Georgescu | Install dependencies that are not yet available as debian package: |
100 | 324 | Adrian Georgescu | |
101 | 325 | Adrian Georgescu | {{{ |
102 | 324 | Adrian Georgescu | sudo apt-get install mercurial python-setuptools |
103 | 335 | Adrian Georgescu | |
104 | 324 | Adrian Georgescu | # Download and install eventlet for twisted: |
105 | 324 | Adrian Georgescu | hg clone http://devel.ag-projects.com/~denis/cgi-bin/hgweb.cgi/eventlet_twisted |
106 | 324 | Adrian Georgescu | cd eventlet_twisted |
107 | 1 | ||
108 | 1 | # To update the eventlet_twisted at a later date: |
|
109 | 1 | cd eventlet_twisted |
|
110 | 335 | Adrian Georgescu | hg pull |
111 | 1 | hg update |
|
112 | 331 | Adrian Georgescu | |
113 | 1 | sudo python setup.py install |
|
114 | 341 | Adrian Georgescu | }}} |
115 | 1 | ||
116 | 331 | Adrian Georgescu | === Version control === |
117 | 331 | Adrian Georgescu | |
118 | 331 | Adrian Georgescu | The source code is managed using [http://darcs.net darcs] version control tool. The darcs repository can be fetched with: |
119 | 1 | ||
120 | 331 | Adrian Georgescu | {{{ |
121 | 331 | Adrian Georgescu | darcs get http://devel.ag-projects.com/repositories/pypjua sipsimpleclient |
122 | 331 | Adrian Georgescu | }}} |
123 | 331 | Adrian Georgescu | |
124 | 331 | Adrian Georgescu | To obtain the incremental changes after the initial get, go to the sipsimpleclient directory and run: |
125 | 331 | Adrian Georgescu | |
126 | 262 | Adrian Georgescu | {{{ |
127 | 1 | cd sipsimpleclient |
|
128 | 299 | Adrian Georgescu | darcs pull |
129 | 1 | }}} |
|
130 | 1 | ||
131 | 344 | Adrian Georgescu | == Installation == |
132 | 340 | Adrian Georgescu | |
133 | 344 | Adrian Georgescu | Installation instructions for the corresponding platforms are available at: |
134 | 1 | ||
135 | 1 | * [source:docs/INSTALL.debian INSTALL.debian] |
|
136 | 299 | Adrian Georgescu | * [source:docs/INSTALL.linux INSTALL.linux] |
137 | 1 | * [source:docs/INSTALL.osx INSTALL.osx] |
|
138 | 1 | * [source:docs/INSTALL.freebsd INSTALL.freebsd] |
|
139 | 1 | ||
140 | 299 | Adrian Georgescu | SIP SIMPLE client is closely developed together with and tested against the most popular SIP SIMPLE server software available today: [http://opensips.org OpenSIPS], [http://openxcap.org OpenXCAP] and [http://msrprelay.org MSRPRelay]. Included with the library, a set of command line tools are available for setting up audio, Instant Messaging and file transfer sessions, publish and subscribe to presence or other type of events. |
141 | 1 | ||
142 | 329 | Adrian Georgescu | * [wiki:sip_register sip_register] - REGISTER a SIP end-point with a SIP Registrar |
143 | 329 | Adrian Georgescu | * [wiki:sip_rtp_audio_session sip_audio_session] - Setup a voice audio session (Voice over IP) |
144 | 339 | Adrian Georgescu | * [wiki:sip_msrp_im_session sip_im_session] - Setup IM session and File transfer using MSRP protocol |
145 | 235 | Adrian Georgescu | * [wiki:sip_message sip_message] - Send/receive text in page mode using SIP MESSAGE method |
146 | 317 | Adrian Georgescu | * [wiki:sip_publish_presence sip_publish_presence] - PUBLISH presence to a SIP Presence Agent |
147 | 235 | Adrian Georgescu | * [wiki:sip_subscribe_presence sip_subscribe_presence] - SUBSCRIBE to presence information |
148 | 311 | Adrian Georgescu | * [wiki:sip_subscribe_winfo sip_subscribe_winfo] - SUBSCRIBE to watcher list on a SIP Presence Agent |
149 | 235 | Adrian Georgescu | * [wiki:sip_subscribe_rls sip_subscribe_rls] - SUBSCRIBE to lists managed by Resource List Server |
150 | 235 | Adrian Georgescu | * [wiki:xcapclient xcapclient] - PUT/GET/DELETE full or partial documents on an XCAP server |
151 | 311 | Adrian Georgescu | * [wiki:xcap_pres_rules xcap_pres_rules] - Manage content of pres-rules XCAP document |
152 | 338 | Adrian Georgescu | * [wiki:xcap_rls_services] - Manage content of RLS services XCAP document |
153 | 235 | Adrian Georgescu | |
154 | 311 | Adrian Georgescu | |
155 | 235 | Adrian Georgescu | == Support == |
156 | 235 | Adrian Georgescu | |
157 | 332 | Adrian Georgescu | To request support you must open a ticket. To open ticket please [/register Register] first. The source browser and ticketing system are available only for registered users. |
158 | 191 | Adrian Georgescu | |
159 | 202 | Adrian Georgescu | If you wish to contribute and become an active developer of this project, send your request by email to pypjua-devel@ag-projects.com. |