Internet DRAFT - draft-cazeaux-clue-sip-signaling

draft-cazeaux-clue-sip-signaling






Network Working Group                                         S. Cazeaux
Internet-Draft                                                 E. Bertin
Intended status: Informational                                B. Chatras
Expires: September 28, 2012                        France Telecom Orange
                                                          March 27, 2012


 Requirements for ControLling mUltiple streams for tElepresence (CLUE)
                               signaling.
                  draft-cazeaux-clue-sip-signaling-01

Abstract

   This document defines requirements relating to the design of CLUE
   signaling.  This document also proposes two alternative design
   approaches to CLUE signaling.

Status of this Memo

   This Internet-Draft is submitted to IETF 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 September 28, 2012.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   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.



Cazeaux, et al.        Expires September 28, 2012               [Page 1]

Internet-Draft         CLUE signaling requirements            March 2012


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Requirements . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  CLUE signaling options . . . . . . . . . . . . . . . . . . . .  4
     4.1.  Option A: CLUE signaling based on SIP-SDP signaling
           only . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
       4.1.1.  Overview . . . . . . . . . . . . . . . . . . . . . . .  5
       4.1.2.  Use of SDP fields  . . . . . . . . . . . . . . . . . .  6
       4.1.3.  Examples of SDP  . . . . . . . . . . . . . . . . . . .  7
       4.1.4.  Transport and format . . . . . . . . . . . . . . . . .  9
     4.2.  Option B1: media capture selection in a separate
           protocol . . . . . . . . . . . . . . . . . . . . . . . . .  9
       4.2.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . 10
       4.2.2.  Use of SDP fields  . . . . . . . . . . . . . . . . . . 11
       4.2.3.  Examples of SDP  . . . . . . . . . . . . . . . . . . . 11
       4.2.4.  Transport and format . . . . . . . . . . . . . . . . . 15
     4.3.  Option B2: media capture selection in a separate
           protocol . . . . . . . . . . . . . . . . . . . . . . . . . 15
       4.3.1.  Signaling  . . . . . . . . . . . . . . . . . . . . . . 16
       4.3.2.  Use of SDP fields  . . . . . . . . . . . . . . . . . . 17
       4.3.3.  Examples of SDP  . . . . . . . . . . . . . . . . . . . 18
       4.3.4.  Transport and format . . . . . . . . . . . . . . . . . 22
     4.4.  Interoperability with legacy endpoints . . . . . . . . . . 22
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 23
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 23
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 23
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 23
     8.1.  Normative references . . . . . . . . . . . . . . . . . . . 23
     8.2.  Informative references . . . . . . . . . . . . . . . . . . 24
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 24



















Cazeaux, et al.        Expires September 28, 2012               [Page 2]

Internet-Draft         CLUE signaling requirements            March 2012


1.  Introduction

   The framework defined for Telepresence Multi-Streams
   [I-D.ietf-clue-framework] in the context of CLUE introduces the need
   to have CLUE messages, conveying CLUE data, exchanged between
   telepresence endpoints.  It is necessary to agree upon a signaling
   protocol enabling these CLUE messages to be exchanged, taking into
   account the existing SIP-SDP ecosystem.

   This document first outlines signaling requirements to be met by the
   CLUE protocol.  Then the document proposes two approaches for the
   design of this protocol.


2.  Terminology

   In this document, the key words "MUST", "MUST NOT", "REQUIRED",
   "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
   and "OPTIONAL" are to be interpreted as described in RFC 2119
   [RFC2119].


3.  Requirements

   The term of "solution" designates here the set of mechanisms that
   allows endpoints to exchange CLUE-related information.

   REQ-1   The solution MUST enable the implementation of the CLUE
           framework described in [I-D.ietf-clue-framework], in
           particular : CLUE data model, provider/consumer exchange.

   REQ-2   The solution MUST allow session establishment between two
           Telepresence endpoints, and between a Telepresence endpoint
           and a Multipoint Control Unit (MCU).  The solution MUST
           support the establishment of symmetrical or asymmetrical
           media streams between the Telepresence endpoints (or MCU).

   REQ-3   The solution MUST enable interoperability with SIP legacy
           endpoints, without requiring intermediary protocol
           translation systems.  At a minimum, the solution MUST enable
           interoperability with legacy SIP audio endpoints (one audio
           media stream) and SIP video endpoints (one audio media
           stream, zero or one main video media stream, zero or one
           presentation video media stream, zero or one BFCP stream).







