Project

General

Profile

Applications » History » Version 3

Tijmen de Mes, 04/05/2012 06:04 PM

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>