Project

General

Profile

Applications » History » Version 4

Adrian Georgescu, 05/09/2012 09:25 AM

1 1 Tijmen de Mes
h1. Built-in Applications
2
3
h2. Multiparty Conference
4
5
SylkServer allows SIP end-points to create ad-hoc conference rooms by sending INVITE with SDP content to a random username at the hostname or domain where the server runs. Other participants can then join by sending an INVITE to the same SIP URI used to create the room.
6
7 3 Tijmen de Mes
h3. Supported Media
8 1 Tijmen de Mes
9
The INVITE and subsequent re-INVITE methods may contain one or more media types supported by the server. Each conference room mixed audio, instant messages and uploded files are dispatched to all participants.
10
11
+Audio+ The INVITE must propose a session with RTP (m=audio in SDP). Re-INVITE to add or remove audio to existing session is supported. G722, speex (both in wideband) and G711 codecs are supported.
12
<pre>
13
Content-Type: application/sdp
14
Content-Length: 233
15
16
v=0
17
o=- 3526098545 3526098547 IN IP4 81.23.228.139
18
s=SylkServer-1.2.3
19
t=0 0
20
c=IN IP4 81.23.228.139
21
m=audio 55324 RTP/AVP 9 101
22
c=IN IP4 85.17.186.7
23
a=rtcp:55325
24
a=rtpmap:9 G722/8000
25
a=rtpmap:101 telephone-event/8000
26
a=fmtp:101 0-15
27
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:1nDEh/WrJ57RBaHwhBG4+RAwzV9k/HxZhg1wClnx
28
a=sendrecv
29
</pre>
30
31
+Instant Messaging.+ The INVITE must propose a session with MSRP chat over TLS (m=message and a=path:msrps in the SDP). Re-INVITE to add or remove chat to existing session is supported. Private messaging extension between participants is also supported.
32
33
<pre>
34
Content-Type: application/sdp
35
Content-Length: 213
36
37
v=0
38
o=- 3526098545 3526098547 IN IP4 81.23.228.139
39
s=SylkServer-1.2.3
40
t=0 0
41
m=message 60167 TCP/TLS/MSRP *
42
c=IN IP4 81.23.228.139
43
a=path:msrps://81.23.228.139:60167/f8d1058769bebacacf62;tcp
44
a=accept-types:message/cpim
45
a=accept-wrapped-types:*
46
a=setup:passive
47
a=chatroom:private-messages
48
</pre>
49
50
+File Transfer+. The INVITE must propose a session with MSRP file transfer media description. Re-INVITE to add a file to existing session is supported. Participants that join later can request the previously uploaded files by using MSRP pull method.
51
52
<pre>
53
Content-Type: application/sdp
54
Content-Length:   407
55
56
v=0
57
o=- 3526099467 3526099468 IN IP4 81.23.228.139
58
s=SylkServer-1.2.3
59
c=IN IP4 81.23.228.139
60
t=0 0
61
m=message 39084 TCP/TLS/MSRP *
62
a=path:msrps://81.23.228.139:39084/a06af01b810519fb6090;tcp
63
a=recvonly
64
a=accept-types:*
65
a=accept-wrapped-types:*
66
a=setup:passive
67
a=file-selector:name:"Blink.pdf" type:application/pdf size:151036 hash:sha1:49:AD:49:...
68
</pre>
69
70 3 Tijmen de Mes
+Screen Sharing.+ This functionality is implemented as _com.ag-projects.screen-sharing_ extension to the chatroom functionality.
71 1 Tijmen de Mes
72
<pre>
73
Content-Type: application/sdp
74
...
75
76
m=message 40278 TCP/TLS/MSRP *
77
a=path:msrps://81.23.228.149:40278/2aa5bbb5d37731ef85c0;tcp
78
a=accept-types:message/cpim
79
a=accept-wrapped-types:*
80
a=setup:passive
81 3 Tijmen de Mes
a=chatroom:private-messages *com.ag-projects.screen-sharing*
82 1 Tijmen de Mes
</pre>
83
84 3 Tijmen de Mes
If the end-point detects and supports this private extension, it can share the screen by pushing at regular intervals a jpeg image with the desktop content over the MSRP chat stream. The image must be encapsulated in a CPIM envelope using content type _application/blink-screensharing_. Blink SIP client implements this extension.
85 1 Tijmen de Mes
<pre>
86
MSRP eea58af6af1b788 SEND
87
To-Path: msrps://81.23.228.149:41652/a65812de6f6a0725ee1a;tcp
88
From-Path: msrps://192.168.1.6:2855/e7028b404511ed77d6a2;tcp
89
Message-ID: 641f9960ded0638d
90
Byte-Range: 1-*/245347
91
Success-Report: yes
92
Failure-Report: yes
93
Content-Type: message/cpim
94
95
From: Adrian Georgescu <sip:31208005169@ag-projects.com>
96
To: <sip:nnauyj@conference.sip2sip.info>
97
DateTime: 2011-12-22T09:12:04+01:00
98
99
MIME-Version: 1.0
100
Content-Type: application/blink-screensharing
101
ÿØÿàJFIF .............
102
</pre>
103
The server then makes the screenshot available at a HTTP URL and publishes this URL to all participants using the conference information notification using <agp-conf:screen_image_url> extension. Participants can see the screen using a specialized client or a regular web browser.
104
105 3 Tijmen de Mes
h3. Conference Information
106 1 Tijmen de Mes
107 2 Tijmen de Mes
To obtain the conference information send a SUBSCRIBE request to the room URI for Event conference "RFC 4575":http://tools.ietf.org/html/rfc4579. The NOTIFY contains detailed information with the list of participants, their connected endpoints, media type and stream status and information about uploaded files.
108
<pre>
109 1 Tijmen de Mes
Content-Type: application/conference-info+xml
110
Content-Length:   975
111
112
<?xml version='1.0' encoding='UTF-8'?>
113
<conference-info xmlns:agp-conf="urn:ag-projects:xml:ns:conference-info" 
114
    xmlns="urn:ietf:params:xml:ns:conference-info" 
