[Docs] [txt|pdf] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits]

Versions: (draft-presta-clue-protocol) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14

CLUE Working Group                                             R. Presta
Internet-Draft                                              S. P. Romano
Intended status: Standards Track                    University of Napoli
Expires: April 9, 2018                                   October 6, 2017


                             CLUE protocol
                      draft-ietf-clue-protocol-14

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 https://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 April 9, 2018.

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
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents



Presta & P. Romano        Expires April 9, 2018                 [Page 1]


Internet-Draft         draft-ietf-clue-protocol-14          October 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 . . . . . . . . . . . . . . . . . . . . . .   6
     5.1.  options . . . . . . . . . . . . . . . . . . . . . . . . .   9
     5.2.  optionsResponse . . . . . . . . . . . . . . . . . . . . .  11
     5.3.  advertisement . . . . . . . . . . . . . . . . . . . . . .  12
     5.4.  ack . . . . . . . . . . . . . . . . . . . . . . . . . . .  13
     5.5.  configure . . . . . . . . . . . . . . . . . . . . . . . .  14
     5.6.  configureResponse . . . . . . . . . . . . . . . . . . . .  15
     5.7.  Response codes and reason strings . . . . . . . . . . . .  16
   6.  Protocol state machines . . . . . . . . . . . . . . . . . . .  18
     6.1.  Media Provider's state machine  . . . . . . . . . . . . .  20
     6.2.  Media Consumer's state machine  . . . . . . . . . . . . .  24
   7.  Versioning  . . . . . . . . . . . . . . . . . . . . . . . . .  27
   8.  Extensions  . . . . . . . . . . . . . . . . . . . . . . . . .  27
     8.1.  Extension example . . . . . . . . . . . . . . . . . . . .  29
   9.  XML Schema  . . . . . . . . . . . . . . . . . . . . . . . . .  31
   10. Examples  . . . . . . . . . . . . . . . . . . . . . . . . . .  36
     10.1.  Simple 'advertisement' . . . . . . . . . . . . . . . . .  36
     10.2.  'advertisement' with Multiple Content Captures . . . . .  44
   11. Security Considerations . . . . . . . . . . . . . . . . . . .  54
   12. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  55
     12.1.  URN Sub-Namespace Registration . . . . . . . . . . . . .  55
     12.2.  XML Schema registration  . . . . . . . . . . . . . . . .  56
     12.3.  MIME Media Type Registration for 'application/clue+xml'   56
     12.4.  CLUE Protocol Registry . . . . . . . . . . . . . . . . .  57
       12.4.1.  CLUE Message Types . . . . . . . . . . . . . . . . .  57
       12.4.2.  CLUE Response Codes  . . . . . . . . . . . . . . . .  58
   13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  60
   14. References  . . . . . . . . . . . . . . . . . . . . . . . . .  60
     14.1.  Normative References . . . . . . . . . . . . . . . . . .  60
     14.2.  Informative References . . . . . . . . . . . . . . . . .  61
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  61








Presta & P. Romano        Expires April 9, 2018                 [Page 2]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


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.

   Capture Encoding:  A specific encoding of a Media Capture, to be sent
      via RTP [RFC3550].

   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.

   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.





Presta & P. Romano        Expires April 9, 2018                 [Page 3]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   Endpoint:  A CLUE-capable device which is 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 [RFC4353]
      Participant (which, in turn, includes exactly one SIP User Agent).
      Endpoints can be anything from multiscreen/multicamera rooms to
      handheld devices.

   MCU:  a CLUE-capable device that connects two or more endpoints
      together into one single multimedia conference [RFC5117].  An MCU
      includes an [RFC4353]-like Mixer, without the [RFC4353]
      requirement to send media to each participant.

   Media:  Any data that, after suitable encoding, can be conveyed over
      RTP, including audio, video or timed text.

   Media Capture:  a source of Media, such as from one or more Capture
      Devices or constructed from other Media streams.

   Media Consumer (MC):  A CLUE Participant (i.e., an Endpoint or an
      MCU) able to receive Capture Encodings.

   Media Provider (MP):  A CLUE Participant (i.e., an Endpoint or an
      MCU) able to send Capture Encodings.

   Stream:  a Capture Encoding sent from a Media Provider to a Media
      Consumer via RTP [RFC3550].

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
   of the flowing multimedia streams that are needed to enable a "being
   there" rendering experience.  Such information is contained in the
   CLUE framework document [I-D.ietf-clue-framework] and formally
   defined and described in the CLUE data model document
   [I-D.ietf-clue-data-model-schema].  The CLUE protocol represents the



Presta & P. Romano        Expires April 9, 2018                 [Page 4]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   mechanism for the exchange of telepresence 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 'optionsResponse').  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
   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')



Presta & P. Romano        Expires April 9, 2018                 [Page 5]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   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.

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




Presta & P. Romano        Expires April 9, 2018                 [Page 6]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   this document (Section 9).  This section includes non-normative
   excerpts of the schema to aid in describing it.

   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  optionsResponse

   o  advertisement

   o  ack

   o  configure

   o  configureResponse

   While the 'options' and 'optionsResponse' 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 (Figure 1):






















Presta & P. Romano        Expires April 9, 2018                 [Page 7]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   <xs:complexType name="clueMessageType" abstract="true">
     <xs:sequence>
       <xs:element name="clueId" type="xs:string" minOccurs="0"/>
       <xs:element name="sequenceNr" type="xs:positiveInteger"/>
     </xs:sequence>
     <xs:attribute name="protocol" type="xs:string" fixed="CLUE"
           use="required"/>
     <xs:attribute name="v" type="versionType" use="required"/>
   </xs:complexType>

   <!-- VERSION TYPE -->
   <xs:simpleType name="versionType">
     <xs:restriction base="xs:string">
       <xs:pattern value="[1-9][0-9]*\.[0-9]+" />
     </xs:restriction>
   </xs:simpleType>


                   Figure 1: Structure of a CLUE message

   The information contained in each CLUE message is:

   o  clueId: an optional 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 (e.g., sequence
      number gap, repeated sequence number, sequence number too small).
      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.  The major number cannot be "0" and, if
      it is more than one digit, it cannot start with a "0".  Allowed
      values are of this kind are, e.g., "1.3", "2.0", "20.44" etc.
      This document describes version 1.0.

   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



Presta & P. Romano        Expires April 9, 2018                 [Page 8]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   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).

5.1.  options

   The 'options' message is sent by the CLUE Participant which is the
   Channel Initiator to the CLUE Participant which is the Channel
   Receiver 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 (Figure 2):


<!-- CLUE OPTIONS -->
<xs:complexType name="optionsMessageType">
  <xs:complexContent>
    <xs:extension base="clueMessageType">
      <xs:sequence>
        <xs:element name="mediaProvider" type="xs:boolean" />
        <xs:element name="mediaConsumer" type="xs:boolean" />
        <xs:element name="supportedVersions" type="versionsListType"
                minOccurs="0"/>
        <xs:element name="supportedExtensions" type="extensionsListType"
                minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<!-- VERSIONS LIST TYPE -->
<xs:complexType name="versionsListType">
  <xs:sequence>
    <xs:element name="version" type="versionType" minOccurs="1"
        maxOccurs="unbounded"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0"/>



Presta & P. Romano        Expires April 9, 2018                 [Page 9]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


  </xs:sequence>
  <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- EXTENSIONS LIST TYPE -->
