MMUSIC                                                      F. Andreasen
Internet-Draft                                             Cisco Systems
Expires: August 16, 2007                                       R. Gilman
                                                             Avaya, Inc.
                                                            R. Even, Ed.
                                                                 Polycom
                                                       February 12, 2007


                   SDP media capabilities Negotiation
            draft-ietf-mmusic-sdp-media-capabilities-00.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on August 16, 2007.

Copyright Notice

   Copyright (C) The IETF Trust (2007).











Andreasen, et al.        Expires August 16, 2007                [Page 1]


Internet-Draft                    CMED                     February 2007


Abstract

   Session Description Protocol (SDP) capability negotiation provides a
   general framework for negotiation capabilities in SDP.  The base
   framework defines only capabilities for negotiation transport
   protocols and attributes.  In this document, we extend the framework
   by defining media capabilities that can be used to negotiate media
   types and their associated attributes.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  SDP Media capabilities . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Solution Overview  . . . . . . . . . . . . . . . . . . . .  5
     3.2.  Capability Attributes  . . . . . . . . . . . . . . . . . .  8
       3.2.1.  Media Type and Subtype Capability Attribute  . . . . .  8
       3.2.2.  The Capability Encoding Parameters Attribute . . . . .  9
       3.2.3.  The Capability Format Parameters Attribute . . . . . . 10
       3.2.4.  The Media Line Capabilities Attribute  . . . . . . . . 11
     3.3.  Extensions to the Potential Configuration Attribute  . . . 11
       3.3.1.  The Media Capability Extension to the Potential
               Configuration Attribute  . . . . . . . . . . . . . . . 11
   4.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
     4.1.  Alternative Codecs . . . . . . . . . . . . . . . . . . . . 16
     4.2.  Latent Media Streams . . . . . . . . . . . . . . . . . . . 16
   5.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 17
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 18
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 19
   8.  Normative References . . . . . . . . . . . . . . . . . . . . . 20
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21
   Intellectual Property and Copyright Statements . . . . . . . . . . 22


















Andreasen, et al.        Expires August 16, 2007                [Page 2]


Internet-Draft                    CMED                     February 2007


1.  Introduction

   Session Description Protocol (SDP) capability negotiation provides a
   general framework for negotiation capabilities in SDP[RFC4566].  The
   base framework defines only capabilities for negotiation transport
   protocols and attributes.  In this document, we extend the framework
   by defining media capabilities that can be used to negotiate media
   types and their associated attributes.

   SDP Simple Capability Declaration (simcap) is defined in RFC 3407.
   It defines a set of SDP attributes that enables capabilities to be
   described at a session level or on a per media stream basis.  RFC
   3407 defines capability declaration only - actual negotiation
   procedures taking advantage of such capabilities have not been
   defined.  The SDP capability negotiation framework adds this required
   functionality.  This document updates RFC3407 and new implementation
   SHOULD use the functionality defined in the current draft to
   negotiate media capabilities.

































Andreasen, et al.        Expires August 16, 2007                [Page 3]


Internet-Draft                    CMED                     February 2007


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 RFC2119 [RFC2119] and
   indicate requirement levels for compliant RTP implementations.













































Andreasen, et al.        Expires August 16, 2007                [Page 4]


Internet-Draft                    CMED                     February 2007


3.   SDP Media capabilities

   In this section we first provide an overview of the SDP media
   Capability negotiation solution.  This is followed by definitions of
   new SDP attributes for the solution and its associated updated offer/
   answer procedures [RFC3264]

