idnits 2.17.1 draft-ietf-clue-protocol-06.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 81 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 226: '...a CLUE dialogue, the involved CPs MUST...' RFC 2119 keyword, line 423: '....43). Only one element MUST...' RFC 2119 keyword, line 434: '... tag MUST be included....' RFC 2119 keyword, line 450: '...ype 2xx the response MUST also include...' RFC 2119 keyword, line 452: '... 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 == Line 989 has weird spacing: '... | sent retr...' == Line 991 has weird spacing: '...expired v ...' == 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 1187, but not defined == Missing Reference: '1-9' is mentioned on line 1187, but not defined == Unused Reference: 'RFC6502' is defined on line 2360, but no explicit reference was found in the text == Unused Reference: 'RFC6503' is defined on line 2369, 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 (~~), 11 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-06 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 . . . . . . . . . . . . . . . . . . . . 14 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 . . . . . . . . . . . . . . . . . 48 89 12. Diff with draft-ietf-clue-protocol-05 . . . . . . . . . . . . 49 90 13. Diff with draft-ietf-clue-protocol-04 . . . . . . . . . . . . 49 91 14. Diff with draft-ietf-clue-protocol-03 . . . . . . . . . . . . 49 92 15. Diff with draft-ietf-clue-protocol-02 . . . . . . . . . . . . 50 93 16. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 50 94 17. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 50 95 18. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 51 96 19. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 51 97 20. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 51 98 21. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 51 99 22. References . . . . . . . . . . . . . . . . . . . . . . . . . . 52 100 22.1. Normative References . . . . . . . . . . . . . . . . . . . 52 101 22.2. Informative References . . . . . . . . . . . . . . . . . . 53 103 1. Introduction 105 The CLUE protocol is an application protocol used by two CLUE 106 Participants to enhance the experience of a multimedia telepresence 107 session. The main goals of the CLUE protocol are: 109 1. enabling a Media Provider (MP) to properly announce its current 110 telepresence capabilities to a Media Consumer (MC) in terms of 111 available media captures, groups of encodings, simultaneity 112 constraints and other information envisioned in 113 [I-D.ietf-clue-framework]; 115 2. enabling an MC to request the desired multimedia streams from the 116 offering MP. 118 CLUE-capable endpoints are connected by means of the CLUE data 119 channel, an SCTP over DTLS channel which is opened and established as 120 described in [I-D.ietf-clue-signaling] and 121 [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing upon 122 such a channel are detailed in this document, both syntactically and 123 semantically. 125 In Section 3 we provide a general overview of the CLUE protocol. 126 CLUE protocol messages are detailed in Section 4. The CLUE 127 Participant state machine is introduced in Section 5. Versioning and 128 extensions are discussed in Section 7 and Section 8, respectively. 129 The XML schema defining the CLUE messages is reported in Section 9. 131 2. Terminology 133 This document refers to the same terminology used in 134 [I-D.ietf-clue-framework] and in [RFC7262]. We briefly recall herein 135 some of the main terms used in the document. The definition of "CLUE 136 Participant" herein proposed is not imported from any of the above 137 documents. 139 CLUE Participant (CP): An entity able to use the CLUE protocol 140 within a telepresence session. It can be an endpoint or an MCU 141 able to use the CLUE protocol. 143 CLUE-capable device: A device that supports the CLUE data channel 144 [I-D.ietf-clue-datachannel], the CLUE protocol and the principles 145 of CLUE negotiation, and seeks CLUE-enabled calls. 147 Endpoint: The logical point of final termination through receiving, 148 decoding and rendering, and/or initiation through capturing, 149 encoding, and sending of media streams. An endpoint consists of 150 one or more physical devices which source and sink media streams, 151 and exactly one [RFC4353] Participant (which, in turn, includes 152 exactly one SIP User Agent). Endpoints can be anything from 153 multiscreen/multicamera room controllers to handheld devices. 155 MCU: Multipoint Control Unit (MCU) - a device that connects two or 156 more endpoints together into one single multimedia conference 157 [RFC5117]. An MCU may include a Mixer [RFC4353]. 159 Media: Any data that, after suitable encoding, can be conveyed over 160 RTP, including audio, video or timed text. 162 Media Capture: A "Media Capture", or simply "Capture", is a source 163 of Media. 165 Media Consumer (MC): A CLUE Participant (i.e., an Endpoint or an 166 MCU) able to receive Media Streams. 168 Capture Encoding: A specific encoding of a Media Capture, to be sent 169 via RTP [RFC3550]. 171 Media Provider (MP): A CLUE Participant (i.e., an Endpoint or an 172 MCU) able to send Media Streams. 174 Media Stream: The term "Media Stream", or simply "Stream", is used 175 as a synonym of Capture Encoding. 177 3. Overview of the CLUE protocol 179 The CLUE protocol is conceived to enable CLUE telepresence sessions. 180 It is designed in order to address SDP limitations in terms of the 181 description of some information about the multimedia streams that are 182 involved in a real-time multimedia conference. Indeed, by simply 183 using SDP we are not able to convey information about the features of 184 the flowing multimedia streams that are needed to enable a "being 185 there" rendering experience. Such information is designed in the 186 CLUE framework document and formally defined and described in the 187 CLUE data model document. The CLUE protocol represents the mechanism 188 for the exchange of CLUE information between CLUE Participants. It 189 mainly provides the messages to enable a Media Provider to advertise 190 its telepresence capabilities and to enable a Media Consumer to 191 select the desired telepresence options. 193 The CLUE protocol, as defined in the following, is a stateful, 194 client-server, XML-based application protocol. CLUE protocol 195 messages flow on a reliable and ordered SCTP over DTLS transport 196 channel connecting two CLUE Participants. Messages carry information 197 taken from the XML-based CLUE data model 198 ([I-D.ietf-clue-data-model-schema]). Three main communication layers 199 can be identified: 201 1. Establishment of the CLUE data channel: in this phase, the CLUE 202 data channel setup takes place. If it completes successfully, 203 the CPs are able to communicate and start the initiation phase. 205 2. Negotiation of the CLUE protocol version and options (initiation 206 phase): the CPs connected via the CLUE data channel agree on the 207 version and on the options to be used during the telepresence 208 session. Special CLUE messages are used for such a task (OPTIONS 209 and OPTIONS RESPONSE). The version and options negotiation can 210 be performed once and only at this stage. At the end of that 211 basic negotiation, each CP starts its activity as a CLUE MP 212 and/or CLUE MC. 214 3. CLUE telepresence capabilities description and negotiation: in 215 this phase, the MP-MC dialogues take place on the data channel by 216 means of the CLUE protocol messages. 218 As soon as the channel is ready, the CLUE Participants must agree on 219 the protocol version and extensions to be used within the 220 telepresence session. CLUE protocol version numbers are 221 characterized by a major version number and a minor version number, 222 both unsigned integers, separated by a dot. While minor version 223 numbers denote backward compatible changes in the context of a given 224 major version, different major version numbers generally indicate a 225 lack of interoperability between the protocol implementations. In 226 order to correctly establish a CLUE dialogue, the involved CPs MUST 227 have in common a major version number (see Section 7 for further 228 details). The subset of the protocol options and extensions that are 229 allowed within the CLUE session is also determined in the initiation 230 phase, such subset being the one including only the options that are 231 supported by both parties. A mechanism for the negotiation of the 232 CLUE protocol version and extensions is is part of the initial phase. 233 According to such a solution, the CP which is the CLUE Channel 234 initiator (CI) issues a proper CLUE message (OPTIONS) to the CP which 235 is the Channel Receiver (CR) specifying the supported version and 236 extensions. The CR then answers by selecting the subset of the CI 237 extensions that it is able to support and determines the protocol 238 version to be used. 240 After that negotiation phase is completed, CLUE Participants describe 241 and agree on the media flows to be exchanged. In many cases CPs will 242 seek to both transmit and receive media. Hence in a call between two 243 CPs, A and B, there would be two seperate dialogs, as follows: 245 1. the one needed to describe and set up the media streams sent from 246 A to B, i.e., the dialogue between A's Media Provider side and 247 B's Media Consumer side 249 2. the one needed to describe and set up the media streams sent from 250 B to A, i.e., the dialogue between B's Media Provider side and 251 A's Media Consumer side 253 CLUE messages for the media session description and negotiation are 254 designed by considering the MP side as the server side of the 255 protocol, since it produces and provides media streams, and the MC 256 side as the client side of the protocol, since it requests and 257 receives media streams. The messages that are exchanged to set up 258 the telepresence media session are described by focusing on a single 259 MP-MC dialogue. 261 The MP first advertises its available media captures and encoding 262 capabilities to the MC, as well as its simultaneity constraints, 263 according to the information model defined in 264 [I-D.ietf-clue-framework]. The CLUE message conveying the MP's 265 multimedia offer is the ADVERTISEMENT message. Such message 266 leverages the XML data model definitions provided in 267 [I-D.ietf-clue-data-model-schema]. 269 The MC selects the desired streams of the MP by using the CONFIGURE 270 message, which makes reference to the information carried in the 271 previously received ADVERTISEMENT. 273 Besides ADVERTISEMENT and CONFIGURE, other messages have been 274 conceived in order to provide all the needed mechanisms and 275 operations. Such messages will be detailed in the following 276 sections. 278 4. Protocol messages 280 CLUE protocol messages are textual, XML-based messages that enable 281 the configuration of the telepresence session. The formal definition 282 of such messages is provided in the XML Schema provided at the end of 283 this document (Section 9). 285 The XML definitions of the CLUE information provided in 286 [I-D.ietf-clue-data-model-schema] are included within some CLUE 287 protocol messages (namely the ADVERTISEMENT and the CONFIGURE 288 messages), in order to use the concepts defined in 289 [I-D.ietf-clue-framework]. 291 The CLUE protocol messages are the following: 293 o OPTIONS 295 o OPTIONS RESPONSE 297 o ADVERTISEMENT (ADV) 299 o ADVERTISEMENT ACKNOWLEDGEMENT (ACK) 301 o CONFIGURE (CONF) 303 o CONFIGURE RESPONSE (CONF RESPONSE) 305 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 306 initiation phase between the CPs, the other messages are involved in 307 MP-MC dialogues. 309 Each CLUE message inherits a basic structure depicted in the 310 following excerpt: 312 313 314 315 316 317 318 319 320 322 323 324 325 326 327 329 The basic structure determines the mandatory information that is 330 carried within each CLUE message. Such an information is made by: 332 o clueId: an XML element containing the identifier (in the form of a 333 generic string) of the CP within the telepresence system; 335 o sequenceNr: an XML element containing the local message sequence 336 number. The sender must increment the sequence numbers by one for 337 each new message sent, the receiver must remember the most recent 338 sequence number received and send back a 401 error if it receives 339 a message with an unexpected sequence number; 341 o protocol: a mandatory attribute set to "CLUE", identifying the 342 procotol the messages refer to; 344 o v: a mandatory attribute carrying the version of the protocol. 345 The content of the "v" attribute is composed by the major version 346 number followed by a dot and then by the minor version number of 347 the CLUE protocol in use. Allowed values are of this kind: "1.3", 348 "2.45", etc. 350 Each CP should manage up to three (independent) streams of sequence 351 numbers: (i) one for the messages exchanged in the initiation phase, 352 (ii) one for the messages exchanged as MP, and (iii) one for the 353 messages exchanged as MC. 355 4.1. OPTIONS 357 The OPTIONS message is sent by the CP which is the CI to the CP which 358 is the CR as soon as the CLUE data channel is ready. Besides the 359 information envisioned in the basic structure, it specifies: 361 o mediaProvider: a mandatory boolean field set to "true" if the CP 362 is able to act as a MP 364 o mediaConsumer: a mandatory boolean field set to "true" if the CP 365 is able to act as a MC 367 o supportedVersions: the list of the supported versions 369 o supportedOptions: the list of the supported options 371 The XML Schema of such a message is reported below: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 389 390 391 392 394 395 396 397 399 400 401 402 404 405 406 407 409 410 411 412 413 414 415 416 417 418 419 contains the list of the versions that are 420 supported by the CI, each one represented in a child 421 element. The content of each element is a string made by 422 the major version number followed by a dot and then by the minor 423 version number (e.g., 1.3 or 2.43). Only one element MUST 424 be provided for each major version supported, containing the maximum 425 minor version number of such a version, since all minor versions are 426 backward compatible. If no is carried within the 427 OPTIONS message, the CI supports only the version declared in the "v" 428 attribute and all the versions having the same major version number 429 and lower minor version number. For example, if the "v" attribute 430 has a value of "3.4" and there is no tag in the 431 OPTIONS message, it means the CI supports only major version 3 with 432 all the minor versions comprised between 3.0 and 3.4, with version 433 3.4 included. If a is provided, at least one 434 tag MUST be included. 436 The element specifies the list of options 437 supported by the CI. If there is no in the 438 OPTIONS message, the CI does not support anything other than what is 439 envisioned in the versions it supports. For each option, an