Internet DRAFT - draft-romanow-clue-sdp-usage

draft-romanow-clue-sdp-usage






CLUE                                                          A. Romanow
Internet-Draft                                              F. Andreasen
Intended status: Standards Track                              A. Krishna
Expires: March 15, 2013                                    Cisco Systems
                                                      September 11, 2012


     Investigation of Session Description Protocol (SDP) Usage for
          ControLling mUltiple streams for tElepresence (CLUE)
                    draft-romanow-clue-sdp-usage-02

Abstract

   This draft investigates how SDP offer/answer can be used to
   communicate CLUE encoding and encoding group parameters.

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 March 15, 2013.

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.




Romanow, et al.          Expires March 15, 2013                 [Page 1]

Internet-Draft             SDP Usage for CLUE             September 2012


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Background . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Assumptions and Design Principles  . . . . . . . . . . . . . .  4
   5.  Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
   6.  Encoding group . . . . . . . . . . . . . . . . . . . . . . . .  5
   7.  Solution overview  . . . . . . . . . . . . . . . . . . . . . .  8
   8.  Provider advertisement in the initial offer/answer . . . . . .  9
     8.1.  Bidirectional SDP messages . . . . . . . . . . . . . . . . 13
     8.2.  Unidirectional SDP messages  . . . . . . . . . . . . . . . 13
   9.  Multiple offer/answer exchanges  . . . . . . . . . . . . . . . 15
   10. Representation of Encoding and Encoding group in SDP . . . . . 19
   11. Concerns about conveying CLUE parameters via SDP . . . . . . . 21
   12. Security Considerations  . . . . . . . . . . . . . . . . . . . 22
   13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 22
   14. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 22
   15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
     15.1. Normative References . . . . . . . . . . . . . . . . . . . 22
     15.2. Informative References . . . . . . . . . . . . . . . . . . 22
   Appendix A.  Changes From Earlier Versions . . . . . . . . . . . . 23
     A.1.  Changes From Draft -01 . . . . . . . . . . . . . . . . . . 23
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23



























Romanow, et al.          Expires March 15, 2013                 [Page 2]

Internet-Draft             SDP Usage for CLUE             September 2012


1.  Introduction

   This draft investigates how SDP could be used to carry CLUE,
   ControLling mUltiple streams for tElepresence, encoding and encoding
   group provider advertisements.  CLUE specifies how multiple streams
   can be communicated in a telepresence conference in a standardized
   manner allowing interoperability.  A familiarity is assumed with the
   CLUE framework document and the concepts defined therein [CLUEFRWK].
   The media provider describes to the media consumer both media
   captures and encodings that it is capable of sending, and the
   consumer "configures" the provider to send the captures using the
   potential streams it wants to receive.  In order for an interactive
   telepresence session to be established between A and B, each party
   needs to configure its role as both a media provider and a media
   consumer.

   Encoding parameters are maxBandwidth, maxMbps, maxFps, maxWidth,
   maxHeight.  Encoding group parameters are maxGroupBandwidth and
   maxGroupVideoMbps.

   There are 2 reasons we investigated using SDP for CLUE provider
   advertisements of encoding and encoding groups.  It was suggested
   that:

   1.  By carrying the encoding and encoding group parameters in SDP,
       the call-control agents, proxies, and other intermediaries can
       monitor and potentially modify these values thereby allowing
       administrators to easily configure and enforce either static
       limitations or more dynamic call-shaping approaches.
   2.  SDP is the usual protocol for communicating the encoding and
       encoding group related parameters in SIP-based systems

   Media captures, capture sets, and simultaneous transmission
   information are all communicated in a new CLUE protocol, whereas
   encoding and encoding group parameters are communicated in SDP.


2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119] and
   indicate requirement levels for compliant implementations.


3.  Background

   The following abstractions defined in the CLUE framework document



Romanow, et al.          Expires March 15, 2013                 [Page 3]

Internet-Draft             SDP Usage for CLUE             September 2012


   need to be understood in considering this investigation.

   o  Media capture - fundamental representation of the content, audio
      and video so far defined.  Each media capture is associated with
      one or more encoding groups.
   o  Capture set - A capture set is most usefully thought of as being a
      set of table rows, with each row consisting of a set of media
      captures.  Media captures within a row can always be used
      simultaneously, whereas media captures in different sets may or
      may not be used simultaneously..  By including multiple media
      captures in a row within a capture set, the provider is signaling
      that those captures together form a representation of that capture
      set's scene.
   o  Simultaneous transmission set - there are often physical
      constraints that determine whether captures can be sent at the
      same time or not.  For example, a camera may be able to create a
      video capture which is close up and another which is zoomed out.
      These 2 views cannot be done simultaneously.  The simultaneous
      transmission set expresses the physical constraints on
      simultaneity.
   o  Encoding - Represents a way to encode a media capture in terms of
      its associated media characteristics, specifically maxBandwidth,
      maxFps, maxMbps, maxHeight and maxWidth.  Each encoding is
      uniquely identified within an encoding group.  [Practically it's
      desirable to have a unique ID among all encodings in the
      conference]
   o  Encoding group - An encoding group includes set(s) of encodings,
      plus parameters that apply to the group as a whole, specifically
      maxGroupBandwidth and maxGroupMpbs.  Each encoding group has a
      unique identifier in the SDP.