3.1.  Solution Overview

   The solution consist of the following new attributes extending the
   base attributes from (reference)

   A new media attribute ("a=cmed") that lists potential media types and
   subtypes

   A new attribute ("a=cenc") that lists potential encoding parameters

   A new attribute ("a=cfmt") that lists potential media format
   capabilities

   A new media-level attribute ("a=mcap:") that assigns identifying
   numbers to media capabilities specified in the corresponding media
   ("m=") line.

   A new attribute ("a=lcfg") that specifies latent configurations when
   no corresponding media line is offered.  An example is a potential
   configuration for video even though no video is currently offered.

   A new parameter type ("m=") to the proposed-configuration ("a=pcfg:")
   attribute and the accepted configuration ("a=acfg:") attribute, which
   permits specification of media capabilities and combinations thereof
   for the configuration.  For example, the "a=pcfg:" line might specify
   PCUM and telephony events or G.729B and telephony events as
   acceptable configurations.  The "a=acfg:" line in the answer would
   specify the accepted choice.

   A new parameter type ("pt=") to the proposed-configuration
   ("a=pcfg:") attribute which permits specification of payload types
   for the referenced media capabilities.

   The document extends the base protocol extensions to the offer/answer
   model that allow for capabilities and potential configurations to be
   included in an offer.  When included at the session level, they
   constitute latent capabilities that may be used to guide a subsequent
   offer.  When included at the media level, they constitute offers that
   may be accepted by the answerer instead of the actual
   configuration(s) included in the "m=" line(s).  The answerer replies
   by including the accepted configuration in the media line of the



Andreasen, et al.        Expires August 16, 2007                [Page 5]


Internet-Draft                    CMED                     February 2007


   answer.  Capabilities, latent configurations and potential
   configurations may be included in answers as well, where they can aid
   in guiding a subsequent new offer.

   The mechanism is illustrated by the offer/answer exchange below,
   where Alice sends an offer to Bob:


                   Alice                               Bob
                  | (1) Offer (SRTP and RTP)         |
                  |--------------------------------->|
                  |                                  |
                  | (2) Answer (RTP)                 |
                  |<---------------------------------|
                  |                                  |

   Alice's offer includes RTP and SRTP as alternatives.  RTP is the
   default, but SRTP is the preferred one:

             v=0
             o=- 25678 753849 IN IP4 192.0.2.1/24
             s=
             c=IN IP4 192.0.2.1/24
             t=0 0
             a=creq:v1
             a=cmed:1 audio g729 iLBC
             a=cenc:2 8000
             a=cfmt:1 annexb:no
             a=ctrpr:1 RTP/SAVP
             m=audio 3456 RTP/AVP 0 18
             a=mcap:3
             a=capar:1 a=crypto:1 AES_CM_128_HMAC_SHA1_32
             inline:NzB4d1BINUAvLEw6UzF3WSJ+PSdFcGdUJShpX1Zj|2^20|1:32
             a=cptmap:1 1:100 2:101 3:102
             a=pcfg:1 m=1,3|4,3 t=1 a=1 pt=1:100,4:101,3:102
             a=pcfg:2 m=2 pt=2:103

   The required base and extensions are provided by the "a=creq"
   attribute, see base protocol, which indicates that the option tag
   "v1", which indicates the extension framework defined here, must be
   supported.  The Base level support is implied since it is required
   for the extensions.

   The "a=cmed:1" line defines two audio media capabilities (mime
   subtypes), to be numbered consecutively starting with 1.

   The "a=cenc:2" line specifies the encoding for capability 2, iLBC.




Andreasen, et al.        Expires August 16, 2007                [Page 6]