115
    entity="sip:agp@conference.sip2sip.info" state="full">
116
    <conference-description>
117
        <display-text>Ad-hoc conference</display-text>
118
        <free-text>Hosted by SylkServer-1.2.3</free-text>
119
        <agp-conf:resources>
120
            <agp-conf:files>
121
                <agp-conf:file name="Blink.pdf" hash="sha1:49:AD:49:...."
122
                size="151036" sender="AG <sip:31208005169@ag-projects.com>" status="OK"/>
123
            </agp-conf:files>
124
        </agp-conf:resources>
125
    </conference-description>
126
    <host-info>
127
        <web-page>http://sylkserver.com</web-page>
128
    </host-info>
129
    <conference-state>
130
        <user-count>1</user-count>
131
        <active>true</active>
132
    </conference-state>
133
    <users state="full">
134
        <user entity="sip:31208005169@ag-projects.com" state="full">
135
            <display-text>Adrian Georgescu</display-text>
136
            <agp-conf:screen_image_url>https://81.23.228.146/?image=WfPeNYF195.jpg</agp-conf:screen_image_url>
137
            <endpoint entity="sip:pbvusniw@95.97.50.27:54325" state="full">
138
                <display-text>Adrian Georgescu</display-text>
139
                <status>connected</status>
140
                    <joining-info>
141
                        <when>2011-09-27T09:49:05+02:00</when>
142
                    </joining-info>
143
                <media id="170092876"><type>message</type></media>
144
                <media id="2977223756"><type>audio</type></media>
145
            </endpoint>
146
        </user>
147
    </users>
148
</conference-info>
149
</pre>
150 3 Tijmen de Mes
151
h3. Participant Management
152 1 Tijmen de Mes
153 2 Tijmen de Mes
To add and remove participants, SylkServer supports INVITE and REFER methods as defined in "RFC4579 (Conferencing for User Agents)":http://tools.ietf.org/html/rfc4579#section-5 . One can remove or add participants by sending a REFER method to the conference URI.
154 1 Tijmen de Mes
155 2 Tijmen de Mes
<pre>
156 1 Tijmen de Mes
REFER sip:agp@conference.sip2sip.info SIP/2.0
157
Via: SIP/2.0/UDP 10.211.55.2:54325;rport;branch=z9hG4bKPj7PFxy8RLtr20jfVyUx2eis1H7.1aY7Np
158
Max-Forwards: 70
159
From: "Adrian Georgescu" <sip:31208005169@ag-projects.com>;tag=ZtGlJFOgGvwWQEMae6uTpuhT1aREkQeR
160
To: <sip:agp@conference.sip2sip.info>
161
Contact: <sip:pbvusniw@192.168.1.6:54325>
162
Call-ID: rYp1GQbSQ8kFrC1xccpfA5t9GXaR5qwt
163
CSeq: 6839 REFER
164
Event: refer
165
Accept: message/sipfrag;version=2.0
166
Allow-Events: conference, message-summary, presence, presence.winfo, xcap-diff, refer
167
Refer-To: <3333@sip2sip.info>;method=INVITE
168
Referred-By: sip:31208005169@ag-projects.com
169
User-Agent: Blink Pro 1.3.1 (MacOSX)
170
Content-Length:  0
171 2 Tijmen de Mes
</pre>
172 4 Adrian Georgescu
173
174
h2. XMPP Gateway
175
176
SylkServer can act like a transparent gateway between SIP and XMPP protocol. 
177
This can be used by a SIP service provider to bridge out to XMPP domains or  
178
to receive incoming requests from XMPP domains to the SIP users it serves.  
179
In a similar fashion, a XMPP service provider can use tehn gateway to bridge 
180
out to SIP domains and handle incoming requestes from SIP domains to the
181
XMPP users it serves.
182
183
A media session or a presence session initiated by an incoming connection on
184
the XMPP side is translated into an outgoing request on the SIP side and
185
the other way around.  To make this work, just add proper SIP or XMPP records into the
186
DNS zone for the domain that needs the gateway service.