4.  Assumptions and Design Principles

   o  For each CLUE type ("purpose") of media capture (audio, video-
      main, or video-presentation), there will be at most one
      corresponding SDP media stream ("m=" line).  Note: video-main and
      video-presentation are both using "video" media type.
   o  Multiple media captures of the same CLUE type ("purpose"), or
      different encodings of a given media capture will all use the same
      SDP media stream (e.g. via RTP multiplexing with a different SSRC
      for each).
   o  It is acceptable to use more than one offer/answer exchanges to
      setup the whole Telepresence session.
   o  The Telepresence session is established by setting up sets of
      unidirectional streams (not bidirectional streams).





Romanow, et al.          Expires March 15, 2013                 [Page 4]

Internet-Draft             SDP Usage for CLUE             September 2012


5.  Encoding

   The CLUE framework calls an RTP stream that the provider is capable
   of sending, an Encoding (note that an RTP session may contain
   multiple RTP streams, with each stream having a unique SSRC).  The
   parameters of an encoding are: encodingID, maxBandwidth, maxMbps,
   maxWidth, maxHeight, maxFrameRate, as described below in the
   following Figures: Figure 1 shows video encoding parameters and
   Figure 2. shows audio encoding parameters.


   +-----------------+-------------------------------------------------+
   | Name            | Description
   +-----------------+-------------------------------------------------+
   | encodingID      | A unique identifier for the individual encoding |
   | maxBandwidth    | Maximum number of bits per second               |
   | maxMbps         | Maximum number of macroblocks per second:       |
   |                 | ((width  + 15) / 16) * ((height + 15) / 16)     |
   |                 | * framesPerSecond                               |
   | maxWidth        |Video resolution's max supported width in  pixels|
   | maxHeight       |Video resolution's max supported height in pixels|
   | maxFrameRate    | Maximum supported frame rate                    |
   +--------------------+----------------------------------------------+


                    Figure 1: Video encoding parameters



              +--------------+----------------------------------------+
              | Name         | Description                            |
              +--------------+----------------------------------------+
              | encodingID   | A unique id for the encoding           |
              +--------------+----------------------------------------+
              | maxBandwidth | Max # of bits per second               |
              +--------------+----------------------------------------+


                    Figure 2: Audio encoding parameters


6.  Encoding group

   In addition to encodings, the Framework defines an Encoding Group as
   a set of individual encodings plus parameters that apply to the whole
   set, as shown in Figure 3, Encoding group.  The two parameters for
   the group of encodings are maxGroupBandwidth and maxGroupVideoMbps.
   Max group bandwidth refers to both audio and video, and is the



Romanow, et al.          Expires March 15, 2013                 [Page 5]

Internet-Draft             SDP Usage for CLUE             September 2012


   maximum value of the sum of all of the configured bitrates.  The max
   group video macroblocks per second refers only to video and is the
   maximum value for the sum of all the macroblocks per second in the
   encoding group.


  +------------------+-------------------------------------------------+
  | Name             | Description                                     |
  +------------------+-------------------------------------------------+
  | maxGroupBandwidth| Max # bits per sec for all encodings combined   |
  | maxGroupVideoMbps| Max # macroblks/sec all video encodings combined|
  | videoEncodings[] | Set of available encodings (list of encodingIDs)|
  | audioEncodings[] | Set of available encodings (list of encodingIDs)|
  +------------------+-------------------------------------------------+


                    Figure 3: Encoding group parameters

   Additional characteristics of encoding groups include:

   1.  A media provider advertises one or more encoding groups.
   2.  Each encoding group includes one or more individual encodings.
   3.  Each individual encoding can represent a different way of
       encoding media.  For example one individual encoding may be
       1080p60 video, another could be 720p30, with a third being CIF.
   4.  While a typical 3 codec/display system might have one encoding
       group per "codec box", there are many possibilities for the
       number of encoding groups a provider may be able to offer and for
       the encoding values in each encoding group.  The consumer uses
       the media capture attribute EncGroupID to know which set of
       encodings to consider using for that capture and what the
       constraints are.
   5.  In a provider advertisement, the sum of the maxBandwidths of the
       encodings advertised in an encoding group may total more than the
       maxGroupBandwidth, as these are potential encodings.  Similarly
       for maxGroupVideoMbps.  The group restriction however must be
       respected by the provider in terms of actual set of encodings
       used at any given point in time.
   6.  In a consumer request, the sum of the maxBandwidths of the
       encodings selected in an encoding group may total more than the
       maxGroupBandwidth.  However the provider will send values under
       the max of the individual encodings and which sum to a total
       below or equal to that of the group max.

   The following diagram Figure 4, Association of captures and
   encodings, depicts the association between the encodings (expressed
   in SDP) and the media captures, expressed in elsewhere (in a CLUE
   protocol perhaps).  In this diagram the consumer can match Capture 1



