draft-ietf-mmusic-sdp-new-04.txt | draft-ietf-mmusic-sdp-new-05.txt | |||
---|---|---|---|---|
Internet Engineering Task Force MMUSIC WG | Internet Engineering Task Force MMUSIC WG | |||
INTERNET-DRAFT Mark Handley/ACIRI | INTERNET-DRAFT Mark Handley/ACIRI | |||
draft-ietf-mmusic-sdp-new-04.txt Van Jacobson/Packet Design | draft-ietf-mmusic-sdp-new-05.txt Van Jacobson/Packet Design | |||
Colin Perkins/ISI | Colin Perkins/ISI | |||
21 November 2001 | 8 February 2002 | |||
Expires: May 2002 | Expires: August 2002 | |||
SDP: Session Description Protocol | SDP: Session Description Protocol | |||
Status of this Memo | Status of this Memo | |||
This document is an Internet-Draft and is in full conformance with all | This document is an Internet-Draft and is in full conformance with all | |||
provisions of Section 10 of RFC2026. | provisions of Section 10 of RFC2026. | |||
Internet-Drafts are working documents of the Internet Engineering Task | Internet-Drafts are working documents of the Internet Engineering Task | |||
Force (IETF), its areas, and its working groups. Note that other groups | Force (IETF), its areas, and its working groups. Note that other groups | |||
skipping to change at page 11, line 33 ¶ | skipping to change at page 11, line 33 ¶ | |||
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 SHOULD contain ISO 10646 | ``s='' field per session description. The ``s='' field MUST NOT be empty | |||
characters (but see also the `charset' attribute below). If a session | and SHOULD contain ISO 10646 characters (but see also the `charset' | |||
has no meaningful name, the value ``s=-'' SHOULD be used. | attribute below). If a session has no meaningful name, the value ``s= '' | |||
SHOULD be used (i.e. a single space as the session name). | ||||
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 NOT | ``i='' field per media. Although it may be omitted, this is NOT | |||
RECOMMENDED for session announcements, and user interfaces for composing | RECOMMENDED for session announcements, and user interfaces for composing | |||
sessions should require text to be entered. If it is present it must | sessions should require text to be entered. If it is present it must | |||
skipping to change at page 22, line 51 ¶ | skipping to change at page 22, line 51 ¶ | |||
provide a dynamic binding of media encoding to RTP payload type. | provide a dynamic binding of media encoding to RTP payload type. | |||
The encoding names in the RTP AV Profile do not specify unique audio | The encoding 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 | encoding information should be used for dynamically allocated | |||
payload types. | payload types. | |||
An example of a static payload type is u-law PCM coded single | An example of a static payload type is u-law PCM coded single | |||
channel audio sampled at 8KHz. This is completely defined in the | channel audio sampled at 8kHz. This is completely defined in the | |||
RTP Audio/Video profile as payload type 0, so the media field for | RTP Audio/Video profile as payload type 0, so the media field for | |||
such a stream sent to UDP port 49232 is: | such a stream sent to UDP port 49232 is: | |||
m=video 49232 RTP/AVP 0 | m=audio 49232 RTP/AVP 0 | |||
An example of a dynamic payload type is 16 bit linear encoded stereo | An example of a dynamic payload type is 16 bit linear encoded stereo | |||
audio sampled at 16KHz. If we wish to use dynamic RTP/AVP payload | audio sampled at 16KHz. If we wish to use dynamic RTP/AVP payload | |||
type 98 for such a stream, additional information is required to | type 98 for such a stream, additional information is required to | |||
decode it: | decode it: | |||
m=video 49232 RTP/AVP 98 | m=video 49232 RTP/AVP 98 | |||
a=rtpmap:98 L16/16000/2 | a=rtpmap:98 L16/16000/2 | |||
The general form of an rtpmap attribute is: | The general form of an rtpmap attribute is: | |||
skipping to change at page 25, line 31 ¶ | skipping to change at page 25, line 31 ¶ | |||
ignore this attribute. | ignore this attribute. | |||
a=rtpmap:<payload type> <encoding name>/<clock rate>[/<encoding | a=rtpmap:<payload type> <encoding name>/<clock rate>[/<encoding | |||
parameters>] | parameters>] | |||
See the section on Media Announcements (the ``m='' field). This is a | See the section on Media Announcements (the ``m='' field). This is a | |||
media attribute. | media attribute. | |||
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, and | where applicable. It can be either a session or media attribute, and | |||
is not dependent on charset. | is not dependent on charset. Note that recvonly applies to the media | |||
only, not to any associated control protocol (e.g. an RTP based | ||||
system in recvonly mode SHOULD still send RTCP packets). | ||||
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 | as wb which defaults to receive only mode. It can be either a | |||
session or media attribute, and is not dependent on charset. | session 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, and is not dependent on charset. | be used as a media attribute, and is not dependent on charset. Note | |||
that sendonly applies only to the media, and any associated control | ||||
protocol (e.g. RTCP) SHOULD still be received and processed as | ||||
normal. | ||||
a=inactive | a=inactive | |||
This specifies that the tools should be started in inactive mode. | This specifies that the tools should be started in inactive mode. | |||
This is necessary for interactive conferences where users can put | This is necessary for interactive conferences where users can put | |||
other users on hold. No media is sent over an inactive media stream. | other users on hold. No media is sent over an inactive media stream. | |||
It can be either a session or media attribute, and is not dependent | Note that an RTP based system SHOULD still send RTCP, even if | |||
on charset. | started inactive. It can be either a session or 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). It is not dependent on charset | `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' | |||
skipping to change at page 32, line 31 ¶ | skipping to change at page 32, line 31 ¶ | |||
key-field | key-field | |||
attribute-fields | attribute-fields | |||
media-descriptions | media-descriptions | |||
proto-version = "v=" 1*DIGIT CRLF | proto-version = "v=" 1*DIGIT CRLF | |||
;this memo describes version 0 | ;this memo describes version 0 | |||
origin-field = "o=" username SP sess-id SP sess-version SP | origin-field = "o=" username SP sess-id SP sess-version SP | |||
nettype SP addrtype SP addr CRLF | nettype SP addrtype SP addr CRLF | |||
session-name-field = ["s=" text CRLF] | session-name-field = "s=" text CRLF | |||
information-field = ["i=" text CRLF] | information-field = ["i=" text CRLF] | |||
uri-field = ["u=" uri CRLF] | uri-field = ["u=" uri CRLF] | |||
email-fields = *("e=" email-address CRLF) | email-fields = *("e=" email-address CRLF) | |||
phone-fields = *("p=" phone-number CRLF) | phone-fields = *("p=" phone-number CRLF) | |||
connection-field = ["c=" nettype SP addrtype SP | connection-field = ["c=" nettype SP addrtype SP | |||
connection-address CRLF] | connection-address CRLF] | |||
skipping to change at page 34, line 41 ¶ | skipping to change at page 34, line 41 ¶ | |||
phone | phone | |||
phone = "+" POS-DIGIT 1*(SP | "-" | DIGIT) | phone = "+" POS-DIGIT 1*(SP | "-" | DIGIT) | |||
;there must be a space or hyphen between the | ;there must be a space or hyphen between the | |||
;international code and the rest of the number. | ;international code and the rest of the number. | |||
; Should this use the tel: URL syntax? | ; Should this use the tel: URL syntax? | |||
; sub-rules of 'c=' | ; sub-rules of 'c=' | |||
connection-address = multicast-address | connection-address = multicast-address | |||
| addr | | unicast-address | |||
; sub-rules of 'b=' | ; sub-rules of 'b=' | |||
bwtype = token | bwtype = token | |||
bandwidth = 1*DIGIT | bandwidth = 1*DIGIT | |||
; sub-rules of 't=' | ; sub-rules of 't=' | |||
start-time = time | "0" | start-time = time | "0" | |||
stop-time = time | "0" | stop-time = time | "0" | |||
skipping to change at page 36, line 35 ¶ | skipping to change at page 36, line 35 ¶ | |||
;should in the range "1024" to "65535" inclusive | ;should in the range "1024" to "65535" inclusive | |||
;for UDP based media | ;for UDP based media | |||
; generic sub-rules: addressing | ; generic sub-rules: addressing | |||
multicast-address = addr "/" ttl [ "/" integer ] | multicast-address = addr "/" ttl [ "/" integer ] | |||
;IPv4 multicast addresses must be in the range | ;IPv4 multicast addresses must be in the range | |||
;224.0.0.0 to 239.255.255.255 | ;224.0.0.0 to 239.255.255.255 | |||
;IPv6 multicast addresses must begin with the byte | ;IPv6 multicast addresses must begin with the byte | |||
;FF or include an IPv4 multicast address | ;FF or include an IPv4 multicast address | |||
unicast-address = addr | ||||
; a unicast address or domain name | ||||
ttl = (POS-DIGIT *2DIGIT) | "0" | ttl = (POS-DIGIT *2DIGIT) | "0" | |||
addr = IPv4address | IPv6address | FQDN | extension-addr | addr = IPv4address | IPv6address | FQDN | extension-addr | |||
FQDN = *( domainlabel "." ) toplabel | FQDN = *( domainlabel "." ) toplabel | |||
domainlabel = alpha-numeric restoflabel | domainlabel = alpha-numeric restoflabel | |||
toplabel = ALPHA restoflabel | toplabel = ALPHA restoflabel | |||
restoflabel = *(*("-") alpha-numeric) | restoflabel = *(*("-") alpha-numeric) | |||
extension-addr = non-ws-string | extension-addr = non-ws-string | |||
; generic sub-rules: datatypes | ; generic sub-rules: datatypes | |||
text = byte-string | text = byte-string | |||
skipping to change at page 43, line 7 ¶ | skipping to change at page 43, line 7 ¶ | |||
o a reference to the specification (eg RFC number) of the registered | o a reference to the specification (eg RFC number) of the registered | |||
name. | name. | |||
IANA may refer any registration to the IESG or to any appropriate IETF | IANA may refer any registration to the IESG or to any appropriate IETF | |||
working group for review, and may request revisions to be made before a | working group for review, and may request revisions to be made before a | |||
registration will be made. | registration will be made. | |||
Appendix C: Changes from RFC 2327 | Appendix C: Changes from RFC 2327 | |||
o Clarify that a=recvonly does NOT mean that you don't send RTCP, and | ||||
similarly for sendonly and inactive. These only effect the RTP | ||||
stream. | ||||
o Rewrite the ABNF syntax (thanks to Jonathan Lennox) | o Rewrite the ABNF syntax (thanks to Jonathan Lennox) | |||
o Add a=inactive attribute. | o Add a=inactive attribute. | |||
o Add a=maxptime attribute. | o Add a=maxptime attribute. | |||
o RFC 2327 mandated that either e= or p= was required. Both are now | o RFC 2327 mandated that either e= or p= was required. Both are now | |||
optional, to reflect actual usage. | optional, to reflect actual usage. | |||
o Removed references to "conference" from the description of the t= | o Removed references to "conference" from the description of the t= | |||
End of changes. 14 change blocks. | ||||
15 lines changed or deleted | 29 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/ |