draft-ietf-mmusic-rfc4566bis-13.txt | draft-ietf-mmusic-rfc4566bis-14.txt | |||
---|---|---|---|---|
Network Working Group M. Handley | Network Working Group M. Handley | |||
Internet-Draft UCL | Internet-Draft UCL | |||
Obsoletes: 4566 (if approved) V. Jacobson | Obsoletes: 4566 (if approved) V. Jacobson | |||
Intended status: Standards Track PARC | Intended status: Standards Track PARC | |||
Expires: July 17, 2015 C.S. Perkins | Expires: July 25, 2015 C.S. Perkins | |||
University of Glasgow | University of Glasgow | |||
A. Begen | A. Begen | |||
Cisco | Cisco | |||
January 13, 2015 | January 21, 2015 | |||
SDP: Session Description Protocol | SDP: Session Description Protocol | |||
draft-ietf-mmusic-rfc4566bis-13 | draft-ietf-mmusic-rfc4566bis-14 | |||
Abstract | Abstract | |||
This memo defines the Session Description Protocol (SDP). SDP is | This memo defines the Session Description Protocol (SDP). SDP is | |||
intended for describing multimedia sessions for the purposes of | intended for describing multimedia sessions for the purposes of | |||
session announcement, session invitation, and other forms of | session announcement, session invitation, and other forms of | |||
multimedia session initiation. This document obsoletes RFC 4566. | multimedia session initiation. This document obsoletes RFC 4566. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 38 | skipping to change at page 1, line 38 | |||
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 July 17, 2015. | This Internet-Draft will expire on July 25, 2015. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 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 | |||
skipping to change at page 3, line 13 | skipping to change at page 3, line 13 | |||
5.14. Media Descriptions ("m=") . . . . . . . . . . . . . . . . 23 | 5.14. Media Descriptions ("m=") . . . . . . . . . . . . . . . . 23 | |||
6. SDP Attributes . . . . . . . . . . . . . . . . . . . . . . . 26 | 6. SDP Attributes . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
6.1. cat (category) . . . . . . . . . . . . . . . . . . . . . 26 | 6.1. cat (category) . . . . . . . . . . . . . . . . . . . . . 26 | |||
6.2. keywds (keywords) . . . . . . . . . . . . . . . . . . . . 26 | 6.2. keywds (keywords) . . . . . . . . . . . . . . . . . . . . 26 | |||
6.3. tool . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | 6.3. tool . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
6.4. ptime (packet time) . . . . . . . . . . . . . . . . . . . 28 | 6.4. ptime (packet time) . . . . . . . . . . . . . . . . . . . 28 | |||
6.5. maxptime (maximum packet time) . . . . . . . . . . . . . 28 | 6.5. maxptime (maximum packet time) . . . . . . . . . . . . . 28 | |||
6.6. rtpmap . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 6.6. rtpmap . . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
6.7. Media Direction Attributes . . . . . . . . . . . . . . . 31 | 6.7. Media Direction Attributes . . . . . . . . . . . . . . . 31 | |||
6.7.1. recvonly (receive-only) . . . . . . . . . . . . . . . 32 | 6.7.1. recvonly (receive-only) . . . . . . . . . . . . . . . 31 | |||
6.7.2. sendrecv (send-receive) . . . . . . . . . . . . . . . 33 | 6.7.2. sendrecv (send-receive) . . . . . . . . . . . . . . . 32 | |||
6.7.3. sendonly (send-only) . . . . . . . . . . . . . . . . 33 | 6.7.3. sendonly (send-only) . . . . . . . . . . . . . . . . 32 | |||
6.7.4. inactive . . . . . . . . . . . . . . . . . . . . . . 33 | 6.7.4. inactive . . . . . . . . . . . . . . . . . . . . . . 33 | |||
6.8. orient (orientation) . . . . . . . . . . . . . . . . . . 34 | 6.8. orient (orientation) . . . . . . . . . . . . . . . . . . 33 | |||
6.9. type (conference type) . . . . . . . . . . . . . . . . . 34 | 6.9. type (conference type) . . . . . . . . . . . . . . . . . 34 | |||
6.10. charset (character set) . . . . . . . . . . . . . . . . . 35 | 6.10. charset (character set) . . . . . . . . . . . . . . . . . 35 | |||
6.11. sdplang (SDP language) . . . . . . . . . . . . . . . . . 36 | 6.11. sdplang (SDP language) . . . . . . . . . . . . . . . . . 36 | |||
6.12. lang (language) . . . . . . . . . . . . . . . . . . . . . 37 | 6.12. lang (language) . . . . . . . . . . . . . . . . . . . . . 37 | |||
6.13. framerate (frame rate) . . . . . . . . . . . . . . . . . 38 | 6.13. framerate (frame rate) . . . . . . . . . . . . . . . . . 37 | |||
6.14. quality . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 6.14. quality . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
6.15. fmtp (format parameters) . . . . . . . . . . . . . . . . 39 | 6.15. fmtp (format parameters) . . . . . . . . . . . . . . . . 39 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 40 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 | |||
8.1. The "application/sdp" Media Type . . . . . . . . . . . . 42 | 8.1. The "application/sdp" Media Type . . . . . . . . . . . . 42 | |||
8.2. Registration of Parameters . . . . . . . . . . . . . . . 43 | 8.2. Registration of Parameters . . . . . . . . . . . . . . . 43 | |||
8.2.1. Media Types ("media") . . . . . . . . . . . . . . . . 43 | 8.2.1. Media Types ("media") . . . . . . . . . . . . . . . . 43 | |||
8.2.2. Transport Protocols ("proto") . . . . . . . . . . . . 44 | 8.2.2. Transport Protocols ("proto") . . . . . . . . . . . . 44 | |||
8.2.3. Media Formats ("fmt") . . . . . . . . . . . . . . . . 44 | 8.2.3. Media Formats ("fmt") . . . . . . . . . . . . . . . . 44 | |||
8.2.4. Attribute Names ("att-field") . . . . . . . . . . . . 45 | 8.2.4. Attribute Names ("att-field") . . . . . . . . . . . . 45 | |||
8.2.5. Bandwidth Specifiers ("bwtype") . . . . . . . . . . . 46 | 8.2.5. Bandwidth Specifiers ("bwtype") . . . . . . . . . . . 46 | |||
8.2.6. Network Types ("nettype") . . . . . . . . . . . . . . 47 | 8.2.6. Network Types ("nettype") . . . . . . . . . . . . . . 46 | |||
8.2.7. Address Types ("addrtype") . . . . . . . . . . . . . 47 | 8.2.7. Address Types ("addrtype") . . . . . . . . . . . . . 47 | |||
8.2.8. Registration Procedure . . . . . . . . . . . . . . . 47 | 8.2.8. Registration Procedure . . . . . . . . . . . . . . . 47 | |||
8.3. Encryption Key Access Methods . . . . . . . . . . . . . . 48 | 8.3. Encryption Key Access Methods . . . . . . . . . . . . . . 48 | |||
9. SDP Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 48 | 9. SDP Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 48 | |||
10. Summary of Changes from RFC 4566 . . . . . . . . . . . . . . 53 | 10. Summary of Changes from RFC 4566 . . . . . . . . . . . . . . 53 | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 54 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 53 | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 54 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 54 | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 54 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 54 | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 55 | 12.2. Informative References . . . . . . . . . . . . . . . . . 55 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 57 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 57 | |||
1. Introduction | 1. Introduction | |||
When initiating multimedia teleconferences, voice-over-IP calls, | When initiating multimedia teleconferences, voice-over-IP calls, | |||
streaming video, or other sessions, there is a requirement to convey | streaming video, or other sessions, there is a requirement to convey | |||
media details, transport addresses, and other session description | media details, transport addresses, and other session description | |||
skipping to change at page 26, line 38 | skipping to change at page 26, line 38 | |||
Value: cat-value | Value: cat-value | |||
Usage Level: session | Usage Level: session | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
cat-value = category | cat-value = category | |||
category = none-ws-string | category = non-ws-string | |||
Example: | Example: | |||
a=cat:foo.bar | a=cat:foo.bar | |||
This attribute gives the dot-separated hierarchical category of the | This attribute gives the dot-separated hierarchical category of the | |||
session. This is to enable a receiver to filter unwanted sessions by | session. This is to enable a receiver to filter unwanted sessions by | |||
category. There is no central registry of categories. This | category. There is no central registry of categories. This | |||
attribute is obsoleted. | attribute is obsoleted. | |||
skipping to change at page 30, line 7 | skipping to change at page 29, line 31 | |||
Value: rtpmap-value | Value: rtpmap-value | |||
Usage Level: media | Usage Level: media | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
rtpmap-value = payload-type SP encoding-name | rtpmap-value = payload-type SP encoding-name | |||
"/" clock-rate [ "/" encoding-params ] | "/" clock-rate [ "/" encoding-params ] | |||
payload-type = integer | payload-type = zero-based-integer | |||
encoding-name = token | encoding-name = token | |||
; To be matched in a case-insensitive way! | ||||
; RFC4855 seems to be the primary definition for this. | ||||
; It refers both to RFC2045 and RFC4288 for the definition. | ||||
; The definition in RFC2045 is messy, | ||||
; but equivalent to SDP <token>. | ||||
; The definition in RFC4288 (<subtype-name>) is more | ||||
; restrictive and governs what can be registered. | ||||
; Since ultimately only registered names can be referenced, | ||||
; using <token> here seems safe and easy. | ||||
clock-rate = integer | clock-rate = integer | |||
; do we want to define a limited range for this? | ; do we want to define a limited range for this? | |||
encoding-params = channels | encoding-params = channels | |||
; 4566 is vague about what this can be. RFC4855 seems to be | ; 4566 is vague about what this can be. RFC4855 seems to be | |||
; the authoritative source, and only allows the | ; the authoritative source, and only allows the | |||
; value of the media subtype "channels" parameter - the | ; value of the media subtype "channels" parameter - the | |||
; number of audio channels. | ; number of audio channels. | |||
; Does anyone think this can be used for something else??? | ; Does anyone think this can be used for something else??? | |||
; (The implication that multiple parameters might be included | ; (The implication that multiple parameters might be included | |||
; seems a misdirection - additional parameters are | ; seems a misdirection - additional parameters are | |||
skipping to change at page 34, line 32 | skipping to change at page 34, line 6 | |||
Value: orient-value | Value: orient-value | |||
Usage Level: media | Usage Level: media | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
orient-value = portrait / landscape / seascape | orient-value = portrait / landscape / seascape | |||
portrait = %x70.6f.72.74.72.61.69.74 ; "portrait" | portrait = %s"portrait" | |||
landscape = %x6c.61.6e.64.73.63.61.70.65 ; "landscape" | landscape = %s"landscape" | |||
seascape = %x73.65.61.73.63.61.70.65 ; "seascape" | seascape = %s"seascape" | |||
; Note: this assumes the intent was to be case-sensitive | ; NOTE: These names are case-sensitive. | |||
; Does anything think this should be matched in a | ||||
; case-insensitive way??? | ||||
Example: | Example: | |||
a=orient:portrait | a=orient:portrait | |||
Normally this is only used for a whiteboard or presentation tool. It | Normally this is only used for a whiteboard or presentation tool. It | |||
specifies the orientation of a the workspace on the screen. | specifies the orientation of a the workspace on the screen. | |||
Permitted values are "portrait", "landscape", and "seascape" (upside- | Permitted values are "portrait", "landscape", and "seascape" (upside- | |||
down landscape). | down landscape). | |||
skipping to change at page 35, line 15 | skipping to change at page 34, line 33 | |||
Value: type-value | Value: type-value | |||
Usage Level: session | Usage Level: session | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
type-value = conference-type | type-value = conference-type | |||
conference-type = broadcast / meeting / moderated / test / H332 | conference-type = broadcast / meeting / moderated / test / | |||
broadcast = %x62.72.6f.61.64.63.61.73.74 ; "broadcast" | H332 | |||
meeting = %x6d.65.65.74.69.6e.67 ; "meeting" | broadcast = %s"broadcast" | |||
moderated = %x6d.6f.64.65.72.61.74.65.64 ; "moderated" | meeting = %s"meeting" | |||
test = %x74.65.73.74 ; "test" | moderated = %s"moderated" | |||
H332 = %x48.33.33.32 ; "H332" | test = %s"test" | |||
; NOTE: These names are case-sensitive. | H332 = %s"H332" | |||
; NOTE: These names are case-sensitive. | ||||
Example: | Example: | |||
a=type:moderated | a=type:moderated | |||
This specifies the type of the multimedia conference. Suggested | This specifies the type of the multimedia conference. Suggested | |||
values are "broadcast", "meeting", "moderated", "test", and "H332". | values are "broadcast", "meeting", "moderated", "test", and "H332". | |||
"recvonly" should be the default for "type:broadcast" sessions, | "recvonly" should be the default for "type:broadcast" sessions, | |||
"type:meeting" should imply "sendrecv", and "type:moderated" should | "type:meeting" should imply "sendrecv", and "type:moderated" should | |||
indicate the use of a floor control tool and that the media tools are | indicate the use of a floor control tool and that the media tools are | |||
skipping to change at page 36, line 4 | skipping to change at page 35, line 24 | |||
unless explicitly requested otherwise, receivers can safely avoid | unless explicitly requested otherwise, receivers can safely avoid | |||
displaying this session description to users. | displaying this session description to users. | |||
6.10. charset (character set) | 6.10. charset (character set) | |||
Name: charset | Name: charset | |||
Value: charset-value | Value: charset-value | |||
Usage Level: session | Usage Level: session | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
charset-value = mime-charset | charset-value = mime-charset (as defined in <xref | |||
mime-charset = 1*mime-charset-chars | target="I-D.iana-charset-reg-procedure"/>) | |||
mime-charset-chars = ALPHA / DIGIT / | ||||
"!" / "#" / "$" / "%" / "&" / | ||||
"'" / "+" / "-" / "^" / "_" / | ||||
"`" / "{" / "}" / "~" | ||||
This specifies the character set to be used to display the session | This specifies the character set to be used to display the session | |||
name and information data. By default, the ISO-10646 character set | name and information data. By default, the ISO-10646 character set | |||
in UTF-8 encoding is used. If a more compact representation is | in UTF-8 encoding is used. If a more compact representation is | |||
required, other character sets may be used. For example, the ISO | required, other character sets may be used. For example, the ISO | |||
8859-1 is specified with the following SDP attribute: | 8859-1 is specified with the following SDP attribute: | |||
a=charset:ISO-8859-1 | a=charset:ISO-8859-1 | |||
The charset specified MUST be one of those registered in the IANA | The charset specified MUST be one of those registered in the IANA | |||
skipping to change at page 37, line 5 | skipping to change at page 36, line 22 | |||
Name: sdplang | Name: sdplang | |||
Value: sdplang-value | Value: sdplang-value | |||
Usage Level: session, media | Usage Level: session, media | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
sdplang-value = Language-Tag (as defined in <xref | sdplang-value = Language-Tag | |||
target="RFC5646"/>) | ; Language-Tag defined in RFC5646 | |||
Example: | Example: | |||
a=sdplang:fr | a=sdplang:fr | |||
This can be a session-level attribute or a media-level attribute. | This can be a session-level attribute or a media-level attribute. | |||
Multiple sdplang attributes can be provided either at session or | Multiple sdplang attributes can be provided either at session or | |||
media level if the session description or media use multiple | media level if the session description or media use multiple | |||
languages. | languages. | |||
skipping to change at page 37, line 48 | skipping to change at page 37, line 24 | |||
Name: lang | Name: lang | |||
Value: lang-value | Value: lang-value | |||
Usage Level: session, media | Usage Level: session, media | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
lang-value = Language-Tag (as defined in <xref | lang-value = Language-Tag | |||
target="RFC5646"/>) | ; Language-Tag defined in RFC5646 | |||
Example: | Example: | |||
a=lang:de | a=lang:de | |||
Multiple lang attributes can be provided either at session or media | Multiple lang attributes can be provided either at session or media | |||
level if the session or media use multiple languages, in which case | level if the session or media use multiple languages, in which case | |||
the order of the attributes indicates the order of importance of the | the order of the attributes indicates the order of importance of the | |||
various languages in the session or media, from most important to | various languages in the session or media, from most important to | |||
least important. | least important. | |||
skipping to change at page 43, line 26 | skipping to change at page 43, line 18 | |||
IETF MMUSIC working group <mmusic@ietf.org> | IETF MMUSIC working group <mmusic@ietf.org> | |||
Intended usage: COMMON | Intended usage: COMMON | |||
Author/Change controller: | Author/Change controller: | |||
Authors of RFC XXXX | Authors of RFC XXXX | |||
IETF MMUSIC working group delegated from the IESG | IETF MMUSIC working group delegated from the IESG | |||
8.2. Registration of Parameters | 8.2. Registration of Parameters | |||
There are seven field names that may be registered with IANA. Using | There are seven field names that are registered with IANA. Using the | |||
the terminology in the SDP specification Backus-Naur Form (BNF), they | terminology in the SDP specification Backus-Naur Form (BNF), they are | |||
are "media", "proto", "fmt", "att-field", "bwtype", "nettype", and | "media", "proto", "fmt", "att-field", "bwtype", "nettype", and | |||
"addrtype". | "addrtype". | |||
The contact address for all parameters registered below is: | The contact address for all parameters registered below is: | |||
IETF MMUSIC working group <mmusic@ietf.org> | IETF MMUSIC working group <mmusic@ietf.org> | |||
8.2.1. Media Types ("media") | 8.2.1. Media Types ("media") | |||
The set of media types is intended to be small and SHOULD NOT be | The set of media types is intended to be small and SHOULD NOT be | |||
extended except under rare circumstances. The same rules should | extended except under rare circumstances. The same rules should | |||
skipping to change at page 45, line 35 | skipping to change at page 45, line 35 | |||
New attribute registrations are accepted according to the | New attribute registrations are accepted according to the | |||
"Specification Required" policy of [RFC5226], provided that the | "Specification Required" policy of [RFC5226], provided that the | |||
specification includes the following information: | specification includes the following information: | |||
o Contact name, email address, and telephone number. | o Contact name, email address, and telephone number. | |||
o Attribute name (as it will appear in SDP). This MUST conform to | o Attribute name (as it will appear in SDP). This MUST conform to | |||
the definition of <att-field>. | the definition of <att-field>. | |||
o Usage level of the attribute. (One or more of: session, media). | o Attribute value: The name of an ABNF syntax rule defining the | |||
syntax of the value. Absence of a rule name indicates that the | ||||
attribute takes no value. Enclosing the rule name in "[" and "]" | ||||
indicates that a value is optional. | ||||
o Usage level of the attribute. (One or more of: session, media, | ||||
source). | ||||
o Whether the attribute value is subject to the charset attribute. | o Whether the attribute value is subject to the charset attribute. | |||
o An ABNF definition of the attribute value rule. The rule MUST NOT | o An ABNF definition of the attribute value rule. The rule MUST NOT | |||
match anything that is not also matched by <att-value>. The rule | match anything that is not also matched by <att-value>. The rule | |||
name SHOULD [MUST?] NOT be defined as an Incremental Alternative | name SHOULD [MUST?] NOT be defined as an Incremental Alternative | |||
to <att-value>. | to <att-value>. | |||
o An explanation of the purpose and usage of the attribute. | o An explanation of the purpose and usage of the attribute. | |||
o A specification of appropriate attribute values for this attribute | o A specification of appropriate attribute values for this attribute | |||
(If not included in syntax). | (If not included in syntax). | |||
o Offer/Answer procedures as explained in [RFC3264]. | ||||
o Indication of which "category" | ||||
[I-D.ietf-mmusic-sdp-mux-attributes] an attribute is associated | ||||
with. | ||||
The above is the minimum that IANA will accept. Attributes that are | The above is the minimum that IANA will accept. Attributes that are | |||
expected to see widespread use and interoperability SHOULD be | expected to see widespread use and interoperability SHOULD be | |||
documented with a standards-track RFC that specifies the attribute | documented with a standards-track RFC that specifies the attribute | |||
more precisely. | more precisely. | |||
Submitters of registrations should ensure that the specification is | Submitters of registrations should ensure that the specification is | |||
in the spirit of SDP attributes, most notably that the attribute is | in the spirit of SDP attributes, most notably that the attribute is | |||
platform independent in the sense that it makes no implicit | platform independent in the sense that it makes no implicit | |||
assumptions about operating systems and does not name specific pieces | assumptions about operating systems and does not name specific pieces | |||
of software in a manner that might inhibit interoperability. | of software in a manner that might inhibit interoperability. | |||
Submitters of registrations should also carefully choose the | Submitters of registrations should also carefully choose the | |||
attribute usage level. They should not choose only session-level | attribute usage level. They should not choose only session-level | |||
when the attribute can have different values when media is | when the attribute can have different values when media is | |||
disaggregated, i.e., when each m= section has its own IP address on a | disaggregated, i.e., when each m= section has its own IP address on a | |||
different endpoint. In that case the attribute type chosen should be | different endpoint. In that case the attribute type chosen should be | |||
"session, media". | "session, media". | |||
IANA has registered the following initial set of attribute names | IANA has registered the initial set of attribute names ("att-field" | |||
("att-field" values), with definitions as in Section 6 of this memo | values), with definitions as in Section 6 of this memo (these | |||
(these definitions replace those in [RFC4566]): | definitions replace those in [RFC4566]). | |||
[ED: Do we need the following list? I propose that it be dropped | ||||
in favor of simply referencing Section 6.] | ||||
Name | Usage Level | Dependent on charset? | ||||
----------+-------------------------+---------------------- | ||||
cat | Session | No | ||||
keywds | Session | Yes | ||||
tool | Session | No | ||||
ptime | Media | No | ||||
maxptime | Media | No | ||||
rtpmap | Media | No | ||||
recvonly | Session, Media | No | ||||
sendrecv | Session, Media | No | ||||
sendonly | Session, Media | No | ||||
inactive | Session, Media | No | ||||
orient | Media | No | ||||
type | Session | No | ||||
charset | Session | No | ||||
sdplang | Session, Media | No | ||||
lang | Session, Media | No | ||||
framerate | Media | No | ||||
quality | Media | No | ||||
fmtp | Media | No | ||||
8.2.5. Bandwidth Specifiers ("bwtype") | 8.2.5. Bandwidth Specifiers ("bwtype") | |||
A proliferation of bandwidth specifiers is strongly discouraged. | A proliferation of bandwidth specifiers is strongly discouraged. | |||
New bandwidth specifiers ("bwtype" fields) MUST be registered with | New bandwidth specifiers ("bwtype" fields) MUST be registered with | |||
IANA. The submission MUST reference a standards-track RFC specifying | IANA. The submission MUST reference a standards-track RFC specifying | |||
the semantics of the bandwidth specifier precisely, and indicating | the semantics of the bandwidth specifier precisely, and indicating | |||
when it should be used, and why the existing registered bandwidth | when it should be used, and why the existing registered bandwidth | |||
specifiers do not suffice. | specifiers do not suffice. | |||
skipping to change at page 48, line 31 | skipping to change at page 48, line 19 | |||
8.3. Encryption Key Access Methods | 8.3. Encryption Key Access Methods | |||
The IANA previously maintained a table of SDP encryption key access | The IANA previously maintained a table of SDP encryption key access | |||
method ("enckey") names. This table is obsolete, since the "k=" line | method ("enckey") names. This table is obsolete, since the "k=" line | |||
is not extensible. New registrations MUST NOT be accepted. | is not extensible. New registrations MUST NOT be accepted. | |||
9. SDP Grammar | 9. SDP Grammar | |||
This section provides an Augmented BNF grammar for SDP. ABNF is | This section provides an Augmented BNF grammar for SDP. ABNF is | |||
defined in [RFC5234]. | defined in [RFC5234] and [RFC7405]. | |||
; SDP Syntax | ; SDP Syntax | |||
session-description = proto-version | session-description = proto-version | |||
origin-field | origin-field | |||
session-name-field | session-name-field | |||
information-field | information-field | |||
uri-field | uri-field | |||
email-fields | email-fields | |||
phone-fields | phone-fields | |||
connection-field | connection-field | |||
bandwidth-fields | bandwidth-fields | |||
time-fields | time-fields | |||
key-field | key-field | |||
attribute-fields | attribute-fields | |||
media-descriptions | media-descriptions | |||
proto-version = %x76 "=" 1*DIGIT CRLF | proto-version = %s"v" "=" 1*DIGIT CRLF | |||
;this memo describes version 0 | ;this memo describes version 0 | |||
origin-field = %x6f "=" username SP sess-id SP sess-version SP | ||||
nettype SP addrtype SP unicast-address CRLF | ||||
session-name-field = %x73 "=" text CRLF | origin-field = %s"o" "=" username SP sess-id SP sess-version SP | |||
nettype SP addrtype SP unicast-address CRLF | ||||
information-field = [%x69 "=" text CRLF] | session-name-field = %s"s" "=" text CRLF | |||
uri-field = [%x75 "=" uri CRLF] | information-field = [%s"i" "=" text CRLF] | |||
email-fields = *(%x65 "=" email-address CRLF) | uri-field = [%s"u" "=" uri CRLF] | |||
phone-fields = *(%x70 "=" phone-number CRLF) | email-fields = *(%s"e" "=" email-address CRLF) | |||
connection-field = [%x63 "=" nettype SP addrtype SP | phone-fields = *(%s"p" "=" phone-number CRLF) | |||
connection-address CRLF] | connection-field = [%s"c" "=" nettype SP addrtype SP | |||
;a connection field must be present | connection-address CRLF] | |||
;in every media description or at the | ;a connection field must be present | |||
;session-level | ;in every media description or at the | |||
;session-level | ||||
bandwidth-fields = *(%x62 "=" bwtype ":" bandwidth CRLF) | bandwidth-fields = *(%s"b" "=" bwtype ":" bandwidth CRLF) | |||
time-fields = 1*( %x74 "=" start-time SP stop-time | time-fields = 1*( %s"t" "=" start-time SP stop-time | |||
*(CRLF repeat-fields) CRLF) | *(CRLF repeat-fields) CRLF) | |||
[zone-adjustments CRLF] | [zone-adjustments CRLF] | |||
repeat-fields = %x72 "=" repeat-interval SP typed-time | repeat-fields = %s"r" "=" repeat-interval SP typed-time | |||
1*(SP typed-time) | 1*(SP typed-time) | |||
zone-adjustments = %x7a "=" time SP ["-"] typed-time | zone-adjustments = %s"z" "=" time SP ["-"] typed-time | |||
*(SP time SP ["-"] typed-time) | *(SP time SP ["-"] typed-time) | |||
key-field = [%x6b "=" key-type CRLF] | key-field = [%s"k" "=" key-type CRLF] | |||
attribute-fields = *(%x61 "=" attribute CRLF) | attribute-fields = *(%s"a" "=" attribute CRLF) | |||
media-descriptions = *( media-field | media-descriptions = *( media-field | |||
information-field | information-field | |||
*connection-field | *connection-field | |||
bandwidth-fields | bandwidth-fields | |||
key-field | key-field | |||
attribute-fields ) | attribute-fields ) | |||
media-field = %x6d "=" media SP port ["/" integer] | media-field = %s"m" "=" media SP port ["/" integer] | |||
SP proto 1*(SP fmt) CRLF | SP proto 1*(SP fmt) CRLF | |||
; sub-rules of 'o=' | ; sub-rules of 'o=' | |||
username = non-ws-string | username = non-ws-string | |||
;pretty wide definition, but doesn't | ;pretty wide definition, but doesn't | |||
;include space | ;include space | |||
sess-id = 1*DIGIT | sess-id = 1*DIGIT | |||
;should be unique for this username/host | ;should be unique for this username/host | |||
sess-version = 1*DIGIT | sess-version = 1*DIGIT | |||
skipping to change at page 51, line 10 | skipping to change at page 50, line 48 | |||
; of NTP time is an unbounded length field | ; of NTP time is an unbounded length field | |||
; containing at least 10 digits. Unlike the | ; containing at least 10 digits. Unlike the | |||
; 64-bit representation used elsewhere, time | ; 64-bit representation used elsewhere, time | |||
; in SDP does not wrap in the year 2036. | ; in SDP does not wrap in the year 2036. | |||
; sub-rules of 'r=' and 'z=' | ; sub-rules of 'r=' and 'z=' | |||
repeat-interval = POS-DIGIT *DIGIT [fixed-len-time-unit] | repeat-interval = POS-DIGIT *DIGIT [fixed-len-time-unit] | |||
typed-time = 1*DIGIT [fixed-len-time-unit] | typed-time = 1*DIGIT [fixed-len-time-unit] | |||
fixed-len-time-unit = %x64 / %x68 / %x6d / %x73 | fixed-len-time-unit = %s"d" / %s"h" / %s"m" / %s"s" | |||
; NOTE: These units are case-sensitive. | ||||
; sub-rules of 'k=' | ; sub-rules of 'k=' | |||
key-type = %x70 %x72 %x6f %x6d %x70 %x74 / ; "prompt" | key-type = %s"prompt" | |||
%x63 %x6c %x65 %x61 %x72 ":" text / ; "clear:" | %s"clear:" | |||
%x62 %x61 %x73 %x65 "64:" base64 / ; "base64:" | %s"base64:" | |||
%x75 %x72 %x69 ":" uri ; "uri:" | %s"uri:" | |||
; NOTE: These names are case-sensitive. | ||||
base64 = *base64-unit [base64-pad] | base64 = *base64-unit [base64-pad] | |||
base64-unit = 4base64-char | base64-unit = 4base64-char | |||
base64-pad = 2base64-char "==" / 3base64-char "=" | base64-pad = 2base64-char "==" / 3base64-char "=" | |||
base64-char = ALPHA / DIGIT / "+" / "/" | base64-char = ALPHA / DIGIT / "+" / "/" | |||
; sub-rules of 'a=' | ; sub-rules of 'a=' | |||
attribute = (att-field ":" att-value) / att-field | attribute = (att-field ":" att-value) / att-field | |||
att-field = token | att-field = token | |||
skipping to change at page 53, line 5 | skipping to change at page 52, line 45 | |||
;default is to interpret this as UTF8 text. | ;default is to interpret this as UTF8 text. | |||
;ISO 8859-1 requires "a=charset:ISO-8859-1" | ;ISO 8859-1 requires "a=charset:ISO-8859-1" | |||
;session-level attribute to be used | ;session-level attribute to be used | |||
byte-string = 1*(%x01-09/%x0B-0C/%x0E-FF) | byte-string = 1*(%x01-09/%x0B-0C/%x0E-FF) | |||
;any byte except NUL, CR, or LF | ;any byte except NUL, CR, or LF | |||
non-ws-string = 1*(VCHAR/%x80-FF) | non-ws-string = 1*(VCHAR/%x80-FF) | |||
;string of visible characters | ;string of visible characters | |||
token-char = %x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39 | token-char = ALPHA / DIGIT | |||
/ %x41-5A / %x5E-7E | / "!" / "#" / "$" / "%" / "&" / | |||
/ "'" ; (single quote) | ||||
/ "*" / "+" / "-" / "." / "^" / "_" | ||||
/ "`" ; (Grave accent) | ||||
/ "{" / "|" / "}" / "~" | ||||
zero-based-integer = "0" / integer | ||||
token = 1*(token-char) | token = 1*(token-char) | |||
email-safe = %x01-09/%x0B-0C/%x0E-27/%x2A-3B/%x3D/%x3F-FF | email-safe = %x01-09/%x0B-0C/%x0E-27/%x2A-3B/%x3D/%x3F-FF | |||
;any byte except NUL, CR, LF, or the quoting | ;any byte except NUL, CR, LF, or the quoting | |||
;characters ()<> | ;characters ()<> | |||
integer = POS-DIGIT *DIGIT | integer = POS-DIGIT *DIGIT | |||
; generic sub-rules: primitives | ; generic sub-rules: primitives | |||
alpha-numeric = ALPHA / DIGIT | alpha-numeric = ALPHA / DIGIT | |||
skipping to change at page 55, line 9 | skipping to change at page 55, line 9 | |||
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | |||
Description Protocol", RFC 4566, July 2006. | Description Protocol", RFC 4566, July 2006. | |||
[I-D.ietf-avtext-rtp-grouping-taxonomy] | [I-D.ietf-avtext-rtp-grouping-taxonomy] | |||
Lennox, J., Gross, K., Nandakumar, S., and G. Salgueiro, | Lennox, J., Gross, K., Nandakumar, S., and G. Salgueiro, | |||
"A Taxonomy of Grouping Semantics and Mechanisms for Real- | "A Taxonomy of Grouping Semantics and Mechanisms for Real- | |||
Time Transport Protocol (RTP) Sources", draft-ietf-avtext- | Time Transport Protocol (RTP) Sources", draft-ietf-avtext- | |||
rtp-grouping-taxonomy-02 (work in progress), June 2014. | rtp-grouping-taxonomy-02 (work in progress), June 2014. | |||
[I-D.iana-charset-reg-procedure] | ||||
McFadden, M. and A. Melnikov, "IANA Charset Registration | ||||
Procedures", draft-iana-charset-reg-procedure-00 (work in | ||||
progress), October 2014. | ||||
[I-D.ietf-mmusic-sdp-mux-attributes] | ||||
Nandakumar, S., "A Framework for SDP Attributes when | ||||
Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-08 | ||||
(work in progress), January 2015. | ||||
12.2. Informative References | 12.2. Informative References | |||
[RFC2327] Handley, M. and V. Jacobson, "SDP: Session Description | [RFC2327] Handley, M. and V. Jacobson, "SDP: Session Description | |||
Protocol", RFC 2327, April 1998. | Protocol", RFC 2327, April 1998. | |||
[RFC5905] Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network | [RFC5905] Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network | |||
Time Protocol Version 4: Protocol and Algorithms | Time Protocol Version 4: Protocol and Algorithms | |||
Specification", RFC 5905, June 2010. | Specification", RFC 5905, June 2010. | |||
[RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session | [RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session | |||
skipping to change at page 56, line 26 | skipping to change at page 56, line 38 | |||
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment | [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment | |||
(ICE): A Protocol for Network Address Translator (NAT) | (ICE): A Protocol for Network Address Translator (NAT) | |||
Traversal for Offer/Answer Protocols", RFC 5245, April | Traversal for Offer/Answer Protocols", RFC 5245, April | |||
2010. | 2010. | |||
[RFC6544] Rosenberg, J., Keranen, A., Lowekamp, B.B., and A.B. | [RFC6544] Rosenberg, J., Keranen, A., Lowekamp, B.B., and A.B. | |||
Roach, "TCP Candidates with Interactive Connectivity | Roach, "TCP Candidates with Interactive Connectivity | |||
Establishment (ICE)", RFC 6544, March 2012. | Establishment (ICE)", RFC 6544, March 2012. | |||
[RFC7405] Kyzivat, P., "Case-Sensitive String Support in ABNF", RFC | ||||
7405, December 2014. | ||||
[ITU.H332.1998] | [ITU.H332.1998] | |||
International Telecommunication Union, "H.323 extended for | International Telecommunication Union, "H.323 extended for | |||
loosely coupled conferences", ITU Recommendation H.332, | loosely coupled conferences", ITU Recommendation H.332, | |||
September 1998. | September 1998. | |||
[RFC4567] Arkko, J., Lindholm, F., Naslund, M., Norrman, K., and E. | [RFC4567] Arkko, J., Lindholm, F., Naslund, M., Norrman, K., and E. | |||
Carrara, "Key Management Extensions for Session | Carrara, "Key Management Extensions for Session | |||
Description Protocol (SDP) and Real Time Streaming | Description Protocol (SDP) and Real Time Streaming | |||
Protocol (RTSP)", RFC 4567, July 2006. | Protocol (RTSP)", RFC 4567, July 2006. | |||
End of changes. 44 change blocks. | ||||
113 lines changed or deleted | 107 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/ |