idnits 2.17.1 draft-ietf-clue-protocol-05.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 115 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], [RFC7262]), 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 225: '...a CLUE dialogue, the involved CPs MUST...' RFC 2119 keyword, line 422: '....43). Only one element MUST...' RFC 2119 keyword, line 433: '... tag MUST be included....' RFC 2119 keyword, line 449: '...ype 2xx the response MUST also include...' RFC 2119 keyword, line 451: '... elements; it MAY include them for a...' (8 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 'MUST not' in this paragraph: The optional boolean element, set to "true", if present, indicates that the CONF message also acknowledges the referred advertisement, by applying in that way a piggybacking mechanism for simultaneously acknowledging and replying to the ADV message. In the above case, the CONF message MUST carry a 200 (Success) response code. The element MUST not be present if an ACK message has been already sent back to the MP. -- The document date (October 19, 2015) is 3111 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) == Missing Reference: '0-9' is mentioned on line 1183, but not defined == Missing Reference: '1-9' is mentioned on line 1183, but not defined == Unused Reference: 'RFC6502' is defined on line 2292, but no explicit reference was found in the text == Unused Reference: 'RFC6503' is defined on line 2301, but no explicit reference was found in the text == Outdated reference: A later version (-18) exists of draft-ietf-clue-datachannel-10 ** 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-23 == Outdated reference: A later version (-15) exists of draft-ietf-clue-signaling-06 ** 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 (~~), 9 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 21, 2016 October 19, 2015 7 CLUE protocol 8 draft-ietf-clue-protocol-05 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 [RFC7262]. The companion document [I-D.ietf-clue-signaling] delves 17 into CLUE signaling details, as well as on the SIP/SDP session 18 establishment phase. CLUE messages flow upon the CLUE data channel, 19 based on reliable and ordered SCTP over DTLS transport, as described 20 in [I-D.ietf-clue-datachannel]. Message details, together with the 21 behavior of CLUE Participants acting as Media Providers and/or Media 22 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 21, 2016. 41 Copyright Notice 43 Copyright (c) 2015 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 . . . . . . . . . . . . . . 13 66 4.5. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 14 67 4.6. CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . . 15 68 4.7. Response codes and reason strings . . . . . . . . . . . . 15 69 5. Protocol state machines . . . . . . . . . . . . . . . . . . . 17 70 6. CLUE Participant's state machine . . . . . . . . . . . . . . . 17 71 6.1. Media Provider's state machine . . . . . . . . . . . . . . 19 72 6.2. Media Consumer's state machine . . . . . . . . . . . . . . 22 73 7. Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . 25 74 8. Extensions and options . . . . . . . . . . . . . . . . . . . . 26 75 9. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 27 76 10. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 77 10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . . 31 78 10.2. ADV with MCCs . . . . . . . . . . . . . . . . . . . . . . 37 79 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 80 11.1. URN Sub-Namespace Registration . . . . . . . . . . . . . . 44 81 11.2. XML Schema registration . . . . . . . . . . . . . . . . . 45 82 11.3. MIME Media Type Registration for 'application/clue+xml' . 45 83 11.4. DNS Registrations . . . . . . . . . . . . . . . . . . . . 46 84 11.4.1. Application Service tag . . . . . . . . . . . . . . . 46 85 11.4.2. Application Protocol tag . . . . . . . . . . . . . . 46 86 11.5. CLUE Protocol Registry . . . . . . . . . . . . . . . . . . 47 87 11.5.1. CLUE Message Types . . . . . . . . . . . . . . . . . 47 88 11.5.2. CLUE Response Codes . . . . . . . . . . . . . . . . . 47 89 12. Diff with draft-ietf-clue-protocol-04 . . . . . . . . . . . . 48 90 13. Diff with draft-ietf-clue-protocol-03 . . . . . . . . . . . . 48 91 14. Diff with draft-ietf-clue-protocol-02 . . . . . . . . . . . . 48 92 15. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 48 93 16. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 49 94 17. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 49 95 18. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 49 96 19. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 50 97 20. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 50 98 21. References . . . . . . . . . . . . . . . . . . . . . . . . . . 50 99 21.1. Normative References . . . . . . . . . . . . . . . . . . . 50 100 21.2. Informative References . . . . . . . . . . . . . . . . . . 51 102 1. Introduction 104 The CLUE protocol is an application protocol used by two CLUE 105 Participants to enhance the experience of a multimedia telepresence 106 session. The main goals of the CLUE protocol are: 108 1. enabling a Media Provider (MP) to properly announce its current 109 telepresence capabilities to a Media COnsumer (MC) in terms of 110 available media captures, groups of encodings, simultaneity 111 constraints and other information envisioned in 112 [I-D.ietf-clue-framework]; 114 2. enabling an MC to request the desired multimedia streams from the 115 offering MP. 117 CLUE-capable endpoints are connected by means of the CLUE data 118 channel, an SCTP over DTLS channel which is opened and established as 119 described in [I-D.ietf-clue-signaling] and 120 [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing upon 121 such a channel are detailed in this document, both syntactically and 122 semantically. 124 In Section 3 we provide a general overview of the CLUE protocol. 125 CLUE protocol messages are detailed in Section 4. The CLUE 126 Participant state machine is introduced in Section 5. Versioning and 127 extensions are discussed in Section 7 and Section 8, respectively. 128 The XML schema defining the CLUE messages is reported in Section 9. 130 2. Terminology 132 This document refers to the same terminology used in 133 [I-D.ietf-clue-framework] and in [RFC7262]. We briefly recall herein 134 some of the main terms used in the document. The definition of "CLUE 135 Participant" herein proposed is not imported from any of the above 136 documents. 138 CLUE Participant (CP): An entity able to use the CLUE protocol 139 within a telepresence session. It can be an endpoint or an MCU 140 able to use the CLUE protocol. 142 CLUE-capable device: A device that supports the CLUE data channel 143 [I-D.ietf-clue-datachannel], the CLUE protocol and the principles 144 of CLUE negotiation, and seeks CLUE-enabled calls. 146 Endpoint: The logical point of final termination through receiving, 147 decoding and rendering, and/or initiation through capturing, 148 encoding, and sending of media streams. An endpoint consists of 149 one or more physical devices which source and sink media streams, 150 and exactly one [RFC4353] Participant (which, in turn, includes 151 exactly one SIP User Agent). Endpoints can be anything from 152 multiscreen/multicamera room controllers to handheld devices. 154 MCU: Multipoint Control Unit (MCU) - a device that connects two or 155 more endpoints together into one single multimedia conference 156 [RFC5117]. An MCU may include a Mixer [RFC4353]. 158 Media: Any data that, after suitable encoding, can be conveyed over 159 RTP, including audio, video or timed text. 161 Media Capture: A "Media Capture", or simply "Capture", is a source 162 of Media. 164 Media Consumer (MC): A CLUE Participant (i.e., an Endpoint or an 165 MCU) able to receive Media Streams. 167 Capture Encoding: A specific encoding of a Media Capture, to be sent 168 via RTP [RFC3550]. 170 Media Provider (MP): A CLUE Participant (i.e., an Endpoint or an 171 MCU) able to send Media Streams. 173 Media Stream: The term "Media Stream", or simply "Stream", is used 174 as a synonym of Capture Encoding. 176 3. Overview of the CLUE protocol 178 The CLUE protocol is conceived to enable CLUE telepresence sessions. 179 It is designed in order to address SDP limitations in terms of the 180 description of some information about the multimedia streams that are 181 involved in a real-time multimedia conference. Indeed, by simply 182 using SDP we are not able to convey information about the features of 183 the flowing multimedia streams that are needed to enable a "being 184 there" rendering experience. Such information is designed in the 185 CLUE framework document and formally defined and described in the 186 CLUE data model document. The CLUE protocol represents the mechanism 187 for the exchange of CLUE information between CLUE Participants. It 188 mainly provides the messages to enable a Media Provider to advertise 189 its telepresence capabilities and to enable a Media Consumer to 190 select the desired telepresence options. 192 The CLUE protocol, as defined in the following, is a stateful, 193 client-server, XML-based application protocol. CLUE protocol 194 messages flow on a reliable and ordered SCTP over DTLS transport 195 channel connecting two CLUE Participants. Messages carry information 196 taken from the XML-based CLUE data model 197 ([I-D.ietf-clue-data-model-schema]). Three main communication layers 198 can be identified: 200 1. Establishment of the CLUE data channel: in this phase, the CLUE 201 data channel setup takes place. If it completes successfully, 202 the CPs are able to communicate and start the initiation phase. 204 2. Negotiation of the CLUE protocol version and options (initiation 205 phase): the CPs connected via the CLUE data channel agree on the 206 version and on the options to be used during the telepresence 207 session. Special CLUE messages are used for such a task (OPTIONS 208 and OPTIONS RESPONSE). The version and options negotiation can 209 be performed once and only at this stage. At the end of that 210 basic negotiation, each CP starts its activity as a CLUE MP 211 and/or CLUE MC. 213 3. CLUE telepresence capabilities description and negotiation: in 214 this phase, the MP-MC dialogues take place on the data channel by 215 means of the CLUE protocol messages. 217 As soon as the channel is ready, the CLUE Participants must agree on 218 the protocol version and extensions to be used within the 219 telepresence session. CLUE protocol version numbers are 220 characterized by a major version number and a minor version number, 221 both unsigned integers, separated by a dot. While minor version 222 numbers denote backward compatible changes in the context of a given 223 major version, different major version numbers generally indicate a 224 lack of interoperability between the protocol implementations. In 225 order to correctly establish a CLUE dialogue, the involved CPs MUST 226 have in common a major version number (see Section 7 for further 227 details). The subset of the protocol options and extensions that are 228 allowed within the CLUE session is also determined in the initiation 229 phase, such subset being the one including only the options that are 230 supported by both parties. A mechanism for the negotiation of the 231 CLUE protocol version and extensions is is part of the initial phase. 232 According to such a solution, the CP which is the CLUE Channel 233 initiator (CI) issues a proper CLUE message (OPTIONS) to the CP which 234 is the Channel Receiver (CR) specifying the supported version and 235 extensions. The CR then answers by selecting the subset of the CI 236 extensions that it is able to support and determines the protocol 237 version to be used. 239 After that negotiation phase is completed, CLUE Participants describe 240 and agree on the media flows to be exchanged. In many cases CPs will 241 seek to both transmit and receive media. Hence in a call between two 242 CPs, A and B, there would be two seperate dialogs, as follows: 244 1. the one needed to describe and set up the media streams sent from 245 A to B, i.e., the dialogue between A's Media Provider side and 246 B's Media Consumer side 248 2. the one needed to describe and set up the media streams sent from 249 B to A, i.e., the dialogue between B's Media Provider side and 250 A's Media Consumer side 252 CLUE messages for the media session description and negotiation are 253 designed by considering the MP side as the server side of the 254 protocol, since it produces and provides media streams, and the MC 255 side as the client side of the protocol, since it requests and 256 receives media streams. The messages that are exchanged to set up 257 the telepresence media session are described by focusing on a single 258 MP-MC dialogue. 260 The MP first advertises its available media captures and encoding 261 capabilities to the MC, as well as its simultaneity constraints, 262 according to the information model defined in 263 [I-D.ietf-clue-framework]. The CLUE message conveying the MP's 264 multimedia offer is the ADVERTISEMENT message. Such message 265 leverages the XML data model definitions provided in 266 [I-D.ietf-clue-data-model-schema]. 268 The MC selects the desired streams of the MP by using the CONFIGURE 269 message, which makes reference to the information carried in the 270 previously received ADVERTISEMENT. 272 Besides ADVERTISEMENT and CONFIGURE, other messages have been 273 conceived in order to provide all the needed mechanisms and 274 operations. Such messages will be detailed in the following 275 sections. 277 4. Protocol messages 279 CLUE protocol messages are textual, XML-based messages that enable 280 the configuration of the telepresence session. The formal definition 281 of such messages is provided in the XML Schema provided at the end of 282 this document (Section 9). 284 The XML definitions of the CLUE information provided in 285 [I-D.ietf-clue-data-model-schema] are included within some CLUE 286 protocol messages (namely the ADVERTISEMENT and the CONFIGURE 287 messages), in order to use the concepts defined in 288 [I-D.ietf-clue-framework]. 290 The CLUE protocol messages are the following: 292 o OPTIONS 294 o OPTIONS RESPONSE 296 o ADVERTISEMENT (ADV) 298 o ADVERTISEMENT ACKNOWLEDGEMENT (ACK) 300 o CONFIGURE (CONF) 302 o CONFIGURE RESPONSE (CONF RESPONSE) 304 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 305 initiation phase between the CPs, the other messages are involved in 306 MP-MC dialogues. 308 Each CLUE message inherits a basic structure depicted in the 309 following excerpt: 311 312 313 314 315 316 317 318 319 321 322 323 324 325 326 328 The basic structure determines the mandatory information that is 329 carried within each CLUE message. Such an information is made by: 331 o clueId: an XML element containing the identifier (in the form of a 332 generic string) of the CP within the telepresence system; 334 o sequenceNr: an XML element containing the local message sequence 335 number. The sender must increment the sequence numbers by one for 336 each new message sent, the receiver must remember the most recent 337 sequence number received and send back a 401 error if it receives 338 a message with an unexpected sequence number; 340 o protocol: a mandatory attribute set to "CLUE", identifying the 341 procotol the messages refer to; 343 o v: a mandatory attribute carrying the version of the protocol. 344 The content of the "v" attribute is composed by the major version 345 number followed by a dot and then by the minor version number of 346 the CLUE protocol in use. Allowed values are of this kind: "1.3", 347 "2.45", etc. 349 Each CP should manage up to three (independent) streams of sequence 350 numbers: (i) one for the messages exchanged in the initiation phase, 351 (ii) one for the messages exchanged as MP, and (iii) one for the 352 messages exchanged as MC. 354 4.1. OPTIONS 356 The OPTIONS message is sent by the CP which is the CI to the CP which 357 is the CR as soon as the CLUE data channel is ready. Besides the 358 information envisioned in the basic structure, it specifies: 360 o mediaProvider: a mandatory boolean field set to "true" if the CP 361 is able to act as a MP 363 o mediaConsumer: a mandatory boolean field set to "true" if the CP 364 is able to act as a MC 366 o supportedVersions: the list of the supported versions 368 o supportedOptions: the list of the supported options 370 The XML Schema of such a message is reported below: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 388 389 390 391 393 394 395 396 398 399 400 401 403 404 405 406 408 409 410 411 412 413 414 415 416 417 418 contains the list of the versions that are 419 supported by the CI, each one represented in a child 420 element. The content of each element is a string made by 421 the major version number followed by a dot and then by the minor 422 version number (e.g., 1.3 or 2.43). Only one element MUST 423 be provided for each major version supported, containing the maximum 424 minor version number of such a version, since all minor versions are 425 backward compatible. If no is carried within the 426 OPTIONS message, the CI supports only the version declared in the "v" 427 attribute and all the versions having the same major version number 428 and lower minor version number. For example, if the "v" attribute 429 has a value of "3.4" and there is no tag in the 430 OPTIONS message, it means the CI supports only major version 3 with 431 all the minor versions comprised between 3.0 and 3.4, with version 432 3.4 included. If a is provided, at least one 433 tag MUST be included. 435 The element specifies the list of options 436 supported by the CI. If there is no in the 437 OPTIONS message, the CI does not support anything other than what is 438 envisioned in the versions it supports. For each option, an