Internet-Draft                    CMED                     February 2007


   The "a=cfmt:1" line specifies format parameters for codec 1 (no
   comfort noise for G.729).

   The "a=ctrpr:1" line, specified in the base protocol, defines a
   transport profile, in this case using SRTP.

   The "m=" line indicates that Alice is offering to use plain RTP with
   PCMU or G.729B. The media line implicitly defines the default
   transport profile (RTP/AVP in this case) and the default proposed
   configuration.

   The "a=mcap:3" line assigns numbers 3 and 4 to the media capabilities
   in the m-line (PCMU and G.729B, respectively)

   [Editors' note: we need some way to refer to the caps in the m= line
   so that we don't have to repeat them in an a=cmed: line.  I think we
   can always refer to the current transport protocol from the m-line by
   omission - it's always the default.  Since we may want to refer to
   the media caps outside the media session when/if we specify
   constraints between media encodings, we might define a new media-
   level attribute that lets us associate a unique set of numbers with
   the media types in the m-line.  For the sake of discussion, let's
   call it "a=mcap:<n>", where <n> is the ordinal assigned to the first
   payload or subtype in the m-line, and the subsequent payloads/
   subtypes, if any, are assigned consecutive ordinals.  This will
   permit us to use those media caps in pcfg: attributes as well, and
   it's constant under a reordering of the media lines and associated
   attributes.  Unique numbering will also let us refer to those caps
   outside of the media session if we need to specify multimedia
   constraints.]

   The "a=capar:1" line ,specified in the base protocol provides the
   "crypto" attribute which provides the keying material for SRTP using
   SDP security descriptions.

   The "a=pcfg:" attributes provide the potential configurations
   included in the offer by reference to the media capability
   declarations.  Two explicit alternatives are provided; the first one,
   numbered 1 is the preferred one, specifies media capabilities 1 and
   3, i.e.  G.729 and PCMU, or media capability 4 and 3, i.e., G.729B
   and PCMU.  Furthermore, it specifies transport protocol capability 1
   (i.e. the RTP/SAVP profile - secure RTP), and the attribute
   capability parameter 1, i.e. the crypto attribute provided.  Lastly,
   it specifies, a payload type mapping for codecs 1, 3, and 4 thereby
   permitting the offerer to distinguish between encrypted media and
   unencrypted media received prior to receipt of the answer.

   The second alternative specifies media capability 2, i.e. iLBC, under



Andreasen, et al.        Expires August 16, 2007                [Page 7]


Internet-Draft                    CMED                     February 2007


   the default RTP/AVP profile .  The media line, with any qualifying
   attributes such as fmtp or rtpmap, is itself considered a valid
   configuration; it is assumed to be the lowest preference.

   Bob receives the SDP offer from Alice.  Bob supports RTP, but not
   SRTP, and hence he accepts the potential configuration for RTP
   provided by Alice.  Furthermore, Bob wants to use the iLBC codec and
   hence generates the following answer:

             v=0
             o=- 24351 621814 IN IP4 192.0.2.2/24
             s=
             c=IN IP4 192.0.2.2/24
             t=0 0
             a=csup:v1
             m=audio 4567 RTP/AVP 103
             a=rtpmap:103 8000
             a=acfg:2

   Bob includes the "a=csup" and "a=acfg" attribute in the answer to
   inform Alice that he can support the v1 level of capability
   negotiations.  Note that in this particular example, the answerer
   supported the capability extensions defined here, however had he not,
   he would simply have processed the offer based on the offered PCMU
   and G.729B codecs under the RTP/AVP profile only.  Consequently, the
   answer would have omitted the "a=csup" attribute line and chosen one
   or both of the PCMU and G.729 codecs instead.  The answer carries the
   accepted configuration in the m line along with corresponding rtpmap:
   and/or fmtp: parameters, as appropriate.

3.2.  Capability Attributes

   In this section, we present the new attributes associated with
   indicating the media capabilities for use by the SDP Capability
   negotiation.  The approach taken is to keep things similar to the
   existing media capabilities defined by the existing rtpmap: and fmtp:
   attributes, but using "media capability numbers" instead of payload
   types to identify each media capability.

3.2.1.  Media Type and Subtype Capability Attribute

   Media types and subtypes can be expressed as capabilities by use of
   the "a=cmed" attribute, which is defined as follows:

   a=cmed:<med-cap-num> <type> <subtype>*[ <subtype>]

   where <med-cap-num> is an integer between 1 and 2^31-1 (both
   included) used to number the media capabilities, <type> is a media