<xs:complexType name="extensionsListType">
  <xs:sequence>
    <xs:element name="extension" type="extensionType" minOccurs="1"
        maxOccurs="unbounded"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
  </xs:sequence>
  <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- EXTENSION TYPE -->
<xs:complexType name="extensionType">
  <xs:sequence>
    <xs:element name="name" type="xs:string" />
    <xs:element name="schemaRef" type="xs:anyURI" minOccurs="0"/>
    <xs:element name="version" type="versionType" minOccurs="0"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
  </xs:sequence>
  <xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>


               Figure 2: Structure of CLUE 'options' message

   <supportedVersions> contains the list of the versions that are
   supported by the CI, each one represented in a child <version>
   element.  The content of each <version> 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 <version> 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 <supportedVersions> 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
   <supportedVersions> 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
   <supportedVersion> is provided, at least one <version> tag MUST be
   included.  In this case, the "v" attribute MUST be set to one of the
   versions that the CI supports, as per the <supportedVersions> list.





Presta & P. Romano        Expires April 9, 2018                [Page 10]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   The <supportedExtensions> element specifies the list of extensions
   supported by the CI.  If there is no <supportedExtensions> in the
   'options' message, the CI does not support anything other than what
   is envisioned in the versions it supports.  For each extension, an
   <extension> 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.

5.2.  optionsResponse

   CLUE response messages ('optionsResponse', 'ack',
   'configureResponse') derive from a base type, which is defined as
   follows (Figure 3):


   <xs:complexType name="clueResponseType">
    <xs:complexContent>
     <xs:extension base="clueMessageType">
      <xs:sequence>
       <xs:element name="responseCode" type="responseCodeType"/>
       <xs:element name="reasonString" type="xs:string" minOccurs="0"/>
      </xs:sequence>
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>


               Figure 3: Structure of CLUE response messages

   The elements <responseCode> and <reasonString> get populated as
   detailed in Section 5.7

   The 'optionsResponse' (Figure 4) is sent by a CR to a CI as a reply
   to the 'options' message.  The 'optionsResponse' contains a mandatory
   response code and a reason string indicating the processing result of
   the 'options' message.  If the responseCode is between 200 and 299
   inclusive, the response MUST also include <mediaProvider>,
   <mediaConsumer>, <version> and <commonExtensions> elements; it MAY
   include them for any other response code.  <mediaProvider> and
   <mediaConsumer> 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 <version> field indicates the highest
   commonly supported version number.  The content of the <version>
   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
   <commonExtensions> field.




Presta & P. Romano        Expires April 9, 2018                [Page 11]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   <!-- CLUE 'optionsResponse' -->
   <xs:complexType name="optionsResponseMessageType">
     <xs:complexContent>
       <xs:extension base="clueResponseType">
         <xs:sequence>
           <xs:element name="mediaProvider" type="xs:boolean"
                   minOccurs="0"/>
           <xs:element name="mediaConsumer" type="xs:boolean"
                   minOccurs="0"/>
           <xs:element name="version" type="versionType" minOccurs="0"/>
           <xs:element name="commonExtensions" type="extensionsListType"
                   minOccurs="0"/>
           <xs:any namespace="##other" processContents="lax"
                   minOccurs="0"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>


           Figure 4: Structure of CLUE 'optionsResponse' message

   Upon reception of the 'optionsResponse' the version to be used is
   provided in the <version> 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
   <commonExtensions> of the 'optionsResponse' message.

5.3.  advertisement

   The 'advertisement' message is used by the MP to advertise the
   available media captures and related information to the MC.  The MP
   sends an 'advertisement' 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
   'advertisement' messages to replace the previous advertisement, if,
   for instance, its CLUE telepresence media capabilities change mid-
   call.  A new 'advertisement' completely replaces the previous
   'advertisement'.

   The 'advertisement' structure is defined in the schema excerpt below
   (Figure 5).  The 'advertisement' 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
   (<mediaCaptures>), of the encoding groups (<encodingGroups>), of the
   capture scenes (<captureScenes>), of the simultaneous sets



Presta & P. Romano        Expires April 9, 2018                [Page 12]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   (<simultaneousSets>), of the global views (<globalViews>), and of the
   represented participants (<people>).  Each of them is fully described
   in the CLUE framework document and formally defined in the CLUE data
   model document.


<!-- CLUE ADVERTISEMENT MESSAGE TYPE -->
<xs:complexType name="advertisementMessageType">
  <xs:complexContent>
    <xs:extension base="clueMessageType">
      <xs:sequence>
        <!-- mandatory -->
        <xs:element name="mediaCaptures" type="dm:mediaCapturesType"/>
        <xs:element name="encodingGroups" type="dm:encodingGroupsType"/>
        <xs:element name="captureScenes" type="dm:captureScenesType"/>
        <!-- optional -->
        <xs:element name="simultaneousSets"
                type="dm:simultaneousSetsType" minOccurs="0"/>
        <xs:element name="globalViews" type="dm:globalViewsType"
                minOccurs="0"/>
        <xs:element name="people" type="dm:peopleType" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
      </xs:sequence>
      <xs:anyAttribute namespace="##other" processContents="lax"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>


            Figure 5: Structure of CLUE 'advertisement' message

5.4.  ack

   The 'ack' message is sent by a MC to a MP to acknowledge an
   'advertisement' message.  As it can be seen from the message schema
   provided in the following excerpt (Figure 6), the 'ack' contains a
   response code and a reason string for describing the processing
   result of the 'advertisement'.  The <advSequenceNr> carries the
   sequence number of 'advertisement' message the 'ack' refers to.











Presta & P. Romano        Expires April 9, 2018                [Page 13]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   <!-- 'ack' MESSAGE TYPE -->
   <xs:complexType name="advAcknowledgementMessageType">
     <xs:complexContent>
       <xs:extension base="clueResponseType">
         <xs:sequence>
           <xs:element name="advSequenceNr" type="xs:positiveInteger"/>
           <xs:any namespace="##other" processContents="lax"
                   minOccurs="0"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>


                 Figure 6: Structure of CLUE 'ack' message

5.5.  configure

   The 'configure' message is sent from a MC to a MP to list the
   advertised captures the MC wants to receive.  The MC can send a
   'configure' after the reception of an 'advertisement' or each time it
   wants to request other captures that have been previously advertised
   by the MP.  The content of the 'configure' message is shown below
   (Figure 7).


   <!-- CLUE 'configure' MESSAGE TYPE -->
   <xs:complexType name="configureMessageType">
     <xs:complexContent>
       <xs:extension base="clueMessageType">
         <xs:sequence>
           <!-- mandatory fields -->
           <xs:element name="advSequenceNr" type="xs:positiveInteger"/>
           <xs:element name="ack" type="successResponseCodeType"
                   minOccurs="0"/>
           <xs:element name="captureEncodings"
                   type="dm:captureEncodingsType" minOccurs="0"/>
           <xs:any namespace="##other" processContents="lax"
                   minOccurs="0"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>


              Figure 7: Structure of CLUE 'configure' message



Presta & P. Romano        Expires April 9, 2018                [Page 14]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   The <advSequenceNr> element contains the sequence number of the
   'advertisement' message the 'configure' refers to.

   The optional <ack> element, when present, contains a success response
   code, as defined in Section 5.7.  It indicates that the 'configure'
   message also acknowledges with success the referred advertisement
   ('configure' + 'ack' message), by applying in that way a piggybacking
   mechanism for simultaneously acknowledging and replying to the
   'advertisement' message.  The <ack> 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 <captureEncodings> element (see
   [I-D.ietf-clue-data-model-schema] for the definition of
   <captureEncodings>).  Such an element contains a sequence of capture
   encodings, representing the streams to be instantiated.

