Skip to main content

CLUE protocol
draft-ietf-clue-protocol-02

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 8847.
Authors Roberta Presta , Simon Pietro Romano
Last updated 2014-10-24
Replaces draft-presta-clue-protocol
RFC stream Internet Engineering Task Force (IETF)
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state WG Document
Document shepherd (None)
IESG IESG state Became RFC 8847 (Experimental)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-clue-protocol-02
CLUE Working Group                                             R. Presta
Internet-Draft                                                 S. Romano
Intended status: Standards Track                    University of Napoli
Expires: April 27, 2015                                 October 24, 2014

                             CLUE protocol
                      draft-ietf-clue-protocol-02

Abstract

   The CLUE protocol is an application protocol conceived for the
   description and negotiation of a CLUE telepresence session.  The
   design of the CLUE protocol takes into account the requirements and
   the framework defined, respectively, in [I-D.ietf-clue-framework] and
   [I-D.ietf-clue-telepresence-requirements].  The companion document
   [I-D.ietf-clue-signaling] delves into CLUE signaling details, as well
   as on the SIP/SDP session establishment phase.  CLUE messages flow
   upon the CLUE data channel, based on reliable and ordered SCTP over
   DTLS transport, as described in [I-D.ietf-clue-datachannel].  Message
   details, together with the behavior of CLUE Participants acting as
   Media Providers and/or Media Consumers, are herein discussed.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on April 27, 2015.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of

Presta & Romano          Expires April 27, 2015                 [Page 1]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   publication of this document.  Please review these documents
   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.

Presta & Romano          Expires April 27, 2015                 [Page 2]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  Overview of the CLUE protocol  . . . . . . . . . . . . . . . .  5
   4.  Protocol messages  . . . . . . . . . . . . . . . . . . . . . .  7
     4.1.  OPTIONS  . . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.2.  OPTIONS RESPONSE . . . . . . . . . . . . . . . . . . . . . 11
     4.3.  ADVERTISEMENT  . . . . . . . . . . . . . . . . . . . . . . 12
     4.4.  ADVERTISEMENT ACKNOWLEDGEMENT  . . . . . . . . . . . . . . 14
     4.5.  CONFIGURE  . . . . . . . . . . . . . . . . . . . . . . . . 15
     4.6.  CONFIGURE RESPONSE . . . . . . . . . . . . . . . . . . . . 16
     4.7.  Response codes and reason strings  . . . . . . . . . . . . 16
   5.  Protocol state machines  . . . . . . . . . . . . . . . . . . . 18
   6.  CLUE Participant's state machine . . . . . . . . . . . . . . . 18
     6.1.  Media Provider's state machine . . . . . . . . . . . . . . 21
     6.2.  Media Consumer's state machine . . . . . . . . . . . . . . 24
   7.  Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . 26
   8.  Extensions and options . . . . . . . . . . . . . . . . . . . . 27
   9.  XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 29
   10. ADVERTISEMENT examples . . . . . . . . . . . . . . . . . . . . 34
     10.1. Simple ADV . . . . . . . . . . . . . . . . . . . . . . . . 34
     10.2. ADV with MCCs  . . . . . . . . . . . . . . . . . . . . . . 40
     10.3. Partial ADV  . . . . . . . . . . . . . . . . . . . . . . . 47
   11. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 51
     11.1. URN Sub-Namespace Registration . . . . . . . . . . . . . . 51
     11.2. XML Schema registration  . . . . . . . . . . . . . . . . . 52
     11.3. MIME Media Type Registration for 'application/clue+xml'  . 52
     11.4. DNS Registrations  . . . . . . . . . . . . . . . . . . . . 53
       11.4.1.  Application Service tag . . . . . . . . . . . . . . . 53
       11.4.2.  Application Protocol tag  . . . . . . . . . . . . . . 54
     11.5. CLUE Protocol Registry . . . . . . . . . . . . . . . . . . 54
       11.5.1.  CLUE Message Types  . . . . . . . . . . . . . . . . . 54
       11.5.2.  CLUE Response Codes . . . . . . . . . . . . . . . . . 55
   12. Diff with draft-ietf-clue-protocol-01  . . . . . . . . . . . . 55
   13. Diff with draft-ietf-clue-protocol-00  . . . . . . . . . . . . 56
   14. Diff with draft-presta-clue-protocol-04  . . . . . . . . . . . 56
   15. Diff with draft-presta-clue-protocol-03  . . . . . . . . . . . 56
   16. Diff with draft-presta-clue-protocol-02  . . . . . . . . . . . 56
   17. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 57
   18. References . . . . . . . . . . . . . . . . . . . . . . . . . . 57
     18.1. Normative References . . . . . . . . . . . . . . . . . . . 57
     18.2. Informative References . . . . . . . . . . . . . . . . . . 58

Presta & Romano          Expires April 27, 2015                 [Page 3]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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 MP to properly announce its current telepresence
       capabilities to a MC in terms of available media captures, groups
       of encodings, simultaneity constraints and other information
       envisioned in [I-D.ietf-clue-framework];

   2.  enabling a MC to request the desired multimedia streams to 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
   depicted in [I-D.ietf-clue-signaling] and
   [I-D.ietf-clue-datachannel].  CLUE protocol messages flowing upon
   such a channel are detailed in this document, both syntactically and
   semantically.

   In Section 3 we provide a general overview of the CLUE protocol.
   CLUE protocol messages are detailed in Section 4 The CLUE Participant
   state machine is introduced in Section 5.  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
   [I-D.ietf-clue-telepresence-requirements].  We briefly recall herein
   some of the main terms used in the document.  The definition of "CLUE
   Participant" herein proposed is not imported from any of the above
   documents.

   CLUE Participant:  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.

   Endpoint:  The logical point of final termination through receiving,
      decoding and rendering, and/or initiation through capturing,
      encoding, and sending of media streams.  An endpoint consists of
      one or more physical devices which source and sink media streams,
      and exactly one [RFC4353] Participant (which, in turn, includes
      exactly one SIP User Agent).  Endpoints can be anything from
      multiscreen/multicamera room controllers to handheld devices.

Presta & Romano          Expires April 27, 2015                 [Page 4]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   MCU:  Multipoint Control Unit (MCU) - a device that connects two or
      more endpoints together into one single multimedia conference
      [RFC5117].  An MCU may include a Mixer [RFC4353].

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

   Media Capture:  A "Media Capture", or simply "Capture", is a source
      of Media.

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

   Media Stream:  The term "Media Stream", or simply "Stream", is used
      as a synonymous of Capture Encoding.

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

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

3.  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 we are not able to convey information about the features of
   the flowing multimedia streams that are needed to enable a "being
   there" rendering experience.  Such information is designed in the
   CLUE framework document and formally defined and described in the
   CLUE data model document.  The CLUE protocol represents the mechanism
   for the exchange of CLUE information between CLUE Participants.  It
   mainly provides the messages to enable a Media Provider to advertise
   its telepresence capabilities and to enable a Media Consumer to
   select the desired telepresence options.

   The CLUE protocol, as defined in the following, is a stateful,
   client-server, XML-based application protocol.  CLUE protocol
   messages flow on a realiable 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 layers
   can be identified:

   1.  Establishment of the CLUE data channel: in this phase, the CLUE
       data channel setup takes place.  If it completes successfully,

Presta & Romano          Expires April 27, 2015                 [Page 5]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

       the CPs are able to communicate and start the initiation phase.

   2.  Negotiation of the CLUE protocol version and options (initiation
       phase): the CPs connected via the CLUE data channel agree on the
       version and on the options to be used during the telepresence
       session.  Special CLUE messages are used for such a task.  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 and a minor version number,
   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 protocol options and extensions that are
   allowed within the CLUE session is also determined in the initiation
   phase, such subset being the one including only the options that are
   supported by both parties.  A mechanism for the negotiation of the
   CLUE protocol version and extensions is envisioned in the initiation
   phase.  According to such a solution, the CP which is the CLUE
   Channel initiator (CI) issues a proper CLUE message (OPTIONS) to the
   CP which is the Channel Receiver (CR) specifying the supported
   version and extensions.  The CR then answers by selecting the subset
   of the CI extensions that it is able to support and determines the
   protocol version to be used.

   After that negotiation phase is completed, CLUE Participants describe
   and agree on the media flows to be exchanged.  Indeed, being CPs A
   and B both transmitting and receiving, it is possible to distinguish
   between two dialogues:

   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

Presta & Romano          Expires April 27, 2015                 [Page 6]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   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 will be detailed in the following
   sections.