Andreasen, et al.        Expires August 16, 2007                [Page 8]


Internet-Draft                    CMED                     February 2007


   type (e.g., audio or video), and the <subtype> is the media subtype
   e.g.  H263-1998, PMCU.  The <med-cap-num> is the media capability
   number associated with the first subtype in the list, the number
   associated with the second subtype is one higher, etc.  Each
   occurrence of the attribute MUST use a different value of <med-cap-
   num>.  Furthermore, when a "cmed" attribute indicates more than one
   media format, the capability numbers implied MUST NOT be used by any
   other "cmed" attribute in the session or media description
   (explicitly or implicitly).  In ABNF, we have:

         media-capability-line = "a=cmed:" media-cap-num WSP media-type
                                    WSP media-cap *(WSP media-cap)
           media-cap-num      = 1*DIGIT
           media-type         = token ; MIME type (audio, video, etc.)
           media-cap          = token ; MIME subtype (PCMU, G729, etc.)

   Media subtypes identified in "a=cmed" lines may be qualified via
   other attributes, "a=cenc" and "a=cfmt", in much the same way as
   payload types are qualified by "a=rtpmap" and "a=fmtp" lines.

3.2.2.  The Capability Encoding Parameters Attribute

   Capabilities defined in "a=cmed" lines may require additional
   encoding parameters, such as sample rate, to be precisely defined.
   The "a=cenc" encoding attribute is defined as

           a=cenc:<med-cap-num> <clock rate>[/<encoding parameters>]

   The clock rate and other encoding parameters are as defined for the
   "a=rtpmap:" line defined in RFC 4566.  For example, a capability for
   low-bit-rate encoding at 8000 samples per second could be specified
   by

             a=cmed:1 iLBC
             a=cenc:1 8000

   The encoding becomes part of the media capability.  Thus, if it is
   desirable to specify the same subtype with, e.g., two different
   encoding rates, then the subtype should be listed twice, and each
   should be modified appropriately.  For example:

             a=cmed:1 L16 L16
             a=cenc:1 8000
             a=cenc:2 16000/2

   defines two low-data-rate codecs, codec 1 uses 8000 samples per
   second, and codec 2 uses 16000 samples per second and 2 channels.
   [EDITOR'S NOTE: I'm thinking that it might be better to put the



Andreasen, et al.        Expires August 16, 2007                [Page 9]


Internet-Draft                    CMED                     February 2007


   encoding information in the cmed line or cptmap, along with the MIME
   subtype, and eliminate the cenc attribute.  This would make the above
   example look like:

   a=cmed:1 L16/8000 L16/16000/2

   This can be done so long as the encoding attributes never contain
   whitespace.  Is this the case? or instead use semi colon as
   separator]

   A media capability merely indicates possible support for the media
   type and media format(s) in question.  In order to actually use a
   media capability in an offer/answer exchange, it must be referenced
   in a potential configuration (see Section 2.3.1. ).

   Media capabilities can be provided at the session-level and the
   media-level.  Media capabilities provided at the session level apply
   to the session description in general, whereas media capabilities
   provided at the media level apply to that media stream only.  In
   either case, the scope of the <med-cap-num> is the entire session
   description.  This enables each media capability to be referenced
   across the entire session description (e.g. in a potential
   configuration.)

3.2.3.  The Capability Format Parameters Attribute

   This attribute is used to associate format parameters with a media
   capability.  The form of the attribute is:

           a=cfmt:<med-cap-num> <list of format parameters>

   where the format parameters are specific to the type of codec, as
   described for the fmtp: attribute defined in RFC 4566.  As an
   example, a G.729 capability is, by default, considered to support
   comfort noise as defined by Annex B.  Capabilities for G.729 with and
   without comfort noise support may thus be identified by:

             a=cmed:1 audio G729 G729
             a=cfmt:2 annexb:no

   Example for H.263 video:

             a=cmed:1 video H263-1998 H263-2000
             a=cfmt:1 CIF=4;QCIF=2;F=1;K=1
             a=cftp:2 profile=2;level=2.2






