draft-ietf-mmusic-sdp-04.txt   draft-ietf-mmusic-sdp-05.txt 
Internet Engineering Task Force MMUSIC WG Internet Engineering Task Force MMUSIC WG
INTERNET-DRAFT Mark Handley/Van Jacobson INTERNET-DRAFT Mark Handley/Van Jacobson
draft-ietf-mmusic-sdp-04.ps ISI/LBNL draft-ietf-mmusic-sdp-05.ps ISI/LBNL
2nd Sept 1997 21st Nov 1997
Expires: 2nd Apr 1997 Expires: 21st May 1997
SDP: Session Description Protocol SDP: Session Description Protocol
Status of this Memo Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working docu- This document is an Internet-Draft. Internet-Drafts are working docu-
ments of the Internet Engineering Task Force (IETF), its areas, and its ments of the Internet Engineering Task Force (IETF), its areas, and its
working groups. Note that other groups may also distribute working working groups. Note that other groups may also distribute working
documents as Internet-Drafts. documents as Internet-Drafts.
skipping to change at page 6, line 41 skipping to change at page 6, line 41
5.5. Categorisation 5.5. Categorisation
When many session descriptions are being distributed by SAP or any other When many session descriptions are being distributed by SAP or any other
advertisement mechanism, it may be desirable to filter announcements advertisement mechanism, it may be desirable to filter announcements
that are of interest from those that are not. SDP supports a categori- that are of interest from those that are not. SDP supports a categori-
sation mechanism for sessions that is capable of being automated. sation mechanism for sessions that is capable of being automated.
5.6. Internationalization 5.6. Internationalization
The SDP specification recommends the use of the ISO 10646 character sets The SDP specification recommends the use of the ISO 10646 character sets
in the UTF-8 encoding to allow many different languages to be in the UTF-8 encoding (RFC 2044) to allow many different languages to be
represented. However, to assist in compact representations, SDP also represented. However, to assist in compact representations, SDP also
allows other character sets such as ISO 8859-1 to be used when desired. allows other character sets such as ISO 8859-1 to be used when desired.
Internationalization only applies to free-text fields (session name and
background information), and not to SDP as a whole.
6. SDP Specification 6. SDP Specification
SDP session descriptions are entirely textual. The textual form, as SDP session descriptions are entirely textual using the ISO 10646 char-
acter set in UTF-8 encoding. SDP field names and attributes names use
only the US-ASCII subset of UTF-8, but textual fields and attribute
values may use the full ISO 10646 character set. The textual form, as
opposed to 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 enhance
portability, to enable a variety of transports to be used (e.g, session portability, to enable a variety of transports to be used (e.g, session
description in a MIME email message) and to allow flexible, text-based description in a MIME email message) and to allow flexible, text-based
toolkits (e.g., Tcl/Tk ) to be used to generate and to process session toolkits (e.g., Tcl/Tk ) to be used to generate and to process session
descriptions. However, since the total bandwidth allocated to all SAP descriptions. However, since the total bandwidth allocated to all SAP
announcements is strictly limited, the encoding is deliberately compact. announcements is strictly limited, the encoding is deliberately compact.
Also, since announcements may be transported via very unreliable means Also, since announcements may be transported via very unreliable means
(e.g., email) or damaged by an intermediate caching server, the encoding (e.g., email) or damaged by an intermediate caching server, the encoding
was designed with strict order and formatting rules so that most errors was designed with strict order and formatting rules so that most errors
would result in malformed announcements which could be detected easily would result in malformed announcements which could be detected easily
skipping to change at page 9, line 19 skipping to change at page 9, line 19
u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
e=mjh@isi.edu (Mark Handley) e=mjh@isi.edu (Mark Handley)
c=IN IP4 224.2.17.12/127 c=IN IP4 224.2.17.12/127
t=2873397496 2873404696 t=2873397496 2873404696
a=recvonly a=recvonly
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
m=video 2232 RTP/AVP 31 m=video 2232 RTP/AVP 31
m=application 32416 udp wb m=application 32416 udp wb
a=orient:portrait a=orient:portrait
Text records such as the session name and information may contain any Text records such as the session name and information are bytes strings
printable 8 bit ISO 10646 character with the exceptions of 0x0a (ASCII which may contain any byte with the exceptions of 0x00 (Nul), 0x0a
newline) and 0x0d (ASCII carriage return). The sequence CRLF (0x0a0d) (ASCII newline) and 0x0d (ASCII carriage return). The sequence CRLF
is used to end a record, although parsers should be tolerant and also (0x0d0a) is used to end a record, although parsers should be tolerant
accept records terminated with a single newline character. and also accept records terminated with a single newline character. By
default these byte strings contain ISO-10646 characters in UTF-8 encod-
ing, but this default may be changed using the `charset' attribute.
Protocol Version Protocol Version
v=0 v=0
The ``v='' field gives the version of the Session Description Protocol. The ``v='' field gives the version of the Session Description Protocol.
There is no minor version number. There is no minor version number.
Origin Origin
skipping to change at page 9, line 48 skipping to change at page 10, line 4
the address of the user's host) plus a session id and session version the address of the user's host) plus a session id and session version
number. <username> is the user's login on the originating host, or it number. <username> is the user's login on the originating host, or it
is ``-'' if the originating host does not support the concept of user is ``-'' if the originating host does not support the concept of user
ids. <username> must not contain spaces. <session id> is a numeric ids. <username> must not contain spaces. <session id> is a numeric
string such that the tuple of <username>, <session id>, <network type>, string such that the tuple of <username>, <session id>, <network type>,
<address type> and <address> form a globally unique identifier for the <address type> and <address> form a globally unique identifier for the
session. The method of session id allocation is up to the creating session. The method of session id allocation is up to the creating
tool, but it has been suggested that a Network Time Protocol (NTP) tool, but it has been suggested that a Network Time Protocol (NTP)
timestamp be used to ensure uniqueness [1]. <version> is a version timestamp be used to ensure uniqueness [1]. <version> is a version
number for this announcement. It is needed for proxy announcements to number for this announcement. It is needed for proxy announcements to
detect which of several announcements for the same session is the most
recent. Again its usage is up to the creating tool, so long as
<version> is increased when a modification is made to the session data. detect which of several announcements for the same session is the most
recent. Again its usage is up to the creating tool, so long as <ver-
sion> is increased when a modification is made to the session data.
Again, it is recommended (but not mandatory) that an NTP timestamp is Again, it is recommended (but not mandatory) that an NTP timestamp is
used. <network type> is a text string giving the type of network. Ini- used. <network type> is a text string giving the type of network. Ini-
tially ``IN'' is defined to have the meaning ``Internet''. <address tially ``IN'' is defined to have the meaning ``Internet''. <address
type> is a text string giving the type of the address that follows. type> is a text string giving the type of the address that follows.
Initially ``IP4'' and ``IP6'' are defined. <address> is the globally Initially ``IP4'' and ``IP6'' are defined. <address> is the globally
unique address of the machine from which the session was created. For unique address of the machine from which the session was created. For
an address type of IP4, this is the dotted-decimal representation of the an address type of IP4, this is the dotted-decimal representation of the
IP version 4 address of the machine. For an address type of IP6, this IP version 4 address of the machine. For an address type of IP6, this
is the compressed textual representation of the IP version 6 address of is the compressed textual representation of the IP version 6 address of
the machine. the machine.
skipping to change at page 10, line 27 skipping to change at page 10, line 29
In general, the ``o='' field serves as a globally unique identifier for In general, the ``o='' field serves as a globally unique identifier for
this version of this session description, and the subfields excepting this version of this session description, and the subfields excepting
the version taken together identify the session irrespective of any the version taken together identify the session irrespective of any
modifications. modifications.
Session Name Session Name
s=<session name> s=<session name>
The ``s='' field is the session name. There must be one and only one The ``s='' field is the session name. There must be one and only one
``s='' field per session description, and it must contain printable ISO ``s='' field per session description, and it must contain ISO 10646
10646 characters (but see also the `charset' attribute below). characters (but see also the `charset' attribute below).
Session and Media Information Session and Media Information
i=<session description> i=<session description>
The ``i='' field is information about the session. There may be at most The ``i='' field is information about the session. There may be at most
one session-level ``i='' field per session description, and at most one one session-level ``i='' field per session description, and at most one
``i='' field per media. Although it may be omitted, this is discouraged ``i='' field per media. Although it may be omitted, this is discouraged
for session announcements, and user interfaces for composing sessions for session announcements, and user interfaces for composing sessions
should require text to be entered. If it is present it must contain should require text to be entered. If it is present it must contain ISO
printable ISO 10646 characters (but see also the `charset' attribute 10646 characters (but see also the `charset' attribute below).
below).
A single ``i='' field can also be used for each media definition. In A single ``i='' field can also be used for each media definition. In
media definitions, ``i='' fields are primarily intended for labeling media definitions, ``i='' fields are primarily intended for labeling
media streams. As such, they are most likely to be useful when a single media streams. As such, they are most likely to be useful when a single
session has more than one distinct media stream of the same media type. session has more than one distinct media stream of the same media type.
An example would be two different whiteboards, one for slides and one An example would be two different whiteboards, one for slides and one
for feedback and questions. for feedback and questions.
URI URI
skipping to change at page 14, line 50 skipping to change at page 14, line 52
o ``t='' fields specify the start and stop times for a conference o ``t='' fields specify the start and stop times for a conference
session. Multiple ``t='' fields may be used if a session is active session. Multiple ``t='' fields may be used if a session is active
at multiple irregularly spaced times; each additional ``t='' field at multiple irregularly spaced times; each additional ``t='' field
specifies an additional period of time for which the session will be specifies an additional period of time for which the session will be
active. If the session is active at regular times, an ``r='' field active. If the session is active at regular times, an ``r='' field
(see below) should be used in addition to and following a ``t='' (see below) should be used in addition to and following a ``t=''
field - in which case the ``t='' field specifies the start and stop field - in which case the ``t='' field specifies the start and stop
times of the repeat sequence. times of the repeat sequence.
o The first and second sub-fields give the start and stop times for o The first and second sub-fields give the start and stop times for
the conference respectively. These values are the decimal represen- the conference respectively. These values are the decimal
tation of Network Time Protocol (NTP) time values in seconds [1]. representation of Network Time Protocol (NTP) time values in seconds
[1]. To convert these values to UNIX time, subtract decimal
To convert these values to UNIX time, subtract decimal 2208988800. 2208988800.
o If the stop-time is set to zero, then the session is not bounded, o If the stop-time is set to zero, then the session is not bounded,
though it will not become active until after the start-time. If the though it will not become active until after the start-time. If the
start-time is also zero, the session is regarded as permanent. start-time is also zero, the session is regarded as permanent.
User interfaces should strongly discourage the creation of unbounded User interfaces should strongly discourage the creation of unbounded
and permanent sessions as they give no information about when the and permanent sessions as they give no information about when the
session is actually going to terminate, and so make scheduling dif- session is actually going to terminate, and so make scheduling dif-
ficult. ficult.
skipping to change at page 15, line 49 skipping to change at page 15, line 50
25 hours. The corresponding ``t='' field stop time would be the NTP 25 hours. The corresponding ``t='' field stop time would be the NTP
representation of the end of the last session three months later. By representation of the end of the last session three months later. By
default all fields are in seconds, so the ``r='' and ``t='' fields default all fields are in seconds, so the ``r='' and ``t='' fields
might be: might be:
t=3034423619 3042462419 t=3034423619 3042462419
r=604800 3600 0 90000 r=604800 3600 0 90000
To make announcements more compact, times may also be given in To make announcements more compact, times may also be given in
units of days, hours or minutes. The syntax for these is a number units of days, hours or minutes. The syntax for these is a number
immediately followed by a single case-sensitive character. Frac- immediately followed by a single case-sensitive character.
tional units are not allowed - a smaller unit should be used
Fractional units are not allowed - a smaller unit should be used
instead. The following unit specification characters are allowed: instead. The following unit specification characters are allowed:
d - days (86400 seconds) d - days (86400 seconds)
h - minutes (3600 seconds) h - minutes (3600 seconds)
m - minutes (60 seconds) m - minutes (60 seconds)
s - seconds (allowed for completeness but not recommended) s - seconds (allowed for completeness but not recommended)
Thus, the above announcement could also have been written: Thus, the above announcement could also have been written:
r=7d 1h 0 25h r=7d 1h 0 25h
skipping to change at page 18, line 32 skipping to change at page 18, line 32
o value attributes. A value attribute is of the form o value attributes. A value attribute is of the form
``a=<attribute>:<value>''. An example might be that a whiteboard ``a=<attribute>:<value>''. An example might be that a whiteboard
could have the value attribute ``a=orient:landscape'' could have the value attribute ``a=orient:landscape''
Attribute interpretation depends on the media tool being invoked. Thus Attribute interpretation depends on the media tool being invoked. Thus
receivers of session descriptions should be configurable in their receivers of session descriptions should be configurable in their
interpretation of announcements in general and of attributes in particu- interpretation of announcements in general and of attributes in particu-
lar. lar.
Attribute names must be in the US-ASCII subset of ISO-10646/UTF-8.
Attribute values are byte strings, and MAY use any byte value except
0x00 (Nul), 0x0A (LF), and 0x0D (CR). By default, attribute values are
to be interpreted as in ISO-10646 character set with UTF-8 encoding.
Unlike other text fields, attribute values are NOT normally affected by
the `charset' attribute as this would make comparisons against known
values problematic. However, when an attribute is defined, it can be
defined to be charset-dependant, in which case it's value should be
interpreted in the session charset rather than in ISO-10646.
Media Announcements Media Announcements
m=<media> <port> <transport> <fmt list> m=<media> <port> <transport> <fmt list>
A session announcement may contain a number of media announcements. A session announcement may contain a number of media announcements.
Each media announcement starts with an ``m='' field, and is terminated Each media announcement starts with an ``m='' field, and is terminated
by either the next ``m='' field or by the end of the session announce- by either the next ``m='' field or by the end of the session announce-
ment. A media field also has several sub-fields: ment. A media field also has several sub-fields:
o The first sub-field is the media type. Currently defined media are o The first sub-field is the media type. Currently defined media are
skipping to change at page 20, line 40 skipping to change at page 20, line 49
the RTP Audio/Video Profile. the RTP Audio/Video Profile.
When a list of payload formats is given, this implies that all of When a list of payload formats is given, this implies that all of
these formats may be used in the session, but the first of these these formats may be used in the session, but the first of these
formats is the default format for the session. formats is the default format for the session.
For media whose transport protocol is not RTP or UDP the format For media whose transport protocol is not RTP or UDP the format
field is protocol specific. Such formats should be defined in an field is protocol specific. Such formats should be defined in an
additional specification document. additional specification document.
For media whose transport protocol is RTP, SDP can be used to pro- For media whose transport protocol is RTP, SDP can be used to
vide a dynamic binding of media encoding to RTP payload type. The provide a dynamic binding of media encoding to RTP payload type.
payload names in the RTP AV Profile do not specify unique audio The payload names in the RTP AV Profile do not specify unique audio
encodings (in terms of clock rate and number of audio channels), and encodings (in terms of clock rate and number of audio channels), and
so they are not used directly in SDP format fields. Instead, the so they are not used directly in SDP format fields. Instead, the
payload type number should be used to specify the format for static payload type number should be used to specify the format for static
payload types and the payload type number along with additional payload types and the payload type number along with additional
encoding information should be used for dynamically allocated pay- encoding information should be used for dynamically allocated pay-
load types. load types.
An example of a static payload type is u-law PCM coded single chan- An example of a static payload type is u-law PCM coded single chan-
nel audio sampled at 8KHz. This is completely defined in the RTP nel audio sampled at 8KHz. This is completely defined in the RTP
Audio/Video profile as payload type 0, so the media field for such a Audio/Video profile as payload type 0, so the media field for such a
skipping to change at page 22, line 32 skipping to change at page 22, line 42
Suggested Attributes Suggested Attributes
The following attributes are suggested. Since application writers may The following attributes are suggested. Since application writers may
add new attributes as they are required, this list is not exhaustive. add new attributes as they are required, this list is not exhaustive.
a=cat:<category> a=cat:<category>
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 session. This is to enable a receiver to filter unwanted sessions
by category. It would probably have been a compulsory separate by category. It would probably have been a compulsory separate
field, except for its experimental nature at this time. It is a field, except for its experimental nature at this time. It is a
session-level attribute. session-level attribute, and is not dependent on charset.
a=keywds:<keywords> a=keywds:<keywords>
Like the cat attribute, this is to assist identifying wanted ses- Like the cat attribute, this is to assist identifying wanted ses-
sions at the receiver. This allows a receiver to select interesting sions at the receiver. This allows a receiver to select interesting
session based on keywords describing the purpose of the session. It session based on keywords describing the purpose of the session. It
is a session-level attribute. is a session-level attribute. It is a charset dependent attribute,
meaning that its value should be interpreted in the charset speci-
fied for the session description if one is specified, or by default
in ISO 10646/UTF-8.
a=tool:<name and version of tool> a=tool:<name and version of tool>
This gives the name and version number of the tool used to create This gives the name and version number of the tool used to create
the session description. It is a session-level attribute. the session description. It is a session-level attribute, and is
not dependent on charset.
a=ptime:<packet time> a=ptime:<packet time>
This gives the length of time in milliseconds represented by the This gives the length of time in milliseconds represented by the
media in a packet. This is probably only meaningful for audio data. media in a packet. This is probably only meaningful for audio data.
It should not be necessary to know ptime to decode RTP or vat audio, It should not be necessary to know ptime to decode RTP or vat audio,
and it is intended as a recommendation for the and it is intended as a recommendation for the
encoding/packetisation of audio. It is a media attribute. encoding/packetisation of audio. It is a media attribute, and is
not dependent on charset.
a=recvonly a=recvonly
This specifies that the tools should be started in receive-only mode This specifies that the tools should be started in receive-only mode
where applicable. It can be either a session or media attribute. where applicable. It can be either a session or media attribute, and
is not dependent on charset.
a=sendrecv a=sendrecv
This specifies that the tools should be started in send and receive This specifies that the tools should be started in send and receive
mode. This is necessary for interactive conferences with tools such mode. This is necessary for interactive conferences with tools such
as wb which defaults to receive only mode. It can be either a ses- as wb which defaults to receive only mode. It can be either a ses-
sion or media attribute. sion or media attribute, and is not dependent on charset.
a=sendonly a=sendonly
This specifies that the tools should be started in send-only mode. This specifies that the tools should be started in send-only mode.
An example may be where a different unicast address is to be used An example may be where a different unicast address is to be used
for a traffic destination than for a traffic source. In such a case, for a traffic destination than for a traffic source. In such a case,
two media descriptions may be use, one sendonly and one recvonly. It two media descriptions may be use, one sendonly and one recvonly. It
can be either a session or media attribute, but would normally only can be either a session or media attribute, but would normally only
be used as a media attribute. be used as a media attribute, and is not dependent on charset.
a=orient:<whiteboard orientation> a=orient:<whiteboard orientation>
Normally this is only used in a whiteboard media specification. It Normally this is only used in a whiteboard media specification. It
specifies the orientation of a the whiteboard on the screen. It is specifies the orientation of a the whiteboard on the screen. It is
a media attribute. Permitted values are `portrait', `landscape' and a media attribute. Permitted values are `portrait', `landscape' and
`seascape' (upside down landscape). `seascape' (upside down landscape). It is not dependent on charset
a=type:<conference type> a=type:<conference type>
This specifies the type of the conference. Suggested values are This specifies the type of the conference. Suggested values are
`broadcast', `meeting', `moderated', `test' and `H332'. `recvonly' `broadcast', `meeting', `moderated', `test' and `H332'. `recvonly'
should be the default for `type:broadcast' sessions, `type:meeting' should be the default for `type:broadcast' sessions, `type:meeting'
should imply `sendrecv' and `type:moderated' should indicate the use should imply `sendrecv' and `type:moderated' should indicate the use
of a floor control tool and that the media tools are started so as of a floor control tool and that the media tools are started so as
to ``mute'' new sites joining the conference. to ``mute'' new sites joining the conference.
Specifying the attribute type:H332 indicates that this loosely cou- Specifying the attribute type:H332 indicates that this loosely cou-
pled session is part of a H.332 session as defined in the ITU H.332 pled session is part of a H.332 session as defined in the ITU H.332
specification [10]. Media tools should be started `recvonly'. specification [10]. Media tools should be started `recvonly'.
Specifying the attribute type:test is suggested as a hint that, Specifying the attribute type:test is suggested as a hint that,
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.
The type attribute is a session-level attribute. The type attribute is a session-level attribute, and is not depen-
dent on charset.
a=charset:<character set> a=charset:<character set>
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 such as ISO-8859-1 for required, other character sets may be used such as ISO-8859-1 for
Northern European languages. In particular, the ISO 8859-1 is Northern European languages. In particular, the ISO 8859-1 is
specified with the following SDP attribute: specified with the following SDP attribute:
a=charset:iso8859-1 a=charset:ISO-8859-1
This is a session-level attribute; if this attribute is present, it This is a session-level attribute; if this attribute is present, it
must be before the first media field. must be before the first media field. The charset specified MUST be
one of those registered with IANA, such as ISO-8859-1. The charac-
ter set identifier is a US-ASCII string and MUST be compared against
the IANA identifiers using a case-insensitive comparison. If the
indentifier is not recognised or not supported, all strings that are
affected by it SHOULD be regarded as byte strings.
Note that a character set specified MUST still prohibit the use of
bytes 0x00 (Nul), 0x0A (LF) and 0x0d (CR). Character sets requiring
the use of these characters MUST define a quoting mechanism that
prevents these bytes appearing within text fields.
a=sdplang:<language tag>
This can be a session level attribute or a media level attribute.
As a session level attribute, it specifies the language for the ses-
sion description. As a media level attribute, it specifies the
language for any media-level SDP information field associated with
that media. Multiple sdplang attributes can be provided either at
session or media level if multiple languages if the session descrip-
tion or media use multiple languages, in which case the order of the
attributes indicates the order of importance of the various
languages in the session or media from most important to least
important.
The sdplang attribute value must be a single RFC 1766 language tag
in US-ASCII. It is not dependent on the charset attribute. An
sdplang attribute SHOULD be specified when a session is of suffi-
cient scope to cross geographic boundaries where the language of
recipients cannot be assumed, or where the session is in a different
language from the locally assumed norm.
a=lang:<language tag>
This can be a session level attribute or a media level attribute.
As a session level attribute, it specifies the default language for
the session being described. As a media level attribute, it speci-
fies the language for that media, overriding any session-level
language specified. Multiple lang attributes can be provided either
at session or media level if multiple languages if the session
description or media use multiple languages, in which case the order
of the attributes indicates the order of importance of the various
languages in the session or media from most important to least
important.
The lang attribute value must be a single RFC 1766 language tag in
US-ASCII. It is not dependent on the charset attribute. A lang
attribute SHOULD be specified when a session is of sufficient scope
to cross geographic boundaries where the language of recipients can-
not be assumed, or where the session is in a different language from
the locally assumed norm.
a=framerate:<frame rate> a=framerate:<frame rate>
This gives the maximum video frame rate in frames/sec. It is This gives the maximum video frame rate in frames/sec. It is
intended as a recommendation for the encoding of video data. intended as a recommendation for the encoding of video data.
Decimal representations of fractional values using the notation Decimal representations of fractional values using the notation
"<integer>.<fraction>" are allowed. It is a media attribute, and is "<integer>.<fraction>" are allowed. It is a media attribute, is
only defined for video media. only defined for video media, and is not dependent on charset.
a=quality:<quality> a=quality:<quality>
This gives a suggestion for the quality of the encoding as an This gives a suggestion for the quality of the encoding as an
integer value. integer value.
The intention of the quality attribute for video is to specify a The intention of the quality attribute for video is to specify a
non-default trade-off between frame-rate and still-image quality. non-default trade-off between frame-rate and still-image quality.
For video, the value in the range 0 to 10, with the following sug- For video, the value in the range 0 to 10, with the following sug-
gested meaning: gested meaning:
10 - the best still-image quality the compression scheme can give. 10 - the best still-image quality the compression scheme can give.
5 - the default behaviour given no quality suggestion. 5 - the default behaviour given no quality suggestion.
0 - the worst still-image quality the codec designer thinks is 0 - the worst still-image quality the codec designer thinks is
still usable. still usable.
It is a media attribute, and is not dependent on charset.
a=fmtp:<format> <format specific parameters> a=fmtp:<format> <format specific parameters>
This attribute allows parameters that are specific to a particular This attribute allows parameters that are specific to a particular
format to be conveyed in a way that SDP doesn't have to understand format to be conveyed in a way that SDP doesn't have to understand
them. The format must be one of the formats specified for the them. The format must be one of the formats specified for the
media. Format-specific parameters may be any set of parameters media. Format-specific parameters may be any set of parameters
required to be conveyed by SDP and given unchanged to the media tool required to be conveyed by SDP and given unchanged to the media tool
that will use this format. that will use this format.
It is a media attribute, and is not dependent on charset.
6.1. Communicating Conference Control Policy 6.1. Communicating Conference Control Policy
There is some debate over the way conference control policy should be There is some debate over the way conference control policy should be
communicated. In general, the authors believe that an implicit declara- communicated. In general, the authors believe that an implicit declara-
tive style of specifying conference control is desirable where possible. tive style of specifying conference control is desirable where possible.
A simple declarative style uses a single conference attribute field A simple declarative style uses a single conference attribute field
before the first media field, possibly supplemented by properties such before the first media field, possibly supplemented by properties such
as `recvonly' for some of the media tools. This conference attribute as `recvonly' for some of the media tools. This conference attribute
conveys the conference control policy. An example might be: conveys the conference control policy. An example might be:
skipping to change at page 29, line 22 skipping to change at page 31, line 22
zone-adjustments ::= time space [``-''] typed-time zone-adjustments ::= time space [``-''] typed-time
*(space time space [``-''] typed-time) *(space time space [``-''] typed-time)
key-field ::= ["k=" key-type CRLF] key-field ::= ["k=" key-type CRLF]
key-type ::= "prompt" | key-type ::= "prompt" |
"clear:" key-data | "clear:" key-data |
"base64:" key-data | "base64:" key-data |
"uri:" uri "uri:" uri
key-data ::= printable-ascii key-data ::= email-safe | "~" | "
attribute-fields ::= *("a=" attribute CRLF) attribute-fields ::= *("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 )
skipping to change at page 30, line 16 skipping to change at page 32, line 16
;typically an RTP payload type for audio ;typically an RTP payload type for audio
;and video media ;and video media
proto ::= 1*(alpha-numeric) proto ::= 1*(alpha-numeric)
;typically "RTP/AVP" or "udp" for IP4 ;typically "RTP/AVP" or "udp" for IP4
port ::= 1*(DIGIT) port ::= 1*(DIGIT)
;should in the range "1024" to "65535" inclusive ;should in the range "1024" to "65535" inclusive
;for UDP based media ;for UDP based media
attribute ::= att-field ":" att-value | att-field attribute ::= (att-field ":" att-value) | att-field
att-field ::= 1*(ALPHA)
att-value ::= 1*(att-char) att-field ::= 1*(alpha-numeric)
att-char ::= alpha-numeric | "-" att-value ::= byte-string
;is this too tight a restriction
sess-id ::= 1*(DIGIT) sess-id ::= 1*(DIGIT)
;should be unique for this originating username/host ;should be unique for this originating username/host
sess-version ::= 1*(DIGIT) sess-version ::= 1*(DIGIT)
;0 is a new session ;0 is a new session
connection-address ::= multicast-address connection-address ::= multicast-address
| unicast-address | unicast-address
skipping to change at page 32, line 23 skipping to change at page 34, line 23
unicast-address ::= IP4-address | IP6-address unicast-address ::= IP4-address | IP6-address
IP4-address ::= b1 "." decimal_uchar "." decimal_uchar "." b4 IP4-address ::= b1 "." decimal_uchar "." decimal_uchar "." b4
b1 ::= decimal_uchar b1 ::= decimal_uchar
;less than "224"; not "0" or "127" ;less than "224"; not "0" or "127"
b4 ::= decimal_uchar b4 ::= decimal_uchar
;not "0" ;not "0"
IP6-address ::= ;to be defined IP6-address ::= ;to be defined
text ::= 1*(printable-iso8859-1) | 1*(iso10646-utf-8) text ::= byte-string
;ISO 8859-1 requires a "a=charset:iso8859-1" ;default is to interpret this as IS0-10646 UTF8
;ISO 8859-1 requires a "a=charset:ISO-8859-1"
;session-level attribute to be used ;session-level attribute to be used
printable-iso8859-1 ::= ;8 bit ascii character byte-string ::= 1*(0x01..0x09|0x0b|0x0c|0x0e..0xff)
;decimal 9 (TAB), 32-126 and 161-255 ;any byte except NUL, CR or LF
iso10646-1-1-utf-8 ::= ;defined in RFC 2044
;CR and LF are disallowed in this context they are
;an SDP field terminator
decimal_uchar ::= DIGIT decimal_uchar ::= DIGIT
| POS-DIGIT DIGIT | POS-DIGIT DIGIT
| (1 2*(DIGIT)) | (1 2*(DIGIT))
| (2 (0|1|2|3|4) DIGIT) | (2 (0|1|2|3|4) DIGIT)
| (2 5 (0|1|2|3|4|5)) | (2 5 (0|1|2|3|4|5))
integer ::= POS-DIGIT *(DIGIT) integer ::= POS-DIGIT *(DIGIT)
alpha-numeric ::= ALPHA | DIGIT alpha-numeric ::= ALPHA | DIGIT
printable-ascii ::= unicode-safe | "~" | "
DIGIT ::= 0 | POS-DIGIT DIGIT ::= 0 | POS-DIGIT
POS-DIGIT ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 POS-DIGIT ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
ALPHA ::= a | b | c | d | e | f | g | h | i | j | k | ALPHA ::= a | b | c | d | e | f | g | h | i | j | k |
l | m | n | o | p | q | r | s | t | u | v | l | m | n | o | p | q | r | s | t | u | v |
w | x | y | z | A | B | C | D | E | F | G | w | x | y | z | A | B | C | D | E | F | G |
H | I | J | K | L | M | N | O | P | Q | R | H | I | J | K | L | M | N | O | P | Q | R |
S | T | U | V | W | X | Y | Z S | T | U | V | W | X | Y | Z
skipping to change at page 34, line 27 skipping to change at page 36, line 27
Lawrence Berkeley Laboratory Lawrence Berkeley Laboratory
Berkeley, CA 94720 Berkeley, CA 94720
United States United States
electronic mail: van@ee.lbl.gov electronic mail: van@ee.lbl.gov
Acknowledgments Acknowledgments
Many people in the IETF MMUSIC working group have made comments and Many people in the IETF MMUSIC working group have made comments and
suggestions contributing to this document. In particular, we would like suggestions contributing to this document. In particular, we would like
to thank Eve Schooler, Steve Casner, Bill Fenner, Allison Mankin, Ross to thank Eve Schooler, Steve Casner, Bill Fenner, Allison Mankin, Ross
Finlayson, Peter Parnes, Joerg Ott and Carsten Bormann. Finlayson, Peter Parnes, Joerg Ott, Carsten Bormann and Steve Hanna.
References References
[1] D. Mills, ``Network Time Protocol version 2 specification and imple- [1] D. Mills, ``Network Time Protocol version 2 specification and imple-
mentation", RFC1119, 1st Sept 1989. mentation", RFC1119, 1st Sept 1989.
[2] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, ``RTP: A Tran- [2] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, ``RTP: A Tran-
sport Protocol for Real-Time Applications'', RFC 1889 sport Protocol for Real-Time Applications'', RFC 1889
[3] H. Schulzrinne, ``RTP Profile for Audio and Video Conferences with [3] H. Schulzrinne, ``RTP Profile for Audio and Video Conferences with
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/