5.6.  configureResponse

   The 'configureResponse' message is sent from the MP to the MC to
   communicate the processing result of requests carried in the
   previously received 'configure' message.  It contains (Figure 8) a
   response code with a reason string indicating either the success or
   the failure (along with failure details) of a 'configure' request
   processing.  Following, the <confSequenceNr> field contains the
   sequence number of the 'configure' 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.



  <!-- 'configureResponse' MESSAGE TYPE -->
  <xs:complexType name="configureResponseMessageType">
    <xs:complexContent>
      <xs:extension base="clueResponseType">
        <xs:sequence>
          <xs:element name="confSequenceNr" type="xs:positiveInteger" />
          <xs:any namespace="##other" processContents="lax"
                  minOccurs="0"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>


          Figure 8: Structure of CLUE 'configureResponse' message



Presta & P. Romano        Expires April 9, 2018                [Page 15]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


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 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.).  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
   both cases, the new response codes MUST be registered with IANA.
   Such new response codes MUST NOT overwrite the ones here defined and
   they MUST respect the semantics of the first code digit.

   This document does not define response codes starting with "1", and
   such response codes are not allowed to appear in major version 1 of
   the CLUE protocol.  The range from 100 to 199 inclusive is reserved
   for future major versions of the protocol to define response codes
   for delayed or incomplete operations if necessary.  Response codes
   starting with "5" through "9" are reserved for future major versions
   of the protocol to define new classes of response, and are not
   allowed in major version 1 of the CLUE protocol.  Response codes
   starting with "0" are not allowed.

   The response codes and strings defined for use with version 1 of the
   CLUE protocol are listed in Figure 9.  The "Description" text
   contained in the table can be sent in the <reasonString> element of a
   response message.  Implementations can (and are encouraged to)
   include more specific descriptions of the error condition, if
   possible.



   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |  Response code  |  Reason string       |       Description        |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   200           |  Success             |  The request has been    |
   |                 |                      |  successfully processed. |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+



Presta & P. Romano        Expires April 9, 2018                [Page 16]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   |                 |                      |                          |
   |   300           |  Low-level request   |  A generic low-level     |
   |                 |  error.              |  request error has       |
   |                 |                      |  occurred.               |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   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.       |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   402           |  Invalid sequencing  | Sequence number gap;     |
   |                 |                      | repeated sequence number;|
   |                 |                      | sequence number outdated.|
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   403           |  Invalid identifier  |  The clueId used in      |
   |                 |                      |  the message is          |
   |                 |                      |  not valid or unknown.   |
   +-----------------+----------------------+--------------------------+
   |                 |                      |  The sequence number of  |
   |   404           |   advertisement      |  the advertisement the   |
   |                 |       Expired        |  configure refers to is  |
   |                 |                      |  out of date.            |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |



Presta & P. Romano        Expires April 9, 2018                [Page 17]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   |   405           |  Subset choice not   | The subset choice is not |
   |                 |  allowed             | allowed for the specified|
   |                 |                      | Multiple Content Capture |
   +-----------------+----------------------+--------------------------+



                       Figure 9: CLUE response codes

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 (Figure 10), 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).

   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 data 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



Presta & P. Romano        Expires April 9, 2018                [Page 18]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   for the 'optionsResponse' message.  If the CP is the Channel Receiver
   (CR), it waits for the 'options' message and, as soon as it arrives,
   replies with the 'optionsResponse' 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 'optionsResponse' with an error response code

   2.  the CI does not receive any 'optionsResponse' 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
   'optionsResponse' 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'/'optionsResponse' 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 had been activated are in the relative TERMINATED state
   (see sections Section 6.1 and Section 6.2).




















Presta & P. Romano        Expires April 9, 2018                [Page 19]


Internet-Draft         draft-ietf-clue-protocol-14          October 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 |  |sub state machines       |
                                 | +----+  |terminated               |
                                 |         |                         |
                                 +---------+-------------------------+




                 Figure 10: CLUE Participant state machine

6.1.  Media Provider's state machine

   As soon as the sub-state machine of the MP (Figure 11) is activated,
   it is in the ADV state.  In the ADV state, the MP prepares the
   'advertisement' message reflecting its actual telepresence
   capabilities.