4.  Protocol messages

   CLUE protocol messages are textual, XML-based messages that enable
   the configuration of the telepresence session.  The formal definition
   of such messages is provided in the XML Schema provided at the end of
   this document (Section 9).

   The XML definitions of the CLUE information provided in
   [I-D.ietf-clue-data-model-schema] are included within some CLUE
   protocol messages (namely the ADVERTISEMENT and the CONFIGURE
   messages), in order to use the concepts defined in
   [I-D.ietf-clue-framework].

   The CLUE protocol messages are the following:

   o  OPTIONS

   o  OPTIONS RESPONSE

   o  ADVERTISEMENT (ADV)

   o  ADVERTISEMENT ACKNOWLEDGEMENT (ACK)

Presta & Romano          Expires April 27, 2015                 [Page 7]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   o  CONFIGURE (CONF)

   o  CONFIGURE RESPONSE

   While the OPTIONS and OPTIONS RESPONSE messages are exchanged in the
   initiation phase between the CPs, the other messages are involved in
   MP-MC dialogues.

   Each CLUE message inherits a basic structure depicted in the
   following excerpt:

<!-- CLUE MESSAGE TYPE -->
<xs:complexType name="clueMessageType" abstract="true">
<xs:sequence>
<xs:element name="clueId" type="xs:string"/>
<xs:element name="sequenceNr" type="xs:unsignedInt"/>
</xs:sequence>
<xs:attribute name="protocol" type="xs:string" fixed="CLUE" use="required"/>
<xs:attribute name="v" type="xs:string" use="required"/>
</xs:complexType>

   The basic structure determines the mandatory information that is
   carried within each CLUE message.  Such an information is made by:

   o  clueId: an XML element containing the identifier of the CP within
      the telepresence system;

   o  sequenceNr: an XML element containing the local message sequence
      number;

   o  protocol: a mandatory attribute set to "CLUE", identifying the
      procotol the messages refer to;

   o  v: a mandatory attribute carrying the version of the protocol.
      The content of the "v" attribute is composed by the major version
      number followed by a dot and then by the minor version number of
      the CLUE protocol in use.  Allowed values are of this kind: "1.3",
      "2.45", etc.

   Each CP should manage up to three streams of sequence numbers: (i)
   one for the messages exchanged in the initiation phase, (ii) one for
   the messages exchanged as MP, and (iii) one for the messages
   exchanged as MC.

Presta & Romano          Expires April 27, 2015                 [Page 8]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

4.1.  OPTIONS

   The OPTIONS message is sent by the CP which is the CI to the CP which
   is the CR as soon as the CLUE data channel is ready.  Besides the
   information envisioned in the basic structure, it specifies:

   o  mediaProvider: a mandatory boolean field set to "true" if the CP
      is able to act as a MP

   o  mediaConsumer: a mandatory boolean field set to "true" if the CP
      is able to act as a MC

   o  supportedVersions: the list of the supported versions

   o  supportedOptions: the list of the supported options

   The XML Schema of such a message is reported below:

Presta & Romano          Expires April 27, 2015                 [Page 9]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

<!-- 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="supportedOptions" type="optionsListType" 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="xs:string" minOccurs="1"
 maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- OPTIONS LIST TYPE -->
<xs:complexType name="optionsListType">
<xs:sequence>
<xs:element name="option" type="optionType" minOccurs="1"
 maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

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

Presta & Romano          Expires April 27, 2015                [Page 10]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   <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.43).  Only one <version> element
   SHOULD 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 whithin the OPTIONS message, the CI supports only the version
   declared in the "v" attribute.  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.

   The <supportedOptions> element specifies the list of options
   supported by the CI.  If there is no <supportedOptions> in the
   OPTIONS message, the CI does not support anything other than what is
   envisioned in the versions it supports.  For each option, an <option>
   element is provided.  An option is characterized by a name, an XML
   schema of reference where the option is defined, and the version of
   the protocol which the option refers to.  [Editors' note: to be
   discussed: difference between options and extensions]

4.2.  OPTIONS RESPONSE

   The OPTIONS RESPONSE is sent by a CR to a CI as a reply to the
   OPTIONS message.  As depicted in the figure below, the OPTIONS
   RESPONSE contains mandatorily a response code and a response string
   indicating the processing result of the OPTIONS message.  Following,
   the CR attaches two boolean tags, <mediaProvider> and
   <mediaConsumer>, expressing the supported roles in terms of
   respectively MP and MC, similarly to what the CI does in the OPTIONS
   message.  These two elements are optional in the OPTIONS RESPONSE
   since, in case of error response code, the CR might not want to add
   further information besides the response code and the reason string.
   In case of no errors, the CR MUST insert within the OPTIONS RESPONSE
   the <mediaProvider> and the <mediaConsumer> elements.  Finally, the
   highest commonly supported version number is expressed in the
   <version> field.  The content of the <version> element MUST be 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.43).  The commonly supported
   options are copied in the the <commonOptions> field.

Presta & Romano          Expires April 27, 2015                [Page 11]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

 <!-- CLUE OPTIONS RESPONSE -->
 <xs:complexType name="optionsResponseMessageType">
 <xs:complexContent>
 <xs:extension base="clueMessageType">
 <xs:sequence>
 <xs:element name="responseCode" type="xs:short"/>
 <xs:element name="reasonString" type="xs:string"/>
 <xs:element name="mediaProvider" type="xs:boolean" minOccurs="0"/>
 <xs:element name="mediaConsumer" type="xs:boolean" minOccurs="0"/>
 <xs:element name="version" type="xs:string" minOccurs="0"/>
 <xs:element name="commonOptions" type="optionsListType" minOccurs="0"/>
 <xs:any namespace="##other"
 processContents="lax" minOccurs="0"/>
 </xs:sequence>
 <xs:anyAttribute namespace="##other" processContents="lax"/>
 </xs:extension>
 </xs:complexContent>
 </xs:complexType>

   After the reception of such a message, the version to be used is
   determined by each part of the conversation.  Indeed, it is the one
   provided in the <version> tag of the OPTIONS RESPONSE message.  The
   following CLUE messages will use such a version number in the "v"
   attribute.  The allowed options in the CLUE dialogue will be those
   indicated in the <commonOptions> of the OPTIONS RESPONSE message.

4.3.  ADVERTISEMENT

   This message is used by the MP to advertise the available media
   captures and related information to the MC.  The MP sends to the MC
   an ADV as soon as it is ready after the successful completion of the
   initiation phase, i.e., as soon as the version and the options of the
   CLUE protocol are agreed between the CPs.  During the telepresence
   session, the ADV can be sent from the MP both periodically and on a
   per-event basis, i.e., each time there are changes in the MP's CLUE
   telepresence capabilities.

   The ADV structure is defined in the picture below.  The ADV contains
   elements compliant with the CLUE data model that characterize the
   MP's telepresence offer.  Namely, such elements are: the list of the
   media captures (<mediaCaptures>), of the encoding groups
   (<encodingGroups>), of the capture scenes (<captureScenes>) 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.

   When an ADV sent from the MP to the MC has been ACK-ed by the MC, the

Presta & Romano          Expires April 27, 2015                [Page 12]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   MP can decide to send the next ADV in a diff format with respect to
   the previously sent ADV.  The diff format is expressed according to
   [RFC5261] and has been analysed in [I-D.groves-clue-partial-update]
   as a convenient shortcut to communicate the update in the MP's
   telepresence capabilities.  When using such shortcut, the ADV body is
   made by a sequence of (i) <add>, (ii) <remove>, and (iii) <replace>
   elements, each of them associated with an XPath selector indicating
   respectively (i) the place where to add the data model information
   carried in the considered <add> element, (ii) the element to be
   removed, (iii) the element to be replaced with the content carried
   within the considered <replace> element.  An example of the diff
   mechanism is shown in Section Examples.

   <!-- CLUE ADVERTISEMENT MESSAGE TYPE -->
   <xs:complexType name="advertisementMessageType">
   <xs:complexContent>
   <xs:extension base="clueMessageType">
   <xs:choice>
   <!-- full adv body -->
   <xs:sequence>
           <!-- mandatory fields -->
           <xs:element name="mediaCaptures" type="dm:mediaCapturesType"/>
           <xs:element name="encodingGroups" type="dm:encodingGroupsType"/>
           <xs:element name="captureScenes" type="dm:captureScenesType"/>
           <!-- optional fields -->
           <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>
   <!-- partial adv body -->
   <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:choice>
     <!-- add some content -->
     <xs:element name="add">
      <xs:complexType mixed="true">
       <xs:complexContent>
        <xs:extension base="add">
         <xs:anyAttribute processContents="lax"/>
        </xs:extension>
       </xs:complexContent>
      </xs:complexType>
     </xs:element>
     <!-- remove some content -->

