SipFeatures

Version 158 (Adrian Georgescu, 03/26/2012 09:51 am)

1 1 Adrian Georgescu
2 158 Adrian Georgescu
h1. Features
3 1 Adrian Georgescu
4 158 Adrian Georgescu
5 158 Adrian Georgescu
_SIP SIMPLE client SDK_ is a Software Development Kit for development of Real Time Applications based on SIP and related protocols for Audio, Instant Messaging, File Transfers, Desktop Sharing and Presence. Other media types can be easily added by using an extensible high-level API.
6 158 Adrian Georgescu
7 1 Adrian Georgescu
The library has cross platform capabilities on Linux OS, Mac OSX and Microsoft Windows. The library should work with minimal changes on any platform that supports C and Python development environments. The SIP and media stacks are based on pjsip 1.0 version with relevant patches from later versions applied.
8 1 Adrian Georgescu
9 158 Adrian Georgescu
To see _SIP SIMPLE client SDK_ features in action you can try "Blink":http://icanblink.com or "SylkServer":http://sylkserver.com
10 1 Adrian Georgescu
11 1 Adrian Georgescu
12 158 Adrian Georgescu
h2. General
13 1 Adrian Georgescu
14 158 Adrian Georgescu
15 158 Adrian Georgescu
* Multiple SIP Accounts support
16 158 Adrian Georgescu
* Non-blocking, asynchronous, notifications based engine
17 158 Adrian Georgescu
* Configuration Framework
18 158 Adrian Georgescu
* TLS Security for SIP signaling (SIP)
19 158 Adrian Georgescu
* TLS Security for media (MSRP, XCAP)
20 158 Adrian Georgescu
* Multiple Media Types per Session (e.g. Audio + IM)
21 158 Adrian Georgescu
* Trace capability for all underlying protocols
22 158 Adrian Georgescu
* Supports re-INVITE for adding and removing media
23 158 Adrian Georgescu
* Automatically handling if IP Address changes
24 158 Adrian Georgescu
* VPN friendly
25 158 Adrian Georgescu
* Conference Audio Mixer
26 158 Adrian Georgescu
* Wav Player and Recorder
27 158 Adrian Georgescu
* Acoustic Echo Cancelation
28 158 Adrian Georgescu
* Answering Machine
29 158 Adrian Georgescu
* Wide-band Internet codecs: Speex and G722
30 158 Adrian Georgescu
* PSTN compatible codecs: G711, iLBC, GSM
31 158 Adrian Georgescu
32 1 Adrian Georgescu
Supported media types:
33 1 Adrian Georgescu
34 158 Adrian Georgescu
* Audio (RTP/sRTP)
35 158 Adrian Georgescu
* Instant Messaging (MSRP)
36 158 Adrian Georgescu
* File Transfer (MSRP)
37 158 Adrian Georgescu
* Desktop Sharing (VNC)
38 1 Adrian Georgescu
39 1 Adrian Georgescu
All media types can be combined together in the same SIP session.
40 1 Adrian Georgescu
41 1 Adrian Georgescu
The library uses a separated from the core lookup mechanism for the next hop routing. This important feature allows the library to be used for building SIP clients that operate in combination with any SIP provider (by employing RFC 3263 DNS lookups), in a server-less LAN operation (using Bonjour protocol) or integrated into a network overlay developed by a third party (e.g. P2PSIP overlay).
42 1 Adrian Georgescu
43 1 Adrian Georgescu
44 158 Adrian Georgescu
h2. Implemented Standards
45 1 Adrian Georgescu
46 1 Adrian Georgescu
47 1 Adrian Georgescu
48 158 Adrian Georgescu
h3. SIP Signaling
49 1 Adrian Georgescu
50 1 Adrian Georgescu
51 158 Adrian Georgescu
* SIP, Session Initiation Protocol "RFC3261":http://tools.ietf.org/html/rfc3261 
52 158 Adrian Georgescu
* SDP, Session Description Protocol "RFC4566":http://tools.ietf.org/html/rfc4566 
53 158 Adrian Georgescu
* An Offer/Answer Model with Session Description Protocol (SDP) "RFC3264":http://tools.ietf.org/html/rfc3264 
54 158 Adrian Georgescu
* Reliability of Provisional Responses in Session Initiation Protocol "RFC3262":http://tools.ietf.org/html/rfc3262
55 158 Adrian Georgescu
* HTTP Authentication: Basic and Digest Access Authentication "RFC2617":http://tools.ietf.org/html/rfc2617
56 158 Adrian Georgescu
* The Reason Header Field for the Session Initiation Protocol "RFC3326":http://tools.ietf.org/html/rfc3326
57 158 Adrian Georgescu
* The Session Initiation Protocol (SIP) Refer Method "RFC3515":http://tools.ietf.org/html/rfc3515
58 158 Adrian Georgescu
* The Session Initiation Protocol (SIP) "Replaces" Header "RFC 3891":http://tools.ietf.org/html/rfc3891
59 158 Adrian Georgescu
* Session Initiation Protocol (SIP) Call Control - Transfer "RFC 5589":http://tools.ietf.org/html/rfc5589
60 158 Adrian Georgescu
* Obtaining and Using Globally Routable User Agent URIs (GRUUs) "RFC 5627":http://tools.ietf.org/html/rfc5627
61 158 Adrian Georgescu
62 158 Adrian Georgescu
63 158 Adrian Georgescu
h3. Address Resolution
64 158 Adrian Georgescu
65 158 Adrian Georgescu
66 158 Adrian Georgescu
* Locating SIP services: "RFC3263":http://tools.ietf.org/html/rfc3263
67 158 Adrian Georgescu
* Bonjour multicast DNS: http://tools.ietf.org/html/draft-lee-sip-dns-sd-uri-03
68 158 Adrian Georgescu
69 158 Adrian Georgescu
70 158 Adrian Georgescu
h3. NAT Traversal
71 158 Adrian Georgescu
72 158 Adrian Georgescu
73 158 Adrian Georgescu
* SIP Signaling: Symmetric Response Routing Symmetric media "RFC3581":http://tools.ietf.org/html/rfc3581
74 158 Adrian Georgescu
* STUN: Session Traversal Utilities for NAT "RFC3489":http://tools.ietf.org/html/rfc3489
75 158 Adrian Georgescu
* RTP media (Audio and Video): ICE, Interactive Connectivity Establishment "RFC5245":http://tools.ietf.org/html/rfc5245
76 158 Adrian Georgescu
* MSRP media (Instant Messaging and File Transfer): MSRP protocol relay extension "RFC4976":http://tools.ietf.org/html/rfc4976
77 158 Adrian Georgescu
* MSRP Alternative Connection Model (ACM)  "RFC6135":http://tools.ietf.org/html/rfc6135
78 109 Adrian Georgescu
  