Romanow, et al.          Expires March 15, 2013                 [Page 6]

Internet-Draft             SDP Usage for CLUE             September 2012


   with any of the encodings in Encoding group 1.

   The consumer can match capture 2 with any of the encodings in
   encoding group 2, and match capture 3 wiht any of the encodings in
   encoding group 1.


   +--------------------+
   | Capture Set 1      |
   |                    |     Encodings for capture 1
   | +----------------+--------------- Encoding 1   }
   | | capture  1     | |------------- Encoding 2   } Encoding group 1
   | | video          | |------------- Encoding 3   }
   | |   ...          | |
   | | encgrpID 1     | |
   | +----------------+ |
   |                    |
   | +----------------+ |    Encodings for capture 2
   | | capture  2     | |
   | |  audio         | |---------------Encoding 4  }
   | |  ....          | |---------------Encoding 5  } Encoding group 2
   | |                | |
   | |  encgrpID 2    | |
   | +----------------+ |
   |                    |     Encodings for capture 3
   | +----------------+--------------- Encoding 1   }
   | | capture  3     | |------------- Encoding 2   } Encoding group 1
   | | video          | |------------- Encoding 3   }
   | |   ...          | |
   | | encgrpID 1     | |
   | +----------------+ |
   |                    |
   +--------------------+


              Figure 4: Association of captures and encodings

   In this example showing a capture set containing 2 captures, the
   first captureID 1 is video and is mapped to encoding group 1,
   encgrpID 1.  The consumer can map capture 1 to any or all of the
   potential RTP streams within encoding group 1.  The use case for
   mapping a single video capture to more than one encoding at a given
   point in time is simulcast.  The information contained in the
   encoding group parameters helps the consumer choose how to do this
   mapping by communicating the resource limitations.






Romanow, et al.          Expires March 15, 2013                 [Page 7]

Internet-Draft             SDP Usage for CLUE             September 2012


7.  Solution overview

   Today telepresence endpoints actively negotiate audio and video SDP
   media streams using the SDP offer/answer model during call
   establishment and during midcall features, such as hold resume.
   However, in the CLUE framework, each party in the conference is
   usually both a provider and a consumer whether point-to-point or
   multipoint.  The parameter values for one provider may well not be
   the same values for the other provider.  Thus each party needs to
   advertise its provider encoding parameter values to the other side.
   This is not the typical communication model for SDP offer/answer,
   which is more often a bidirectional agreement on parameter values.

   As specified in the CLUE framework, parties in a telepresence
   conference do not negotiate a single value between them; therefore
   offer/answer [RFC3264] is not used for the full negotiation of all
   encoding related values.  Rather, we propose, sending CLUE provider
   advertisements for encodings and encoding group in SDP offer/answer,
   if it valuable for intermediaries to know these values.  Then the
   consumer uses another protocol, such as a new CLUE protocol, to
   select which captures it wants at a given point in time and how it
   wants them encoded, subject to the encoding and encoding group
   parameters specified in the SDP.  Provider advertisements not related
   to encoding, that is, capture attributes such as spatial relations
   would also be communicated in the CLUE protocol, rather than in SDP,
   as they are not provided as part of the SDP media descriptions for
   the streams.  In this approach, the CLUE protocol carries the
   information related to media captures, as well as implements the
   control functions described in the CLUE framework including
   configuring the actual encodings used.

   For example, if A and B are parties (either endpoints or MCUs) in a
   telepresence conference, A is a provider for B, and B is a provider
   for A. We propose that A and B send to each other provider
   advertisements for encoding and encoding groups through SDP; and A
   and B send to each other provider advertisements for Captures and
   consumer requests through a CLUE protocol.

   The sending of advertisements of capture information and encoding
   information and the responding consumer request happens not only at
   call setup but also throughout the conference whenever there is a
   change in what the provider is capable of sending, or a change in
   which captures and streams the consumer wants to receive.

   We will now explore two approaches for sending provider encoding
   advertisements in SDP.  In the first approach, the provider encoding
   advertisements are accomplished in the initial offer/answer.  A sends
   its provider encoding advertisements in the offer and B sends its



Romanow, et al.          Expires March 15, 2013                 [Page 8]

Internet-Draft             SDP Usage for CLUE             September 2012


   provider encoding advertisements in the answer.  There are two
   message options here: bidirectional or unidirectional.

   In the second approach, a series of offer/answer messages are sent
   from each participant.  Both approaches have pluses and minuses.  How
   each approach handles the situation where the parties advertise
   different types (SDP media capabilities) is of interest.  For example
   one party may offer video-presentation and the other may not offer
   it.