Cazeaux, et al.        Expires September 28, 2012               [Page 3]

Internet-Draft         CLUE signaling requirements            March 2012


   REQ-4   The solution MUST enable interoperability with SIP legacy
           endpoints, with a minimum number of offer-answer cycles.

   REQ-5   The solution MUST NOT make any assumptions on the SIP
           implementation level (besides [RFC3261]) of intermediary
           systems that could be in the signaling path of a Telepresence
           session (e.g. a Session Border Controller, SBC).

   REQ-6   The solution MUST enable to discover whether a remote party
           is CLUE-enabled or not.

   REQ-7   The solution MUST rely on the SDP offer/answer model for any
           CLUE data related to the definition of media streams.  This
           requirement in particular aims to enable intermediaries (such
           as SBCs) to apply appropriate policies (e.g.  QoS marking,
           Bandwidth control ...), which require that SDP offers and
           answers provide and accurate description of the actual media
           streams.

   REQ-8   The solution MUST take into account that a media capture
           selection could result from the interaction with an end-user,
           at any time during a session.  The user interaction can
           indeed occur between the provider capability advertisement
           and the consumer selection, but also at any moment during the
           established session.

   REQ-9   The solution MUST NOT add new requirements regarding NAT
           traversal compared to legacy video systems (NOTE : lesson
           learned from BFCP over TCP).

   REQ-10  The solution MUST be extensible in order to support future
           evolution in a backward compatible manner.


   Note that no requirement is placed regarding to the latency of the
   CLUE messages exchanged between the provider and the consumer.


4.  CLUE signaling options

4.1.  Option A: CLUE signaling based on SIP-SDP signaling only

   This option proposes an approach where the exchange of CLUE messages
   (including all CLUE parameters) between the provider and the consumer
   is solely based on the SDP O/A model as specified in [RFC3264].  The
   SDP is used for the exchange of media stream descriptions and media
   capture descriptions and selection.




Cazeaux, et al.        Expires September 28, 2012               [Page 4]

Internet-Draft         CLUE signaling requirements            March 2012


4.1.1.  Overview

   An example message flow for CLUE session establishment is illustrated
   below.

                           A                                    B
                           |                                    |
                   {A as provider}                     {B as consumer}
                           |                                    |
                           |INVITE (SDP-O1:A-adv)               |
                           |----------------------------------->|
                           |              200 OK (SDP-A1:B-conf)|
                           |<-----------------------------------|
                           |ACK                                 |
                           |----------------------------------->|
                           |                                    |
                           |                                    |
                   {A as consumer}                     {B as provider}
                           |                                    |
                           |        INVITE (SDP-O2:B-adv+B-conf)|
                           |<-----------------------------------|
                           |200 OK (SDP-A2:A-conf+B-conf)       |
                           |----------------------------------->|
                           |                                 ACK|
                           |<-----------------------------------|


                                 Figure 1

   A-adv: A as a Provider advertises available media captures and
   supported encoding options.

   B-conf: B as a Consumer selects the media captures it wants to
   receive from A and configure the encoding options to be applied by A
   to the media streams

   B-adv: B as a Provider advertises available media captures and
   supported encoding options.

   A-conf: A as a Consumer selects the media captures it wants to
   receive from B and configure the encoding options to be applied by B
   to the media streams

   SDP is used for provider advertisement of available media captures
   and supported encoding options.  SDP is also used for consumer
   selection of the media captures it wants to receive from the provider
   and configure the encoding options to be applied by the provider to
   the media streams.  A change in media capture selection requires a



Cazeaux, et al.        Expires September 28, 2012               [Page 5]

Internet-Draft         CLUE signaling requirements            March 2012


   new SDP Offer/Answer cycle

   The first SDP offer/answer cycle enables the CLUE exchange between A
   as provider and B as consumer.  The second SDP offer/answer cycle
   enables the CLUE exchange between A as consumer and B as provider.
   This second SDP offer/answer cycle completes the first one, so that
   it can safely replace it.

   It is worth noting that this option will not satisfy the following
   requirements:

   REQ-8:  this option requires a complete SDP offer/answer cycle to
       change media capture selection, thus requires to re-negotiate
       (even if not actually required) the media streams.
   REQ-9:  the transmission of a SDP answer conveying a capture
       selection cannot wait for a user action more than what a SIP
       transaction timer allows.