Presta & Romano          Expires April 27, 2015                [Page 13]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

     <xs:element name="remove">
      <xs:complexType>
       <xs:complexContent>
        <xs:extension base="remove">
         <xs:anyAttribute processContents="lax"/>
        </xs:extension>
       </xs:complexContent>
      </xs:complexType>
     </xs:element>
     <!-- replace some content -->
     <xs:element name="replace">
      <xs:complexType mixed="true">
       <xs:complexContent>
        <xs:extension base="replace">
         <xs:anyAttribute processContents="lax"/>
        </xs:extension>
       </xs:complexContent>
      </xs:complexType>
     </xs:element>
     <!-- allow extension elements from other namespaces -->
     <xs:any namespace="##other" processContents="lax"/>
      </xs:choice>
   </xs:sequence>
   </xs:choice>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:extension>
   </xs:complexContent>
   </xs:complexType>

4.4.  ADVERTISEMENT ACKNOWLEDGEMENT

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

Presta & Romano          Expires April 27, 2015                [Page 14]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   <!-- ADV ACK MESSAGE TYPE -->
   <xs:complexType name="advAcknowledgementMessageType">
   <xs:complexContent>
   <xs:extension base="clueMessageType">
   <xs:sequence>
   <xs:element name="responseCode" type="xs:short"/>
   <xs:element name="reasonString" type="xs:string"/>
   <xs:element name="advSequenceNr" type="xs:unsignedInt"/>
   <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:extension>
   </xs:complexContent>
   </xs:complexType>

4.5.  CONFIGURE

   The CLUE 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 CONF
   after the reception of an ADV or each time it wants to request other
   captures that have been previously advertised by the MP.  The content
   of the CONF message is shown below.

    <!-- CLUE CONFIGURE MESSAGE TYPE -->
   <xs:complexType name="configureMessageType">
   <xs:complexContent>
   <xs:extension base="clueMessageType">
   <xs:sequence>
   <!-- mandatory fields -->
   <xs:element name="advSequenceNr" type="xs:unsignedInt"/>
   <xs:element name="ack" type="xs:boolean" minOccurs="0" fixed="true"/>
   <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>

   The <advSequenceNr> element contains the sequence number of the
   ADVERTISEMENT message the CONFIGURE refers to.

   The optional boolean <ack> element, set to "true", if present,

Presta & Romano          Expires April 27, 2015                [Page 15]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   indicates that the CONF message also acknowledge the referred
   advertisement, by applying in that way a piggibacking mechanism for
   simultaneously acknowledging and replying to the ADV message.  The
   <ack> element SHOULD not be present at all if an ADV 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.
   Such an element contains a sequence of capture encodings,
   representing the streams to be instantiated.

4.6.  CONFIGURE RESPONSE

   <!-- CONFIGURE RESPONSE MESSAGE TYPE -->
   <xs:complexType name="configureResponseMessageType">
   <xs:complexContent>
   <xs:extension base="clueMessageType">
   <xs:sequence>
   <xs:element name="responseCode" type="xs:short"/>
   <xs:element name="reasonString" type="xs:string"/>
   <xs:element name="confSequenceNr" type="xs:integer"/>
   <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
   </xs:sequence>
   <xs:anyAttribute namespace="##other" processContents="lax"/>
   </xs:extension>
   </xs:complexContent>
   </xs:complexType>

   The CONF RESPONSE message is sent from the MP to the MC to
   communicate the processing result of requests carried in the
   previously received CONF message.  It contains a response code with a
   reason string indicating either the success or the failure (along
   with failure details) of a CONF request processing.  Following, the
   <confSequenceNr> field contains the number of the CONF message the
   response refers to.

4.7.  Response codes and reason strings

   Examples of response codes and strings are provided in the following
   table.

Presta & Romano          Expires April 27, 2015                [Page 16]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |  Response code  |  Response string     |       Description        |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   200           |  Success             |  The request has been    |
   |                 |                      |  successfully processed. |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   310           |  Bad syntax          |  The XML syntax of the   |
   |                 |                      |  message is not          |
   |                 |                      |  correct.                |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   311           |  Invalid value       |  The message             |
   |                 |                      |  contains an invalid     |
   |                 |                      |  parameter value.        |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   312           | Version not supported|  The protocol version    |
   |                 |                      |  used in the message     |
   |                 |                      |  is not supported.       |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   313           |  Invalid sequencing  |  The sequence number of  |
   |                 |                      |  the message is out      |
   |                 |                      |  of date.                |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   412           |  Invalid identifier  |  The identifier used in  |
   |                 |                      |  the message is          |
   |                 |                      |  not valid or unknown.   |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   413           |  Conflicting values  |  The message             |
   |                 |                      |  contains values that    |
   |                 |                      |  cannot be used together.|
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   420           |  ADV Expired         |  The number of the ADV   |
   |                 |                      |  the CONF refers to is   |
   |                 |                      |  out of date.            |
   +-----------------+----------------------+--------------------------+
   |                 |                      |                          |
   |   510           | Version not supported|  The protocol version    |

Presta & Romano          Expires April 27, 2015                [Page 17]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   |                 |                      |  used in the message     |
   |                 |                      |  is not supported.       |
   |                 |                      |                          |
   +-----------------+----------------------+--------------------------+

   ...  TBC.

5.  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 upon the CLUE Data Channel, a DTLS/SCTP
   channel established as depicted in [I-D.ietf-clue-signaling].  Over
   such a channel there are typically two CLUE streams between the
   channel terminations flowing in opposite directions.  In other words,
   typically, both channel terminations act simultaneously as a MP and
   as a MC.  We herein discuss the state machines associated,
   respectively, with the CLUE Participant, with the MC process and with
   the MP process.

6.  CLUE Participant's state machine

   The main state machines focus on the behavior of the CLUE Participant
   (CP) acting as a CLUE channel initiator/receiver (CI/CR).

   When the CLUE data channel set up starts ("start channel setup"), 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 ("channel error"), it moves to the
   TERMINATED state.

   When in the OPTIONS state, the CP addresses the initiation phase
   where both parts agree on the version and on the options to be used
   in the subsequent CLUE messages exchange phase.  If the CP is the
   Channel Initiator (CI), it sends an OPTIONS message and waits for the
   OPTIONS response.  If the CP is the Channel Receiver (CR), it waits
   for the OPTIONS message and, as soon as it arrives, replies with the
   OPTIONS RESPONSE.  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 TERMINATED
   state.  The initiation phase might fail because of one of the
   following reasons:

Presta & Romano          Expires April 27, 2015                [Page 18]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   1.  the CI receives an OPTIONS RESPONSE with an error response code

   2.  the CI does not receive any OPTIONS RESPONSE and a timeout error
       is raised

   3.  the CR does not receive any OPTIONS and a timeout error is raised

   When in the ACTIVE state, the CP starts the envisioned sub state
   machines (i.e., the MP state machine and the MC state machine)
   according to the roles it wants to play in the telepresence sessions.
   Such roles have been previously declared in the OPTIONS and OPTIONS
   RESPONSE messages involved in the initiation phase (see OPTIONS
   sections for the details).  When in the ACTIVE state, the CP
   delegates the sending and the processing of the CLUE messages to the
   appropriate MP/MC sub-state machines.  If the CP receives a further
   OPTIONS/OPTIONS RESPONSE message, it MUST ignore the message and stay
   in the ACTIVE state.

   When in the TERMINATED state, the CP MUST release all the resources
   allocated for the CLUE session (channel resources and application
   resources).  The TERMINATED state is reachable from each of the
   aforementioned states in case of connection errors ("channel error")
   or in case of the end of the session ("session ends").  The CP moves
   from the ACTIVE state to the TERMINATED one also when both the sub
   state machines are in the TERMINATED state (see sub state machine
   sections).

Presta & Romano          Expires April 27, 2015                [Page 19]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

                                  +----+
                                  |IDLE|
                                  +-+--+
                                    |
                                    |  start
                                    |  channel
                                    v
             channel error/      +--------+
             session ends        | CHANNEL|
          +----------------------+ SETUP  |
          |                      +--+-----+
          |                         |
          |                         |  channel
          |                         |  established
          |  channel error/         v                 OPTIONS phase
          |  session ends         +-------+           failure
          +-----------------------+OPTIONS+--------------------------+
          |                       +-+-----+                          |
          |                         |                                |
          |                         |  OPTIONS phase                 |
          |                         |  success                       |
          |                         v                                |
          |   channel error/     +---------+                         |
          |   session ends       | ACTIVE  |                         |
          +----------------------+         |                         |
          |                      | +----+  +------------------+      |
          |                      | | MP |  |    send/receive  |      |
          |                      | +----+  |    CLUE messages |      |
          |                      |         |<-----------------+      |
          |                      | +----+  |                         |
          |                      | | MC |  |                         |
          |                      | +----+  |                         |
          |                      |         |                         |
          |                      +--+------+                         |
          |                         |                                |
          |                         |  both sub state machines       |
          |                         |  terminated                    |
          |                         v                                |
          |                       +----------+                       |
          +---------------------->|TERMINATED|<----------------------+
                                  +----------+

