7 Network Working Group P. Riikonen
9 draft-riikonen-silc-multimedia-session-00.txt 15 January 2007
13 Multimedia Sessions in SILC protocol
14 <draft-riikonen-silc-multimedia-session-00.txt>
18 By submitting this Internet-Draft, each author represents that any
19 applicable patent or other IPR claims of which he or she is aware
20 have been or will be disclosed, and any of which he or she becomes
21 aware will be disclosed, in accordance with Section 6 of BCP 79.
23 Internet-Drafts are working documents of the Internet Engineering
24 Task Force (IETF), its areas, and its working groups. Note that
25 other groups may also distribute working documents as Internet-
26 Drafts. Internet-Drafts are draft documents valid for a maximum of
27 six months and may be updated, replaced, or obsoleted by other
28 documents at any time. It is inappropriate to use Internet-Drafts as
29 reference material or to cite them other than as "work in progress".
31 The list of current Internet-Drafts can be accessed at
32 http://www.ietf.org/1id-abstracts.html
33 The list of Internet-Draft Shadow Directories can be accessed at
34 http://www.ietf.org/shadow.html.
39 This document defines the use of multimedia protocols and the set up
40 of multimedia sessions in the Secure Internet Live Conferencing (SILC)
46 1 Introduction .................................................. 2
47 1.1 Requirements Terminology .................................. 2
48 2 Recommended Protocol .......................................... 2
49 3 Session Description Protocol (SDP) ............................ 2
50 3.1 SDP field usage in SILC ................................... 3
51 3.2 SDP Examples .............................................. 5
52 4 Session Initiation Protocol (SIP) ............................. 6
53 5 Other Protocols ............................................... 6
54 6 Security Considerations ....................................... 7
60 Internet-Draft 15 January 2007
63 7 References .................................................... 7
64 8 Author's Address .............................................. 7
65 9 Full Copyright Statement ...................................... 7
70 This document defines the use of multimedia protocols and the set up
71 of multimedia sessions in the Secure Internet Live Conferencing (SILC)
72 protocol [SILC1]. The SILC protocol supports multimedia messages
73 with the Message Payload [SILC2] and SILC_MESSAGE_FLAG_DATA which
74 has the ability to define what type of content is delievered within
75 the payload. The Message Payload is used to encapsulate the multimedia
76 session set up procedure and the actual multimedia session data. We
77 define the recommended multimedia session protocol for SILC and also
78 consider some other protocols in the scope of SILC.
81 1.1 Requirements Terminology
83 The keywords MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, RECOMMENDED,
84 MAY, and OPTIONAL, when they appear in this document, are to be
85 interpreted as described in [RFC2119].
88 2 Recommended Protocol
90 Since SILC protocol can encapsulate practically any protocol for setting
91 up a multimedia session we have selected the Session Description Protocol
92 (SDP) as RECOMMENDED protocol. It was chosen for its maturity, simplicity
93 and versatility. If multimedia features are implemented in SILC
94 application it is recommended that at least support for SDP is added.
97 3 Session Description Protocol (SDP)
99 The SDP [SDP] protocol defines a general purpose multimedia session
100 description protocol. SDP is one of the simplest protocols to negotiate
101 multimedia sessions and is suited perfectly for SILC protocol. Since SDP
102 does not itself define how it is used to set up the session, we define it
103 here for SILC. The definition is based on the [RFC3264] and [RFC4145].
105 In SILC the SDP messages are sent as data messages (MIME message). They
106 can be destined directly to a client for direct conferencing, or to a
107 channel for group conferencing. It is also possible to send the message
108 directly to client to invite them to group conferencing before they have
109 joined the channel. The MIME type used is application/sdp.
116 Internet-Draft 15 January 2007
119 To set up a multimedia session a client sends SILC message with
120 SILC_MESSAGE_FLAG_DATA and SILC_MESSAGE_FLAG_REQUEST flags set and with
121 MIME SDP message in the message payload. If the receiver wants to
122 participate in the multimedia session it sends MIME SDP message back with
123 SILC_MESSAGE_FLAG_DATA and SILC_MESSAGE_FLAG_REPLY flags set to the
124 sender. If reply is not received after an application defined period of
125 time the message may be retransmitted or the session set up may be
128 After reply has been received the multimedia session is started according
129 to the SDP and all multimedia data is sent using SILC data messages. When
130 performing peer-to-peer connection the SDP defines which party initiates
131 the connection. After initiation the SILC Key Exchange protocol MUST be
132 performed. The resulted key material will be used to protect the multimedia
133 session. Multimedia data transmission may start after the key exchange
134 has been performed. When performing group conferencing all parties
135 independently connect to the SILC server specified in the SDP. In other
136 cases when performing the multimedia session inside the SILC network, any
137 party may start transmitting the multimedia data after the SDPs have been
140 To terminate the session, or to reject incoming request, an MD5 digest
141 MUST be computed from the original SDP data, and the digest is sent back
142 with the SILC_MESSAGE_FLAG_DATA and SILC_MESSAGE_FLAG_STOP flags set.
143 The receiver of such message should verify the MD5 digest and terminate
144 the session if it matches any active session. The session may also be
145 terminated by closing network connection. In group sessions simply by
146 leaving the channel terminates the session. The original sender of the
147 SDP message may send the terminating message to notify all clients on the
148 channel to terminate the session. If the original sender on channel
149 receives the terminating message it takes no action on it.
151 3.1 SDP field usage in SILC
153 The Encryption Keys (k=) field describes encryption key to protect the
154 multimedia session. As SILC protocol transport and the multimedia session
155 is secured by default this field SHOULD NOT be used.
158 The Origin (o=) field describes from where the session originates. The
159 <username> sub-field is the sender's SILC nickname. Examples:
161 o=foobar 2890844521 2890842804 IN IP4 10.2.1.7
164 The Connection Data (c=) field describes the connection information for
165 the multimedia session. When performing peer-to-peer multimedia session
166 the <network type> is 'IN', indicating Internet connection. When
172 Internet-Draft 15 January 2007
175 performing multimedia session inside SILC network it is 'SILC'. When
176 the 'SILC' network type is used the <address type> and <connection address>
177 sub-fields are omitted. Examples:
183 The Media Announcements (m=) field describes the media information for the
184 multimedia session. If the network type in c= field is 'SILC' the <port>
185 sub-field MUST be set to 9 (discard). The <transport> for RTP over UDP
186 is 'RTP/AVP', for RTP over TCP it is 'TCP/RTP/AVP', and for non-RTP protocol
187 over UDP it is 'udp' and over TCP it is 'tcp'. The <fmt> sub-field
188 includes the RTP media payload number when using RTP. When using non-RTP
189 protocol it includes MIME subtype. Examples:
192 m=audio 9 TCP/RTP/AVP 3
199 The Attributes (a=) field can be used to set various session and media
200 specific attributes. For SILC we define attribute "silc".
202 a=silc:<session type> <parameters>
204 The <session type> is either "direct" or "group". When it is "direct"
205 and the c= field defines a connection point the connection will be
206 peer-to-peer connection to the remote client. If it is "group" and the
207 the c= field defines a connection point the connection will be to a remote
208 SILC server for group conferencing. If c= field includes "SILC" network
209 type, then "direct" is for direct session with a client in SILC network
210 and "group" is for group conferencing in SILC network. If the "silc"
211 attribute is omitted the session type is expected to be "direct". The
212 following parameters are defined for attribute "silc".
214 channel The name of the channel for group conferencing.
215 Can be used only with "group" session type.
216 More than one channel parameters may be defined.
219 The [RFC4145] specifies a "setup" attribute that defines which party of the
220 session will initiate the connection when performing peer-to-peer session.
221 Its use in SILC is as specified in [RFC4145] and MUST be present in SDP
222 when the c= field includes an actual connection point and when the "silc"
228 Internet-Draft 15 January 2007
231 attribute session type is "direct", or if the attribute is not present at
232 all. When performing group conferencing each party always need to create
233 the connection to the server and the "setup" attribute need not be present
239 o=foobar 2890844521 2890842804 IN IP4 10.2.1.100
240 s=peer-to-peer example
242 m=audio 5000 TCP/RTP/AVP 3
248 This example sets up a peer-to-peer session to remote client at
249 10.2.1.100 at port 5000.
252 o=foobar 2890844521 2890842804 IN IP4 10.2.1.32
253 s=Group conferencing example
256 a=silc:group channel=foobar
257 m=audio 706 TCP/RTP/AVP 3
260 This example sets up a session to a remote SILC server 10.2.1.7 at port
261 706. Once connected the channel "foobar" will be joined for group
265 o=foobar 2890844521 2890842804 IN IP4 10.2.1.32
266 s=SILC network chat example
269 m=audio 9 TCP/RTP/AVP 3
272 This example sets up a session inside SILC network with the remote user
276 o=foobar 2890844521 2890842804 IN IP4 10.2.1.32
277 s=SILC network group conferencing example
284 Internet-Draft 15 January 2007
287 m=audio 9 TCP/RTP/AVP 3
290 a=silc:group channel=group-chat
292 This example sets up a group conferencing session inside SILC network on
293 channel "group-chat".
296 4 Session Initiation Protocol (SIP)
298 The SIP [SIP] protocol is a general purpose protocol for setting up,
299 modifying and terminating different kinds of sessions, including
300 multimedia sessions. The SIP protocol use the SDP to describe the
303 In SILC the SIP messages are sent as data messages (MIME message). They
304 can be destined directly to a client for direct conferencing, or to a
305 channel for group conferencing. It is also possible to send the message
306 directly to client to invite them to group conferencing before they have
307 joined the channel. The MIME type used is application/sip. The
308 SILC_MESSAGE_FLAG_DATA flag must be set in each message and the message
309 payload includes a MIME SIP message. The actual SIP session set up and
310 termination is described in the SIP protocol specification, and SILC
311 protocol merely provides a secure transport for the session. After the
312 session is set up all multimedia data is sent using SILC data messages.
313 The MIME type for the multimedia data messages is defined during the SIP
316 The rules for SDP fields described in previous section also applies for
317 SDP with SIP in the context of SILC.
319 Proxy and redirection servers usually would not be used in the context of
320 SILC, unless the sessions are redirected to outside SILC network. This
321 may compromise the security of the session.
323 The S/MIME need not be used when using SIP in SILC protocol. The SILC
324 protocol transport and the created multimedia session is secured by
330 There are other open and proprietary protocols for setting up multimedia
331 sessions. One important is H.323 using the H.225 to set up the session.
332 This document should later define the use of H.323 with SILC.
333 Practically any protocol to set up multimedia sessions may be used with
334 SILC by using SILC as a secure transport to set up the session, and to use
340 Internet-Draft 15 January 2007
343 SILC data messages (MIME messages) to secure and deliver the actual
344 multimedia data once the session has been established.
347 6 Security Considerations
349 Security is central to the design of this protocol, and these security
350 considerations permeate the specification. Common security considerations
351 such as keeping private keys truly private and using adequate lengths for
352 symmetric and asymmetric keys must be followed in order to maintain the
353 security of this protocol.
358 [SILC1] Riikonen, P., "Secure Internet Live Conferencing (SILC),
359 Protocol Specification", Internet Draft, June 2003.
361 [SILC2] Riikonen, P., "SILC Packet Protocol", Internet Draft,
364 [RFC3264] Rosenberg, J., et. al., "An Offer/Answer Model with the
365 Session Description Protocol (SDP)", RFC 3264, June 2002.
367 [RFC4145] Yon, D., et. al., "TCP-Based Media Transport in the
368 Session Description Protocol (SDP)", RFC 4145, September
371 [SIP] Rosenberg, J., et. al., "SIP: Session Initiation Protocol",
382 EMail: priikone@iki.fi
385 9 Full Copyright Statement
387 Copyright (C) The Internet Society (2007).
389 This document is subject to the rights, licenses and restrictions
390 contained in BCP 78, and except as set forth therein, the authors
396 Internet-Draft 15 January 2007
399 retain all their rights.
401 This document and the information contained herein are provided on an
402 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
403 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
404 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
405 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
406 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
407 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.