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/