Presta & P. Romano        Expires April 9, 2018                [Page 20]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   After the 'advertisement' has been sent ("advertisement 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 response code), and the number of NACKs
   for the issued 'advertisement' is under the retry threshold ("NACK
   received && retry not exhausted"), the MP moves back to the ADV state
   for preparing a new 'advertisement'.  If a NACK arrives and the
   number of received NACKs for that 'advertisement' overcomes the
   threshold ("NACK received && retry exhausted"), 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 exhausted"): also in this case, the MP goes back to the
   ADV state to send a new copy of the 'advertisement'.  If the number
   of retries overcomes the threshold ("timeout && retry exhausted"),
   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
   <ack> element set to TRUE arrives ("configure+ack received"), the MP
   goes directly to the CONF RESPONSE state.  configure+ack messages
   referring to out-of-date (i.e., having a sequence number equal to or
   less than the highest seen so far) advertisements 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 'advertisement'.

   When in the WAIT FOR CONF state, the MP listens to the channel for a
   'configure' request coming from the MC.  If a 'configure' arrives
   ("configure received"), the MP switches to the CONF RESPONSE state.
   If the 'configure' does not arrive within the timeout interval and
   the retry threshold has not been overcome ("timeout && retry not
   exhausted"), the MP moves back to the ADV state.  When the retry
   expires ("timeout && retry exhausted") 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 'advertisement'
   to be sent to the MC.

   The MP in the CONF RESPONSE state processes the received 'configure'
   in order to produce a 'configureResponse' message.  If the MP
   successfully processes the MC's configuration, then it sends a 200
   'configureResponse' ("success configureResponse sent") and moves to
   the ESTABLISHED state.  If there are errors in the 'configure'
   processing, then the MP issues a 'configureResponse' carrying an
   error response code and, if under the retry treshold ("error
   configureResponse sent && retry not exhausted"), 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



Presta & P. Romano        Expires April 9, 2018                [Page 21]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   configureResponse sent && retry exhausted"), 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
   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 'configure' message.








































Presta & P. Romano        Expires April 9, 2018                [Page 22]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


+------------------------->+-----+<---------------------------+
|            +------------>| ADV |<-------------------+       |
|            |             +-+---+                    |       |timeout
|            |  advertisement|       NACK received    |       |&&
|            |           sent|             &&         |       |retry
|            |               v     retry not exhausted|       |not
|     changed|             +--------+                 |       |exhausted
|telepresence+-------------+WAIT FOR+-----------------+       |
|    settings|   +---------+  ACK   +-------------------------+
|            |   |configure+-+------+----------------------------------+
|            |   |  + ack    |                        NACK received && |
|            |   |received   |ack received             retry exhausted,|
|            |   |           v               timeout && retry exhausted|
+------------|-------------+--------+                                  |
timeout      +-------------+WAIT FOR| timeout && retry exhausted       |
&&           |   |         |  CONF  +----------------------------------+
retry  not   |   |         +-+------+<-----------------------------+   |
exhausted    |   |           |                                     |   |
             |   |           |configure received                   |   |
             |   |           v         error configureResponse sent|   |
             |   +-------->+---------+      && retry not exhausted |   |
             +-------------+CONF     |-----------------------------+   |
    +--------------------->|RESPONSE +---------------------------------+
    |          |           +---------+     error configureResponse sent|
    |          |               |                     && retry exhausted|
    |          |               |success                                |
    |          |               |configureResponse                      |
    |          |               |sent                                   |
    |          |               |                                       |
    |          |               |                                       |
    |configure |               |                                       |
    |received  |               v                                       |
    |          |           +-----------+                               |
    |          +-----------+ESTABLISHED|                               |
    +----------------------+-----------+                               |
                                                                       |
                                                                       |
                                                                       |
                           +-----------+                               |
                           !    MP     |                               |
                           |TERMINATED |                               |
                           +-----------+<------------------------------+



                 Figure 11: Media Provider's state machine





Presta & P. Romano        Expires April 9, 2018                [Page 23]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


6.2.  Media Consumer's state machine

   As soon as the sub-state machine of the MC (Figure 12) is activated,
   it is in the WAIT FOR ADV state.  An MC in the WAIT FOR ADV state is
   waiting for an 'advertisement' coming from the MP.  If the
   'advertisement' 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 'advertisement' is parsed by the MC.
   If the 'advertisement' is successfully processed, there are two
   possibilities.  In the former case, the MC issues a successful 'ack'
   message to the MP ("ACK sent") and moves to the CONF state.  This
   typically happens when the MC needs some more time to produce the
   'configure' message associated with the received 'advertisement'.  In
   the latter case, the MC is able to immediately prepare and send back
   to the MP a 'configure' message.  Such a message will have the <ack>
   field set to "200" ("configure+ack sent") and will allow the MC to
   move 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 exhausted"), the MC switches back to the WAIT FOR ADV
   state, waiting for a new 'advertisement'.  If the NACK retry expires
   ("NACK sent && retry exhausted"), the MC moves to the MC TERMINATED
   state.

   When in the CONF state, the MC prepares the 'configure' request to be
   issued to the MP on the basis of the previously ack-ed
   'advertisement'.  When the 'configure' has been sent ("configure
   sent"), the MC moves to the WAIT FOR CONF RESPONSE state.  If a new
   'advertisement' arrives in the meanwhile ("advertisement 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 'configure' or 'configure+ack'.  If a 200
   'configureResponse' message is received ("successful
   configureResponse 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 configureResponse received && retry
   not exhausted"), the MC moves back to the CONF state to prepare a new
   'configure' request.  In case of "error configureResponse received &&
   retry exhausted", the MC moves to the MC TERMINATED state.  If no
   'configureResponse' arrives and the number of timeouts is under the



Presta & P. Romano        Expires April 9, 2018                [Page 24]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   threshold ("timeout && retry not exhausted"), the MC moves to the
   CONF state and sends again the 'configure' message.  If no
   'configureResponse' arrives and the number of timeouts is over the
   threshold ("timeout && retry exhausted"), the MC moves to the MC
   TERMINATED state.  If a new 'advertisement' is received in the WAIT
   FOR CONF RESPONSE state, the MC switches to the ADV PROCESSING state.

   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 'configure' ("configure sent") and goes to wait for
   the new 'configureResponse' in the WAIT FOR CONF RESPONSE state.  On
   the other hand, in the ESTABLISHED state, if a new 'advertisement'
   arrives from the MP ("advertisement received"), it means that
   something has changed on the MP's side.  The MC then moves to the ADV
   PROCESSING state.
































Presta & P. Romano        Expires April 9, 2018                [Page 25]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                           +----------+
                           | WAIT FOR |
                           |   ADV    |
                           +----+-----+<--------+
                                |               |
                   advertisement|      NACK sent|
                        received|      && retry |
                                v  not exhausted|    NACK sent &&
                           +-----------+--------+    retry exhausted
                           |  ADV      +---------------------------+
                           | PROCESSING|<-----------------------+  |
                           +-+-----+---+                        |  |
                             |     |                            |  |
              configure+ack  |     |  ack                       |  |
                     sent    |     |  sent                      |  |
                             |     v                            |  |
                             |  +-----+                         |  |
                             |  |CONF |  advertisement received |  |
       +----------------------->|     +-------------------------+  |
       |error                |  +--+--+              error      |  |
       |configureResponse    |     |          configureResponse |  |
       |received &&          |     |configure    received &&    |  |
       |retry not exhausted, |     |sent        retry exhausted |  |
       |timeout &&           |     |      +------------------------+
       |retry not exhausted  v     v      |       advertisement |  |
       +------------------+---------------+            received |  |
               +--------->|   WAIT FOR    +---------------------+  |
               |          |  CONF RESPONSE+------------------------+
               |          +-------+-------+       timeout&&     |  |
               |                  |             retry exhausted |  |
               |                  |                             |  |
               |                  |successful                   |  |
               |                  |configureResponse            |  |
               |                  |received                     |  |
               |configure         v                             |  |
               |sent        +-----------+ advertisement received|  |
               +------------+ESTABLISHED+-----------------------+  |
                            +-----------+                          |
                                                                   |
                                                                   |
                                                                   |
                             +-----------+                         |
                             |   MC      |<------------------------+
                             |TERMINATED |
                             +-----------+


                 Figure 12: Media Consumer's state machine



Presta & P. Romano        Expires April 9, 2018                [Page 26]


Internet-Draft         draft-ietf-clue-protocol-14          October 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 is 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 & P. Romano        Expires April 9, 2018                [Page 27]


Internet-Draft         draft-ietf-clue-protocol-14          October 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 <any> elements and
   <anyAttribute> elements envisioned by the protocol schema.  The
   policy currently defined in the protocol schema for handling <any>
   and <anyAttribute> elements is:

   o  elementFormDefault="qualified"

   o  attributeFormDefault="unqualified"

   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 <any> and <anyAttribute> placeholders.
   New information within data model elements can be added in place of
   <any> and <anyAttribute> 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 & P. Romano        Expires April 9, 2018                [Page 28]


Internet-Draft         draft-ietf-clue-protocol-14          October 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.

   Extensions are represented by means of the <extension> element as
   defined in Figure 13, which is carried within the 'options' and
   'optionsResponse' messages to represent the extensions supported both
   by the CI and the CR.


   <xs:complexType name="extensionType">
     <xs:sequence>
       <xs:element name="name" type="xs:string" />
       <xs:element name="schemaRef" type="xs:anyURI" minOccurs="0"/>
       <xs:element name="version" type="versionType" minOccurs="0"/>
       <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
     </xs:sequence>
     <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:complexType>


                    Figure 13: The <extension> element

   Extensions MUST be defined in a separated XML schema file and SHOULD
   be provided with a companion document describing their semantics and
   use.

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.

   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 <any> element in the XML definition of the video



Presta & P. Romano        Expires April 9, 2018                [Page 29]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   capture, allowing for the introduction of a new XML field in the XML
   description.  For the sake of convenience, the XML definition of a
   video capture taken from [I-D.ietf-clue-data-model-schema] is
   reported in Figure 14 below.



  <!-- VIDEO CAPTURE TYPE -->
     <xs:complexType name="videoCaptureType">
      <xs:complexContent>
       <xs:extension base="tns:mediaCaptureType">
        <xs:sequence>
         <xs:any namespace="##other" processContents="lax" minOccurs="0"
         maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
       </xs:extension>
      </xs:complexContent>
     </xs:complexType>


             Figure 14: XML definition of a CLUE video capture

   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
   (Figure 15):























Presta & P. Romano        Expires April 9, 2018                [Page 30]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


 <?xml version="1.0" encoding="UTF-8" ?>
 <xs:schema version="1.0"
   targetNamespace="http://example.extensions.com/myVideoExtensions"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns="http://example.extensions.com/myVideoExtensions"
   elementFormDefault="qualified"
   attributeFormDefault="unqualified">

         <!--
                 This is the new element to be put in place of the <any>
                 element in the video capture definition
                 of the CLUE data model schema
         -->

         <xs:element name="myVideoExtension">
                 <xs:complexType>
                         <xs:sequence>
                                 <xs:element ref="newVideoAttribute1"/>
                                 <xs:element ref="newVideoAttribute2"/>
                         </xs:sequence>
                 </xs:complexType>
         </xs:element>

         <xs:element name="newVideoAttribute1" type="xs:string"/>

         <xs:element name = "newVideoAttribute2" type = "xs:boolean"/>
 </xs:schema>



                Figure 15: XML schema defining an extension

   By using the extension above, a video capture can be further
   described in the advertisement using the <myVideoExtension> element
   containing two extra information (<newVideoAttribute1> and
   <newVideoAttribute2>) 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
   'optionsResponse' mechanism.

9.  XML Schema

   NOTE TO THE RFC-Editor: Please replace "data-model-schema-17.xsd"
   with the right schema location for the CLUE data model schema
   document (which is still to be defined at the time of this writing)
   in this section prior to publication as an RFC.




Presta & P. Romano        Expires April 9, 2018                [Page 31]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   In this section, the XML schema defining the CLUE messages is
   provided (Figure 16).


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns="urn:ietf:params:xml:ns:clue-protocol"
        xmlns:dm="urn:ietf:params:xml:ns:clue-info"
        xmlns:tns="urn:ietf:params:xml:ns:clue-protocol"
        version="1.0"
        targetNamespace="urn:ietf:params:xml:ns:clue-protocol"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">
  <!-- Import data model schema -->
  <xs:import namespace="urn:ietf:params:xml:ns:clue-info"
        schemaLocation="clue-data-model-schema-17.xsd" />
  <!-- ELEMENT DEFINITIONS -->
  <xs:element name="options" type="optionsMessageType" />
  <xs:element name="optionsResponse" type="optionsResponseMessageType"/>
  <xs:element name="advertisement" type="advertisementMessageType"/>
  <xs:element name="ack" type="advAcknowledgementMessageType"/>
  <xs:element name="configure" type="configureMessageType"/>
  <xs:element name="configureResponse"
        type="configureResponseMessageType"/>
  <!-- CLUE MESSAGE TYPE -->
  <xs:complexType name="clueMessageType" abstract="true">
    <xs:sequence>
      <xs:element name="clueId" type="xs:string" minOccurs="0" />
      <xs:element name="sequenceNr" type="xs:positiveInteger" />
    </xs:sequence>
    <xs:attribute name="protocol" type="xs:string" fixed="CLUE"
        use="required" />
    <xs:attribute name="v" type="versionType" use="required" />
  </xs:complexType>
  <!-- CLUE RESPONSE TYPE -->
  <xs:complexType name="clueResponseType">
    <xs:complexContent>
      <xs:extension base="clueMessageType">
        <xs:sequence>
          <xs:element name="responseCode" type="responseCodeType" />
          <xs:element name="reasonString" type="xs:string"
                minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- VERSION TYPE -->
  <xs:simpleType name="versionType">



Presta & P. Romano        Expires April 9, 2018                [Page 32]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


    <xs:restriction base="xs:string">
      <xs:pattern value="[1-9][0-9]*\.[0-9]+" />
    </xs:restriction>
  </xs:simpleType>
  <!-- RESPONSE CODE TYPE -->
  <xs:simpleType name="responseCodeType">
    <xs:restriction base="xs:integer">
      <xs:pattern value="[1-9][0-9][0-9]" />
    </xs:restriction>
  </xs:simpleType>
  <!-- SUCCESS RESPONSE CODE TYPE -->
  <xs:simpleType name="successResponseCodeType">
    <xs:restriction base="xs:integer">
      <xs:pattern value="2[0-9][0-9]" />
    </xs:restriction>
  </xs:simpleType>
  <!-- CLUE OPTIONS -->
  <xs:complexType name="optionsMessageType">
    <xs:complexContent>
      <xs:extension base="clueMessageType">
        <xs:sequence>
          <xs:element name="mediaProvider" type="xs:boolean"/>
          <xs:element name="mediaConsumer" type="xs:boolean"/>
          <xs:element name="supportedVersions" type="versionsListType"
                minOccurs="0" />
          <xs:element name="supportedExtensions"
                type="extensionsListType" minOccurs="0"/>
          <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- VERSIONS LIST TYPE -->
  <xs:complexType name="versionsListType">
    <xs:sequence>
      <xs:element name="version" type="versionType" minOccurs="1"
        maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
  <!-- EXTENSIONS LIST TYPE -->
  <xs:complexType name="extensionsListType">
    <xs:sequence>
      <xs:element name="extension" type="extensionType" minOccurs="1"
        maxOccurs="unbounded"/>



Presta & P. Romano        Expires April 9, 2018                [Page 33]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


      <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>
  <!-- EXTENSION TYPE -->
  <xs:complexType name="extensionType">
    <xs:sequence>
      <xs:element name="name" type="xs:string" />
      <xs:element name="schemaRef" type="xs:anyURI" minOccurs="0" />
      <xs:element name="version" type="versionType" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <!-- CLUE 'optionsResponse' -->
  <xs:complexType name="optionsResponseMessageType">
    <xs:complexContent>
      <xs:extension base="clueResponseType">
        <xs:sequence>
          <xs:element name="mediaProvider" type="xs:boolean"
                minOccurs="0"/>
          <xs:element name="mediaConsumer" type="xs:boolean"
                minOccurs="0"/>
          <xs:element name="version" type="versionType" minOccurs="0"/>
          <xs:element name="commonExtensions" type="extensionsListType"
                minOccurs="0"/>
          <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- CLUE ADVERTISEMENT MESSAGE TYPE -->
  <xs:complexType name="advertisementMessageType">
    <xs:complexContent>
      <xs:extension base="clueMessageType">
        <xs:sequence>
          <!-- mandatory -->
          <xs:element name="mediaCaptures" type="dm:mediaCapturesType"/>
          <xs:element name="encodingGroups"
                type="dm:encodingGroupsType"/>
          <xs:element name="captureScenes" type="dm:captureScenesType"/>
          <!-- optional -->
          <xs:element name="simultaneousSets"
                type="dm:simultaneousSetsType" minOccurs="0"/>
          <xs:element name="globalViews" type="dm:globalViewsType"
                minOccurs="0"/>



Presta & P. Romano        Expires April 9, 2018                [Page 34]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


          <xs:element name="people" type="dm:peopleType" minOccurs="0"/>
          <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- 'ack' MESSAGE TYPE -->
  <xs:complexType name="advAcknowledgementMessageType">
    <xs:complexContent>
      <xs:extension base="clueResponseType">
        <xs:sequence>
          <xs:element name="advSequenceNr" type="xs:positiveInteger"/>
          <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- CLUE 'configure' MESSAGE TYPE -->
  <xs:complexType name="configureMessageType">
    <xs:complexContent>
      <xs:extension base="clueMessageType">
        <xs:sequence>
          <!-- mandatory fields -->
          <xs:element name="advSequenceNr" type="xs:positiveInteger"/>
          <xs:element name="ack" type="successResponseCodeType"
                minOccurs="0"/>
          <xs:element name="captureEncodings"
                type="dm:captureEncodingsType" minOccurs="0"/>
          <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- 'configureResponse' MESSAGE TYPE -->
  <xs:complexType name="configureResponseMessageType">
    <xs:complexContent>
      <xs:extension base="clueResponseType">
        <xs:sequence>
          <xs:element name="confSequenceNr" type="xs:positiveInteger"/>
          <xs:any namespace="##other" processContents="lax"
                minOccurs="0"/>
        </xs:sequence>



Presta & P. Romano        Expires April 9, 2018                [Page 35]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>


                 Figure 16: Schema defining CLUE messages

10.  Examples

   In this section we provide examples of 'advertisement' messages
   representing the telepresence environment described in
   [I-D.ietf-clue-data-model-schema], Section "Sample XML file" and
   Section "MCC example" respectively.

10.1.  Simple 'advertisement'

   Figure 17 presents a simple 'advertisement' message.  The associated
   Media Provider's telepresence capabilities are described in
   [I-D.ietf-clue-data-model-schema], Section "Sample XML file".


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:advertisement xmlns="urn:ietf:params:xml:ns:clue-info"
 xmlns:ns2="urn:ietf:params:xml:ns:clue-protocol"
 xmlns:ns3="urn:ietf:params:xml:ns:vcard-4.0" protocol="CLUE" v="1.0">
    <ns2:clueId>Napoli CLUE Endpoint</ns2:clueId>
    <ns2:sequenceNr>34</ns2:sequenceNr>
        <mediaCaptures>
                <mediaCapture
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:type="audioCaptureType" captureID="AC0"
                                mediaType="audio">
                        <captureSceneIDREF>CS1</captureSceneIDREF>
                        <spatialInformation>
                                <captureOrigin>
                                        <capturePoint>
                                                <x>0.0</x>
                                                <y>0.0</y>
                                                <z>10.0</z>
                                        </capturePoint>
                                        <lineOfCapturePoint>
                                                <x>0.0</x>
                                                <y>1.0</y>
                                                <z>10.0</z>
                                        </lineOfCapturePoint>
                                </captureOrigin>



Presta & P. Romano        Expires April 9, 2018                [Page 36]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                        </spatialInformation>
                        <individual>true</individual>
                        <encGroupIDREF>EG1</encGroupIDREF>
             <description lang="en">main audio from the room
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>room</view>
             <capturedPeople>
                 <personIDREF>alice</personIDREF>
                 <personIDREF>bob</personIDREF>
                 <personIDREF>ciccio</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC0" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>-2.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>-1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>-1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>



Presta & P. Romano        Expires April 9, 2018                [Page 37]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                 </captureArea>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">left camera video capture
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
             <capturedPeople>
                 <personIDREF>ciccio</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC1" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>0.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>-1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>



Presta & P. Romano        Expires April 9, 2018                [Page 38]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">central camera video capture
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
             <capturedPeople>
                 <personIDREF>alice</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC2" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>2.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>



Presta & P. Romano        Expires April 9, 2018                [Page 39]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">right camera video capture
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
             <capturedPeople>
                 <personIDREF>bob</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC3" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <content>
                 <sceneViewIDREF>SE1</sceneViewIDREF>
             </content>
             <policy>SoundLevel:0</policy>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">loudest room segment</description>
             <priority>2</priority>
             <lang>it</lang>



Presta & P. Romano        Expires April 9, 2018                [Page 40]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


             <mobility>static</mobility>
             <view>individual</view>
             </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC4" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>0.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>7.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>7.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>13.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>13.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">zoomed out view of all people in the
             room</description>
             <priority>2</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>room</view>
             <capturedPeople>
                 <personIDREF>alice</personIDREF>



Presta & P. Romano        Expires April 9, 2018                [Page 41]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                 <personIDREF>bob</personIDREF>
                 <personIDREF>ciccio</personIDREF>
                 </capturedPeople>
         </mediaCapture>
     </mediaCaptures>
     <encodingGroups>
         <encodingGroup encodingGroupID="EG0">
             <maxGroupBandwidth>600000</maxGroupBandwidth>
             <encodingIDList>
                 <encodingID>ENC1</encodingID>
                 <encodingID>ENC2</encodingID>
                 <encodingID>ENC3</encodingID>
             </encodingIDList>
         </encodingGroup>
         <encodingGroup encodingGroupID="EG1">
             <maxGroupBandwidth>300000</maxGroupBandwidth>
             <encodingIDList>
                 <encodingID>ENC4</encodingID>
                 <encodingID>ENC5</encodingID>
             </encodingIDList>
         </encodingGroup>
     </encodingGroups>
     <captureScenes>
         <captureScene scale="unknown" sceneID="CS1">
             <sceneViews>
                 <sceneView sceneViewID="SE1">
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>VC0</mediaCaptureIDREF>
                         <mediaCaptureIDREF>VC1</mediaCaptureIDREF>
                         <mediaCaptureIDREF>VC2</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE2">
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>VC3</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE3">
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>VC4</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE4">
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>AC0</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
             </sceneViews>



Presta & P. Romano        Expires April 9, 2018                [Page 42]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


         </captureScene>
     </captureScenes>
     <simultaneousSets>
         <simultaneousSet setID="SS1">
             <mediaCaptureIDREF>VC3</mediaCaptureIDREF>
             <sceneViewIDREF>SE1</sceneViewIDREF>
         </simultaneousSet>
         <simultaneousSet setID="SS2">
             <mediaCaptureIDREF>VC0</mediaCaptureIDREF>
             <mediaCaptureIDREF>VC2</mediaCaptureIDREF>
             <mediaCaptureIDREF>VC4</mediaCaptureIDREF>
         </simultaneousSet>
     </simultaneousSets>
     <people>
         <person personID="bob">
             <personInfo>
                 <ns2:fn>
                     <ns2:text>Bob</ns2:text>
                 </ns2:fn>
             </personInfo>
             <personType>minute taker</personType>
         </person>
         <person personID="alice">
             <personInfo>
                 <ns3:fn>
                     <ns3:text>Alice</ns3:text>
                 </ns3:fn>
             </personInfo>
             <personType>presenter</personType>
         </person>
         <person personID="ciccio">
             <personInfo>
                 <ns3:fn>
                     <ns3:text>Ciccio</ns3:text>
                 </ns3:fn>
             </personInfo>
             <personType>chairman</personType>
             <personType>timekeeper</personType>
         </person>
     </people>
</ns2:advertisement>


                Figure 17: 'advertisement' message example







Presta & P. Romano        Expires April 9, 2018                [Page 43]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


10.2.  'advertisement' with Multiple Content Captures

   Figure 18 presents a simple 'advertisement' message containing a
   Multiple Content Capture (MCC).  The associated Media Provider's
   telepresence capabilities are described in
   [I-D.ietf-clue-data-model-schema], Section "MCC example".


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:advertisement xmlns="urn:ietf:params:xml:ns:clue-info"
 xmlns:ns2="urn:ietf:params:xml:ns:clue-protocol"
 xmlns:ns3="urn:ietf:params:xml:ns:vcard-4.0" protocol="CLUE" v="1.0">
    <ns2:clueId>Napoli CLUE Endpoint</ns2:clueId>
    <ns2:sequenceNr>34</ns2:sequenceNr>
     <mediaCaptures>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="audioCaptureType" captureID="AC0"
                        mediaType="audio">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>0.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                     <lineOfCapturePoint>
                         <x>0.0</x>
                         <y>1.0</y>
                         <z>10.0</z>
                     </lineOfCapturePoint>
                 </captureOrigin>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG1</encGroupIDREF>
             <description lang="en">main audio from the room
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>room</view>
             <capturedPeople>
                 <personIDREF>alice</personIDREF>
                 <personIDREF>bob</personIDREF>
                 <personIDREF>ciccio</personIDREF>
             </capturedPeople>
         </mediaCapture>



Presta & P. Romano        Expires April 9, 2018                [Page 44]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC0" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>0.5</x>
                         <y>1.0</y>
                         <z>0.5</z>
                     </capturePoint>
                     <lineOfCapturePoint>
                         <x>0.5</x>
                         <y>0.0</y>
                         <z>0.5</z>
                     </lineOfCapturePoint>
                 </captureOrigin>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">left camera video capture
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
             <capturedPeople>
                 <personIDREF>ciccio</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC1" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>0.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>-1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>



Presta & P. Romano        Expires April 9, 2018                [Page 45]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                         <bottomRight>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">central camera video capture
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
             <capturedPeople>
                 <personIDREF>alice</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC2" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>2.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>



Presta & P. Romano        Expires April 9, 2018                [Page 46]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>1.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">right camera video capture
             </description>
             <priority>1</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
             <capturedPeople>
                 <personIDREF>bob</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC3" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>



Presta & P. Romano        Expires April 9, 2018                [Page 47]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <content>
                 <sceneViewIDREF>SE1</sceneViewIDREF>
             </content>
             <policy>SoundLevel:0</policy>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">loudest room segment</description>
             <priority>2</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC4" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureOrigin>
                         <capturePoint>
                         <x>0.0</x>
                         <y>0.0</y>
                         <z>10.0</z>
                     </capturePoint>
                 </captureOrigin>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>7.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>7.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>13.0</z>
                         </topLeft>
                         <topRight>



Presta & P. Romano        Expires April 9, 2018                [Page 48]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                         <x>3.0</x>
                         <y>20.0</y>
                         <z>13.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <individual>true</individual>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">
               zoomed out view of all people in the room
             </description>
             <priority>2</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>room</view>
             <capturedPeople>
                 <personIDREF>alice</personIDREF>
                 <personIDREF>bob</personIDREF>
                 <personIDREF>ciccio</personIDREF>
             </capturedPeople>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC5" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>



Presta & P. Romano        Expires April 9, 2018                [Page 49]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


             </spatialInformation>
             <content>
                 <sceneViewIDREF>SE1</sceneViewIDREF>
             </content>
             <policy>SoundLevel:1</policy>
             <description lang="en">penultimate loudest room segment
             </description>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC6" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <content>
                 <sceneViewIDREF>SE1</sceneViewIDREF>
             </content>
             <policy>SoundLevel:2</policy>
             <description lang="en">last but two loudest room segment
             </description>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>



Presta & P. Romano        Expires April 9, 2018                [Page 50]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


         </mediaCapture>
         <mediaCapture
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:type="videoCaptureType" captureID="VC7" mediaType="video">
             <captureSceneIDREF>CS1</captureSceneIDREF>
             <spatialInformation>
                 <captureArea>
                         <bottomLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomLeft>
                         <bottomRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>9.0</z>
                         </bottomRight>
                         <topLeft>
                         <x>-3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topLeft>
                         <topRight>
                         <x>3.0</x>
                         <y>20.0</y>
                         <z>11.0</z>
                         </topRight>
                 </captureArea>
             </spatialInformation>
             <content>
                 <mediaCaptureIDREF>VC3</mediaCaptureIDREF>
                 <mediaCaptureIDREF>VC5</mediaCaptureIDREF>
                 <mediaCaptureIDREF>VC6</mediaCaptureIDREF>
             </content>
             <maxCaptures exactNumber="true">3</maxCaptures>
             <encGroupIDREF>EG0</encGroupIDREF>
             <description lang="en">big picture of the current speaker +
             pips about previous speakers</description>
             <priority>3</priority>
             <lang>it</lang>
             <mobility>static</mobility>
             <view>individual</view>
         </mediaCapture>
     </mediaCaptures>
     <encodingGroups>
         <encodingGroup encodingGroupID="EG0">
             <maxGroupBandwidth>600000</maxGroupBandwidth>
             <encodingIDList>



Presta & P. Romano        Expires April 9, 2018                [Page 51]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                 <encodingID>ENC1</encodingID>
                 <encodingID>ENC2</encodingID>
                 <encodingID>ENC3</encodingID>
             </encodingIDList>
         </encodingGroup>
         <encodingGroup encodingGroupID="EG1">
             <maxGroupBandwidth>300000</maxGroupBandwidth>
             <encodingIDList>
                 <encodingID>ENC4</encodingID>
                 <encodingID>ENC5</encodingID>
             </encodingIDList>
         </encodingGroup>
     </encodingGroups>
     <captureScenes>
         <captureScene scale="unknown" sceneID="CS1">
             <sceneViews>
                 <sceneView sceneViewID="SE1">
                     <description lang="en">participants' individual
                     videos</description>
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>VC0</mediaCaptureIDREF>
                         <mediaCaptureIDREF>VC1</mediaCaptureIDREF>
                         <mediaCaptureIDREF>VC2</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE2">
                     <description lang="en">loudest segment of the
                     room</description>
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>VC3</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE5">
                     <description lang="en">loudest segment of the
                     room + pips</description>
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>VC7</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE4">
                     <description lang="en">room audio</description>
                     <mediaCaptureIDs>
                         <mediaCaptureIDREF>AC0</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
                 <sceneView sceneViewID="SE3">
                     <description lang="en">room video</description>
                     <mediaCaptureIDs>



Presta & P. Romano        Expires April 9, 2018                [Page 52]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


                         <mediaCaptureIDREF>VC4</mediaCaptureIDREF>
                     </mediaCaptureIDs>
                 </sceneView>
             </sceneViews>
         </captureScene>
     </captureScenes>
     <simultaneousSets>
         <simultaneousSet setID="SS1">
             <mediaCaptureIDREF>VC3</mediaCaptureIDREF>
             <mediaCaptureIDREF>VC7</mediaCaptureIDREF>
             <sceneViewIDREF>SE1</sceneViewIDREF>
         </simultaneousSet>
         <simultaneousSet setID="SS2">
             <mediaCaptureIDREF>VC0</mediaCaptureIDREF>
             <mediaCaptureIDREF>VC2</mediaCaptureIDREF>
             <mediaCaptureIDREF>VC4</mediaCaptureIDREF>
         </simultaneousSet>
     </simultaneousSets>
     <people>
         <person personID="bob">
             <personInfo>
                 <ns3:fn>
                     <ns3:text>Bob</ns2:text>
                 </ns3:fn>
             </personInfo>
             <personType>minute taker</personType>
         </person>
         <person personID="alice">
             <personInfo>
                 <ns3:fn>
                     <ns3:text>Alice</ns2:text>
                 </ns3:fn>
             </personInfo>
             <personType>presenter</personType>
         </person>
         <person personID="ciccio">
             <personInfo>
                 <ns3:fn>
                     <ns3:text>Ciccio</ns2:text>
                 </ns3:fn>
             </personInfo>
             <personType>chairman</personType>
             <personType>timekeeper</personType>
         </person>
     </people>
</ns2:advertisement>





Presta & P. Romano        Expires April 9, 2018                [Page 53]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


         Figure 18: An example of 'advertisement' message with MCC

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
   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
   'optionsResponse' 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.



Presta & P. Romano        Expires April 9, 2018                [Page 54]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   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 'optionsResponse' 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.

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: IESG (iesg@ietf.org).

   XML:












Presta & P. Romano        Expires April 9, 2018                [Page 55]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   BEGIN
    <?xml version="1.0"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
      <head>
        <title>CLUE Messages</title>
      </head>
      <body>
        <h1>Namespace for CLUE Messages</h1>
        <h2>urn:ietf:params:xml:ns:clue-protocol</h2>
   [[NOTE TO IANA/RFC-EDITOR: Please update RFC URL and replace XXXX
       with the RFC number for this specification.]]
        <p>See <a href="[[RFC URL]]">
           RFCXXXX</a>.</p>
      </body>
    </html>
   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: IESG (iesg@ietf.org).

   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.



Presta & P. Romano        Expires April 9, 2018                [Page 56]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   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

   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.]]






Presta & P. Romano        Expires April 9, 2018                [Page 57]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   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: IESG (iesg@ietf.org).

   The initial Message table is populated using the CLUE messages
   described in Section 5 and defined in the XML schema in Section 9.

   +-------------------+-----------------------------------+-----------+
   | Message           | Description                       | Reference |
   +-------------------+-----------------------------------+-----------+
   | options           | Sent by the CI to the CR  in the  | RFCXXXX   |
   |                   | initiation phase to specify the   |           |
   |                   | roles played by the CI, the       |           |
   |                   | supported versions and the        |           |
   |                   | supported extensions.             |           |
   | optionsResponse   | Sent by the CI to the CR in reply | RFCXXXX   |
   |                   | to an 'options' message to        |           |
   |                   | finally estabilsh the version and |           |
   |                   | the extensions to be used in the  |           |
   |                   | following CLUE messages exchange. |           |
   | advertisement     | Sent by the MP to the MC to       | RFCXXXX   |
   |                   | specify the telepresence          |           |
   |                   | capabilities of the MP expressed  |           |
   |                   | according to the CLUE framework.  |           |
   | ack               | Sent by the MC to the MP to       | RFCXXXX   |
   |                   | acknowledge the reception of an   |           |
   |                   | 'advertisement' message.          |           |
   | configure         | Sent by the MC to the MP to       | RFCXXXX   |
   |                   | specify the desired media         |           |
   |                   | captures among those specified in |           |
   |                   | the 'advertisement'.              |           |
   | configureResponse | Sent by the MP to the MC in reply | RFCXXXX   |
   |                   | 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 & P. Romano        Expires April 9, 2018                [Page 58]


Internet-Draft         draft-ietf-clue-protocol-14          October 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: IESG (iesg@ietf.org).

   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    | Low-level     | A generic low-level request  | RFCXXXX   |
   |        | request       | error has occurred.          |           |
   |        | error.        |                              |           |
   | 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 values  | RFCXXXX   |
   |        | values        | that cannot be used          |           |
   |        |               | together.                    |           |
   | 400    | Semantic      | Semantic errors in the       | RFCXXXX   |
   |        | errors        | received CLUE protocol       |           |
   |        |               | message.                     |           |
   | 401    | Version not   | The protocol version used in | RFCXXXX   |
   |        | supported     | the message is not           |           |
   |        |               | supported.                   |           |
   | 402    | Invalid       | Sequence number gap;         | RFCXXXX   |
   |        | sequencing    | repeated sequence number;    |           |
   |        |               | sequence number outdated.    |           |
   | 403    | Invalid       | The clueId used in the       | RFCXXXX   |
   |        | identifier    | message is not valid or      |           |
   |        |               | unknown.                     |           |
   | 404    | advertisement | The sequence number of the   | RFCXXXX   |
   |        | Expired       | advertisement the configure  |           |
   |        |               | refers to is out of date.    |           |
   | 405    | Subset choice | The subset choice is not     | RFCXXXX   |
   |        | not allowed   | allowed for the specified    |           |
   |        |               | Multiple Content Capture.    |           |
   +--------+---------------+------------------------------+-----------+



Presta & P. Romano        Expires April 9, 2018                [Page 59]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


13.  Acknowledgments

   The authors thank all the CLUErs for their precious feedbacks and
   support, in particular Paul Kyzivat, Christian Groves and Scarlett
   Liuyan.

14.  References

14.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, "Session
              Signaling for Controlling Multiple Streams for
              Telepresence (CLUE)", draft-ietf-clue-signaling-12 (work
              in progress), August 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [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, <https://www.rfc-editor.org/info/rfc3550>.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              DOI 10.17487/RFC3688, January 2004,
              <https://www.rfc-editor.org/info/rfc3688>.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", RFC 5226,
              DOI 10.17487/RFC5226, May 2008,
              <https://www.rfc-editor.org/info/rfc5226>.



Presta & P. Romano        Expires April 9, 2018                [Page 60]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   [RFC7303]  Thompson, H. and C. Lilley, "XML Media Types", RFC 7303,
              DOI 10.17487/RFC7303, July 2014,
              <https://www.rfc-editor.org/info/rfc7303>.

14.2.  Informative References

   [RFC1122]  Braden, R., Ed., "Requirements for Internet Hosts -
              Communication Layers", STD 3, RFC 1122,
              DOI 10.17487/RFC1122, October 1989,
              <https://www.rfc-editor.org/info/rfc1122>.

   [RFC4353]  Rosenberg, J., "A Framework for Conferencing with the
              Session Initiation Protocol (SIP)", RFC 4353,
              DOI 10.17487/RFC4353, February 2006,
              <https://www.rfc-editor.org/info/rfc4353>.

   [RFC5117]  Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117,
              DOI 10.17487/RFC5117, January 2008,
              <https://www.rfc-editor.org/info/rfc5117>.

   [RFC6120]  Saint-Andre, P., "Extensible Messaging and Presence
              Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120,
              March 2011, <https://www.rfc-editor.org/info/rfc6120>.

   [RFC7262]  Romanow, A., Botzko, S., and M. Barnes, "Requirements for
              Telepresence Multistreams", RFC 7262,
              DOI 10.17487/RFC7262, June 2014,
              <https://www.rfc-editor.org/info/rfc7262>.

   [RFC7667]  Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667,
              DOI 10.17487/RFC7667, November 2015,
              <https://www.rfc-editor.org/info/rfc7667>.

Authors' Addresses

   Roberta Presta
   University of Napoli
   Via Claudio 21
   Napoli  80125
   Italy

   EMail: roberta.presta@unina.it









Presta & P. Romano        Expires April 9, 2018                [Page 61]


Internet-Draft         draft-ietf-clue-protocol-14          October 2017


   Simon Pietro Romano
   University of Napoli
   Via Claudio 21
   Napoli  80125
   Italy

   EMail: spromano@unina.it












































Presta & P. Romano        Expires April 9, 2018                [Page 62]


Html markup produced by rfcmarkup 1.124, available from https://tools.ietf.org/tools/rfcmarkup/