idnits 2.17.1 draft-ietf-clue-protocol-13.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 3 instances of too long lines in the document, the longest one being 6 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 1017 has weird spacing: '... | sent retr...' == Line 1019 has weird spacing: '...expired v ...' -- The document date (February 23, 2017) is 2619 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: '1-9' is mentioned on line 1291, but not defined == Missing Reference: '0-9' is mentioned on line 1291, but not defined == Outdated reference: A later version (-18) exists of draft-ietf-clue-datachannel-14 ** Downref: Normative reference to an Experimental draft: draft-ietf-clue-datachannel (ref. 'I-D.ietf-clue-datachannel') == Outdated reference: A later version (-15) exists of draft-ietf-clue-signaling-10 ** Downref: Normative reference to an Experimental draft: draft-ietf-clue-signaling (ref. 'I-D.ietf-clue-signaling') ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) Summary: 4 errors (**), 0 flaws (~~), 7 warnings (==), 1 comment (--). 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: August 27, 2017 February 23, 2017 7 CLUE protocol 8 draft-ietf-clue-protocol-13 10 Abstract 12 The CLUE protocol is an application protocol conceived for the 13 description and negotiation of a telepresence session. The design of 14 the CLUE protocol takes into account the requirements and the 15 framework defined within the IETF CLUE working group. A companion 16 document delves into CLUE signaling details, as well as on the SIP/ 17 SDP session establishment phase. CLUE messages flow over the CLUE 18 data channel, based on reliable and ordered SCTP over DTLS transport. 19 Message details, together with the behavior of CLUE Participants 20 acting as Media Providers and/or Media Consumers, are herein 21 discussed. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on August 27, 2017. 40 Copyright Notice 42 Copyright (c) 2017 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4 60 4. Overview of the CLUE protocol . . . . . . . . . . . . . . . . 4 61 5. Protocol messages . . . . . . . . . . . . . . . . . . . . . . 7 62 5.1. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 9 63 5.2. OPTIONS RESPONSE . . . . . . . . . . . . . . . . . . . . 11 64 5.3. ADVERTISEMENT . . . . . . . . . . . . . . . . . . . . . . 12 65 5.4. ADVERTISEMENT ACKNOWLEDGEMENT . . . . . . . . . . . . . . 13 66 5.5. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 13 67 5.6. CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . 14 68 5.7. Response codes and reason strings . . . . . . . . . . . . 15 69 6. Protocol state machines . . . . . . . . . . . . . . . . . . . 17 70 6.1. Media Provider's state machine . . . . . . . . . . . . . 19 71 6.2. Media Consumer's state machine . . . . . . . . . . . . . 23 72 7. Versioning . . . . . . . . . . . . . . . . . . . . . . . . . 26 73 8. Extensions . . . . . . . . . . . . . . . . . . . . . . . . . 26 74 8.1. Extension example . . . . . . . . . . . . . . . . . . . . 28 75 9. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . 30 76 10. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 34 77 10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . 35 78 10.2. ADV with MCCs . . . . . . . . . . . . . . . . . . . . . 42 79 11. Security Considerations . . . . . . . . . . . . . . . . . . . 52 80 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 81 12.1. URN Sub-Namespace Registration . . . . . . . . . . . . . 54 82 12.2. XML Schema registration . . . . . . . . . . . . . . . . 54 83 12.3. MIME Media Type Registration for 'application/clue+xml' 55 84 12.4. CLUE Protocol Registry . . . . . . . . . . . . . . . . . 56 85 12.4.1. CLUE Message Types . . . . . . . . . . . . . . . . . 56 86 12.4.2. CLUE Response Codes . . . . . . . . . . . . . . . . 57 87 13. Diff with draft-ietf-clue-protocol-12 . . . . . . . . . . . . 59 88 14. Diff with draft-ietf-clue-protocol-06 . . . . . . . . . . . . 59 89 15. Diff with draft-ietf-clue-protocol-05 . . . . . . . . . . . . 59 90 16. Diff with draft-ietf-clue-protocol-04 . . . . . . . . . . . . 59 91 17. Diff with draft-ietf-clue-protocol-03 . . . . . . . . . . . . 59 92 18. Diff with draft-ietf-clue-protocol-02 . . . . . . . . . . . . 59 93 19. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 60 94 20. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 60 95 21. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 60 96 22. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 61 97 23. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 61 98 24. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 61 99 25. References . . . . . . . . . . . . . . . . . . . . . . . . . 61 100 25.1. Normative References . . . . . . . . . . . . . . . . . . 61 101 25.2. Informative References . . . . . . . . . . . . . . . . . 62 102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 63 104 1. Introduction 106 The CLUE protocol is an application protocol used by two CLUE 107 Participants to enhance the experience of a multimedia telepresence 108 session. The main goals of the CLUE protocol are: 110 1. enabling a Media Provider (MP) to properly announce its current 111 telepresence capabilities to a Media Consumer (MC) in terms of 112 available media captures, groups of encodings, simultaneity 113 constraints and other information defined in 114 [I-D.ietf-clue-framework]; 116 2. enabling an MC to request the desired multimedia streams from the 117 offering MP. 119 CLUE-capable endpoints are connected by means of the CLUE data 120 channel, an SCTP over DTLS channel which is opened and established as 121 described in [I-D.ietf-clue-signaling] and 122 [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing over 123 such a channel are detailed in this document, both syntactically and 124 semantically. 126 In Section 4 we provide a general overview of the CLUE protocol. 127 CLUE protocol messages are detailed in Section 5. The CLUE Protocol 128 state machines are introduced in Section 6. Versioning and 129 extensions are discussed in Section 7 and Section 8, respectively. 130 The XML schema defining the CLUE messages is reported in Section 9. 132 2. Terminology 134 This document refers to the same terminology used in 135 [I-D.ietf-clue-framework] and in [RFC7262]. We briefly recall herein 136 some of the main terms used in the document. The definition of "CLUE 137 Participant" herein proposed is not imported from any of the above 138 documents. 140 CLUE Participant (CP): An entity able to use the CLUE protocol 141 within a telepresence session. It can be an endpoint or an MCU 142 able to use the CLUE protocol. 144 CLUE-capable device: A device that supports the CLUE data channel 145 [I-D.ietf-clue-datachannel], the CLUE protocol and the principles 146 of CLUE negotiation, and seeks CLUE-enabled calls. 148 Endpoint: The logical point of final termination through receiving, 149 decoding and rendering, and/or initiation through capturing, 150 encoding, and sending of media streams. An endpoint consists of 151 one or more physical devices which source and sink media streams, 152 and exactly one Participant (e.g., a [RFC4353] participant). 153 Endpoints can be anything from multiscreen/multicamera room 154 controllers to handheld devices. 156 MCU: Multipoint Control Unit (MCU) - a device that connects two or 157 more endpoints together into one single multimedia conference 158 [RFC7667]. An MCU may include a Mixer [RFC4353]. 160 Media: Any data that, after suitable encoding, can be conveyed over 161 RTP, including audio, video or timed text. 163 Media Capture: A "Media Capture", or simply "Capture", is a source 164 of Media. 166 Media Consumer (MC): A CLUE Participant (i.e., an Endpoint or an 167 MCU) able to receive Media Streams. 169 Capture Encoding: A specific encoding of a Media Capture, to be sent 170 via RTP [RFC3550]. 172 Media Provider (MP): A CLUE Participant (i.e., an Endpoint or an 173 MCU) able to send Media Streams. 175 Media Stream: The term "Media Stream", or simply "Stream", is used 176 as a synonym of Capture Encoding. 178 3. Conventions 180 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 181 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 182 document are to be interpreted as described in BCP 14, RFC 2119 183 [RFC2119]. 185 4. Overview of the CLUE protocol 187 The CLUE protocol is conceived to enable CLUE telepresence sessions. 188 It is designed in order to address SDP limitations in terms of the 189 description of some information about the multimedia streams that are 190 involved in a real-time multimedia conference. Indeed, by simply 191 using SDP it is not possible to convey information about the features 192 of the flowing multimedia streams that are needed to enable a "being 193 there" rendering experience. Such information is contained in the 194 CLUE framework document and formally defined and described in the 195 CLUE data model document. The CLUE protocol represents the mechanism 196 for the exchange of CLUE information between CLUE Participants. It 197 mainly provides the messages to enable a Media Provider to advertise 198 its telepresence capabilities and to enable a Media Consumer to 199 select the desired telepresence options. 201 The CLUE protocol, as defined in the following, is a stateful, 202 client-server, XML-based application protocol. CLUE protocol 203 messages flow on a reliable and ordered SCTP over DTLS transport 204 channel connecting two CLUE Participants. Messages carry information 205 taken from the XML-based CLUE data model 206 ([I-D.ietf-clue-data-model-schema]). Three main communication phases 207 can be identified: 209 1. Establishment of the CLUE data channel: in this phase, the CLUE 210 data channel setup takes place. If it completes successfully, 211 the CPs are able to communicate and start the initiation phase. 213 2. Negotiation of the CLUE protocol version and extensions 214 (initiation phase): the CPs connected via the CLUE data channel 215 agree on the version and on the extensions to be used during the 216 telepresence session. Special CLUE messages are used for such a 217 task (OPTIONS and OPTIONS RESPONSE). The version and extensions 218 negotiation can be performed once during the CLUE session and 219 only at this stage. At the end of that basic negotiation, each 220 CP starts its activity as a CLUE MP and/or CLUE MC. 222 3. CLUE telepresence capabilities description and negotiation: in 223 this phase, the MP-MC dialogues take place on the data channel by 224 means of the CLUE protocol messages. 226 As soon as the channel is ready, the CLUE Participants must agree on 227 the protocol version and extensions to be used within the 228 telepresence session. CLUE protocol version numbers are 229 characterized by a major version number (single digit) and a minor 230 version number (single digit), both unsigned integers, separated by a 231 dot. While minor version numbers denote backward compatible changes 232 in the context of a given major version, different major version 233 numbers generally indicate a lack of interoperability between the 234 protocol implementations. In order to correctly establish a CLUE 235 dialogue, the involved CPs MUST have in common a major version number 236 (see Section 7 for further details). The subset of the extensions 237 that are allowed within the CLUE session is also determined in the 238 initiation phase, such subset being the one including only the 239 extensions that are supported by both parties. A mechanism for the 240 negotiation of the CLUE protocol version and extensions is part of 241 the initial phase. According to such a solution, the CP which is the 242 CLUE Channel initiator (CI) issues a proper CLUE message (OPTIONS) to 243 the CP which is the Channel Receiver (CR) specifying the supported 244 version and extensions. The CR then answers by selecting the subset 245 of the CI extensions that it is able to support and determines the 246 protocol version to be used. 248 After the negotiation phase is completed, CLUE Participants describe 249 and agree on the media flows to be exchanged. In many cases CPs will 250 seek to both transmit and receive media. Hence in a call between two 251 CPs, A and B, there would be two separate dialogs, as follows: 253 1. the one needed to describe and set up the media streams sent from 254 A to B, i.e., the dialogue between A's Media Provider side and 255 B's Media Consumer side 257 2. the one needed to describe and set up the media streams sent from 258 B to A, i.e., the dialogue between B's Media Provider side and 259 A's Media Consumer side 261 CLUE messages for the media session description and negotiation are 262 designed by considering the MP side as the server side of the 263 protocol, since it produces and provides media streams, and the MC 264 side as the client side of the protocol, since it requests and 265 receives media streams. The messages that are exchanged to set up 266 the telepresence media session are described by focusing on a single 267 MP-MC dialogue. 269 The MP first advertises its available media captures and encoding 270 capabilities to the MC, as well as its simultaneity constraints, 271 according to the information model defined in 272 [I-D.ietf-clue-framework]. The CLUE message conveying the MP's 273 multimedia offer is the ADVERTISEMENT message. Such message 274 leverages the XML data model definitions provided in 275 [I-D.ietf-clue-data-model-schema]. 277 The MC selects the desired streams of the MP by using the CONFIGURE 278 message, which makes reference to the information carried in the 279 previously received ADVERTISEMENT. 281 Besides ADVERTISEMENT and CONFIGURE, other messages have been 282 conceived in order to provide all the needed mechanisms and 283 operations. Such messages are detailed in the following sections. 285 5. Protocol messages 287 CLUE protocol messages are textual, XML-based messages that enable 288 the configuration of the telepresence session. The formal definition 289 of such messages is provided in the XML Schema provided at the end of 290 this document (Section 9). 292 The XML definitions of the CLUE information provided in 293 [I-D.ietf-clue-data-model-schema] are included within some CLUE 294 protocol messages (namely the ADVERTISEMENT and the CONFIGURE 295 messages), in order to use the concepts defined in 296 [I-D.ietf-clue-framework]. 298 The CLUE protocol messages are the following: 300 o OPTIONS 302 o OPTIONS RESPONSE 304 o ADVERTISEMENT (ADV) 306 o ADVERTISEMENT ACKNOWLEDGEMENT (ACK) 308 o CONFIGURE (CONF) 310 o CONFIGURE RESPONSE (CONF RESPONSE) 312 While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the 313 initiation phase between the CPs, the other messages are involved in 314 MP-MC dialogues. 316 Each CLUE message inherits a basic structure depicted in the 317 following excerpt: 319 320 321 322 323 324 325 327 328 330 331 332 333 334 335 337 The information contained in each CLUE message is: 339 o clueId: an optional XML element containing the identifier (in the 340 form of a generic string) of the CP within the telepresence 341 system; 343 o sequenceNr: an XML element containing the local message sequence 344 number. The sender must increment the sequence numbers by one for 345 each new message sent, the receiver must remember the most recent 346 sequence number received and send back a 402 error if it receives 347 a message with an unexpected sequence number. The initial 348 sequence number can be chosen randomly by each party; 350 o protocol: a mandatory attribute set to "CLUE", identifying the 351 procotol the messages refer to; 353 o v: a mandatory attribute carrying the version of the protocol. 354 The content of the "v" attribute is composed by the major version 355 number followed by a dot and then by the minor version number of 356 the CLUE protocol in use. Allowed values are of this kind are, 357 e.g., "1.3", "2.4" etc. 359 Each CP is responsible for creating and updating up to three 360 independent streams of sequence numbers in messages it sends: (i) one 361 for the messages sent in the initiation phase, (ii) one for the 362 messages sent as MP (if it is acting as a MP), and (iii) one for the 363 messages sent as MC (if it is acting as a MC). 365 5.1. OPTIONS 367 The OPTIONS message is sent by the CP which is the CI to the CP which 368 is the CR as soon as the CLUE data channel is ready. Besides the 369 information envisioned in the basic structure, it specifies: 371 o mediaProvider: a mandatory boolean field set to "true" if the CP 372 is able to act as a MP 374 o mediaConsumer: a mandatory boolean field set to "true" if the CP 375 is able to act as a MC 377 o supportedVersions: the list of the supported versions 379 o supportedExtensions: the list of the supported extensions 381 The XML Schema of such a message is reported below: 383 384 385 386 387 388 389 390 392 394 395 396 397 398 399 401 402 403 404 406 407 408 409 411 412 413 414 416 417 418 419 421 422 423 424 425 426 427 428 429 430 432 contains the list of the versions that are 433 supported by the CI, each one represented in a child 434 element. The content of each element is a string made by 435 the major version number followed by a dot and then by the minor 436 version number (e.g., 1.3 or 2.4). Exactly one element 437 MUST be provided for each major version supported, containing the 438 maximum minor version number of such a version, since all minor 439 versions are backward compatible. If no is 440 carried within the OPTIONS message, the CI supports only the version 441 declared in the "v" attribute and all the versions having the same 442 major version number and lower minor version number. For example, if 443 the "v" attribute has a value of "3.4" and there is no 444 tag in the OPTIONS message, it means the CI 445 supports only major version 3 with all the minor versions comprised 446 between 3.0 and 3.4, with version 3.4 included. If a 447 is provided, at least one tag MUST be 448 included. 450 The element specifies the list of extensions 451 supported by the CI. If there is no in the 452 OPTIONS message, the CI does not support anything other than what is 453 envisioned in the versions it supports. For each extension, an 454 element is provided. An extension is characterized by a 455 name, an XML schema of reference where the extension is defined, and 456 the version of the protocol which the extension refers to. 458 5.2. OPTIONS RESPONSE 460 The OPTIONS RESPONSE is sent by a CR to a CI as a reply to the 461 OPTIONS message. As depicted in the figure below, the OPTIONS 462 RESPONSE contains a mandatory response code and a reason string 463 indicating the processing result of the OPTIONS message. If the 464 responseCode is of the type 2xx the response MUST also include 465 , , and 466 elements; it MAY include them for any other response code. 467 and elements are associated with the 468 supported roles (in terms of, respectively MP and MC), similarly to 469 what the CI does in the OPTIONS message. The field 470 indicates the highest commonly supported version number. The content 471 of the element MUST be a string made of the major version 472 number followed by a dot and then by the minor version number (e.g., 473 1.3 or 2.4). Finally, the commonly supported extensions are copied 474 in the field. 476 477 478 479 480 481 482 483 484 485 486 487 489 490 491 492 493 495 Upon reception of the OPTIONS RESPONSE the version to be used is 496 provided in the tag of the message. The following CLUE 497 messages MUST use such a version number in the "v" attribute. The 498 allowed extensions in the CLUE dialogue are those indicated in the 499 of the OPTIONS RESPONSE message. 501 5.3. ADVERTISEMENT 503 The ADVERTISEMENT message (ADV) is used by the MP to advertise the 504 available media captures and related information to the MC. The MP 505 sends an ADV to the MC as soon as it is ready after the successful 506 completion of the initiation phase, i.e., as soon as the version and 507 the extensions of the CLUE protocol are agreed between the CPs. 508 During a single CLUE session, an MP may send new ADV messages to 509 replace the previous advertisement, if, for instance, its CLUE 510 telepresence media capabilities change mid-call. A new ADV 511 completely replaces the previous ADV. 513 The ADV structure is defined in the schema excerpt below. The ADV 514 contains elements compliant with the CLUE data model that 515 characterize the MP's telepresence offer. Namely, such elements are: 516 the list of the media captures (), of the encoding 517 groups (), of the capture scenes (), 518 of the simultaneous sets (), of the global views 519 (), and of the represented participants (). 520 Each of them is fully described in the CLUE framework document and 521 formally defined in the CLUE data model document. 523 524 525 526 527 528 529 530 531 532 533 535 537 538 539 540 541 542 543 545 5.4. ADVERTISEMENT ACKNOWLEDGEMENT 547 The ADVERTISEMENT ACKNOWLEDGEMENT message (ACK) is sent by a MC to a 548 MP to acknowledge an ADV message. As it can be seen from the message 549 schema provided in the following, the ACK contains a response code 550 and a reason string for describing the processing result of the ADV. 551 The carries the sequence number of the ADV the ACK 552 refers to. 554 555 556 557 558 559 560 561 562 563 564 565 566 567 569 5.5. CONFIGURE 571 The CONFIGURE message (CONF) is sent from a MC to a MP to list the 572 advertised captures the MC wants to receive. The MC can send a CONF 573 after the reception of an ADV or each time it wants to request other 574 captures that have been previously advertised by the MP. The content 575 of the CONF message is shown below. 577 578 579 580 581 582 583 584 585 587 588 589 590 591 592 594 The element contains the sequence number of the ADV 595 message the CONF refers to. 597 The optional boolean element, set to "true" when present, 598 indicates that the CONF message also acknowledges with success the 599 referred advertisement (CONF + ACK message), by applying in that way 600 a piggybacking mechanism for simultaneously acknowledging and 601 replying to the ADV message. The element MUST NOT be present 602 if an ACK message has been already sent back to the MP. 604 The most important content of the CONFIGURE message is the list of 605 the capture encodings provided in the element. 606 Such an element contains a sequence of capture encodings, 607 representing the streams to be instantiated. 609 5.6. CONFIGURE RESPONSE 610 611 612 613 614 615 616 617 618 619 620 621 622 623 625 The CONFIGURE RESPONSE message (CONF RESPONSE) is sent from the MP to 626 the MC to communicate the processing result of requests carried in 627 the previously received CONF message. It contains a response code 628 with a reason string indicating either the success or the failure 629 (along with failure details) of a CONF request processing. 630 Following, the field contains the sequence number of 631 the CONF message the response refers to. There is no partial 632 execution of commands. As an example, if a MP is able to understand 633 all the selected capture encodings except one, then the whole command 634 fails and nothing is instantiated. 636 5.7. Response codes and reason strings 638 Response codes are defined as a sequence of three digits. A well- 639 defined meaning is associated with the first digit. Response codes 640 beginning with "2" are associated with successful responses. 641 Response codes beginning with "1" will represent a delayed or 642 incomplete response. Response codes that do not begin with either 643 "2" or "1" indicate an error response, i.e., that an error occurred 644 while processing a CLUE request. In particular, response codes 645 beginning with "3" indicate problems with the XML content of the 646 message (""Bad syntax", "Invalid value", etc.), while response codes 647 beginning with "4" refer to problems related to CLUE protocol 648 semantics ("Invalid sequencing", "Version not supported", etc.). 649 100, 200, 300 and 400 codes are considered catch-alls. Further 650 response codes can be either defined in future versions of the 651 protocol (by adding them to the related IANA registry), or defined by 652 leveraging the extension mechanism. In both cases, the new response 653 codes MUST be registered with IANA. Such new response codes MUST NOT 654 overwrite the ones here defined and they MUST respect the semantics 655 of the first code digit. 657 The response codes and strings defined for use with CLUE are as 658 follows: 660 +-----------------+----------------------+--------------------------+ 661 | | | | 662 | Response code | Reason string | Description | 663 | | | | 664 +-----------------+----------------------+--------------------------+ 665 | | | | 666 | 200 | Success | The request has been | 667 | | | successfully processed. | 668 | | | | 669 +-----------------+----------------------+--------------------------+ 670 | | | | 671 | 300 | Syntax errors or | The XML syntax of the | 672 | | inconsistencies | message is not correct | 673 | | | or there are invalid | 674 | | | values. | 675 +-----------------+----------------------+--------------------------+ 676 | | | | 677 | 301 | Bad syntax | The XML syntax of the | 678 | | | message is not correct. | 679 +-----------------+----------------------+--------------------------+ 680 | | | | 681 | 302 | Invalid value | The message | 682 | | | contains an invalid | 683 | | | parameter value. | 684 +-----------------+----------------------+--------------------------+ 685 | | | | 686 | 303 | Conflicting values | The message | 687 | | | contains values that | 688 | | | cannot be used together.| 689 +-----------------+----------------------+--------------------------+ 690 | | | | 691 | 400 | Semantic errors | Semantic errors in the | 692 | | | received CLUE protocol | 693 | | | message. | 694 | | | | 695 +-----------------+----------------------+--------------------------+ 696 | | | | 697 | 401 | Version not supported| The protocol version | 698 | | | used in the message | 699 | | | is not supported. | 700 | | | | 701 +-----------------+----------------------+--------------------------+ 702 | | | | 703 | 402 | Invalid sequencing | The sequence number of | 704 | | | the message is out | 705 | | | of date. | 706 +-----------------+----------------------+--------------------------+ 707 | | | | 708 | 403 | Invalid identifier | The identifier used in | 709 | | | the message is | 710 | | | not valid or unknown. | 711 +-----------------+----------------------+--------------------------+ 712 | | | | 713 | 404 | ADV Expired | The number of the ADV | 714 | | | the CONF refers to is | 715 | | | out of date. | 716 +-----------------+----------------------+--------------------------+ 717 | | | | 718 | 405 | Subset choice not | The subset choice is not| 719 | | allowed | allowed for the specified| 720 | | | MCC | 721 +-----------------+----------------------+--------------------------+ 723 6. Protocol state machines 725 The CLUE protocol is an application protocol used between two CPs in 726 order to properly configure a multimedia telepresence session. CLUE 727 protocol messages flow over the CLUE Data Channel, a DTLS/SCTP 728 channel established as depicted in [I-D.ietf-clue-datachannel]. We 729 herein discuss the state machines associated, respectively, with the 730 CLUE Participant, with the MC process and with the MP process. 731 Endpoints often wish to both send and receive media, i.e., act as 732 both MP and MC. As such there will often be two sets of messages 733 flowing in opposite directions; the state machines of these two flows 734 do not interact with each other. Only the CLUE application logic is 735 considered. The interaction of CLUE protocol and SDP negotiations 736 for the media streams exchanged is treated in 737 [I-D.ietf-clue-signaling]. 739 The main state machines focus on the behavior of the CLUE Participant 740 (CP) acting as a CLUE channel initiator/receiver (CI/CR). 742 The initial state is the IDLE one. When in the IDLE state, the CLUE 743 data channel is not established and no CLUE-controlled media are 744 exchanged between the two considered CLUE-capable devices (if there 745 is an ongoing exchange of media streams, such media streams are not 746 currently CLUE-controlled). 748 When the CLUE data channel set up starts ("start channel"), the CP 749 moves from the IDLE state to the CHANNEL SETUP state. 751 If the CLUE data channel is successfully set up ("channel 752 established"), the CP moves from the CHANNEL SETUP state to the 753 OPTIONS state. Otherwise if "channel error", it moves back to the 754 IDLE state. The same transition happens if the CLUE-enabled 755 telepresence session ends ("session ends"), i.e., when an SDP 756 negotiation for removing the CLUE channel is performed. 758 When in the OPTIONS state, the CP addresses the initiation phase 759 where both parts agree on the version and on the extensions to be 760 used in the subsequent CLUE messages exchange phase. If the CP is 761 the Channel Initiator (CI), it sends an OPTIONS message and waits for 762 the OPTIONS RESPONSE message. If the CP is the Channel Receiver 763 (CR), it waits for the OPTIONS message and, as soon as it arrives, 764 replies with the OPTIONS RESPONSE message. If the negotiation is 765 successfully completed ("OPTIONS phase success"), the CP moves from 766 the OPTIONS state to the ACTIVE state. If the initiation phase fails 767 ("OPTIONS phase failure"), the CP moves from the OPTIONS state to the 768 IDLE state. The initiation phase might fail because of one of the 769 following reasons: 771 1. the CI receives an OPTIONS RESPONSE with an error response code 773 2. the CI does not receive any OPTIONS RESPONSE and a timeout error 774 is raised 776 3. the CR does not receive any OPTIONS and a timeout error is raised 778 When in the ACTIVE state, the CP starts the envisioned sub-state 779 machines (i.e., the MP state machine and the MC state machine) 780 according to the roles it plays in the telepresence sessions. Such 781 roles have been previously declared in the OPTIONS and OPTIONS 782 RESPONSE messages involved in the initiation phase (see OPTIONS 783 sections Section 5.1 and Section 5.2 for the details). When in the 784 ACTIVE state, the CP delegates the sending and the processing of the 785 CLUE messages to the appropriate MP/MC sub-state machines. If the CP 786 receives a further OPTIONS/OPTIONS RESPONSE message, it MUST ignore 787 the message and stay in the ACTIVE state. 789 The CP moves from the ACTIVE state to the IDLE one when the sub-state 790 machines that have been activated are (both) in the relative 791 TERMINATED state (see sections Section 6.1 and Section 6.2). 793 +----+ 794 +---------------------->|IDLE|<----------------------------+ 795 | +-+--+ | 796 | | | 797 | | start | 798 | | channel | 799 | v | 800 | channel error/ +--------+ | 801 | session ends | CHANNEL| | 802 +----------------------+ SETUP | | 803 | +--+-----+ | 804 | | | 805 | | channel | 806 | | established | 807 | channel error/ v OPTIONS phase | 808 | session ends +-------+ failure | 809 +-----------------------+OPTIONS+--------------------------+ 810 | +-+-----+ | 811 | | | 812 | | OPTIONS phase | 813 | | success | 814 | v | 815 | channel error/ +---------+ | 816 | session ends | ACTIVE | | 817 +----------------------+ | | 818 | +----+ +------------------+ | 819 | | MP | | send/receive | | 820 | +----+ | CLUE messages | | 821 | |<-----------------+ | 822 | +----+ | | 823 | | MC | |both sub state machines | 824 | +----+ |terminated | 825 | | | 826 +---------+-------------------------+ 828 6.1. Media Provider's state machine 830 As soon as the sub-state machine of the MP is activated, it is in the 831 ADV state. In the ADV state, the MP prepares the ADV message 832 reflecting its actual telepresence capabilities. 834 After the ADV has been sent ("ADV sent"), the MP moves from the ADV 835 state to the WAIT FOR ACK state. If an ACK message with a successful 836 response code arrives ("ACK received"), the MP moves to the WAIT FOR 837 CONF state. If a NACK arrives (i.e., an ACK message with an error 838 response code), and the number of NACKs for the issued ADV is under 839 the retry threshold ("NACK received && retry not expired"), the MP 840 moves back to the ADV state for preparing a new ADV. If a NACK 841 arrives and the number of received NACKs for that ADV overcomes the 842 threshold ("NACK received && retry expired"), the MP goes to the MP- 843 TERMINATED state. The same happens if the waiting time for the ACK 844 is fired a number of times under the retry threshold ("timeout && 845 retry not expired"): also in this case, the MP goes back to the ADV 846 state to send a new copy of the ADV. If the number of retries 847 overcomes the threshold ("timeout && retry expired"), the MP moves 848 from the WAIT FOR ACK state to the MP-TERMINATED state. When in the 849 WAIT FOR ACK state, if a CONFIGURE message with the element set 850 to TRUE arrives ("CONF+ACK received"), the MP goes directly to the 851 CONF RESPONSE state. CONF+ACK messages referring to out-of-date 852 (i.e., having a sequence number equal to or less than the highest 853 seen so far) ADVs MUST be ignored, i.e., they do not trigger any 854 state transition. If the telepresence settings of the MP change 855 while in the WAIT FOR ACK state ("changed telepresence settings"), 856 the MP switches from the WAIT FOR ACK state to the ADV state to 857 create a new ADV. 859 When in the WAIT FOR CONF state, the MP listens to the channel for a 860 CONF request coming from the MC. If a CONF arrives ("CONF 861 received"), the MP switches to the CONF RESPONSE state. If the CONF 862 does not arrive within the timeout interval and the retry threshold 863 has not been overcome ("timeout && retry not expired"), the MP moves 864 back to the ADV state. When the retry expires ("timeout && retry 865 expired") the MP moves to the MP TERMINATED state. If the 866 telepresence settings change in the meanwhile ("changed telepresence 867 settings"), the MP moves from the WAIT FOR CONF back to the ADV state 868 to create the new ADV to be sent to the MC. 870 The MP in the CONF RESPONSE state processes the received CONF in 871 order to produce a CONF RESPONSE message. If the MP successfully 872 processes the MC's configuration, then it sends a 200 CONF RESPONSE 873 ("success CONF RESPONSE sent") and moves to the ESTABLISHED state. 874 If there are errors in the CONF processing, then the MP issues a CONF 875 RESPONSE carrying an error response code and, if under the retry 876 treshold ("error CONF RESPONSE sent && retry not expired"), it goes 877 back to the WAIT FOR CONF state to wait for a new configuration 878 request. If the number of trials exceeds the retry threshold ("error 879 CONF RESPONSE sent && retry expired"), the state MP TERMINATED is 880 reached. Finally, if there are changes in the MP's telepresence 881 settings ("changed telepresence settings"), the MP switches to the 882 ADV state. 884 The MP in the ESTABLISHED state has successfully negotiated the media 885 streams with the MC by means of the CLUE messages. If there are 886 changes in the MP's telepresence settings ("changed telepresence 887 settings"), the MP moves back to the ADV state. In the ESTABLISHED 888 state, the CLUE-controlled media streams of the session are those 889 described in the last successfully processed CONF message. 891 +------------------------->+-----+<---------------------------+ 892 | +------------>| ADV |<-------------------+ | 893 | | +-+---+ | |timeout 894 | | | NACK received | |&& 895 | | ADV sent| && | |retry 896 | | v retry not expired| |not 897 | changed| +--------+ | |expired 898 |telepresence+-------------+WAIT FOR+-----------------+ | 899 | settings| +---------+ ACK +-------------------------+ 900 | | |CONF+ACK +-+------+----------------------------------+ 901 | | |received | NACK received && | 902 | | | |ACK received retry expired,| 903 | | | v timeout && retry expired| 904 +------------|-------------+--------+ | 905 timeout +-------------+WAIT FOR| timeout && retry expired | 906 && | | | CONF +----------------------------------+ 907 retry | | +-+------+<-----------------------------+ | 908 not expired | | | | | 909 | | |CONF received | | 910 | | v error CONF RESPONSE sent| | 911 | +-------->+---------+ && retry not expired | | 912 +-------------+CONF |-----------------------------+ | 913 +--------------------->|RESPONSE +---------------------------------+ 914 | | +-+-------+ error CONF RESPONSE sent| 915 | | | && retry expired| 916 | | | success | 917 | | | CONF RESPONSE | 918 | | | sent | 919 | | | | 920 | | | | 921 |CONF | | | 922 |received| v | 923 | | +------------+ | 924 | +-------------+ESTABLISHED | | 925 +----------------------+------------+ | 926 | 927 | 928 | 929 +-----------+ | 930 ! MP | | 931 |TERMINATED | | 932 +-----------+<------------------------------+ 934 6.2. Media Consumer's state machine 936 As soon as the sub-state machine of the MC is activated, it is in the 937 WAIT FOR ADV state. An MC in the WAIT FOR ADV state is waiting for 938 an ADV coming from the MP. If the ADV arrives ("ADV received"), the 939 MC reaches the ADV PROCESSING state. Otherwise, the MC stays in the 940 WAIT FOR ADV state. 942 In the ADV PROCESSING state, the ADV is parsed by the MC. If the ADV 943 is successfully processed, there are two possibilities. According to 944 the first one, the MC issues a successful ACK message to the MP ("ACK 945 sent") and moves to the CONF state. In the second one, the MC 946 prepares and sends a CONF message with the field set to "true" 947 ("CONF+ACK sent") and goes directly to the WAIT FOR CONF RESPONSE 948 state. 950 If the ADV processing is unsuccessful (bad syntax, missing XML 951 elements, etc.), and the number of times this has happened is under 952 the retry threshold, the MC sends a NACK message (i.e., an ACK with 953 an error response code) to the MP and optionally further describes 954 the problem via a proper reason phrase. In this way ("NACK sent && 955 retry not expired"), the MC switches back to the WAIT FOR ADV state, 956 waiting for a new ADV. If the NACK retry expires ("NACK sent && 957 retry expired"), the MC moves to the MC TERMINATED state. 959 When in the CONF state, the MC prepares the CONF request to be issued 960 to the MP on the basis of the previously ACK-ed ADV. When the CONF 961 has been sent ("CONF sent"), the MC moves to the WAIT FOR CONF 962 RESPONSE state. If a new ADV arrives in the meanwhile ("ADV 963 received"), the MC goes back to the ADV PROCESSING state. 965 In the WAIT FOR CONF RESPONSE state, the MC waits for the MP's 966 response to the issued CONF or CONF+ACK. If a 200 CONF RESPONSE 967 message is received ("successful CONF RESPONSE received"), it means 968 that the MP and the MC have successfully agreed on the media streams 969 to be shared. Then, the MC can move to the ESTABLISHED state. On 970 the other hand, if an error response is received and the associated 971 retry counter does not overcome the threshold ("error CONF RESPONSE 972 received && retry not expired"), the MC moves back to the CONF state 973 to prepare a new CONF request. In case of "error CONF RESPONSE 974 received && retry expired", the MC moves to the MC TERMINATED state. 975 If no CONF RESPONSE arrives and the number of timeouts is under the 976 threshold ("timeout && retry not expired"), the MC moves to the CONF 977 state and sends again the CONF message. If no CONF RESPONSE arrives 978 and the number of timeouts is over the threshold ("timeout && retry 979 expired"), the MC moves to the MC TERMINATED state. If a new ADV is 980 received in the WAIT FOR CONF RESPONSE state, the MC switches to the 981 ADV PROCESSING state. 983 When the MC is in the ESTABLISHED state, the telepresence session 984 configuration has been set up at the CLUE application level according 985 to the MC's preferences. Both the MP and the MC have agreed on (and 986 are aware of) the CLUE-controlled media streams to be exchanged 987 within the call. While in the ESTABLISHED state, it might happen 988 that the MC decides to change something in the call settings. The MC 989 then issues a new CONF ("CONF sent") and goes to wait for the new 990 CONF RESPONSE in the WAIT FOR CONF RESPONSE state. On the other 991 hand, in the ESTABLISHED state, if a new ADV arrives from the MP 992 ("ADV received"), it means that something has changed on the MP's 993 side. The MC then moves to the ADV PROCESSING state. 995 +----------+ 996 | WAIT FOR | 997 | ADV | 998 +----+-----+<--------+ 999 | | 1000 ADV | NACK sent| 1001 received| && retry | 1002 v not expired| NACK sent && 1003 +-----------+--------+ retry expired 1004 | ADV +---------------------------+ 1005 | PROCESSING|<-----------------------+ | 1006 +-+-----+---+ | | 1007 | | | | 1008 CONF+ACK | | ACK | | 1009 sent | | sent | | 1010 | v | | 1011 | +-----+ | | 1012 | |CONF | ADV received | | 1013 +----------------------->| +-------------------------+ | 1014 | | +--+--+ | | 1015 |error CONF RESPONSE | | error CONF RESPONSE | | 1016 |received && | | CONF received && | | 1017 |retry not expired, | | sent retry expired | | 1018 |timeout && | | +------------------------+ 1019 |retry not expired v v | | | 1020 +------------------+---------------+ ADV received | | 1021 +--------->| WAIT FOR +---------------------+ | 1022 | | CONF RESPONSE+------------------------+ 1023 | +-------+-------+ timeout&& | | 1024 | | retry expired | | 1025 | | | | 1026 | |successful | | 1027 | |CONF RESPONSE | | 1028 | |received | | 1029 | v | | 1030 |CONF sent +-----------+ ADV received| | 1031 +------------+ESTABLISHED+-----------------------+ | 1032 +-----------+ | 1033 | 1034 | 1035 | 1036 +-----------+ | 1037 | MC |<------------------------+ 1038 |TERMINATED | 1039 +-----------+ 1041 7. Versioning 1043 CLUE protocol messages are XML messages compliant to the CLUE 1044 protocol XML schema [I-D.ietf-clue-data-model-schema]. The version 1045 of the protocol corresponds to the version of the schema. Both 1046 client and server have to test the compliance of the received 1047 messages with the XML schema of the CLUE protocol. If the compliance 1048 is not verified, the message cannot be processed further. 1050 Obviously, client and server cannot communicate if they do not share 1051 exactly the same XML schema. Such a schema associated with the CLUE 1052 URN "urn:ietf:params:xml:ns:clue-protocol". If all CLUE-enabled 1053 devices use that schema there will be no interoperability problems 1054 due to schema issues. 1056 This document defines XML schema version 1.0. The version usage is 1057 similar in philosophy to XMPP ([RFC6120]). A version number has 1058 major and minor components, each a non-negative integer. Major 1059 version changes denote non-interoperable changes. Minor version 1060 changes denote schema changes that are backward compatible by 1061 ignoring unknown XML elements, or other backward compatible changes. 1063 The minor versions of the XML schema MUST be backward compatible, not 1064 only in terms of schema but also semantically and procedurally as 1065 well. This means that they should define further features and 1066 functionality besides those defined in the previous versions, in an 1067 incremental way, without impacting the basic rules defined in the 1068 previous version of the schema. In this way, if a MP is able to 1069 speak, e.g., version 1.5 of the protocol while the MC only 1070 understands version 1.4, the MP should have no problem in reverting 1071 the dialogue back to version 1.4 without exploiting 1.5 features and 1072 functionality. Version 1.4 is the one to be spoken and has to appear 1073 in the "v" attribute of the subsequent CLUE messages. In other 1074 words, in this example, the MP MUST use version 1.4 and downgrade to 1075 the lower version. This said, and coherently with the general IETF 1076 "protocol robustness principle" stating that "an implementation must 1077 be conservative in its sending behavior, and liberal in its receiving 1078 behavior" [RFC1122], Clue Participants MUST ignore unknown elements 1079 or attributes that are not envisioned in the negotiated protocol 1080 version and related extensions. 1082 8. Extensions 1084 Although the standard version of the CLUE protocol XML schema is 1085 designed to thoroughly cope with the requirements emerging from the 1086 application domain, new needs might arise and extensions can be 1087 designed. Extensions specify information and behaviors that are not 1088 described in a certain version of the protocol and specified in the 1089 related RFC document. Such information and behaviors can be 1090 optionally used in a CLUE dialogue and MUST be negotiated in the CLUE 1091 initiation phase. They can relate to: 1093 1. new information, to be carried in the existing messages. For 1094 example, more fields may be added within an existing message; 1096 2. new messages. This is the case if there is no proper message for 1097 a certain task, so a brand new CLUE message needs to be defined. 1099 As to the first type of extensions, it is possible to distinguish 1100 between protocol-specific and data model information. Indeed, CLUE 1101 messages are envelopes carrying both: 1103 o (i) XML elements defined within the CLUE protocol XML schema 1104 itself (protocol-specific information) 1106 o (ii) other XML elements compliant to the CLUE data model schema 1107 (data model information) 1109 When new protocol-specific information is needed somewhere in the 1110 protocol messages, it can be added in place of the elements and 1111 elements envisioned by the protocol schema. The 1112 policy currently defined in the protocol schema for handling 1113 and elements is: 1115 o elementFormDefault="qualified" 1117 o attributeFormDefault="unqualified" 1119 In that case, the new information must be qualified by namespaces 1120 other than "urn:ietf:params:xml:ns:clue-protocol" (the protocol URN) 1121 and "urn:ietf:params:xml:ns:clue-info" (the data model URN). 1122 Elements or attributes from unknown namespaces MUST be ignored. 1124 The other matter concerns data model information. Data model 1125 information is defined by the XML schema associated with the URN 1126 "urn:ietf:params:xml:ns:clue-info". Also for the XML elements 1127 defined in such a schema there are extensibility issues. Those 1128 issues are overcome by using and placeholders. 1129 Similarly to what said before, new information within data model 1130 elements can be added in place of and schema 1131 elements, as long as they are properly namespace qualified. 1133 On the other hand (second type of extensions), "extra" CLUE protocol 1134 messages, i.e., messages not envisioned in the latest standard 1135 version of the schema, can be needed. In that case, the messages and 1136 the associated behavior should be defined in external documents that 1137 both communication parties must be aware of. 1139 Both types of extensions, i.e., new information and new messages, can 1140 be characterized by: 1142 o a name; 1144 o an external XML Schema defining the XML information and/or the XML 1145 messages representing the extension; 1147 o the standard version of the protocol the extension refers to. 1149 For that reason, the extensions are represented by means of the 1150 element as defined below, which is carried within the 1151 OPTIONS and OPTIONS RESPONSE messages to represent the extensions 1152 supported by the CI and by the CR. 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1165 8.1. Extension example 1167 An example of extension might be a "new" capture attribute (i.e., a 1168 capture attribute which is not envisioned in the current standard 1169 defining the CLUE data model in [I-D.ietf-clue-data-model-schema]) 1170 needed to further describe a video capture. Such a new attribute 1171 MUST be defined in a separated XML schema file and SHOULD be provided 1172 with a companion document describing its semantics and use. 1174 The CLUE data model document ([I-D.ietf-clue-data-model-schema]) 1175 envisions the possibility of adding this kind of "extra" information 1176 in the description of a video capture by keeping the compatibility 1177 with the CLUE data model schema. This is made possible thanks to the 1178 presence of the element in the XML definition of the video 1179 capture, allowing for the introduction of a new XML field in the XML 1180 description. For the sake of convenience, the XML definition of a 1181 video capture taken from [I-D.ietf-clue-data-model-schema] is 1182 reported below. 1184 1185 1186 1187 1188 1189 1191 1192 1193 1194 1195 1197 According to such a definition, a video capture might have, after the 1198 set of the generic media capture attributes, a set of new attributes 1199 defined elsewhere, i.e., in an XML schema defining an extension. The 1200 XML schema defining the extension might look like the following: 1202 1203 1211 1215 1216 1217 1218 1219 1220 1221 1222 1224 1225 1227 1228 1230 1232 By using the extension above, a video capture can be further 1233 described in the advertisement using the element 1234 containing two extra information ( and 1235 ) besides using the attributes envisioned for a 1236 generic media capture. As stated in this document, both participants 1237 MUST be aware of the extension schema and related semantics to use 1238 such an extension and MUST negotiate it via the OPTIONS and OPTIONS 1239 RESPONSE mechanism. 1241 9. XML Schema 1243 In this section, the XML schema defining the CLUE messages is 1244 provided. 1246 1247 1257 1258 1261 1262 1263 1264 1265 1266 1267 1270 1271 1272 1273 1274 1275 1276 1278 1279 1281 1282 1283 1284 1285 1286 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1303 1305 1306 1307 1308 1309 1310 1312 1313 1314 1315 1317 1318 1319 1320 1322 1323 1324 1325 1327 1328 1329 1330 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1355 1356 1357 1358 1359 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1373 1375 1376 1377 1378 1379 1380 1381 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1398 1399 1400 1401 1402 1403 1404 1406 1408 1409 1410 1411 1412 1413 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1430 1432 10. Examples 1434 In the following we provide an example of ADVERTISEMENT representing 1435 the telepresence environment described in 1437 [I-D.ietf-clue-data-model-schema], Section "Sample XML file" and 1438 Section "MCC example" respectively. 1440 10.1. Simple ADV 1442 The associated Media Provider's telepresence capabilities are 1443 described in [I-D.ietf-clue-data-model-schema], Section "Sample XML 1444 file". 1446 1447 1450 Napoli CLUE Endpoint 1451 34 1452 1453 1456 CS1 1457 1458 1459 1460 0.0 1461 0.0 1462 10.0 1463 1464 1465 0.0 1466 1.0 1467 10.0 1468 1469 1470 1471 true 1472 EG1 1473 main audio from the room 1474 1475 1 1476 it 1477 static 1478 room 1479 1480 alice 1481 bob 1482 ciccio 1483 1485 1486 1489 CS1 1490 1491 1492 1493 -2.0 1494 0.0 1495 10.0 1496 1497 1498 1499 1500 -3.0 1501 20.0 1502 9.0 1503 1504 1505 -1.0 1506 20.0 1507 9.0 1508 1509 1510 -3.0 1511 20.0 1512 11.0 1513 1514 1515 -1.0 1516 20.0 1517 11.0 1518 1519 1520 1521 true 1522 EG0 1523 left camera video capture 1524 1525 1 1526 it 1527 static 1528 individual 1529 1530 ciccio 1531 1532 1533 1536 CS1 1537 1538 1539 1540 0.0 1541 0.0 1542 10.0 1543 1544 1545 1546 1547 -1.0 1548 20.0 1549 9.0 1550 1551 1552 1.0 1553 20.0 1554 9.0 1555 1556 1557 -1.0 1558 20.0 1559 11.0 1560 1561 1562 1.0 1563 20.0 1564 11.0 1565 1566 1567 1568 true 1569 EG0 1570 central camera video capture 1571 1572 1 1573 it 1574 static 1575 individual 1576 1577 alice 1578 1579 1580 1583 CS1 1584 1585 1586 1587 2.0 1588 0.0 1589 10.0 1590 1591 1592 1593 1594 1.0 1595 20.0 1596 9.0 1597 1598 1599 3.0 1600 20.0 1601 9.0 1602 1603 1604 1.0 1605 20.0 1606 11.0 1607 1608 1609 3.0 1610 20.0 1611 11.0 1612 1613 1614 1615 true 1616 EG0 1617 right camera video capture 1618 1619 1 1620 it 1621 static 1622 individual 1623 1624 bob 1625 1626 1627 1630 CS1 1631 1632 1633 1634 -3.0 1635 20.0 1636 9.0 1637 1638 1639 3.0 1640 20.0 1641 9.0 1642 1643 1644 -3.0 1645 20.0 1646 11.0 1647 1648 1649 3.0 1650 20.0 1651 11.0 1652 1653 1654 1655 1656 SE1 1657 1658 SoundLevel:0 1659 EG0 1660 loudest room segment 1661 2 1662 it 1663 static 1664 individual 1665 1666 1669 CS1 1670 1671 1672 1673 0.0 1674 0.0 1675 10.0 1676 1678 1679 1680 1681 -3.0 1682 20.0 1683 7.0 1684 1685 1686 3.0 1687 20.0 1688 7.0 1689 1690 1691 -3.0 1692 20.0 1693 13.0 1694 1695 1696 3.0 1697 20.0 1698 13.0 1699 1700 1701 1702 true 1703 EG0 1704 zoomed out view of all people in the 1705 room 1706 2 1707 it 1708 static 1709 room 1710 1711 alice 1712 bob 1713 ciccio 1714 1715 1716 1717 1718 1719 600000 1720 1721 ENC1 1722 ENC2 1723 ENC3 1724 1725 1726 1727 300000 1728 1729 ENC4 1730 ENC5 1731 1732 1733 1734 1735 1736 1737 1738 1739 VC0 1740 VC1 1741 VC2 1742 1743 1744 1745 1746 VC3 1747 1748 1749 1750 1751 VC4 1752 1753 1754 1755 1756 AC0 1757 1758 1759 1760 1761 1762 1763 1764 VC3 1765 SE1 1766 1767 1768 VC0 1769 VC2 1770 VC4 1771 1772 1773 1774 1775 1776 1777 Bob 1778 1779 1780 minute taker 1781 1782 1783 1784 1785 Alice 1786 1787 1788 presenter 1789 1790 1791 1792 1793 Ciccio 1794 1795 1796 chairman 1797 timekeeper 1798 1799 1800 1802 10.2. ADV with MCCs 1804 The associated Media Provider's telepresence capabilities are 1805 described in [I-D.ietf-clue-data-model-schema], Section "MCC 1806 example". 1808 1809 1812 Napoli CLUE Endpoint 1813 34 1814 1815 1818 CS1 1819 1820 1821 1822 0.0 1823 0.0 1824 10.0 1825 1826 1827 0.0 1828 1.0 1829 10.0 1830 1831 1832 1833 true 1834 EG1 1835 main audio from the room 1836 1837 1 1838 it 1839 static 1840 room 1841 1842 alice 1843 bob 1844 ciccio 1845 1846 1847 1850 CS1 1851 1852 1853 1854 0.5 1855 1.0 1856 0.5 1857 1858 1859 0.5 1860 0.0 1861 0.5 1862 1863 1864 1865 true 1866 EG0 1867 left camera video capture 1868 1869 1 1870 it 1871 static 1872 individual 1873 1874 ciccio 1875 1876 1877 1880 CS1 1881 1882 1883 1884 0.0 1885 0.0 1886 10.0 1887 1888 1889 1890 1891 -1.0 1892 20.0 1893 9.0 1894 1895 1896 1.0 1897 20.0 1898 9.0 1899 1900 1901 -1.0 1902 20.0 1903 11.0 1904 1905 1906 1.0 1907 20.0 1908 11.0 1909 1910 1911 1912 true 1913 EG0 1914 central camera video capture 1915 1916 1 1917 it 1918 static 1919 individual 1920 1921 alice 1922 1923 1924 1927 CS1 1928 1929 1930 1931 2.0 1932 0.0 1933 10.0 1934 1935 1936 1937 1938 1.0 1939 20.0 1940 9.0 1941 1942 1943 3.0 1944 20.0 1945 9.0 1946 1947 1948 1.0 1949 20.0 1950 11.0 1951 1952 1953 3.0 1954 20.0 1955 11.0 1956 1957 1958 1959 true 1960 EG0 1961 right camera video capture 1962 1963 1 1964 it 1965 static 1966 individual 1967 1968 bob 1969 1970 1971 1974 CS1 1975 1976 1977 1978 -3.0 1979 20.0 1980 9.0 1981 1982 1983 3.0 1984 20.0 1985 9.0 1986 1987 1988 -3.0 1989 20.0 1990 11.0 1991 1992 1993 3.0 1994 20.0 1995 11.0 1996 1997 1998 1999 2000 SE1 2001 2002 SoundLevel:0 2003 EG0 2004 loudest room segment 2005 2 2006 it 2007 static 2008 individual 2009 2010 2013 CS1 2014 2015 2016 2017 0.0 2018 0.0 2019 10.0 2020 2021 2022 2023 2024 -3.0 2025 20.0 2026 7.0 2027 2028 2029 3.0 2030 20.0 2031 7.0 2032 2033 2034 -3.0 2035 20.0 2036 13.0 2037 2038 2039 3.0 2040 20.0 2041 13.0 2042 2043 2044 2045 true 2046 EG0 2047 2048 zoomed out view of all people in the room 2049 2050 2 2051 it 2052 static 2053 room 2054 2055 alice 2056 bob 2057 ciccio 2058 2059 2060 2063 CS1 2064 2065 2066 2067 -3.0 2068 20.0 2069 9.0 2070 2071 2072 3.0 2073 20.0 2074 9.0 2075 2076 2077 -3.0 2078 20.0 2079 11.0 2080 2081 2082 3.0 2083 20.0 2084 11.0 2085 2086 2087 2088 2089 SE1 2090 2091 SoundLevel:1 2092 penultimate loudest room segment 2093 2094 it 2095 static 2096 individual 2097 2098 2101 CS1 2102 2103 2104 2105 -3.0 2106 20.0 2107 9.0 2108 2109 2110 3.0 2111 20.0 2112 9.0 2113 2114 2115 -3.0 2116 20.0 2117 11.0 2118 2119 2120 3.0 2121 20.0 2122 11.0 2123 2124 2125 2126 2127 SE1 2128 2129 SoundLevel:2 2130 last but two loudest room segment 2131 2132 it 2133 static 2134 individual 2135 2136 2139 CS1 2140 2141 2142 2143 -3.0 2144 20.0 2145 9.0 2146 2147 2148 3.0 2149 20.0 2150 9.0 2151 2152 2153 -3.0 2154 20.0 2155 11.0 2156 2157 2158 3.0 2159 20.0 2160 11.0 2161 2162 2163 2164 2165 VC3 2166 VC5 2167 VC6 2168 2169 3 2170 EG0 2171 big picture of the current speaker + 2172 pips about previous speakers 2173 3 2174 it 2175 static 2176 individual 2177 2178 2179 2180 2181 600000 2182 2183 ENC1 2184 ENC2 2185 ENC3 2186 2187 2188 2189 300000 2190 2191 ENC4 2192 ENC5 2193 2194 2195 2196 2197 2198 2199 2200 participants' individual 2201 videos 2202 2203 VC0 2204 VC1 2205 VC2 2206 2207 2208 2209 loudest segment of the 2210 room 2211 2212 VC3 2213 2214 2215 2216 loudest segment of the 2217 room + pips 2218 2219 VC7 2220 2221 2222 2223 room audio 2224 2225 AC0 2226 2227 2228 2229 room video 2230 2231 VC4 2232 2233 2234 2235 2236 2237 2238 2239 VC3 2240 VC7 2241 SE1 2242 2243 2244 VC0 2245 VC2 2246 VC4 2247 2248 2249 2250 2251 2252 2253 Bob 2254 2255 2256 minute taker 2257 2258 2259 2260 2261 Alice 2262 2263 2264 presenter 2265 2266 2267 2268 2269 Ciccio 2270 2271 2272 chairman 2273 timekeeper 2274 2275 2276 2278 11. Security Considerations 2280 As a general consideration, we remark that the CLUE framework (and 2281 related protocol) has been conceived at the outset by embracing the 2282 security-by-design paradigm. This entails that a number of 2283 requirements have been identified and properly standardized as 2284 mandatory within the entire set of documents associated with the CLUE 2285 architecture. Requirements include: (i) the use of cryptography and 2286 authentication; (ii) protection of all sensitive fields; (iii) mutual 2287 authentication between CLUE endpoints; (iv) the presence of 2288 authorization mechanisms; (v) the presence of native defence 2289 mechanisms against malicious activities such as eavesdropping, 2290 selective modification, deletion, replay (and related combinations 2291 thereof). Hence, security of the single components of the CLUE 2292 solution cannot be evaluated independently of the integrated view of 2293 the final architecture. 2295 The CLUE protocol is an application-level protocol allowing a Media 2296 Producer and a Media Consumer to negotiate a variegated set of 2297 parameters associated with the establishment of a telepresence 2298 session. This unavoidably exposes a CLUE-enabled telepresence system 2299 to a number of potential threats, most of which are extensively 2300 discussed in the framework document [I-D.ietf-clue-framework]. The 2301 security considerations section of the mentioned document actually 2302 discusses issues associated with the setup and management of a 2303 telepresence session both in the basic case involving two CLUE 2304 endpoints acting, respectively, as MP and MC, and in the more 2305 advanced scenario envisaging the presence of an MCU. 2307 The framework document also mentions that the information carried 2308 within CLUE protocol messages might contain sensitive data, which 2309 SHOULD hence be accessed only by authenticated endpoints. Security 2310 issues associated with the CLUE data model schema are discussed in 2311 [I-D.ietf-clue-data-model-schema]. 2313 There is extra information carried by the CLUE protocol which is not 2314 associated with the CLUE data model schema and which exposes 2315 information that might be of concern. This information is primarily 2316 exchanged during the negotiation phase via the OPTIONS and OPTIONS 2317 RESPONSE messages. In the Clue Participant state machine OPTIONS 2318 state, both parties agree on the version and on the extensions to be 2319 used in the subsequent CLUE messages exchange phase. A malicious 2320 participant might either try to retrieve a detailed footprint of a 2321 specific CLUE protocol implementation during this initial setup 2322 phase, or force the communicating party to use a non-up-to-date 2323 version of the protocol which they know how to break. Indeed, 2324 exposing all of the supported versions and extensions could 2325 conceivably leak information about the specific implementation of the 2326 protocol. In theory an implementation could choose not to announce 2327 all of the versions it supports if it wants to avoid such leakage, 2328 though at the expenses of interoperability. With respect to the 2329 above considerations, it is noted that the OPTIONS state is only 2330 reached after the CLUE data channel has been successfully set up. 2331 This ensures that only authenticated parties can exchange OPTIONS and 2332 related OPTIONS RESPONSE messages and hence drastically reduces the 2333 attack surface which is exposed to malicious parties. 2335 The CLUE framework clearly states the requirement to protect CLUE 2336 protocol messages against threats deriving from the presence of a 2337 malicious agent capable to gain access to the CLUE data channel. 2338 Such a requirement is met by the CLUE data channel solution described 2339 in [I-D.ietf-clue-datachannel], which ensures protection from both 2340 message recovery and message tampering. With respect to this last 2341 point, any implementation of the CLUE protocol compliant with the 2342 CLUE specification MUST rely on the exchange of messages which flow 2343 on top of a reliable and ordered SCTP over DTLS transport channel 2344 connecting two CLUE Participants. 2346 12. IANA Considerations 2348 This document registers a new XML namespace, a new XML schema and the 2349 MIME type for the schema. This document also registers the "CLUE" 2350 Application Service tag and the "CLUE" Application Protocol tag and 2351 defines registries for the CLUE messages and response codes. 2353 12.1. URN Sub-Namespace Registration 2355 This section registers a new XML namespace, 2356 ""urn:ietf:params:xml:ns:clue-protocol"". 2358 URI: urn:ietf:params:xml:ns:clue-protocol 2360 Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon 2361 Pietro Romano (spromano@unina.it). 2363 XML: 2365 BEGIN 2366 2367 2369 2370 2371 CLUE Messages 2372 2373 2374

Namespace for CLUE Messages

2375

urn:ietf:params:xml:ns:clue-protocol

2376 [[NOTE TO IANA/RFC-EDITOR: Please update RFC URL and replace XXXX 2377 with the RFC number for this specification.]] 2378

See 2379 RFCXXXX.

2380 2381 2382 END 2384 12.2. XML Schema registration 2386 This section registers an XML schema per the guidelines in [RFC3688]. 2388 URI: urn:ietf:params:xml:schema:clue-protocol 2390 Registrant Contact: CLUE working group (clue@ietf.org), Simon Pietro 2391 Romano (spromano@unina.it). 2393 Schema: The XML for this schema can be found as the entirety of 2394 Section 9 of this document. 2396 12.3. MIME Media Type Registration for 'application/clue+xml' 2398 This section registers the ""application/clue+xml"" MIME type. 2400 To: ietf-types@iana.org 2402 Subject: Registration of MIME media type application/clue+xml 2404 MIME media type name: application 2406 MIME subtype name: clue+xml 2408 Required parameters: (none) 2410 Optional parameters: charset 2411 Same as the charset parameter of "application/xml" as specified in 2412 [RFC7303], Section 3.2. 2414 Encoding considerations: Same as the encoding considerations of 2415 "application/xml" as specified in [RFC7303], Section 3.2. 2417 Security considerations: This content type is designed to carry 2418 protocol data related to telepresence session control. Some of the 2419 data could be considered private. This media type does not provide 2420 any protection and thus other mechanisms such as those described in 2421 Section Security are required to protect the data. This media type 2422 does not contain executable content. 2424 Interoperability considerations: None. 2426 Published specification: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please 2427 replace XXXX with the RFC number for this specification.]] 2429 Applications that use this media type: CLUE participants. 2431 Additional Information: Magic Number(s): (none), 2432 File extension(s): .xml, 2433 Macintosh File Type Code(s): TEXT. 2435 Person & email address to contact for further information: Simon 2436 Pietro Romano (spromano@unina.it). 2438 Intended usage: LIMITED USE 2440 Author/Change controller: The IETF 2441 Other information: This media type is a specialization of 2442 application/xml [RFC7303], and many of the considerations described 2443 there also apply to application/clue+xml. 2445 12.4. CLUE Protocol Registry 2447 The document requests that the IANA creates new registries for CLUE 2448 messages and response codes. 2450 12.4.1. CLUE Message Types 2452 The following summarizes the registry for CLUE messages: 2454 Related Registry: CLUE Message Types Registry 2456 Defining RFC: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX 2457 with the RFC number for this specification.]] 2459 Registration/Assignment Procedures: Following the policies outlined 2460 in [RFC5226], the IANA policy for assigning new values for the CLUE 2461 message types for the CLUE protocol is Specification Required. 2463 Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon 2464 Pietro Romano (spromano@unina.it). 2466 The initial Message table is populated using the CLUE messages 2467 described in Section 5 and defined in the XML schema in Section 9. 2469 +-------------------+-----------------------------------+-----------+ 2470 | Message | Description | Reference | 2471 +-------------------+-----------------------------------+-----------+ 2472 | options | "OPTIONS" in this document. Sent | RFCXXXX | 2473 | | by the CI to the CR in the | | 2474 | | initiation phase to specify the | | 2475 | | roles played by the CI, the | | 2476 | | supported versions and the | | 2477 | | supported extensions. | | 2478 | optionsResponse | "OPTIONS RESPONSE" in this | RFCXXXX | 2479 | | document. Sent by the CI to the | | 2480 | | CR in reply to an OPTIONS message | | 2481 | | to finally estabilsh the version | | 2482 | | and the extensions to be used in | | 2483 | | the following CLUE messages | | 2484 | | exchange. | | 2485 | advertisement | "ADVERTISEMENT" or "ADV" in this | RFCXXXX | 2486 | | document. Sent by the MP to the | | 2487 | | MC to specify the telepresence | | 2488 | | capabilities of the MP expressed | | 2489 | | according to the CLUE framework. | | 2490 | ack | "ACK" in this document. Sent by | RFCXXXX | 2491 | | the MC to the MP to acknowledge | | 2492 | | the reception of an ADVERTISEMENT | | 2493 | | message. | | 2494 | configure | "CONFIGURE" or "CONF" in this | RFCXXXX | 2495 | | document. Sent by the MC to the | | 2496 | | MP to specify the desired media | | 2497 | | captures among those specified in | | 2498 | | the ADVERTISEMENT. | | 2499 | configureResponse | "CONFIGURE RESPONSE" or "CONF | RFCXXXX | 2500 | | RESPONSE" in this document. Sent | | 2501 | | by the MP to the MC in reply to a | | 2502 | | CONFIGURE message to communicate | | 2503 | | if the configuration request has | | 2504 | | been successfully processed or | | 2505 | | not. | | 2506 +-------------------+-----------------------------------+-----------+ 2508 IANA-CLUE 2510 12.4.2. CLUE Response Codes 2512 The following summarizes the requested registry for CLUE response 2513 codes: 2515 Related Registry: CLUE Response Code Registry 2516 Defining RFC: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX 2517 with the RFC number for this specification.]] 2519 Registration/Assignment Procedures: Following the policies outlined 2520 in [RFC5226], the IANA policy for assigning new values for the 2521 Response codes for CLUE shall be Specification Required. 2523 Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon 2524 Pietro Romano (spromano@unina.it). 2526 The initial Response-code table is populated using the Response codes 2527 defined in Section 5.7 as follows: 2529 +--------+-----------------+----------------------------+-----------+ 2530 | Number | Default | Description | Reference | 2531 | | Response String | | | 2532 +--------+-----------------+----------------------------+-----------+ 2533 | 200 | Success | The request has been | RFCXXXX | 2534 | | | successfully processed. | | 2535 | 300 | Syntax errors | The XML syntax of the | RFCXXXX | 2536 | | and | message is not correct or | | 2537 | | inconsistencies | there are invalid values. | | 2538 | 301 | Bad syntax | The XML syntax of the | RFCXXXX | 2539 | | | message is not correct. | | 2540 | 302 | Invalid value | The message contains an | RFCXXXX | 2541 | | | invalid parameter value. | | 2542 | 303 | Conficting | The message contains | RFCXXXX | 2543 | | values | values that cannot be used | | 2544 | | | together. | | 2545 | 400 | Semantic errors | Semantic errors in the | RFCXXXX | 2546 | | | received CLUE protocol | | 2547 | | | message. | | 2548 | 401 | Version not | The protocol version used | RFCXXXX | 2549 | | supported | in the message is not | | 2550 | | | supported. | | 2551 | 402 | Invalid | The sequence number of the | RFCXXXX | 2552 | | sequencing | message is out of date. | | 2553 | 403 | Invalid | The identifier used in the | RFCXXXX | 2554 | | identifier | message is no valid or | | 2555 | | | unknown. | | 2556 | 404 | ADV Expired | The number of the ADV the | RFCXXXX | 2557 | | | CONF refers to is out of | | 2558 | | | date. | | 2559 | 405 | Subset choice | The subset choice is not | RFCXXXX | 2560 | | not allowed | allowed for the specified | | 2561 | | | MCC. | | 2562 +--------+-----------------+----------------------------+-----------+ 2564 13. Diff with draft-ietf-clue-protocol-12 2566 o Section 6: brackets removed from "Otherwise if ("channel error")," 2568 o Section 5.7: new response codes MUST always be registered with 2569 IANA (i.e., in case of both new versions and extensions). 2571 o Section 5: clueId has been made optional. 2573 14. Diff with draft-ietf-clue-protocol-06 2575 o XML schema definition of has been changed to match 2576 pattern "X.Y", where X and Y are single digits. 2578 o 100, 200, 300, 400 defined as catch-all response codes. 2580 o Updates in IANA section. 2582 15. Diff with draft-ietf-clue-protocol-05 2584 o This document corrects some versioning errors of draft-ietf-clue- 2585 protocol-05. 2587 16. Diff with draft-ietf-clue-protocol-04 2589 o The document has been revised based on feedback recevied on the 2590 ML. No major modification is included in this version. 2592 17. Diff with draft-ietf-clue-protocol-03 2594 o Response codes section updated. 2596 o maxCaptureEncodings removed from examples, allowSubsetChoice 2597 added. 2599 o State machines descriptions aligned with pictures. 2601 o Applied recommended updates indicated in Christian's review 2602 (2015-03-19). 2604 18. Diff with draft-ietf-clue-protocol-02 2606 o CLUE Participant state machine: TERMINATED state replaced with 2607 IDLE. 2609 o MP and MC state machines: SDP O/A state removed. 2611 o Diff mechanism (and related example) removed. 2613 o Schema updates: versionType used as the data type for all versions 2614 fields, xs:unsignedInt used as the data type for all sequence 2615 number fields, diff support removed from the ADV definition. 2617 19. Diff with draft-ietf-clue-protocol-01 2619 o The diff mechanism for the ADV message has been introduced. 2621 o READV and READV RESPONSE message have been both removed. 2623 o The state machines have been deeply reviewed and changed. 2625 o References: references have been updated and splitted into 2626 Informative references and Normative references as in framework 2627 v17. 2629 o Schema: changed in , 2630 in 2632 o Terminology: many definitions added. 2634 o Response codes updated. 2636 20. Diff with draft-ietf-clue-protocol-00 2638 1. The XML schema of the ADVERTISEMENT and of the READV have been 2639 aligned with the current definitions in 2640 [I-D.ietf-clue-data-model-schema] (example of updates: 2641 --> , --> 2642 ) 2644 2. Text has been added to clarify that, in the OPTIONS RESPONSE, 2645 when the response code is not an error response code, both 2646 and are mandatory. 2648 3. The content of the "v" attribute and of the elements 2649 carried in the OPTIONS and OPTIONS RESPONSE messages has been 2650 described more precisely. 2652 4. Advertisement examples have been added. 2654 21. Diff with draft-presta-clue-protocol-04 2656 1. The response code type error in the OPTIONS response (and in 2657 other parts) has been corrected. 2659 22. Diff with draft-presta-clue-protocol-03 2661 1. The XML Schema has been deeply revised and completed. 2663 2. The descriptions of the CLUE messages have been added. 2665 3. The distinction between major version numbers and minor version 2666 numbers has been cut and pasted from [I-D.ietf-clue-signaling]. 2668 4. Besides the two way one, a three way mechanism for the options 2669 negotiation has been proposed and provided to foster discussion. 2671 23. Diff with draft-presta-clue-protocol-02 2673 1. "Terminology" section added. 2675 2. Introduced the concept of "CLUE Participant" - an Endpoint or a 2676 MCU able to use the CLUE protocol within a telepresence session. 2677 A CLUE Participant can act as a Media Provider and/or as a Media 2678 Consumer. 2680 3. Introduced the ACK/NACK mechanism for the ADVERTISEMENT. 2682 4. MP and MC state machines have been updated. The CP state machine 2683 has been added. 2685 24. Acknowledgments 2687 The authors thank all the CLUErs for their precious feedbacks and 2688 support, in particular Paul Kyzivat, Christian Groves and Scarlett 2689 Liuyan. 2691 25. References 2693 25.1. Normative References 2695 [I-D.ietf-clue-data-model-schema] 2696 Presta, R. and S. Romano, "An XML Schema for the CLUE data 2697 model", draft-ietf-clue-data-model-schema-17 (work in 2698 progress), August 2016. 2700 [I-D.ietf-clue-datachannel] 2701 Holmberg, C., "CLUE Protocol data channel", draft-ietf- 2702 clue-datachannel-14 (work in progress), August 2016. 2704 [I-D.ietf-clue-framework] 2705 Duckworth, M., Pepperell, A., and S. Wenger, "Framework 2706 for Telepresence Multi-Streams", draft-ietf-clue- 2707 framework-25 (work in progress), January 2016. 2709 [I-D.ietf-clue-signaling] 2710 Kyzivat, P., Xiao, L., Groves, C., and R. Hansen, "CLUE 2711 Signaling", draft-ietf-clue-signaling-10 (work in 2712 progress), January 2017. 2714 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2715 Requirement Levels", BCP 14, RFC 2119, 2716 DOI 10.17487/RFC2119, March 1997, 2717 . 2719 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 2720 Jacobson, "RTP: A Transport Protocol for Real-Time 2721 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 2722 July 2003, . 2724 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 2725 DOI 10.17487/RFC3688, January 2004, 2726 . 2728 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 2729 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 2730 DOI 10.17487/RFC5226, May 2008, 2731 . 2733 [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303, 2734 DOI 10.17487/RFC7303, July 2014, 2735 . 2737 25.2. Informative References 2739 [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - 2740 Communication Layers", STD 3, RFC 1122, 2741 DOI 10.17487/RFC1122, October 1989, 2742 . 2744 [RFC4353] Rosenberg, J., "A Framework for Conferencing with the 2745 Session Initiation Protocol (SIP)", RFC 4353, 2746 DOI 10.17487/RFC4353, February 2006, 2747 . 2749 [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence 2750 Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120, 2751 March 2011, . 2753 [RFC7262] Romanow, A., Botzko, S., and M. Barnes, "Requirements for 2754 Telepresence Multistreams", RFC 7262, 2755 DOI 10.17487/RFC7262, June 2014, 2756 . 2758 [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, 2759 DOI 10.17487/RFC7667, November 2015, 2760 . 2762 Authors' Addresses 2764 Roberta Presta 2765 University of Napoli 2766 Via Claudio 21 2767 Napoli 80125 2768 Italy 2770 EMail: roberta.presta@unina.it 2772 Simon Pietro Romano 2773 University of Napoli 2774 Via Claudio 21 2775 Napoli 80125 2776 Italy 2778 EMail: spromano@unina.it