--- 1/draft-ietf-mmusic-sdp-new-04.txt 2006-02-05 00:28:35.000000000 +0100 +++ 2/draft-ietf-mmusic-sdp-new-05.txt 2006-02-05 00:28:35.000000000 +0100 @@ -1,17 +1,17 @@ Internet Engineering Task Force MMUSIC WG 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 - 21 November 2001 - Expires: May 2002 + 8 February 2002 + Expires: August 2002 SDP: Session Description Protocol Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups @@ -453,40 +453,41 @@ In general, the ``o='' field serves as a globally unique identifier for this version of this session description, and the subfields excepting the version taken together identify the session irrespective of any modifications. Session Name s= 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 -characters (but see also the `charset' attribute below). If a session -has no meaningful name, the value ``s=-'' SHOULD be used. +``s='' field per session description. The ``s='' field MUST NOT be empty +and SHOULD contain ISO 10646 characters (but see also the `charset' +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 i= 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 ``i='' field per media. Although it may be omitted, this is NOT RECOMMENDED for session announcements, and user interfaces for composing sessions should require text to be entered. If it is present it must contain ISO 10646 characters (but see also the `charset' attribute below). A single ``i='' field can also be used for each media definition. In 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. An example would be two different whiteboards, one for slides and one for feedback and questions. URI u= o A URI is a Universal Resource Identifier as used by WWW clients @@ -984,25 +985,25 @@ provide a dynamic binding of media encoding to RTP payload type. 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 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 types and the payload type number along with additional encoding information should be used for dynamically allocated payload types. 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 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 audio sampled at 16KHz. If we wish to use dynamic RTP/AVP payload type 98 for such a stream, additional information is required to decode it: m=video 49232 RTP/AVP 98 a=rtpmap:98 L16/16000/2 The general form of an rtpmap attribute is: @@ -1105,42 +1106,48 @@ ignore this attribute. a=rtpmap: /[/] See the section on Media Announcements (the ``m='' field). This is a media attribute. a=recvonly This specifies that the tools should be started in receive-only mode 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 This specifies that the tools should be started in send and receive mode. This is necessary for interactive conferences with tools such as wb which defaults to receive only mode. It can be either a session or media attribute, and is not dependent on charset. a=sendonly 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 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 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 This specifies that the tools should be started in inactive mode. This is necessary for interactive conferences where users can put 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 - on charset. + Note that an RTP based system SHOULD still send RTCP, even if + started inactive. It can be either a session or media attribute, and + is not dependent on charset. a=orient: Normally this is only used in a whiteboard media specification. It specifies the orientation of a the whiteboard on the screen. It is a media attribute. Permitted values are `portrait', `landscape' and `seascape' (upside down landscape). It is not dependent on charset a=type: This specifies the type of the conference. Suggested values are `broadcast', `meeting', `moderated', `test' and `H332'. `recvonly' @@ -1376,21 +1384,21 @@ key-field attribute-fields media-descriptions proto-version = "v=" 1*DIGIT CRLF ;this memo describes version 0 origin-field = "o=" username SP sess-id SP sess-version SP nettype SP addrtype SP addr CRLF - session-name-field = ["s=" text CRLF] + session-name-field = "s=" text CRLF information-field = ["i=" text CRLF] uri-field = ["u=" uri CRLF] email-fields = *("e=" email-address CRLF) phone-fields = *("p=" phone-number CRLF) connection-field = ["c=" nettype SP addrtype SP connection-address CRLF] @@ -1456,21 +1464,21 @@ phone phone = "+" POS-DIGIT 1*(SP | "-" | DIGIT) ;there must be a space or hyphen between the ;international code and the rest of the number. ; Should this use the tel: URL syntax? ; sub-rules of 'c=' connection-address = multicast-address - | addr + | unicast-address ; sub-rules of 'b=' bwtype = token bandwidth = 1*DIGIT ; sub-rules of 't=' start-time = time | "0" stop-time = time | "0" @@ -1523,25 +1531,28 @@ ;should in the range "1024" to "65535" inclusive ;for UDP based media ; generic sub-rules: addressing multicast-address = addr "/" ttl [ "/" integer ] ;IPv4 multicast addresses must be in the range ;224.0.0.0 to 239.255.255.255 ;IPv6 multicast addresses must begin with the byte ;FF or include an IPv4 multicast address + unicast-address = addr + ; a unicast address or domain name + ttl = (POS-DIGIT *2DIGIT) | "0" addr = IPv4address | IPv6address | FQDN | extension-addr - FQDN = *( domainlabel "." ) toplabel + domainlabel = alpha-numeric restoflabel toplabel = ALPHA restoflabel restoflabel = *(*("-") alpha-numeric) extension-addr = non-ws-string ; generic sub-rules: datatypes text = byte-string @@ -1739,20 +1750,24 @@ o a reference to the specification (eg RFC number) of the registered name. 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 registration will be made. 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 Add a=inactive attribute. o Add a=maxptime attribute. o RFC 2327 mandated that either e= or p= was required. Both are now optional, to reflect actual usage. o Removed references to "conference" from the description of the t=