Presta & Romano          Expires April 27, 2015                [Page 20]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

6.1.  Media Provider's state machine

   In the ADV state, the MP is preparing the ADV message reflecting its
   actual telepresence capabilities.

   After the ADV has been 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 an ACK with an error response code arrives ("NACK
   received") and the number of NACKs for the issued ADV is under the
   retry threshold, the MP moves back to the ADV state for preparing a
   new ADV.  The same happens if the waiting time for the ACK is fired a
   number of times under the retry threshold ("timeout && retry not
   expired"): also in this case, the MP goes back to the ADV state to
   send a new copy of the ADV.  If the number of retries overcomes the
   threshold, the MP moves from the WAIT FOR ACK state to the TERMINATED
   state.  When in the WAIT FOR ACK state, if a CONF+ACK message arrives
   ("CONF+ACK received"), the MP goes directly to the CONF RESPONSE
   state.  CONF+ACK messages referring to out-of-date ADVs should 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 has to create a new
   advertisement, so it switches from the WAIT FOR ACK state to the ADV
   state.

   When in the WAIT FOR CONF state, the MP is listening to the channel
   for a CONF request coming from the MC.  If a CONF arrives ("CONF
   received"), the MP switches to the CONF RESPONSE state.  In case of a
   timeout not exceeding the retry threshold ("timeout && retry not
   expired"), the MP moves back to the ADV state.  When the retry
   expires ("retry expired") the MP moves to the MP TERMINATED state.
   If the telepresence settings change in the meanwhile ("changed
   telepresence settings"), the MP moves from the WAIT FOR CONF back to
   the ADV state to create the new ADV to be sent to the MC.

   The MP in the CONF RESPONSE state is processing the received CONF in
   order to produce a CONF RESPONSE message.  If the MP is fine with the
   MC's configuration, then it sends a 200 OK CONF RESPONSE ("success
   CONF RESPONSE sent") and moves to the SDP O/A state.  If there are
   errors in the CONF processing, then the MP issues a CONF RESPONSE
   carrying an error response code ("error CONF RESPONSE sent") and, if
   under the retry treshold ("retry not expired"), it goes back to the
   WAIT FOR CONF state to wait for a new configuration request.  If the
   number of trials exceeds the retry threshold ("retry expired"), the
   state MP TERMINATED is reached.  Finally, if there are changes in the
   MP's telepresence settings, the MP switches to the ADV state.

   The MP in the SDP O/A state has successfully negotiated the media

Presta & Romano          Expires April 27, 2015                [Page 21]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   streams with the MC by means of the CLUE messages.  In order to
   actually instatiate the media streams, the MP in this state starts
   the SDP O/A by sending an SDP offer to the MC and then waiting for
   the MC's answer.  If the SDP O/A succeeds ("successful O/A
   completion"), i.e., the answer arrives and is successfully processed,
   the MP moves to the ESTABLISHED state.  Otherwise ("O/A failure"),
   the MP goes to the MP TERMINATED state.  If there are changes in the
   MP's telepresence settings, the MP moves back to the ADV state.

   In the ESTABLISHED state, the media streams instantiated are those
   described in the last successfully processed CONF message.  In case
   of changes in the telepresence offer of the MP ("changed telepresence
   settings"), the MP comes back to the ADV state to issue a new ADV.

Presta & Romano          Expires April 27, 2015                [Page 22]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

+------------------------->+-----+<---------------------------+
|            +------------>| ADV |<-------------------+       |
|            |             +-+---+                    |       |timeout
|            |               |       NACK received    |       |&&
|            |       ADV sent|             &&         |       |retry
|            |               v       retry not expired|       |not
|     changed|             +--------+                 |       |expired
|telepresence+-------------+WAIT FOR+-----------------+       |
|    settings|   +---------+  ACK   +-------------------------+
|            |   |CONF+ACK +-+------+------------------------------------+
|            |   |received   |                                   timeout,|
|            |   |           |ACK received                        retry  |
|            |   |           v                                    expired|
+------------|-------------+--------+                                    |
timeout      +-------------+WAIT FOR+------------------------------------+
&&           |   |         |  CONF  |<-------------------------------+   |
retry        |   |         +-+------+                                |   |
not expired  |   |           |                                       |   |
             |   |           |CONF received                          |   |
             |   |           v               error CONF RESPONSE sent|   |
             |   +-------->+---------+        && retry not expired   |   |
             +-------------+CONF     |-------------------------------+   |
    +--------------------->|RESPONSE +-----------------------------------+
    |        |             +-+-------+           error CONF RESPONSE sent|
    |        |               |                           && retry expired|
    |        |               |  success                                  |
    |        |               |  CONF RESPONSE                            |
    |        |               |  sent                                     |
    |        |               v                                           |
    |        |             +--------+                                    |
    |        +-------------+SDP O/A +-------------------+                |
    +----------------------+-+------+                   |                |
    |        |               |                          | O/A failure    |
    |        |               | successful O/A           |                |
    |CONF    |               | completion               |                |
    |received|               v                          |                |
    |        |             +------------+               |                |
    |        +-------------+ESTABLISHED |               |                |
    +---------------------++------------+               |                |
                                                        |                |
                                                        |                |
                                                        |                |
                           +-----------+                |                |
                           !    MP     |                |                |
                           |TERMINATED |<---------------+                |
                           +-----------+<--------------------------------+

Presta & Romano          Expires April 27, 2015                [Page 23]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

6.2.  Media Consumer's state machine

   An MC in the WAIT FOR ADV state is waiting for an ADV coming from the
   MP.  If the ADV arrives ("ADV received"), the MC reaches the
   PROCESSING ADV state.  Otherwise, the MC is stuck in the WAIT FOR ADV
   state.

   In the PROCESSING ADV state, the ADV is parsed by the MC.  If the ADV
   is successfully processed, there are two possibilities.  According to
   the first one, the MC issues a successful ACK message to the MP ("ACK
   sent") and moves to the CONF state.  In the second one, the MC sends
   a CONF message with the <ack> field set to "true" ("CONF+ACK sent")
   and goes directly to the WAIT FOR CONF RESPONSE state.

   If something goes wrong with the ADV parsing (bad syntax, missing XML
   elements, etc.), and the number of times this has happened is under
   the retry treshold, the MC sends a NACK message (an ACK with an error
   response code) to the MP describing the problem via a proper reason
   phrase.  In this way ("NACK sent && retry not expired"), the MC
   switches back to the WAIT FOR ADV state, waiting for a new ADV.  If
   the NACK retry expires ("retry expired"), the MC moves to the MC
   TERMINATED state.

   When in the CONF state, the MC is preparing the CONF request to be
   issued to the MP on the basis of the previously ACK-ed ADV.  When the
   CONF has been sent ("CONF sent"), the MC moves to the WAIT FOR CONF
   RESPONSE state.  If a new ADV arrives in the meanwhile, the MC goes
   back to the PREPARING ADV state.

   When the SDP information arrives, from the ADV RECEIVED or the ADV
   ACKED state the MC switches to the READY TO CONF state.  When the
   CONF request is ready, the MC sends it and moves to the TRYING state.
   If the ADV has not yet been sent, the MC can piggyback the ACK
   message inside the CONF request.

   In the WAIT FOR CONF RESPONSE state, the MC is waiting for the
   response to the issued CONF or CONF+ACK coming from the MP.  If a 200
   OK CONF RESPONSE message is received ("successful CONF RESPONSE
   received"), it means that the MP and the MC have successfully agreed
   on the media streams to be shared.  Then, the MC can move to the SDP
   O/A state, where it will instantiate the agreed-upon media streams.
   On the other hand, if an error response is received and the
   associated retry counter does not overcome the threshold ("error CONF
   RESPONSE received && retry not expired"), the MC moves back to the
   CONF state to prepare a new CONF request.  In case of "retry
   expired", the MC moves to the MC TERMINATED state.  If no CONF
   RESPONSE arrives at all, and the number of timeouts is under the
   threshold, the MC moves to the WAIT FOR ADV state, waiting for a new

Presta & Romano          Expires April 27, 2015                [Page 24]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   ADV.  If a new ADV is received in the WAIT FOR CONF RESPONSE state,
   the MC switches to the ADV PROCESSING state.

   When the MC is in the SDP O/A 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 media streams to be exchanged within the call.  In
   this state, the MC waits for the SDP offer coming from the MP.  As
   soon as it arrives, the MC replies with an SDP answer.  If everything
   is ok with the SDP negotiation ("successful O/A completion"), the MC
   moves to the ESTABLISHED phase, otherwise ("O/A failure") it moves to
   the MC TERMINATED state.  While in the SDP O/A state, it might happen
   that the MC decides to change something in the call settings.  The MC
   then issues a new CONF ("CONF sent") and goes to wait for the new
   CONF RESPONSE in the WAIT FOR CONF RESPONSE state.  If a new ADV
   arrives from the MP ("ADV received"), it means that something has
   changed on the MP's side.  The MC then moves to the ADV PROCESSING
   state.

   In the ESTABLISHED state, the streams negotiated by means of the CLUE
   messages are instantiated on the media plane.  If the MC whishes to
   change the media configuration, it issues a new CONF towards the MP
   ("CONF sent") and moves to the CONF state.  In case of a new ADV
   ("ADV received"), it switches to the ADV PROCESSING state.

   The TERMINATED state is reachable from each of the aforementioned
   states whenever the underlying channel is closed.  The corresponding
   transitions have not been reported for the sake of simplicity.

                           +----------+
                           | WAIT FOR |
                           |   ADV    |<-------------------------------+
                           +----+-----+<--------+                      |
                                |               |           timeout&&  |
                        ADV     |      NACK sent|             retry    |
                        received|      && retry |           not expired|
                                v    not expired|                      |
                           +-----------+--------+    retry expired     |
                           |  ADV      +-------------------------------|--+
                           | PROCESSING|<-----------------------+      |  |
                           +-+-----+---+                        |      |  |
                             |     |                            |      |  |
                   CONF+ACK  |     |  ACK                       |      |  |
                     sent    |     |  sent                      |      |  |

Presta & Romano          Expires April 27, 2015                [Page 25]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

                             |     v                            |      |  |
                             |  +-----+                         |      |  |
                             |  |CONF |            ADV received |      |  |
            +------------------>|     +-------------------------+      |  |
            |                |  +--+--+                         |      |  |
            |error           |     |                            |      |  |
            |CONF RESPONSE   |     | CONF                       |      |  |
            |received&&      |     | sent      retry expired    |      |  |
            |retry           |     |      +-------------------------------+
            |not expired     v     v      |                     |      |  |
            +-------------+---------------+        ADV received |      |  |
               +--------->|   WAIT FOR    +---------------------+      |  |
               |          |  CONF RESPONSE+----------------------------+  |
               |          +-------+-------+                     |         |
               |                  |                             |         |
               |                  | successful                  |         |
               |                  | CONF RESPONSE               |         |
               |                  | received                    |         |
               |CONF sent         v                ADV received |         |
               +-------------+-------+--------------------------+         |
               |             |SDP O/A|       O/A failure        |         |
               |             +----+--+------------------------------+     |
               |                  |                             |   |     |
               |                  |successful                   |   |     |
               |                  |O/A                          |   |     |
               |                  |completion                   |   |     |
               |                  v                             |   |     |
               |CONF sent   +-----------+           ADV received|   |     |
               +------------+ESTABLISHED+-----------------------+   |     |
                            +-----------+                           |     |
                                                                    |     |
                                                                    |     |
                                                                    |     |
                             +-----------+<-------------------------+     |
                             |   MC      |<-------------------------------+
                             |TERMINATED |
                             +-----------+

7.  Versioning

   CLUE protocol messages are XML messages compliant to the CLUE
   protocol XML 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.

Presta & Romano          Expires April 27, 2015                [Page 26]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   Obviously, client and server cannot communicate if they do not share
   exactly the same XML schema.  Such a schema is the one included in
   the yet to come RFC, and associated with the CLUE URN
   "urn:ietf:params:xml:ns:clue-message".  If all CLUE-enabled devices
   use that schema there will be no interoperability problems due to
   schema issues.

   The version of the XML schema contained in the standard document
   deriving from this draft will be 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.

   It is expected that, before the CLUE protocol XML schema reaches a
   steady state, prototypes developed by different organizations will
   conduct interoperability testing.  In that case, in order to
   interoperate, they have to be compliant to the current version of the
   XML schema, i.e., the one copied in the most up-to-date version of
   the draft defining the CLUE protocol.  The versions of the non-
   standard XML schema will be numbered as 0.01, 0.02, and so on.
   During the standard development phase, the versions of the XML schema
   will probably not be backward compatible so it is left to prototype
   implementers the responsibility of keeping their products up to date.

8.  Extensions and options

   Although the standard version of the CLUE protocol XML schema will be
   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.  They can relate to:

   1.  new information, to be carried in the existing messages.  For
       example, we may want to add more fields within an existing
       message;

Presta & Romano          Expires April 27, 2015                [Page 27]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   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"

   In that case, the new information must be qualified by namespaces
   other than "urn:ietf:params:xml:ns:clue-message" (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.
   Similarly to what said before, 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
   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;

Presta & Romano          Expires April 27, 2015                [Page 28]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   o  an external XML Schema defining the XML information and/or the XML
      messages representing the extension;

   o  the standard version of the protocol the extension refers to.

   For that reason, the extensions can be represented by means of the
   <option> element as defined below, which is carried within the
   OPTIONS and OPTIONS RESPONSE messages to represent the extensions
   supported by the CI and by the CR.

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

9.  XML Schema

   In this section, the XML schema defining the CLUE messages is
   provided.

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema
version="0.02"
targetNamespace="urn:ietf:params:xml:ns:clue-message"
xmlns:tns="urn:ietf:params:xml:ns:clue-message"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:dm="urn:ietf:params:xml:ns:clue-info"
xmlns="urn:ietf:params:xml:ns:clue-message"
elementFormDefault="qualified"
attributeFormDefault="unqualified">

<!-- Import data model schema -->
<xs:import namespace="urn:ietf:params:xml:ns:clue-info"
schemaLocation="data-model-schema-07.xsd"/>

<!-- Import RFC5261 schema -->
<xs:include schemaLocation="rfc5261.xsd"/>

Presta & Romano          Expires April 27, 2015                [Page 29]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

<!-- ELEMENT DEFINITIONS -->
<xs:element name="options" type="optionsMessageType"/>
<xs:element name="optionsResponse" type="optionsResponseMessageType"/>
<!--<xs:element name="optionsAck" type="optionsAcknowledgementMessageType"/>-->
<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"/>
<xs:element name="sequenceNr" type="xs:unsignedInt"/>
</xs:sequence>
<xs:attribute name="protocol" type="xs:string" fixed="CLUE" use="required"/>
<xs:attribute name="v" type="xs:string" use="required"/>
</xs:complexType>

<!-- 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="supportedOptions" type="optionsListType" 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="xs:string" minOccurs="1"
 maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

<!-- OPTIONS LIST TYPE -->
<xs:complexType name="optionsListType">
<xs:sequence>

Presta & Romano          Expires April 27, 2015                [Page 30]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

<xs:element name="option" type="optionType" minOccurs="1"
 maxOccurs="unbounded"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>

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

<!-- CLUE OPTIONS RESPONSE (2 WAY) -->
<xs:complexType name="optionsResponseMessageType">
<xs:complexContent>
<xs:extension base="clueMessageType">
<xs:sequence>
<xs:element name="responseCode" type="xs:short"/>
<xs:element name="reasonString" type="xs:string"/>
<xs:element name="mediaProvider" type="xs:boolean" minOccurs="0"/>
<xs:element name="mediaConsumer" type="xs:boolean" minOccurs="0"/>
<xs:element name="version" type="xs:string" minOccurs="0"/>
<xs:element name="commonOptions" type="optionsListType" 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:choice>
<!-- full adv body -->
<xs:sequence>
        <!-- mandatory fields -->

Presta & Romano          Expires April 27, 2015                [Page 31]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

        <xs:element name="mediaCaptures" type="dm:mediaCapturesType"/>
        <xs:element name="encodingGroups" type="dm:encodingGroupsType"/>
        <xs:element name="captureScenes" type="dm:captureScenesType"/>
        <!-- optional fields -->
        <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>
<!-- partial adv body -->
<xs:sequence minOccurs="0" maxOccurs="unbounded">
 <xs:choice>
  <!-- add some content -->
  <xs:element name="add">
   <xs:complexType mixed="true">
    <xs:complexContent>
     <xs:extension base="add">
      <xs:anyAttribute processContents="lax"/>
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>
  </xs:element>
  <!-- remove some content -->
  <xs:element name="remove">
   <xs:complexType>
    <xs:complexContent>
     <xs:extension base="remove">
      <xs:anyAttribute processContents="lax"/>
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>
  </xs:element>
  <!-- replace some content -->
  <xs:element name="replace">
   <xs:complexType mixed="true">
    <xs:complexContent>
     <xs:extension base="replace">
      <xs:anyAttribute processContents="lax"/>
     </xs:extension>
    </xs:complexContent>
   </xs:complexType>
  </xs:element>
  <!-- allow extension elements from other namespaces -->
  <xs:any namespace="##other" processContents="lax"/>
   </xs:choice>
</xs:sequence>

Presta & Romano          Expires April 27, 2015                [Page 32]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

<!-- ADV ACK MESSAGE TYPE -->
<xs:complexType name="advAcknowledgementMessageType">
<xs:complexContent>
<xs:extension base="clueMessageType">
<xs:sequence>
<xs:element name="responseCode" type="xs:short"/>
<xs:element name="reasonString" type="xs:string"/>
<xs:element name="advSequenceNr" type="xs:unsignedInt"/>
<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:unsignedInt"/>
<xs:element name="ack" type="xs:boolean" minOccurs="0" fixed="true"/>
<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>

<!-- CONFIGURE RESPONSE MESSAGE TYPE -->
<xs:complexType name="configureResponseMessageType">
<xs:complexContent>
<xs:extension base="clueMessageType">
<xs:sequence>
<xs:element name="responseCode" type="xs:short"/>
<xs:element name="reasonString" type="xs:string"/>
<xs:element name="confSequenceNr" type="xs:integer"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"/>
</xs:sequence>

Presta & Romano          Expires April 27, 2015                [Page 33]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

</xs:schema>

10.  ADVERTISEMENT examples

   In the following we provide two examples of ADVERTISEMENT
   representing the telepresence environment described in
   [I-D.ietf-clue-data-model-schema], Section 22 "Sample XML file" and
   Section 23 "MCC example" respectively.  The last subsection is about
   a partial ADV message example.

10.1.  Simple ADV

   The associated Media Provider's telepresence capabilities are
   described in [I-D.ietf-clue-data-model-schema], Section 22 "Sample
   XML file".  The XML file can be downloaded here:
   http://wpage.unina.it/spromano/CLUE/.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<advertisement xmlns="urn:ietf:params:xml:ns:clue-message"
               xmlns:ns2="urn:ietf:params:xml:ns:clue-info"
               xmlns:ns3="urn:ietf:params:xml:ns:vcard-4.0"
               protocol="CLUE" v="0.0">
    <clueId>Napoli</clueId>
    <sequenceNr>45</sequenceNr>
    <mediaCaptures>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType"  captureID="AC0" mediaType="video">

            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG1</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>

Presta & Romano          Expires April 27, 2015                [Page 34]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">main audio from the room</ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>room</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>alice</ns2:personIDREF>
                <ns2:personIDREF>bob</ns2:personIDREF>
                <ns2:personIDREF>ciccio</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType" mediaType="video" captureID="VC0">

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

Presta & Romano          Expires April 27, 2015                [Page 35]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">central camera video capture
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>alice</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>2</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType" mediaType="video" captureID="VC2">

            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">right camera video capture
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>

Presta & Romano          Expires April 27, 2015                [Page 36]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>bob</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>2</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType" mediaType="video" captureID="VC3">

            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:nonSpatiallyDefinable>true</ns2:nonSpatiallyDefinable>
            <ns2:composed>false</ns2:composed>
            <ns2:switched>true</ns2:switched>
            <ns2:policy>Soundlevel:0</ns2:policy>
            <ns2:maxCaptures>1</ns2:maxCaptures>
            <ns2:description lang="en">loudest room segment</ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType" mediaType="video" captureID="VC4">

            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">zoomed out view of all people in
            the room
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>

Presta & Romano          Expires April 27, 2015                [Page 37]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

            <ns2:view>room</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>alice</ns2:personIDREF>
                <ns2:personIDREF>bob</ns2:personIDREF>
                <ns2:personIDREF>ciccio</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
    </mediaCaptures>
    <encodingGroups>
        <ns2:encodingGroup encodingGroupID="EG0">
            <ns2:maxGroupBandwidth>600000</ns2:maxGroupBandwidth>
            <ns2:encodingIDList>
                <ns2:encID>ENC1</ns2:encID>
                <ns2:encID>ENC2</ns2:encID>
                <ns2:encID>ENC3</ns2:encID>
            </ns2:encodingIDList>
        </ns2:encodingGroup>
        <ns2:encodingGroup encodingGroupID="EG1">
            <ns2:maxGroupBandwidth>300000</ns2:maxGroupBandwidth>
            <ns2:encodingIDList>
                <ns2:encID>ENC4</ns2:encID>
                <ns2:encID>ENC5</ns2:encID>
            </ns2:encodingIDList>
        </ns2:encodingGroup>
    </encodingGroups>
    <captureScenes>
        <ns2:captureScene scale="unknown" sceneID="CS1">
            <ns2:sceneViews>
                <ns2:sceneView sceneViewID="SE1">
                    <ns2:mediaCaptureIDs>
                        <ns2:captureIDREF>VC0</ns2:captureIDREF>
                        <ns2:captureIDREF>VC1</ns2:captureIDREF>
                        <ns2:captureIDREF>VC2</ns2:captureIDREF>
                    </ns2:mediaCaptureIDs>
                </ns2:sceneView>
                <ns2:sceneView sceneViewID="SE2">
                    <ns2:mediaCaptureIDs>
                        <ns2:captureIDREF>VC3</ns2:captureIDREF>
                    </ns2:mediaCaptureIDs>
                </ns2:sceneView>
                <ns2:sceneView sceneViewID="SE3">
                    <ns2:mediaCaptureIDs>
                        <ns2:captureIDREF>VC4</ns2:captureIDREF>
                    </ns2:mediaCaptureIDs>
                </ns2:sceneView>
                <ns2:sceneView sceneViewID="SE4">
                    <ns2:mediaCaptureIDs>

Presta & Romano          Expires April 27, 2015                [Page 38]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

Presta & Romano          Expires April 27, 2015                [Page 39]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

10.2.  ADV with MCCs

   The associated Media Provider's telepresence capabilities are
   described in [I-D.ietf-clue-data-model-schema], Section 23 "MCC
   example".  The XML file can be downloaded here:
   http://wpage.unina.it/spromano/CLUE/.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<advertisement xmlns="urn:ietf:params:xml:ns:clue-message"
 xmlns:ns2="urn:ietf:params:xml:ns:clue-info"
 xmlns:ns3="urn:ietf:params:xml:ns:vcard-4.0" protocol="CLUE" v="0.1">
    <clueId>Napoli CLUE Endpoint</clueId>
    <sequenceNr>34</sequenceNr>
    <mediaCaptures>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType" mediaType="video" captureID="AC0">

            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG1</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">main audio from the room</ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>room</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>alice</ns2:personIDREF>
                <ns2:personIDREF>bob</ns2:personIDREF>
                <ns2:personIDREF>ciccio</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:type="ns2:videoCaptureType" captureID="VC0" mediaType="video" >

Presta & Romano          Expires April 27, 2015                [Page 40]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

Presta & Romano          Expires April 27, 2015                [Page 41]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

            <ns2:capturedPeople>
                <ns2:personIDREF>alice</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>2</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType" captureID="VC2" mediaType="video" >
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">right camera video capture
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>bob</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>2</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType" captureID="VC3" mediaType="video" >
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:nonSpatiallyDefinable>true</ns2:nonSpatiallyDefinable>
            <ns2:content>
                <ns2:sceneViewIDREF>SE1</ns2:sceneViewIDREF>
            </ns2:content>
            <ns2:policy>Soundlevel:0</ns2:policy>
            <ns2:maxCaptures>1</ns2:maxCaptures>
            <ns2:description lang="en">loudest room segment</ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>

Presta & Romano          Expires April 27, 2015                [Page 42]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType"  captureID="VC4" mediaType="video">
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:description lang="en">zoomed out view of all people in the room
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>room</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>alice</ns2:personIDREF>
                <ns2:personIDREF>bob</ns2:personIDREF>
                <ns2:personIDREF>ciccio</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType"  captureID="VC5" mediaType="video">
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:nonSpatiallyDefinable>true</ns2:nonSpatiallyDefinable>
            <ns2:content>
                <ns2:sceneViewIDREF>SE1</ns2:sceneViewIDREF>
            </ns2:content>
            <ns2:policy>Soundlevel:1</ns2:policy>
            <ns2:maxCaptures>1</ns2:maxCaptures>
            <ns2:description lang="en">penultimate loudest room segment
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>

Presta & Romano          Expires April 27, 2015                [Page 43]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType"  captureID="VC6" mediaType="video">
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:nonSpatiallyDefinable>true</ns2:nonSpatiallyDefinable>
            <ns2:content>
                <ns2:sceneViewIDREF>SE1</ns2:sceneViewIDREF>
            </ns2:content>
            <ns2:composed>false</ns2:composed>
            <ns2:switched>true</ns2:switched>
            <ns2:policy>Soundlevel:2</ns2:policy>
            <ns2:maxCaptures>1</ns2:maxCaptures>
            <ns2:description lang="en">last but two loudest room segment
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType" captureID="VC7" mediaType="video">
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:nonSpatiallyDefinable>true</ns2:nonSpatiallyDefinable>
            <ns2:content>
                <ns2:captureIDREF>VC3</ns2:captureIDREF>
                <ns2:captureIDREF>VC5</ns2:captureIDREF>
                <ns2:captureIDREF>VC6</ns2:captureIDREF>
            </ns2:content>
            <ns2:composed>true</ns2:composed>
            <ns2:switched>true</ns2:switched>
            <ns2:maxCaptures>1</ns2:maxCaptures>
            <ns2:description lang="en">big picture of the current speaker +
            pips about previous speakers</ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:maxCaptureEncodings>1</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
    </mediaCaptures>
    <encodingGroups>
        <ns2:encodingGroup encodingGroupID="EG0">
            <ns2:maxGroupBandwidth>600000</ns2:maxGroupBandwidth>
            <ns2:encodingIDList>
                <ns2:encID>ENC1</ns2:encID>
                <ns2:encID>ENC2</ns2:encID>
                <ns2:encID>ENC3</ns2:encID>

Presta & Romano          Expires April 27, 2015                [Page 44]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

Presta & Romano          Expires April 27, 2015                [Page 45]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

Presta & Romano          Expires April 27, 2015                [Page 46]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

10.3.  Partial ADV

   In this example, it is first presented a "full" ADV issued by the MP
   to the MC.  The MP describes in the first ADV (sequence number 11) a
   telepresence room with three cameras and associated microphones,
   capturing one participant (Ciccio) from three different point of
   views.  In a second moment, a new participant joins Ciccio in the
   telepresence session, then the MP issues a new ADV to the MC
   (sequence number 12) by exploiting the diff mechanism in order to
   announce the new captured person.

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

Presta & Romano          Expires April 27, 2015                [Page 47]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

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

Presta & Romano          Expires April 27, 2015                [Page 48]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

            <ns2:description lang="en">central camera video capture
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>ciccio</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>2</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
        <ns2:mediaCapture xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:type="ns2:videoCaptureType" captureID="VC2" mediaType="video">
            <ns2:captureSceneIDREF>CS1</ns2:captureSceneIDREF>
            <ns2:spatialInformation>
                <ns2:capturePoint>
                    <ns2:x>0.5</ns2:x>
                    <ns2:y>1.0</ns2:y>
                    <ns2:z>0.5</ns2:z>
                    <ns2:lineOfCapturePoint>
                        <ns2:x>0.5</ns2:x>
                        <ns2:y>0.0</ns2:y>
                        <ns2:z>0.5</ns2:z>
                    </ns2:lineOfCapturePoint>
                </ns2:capturePoint>
            </ns2:spatialInformation>
            <ns2:individual>true</ns2:individual>
            <ns2:encGroupIDREF>EG0</ns2:encGroupIDREF>
            <ns2:description lang="en">right camera video capture
            </ns2:description>
            <ns2:priority>1</ns2:priority>
            <ns2:lang>it</ns2:lang>
            <ns2:mobility>static</ns2:mobility>
            <ns2:view>individual</ns2:view>
            <ns2:capturedPeople>
                <ns2:personIDREF>ciccio</ns2:personIDREF>
            </ns2:capturedPeople>
            <ns2:maxCaptureEncodings>2</ns2:maxCaptureEncodings>
        </ns2:mediaCapture>
    </mediaCaptures>
    <encodingGroups>
        <ns2:encodingGroup encodingGroupID="EG0">
            <ns2:maxGroupBandwidth>600000</ns2:maxGroupBandwidth>
            <ns2:encodingIDList>
                <ns2:encID>ENC1</ns2:encID>
                <ns2:encID>ENC2</ns2:encID>
                <ns2:encID>ENC3</ns2:encID>
            </ns2:encodingIDList>

Presta & Romano          Expires April 27, 2015                [Page 49]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

        </ns2:encodingGroup>
        <ns2:encodingGroup encodingGroupID="EG1">
            <ns2:maxGroupBandwidth>300000</ns2:maxGroupBandwidth>
            <ns2:encodingIDList>
                <ns2:encID>ENC4</ns2:encID>
                <ns2:encID>ENC5</ns2:encID>
            </ns2:encodingIDList>
        </ns2:encodingGroup>
    </encodingGroups>
    <captureScenes>
        <ns2:captureScene scale="unknown" sceneID="CS1">
            <ns2:sceneViews>
                <ns2:sceneView sceneViewID="SE1">
                    <ns2:mediaCaptureIDs>
                        <ns2:captureIDREF>VC0</ns2:captureIDREF>
                        <ns2:captureIDREF>VC1</ns2:captureIDREF>
                        <ns2:captureIDREF>VC2</ns2:captureIDREF>
                    </ns2:mediaCaptureIDs>
                </ns2:sceneView>
                <ns2:sceneView sceneViewID="SE4">
                    <ns2:mediaCaptureIDs>
                        <ns2:captureIDREF>AC0</ns2:captureIDREF>
                    </ns2:mediaCaptureIDs>
                </ns2:sceneView>
            </ns2:sceneViews>
        </ns2:captureScene>
    </captureScenes>
    <simultaneousSets>
        <ns2:simultaneousSet setID="SS1">
            <ns2:sceneViewIDREF>SE1</ns2:sceneViewIDREF>
        </ns2:simultaneousSet>
        <ns2:simultaneousSet setID="SS2">
            <ns2:mediaCaptureIDREF>AC0</ns2:mediaCaptureIDREF>
        </ns2:simultaneousSet>
    </simultaneousSets>
    <people>
        <ns2:person personID="ciccio">
            <ns2:personInfo>
                <ns3:fn>
                    <ns3:text>Ciccio Esposito</ns3:text>
                </ns3:fn>
            </ns2:personInfo>
            <ns2:personType>chairman</ns2:personType>
            <ns2:personType>timekeeper</ns2:personType>
        </ns2:person>
    </people>
</advertisement>

Presta & Romano          Expires April 27, 2015                [Page 50]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<advertisement xmlns="urn:ietf:params:xml:ns:clue-message"
xmlns:ns2="urn:ietf:params:xml:ns:clue-info"
xmlns:ns3="urn:ietf:params:xml:ns:vcard-4.0"
protocol="CLUE" v="0.2">
    <clueId>Ciccio</clueId>
    <sequenceNr>12</sequenceNr>
    <add sel="/advertisement/people">
       <ns2:person personID="alice_ID">
           <ns2:personInfo>
               <ns3:fn>
                   <ns3:text>Alice Romano</ns3:text>
               </ns3:fn>
           </ns2:personInfo>
           <ns2:personType>attendee</ns2:personType>
       </ns2:person>
    </add>
    <add sel="/advertisement/mediaCaptures/mediaCapture/capturedPeople">
        <ns2:personIDREF>alice_ID</ns2:personIDREF>
    </add>
</advertisement>

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

11.1.  URN Sub-Namespace Registration

   This section registers a new XML namespace,
   ""urn:ietf:params:xml:ns:clue-protocol"".

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

   Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon
   Pietro Romano (spromano@unina.it).

   XML:

Presta & Romano          Expires April 27, 2015                [Page 51]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   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

11.2.  XML Schema registration

   This section registers an XML schema per the guidelines in [RFC3688].

   URI: urn:ietf:params:xml:schema:clue-protocol

   Registrant Contact: CLUE working group (clue@ietf.org), Simon Pietro
   Romano (spromano@unina.it).

   Schema: The XML for this schema can be found as the entirety of
   Section 9 of this document.

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

Presta & Romano          Expires April 27, 2015                [Page 52]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   [RFC3023], Section 3.2.

   Encoding considerations: Same as the encoding considerations of
   "application/xml" as specified in [RFC3023], 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): .clue,
   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 [RFC3023], and many of the considerations described
   there also apply to application/clue+xml.

11.4.  DNS Registrations

   Section 11.4.1 defines an Application Service tag of "CLUE", which is
   used to identify the CLUE service.  The Application Protocol tag
   "CLUE", defined in Section 11.4.2, is used to identify a CLUE
   Participant that understands CLUE.

11.4.1.  Application Service tag

   This section registers a new S-NAPTR/U-NAPTR Application Service tag
   for CLUE, as mandated by [RFC3958].

   Application Service Tag: CLUE

Presta & Romano          Expires April 27, 2015                [Page 53]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   Intended usage: Identifies a server that supports CLUE telepresence
   conferencing.

   Defining publication: RFCXXXX [[NOTE TO IANA/RFC-EDITOR: Please
   replace XXXX with the RFC number for this specification.]]

   Contact information: The authors of this document

   Author/Change controller: The IESG

11.4.2.  Application Protocol tag

   This section registers a new S-NAPTR/U-NAPTR Application Protocol tag
   for CLUE, as mandated by [RFC3958].

   Application Service Tag: CLUE

   Intended Usage: Identifies the CLUE Protocol.

   Applicable Service Tag(s): CLUE

   Terminal NAPTR Record Type(s): U

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

   Contact Information: The authors of this document

   Author/Change Controller: The IESG

11.5.  CLUE Protocol Registry

   The document requests that the IANA creates new registries for CLUE
   messages and response codes.

11.5.1.  CLUE Message Types

   The following summarizes the registry for CLUE messages:

   Related Registry: CLUE Message Types Registry

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

   Registration/Assignment Procedures: Following the policies outlined
   in [RFC5226], the IANA policy for assigning new values for the CLUE
   message types for the CLUE protocol is Specification Required.

Presta & Romano          Expires April 27, 2015                [Page 54]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon
   Pietro Romano (spromano@unina.it).

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

   ToDo: table: message description reference

11.5.2.  CLUE Response Codes

   The following summarizes the requested registry for CLUE response
   codes:

   Related Registry: CLUE Response Code Registry

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

   Registration/Assignment Procedures: Following the policies outlined
   in [RFC5226], the IANA policy for assigning new values for the
   Response codes for CLUE shall be Specification Required.

   Registrant Contact: IETF CLUE working group (clue@ietf.org), Simon
   Pietro Romano (spromano@unina.it).

   The initial Response-code table is populated using the Response codes
   defined in Section 4.7 as follows:

   ToDo: table: number, default response string, description, reference

12.  Diff with draft-ietf-clue-protocol-01

   o  The diff mechanism for the ADV message has been introduced.

   o  READV and READV RESPONSE message have been both removed.

   o  The state machines have been deeply reviewed and changed.

   o  References: references have been updated and splitted into
      Informative references and Normative references as in framework
      v17.

   o  Schema: <globalSceneEntries> changed in <globalViews>,
      <participants> in <people>

   o  Terminology: many definitions added.

Presta & Romano          Expires April 27, 2015                [Page 55]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   o  Response codes updated.

13.  Diff with draft-ietf-clue-protocol-00

   1.  The XML schema of the ADVERTISEMENT and of the READV have been
       aligned with the current definitions in
       [I-D.ietf-clue-data-model-schema] (example of updates:
       <participants> --> <people>, <globalCaptureEntries> -->
       <globalSceneEntries>)

   2.  Text has been added to clarify that, in the OPTIONS RESPONSE,
       when the response code is not an error response code, both
       <mediaProvider> and <mediaConsumer> are mandatory.

   3.  The content of the "v" attribute and of the <version> elements
       carried in the OPTIONS and OPTIONS RESPONSE messages has been
       described more precisely.

   4.  Advertisement examples have been added.

14.  Diff with draft-presta-clue-protocol-04

   1.  The response code type error in the OPTIONS response (and in
       other parts) has been corrected.

15.  Diff with draft-presta-clue-protocol-03

   1.  The XML Schema has been deeply revised and completed.

   2.  The descriptions of the CLUE messages have been added.

   3.  The distinction between major version numbers and minor version
       numbers has been cut and pasted from [I-D.ietf-clue-signaling].

   4.  Besides the two way one, a three way mechanism for the options
       negotiation has been proposed and provided to foster discussion.

16.  Diff with draft-presta-clue-protocol-02

   1.  "Terminology" section added.

   2.  Introduced the concept of "CLUE Participant" - an Endpoint or a
       MCU able to use the CLUE protocol within a telepresence session.
       A CLUE Participant can act as a Media Provider and/or as a Media
       Consumer.

   3.  Introduced the ACK/NACK mechanism for the ADVERTISEMENT.

Presta & Romano          Expires April 27, 2015                [Page 56]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

   4.  MP and MC state machines have been updated.  The CP state machine
       has been added.

17.  Acknowledgments

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

18.  References

18.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-07 (work in
                                              progress), September 2014.

   [I-D.ietf-clue-datachannel]                Holmberg, C., "CLUE
                                              Protocol Data Channel", dr
                                              aft-ietf-clue-datachannel-
                                              01 (work in progress),
                                              September 2014.

   [I-D.ietf-clue-framework]                  Duckworth, M., Pepperell,
                                              A., and S. Wenger,
                                              "Framework for
                                              Telepresence Multi-
                                              Streams", draft-ietf-clue-
                                              framework-17 (work in
                                              progress), September 2014.

   [I-D.ietf-clue-signaling]                  Kyzivat, P., Xiao, L.,
                                              Groves, C., and R. Hansen,
                                              "CLUE Signaling", draft-
                                              ietf-clue-signaling-03
                                              (work in progress),
                                              August 2014.

   [RFC3023]                                  Murata, M., St. Laurent,
                                              S., and D. Kohn, "XML
                                              Media Types", RFC 3023,
                                              January 2001.

   [RFC3550]                                  Schulzrinne, H., Casner,
                                              S., Frederick, R., and V.

Presta & Romano          Expires April 27, 2015                [Page 57]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

                                              Jacobson, "RTP: A
                                              Transport Protocol for
                                              Real-Time Applications",
                                              STD 64, RFC 3550,
                                              July 2003.

   [RFC3688]                                  Mealling, M., "The IETF
                                              XML Registry", BCP 81,
                                              RFC 3688, January 2004.

   [RFC3958]                                  Daigle, L. and A. Newton,
                                              "Domain-Based Application
                                              Service Location Using SRV
                                              RRs and the Dynamic
                                              Delegation Discovery
                                              Service (DDDS)", RFC 3958,
                                              January 2005.

   [RFC5226]                                  Narten, T. and H.
                                              Alvestrand, "Guidelines
                                              for Writing an IANA
                                              Considerations Section in
                                              RFCs", BCP 26, RFC 5226,
                                              May 2008.

   [RFC5261]                                  Urpalainen, J., "An
                                              Extensible Markup Language
                                              (XML) Patch Operations
                                              Framework Utilizing XML
                                              Path Language (XPath)
                                              Selectors", RFC 5261,
                                              September 2008.

18.2.  Informative References

   [I-D.groves-clue-partial-update]           Groves, C., Yang, W., and
                                              R. Even, "CLUE Partial
                                              Updates", draft-groves-
                                              clue-partial-update-00
                                              (work in progress),
                                              September 2014.

   [I-D.ietf-clue-telepresence-requirements]  Romanow, A., Botzko, S.,
                                              and M. Barnes,
                                              "Requirements for
                                              Telepresence Multi-
                                              Streams", draft-ietf-clue-
                                              telepresence-requirements-

Presta & Romano          Expires April 27, 2015                [Page 58]
Internet-Draft         draft-ietf-clue-protocol-02          October 2014

                                              07 (work in progress),
                                              December 2013.

   [RFC4353]                                  Rosenberg, J., "A
                                              Framework for Conferencing
                                              with the Session
                                              Initiation Protocol
                                              (SIP)", RFC 4353,
                                              February 2006.

   [RFC5117]                                  Westerlund, M. and S.
                                              Wenger, "RTP Topologies",
                                              RFC 5117, January 2008.

   [RFC6502]                                  Camarillo, G., Srinivasan,
                                              S., Even, R., and J.
                                              Urpalainen, "Conference
                                              Event Package Data Format
                                              Extension for Centralized
                                              Conferencing (XCON)",
                                              RFC 6502, March 2012.

   [RFC6503]                                  Barnes, M., Boulton, C.,
                                              Romano, S., and H.
                                              Schulzrinne, "Centralized
                                              Conferencing Manipulation
                                              Protocol", RFC 6503,
                                              March 2012.

Authors' Addresses

   Roberta Presta
   University of Napoli
   Via Claudio 21
   Napoli  80125
   Italy

   EMail: roberta.presta@unina.it

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

   EMail: spromano@unina.it

Presta & Romano          Expires April 27, 2015                [Page 59]