Features

Version 7 (Adrian Georgescu, 01/30/2013 10:31 am)

1 1 Tijmen de Mes
h1. Description
2 1 Tijmen de Mes
3 1 Tijmen de Mes
SylkServer is a SIP application server based on SIP SIMPLE Client SDK that can be programmed to perform SIP end-point applications. Examples of such server applications are conferencing, media offline storage, playing voice prompts, IVR, or gateway to other protocols like XMPP. The server supports SIP signaling over TLS, TCP and UDP transports, RTP and MSRP media planes, has built in capabilities for creating ad-hoc SIP multimedia conferences with HD Audio, IM and File Transfer and can be easily extended with other applications by using Python language.
4 1 Tijmen de Mes
5 1 Tijmen de Mes
h2. Deployment
6 1 Tijmen de Mes
7 1 Tijmen de Mes
SylkServer is not designed to transparently route packets, authorization, accounting and handle NAT traversal for signaling or media. Performing applications like SIP Proxy, Registrar, or Presence Agent are out of its scope. SylkServer must be typically deployed behind a SIP Proxy for providing such functions.
8 1 Tijmen de Mes
9 1 Tijmen de Mes
SylkServer is horizontally scalable with the amount of available hardware by using SIP Thor, a P2P based self-organizing network technology.
10 1 Tijmen de Mes
11 1 Tijmen de Mes
h2. Features
12 1 Tijmen de Mes
13 3 Tijmen de Mes
|_.SIP Signaling|_.Conferencing|_.NAT Traversal|
14 4 Tijmen de Mes
| TLS, TCP and UDP transports| Wideband RTP mixer|SIP Outbound Proxy|
15 4 Tijmen de Mes
| INVITE and REFER |MSRP switch| ICE and STUN|
16 4 Tijmen de Mes
| SUBSCRIBE/NOTIFY |Conference event package|MSRP Relay|
17 4 Tijmen de Mes
| Protocol tracing | Add/remove participant |MSRP ACM|
18 6 Adrian Georgescu
19 2 Tijmen de Mes
|_.Voice over IP|_.Instant Messaging|_. File Transfer|
20 5 Tijmen de Mes
| * Wideband (G722 and Speex)|\2=.MSRP protocol|
21 5 Tijmen de Mes
|* Narrowband (G711 and GSM)|CPIM envelope|Progress reports|
22 5 Tijmen de Mes
|* sRTP encryption|Is-composing indicator|Conference-info extension|
23 5 Tijmen de Mes
| * Hold/Unhold|Delivery reports |Conference room persistent|
24 1 Tijmen de Mes
25 1 Tijmen de Mes
h2. Implemented Standards
26 1 Tijmen de Mes
27 1 Tijmen de Mes
* MSRP protocol RFC4975
28 1 Tijmen de Mes
* MSRP relay extension RFC4976
29 1 Tijmen de Mes
* MSRP File Transfer RFC5547
30 1 Tijmen de Mes
* MSRP Alternative Connection Model RFC6135
31 2 Tijmen de Mes
* MSRP switch draft-ietf-simple-chat-10
32 1 Tijmen de Mes
* Indication of Message Composition RFC3994
33 1 Tijmen de Mes
* CPIM Message Format RFC3862
34 2 Tijmen de Mes
* Conference event package RFC4575
35 2 Tijmen de Mes
* A Framework for Conferencing with SIP RFC4353
36 2 Tijmen de Mes
* Conferencing for User Agents RFC4579
37 1 Tijmen de Mes
* 5.1 INVITE: Joining a Conference Using the Conference URI - Dial-In
38 2 Tijmen de Mes
* 5.2 INVITE: Adding a Participant by the Focus - Dial-Out
39 2 Tijmen de Mes
* 5.5 REFER: Requesting a Focus to Add a New Resource to a Conference
40 2 Tijmen de Mes
* 5.11 REFER with BYE: Requesting a Focus to Remove a Participant from a Conference
41 2 Tijmen de Mes
42 7 Adrian Georgescu
h3. Implemented Standards
43 1 Tijmen de Mes
44 7 Adrian Georgescu
The server implements relevant features from the following standards:
45 7 Adrian Georgescu
46 7 Adrian Georgescu
* SIP (RFC3261) and related RFCs for DNS, ICE and RTP
47 7 Adrian Georgescu
* MSRP protocol RFC4975
48 7 Adrian Georgescu
* MSRP relay extension RFC4976
49 7 Adrian Georgescu
* MSRP File Transfer RFC5547
50 7 Adrian Georgescu
* MSRP switch draft-ietf-simple-chat-12
51 7 Adrian Georgescu
* MSRP Alternative Connection Model RFC6135
52 7 Adrian Georgescu
* Indication of Message Composition RFC3994
53 7 Adrian Georgescu
* CPIM Message Format RFC3862
54 7 Adrian Georgescu
* Conference event package RFC4575
55 7 Adrian Georgescu
* A Framework for Conferencing with SIP RFC4353
56 7 Adrian Georgescu
* Conferencing for User Agents RFC4579
57 7 Adrian Georgescu
* Conferencing for User Agents RFC4579 5.1 INVITE: Joining a Conference Using the Conference URI Dial-In 5.2 INVITE: Adding a Participant by the Focus - Dial-Out 5.5 REFER: Requesting a Focus to Add a New Resource to a * * * * Conference 5.11 REFER with BYE: Requesting a Focus to Remove a Participant from a Conference
58 7 Adrian Georgescu
* XMPP core (RFC 6120) http://xmpp.org/rfcs/rfc6120.html
59 7 Adrian Georgescu
* XMPP extensions http://xmpp.org/xmpp-protocols/xmpp-extensions
60 7 Adrian Georgescu
* Instant Messaging and Presence http://xmpp.org/rfcs/rfc6121.html
61 7 Adrian Georgescu
* Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-presence-02.html
62 7 Adrian Georgescu
* Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-im-01.html
63 7 Adrian Georgescu
* Interworking between the Session Initiation Protocol (SIP) and the Extensible Messaging and Presence Protocol (XMPP): http://xmpp.org/internet-drafts/draft-saintandre-sip-xmpp-chat-03.html
64 7 Adrian Georgescu
65 7 Adrian Georgescu
h4. SIP-XMPP Gateway specifications (roadmap)
66 7 Adrian Georgescu
67 7 Adrian Georgescu
* Google Talk
68 7 Adrian Georgescu
* File Transfers XEP-0096
69 7 Adrian Georgescu
* Jingle XEP-0166
70 7 Adrian Georgescu
* Jingle RTP Sessions XEP-0167
71 7 Adrian Georgescu
* Jingle ICE-UDP Transport Method XEP-0176
72 5 Tijmen de Mes
* Locating IM and Pres services with different protocols
73 7 Adrian Georgescu
 * http://tools.ietf.org/html/rfc3861
74 7 Adrian Georgescu
 * http://www.iana.org/assignments/pres-srv-labels/pres-srv-labels.xml
75 7 Adrian Georgescu
 * http://tools.ietf.org/html/rfc5509
76 7 Adrian Georgescu
 * SRV for SIP _im._sip.example.com _pres._sip.example.com
77 7 Adrian Georgescu
 * SRV for XMPP _im._xmpp.example.com _pres._xmpp.example.com