idnits 2.17.1 draft-ietf-clue-protocol-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 189 instances of too long lines in the document, the longest one being 18 characters in excess of 72. ** The abstract seems to contain references ([I-D.kyzivat-clue-signaling], [I-D.ietf-clue-framework], [I-D.ietf-clue-datachannel], [I-D.ietf-clue-telepresence-requirements]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 205: '...a CLUE dialogue, the involved CPs MUST...' RFC 2119 keyword, line 396: '... SHOULD be provided for each major v...' RFC 2119 keyword, line 404: '...ed, at least one tag MUST be...' RFC 2119 keyword, line 428: '...o errors, the CR MUST insert within th...' RFC 2119 keyword, line 431: '...ent of the element MUST be a...' (5 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 916 has weird spacing: '...receive sen...' == Line 1028 has weird spacing: '...receive rece...' == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHOULD not' in this paragraph: The optional boolean element, set to "true", if present, indicates that the CONF message also acknowledge the referred advertisement, by applying in that way a piggibacking mechanism for simultaneously acknowledging and replying to the ADV message. The element SHOULD not be present at all if an ADV ACK message has been already sent back to the MP and if the CONFIGURE refers to a READV RESPONSE message. -- The document date (June 24, 2014) is 3593 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC5261' is defined on line 2160, but no explicit reference was found in the text == Unused Reference: 'RFC6503' is defined on line 2176, but no explicit reference was found in the text == Outdated reference: A later version (-17) exists of draft-ietf-clue-data-model-schema-05 == Outdated reference: A later version (-25) exists of draft-ietf-clue-framework-15 -- Obsolete informational reference (is this intentional?): RFC 5117 (Obsoleted by RFC 7667) Summary: 5 errors (**), 0 flaws (~~), 8 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 CLUE Working Group R. Presta 3 Internet-Draft S. Romano 4 Intended status: Standards Track University of Napoli 5 Expires: December 26, 2014 June 24, 2014 7 CLUE protocol 8 draft-ietf-clue-protocol-01 10 Abstract 12 The CLUE protocol is an application protocol conceived for the 13 description and negotiation of a CLUE telepresence session. The 14 design of the CLUE protocol takes into account the requirements and 15 the framework defined, respectively, in [I-D.ietf-clue-framework] and 16 [I-D.ietf-clue-telepresence-requirements]. The companion document 17 [I-D.kyzivat-clue-signaling] delves into CLUE signaling details, as 18 well as on the SIP/SDP session establishment phase. CLUE messages 19 flow upon the CLUE data channel, based on reliable and ordered SCTP 20 over DTLS transport, as described in [I-D.ietf-clue-datachannel]. 21 Message details, together with the behavior of CLUE Participants 22 acting as Media Providers and/or Media Consumers, are herein 23 discussed. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on December 26, 2014. 42 Copyright Notice 44 Copyright (c) 2014 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 3. Overview of the CLUE protocol . . . . . . . . . . . . . . . . 4 62 4. Protocol messages . . . . . . . . . . . . . . . . . . . . . . 6 63 4.1. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 8 64 4.2. OPTIONS RESPONSE . . . . . . . . . . . . . . . . . . . . . 10 65 4.3. ADVERTISEMENT . . . . . . . . . . . . . . . . . . . . . . 11 66 4.4. ADVERTISEMENT ACKNOWLEDGEMENT . . . . . . . . . . . . . . 12 67 4.5. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 13 68 4.6. CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . . 14 69 4.7. READV . . . . . . . . . . . . . . . . . . . . . . . . . . 14 70 4.8. READV RESPONSE . . . . . . . . . . . . . . . . . . . . . . 15 71 4.9. Response codes and reason strings . . . . . . . . . . . . 16 72 5. Protocol state machines . . . . . . . . . . . . . . . . . . . 18 73 6. CLUE Participant's state machine . . . . . . . . . . . . . . . 18 74 6.1. Media Consumer's state machine . . . . . . . . . . . . . . 21 75 6.2. Media Provider's state machine . . . . . . . . . . . . . . 23 76 7. Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . 25 77 8. Extensions and options . . . . . . . . . . . . . . . . . . . . 26 78 9. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 28 79 10. ADVERTISEMENT examples . . . . . . . . . . . . . . . . . . . . 33 80 10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . . 34 81 10.2. ADV with MCCs . . . . . . . . . . . . . . . . . . . . . . 39 82 11. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 46 83 12. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 47 84 13. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 47 85 14. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 47 86 15. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 47 87 16. Informative References . . . . . . . . . . . . . . . . . . . . 48 89 1. Introduction 91 The CLUE protocol is an application protocol used by two CLUE 92 Participants to enhance the experience of a multimedia telepresence 93 session. The main goals of the CLUE protocol are: 95 1. enabling a MP to fully announce its current telepresence 96 capabilities to a MC in terms of available media captures, groups 97 of encodings, simultaneity constraints and other information 98 envisioned in [I-D.ietf-clue-framework]; 100 2. enabling a MC to request the desired multimedia streams to the 101 offering MP. 103 CLUE-capable endpoints are connected by means of the CLUE data 104 channel, an SCTP over DTLS channel which is opened and established as 105 depicted respectively in [I-D.kyzivat-clue-signaling] and 106 [I-D.kyzivat-clue-signaling]. CLUE protocol messages flowing upon 107 such channel are detailed in the following, both syntactically and 108 semantically. 110 In Section 3 we provide a general overview of the CLUE protocol. 111 CLUE protocol messages are detailed in Section 4 The CLUE Participant 112 state machine is introduced in Section 5. Versioning and extensions 113 are discussed in Section 7 and Section 8, respectively. The XML 114 schema defining the CLUE messages is reported in Section 9. 116 2. Terminology 118 This document refers to the same terminology used in 119 [I-D.ietf-clue-framework] and in 120 [I-D.ietf-clue-telepresence-requirements]. We briefly recall herein 121 some of the main terms exploited in the document. We further 122 introduce the definition of CLUE Participant. 124 CLUE Participant An entity able to use the CLUE protocol within a 125 telepresence session. It can be an endpoint or a MCU able to use 126 the CLUE protocol. 128 Endpoint The logical point of final termination through receiving, 129 decoding and rendering, and/or initiation through capturing, 130 encoding, and sending of media streams. An endpoint consists of 131 one or more physical devices which source and sink media streams, 132 and exactly one [RFC4353] Participant (which, in turn, includes 133 exactly one SIP User Agent). Endpoints can be anything from 134 multiscreen/multicamera room controllers to handheld devices. 136 MCU Multipoint Control Unit (MCU) - a device that connects two or 137 more endpoints together into one single multimedia conference 138 [RFC5117]. An MCU may include a Mixer [RFC4353]. 140 Media Any data that, after suitable encoding, can be conveyed over 141 RTP, including audio, video or timed text. 143 Media Capture A "Media Capture", or simply "Capture", is a source of 144 Media. 146 Capture Encoding A specific encoding of a Media Capture, to be sent 147 via RTP [RFC3550]. 149 Media Stream The term "Media Stream", or simply "Stream", is used as 150 a synonymous of Capture Encoding. 152 Media Provider A CLUE Participant (i.e., an Endpoint or a MCU) able 153 to send Media Streams. 155 Media Consumer A CLUE Participant (i.e., an Endpoint or a MCU) able 156 to receive Media Streams. 158 3. Overview of the CLUE protocol 160 The CLUE protocol has been conceived to enable CLUE telepresence 161 session. It is designed in order to address SDP limitations in terms 162 of the description of several information about the multimedia 163 streams that are involved in a real-time multimedia conference. 164 Indeed, by simply using SDP we are not able to convey the information 165 about the features of the flowing multimedia streams that is needed 166 to enable a "being there" rendering. Such information is designed in 167 the CLUE framework document and formally defined and described in the 168 CLUE data model document. The CLUE protocol represents the mechanism 169 that enables the exchange of CLUE information between CLUE 170 Participants. It mainly provides the messages to enable a Media 171 Provider to advertise its telepresence capabilities and to enable a 172 Media Consumer to select the desired telepresence options. 174 The CLUE protocol, as defined in the following, is a stateful, 175 client-server, XML-based application protocol. CLUE protocol 176 messages flow on realiable and ordered SCTP over DTLS transport 177 channel connecting two CLUE Participants. Messages carries 178 information taken from the XML-based CLUE data model 179 ([I-D.ietf-clue-data-model-schema]). Three main communication layers 180 can be identified: 182 1. Establishment of the CLUE data channel: in this phase, the CLUE 183 data channel setup takes place. If it ends up successfully, the 184 CPs are able to communicate and start the initiation phase. 186 2. Negotiation of the CLUE protocol version and options (initiation 187 phase): the CPs connected via the CLUE data channel agree on the 188 version and on the options to be used during the telepresence 189 session. Special CLUE messages are used for such a task. At the 190 end of that basic negotiation, each CP starts its activity as a 191 CLUE MP and/or CLUE MC. 193 3. CLUE telepresence capabilities description and negotiation: in 194 this phase, the MP-MC offer-answer dialogues take place on the 195 data channel by means of the CLUE protocol messages. 197 As soon as the channel is ready, the CLUE Participants must agree on 198 the protocol version and extensions to be used within the 199 telepresence session. CLUE protocol version numbers are 200 characterized by a major version number and a minor version number, 201 both unsigned integer, separated by a dot. While minor version 202 numbers denote backword compatible changes in the context of a given 203 major version, different major version numbers generally indicate a 204 lack of interoperability between the protocol implementations. In 205 order to correctly establish a CLUE dialogue, the involved CPs MUST 206 have in common a major version number (see Section 7 for further 207 details). The subset of the protocol options and extensions that are 208 allowed within the CLUE session is also determined in the initiation 209 phase, such subset being the one including only the options that are 210 supported by both parties. A mechanism for the negotiation of the 211 CLUE protocol version and extensions is envisioned in the initiation 212 phase. According to such solution, the CP which is the CLUE Channel 213 initiator (CI) issues a proper CLUE message (OPTIONS) to the CP which 214 is the Channel Receiver (CR) specifying the supported version and 215 extensions. The CR then answers by selecting the subset of the CI 216 extensions that it is able to support and determines the protocol 217 version to be used. 219 After that negotiation phase is completed, CLUE Participants describe 220 and agree on the media flows to be exchanged. Indeed, being CPs A 221 and B both transmitting and receiving, it is possible to distinguish 222 between two dialogues: 224 1. the one needed to describe and set up the media streams sent from 225 A to B, i.e., the dialogue between A's Media Provider side and 226 B's Media Consumer side 228 2. the one needed to describe and set up the media streams sent from 229 B to A, i.e., the dialogue between B's Media Provider side and 230 A's Media Consumer side 232 CLUE messages for the media session description and negotiation is 233 designed by considering the MP side as the server side of the 234 protocol, since it produces and provides media streams, and the MC 235 side as the client side of the protocol, since it requests and 236 receives media streams. The messages that are exchanged to set up 237 the telepresence media session are described by focusing on a single 238 MP-MC dialogue. 240 The MP first advertises its available media captures and encoding 241 capabilities to the MC, as well as its simultaneity constraints, 242 according to the information model defined in 243 [I-D.ietf-clue-framework]. The CLUE message conveing the MP's 244 multimedia offer is the ADVERTISEMENT message. Such message 245 leverages the XML data model definitions provided in 246 [I-D.ietf-clue-data-model-schema]. 248 The MC selects the desired streams of the MP by using the CONFIGURE 249 message, which makes reference to the information carried in the 250 previously received ADVERTISEMENT. 252 Besides ADVERTISEMENT and CONFIGURE, other messages have been 253 conceived in order to provide all the needed mechanisms and 254 operations and will be detailed in the following sections. 256 4. Protocol messages 258 CLUE protocol messages are textual, XML-based messages that enable 259 the configuration of the telepresence session. The formal definition 260 of such messages is provided in the XML Schema provided at the end of 261 this document (Section 9). 263 The XML definitions of the CLUE information provided in 264 [I-D.ietf-clue-data-model-schema] are included within some CLUE 265 protocol messages (namely the ADVERTISEMENT, the CONFIGURE, and the 266 READV RESPONSE messages), in order to use the concept defined in 267 [I-D.ietf-clue-framework]. 269 The CLUE protocol messages that have been defined up to now are the 270 following: 272 o OPTIONS 274 o OPTIONS RESPONSE 276 o ADVERTISEMENT (ADV) 278 o ADVERTISEMENT ACKNOWLEDGE (ACK) 279 o CONFIGURE (CONF) 281 o CONFIGURE RESPONSE 283 o READV 285 o READV RESPONSE 287 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 288 initiation phase between the CPs, the other messages are involved in 289 MP-MC dialogues. 291 Each CLUE message inherits a basic structure depicted in the 292 following figure: 294 295 296 297 298 299 300 301 302 304 The basic structure determines the mandatory information that is 305 carried within each CLUE message. Such an information is made by: 307 o clueId: an XML element containing the identifier of the CP within 308 the telepresence system; 310 o sequenceNr: an XML element containing the local message sequence 311 number; 313 o protocol: a mandatory attribute set to "CLUE" identifying the 314 procotol the messages refer to; 316 o v: a mandatory attribute carrying the version of the protocol. 317 The content of the "v" attribute is composed by the major version 318 number followed by a dot and then by the minor version number of 319 the CLUE protocol in use. Allowed values are of this kind: "1.3", 320 "2.45", and the like. 322 Each CP should manage uo to three streams of sequence numbers: (i) 323 one for the messages exchanged in the initiation phase, (ii) one for 324 the messages exchanged as MP, and (iii) one for the messages 325 exchanged as MC. 327 4.1. OPTIONS 329 The OPTIONS message is sent by the CP which is the CI to the CP which 330 is the CR as soon as the CLUE data channel is ready. Besides the 331 information envisioned in the basic structure, it specifies: 333 o mediaProvider: a mandatory boolean field set to "true" if the CP 334 is able to act as a MP 336 o mediaConsumer: a mandatory boolean field set to "true" if the CP 337 is able to act as a MC 339 o supportedVersions: the list of the supported versions 341 o supportedOptions: the list of the supported options 343 The XML Schema of such a message is reported below: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 361 362 363 364 366 367 368 369 371 372 373 374 376 377 378 379 381 382 383 384 385 386 387 388 389 390 391 contains the list of the versions that are 392 supported by the CI, each one represented in a child 393 element. The content of each element is a string made by 394 the major version number followed by a dot and then by the minor 395 version number (e.g., 1.3 or 2.43). Only one element 396 SHOULD be provided for each major version supported, containing the 397 maximum minor version number of such a version, since all minor 398 versions are backward compatible. If no is 399 carried whithin the OPTIONS message, the CI supports only the version 400 declared in the "v" attribute. For example, if the "v" attribute has 401 a value of "3.4" and there is not a tag in the 402 OPTIONS message, it means the CI supports only major version 3 with 403 all the minor versions comprised between 3.0 the 3.4 included. If a 404 is provided, at least one tag MUST be 405 included. 407 The element specifies the list of the options 408 supported by the CI. If there is no in the 409 OPTIONS message, the CI does not support anything more than what is 410 envisioned in the versions it supports. For each option, an