draft-ietf-mmusic-rfc4566bis-34.txt | draft-ietf-mmusic-rfc4566bis-35.txt | |||
---|---|---|---|---|
Network Working Group A. Begen | Network Working Group A. Begen | |||
Internet-Draft Networked Media | Internet-Draft Networked Media | |||
Obsoletes: 4566 (if approved) P. Kyzivat | Obsoletes: 4566 (if approved) P. Kyzivat | |||
Intended status: Standards Track | Intended status: Standards Track | |||
Expires: September 22, 2019 C. Perkins | Expires: November 4, 2019 C. Perkins | |||
University of Glasgow | University of Glasgow | |||
M. Handley | M. Handley | |||
UCL | UCL | |||
March 21, 2019 | May 3, 2019 | |||
SDP: Session Description Protocol | SDP: Session Description Protocol | |||
draft-ietf-mmusic-rfc4566bis-34 | draft-ietf-mmusic-rfc4566bis-35 | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 September 22, 2019. | This Internet-Draft will expire on November 4, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 8, line 39 ¶ | skipping to change at page 8, line 39 ¶ | |||
when desired. Internationalization only applies to free-text sub- | when desired. Internationalization only applies to free-text sub- | |||
fields (session name and background information), and not to SDP as a | fields (session name and background information), and not to SDP as a | |||
whole. | whole. | |||
5. SDP Specification | 5. SDP Specification | |||
An SDP description is denoted by the media type "application/sdp" | An SDP description is denoted by the media type "application/sdp" | |||
(See Section 8). | (See Section 8). | |||
An SDP description is entirely textual. SDP field names and | An SDP description is entirely textual. SDP field names and | |||
attribute names use only the US-ASCII subset of UTF-8, but textual | attribute names use only the US-ASCII subset of UTF-8 [RFC3629], but | |||
fields and attribute values MAY use the full ISO 10646 character set | textual fields and attribute values MAY use the full ISO 10646 | |||
in UTF-8 encoding, or some other character set defined by the | character set in UTF-8 encoding, or some other character set defined | |||
"a=charset:" attribute. Field and attribute values that use the full | by the "a=charset:" attribute. Field and attribute values that use | |||
UTF-8 character set are never directly compared, hence there is no | the full UTF-8 character set are never directly compared, hence there | |||
requirement for UTF-8 normalization. The textual form, as opposed to | is no requirement for UTF-8 normalization. The textual form, as | |||
a binary encoding such as ASN.1 or XDR, was chosen to enhance | opposed to a binary encoding such as ASN.1 or XDR, was chosen to | |||
portability, to enable a variety of transports to be used, and to | enhance portability, to enable a variety of transports to be used, | |||
allow flexible, text-based toolkits to be used to generate and | and to allow flexible, text-based toolkits to be used to generate and | |||
process session descriptions. However, since SDP may be used in | process session descriptions. However, since SDP may be used in | |||
environments where the maximum permissible size of a session | environments where the maximum permissible size of a session | |||
description is limited, the encoding is deliberately compact. Also, | description is limited, the encoding is deliberately compact. Also, | |||
since descriptions may be transported via very unreliable means or | since descriptions may be transported via very unreliable means or | |||
damaged by an intermediate caching server, the encoding was designed | damaged by an intermediate caching server, the encoding was designed | |||
with strict order and formatting rules so that most errors would | with strict order and formatting rules so that most errors would | |||
result in malformed session descriptions that could be detected | result in malformed session descriptions that could be detected | |||
easily and discarded. This also allows rapid discarding of encrypted | easily and discarded. This also allows rapid discarding of encrypted | |||
session descriptions for which a receiver does not have the correct | session descriptions for which a receiver does not have the correct | |||
key. | key. | |||
skipping to change at page 10, line 18 ¶ | skipping to change at page 10, line 18 ¶ | |||
s= (session name) | s= (session name) | |||
i=* (session information) | i=* (session information) | |||
u=* (URI of description) | u=* (URI of description) | |||
e=* (email address) | e=* (email address) | |||
p=* (phone number) | p=* (phone number) | |||
c=* (connection information -- not required if included in | c=* (connection information -- not required if included in | |||
all media descriptions) | all media descriptions) | |||
b=* (zero or more bandwidth information lines) | b=* (zero or more bandwidth information lines) | |||
One or more time descriptions: | One or more time descriptions: | |||
("t=", "r=" and "z=" lines; see below) | ("t=", "r=" and "z=" lines; see below) | |||
k=* (encryption key) | k=* (obsolete) | |||
a=* (zero or more session attribute lines) | a=* (zero or more session attribute lines) | |||
Zero or more media descriptions | Zero or more media descriptions | |||
Time description | Time description | |||
t= (time the session is active) | t= (time the session is active) | |||
r=* (zero or more repeat times) | r=* (zero or more repeat times) | |||
z=* (optional time zone offset line) | z=* (optional time zone offset line) | |||
Media description, if present | Media description, if present | |||
m= (media name and transport address) | m= (media name and transport address) | |||
i=* (media title) | i=* (media title) | |||
c=* (connection information -- optional if included at | c=* (connection information -- optional if included at | |||
session level) | session level) | |||
b=* (zero or more bandwidth information lines) | b=* (zero or more bandwidth information lines) | |||
k=* (encryption key) | k=* (obsolete) | |||
a=* (zero or more media attribute lines) | a=* (zero or more media attribute lines) | |||
The set of type letters is deliberately small and not intended to be | The set of type letters is deliberately small and not intended to be | |||
extensible -- an SDP parser MUST completely ignore any session | extensible -- an SDP parser MUST completely ignore any session | |||
description that contains a type letter that it does not understand. | description that contains a type letter that it does not understand. | |||
The attribute mechanism ("a=" described below) is the primary means | The attribute mechanism ("a=" described below) is the primary means | |||
for extending SDP and tailoring it to particular applications or | for extending SDP and tailoring it to particular applications or | |||
media. Some attributes (the ones listed in Section 6 of this memo) | media. Some attributes (the ones listed in Section 6 of this memo) | |||
have a defined meaning, but others may be added on a media- or | have a defined meaning, but others may be added on a media- or | |||
session-specific basis. (Attribute scopes in addition to media- and | session-specific basis. (Attribute scopes in addition to media- | |||
session- specific may also be defined in extensions to this document. | specific and session-specific may also be defined in extensions to | |||
E.g., [RFC5576], [I-D.ietf-mmusic-data-channel-sdpneg].) An SDP | this document. E.g., [RFC5576], | |||
parser MUST ignore any attribute it doesn't understand. | [I-D.ietf-mmusic-data-channel-sdpneg].) An SDP parser MUST ignore | |||
any attribute it doesn't understand. | ||||
An SDP description may contain URIs that reference external content | An SDP description may contain URIs that reference external content | |||
in the "u=", "k=", and "a=" lines. These URIs may be dereferenced in | in the "u=", "k=", and "a=" lines. These URIs may be dereferenced in | |||
some cases, making the session description non-self-contained. | some cases, making the session description non-self-contained. | |||
The connection ("c=") information in the session-level section | The connection ("c=") information in the session-level section | |||
applies to all the media descriptions of that session unless | applies to all the media descriptions of that session unless | |||
overridden by connection information in the media description. For | overridden by connection information in the media description. For | |||
instance, in the example below, each audio media description behaves | instance, in the example below, each audio media description behaves | |||
as if it were given a "c=IN IP4 233.252.0.2". | as if it were given a "c=IN IP4 233.252.0.2". | |||
skipping to change at page 34, line 12 ¶ | skipping to change at page 34, line 12 ¶ | |||
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 | |||
Character Sets registry (http://www.iana.org/assignments/character- | Character Sets registry (http://www.iana.org/assignments/character- | |||
sets), such as ISO-8859-1. The character set identifier is a US- | sets), such as ISO-8859-1. The character set identifier is a string | |||
ASCII string and MUST be compared against identifiers from the "Name" | in the US-ASCII subset of UTF-8 and MUST be compared against | |||
or "Preferred MIME Name" field of the registry using a case- | identifiers from the "Name" or "Preferred MIME Name" field of the | |||
insensitive comparison. If the identifier is not recognised or not | registry using a case-insensitive comparison. If the identifier is | |||
supported, all strings that are affected by it SHOULD be regarded as | not recognised or not supported, all strings that are affected by it | |||
octet strings. | SHOULD be regarded as octet strings. | |||
Note that a character set specified MUST still prohibit the use of | Note that a character set specified MUST still prohibit the use of | |||
bytes 0x00 (Nul), 0x0A (LF), and 0x0d (CR). Character sets requiring | bytes 0x00 (Nul), 0x0A (LF), and 0x0d (CR). Character sets requiring | |||
the use of these characters MUST define a quoting mechanism that | the use of these characters MUST define a quoting mechanism that | |||
prevents these bytes from appearing within text fields. | prevents these bytes from appearing within text fields. | |||
6.11. sdplang (SDP language) | 6.11. sdplang (SDP language) | |||
Name: sdplang | Name: sdplang | |||
skipping to change at page 35, line 14 ¶ | skipping to change at page 35, line 14 ¶ | |||
of the media), overriding any sdplang attributes specified at session | of the media), overriding any sdplang attributes specified at session | |||
level. | level. | |||
In general, sending session descriptions consisting of multiple | In general, sending session descriptions consisting of multiple | |||
languages is discouraged. Instead, multiple sesssion descriptions | languages is discouraged. Instead, multiple sesssion descriptions | |||
SHOULD be sent describing the session, one in each language. | SHOULD be sent describing the session, one in each language. | |||
However, this is not possible with all transport mechanisms, and so | However, this is not possible with all transport mechanisms, and so | |||
multiple sdplang attributes are allowed although NOT RECOMMENDED. | multiple sdplang attributes are allowed although NOT RECOMMENDED. | |||
The "sdplang" attribute value must be a single [RFC5646] language tag | The "sdplang" attribute value must be a single [RFC5646] language tag | |||
in US-ASCII. An "sdplang" attribute SHOULD be specified when a | in the US-ASCII subset of UTF-8. An "sdplang" attribute SHOULD be | |||
session is distributed with sufficient scope to cross geographic | specified when a session is distributed with sufficient scope to | |||
boundaries, where the language of recipients cannot be assumed, or | cross geographic boundaries, where the language of recipients cannot | |||
where the session is in a different language from the locally assumed | be assumed, or where the session is in a different language from the | |||
norm. | locally assumed norm. | |||
6.12. lang (language) | 6.12. lang (language) | |||
Name: lang | Name: lang | |||
Value: lang-value | Value: lang-value | |||
Usage Level: session, media | Usage Level: session, media | |||
Charset Dependent: no | Charset Dependent: no | |||
skipping to change at page 35, line 51 ¶ | skipping to change at page 35, line 51 ¶ | |||
language, in which case the order of the attributes indicates the | language, in which case the order of the attributes indicates the | |||
order of preference of the various languages in the session or media, | order of preference of the various languages in the session or media, | |||
from most preferred to least preferred. | from most preferred to least preferred. | |||
As a session-level attribute, lang specifies a language capability | As a session-level attribute, lang specifies a language capability | |||
for the session being described. As a media-level attribute, it | for the session being described. As a media-level attribute, it | |||
specifies a language capability for that media, overriding any | specifies a language capability for that media, overriding any | |||
session-level language(s) specified. | session-level language(s) specified. | |||
The "lang" attribute value must be a single [RFC5646] language tag in | The "lang" attribute value must be a single [RFC5646] language tag in | |||
US-ASCII. A "lang" attribute SHOULD be specified when a session is | the US-ASCII subset of UTF-8. A "lang" attribute SHOULD be specified | |||
of sufficient scope to cross geographic boundaries where the language | when a session is of sufficient scope to cross geographic boundaries | |||
of participants cannot be assumed, or where the session has | where the language of participants cannot be assumed, or where the | |||
capabilities in languages different from the locally assumed norm. | session has capabilities in languages different from the locally | |||
assumed norm. | ||||
The "lang" attribute is supposed to be used for setting the initial | The "lang" attribute is supposed to be used for setting the initial | |||
language(s) used in the session. Events during the session may | language(s) used in the session. Events during the session may | |||
influence which language(s) are used, and the participants are not | influence which language(s) are used, and the participants are not | |||
strictly bound to only use the declared languages. | strictly bound to only use the declared languages. | |||
Most real-time use cases start with just one language used, while | Most real-time use cases start with just one language used, while | |||
other cases involve a range of languages, e.g. an interpreted or | other cases involve a range of languages, e.g. an interpreted or | |||
subtitled session. When more than one 'lang' attribute is specified, | subtitled session. When more than one 'lang' attribute is specified, | |||
the "lang" attribute itself does not provide any information about | the "lang" attribute itself does not provide any information about | |||
skipping to change at page 56, line 20 ¶ | skipping to change at page 56, line 20 ¶ | |||
12.1. Normative References | 12.1. Normative References | |||
[E164] International Telecommunication Union, "E.164 : The | [E164] International Telecommunication Union, "E.164 : The | |||
international public telecommunication numbering plan", | international public telecommunication numbering plan", | |||
ITU Recommendation E.164, November 2010. | ITU Recommendation E.164, November 2010. | |||
[I-D.ietf-mmusic-data-channel-sdpneg] | [I-D.ietf-mmusic-data-channel-sdpneg] | |||
Drage, K., Makaraju, M., Ejzak, R., Marcon, J., and R. | Drage, K., Makaraju, M., Ejzak, R., Marcon, J., and R. | |||
Even, "SDP-based Data Channel Negotiation", draft-ietf- | Even, "SDP-based Data Channel Negotiation", draft-ietf- | |||
mmusic-data-channel-sdpneg-25 (work in progress), March | mmusic-data-channel-sdpneg-27 (work in progress), April | |||
2019. | 2019. | |||
[I-D.ietf-mmusic-sdp-mux-attributes] | [I-D.ietf-mmusic-sdp-mux-attributes] | |||
Nandakumar, S., "A Framework for SDP Attributes when | Nandakumar, S., "A Framework for SDP Attributes when | |||
Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-17 | Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-17 | |||
(work in progress), February 2018. | (work in progress), February 2018. | |||
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
<https://www.rfc-editor.org/info/rfc1034>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
End of changes. 12 change blocks. | ||||
35 lines changed or deleted | 37 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |