CLUE Working Group R. Presta Internet-Draft S. Romano Intended status: Standards Track University of Napoli Expires: July 27, 2017 January 23, 2017 CLUE protocol draft-ietf-clue-protocol-12 Abstract The CLUE protocol is an application protocol conceived for the description and negotiation of a telepresence session. The design of the CLUE protocol takes into account the requirements and the framework defined within the IETF CLUE working group. A companion document delves into CLUE signaling details, as well as on the SIP/ SDP session establishment phase. CLUE messages flow over the CLUE data channel, based on reliable and ordered SCTP over DTLS transport. Message details, together with the behavior of CLUE Participants acting as Media Providers and/or Media Consumers, are herein discussed. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on July 27, 2017. Copyright Notice Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents Presta & Romano Expires July 27, 2017 [Page 1] Internet-Draft draft-ietf-clue-protocol-12 January 2017 carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Overview of the CLUE protocol . . . . . . . . . . . . . . . . 4 5. Protocol messages . . . . . . . . . . . . . . . . . . . . . . 7 5.1. OPTIONS . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2. OPTIONS RESPONSE . . . . . . . . . . . . . . . . . . . . 11 5.3. ADVERTISEMENT . . . . . . . . . . . . . . . . . . . . . . 12 5.4. ADVERTISEMENT ACKNOWLEDGEMENT . . . . . . . . . . . . . . 13 5.5. CONFIGURE . . . . . . . . . . . . . . . . . . . . . . . . 13 5.6. CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . 14 5.7. Response codes and reason strings . . . . . . . . . . . . 15 6. Protocol state machines . . . . . . . . . . . . . . . . . . . 17 6.1. Media Provider's state machine . . . . . . . . . . . . . 19 6.2. Media Consumer's state machine . . . . . . . . . . . . . 23 7. Versioning . . . . . . . . . . . . . . . . . . . . . . . . . 26 8. Extensions . . . . . . . . . . . . . . . . . . . . . . . . . 26 8.1. Extension example . . . . . . . . . . . . . . . . . . . . 28 9. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . 30 10. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 34 10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . 35 10.2. ADV with MCCs . . . . . . . . . . . . . . . . . . . . . 42 11. Security Considerations . . . . . . . . . . . . . . . . . . . 52 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 12.1. URN Sub-Namespace Registration . . . . . . . . . . . . . 54 12.2. XML Schema registration . . . . . . . . . . . . . . . . 54 12.3. MIME Media Type Registration for 'application/clue+xml' 55 12.4. CLUE Protocol Registry . . . . . . . . . . . . . . . . . 56 12.4.1. CLUE Message Types . . . . . . . . . . . . . . . . . 56 12.4.2. CLUE Response Codes . . . . . . . . . . . . . . . . 57 13. Diff with draft-ietf-clue-protocol-06 . . . . . . . . . . . . 59 14. Diff with draft-ietf-clue-protocol-05 . . . . . . . . . . . . 59 15. Diff with draft-ietf-clue-protocol-04 . . . . . . . . . . . . 59 16. Diff with draft-ietf-clue-protocol-03 . . . . . . . . . . . . 59 17. Diff with draft-ietf-clue-protocol-02 . . . . . . . . . . . . 59 18. Diff with draft-ietf-clue-protocol-01 . . . . . . . . . . . . 60 19. Diff with draft-ietf-clue-protocol-00 . . . . . . . . . . . . 60 20. Diff with draft-presta-clue-protocol-04 . . . . . . . . . . . 60 21. Diff with draft-presta-clue-protocol-03 . . . . . . . . . . . 60 22. Diff with draft-presta-clue-protocol-02 . . . . . . . . . . . 61 Presta & Romano Expires July 27, 2017 [Page 2] Internet-Draft draft-ietf-clue-protocol-12 January 2017 23. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 61 24. References . . . . . . . . . . . . . . . . . . . . . . . . . 61 24.1. Normative References . . . . . . . . . . . . . . . . . . 61 24.2. Informative References . . . . . . . . . . . . . . . . . 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 63 1. Introduction The CLUE protocol is an application protocol used by two CLUE Participants to enhance the experience of a multimedia telepresence session. The main goals of the CLUE protocol are: 1. enabling a Media Provider (MP) to properly announce its current telepresence capabilities to a Media Consumer (MC) in terms of available media captures, groups of encodings, simultaneity constraints and other information defined in [I-D.ietf-clue-framework]; 2. enabling an MC to request the desired multimedia streams from the offering MP. CLUE-capable endpoints are connected by means of the CLUE data channel, an SCTP over DTLS channel which is opened and established as described in [I-D.ietf-clue-signaling] and [I-D.ietf-clue-datachannel]. CLUE protocol messages flowing over such a channel are detailed in this document, both syntactically and semantically. In Section 4 we provide a general overview of the CLUE protocol. CLUE protocol messages are detailed in Section 5. The CLUE Protocol state machines are introduced in Section 6. Versioning and extensions are discussed in Section 7 and Section 8, respectively. The XML schema defining the CLUE messages is reported in Section 9. 2. Terminology This document refers to the same terminology used in [I-D.ietf-clue-framework] and in [RFC7262]. We briefly recall herein some of the main terms used in the document. The definition of "CLUE Participant" herein proposed is not imported from any of the above documents. CLUE Participant (CP): An entity able to use the CLUE protocol within a telepresence session. It can be an endpoint or an MCU able to use the CLUE protocol. Presta & Romano Expires July 27, 2017 [Page 3] Internet-Draft draft-ietf-clue-protocol-12 January 2017 CLUE-capable device: A device that supports the CLUE data channel [I-D.ietf-clue-datachannel], the CLUE protocol and the principles of CLUE negotiation, and seeks CLUE-enabled calls. Endpoint: The logical point of final termination through receiving, decoding and rendering, and/or initiation through capturing, encoding, and sending of media streams. An endpoint consists of one or more physical devices which source and sink media streams, and exactly one Participant (e.g., a [RFC4353] participant). Endpoints can be anything from multiscreen/multicamera room controllers to handheld devices. MCU: Multipoint Control Unit (MCU) - a device that connects two or more endpoints together into one single multimedia conference [RFC7667]. An MCU may include a Mixer [RFC4353]. Media: Any data that, after suitable encoding, can be conveyed over RTP, including audio, video or timed text. Media Capture: A "Media Capture", or simply "Capture", is a source of Media. Media Consumer (MC): A CLUE Participant (i.e., an Endpoint or an MCU) able to receive Media Streams. Capture Encoding: A specific encoding of a Media Capture, to be sent via RTP [RFC3550]. Media Provider (MP): A CLUE Participant (i.e., an Endpoint or an MCU) able to send Media Streams. Media Stream: The term "Media Stream", or simply "Stream", is used as a synonym of Capture Encoding. 3. Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119]. 4. Overview of the CLUE protocol The CLUE protocol is conceived to enable CLUE telepresence sessions. It is designed in order to address SDP limitations in terms of the description of some information about the multimedia streams that are involved in a real-time multimedia conference. Indeed, by simply using SDP it is not possible to convey information about the features Presta & Romano Expires July 27, 2017 [Page 4] Internet-Draft draft-ietf-clue-protocol-12 January 2017 of the flowing multimedia streams that are needed to enable a "being there" rendering experience. Such information is contained in the CLUE framework document and formally defined and described in the CLUE data model document. The CLUE protocol represents the mechanism for the exchange of CLUE information between CLUE Participants. It mainly provides the messages to enable a Media Provider to advertise its telepresence capabilities and to enable a Media Consumer to select the desired telepresence options. The CLUE protocol, as defined in the following, is a stateful, client-server, XML-based application protocol. CLUE protocol messages flow on a reliable and ordered SCTP over DTLS transport channel connecting two CLUE Participants. Messages carry information taken from the XML-based CLUE data model ([I-D.ietf-clue-data-model-schema]). Three main communication phases can be identified: 1. Establishment of the CLUE data channel: in this phase, the CLUE data channel setup takes place. If it completes successfully, the CPs are able to communicate and start the initiation phase. 2. Negotiation of the CLUE protocol version and extensions (initiation phase): the CPs connected via the CLUE data channel agree on the version and on the extensions to be used during the telepresence session. Special CLUE messages are used for such a task (OPTIONS and OPTIONS RESPONSE). The version and extensions negotiation can be performed once during the CLUE session and only at this stage. At the end of that basic negotiation, each CP starts its activity as a CLUE MP and/or CLUE MC. 3. CLUE telepresence capabilities description and negotiation: in this phase, the MP-MC dialogues take place on the data channel by means of the CLUE protocol messages. As soon as the channel is ready, the CLUE Participants must agree on the protocol version and extensions to be used within the telepresence session. CLUE protocol version numbers are characterized by a major version number (single digit) and a minor version number (single digit), both unsigned integers, separated by a dot. While minor version numbers denote backward compatible changes in the context of a given major version, different major version numbers generally indicate a lack of interoperability between the protocol implementations. In order to correctly establish a CLUE dialogue, the involved CPs MUST have in common a major version number (see Section 7 for further details). The subset of the extensions that are allowed within the CLUE session is also determined in the initiation phase, such subset being the one including only the extensions that are supported by both parties. A mechanism for the Presta & Romano Expires July 27, 2017 [Page 5] Internet-Draft draft-ietf-clue-protocol-12 January 2017 negotiation of the CLUE protocol version and extensions is part of the initial phase. According to such a solution, the CP which is the CLUE Channel initiator (CI) issues a proper CLUE message (OPTIONS) to the CP which is the Channel Receiver (CR) specifying the supported version and extensions. The CR then answers by selecting the subset of the CI extensions that it is able to support and determines the protocol version to be used. After the negotiation phase is completed, CLUE Participants describe and agree on the media flows to be exchanged. In many cases CPs will seek to both transmit and receive media. Hence in a call between two CPs, A and B, there would be two separate dialogs, as follows: 1. the one needed to describe and set up the media streams sent from A to B, i.e., the dialogue between A's Media Provider side and B's Media Consumer side 2. the one needed to describe and set up the media streams sent from B to A, i.e., the dialogue between B's Media Provider side and A's Media Consumer side CLUE messages for the media session description and negotiation are designed by considering the MP side as the server side of the protocol, since it produces and provides media streams, and the MC side as the client side of the protocol, since it requests and receives media streams. The messages that are exchanged to set up the telepresence media session are described by focusing on a single MP-MC dialogue. The MP first advertises its available media captures and encoding capabilities to the MC, as well as its simultaneity constraints, according to the information model defined in [I-D.ietf-clue-framework]. The CLUE message conveying the MP's multimedia offer is the ADVERTISEMENT message. Such message leverages the XML data model definitions provided in [I-D.ietf-clue-data-model-schema]. The MC selects the desired streams of the MP by using the CONFIGURE message, which makes reference to the information carried in the previously received ADVERTISEMENT. Besides ADVERTISEMENT and CONFIGURE, other messages have been conceived in order to provide all the needed mechanisms and operations. Such messages are detailed in the following sections. Presta & Romano Expires July 27, 2017 [Page 6] Internet-Draft draft-ietf-clue-protocol-12 January 2017 5. Protocol messages CLUE protocol messages are textual, XML-based messages that enable the configuration of the telepresence session. The formal definition of such messages is provided in the XML Schema provided at the end of this document (Section 9). The XML definitions of the CLUE information provided in [I-D.ietf-clue-data-model-schema] are included within some CLUE protocol messages (namely the ADVERTISEMENT and the CONFIGURE messages), in order to use the concepts defined in [I-D.ietf-clue-framework]. The CLUE protocol messages are the following: o OPTIONS o OPTIONS RESPONSE o ADVERTISEMENT (ADV) o ADVERTISEMENT ACKNOWLEDGEMENT (ACK) o CONFIGURE (CONF) o CONFIGURE RESPONSE (CONF RESPONSE) While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the initiation phase between the CPs, the other messages are involved in MP-MC dialogues. Each CLUE message inherits a basic structure depicted in the following excerpt: Presta & Romano Expires July 27, 2017 [Page 7] Internet-Draft draft-ietf-clue-protocol-12 January 2017 The mandatory information contained in each CLUE message is: o clueId: an XML element containing the identifier (in the form of a generic string) of the CP within the telepresence system; o sequenceNr: an XML element containing the local message sequence number. The sender must increment the sequence numbers by one for each new message sent, the receiver must remember the most recent sequence number received and send back a 402 error if it receives a message with an unexpected sequence number. The initial sequence number can be chosen randomly by each party; o protocol: a mandatory attribute set to "CLUE", identifying the procotol the messages refer to; o v: a mandatory attribute carrying the version of the protocol. The content of the "v" attribute is composed by the major version number followed by a dot and then by the minor version number of the CLUE protocol in use. Allowed values are of this kind are, e.g., "1.3", "2.4" etc. Each CP is responsible for creating and updating up to three independent streams of sequence numbers in messages it sends: (i) one for the messages sent in the initiation phase, (ii) one for the messages sent as MP (if it is acting as a MP), and (iii) one for the messages sent as MC (if it is acting as a MC). Presta & Romano Expires July 27, 2017 [Page 8] Internet-Draft draft-ietf-clue-protocol-12 January 2017 5.1. OPTIONS The OPTIONS message is sent by the CP which is the CI to the CP which is the CR as soon as the CLUE data channel is ready. Besides the information envisioned in the basic structure, it specifies: o mediaProvider: a mandatory boolean field set to "true" if the CP is able to act as a MP o mediaConsumer: a mandatory boolean field set to "true" if the CP is able to act as a MC o supportedVersions: the list of the supported versions o supportedExtensions: the list of the supported extensions The XML Schema of such a message is reported below: Presta & Romano Expires July 27, 2017 [Page 9] Internet-Draft draft-ietf-clue-protocol-12 January 2017 contains the list of the versions that are supported by the CI, each one represented in a child element. The content of each element is a string made by the major version number followed by a dot and then by the minor version number (e.g., 1.3 or 2.4). Exactly one element MUST be provided for each major version supported, containing the maximum minor version number of such a version, since all minor versions are backward compatible. If no is carried within the OPTIONS message, the CI supports only the version declared in the "v" attribute and all the versions having the same major version number and lower minor version number. For example, if the "v" attribute has a value of "3.4" and there is no tag in the OPTIONS message, it means the CI supports only major version 3 with all the minor versions comprised between 3.0 and 3.4, with version 3.4 included. If a is provided, at least one tag MUST be included. The element specifies the list of extensions supported by the CI. If there is no in the OPTIONS message, the CI does not support anything other than what is envisioned in the versions it supports. For each extension, an element is provided. An extension is characterized by a name, an XML schema of reference where the extension is defined, and the version of the protocol which the extension refers to. Presta & Romano Expires July 27, 2017 [Page 10] Internet-Draft draft-ietf-clue-protocol-12 January 2017 5.2. OPTIONS RESPONSE The OPTIONS RESPONSE is sent by a CR to a CI as a reply to the OPTIONS message. As depicted in the figure below, the OPTIONS RESPONSE contains a mandatory response code and a reason string indicating the processing result of the OPTIONS message. If the responseCode is of the type 2xx the response MUST also include , , and elements; it MAY include them for any other response code. and elements are associated with the supported roles (in terms of, respectively MP and MC), similarly to what the CI does in the OPTIONS message. The field indicates the highest commonly supported version number. The content of the element MUST be a string made of the major version number followed by a dot and then by the minor version number (e.g., 1.3 or 2.4). Finally, the commonly supported extensions are copied in the field. Upon reception of the OPTIONS RESPONSE the version to be used is provided in the tag of the message. The following CLUE messages MUST use such a version number in the "v" attribute. The allowed extensions in the CLUE dialogue are those indicated in the of the OPTIONS RESPONSE message. Presta & Romano Expires July 27, 2017 [Page 11] Internet-Draft draft-ietf-clue-protocol-12 January 2017 5.3. ADVERTISEMENT The ADVERTISEMENT message (ADV) is used by the MP to advertise the available media captures and related information to the MC. The MP sends an ADV to the MC as soon as it is ready after the successful completion of the initiation phase, i.e., as soon as the version and the extensions of the CLUE protocol are agreed between the CPs. During a single CLUE session, an MP may send new ADV messages to replace the previous advertisement, if, for instance, its CLUE telepresence media capabilities change mid-call. A new ADV completely replaces the previous ADV. The ADV structure is defined in the schema excerpt below. The ADV contains elements compliant with the CLUE data model that characterize the MP's telepresence offer. Namely, such elements are: the list of the media captures (), of the encoding groups (), of the capture scenes (), of the simultaneous sets (), of the global views (), and of the represented participants (). Each of them is fully described in the CLUE framework document and formally defined in the CLUE data model document. Presta & Romano Expires July 27, 2017 [Page 12] Internet-Draft draft-ietf-clue-protocol-12 January 2017 5.4. ADVERTISEMENT ACKNOWLEDGEMENT The ADVERTISEMENT ACKNOWLEDGEMENT message (ACK) is sent by a MC to a MP to acknowledge an ADV message. As it can be seen from the message schema provided in the following, the ACK contains a response code and a reason string for describing the processing result of the ADV. The carries the sequence number of the ADV the ACK refers to. 5.5. CONFIGURE The CONFIGURE message (CONF) is sent from a MC to a MP to list the advertised captures the MC wants to receive. The MC can send a CONF after the reception of an ADV or each time it wants to request other captures that have been previously advertised by the MP. The content of the CONF message is shown below. Presta & Romano Expires July 27, 2017 [Page 13] Internet-Draft draft-ietf-clue-protocol-12 January 2017 The element contains the sequence number of the ADV message the CONF refers to. The optional boolean element, set to "true" when present, indicates that the CONF message also acknowledges with success the referred advertisement (CONF + ACK message), by applying in that way a piggybacking mechanism for simultaneously acknowledging and replying to the ADV message. The element MUST NOT be present if an ACK message has been already sent back to the MP. The most important content of the CONFIGURE message is the list of the capture encodings provided in the element. Such an element contains a sequence of capture encodings, representing the streams to be instantiated. 5.6. CONFIGURE RESPONSE Presta & Romano Expires July 27, 2017 [Page 14] Internet-Draft draft-ietf-clue-protocol-12 January 2017 The CONFIGURE RESPONSE message (CONF RESPONSE) is sent from the MP to the MC to communicate the processing result of requests carried in the previously received CONF message. It contains a response code with a reason string indicating either the success or the failure (along with failure details) of a CONF request processing. Following, the field contains the sequence number of the CONF message the response refers to. There is no partial execution of commands. As an example, if a MP is able to understand all the selected capture encodings except one, then the whole command fails and nothing is instantiated. 5.7. Response codes and reason strings Response codes are defined as a sequence of three digits. A well- defined meaning is associated with the first digit. Response codes beginning with "2" are associated with successful responses. Response codes beginning with "1" will represent a delayed or incomplete response. Response codes that do not begin with either "2" or "1" indicate an error response, i.e., that an error occurred while processing a CLUE request. In particular, response codes beginning with "3" indicate problems with the XML content of the message (""Bad syntax", "Invalid value", etc.), while response codes beginning with "4" refer to problems related to CLUE protocol semantics ("Invalid sequencing", "Version not supported", etc.). 100, 200, 300 and 400 codes are considered catch-alls. Further response codes can be either defined in future versions of the protocol (by adding them to the related IANA registry), or defined by leveraging the extension mechanism. In any case, such new response codes MUST NOT overwrite the ones here defined and they MUST respect the semantics of the first code digit. Presta & Romano Expires July 27, 2017 [Page 15] Internet-Draft draft-ietf-clue-protocol-12 January 2017 The response codes and strings defined for use with CLUE are as follows: +-----------------+----------------------+--------------------------+ | | | | | Response code | Reason string | Description | | | | | +-----------------+----------------------+--------------------------+ | | | | | 200 | Success | The request has been | | | | successfully processed. | | | | | +-----------------+----------------------+--------------------------+ | | | | | 300 | Syntax errors or | The XML syntax of the | | | inconsistencies | message is not correct | | | | or there are invalid | | | | values. | +-----------------+----------------------+--------------------------+ | | | | | 301 | Bad syntax | The XML syntax of the | | | | message is not correct. | +-----------------+----------------------+--------------------------+ | | | | | 302 | Invalid value | The message | | | | contains an invalid | | | | parameter value. | +-----------------+----------------------+--------------------------+ | | | | | 303 | Conflicting values | The message | | | | contains values that | | | | cannot be used together.| +-----------------+----------------------+--------------------------+ | | | | | 400 | Semantic errors | Semantic errors in the | | | | received CLUE protocol | | | | message. | | | | | +-----------------+----------------------+--------------------------+ | | | | | 401 | Version not supported| The protocol version | | | | used in the message | | | | is not supported. | | | | | +-----------------+----------------------+--------------------------+ | | | | Presta & Romano Expires July 27, 2017 [Page 16] Internet-Draft draft-ietf-clue-protocol-12 January 2017 | 402 | Invalid sequencing | The sequence number of | | | | the message is out | | | | of date. | +-----------------+----------------------+--------------------------+ | | | | | 403 | Invalid identifier | The identifier used in | | | | the message is | | | | not valid or unknown. | +-----------------+----------------------+--------------------------+ | | | | | 404 | ADV Expired | The number of the ADV | | | | the CONF refers to is | | | | out of date. | +-----------------+----------------------+--------------------------+ | | | | | 405 | Subset choice not | The subset choice is not| | | allowed | allowed for the specified| | | | MCC | +-----------------+----------------------+--------------------------+ 6. Protocol state machines The CLUE protocol is an application protocol used between two CPs in order to properly configure a multimedia telepresence session. CLUE protocol messages flow over the CLUE Data Channel, a DTLS/SCTP channel established as depicted in [I-D.ietf-clue-datachannel]. We herein discuss the state machines associated, respectively, with the CLUE Participant, with the MC process and with the MP process. Endpoints often wish to both send and receive media, i.e., act as both MP and MC. As such there will often be two sets of messages flowing in opposite directions; the state machines of these two flows do not interact with each other. Only the CLUE application logic is considered. The interaction of CLUE protocol and SDP negotiations for the media streams exchanged is treated in [I-D.ietf-clue-signaling]. The main state machines focus on the behavior of the CLUE Participant (CP) acting as a CLUE channel initiator/receiver (CI/CR). The initial state is the IDLE one. When in the IDLE state, the CLUE data channel is not established and no CLUE-controlled media are exchanged between the two considered CLUE-capable devices (if there is an ongoing exchange of media streams, such media streams are not currently CLUE-controlled). Presta & Romano Expires July 27, 2017 [Page 17] Internet-Draft draft-ietf-clue-protocol-12 January 2017 When the CLUE data channel set up starts ("start channel"), the CP moves from the IDLE state to the CHANNEL SETUP state. If the CLUE data channel is successfully set up ("channel established"), the CP moves from the CHANNEL SETUP state to the OPTIONS state. Otherwise if ("channel error"), it moves back to the IDLE state. The same transition happens if the CLUE-enabled telepresence session ends ("session ends"), i.e., when an SDP negotiation for removing the CLUE channel is performed. When in the OPTIONS state, the CP addresses the initiation phase where both parts agree on the version and on the extensions to be used in the subsequent CLUE messages exchange phase. If the CP is the Channel Initiator (CI), it sends an OPTIONS message and waits for the OPTIONS RESPONSE message. If the CP is the Channel Receiver (CR), it waits for the OPTIONS message and, as soon as it arrives, replies with the OPTIONS RESPONSE message. If the negotiation is successfully completed ("OPTIONS phase success"), the CP moves from the OPTIONS state to the ACTIVE state. If the initiation phase fails ("OPTIONS phase failure"), the CP moves from the OPTIONS state to the IDLE state. The initiation phase might fail because of one of the following reasons: 1. the CI receives an OPTIONS RESPONSE with an error response code 2. the CI does not receive any OPTIONS RESPONSE and a timeout error is raised 3. the CR does not receive any OPTIONS and a timeout error is raised When in the ACTIVE state, the CP starts the envisioned sub-state machines (i.e., the MP state machine and the MC state machine) according to the roles it plays in the telepresence sessions. Such roles have been previously declared in the OPTIONS and OPTIONS RESPONSE messages involved in the initiation phase (see OPTIONS sections Section 5.1 and Section 5.2 for the details). When in the ACTIVE state, the CP delegates the sending and the processing of the CLUE messages to the appropriate MP/MC sub-state machines. If the CP receives a further OPTIONS/OPTIONS RESPONSE message, it MUST ignore the message and stay in the ACTIVE state. The CP moves from the ACTIVE state to the IDLE one when the sub-state machines that have been activated are (both) in the relative TERMINATED state (see sections Section 6.1 and Section 6.2). Presta & Romano Expires July 27, 2017 [Page 18] Internet-Draft draft-ietf-clue-protocol-12 January 2017 +----+ +---------------------->|IDLE|<----------------------------+ | +-+--+ | | | | | | start | | | channel | | v | | channel error/ +--------+ | | session ends | CHANNEL| | +----------------------+ SETUP | | | +--+-----+ | | | | | | channel | | | established | | channel error/ v OPTIONS phase | | session ends +-------+ failure | +-----------------------+OPTIONS+--------------------------+ | +-+-----+ | | | | | | OPTIONS phase | | | success | | v | | channel error/ +---------+ | | session ends | ACTIVE | | +----------------------+ | | | +----+ +------------------+ | | | MP | | send/receive | | | +----+ | CLUE messages | | | |<-----------------+ | | +----+ | | | | MC | |both sub state machines | | +----+ |terminated | | | | +---------+-------------------------+ 6.1. Media Provider's state machine As soon as the sub-state machine of the MP is activated, it is in the ADV state. In the ADV state, the MP prepares the ADV message reflecting its actual telepresence capabilities. After the ADV has been sent ("ADV sent"), the MP moves from the ADV state to the WAIT FOR ACK state. If an ACK message with a successful response code arrives ("ACK received"), the MP moves to the WAIT FOR CONF state. If a NACK arrives (i.e., an ACK message with an error Presta & Romano Expires July 27, 2017 [Page 19] Internet-Draft draft-ietf-clue-protocol-12 January 2017 response code), and the number of NACKs for the issued ADV is under the retry threshold ("NACK received && retry not expired"), the MP moves back to the ADV state for preparing a new ADV. If a NACK arrives and the number of received NACKs for that ADV overcomes the threshold ("NACK received && retry expired"), the MP goes to the MP- TERMINATED state. The same happens if the waiting time for the ACK is fired a number of times under the retry threshold ("timeout && retry not expired"): also in this case, the MP goes back to the ADV state to send a new copy of the ADV. If the number of retries overcomes the threshold ("timeout && retry expired"), the MP moves from the WAIT FOR ACK state to the MP-TERMINATED state. When in the WAIT FOR ACK state, if a CONFIGURE message with the element set to TRUE arrives ("CONF+ACK received"), the MP goes directly to the CONF RESPONSE state. CONF+ACK messages referring to out-of-date (i.e., having a sequence number equal to or less than the highest seen so far) ADVs MUST be ignored, i.e., they do not trigger any state transition. If the telepresence settings of the MP change while in the WAIT FOR ACK state ("changed telepresence settings"), the MP switches from the WAIT FOR ACK state to the ADV state to create a new ADV. When in the WAIT FOR CONF state, the MP listens to the channel for a CONF request coming from the MC. If a CONF arrives ("CONF received"), the MP switches to the CONF RESPONSE state. If the CONF does not arrive within the timeout interval and the retry threshold has not been overcome ("timeout && retry not expired"), the MP moves back to the ADV state. When the retry expires ("timeout && retry expired") the MP moves to the MP TERMINATED state. If the telepresence settings change in the meanwhile ("changed telepresence settings"), the MP moves from the WAIT FOR CONF back to the ADV state to create the new ADV to be sent to the MC. The MP in the CONF RESPONSE state processes the received CONF in order to produce a CONF RESPONSE message. If the MP successfully processes the MC's configuration, then it sends a 200 CONF RESPONSE ("success CONF RESPONSE sent") and moves to the ESTABLISHED state. If there are errors in the CONF processing, then the MP issues a CONF RESPONSE carrying an error response code and, if under the retry treshold ("error CONF RESPONSE sent && retry not expired"), it goes back to the WAIT FOR CONF state to wait for a new configuration request. If the number of trials exceeds the retry threshold ("error CONF RESPONSE sent && retry expired"), the state MP TERMINATED is reached. Finally, if there are changes in the MP's telepresence settings ("changed telepresence settings"), the MP switches to the ADV state. The MP in the ESTABLISHED state has successfully negotiated the media streams with the MC by means of the CLUE messages. If there are Presta & Romano Expires July 27, 2017 [Page 20] Internet-Draft draft-ietf-clue-protocol-12 January 2017 changes in the MP's telepresence settings ("changed telepresence settings"), the MP moves back to the ADV state. In the ESTABLISHED state, the CLUE-controlled media streams of the session are those described in the last successfully processed CONF message. Presta & Romano Expires July 27, 2017 [Page 21] Internet-Draft draft-ietf-clue-protocol-12 January 2017 +------------------------->+-----+<---------------------------+ | +------------>| ADV |<-------------------+ | | | +-+---+ | |timeout | | | NACK received | |&& | | ADV sent| && | |retry | | v retry not expired| |not | changed| +--------+ | |expired |telepresence+-------------+WAIT FOR+-----------------+ | | settings| +---------+ ACK +-------------------------+ | | |CONF+ACK +-+------+----------------------------------+ | | |received | NACK received && | | | | |ACK received retry expired,| | | | v timeout && retry expired| +------------|-------------+--------+ | timeout +-------------+WAIT FOR| timeout && retry expired | && | | | CONF +----------------------------------+ retry | | +-+------+<-----------------------------+ | not expired | | | | | | | |CONF received | | | | v error CONF RESPONSE sent| | | +-------->+---------+ && retry not expired | | +-------------+CONF |-----------------------------+ | +--------------------->|RESPONSE +---------------------------------+ | | +-+-------+ error CONF RESPONSE sent| | | | && retry expired| | | | success | | | | CONF RESPONSE | | | | sent | | | | | | | | | |CONF | | | |received| v | | | +------------+ | | +-------------+ESTABLISHED | | +----------------------+------------+ | | | | +-----------+ | ! MP | | |TERMINATED | | +-----------+<------------------------------+ Presta & Romano Expires July 27, 2017 [Page 22] Internet-Draft draft-ietf-clue-protocol-12 January 2017 6.2. Media Consumer's state machine As soon as the sub-state machine of the MC is activated, it is in the WAIT FOR ADV state. An MC in the WAIT FOR ADV state is waiting for an ADV coming from the MP. If the ADV arrives ("ADV received"), the MC reaches the ADV PROCESSING state. Otherwise, the MC stays in the WAIT FOR ADV state. In the ADV PROCESSING state, the ADV is parsed by the MC. If the ADV is successfully processed, there are two possibilities. According to the first one, the MC issues a successful ACK message to the MP ("ACK sent") and moves to the CONF state. In the second one, the MC prepares and sends a CONF message with the field set to "true" ("CONF+ACK sent") and goes directly to the WAIT FOR CONF RESPONSE state. If the ADV processing is unsuccessful (bad syntax, missing XML elements, etc.), and the number of times this has happened is under the retry threshold, the MC sends a NACK message (i.e., an ACK with an error response code) to the MP and optionally further describes the problem via a proper reason phrase. In this way ("NACK sent && retry not expired"), the MC switches back to the WAIT FOR ADV state, waiting for a new ADV. If the NACK retry expires ("NACK sent && retry expired"), the MC moves to the MC TERMINATED state. When in the CONF state, the MC prepares the CONF request to be issued to the MP on the basis of the previously ACK-ed ADV. When the CONF has been sent ("CONF sent"), the MC moves to the WAIT FOR CONF RESPONSE state. If a new ADV arrives in the meanwhile ("ADV received"), the MC goes back to the ADV PROCESSING state. In the WAIT FOR CONF RESPONSE state, the MC waits for the MP's response to the issued CONF or CONF+ACK. If a 200 CONF RESPONSE message is received ("successful CONF RESPONSE received"), it means that the MP and the MC have successfully agreed on the media streams to be shared. Then, the MC can move to the ESTABLISHED state. On the other hand, if an error response is received and the associated retry counter does not overcome the threshold ("error CONF RESPONSE received && retry not expired"), the MC moves back to the CONF state to prepare a new CONF request. In case of "error CONF RESPONSE received && retry expired", the MC moves to the MC TERMINATED state. If no CONF RESPONSE arrives and the number of timeouts is under the threshold ("timeout && retry not expired"), the MC moves to the CONF state and sends again the CONF message. If no CONF RESPONSE arrives and the number of timeouts is over the threshold ("timeout && retry expired"), the MC moves to the MC TERMINATED state. If a new ADV is received in the WAIT FOR CONF RESPONSE state, the MC switches to the ADV PROCESSING state. Presta & Romano Expires July 27, 2017 [Page 23] Internet-Draft draft-ietf-clue-protocol-12 January 2017 When the MC is in the ESTABLISHED state, the telepresence session configuration has been set up at the CLUE application level according to the MC's preferences. Both the MP and the MC have agreed on (and are aware of) the CLUE-controlled media streams to be exchanged within the call. While in the ESTABLISHED state, it might happen that the MC decides to change something in the call settings. The MC then issues a new CONF ("CONF sent") and goes to wait for the new CONF RESPONSE in the WAIT FOR CONF RESPONSE state. On the other hand, in the ESTABLISHED state, if a new ADV arrives from the MP ("ADV received"), it means that something has changed on the MP's side. The MC then moves to the ADV PROCESSING state. Presta & Romano Expires July 27, 2017 [Page 24] Internet-Draft draft-ietf-clue-protocol-12 January 2017 +----------+ | WAIT FOR | | ADV | +----+-----+<--------+ | | ADV | NACK sent| received| && retry | v not expired| NACK sent && +-----------+--------+ retry expired | ADV +---------------------------+ | PROCESSING|<-----------------------+ | +-+-----+---+ | | | | | | CONF+ACK | | ACK | | sent | | sent | | | v | | | +-----+ | | | |CONF | ADV received | | +----------------------->| +-------------------------+ | | | +--+--+ | | |error CONF RESPONSE | | error CONF RESPONSE | | |received && | | CONF received && | | |retry not expired, | | sent retry expired | | |timeout && | | +------------------------+ |retry not expired v v | | | +------------------+---------------+ ADV received | | +--------->| WAIT FOR +---------------------+ | | | CONF RESPONSE+------------------------+ | +-------+-------+ timeout&& | | | | retry expired | | | | | | | |successful | | | |CONF RESPONSE | | | |received | | | v | | |CONF sent +-----------+ ADV received| | +------------+ESTABLISHED+-----------------------+ | +-----------+ | | | | +-----------+ | | MC |<------------------------+ |TERMINATED | +-----------+ Presta & Romano Expires July 27, 2017 [Page 25] Internet-Draft draft-ietf-clue-protocol-12 January 2017 7. Versioning CLUE protocol messages are XML messages compliant to the CLUE protocol XML schema [I-D.ietf-clue-data-model-schema]. The version of the protocol corresponds to the version of the schema. Both client and server have to test the compliance of the received messages with the XML schema of the CLUE protocol. If the compliance is not verified, the message cannot be processed further. Obviously, client and server cannot communicate if they do not share exactly the same XML schema. Such a schema associated with the CLUE URN "urn:ietf:params:xml:ns:clue-protocol". If all CLUE-enabled devices use that schema there will be no interoperability problems due to schema issues. This document defines XML schema version 1.0. The version usage is similar in philosophy to XMPP ([RFC6120]). A version number has major and minor components, each a non-negative integer. Major version changes denote non-interoperable changes. Minor version changes denote schema changes that are backward compatible by ignoring unknown XML elements, or other backward compatible changes. The minor versions of the XML schema MUST be backward compatible, not only in terms of schema but also semantically and procedurally as well. This means that they should define further features and functionality besides those defined in the previous versions, in an incremental way, without impacting the basic rules defined in the previous version of the schema. In this way, if a MP is able to speak, e.g., version 1.5 of the protocol while the MC only understands version 1.4, the MP should have no problem in reverting the dialogue back to version 1.4 without exploiting 1.5 features and functionality. Version 1.4 is the one to be spoken and has to appear in the "v" attribute of the subsequent CLUE messages. In other words, in this example, the MP MUST use version 1.4 and downgrade to the lower version. This said, and coherently with the general IETF "protocol robustness principle" stating that "an implementation must be conservative in its sending behavior, and liberal in its receiving behavior" [RFC1122], Clue Participants MUST ignore unknown elements or attributes that are not envisioned in the negotiated protocol version and related extensions. 8. Extensions Although the standard version of the CLUE protocol XML schema is designed to thoroughly cope with the requirements emerging from the application domain, new needs might arise and extensions can be designed. Extensions specify information and behaviors that are not described in a certain version of the protocol and specified in the Presta & Romano Expires July 27, 2017 [Page 26] Internet-Draft draft-ietf-clue-protocol-12 January 2017 related RFC document. Such information and behaviors can be optionally used in a CLUE dialogue and MUST be negotiated in the CLUE initiation phase. They can relate to: 1. new information, to be carried in the existing messages. For example, more fields may be added within an existing message; 2. new messages. This is the case if there is no proper message for a certain task, so a brand new CLUE message needs to be defined. As to the first type of extensions, it is possible to distinguish between protocol-specific and data model information. Indeed, CLUE messages are envelopes carrying both: o (i) XML elements defined within the CLUE protocol XML schema itself (protocol-specific information) o (ii) other XML elements compliant to the CLUE data model schema (data model information) When new protocol-specific information is needed somewhere in the protocol messages, it can be added in place of the elements and elements envisioned by the protocol schema. The policy currently defined in the protocol schema for handling and elements is: o elementFormDefault="qualified" o attributeFormDefault="unqualified" In that case, the new information must be qualified by namespaces other than "urn:ietf:params:xml:ns:clue-protocol" (the protocol URN) and "urn:ietf:params:xml:ns:clue-info" (the data model URN). Elements or attributes from unknown namespaces MUST be ignored. The other matter concerns data model information. Data model information is defined by the XML schema associated with the URN "urn:ietf:params:xml:ns:clue-info". Also for the XML elements defined in such a schema there are extensibility issues. Those issues are overcome by using and placeholders. Similarly to what said before, new information within data model elements can be added in place of and schema elements, as long as they are properly namespace qualified. On the other hand (second type of extensions), "extra" CLUE protocol messages, i.e., messages not envisioned in the latest standard version of the schema, can be needed. In that case, the messages and Presta & Romano Expires July 27, 2017 [Page 27] Internet-Draft draft-ietf-clue-protocol-12 January 2017 the associated behavior should be defined in external documents that both communication parties must be aware of. Both types of extensions, i.e., new information and new messages, can be characterized by: o a name; o an external XML Schema defining the XML information and/or the XML messages representing the extension; o the standard version of the protocol the extension refers to. For that reason, the extensions are represented by means of the element as defined below, which is carried within the OPTIONS and OPTIONS RESPONSE messages to represent the extensions supported by the CI and by the CR. 8.1. Extension example An example of extension might be a "new" capture attribute (i.e., a capture attribute which is not envisioned in the current standard defining the CLUE data model in [I-D.ietf-clue-data-model-schema]) needed to further describe a video capture. Such a new attribute MUST be defined in a separated XML schema file and SHOULD be provided with a companion document describing its semantics and use. The CLUE data model document ([I-D.ietf-clue-data-model-schema]) envisions the possibility of adding this kind of "extra" information in the description of a video capture by keeping the compatibility with the CLUE data model schema. This is made possible thanks to the presence of the element in the XML definition of the video capture, allowing for the introduction of a new XML field in the XML description. For the sake of convenience, the XML definition of a Presta & Romano Expires July 27, 2017 [Page 28] Internet-Draft draft-ietf-clue-protocol-12 January 2017 video capture taken from [I-D.ietf-clue-data-model-schema] is reported below. According to such a definition, a video capture might have, after the set of the generic media capture attributes, a set of new attributes defined elsewhere, i.e., in an XML schema defining an extension. The XML schema defining the extension might look like the following: Presta & Romano Expires July 27, 2017 [Page 29] Internet-Draft draft-ietf-clue-protocol-12 January 2017 By using the extension above, a video capture can be further described in the advertisement using the element containing two extra information ( and ) besides using the attributes envisioned for a generic media capture. As stated in this document, both participants MUST be aware of the extension schema and related semantics to use such an extension and MUST negotiate it via the OPTIONS and OPTIONS RESPONSE mechanism. 9. XML Schema In this section, the XML schema defining the CLUE messages is provided. Presta & Romano Expires July 27, 2017 [Page 30] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Presta & Romano Expires July 27, 2017 [Page 31] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Presta & Romano Expires July 27, 2017 [Page 32] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Presta & Romano Expires July 27, 2017 [Page 33] Internet-Draft draft-ietf-clue-protocol-12 January 2017 10. Examples In the following we provide an example of ADVERTISEMENT representing the telepresence environment described in Presta & Romano Expires July 27, 2017 [Page 34] Internet-Draft draft-ietf-clue-protocol-12 January 2017 [I-D.ietf-clue-data-model-schema], Section "Sample XML file" and Section "MCC example" respectively. 10.1. Simple ADV The associated Media Provider's telepresence capabilities are described in [I-D.ietf-clue-data-model-schema], Section "Sample XML file". Napoli CLUE Endpoint 34 CS1 0.0 0.0 10.0 0.0 1.0 10.0 true EG1 main audio from the room 1 it static room alice bob ciccio Presta & Romano Expires July 27, 2017 [Page 35] Internet-Draft draft-ietf-clue-protocol-12 January 2017 CS1 -2.0 0.0 10.0 -3.0 20.0 9.0 -1.0 20.0 9.0 -3.0 20.0 11.0 -1.0 20.0 11.0 true EG0 left camera video capture 1 it static individual ciccio Presta & Romano Expires July 27, 2017 [Page 36] Internet-Draft draft-ietf-clue-protocol-12 January 2017 CS1 0.0 0.0 10.0 -1.0 20.0 9.0 1.0 20.0 9.0 -1.0 20.0 11.0 1.0 20.0 11.0 true EG0 central camera video capture 1 it static individual alice CS1 2.0 0.0 10.0 1.0 20.0 9.0 3.0 20.0 9.0 1.0 20.0 11.0 3.0 20.0 11.0 true EG0 right camera video capture 1 it static individual bob CS1 -3.0 20.0 9.0 3.0 20.0 9.0 -3.0 20.0 11.0 3.0 20.0 11.0 SE1 SoundLevel:0 EG0 loudest room segment 2 it static individual CS1 0.0 0.0 10.0 Presta & Romano Expires July 27, 2017 [Page 39] Internet-Draft draft-ietf-clue-protocol-12 January 2017 -3.0 20.0 7.0 3.0 20.0 7.0 -3.0 20.0 13.0 3.0 20.0 13.0 true EG0 zoomed out view of all people in the room 2 it static room alice bob ciccio 600000 ENC1 ENC2 ENC3 Presta & Romano Expires July 27, 2017 [Page 40] Internet-Draft draft-ietf-clue-protocol-12 January 2017 300000 ENC4 ENC5 VC0 VC1 VC2 VC3 VC4 AC0 VC3 SE1 VC0 VC2 VC4 Presta & Romano Expires July 27, 2017 [Page 41] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Bob minute taker Alice presenter Ciccio chairman timekeeper 10.2. ADV with MCCs The associated Media Provider's telepresence capabilities are described in [I-D.ietf-clue-data-model-schema], Section "MCC example". Napoli CLUE Endpoint 34 CS1 Presta & Romano Expires July 27, 2017 [Page 42] Internet-Draft draft-ietf-clue-protocol-12 January 2017 0.0 0.0 10.0 0.0 1.0 10.0 true EG1 main audio from the room 1 it static room alice bob ciccio CS1 0.5 1.0 0.5 0.5 0.0 0.5 true EG0 left camera video capture Presta & Romano Expires July 27, 2017 [Page 43] Internet-Draft draft-ietf-clue-protocol-12 January 2017 1 it static individual ciccio CS1 0.0 0.0 10.0 -1.0 20.0 9.0 1.0 20.0 9.0 -1.0 20.0 11.0 1.0 20.0 11.0 true EG0 central camera video capture Presta & Romano Expires July 27, 2017 [Page 44] Internet-Draft draft-ietf-clue-protocol-12 January 2017 1 it static individual alice CS1 2.0 0.0 10.0 1.0 20.0 9.0 3.0 20.0 9.0 1.0 20.0 11.0 3.0 20.0 11.0 true EG0 right camera video capture 1 Presta & Romano Expires July 27, 2017 [Page 45] Internet-Draft draft-ietf-clue-protocol-12 January 2017 it static individual bob CS1 -3.0 20.0 9.0 3.0 20.0 9.0 -3.0 20.0 11.0 3.0 20.0 11.0 SE1 SoundLevel:0 EG0 loudest room segment 2 it static individual CS1 0.0 0.0 10.0 -3.0 20.0 7.0 3.0 20.0 7.0 -3.0 20.0 13.0 3.0 20.0 13.0 true EG0 zoomed out view of all people in the room 2 it static room alice bob ciccio Presta & Romano Expires July 27, 2017 [Page 47] Internet-Draft draft-ietf-clue-protocol-12 January 2017 CS1 -3.0 20.0 9.0 3.0 20.0 9.0 -3.0 20.0 11.0 3.0 20.0 11.0 SE1 SoundLevel:1 penultimate loudest room segment it static individual CS1 -3.0 20.0 9.0 Presta & Romano Expires July 27, 2017 [Page 48] Internet-Draft draft-ietf-clue-protocol-12 January 2017 3.0 20.0 9.0 -3.0 20.0 11.0 3.0 20.0 11.0 SE1 SoundLevel:2 last but two loudest room segment it static individual CS1 -3.0 20.0 9.0 3.0 20.0 9.0 -3.0 20.0 11.0 Presta & Romano Expires July 27, 2017 [Page 49] Internet-Draft draft-ietf-clue-protocol-12 January 2017 3.0 20.0 11.0 VC3 VC5 VC6 3 EG0 big picture of the current speaker + pips about previous speakers 3 it static individual 600000 ENC1 ENC2 ENC3 300000 ENC4 ENC5 participants' individual videos VC0 Presta & Romano Expires July 27, 2017 [Page 50] Internet-Draft draft-ietf-clue-protocol-12 January 2017 VC1 VC2 loudest segment of the room VC3 loudest segment of the room + pips VC7 room audio AC0 room video VC4 VC3 VC7 SE1 VC0 VC2 VC4 Presta & Romano Expires July 27, 2017 [Page 51] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Bob minute taker Alice presenter Ciccio chairman timekeeper 11. Security Considerations As a general consideration, we remark that the CLUE framework (and related protocol) has been conceived at the outset by embracing the security-by-design paradigm. This entails that a number of requirements have been identified and properly standardized as mandatory within the entire set of documents associated with the CLUE architecture. Requirements include: (i) the use of cryptography and authentication; (ii) protection of all sensitive fields; (iii) mutual authentication between CLUE endpoints; (iv) the presence of authorization mechanisms; (v) the presence of native defence mechanisms against malicious activities such as eavesdropping, selective modification, deletion, replay (and related combinations thereof). Hence, security of the single components of the CLUE solution cannot be evaluated independently of the integrated view of the final architecture. The CLUE protocol is an application-level protocol allowing a Media Producer and a Media Consumer to negotiate a variegated set of parameters associated with the establishment of a telepresence session. This unavoidably exposes a CLUE-enabled telepresence system Presta & Romano Expires July 27, 2017 [Page 52] Internet-Draft draft-ietf-clue-protocol-12 January 2017 to a number of potential threats, most of which are extensively discussed in the framework document [I-D.ietf-clue-framework]. The security considerations section of the mentioned document actually discusses issues associated with the setup and management of a telepresence session both in the basic case involving two CLUE endpoints acting, respectively, as MP and MC, and in the more advanced scenario envisaging the presence of an MCU. The framework document also mentions that the information carried within CLUE protocol messages might contain sensitive data, which SHOULD hence be accessed only by authenticated endpoints. Security issues associated with the CLUE data model schema are discussed in [I-D.ietf-clue-data-model-schema]. There is extra information carried by the CLUE protocol which is not associated with the CLUE data model schema and which exposes information that might be of concern. This information is primarily exchanged during the negotiation phase via the OPTIONS and OPTIONS RESPONSE messages. In the Clue Participant state machine OPTIONS state, both parties agree on the version and on the extensions to be used in the subsequent CLUE messages exchange phase. A malicious participant might either try to retrieve a detailed footprint of a specific CLUE protocol implementation during this initial setup phase, or force the communicating party to use a non-up-to-date version of the protocol which they know how to break. Indeed, exposing all of the supported versions and extensions could conceivably leak information about the specific implementation of the protocol. In theory an implementation could choose not to announce all of the versions it supports if it wants to avoid such leakage, though at the expenses of interoperability. With respect to the above considerations, it is noted that the OPTIONS state is only reached after the CLUE data channel has been successfully set up. This ensures that only authenticated parties can exchange OPTIONS and related OPTIONS RESPONSE messages and hence drastically reduces the attack surface which is exposed to malicious parties. The CLUE framework clearly states the requirement to protect CLUE protocol messages against threats deriving from the presence of a malicious agent capable to gain access to the CLUE data channel. Such a requirement is met by the CLUE data channel solution described in [I-D.ietf-clue-datachannel], which ensures protection from both message recovery and message tampering. With respect to this last point, any implementation of the CLUE protocol compliant with the CLUE specification MUST rely on the exchange of messages which flow on top of a reliable and ordered SCTP over DTLS transport channel connecting two CLUE Participants. Presta & Romano Expires July 27, 2017 [Page 53] Internet-Draft draft-ietf-clue-protocol-12 January 2017 12. IANA Considerations This document registers a new XML namespace, a new XML schema and the MIME type for the schema. This document also registers the "CLUE" Application Service tag and the "CLUE" Application Protocol tag and defines registries for the CLUE messages and response codes. 12.1. URN Sub-Namespace Registration This section registers a new XML namespace, ""urn:ietf:params:xml:ns:clue-protocol"". URI: urn:ietf:params:xml:ns:clue-protocol Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon Pietro Romano (spromano@unina.it). XML: BEGIN CLUE Messages

Namespace for CLUE Messages

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

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

See RFCXXXX.

END 12.2. XML Schema registration This section registers an XML schema per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:schema:clue-protocol Registrant Contact: CLUE working group (clue@ietf.org), Simon Pietro Romano (spromano@unina.it). Presta & Romano Expires July 27, 2017 [Page 54] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Schema: The XML for this schema can be found as the entirety of Section 9 of this document. 12.3. MIME Media Type Registration for 'application/clue+xml' This section registers the ""application/clue+xml"" MIME type. To: ietf-types@iana.org Subject: Registration of MIME media type application/clue+xml MIME media type name: application MIME subtype name: clue+xml Required parameters: (none) Optional parameters: charset Same as the charset parameter of "application/xml" as specified in [RFC7303], Section 3.2. Encoding considerations: Same as the encoding considerations of "application/xml" as specified in [RFC7303], Section 3.2. Security considerations: This content type is designed to carry protocol data related to telepresence session control. Some of the data could be considered private. This media type does not provide any protection and thus other mechanisms such as those described in Section Security are required to protect the data. This media type does not contain executable content. Interoperability considerations: None. Published specification: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.]] Applications that use this media type: CLUE participants. Additional Information: Magic Number(s): (none), File extension(s): .xml, Macintosh File Type Code(s): TEXT. Person & email address to contact for further information: Simon Pietro Romano (spromano@unina.it). Intended usage: LIMITED USE Author/Change controller: The IETF Presta & Romano Expires July 27, 2017 [Page 55] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Other information: This media type is a specialization of application/xml [RFC7303], and many of the considerations described there also apply to application/clue+xml. 12.4. CLUE Protocol Registry The document requests that the IANA creates new registries for CLUE messages and response codes. 12.4.1. CLUE Message Types The following summarizes the registry for CLUE messages: Related Registry: CLUE Message Types Registry Defining RFC: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.]] Registration/Assignment Procedures: Following the policies outlined in [RFC5226], the IANA policy for assigning new values for the CLUE message types for the CLUE protocol is Specification Required. Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon Pietro Romano (spromano@unina.it). The initial Message table is populated using the CLUE messages described in Section 5 and defined in the XML schema in Section 9. Presta & Romano Expires July 27, 2017 [Page 56] Internet-Draft draft-ietf-clue-protocol-12 January 2017 +-------------------+-----------------------------------+-----------+ | Message | Description | Reference | +-------------------+-----------------------------------+-----------+ | options | "OPTIONS" in this document. Sent | RFCXXXX | | | by the CI to the CR in the | | | | initiation phase to specify the | | | | roles played by the CI, the | | | | supported versions and the | | | | supported extensions. | | | optionsResponse | "OPTIONS RESPONSE" in this | RFCXXXX | | | document. Sent by the CI to the | | | | CR in reply to an OPTIONS message | | | | to finally estabilsh the version | | | | and the extensions to be used in | | | | the following CLUE messages | | | | exchange. | | | advertisement | "ADVERTISEMENT" or "ADV" in this | RFCXXXX | | | document. Sent by the MP to the | | | | MC to specify the telepresence | | | | capabilities of the MP expressed | | | | according to the CLUE framework. | | | ack | "ACK" in this document. Sent by | RFCXXXX | | | the MC to the MP to acknowledge | | | | the reception of an ADVERTISEMENT | | | | message. | | | configure | "CONFIGURE" or "CONF" in this | RFCXXXX | | | document. Sent by the MC to the | | | | MP to specify the desired media | | | | captures among those specified in | | | | the ADVERTISEMENT. | | | configureResponse | "CONFIGURE RESPONSE" or "CONF | RFCXXXX | | | RESPONSE" in this document. Sent | | | | by the MP to the MC in reply to a | | | | CONFIGURE message to communicate | | | | if the configuration request has | | | | been successfully processed or | | | | not. | | +-------------------+-----------------------------------+-----------+ IANA-CLUE 12.4.2. CLUE Response Codes The following summarizes the requested registry for CLUE response codes: Related Registry: CLUE Response Code Registry Presta & Romano Expires July 27, 2017 [Page 57] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Defining RFC: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.]] Registration/Assignment Procedures: Following the policies outlined in [RFC5226], the IANA policy for assigning new values for the Response codes for CLUE shall be Specification Required. Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon Pietro Romano (spromano@unina.it). The initial Response-code table is populated using the Response codes defined in Section 5.7 as follows: +--------+-----------------+----------------------------+-----------+ | Number | Default | Description | Reference | | | Response String | | | +--------+-----------------+----------------------------+-----------+ | 200 | Success | The request has been | RFCXXXX | | | | successfully processed. | | | 300 | Syntax errors | The XML syntax of the | RFCXXXX | | | and | message is not correct or | | | | inconsistencies | there are invalid values. | | | 301 | Bad syntax | The XML syntax of the | RFCXXXX | | | | message is not correct. | | | 302 | Invalid value | The message contains an | RFCXXXX | | | | invalid parameter value. | | | 303 | Conficting | The message contains | RFCXXXX | | | values | values that cannot be used | | | | | together. | | | 400 | Semantic errors | Semantic errors in the | RFCXXXX | | | | received CLUE protocol | | | | | message. | | | 401 | Version not | The protocol version used | RFCXXXX | | | supported | in the message is not | | | | | supported. | | | 402 | Invalid | The sequence number of the | RFCXXXX | | | sequencing | message is out of date. | | | 403 | Invalid | The identifier used in the | RFCXXXX | | | identifier | message is no valid or | | | | | unknown. | | | 404 | ADV Expired | The number of the ADV the | RFCXXXX | | | | CONF refers to is out of | | | | | date. | | | 405 | Subset choice | The subset choice is not | RFCXXXX | | | not allowed | allowed for the specified | | | | | MCC. | | +--------+-----------------+----------------------------+-----------+ Presta & Romano Expires July 27, 2017 [Page 58] Internet-Draft draft-ietf-clue-protocol-12 January 2017 13. Diff with draft-ietf-clue-protocol-06 o XML schema definition of has been changed to match pattern "X.Y", where X and Y are single digits. o 100, 200, 300, 400 defined as catch-all response codes. o Updates in IANA section. 14. Diff with draft-ietf-clue-protocol-05 o This document corrects some versioning errors of draft-ietf-clue- protocol-05. 15. Diff with draft-ietf-clue-protocol-04 o The document has been revised based on feedback recevied on the ML. No major modification is included in this version. 16. Diff with draft-ietf-clue-protocol-03 o Response codes section updated. o maxCaptureEncodings removed from examples, allowSubsetChoice added. o State machines descriptions aligned with pictures. o Applied recommended updates indicated in Christian's review (2015-03-19). 17. Diff with draft-ietf-clue-protocol-02 o CLUE Participant state machine: TERMINATED state replaced with IDLE. o MP and MC state machines: SDP O/A state removed. o Diff mechanism (and related example) removed. o Schema updates: versionType used as the data type for all versions fields, xs:unsignedInt used as the data type for all sequence number fields, diff support removed from the ADV definition. Presta & Romano Expires July 27, 2017 [Page 59] Internet-Draft draft-ietf-clue-protocol-12 January 2017 18. Diff with draft-ietf-clue-protocol-01 o The diff mechanism for the ADV message has been introduced. o READV and READV RESPONSE message have been both removed. o The state machines have been deeply reviewed and changed. o References: references have been updated and splitted into Informative references and Normative references as in framework v17. o Schema: changed in , in o Terminology: many definitions added. o Response codes updated. 19. Diff with draft-ietf-clue-protocol-00 1. The XML schema of the ADVERTISEMENT and of the READV have been aligned with the current definitions in [I-D.ietf-clue-data-model-schema] (example of updates: --> , --> ) 2. Text has been added to clarify that, in the OPTIONS RESPONSE, when the response code is not an error response code, both and are mandatory. 3. The content of the "v" attribute and of the elements carried in the OPTIONS and OPTIONS RESPONSE messages has been described more precisely. 4. Advertisement examples have been added. 20. Diff with draft-presta-clue-protocol-04 1. The response code type error in the OPTIONS response (and in other parts) has been corrected. 21. Diff with draft-presta-clue-protocol-03 1. The XML Schema has been deeply revised and completed. 2. The descriptions of the CLUE messages have been added. Presta & Romano Expires July 27, 2017 [Page 60] Internet-Draft draft-ietf-clue-protocol-12 January 2017 3. The distinction between major version numbers and minor version numbers has been cut and pasted from [I-D.ietf-clue-signaling]. 4. Besides the two way one, a three way mechanism for the options negotiation has been proposed and provided to foster discussion. 22. Diff with draft-presta-clue-protocol-02 1. "Terminology" section added. 2. Introduced the concept of "CLUE Participant" - an Endpoint or a MCU able to use the CLUE protocol within a telepresence session. A CLUE Participant can act as a Media Provider and/or as a Media Consumer. 3. Introduced the ACK/NACK mechanism for the ADVERTISEMENT. 4. MP and MC state machines have been updated. The CP state machine has been added. 23. Acknowledgments The authors thank all the CLUErs for their precious feedbacks and support, in particular Paul Kyzivat, Christian Groves and Scarlett Liuyan. 24. References 24.1. Normative References [I-D.ietf-clue-data-model-schema] Presta, R. and S. Romano, "An XML Schema for the CLUE data model", draft-ietf-clue-data-model-schema-17 (work in progress), August 2016. [I-D.ietf-clue-datachannel] Holmberg, C., "CLUE Protocol data channel", draft-ietf- clue-datachannel-14 (work in progress), August 2016. [I-D.ietf-clue-framework] Duckworth, M., Pepperell, A., and S. Wenger, "Framework for Telepresence Multi-Streams", draft-ietf-clue- framework-25 (work in progress), January 2016. [I-D.ietf-clue-signaling] Kyzivat, P., Xiao, L., Groves, C., and R. Hansen, "CLUE Signaling", draft-ietf-clue-signaling-10 (work in progress), January 2017. Presta & Romano Expires July 27, 2017 [Page 61] Internet-Draft draft-ietf-clue-protocol-12 January 2017 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, July 2003, . [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004, . [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, DOI 10.17487/RFC5226, May 2008, . [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303, DOI 10.17487/RFC7303, July 2014, . 24.2. Informative References [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts - Communication Layers", STD 3, RFC 1122, DOI 10.17487/RFC1122, October 1989, . [RFC4353] Rosenberg, J., "A Framework for Conferencing with the Session Initiation Protocol (SIP)", RFC 4353, DOI 10.17487/RFC4353, February 2006, . [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120, March 2011, . [RFC7262] Romanow, A., Botzko, S., and M. Barnes, "Requirements for Telepresence Multistreams", RFC 7262, DOI 10.17487/RFC7262, June 2014, . [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, DOI 10.17487/RFC7667, November 2015, . Presta & Romano Expires July 27, 2017 [Page 62] Internet-Draft draft-ietf-clue-protocol-12 January 2017 Authors' Addresses Roberta Presta University of Napoli Via Claudio 21 Napoli 80125 Italy EMail: roberta.presta@unina.it Simon Pietro Romano University of Napoli Via Claudio 21 Napoli 80125 Italy EMail: spromano@unina.it Presta & Romano Expires July 27, 2017 [Page 63]