Andreasen, et al.        Expires August 16, 2007               [Page 10]


Internet-Draft                    CMED                     February 2007


3.2.4.  The Media Line Capabilities Attribute

   This attribute is used to assign unique ordinals to the media
   capabilities listed in the m= line.  It is a media-level attribute,
   but the numbers assigned must be unique across the session.  The form
   of the attribute is:

           a=mcap:<med-cap-num>

   where <media-cap-num> is the ordinal assigned to the first media
   capability listed in the m-line; subsequent capabilities, if present,
   are assigned consecutive numbers following the first.  For example,
   the following sequence defines three capabilies, 1 = GSM, 6 = PCMU,
   and 7 = G.729.  The m-line configuration is the preferred one, but
   GSM support is offered as an alternative:

             a=cmed:1 audio GSM
             m=audio 4567 RTP/AVP 0 18
             a=mcap:6
             a=pcfg:1 m=6|7
             a=pcfg:2 m=1

3.3.  Extensions to the Potential Configuration Attribute

   The extension protocol of capabilities negotiation requires two new
   extensions for the pcfg: attribute defined in the base protocol.  One
   extension permits the specification of selected media capabilities,
   or combinations thereof; the other permits the assignment of payload
   types to those capabilities when used in the specified configuration.

3.3.1.  The Media Capability Extension to the Potential Configuration
        Attribute

   The potential configuration attribute ("a=pcfg") as defined in SDP
   capabilities negotiation, permits alternate attributes to be
   associated with the media types defined in a media line.  In this
   extension (this document), we define an extension parameter for the
   specification of media configurations in addition to the one
   specified on the media line.

   We define the media capability configuration parameter, pot-media-
   config, in accordance with the following format:

           m=<med-cap-list> *["/"<med-cap-list>]

   where <med-cap-list> is a comma-separated list of media capability
   numbers (media-cap-num) as defined by a=cmed: lines and media lines.




Andreasen, et al.        Expires August 16, 2007               [Page 11]


Internet-Draft                    CMED                     February 2007


   In ABNF form,

           pot-media-config = "m=" med-cap-list *("/" med-cap-list)
           med-cap-list        = med-cap-num *("," med-cap-num)
           med-cap-num      = 1*DIGIT      ; defined in SDP

   Each potential media configuration is a comma-separated list of media
   capability numbers where med-cap-num refers to media capability
   numbers defined explicitly by a=cmed attributes or implicitly by the
   media line, and hence MUST be between 1 and 2^31-1 (both included).
   Alternative potential media configurations are separated by a forward
   slash ("/").  The alternatives are ordered by preference.  When media
   capabilities are not included in a potential configuration at the
   media level, the media type and media format from the associated "m="
   line will be used.

   For example:

             v=0
             o=- 25678 753849 IN IP4 192.0.2.1/24
             s=
             c=IN IP4 192.0.2.1/24
             t=0 0
             a=creq:v1
             m=audio 3456 RTP/AVP 0 18 100
             a=rtpmap:100 events
             a=fmtp:100 0-15
             a=pcfg:1 m=2,3/1,3

   In this example, G729 is media capability 2, PCMU is media capability
   1, and events is media capability 3.  The a=pcfg: line specifies that
   the preferred configuration is G.729B with dtmf events, second is
   G.711 mu-law with dtmf events.  Intermixing of G.729, G.711, and dtmf
   events is least preferred.

