WikiStart » History » Version 107
Adrian Georgescu, 08/15/2008 03:59 PM
1 | 101 | Adrian Georgescu | [[Image(htdocs:SIPUA-design-70.png, align=right, link=wiki:SIPUADesign)]] |
---|---|---|---|
2 | 96 | Ruud Klaver | |
3 | == Project description == |
||
4 | 95 | Ruud Klaver | |
5 | 98 | Adrian Georgescu | PyPjUA is Python software library for [http://pjsip.org PJSIP] C SIP stack that together with a clever middleware allows for easy development of SIP User agents with [wiki:RichPresence rich presence] capability that run on desktop computers running Mac OS X, Linux and Windows operating systems, portable Internet devices like Nokia 810, Apple iPhone or Android mobile phones. |
6 | 1 | ||
7 | 99 | Adrian Georgescu | As a library with a high-level API, the toolkit can also be used to add SIP and Presence functionality to network devices without a display (like TV set-up boxes), as long as Python environment is supported by such platform. |
8 | |||
9 | 14 | Adrian Georgescu | == License == |
10 | |||
11 | 12 | Adrian Georgescu | The software is provided under the [source:LICENSE GPL LICENSE] |
12 | 1 | ||
13 | 14 | Adrian Georgescu | == Deliverables == |
14 | 1 | ||
15 | 40 | Adrian Georgescu | The goal of this project is to deliver an Open Source development kit for a rich featured SIP User Agent while hiding the complex underlying functionality behind an easy to use high-level application programming interface. You may collapse the whole telecom industry into a simple ''Call me'' button or expand the presence buddy list to display the mood or blood pressure of your buddies (if they want to share this information with you). |
16 | 39 | Adrian Georgescu | |
17 | 45 | Adrian Georgescu | Using this software you are able to create elegant real-time communications applications without having to read or understand [http://www.rfc3261.net the +1200 RFC documents] behind it. |
18 | |||
19 | 47 | Adrian Georgescu | ''If you read them all some antidepressant and desintoxication is recommended after this effort.'' |
20 | 1 | ||
21 | 92 | Ruud Klaver | == High level design == |
22 | |||
23 | PyPjUA is part of a [wiki:SIPUADesign greater design] design to provide a fully fledged SIP UA. |
||
24 | |||
25 | 34 | Adrian Georgescu | == Software repository == |
26 | |||
27 | 88 | Adrian Georgescu | Besides the Python software library itself, the repository contains the ready to use sip-simple-test-tools package that can be used to: |
28 | 1 | ||
29 | 87 | Adrian Georgescu | * Setup SIP [http://tools.ietf.org/html/rfc4975 MSRP sessions] between end-points with public IP or behind NAT by using [http://tools.ietf.org/html/rfc4976 MSRP relay] |
30 | * Setup up VoIP sessions between end-points with public IP adresses or behind NAT by using ICE and media relay |
||
31 | 107 | Adrian Georgescu | * [http://tools.ietf.org/html/rfc3903 PUBLISH] and [http://www.ietf.org/rfc/rfc3265.txt SUBSCRIBE/NOTIFY] to SIP events like [http://tools.ietf.org/html/rfc3856 presence], [http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-diff-09.txt xcap-diff], [http://tools.ietf.org/html/rfc3857 watcher-info], [http://tools.ietf.org/html/rfc4575 conference], [http://tools.ietf.org/html/rfc3842 message-summary] |
32 | 1 | * Manage presence policy the form of full or partial [http://www.tools.ietf.org/html/rfc4825 XCAP] documents like [http://www.tools.ietf.org/html/rfc5025 pres-rules], [http://www.tools.ietf.org/html/rfc4826 resource-lists, rls-services] and [http://www.tools.ietf.org/html/rfc4827 pidf-manipulation] |
|
33 | 106 | Adrian Georgescu | * Lookup of SIP buddies using [http://www.tech-invite.com/SIPWGs/01-WG-SIP/Idrafts/draft-lee-sip-dns-sd-uri-02.txt Bonjour] (LAN broadcast), [http://tools.ietf.org/html/rfc3263 RFC 3263] (Locating SIP Services) and P2P overlays |
34 | 90 | Adrian Georgescu | * Setup up [http://www.tech-invite.com/SIPWGs/03-WG-SIMPLE/Drafts/draft-ietf-simple-chat-02.txt ad-hoc multi-party chat sessions] with an MSRP chat server (under construction) |
35 | 1 | ||
36 | 97 | Adrian Georgescu | Using these scripts is easy to prototype [wiki:RichPresence Rich Presence], IM and VoIP services based on the SIP protocol. |
37 | 86 | Adrian Georgescu | To use these tools you can use your own infrastructure or register a free SIP SIMPLE account on [http://sip2sip.info http://SIP2SIP.info] |
38 | 34 | Adrian Georgescu | |
39 | == Download == |
||
40 | |||
41 | 102 | Adrian Georgescu | The software library and command line tools will be available for download on 2008 Q4. |
42 | |||
43 | The software will be available from: |
||
44 | 34 | Adrian Georgescu | |
45 | [http://download.ag-projects.com/PyPjUA http://download.ag-projects.com/PyPjUA] |
||
46 | |||
47 | == End-user experiences == |
||
48 | 33 | Adrian Georgescu | |
49 | Using this toolkit you can develop in short time a skinable and cross-platform SIP User Agent that can be used for real-time Internet communications: |
||
50 | |||
51 | 74 | Adrian Georgescu | * VoIP calls using Internet codecs (Speex, iLBC) and G.711 |
52 | 81 | Adrian Georgescu | * Multiple audio/msrp/video streams per session (for live broadcasting applications) |
53 | 69 | Adrian Georgescu | * Zero configuration when communication over LAN (Bonjour) |
54 | 71 | Adrian Georgescu | * Presence using SIP SIMPLE (PUBLISH, SUBSCRIBE, NOTIFY and XCAP policy) |
55 | 33 | Adrian Georgescu | * Interactive Messaging (IM) and File transfer using MSRP protocol |
56 | 103 | Adrian Georgescu | * Multiparty chat using MSRP chat server |
57 | 33 | Adrian Georgescu | * Support for NAT traversal using ICE for RTP media and MSRP Relay for IM |
58 | 103 | Adrian Georgescu | * Sharing desktop screen using VNC protocol |
59 | * Video calls |
||
60 | 93 | Adrian Georgescu | |
61 | 82 | Adrian Georgescu | The software is tested against the most popular SIP server software: [http://openser.org OpenSER], [http://openxcap.org OpenXCAP], [http://mediaproxy-ng.org MediaProxy] and [http://msrprelay.org MSRPRelay] servers. To test the software you can register a free SIP SIMPLE account on [http://SIP2SIP.info SIP2SIP] |
62 | 62 | Adrian Georgescu | |
63 | |||
64 | == Integration with third-party projects == |
||
65 | |||
66 | 80 | Adrian Georgescu | PyPjUA will be first integrated into [http://tribler.org Tribler]. Tribler is an application that enables its users to find, enjoy and share content. With content we mean video, audio, pictures, and much more. PyPjUA will provides real-time communications features that will allow users that have downloaded Tribler to: |
67 | 62 | Adrian Georgescu | |
68 | 80 | Adrian Georgescu | * Interact in real time with each other using rich Presence, Interactive messaging and audio |
69 | 70 | Adrian Georgescu | * Communicate with other people that have access to SIP services from various SIP operators across the world |
70 | 12 | Adrian Georgescu | |
71 | 1 | == Developer program == |
|
72 | |||
73 | 17 | Adrian Georgescu | To become an active developer to this program please send your request by email to [mailto:pypjua-devel@ag-projects.com pypjua-devel@ag-projects.com] |
74 | 103 | Adrian Georgescu | |
75 | 105 | Adrian Georgescu | We are looking for developers that can contribute with the following features: VNC desktop sharing, implementation for video sessions and real time text sessions (real time text using RTP [http://www.ietf.org/rfc/rfc4103.txt ToIP (RFC 4103)] and MSRP). |
76 | 17 | Adrian Georgescu | |
77 | 12 | Adrian Georgescu | == Support == |
78 | 11 | Adrian Georgescu | |
79 | The software is developed and supported by [http://ag-projects.com AG Projects]. |