4.1.2.  Use of SDP fields

   Media descriptions in a Provider announcement include the a=sendonly
   attribute.  Encoding options are represented by the <fmt> sub-fields
   of the m= line and associated SDP attributes.

   Media descriptions associated to selected media captures have the
   a=recvonly attribute.  Media descriptions associated to other media
   captures are either omitted or included with the a=inactive
   attribute.  Encoding options are selected using regular SDP Offer/
   Answer procedures.

   There are two variants regarding media capture description and
   selection:

   1) Media capture of the same media type representing alternative
   captures of the same CLUE type are represented by an m= line and
   associated attributes (regular SDP attributes and CLUE-specific
   attributes).  One specific CLUE attribute tentatively called "clue-
   capture" provides the list of media captures.  Media capture
   selection is performed by the Consumer through updating the value of
   this specific CLUE attribute.

   2) A media capture is represented by an m= line and associated
   attributes (regular SDP attributes and CLUE-specific attributes).
   Because of the one-to-one mapping between media captures and media
   streams, the presence of the a=recvonly attribute is sufficient to
   imply selection of the media capture.





Cazeaux, et al.        Expires September 28, 2012               [Page 6]

Internet-Draft         CLUE signaling requirements            March 2012


4.1.3.  Examples of SDP

   The examples below show a negotiation between a typical 3-camera/
   screen/microphone telepresence endpoint (acting as Provider below),
   and a typical 1-camera/screen/microphone telepresence endpoint
   (acting as Consumer below), based on the option 1) described in the
   Section 4.1.2

   An example of SDP for a Provider announcement illustrated below.


   a=group:LS 1 6
   a=group:LS 2 7
   a=group:LS 3 8

   m=video 10002 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:1
   a=clue-attributes:
   a=clue-capture{1:camera-left,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10003 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:2
   a=clue-attributes:
   a=clue-capture{1:camera-center,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10004 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:3
   a=clue-attributes:
   a=clue-capture{1:camera-right,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10006 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 H264



Cazeaux, et al.        Expires September 28, 2012               [Page 7]

Internet-Draft         CLUE signaling requirements            March 2012


   a=content: slides
   a=mid:5
   a=clue-attributes

   m=audio 10000 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:6
   a=clue-attributes:
   a=clue-capture{1:mic-left,2:speaker}

   m=audio 10001 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:7
   a=clue-attributes:
   a=clue-capture{1:mic-center,2:speaker}

   m=audio 10002 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:8
   a=clue-attributes:
   a=clue-capture{1:mic-right,2:speaker}



























Cazeaux, et al.        Expires September 28, 2012               [Page 8]

Internet-Draft         CLUE signaling requirements            March 2012


   An example of SDP for a Consumer configuration is illustrated below.


   a=group:LS 1 6

   m=video 10002 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:1
   a=clue-attributes:
   a=clue-capture{1:full-scene}

   m=video 10006 RTP/AVP 96
   a=inactive
   a=rtpmap:96 H264
   a=content: slides
   a=mid:5
   a=clue-attributes

   m=audio 10000 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:6
   a=clue-attributes:
   a=clue-capture{1:speaker}

4.1.4.  Transport and format

   In this option, the CLUE protocol is entirely based on the SDP offer/
   answer model as described in [RFC3264].  Thus the transport protocol
   for CLUE messages is SIP, and the format of CLUE messages follows SDP
   specifications.

4.2.  Option B1: media capture selection in a separate protocol

   This option proposes an approach where the exchange of CLUE messages
   between the provider and the consumer related to media stream is
   based on the SDP offer/answer model as described in [RFC3264], and
   the exchange of CLUE messages related to media captures is based on a
   dedicated channel (futher referred to as the CLUE channel).










Cazeaux, et al.        Expires September 28, 2012               [Page 9]

Internet-Draft         CLUE signaling requirements            March 2012


4.2.1.  Overview

   An example message flow for a CLUE session establishment is
   illustrated below.

                           A                                    B
                           |                                    |
                   {A as provider}                     {B as consumer}
                           |                                    |
                           |INVITE (SDP-O1:A-adv)               |
                           |----------------------------------->|
                           |              200 OK (SDP-A1:B-conf)|
                           |<-----------------------------------|
                           |ACK                                 |
                           |----------------------------------->|
                           |                                    |
                           |                                    |
                   {A as consumer}                     {B as provider}
                           |                                    |
                           |        INVITE (SDP-O2:B-adv+B-conf)|
                           |<-----------------------------------|
                           |200 OK (SDP-A2:A-conf+B-conf)       |
                           |----------------------------------->|
                           |                                 ACK|
                           |<-----------------------------------|
                           |             CLUE channel           |
                           |<==================================>|
                           |                                    |


                                 Figure 4

   A-adv: A as a Provider advertises available media captures and
   supported encoding options.

   B-conf: B as a Consumer configures the encoding options to be applied
   by A to the media streams

   B-adv: B as a Provider advertises available media captures and
   supported encoding options.

   A-conf: A as a Consumer configures the encoding options to be applied
   by B to the media streams

   The model of multiple SDP O/A cycles is the same than in option B.
   The difference resides in the fact that the SDP B-conf and A-conf
   don't enable media captures selection, they are just used for
   encoding configuration .  The media capture selection is performed



Cazeaux, et al.        Expires September 28, 2012              [Page 10]

Internet-Draft         CLUE signaling requirements            March 2012


   through a dedicated CLUE channel.

   The CLUE channel enables each consumer to select what media capture
   will be sent by the remote provider.  A media capture selection does
   not require making a SDP O/A cycle, unless a consumer whishes to
   change an encoding option.

   This option should satisfy all requirements.

4.2.2.  Use of SDP fields

   As for option A, media descriptions in a Provider announcement
   include the a=sendonly attribute.  Encoding options are represented
   by the <fmt> sub-fields of the m= line and associated SDP attributes.
   Media capture of the same media type representing alternative
   captures of the same CLUE type are represented by an m= line and
   associated attributes (regular SDP attributes and CLUE-specific
   attributes).  One specific CLUE attribute provides the list of media
   captures.

   This option B1 relies on the media capture identifier provided by the
   specific CLUE attribute of the m= line and the media id provided by
   the <mid> sub-field of the same m= line to perform the media capture
   selection by the Consumer through the CLUE channel.

   Media descriptions associated to selected media streams (selected by
   a Consumer) have the a=recvonly attribute.  Media descriptions
   associated to other media captures are either omitted or included
   with the a=inactive attribute.  Encoding options are selected using
   regular SDP Offer/Answer procedures.

4.2.3.  Examples of SDP

   The examples below show a negotiation between a typical 3-camera/
   screen/microphone telepresence endpoint (acting as Provider below),
   and a typical 1-camera/screen/microphone telepresence endpoint
   (acting as Consumer below).

   An example of SDP for a Provider announcement illustrated below.



   m=video 10002 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:1



Cazeaux, et al.        Expires September 28, 2012              [Page 11]

Internet-Draft         CLUE signaling requirements            March 2012


   a=clue-attributes:
   a=clue-capture{1:camera-left,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10003 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:2
   a=clue-attributes:
   a=clue-capture{1:camera-center,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10004 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:3
   a=clue-attributes:
   a=clue-capture{1:camera-right,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10006 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 H264
   a=content: slides
   a=mid:5
   a=clue-attributes

   m=audio 10000 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:6
   a=clue-attributes:
   a=clue-capture{1:mic-left,2:speaker}

   m=audio 10001 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:7
   a=clue-attributes:
   a=clue-capture{1:mic-center,2:speaker}

   m=audio 10002 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU



Cazeaux, et al.        Expires September 28, 2012              [Page 12]

Internet-Draft         CLUE signaling requirements            March 2012


   a=mid:8
   a=clue-attributes:
   a=clue-capture{1:mic-right,2:speaker}

   An example of SDP for a Consumer configuration is illustrated below.














































Cazeaux, et al.        Expires September 28, 2012              [Page 13]

Internet-Draft         CLUE signaling requirements            March 2012


   m=video 10002 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:1
   a=clue-attributes:

   m=video 10003 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:2
   a=clue-attributes:

   m=video 10004 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:3
   a=clue-attributes:

   m=video 10006 RTP/AVP 96
   a=inactive
   a=rtpmap:96 H264
   a=content: slides
   a=mid:5
   a=clue-attributes

   m=audio 10000 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:6
   a=clue-attributes:

   m=audio 10001 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:7
   a=clue-attributes:

   m=audio 10002 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:8
   a=clue-attributes:






Cazeaux, et al.        Expires September 28, 2012              [Page 14]

Internet-Draft         CLUE signaling requirements            March 2012


4.2.4.  Transport and format

   In this option, the solution uses at least two protocol elements.

   The first protocol element aims at handling the CLUE media streams
   and the advertisement of the CLUE media captures.  For this part, the
   transport protocol of CLUE messages is SIP, and the format follows
   SDP specifications.

   The second protocol element (named hereafter the CLUE channel), aims
   to handle the CLUE media capture configuration and selection.  The
   CLUE channel most likely relies on a separate protocol.

   A possible design of the CLUE channel is to rely on the BFCP protocol
   ([RFC4582]) extended as defined in
   [I-D.westerlund-dispatch-stream-selection].

4.3.  Option B2: media capture selection in a separate protocol

   This option is a variant of the previous one.  With the use of a CLUE
   channel to enable each consumer to make the media capture selection,
   it is possible to consider a solution where a single SDP O/A cyle is
   used for the initial negotiation of the media streams between the
   parties.  It enables to be again closer to regular SDP O/A cycle,
   where the answerer will make the final choice of the encoding
   options.  This is also the main drawback of this solution, since
   subsequent SDP O/A cycles will be necessary to enable the initial
   offerer to make its own configuration of the encoding.  However, the
   usage of a single SDP O/A cycle may be sufficient for simple
   configuration, for instance where only one encoding option is
   advertised by a provider.




















Cazeaux, et al.        Expires September 28, 2012              [Page 15]

Internet-Draft         CLUE signaling requirements            March 2012


4.3.1.  Signaling

   An example message flow for a CLUE session establishment is
   illustrated below.

                   A                                         B
                   |                                         |
                   |                                         |
                   |INVITE (SDP-O1:A-adv + A-cap)            |
                   |---------------------------------------->|
                   |200 OK (SDP-A1:{B-adv + A-conf} + B-conf)|
                   |<----------------------------------------|
                   |ACK                                      |
                   |---------------------------------------->|
                   |                                         |
                   |               CLUE channel              |
                   |<=======================================>|
                   |                                         |



                                 Figure 7

   SDP-O1:  This SDP provides the capabilities of A acting as a consumer
       (A-cap, what A can receive) under the form of the number and
       characteristics of media streams that A is able to receive.  This
       SDP also advertises the capabilities of A acting as a provider
       (A-adv, what A can send).  At this stage: A can receive and can
       send.

   SDP-A1:  This SDP provides the configuration of A's capabilities,
       corresponding to what B acting as consumer wants to receive from
       A (B-conf, what B will receive).  This SDP also provides the
       configuration of B's capabilities acting as provider, on behalf
       of A (A-conf, what A will receive).  The A-conf is completed with
       information that provide hints to A about B's capabilities as
       providers (represented as {B-adv + A-conf} in the figure above).
       More precisely, {B-adv + A-conf} is built as the configuration B
       according to A's capabilities, and completed (under the form of
       sdp attributes) with information about B's capabilities as
       Provider (such as list of media capture B can send, for
       instance).
       At this stage : B will receive and send, A will receive and send.
       After this SDP offer/answer cycle, A and B are able to send and
       receive media through the media streams that have been
       negotiated.  Additionally, each entity (as consumer) know what
       media captures can be sent by the remote provider (A-adv and
       B-adv have been exchanged).  However, no media capture selection



Cazeaux, et al.        Expires September 28, 2012              [Page 16]

Internet-Draft         CLUE signaling requirements            March 2012


       has been yet performed.

   CLUE channel:  The CLUE channel enables each consumer to perform
       media content selection according to provider capabilities.  The
       use of this channel may be defined as optional.  Indeed, without
       exchange on CLUE channel, a provider will select a default media
       capture for each negotiated media stream.


   Subsequent SDP O/A cycles are not required, but may occur to enable A
   or B wishes to update their respective capabilities (add or remove a
   media stream for instance) or change their respective configuration.
   In the sample below, A initiates a new SDP O/A cycle by sending a SDP
   offer (SDP-O2) which repeats or updates its capabilities as provider
   (A-adv) and provides its configuration of B's capabilities (based on
   the B's provider capabilities advertised in SDP-A1) corresponding to
   what A wants to receive from B. B responds with with a SDP answer
   which repeats the configuration sent by A (A-conf) and repeats or
   updates its configuration of what A will send based (B-conf) on the
   advertisement provided by A (A-adv)

   An example message flow to update an established session is
   illustrated below.


                   A                                         B
                   |                   ...                   |
                   |          {established session}          |
                   |                                         |
                   |re-INVITE (SDP-O2:A-adv + A-conf)        |
                   |---------------------------------------->|
                   |200 OK (SDP-A2:{B-adv + A-conf} + A-conf)|
                   |<----------------------------------------|
                   |ACK                                      |
                   |---------------------------------------->|
                   |                                         |


                                 Figure 8

4.3.2.  Use of SDP fields

   Media descriptions in a Provider announcement include the a=sendonly
   attribute.  Encoding options are represented by the <fmt> sub-fields
   of the m= line and associated SDP attributes.  Media capture of the
   same media type representing alternative captures of the same CLUE
   type are represented by an m= line and associated attributes (regular
   SDP attributes and CLUE-specific attributes).  One specific CLUE



Cazeaux, et al.        Expires September 28, 2012              [Page 17]

Internet-Draft         CLUE signaling requirements            March 2012


   attribute provides the list of media captures.  The media capture
   identifier provided by the specific CLUE attribute of the m= line and
   the media id provided by the <mid> sub-field of the same m= line are
   used to perform the media capture selection by the Consumer through
   the CLUE channel.

   Media descriptions in a Consumer capability announcement include the
   a=recvonly attribute.  Encoding options are represented by the <fmt>
   sub-fields of the m= line and associated SDP attributes.  These media
   descriptions don't include descriptions of media captures

   Media descriptions associated to selected media streams (selected by
   a Consumer) have the a=recvonly attribute.  Media descriptions
   associated to other media captures are either omitted or included
   with the a=inactive attribute.  Encoding options are selected using
   regular SDP Offer/Answer procedures.

4.3.3.  Examples of SDP

   The examples below show a negotiation between a typical 3-camera/
   screen/microphone telepresence endpoint (acting as Offerer below),
   and a typical 1-camera/1-screen/1-microphone telepresence endpoint
   (acting as Answerer below).  The answerer is actually equipped with
   two cameras (main and secondary cameras), but is able to use only one
   simultaneously.

   An example of initial SDP offer including Provider announcement and
   Consumer capability is illustrated below.


   ; Provider announcement

   m=video 10002 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:1
   a=clue-attributes
   a=clue-capture{1:camera-left,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10003 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:2



Cazeaux, et al.        Expires September 28, 2012              [Page 18]

Internet-Draft         CLUE signaling requirements            March 2012


   a=clue-attributes:
   a=clue-capture{1:camera-center,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10004 RTP/AVP 96 97
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:3
   a=clue-attributes:
   a=clue-capture{1:camera-right,2:full-scene,
     3:composed-scene,4:speaker}

   m=video 10006 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 H264
   a=content: slides
   a=mid:4
   a=clue-attributes
   a=clue-capture{1:slides,2:presentation-camera,
     3:dvd}

   m=audio 10000 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:5
   a=clue-attributes:
   a=clue-capture{1:mic-left,2:speaker}

   m=audio 10001 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:6
   a=clue-attributes:
   a=clue-capture{1:mic-center,2:speaker}

   m=audio 10002 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:7
   a=clue-attributes:
   a=clue-capture{1:mic-right,2:speaker}

   ; Consumer capability

   m=video 20002 RTP/AVP 96 97
   a=recvonly



Cazeaux, et al.        Expires September 28, 2012              [Page 19]

Internet-Draft         CLUE signaling requirements            March 2012


   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:8
   a=clue-attributes:

   m=video 20003 RTP/AVP 96 97
   a=recvonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:9
   a=clue-attributes:

   m=video 20004 RTP/AVP 96 97
   a=recvonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   a=content: main
   a=mid:10
   a=clue-attributes:

   m=video 20006 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: slides
   a=mid:11
   a=clue-attributes

   m=audio 20000 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:12
   a=clue-attributes:

   m=audio 20001 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:13
   a=clue-attributes:

   m=audio 20002 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:14
   a=clue-attributes:

   ; CLUE Channel



Cazeaux, et al.        Expires September 28, 2012              [Page 20]

Internet-Draft         CLUE signaling requirements            March 2012


   m=application 30000 CLUE
   a=sendrcv


   An example of initial SDP answer including Provider announcement and
   Consumer configuration is illustrated below.


   ; Consumer configuration

   m=video 10002 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:1
   a=clue-attributes:

   m=video 10003 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:2
   a=clue-attributes:

   m=video 10006 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 H264
   a=content: slides
   a=mid:4
   a=clue-attributes

   m=audio 10000 RTP/AVP 96
   a=recvonly
   a=rtpmap:96 PCMU
   a=mid:6
   a=clue-attributes:


   ; Remote consumer configuration and
     Provider announcement

   m=video 20002 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 H264
   a=content: main
   a=mid:8
   a=clue-attributes:
   a=clue-capture{1:main-camera,2:secondary-camera}



Cazeaux, et al.        Expires September 28, 2012              [Page 21]

Internet-Draft         CLUE signaling requirements            March 2012


   m=video 20006 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 H264
   a=content: slides
   a=mid:11
   a=clue-attributes
   a=clue-capture{1:slides,2:presentation-camera}

   m=audio 20000 RTP/AVP 96
   a=sendonly
   a=rtpmap:96 PCMU
   a=mid:12
   a=clue-attributes:
   a=clue-capture{1:main-mic}

   ; CLUE Channel
   m=application 30000 CLUE
   a=sendrcv




4.3.4.  Transport and format

   Same as option B1.

4.4.  Interoperability with legacy endpoints

   To enable the interoperability with legacy endpoints, a CLUE-enabled
   endpoint must be able to discover whether the remote endpoint is
   CLUE-enabled or not.  When the remote endpoint is not CLUE-enabled,
   the telepresence endpoints must establish a session without using
   CLUE extensions.

   Two solutions are possible:

   Solution 1:  OPTIONS procedures are invoked before the first offer/
       answer cycle between a consumer and a provider.  The OPTIONS
       procedure enables the provider to retrieve consumer capabilities
       so as to be able to build an SDP Offer that is meaningful for the
       consumer.  This procedure is particularly useful to enable the
       provider to determine whether the consumer is CLUE-enabled or
       not.








Cazeaux, et al.        Expires September 28, 2012              [Page 22]

Internet-Draft         CLUE signaling requirements            March 2012


   Solution 2:  RFC5939 ([RFC5939]) is used.  The SDP Offer sent by the
       provider includes an "Actual Configuration" and one or more
       "Potential Configurations".  The "Actual Configuration"
       corresponds to a basic mono-stream video call and can be
       understood by any endpoint.  One of the "Potential
       Configurations" corresponds to a fully CLUE-compliant endpoint.
       Other "Potential Configurations" may correspond to partially
       compliant endpoint (e.g. multistream video without clue-specific
       data).

   These solutions are intended to fulfil requirements 3,4 and 6.

   The options A, B1 and B2 described previously in the document do not
   include the usage of any of these solutions.  But they may rely on
   any of these solutions to enable the interoperability with legacy
   endpoints.


5.  Security Considerations


6.  IANA Considerations

   None.


7.  Acknowledgements


8.  References

8.1.  Normative references

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              June 2002.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              June 2002.

   [RFC4582]  Camarillo, G., Ott, J., and K. Drage, "The Binary Floor
              Control Protocol (BFCP)", RFC 4582, November 2006.




Cazeaux, et al.        Expires September 28, 2012              [Page 23]

Internet-Draft         CLUE signaling requirements            March 2012


   [RFC5939]  Andreasen, F., "Session Description Protocol (SDP)
              Capability Negotiation", RFC 5939, September 2010.

8.2.  Informative references

   [I-D.ietf-clue-framework]
              Romanow, A., Pepperell, A., Baldino, B., and M. Duckworth,
              "Framework for Telepresence Multi-Streams",
              draft-ietf-clue-framework-03 (work in progress),
              February 2012.

   [I-D.westerlund-dispatch-stream-selection]
              Grondal, D., Burman, B., and M. Westerlund, "Media Stream
              Selection (MESS)",
              draft-westerlund-dispatch-stream-selection-00 (work in
              progress), October 2011.


Authors' Addresses

   Stephane Cazeaux
   France Telecom Orange
   42 rue des Coutures
   Caen  14000
   France

   Email: stephane.cazeaux@orange.com


   Emmanuel Bertin
   France Telecom Orange
   42 rue des Coutures
   Caen  14000
   France

   Email: emmanuel.bertin@orange.com


   Bruno Chatras
   France Telecom Orange
   38 rue du General Leclerc
   Issy-Les-Moulineaux  92794
   France

   Email: bruno.chatras@orange.com






Cazeaux, et al.        Expires September 28, 2012              [Page 24]