idnits 2.17.1 draft-ietf-clue-protocol-00.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 163 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 201: '...a CLUE dialogue, the involved CPs MUST...' RFC 2119 keyword, line 384: '...e element SHOULD be provided...' RFC 2119 keyword, line 393: '...ed, at least one tag MUST be...' RFC 2119 keyword, line 547: '... element SHOULD not be present...' RFC 2119 keyword, line 613: '...e READV RESPONSE SHOULD carry only the...' (3 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 898 has weird spacing: '...receive sen...' == Line 1010 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 19, 2014) is 3599 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 1505, but no explicit reference was found in the text == Unused Reference: 'RFC6503' is defined on line 1521, but no explicit reference was found in the text == Outdated reference: A later version (-17) exists of draft-ietf-clue-data-model-schema-04 == 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 21, 2014 June 19, 2014 7 CLUE protocol 8 draft-ietf-clue-protocol-00 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 21, 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. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 33 80 11. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 34 81 12. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 34 82 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 34 83 14. Informative References . . . . . . . . . . . . . . . . . . . . 34 85 1. Introduction 87 The CLUE protocol is an application protocol used by two CLUE 88 Participants to enhance the experience of a multimedia telepresence 89 session. The main goals of the CLUE protocol are: 91 1. enabling a MP to fully announce its current telepresence 92 capabilities to a MC in terms of available media captures, groups 93 of encodings, simultaneity constraints and other information 94 envisioned in [I-D.ietf-clue-framework]; 96 2. enabling a MC to request the desired multimedia streams to the 97 offering MP. 99 CLUE-capable endpoints are connected by means of the CLUE data 100 channel, an SCTP over DTLS channel which is opened and established as 101 depicted respectively in [I-D.kyzivat-clue-signaling] and 102 [I-D.kyzivat-clue-signaling]. CLUE protocol messages flowing upon 103 such channel are detailed in the following, both syntactically and 104 semantically. 106 In Section 3 we provide a general overview of the CLUE protocol. 107 CLUE protocol messages are detailed in Section 4 The CLUE Participant 108 state machine is introduced in Section 5. Versioning and extensions 109 are discussed in Section 7 and Section 8, respectively. The XML 110 schema defining the CLUE messages is reported in Section 9. 112 2. Terminology 114 This document refers to the same terminology used in 115 [I-D.ietf-clue-framework] and in 116 [I-D.ietf-clue-telepresence-requirements]. We briefly recall herein 117 some of the main terms exploited in the document. We further 118 introduce the definition of CLUE Participant. 120 CLUE Participant An entity able to use the CLUE protocol within a 121 telepresence session. It can be an endpoint or a MCU able to use 122 the CLUE protocol. 124 Endpoint The logical point of final termination through receiving, 125 decoding and rendering, and/or initiation through capturing, 126 encoding, and sending of media streams. An endpoint consists of 127 one or more physical devices which source and sink media streams, 128 and exactly one [RFC4353] Participant (which, in turn, includes 129 exactly one SIP User Agent). Endpoints can be anything from 130 multiscreen/multicamera room controllers to handheld devices. 132 MCU Multipoint Control Unit (MCU) - a device that connects two or 133 more endpoints together into one single multimedia conference 134 [RFC5117]. An MCU may include a Mixer [RFC4353]. 136 Media Any data that, after suitable encoding, can be conveyed over 137 RTP, including audio, video or timed text. 139 Media Capture A "Media Capture", or simply "Capture", is a source of 140 Media. 142 Capture Encoding A specific encoding of a Media Capture, to be sent 143 via RTP [RFC3550]. 145 Media Stream The term "Media Stream", or simply "Stream", is used as 146 a synonymous of Capture Encoding. 148 Media Provider A CLUE Participant (i.e., an Endpoint or a MCU) able 149 to send Media Streams. 151 Media Consumer A CLUE Participant (i.e., an Endpoint or a MCU) able 152 to receive Media Streams. 154 3. Overview of the CLUE protocol 156 The CLUE protocol has been conceived to enable CLUE telepresence 157 session. It is designed in order to address SDP limitations in terms 158 of the description of several information about the multimedia 159 streams that are involved in a real-time multimedia conference. 160 Indeed, by simply using SDP we are not able to convey the information 161 about the features of the flowing multimedia streams that is needed 162 to enable a "being there" rendering. Such information is designed in 163 the CLUE framework document and formally defined and described in the 164 CLUE data model document. The CLUE protocol represents the mechanism 165 that enables the exchange of CLUE information between CLUE 166 Participants. It mainly provides the messages to enable a Media 167 Provider to advertise its telepresence capabilities and to enable a 168 Media Consumer to select the desired telepresence options. 170 The CLUE protocol, as defined in the following, is a stateful, 171 client-server, XML-based application protocol. CLUE protocol 172 messages flow on realiable and ordered SCTP over DTLS transport 173 channel connecting two CLUE Participants. Messages carries 174 information taken from the XML-based CLUE data model 175 ([I-D.ietf-clue-data-model-schema]). Three main communication layers 176 can be identified: 178 1. Establishment of the CLUE data channel: in this phase, the CLUE 179 data channel setup takes place. If it ends up successfully, the 180 CPs are able to communicate and start the initiation phase. 182 2. Negotiation of the CLUE protocol version and options (initiation 183 phase): the CPs connected via the CLUE data channel agree on the 184 version and on the options to be used during the telepresence 185 session. Special CLUE messages are used for such a task. At the 186 end of that basic negotiation, each CP starts its activity as a 187 CLUE MP and/or CLUE MC. 189 3. CLUE telepresence capabilities description and negotiation: in 190 this phase, the MP-MC offer-answer dialogues take place on the 191 data channel by means of the CLUE protocol messages. 193 As soon as the channel is ready, the CLUE Participants must agree on 194 the protocol version and extensions to be used within the 195 telepresence session. CLUE protocol version numbers are 196 characterized by a major version number and a minor version number, 197 both unsigned integer, separated by a dot. While minor version 198 numbers denote backword compatible changes in the context of a given 199 major version, different major version numbers generally indicate a 200 lack of interoperability between the protocol implementations. In 201 order to correctly establish a CLUE dialogue, the involved CPs MUST 202 have in common a major version number (see Section 7 for further 203 details). The subset of the protocol options and extensions that are 204 allowed within the CLUE session is also determined in the initiation 205 phase, such subset being the one including only the options that are 206 supported by both parties. A mechanism for the negotiation of the 207 CLUE protocol version and extensions is envisioned in the initiation 208 phase. According to such solution, the CP which is the CLUE Channel 209 initiator (CI) issues a proper CLUE message (OPTIONS) to the CP which 210 is the Channel Receiver (CR) specifying the supported version and 211 extensions. The CR then answers by selecting the subset of the CI 212 extensions that it is able to support and determines the protocol 213 version to be used. 215 After that negotiation phase is completed, CLUE Participants describe 216 and agree on the media flows to be exchanged. Indeed, being CPs A 217 and B both transmitting and receiving, it is possible to distinguish 218 between two dialogues: 220 1. the one needed to describe and set up the media streams sent from 221 A to B, i.e., the dialogue between A's Media Provider side and 222 B's Media Consumer side 224 2. the one needed to describe and set up the media streams sent from 225 B to A, i.e., the dialogue between B's Media Provider side and 226 A's Media Consumer side 228 CLUE messages for the media session description and negotiation is 229 designed by considering the MP side as the server side of the 230 protocol, since it produces and provides media streams, and the MC 231 side as the client side of the protocol, since it requests and 232 receives media streams. The messages that are exchanged to set up 233 the telepresence media session are described by focusing on a single 234 MP-MC dialogue. 236 The MP first advertises its available media captures and encoding 237 capabilities to the MC, as well as its simultaneity constraints, 238 according to the information model defined in 239 [I-D.ietf-clue-framework]. The CLUE message conveing the MP's 240 multimedia offer is the ADVERTISEMENT message. Such message 241 leverages the XML data model definitions provided in 242 [I-D.ietf-clue-data-model-schema]. 244 The MC selects the desired streams of the MP by using the CONFIGURE 245 message, which makes reference to the information carried in the 246 previously received ADVERTISEMENT. 248 Besides ADVERTISEMENT and CONFIGURE, other messages have been 249 conceived in order to provide all the needed mechanisms and 250 operations and will be detailed in the following sections. 252 4. Protocol messages 254 CLUE protocol messages are textual, XML-based messages that enable 255 the configuration of the telepresence session. The formal definition 256 of such messages is provided in the XML Schema provided at the end of 257 this document (Section 9). 259 The XML definitions of the CLUE information provided in 260 [I-D.ietf-clue-data-model-schema] are included within some CLUE 261 protocol messages (namely the ADVERTISEMENT, the CONFIGURE, and the 262 READV RESPONSE messages), in order to use the concept defined in 263 [I-D.ietf-clue-framework]. 265 The CLUE protocol messages that have been defined up to now are the 266 following: 268 o OPTIONS 270 o OPTIONS RESPONSE 272 o ADVERTISEMENT (ADV) 274 o ADVERTISEMENT ACKNOWLEDGE (ACK) 275 o CONFIGURE (CONF) 277 o CONFIGURE RESPONSE 279 o READV 281 o READV RESPONSE 283 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 284 initiation phase between the CPs, the other messages are involved in 285 MP-MC dialogues. 287 Each CLUE message inherits a basic structure depicted in the 288 following figure: 290 291 292 293 294 295 296 297 298 300 The basic structure determines the mandatory information that is 301 carried within each CLUE message. Such an information is made by: 303 o clueId: an XML element containing the identifier of the CP within 304 the telepresence system; 306 o sequenceNr: an XML element containing the local message sequence 307 number; 309 o protocol: a mandatory attribute set to "CLUE" identifying the 310 procotol the messages refer to; 312 o v: a mandatory attribute carrying the version of the protocol 314 Each CP should manage uo to three streams of sequence numbers: (i) 315 one for the messages exchanged in the initiation phase, (ii) one for 316 the messages exchanged as MP, and (iii) one for the messages 317 exchanged as MC. 319 4.1. OPTIONS 321 The OPTIONS message is sent by the CP which is the CI to the CP which 322 is the CR as soon as the CLUE data channel is ready. Besides the 323 information envisioned in the basic structure, it specifies: 325 o mediaProvider: a mandatory boolean field set to "true" if the CP 326 is able to act as a MP 328 o mediaConsumer: a mandatory boolean field set to "true" if the CP 329 is able to act as a MC 331 o supportedVersions: the list of the supported versions 333 o supportedOptions: the list of the supported options 335 The XML Schema of such a message is reported below: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 353 354 355 356 358 359 360 361 363 364 365 366 368 369 370 371 373 374 375 376 377 378 379 380 381 382 383 contains the list of the versions that are 384 supported by the CI. Only one element SHOULD be provided 385 for each major version supported, containing the maximum minor 386 version number of such a version, since all minor versions are 387 backward compatible. If no is carried whithin 388 the OPTIONS message, the CI supports only the version declared in the 389 "v" attribute. For example, if the "v" attribute has a value of 390 "3.4" and there is not a tag in the OPTIONS 391 message, it means the CI supports only major version 3 with all the 392 minor versions comprised between 3.0 the 3.4 included. If a 393 is provided, at least one tag MUST be 394 included. 396 The element specifies the list of the options 397 supported by the CI. If there is no in the 398 OPTIONS message, the CI does not support anything more than what is 399 envisioned in the versions it supports. For each option, an