draft-ietf-mmusic-sdp-miscellaneous-caps-02.txt   draft-ietf-mmusic-sdp-miscellaneous-caps-03.txt 
MMUSIC WG M. Garcia-Martin MMUSIC WG M. Garcia-Martin
Internet-Draft Ericsson Internet-Draft Ericsson
Intended status: Standards Track S. Veikkolainen Intended status: Standards Track S. Veikkolainen
Expires: April 17, 2013 Nokia Expires: June 15, 2013 Nokia
R. Gilman R. Gilman
October 14, 2012 December 12, 2012
Miscellanoues Capabilities Negotiation in the Session Description Miscellaneous Capabilities Negotiation in the Session Description
Protocol (SDP) Protocol (SDP)
draft-ietf-mmusic-sdp-miscellaneous-caps-02 draft-ietf-mmusic-sdp-miscellaneous-caps-03
Abstract Abstract
SDP has been extended with a capability negotiation mechanism SDP has been extended with a capability negotiation mechanism
framework that allows the endpoints to negotiate transport protocols framework that allows the endpoints to negotiate transport protocols
and attributes. This framework has been extended with a media and attributes. This framework has been extended with a media
capabilities negotiation mechanism that allows endpoints to negotiate capabilities negotiation mechanism that allows endpoints to negotiate
additional media-related capabilities. This negotiation is embedded additional media-related capabilities. This negotiation is embedded
into the widely-used SDP offer/answer procedures. into the widely-used SDP offer/answer procedures.
skipping to change at page 1, line 44 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 17, 2013. This Internet-Draft will expire on June 15, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions Used in This Document . . . . . . . . . . . . . . 4 2. Conventions Used in This Document . . . . . . . . . . . . . . 3
3. Protocol Description . . . . . . . . . . . . . . . . . . . . . 4 3. Protocol Description . . . . . . . . . . . . . . . . . . . . . 3
3.1. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 4 3.1. Extensions to SDP . . . . . . . . . . . . . . . . . . . . 4
3.1.1. Bandwidth Capability . . . . . . . . . . . . . . . . . 7 3.1.1. Bandwidth Capability . . . . . . . . . . . . . . . . . 6
3.1.2. Connection Data Capability . . . . . . . . . . . . . . 9 3.1.2. Connection Data Capability . . . . . . . . . . . . . . 8
3.1.3. Title Capability . . . . . . . . . . . . . . . . . . . 11 3.1.3. Title Capability . . . . . . . . . . . . . . . . . . . 12
3.2. Session Level versus Media Level . . . . . . . . . . . . . 14 3.2. Session Level versus Media Level . . . . . . . . . . . . . 15
3.3. Offer/Answer model extensions . . . . . . . . . . . . . . 15 3.3. Offer/Answer model extensions . . . . . . . . . . . . . . 15
3.3.1. Generating the Initial Offer . . . . . . . . . . . . . 15 3.3.1. Generating the Initial Offer . . . . . . . . . . . . . 15
3.3.2. Generating the Answer . . . . . . . . . . . . . . . . 15 3.3.2. Generating the Answer . . . . . . . . . . . . . . . . 16
3.3.3. Offerer Processing of the Answer . . . . . . . . . . . 15 3.3.3. Offerer Processing of the Answer . . . . . . . . . . . 16
3.3.4. Modifying the Session . . . . . . . . . . . . . . . . 15 3.3.4. Modifying the Session . . . . . . . . . . . . . . . . 16
4. Field Replacement Rules . . . . . . . . . . . . . . . . . . . 16 4. Field Replacement Rules . . . . . . . . . . . . . . . . . . . 16
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 5. Security Considerations . . . . . . . . . . . . . . . . . . . 17
5.1. New SDP Attributes . . . . . . . . . . . . . . . . . . . . 16 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17
5.2. New Option Tags . . . . . . . . . . . . . . . . . . . . . 17 6.1. New SDP Attributes . . . . . . . . . . . . . . . . . . . . 17
5.3. New SDP Capability Negotiation Configuration Parameters . 17 6.2. New Option Tags . . . . . . . . . . . . . . . . . . . . . 18
6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 6.3. New SDP Capability Negotiation Configuration Parameters . 18
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.1. Normative References . . . . . . . . . . . . . . . . . . . 18 8.1. Normative References . . . . . . . . . . . . . . . . . . . 19
8.2. Informative References . . . . . . . . . . . . . . . . . . 18 8.2. Informative References . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 20
1. Introduction 1. Introduction
The Session Description Protocol (SDP) [RFC4566] is intended for The Session Description Protocol (SDP) [RFC4566] is intended for
describing multimedia sessions for the purposes of session describing multimedia sessions for the purposes of session
announcement, session invitation, and other forms of multimedia announcement, session invitation, and other forms of multimedia
session initiation. SDP has been extended with a capability session initiation. SDP has been extended with a capability
negotiation mechanism framework [RFC5939] which allows the endpoints negotiation mechanism framework [RFC5939] which allows the endpoints
to negotiate capabilities, such as support for Real-time Transport to negotiate capabilities, such as support for Real-time Transport
Protocol (RTP) [RFC3550] and Secure Real-time Transport Protocol Protocol (RTP) [RFC3550] and Secure Real-time Transport Protocol
skipping to change at page 4, line 27 skipping to change at page 3, line 27
The capability negotiation is embedded into the widely used SDP The capability negotiation is embedded into the widely used SDP
offer/answer procedure [RFC3264]. This memo provides the means to offer/answer procedure [RFC3264]. This memo provides the means to
negotiate further capabilities than those specified in the SDP negotiate further capabilities than those specified in the SDP
capability negotiation mechanism framework [RFC5939] and the SDP capability negotiation mechanism framework [RFC5939] and the SDP
media capabilities negotiation media capabilities negotiation
[I-D.ietf-mmusic-sdp-media-capabilities]. In particular, this memo [I-D.ietf-mmusic-sdp-media-capabilities]. In particular, this memo
provides a mechanism to negotiate bandwidth ('b='), connection data provides a mechanism to negotiate bandwidth ('b='), connection data
('c='), and session or media titles ('i='). ('c='), and session or media titles ('i=').
Since the three added capabilities are highly unconnected, it is not Since the three added capabilities are independent, it is not
expected that implementations will support all of them at the same expected that implementations will necessarily support all of them at
time. Instead, it is expected that applications will choose their the same time. Instead, it is expected that applications will choose
needed capability for their specific purpose. Due to this, we are their needed capability for their specific purpose. Due to this, we
writing the normative part pertaining to each capability in a self- are writing the normative part pertaining to each capability in a
contained section: Section 3.1.1 describes the bandwidth capability self-contained section: Section 3.1.1 describes the bandwidth
extension, Section 3.1.2 describes the connection data capability capability extension, Section 3.1.2 describes the connection data
extension, and Section 3.1.3 describes the title capability capability extension, and Section 3.1.3 describes the title
extension. Separate option tags are defined for each capability. capability extension. Separate SDP capability negotiation option
tags are defined for each capability.
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119 document are to be interpreted as described in BCP 14, RFC 2119
[RFC2119] and indicate requirement levels for compliant [RFC2119] and indicate requirement levels for compliant
implementations. implementations.
3. Protocol Description 3. Protocol Description
skipping to change at page 4, line 46 skipping to change at page 4, line 4
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119 document are to be interpreted as described in BCP 14, RFC 2119
[RFC2119] and indicate requirement levels for compliant [RFC2119] and indicate requirement levels for compliant
implementations. implementations.
3. Protocol Description 3. Protocol Description
3.1. Extensions to SDP 3.1. Extensions to SDP
The SDP Capability Negotiation Framework [RFC5939] and the SDP media The SDP Capability Negotiation Framework [RFC5939] and the SDP media
capabilities negotiation [I-D.ietf-mmusic-sdp-media-capabilities] capabilities negotiation [I-D.ietf-mmusic-sdp-media-capabilities]
specify attributes for negotiating SDP capabilities. These documents specify attributes for negotiating SDP capabilities. These documents
specify new attributes (e.g., 'acap', 'tcap', 'rmcap', 'omcap') for specify new attributes (e.g., 'acap', 'tcap', 'rmcap', 'omcap') for
achieving their purpose. In this document we define three new achieving their purpose. In this document we define three new
additional capability attributes for SDP lines of the the general additional capability attributes for SDP lines of the general form:
form:
type=value type=value
for types 'b', 'c', and 'i'. The corresponding capability attributes for types 'b', 'c', and 'i'. The corresponding capability attributes
are respectively defined defined as: are respectively defined as:
o 'bcap': bandwidth capability o 'bcap': bandwidth capability
o 'ccap': connection data capability o 'ccap': connection data capability
o 'icap': title capability o 'icap': title capability
From the sub-rules of attribute ('a=') line in SDP [RFC4566], SDP From the sub-rules of attribute ('a=') line in SDP [RFC4566], SDP
attributes are of the form: attributes are of the form:
attribute = (att-field ":" att-value) / att-field attribute = (att-field ":" att-value) / att-field
att-field = token att-field = token
att-value = byte-string att-value = byte-string
Capability attributes use only the 'att-field:att-value' form. Capability attributes use only the 'att-field:att-value' form.
The new attributes may be referenced in potential configurations The new capabilities may be referenced in potential configurations
('a=pcfg') or in latent configurations ('a=lcfg'), as productions ('a=pcfg') or in latent configurations ('a=lcfg'), as productions
conforming to the <extension-config-list> as respectively defined in conforming to the <extension-config-list> as respectively defined in
RFC 5939 [RFC5939] and the SDP media capabilities specification RFC 5939 [RFC5939] and the SDP media capabilities specification
[I-D.ietf-mmusic-sdp-media-capabilities]. [I-D.ietf-mmusic-sdp-media-capabilities].
extension-config-list = ["+"] ext-cap-name "=" ext-cap-list extension-config-list = ["+"] ext-cap-name "=" ext-cap-list
ext-cap-name = 1*(ALPHA / DIGIT) ext-cap-name = 1*(ALPHA / DIGIT)
; ALPHA and DIGIT defined in RFC 5234 ; ALPHA and DIGIT defined in RFC 5234
ext-cap-list = 1*VCHAR ; VCHAR defined in RFC 5234 ext-cap-list = 1*VCHAR ; VCHAR defined in RFC 5234
The optional "+" is used to indicate that the extension is mandatory The optional "+" is used to indicate that the extension is mandatory
and MUST be supported in order to use that potential configuration. and MUST be supported in order to use that particular configuration.
The new attributes may also be referenced in actual configurations The new capabilities may also be referenced in actual configurations
('a=acfg') as productions conforming to the <sel-extension-config> ('a=acfg') as productions conforming to the <sel-extension-config>
defined in [RFC5939]. defined in RFC 5939 [RFC5939].
sel-extension-config = ext-cap-name "=" 1*VCHAR sel-extension-config = ext-cap-name "=" 1*VCHAR
The specific parameters are defined in the individual description of The specific parameters are defined in the individual description of
each capability, below. each capability, below.
The 'bcap', 'ccap', and 'icap' capability attributes can be provided The 'bcap', 'ccap', and 'icap' capability attributes can be provided
either at the session or media level. According to the SDP at the SDP session and/or media level. According to the SDP
Capability Negotiation [RFC5939], each extension capability must Capability Negotiation [RFC5939], each extension capability must
specify the implication of making it part of a configuration at the specify the implication of making it part of a configuration at the
media level. media level.
According to SDP [RFC4566], 'b=', 'c=', and 'i=' lines may appear According to SDP [RFC4566], 'b=', 'c=', and 'i=' lines may appear
either at session or media level. In line with this, the 'bcap', either at session or media level. In line with this, the 'bcap',
'ccap', and 'icap' capability attributes, when declared at session 'ccap', and 'icap' capability attributes, when declared at session
level, are to be interpreted as-if that attribute was provided with level, are to be interpreted as-if that attribute was provided with
that value at the session level. The 'bcap', 'ccap' and 'icap' that value at the session level. The 'bcap', 'ccap' and 'icap'
capability attributes declared at media level, are to be interpreted capability attributes declared at media level, are to be interpreted
skipping to change at page 6, line 33 skipping to change at page 5, line 36
v=0 v=0
o=- 25678 753849 IN IP4 192.0.2.1 o=- 25678 753849 IN IP4 192.0.2.1
s= s=
c=IN IP4 192.0.2.1 c=IN IP4 192.0.2.1
t=0 0 t=0 0
a=bcap:1 CT:200 a=bcap:1 CT:200
a=icap:1 Video conference a=icap:1 Video conference
m=audio 54320 RTP/AVP 0 m=audio 54320 RTP/AVP 0
a=rmcap:1 L16/8000/1 a=rmcap:1 L16/8000/1
a=rmcap:2 L16/16000/2 a=rmcap:2 L16/16000/2
a=pcfg:1 m=1|2, pt=1:99,2:98 a=pcfg:1 m=1|2 pt=1:99,2:98
m=video 66544 RTP/AVP 100 m=video 66544 RTP/AVP 100
a=rmcap:3,4 H263-1998/90000 a=rmcap:3 H263-1998/90000
a=rtpmap:100 H264/90000 a=rtpmap:100 H264/90000
a=pcfg:10 m=3 pt=3:101 b=1 i=1 a=pcfg:10 m=3 pt=3:101 b=1 i=1
Figure 1: Example SDP offer with bcap and icap defined at session Figure 1: Example SDP offer with bcap and icap defined at session
level level
The above SDP defines one PCMU audio stream and one H.264 video The above SDP defines one PCMU audio stream and one H.264 video
stream. It also defines two RTP-based media capabilities ('rmcap' stream. It also defines two RTP-based media capabilities ('rmcap'
numbered 1 and 2), using L16 audio at 8 kbps and 16 kbps, numbered 1 and 2), using L16 audio at 8 kbps and 16 kbps,
respectively, as well as two RTP-based media capabilities for H.263 respectively, as well as an RTP-based media capability for H.263
video ('rmcap' numbered 3 and 4). The RTP-based media capabilities video ('rmcap' numbered 3). The RTP-based media capabilities all
all appear at the media level. The example also contains a single appear at the media level. The example also contains a single
bandwidth capability ('bcap') and a single title capability ('icap'), bandwidth capability ('bcap') and a single title capability ('icap'),
both defined at session level. According to the definition above, both defined at session level. According to the definition above,
when the capabilities defined in the 'bcap' and 'icap' attributes are when the capabilities defined in the 'bcap' and 'icap' attributes are
referenced from the potential configuration, in the resulting SDP referenced from the potential configuration, in the resulting SDP
they are to be interpreted as session level attributes (but the RTP- they are to be interpreted as session level attributes (but the RTP-
based media capabilities are to be interpreted as media level based media capabilities are to be interpreted as media level
attributes). attributes).
3.1.1. Bandwidth Capability 3.1.1. Bandwidth Capability
According to RFC 4566 [RFC4566] the bandwidth field denotes the According to RFC 4566 [RFC4566] the bandwidth field denotes the
proposed bandwidth to be used by the session or media. In this memo proposed bandwidth to be used by the session or media. In this memo
we specify the bandwidth capability attribute which can also appear we specify the bandwidth capability attribute which can also appear
either at session or media level. The bandwidth field is specified at the SDP session and/or media level. The bandwidth field is
in RFC 4566 [RFC4566] with the following syntax: specified in RFC 4566 [RFC4566] with the following syntax:
b=<bwtype>:<bandwidth> b=<bwtype>:<bandwidth>
where <bwtype> is an alphanumeric modifier giving the meaning of the where <bwtype> is an alphanumeric modifier giving the meaning of the
<bandwidth> figure. <bandwidth> figure.
In this document, we define a new capability attribute: the Bandwidth In this document, we define a new capability attribute: the Bandwidth
capability attribute 'bcap'. This attribute lists bandwidth as capability attribute 'bcap'. This attribute lists bandwidth as
capabilities according to the following definition: capabilities according to the following definition:
"a=bcap:" bw-cap-num 1*WSP bwtype ":" bandwidth CRLF "a=bcap:" bw-cap-num 1*WSP bwtype ":" bandwidth CRLF
where <bw-cap-num> is a unique integer between 1 and 2^31-1 (both where <bw-cap-num> is a unique integer within all the bandwidth
included) user to number the bandwidth capability, and the other capabilities in the entire SDP, which is used to number the bandwidth
elements are as defined for the 'b=' field in SDP [RFC4566]. capability, and can take a value between 1 and 2^31-1 (both
included). The other elements are as defined for the 'b=' field in
SDP [RFC4566].
This format satisfies the general attribute production rules in SDP This format satisfies the general attribute production rules in SDP
[RFC4566] according to the following Augmented Backus-Naur Form [RFC4566] according to the following Augmented Backus-Naur Form
(ABNF) [RFC5234] syntax: (ABNF) [RFC5234] syntax:
att-field =/ "bcap" att-field =/ "bcap"
att-value =/ bw-cap-num 1*WSP bwtype ":" bandwidth att-value =/ bw-cap-num 1*WSP bwtype ":" bandwidth
bw-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234 bw-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234
Figure 2: Syntax of the bcap attribute Figure 2: Syntax of the bcap attribute
skipping to change at page 8, line 25 skipping to change at page 7, line 30
; BAR defined in RFC 5939 ; BAR defined in RFC 5939
bw-cap-list = bw-cap-num *("," bw-cap-num) bw-cap-list = bw-cap-num *("," bw-cap-num)
bw-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234 bw-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234
Figure 3: Syntax of the bandwidth parameter in 'lcfg' and 'pcfg' Figure 3: Syntax of the bandwidth parameter in 'lcfg' and 'pcfg'
attributes attributes
Each bandwidth capability configuration is a comma-separated list of Each bandwidth capability configuration is a comma-separated list of
bandwidth capability attribute numbers where <bw-cap-num> refers to bandwidth capability attribute numbers where <bw-cap-num> refers to
the <bw-cap-num> bandwidth capability numbers defined explicitly the <bw-cap-num> bandwidth capability numbers defined explicitly
earlier in this document, and hence must be between 1 and 2^31-1 earlier in this document, and hence MUST be between 1 and 2^31-1
(both included). Alternative bandwidth configurations are separated (both included). Alternative bandwidth configurations are separated
by a vertical bar ("|"). by a vertical bar ("|").
The above syntax is very flexible, allowing referencing to multiple The above syntax is very flexible, allowing referencing to multiple
'b=' lines per configuration, even for the same <bwtype>. While the 'b=' lines per configuration, even for the same <bwtype>. While the
need for such definitions is not seen, we have not restricted this, need for such definitions is not seen, we have not restricted this,
as it is not restricted in SDP [RFC4566] either. as it is not restricted in SDP [RFC4566] either.
The bandwidth parameter to the actual configuration attribute The bandwidth parameter to the actual configuration attribute
('a=acfg') is formulated as a <sel-extension-config> with ('a=acfg') is formulated as a <sel-extension-config> with
skipping to change at page 9, line 28 skipping to change at page 8, line 35
address type, and the <connection-address> is the connection address, address type, and the <connection-address> is the connection address,
which is dependent on the address type. which is dependent on the address type.
At the moment, network types already defined include "IN", which At the moment, network types already defined include "IN", which
indicates Internet network type, and "ATM" (see RFC 3108 [RFC3108]), indicates Internet network type, and "ATM" (see RFC 3108 [RFC3108]),
used for describing Asynchronous Transfer Mode (ATM) bearer used for describing Asynchronous Transfer Mode (ATM) bearer
connections. The Circuit-Switched (CS) descriptions in SDP document connections. The Circuit-Switched (CS) descriptions in SDP document
[I-D.ietf-mmusic-sdp-cs] adds a "PSTN" network type for expressing a [I-D.ietf-mmusic-sdp-cs] adds a "PSTN" network type for expressing a
Public Switched Telephone Network (PSTN) circuit switch. Public Switched Telephone Network (PSTN) circuit switch.
SDP [RFC4566] permits specification of connection data at the session SDP [RFC4566] permits specification of connection data at the SDP
or at the media level. In order to permit negotiation of connection session and/or media level. In order to permit negotiation of
data at the media level, we define the connection data capability connection data at the media level, we define the connection data
attribute ('a=ccap') in the form: capability attribute ('a=ccap') in the form:
"a=ccap:" conn-cap-num 1*WSP nettype SP addrtype SP connection- "a=ccap:" conn-cap-num 1*WSP nettype SP addrtype SP connection-
address CRLF address CRLF
where <conn-cap-num> is a unique ordinal identifier of the connection where <conn-cap-num> is a unique integer within all the connection
data capability, and the other elements are as defined in [RFC4566]. capabilities in the entire SDP, which is used to identify the
connection data capability, and can take a value between 1 and 2^31-1
(both included). The other elements are as defined in [RFC4566].
This format corresponds to the [RFC4566] attribute production rules This format corresponds to the [RFC4566] attribute production rules
according to the following Augmented Backus-Naur Form (ABNF) according to the following Augmented Backus-Naur Form (ABNF)
[RFC5234] syntax: [RFC5234] syntax:
att-field =/ "ccap" att-field =/ "ccap"
att-value =/ conn-cap-num 1*WSP nettype SP addrtype att-value =/ conn-cap-num 1*WSP nettype SP addrtype
SP connection-address SP connection-address
conn-cap-num = 1*DIGIT ; 1 to 2^31-1, inclusive conn-cap-num = 1*10(DIGIT) ; 1 to 2^31-1, inclusive
; DIGIT defined in RFC 5234
Figure 5: Syntax of the ccap attribute Figure 5: Syntax of the ccap attribute
The 'ccap' capability attribute allows for expressing alternative The 'ccap' capability attribute allows for expressing alternative
connection address ('c=') lines in SDP as part of the SDP capability connection address ('c=') lines in SDP as part of the SDP capability
negotiation process. The 'ccap' capability attribute is intended to negotiation process. The 'ccap' capability attribute is intended to
be used only when there is no other mechanism available for be used only when there is no other mechanism available for
negotiating alternative connection address information, such as when negotiating alternative connection address information, such as when
the <nettype> is different among the alternative addresses. The the <nettype> is different among the alternative addresses (e.g.
'ccap' attribute MUST NOT be used in situations where an existing "IN" and "PSTN"). The 'ccap' attribute MUST NOT be used in
mechanism (such as Interactive Connectivity Establishment (ICE) situations where an existing mechanism (such as Interactive
[RFC5245]) can be used to select between different connection Connectivity Establishment (ICE) [RFC5245]) can be used to select
addresses. between different connection addresses (e.g. "IP4" and "IP6" or
different IP addresses within the same IP address family).
Figure 6 is an example of an SDP offer that includes a 'ccap'
capability attribute. An audio stream can be setup with an RTP flow
or establishing a circuit-switched audio stream:
v=0
o=2987933123 2987933123 IN IP4 198.51.100.7
s=-
t=0 0
a=creq:med-v0,ccap-v0
m=audio 38902 RTP/AVP 0 8
c=IN IP4 198.51.100.7
a=ccap:1 PSTN E164 +15555556666
a=tcap:2 PSTN
a=omcap:1 -
a=acap:1 setup:actpass
a=acap:2 connection:new
a=acap:3 cs-correlation:callerid:+15555556666
a=pcfg:1 c=1 t=2 m=1 a=1,2,3
Figure 6: Example SDP offer with a ccap attribute
The example in Figure 6 represents an SDP offer indicating an audio
flow using RTP, such as the one represented in Figure 7 or an audio
flow using a circuit-switched connection, such as the one represented
in Figure 8.
v=0
o=2987933123 2987933123 IN IP4 198.51.100.7
s=-
t=0 0
m=audio 38902 RTP/AVP 0 8
c=IN IP4 198.51.100.7
Figure 7: Equivalent SDP offer with the RTP flow
v=0
o=2987933123 2987933123 IN IP4 198.51.100.7
s=-
t=0 0
m=audio 9 PSTN -
c=PSTN E164 +15555556666
a=setup:actpass
a=connection:new
a=cs-correlation:callerid:+15555556666
Figure 8: Equivalent SDP offer with the circuit-switched flow
3.1.2.1. Configuration Parameters 3.1.2.1. Configuration Parameters
The SDP Capability Negotiation Framework [RFC5939] provides for the The SDP Capability Negotiation Framework [RFC5939] provides for the
existence of the 'pcfg' and 'acfg' attributes, which can carry one or existence of the 'pcfg' and 'acfg' attributes, which can convey one
more potential configurations to be negotiated. The concept is or more configurations to be negotiated. The concept is extended by
extended by the the Media Capabilities Negotiation the Media Capabilities Negotiation
[I-D.ietf-mmusic-sdp-media-capabilities] with an 'lcfg' attribute [I-D.ietf-mmusic-sdp-media-capabilities] with an 'lcfg' attribute
that conveys latent configurations. that conveys latent configurations.
In this document we define a <connection-config> parameter to be used In this document we define a <connection-config> parameter to be used
to specify a connection data capability in a potential or latent to specify a connection data capability in a potential or latent
configuration attribute. The parameter follows the form of an configuration attribute. The parameter follows the form of an
<extension-config-list>, with <extension-config-list>, with
ext-cap-name = "c" ext-cap-name = "c"
ext-cap-list = conn-cap-list ext-cap-list = conn-cap-list
where, according to the following Augmented Backus-Naur Form (ABNF) where, according to the following Augmented Backus-Naur Form (ABNF)
[RFC5234] syntax: [RFC5234] syntax:
extension-config-list =/ conn-config-list extension-config-list =/ conn-config-list
conn-config-list = ["+"] "c=" conn-cap-list conn-config-list = ["+"] "c=" conn-cap-list
conn-cap-list = conn-cap-num *(BAR conn-cap-num) conn-cap-list = conn-cap-num *(BAR conn-cap-num)
conn-cap-num = 1*DIGIT ; 1 to 2^32-1 inclusive conn-cap-num = 1*10(DIGIT) ; 1 to 2^32-1 inclusive
Figure 6: Syntax of the connection data parameter in 'lcfg' and Figure 9: Syntax of the connection data parameter in 'lcfg' and
'pcfg' attributes 'pcfg' attributes
Each capability configuration alternative contains a single Each capability configuration alternative contains a single
connection data capability attribute number and refers to the conn- connection data capability attribute number and refers to the conn-
cap-num capability number defined explicitly earlier in this cap-num capability number defined explicitly earlier in this
document, and hence must be between 1 and 2^31-1 (both included). document, and hence MUST be between 1 and 2^31-1 (both included).
The connection data capability allows the expression of only a single The connection data capability allows the expression of only a single
capability in each alternative, rather than a list of capabilities, capability in each alternative, rather than a list of capabilities,
since no more than a single connection data field is permitted per since no more than a single connection data field is permitted per
media block. Nevertheless, it is still allowed to express media block. Nevertheless, it is still allowed to express
alternative potential connection configurations separated by a alternative potential connection configurations separated by a
vertical bar ("|"). vertical bar ("|").
An endpoint includes a plus sign ("+") in this configuration An endpoint includes a plus sign ("+") in the configuration attribute
attribute to mandate support for this extension. An endpoint that to mandate support for this extension. An endpoint that receives
receives this attribute prefixed with a plus sign and does not this parameter prefixed with a plus sign and does not support this
support this extension MUST treat that potential configuration as not extension MUST treat that potential configuration as not valid.
valid.
The connection data parameter to the actual configuration attribute The connection data parameter to the actual configuration attribute
('a=acfg') is formulated as a <sel-extension-config> with ('a=acfg') is formulated as a <sel-extension-config> with
ext-cap-name = "c" ext-cap-name = "c"
hence hence
sel-extension-config =/ sel-connection-config sel-extension-config =/ sel-connection-config
sel-connection-config = "c=" conn-cap-num ; as defined above. sel-connection-config = "c=" conn-cap-num ; as defined above.
Figure 7: Syntax of the connection data parameter in 'acfg' Figure 10: Syntax of the connection data parameter in 'acfg'
attributes attributes
3.1.2.2. Option tag 3.1.2.2. Option tag
The SDP Capability Negotiation Framework [RFC5939] solution allows The SDP Capability Negotiation Framework [RFC5939] solution allows
for capability negotiation extensions to be defined. Associated with for capability negotiation extensions to be defined. Associated with
each such extension is an option tag that identifies the extension in each such extension is an option tag that identifies the extension in
question. Hereby, we define a new option tag of "ccap-v0" that question. Hereby, we define a new option tag of "ccap-v0" that
identifies support for the connection data capability. This option identifies support for the connection data capability. This option
tag SHOULD be added to other existing option tags present in the tag SHOULD be added to other existing option tags present in the
'csup' and 'creq' attributes in SDP, according to the procedures 'csup' and 'creq' attributes in SDP, according to the procedures
defined in the SDP Capability Negotiation Framework [RFC5939]. defined in the SDP Capability Negotiation Framework [RFC5939].
3.1.3. Title Capability 3.1.3. Title Capability
SDP [RFC4566] provides for the existence of an information field SDP [RFC4566] provides for the existence of an information field
expressed in the format of the 'i=' line, which can appear either at expressed in the format of the 'i=' line, which can appear at the SDP
the session level or at the media level. An 'i=' line that is session and/or media level. An 'i=' line that is present at the
present at the session level is known as the "session name", and its session level is known as the "session name", and its purpose is to
purpose is to convey a human-readable textual information about the convey human-readable textual information about the session.
session.
The 'i=' line in SDP can also appear at the media level, in which The 'i=' line in SDP can also appear at the media level, in which
case it is used to provide human-readable information about the media case it is used to provide human-readable information about the media
stream to which it is related, e.g., it may indicate the purpose of stream to which it is related, e.g., it may indicate the purpose of
the media stream. The 'i=' line is not to be confused with the label the media stream. The 'i=' line is not to be confused with the label
attribute ('a=label:', [RFC4574]) which provides a machine-readable attribute ('a=label:', [RFC4574]) which provides a machine-readable
tag. It is foreseen that applications declaring capabilities related tag. It is foreseen that applications declaring capabilities related
to different configurations of a media stream may need to provide to different configurations of a media stream may need to provide
different identifying information for each of those configurations. different identifying information for each of those configurations.
That is, a party might offer alternative media configurations for a That is, a party might offer alternative media configurations for a
stream, each of which represents a different presentation of the same stream, each of which represents a different presentation of the same
or similar information. For example, an audio stream might offer or similar information. For example, an audio stream might offer
English or Spanish configurations, or a video stream might offer a English or Spanish configurations, or a video stream might offer a
choice of video source such as speaker camera, group camera, or choice of video source such as speaker camera, group camera, or
document viewer. The title capability is needed to inform the document viewer. The title capability is needed to inform the
answering user in order to select the proper choice, and the label is answering user in order to select the proper choice, and the label is
used to inform the offering machine which choice the answerer has used to inform the offering machine which choice the answerer has
selected. Hence, there is value in defining a mechanism to provide selected. Hence, there is value in defining a mechanism to provide
titles of media streams as capabilities. titles of media streams as capabilities.
As defined in SDP [RFC4566], the session information field ("i=",
referred to as "title" in this document) is subject to the
"a=charset" attribute in order to support different character sets
and hence internationalization. The title capability attribute
itself ("a=icap") is however not subject to the "a=charset" attribute
as this would preclude the inclusion of alternative session/title
information each using different character sets. Instead, the
session/title value embedded in an "a=icap" attribute (title
capability) will be subject to the "a=charset" value used within a
configuration that includes that title capability. This provides for
consistent SDP operation while allowing for capabilities and
configurations with different session/title information values with
different character set encodings (with each such configuration
including an "a=charset" value with the relevant character set for
the session/title information in question).
According to SDP [RFC4566], the session information ('i=') line has According to SDP [RFC4566], the session information ('i=') line has
the following syntax: the following syntax:
"i=" text "i=" text
where "text" represents a human-readable text indicating the purpose where "text" represents a human-readable text indicating the purpose
of the session or media stream. of the session or media stream.
In this document we define a new capability attribute: the Title In this document we define a new capability attribute: the Title
capability 'icap'. This attribute lists session or media titles as capability 'icap'. This attribute lists session or media titles as
capabilities, according to the following definition: capabilities, according to the following definition:
"a=icap:" title-cap-num 1*WSP text "a=icap:" title-cap-num 1*WSP text
where <title-cap-num> is a unique integer between 1 and 2^31-1 (both where <title-cap-num> is a unique integer within all the connection
included) user to number the unique ordinal identifier of the capabilities in the entire SDP, which is used to identify the
particular title capability and <text> is a human-readable text that particular title capability, and can take a value between 1 and
2^31-1 (both included). <text> is a human-readable text that
indicates the purpose of the session or media stream it is supposed indicates the purpose of the session or media stream it is supposed
to characterize. to characterize.
As an example, one might use: As an example, one might use:
a=icap:1 Document Camera a=icap:1 Document Camera
to define a title capability number 1 to identify a particular source to define a title capability number 1 to identify a particular source
of a media stream. of a media stream.
The title capability attribute satisfies the general attribute The title capability attribute satisfies the general attribute
production rules in SDP [RFC4566] according to the following production rules in SDP [RFC4566] according to the following
Augmented Backus-Naur Form (ABNF) [RFC5234] syntax: Augmented Backus-Naur Form (ABNF) [RFC5234] syntax:
att-field =/ "icap" att-field =/ "icap"
att-value =/ title-cap-num 1*WSP text att-value =/ title-cap-num 1*WSP text
; text defined in RFC 4566 ; text defined in RFC 4566
title-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234 title-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234
Figure 8: Syntax of the icap attribute Figure 11: Syntax of the icap attribute
3.1.3.1. Configuration Parameters 3.1.3.1. Configuration Parameters
The SDP Capability Negotiation Framework [RFC5939] provides for the The SDP Capability Negotiation Framework [RFC5939] provides for the
existence of the 'pcfg' and 'acfg' attributes. The concept is existence of the 'pcfg' and 'acfg' attributes. The concept is
extended by the SDP media capabilities negotiation extended by the SDP media capabilities negotiation
[I-D.ietf-mmusic-sdp-media-capabilities] with an 'lcfg' attribute [I-D.ietf-mmusic-sdp-media-capabilities] with an 'lcfg' attribute
that conveys latent configurations. that conveys latent configurations.
In this document, we define an <title-config-list> parameter to be In this document, we define a <title-config-list> parameter to be
used to convey title capabilities in a potential or latent used to convey title capabilities in a potential or latent
configuration. This parameter is defined as an <extension-config- configuration. This parameter is defined as an <extension-config-
list> with the following associations: list> with the following associations:
ext-cap-name = "i" ext-cap-name = "i"
ext-cap-list = title-cap-list ext-cap-list = title-cap-list
This leads to the following definition for the title capability This leads to the following definition for the title capability
parameter: parameter:
extension-config-list =/ title-config-list extension-config-list =/ title-config-list
title-config-list = ["+"] "i=" title-cap-list title-config-list = ["+"] "i=" title-cap-list
title-cap-list = title-cap-num *(BAR title-cap-num) title-cap-list = title-cap-num *(BAR title-cap-num)
; BAR defined in RFC 5939 ; BAR defined in RFC 5939
title-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234 title-cap-num = 1*10(DIGIT) ; DIGIT defined in RFC 5234
Figure 9: Syntax of the title capability parameter in 'lcfg' and Figure 12: Syntax of the title capability parameter in 'lcfg' and
'pcfg' attributes 'pcfg' attributes
Each potential capability configuration contains a single title Each potential capability configuration contains a single title
capability attribute number where 'title-cap-num' is the title capability attribute number where 'title-cap-num' is the title
capability number defined explicitly earlier in this document, and capability number defined explicitly earlier in this document, and
hence must be between 1 and 2^31-1 (both included). The title hence must be between 1 and 2^31-1 (both included). The title
capability allows the expression of only a single capability in each capability allows the expression of only a single capability in each
alternative, since no more than a single title field is permitted per alternative, since no more than a single title field is permitted per
block. Nevertheless, it is still allowed to express alternative block. Nevertheless, it is still allowed to express alternative
potential title configurations separated by a vertical bar ("|"). potential title configurations separated by a vertical bar ("|").
An endpoint includes a plus sign ("+") in this configuration An endpoint includes a plus sign ("+") in the configuration attribute
attribute to mandate support for this extension. An endpoint that to mandate support for this extension. An endpoint that receives
receives this attribute prefixed with a plus sign and does not this parameter prefixed with a plus sign and does not support this
support this extension MUST treat that potential configuration as not extension MUST treat that potential configuration as not valid.
valid.
The title parameter to the actual configuration attribute ('a=acfg') The title parameter to the actual configuration attribute ('a=acfg')
is formulated as a <sel-extension-config> with is formulated as a <sel-extension-config> with
ext-cap-name = "i" ext-cap-name = "i"
hence hence
sel-extension-config =/ sel-title-config sel-extension-config =/ sel-title-config
sel-title-config = "i=" title-cap-num ; as defined above. sel-title-config = "i=" title-cap-num ; as defined above.
Figure 10: Syntax of the title parameter in 'acfg' attributes Figure 13: Syntax of the title parameter in 'acfg' attributes
3.1.3.2. Option Tag 3.1.3.2. Option Tag
At present, it is difficult to envision a scenario in which the At present, it is difficult to envision a scenario in which the
'icap' attribute must be supported or the offer must be rejected. In 'icap' attribute must be supported or the offer must be rejected. In
most cases, if the icap attribute or its contents were to be ignored, most cases, if the icap attribute or its contents were to be ignored,
an offered configuration could still be chosen based on other an offered configuration could still be chosen based on other
criteria such as configuration numbering. However, one might imagine criteria such as configuration numbering. However, one might imagine
an SDP offer that contained English and Spanish potential an SDP offer that contained English and Spanish potential
configurations for an audio stream. The session might be configurations for an audio stream. The session might be
skipping to change at page 14, line 37 skipping to change at page 15, line 22
define a new option tag of "icap-v0" that identifies support for the define a new option tag of "icap-v0" that identifies support for the
title capability. This option tag SHOULD be added to other existing title capability. This option tag SHOULD be added to other existing
option tags present in the 'csup' and/or 'creq' attributes in SDP, option tags present in the 'csup' and/or 'creq' attributes in SDP,
according to the procedures defined in the SDP Capability Negotiation according to the procedures defined in the SDP Capability Negotiation
Framework [RFC5939]. The discussion above suggests that "icap-v0" Framework [RFC5939]. The discussion above suggests that "icap-v0"
will typically appear in a 'csup' attribute, but rarely in a 'creq' will typically appear in a 'csup' attribute, but rarely in a 'creq'
attribute. attribute.
3.2. Session Level versus Media Level 3.2. Session Level versus Media Level
The 'bcap', 'ccap' and 'icap' attributes can appear at the session The 'bcap', 'ccap' and 'icap' attributes can appear at the SDP
level and/or at the media level. Endpoints MUST interpret session and/or media level. Endpoints MUST interpret capabilities
capabilities declared at session level as part of the session level declared at session level as part of the session level in the
in the resulting SDP for that particular configuration. Endpoints resulting SDP for that particular configuration. Endpoints MUST
MUST interpret capabilities declared at media level as part of the interpret capabilities declared at media description as part of the
media level in the resulting SDP for that particular configuration. media level in the resulting SDP for that particular configuration.
If a 'bcap' capability for the same bwtype is declared at both If a 'bcap' capability for the same bwtype is declared at both
session and media level, the media level attribute overrides the session and media level, the media level attribute overrides the
value of the session level attribute. value of the session level attribute.
To avoid confusion, the <type-attr-num> for each 'a=bcap', 'a=ccap', To avoid confusion, the <type-attr-num> for each 'a=bcap', 'a=ccap',
and 'a=icap' line must be unique across all capability attributes of and 'a=icap' line MUST be unique across all capability attributes of
the same type within the entire session description. the same type within the entire session description.
3.3. Offer/Answer model extensions 3.3. Offer/Answer model extensions
In this section, we define extensions to the offer/answer model In this section, we define extensions to the offer/answer model
defined in SDP Offer/Answer Model [RFC3264] and extended in the SDP defined in SDP Offer/Answer Model [RFC3264] and extended in the SDP
Capability Negotiation [RFC5939] to allow for bandwidth and title Capability Negotiation [RFC5939] to allow for bandwidth, connection,
capabilities to be used with the SDP Capability Negotiation and title capabilities to be used with the SDP Capability Negotiation
framework. framework.
3.3.1. Generating the Initial Offer 3.3.1. Generating the Initial Offer
When an endpoint generates an initial offer and wants to use the When an endpoint generates an initial offer and wants to use the
functionality described in the current document, it first defines functionality described in the current document, it first defines
appropriate values for the bandwidth, connection data, and/or title appropriate values for the bandwidth, connection data, and/or title
capability attributes according to rules defined in [RFC4566] for capability attributes according to the rules defined in [RFC4566] for
'b=', 'c=' and 'i=' lines. The endpoint then MUST include the 'b=', 'c=' and 'i=' lines. The endpoint then MUST include the
respective capability attributes and associated values in the SDP respective capability attributes and associated values in the SDP
offer. The preferred configurations for each media stream are offer. The preferred configurations for each media stream are
identified following the media line in a 'pcfg' attribute. Bandwidth identified following the media line in a 'pcfg' attribute. Bandwidth
and title capabilities may also be referenced in latent and title capabilities may also be referenced in latent
configurations in an 'lcfg' attribute, defined in [RFC5939]. configurations in an 'lcfg' attribute, defined in SDP Media
Capabilities [I-D.ietf-mmusic-sdp-media-capabilities].
The offer SHOULD include the level of capability negotiation The offer SHOULD include the level of capability negotiation
extensions needed to support this functionality in a 'creq' extensions needed to support this functionality in a 'creq'
attribute. attribute.
3.3.2. Generating the Answer 3.3.2. Generating the Answer
When the answering party receives the offer, and if it supports the When the answering party receives the offer, and if it supports the
required capability negotiation extensions, it SHOULD select the most required capability negotiation extensions, it SHOULD select the most
preferred configuration it can support for each media stream, and preferred configuration it can support for each media stream, and
build the answer accordingly, as defined in Section 3.6.2 of the SDP build the answer accordingly, as defined in Section 3.6.2 of the SDP
Capability Negotiation [RFC5939]. Capability Negotiation [RFC5939].
3.3.3. Offerer Processing of the Answer 3.3.3. Offerer Processing of the Answer
When the offerer receives the answer, it MUST process the media lines When the offerer receives the answer, it MUST process the media lines
according to normal SDP processing rules to identify the media according to normal SDP processing rules to identify the media
stream(s) accepted by the answer, if any. The 'acfg' attribute, if stream(s) accepted by the answer, if any, as defined in Section 3.6.3
present, may be used to verify the proposed configuration used to of the SDP Capability Negotiation [RFC5939]. The 'acfg' attribute,
if present, MUST be used to verify the proposed configuration used to
form the answer, and to infer the lack of acceptability of higher- form the answer, and to infer the lack of acceptability of higher-
preference configurations that were not chosen. preference configurations that were not chosen.
3.3.4. Modifying the Session 3.3.4. Modifying the Session
If, at a later time, one of the parties wishes to modify the If, at a later time, one of the parties wishes to modify the
operating parameters of a session, e.g. by adding a new media stream, operating parameters of a session, e.g. by adding a new media stream,
or by changing the properties used on an existing stream, it may do or by changing the properties used on an existing stream, it may do
so via the mechanisms defined for SDP offer/answer [RFC3264]. so via the mechanisms defined for SDP offer/answer [RFC3264] and in
accordance with the procedures defined in Section 3.6.4 of the SDP
Capability Negotiation [RFC5939].
4. Field Replacement Rules 4. Field Replacement Rules
To simplify the construction of SDP records, given the need to To simplify the construction of SDP records, given the need to
include fields within the media description in question for endpoints include fields within the media description in question for endpoints
that do not support capabilities negotiation, we define some simple that do not support capabilities negotiation, we define some simple
field-replacement rules for those fields invoked by potential or field-replacement rules for those fields invoked by potential or
latent configurations. In particular, any 'i=' or 'c=' line invoked latent configurations. In particular, any 'i=' or 'c=' line invoked
by a configuration MUST replace the corresponding line, if present by a configuration MUST replace the corresponding line, if present
within the media description in question. Any 'b=' line invoked by a within the media description in question. Any 'b=' line invoked by a
configuration MUST replace any 'b=' of the same bandwidth type at the configuration MUST replace any 'b=' of the same bandwidth type at the
media level. media level, but not at the session level.
5. IANA Considerations 5. Security Considerations
5.1. New SDP Attributes This document provides an extension on top of RFC 4566 [RFC4566], RFC
3264 [RFC3264], SDP Capability Negotiation Framework [RFC5939], and
SDP media capabilities negotiation
[I-D.ietf-mmusic-sdp-media-capabilities]. As such, the security
considerations of those documents apply.
The bandwidth capability attribute may be used for reserving
resources at endpoints and intermediaries which inspect the SDP.
Modification of the bandwidth value by an attacker can lead to the
network being underutilized (too high bandwidth value) or congested
(too low bandwidth value). In case it is essential to protect the
bandwidth value, one of the security mechanisms proposed in [RFC5939]
SHOULD be used.
The 'i=' line and thus the value carried in the title capability
attribute is intended for human-readable description only. It should
not be parsed programmatically.
6. IANA Considerations
6.1. New SDP Attributes
IANA is hereby requested to register new attributes in the "att-field IANA is hereby requested to register new attributes in the "att-field
(both session and media level)" of the "Session Description Protocol (both session and media level)" of the "Session Description Protocol
(SDP) Parameteres" registry, according to the following registration (SDP) Parameters" registry, according to the following registration
form: form:
Attribute name: bcap Attribute name: bcap
Long form name: Bandwidth Capability Long form name: Bandwidth Capability
Type of attribute: Both media and session level Type of attribute: Both media and session level
Subject to charset: No Subject to charset: No
Purpose: Negotiate session or media-level bandwidths Purpose: Negotiate session or media-level bandwidths
Appropriate values: See RFC XXXX Appropriate values: See RFC XXXX Section 3.1.1
[Note to the RFC Editor: Please replace the above RFC XXXX [Note to the RFC Editor: Please replace the above RFC XXXX
with the RFC number of this specification. with the RFC number of this specification.
Contact name: Miguel A. Garcia, Contact name: Miguel A. Garcia,
Miguel.A.Garcia@ericsson.com Miguel.A.Garcia@ericsson.com
Attribute name: ccap Attribute name: ccap
Long form name: Connection Data Capability Long form name: Connection Data Capability
Type of attribute: Both media and session level Type of attribute: Both media and session level
Subject to charset: No Subject to charset: No
Purpose: Negotiate media-level connection data Purpose: Negotiate media-level connection data
Appropriate values: See RFC XXXX Appropriate values: See RFC XXXX Section 3.1.2
[Note to the RFC Editor: Please replace the above RFC XXXX [Note to the RFC Editor: Please replace the above RFC XXXX
with the RFC number of this specification. with the RFC number of this specification.
Contact name: Miguel A. Garcia, Contact name: Miguel A. Garcia,
Miguel.A.Garcia@ericsson.com Miguel.A.Garcia@ericsson.com
Attribute name: icap Attribute name: icap
Long form name: Title Capability Long form name: Title Capability
Type of attribute: Both media and session level Type of attribute: Both media and session level
Subject to charset: Yes Subject to charset: Yes
Purpose: Negotiate human-readable information Purpose: Negotiate human-readable information
describing the session or media describing the session or media
Appropriate values: See RFC XXXX Appropriate values: See RFC XXXX Section 3.1.3
[Note to the RFC Editor: Please replace the above RFC XXXX [Note to the RFC Editor: Please replace the above RFC XXXX
with the RFC number of this specification. with the RFC number of this specification.
Contact name: Miguel A. Garcia, Contact name: Miguel A. Garcia,
Miguel.A.Garcia@ericsson.com Miguel.A.Garcia@ericsson.com
5.2. New Option Tags 6.2. New Option Tags
IANA is hereby requested to add the new option tags "bcap-v0", IANA is hereby requested to add the new option tags "bcap-v0",
"ccap-v0", and "icap-v0", defined herein, to the "SDP Capability "ccap-v0", and "icap-v0", defined herein, to the "SDP Capability
Negotiation Option Tag subregistry" of the "Session Description Negotiation Option Tag subregistry" of the "Session Description
Protocol (SDP) Parameters" registry. Protocol (SDP) Parameters" registry.
5.3. New SDP Capability Negotiation Configuration Parameters 6.3. New SDP Capability Negotiation Configuration Parameters
IANA is hereby requested to add the new parameter identifiers "b" for IANA is hereby requested to add the new parameter identifiers "b" for
"bandwidth", "c" for "connection data", and "i" for "title" to the "bandwidth", "c" for "connection data", and "i" for "title" to the
"SDP Capability Negotiation Potential Configuration Parameters" "SDP Capability Negotiation Configuration Parameters" subregistry of
subregistry of the "Session Description Protocol (SDP) Parameters" the "Session Description Protocol (SDP) Parameters" registry. These
registry. These parameters are permitted in 'lcfg', 'acfg', and parameters are permitted in 'lcfg', 'acfg', and 'pcfg' attributes.
'pcfg' attributes.
6. Security Considerations
This document provides an extension on top of RFC 4566 [RFC4566], RFC
3264 [RFC3264], SDP Capability Negotiation Framework [RFC5939], and
SDP media capabilities negotiation
[I-D.ietf-mmusic-sdp-media-capabilities]. As such, the security
considerations of those documents apply.
The bandwidth capability attribute may be used for reserving
resources at endpoints and intermediaries which inspect the SDP.
Modification of the bandwidth value by an attacker can lead to the
network being underutilized (too high bandwidth value) or congested
(too low bandwidth value). In case it is essential to protect the
bandwidth value, one of the security mechanisms proposed in [RFC5939]
should be used.
The 'i=' line and thus the value carried in the title capability
attribute is intended for human-readable description only. It should
not be parsed programmatically.
7. Acknowledgments 7. Acknowledgments
Thanks to Christer Holmberg, Alf Heidermark, and Ingemar Johansson Thanks to Christer Holmberg, Alf Heidermark, and Ingemar Johansson
for arguing for the existence of this document and early reviewing for arguing for the existence of this document and early reviewing
it. Thanks to Flemming Andreasen, Andrew Allen, and Jonathan Lennox it. Thanks to Flemming Andreasen, Andrew Allen, and Jonathan Lennox
for a detailed review and many improvement suggestions. for a detailed review and many improvement suggestions.
8. References 8. References
skipping to change at page 18, line 45 skipping to change at page 19, line 38
[RFC5939] Andreasen, F., "Session Description Protocol (SDP) [RFC5939] Andreasen, F., "Session Description Protocol (SDP)
Capability Negotiation", RFC 5939, September 2010. Capability Negotiation", RFC 5939, September 2010.
8.2. Informative References 8.2. Informative References
[I-D.ietf-mmusic-sdp-cs] [I-D.ietf-mmusic-sdp-cs]
Garcia, M. and S. Veikkolainen, "Session Description Garcia, M. and S. Veikkolainen, "Session Description
Protocol (SDP) Extension For Setting Up Audio and Video Protocol (SDP) Extension For Setting Up Audio and Video
Media Streams Over Circuit-Switched Bearers In The Public Media Streams Over Circuit-Switched Bearers In The Public
Switched Telephone Network (PSTN)", Switched Telephone Network (PSTN)",
draft-ietf-mmusic-sdp-cs-12 (work in progress), draft-ietf-mmusic-sdp-cs-14 (work in progress),
October 2012. November 2012.
[RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the [RFC3108] Kumar, R. and M. Mostafa, "Conventions for the use of the
Session Description Protocol (SDP) for ATM Bearer Session Description Protocol (SDP) for ATM Bearer
Connections", RFC 3108, May 2001. Connections", RFC 3108, May 2001.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003. Applications", STD 64, RFC 3550, July 2003.
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
 End of changes. 63 change blocks. 
154 lines changed or deleted 212 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/