3.3.1.1.  The Payload Type Mapping Extension to the Potential
          Configuration Attribute

   When media capabilities defined in cmed: attributes are used in
   potential configuration lines, it is necessary to assign payload
   types to them.  In some cases, it is desirable to assign different
   payload types to media capabilities defined in the media line.  One
   example of the latter is when configurations for AVP and SAVP are
   offered: the offerer would like the answerer to use different payload
   types for encrypted and unencrypted media so that it (the offerer)
   can decide whether or not to render early media which arrives before
   the answer is received.




Andreasen, et al.        Expires August 16, 2007               [Page 12]


Internet-Draft                    CMED                     February 2007


   We define a payload-type-map attribute which define a (set of)
   mappings from media capability number to payload type

           a = cptmap: 1*[<med-cap-num>:<payload-type>]
           payload-type-map  = 1*(WSP <med-cap-num)":"<payload-type>)
           med-cap-num         = 1*DIGIT ; from cmed: attribute
           payload-type          = 1*DIGIT ; RTP payload type

   This is illustrated by extending an example from the version 0
   document showing an offer of an audio session with or without SRTP.
   The following specifies RTP/SAVP transport using payload type 98 for
   PCMU and payload type 99 for G.729; RTP/AVP transport uses the
   standard payload types from the media line.

             v=0
             o=- 25678 753849 IN IP4 192.0.2.1/24
             s=
             c=IN IP4 192.0.2.1/24
             t=0 0
             a=creq:v1
             m=audio 3456 RTP/AVP 0 18
             a=ctrpr:1 RTP/SAVP RTP/AVP
             a=capar:1 a=crypto:1 AES_CM_128_HMAC_SHA1_80
             inline:WVNfX19zZW1jdGwgKCkgewkyMjA7fQp9CnVubGVz|2^20|1:4
             FEC_ORDER=FEC_SRTP
             a=cptmap:1 1:98 2:99
             a=pcfg:5 t=1 a=1 pt=1
             a=pcfg:10 t=2

   [Editor's note: it seems to me that the cptmap: attribute is only
   really useful within a media block, so perhaps we should drop it and
   just define the pt= parameter as a comma-separated list of PT
   mappings like "pt=1:98,2:99" in the above example.  Alternative is to
   use the cenc=1:98/8000.  What do you think?]

3.3.1.2.  Extensions to the Actual Configuration Attribute

   [Editor's note: I'm thinking more and more that we don't need the
   acfg: attribute at all, given the presence of the csup: attribute.
   All the significant reply information is in the m=line and its
   associated attributes.  We should be able to infer that they came
   from a pcfg: attribute or the default offer.  What do you think?]
   (will it be OK with offer answer)

   We define an actual configuration extension parameter act-media-
   config in accordance with the following ABNF:

   act-media-config = "m=" med-cap-list



Andreasen, et al.        Expires August 16, 2007               [Page 13]


Internet-Draft                    CMED                     February 2007


   where med-cap-list is as defined in Section 2.3.1.  Thus, a response
   to the example offer in that section might be:

             v=0
             o=- 24351 621814 IN IP4 192.0.2.2/24
             s=
             c=IN IP4 192.0.2.2/24
             t=0 0
             a=csup:v1
             m=audio 5432 RTP/AVP 18 100
             a=rtpmap:100 events
             a=fmtp:100 0-15
             a=acfg:1 m=2,3

   Note that the capability numbers expressed in the acfg: attribute are
   based on the offered capability numbering, not on those listed in the
   answer.  In this particular example, it's somewhat redundant to
   include the acfg: line at all , but it is important in cases in which
   the payload type mappings are not the same in both directions.

