idnits 2.17.1 draft-ietf-clue-protocol-04.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 223: '...a CLUE dialogue, the involved CPs MUST...' RFC 2119 keyword, line 417: '... SHOULD be provided for each major v...' RFC 2119 keyword, line 427: '...ed, at least one tag MUST be...' RFC 2119 keyword, line 450: '...o errors, the CR MUST insert within th...' RFC 2119 keyword, line 453: '...ent of the element MUST be a...' (6 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 979 has weird spacing: '... | sent retr...' == Line 981 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 '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 ACK message has been already sent back to the MP. -- The document date (April 22, 2015) is 3291 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 1178, but not defined == Missing Reference: '1-9' is mentioned on line 1178, but not defined == Unused Reference: 'RFC6502' is defined on line 2325, but no explicit reference was found in the text == Unused Reference: 'RFC6503' is defined on line 2332, but no explicit reference was found in the text ** 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-22 == Outdated reference: A later version (-15) exists of draft-ietf-clue-signaling-05 ** 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 (~~), 10 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: October 24, 2015 April 22, 2015 7 CLUE protocol 8 draft-ietf-clue-protocol-04 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 October 24, 2015. 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-03 . . . . . . . . . . . . 49 90 13. Diff with draft-ietf-clue-protocol-02 . . . . . . . . . . . . 49 91 14. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 50 92 15. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 50 93 16. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 51 94 17. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 51 95 18. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 51 96 19. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 51 97 20. References . . . . . . . . . . . . . . . . . . . . . . . . . . 51 98 20.1. Normative References . . . . . . . . . . . . . . . . . . . 51 99 20.2. Informative References . . . . . . . . . . . . . . . . . . 52 101 1. Introduction 103 The CLUE protocol is an application protocol used by two CLUE 104 Participants to enhance the experience of a multimedia telepresence 105 session. The main goals of the CLUE protocol are: 107 1. enabling a MP to properly announce its current telepresence 108 capabilities to a MC in terms of available media captures, groups 109 of encodings, simultaneity constraints and other information 110 envisioned in [I-D.ietf-clue-framework]; 112 2. enabling a MC to request the desired multimedia streams from the 113 offering MP. 115 CLUE-capable endpoints are connected by means of the CLUE data 116 channel, an SCTP over DTLS channel which is opened and established as 117 described in [I-D.ietf-clue-signaling] and 118 [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing upon 119 such a channel are detailed in this document, both syntactically and 120 semantically. 122 In Section 3 we provide a general overview of the CLUE protocol. 123 CLUE protocol messages are detailed in Section 4 The CLUE Participant 124 state machine is introduced in Section 5. Versioning and extensions 125 are discussed in Section 7 and Section 8, respectively. The XML 126 schema defining the CLUE messages is reported in Section 9. 128 2. Terminology 130 This document refers to the same terminology used in 131 [I-D.ietf-clue-framework] and in [RFC7262]. 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 CLUE-capable device: A device that supports the CLUE data channel 141 [I-D.ietf-clue-datachannel], the CLUE protocol and the principles 142 of CLUE negotiation, and seeks CLUE-enabled calls. 144 Endpoint: The logical point of final termination through receiving, 145 decoding and rendering, and/or initiation through capturing, 146 encoding, and sending of media streams. An endpoint consists of 147 one or more physical devices which source and sink media streams, 148 and exactly one [RFC4353] Participant (which, in turn, includes 149 exactly one SIP User Agent). Endpoints can be anything from 150 multiscreen/multicamera room controllers to handheld devices. 152 MCU: Multipoint Control Unit (MCU) - a device that connects two or 153 more endpoints together into one single multimedia conference 154 [RFC5117]. An MCU may include a Mixer [RFC4353]. 156 Media: Any data that, after suitable encoding, can be conveyed over 157 RTP, including audio, video or timed text. 159 Media Capture: A "Media Capture", or simply "Capture", is a source 160 of Media. 162 Capture Encoding: A specific encoding of a Media Capture, to be sent 163 via RTP [RFC3550]. 165 Media Stream: The term "Media Stream", or simply "Stream", is used 166 as a synonymous of Capture Encoding. 168 Media Provider: A CLUE Participant (i.e., an Endpoint or an MCU) 169 able to send Media Streams. 171 Media Consumer: A CLUE Participant (i.e., an Endpoint or an MCU) 172 able to receive Media Streams. 174 3. Overview of the CLUE protocol 176 The CLUE protocol is conceived to enable CLUE telepresence sessions. 177 It is designed in order to address SDP limitations in terms of the 178 description of some information about the multimedia streams that are 179 involved in a real-time multimedia conference. Indeed, by simply 180 using SDP we are not able to convey information about the features of 181 the flowing multimedia streams that are needed to enable a "being 182 there" rendering experience. Such information is designed in the 183 CLUE framework document and formally defined and described in the 184 CLUE data model document. The CLUE protocol represents the mechanism 185 for the exchange of CLUE information between CLUE Participants. It 186 mainly provides the messages to enable a Media Provider to advertise 187 its telepresence capabilities and to enable a Media Consumer to 188 select the desired telepresence options. 190 The CLUE protocol, as defined in the following, is a stateful, 191 client-server, XML-based application protocol. CLUE protocol 192 messages flow on a realiable and ordered SCTP over DTLS transport 193 channel connecting two CLUE Participants. Messages carry information 194 taken from the XML-based CLUE data model 195 ([I-D.ietf-clue-data-model-schema]). Three main communication layers 196 can be identified: 198 1. Establishment of the CLUE data channel: in this phase, the CLUE 199 data channel setup takes place. If it completes successfully, 200 the CPs are able to communicate and start the initiation phase. 202 2. Negotiation of the CLUE protocol version and options (initiation 203 phase): the CPs connected via the CLUE data channel agree on the 204 version and on the options to be used during the telepresence 205 session. Special CLUE messages are used for such a task (OPTIONS 206 and OPTIONS RESPONSE). The version and options negotiation can 207 be performed once and only at this stage. At the end of that 208 basic negotiation, each CP starts its activity as a CLUE MP 209 and/or CLUE MC. 211 3. CLUE telepresence capabilities description and negotiation: in 212 this phase, the MP-MC dialogues take place on the data channel by 213 means of the CLUE protocol messages. 215 As soon as the channel is ready, the CLUE Participants must agree on 216 the protocol version and extensions to be used within the 217 telepresence session. CLUE protocol version numbers are 218 characterized by a major version number and a minor version number, 219 both unsigned integers, separated by a dot. While minor version 220 numbers denote backward compatible changes in the context of a given 221 major version, different major version numbers generally indicate a 222 lack of interoperability between the protocol implementations. In 223 order to correctly establish a CLUE dialogue, the involved CPs MUST 224 have in common a major version number (see Section 7 for further 225 details). The subset of the protocol options and extensions that are 226 allowed within the CLUE session is also determined in the initiation 227 phase, such subset being the one including only the options that are 228 supported by both parties. A mechanism for the negotiation of the 229 CLUE protocol version and extensions is envisioned in the initiation 230 phase. According to such a solution, the CP which is the CLUE 231 Channel initiator (CI) issues a proper CLUE message (OPTIONS) to the 232 CP which is the Channel Receiver (CR) specifying the supported 233 version and extensions. The CR then answers by selecting the subset 234 of the CI extensions that it is able to support and determines the 235 protocol version to be used. 237 After that negotiation phase is completed, CLUE Participants describe 238 and agree on the media flows to be exchanged. Indeed, being CPs A 239 and B both transmitting and receiving, it is possible to distinguish 240 between two dialogues: 242 1. the one needed to describe and set up the media streams sent from 243 A to B, i.e., the dialogue between A's Media Provider side and 244 B's Media Consumer side 246 2. the one needed to describe and set up the media streams sent from 247 B to A, i.e., the dialogue between B's Media Provider side and 248 A's Media Consumer side 250 CLUE messages for the media session description and negotiation are 251 designed by considering the MP side as the server side of the 252 protocol, since it produces and provides media streams, and the MC 253 side as the client side of the protocol, since it requests and 254 receives media streams. The messages that are exchanged to set up 255 the telepresence media session are described by focusing on a single 256 MP-MC dialogue. 258 The MP first advertises its available media captures and encoding 259 capabilities to the MC, as well as its simultaneity constraints, 260 according to the information model defined in 261 [I-D.ietf-clue-framework]. The CLUE message conveying the MP's 262 multimedia offer is the ADVERTISEMENT message. Such message 263 leverages the XML data model definitions provided in 264 [I-D.ietf-clue-data-model-schema]. 266 The MC selects the desired streams of the MP by using the CONFIGURE 267 message, which makes reference to the information carried in the 268 previously received ADVERTISEMENT. 270 Besides ADVERTISEMENT and CONFIGURE, other messages have been 271 conceived in order to provide all the needed mechanisms and 272 operations. Such messages will be detailed in the following 273 sections. 275 4. Protocol messages 277 CLUE protocol messages are textual, XML-based messages that enable 278 the configuration of the telepresence session. The formal definition 279 of such messages is provided in the XML Schema provided at the end of 280 this document (Section 9). 282 The XML definitions of the CLUE information provided in 283 [I-D.ietf-clue-data-model-schema] are included within some CLUE 284 protocol messages (namely the ADVERTISEMENT and the CONFIGURE 285 messages), in order to use the concepts defined in 286 [I-D.ietf-clue-framework]. 288 The CLUE protocol messages are the following: 290 o OPTIONS 292 o OPTIONS RESPONSE 293 o ADVERTISEMENT (ADV) 295 o ADVERTISEMENT ACKNOWLEDGEMENT (ACK) 297 o CONFIGURE (CONF) 299 o CONFIGURE RESPONSE (CONF RESPONSE) 301 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 302 initiation phase between the CPs, the other messages are involved in 303 MP-MC dialogues. 305 Each CLUE message inherits a basic structure depicted in the 306 following excerpt: 308 309 310 311 312 313 314 315 316 318 319 320 321 322 323 325 The basic structure determines the mandatory information that is 326 carried within each CLUE message. Such an information is made by: 328 o clueId: an XML element containing the identifier of the CP within 329 the telepresence system; 331 o sequenceNr: an XML element containing the local message sequence 332 number; 334 o protocol: a mandatory attribute set to "CLUE", identifying the 335 procotol the messages refer to; 337 o v: a mandatory attribute carrying the version of the protocol. 338 The content of the "v" attribute is composed by the major version 339 number followed by a dot and then by the minor version number of 340 the CLUE protocol in use. Allowed values are of this kind: "1.3", 341 "2.45", etc. 343 Each CP should manage up to three streams of sequence numbers: (i) 344 one for the messages exchanged in the initiation phase, (ii) one for 345 the messages exchanged as MP, and (iii) one for the messages 346 exchanged as MC. 348 4.1. OPTIONS 350 The OPTIONS message is sent by the CP which is the CI to the CP which 351 is the CR as soon as the CLUE data channel is ready. Besides the 352 information envisioned in the basic structure, it specifies: 354 o mediaProvider: a mandatory boolean field set to "true" if the CP 355 is able to act as a MP 357 o mediaConsumer: a mandatory boolean field set to "true" if the CP 358 is able to act as a MC 360 o supportedVersions: the list of the supported versions 362 o supportedOptions: the list of the supported options 364 The XML Schema of such a message is reported below: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 382 383 384 385 387 388 389 390 392 393 394 395 397 398 399 400 402 403 404 405 406 407 408 409 410 411 412 contains the list of the versions that are 413 supported by the CI, each one represented in a child 414 element. The content of each element is a string made by 415 the major version number followed by a dot and then by the minor 416 version number (e.g., 1.3 or 2.43). Only one element 417 SHOULD be provided for each major version supported, containing the 418 maximum minor version number of such a version, since all minor 419 versions are backward compatible. If no is 420 carried whithin the OPTIONS message, the CI supports only the version 421 declared in the "v" attribute and all the versions having the same 422 major version number and lower minor version number. For example, if 423 the "v" attribute has a value of "3.4" and there is no 424 tag in the OPTIONS message, it means the CI 425 supports only major version 3 with all the minor versions comprised 426 between 3.0 and 3.4, with version 3.4 included. If a 427 is provided, at least one tag MUST be 428 included. 430 The element specifies the list of options 431 supported by the CI. If there is no in the 432 OPTIONS message, the CI does not support anything other than what is 433 envisioned in the versions it supports. For each option, an