8.  Provider advertisement in the initial offer/answer

   One possibility for exchange of CLUE parameters between 2 endpoints
   or MCUs is in the initial SDP offer/answer exchange.  One party sends
   provider encoding advertisements as the SDP offer and the other party
   answers with its provider encoding advertisements, as shown in
   Figure 5, Initial offer/answer exchange.  A then sends its capture
   information to B through the CLUE protocol (and vice versa).
































Romanow, et al.          Expires March 15, 2013                 [Page 9]

Internet-Draft             SDP Usage for CLUE             September 2012


   Provider A
   +--------------------+
   | SDP offer 1        |
   |                    |
   | Offered media      |
   | (actively negotd   |
   |  as today)
   |                    |
   | Encoding Group 1
   | +-------------+    |
   | | Encoding 1  |    |
   | | Encoding 2  |    |
   | | ...         |    |
   | +-------------+    |   Offer
   |                    |-------->
   | Encoding Group 2   |
   | +-------------+    |
   | | Encoding 3  |    |
   | | Encoding 4  |    |
   | | ...         |    |
   | +-------------+    |
   |   .......          |
   |                    |
   +--------------------+                      Provider B
                                         +--------------------+
                                         | SDP answer 1       |
                                         |                    |
                                         | Accepted media     |
                                         | (actively negotd)  |
                                  Answer |                    |
                                <--------|                    |
                                         | Encoding-Group 1   |
                                         | +-------------+    |
                                         | | Encoding 1  |    |
                                         | | Encoding 2  |    |
                                         | | ...         |    |
                                         | +-------------+    |
                                         |                    |
                                         | Encoding-Group 2   |
                                         | +-------------+    |
                                         | | Encoding 3  |    |
                                         | | Encoding 4  |    |
                                         | | ...         |    |
                                         | +-------------+    |
                                         |   .......          |
                                         +--------------------+





Romanow, et al.          Expires March 15, 2013                [Page 10]

Internet-Draft             SDP Usage for CLUE             September 2012


                  Figure 5: Initial offer answer exchange

   There are two possibilities: birdirectional or unidirectional SDP
   messages.

   Figure 6, Call message sequence illustrates an end-end call with the
   message sequence where provider advertisements are in initial offer/
   answer.



           Alice                               Bob
            |                                  |
    ________|__________________________________|_______________________
   |        |(1) INVITE                        |                       |
   |        |    Offer (Offered media,         |                       |
   |        |           CLUE extensions -      |                       |
   |        |              enc-grp 1           |                       |
   |        |                  enc 1           |                       |
   |        |                  enc 2           |                       |
   |        |                  enc 3           |    SIP                |
   |        |              enc-grp 2           |    CALL SETUP         |
   |        |                  enc 4           |                       |
   |        |                  enc 5           |  Alice sends Provider |
   |        |    TRANSPORT TBD/CLUE connection |  advertisement for    |
   |        |                params )          |  encodings & encoding |
   |        |                                  |  groups in SDP        |
   |        |                                  |                       |
   |        |--------------------------------->|                       |
   |        |(2) 200OK                         |                       |
   |        |    Answer (Accepted media,       | Bob in                |
   |        |            CLUE extensions       | Provider's role       |
   |        |               enc-grp 1          | sends his             |
   |        |                   enc 1          | advertisement for     |
   |        |               enc-grp 2          | encodings & encoding  |
   |        |                   enc 2          | groups                |
   |        |    TRANSPORT TBD/CLUE negotd     |                       |
   |        |             connection )         |                       |
   |        |<---------------------------------|                       |
   |________|__________________________________|_______________________|
            |                                  |
            |                                  |
    ________|__________________________________|_______________________
   |        | (3) CLUE PROTOCOL                |                       |
   |        |--------------------------------->|                       |
   |        |    CLUE Provider MESSAGEs        | Alice and Bob in      |
   |        |    Describe media captures       | Provider's role       |
   |        |    Includes association of MC    |                       |



Romanow, et al.          Expires March 15, 2013                [Page 11]