3.3.1.3.   The Latent Configuration Attribute

   One of the goals of this work is to permit the exchange of media
   configurations in addition to those offered for immediate use.  Such
   configurations are referred to as "latent configurations".  For
   example, a party may offer to establish an audio session, and, at the
   same time, announce its ability to support a video session.

   Latent configurations may be announced by use of the latent
   configuration attribute, which is defined in a manner very similar to
   the potential configuration attribute:

     a=lcfg:<preference> ["m="<media-caps>] ["t="<transport>]
                ["a="<attributes>]

   The m=, t= and a= parameters are identical in format and meaning to
   those defined for the pcfg: attribute.  Note that the pt= parameter
   is not permitted in the lcfg: attribute because no actual media
   session is being offered or accepted.

   Latent Configurations may be specified at the session level in offers
   and in answers.

   [Editor's note: Do you have a good example of an offer of an audio
   stream with a latent video stream?][Editor's note (rrg): What if, as
   Roni suggested, we exclude the a= parameters from the lcfg: lines?
   We can include the t= parameter as the 'cheapest' way to indicate
   SRTP.  That conveys most of the necessary info; the details can be



Andreasen, et al.        Expires August 16, 2007               [Page 14]


Internet-Draft                    CMED                     February 2007


   firmed up in the actual offer when/if it's actually made.]

3.3.1.3.1.   The crypto: Attribute in Latent Configurations

   If the sdescriptions crypto: attribute is necessary as part of any
   latent configuration which announces sdescriptions capabilities. then
   it presents a slight problem in that the rather long key/salt string
   is useless and should be ignored.  This problem is avoided if we
   exclude the a= parameters from the lcfg: attribute.  [Editor's note:
   should we define a new crypto: key-method, e.g. "latent", in which
   the key-salt portion of key-info is empty?  I think it may be
   sufficient to just include the RTP/SAVP transport to indicate SRTP
   capability]

3.3.1.4.  2.6. Offer/Answer Model Extensions

   In this section, we define extensions to the offer/answer model
   defined in RFC3264 to allow for media capabilities to be used with
   the SDP Capability Negotation framework.

3.3.1.4.1.  Generating the Initial Offer

3.3.1.4.2.  Generating the Answer

3.3.1.4.3.  Offerer Processing of the Answer

3.3.1.4.4.  Modifying the Session
























Andreasen, et al.        Expires August 16, 2007               [Page 15]


Internet-Draft                    CMED                     February 2007


4.  Examples

   In this section, we provide examples showing how to use the Media
   Capabilities with the SDP Capability Negotiation.

4.1.  Alternative Codecs

4.2.  Latent Media Streams











































Andreasen, et al.        Expires August 16, 2007               [Page 16]


Internet-Draft                    CMED                     February 2007


5.  IANA Considerations


















































Andreasen, et al.        Expires August 16, 2007               [Page 17]


Internet-Draft                    CMED                     February 2007


6.  Security Considerations


















































Andreasen, et al.        Expires August 16, 2007               [Page 18]


Internet-Draft                    CMED                     February 2007


7.  Acknowledgements

   This document is heavily influenced by the discussions and work done
   by the SDP Capability Negotiation Design team.  The following people
   in particular provided useful comments and suggestions to either the
   document itself or the overall direction of the solution defined
   herein: Cullen Jennings, Matt Lepinski, Joerg Ott, Colin Perkins, and
   Thomas Stach.











































Andreasen, et al.        Expires August 16, 2007               [Page 19]


Internet-Draft                    CMED                     February 2007


8.  Normative References

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

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

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.








































Andreasen, et al.        Expires August 16, 2007               [Page 20]


Internet-Draft                    CMED                     February 2007


Authors' Addresses

   Flemming Andreasen
   Cisco Systems
   Edison, NJ
   USA

   Email: fandreas@cisco.com


   Robert R Gilman
   Avaya, Inc.
   1300 West 120th Avenue
   Westminster, CO 80234
   USA

   Email: rrg@avaya.com


   Roni Even (editor)
   Polycom
   94 Derech Em Hamoshavot
   Petach Tikva  49130
   Israel

   Email: roni.even@polycom.co.il

























Andreasen, et al.        Expires August 16, 2007               [Page 21]


Internet-Draft                    CMED                     February 2007


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Andreasen, et al.        Expires August 16, 2007               [Page 22]