idnits 2.17.1 draft-ietf-clue-protocol-02.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 : ---------------------------------------------------------------------------- ** There are 142 instances of too long lines in the document, the longest one being 10 characters in excess of 72. ** The abstract seems to contain references ([I-D.ietf-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 217: '...a CLUE dialogue, the involved CPs MUST...' RFC 2119 keyword, line 404: '... SHOULD be provided for each major v...' RFC 2119 keyword, line 413: '... tag MUST be included....' RFC 2119 keyword, line 436: '...o errors, the CR MUST insert within th...' RFC 2119 keyword, line 439: '...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 == 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. -- The document date (October 24, 2014) is 3473 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: 'RFC6502' is defined on line 2592, but no explicit reference was found in the text == Unused Reference: 'RFC6503' is defined on line 2600, but no explicit reference was found in the text == Outdated reference: A later version (-17) exists of draft-ietf-clue-data-model-schema-07 ** Downref: Normative reference to an Experimental draft: draft-ietf-clue-datachannel (ref. 'I-D.ietf-clue-datachannel') == Outdated reference: A later version (-25) exists of draft-ietf-clue-framework-17 == Outdated reference: A later version (-15) exists of draft-ietf-clue-signaling-03 ** Downref: Normative reference to an Experimental draft: draft-ietf-clue-signaling (ref. 'I-D.ietf-clue-signaling') ** Obsolete normative reference: RFC 3023 (Obsoleted by RFC 7303) ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) -- Obsolete informational reference (is this intentional?): RFC 5117 (Obsoleted by RFC 7667) Summary: 7 errors (**), 0 flaws (~~), 7 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: April 27, 2015 October 24, 2014 7 CLUE protocol 8 draft-ietf-clue-protocol-02 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.ietf-clue-signaling] delves into CLUE signaling details, as well 18 as on the SIP/SDP session establishment phase. CLUE messages flow 19 upon the CLUE data channel, based on reliable and ordered SCTP over 20 DTLS transport, as described in [I-D.ietf-clue-datachannel]. Message 21 details, together with the behavior of CLUE Participants acting as 22 Media Providers and/or Media Consumers, are herein discussed. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at http://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on April 27, 2015. 41 Copyright Notice 43 Copyright (c) 2014 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 60 3. Overview of the CLUE protocol . . . . . . . . . . . . . . . . 5 61 4. Protocol messages . . . . . . . . . . . . . . . . . . . . . . 7 62 4.1. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 9 63 4.2. OPTIONS RESPONSE . . . . . . . . . . . . . . . . . . . . . 11 64 4.3. ADVERTISEMENT . . . . . . . . . . . . . . . . . . . . . . 12 65 4.4. ADVERTISEMENT ACKNOWLEDGEMENT . . . . . . . . . . . . . . 14 66 4.5. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 15 67 4.6. CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . . 16 68 4.7. Response codes and reason strings . . . . . . . . . . . . 16 69 5. Protocol state machines . . . . . . . . . . . . . . . . . . . 18 70 6. CLUE Participant's state machine . . . . . . . . . . . . . . . 18 71 6.1. Media Provider's state machine . . . . . . . . . . . . . . 21 72 6.2. Media Consumer's state machine . . . . . . . . . . . . . . 24 73 7. Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . 26 74 8. Extensions and options . . . . . . . . . . . . . . . . . . . . 27 75 9. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 29 76 10. ADVERTISEMENT examples . . . . . . . . . . . . . . . . . . . . 34 77 10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . . 34 78 10.2. ADV with MCCs . . . . . . . . . . . . . . . . . . . . . . 40 79 10.3. Partial ADV . . . . . . . . . . . . . . . . . . . . . . . 47 80 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 81 11.1. URN Sub-Namespace Registration . . . . . . . . . . . . . . 51 82 11.2. XML Schema registration . . . . . . . . . . . . . . . . . 52 83 11.3. MIME Media Type Registration for 'application/clue+xml' . 52 84 11.4. DNS Registrations . . . . . . . . . . . . . . . . . . . . 53 85 11.4.1. Application Service tag . . . . . . . . . . . . . . . 53 86 11.4.2. Application Protocol tag . . . . . . . . . . . . . . 54 87 11.5. CLUE Protocol Registry . . . . . . . . . . . . . . . . . . 54 88 11.5.1. CLUE Message Types . . . . . . . . . . . . . . . . . 54 89 11.5.2. CLUE Response Codes . . . . . . . . . . . . . . . . . 55 90 12. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 55 91 13. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 56 92 14. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 56 93 15. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 56 94 16. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 56 95 17. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 57 96 18. References . . . . . . . . . . . . . . . . . . . . . . . . . . 57 97 18.1. Normative References . . . . . . . . . . . . . . . . . . . 57 98 18.2. Informative References . . . . . . . . . . . . . . . . . . 58 100 1. Introduction 102 The CLUE protocol is an application protocol used by two CLUE 103 Participants to enhance the experience of a multimedia telepresence 104 session. The main goals of the CLUE protocol are: 106 1. enabling a MP to properly announce its current telepresence 107 capabilities to a MC in terms of available media captures, groups 108 of encodings, simultaneity constraints and other information 109 envisioned in [I-D.ietf-clue-framework]; 111 2. enabling a MC to request the desired multimedia streams to the 112 offering MP. 114 CLUE-capable endpoints are connected by means of the CLUE data 115 channel, an SCTP over DTLS channel which is opened and established as 116 depicted in [I-D.ietf-clue-signaling] and 117 [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing upon 118 such a channel are detailed in this document, both syntactically and 119 semantically. 121 In Section 3 we provide a general overview of the CLUE protocol. 122 CLUE protocol messages are detailed in Section 4 The CLUE Participant 123 state machine is introduced in Section 5. Versioning and extensions 124 are discussed in Section 7 and Section 8, respectively. The XML 125 schema defining the CLUE messages is reported in Section 9. 127 2. Terminology 129 This document refers to the same terminology used in 130 [I-D.ietf-clue-framework] and in 131 [I-D.ietf-clue-telepresence-requirements]. We briefly recall herein 132 some of the main terms used in the document. The definition of "CLUE 133 Participant" herein proposed is not imported from any of the above 134 documents. 136 CLUE Participant: An entity able to use the CLUE protocol within a 137 telepresence session. It can be an endpoint or an MCU able to use 138 the CLUE protocol. 140 Endpoint: The logical point of final termination through receiving, 141 decoding and rendering, and/or initiation through capturing, 142 encoding, and sending of media streams. An endpoint consists of 143 one or more physical devices which source and sink media streams, 144 and exactly one [RFC4353] Participant (which, in turn, includes 145 exactly one SIP User Agent). Endpoints can be anything from 146 multiscreen/multicamera room controllers to handheld devices. 148 MCU: Multipoint Control Unit (MCU) - a device that connects two or 149 more endpoints together into one single multimedia conference 150 [RFC5117]. An MCU may include a Mixer [RFC4353]. 152 Media: Any data that, after suitable encoding, can be conveyed over 153 RTP, including audio, video or timed text. 155 Media Capture: A "Media Capture", or simply "Capture", is a source 156 of Media. 158 Capture Encoding: A specific encoding of a Media Capture, to be sent 159 via RTP [RFC3550]. 161 Media Stream: The term "Media Stream", or simply "Stream", is used 162 as a synonymous of Capture Encoding. 164 Media Provider: A CLUE Participant (i.e., an Endpoint or an MCU) 165 able to send Media Streams. 167 Media Consumer: A CLUE Participant (i.e., an Endpoint or an MCU) 168 able to receive Media Streams. 170 3. Overview of the CLUE protocol 172 The CLUE protocol is conceived to enable CLUE telepresence sessions. 173 It is designed in order to address SDP limitations in terms of the 174 description of some information about the multimedia streams that are 175 involved in a real-time multimedia conference. Indeed, by simply 176 using SDP we are not able to convey information about the features of 177 the flowing multimedia streams that are needed to enable a "being 178 there" rendering experience. Such information is designed in the 179 CLUE framework document and formally defined and described in the 180 CLUE data model document. The CLUE protocol represents the mechanism 181 for the exchange of CLUE information between CLUE Participants. It 182 mainly provides the messages to enable a Media Provider to advertise 183 its telepresence capabilities and to enable a Media Consumer to 184 select the desired telepresence options. 186 The CLUE protocol, as defined in the following, is a stateful, 187 client-server, XML-based application protocol. CLUE protocol 188 messages flow on a realiable and ordered SCTP over DTLS transport 189 channel connecting two CLUE Participants. Messages carry information 190 taken from the XML-based CLUE data model 191 ([I-D.ietf-clue-data-model-schema]). Three main communication layers 192 can be identified: 194 1. Establishment of the CLUE data channel: in this phase, the CLUE 195 data channel setup takes place. If it completes successfully, 196 the CPs are able to communicate and start the initiation phase. 198 2. Negotiation of the CLUE protocol version and options (initiation 199 phase): the CPs connected via the CLUE data channel agree on the 200 version and on the options to be used during the telepresence 201 session. Special CLUE messages are used for such a task. At the 202 end of that basic negotiation, each CP starts its activity as a 203 CLUE MP and/or CLUE MC. 205 3. CLUE telepresence capabilities description and negotiation: in 206 this phase, the MP-MC dialogues take place on the data channel by 207 means of the CLUE protocol messages. 209 As soon as the channel is ready, the CLUE Participants must agree on 210 the protocol version and extensions to be used within the 211 telepresence session. CLUE protocol version numbers are 212 characterized by a major version number and a minor version number, 213 both unsigned integers, separated by a dot. While minor version 214 numbers denote backward compatible changes in the context of a given 215 major version, different major version numbers generally indicate a 216 lack of interoperability between the protocol implementations. In 217 order to correctly establish a CLUE dialogue, the involved CPs MUST 218 have in common a major version number (see Section 7 for further 219 details). The subset of the protocol options and extensions that are 220 allowed within the CLUE session is also determined in the initiation 221 phase, such subset being the one including only the options that are 222 supported by both parties. A mechanism for the negotiation of the 223 CLUE protocol version and extensions is envisioned in the initiation 224 phase. According to such a solution, the CP which is the CLUE 225 Channel initiator (CI) issues a proper CLUE message (OPTIONS) to the 226 CP which is the Channel Receiver (CR) specifying the supported 227 version and extensions. The CR then answers by selecting the subset 228 of the CI extensions that it is able to support and determines the 229 protocol version to be used. 231 After that negotiation phase is completed, CLUE Participants describe 232 and agree on the media flows to be exchanged. Indeed, being CPs A 233 and B both transmitting and receiving, it is possible to distinguish 234 between two dialogues: 236 1. the one needed to describe and set up the media streams sent from 237 A to B, i.e., the dialogue between A's Media Provider side and 238 B's Media Consumer side 240 2. the one needed to describe and set up the media streams sent from 241 B to A, i.e., the dialogue between B's Media Provider side and 242 A's Media Consumer side 244 CLUE messages for the media session description and negotiation are 245 designed by considering the MP side as the server side of the 246 protocol, since it produces and provides media streams, and the MC 247 side as the client side of the protocol, since it requests and 248 receives media streams. The messages that are exchanged to set up 249 the telepresence media session are described by focusing on a single 250 MP-MC dialogue. 252 The MP first advertises its available media captures and encoding 253 capabilities to the MC, as well as its simultaneity constraints, 254 according to the information model defined in 255 [I-D.ietf-clue-framework]. The CLUE message conveying the MP's 256 multimedia offer is the ADVERTISEMENT message. Such message 257 leverages the XML data model definitions provided in 258 [I-D.ietf-clue-data-model-schema]. 260 The MC selects the desired streams of the MP by using the CONFIGURE 261 message, which makes reference to the information carried in the 262 previously received ADVERTISEMENT. 264 Besides ADVERTISEMENT and CONFIGURE, other messages have been 265 conceived in order to provide all the needed mechanisms and 266 operations. Such messages will be detailed in the following 267 sections. 269 4. Protocol messages 271 CLUE protocol messages are textual, XML-based messages that enable 272 the configuration of the telepresence session. The formal definition 273 of such messages is provided in the XML Schema provided at the end of 274 this document (Section 9). 276 The XML definitions of the CLUE information provided in 277 [I-D.ietf-clue-data-model-schema] are included within some CLUE 278 protocol messages (namely the ADVERTISEMENT and the CONFIGURE 279 messages), in order to use the concepts defined in 280 [I-D.ietf-clue-framework]. 282 The CLUE protocol messages are the following: 284 o OPTIONS 286 o OPTIONS RESPONSE 288 o ADVERTISEMENT (ADV) 290 o ADVERTISEMENT ACKNOWLEDGEMENT (ACK) 291 o CONFIGURE (CONF) 293 o CONFIGURE RESPONSE 295 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 296 initiation phase between the CPs, the other messages are involved in 297 MP-MC dialogues. 299 Each CLUE message inherits a basic structure depicted in the 300 following excerpt: 302 303 304 305 306 307 308 309 310 312 The basic structure determines the mandatory information that is 313 carried within each CLUE message. Such an information is made by: 315 o clueId: an XML element containing the identifier of the CP within 316 the telepresence system; 318 o sequenceNr: an XML element containing the local message sequence 319 number; 321 o protocol: a mandatory attribute set to "CLUE", identifying the 322 procotol the messages refer to; 324 o v: a mandatory attribute carrying the version of the protocol. 325 The content of the "v" attribute is composed by the major version 326 number followed by a dot and then by the minor version number of 327 the CLUE protocol in use. Allowed values are of this kind: "1.3", 328 "2.45", etc. 330 Each CP should manage up to three streams of sequence numbers: (i) 331 one for the messages exchanged in the initiation phase, (ii) one for 332 the messages exchanged as MP, and (iii) one for the messages 333 exchanged as MC. 335 4.1. OPTIONS 337 The OPTIONS message is sent by the CP which is the CI to the CP which 338 is the CR as soon as the CLUE data channel is ready. Besides the 339 information envisioned in the basic structure, it specifies: 341 o mediaProvider: a mandatory boolean field set to "true" if the CP 342 is able to act as a MP 344 o mediaConsumer: a mandatory boolean field set to "true" if the CP 345 is able to act as a MC 347 o supportedVersions: the list of the supported versions 349 o supportedOptions: the list of the supported options 351 The XML Schema of such a message is reported below: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 369 370 371 372 374 375 376 377 379 380 381 382 384 385 386 387 389 390 391 392 393 394 395 396 397 398 399 contains the list of the versions that are 400 supported by the CI, each one represented in a child 401 element. The content of each element is a string made by 402 the major version number followed by a dot and then by the minor 403 version number (e.g., 1.3 or 2.43). Only one element 404 SHOULD be provided for each major version supported, containing the 405 maximum minor version number of such a version, since all minor 406 versions are backward compatible. If no is 407 carried whithin the OPTIONS message, the CI supports only the version 408 declared in the "v" attribute. For example, if the "v" attribute has 409 a value of "3.4" and there is no tag in the 410 OPTIONS message, it means the CI supports only major version 3 with 411 all the minor versions comprised between 3.0 and 3.4, with version 412 3.4 included. If a is provided, at least one 413 tag MUST be included. 415 The element specifies the list of options 416 supported by the CI. If there is no in the 417 OPTIONS message, the CI does not support anything other than what is 418 envisioned in the versions it supports. For each option, an