79 107 Adrian Georgescu
80 158 Adrian Georgescu
h3. Voice over IP
81 109 Adrian Georgescu
82 1 Adrian Georgescu
83 158 Adrian Georgescu
* RTP, A Transport Protocol for Real-Time Applications "RFC3550":http://tools.ietf.org/html/rfc3550
84 158 Adrian Georgescu
* Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP) "RFC3605":http://tools.ietf.org/html/rfc3605
85 158 Adrian Georgescu
* The Secure Real-time Transport Protocol (SRTP)  "RFC3711":http://tools.ietf.org/html/rfc3711
86 158 Adrian Georgescu
* Generation and parsing of RFC 2833/telephone-events payload in both RTP and SDP "RFC2833":http://tools.ietf.org/html/rfc2833
87 142 Adrian Georgescu
88 105 Adrian Georgescu
89 158 Adrian Georgescu
h3. Instant Messaging
90 1 Adrian Georgescu
91 109 Adrian Georgescu
92 158 Adrian Georgescu
* Common Presence and Instant Messaging (CPIM): "RFC 3862":http://tools.ietf.org/html/rfc3862
93 158 Adrian Georgescu
* Session Initiation Protocol (SIP) Extension for Instant Messaging  "RFC3428":http://tools.ietf.org/html/rfc3428
94 158 Adrian Georgescu
* MSRP Protocol "RFC4975":http://tools.ietf.org/html/rfc4975
95 158 Adrian Georgescu
* Indication of Message Composition for Instant Messaging "RFC3994":http://tools.ietf.org/html/rfc3994
96 158 Adrian Georgescu
* Message Summary Event Package "RFC3842":http://tools.ietf.org/html/rfc3842
97 158 Adrian Georgescu
* File Transfer "RFC5547":http://tools.ietf.org/html/rfc5547
98 153 Adrian Georgescu
99 109 Adrian Georgescu
100 158 Adrian Georgescu
h3. Desktop Sharing
101 1 Adrian Georgescu
102 158 Adrian Georgescu
103 158 Adrian Georgescu
* Variation of "draft-garcia-mmusic-sdp-collaboration-00":http://tools.ietf.org/html/draft-garcia-mmusic-sdp-collaboration-00 using RFB over MSRP
104 158 Adrian Georgescu
105 158 Adrian Georgescu
106 158 Adrian Georgescu
h3. Conferencing
107 158 Adrian Georgescu
108 158 Adrian Georgescu
109 158 Adrian Georgescu
* Conference Event Package "RFC4575":http://tools.ietf.org/html/rfc4575
110 158 Adrian Georgescu
* A Framework for Conferencing with the Session Initiation Protocol "RFC4353":http://tools.ietf.org/html/rfc4353
111 158 Adrian Georgescu
* SIP Call Control - Conferencing for User Agents "RFC4579":http://tools.ietf.org/html/rfc4579
112 158 Adrian Georgescu
* MSRP ad-hoc multi-party chat sessions "draft-ietf-simple-chat-08":http://tools.ietf.org/html/draft-ietf-simple-chat-08
113 158 Adrian Georgescu
114 158 Adrian Georgescu
115 158 Adrian Georgescu
h3. Presence
116 158 Adrian Georgescu
117 158 Adrian Georgescu
118 158 Adrian Georgescu
All features have been tested against "OpenSIPS":http://opensips.org Presence Agent and  "OpenXCAP":http://openxcap.org server.
119 158 Adrian Georgescu
120 158 Adrian Georgescu
* SIP Specific Event Notification (SUBSCRIBE and NOTIFY methods) "RFC3265":http://tools.ietf.org/html/rfc3265
121 158 Adrian Georgescu
* SIP Extension for Event State Publication (PUBLISH method) "RFC3903":http://tools.ietf.org/html/rfc3903     
122 158 Adrian Georgescu
* Presence Data Model (PIDF) "RFC3863":http://tools.ietf.org/html/rfc3863, "RFC3379":http://tools.ietf.org/html/rfc3379, "RFC4479":http://tools.ietf.org/html/rfc4479
123 158 Adrian Georgescu
* Watcher-info Event Package "RFC3857":http://tools.ietf.org/html/rfc3857, "RFC3858":http://tools.ietf.org/html/rfc3858
124 158 Adrian Georgescu
* Rich Presence Extensions to PIDF "RFC4480":http://tools.ietf.org/html/rfc4480
125 158 Adrian Georgescu
* Contact Information Extension to PIDF "RFC4482":http://tools.ietf.org/html/rfc4482
126 158 Adrian Georgescu
* User Agent Capability Extension to PIDF "RFC5196":http://tools.ietf.org/html/rfc5196 
127 158 Adrian Georgescu
* XCAP Protocol "RFC4825":http://www.tools.ietf.org/html/rfc4825
128 158 Adrian Georgescu
* Common Policy "RFC4745":http://www.tools.ietf.org/html/rfc4745  
129 158 Adrian Georgescu
* Presence Rules "RFC5025":http://www.tools.ietf.org/html/rfc5025
130 158 Adrian Georgescu
* Resource Lists "RFC4826":http://www.tools.ietf.org/html/rfc4826
131 158 Adrian Georgescu
* RLS Services "RFC4826":http://www.tools.ietf.org/html/rfc4826
132 158 Adrian Georgescu
* PIDF manipulation "RFC4827":http://www.tools.ietf.org/html/rfc4827
133 158 Adrian Georgescu
* XCAP Diff "RFC5874":http://tools.ietf.org/html/rfc5874
134 158 Adrian Georgescu
* OMA Reference Release Definition for XDM v1.1 and Presence SIMPLE v1.1 "Implementation Guidelines":http://www.openmobilealliance.org/Technical/release_program/docs/CopyrightClick.aspx?pck=XDM_PRS_IMPL&file=V1_0-20081209-A/OMA-RRELD-XDM_PRS_IMPL-V1_0-20081209-A.pdf
135 158 Adrian Georgescu
* OMA XML "Document Management V1.1":http://www.openmobilealliance.org/technical/release_program/xdm_v1_1.aspx