Internet-Draft             SDP Usage for CLUE             September 2012


   |        |      to Encoding Group           |                       |
   |        |<---------------------------------|                       |
   |        |                                  |                       |
   |________|__________________________________|_______________________|
            |                                  |                       |
            |   . . . . . . . . . . . . . . . .                        |
    ________|__________________________________|_______________________|
   |        | (4) CLUE PROTOCOL                |                       |
   |        |                                  |                       |
   |        |   Bob configures the MCs it wants|  Bob in consumer role |
   |        |    Onto the encodings it wants   |  sends CLUE consumer  |
   |        |    Within the encoding group     |   CONFIGURE message   |
   |        |    Constraints.                  |                       |
   |        |<---------------------------------|                       |
   |        |                                  |                       |
   |________|__________________________________|_______________________|
            |                                  |
    ________|__________________________________|_______________________
   |        | (5) SIP Re-INVITE                |                       |
   |        |       Re-negotiate TIAS bw etc   |   SIP                 |
   |        | based on consumer choices        |   Media Re-negotiation|
   |________|__________________________________|_______________________|
            |                                  |
            |   . . . . . . . . . . . . . . . .
    ________|__________________________________|_______________________
   |        | (6) CLUE PROTOCOL                |                       |
   |        |                                  |                       |
   |        |    Choose the MCs to be sent,    |   CLUE MESSAGE        |
   |        |    Request media in various      |                       |
   |        |       encoding formats           |                       |
   |        |--------------------------------->|    Alice in           |
   |        |                                  |    Consumer role      |
   |________|__________________________________|_______________________|
            |                                  |
    ________|__________________________________|_______________________
   |        | (7) SIP Re-INVITE                |                       |
   |        |       Re-negotiate TIAS bw etc   |   SIP                 |
   |        |         based on consumer choices|   Media Re-negotiation|
   |________|__________________________________|_______________________|
            |                                  |
              . . . . . . . . . . . . . . . .


    Figure 6: Call message sequence for CLUE advertisements in initial
                               offer/answer






Romanow, et al.          Expires March 15, 2013                [Page 12]

Internet-Draft             SDP Usage for CLUE             September 2012


8.1.  Bidirectional SDP messages

   The challenge with a bidirectional approach is that the answerer must
   not respond with a type that was not in the offer.  Suppose A offers
   two SDP media streams video-main and audio.  B however wants to offer
   3 SDP media streams: video-main, audio, and video-presentation.  B
   cannot add a new stream type in the answer.

   One way around this is for the offerer to always offer all 3 CLUE
   media types ("purpose") whether it will send them or not, i.e., be a
   provider.  This allows both sides to negotiate use of each "purpose"
   as a provider and/or a consumer.  The SDP direction attributes
   ("sendrecv", "sendonly", "recvonly", and "inactive") are used to
   indicate the real intent for a stream; a provider sends whereas a
   consumer receives, and hence a "sendrecv" stream covers both provider
   and consumer role.  Streams can of course be rejected as per normal
   offer/answer procedures (e.gg., if neither side wants to use a
   particular stream such as video-presentation.  An adjustment to
   reflect the real situation can also bemade in a subsequent offer/
   answer exchange.

   Using the example above, A will only send video main and audio,
   however, following the specification, A offers all 3 audio, video
   main, video presentation.  B is going to send presentation, B accepts
   all 3 audio, video-main and video-presentation and hence generates an
   answer with them.  The CLUE protocol negotiations take place.  Then
   there is an updated offer in which A does not offer video
   presentation, thus making the SDP media streams accurate.

8.2.  Unidirectional SDP messages


   1) Offer (INVITE) from Alice to Bob
   (Alice provider=sendonly, Alice consumer=recvonly)
   ==================================================
   m=audio 10000 RTP/AVP 96 ;Alice provider audio
   a=sendonly
   a=rtpmap:96 PCMU
   ...
   m=video 10002 RTP/AVP 96 97;Alice provider video-main
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   ...
   m=video 10004 RTP/AVP 96 ;Alice provider video-presentation
   a=sendonly
   a=rtpmap:96 H264
   ...



Romanow, et al.          Expires March 15, 2013                [Page 13]

Internet-Draft             SDP Usage for CLUE             September 2012


   m=audio 20000 RTP/AVP 96 ;Alice consumer audio
   a=recvonly
   a=rtpmap:96 PCMU
   ...
   m=video 20002 RTP/AVP 96 97 ;Alice consumer video-main
   a=recvonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   ...
   m=video 20004 RTP/AVP 96 ;Alice consumer video-presentation
   a=recvonly
   a=rtpmap:96 H264
   ...

   2) Answer from Bob to Alice
   (Bob provider=sendonly, Bob consumer=recvonly)
   ==============================================
   m=audio 30000 RTP/AVP 96 ;Bob consumer audio
   a=recvonly
   a=rtpmap:96 PCMU
   ...
   m=video 30002 RTP/AVP 96 97 ;Bob consumer video-main
   a=recvonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   ...
   m=video 30004 RTP/AVP 96 ;Bob consumer video-presentation
   a=recvonly
   a=rtpmap:96 H264
   ...
   m=audio 40000 RTP/AVP 96 ;Bob provider audio
   a=sendonly
   a=rtpmap:96 PCMU
   ...
   m=video 40002 RTP/AVP 96 97;Bob provider video-main
   a=sendonly
   a=rtpmap:96 H264
   a=rtpmap:97 H265
   ...
   m=video 0 RTP/AVP 96 ;Bob does not want to be a provider
        for video-presentation, so rejected this stream (port=0)
   a=inactive
   a=rtpmap:96 H264
   ...







Romanow, et al.          Expires March 15, 2013                [Page 14]

Internet-Draft             SDP Usage for CLUE             September 2012


9.  Multiple offer/answer exchanges

   An alternate approach to using the intial offer answer for the
   provider encoding advertisements is to do multiple offer/answer
   messages in which both sides make provider advertisements.  The
   initial offer/answer establishes that the parties are CLUE capable
   and subsequent offer/answer messages exchange provider encoding
   advertisements.  The disadvantage of this approach is that it
   requires a number of offer/answer messages.

   In this method, the call is initially established with configurable
   default media values.  The call flow is shown in detail in Figure 7







































Romanow, et al.          Expires March 15, 2013                [Page 15]

Internet-Draft             SDP Usage for CLUE             September 2012


             Alice                               Bob
           |                                  |
   ________|__________________________________|_______________________
  |        |(1) INVITE                        |                       |
  |        |    Offer {m=audio...,            |                       |
  |        |           m=video (main) ....    |                       |
  |        |           m=application CLUE     |    SIP                |
  |        |             trans params from    |    CALL SETUP         |
  |        |             Alice end            |                       |
  |        |          }                       |                       |
  |        |--------------------------------->|    Negotiate  default |
  |        |(2) 200OK                         |    media parameters   |
  |        |    Answer {m=audio...,           |                       |
  |        |            m=video (main) ....   |                       |
  |        |            m=application CLUE    |                       |
  |        |              trans params from   |                       |
  |        |              Bob end             |                       |
  |        |           }                      |                       |
  |        |<---------------------------------|                       |
  |        |                                  |                       |
  |        |<================================>|                       |
  |        |  Both Alice & Bob understand     |                       |
  |        |   they are talking to CLUE       |                       |
  |        |   endpoint                       |                       |
  |________|__________________________________|_______________________|
           |                                  |
           |                                  |
       ____________________________________________
      /        CLUE CONNECTION ESTABLISHMENT       \
      \____________________________________________/
           |                                  |
   ________|__________________________________|_______________________
  |        |  Provider Capabilities Ind(Alice)|                       |
  |        |                                  |                       |
  |        |                                  |                       |
  |        |(3)re-INVITE                      |                       |
  |        |    Offer {m=audio ...            |                       |
  |        |             CLUE extensions      |                       |
  |        |                  enc-grp 1       |                       |
  |        |                      enc 1       |                       |
  |        |                      enc 2       |                       |
  |        |                      enc 3       |     ALICE in          |
  |        |           m=video (main)...      |     Provider's role   |
  |        |             CLUE extensions      |                       |
  |        |                  enc-grp 2       |                       |
  |        |                      enc 4       |                       |
  |        |                  enc-grp 3       |     (keeps previously |
  |        |                      enc 5       |       negotd media    |



Romanow, et al.          Expires March 15, 2013                [Page 16]

Internet-Draft             SDP Usage for CLUE             September 2012


  |        |           m=application CLUE     |                       |
  |        |                  conn params     |      params)          |
  |        |          }                       |                       |
  |        |--------------------------------->|     Adds Alice's      |
  |        |(4) 200OK                         |     provider          |
  |        |    Answer {m=audio...            |     encoding          |
  |        |            m=video (main) ...    |     capabilities      |
  |        |            m=application CLUE    |     for each m-line   |
  |        |              conn params         |                       |
  |        |           }                      |                       |
  |        |<---------------------------------|                       |
  |________|__________________________________|_______________________|
           |                                  |
           |                                  |
   ________|__________________________________|_______________________
  |        |  Provider Capabilities Ind (Bob) |                       |
  |        |                                  |                       |
  |        |                                  |                       |
  |        |(5)re-INVITE                      |                       |
  |        |    Offer {m=audio ...            |     BOB in            |
  |        |             CLUE extensions      |     provider role     |
  |        |                  enc-grp 1       |                       |
  |        |                      enc 1       |     (keeps previously |
  |        |                      enc 2       |       negotd media    |
  |        |           m=video (main)...      |       params)         |
  |        |              CLUE extensions     |                       |
  |        |                   enc-grp 2      |     Is capable of     |
  |        |                       enc 3      |     doing presentation|
  |        |           m=application CLUE     |                       |
  |        |                   conn params    |     Adds new pres     |
  |        |           m=video (pres)...      |     m-line            |
  |        |              CLUE extensions     |                       |
  |        |                   enc-grp 3      |                       |
  |        |                       enc 4      |                       |
  |        |          }                       |                       |
  |        |<---------------------------------|                       |
  |        |(6) 200OK                         |     Adds Bob's        |
  |        |    Answer {m=audio...            |     provider          |
  |        |            m=video (main) ...    |     encoding capabil  |
  |        |            m=application CLUE    |     for each m-line   |
  |        |                  conn params     |                       |
  |        |            m=video (pres) ...    |                       |
  |        |--------------------------------->|                       |
  |________|__________________________________|_______________________|
           |                                  |
   ________|__________________________________|_______________________
  |        | (7) CLUE PROTOCOL                |                       |
  |        |--------------------------------->|                       |



Romanow, et al.          Expires March 15, 2013                [Page 17]

Internet-Draft             SDP Usage for CLUE             September 2012


  |        |    CLUE Provider MESSAGEs        |  Alice & Bob in       |
  |        |    Describe media captures       |  Provider's role      |
  |        |    Includes association of MC to |
  |        |       Encoding Group             |                       |
  |        |<---------------------------------|                       |
  |        |                                  |                       |
  |________|__________________________________|_______________________|

           |                                  |
   ________|__________________________________|_______________________
  |        | (8) CLUE PROTOCOL                |                       |
  |        |                                  |                       |
  |        | Bob configures the MCs it wants  |                       |
  |        | Onto the streams it wants within | Bob in consumer role  |
  |        | the encoding group constraints.  | sends CLUE consumer   |
  |        |                                  | CONFIGURE message     |
  |        |                                  |                       |
  |        |<---------------------------------|                       |
  |        |                                  |                       |
  |________|__________________________________|_______________________|
           |                                  |
   ________|__________________________________|_______________________
  |        | (9) SIP Re-INVITE                |                       |
  |        |       Re-negotiate TIAS bw etc   |   SIP                 |
  |        |         based on view options    |   Media Re-negotiation|
  |________|__________________________________|_______________________|
           |                                  |
           |                                  |
   ________|__________________________________|_______________________
  |        | (10) CLUE PROTOCOL               |                       |
  |        |                                  |                       |
  |        |    Choose the MC to view,        |   CLUE MESSAGE        |
  |        |    Request the video in various  |                       |
  |        |       encoding formats           |                       |
  |        |--------------------------------->|    Alice in           |
  |        |                                  |    Consumer role      |
  |________|__________________________________|_______________________|
           |                                  |
   ________|__________________________________|_______________________
  |        | (11) SIP Re-INVITE                |                       |
  |        |       Re-negotiate TIAS bw etc   |   SIP                 |
  |        |         based on view options    |   Media Re-negotiation|
  |________|__________________________________|_______________________|
           |                                  |
              . . . . . . . . . . . . . . . .


     Figure 7: Call message sequence for CLUE advertisements multiple



Romanow, et al.          Expires March 15, 2013                [Page 18]

Internet-Draft             SDP Usage for CLUE             September 2012


                               offer/answers

   The offerer establishes a CLUE application with transport connection.
   The answerer acknowledges, thus indidcating its willingness to
   participate in CLUE signaling.  No encoding advertisements are
   exchanged at this point.

   The CLUE connection is established

   Alice, in the provider's role, indicates ecnoding and encoding group
   advertisement parameters using re-INVITE (new offer/answer).  In this
   example, Alice does not indicate support for video-presentation.  Bob
   acks back and does not provide any of his provider encoding
   advertisements at this point

   Bob now signals his provider encoding advertisements using a fresh
   re-INVITE (third offer/answer).  Bob is capable of video-
   presentation.  It adds a video-presentation m=line and indicates its
   provider encoding advertisements.  Alice may decide to not actively
   do presentiaton at this time, and may stop the media (port 0) in
   200OK.  But Alice is aware of the CLUE advertisement for the video-
   presentation to be used in the future.

   Alice and Bob use CLUE messages exchange provide capture
   advertisements, including bindings to encoding groups.

   Bob in consumer role uses the consumer configure CLUE message to
   select which captures and encodings he wants.

   Bob sends a re-INVITE (4th offer/answer) to negotiatie TIAS bandwidth
   based on the consumer requests.  This enables call control and
   intermediaries to manage bandwidth resources.

   Alice in consumer role uses the consumer configure CLUE message to
   slect which captures and encodings she wants.

   Alice sends a re=INVITE to negotiate new TIAS bandwidth based on the
   consumer requests, updating previous parameter values.

   This process continues as options change at either end.


10.  Representation of Encoding and Encoding group in SDP

   We want a mechanism that will allow the provider to advertise
   encodings and encoding groups.  We can define three new SDP
   attributes: clue, enc, encgrp.




Romanow, et al.          Expires March 15, 2013                [Page 19]

Internet-Draft             SDP Usage for CLUE             September 2012


   Encgrp is the encoding group.  It consists of an encoding group ID, a
   list of encodings, and a list of encoding group parameters,
   maxGroupBandwidth, maxGroupVideoMbps.


   a=encgrp:<encgrp-number> <list of enc nums> <list of group params>


   Enc is the encoding.  It consists of an encoding id and a list of
   clue parameters and their values for the encoding.


   a=enc: <enc-number> <list of clue nums>


   Clue consists of CLUE encoding parameters: max-fps, max-mbps, max-
   bitrate, imageattr.  The parameter list can be extended in the
   future.


   a=clue:<clue-number> <clue attribute=value>


   where clue attributes in our context would be "imageattr[x= ,y= ]"
   [draft-ietf-mmusic-image-attributes],"max-mbps", "max-br", max-fps



   Example of 2 video encodings:

   a=clue:1 imageattr[w=1920, y=1088]
   a=clue:2 max-fps=60
   a=clue:3 max-mbps=244800
   a=clue:4 max-br=4000
   a=clue:5 imageattr[x=960, y=554]
   a=clue:6 max-fps=30
   a=clue:7 max-mbps=61200

   a=enc:1 clue=1,2,3,4          Encoding 1 and its clue attributes
   a=enc:2 clue=5,6,7,4          Encoding  2 and its clue attributes
   Example of 2 video encoding groups
   a=encgrp: 1 enc=1,2,3 grpparm=3,4,5
   a=encgrp:2 enc=4,5,6,7 grpparm=2,4,5


                    Figure 8: Example 2 video encodings





Romanow, et al.          Expires March 15, 2013                [Page 20]

Internet-Draft             SDP Usage for CLUE             September 2012


11.  Concerns about conveying CLUE parameters via SDP

   There are some potential concerns in using SDP for CLUE provider
   capability announcements.  Passing information to two separate
   protocols and processing it from them complicates the protocol and
   implementation.  Secondly, if the two SIP peers do not communicate
   directly (e.g. due to SIP Record-Route), then reINVITEs/UPDATEs may
   be delay-prone compared to an independent and direct end-to-end
   protocol; this is relatively unimportant so long as any parameters
   expected to change repeatedly, or that must be sent when a stream
   switches (i.e., near real-time) are kept out of the SDP.

   The encoding and encoding group will potentially be large and
   significantly expand the SDP size.  A compact representation is
   suggested in the above to try and alleviate this.  Further work and
   testing will be required to see if it is a problem in practice, and
   whether it is inherent to CLUE to begin with.

   The presence of the CLUE protocol negotiation provides a way to
   ameliorate this problem for systems operating in a mixed CLUE/
   non-CLUE environment that don't wish to send the information to non-
   CLUE endpoints: the initial offer contains the CLUE protocol m-line,
   but not the CLUE media descriptions.  The answerer sees that the
   caller is CLUE-capable and includes the media description in their
   answer, and the offerer can then reINVITE once negotiation is
   complete with a media description.

   The value to the intermediaries of the encoding parameters needs to
   be considered carefully.  The intermediaries will have the TIAS value
   which is updated after CLUE protocol activity.  What about the
   encoding parameters?  It is unclear they are of much use to
   intermediaries by themselves - they are the potential maximum values
   of potential RTP streams.  How are intermediaries expected to use
   these?

   It seems the encoding group parameter values, especially the
   maxGroupBandwidth could be of interest to intermediaries augmenting
   the TIAS information.  An alternative to including provider
   advertisements in SDP might be to include an attribute in SDP for the
   sum of all the Encoding group maxGroupBandwidths, which seems more
   valuable than all the individual encoding group maxGroupBandwidths.

   Another factor to consider is that suppose an intermediary changes
   the maxGroupBandwidth value - that change would be seen by the
   Consumer, not by the provider, and it is the provider who is the one
   who needs to see a change in encoding group available resources.
   This could require actual negotiation of these parameters, instead of
   the currently declarative unidirectional use specified in the draft



Romanow, et al.          Expires March 15, 2013                [Page 21]

Internet-Draft             SDP Usage for CLUE             September 2012


   currently.

   Note on real time requirements: The provider advertisements and
   Consumer selection should be as quick as possible, but do not have
   hard real time requirements.  They can be accomplished within the
   time scale of signaling.

   There is however one scenario that has timing requirements more
   stringent than signaling typically provides.  Consider a switch=true
   audio capture, the information on the spatial location of the audio
   capture needs to happen in real time.  The speaker changes frequently
   and the location of the speaker must be known quickly (in near real-
   time) in order to assign the incoming stream to a decoder.

   Editor's Note: add reference to draft-clue-hansen


12.  Security Considerations

   TBD


13.  Acknowledgements

   Thanks to Rob Hansen for discussions on the advantages and
   disadvantages of using SDP.


14.  IANA Considerations

   TBD


15.  References

15.1.  Normative References

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

15.2.  Informative References

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




Romanow, et al.          Expires March 15, 2013                [Page 22]

Internet-Draft             SDP Usage for CLUE             September 2012


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


Appendix A.  Changes From Earlier Versions

   Note to the RFC-Editor: please remove this section prior to
   publication as an RFC.

A.1.  Changes From Draft -01

   o  Version -02 is being submitted to keep the document available for
      discussion until decisions are made.


Authors' Addresses

   Allyn Romanow
   Cisco Systems
   San Jose, CA  95134
   USA

   Email: allyn@cisco.com


   Flemming Andreasen
   Cisco Systems
   Iselin, NJ
   USA

   Email: fandreas@cisco.com


   Arun Krishna
   Cisco Systems
   San Jose, CA
   USA

   Email: arukrish@cisco.com











Romanow, et al.          Expires March 15, 2013                [Page 23]