153a5a1b3Sopenharmony_ci 253a5a1b3Sopenharmony_ci 353a5a1b3Sopenharmony_ci 453a5a1b3Sopenharmony_ci 553a5a1b3Sopenharmony_ci 653a5a1b3Sopenharmony_ci 753a5a1b3Sopenharmony_ciNetwork Working Group M. Handley 853a5a1b3Sopenharmony_ciRequest for Comments: 2327 V. Jacobson 953a5a1b3Sopenharmony_ciCategory: Standards Track ISI/LBNL 1053a5a1b3Sopenharmony_ci April 1998 1153a5a1b3Sopenharmony_ci 1253a5a1b3Sopenharmony_ci 1353a5a1b3Sopenharmony_ci SDP: Session Description Protocol 1453a5a1b3Sopenharmony_ci 1553a5a1b3Sopenharmony_ciStatus of this Memo 1653a5a1b3Sopenharmony_ci 1753a5a1b3Sopenharmony_ci This document specifies an Internet standards track protocol for the 1853a5a1b3Sopenharmony_ci Internet community, and requests discussion and suggestions for 1953a5a1b3Sopenharmony_ci improvements. Please refer to the current edition of the "Internet 2053a5a1b3Sopenharmony_ci Official Protocol Standards" (STD 1) for the standardization state 2153a5a1b3Sopenharmony_ci and status of this protocol. Distribution of this memo is unlimited. 2253a5a1b3Sopenharmony_ci 2353a5a1b3Sopenharmony_ciCopyright Notice 2453a5a1b3Sopenharmony_ci 2553a5a1b3Sopenharmony_ci Copyright (C) The Internet Society (1998). All Rights Reserved. 2653a5a1b3Sopenharmony_ci 2753a5a1b3Sopenharmony_ciAbstract 2853a5a1b3Sopenharmony_ci 2953a5a1b3Sopenharmony_ci This document defines the Session Description Protocol, SDP. SDP is 3053a5a1b3Sopenharmony_ci intended for describing multimedia sessions for the purposes of 3153a5a1b3Sopenharmony_ci session announcement, session invitation, and other forms of 3253a5a1b3Sopenharmony_ci multimedia session initiation. 3353a5a1b3Sopenharmony_ci 3453a5a1b3Sopenharmony_ci This document is a product of the Multiparty Multimedia Session 3553a5a1b3Sopenharmony_ci Control (MMUSIC) working group of the Internet Engineering Task 3653a5a1b3Sopenharmony_ci Force. Comments are solicited and should be addressed to the working 3753a5a1b3Sopenharmony_ci group's mailing list at confctrl@isi.edu and/or the authors. 3853a5a1b3Sopenharmony_ci 3953a5a1b3Sopenharmony_ci1. Introduction 4053a5a1b3Sopenharmony_ci 4153a5a1b3Sopenharmony_ci On the Internet multicast backbone (Mbone), a session directory tool 4253a5a1b3Sopenharmony_ci is used to advertise multimedia conferences and communicate the 4353a5a1b3Sopenharmony_ci conference addresses and conference tool-specific information 4453a5a1b3Sopenharmony_ci necessary for participation. This document defines a session 4553a5a1b3Sopenharmony_ci description protocol for this purpose, and for general real-time 4653a5a1b3Sopenharmony_ci multimedia session description purposes. This memo does not describe 4753a5a1b3Sopenharmony_ci multicast address allocation or the distribution of SDP messages in 4853a5a1b3Sopenharmony_ci detail. These are described in accompanying memos. SDP is not 4953a5a1b3Sopenharmony_ci intended for negotiation of media encodings. 5053a5a1b3Sopenharmony_ci 5153a5a1b3Sopenharmony_ci 5253a5a1b3Sopenharmony_ci 5353a5a1b3Sopenharmony_ci 5453a5a1b3Sopenharmony_ci 5553a5a1b3Sopenharmony_ci 5653a5a1b3Sopenharmony_ci 5753a5a1b3Sopenharmony_ci 5853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 1] 5953a5a1b3Sopenharmony_ci 6053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 6153a5a1b3Sopenharmony_ci 6253a5a1b3Sopenharmony_ci 6353a5a1b3Sopenharmony_ci2. Background 6453a5a1b3Sopenharmony_ci 6553a5a1b3Sopenharmony_ci The Mbone is the part of the internet that supports IP multicast, and 6653a5a1b3Sopenharmony_ci thus permits efficient many-to-many communication. It is used 6753a5a1b3Sopenharmony_ci extensively for multimedia conferencing. Such conferences usually 6853a5a1b3Sopenharmony_ci have the property that tight coordination of conference membership is 6953a5a1b3Sopenharmony_ci not necessary; to receive a conference, a user at an Mbone site only 7053a5a1b3Sopenharmony_ci has to know the conference's multicast group address and the UDP 7153a5a1b3Sopenharmony_ci ports for the conference data streams. 7253a5a1b3Sopenharmony_ci 7353a5a1b3Sopenharmony_ci Session directories assist the advertisement of conference sessions 7453a5a1b3Sopenharmony_ci and communicate the relevant conference setup information to 7553a5a1b3Sopenharmony_ci prospective participants. SDP is designed to convey such information 7653a5a1b3Sopenharmony_ci to recipients. SDP is purely a format for session description - it 7753a5a1b3Sopenharmony_ci does not incorporate a transport protocol, and is intended to use 7853a5a1b3Sopenharmony_ci different transport protocols as appropriate including the Session 7953a5a1b3Sopenharmony_ci Announcement Protocol [4], Session Initiation Protocol [11], Real- 8053a5a1b3Sopenharmony_ci Time Streaming Protocol [12], electronic mail using the MIME 8153a5a1b3Sopenharmony_ci extensions, and the Hypertext Transport Protocol. 8253a5a1b3Sopenharmony_ci 8353a5a1b3Sopenharmony_ci SDP is intended to be general purpose so that it can be used for a 8453a5a1b3Sopenharmony_ci wider range of network environments and applications than just 8553a5a1b3Sopenharmony_ci multicast session directories. However, it is not intended to 8653a5a1b3Sopenharmony_ci support negotiation of session content or media encodings - this is 8753a5a1b3Sopenharmony_ci viewed as outside the scope of session description. 8853a5a1b3Sopenharmony_ci 8953a5a1b3Sopenharmony_ci3. Glossary of Terms 9053a5a1b3Sopenharmony_ci 9153a5a1b3Sopenharmony_ci The following terms are used in this document, and have specific 9253a5a1b3Sopenharmony_ci meaning within the context of this document. 9353a5a1b3Sopenharmony_ci 9453a5a1b3Sopenharmony_ci Conference 9553a5a1b3Sopenharmony_ci A multimedia conference is a set of two or more communicating users 9653a5a1b3Sopenharmony_ci along with the software they are using to communicate. 9753a5a1b3Sopenharmony_ci 9853a5a1b3Sopenharmony_ci Session 9953a5a1b3Sopenharmony_ci A multimedia session is a set of multimedia senders and receivers 10053a5a1b3Sopenharmony_ci and the data streams flowing from senders to receivers. A 10153a5a1b3Sopenharmony_ci multimedia conference is an example of a multimedia session. 10253a5a1b3Sopenharmony_ci 10353a5a1b3Sopenharmony_ci Session Advertisement 10453a5a1b3Sopenharmony_ci See session announcement. 10553a5a1b3Sopenharmony_ci 10653a5a1b3Sopenharmony_ci Session Announcement 10753a5a1b3Sopenharmony_ci A session announcement is a mechanism by which a session 10853a5a1b3Sopenharmony_ci description is conveyed to users in a proactive fashion, i.e., the 10953a5a1b3Sopenharmony_ci session description was not explicitly requested by the user. 11053a5a1b3Sopenharmony_ci 11153a5a1b3Sopenharmony_ci 11253a5a1b3Sopenharmony_ci 11353a5a1b3Sopenharmony_ci 11453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 2] 11553a5a1b3Sopenharmony_ci 11653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 11753a5a1b3Sopenharmony_ci 11853a5a1b3Sopenharmony_ci 11953a5a1b3Sopenharmony_ci Session Description 12053a5a1b3Sopenharmony_ci A well defined format for conveying sufficient information to 12153a5a1b3Sopenharmony_ci discover and participate in a multimedia session. 12253a5a1b3Sopenharmony_ci 12353a5a1b3Sopenharmony_ci3.1. Terminology 12453a5a1b3Sopenharmony_ci 12553a5a1b3Sopenharmony_ci The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 12653a5a1b3Sopenharmony_ci "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 12753a5a1b3Sopenharmony_ci document are to be interpreted as described in RFC 2119. 12853a5a1b3Sopenharmony_ci 12953a5a1b3Sopenharmony_ci4. SDP Usage 13053a5a1b3Sopenharmony_ci 13153a5a1b3Sopenharmony_ci4.1. Multicast Announcements 13253a5a1b3Sopenharmony_ci 13353a5a1b3Sopenharmony_ci SDP is a session description protocol for multimedia sessions. A 13453a5a1b3Sopenharmony_ci common mode of usage is for a client to announce a conference session 13553a5a1b3Sopenharmony_ci by periodically multicasting an announcement packet to a well known 13653a5a1b3Sopenharmony_ci multicast address and port using the Session Announcement Protocol 13753a5a1b3Sopenharmony_ci (SAP). 13853a5a1b3Sopenharmony_ci 13953a5a1b3Sopenharmony_ci SAP packets are UDP packets with the following format: 14053a5a1b3Sopenharmony_ci 14153a5a1b3Sopenharmony_ci |--------------------| 14253a5a1b3Sopenharmony_ci | SAP header | 14353a5a1b3Sopenharmony_ci |--------------------| 14453a5a1b3Sopenharmony_ci | text payload | 14553a5a1b3Sopenharmony_ci |////////// 14653a5a1b3Sopenharmony_ci 14753a5a1b3Sopenharmony_ci 14853a5a1b3Sopenharmony_ci The header is the Session Announcement Protocol header. SAP is 14953a5a1b3Sopenharmony_ci described in more detail in a companion memo [4] 15053a5a1b3Sopenharmony_ci 15153a5a1b3Sopenharmony_ci The text payload is an SDP session description, as described in this 15253a5a1b3Sopenharmony_ci memo. The text payload should be no greater than 1 Kbyte in length. 15353a5a1b3Sopenharmony_ci If announced by SAP, only one session announcement is permitted in a 15453a5a1b3Sopenharmony_ci single packet. 15553a5a1b3Sopenharmony_ci 15653a5a1b3Sopenharmony_ci4.2. Email and WWW Announcements 15753a5a1b3Sopenharmony_ci 15853a5a1b3Sopenharmony_ci Alternative means of conveying session descriptions include 15953a5a1b3Sopenharmony_ci electronic mail and the World Wide Web. For both email and WWW 16053a5a1b3Sopenharmony_ci distribution, the use of the MIME content type "application/sdp" 16153a5a1b3Sopenharmony_ci should be used. This enables the automatic launching of applications 16253a5a1b3Sopenharmony_ci for participation in the session from the WWW client or mail reader 16353a5a1b3Sopenharmony_ci in a standard manner. 16453a5a1b3Sopenharmony_ci 16553a5a1b3Sopenharmony_ci 16653a5a1b3Sopenharmony_ci 16753a5a1b3Sopenharmony_ci 16853a5a1b3Sopenharmony_ci 16953a5a1b3Sopenharmony_ci 17053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 3] 17153a5a1b3Sopenharmony_ci 17253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 17353a5a1b3Sopenharmony_ci 17453a5a1b3Sopenharmony_ci 17553a5a1b3Sopenharmony_ci Note that announcements of multicast sessions made only via email or 17653a5a1b3Sopenharmony_ci the World Wide Web (WWW) do not have the property that the receiver 17753a5a1b3Sopenharmony_ci of a session announcement can necessarily receive the session because 17853a5a1b3Sopenharmony_ci the multicast sessions may be restricted in scope, and access to the 17953a5a1b3Sopenharmony_ci WWW server or reception of email is possible outside this scope. SAP 18053a5a1b3Sopenharmony_ci announcements do not suffer from this mismatch. 18153a5a1b3Sopenharmony_ci 18253a5a1b3Sopenharmony_ci5. Requirements and Recommendations 18353a5a1b3Sopenharmony_ci 18453a5a1b3Sopenharmony_ci The purpose of SDP is to convey information about media streams in 18553a5a1b3Sopenharmony_ci multimedia sessions to allow the recipients of a session description 18653a5a1b3Sopenharmony_ci to participate in the session. SDP is primarily intended for use in 18753a5a1b3Sopenharmony_ci an internetwork, although it is sufficiently general that it can 18853a5a1b3Sopenharmony_ci describe conferences in other network environments. 18953a5a1b3Sopenharmony_ci 19053a5a1b3Sopenharmony_ci A multimedia session, for these purposes, is defined as a set of 19153a5a1b3Sopenharmony_ci media streams that exist for some duration of time. Media streams 19253a5a1b3Sopenharmony_ci can be many-to-many. The times during which the session is active 19353a5a1b3Sopenharmony_ci need not be continuous. 19453a5a1b3Sopenharmony_ci 19553a5a1b3Sopenharmony_ci Thus far, multicast based sessions on the Internet have differed from 19653a5a1b3Sopenharmony_ci many other forms of conferencing in that anyone receiving the traffic 19753a5a1b3Sopenharmony_ci can join the session (unless the session traffic is encrypted). In 19853a5a1b3Sopenharmony_ci such an environment, SDP serves two primary purposes. It is a means 19953a5a1b3Sopenharmony_ci to communicate the existence of a session, and is a means to convey 20053a5a1b3Sopenharmony_ci sufficient information to enable joining and participating in the 20153a5a1b3Sopenharmony_ci session. In a unicast environment, only the latter purpose is likely 20253a5a1b3Sopenharmony_ci to be relevant. 20353a5a1b3Sopenharmony_ci 20453a5a1b3Sopenharmony_ci Thus SDP includes: 20553a5a1b3Sopenharmony_ci 20653a5a1b3Sopenharmony_ci o Session name and purpose 20753a5a1b3Sopenharmony_ci 20853a5a1b3Sopenharmony_ci o Time(s) the session is active 20953a5a1b3Sopenharmony_ci 21053a5a1b3Sopenharmony_ci o The media comprising the session 21153a5a1b3Sopenharmony_ci 21253a5a1b3Sopenharmony_ci o Information to receive those media (addresses, ports, formats and 21353a5a1b3Sopenharmony_ci so on) 21453a5a1b3Sopenharmony_ci 21553a5a1b3Sopenharmony_ci As resources necessary to participate in a session may be limited, 21653a5a1b3Sopenharmony_ci some additional information may also be desirable: 21753a5a1b3Sopenharmony_ci 21853a5a1b3Sopenharmony_ci o Information about the bandwidth to be used by the conference 21953a5a1b3Sopenharmony_ci 22053a5a1b3Sopenharmony_ci o Contact information for the person responsible for the session 22153a5a1b3Sopenharmony_ci 22253a5a1b3Sopenharmony_ci 22353a5a1b3Sopenharmony_ci 22453a5a1b3Sopenharmony_ci 22553a5a1b3Sopenharmony_ci 22653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 4] 22753a5a1b3Sopenharmony_ci 22853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 22953a5a1b3Sopenharmony_ci 23053a5a1b3Sopenharmony_ci 23153a5a1b3Sopenharmony_ci In general, SDP must convey sufficient information to be able to join 23253a5a1b3Sopenharmony_ci a session (with the possible exception of encryption keys) and to 23353a5a1b3Sopenharmony_ci announce the resources to be used to non-participants that may need 23453a5a1b3Sopenharmony_ci to know. 23553a5a1b3Sopenharmony_ci 23653a5a1b3Sopenharmony_ci5.1. Media Information 23753a5a1b3Sopenharmony_ci 23853a5a1b3Sopenharmony_ci SDP includes: 23953a5a1b3Sopenharmony_ci 24053a5a1b3Sopenharmony_ci o The type of media (video, audio, etc) 24153a5a1b3Sopenharmony_ci 24253a5a1b3Sopenharmony_ci o The transport protocol (RTP/UDP/IP, H.320, etc) 24353a5a1b3Sopenharmony_ci 24453a5a1b3Sopenharmony_ci o The format of the media (H.261 video, MPEG video, etc) 24553a5a1b3Sopenharmony_ci 24653a5a1b3Sopenharmony_ci For an IP multicast session, the following are also conveyed: 24753a5a1b3Sopenharmony_ci 24853a5a1b3Sopenharmony_ci o Multicast address for media 24953a5a1b3Sopenharmony_ci 25053a5a1b3Sopenharmony_ci o Transport Port for media 25153a5a1b3Sopenharmony_ci 25253a5a1b3Sopenharmony_ci This address and port are the destination address and destination 25353a5a1b3Sopenharmony_ci port of the multicast stream, whether being sent, received, or both. 25453a5a1b3Sopenharmony_ci 25553a5a1b3Sopenharmony_ci For an IP unicast session, the following are conveyed: 25653a5a1b3Sopenharmony_ci 25753a5a1b3Sopenharmony_ci o Remote address for media 25853a5a1b3Sopenharmony_ci 25953a5a1b3Sopenharmony_ci o Transport port for contact address 26053a5a1b3Sopenharmony_ci 26153a5a1b3Sopenharmony_ci The semantics of this address and port depend on the media and 26253a5a1b3Sopenharmony_ci transport protocol defined. By default, this is the remote address 26353a5a1b3Sopenharmony_ci and remote port to which data is sent, and the remote address and 26453a5a1b3Sopenharmony_ci local port on which to receive data. However, some media may define 26553a5a1b3Sopenharmony_ci to use these to establish a control channel for the actual media 26653a5a1b3Sopenharmony_ci flow. 26753a5a1b3Sopenharmony_ci 26853a5a1b3Sopenharmony_ci5.2. Timing Information 26953a5a1b3Sopenharmony_ci 27053a5a1b3Sopenharmony_ci Sessions may either be bounded or unbounded in time. Whether or not 27153a5a1b3Sopenharmony_ci they are bounded, they may be only active at specific times. 27253a5a1b3Sopenharmony_ci 27353a5a1b3Sopenharmony_ci SDP can convey: 27453a5a1b3Sopenharmony_ci 27553a5a1b3Sopenharmony_ci o An arbitrary list of start and stop times bounding the session 27653a5a1b3Sopenharmony_ci 27753a5a1b3Sopenharmony_ci o For each bound, repeat times such as "every Wednesday at 10am for 27853a5a1b3Sopenharmony_ci one hour" 27953a5a1b3Sopenharmony_ci 28053a5a1b3Sopenharmony_ci 28153a5a1b3Sopenharmony_ci 28253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 5] 28353a5a1b3Sopenharmony_ci 28453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 28553a5a1b3Sopenharmony_ci 28653a5a1b3Sopenharmony_ci 28753a5a1b3Sopenharmony_ci This timing information is globally consistent, irrespective of local 28853a5a1b3Sopenharmony_ci time zone or daylight saving time. 28953a5a1b3Sopenharmony_ci 29053a5a1b3Sopenharmony_ci5.3. Private Sessions 29153a5a1b3Sopenharmony_ci 29253a5a1b3Sopenharmony_ci It is possible to create both public sessions and private sessions. 29353a5a1b3Sopenharmony_ci Private sessions will typically be conveyed by encrypting the session 29453a5a1b3Sopenharmony_ci description to distribute it. The details of how encryption is 29553a5a1b3Sopenharmony_ci performed are dependent on the mechanism used to convey SDP - see [4] 29653a5a1b3Sopenharmony_ci for how this is done for session announcements. 29753a5a1b3Sopenharmony_ci 29853a5a1b3Sopenharmony_ci If a session announcement is private it is possible to use that 29953a5a1b3Sopenharmony_ci private announcement to convey encryption keys necessary to decode 30053a5a1b3Sopenharmony_ci each of the media in a conference, including enough information to 30153a5a1b3Sopenharmony_ci know which encryption scheme is used for each media. 30253a5a1b3Sopenharmony_ci 30353a5a1b3Sopenharmony_ci5.4. Obtaining Further Information about a Session 30453a5a1b3Sopenharmony_ci 30553a5a1b3Sopenharmony_ci A session description should convey enough information to decide 30653a5a1b3Sopenharmony_ci whether or not to participate in a session. SDP may include 30753a5a1b3Sopenharmony_ci additional pointers in the form of Universal Resources Identifiers 30853a5a1b3Sopenharmony_ci (URIs) for more information about the session. 30953a5a1b3Sopenharmony_ci 31053a5a1b3Sopenharmony_ci5.5. Categorisation 31153a5a1b3Sopenharmony_ci 31253a5a1b3Sopenharmony_ci When many session descriptions are being distributed by SAP or any 31353a5a1b3Sopenharmony_ci other advertisement mechanism, it may be desirable to filter 31453a5a1b3Sopenharmony_ci announcements that are of interest from those that are not. SDP 31553a5a1b3Sopenharmony_ci supports a categorisation mechanism for sessions that is capable of 31653a5a1b3Sopenharmony_ci being automated. 31753a5a1b3Sopenharmony_ci 31853a5a1b3Sopenharmony_ci5.6. Internationalization 31953a5a1b3Sopenharmony_ci 32053a5a1b3Sopenharmony_ci The SDP specification recommends the use of the ISO 10646 character 32153a5a1b3Sopenharmony_ci sets in the UTF-8 encoding (RFC 2044) to allow many different 32253a5a1b3Sopenharmony_ci languages to be represented. However, to assist in compact 32353a5a1b3Sopenharmony_ci representations, SDP also allows other character sets such as ISO 32453a5a1b3Sopenharmony_ci 8859-1 to be used when desired. Internationalization only applies to 32553a5a1b3Sopenharmony_ci free-text fields (session name and background information), and not 32653a5a1b3Sopenharmony_ci to SDP as a whole. 32753a5a1b3Sopenharmony_ci 32853a5a1b3Sopenharmony_ci6. SDP Specification 32953a5a1b3Sopenharmony_ci 33053a5a1b3Sopenharmony_ci SDP session descriptions are entirely textual using the ISO 10646 33153a5a1b3Sopenharmony_ci character set in UTF-8 encoding. SDP field names and attributes names 33253a5a1b3Sopenharmony_ci use only the US-ASCII subset of UTF-8, but textual fields and 33353a5a1b3Sopenharmony_ci attribute values may use the full ISO 10646 character set. The 33453a5a1b3Sopenharmony_ci textual form, as opposed to a binary encoding such as ASN/1 or XDR, 33553a5a1b3Sopenharmony_ci 33653a5a1b3Sopenharmony_ci 33753a5a1b3Sopenharmony_ci 33853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 6] 33953a5a1b3Sopenharmony_ci 34053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 34153a5a1b3Sopenharmony_ci 34253a5a1b3Sopenharmony_ci 34353a5a1b3Sopenharmony_ci was chosen to enhance portability, to enable a variety of transports 34453a5a1b3Sopenharmony_ci to be used (e.g, session description in a MIME email message) and to 34553a5a1b3Sopenharmony_ci allow flexible, text-based toolkits (e.g., Tcl/Tk ) to be used to 34653a5a1b3Sopenharmony_ci generate and to process session descriptions. However, since the 34753a5a1b3Sopenharmony_ci total bandwidth allocated to all SAP announcements is strictly 34853a5a1b3Sopenharmony_ci limited, the encoding is deliberately compact. Also, since 34953a5a1b3Sopenharmony_ci announcements may be transported via very unreliable means (e.g., 35053a5a1b3Sopenharmony_ci email) or damaged by an intermediate caching server, the encoding was 35153a5a1b3Sopenharmony_ci designed with strict order and formatting rules so that most errors 35253a5a1b3Sopenharmony_ci would result in malformed announcements which could be detected 35353a5a1b3Sopenharmony_ci easily and discarded. This also allows rapid discarding of encrypted 35453a5a1b3Sopenharmony_ci announcements for which a receiver does not have the correct key. 35553a5a1b3Sopenharmony_ci 35653a5a1b3Sopenharmony_ci An SDP session description consists of a number of lines of text of 35753a5a1b3Sopenharmony_ci the form <type>=<value> <type> is always exactly one character and is 35853a5a1b3Sopenharmony_ci case-significant. <value> is a structured text string whose format 35953a5a1b3Sopenharmony_ci depends on <type>. It also will be case-significant unless a 36053a5a1b3Sopenharmony_ci specific field defines otherwise. Whitespace is not permitted either 36153a5a1b3Sopenharmony_ci side of the `=' sign. In general <value> is either a number of fields 36253a5a1b3Sopenharmony_ci delimited by a single space character or a free format string. 36353a5a1b3Sopenharmony_ci 36453a5a1b3Sopenharmony_ci A session description consists of a session-level description 36553a5a1b3Sopenharmony_ci (details that apply to the whole session and all media streams) and 36653a5a1b3Sopenharmony_ci optionally several media-level descriptions (details that apply onto 36753a5a1b3Sopenharmony_ci to a single media stream). 36853a5a1b3Sopenharmony_ci 36953a5a1b3Sopenharmony_ci An announcement consists of a session-level section followed by zero 37053a5a1b3Sopenharmony_ci or more media-level sections. The session-level part starts with a 37153a5a1b3Sopenharmony_ci `v=' line and continues to the first media-level section. The media 37253a5a1b3Sopenharmony_ci description starts with an `m=' line and continues to the next media 37353a5a1b3Sopenharmony_ci description or end of the whole session description. In general, 37453a5a1b3Sopenharmony_ci session-level values are the default for all media unless overridden 37553a5a1b3Sopenharmony_ci by an equivalent media-level value. 37653a5a1b3Sopenharmony_ci 37753a5a1b3Sopenharmony_ci When SDP is conveyed by SAP, only one session description is allowed 37853a5a1b3Sopenharmony_ci per packet. When SDP is conveyed by other means, many SDP session 37953a5a1b3Sopenharmony_ci descriptions may be concatenated together (the `v=' line indicating 38053a5a1b3Sopenharmony_ci the start of a session description terminates the previous 38153a5a1b3Sopenharmony_ci description). Some lines in each description are required and some 38253a5a1b3Sopenharmony_ci are optional but all must appear in exactly the order given here (the 38353a5a1b3Sopenharmony_ci fixed order greatly enhances error detection and allows for a simple 38453a5a1b3Sopenharmony_ci parser). Optional items are marked with a `*'. 38553a5a1b3Sopenharmony_ci 38653a5a1b3Sopenharmony_ciSession description 38753a5a1b3Sopenharmony_ci v= (protocol version) 38853a5a1b3Sopenharmony_ci o= (owner/creator and session identifier). 38953a5a1b3Sopenharmony_ci s= (session name) 39053a5a1b3Sopenharmony_ci i=* (session information) 39153a5a1b3Sopenharmony_ci 39253a5a1b3Sopenharmony_ci 39353a5a1b3Sopenharmony_ci 39453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 7] 39553a5a1b3Sopenharmony_ci 39653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 39753a5a1b3Sopenharmony_ci 39853a5a1b3Sopenharmony_ci 39953a5a1b3Sopenharmony_ci u=* (URI of description) 40053a5a1b3Sopenharmony_ci e=* (email address) 40153a5a1b3Sopenharmony_ci p=* (phone number) 40253a5a1b3Sopenharmony_ci c=* (connection information - not required if included in all media) 40353a5a1b3Sopenharmony_ci b=* (bandwidth information) 40453a5a1b3Sopenharmony_ci One or more time descriptions (see below) 40553a5a1b3Sopenharmony_ci z=* (time zone adjustments) 40653a5a1b3Sopenharmony_ci k=* (encryption key) 40753a5a1b3Sopenharmony_ci a=* (zero or more session attribute lines) 40853a5a1b3Sopenharmony_ci Zero or more media descriptions (see below) 40953a5a1b3Sopenharmony_ci 41053a5a1b3Sopenharmony_ciTime description 41153a5a1b3Sopenharmony_ci t= (time the session is active) 41253a5a1b3Sopenharmony_ci r=* (zero or more repeat times) 41353a5a1b3Sopenharmony_ci 41453a5a1b3Sopenharmony_ciMedia description 41553a5a1b3Sopenharmony_ci m= (media name and transport address) 41653a5a1b3Sopenharmony_ci i=* (media title) 41753a5a1b3Sopenharmony_ci c=* (connection information - optional if included at session-level) 41853a5a1b3Sopenharmony_ci b=* (bandwidth information) 41953a5a1b3Sopenharmony_ci k=* (encryption key) 42053a5a1b3Sopenharmony_ci a=* (zero or more media attribute lines) 42153a5a1b3Sopenharmony_ci 42253a5a1b3Sopenharmony_ci The set of `type' letters is deliberately small and not intended to 42353a5a1b3Sopenharmony_ci be extensible -- SDP parsers must completely ignore any announcement 42453a5a1b3Sopenharmony_ci that contains a `type' letter that it does not understand. The 42553a5a1b3Sopenharmony_ci `attribute' mechanism ("a=" described below) is the primary means for 42653a5a1b3Sopenharmony_ci extending SDP and tailoring it to particular applications or media. 42753a5a1b3Sopenharmony_ci Some attributes (the ones listed in this document) have a defined 42853a5a1b3Sopenharmony_ci meaning but others may be added on an application-, media- or 42953a5a1b3Sopenharmony_ci session-specific basis. A session directory must ignore any 43053a5a1b3Sopenharmony_ci attribute it doesn't understand. 43153a5a1b3Sopenharmony_ci 43253a5a1b3Sopenharmony_ci The connection (`c=') and attribute (`a=') information in the 43353a5a1b3Sopenharmony_ci session-level section applies to all the media of that session unless 43453a5a1b3Sopenharmony_ci overridden by connection information or an attribute of the same name 43553a5a1b3Sopenharmony_ci in the media description. For instance, in the example below, each 43653a5a1b3Sopenharmony_ci media behaves as if it were given a `recvonly' attribute. 43753a5a1b3Sopenharmony_ci 43853a5a1b3Sopenharmony_ci An example SDP description is: 43953a5a1b3Sopenharmony_ci 44053a5a1b3Sopenharmony_ci v=0 44153a5a1b3Sopenharmony_ci o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 44253a5a1b3Sopenharmony_ci s=SDP Seminar 44353a5a1b3Sopenharmony_ci i=A Seminar on the session description protocol 44453a5a1b3Sopenharmony_ci u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps 44553a5a1b3Sopenharmony_ci e=mjh@isi.edu (Mark Handley) 44653a5a1b3Sopenharmony_ci c=IN IP4 224.2.17.12/127 44753a5a1b3Sopenharmony_ci 44853a5a1b3Sopenharmony_ci 44953a5a1b3Sopenharmony_ci 45053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 8] 45153a5a1b3Sopenharmony_ci 45253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 45353a5a1b3Sopenharmony_ci 45453a5a1b3Sopenharmony_ci 45553a5a1b3Sopenharmony_ci t=2873397496 2873404696 45653a5a1b3Sopenharmony_ci a=recvonly 45753a5a1b3Sopenharmony_ci m=audio 49170 RTP/AVP 0 45853a5a1b3Sopenharmony_ci m=video 51372 RTP/AVP 31 45953a5a1b3Sopenharmony_ci m=application 32416 udp wb 46053a5a1b3Sopenharmony_ci a=orient:portrait 46153a5a1b3Sopenharmony_ci 46253a5a1b3Sopenharmony_ci Text records such as the session name and information are bytes 46353a5a1b3Sopenharmony_ci strings which may contain any byte with the exceptions of 0x00 (Nul), 46453a5a1b3Sopenharmony_ci 0x0a (ASCII newline) and 0x0d (ASCII carriage return). The sequence 46553a5a1b3Sopenharmony_ci CRLF (0x0d0a) is used to end a record, although parsers should be 46653a5a1b3Sopenharmony_ci tolerant and also accept records terminated with a single newline 46753a5a1b3Sopenharmony_ci character. By default these byte strings contain ISO-10646 46853a5a1b3Sopenharmony_ci characters in UTF-8 encoding, but this default may be changed using 46953a5a1b3Sopenharmony_ci the `charset' attribute. 47053a5a1b3Sopenharmony_ci 47153a5a1b3Sopenharmony_ci Protocol Version 47253a5a1b3Sopenharmony_ci 47353a5a1b3Sopenharmony_ci v=0 47453a5a1b3Sopenharmony_ci 47553a5a1b3Sopenharmony_ci The "v=" field gives the version of the Session Description Protocol. 47653a5a1b3Sopenharmony_ci There is no minor version number. 47753a5a1b3Sopenharmony_ci 47853a5a1b3Sopenharmony_ci Origin 47953a5a1b3Sopenharmony_ci 48053a5a1b3Sopenharmony_ci o=<username> <session id> <version> <network type> <address type> 48153a5a1b3Sopenharmony_ci <address> 48253a5a1b3Sopenharmony_ci 48353a5a1b3Sopenharmony_ci The "o=" field gives the originator of the session (their username 48453a5a1b3Sopenharmony_ci and the address of the user's host) plus a session id and session 48553a5a1b3Sopenharmony_ci version number. 48653a5a1b3Sopenharmony_ci 48753a5a1b3Sopenharmony_ci <username> is the user's login on the originating host, or it is "-" 48853a5a1b3Sopenharmony_ci if the originating host does not support the concept of user ids. 48953a5a1b3Sopenharmony_ci <username> must not contain spaces. <session id> is a numeric string 49053a5a1b3Sopenharmony_ci such that the tuple of <username>, <session id>, <network type>, 49153a5a1b3Sopenharmony_ci <address type> and <address> form a globally unique identifier for 49253a5a1b3Sopenharmony_ci the session. 49353a5a1b3Sopenharmony_ci 49453a5a1b3Sopenharmony_ci The method of <session id> allocation is up to the creating tool, but 49553a5a1b3Sopenharmony_ci it has been suggested that a Network Time Protocol (NTP) timestamp be 49653a5a1b3Sopenharmony_ci used to ensure uniqueness [1]. 49753a5a1b3Sopenharmony_ci 49853a5a1b3Sopenharmony_ci <version> is a version number for this announcement. It is needed 49953a5a1b3Sopenharmony_ci for proxy announcements to detect which of several announcements for 50053a5a1b3Sopenharmony_ci the same session is the most recent. Again its usage is up to the 50153a5a1b3Sopenharmony_ci 50253a5a1b3Sopenharmony_ci 50353a5a1b3Sopenharmony_ci 50453a5a1b3Sopenharmony_ci 50553a5a1b3Sopenharmony_ci 50653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 9] 50753a5a1b3Sopenharmony_ci 50853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 50953a5a1b3Sopenharmony_ci 51053a5a1b3Sopenharmony_ci 51153a5a1b3Sopenharmony_ci creating tool, so long as <version> is increased when a modification 51253a5a1b3Sopenharmony_ci is made to the session data. Again, it is recommended (but not 51353a5a1b3Sopenharmony_ci mandatory) that an NTP timestamp is used. 51453a5a1b3Sopenharmony_ci 51553a5a1b3Sopenharmony_ci <network type> is a text string giving the type of network. 51653a5a1b3Sopenharmony_ci Initially "IN" is defined to have the meaning "Internet". <address 51753a5a1b3Sopenharmony_ci type> is a text string giving the type of the address that follows. 51853a5a1b3Sopenharmony_ci Initially "IP4" and "IP6" are defined. <address> is the globally 51953a5a1b3Sopenharmony_ci unique address of the machine from which the session was created. 52053a5a1b3Sopenharmony_ci For an address type of IP4, this is either the fully-qualified domain 52153a5a1b3Sopenharmony_ci name of the machine, or the dotted-decimal representation of the IP 52253a5a1b3Sopenharmony_ci version 4 address of the machine. For an address type of IP6, this 52353a5a1b3Sopenharmony_ci is either the fully-qualified domain name of the machine, or the 52453a5a1b3Sopenharmony_ci compressed textual representation of the IP version 6 address of the 52553a5a1b3Sopenharmony_ci machine. For both IP4 and IP6, the fully-qualified domain name is 52653a5a1b3Sopenharmony_ci the form that SHOULD be given unless this is unavailable, in which 52753a5a1b3Sopenharmony_ci case the globally unique address may be substituted. A local IP 52853a5a1b3Sopenharmony_ci address MUST NOT be used in any context where the SDP description 52953a5a1b3Sopenharmony_ci might leave the scope in which the address is meaningful. 53053a5a1b3Sopenharmony_ci 53153a5a1b3Sopenharmony_ci In general, the "o=" field serves as a globally unique identifier for 53253a5a1b3Sopenharmony_ci this version of this session description, and the subfields excepting 53353a5a1b3Sopenharmony_ci the version taken together identify the session irrespective of any 53453a5a1b3Sopenharmony_ci modifications. 53553a5a1b3Sopenharmony_ci 53653a5a1b3Sopenharmony_ci Session Name 53753a5a1b3Sopenharmony_ci 53853a5a1b3Sopenharmony_ci s=<session name> 53953a5a1b3Sopenharmony_ci 54053a5a1b3Sopenharmony_ci The "s=" field is the session name. There must be one and only one 54153a5a1b3Sopenharmony_ci "s=" field per session description, and it must contain ISO 10646 54253a5a1b3Sopenharmony_ci characters (but see also the `charset' attribute below). 54353a5a1b3Sopenharmony_ci 54453a5a1b3Sopenharmony_ci Session and Media Information 54553a5a1b3Sopenharmony_ci 54653a5a1b3Sopenharmony_ci i=<session description> 54753a5a1b3Sopenharmony_ci 54853a5a1b3Sopenharmony_ci The "i=" field is information about the session. There may be at 54953a5a1b3Sopenharmony_ci most one session-level "i=" field per session description, and at 55053a5a1b3Sopenharmony_ci most one "i=" field per media. Although it may be omitted, this is 55153a5a1b3Sopenharmony_ci discouraged for session announcements, and user interfaces for 55253a5a1b3Sopenharmony_ci composing sessions should require text to be entered. If it is 55353a5a1b3Sopenharmony_ci present it must contain ISO 10646 characters (but see also the 55453a5a1b3Sopenharmony_ci `charset' attribute below). 55553a5a1b3Sopenharmony_ci 55653a5a1b3Sopenharmony_ci A single "i=" field can also be used for each media definition. In 55753a5a1b3Sopenharmony_ci media definitions, "i=" fields are primarily intended for labeling 55853a5a1b3Sopenharmony_ci media streams. As such, they are most likely to be useful when a 55953a5a1b3Sopenharmony_ci 56053a5a1b3Sopenharmony_ci 56153a5a1b3Sopenharmony_ci 56253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 10] 56353a5a1b3Sopenharmony_ci 56453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 56553a5a1b3Sopenharmony_ci 56653a5a1b3Sopenharmony_ci 56753a5a1b3Sopenharmony_ci single session has more than one distinct media stream of the same 56853a5a1b3Sopenharmony_ci media type. An example would be two different whiteboards, one for 56953a5a1b3Sopenharmony_ci slides and one for feedback and questions. 57053a5a1b3Sopenharmony_ci 57153a5a1b3Sopenharmony_ci URI 57253a5a1b3Sopenharmony_ci 57353a5a1b3Sopenharmony_ci u=<URI> 57453a5a1b3Sopenharmony_ci 57553a5a1b3Sopenharmony_ci o A URI is a Universal Resource Identifier as used by WWW clients 57653a5a1b3Sopenharmony_ci 57753a5a1b3Sopenharmony_ci o The URI should be a pointer to additional information about the 57853a5a1b3Sopenharmony_ci conference 57953a5a1b3Sopenharmony_ci 58053a5a1b3Sopenharmony_ci o This field is optional, but if it is present it should be specified 58153a5a1b3Sopenharmony_ci before the first media field 58253a5a1b3Sopenharmony_ci 58353a5a1b3Sopenharmony_ci o No more than one URI field is allowed per session description 58453a5a1b3Sopenharmony_ci 58553a5a1b3Sopenharmony_ci 58653a5a1b3Sopenharmony_ci Email Address and Phone Number 58753a5a1b3Sopenharmony_ci 58853a5a1b3Sopenharmony_ci e=<email address> 58953a5a1b3Sopenharmony_ci p=<phone number> 59053a5a1b3Sopenharmony_ci 59153a5a1b3Sopenharmony_ci o These specify contact information for the person responsible for 59253a5a1b3Sopenharmony_ci the conference. This is not necessarily the same person that 59353a5a1b3Sopenharmony_ci created the conference announcement. 59453a5a1b3Sopenharmony_ci 59553a5a1b3Sopenharmony_ci o Either an email field or a phone field must be specified. 59653a5a1b3Sopenharmony_ci Additional email and phone fields are allowed. 59753a5a1b3Sopenharmony_ci 59853a5a1b3Sopenharmony_ci o If these are present, they should be specified before the first 59953a5a1b3Sopenharmony_ci media field. 60053a5a1b3Sopenharmony_ci 60153a5a1b3Sopenharmony_ci o More than one email or phone field can be given for a session 60253a5a1b3Sopenharmony_ci description. 60353a5a1b3Sopenharmony_ci 60453a5a1b3Sopenharmony_ci o Phone numbers should be given in the conventional international 60553a5a1b3Sopenharmony_ci 60653a5a1b3Sopenharmony_ci format - preceded by a "+ and the international country code. 60753a5a1b3Sopenharmony_ci There must be a space or a hyphen ("-") between the country code 60853a5a1b3Sopenharmony_ci and the rest of the phone number. Spaces and hyphens may be used 60953a5a1b3Sopenharmony_ci to split up a phone field to aid readability if desired. For 61053a5a1b3Sopenharmony_ci example: 61153a5a1b3Sopenharmony_ci 61253a5a1b3Sopenharmony_ci p=+44-171-380-7777 or p=+1 617 253 6011 61353a5a1b3Sopenharmony_ci 61453a5a1b3Sopenharmony_ci 61553a5a1b3Sopenharmony_ci 61653a5a1b3Sopenharmony_ci 61753a5a1b3Sopenharmony_ci 61853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 11] 61953a5a1b3Sopenharmony_ci 62053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 62153a5a1b3Sopenharmony_ci 62253a5a1b3Sopenharmony_ci 62353a5a1b3Sopenharmony_ci o Both email addresses and phone numbers can have an optional free 62453a5a1b3Sopenharmony_ci text string associated with them, normally giving the name of the 62553a5a1b3Sopenharmony_ci person who may be contacted. This should be enclosed in 62653a5a1b3Sopenharmony_ci parenthesis if it is present. For example: 62753a5a1b3Sopenharmony_ci 62853a5a1b3Sopenharmony_ci e=mjh@isi.edu (Mark Handley) 62953a5a1b3Sopenharmony_ci 63053a5a1b3Sopenharmony_ci The alternative RFC822 name quoting convention is also allowed for 63153a5a1b3Sopenharmony_ci both email addresses and phone numbers. For example, 63253a5a1b3Sopenharmony_ci 63353a5a1b3Sopenharmony_ci e=Mark Handley <mjh@isi.edu> 63453a5a1b3Sopenharmony_ci 63553a5a1b3Sopenharmony_ci The free text string should be in the ISO-10646 character set with 63653a5a1b3Sopenharmony_ci UTF-8 encoding, or alternatively in ISO-8859-1 or other encodings 63753a5a1b3Sopenharmony_ci if the appropriate charset session-level attribute is set. 63853a5a1b3Sopenharmony_ci 63953a5a1b3Sopenharmony_ci Connection Data 64053a5a1b3Sopenharmony_ci 64153a5a1b3Sopenharmony_ci c=<network type> <address type> <connection address> 64253a5a1b3Sopenharmony_ci 64353a5a1b3Sopenharmony_ci The "c=" field contains connection data. 64453a5a1b3Sopenharmony_ci 64553a5a1b3Sopenharmony_ci A session announcement must contain one "c=" field in each media 64653a5a1b3Sopenharmony_ci description (see below) or a "c=" field at the session-level. It may 64753a5a1b3Sopenharmony_ci contain a session-level "c=" field and one additional "c=" field per 64853a5a1b3Sopenharmony_ci media description, in which case the per-media values override the 64953a5a1b3Sopenharmony_ci session-level settings for the relevant media. 65053a5a1b3Sopenharmony_ci 65153a5a1b3Sopenharmony_ci The first sub-field is the network type, which is a text string 65253a5a1b3Sopenharmony_ci giving the type of network. Initially "IN" is defined to have the 65353a5a1b3Sopenharmony_ci meaning "Internet". 65453a5a1b3Sopenharmony_ci 65553a5a1b3Sopenharmony_ci The second sub-field is the address type. This allows SDP to be used 65653a5a1b3Sopenharmony_ci for sessions that are not IP based. Currently only IP4 is defined. 65753a5a1b3Sopenharmony_ci 65853a5a1b3Sopenharmony_ci The third sub-field is the connection address. Optional extra 65953a5a1b3Sopenharmony_ci subfields may be added after the connection address depending on the 66053a5a1b3Sopenharmony_ci value of the <address type> field. 66153a5a1b3Sopenharmony_ci 66253a5a1b3Sopenharmony_ci For IP4 addresses, the connection address is defined as follows: 66353a5a1b3Sopenharmony_ci 66453a5a1b3Sopenharmony_ci o Typically the connection address will be a class-D IP multicast 66553a5a1b3Sopenharmony_ci 66653a5a1b3Sopenharmony_ci group address. If the session is not multicast, then the 66753a5a1b3Sopenharmony_ci connection address contains the fully-qualified domain name or the 66853a5a1b3Sopenharmony_ci unicast IP address of the expected data source or data relay or 66953a5a1b3Sopenharmony_ci data sink as determined by additional attribute fields. It is not 67053a5a1b3Sopenharmony_ci expected that fully-qualified domain names or unicast addresses 67153a5a1b3Sopenharmony_ci 67253a5a1b3Sopenharmony_ci 67353a5a1b3Sopenharmony_ci 67453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 12] 67553a5a1b3Sopenharmony_ci 67653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 67753a5a1b3Sopenharmony_ci 67853a5a1b3Sopenharmony_ci 67953a5a1b3Sopenharmony_ci will be given in a session description that is communicated by a 68053a5a1b3Sopenharmony_ci multicast announcement, though this is not prohibited. If a 68153a5a1b3Sopenharmony_ci unicast data stream is to pass through a network address 68253a5a1b3Sopenharmony_ci translator, the use of a fully-qualified domain name rather than an 68353a5a1b3Sopenharmony_ci unicast IP address is RECOMMENDED. In other cases, the use of an 68453a5a1b3Sopenharmony_ci IP address to specify a particular interface on a multi-homed host 68553a5a1b3Sopenharmony_ci might be required. Thus this specification leaves the decision as 68653a5a1b3Sopenharmony_ci to which to use up to the individual application, but all 68753a5a1b3Sopenharmony_ci applications MUST be able to cope with receiving both formats. 68853a5a1b3Sopenharmony_ci 68953a5a1b3Sopenharmony_ci o Conferences using an IP multicast connection address must also have 69053a5a1b3Sopenharmony_ci a time to live (TTL) value present in addition to the multicast 69153a5a1b3Sopenharmony_ci address. The TTL and the address together define the scope with 69253a5a1b3Sopenharmony_ci which multicast packets sent in this conference will be sent. TTL 69353a5a1b3Sopenharmony_ci values must be in the range 0-255. 69453a5a1b3Sopenharmony_ci 69553a5a1b3Sopenharmony_ci The TTL for the session is appended to the address using a slash as 69653a5a1b3Sopenharmony_ci a separator. An example is: 69753a5a1b3Sopenharmony_ci 69853a5a1b3Sopenharmony_ci c=IN IP4 224.2.1.1/127 69953a5a1b3Sopenharmony_ci 70053a5a1b3Sopenharmony_ci Hierarchical or layered encoding schemes are data streams where the 70153a5a1b3Sopenharmony_ci encoding from a single media source is split into a number of 70253a5a1b3Sopenharmony_ci layers. The receiver can choose the desired quality (and hence 70353a5a1b3Sopenharmony_ci bandwidth) by only subscribing to a subset of these layers. Such 70453a5a1b3Sopenharmony_ci layered encodings are normally transmitted in multiple multicast 70553a5a1b3Sopenharmony_ci groups to allow multicast pruning. This technique keeps unwanted 70653a5a1b3Sopenharmony_ci traffic from sites only requiring certain levels of the hierarchy. 70753a5a1b3Sopenharmony_ci For applications requiring multiple multicast groups, we allow the 70853a5a1b3Sopenharmony_ci following notation to be used for the connection address: 70953a5a1b3Sopenharmony_ci 71053a5a1b3Sopenharmony_ci <base multicast address>/<ttl>/<number of addresses> 71153a5a1b3Sopenharmony_ci 71253a5a1b3Sopenharmony_ci If the number of addresses is not given it is assumed to be one. 71353a5a1b3Sopenharmony_ci Multicast addresses so assigned are contiguously allocated above 71453a5a1b3Sopenharmony_ci the base address, so that, for example: 71553a5a1b3Sopenharmony_ci 71653a5a1b3Sopenharmony_ci c=IN IP4 224.2.1.1/127/3 71753a5a1b3Sopenharmony_ci 71853a5a1b3Sopenharmony_ci would state that addresses 224.2.1.1, 224.2.1.2 and 224.2.1.3 are 71953a5a1b3Sopenharmony_ci to be used at a ttl of 127. This is semantically identical to 72053a5a1b3Sopenharmony_ci including multiple "c=" lines in a media description: 72153a5a1b3Sopenharmony_ci 72253a5a1b3Sopenharmony_ci c=IN IP4 224.2.1.1/127 72353a5a1b3Sopenharmony_ci c=IN IP4 224.2.1.2/127 72453a5a1b3Sopenharmony_ci c=IN IP4 224.2.1.3/127 72553a5a1b3Sopenharmony_ci 72653a5a1b3Sopenharmony_ci 72753a5a1b3Sopenharmony_ci 72853a5a1b3Sopenharmony_ci 72953a5a1b3Sopenharmony_ci 73053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 13] 73153a5a1b3Sopenharmony_ci 73253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 73353a5a1b3Sopenharmony_ci 73453a5a1b3Sopenharmony_ci 73553a5a1b3Sopenharmony_ci Multiple addresses or "c=" lines can only be specified on a per- 73653a5a1b3Sopenharmony_ci media basis, and not for a session-level "c=" field. 73753a5a1b3Sopenharmony_ci 73853a5a1b3Sopenharmony_ci It is illegal for the slash notation described above to be used for 73953a5a1b3Sopenharmony_ci IP unicast addresses. 74053a5a1b3Sopenharmony_ci 74153a5a1b3Sopenharmony_ci Bandwidth 74253a5a1b3Sopenharmony_ci 74353a5a1b3Sopenharmony_ci b=<modifier>:<bandwidth-value> 74453a5a1b3Sopenharmony_ci 74553a5a1b3Sopenharmony_ci o This specifies the proposed bandwidth to be used by the session or 74653a5a1b3Sopenharmony_ci media, and is optional. 74753a5a1b3Sopenharmony_ci 74853a5a1b3Sopenharmony_ci o <bandwidth-value> is in kilobits per second 74953a5a1b3Sopenharmony_ci 75053a5a1b3Sopenharmony_ci o <modifier> is a single alphanumeric word giving the meaning of the 75153a5a1b3Sopenharmony_ci bandwidth figure. 75253a5a1b3Sopenharmony_ci 75353a5a1b3Sopenharmony_ci o Two modifiers are initially defined: 75453a5a1b3Sopenharmony_ci 75553a5a1b3Sopenharmony_ci CT Conference Total: An implicit maximum bandwidth is associated with 75653a5a1b3Sopenharmony_ci each TTL on the Mbone or within a particular multicast 75753a5a1b3Sopenharmony_ci administrative scope region (the Mbone bandwidth vs. TTL limits are 75853a5a1b3Sopenharmony_ci given in the MBone FAQ). If the bandwidth of a session or media in 75953a5a1b3Sopenharmony_ci a session is different from the bandwidth implicit from the scope, 76053a5a1b3Sopenharmony_ci a `b=CT:...' line should be supplied for the session giving the 76153a5a1b3Sopenharmony_ci proposed upper limit to the bandwidth used. The primary purpose of 76253a5a1b3Sopenharmony_ci this is to give an approximate idea as to whether two or more 76353a5a1b3Sopenharmony_ci conferences can co-exist simultaneously. 76453a5a1b3Sopenharmony_ci 76553a5a1b3Sopenharmony_ci AS Application-Specific Maximum: The bandwidth is interpreted to be 76653a5a1b3Sopenharmony_ci application-specific, i.e., will be the application's concept of 76753a5a1b3Sopenharmony_ci maximum bandwidth. Normally this will coincide with what is set on 76853a5a1b3Sopenharmony_ci the application's "maximum bandwidth" control if applicable. 76953a5a1b3Sopenharmony_ci 77053a5a1b3Sopenharmony_ci Note that CT gives a total bandwidth figure for all the media at 77153a5a1b3Sopenharmony_ci all sites. AS gives a bandwidth figure for a single media at a 77253a5a1b3Sopenharmony_ci single site, although there may be many sites sending 77353a5a1b3Sopenharmony_ci simultaneously. 77453a5a1b3Sopenharmony_ci 77553a5a1b3Sopenharmony_ci o Extension Mechanism: Tool writers can define experimental bandwidth 77653a5a1b3Sopenharmony_ci modifiers by prefixing their modifier with "X-". For example: 77753a5a1b3Sopenharmony_ci 77853a5a1b3Sopenharmony_ci b=X-YZ:128 77953a5a1b3Sopenharmony_ci 78053a5a1b3Sopenharmony_ci SDP parsers should ignore bandwidth fields with unknown modifiers. 78153a5a1b3Sopenharmony_ci Modifiers should be alpha-numeric and, although no length limit is 78253a5a1b3Sopenharmony_ci given, they are recommended to be short. 78353a5a1b3Sopenharmony_ci 78453a5a1b3Sopenharmony_ci 78553a5a1b3Sopenharmony_ci 78653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 14] 78753a5a1b3Sopenharmony_ci 78853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 78953a5a1b3Sopenharmony_ci 79053a5a1b3Sopenharmony_ci 79153a5a1b3Sopenharmony_ci Times, Repeat Times and Time Zones 79253a5a1b3Sopenharmony_ci 79353a5a1b3Sopenharmony_ci t=<start time> <stop time> 79453a5a1b3Sopenharmony_ci 79553a5a1b3Sopenharmony_ci o "t=" fields specify the start and stop times for a conference 79653a5a1b3Sopenharmony_ci session. Multiple "t=" fields may be used if a session is active 79753a5a1b3Sopenharmony_ci at multiple irregularly spaced times; each additional "t=" field 79853a5a1b3Sopenharmony_ci specifies an additional period of time for which the session will 79953a5a1b3Sopenharmony_ci be active. If the session is active at regular times, an "r=" 80053a5a1b3Sopenharmony_ci field (see below) should be used in addition to and following a 80153a5a1b3Sopenharmony_ci "t=" field - in which case the "t=" field specifies the start and 80253a5a1b3Sopenharmony_ci stop times of the repeat sequence. 80353a5a1b3Sopenharmony_ci 80453a5a1b3Sopenharmony_ci o The first and second sub-fields give the start and stop times for 80553a5a1b3Sopenharmony_ci the conference respectively. These values are the decimal 80653a5a1b3Sopenharmony_ci representation of Network Time Protocol (NTP) time values in 80753a5a1b3Sopenharmony_ci seconds [1]. To convert these values to UNIX time, subtract 80853a5a1b3Sopenharmony_ci decimal 2208988800. 80953a5a1b3Sopenharmony_ci 81053a5a1b3Sopenharmony_ci o If the stop-time is set to zero, then the session is not bounded, 81153a5a1b3Sopenharmony_ci though it will not become active until after the start-time. If 81253a5a1b3Sopenharmony_ci the start-time is also zero, the session is regarded as permanent. 81353a5a1b3Sopenharmony_ci 81453a5a1b3Sopenharmony_ci User interfaces should strongly discourage the creation of 81553a5a1b3Sopenharmony_ci unbounded and permanent sessions as they give no information about 81653a5a1b3Sopenharmony_ci when the session is actually going to terminate, and so make 81753a5a1b3Sopenharmony_ci scheduling difficult. 81853a5a1b3Sopenharmony_ci 81953a5a1b3Sopenharmony_ci The general assumption may be made, when displaying unbounded 82053a5a1b3Sopenharmony_ci sessions that have not timed out to the user, that an unbounded 82153a5a1b3Sopenharmony_ci session will only be active until half an hour from the current 82253a5a1b3Sopenharmony_ci time or the session start time, whichever is the later. If 82353a5a1b3Sopenharmony_ci behaviour other than this is required, an end-time should be given 82453a5a1b3Sopenharmony_ci and modified as appropriate when new information becomes available 82553a5a1b3Sopenharmony_ci about when the session should really end. 82653a5a1b3Sopenharmony_ci 82753a5a1b3Sopenharmony_ci Permanent sessions may be shown to the user as never being active 82853a5a1b3Sopenharmony_ci unless there are associated repeat times which state precisely when 82953a5a1b3Sopenharmony_ci the session will be active. In general, permanent sessions should 83053a5a1b3Sopenharmony_ci not be created for any session expected to have a duration of less 83153a5a1b3Sopenharmony_ci than 2 months, and should be discouraged for sessions expected to 83253a5a1b3Sopenharmony_ci have a duration of less than 6 months. 83353a5a1b3Sopenharmony_ci 83453a5a1b3Sopenharmony_ci r=<repeat interval> <active duration> <list of offsets from start- 83553a5a1b3Sopenharmony_ci time> 83653a5a1b3Sopenharmony_ci 83753a5a1b3Sopenharmony_ci o "r=" fields specify repeat times for a session. For example, if 83853a5a1b3Sopenharmony_ci a session is active at 10am on Monday and 11am on Tuesday for one 83953a5a1b3Sopenharmony_ci 84053a5a1b3Sopenharmony_ci 84153a5a1b3Sopenharmony_ci 84253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 15] 84353a5a1b3Sopenharmony_ci 84453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 84553a5a1b3Sopenharmony_ci 84653a5a1b3Sopenharmony_ci 84753a5a1b3Sopenharmony_ci hour each week for three months, then the <start time> in the 84853a5a1b3Sopenharmony_ci corresponding "t=" field would be the NTP representation of 10am on 84953a5a1b3Sopenharmony_ci the first Monday, the <repeat interval> would be 1 week, the 85053a5a1b3Sopenharmony_ci <active duration> would be 1 hour, and the offsets would be zero 85153a5a1b3Sopenharmony_ci and 25 hours. The corresponding "t=" field stop time would be the 85253a5a1b3Sopenharmony_ci NTP representation of the end of the last session three months 85353a5a1b3Sopenharmony_ci later. By default all fields are in seconds, so the "r=" and "t=" 85453a5a1b3Sopenharmony_ci fields might be: 85553a5a1b3Sopenharmony_ci 85653a5a1b3Sopenharmony_ci t=3034423619 3042462419 85753a5a1b3Sopenharmony_ci r=604800 3600 0 90000 85853a5a1b3Sopenharmony_ci 85953a5a1b3Sopenharmony_ci To make announcements more compact, times may also be given in units 86053a5a1b3Sopenharmony_ci of days, hours or minutes. The syntax for these is a number 86153a5a1b3Sopenharmony_ci immediately followed by a single case-sensitive character. 86253a5a1b3Sopenharmony_ci Fractional units are not allowed - a smaller unit should be used 86353a5a1b3Sopenharmony_ci instead. The following unit specification characters are allowed: 86453a5a1b3Sopenharmony_ci 86553a5a1b3Sopenharmony_ci d - days (86400 seconds) 86653a5a1b3Sopenharmony_ci h - minutes (3600 seconds) 86753a5a1b3Sopenharmony_ci m - minutes (60 seconds) 86853a5a1b3Sopenharmony_ci s - seconds (allowed for completeness but not recommended) 86953a5a1b3Sopenharmony_ci 87053a5a1b3Sopenharmony_ci Thus, the above announcement could also have been written: 87153a5a1b3Sopenharmony_ci 87253a5a1b3Sopenharmony_ci r=7d 1h 0 25h 87353a5a1b3Sopenharmony_ci 87453a5a1b3Sopenharmony_ci Monthly and yearly repeats cannot currently be directly specified 87553a5a1b3Sopenharmony_ci with a single SDP repeat time - instead separate "t" fields should 87653a5a1b3Sopenharmony_ci be used to explicitly list the session times. 87753a5a1b3Sopenharmony_ci 87853a5a1b3Sopenharmony_ci z=<adjustment time> <offset> <adjustment time> <offset> .... 87953a5a1b3Sopenharmony_ci 88053a5a1b3Sopenharmony_ci o To schedule a repeated session which spans a change from daylight- 88153a5a1b3Sopenharmony_ci saving time to standard time or vice-versa, it is necessary to 88253a5a1b3Sopenharmony_ci specify offsets from the base repeat times. This is required 88353a5a1b3Sopenharmony_ci because different time zones change time at different times of day, 88453a5a1b3Sopenharmony_ci different countries change to or from daylight time on different 88553a5a1b3Sopenharmony_ci dates, and some countries do not have daylight saving time at all. 88653a5a1b3Sopenharmony_ci 88753a5a1b3Sopenharmony_ci Thus in order to schedule a session that is at the same time winter 88853a5a1b3Sopenharmony_ci and summer, it must be possible to specify unambiguously by whose 88953a5a1b3Sopenharmony_ci time zone a session is scheduled. To simplify this task for 89053a5a1b3Sopenharmony_ci receivers, we allow the sender to specify the NTP time that a time 89153a5a1b3Sopenharmony_ci zone adjustment happens and the offset from the time when the 89253a5a1b3Sopenharmony_ci session was first scheduled. The "z" field allows the sender to 89353a5a1b3Sopenharmony_ci specify a list of these adjustment times and offsets from the base 89453a5a1b3Sopenharmony_ci time. 89553a5a1b3Sopenharmony_ci 89653a5a1b3Sopenharmony_ci 89753a5a1b3Sopenharmony_ci 89853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 16] 89953a5a1b3Sopenharmony_ci 90053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 90153a5a1b3Sopenharmony_ci 90253a5a1b3Sopenharmony_ci 90353a5a1b3Sopenharmony_ci An example might be: 90453a5a1b3Sopenharmony_ci 90553a5a1b3Sopenharmony_ci z=2882844526 -1h 2898848070 0 90653a5a1b3Sopenharmony_ci 90753a5a1b3Sopenharmony_ci This specifies that at time 2882844526 the time base by which the 90853a5a1b3Sopenharmony_ci session's repeat times are calculated is shifted back by 1 hour, 90953a5a1b3Sopenharmony_ci and that at time 2898848070 the session's original time base is 91053a5a1b3Sopenharmony_ci restored. Adjustments are always relative to the specified start 91153a5a1b3Sopenharmony_ci time - they are not cumulative. 91253a5a1b3Sopenharmony_ci 91353a5a1b3Sopenharmony_ci o If a session is likely to last several years, it is expected 91453a5a1b3Sopenharmony_ci that 91553a5a1b3Sopenharmony_ci the session announcement will be modified periodically rather than 91653a5a1b3Sopenharmony_ci transmit several years worth of adjustments in one announcement. 91753a5a1b3Sopenharmony_ci 91853a5a1b3Sopenharmony_ci Encryption Keys 91953a5a1b3Sopenharmony_ci 92053a5a1b3Sopenharmony_ci k=<method> 92153a5a1b3Sopenharmony_ci k=<method>:<encryption key> 92253a5a1b3Sopenharmony_ci 92353a5a1b3Sopenharmony_ci o The session description protocol may be used to convey encryption 92453a5a1b3Sopenharmony_ci keys. A key field is permitted before the first media entry (in 92553a5a1b3Sopenharmony_ci which case it applies to all media in the session), or for each 92653a5a1b3Sopenharmony_ci media entry as required. 92753a5a1b3Sopenharmony_ci 92853a5a1b3Sopenharmony_ci o The format of keys and their usage is outside the scope of this 92953a5a1b3Sopenharmony_ci document, but see [3]. 93053a5a1b3Sopenharmony_ci 93153a5a1b3Sopenharmony_ci o The method indicates the mechanism to be used to obtain a usable 93253a5a1b3Sopenharmony_ci key by external means, or from the encoded encryption key given. 93353a5a1b3Sopenharmony_ci 93453a5a1b3Sopenharmony_ci The following methods are defined: 93553a5a1b3Sopenharmony_ci 93653a5a1b3Sopenharmony_ci k=clear:<encryption key> 93753a5a1b3Sopenharmony_ci The encryption key (as described in [3] for RTP media streams 93853a5a1b3Sopenharmony_ci under the AV profile) is included untransformed in this key 93953a5a1b3Sopenharmony_ci field. 94053a5a1b3Sopenharmony_ci 94153a5a1b3Sopenharmony_ci k=base64:<encoded encryption key> 94253a5a1b3Sopenharmony_ci The encryption key (as described in [3] for RTP media streams 94353a5a1b3Sopenharmony_ci under the AV profile) is included in this key field but has been 94453a5a1b3Sopenharmony_ci base64 encoded because it includes characters that are 94553a5a1b3Sopenharmony_ci prohibited in SDP. 94653a5a1b3Sopenharmony_ci 94753a5a1b3Sopenharmony_ci k=uri:<URI to obtain key> 94853a5a1b3Sopenharmony_ci A Universal Resource Identifier as used by WWW clients is 94953a5a1b3Sopenharmony_ci included in this key field. The URI refers to the data 95053a5a1b3Sopenharmony_ci containing the key, and may require additional authentication 95153a5a1b3Sopenharmony_ci 95253a5a1b3Sopenharmony_ci 95353a5a1b3Sopenharmony_ci 95453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 17] 95553a5a1b3Sopenharmony_ci 95653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 95753a5a1b3Sopenharmony_ci 95853a5a1b3Sopenharmony_ci 95953a5a1b3Sopenharmony_ci before the key can be returned. When a request is made to the 96053a5a1b3Sopenharmony_ci given URI, the MIME content-type of the reply specifies the 96153a5a1b3Sopenharmony_ci encoding for the key in the reply. The key should not be 96253a5a1b3Sopenharmony_ci obtained until the user wishes to join the session to reduce 96353a5a1b3Sopenharmony_ci synchronisation of requests to the WWW server(s). 96453a5a1b3Sopenharmony_ci 96553a5a1b3Sopenharmony_ci k=prompt 96653a5a1b3Sopenharmony_ci No key is included in this SDP description, but the session or 96753a5a1b3Sopenharmony_ci media stream referred to by this key field is encrypted. The 96853a5a1b3Sopenharmony_ci user should be prompted for the key when attempting to join the 96953a5a1b3Sopenharmony_ci session, and this user-supplied key should then be used to 97053a5a1b3Sopenharmony_ci decrypt the media streams. 97153a5a1b3Sopenharmony_ci 97253a5a1b3Sopenharmony_ci Attributes 97353a5a1b3Sopenharmony_ci 97453a5a1b3Sopenharmony_ci a=<attribute> 97553a5a1b3Sopenharmony_ci a=<attribute>:<value> 97653a5a1b3Sopenharmony_ci 97753a5a1b3Sopenharmony_ci Attributes are the primary means for extending SDP. Attributes may 97853a5a1b3Sopenharmony_ci be defined to be used as "session-level" attributes, "media-level" 97953a5a1b3Sopenharmony_ci attributes, or both. 98053a5a1b3Sopenharmony_ci 98153a5a1b3Sopenharmony_ci A media description may have any number of attributes ("a=" fields) 98253a5a1b3Sopenharmony_ci which are media specific. These are referred to as "media-level" 98353a5a1b3Sopenharmony_ci attributes and add information about the media stream. Attribute 98453a5a1b3Sopenharmony_ci fields can also be added before the first media field; these 98553a5a1b3Sopenharmony_ci "session-level" attributes convey additional information that applies 98653a5a1b3Sopenharmony_ci to the conference as a whole rather than to individual media; an 98753a5a1b3Sopenharmony_ci example might be the conference's floor control policy. 98853a5a1b3Sopenharmony_ci 98953a5a1b3Sopenharmony_ci Attribute fields may be of two forms: 99053a5a1b3Sopenharmony_ci 99153a5a1b3Sopenharmony_ci o property attributes. A property attribute is simply of the form 99253a5a1b3Sopenharmony_ci "a=<flag>". These are binary attributes, and the presence of the 99353a5a1b3Sopenharmony_ci attribute conveys that the attribute is a property of the session. 99453a5a1b3Sopenharmony_ci An example might be "a=recvonly". 99553a5a1b3Sopenharmony_ci 99653a5a1b3Sopenharmony_ci o value attributes. A value attribute is of the form 99753a5a1b3Sopenharmony_ci "a=<attribute>:<value>". An example might be that a whiteboard 99853a5a1b3Sopenharmony_ci could have the value attribute "a=orient:landscape" 99953a5a1b3Sopenharmony_ci 100053a5a1b3Sopenharmony_ci Attribute interpretation depends on the media tool being invoked. 100153a5a1b3Sopenharmony_ci Thus receivers of session descriptions should be configurable in 100253a5a1b3Sopenharmony_ci their interpretation of announcements in general and of attributes in 100353a5a1b3Sopenharmony_ci particular. 100453a5a1b3Sopenharmony_ci 100553a5a1b3Sopenharmony_ci Attribute names must be in the US-ASCII subset of ISO-10646/UTF-8. 100653a5a1b3Sopenharmony_ci 100753a5a1b3Sopenharmony_ci 100853a5a1b3Sopenharmony_ci 100953a5a1b3Sopenharmony_ci 101053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 18] 101153a5a1b3Sopenharmony_ci 101253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 101353a5a1b3Sopenharmony_ci 101453a5a1b3Sopenharmony_ci 101553a5a1b3Sopenharmony_ci Attribute values are byte strings, and MAY use any byte value except 101653a5a1b3Sopenharmony_ci 0x00 (Nul), 0x0A (LF), and 0x0D (CR). By default, attribute values 101753a5a1b3Sopenharmony_ci are to be interpreted as in ISO-10646 character set with UTF-8 101853a5a1b3Sopenharmony_ci encoding. Unlike other text fields, attribute values are NOT 101953a5a1b3Sopenharmony_ci normally affected by the `charset' attribute as this would make 102053a5a1b3Sopenharmony_ci comparisons against known values problematic. However, when an 102153a5a1b3Sopenharmony_ci attribute is defined, it can be defined to be charset-dependent, in 102253a5a1b3Sopenharmony_ci which case it's value should be interpreted in the session charset 102353a5a1b3Sopenharmony_ci rather than in ISO-10646. 102453a5a1b3Sopenharmony_ci 102553a5a1b3Sopenharmony_ci Attributes that will be commonly used can be registered with IANA 102653a5a1b3Sopenharmony_ci (see Appendix B). Unregistered attributes should begin with "X-" to 102753a5a1b3Sopenharmony_ci prevent inadvertent collision with registered attributes. In either 102853a5a1b3Sopenharmony_ci case, if an attribute is received that is not understood, it should 102953a5a1b3Sopenharmony_ci simply be ignored by the receiver. 103053a5a1b3Sopenharmony_ci 103153a5a1b3Sopenharmony_ci Media Announcements 103253a5a1b3Sopenharmony_ci 103353a5a1b3Sopenharmony_ci m=<media> <port> <transport> <fmt list> 103453a5a1b3Sopenharmony_ci 103553a5a1b3Sopenharmony_ci A session description may contain a number of media descriptions. 103653a5a1b3Sopenharmony_ci Each media description starts with an "m=" field, and is terminated 103753a5a1b3Sopenharmony_ci by either the next "m=" field or by the end of the session 103853a5a1b3Sopenharmony_ci description. A media field also has several sub-fields: 103953a5a1b3Sopenharmony_ci 104053a5a1b3Sopenharmony_ci o The first sub-field is the media type. Currently defined media are 104153a5a1b3Sopenharmony_ci "audio", "video", "application", "data" and "control", though this 104253a5a1b3Sopenharmony_ci list may be extended as new communication modalities emerge (e.g., 104353a5a1b3Sopenharmony_ci telepresense). The difference between "application" and "data" is 104453a5a1b3Sopenharmony_ci that the former is a media flow such as whiteboard information, and 104553a5a1b3Sopenharmony_ci the latter is bulk-data transfer such as multicasting of program 104653a5a1b3Sopenharmony_ci executables which will not typically be displayed to the user. 104753a5a1b3Sopenharmony_ci "control" is used to specify an additional conference control 104853a5a1b3Sopenharmony_ci channel for the session. 104953a5a1b3Sopenharmony_ci 105053a5a1b3Sopenharmony_ci o The second sub-field is the transport port to which the media 105153a5a1b3Sopenharmony_ci stream will be sent. The meaning of the transport port depends on 105253a5a1b3Sopenharmony_ci the network being used as specified in the relevant "c" field and 105353a5a1b3Sopenharmony_ci on the transport protocol defined in the third sub-field. Other 105453a5a1b3Sopenharmony_ci ports used by the media application (such as the RTCP port, see 105553a5a1b3Sopenharmony_ci [2]) should be derived algorithmically from the base media port. 105653a5a1b3Sopenharmony_ci 105753a5a1b3Sopenharmony_ci Note: For transports based on UDP, the value should be in the range 105853a5a1b3Sopenharmony_ci 1024 to 65535 inclusive. For RTP compliance it should be an even 105953a5a1b3Sopenharmony_ci number. 106053a5a1b3Sopenharmony_ci 106153a5a1b3Sopenharmony_ci 106253a5a1b3Sopenharmony_ci 106353a5a1b3Sopenharmony_ci 106453a5a1b3Sopenharmony_ci 106553a5a1b3Sopenharmony_ci 106653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 19] 106753a5a1b3Sopenharmony_ci 106853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 106953a5a1b3Sopenharmony_ci 107053a5a1b3Sopenharmony_ci 107153a5a1b3Sopenharmony_ci For applications where hierarchically encoded streams are being 107253a5a1b3Sopenharmony_ci sent to a unicast address, it may be necessary to specify multiple 107353a5a1b3Sopenharmony_ci transport ports. This is done using a similar notation to that 107453a5a1b3Sopenharmony_ci used for IP multicast addresses in the "c=" field: 107553a5a1b3Sopenharmony_ci 107653a5a1b3Sopenharmony_ci m=<media> <port>/<number of ports> <transport> <fmt list> 107753a5a1b3Sopenharmony_ci 107853a5a1b3Sopenharmony_ci In such a case, the ports used depend on the transport protocol. 107953a5a1b3Sopenharmony_ci For RTP, only the even ports are used for data and the 108053a5a1b3Sopenharmony_ci corresponding one-higher odd port is used for RTCP. For example: 108153a5a1b3Sopenharmony_ci 108253a5a1b3Sopenharmony_ci m=video 49170/2 RTP/AVP 31 108353a5a1b3Sopenharmony_ci 108453a5a1b3Sopenharmony_ci would specify that ports 49170 and 49171 form one RTP/RTCP pair and 108553a5a1b3Sopenharmony_ci 49172 and 49173 form the second RTP/RTCP pair. RTP/AVP is the 108653a5a1b3Sopenharmony_ci transport protocol and 31 is the format (see below). 108753a5a1b3Sopenharmony_ci 108853a5a1b3Sopenharmony_ci It is illegal for both multiple addresses to be specified in the 108953a5a1b3Sopenharmony_ci "c=" field and for multiple ports to be specified in the "m=" field 109053a5a1b3Sopenharmony_ci in the same session description. 109153a5a1b3Sopenharmony_ci 109253a5a1b3Sopenharmony_ci o The third sub-field is the transport protocol. The transport 109353a5a1b3Sopenharmony_ci protocol values are dependent on the address-type field in the "c=" 109453a5a1b3Sopenharmony_ci fields. Thus a "c=" field of IP4 defines that the transport 109553a5a1b3Sopenharmony_ci protocol runs over IP4. For IP4, it is normally expected that most 109653a5a1b3Sopenharmony_ci media traffic will be carried as RTP over UDP. The following 109753a5a1b3Sopenharmony_ci transport protocols are preliminarily defined, but may be extended 109853a5a1b3Sopenharmony_ci through registration of new protocols with IANA: 109953a5a1b3Sopenharmony_ci 110053a5a1b3Sopenharmony_ci - RTP/AVP - the IETF's Realtime Transport Protocol using the 110153a5a1b3Sopenharmony_ci Audio/Video profile carried over UDP. 110253a5a1b3Sopenharmony_ci 110353a5a1b3Sopenharmony_ci - udp - User Datagram Protocol 110453a5a1b3Sopenharmony_ci 110553a5a1b3Sopenharmony_ci If an application uses a single combined proprietary media format 110653a5a1b3Sopenharmony_ci and transport protocol over UDP, then simply specifying the 110753a5a1b3Sopenharmony_ci transport protocol as udp and using the format field to distinguish 110853a5a1b3Sopenharmony_ci the combined protocol is recommended. If a transport protocol is 110953a5a1b3Sopenharmony_ci used over UDP to carry several distinct media types that need to be 111053a5a1b3Sopenharmony_ci distinguished by a session directory, then specifying the transport 111153a5a1b3Sopenharmony_ci protocol and media format separately is necessary. RTP is an 111253a5a1b3Sopenharmony_ci example of a transport-protocol that carries multiple payload 111353a5a1b3Sopenharmony_ci formats that must be distinguished by the session directory for it 111453a5a1b3Sopenharmony_ci to know how to start appropriate tools, relays, mixers or 111553a5a1b3Sopenharmony_ci recorders. 111653a5a1b3Sopenharmony_ci 111753a5a1b3Sopenharmony_ci 111853a5a1b3Sopenharmony_ci 111953a5a1b3Sopenharmony_ci 112053a5a1b3Sopenharmony_ci 112153a5a1b3Sopenharmony_ci 112253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 20] 112353a5a1b3Sopenharmony_ci 112453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 112553a5a1b3Sopenharmony_ci 112653a5a1b3Sopenharmony_ci 112753a5a1b3Sopenharmony_ci The main reason to specify the transport-protocol in addition to 112853a5a1b3Sopenharmony_ci the media format is that the same standard media formats may be 112953a5a1b3Sopenharmony_ci carried over different transport protocols even when the network 113053a5a1b3Sopenharmony_ci protocol is the same - a historical example is vat PCM audio and 113153a5a1b3Sopenharmony_ci RTP PCM audio. In addition, relays and monitoring tools that are 113253a5a1b3Sopenharmony_ci transport-protocol-specific but format-independent are possible. 113353a5a1b3Sopenharmony_ci 113453a5a1b3Sopenharmony_ci For RTP media streams operating under the RTP Audio/Video Profile 113553a5a1b3Sopenharmony_ci [3], the protocol field is "RTP/AVP". Should other RTP profiles be 113653a5a1b3Sopenharmony_ci defined in the future, their profiles will be specified in the same 113753a5a1b3Sopenharmony_ci way. For example, the protocol field "RTP/XYZ" would specify RTP 113853a5a1b3Sopenharmony_ci operating under a profile whose short name is "XYZ". 113953a5a1b3Sopenharmony_ci 114053a5a1b3Sopenharmony_ci o The fourth and subsequent sub-fields are media formats. For audio 114153a5a1b3Sopenharmony_ci and video, these will normally be a media payload type as defined 114253a5a1b3Sopenharmony_ci in the RTP Audio/Video Profile. 114353a5a1b3Sopenharmony_ci 114453a5a1b3Sopenharmony_ci When a list of payload formats is given, this implies that all of 114553a5a1b3Sopenharmony_ci these formats may be used in the session, but the first of these 114653a5a1b3Sopenharmony_ci formats is the default format for the session. 114753a5a1b3Sopenharmony_ci 114853a5a1b3Sopenharmony_ci For media whose transport protocol is not RTP or UDP the format 114953a5a1b3Sopenharmony_ci field is protocol specific. Such formats should be defined in an 115053a5a1b3Sopenharmony_ci additional specification document. 115153a5a1b3Sopenharmony_ci 115253a5a1b3Sopenharmony_ci For media whose transport protocol is RTP, SDP can be used to 115353a5a1b3Sopenharmony_ci provide a dynamic binding of media encoding to RTP payload type. 115453a5a1b3Sopenharmony_ci The encoding names in the RTP AV Profile do not specify unique 115553a5a1b3Sopenharmony_ci audio encodings (in terms of clock rate and number of audio 115653a5a1b3Sopenharmony_ci channels), and so they are not used directly in SDP format fields. 115753a5a1b3Sopenharmony_ci Instead, the payload type number should be used to specify the 115853a5a1b3Sopenharmony_ci format for static payload types and the payload type number along 115953a5a1b3Sopenharmony_ci with additional encoding information should be used for dynamically 116053a5a1b3Sopenharmony_ci allocated payload types. 116153a5a1b3Sopenharmony_ci 116253a5a1b3Sopenharmony_ci An example of a static payload type is u-law PCM coded single 116353a5a1b3Sopenharmony_ci channel audio sampled at 8KHz. This is completely defined in the 116453a5a1b3Sopenharmony_ci RTP Audio/Video profile as payload type 0, so the media field for 116553a5a1b3Sopenharmony_ci such a stream sent to UDP port 49232 is: 116653a5a1b3Sopenharmony_ci 116753a5a1b3Sopenharmony_ci m=video 49232 RTP/AVP 0 116853a5a1b3Sopenharmony_ci 116953a5a1b3Sopenharmony_ci An example of a dynamic payload type is 16 bit linear encoded 117053a5a1b3Sopenharmony_ci stereo audio sampled at 16KHz. If we wish to use dynamic RTP/AVP 117153a5a1b3Sopenharmony_ci payload type 98 for such a stream, additional information is 117253a5a1b3Sopenharmony_ci required to decode it: 117353a5a1b3Sopenharmony_ci 117453a5a1b3Sopenharmony_ci m=video 49232 RTP/AVP 98 117553a5a1b3Sopenharmony_ci 117653a5a1b3Sopenharmony_ci 117753a5a1b3Sopenharmony_ci 117853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 21] 117953a5a1b3Sopenharmony_ci 118053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 118153a5a1b3Sopenharmony_ci 118253a5a1b3Sopenharmony_ci 118353a5a1b3Sopenharmony_ci a=rtpmap:98 L16/16000/2 118453a5a1b3Sopenharmony_ci 118553a5a1b3Sopenharmony_ci The general form of an rtpmap attribute is: 118653a5a1b3Sopenharmony_ci 118753a5a1b3Sopenharmony_ci a=rtpmap:<payload type> <encoding name>/<clock rate>[/<encoding 118853a5a1b3Sopenharmony_ci parameters>] 118953a5a1b3Sopenharmony_ci 119053a5a1b3Sopenharmony_ci For audio streams, <encoding parameters> may specify the number of 119153a5a1b3Sopenharmony_ci audio channels. This parameter may be omitted if the number of 119253a5a1b3Sopenharmony_ci channels is one provided no additional parameters are needed. For 119353a5a1b3Sopenharmony_ci video streams, no encoding parameters are currently specified. 119453a5a1b3Sopenharmony_ci 119553a5a1b3Sopenharmony_ci Additional parameters may be defined in the future, but 119653a5a1b3Sopenharmony_ci codecspecific parameters should not be added. Parameters added to 119753a5a1b3Sopenharmony_ci an rtpmap attribute should only be those required for a session 119853a5a1b3Sopenharmony_ci directory to make the choice of appropriate media too to 119953a5a1b3Sopenharmony_ci participate in a session. Codec-specific parameters should be 120053a5a1b3Sopenharmony_ci added in other attributes. 120153a5a1b3Sopenharmony_ci 120253a5a1b3Sopenharmony_ci Up to one rtpmap attribute can be defined for each media format 120353a5a1b3Sopenharmony_ci specified. Thus we might have: 120453a5a1b3Sopenharmony_ci 120553a5a1b3Sopenharmony_ci m=audio 49230 RTP/AVP 96 97 98 120653a5a1b3Sopenharmony_ci a=rtpmap:96 L8/8000 120753a5a1b3Sopenharmony_ci a=rtpmap:97 L16/8000 120853a5a1b3Sopenharmony_ci a=rtpmap:98 L16/11025/2 120953a5a1b3Sopenharmony_ci 121053a5a1b3Sopenharmony_ci RTP profiles that specify the use of dynamic payload types must 121153a5a1b3Sopenharmony_ci define the set of valid encoding names and/or a means to register 121253a5a1b3Sopenharmony_ci encoding names if that profile is to be used with SDP. 121353a5a1b3Sopenharmony_ci 121453a5a1b3Sopenharmony_ci Experimental encoding formats can also be specified using rtpmap. 121553a5a1b3Sopenharmony_ci RTP formats that are not registered as standard format names must 121653a5a1b3Sopenharmony_ci be preceded by "X-". Thus a new experimental redundant audio 121753a5a1b3Sopenharmony_ci stream called GSMLPC using dynamic payload type 99 could be 121853a5a1b3Sopenharmony_ci specified as: 121953a5a1b3Sopenharmony_ci 122053a5a1b3Sopenharmony_ci m=video 49232 RTP/AVP 99 122153a5a1b3Sopenharmony_ci a=rtpmap:99 X-GSMLPC/8000 122253a5a1b3Sopenharmony_ci 122353a5a1b3Sopenharmony_ci Such an experimental encoding requires that any site wishing to 122453a5a1b3Sopenharmony_ci receive the media stream has relevant configured state in its 122553a5a1b3Sopenharmony_ci session directory to know which tools are appropriate. 122653a5a1b3Sopenharmony_ci 122753a5a1b3Sopenharmony_ci Note that RTP audio formats typically do not include information 122853a5a1b3Sopenharmony_ci about the number of samples per packet. If a non-default (as 122953a5a1b3Sopenharmony_ci defined in the RTP Audio/Video Profile) packetisation is required, 123053a5a1b3Sopenharmony_ci the "ptime" attribute is used as given below. 123153a5a1b3Sopenharmony_ci 123253a5a1b3Sopenharmony_ci 123353a5a1b3Sopenharmony_ci 123453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 22] 123553a5a1b3Sopenharmony_ci 123653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 123753a5a1b3Sopenharmony_ci 123853a5a1b3Sopenharmony_ci 123953a5a1b3Sopenharmony_ci For more details on RTP audio and video formats, see [3]. 124053a5a1b3Sopenharmony_ci 124153a5a1b3Sopenharmony_ci o Formats for non-RTP media should be registered as MIME content 124253a5a1b3Sopenharmony_ci types as described in Appendix B. For example, the LBL whiteboard 124353a5a1b3Sopenharmony_ci application might be registered as MIME content-type application/wb 124453a5a1b3Sopenharmony_ci with encoding considerations specifying that it operates over UDP, 124553a5a1b3Sopenharmony_ci with no appropriate file format. In SDP this would then be 124653a5a1b3Sopenharmony_ci expressed using a combination of the "media" field and the "fmt" 124753a5a1b3Sopenharmony_ci field, as follows: 124853a5a1b3Sopenharmony_ci 124953a5a1b3Sopenharmony_ci m=application 32416 udp wb 125053a5a1b3Sopenharmony_ci 125153a5a1b3Sopenharmony_ci Suggested Attributes 125253a5a1b3Sopenharmony_ci 125353a5a1b3Sopenharmony_ci The following attributes are suggested. Since application writers 125453a5a1b3Sopenharmony_ci may add new attributes as they are required, this list is not 125553a5a1b3Sopenharmony_ci exhaustive. 125653a5a1b3Sopenharmony_ci 125753a5a1b3Sopenharmony_ci a=cat:<category> 125853a5a1b3Sopenharmony_ci This attribute gives the dot-separated hierarchical category of 125953a5a1b3Sopenharmony_ci the session. This is to enable a receiver to filter unwanted 126053a5a1b3Sopenharmony_ci sessions by category. It would probably have been a compulsory 126153a5a1b3Sopenharmony_ci separate field, except for its experimental nature at this time. 126253a5a1b3Sopenharmony_ci It is a session-level attribute, and is not dependent on charset. 126353a5a1b3Sopenharmony_ci 126453a5a1b3Sopenharmony_ci a=keywds:<keywords> 126553a5a1b3Sopenharmony_ci Like the cat attribute, this is to assist identifying wanted 126653a5a1b3Sopenharmony_ci sessions at the receiver. This allows a receiver to select 126753a5a1b3Sopenharmony_ci interesting session based on keywords describing the purpose of 126853a5a1b3Sopenharmony_ci the session. It is a session-level attribute. It is a charset 126953a5a1b3Sopenharmony_ci dependent attribute, meaning that its value should be interpreted 127053a5a1b3Sopenharmony_ci in the charset specified for the session description if one is 127153a5a1b3Sopenharmony_ci specified, or by default in ISO 10646/UTF-8. 127253a5a1b3Sopenharmony_ci 127353a5a1b3Sopenharmony_ci a=tool:<name and version of tool> 127453a5a1b3Sopenharmony_ci This gives the name and version number of the tool used to create 127553a5a1b3Sopenharmony_ci the session description. It is a session-level attribute, and is 127653a5a1b3Sopenharmony_ci not dependent on charset. 127753a5a1b3Sopenharmony_ci 127853a5a1b3Sopenharmony_ci a=ptime:<packet time> 127953a5a1b3Sopenharmony_ci This gives the length of time in milliseconds represented by the 128053a5a1b3Sopenharmony_ci media in a packet. This is probably only meaningful for audio 128153a5a1b3Sopenharmony_ci data. It should not be necessary to know ptime to decode RTP or 128253a5a1b3Sopenharmony_ci vat audio, and it is intended as a recommendation for the 128353a5a1b3Sopenharmony_ci encoding/packetisation of audio. It is a media attribute, and is 128453a5a1b3Sopenharmony_ci not dependent on charset. 128553a5a1b3Sopenharmony_ci 128653a5a1b3Sopenharmony_ci 128753a5a1b3Sopenharmony_ci 128853a5a1b3Sopenharmony_ci 128953a5a1b3Sopenharmony_ci 129053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 23] 129153a5a1b3Sopenharmony_ci 129253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 129353a5a1b3Sopenharmony_ci 129453a5a1b3Sopenharmony_ci 129553a5a1b3Sopenharmony_ci a=recvonly 129653a5a1b3Sopenharmony_ci This specifies that the tools should be started in receive-only 129753a5a1b3Sopenharmony_ci mode where applicable. It can be either a session or media 129853a5a1b3Sopenharmony_ci attribute, and is not dependent on charset. 129953a5a1b3Sopenharmony_ci 130053a5a1b3Sopenharmony_ci a=sendrecv 130153a5a1b3Sopenharmony_ci This specifies that the tools should be started in send and 130253a5a1b3Sopenharmony_ci receive mode. This is necessary for interactive conferences with 130353a5a1b3Sopenharmony_ci tools such as wb which defaults to receive only mode. It can be 130453a5a1b3Sopenharmony_ci either a session or media attribute, and is not dependent on 130553a5a1b3Sopenharmony_ci charset. 130653a5a1b3Sopenharmony_ci 130753a5a1b3Sopenharmony_ci a=sendonly 130853a5a1b3Sopenharmony_ci This specifies that the tools should be started in send-only 130953a5a1b3Sopenharmony_ci mode. An example may be where a different unicast address is to 131053a5a1b3Sopenharmony_ci be used for a traffic destination than for a traffic source. In 131153a5a1b3Sopenharmony_ci such a case, two media descriptions may be use, one sendonly and 131253a5a1b3Sopenharmony_ci one recvonly. It can be either a session or media attribute, but 131353a5a1b3Sopenharmony_ci would normally only be used as a media attribute, and is not 131453a5a1b3Sopenharmony_ci dependent on charset. 131553a5a1b3Sopenharmony_ci 131653a5a1b3Sopenharmony_ci a=orient:<whiteboard orientation> 131753a5a1b3Sopenharmony_ci Normally this is only used in a whiteboard media specification. 131853a5a1b3Sopenharmony_ci It specifies the orientation of a the whiteboard on the screen. 131953a5a1b3Sopenharmony_ci It is a media attribute. Permitted values are `portrait', 132053a5a1b3Sopenharmony_ci `landscape' and `seascape' (upside down landscape). It is not 132153a5a1b3Sopenharmony_ci dependent on charset 132253a5a1b3Sopenharmony_ci 132353a5a1b3Sopenharmony_ci a=type:<conference type> 132453a5a1b3Sopenharmony_ci This specifies the type of the conference. Suggested values are 132553a5a1b3Sopenharmony_ci `broadcast', `meeting', `moderated', `test' and `H332'. 132653a5a1b3Sopenharmony_ci `recvonly' should be the default for `type:broadcast' sessions, 132753a5a1b3Sopenharmony_ci `type:meeting' should imply `sendrecv' and `type:moderated' 132853a5a1b3Sopenharmony_ci should indicate the use of a floor control tool and that the 132953a5a1b3Sopenharmony_ci media tools are started so as to "mute" new sites joining the 133053a5a1b3Sopenharmony_ci conference. 133153a5a1b3Sopenharmony_ci 133253a5a1b3Sopenharmony_ci Specifying the attribute type:H332 indicates that this loosely 133353a5a1b3Sopenharmony_ci coupled session is part of a H.332 session as defined in the ITU 133453a5a1b3Sopenharmony_ci H.332 specification [10]. Media tools should be started 133553a5a1b3Sopenharmony_ci `recvonly'. 133653a5a1b3Sopenharmony_ci 133753a5a1b3Sopenharmony_ci Specifying the attribute type:test is suggested as a hint that, 133853a5a1b3Sopenharmony_ci unless explicitly requested otherwise, receivers can safely avoid 133953a5a1b3Sopenharmony_ci displaying this session description to users. 134053a5a1b3Sopenharmony_ci 134153a5a1b3Sopenharmony_ci The type attribute is a session-level attribute, and is not 134253a5a1b3Sopenharmony_ci dependent on charset. 134353a5a1b3Sopenharmony_ci 134453a5a1b3Sopenharmony_ci 134553a5a1b3Sopenharmony_ci 134653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 24] 134753a5a1b3Sopenharmony_ci 134853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 134953a5a1b3Sopenharmony_ci 135053a5a1b3Sopenharmony_ci 135153a5a1b3Sopenharmony_ci a=charset:<character set> 135253a5a1b3Sopenharmony_ci This specifies the character set to be used to display the 135353a5a1b3Sopenharmony_ci session name and information data. By default, the ISO-10646 135453a5a1b3Sopenharmony_ci character set in UTF-8 encoding is used. If a more compact 135553a5a1b3Sopenharmony_ci representation is required, other character sets may be used such 135653a5a1b3Sopenharmony_ci as ISO-8859-1 for Northern European languages. In particular, 135753a5a1b3Sopenharmony_ci the ISO 8859-1 is specified with the following SDP attribute: 135853a5a1b3Sopenharmony_ci 135953a5a1b3Sopenharmony_ci a=charset:ISO-8859-1 136053a5a1b3Sopenharmony_ci 136153a5a1b3Sopenharmony_ci This is a session-level attribute; if this attribute is present, 136253a5a1b3Sopenharmony_ci it must be before the first media field. The charset specified 136353a5a1b3Sopenharmony_ci MUST be one of those registered with IANA, such as ISO-8859-1. 136453a5a1b3Sopenharmony_ci The character set identifier is a US-ASCII string and MUST be 136553a5a1b3Sopenharmony_ci compared against the IANA identifiers using a case-insensitive 136653a5a1b3Sopenharmony_ci comparison. If the identifier is not recognised or not 136753a5a1b3Sopenharmony_ci supported, all strings that are affected by it SHOULD be regarded 136853a5a1b3Sopenharmony_ci as byte strings. 136953a5a1b3Sopenharmony_ci 137053a5a1b3Sopenharmony_ci Note that a character set specified MUST still prohibit the use 137153a5a1b3Sopenharmony_ci of bytes 0x00 (Nul), 0x0A (LF) and 0x0d (CR). Character sets 137253a5a1b3Sopenharmony_ci requiring the use of these characters MUST define a quoting 137353a5a1b3Sopenharmony_ci mechanism that prevents these bytes appearing within text fields. 137453a5a1b3Sopenharmony_ci 137553a5a1b3Sopenharmony_ci a=sdplang:<language tag> 137653a5a1b3Sopenharmony_ci This can be a session level attribute or a media level attribute. 137753a5a1b3Sopenharmony_ci As a session level attribute, it specifies the language for the 137853a5a1b3Sopenharmony_ci session description. As a media level attribute, it specifies 137953a5a1b3Sopenharmony_ci the language for any media-level SDP information field associated 138053a5a1b3Sopenharmony_ci with that media. Multiple sdplang attributes can be provided 138153a5a1b3Sopenharmony_ci either at session or media level if multiple languages in the 138253a5a1b3Sopenharmony_ci session description or media use multiple languages, in which 138353a5a1b3Sopenharmony_ci case the order of the attributes indicates the order of 138453a5a1b3Sopenharmony_ci importance of the various languages in the session or media from 138553a5a1b3Sopenharmony_ci most important to least important. 138653a5a1b3Sopenharmony_ci 138753a5a1b3Sopenharmony_ci In general, sending session descriptions consisting of multiple 138853a5a1b3Sopenharmony_ci languages should be discouraged. Instead, multiple descriptions 138953a5a1b3Sopenharmony_ci should be sent describing the session, one in each language. 139053a5a1b3Sopenharmony_ci However this is not possible with all transport mechanisms, and 139153a5a1b3Sopenharmony_ci so multiple sdplang attributes are allowed although not 139253a5a1b3Sopenharmony_ci recommended. 139353a5a1b3Sopenharmony_ci 139453a5a1b3Sopenharmony_ci The sdplang attribute value must be a single RFC 1766 language 139553a5a1b3Sopenharmony_ci tag in US-ASCII. It is not dependent on the charset attribute. 139653a5a1b3Sopenharmony_ci An sdplang attribute SHOULD be specified when a session is of 139753a5a1b3Sopenharmony_ci 139853a5a1b3Sopenharmony_ci 139953a5a1b3Sopenharmony_ci 140053a5a1b3Sopenharmony_ci 140153a5a1b3Sopenharmony_ci 140253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 25] 140353a5a1b3Sopenharmony_ci 140453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 140553a5a1b3Sopenharmony_ci 140653a5a1b3Sopenharmony_ci 140753a5a1b3Sopenharmony_ci sufficient scope to cross geographic boundaries where the 140853a5a1b3Sopenharmony_ci language of recipients cannot be assumed, or where the session is 140953a5a1b3Sopenharmony_ci in a different language from the locally assumed norm. 141053a5a1b3Sopenharmony_ci 141153a5a1b3Sopenharmony_ci a=lang:<language tag> 141253a5a1b3Sopenharmony_ci This can be a session level attribute or a media level attribute. 141353a5a1b3Sopenharmony_ci As a session level attribute, it specifies the default language 141453a5a1b3Sopenharmony_ci for the session being described. As a media level attribute, it 141553a5a1b3Sopenharmony_ci specifies the language for that media, overriding any session- 141653a5a1b3Sopenharmony_ci level language specified. Multiple lang attributes can be 141753a5a1b3Sopenharmony_ci provided either at session or media level if multiple languages 141853a5a1b3Sopenharmony_ci if the session description or media use multiple languages, in 141953a5a1b3Sopenharmony_ci which case the order of the attributes indicates the order of 142053a5a1b3Sopenharmony_ci importance of the various languages in the session or media from 142153a5a1b3Sopenharmony_ci most important to least important. 142253a5a1b3Sopenharmony_ci 142353a5a1b3Sopenharmony_ci The lang attribute value must be a single RFC 1766 language tag 142453a5a1b3Sopenharmony_ci in US-ASCII. It is not dependent on the charset attribute. A 142553a5a1b3Sopenharmony_ci lang attribute SHOULD be specified when a session is of 142653a5a1b3Sopenharmony_ci sufficient scope to cross geographic boundaries where the 142753a5a1b3Sopenharmony_ci language of recipients cannot be assumed, or where the session is 142853a5a1b3Sopenharmony_ci in a different language from the locally assumed norm. 142953a5a1b3Sopenharmony_ci 143053a5a1b3Sopenharmony_ci a=framerate:<frame rate> 143153a5a1b3Sopenharmony_ci This gives the maximum video frame rate in frames/sec. It is 143253a5a1b3Sopenharmony_ci intended as a recommendation for the encoding of video data. 143353a5a1b3Sopenharmony_ci Decimal representations of fractional values using the notation 143453a5a1b3Sopenharmony_ci "<integer>.<fraction>" are allowed. It is a media attribute, is 143553a5a1b3Sopenharmony_ci only defined for video media, and is not dependent on charset. 143653a5a1b3Sopenharmony_ci 143753a5a1b3Sopenharmony_ci a=quality:<quality> 143853a5a1b3Sopenharmony_ci This gives a suggestion for the quality of the encoding as an 143953a5a1b3Sopenharmony_ci integer value. 144053a5a1b3Sopenharmony_ci 144153a5a1b3Sopenharmony_ci The intention of the quality attribute for video is to specify a 144253a5a1b3Sopenharmony_ci non-default trade-off between frame-rate and still-image quality. 144353a5a1b3Sopenharmony_ci For video, the value in the range 0 to 10, with the following 144453a5a1b3Sopenharmony_ci suggested meaning: 144553a5a1b3Sopenharmony_ci 144653a5a1b3Sopenharmony_ci 10 - the best still-image quality the compression scheme can 144753a5a1b3Sopenharmony_ci give. 144853a5a1b3Sopenharmony_ci 144953a5a1b3Sopenharmony_ci 5 - the default behaviour given no quality suggestion. 145053a5a1b3Sopenharmony_ci 145153a5a1b3Sopenharmony_ci 0 - the worst still-image quality the codec designer thinks is 145253a5a1b3Sopenharmony_ci still usable. 145353a5a1b3Sopenharmony_ci 145453a5a1b3Sopenharmony_ci It is a media attribute, and is not dependent on charset. 145553a5a1b3Sopenharmony_ci 145653a5a1b3Sopenharmony_ci 145753a5a1b3Sopenharmony_ci 145853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 26] 145953a5a1b3Sopenharmony_ci 146053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 146153a5a1b3Sopenharmony_ci 146253a5a1b3Sopenharmony_ci 146353a5a1b3Sopenharmony_ci a=fmtp:<format> <format specific parameters> 146453a5a1b3Sopenharmony_ci This attribute allows parameters that are specific to a 146553a5a1b3Sopenharmony_ci particular format to be conveyed in a way that SDP doesn't have 146653a5a1b3Sopenharmony_ci to understand them. The format must be one of the formats 146753a5a1b3Sopenharmony_ci specified for the media. Format-specific parameters may be any 146853a5a1b3Sopenharmony_ci set of parameters required to be conveyed by SDP and given 146953a5a1b3Sopenharmony_ci unchanged to the media tool that will use this format. 147053a5a1b3Sopenharmony_ci 147153a5a1b3Sopenharmony_ci It is a media attribute, and is not dependent on charset. 147253a5a1b3Sopenharmony_ci 147353a5a1b3Sopenharmony_ci6.1. Communicating Conference Control Policy 147453a5a1b3Sopenharmony_ci 147553a5a1b3Sopenharmony_ci There is some debate over the way conference control policy should be 147653a5a1b3Sopenharmony_ci communicated. In general, the authors believe that an implicit 147753a5a1b3Sopenharmony_ci declarative style of specifying conference control is desirable where 147853a5a1b3Sopenharmony_ci possible. 147953a5a1b3Sopenharmony_ci 148053a5a1b3Sopenharmony_ci A simple declarative style uses a single conference attribute field 148153a5a1b3Sopenharmony_ci before the first media field, possibly supplemented by properties 148253a5a1b3Sopenharmony_ci such as `recvonly' for some of the media tools. This conference 148353a5a1b3Sopenharmony_ci attribute conveys the conference control policy. An example might be: 148453a5a1b3Sopenharmony_ci 148553a5a1b3Sopenharmony_ci a=type:moderated 148653a5a1b3Sopenharmony_ci 148753a5a1b3Sopenharmony_ci In some cases, however, it is possible that this may be insufficient 148853a5a1b3Sopenharmony_ci to communicate the details of an unusual conference control policy. 148953a5a1b3Sopenharmony_ci If this is the case, then a conference attribute specifying external 149053a5a1b3Sopenharmony_ci control might be set, and then one or more "media" fields might be 149153a5a1b3Sopenharmony_ci used to specify the conference control tools and configuration data 149253a5a1b3Sopenharmony_ci for those tools. An example is an ITU H.332 session: 149353a5a1b3Sopenharmony_ci 149453a5a1b3Sopenharmony_ci c=IN IP4 224.5.6.7 149553a5a1b3Sopenharmony_ci a=type:H332 149653a5a1b3Sopenharmony_ci m=audio 49230 RTP/AVP 0 149753a5a1b3Sopenharmony_ci m=video 49232 RTP/AVP 31 149853a5a1b3Sopenharmony_ci m=application 12349 udp wb 149953a5a1b3Sopenharmony_ci m=control 49234 H323 mc 150053a5a1b3Sopenharmony_ci c=IN IP4 134.134.157.81 150153a5a1b3Sopenharmony_ci 150253a5a1b3Sopenharmony_ci In this example, a general conference attribute (type:H332) is 150353a5a1b3Sopenharmony_ci specified stating that conference control will be provided by an 150453a5a1b3Sopenharmony_ci external H.332 tool, and a contact addresses for the H.323 session 150553a5a1b3Sopenharmony_ci multipoint controller is given. 150653a5a1b3Sopenharmony_ci 150753a5a1b3Sopenharmony_ci In this document, only the declarative style of conference control 150853a5a1b3Sopenharmony_ci declaration is specified. Other forms of conference control should 150953a5a1b3Sopenharmony_ci specify an appropriate type attribute, and should define the 151053a5a1b3Sopenharmony_ci implications this has for control media. 151153a5a1b3Sopenharmony_ci 151253a5a1b3Sopenharmony_ci 151353a5a1b3Sopenharmony_ci 151453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 27] 151553a5a1b3Sopenharmony_ci 151653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 151753a5a1b3Sopenharmony_ci 151853a5a1b3Sopenharmony_ci 151953a5a1b3Sopenharmony_ci7. Security Considerations 152053a5a1b3Sopenharmony_ci 152153a5a1b3Sopenharmony_ci SDP is a session description format that describes multimedia 152253a5a1b3Sopenharmony_ci sessions. A session description should not be trusted unless it has 152353a5a1b3Sopenharmony_ci been obtained by an authenticated transport protocol from a trusted 152453a5a1b3Sopenharmony_ci source. Many different transport protocols may be used to distribute 152553a5a1b3Sopenharmony_ci session description, and the nature of the authentication will differ 152653a5a1b3Sopenharmony_ci from transport to transport. 152753a5a1b3Sopenharmony_ci 152853a5a1b3Sopenharmony_ci One transport that will frequently be used to distribute session 152953a5a1b3Sopenharmony_ci descriptions is the Session Announcement Protocol (SAP). SAP 153053a5a1b3Sopenharmony_ci provides both encryption and authentication mechanisms but due to the 153153a5a1b3Sopenharmony_ci nature of session announcements it is likely that there are many 153253a5a1b3Sopenharmony_ci occasions where the originator of a session announcement cannot be 153353a5a1b3Sopenharmony_ci authenticated because they are previously unknown to the receiver of 153453a5a1b3Sopenharmony_ci the announcement and because no common public key infrastructure is 153553a5a1b3Sopenharmony_ci available. 153653a5a1b3Sopenharmony_ci 153753a5a1b3Sopenharmony_ci On receiving a session description over an unauthenticated transport 153853a5a1b3Sopenharmony_ci mechanism or from an untrusted party, software parsing the session 153953a5a1b3Sopenharmony_ci should take a few precautions. Session description contain 154053a5a1b3Sopenharmony_ci information required to start software on the receivers system. 154153a5a1b3Sopenharmony_ci Software that parses a session description MUST not be able to start 154253a5a1b3Sopenharmony_ci other software except that which is specifically configured as 154353a5a1b3Sopenharmony_ci appropriate software to participate in multimedia sessions. It is 154453a5a1b3Sopenharmony_ci normally considered INAPPROPRIATE for software parsing a session 154553a5a1b3Sopenharmony_ci description to start, on a user's system, software that is 154653a5a1b3Sopenharmony_ci appropriate to participate in multimedia sessions, without the user 154753a5a1b3Sopenharmony_ci first being informed that such software will be started and giving 154853a5a1b3Sopenharmony_ci their consent. Thus a session description arriving by session 154953a5a1b3Sopenharmony_ci announcement, email, session invitation, or WWW page SHOULD not 155053a5a1b3Sopenharmony_ci deliver the user into an {it interactive} multimedia session without 155153a5a1b3Sopenharmony_ci the user being aware that this will happen. As it is not always 155253a5a1b3Sopenharmony_ci simple to tell whether a session is interactive or not, applications 155353a5a1b3Sopenharmony_ci that are unsure should assume sessions are interactive. 155453a5a1b3Sopenharmony_ci 155553a5a1b3Sopenharmony_ci In this specification, there are no attributes which would allow the 155653a5a1b3Sopenharmony_ci recipient of a session description to be informed to start multimedia 155753a5a1b3Sopenharmony_ci tools in a mode where they default to transmitting. Under some 155853a5a1b3Sopenharmony_ci circumstances it might be appropriate to define such attributes. If 155953a5a1b3Sopenharmony_ci this is done an application parsing a session description containing 156053a5a1b3Sopenharmony_ci such attributes SHOULD either ignore them, or inform the user that 156153a5a1b3Sopenharmony_ci joining this session will result in the automatic transmission of 156253a5a1b3Sopenharmony_ci multimedia data. The default behaviour for an unknown attribute is 156353a5a1b3Sopenharmony_ci to ignore it. 156453a5a1b3Sopenharmony_ci 156553a5a1b3Sopenharmony_ci 156653a5a1b3Sopenharmony_ci 156753a5a1b3Sopenharmony_ci 156853a5a1b3Sopenharmony_ci 156953a5a1b3Sopenharmony_ci 157053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 28] 157153a5a1b3Sopenharmony_ci 157253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 157353a5a1b3Sopenharmony_ci 157453a5a1b3Sopenharmony_ci 157553a5a1b3Sopenharmony_ci Session descriptions may be parsed at intermediate systems such as 157653a5a1b3Sopenharmony_ci firewalls for the purposes of opening a hole in the firewall to allow 157753a5a1b3Sopenharmony_ci the participation in multimedia sessions. It is considered 157853a5a1b3Sopenharmony_ci INAPPROPRIATE for a firewall to open such holes for unicast data 157953a5a1b3Sopenharmony_ci streams unless the session description comes in a request from inside 158053a5a1b3Sopenharmony_ci the firewall. 158153a5a1b3Sopenharmony_ci 158253a5a1b3Sopenharmony_ci For multicast sessions, it is likely that local administrators will 158353a5a1b3Sopenharmony_ci apply their own policies, but the exclusive use of "local" or "site- 158453a5a1b3Sopenharmony_ci local" administrative scope within the firewall and the refusal of 158553a5a1b3Sopenharmony_ci the firewall to open a hole for such scopes will provide separation 158653a5a1b3Sopenharmony_ci of global multicast sessions from local ones. 158753a5a1b3Sopenharmony_ci 158853a5a1b3Sopenharmony_ci 158953a5a1b3Sopenharmony_ci 159053a5a1b3Sopenharmony_ci 159153a5a1b3Sopenharmony_ci 159253a5a1b3Sopenharmony_ci 159353a5a1b3Sopenharmony_ci 159453a5a1b3Sopenharmony_ci 159553a5a1b3Sopenharmony_ci 159653a5a1b3Sopenharmony_ci 159753a5a1b3Sopenharmony_ci 159853a5a1b3Sopenharmony_ci 159953a5a1b3Sopenharmony_ci 160053a5a1b3Sopenharmony_ci 160153a5a1b3Sopenharmony_ci 160253a5a1b3Sopenharmony_ci 160353a5a1b3Sopenharmony_ci 160453a5a1b3Sopenharmony_ci 160553a5a1b3Sopenharmony_ci 160653a5a1b3Sopenharmony_ci 160753a5a1b3Sopenharmony_ci 160853a5a1b3Sopenharmony_ci 160953a5a1b3Sopenharmony_ci 161053a5a1b3Sopenharmony_ci 161153a5a1b3Sopenharmony_ci 161253a5a1b3Sopenharmony_ci 161353a5a1b3Sopenharmony_ci 161453a5a1b3Sopenharmony_ci 161553a5a1b3Sopenharmony_ci 161653a5a1b3Sopenharmony_ci 161753a5a1b3Sopenharmony_ci 161853a5a1b3Sopenharmony_ci 161953a5a1b3Sopenharmony_ci 162053a5a1b3Sopenharmony_ci 162153a5a1b3Sopenharmony_ci 162253a5a1b3Sopenharmony_ci 162353a5a1b3Sopenharmony_ci 162453a5a1b3Sopenharmony_ci 162553a5a1b3Sopenharmony_ci 162653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 29] 162753a5a1b3Sopenharmony_ci 162853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 162953a5a1b3Sopenharmony_ci 163053a5a1b3Sopenharmony_ci 163153a5a1b3Sopenharmony_ciAppendix A: SDP Grammar 163253a5a1b3Sopenharmony_ci 163353a5a1b3Sopenharmony_ci This appendix provides an Augmented BNF grammar for SDP. ABNF is 163453a5a1b3Sopenharmony_ci defined in RFC 2234. 163553a5a1b3Sopenharmony_ci 163653a5a1b3Sopenharmony_ci 163753a5a1b3Sopenharmony_ci announcement = proto-version 163853a5a1b3Sopenharmony_ci origin-field 163953a5a1b3Sopenharmony_ci session-name-field 164053a5a1b3Sopenharmony_ci information-field 164153a5a1b3Sopenharmony_ci uri-field 164253a5a1b3Sopenharmony_ci email-fields 164353a5a1b3Sopenharmony_ci phone-fields 164453a5a1b3Sopenharmony_ci connection-field 164553a5a1b3Sopenharmony_ci bandwidth-fields 164653a5a1b3Sopenharmony_ci time-fields 164753a5a1b3Sopenharmony_ci key-field 164853a5a1b3Sopenharmony_ci attribute-fields 164953a5a1b3Sopenharmony_ci media-descriptions 165053a5a1b3Sopenharmony_ci 165153a5a1b3Sopenharmony_ci proto-version = "v=" 1*DIGIT CRLF 165253a5a1b3Sopenharmony_ci ;this memo describes version 0 165353a5a1b3Sopenharmony_ci 165453a5a1b3Sopenharmony_ci origin-field = "o=" username space 165553a5a1b3Sopenharmony_ci sess-id space sess-version space 165653a5a1b3Sopenharmony_ci nettype space addrtype space 165753a5a1b3Sopenharmony_ci addr CRLF 165853a5a1b3Sopenharmony_ci 165953a5a1b3Sopenharmony_ci session-name-field = "s=" text CRLF 166053a5a1b3Sopenharmony_ci 166153a5a1b3Sopenharmony_ci information-field = ["i=" text CRLF] 166253a5a1b3Sopenharmony_ci 166353a5a1b3Sopenharmony_ci uri-field = ["u=" uri CRLF] 166453a5a1b3Sopenharmony_ci 166553a5a1b3Sopenharmony_ci email-fields = *("e=" email-address CRLF) 166653a5a1b3Sopenharmony_ci 166753a5a1b3Sopenharmony_ci phone-fields = *("p=" phone-number CRLF) 166853a5a1b3Sopenharmony_ci 166953a5a1b3Sopenharmony_ci 167053a5a1b3Sopenharmony_ci connection-field = ["c=" nettype space addrtype space 167153a5a1b3Sopenharmony_ci connection-address CRLF] 167253a5a1b3Sopenharmony_ci ;a connection field must be present 167353a5a1b3Sopenharmony_ci ;in every media description or at the 167453a5a1b3Sopenharmony_ci ;session-level 167553a5a1b3Sopenharmony_ci 167653a5a1b3Sopenharmony_ci 167753a5a1b3Sopenharmony_ci bandwidth-fields = *("b=" bwtype ":" bandwidth CRLF) 167853a5a1b3Sopenharmony_ci 167953a5a1b3Sopenharmony_ci 168053a5a1b3Sopenharmony_ci 168153a5a1b3Sopenharmony_ci 168253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 30] 168353a5a1b3Sopenharmony_ci 168453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 168553a5a1b3Sopenharmony_ci 168653a5a1b3Sopenharmony_ci 168753a5a1b3Sopenharmony_ci time-fields = 1*( "t=" start-time space stop-time 168853a5a1b3Sopenharmony_ci *(CRLF repeat-fields) CRLF) 168953a5a1b3Sopenharmony_ci [zone-adjustments CRLF] 169053a5a1b3Sopenharmony_ci 169153a5a1b3Sopenharmony_ci 169253a5a1b3Sopenharmony_ci repeat-fields = "r=" repeat-interval space typed-time 169353a5a1b3Sopenharmony_ci 1*(space typed-time) 169453a5a1b3Sopenharmony_ci 169553a5a1b3Sopenharmony_ci 169653a5a1b3Sopenharmony_ci zone-adjustments = time space ["-"] typed-time 169753a5a1b3Sopenharmony_ci *(space time space ["-"] typed-time) 169853a5a1b3Sopenharmony_ci 169953a5a1b3Sopenharmony_ci 170053a5a1b3Sopenharmony_ci key-field = ["k=" key-type CRLF] 170153a5a1b3Sopenharmony_ci 170253a5a1b3Sopenharmony_ci 170353a5a1b3Sopenharmony_ci key-type = "prompt" | 170453a5a1b3Sopenharmony_ci "clear:" key-data | 170553a5a1b3Sopenharmony_ci "base64:" key-data | 170653a5a1b3Sopenharmony_ci "uri:" uri 170753a5a1b3Sopenharmony_ci 170853a5a1b3Sopenharmony_ci 170953a5a1b3Sopenharmony_ci key-data = email-safe | "~" | " 171053a5a1b3Sopenharmony_ci 171153a5a1b3Sopenharmony_ci 171253a5a1b3Sopenharmony_ci attribute-fields = *("a=" attribute CRLF) 171353a5a1b3Sopenharmony_ci 171453a5a1b3Sopenharmony_ci 171553a5a1b3Sopenharmony_ci media-descriptions = *( media-field 171653a5a1b3Sopenharmony_ci information-field 171753a5a1b3Sopenharmony_ci *(connection-field) 171853a5a1b3Sopenharmony_ci bandwidth-fields 171953a5a1b3Sopenharmony_ci key-field 172053a5a1b3Sopenharmony_ci attribute-fields ) 172153a5a1b3Sopenharmony_ci 172253a5a1b3Sopenharmony_ci 172353a5a1b3Sopenharmony_ci media-field = "m=" media space port ["/" integer] 172453a5a1b3Sopenharmony_ci space proto 1*(space fmt) CRLF 172553a5a1b3Sopenharmony_ci 172653a5a1b3Sopenharmony_ci 172753a5a1b3Sopenharmony_ci media = 1*(alpha-numeric) 172853a5a1b3Sopenharmony_ci ;typically "audio", "video", "application" 172953a5a1b3Sopenharmony_ci ;or "data" 173053a5a1b3Sopenharmony_ci 173153a5a1b3Sopenharmony_ci fmt = 1*(alpha-numeric) 173253a5a1b3Sopenharmony_ci ;typically an RTP payload type for audio 173353a5a1b3Sopenharmony_ci ;and video media 173453a5a1b3Sopenharmony_ci 173553a5a1b3Sopenharmony_ci 173653a5a1b3Sopenharmony_ci 173753a5a1b3Sopenharmony_ci 173853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 31] 173953a5a1b3Sopenharmony_ci 174053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 174153a5a1b3Sopenharmony_ci 174253a5a1b3Sopenharmony_ci 174353a5a1b3Sopenharmony_ci proto = 1*(alpha-numeric) 174453a5a1b3Sopenharmony_ci ;typically "RTP/AVP" or "udp" for IP4 174553a5a1b3Sopenharmony_ci 174653a5a1b3Sopenharmony_ci 174753a5a1b3Sopenharmony_ci port = 1*(DIGIT) 174853a5a1b3Sopenharmony_ci ;should in the range "1024" to "65535" inclusive 174953a5a1b3Sopenharmony_ci ;for UDP based media 175053a5a1b3Sopenharmony_ci 175153a5a1b3Sopenharmony_ci 175253a5a1b3Sopenharmony_ci attribute = (att-field ":" att-value) | att-field 175353a5a1b3Sopenharmony_ci 175453a5a1b3Sopenharmony_ci 175553a5a1b3Sopenharmony_ci att-field = 1*(alpha-numeric) 175653a5a1b3Sopenharmony_ci 175753a5a1b3Sopenharmony_ci 175853a5a1b3Sopenharmony_ci att-value = byte-string 175953a5a1b3Sopenharmony_ci 176053a5a1b3Sopenharmony_ci 176153a5a1b3Sopenharmony_ci sess-id = 1*(DIGIT) 176253a5a1b3Sopenharmony_ci ;should be unique for this originating username/host 176353a5a1b3Sopenharmony_ci 176453a5a1b3Sopenharmony_ci 176553a5a1b3Sopenharmony_ci sess-version = 1*(DIGIT) 176653a5a1b3Sopenharmony_ci ;0 is a new session 176753a5a1b3Sopenharmony_ci 176853a5a1b3Sopenharmony_ci 176953a5a1b3Sopenharmony_ci connection-address = multicast-address 177053a5a1b3Sopenharmony_ci | addr 177153a5a1b3Sopenharmony_ci 177253a5a1b3Sopenharmony_ci 177353a5a1b3Sopenharmony_ci multicast-address = 3*(decimal-uchar ".") decimal-uchar "/" ttl 177453a5a1b3Sopenharmony_ci [ "/" integer ] 177553a5a1b3Sopenharmony_ci ;multicast addresses may be in the range 177653a5a1b3Sopenharmony_ci ;224.0.0.0 to 239.255.255.255 177753a5a1b3Sopenharmony_ci 177853a5a1b3Sopenharmony_ci ttl = decimal-uchar 177953a5a1b3Sopenharmony_ci 178053a5a1b3Sopenharmony_ci start-time = time | "0" 178153a5a1b3Sopenharmony_ci 178253a5a1b3Sopenharmony_ci stop-time = time | "0" 178353a5a1b3Sopenharmony_ci 178453a5a1b3Sopenharmony_ci time = POS-DIGIT 9*(DIGIT) 178553a5a1b3Sopenharmony_ci ;sufficient for 2 more centuries 178653a5a1b3Sopenharmony_ci 178753a5a1b3Sopenharmony_ci 178853a5a1b3Sopenharmony_ci repeat-interval = typed-time 178953a5a1b3Sopenharmony_ci 179053a5a1b3Sopenharmony_ci 179153a5a1b3Sopenharmony_ci 179253a5a1b3Sopenharmony_ci 179353a5a1b3Sopenharmony_ci 179453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 32] 179553a5a1b3Sopenharmony_ci 179653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 179753a5a1b3Sopenharmony_ci 179853a5a1b3Sopenharmony_ci 179953a5a1b3Sopenharmony_ci typed-time = 1*(DIGIT) [fixed-len-time-unit] 180053a5a1b3Sopenharmony_ci 180153a5a1b3Sopenharmony_ci 180253a5a1b3Sopenharmony_ci fixed-len-time-unit = "d" | "h" | "m" | "s" 180353a5a1b3Sopenharmony_ci 180453a5a1b3Sopenharmony_ci 180553a5a1b3Sopenharmony_ci bwtype = 1*(alpha-numeric) 180653a5a1b3Sopenharmony_ci 180753a5a1b3Sopenharmony_ci bandwidth = 1*(DIGIT) 180853a5a1b3Sopenharmony_ci 180953a5a1b3Sopenharmony_ci 181053a5a1b3Sopenharmony_ci username = safe 181153a5a1b3Sopenharmony_ci ;pretty wide definition, but doesn't include space 181253a5a1b3Sopenharmony_ci 181353a5a1b3Sopenharmony_ci 181453a5a1b3Sopenharmony_ci email-address = email | email "(" email-safe ")" | 181553a5a1b3Sopenharmony_ci email-safe "<" email ">" 181653a5a1b3Sopenharmony_ci 181753a5a1b3Sopenharmony_ci 181853a5a1b3Sopenharmony_ci email = ;defined in RFC822 181953a5a1b3Sopenharmony_ci 182053a5a1b3Sopenharmony_ci 182153a5a1b3Sopenharmony_ci uri= ;defined in RFC1630 182253a5a1b3Sopenharmony_ci 182353a5a1b3Sopenharmony_ci 182453a5a1b3Sopenharmony_ci phone-number = phone | phone "(" email-safe ")" | 182553a5a1b3Sopenharmony_ci email-safe "<" phone ">" 182653a5a1b3Sopenharmony_ci 182753a5a1b3Sopenharmony_ci 182853a5a1b3Sopenharmony_ci phone = "+" POS-DIGIT 1*(space | "-" | DIGIT) 182953a5a1b3Sopenharmony_ci ;there must be a space or hyphen between the 183053a5a1b3Sopenharmony_ci ;international code and the rest of the number. 183153a5a1b3Sopenharmony_ci 183253a5a1b3Sopenharmony_ci 183353a5a1b3Sopenharmony_ci nettype = "IN" 183453a5a1b3Sopenharmony_ci ;list to be extended 183553a5a1b3Sopenharmony_ci 183653a5a1b3Sopenharmony_ci 183753a5a1b3Sopenharmony_ci addrtype = "IP4" | "IP6" 183853a5a1b3Sopenharmony_ci ;list to be extended 183953a5a1b3Sopenharmony_ci 184053a5a1b3Sopenharmony_ci 184153a5a1b3Sopenharmony_ci addr = FQDN | unicast-address 184253a5a1b3Sopenharmony_ci 184353a5a1b3Sopenharmony_ci 184453a5a1b3Sopenharmony_ci FQDN = 4*(alpha-numeric|"-"|".") 184553a5a1b3Sopenharmony_ci ;fully qualified domain name as specified in RFC1035 184653a5a1b3Sopenharmony_ci 184753a5a1b3Sopenharmony_ci 184853a5a1b3Sopenharmony_ci 184953a5a1b3Sopenharmony_ci 185053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 33] 185153a5a1b3Sopenharmony_ci 185253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 185353a5a1b3Sopenharmony_ci 185453a5a1b3Sopenharmony_ci 185553a5a1b3Sopenharmony_ci unicast-address = IP4-address | IP6-address 185653a5a1b3Sopenharmony_ci 185753a5a1b3Sopenharmony_ci 185853a5a1b3Sopenharmony_ci IP4-address = b1 "." decimal-uchar "." decimal-uchar "." b4 185953a5a1b3Sopenharmony_ci b1 = decimal-uchar 186053a5a1b3Sopenharmony_ci ;less than "224"; not "0" or "127" 186153a5a1b3Sopenharmony_ci b4 = decimal-uchar 186253a5a1b3Sopenharmony_ci ;not "0" 186353a5a1b3Sopenharmony_ci 186453a5a1b3Sopenharmony_ci IP6-address = ;to be defined 186553a5a1b3Sopenharmony_ci 186653a5a1b3Sopenharmony_ci 186753a5a1b3Sopenharmony_ci text = byte-string 186853a5a1b3Sopenharmony_ci ;default is to interpret this as IS0-10646 UTF8 186953a5a1b3Sopenharmony_ci ;ISO 8859-1 requires a "a=charset:ISO-8859-1" 187053a5a1b3Sopenharmony_ci ;session-level attribute to be used 187153a5a1b3Sopenharmony_ci 187253a5a1b3Sopenharmony_ci 187353a5a1b3Sopenharmony_ci byte-string = 1*(0x01..0x09|0x0b|0x0c|0x0e..0xff) 187453a5a1b3Sopenharmony_ci ;any byte except NUL, CR or LF 187553a5a1b3Sopenharmony_ci 187653a5a1b3Sopenharmony_ci 187753a5a1b3Sopenharmony_ci decimal-uchar = DIGIT 187853a5a1b3Sopenharmony_ci | POS-DIGIT DIGIT 187953a5a1b3Sopenharmony_ci | ("1" 2*(DIGIT)) 188053a5a1b3Sopenharmony_ci | ("2" ("0"|"1"|"2"|"3"|"4") DIGIT) 188153a5a1b3Sopenharmony_ci | ("2" "5" ("0"|"1"|"2"|"3"|"4"|"5")) 188253a5a1b3Sopenharmony_ci 188353a5a1b3Sopenharmony_ci 188453a5a1b3Sopenharmony_ci integer = POS-DIGIT *(DIGIT) 188553a5a1b3Sopenharmony_ci 188653a5a1b3Sopenharmony_ci 188753a5a1b3Sopenharmony_ci alpha-numeric = ALPHA | DIGIT 188853a5a1b3Sopenharmony_ci 188953a5a1b3Sopenharmony_ci 189053a5a1b3Sopenharmony_ci DIGIT = "0" | POS-DIGIT 189153a5a1b3Sopenharmony_ci 189253a5a1b3Sopenharmony_ci 189353a5a1b3Sopenharmony_ci POS-DIGIT = "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9" 189453a5a1b3Sopenharmony_ci 189553a5a1b3Sopenharmony_ci 189653a5a1b3Sopenharmony_ci ALPHA = "a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|"i"|"j"|"k"| 189753a5a1b3Sopenharmony_ci "l"|"m"|"n"|"o "|"p"|"q"|"r"|"s"|"t"|"u"|"v"| 189853a5a1b3Sopenharmony_ci "w"|"x"|"y"|"z"|"A"|"B"|"C "|"D"|"E"|"F"|"G"| 189953a5a1b3Sopenharmony_ci "H"|"I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|" Q"|"R"| 190053a5a1b3Sopenharmony_ci "S"|"T"|"U"|"V"|"W"|"X"|"Y"|"Z" 190153a5a1b3Sopenharmony_ci 190253a5a1b3Sopenharmony_ci 190353a5a1b3Sopenharmony_ci 190453a5a1b3Sopenharmony_ci 190553a5a1b3Sopenharmony_ci 190653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 34] 190753a5a1b3Sopenharmony_ci 190853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 190953a5a1b3Sopenharmony_ci 191053a5a1b3Sopenharmony_ci 191153a5a1b3Sopenharmony_ci email-safe = safe | space | tab 191253a5a1b3Sopenharmony_ci 191353a5a1b3Sopenharmony_ci 191453a5a1b3Sopenharmony_ci safe = alpha-numeric | 191553a5a1b3Sopenharmony_ci "'" | "'" | "-" | "." | "/" | ":" | "?" | """ | 191653a5a1b3Sopenharmony_ci "#" | "$" | "&" | "*" | ";" | "=" | "@" | "[" | 191753a5a1b3Sopenharmony_ci "]" | "^" | "_" | "`" | "{" | "|" | "}" | "+" | 191853a5a1b3Sopenharmony_ci "~" | " 191953a5a1b3Sopenharmony_ci 192053a5a1b3Sopenharmony_ci 192153a5a1b3Sopenharmony_ci space = %d32 192253a5a1b3Sopenharmony_ci tab = %d9 192353a5a1b3Sopenharmony_ci CRLF = %d13.10 192453a5a1b3Sopenharmony_ci 192553a5a1b3Sopenharmony_ci 192653a5a1b3Sopenharmony_ci 192753a5a1b3Sopenharmony_ci 192853a5a1b3Sopenharmony_ci 192953a5a1b3Sopenharmony_ci 193053a5a1b3Sopenharmony_ci 193153a5a1b3Sopenharmony_ci 193253a5a1b3Sopenharmony_ci 193353a5a1b3Sopenharmony_ci 193453a5a1b3Sopenharmony_ci 193553a5a1b3Sopenharmony_ci 193653a5a1b3Sopenharmony_ci 193753a5a1b3Sopenharmony_ci 193853a5a1b3Sopenharmony_ci 193953a5a1b3Sopenharmony_ci 194053a5a1b3Sopenharmony_ci 194153a5a1b3Sopenharmony_ci 194253a5a1b3Sopenharmony_ci 194353a5a1b3Sopenharmony_ci 194453a5a1b3Sopenharmony_ci 194553a5a1b3Sopenharmony_ci 194653a5a1b3Sopenharmony_ci 194753a5a1b3Sopenharmony_ci 194853a5a1b3Sopenharmony_ci 194953a5a1b3Sopenharmony_ci 195053a5a1b3Sopenharmony_ci 195153a5a1b3Sopenharmony_ci 195253a5a1b3Sopenharmony_ci 195353a5a1b3Sopenharmony_ci 195453a5a1b3Sopenharmony_ci 195553a5a1b3Sopenharmony_ci 195653a5a1b3Sopenharmony_ci 195753a5a1b3Sopenharmony_ci 195853a5a1b3Sopenharmony_ci 195953a5a1b3Sopenharmony_ci 196053a5a1b3Sopenharmony_ci 196153a5a1b3Sopenharmony_ci 196253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 35] 196353a5a1b3Sopenharmony_ci 196453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 196553a5a1b3Sopenharmony_ci 196653a5a1b3Sopenharmony_ci 196753a5a1b3Sopenharmony_ciAppendix B: Guidelines for registering SDP names with IANA 196853a5a1b3Sopenharmony_ci 196953a5a1b3Sopenharmony_ci There are seven field names that may be registered with IANA. Using 197053a5a1b3Sopenharmony_ci the terminology in the SDP specification BNF, they are "media", 197153a5a1b3Sopenharmony_ci "proto", "fmt", "att-field", "bwtype", "nettype" and "addrtype". 197253a5a1b3Sopenharmony_ci 197353a5a1b3Sopenharmony_ci "media" (eg, audio, video, application, data). 197453a5a1b3Sopenharmony_ci 197553a5a1b3Sopenharmony_ci Packetized media types, such as those used by RTP, share the 197653a5a1b3Sopenharmony_ci namespace used by media types registry [RFC 2048] (i.e. "MIME 197753a5a1b3Sopenharmony_ci types"). The list of valid media names is the set of top-level 197853a5a1b3Sopenharmony_ci MIME content types. The set of media is intended to be small and 197953a5a1b3Sopenharmony_ci not to be extended except under rare circumstances. (The MIME 198053a5a1b3Sopenharmony_ci subtype corresponds to the "fmt" parameter below). 198153a5a1b3Sopenharmony_ci 198253a5a1b3Sopenharmony_ci "proto" 198353a5a1b3Sopenharmony_ci 198453a5a1b3Sopenharmony_ci In general this should be an IETF standards-track transport 198553a5a1b3Sopenharmony_ci protocol identifier such as RTP/AVP (rfc 1889 under the rfc 1890 198653a5a1b3Sopenharmony_ci profile). 198753a5a1b3Sopenharmony_ci 198853a5a1b3Sopenharmony_ci However, people will want to invent their own proprietary 198953a5a1b3Sopenharmony_ci transport protocols. Some of these should be registered as a 199053a5a1b3Sopenharmony_ci "fmt" using "udp" as the protocol and some of which probably 199153a5a1b3Sopenharmony_ci can't be. 199253a5a1b3Sopenharmony_ci 199353a5a1b3Sopenharmony_ci Where the protocol and the application are intimately linked, 199453a5a1b3Sopenharmony_ci such as with the LBL whiteboard wb which used a proprietary and 199553a5a1b3Sopenharmony_ci special purpose protocol over UDP, the protocol name should be 199653a5a1b3Sopenharmony_ci "udp" and the format name that should be registered is "wb". The 199753a5a1b3Sopenharmony_ci rules for formats (see below) apply to such registrations. 199853a5a1b3Sopenharmony_ci 199953a5a1b3Sopenharmony_ci Where the proprietary transport protocol really carries many 200053a5a1b3Sopenharmony_ci different data formats, it is possible to register a new protocol 200153a5a1b3Sopenharmony_ci name with IANA. In such a case, an RFC MUST be produced 200253a5a1b3Sopenharmony_ci describing the protocol and referenced in the registration. Such 200353a5a1b3Sopenharmony_ci an RFC MAY be informational, although it is preferable if it is 200453a5a1b3Sopenharmony_ci standards-track. 200553a5a1b3Sopenharmony_ci 200653a5a1b3Sopenharmony_ci "fmt" 200753a5a1b3Sopenharmony_ci 200853a5a1b3Sopenharmony_ci The format namespace is dependent on the context of the "proto" 200953a5a1b3Sopenharmony_ci field, so a format cannot be registered without specifying one or 201053a5a1b3Sopenharmony_ci more transport protocols that it applies to. 201153a5a1b3Sopenharmony_ci 201253a5a1b3Sopenharmony_ci Formats cover all the possible encodings that might want to be 201353a5a1b3Sopenharmony_ci transported in a multimedia session. 201453a5a1b3Sopenharmony_ci 201553a5a1b3Sopenharmony_ci 201653a5a1b3Sopenharmony_ci 201753a5a1b3Sopenharmony_ci 201853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 36] 201953a5a1b3Sopenharmony_ci 202053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 202153a5a1b3Sopenharmony_ci 202253a5a1b3Sopenharmony_ci 202353a5a1b3Sopenharmony_ci For RTP formats that have been assigned static payload types, the 202453a5a1b3Sopenharmony_ci payload type number is used. For RTP formats using a dynamic 202553a5a1b3Sopenharmony_ci payload type number, the dynamic payload type number is given as 202653a5a1b3Sopenharmony_ci the format and an additional "rtpmap" attribute specifies the 202753a5a1b3Sopenharmony_ci format and parameters. 202853a5a1b3Sopenharmony_ci 202953a5a1b3Sopenharmony_ci For non-RTP formats, any unregistered format name may be 203053a5a1b3Sopenharmony_ci registered through the MIME-type registration process [RFC 2048]. 203153a5a1b3Sopenharmony_ci The type given here is the MIME subtype only (the top-level MIME 203253a5a1b3Sopenharmony_ci content type is specified by the media parameter). The MIME type 203353a5a1b3Sopenharmony_ci registration SHOULD reference a standards-track RFC which 203453a5a1b3Sopenharmony_ci describes the transport protocol for this media type. If there 203553a5a1b3Sopenharmony_ci is an existing MIME type for this format, the MIME registration 203653a5a1b3Sopenharmony_ci should be augmented to reference the transport specification for 203753a5a1b3Sopenharmony_ci this media type. If there is not an existing MIME type for this 203853a5a1b3Sopenharmony_ci format, and there exists no appropriate file format, this should 203953a5a1b3Sopenharmony_ci be noted in the encoding considerations as "no appropriate file 204053a5a1b3Sopenharmony_ci format". 204153a5a1b3Sopenharmony_ci 204253a5a1b3Sopenharmony_ci "att-field" (Attribute names) 204353a5a1b3Sopenharmony_ci 204453a5a1b3Sopenharmony_ci Attribute field names MAY be registered with IANA, although this 204553a5a1b3Sopenharmony_ci is not compulsory, and unknown attributes are simply ignored. 204653a5a1b3Sopenharmony_ci 204753a5a1b3Sopenharmony_ci When an attribute is registered, it must be accompanied by a 204853a5a1b3Sopenharmony_ci brief specification stating the following: 204953a5a1b3Sopenharmony_ci 205053a5a1b3Sopenharmony_ci o contact name, email address and telephone number 205153a5a1b3Sopenharmony_ci 205253a5a1b3Sopenharmony_ci o attribute-name (as it will appear in SDP) 205353a5a1b3Sopenharmony_ci 205453a5a1b3Sopenharmony_ci o long-form attribute name in English 205553a5a1b3Sopenharmony_ci 205653a5a1b3Sopenharmony_ci o type of attribute (session level, media level, or both) 205753a5a1b3Sopenharmony_ci 205853a5a1b3Sopenharmony_ci o whether the attribute value is subject to the charset 205953a5a1b3Sopenharmony_ci attribute. 206053a5a1b3Sopenharmony_ci 206153a5a1b3Sopenharmony_ci o a one paragraph explanation of the purpose of the attribute. 206253a5a1b3Sopenharmony_ci 206353a5a1b3Sopenharmony_ci o a specification of appropriate attribute values for this 206453a5a1b3Sopenharmony_ci attribute. 206553a5a1b3Sopenharmony_ci 206653a5a1b3Sopenharmony_ci IANA will not sanity check such attribute registrations except to 206753a5a1b3Sopenharmony_ci ensure that they do not clash with existing registrations. 206853a5a1b3Sopenharmony_ci 206953a5a1b3Sopenharmony_ci 207053a5a1b3Sopenharmony_ci 207153a5a1b3Sopenharmony_ci 207253a5a1b3Sopenharmony_ci 207353a5a1b3Sopenharmony_ci 207453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 37] 207553a5a1b3Sopenharmony_ci 207653a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 207753a5a1b3Sopenharmony_ci 207853a5a1b3Sopenharmony_ci 207953a5a1b3Sopenharmony_ci Although the above is the minimum that IANA will accept, if the 208053a5a1b3Sopenharmony_ci attribute is expected to see widespread use and interoperability 208153a5a1b3Sopenharmony_ci is an issue, authors are encouraged to produce a standards-track 208253a5a1b3Sopenharmony_ci RFC that specifies the attribute more precisely. 208353a5a1b3Sopenharmony_ci 208453a5a1b3Sopenharmony_ci Submitters of registrations should ensure that the specification 208553a5a1b3Sopenharmony_ci is in the spirit of SDP attributes, most notably that the 208653a5a1b3Sopenharmony_ci attribute is platform independent in the sense that it makes no 208753a5a1b3Sopenharmony_ci implicit assumptions about operating systems and does not name 208853a5a1b3Sopenharmony_ci specific pieces of software in a manner that might inhibit 208953a5a1b3Sopenharmony_ci interoperability. 209053a5a1b3Sopenharmony_ci 209153a5a1b3Sopenharmony_ci "bwtype" (bandwidth specifiers) 209253a5a1b3Sopenharmony_ci 209353a5a1b3Sopenharmony_ci A proliferation of bandwidth specifiers is strongly discouraged. 209453a5a1b3Sopenharmony_ci 209553a5a1b3Sopenharmony_ci New bandwidth specifiers may be registered with IANA. The 209653a5a1b3Sopenharmony_ci submission MUST reference a standards-track RFC specifying the 209753a5a1b3Sopenharmony_ci semantics of the bandwidth specifier precisely, and indicating 209853a5a1b3Sopenharmony_ci when it should be used, and why the existing registered bandwidth 209953a5a1b3Sopenharmony_ci specifiers do not suffice. 210053a5a1b3Sopenharmony_ci 210153a5a1b3Sopenharmony_ci "nettype" (Network Type) 210253a5a1b3Sopenharmony_ci 210353a5a1b3Sopenharmony_ci New network types may be registered with IANA if SDP needs to be 210453a5a1b3Sopenharmony_ci used in the context of non-internet environments. Whilst these 210553a5a1b3Sopenharmony_ci are not normally the preserve of IANA, there may be circumstances 210653a5a1b3Sopenharmony_ci when an Internet application needs to interoperate with a non- 210753a5a1b3Sopenharmony_ci internet application, such as when gatewaying an internet 210853a5a1b3Sopenharmony_ci telephony call into the PSTN. The number of network types should 210953a5a1b3Sopenharmony_ci be small and should be rarely extended. A new network type 211053a5a1b3Sopenharmony_ci cannot be registered without registering at least one address 211153a5a1b3Sopenharmony_ci type to be used with that network type. A new network type 211253a5a1b3Sopenharmony_ci registration MUST reference an RFC which gives details of the 211353a5a1b3Sopenharmony_ci network type and address type and specifies how and when they 211453a5a1b3Sopenharmony_ci would be used. Such an RFC MAY be Informational. 211553a5a1b3Sopenharmony_ci 211653a5a1b3Sopenharmony_ci "addrtype" (Address Type) 211753a5a1b3Sopenharmony_ci 211853a5a1b3Sopenharmony_ci New address types may be registered with IANA. An address type 211953a5a1b3Sopenharmony_ci is only meaningful in the context of a network type, and any 212053a5a1b3Sopenharmony_ci registration of an address type MUST specify a registered network 212153a5a1b3Sopenharmony_ci type, or be submitted along with a network type registration. A 212253a5a1b3Sopenharmony_ci new address type registration MUST reference an RFC giving 212353a5a1b3Sopenharmony_ci details of the syntax of the address type. Such an RFC MAY be 212453a5a1b3Sopenharmony_ci Informational. Address types are not expected to be registered 212553a5a1b3Sopenharmony_ci frequently. 212653a5a1b3Sopenharmony_ci 212753a5a1b3Sopenharmony_ci 212853a5a1b3Sopenharmony_ci 212953a5a1b3Sopenharmony_ci 213053a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 38] 213153a5a1b3Sopenharmony_ci 213253a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 213353a5a1b3Sopenharmony_ci 213453a5a1b3Sopenharmony_ci 213553a5a1b3Sopenharmony_ci Registration Procedure 213653a5a1b3Sopenharmony_ci 213753a5a1b3Sopenharmony_ci To register a name the above guidelines should be followed regarding 213853a5a1b3Sopenharmony_ci the required level of documentation that is required. The 213953a5a1b3Sopenharmony_ci registration itself should be sent to IANA. Attribute registrations 214053a5a1b3Sopenharmony_ci should include the information given above. Other registrations 214153a5a1b3Sopenharmony_ci should include the following additional information: 214253a5a1b3Sopenharmony_ci 214353a5a1b3Sopenharmony_ci o contact name, email address and telephone number 214453a5a1b3Sopenharmony_ci 214553a5a1b3Sopenharmony_ci o name being registered (as it will appear in SDP) 214653a5a1b3Sopenharmony_ci 214753a5a1b3Sopenharmony_ci o long-form name in English 214853a5a1b3Sopenharmony_ci 214953a5a1b3Sopenharmony_ci o type of name ("media", "proto", "fmt", "bwtype", "nettype", or 215053a5a1b3Sopenharmony_ci "addrtype") 215153a5a1b3Sopenharmony_ci 215253a5a1b3Sopenharmony_ci o a one paragraph explanation of the purpose of the registered name. 215353a5a1b3Sopenharmony_ci 215453a5a1b3Sopenharmony_ci o a reference to the specification (eg RFC number) of the registered 215553a5a1b3Sopenharmony_ci name. 215653a5a1b3Sopenharmony_ci 215753a5a1b3Sopenharmony_ci IANA may refer any registration to the IESG or to any appropriate 215853a5a1b3Sopenharmony_ci IETF working group for review, and may request revisions to be made 215953a5a1b3Sopenharmony_ci before a registration will be made. 216053a5a1b3Sopenharmony_ci 216153a5a1b3Sopenharmony_ci 216253a5a1b3Sopenharmony_ci 216353a5a1b3Sopenharmony_ci 216453a5a1b3Sopenharmony_ci 216553a5a1b3Sopenharmony_ci 216653a5a1b3Sopenharmony_ci 216753a5a1b3Sopenharmony_ci 216853a5a1b3Sopenharmony_ci 216953a5a1b3Sopenharmony_ci 217053a5a1b3Sopenharmony_ci 217153a5a1b3Sopenharmony_ci 217253a5a1b3Sopenharmony_ci 217353a5a1b3Sopenharmony_ci 217453a5a1b3Sopenharmony_ci 217553a5a1b3Sopenharmony_ci 217653a5a1b3Sopenharmony_ci 217753a5a1b3Sopenharmony_ci 217853a5a1b3Sopenharmony_ci 217953a5a1b3Sopenharmony_ci 218053a5a1b3Sopenharmony_ci 218153a5a1b3Sopenharmony_ci 218253a5a1b3Sopenharmony_ci 218353a5a1b3Sopenharmony_ci 218453a5a1b3Sopenharmony_ci 218553a5a1b3Sopenharmony_ci 218653a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 39] 218753a5a1b3Sopenharmony_ci 218853a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 218953a5a1b3Sopenharmony_ci 219053a5a1b3Sopenharmony_ci 219153a5a1b3Sopenharmony_ciAppendix C: Authors' Addresses 219253a5a1b3Sopenharmony_ci 219353a5a1b3Sopenharmony_ci Mark Handley 219453a5a1b3Sopenharmony_ci Information Sciences Institute 219553a5a1b3Sopenharmony_ci c/o MIT Laboratory for Computer Science 219653a5a1b3Sopenharmony_ci 545 Technology Square 219753a5a1b3Sopenharmony_ci Cambridge, MA 02139 219853a5a1b3Sopenharmony_ci United States 219953a5a1b3Sopenharmony_ci electronic mail: mjh@isi.edu 220053a5a1b3Sopenharmony_ci 220153a5a1b3Sopenharmony_ci Van Jacobson 220253a5a1b3Sopenharmony_ci MS 46a-1121 220353a5a1b3Sopenharmony_ci Lawrence Berkeley Laboratory 220453a5a1b3Sopenharmony_ci Berkeley, CA 94720 220553a5a1b3Sopenharmony_ci United States 220653a5a1b3Sopenharmony_ci electronic mail: van@ee.lbl.gov 220753a5a1b3Sopenharmony_ci 220853a5a1b3Sopenharmony_ciAcknowledgments 220953a5a1b3Sopenharmony_ci 221053a5a1b3Sopenharmony_ci Many people in the IETF MMUSIC working group have made comments and 221153a5a1b3Sopenharmony_ci suggestions contributing to this document. In particular, we would 221253a5a1b3Sopenharmony_ci like to thank Eve Schooler, Steve Casner, Bill Fenner, Allison 221353a5a1b3Sopenharmony_ci Mankin, Ross Finlayson, Peter Parnes, Joerg Ott, Carsten Bormann, Rob 221453a5a1b3Sopenharmony_ci Lanphier and Steve Hanna. 221553a5a1b3Sopenharmony_ci 221653a5a1b3Sopenharmony_ciReferences 221753a5a1b3Sopenharmony_ci 221853a5a1b3Sopenharmony_ci [1] Mills, D., "Network Time Protocol (version 3) specification and 221953a5a1b3Sopenharmony_ci implementation", RFC 1305, March 1992. 222053a5a1b3Sopenharmony_ci 222153a5a1b3Sopenharmony_ci [2] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: 222253a5a1b3Sopenharmony_ci A Transport Protocol for Real-Time Applications", RFC 1889, January 222353a5a1b3Sopenharmony_ci 1996. 222453a5a1b3Sopenharmony_ci 222553a5a1b3Sopenharmony_ci [3] Schulzrinne, H., "RTP Profile for Audio and Video Conferences 222653a5a1b3Sopenharmony_ci with Minimal Control", RFC 1890, January 1996 222753a5a1b3Sopenharmony_ci 222853a5a1b3Sopenharmony_ci [4] Handley, M., "SAP - Session Announcement Protocol", Work in 222953a5a1b3Sopenharmony_ci Progress. 223053a5a1b3Sopenharmony_ci 223153a5a1b3Sopenharmony_ci [5] V. Jacobson, S. McCanne, "vat - X11-based audio teleconferencing 223253a5a1b3Sopenharmony_ci tool" vat manual page, Lawrence Berkeley Laboratory, 1994. 223353a5a1b3Sopenharmony_ci 223453a5a1b3Sopenharmony_ci [6] The Unicode Consortium, "The Unicode Standard -- Version 2.0", 223553a5a1b3Sopenharmony_ci Addison-Wesley, 1996. 223653a5a1b3Sopenharmony_ci 223753a5a1b3Sopenharmony_ci 223853a5a1b3Sopenharmony_ci 223953a5a1b3Sopenharmony_ci 224053a5a1b3Sopenharmony_ci 224153a5a1b3Sopenharmony_ci 224253a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 40] 224353a5a1b3Sopenharmony_ci 224453a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 224553a5a1b3Sopenharmony_ci 224653a5a1b3Sopenharmony_ci 224753a5a1b3Sopenharmony_ci [7] ISO/IEC 10646-1:1993. International Standard -- Information 224853a5a1b3Sopenharmony_ci technol- ogy -- Universal Multiple-Octet Coded Character Set (UCS) -- 224953a5a1b3Sopenharmony_ci Part 1: Architecture and Basic Multilingual Plane. Five amendments 225053a5a1b3Sopenharmony_ci and a techn- ical corrigendum have been published up to now. UTF-8 225153a5a1b3Sopenharmony_ci is described in Annex R, published as Amendment 2. 225253a5a1b3Sopenharmony_ci 225353a5a1b3Sopenharmony_ci [8] Goldsmith, D., and M. Davis, "Using Unicode with MIME", RFC 1641, 225453a5a1b3Sopenharmony_ci July 1994. 225553a5a1b3Sopenharmony_ci 225653a5a1b3Sopenharmony_ci [9] Yergeau, F., "UTF-8, a transformation format of Unicode and ISO 225753a5a1b3Sopenharmony_ci 10646", RFC 2044, October 1996. 225853a5a1b3Sopenharmony_ci 225953a5a1b3Sopenharmony_ci [10] ITU-T Recommendation H.332 (1998): "Multimedia Terminal for 226053a5a1b3Sopenharmony_ci Receiving Internet-based H.323 Conferences", ITU, Geneva. 226153a5a1b3Sopenharmony_ci 226253a5a1b3Sopenharmony_ci [11] Handley, M., Schooler, E., and H. Schulzrinne, "Session 226353a5a1b3Sopenharmony_ci Initiation Protocol (SIP)", Work in Progress. 226453a5a1b3Sopenharmony_ci 226553a5a1b3Sopenharmony_ci [12] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming 226653a5a1b3Sopenharmony_ci Protocol (RTSP)", RFC 2326, April 1998. 226753a5a1b3Sopenharmony_ci 226853a5a1b3Sopenharmony_ci 226953a5a1b3Sopenharmony_ci 227053a5a1b3Sopenharmony_ci 227153a5a1b3Sopenharmony_ci 227253a5a1b3Sopenharmony_ci 227353a5a1b3Sopenharmony_ci 227453a5a1b3Sopenharmony_ci 227553a5a1b3Sopenharmony_ci 227653a5a1b3Sopenharmony_ci 227753a5a1b3Sopenharmony_ci 227853a5a1b3Sopenharmony_ci 227953a5a1b3Sopenharmony_ci 228053a5a1b3Sopenharmony_ci 228153a5a1b3Sopenharmony_ci 228253a5a1b3Sopenharmony_ci 228353a5a1b3Sopenharmony_ci 228453a5a1b3Sopenharmony_ci 228553a5a1b3Sopenharmony_ci 228653a5a1b3Sopenharmony_ci 228753a5a1b3Sopenharmony_ci 228853a5a1b3Sopenharmony_ci 228953a5a1b3Sopenharmony_ci 229053a5a1b3Sopenharmony_ci 229153a5a1b3Sopenharmony_ci 229253a5a1b3Sopenharmony_ci 229353a5a1b3Sopenharmony_ci 229453a5a1b3Sopenharmony_ci 229553a5a1b3Sopenharmony_ci 229653a5a1b3Sopenharmony_ci 229753a5a1b3Sopenharmony_ci 229853a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 41] 229953a5a1b3Sopenharmony_ci 230053a5a1b3Sopenharmony_ciRFC 2327 SDP April 1998 230153a5a1b3Sopenharmony_ci 230253a5a1b3Sopenharmony_ci 230353a5a1b3Sopenharmony_ciFull Copyright Statement 230453a5a1b3Sopenharmony_ci 230553a5a1b3Sopenharmony_ci Copyright (C) The Internet Society (1998). All Rights Reserved. 230653a5a1b3Sopenharmony_ci 230753a5a1b3Sopenharmony_ci This document and translations of it may be copied and furnished to 230853a5a1b3Sopenharmony_ci others, and derivative works that comment on or otherwise explain it 230953a5a1b3Sopenharmony_ci or assist in its implementation may be prepared, copied, published 231053a5a1b3Sopenharmony_ci and distributed, in whole or in part, without restriction of any 231153a5a1b3Sopenharmony_ci kind, provided that the above copyright notice and this paragraph are 231253a5a1b3Sopenharmony_ci included on all such copies and derivative works. However, this 231353a5a1b3Sopenharmony_ci document itself may not be modified in any way, such as by removing 231453a5a1b3Sopenharmony_ci the copyright notice or references to the Internet Society or other 231553a5a1b3Sopenharmony_ci Internet organizations, except as needed for the purpose of 231653a5a1b3Sopenharmony_ci developing Internet standards in which case the procedures for 231753a5a1b3Sopenharmony_ci copyrights defined in the Internet Standards process must be 231853a5a1b3Sopenharmony_ci followed, or as required to translate it into languages other than 231953a5a1b3Sopenharmony_ci English. 232053a5a1b3Sopenharmony_ci 232153a5a1b3Sopenharmony_ci The limited permissions granted above are perpetual and will not be 232253a5a1b3Sopenharmony_ci revoked by the Internet Society or its successors or assigns. 232353a5a1b3Sopenharmony_ci 232453a5a1b3Sopenharmony_ci This document and the information contained herein is provided on an 232553a5a1b3Sopenharmony_ci "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 232653a5a1b3Sopenharmony_ci TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 232753a5a1b3Sopenharmony_ci BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 232853a5a1b3Sopenharmony_ci HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 232953a5a1b3Sopenharmony_ci MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 233053a5a1b3Sopenharmony_ci 233153a5a1b3Sopenharmony_ci 233253a5a1b3Sopenharmony_ci 233353a5a1b3Sopenharmony_ci 233453a5a1b3Sopenharmony_ci 233553a5a1b3Sopenharmony_ci 233653a5a1b3Sopenharmony_ci 233753a5a1b3Sopenharmony_ci 233853a5a1b3Sopenharmony_ci 233953a5a1b3Sopenharmony_ci 234053a5a1b3Sopenharmony_ci 234153a5a1b3Sopenharmony_ci 234253a5a1b3Sopenharmony_ci 234353a5a1b3Sopenharmony_ci 234453a5a1b3Sopenharmony_ci 234553a5a1b3Sopenharmony_ci 234653a5a1b3Sopenharmony_ci 234753a5a1b3Sopenharmony_ci 234853a5a1b3Sopenharmony_ci 234953a5a1b3Sopenharmony_ci 235053a5a1b3Sopenharmony_ci 235153a5a1b3Sopenharmony_ci 235253a5a1b3Sopenharmony_ci 235353a5a1b3Sopenharmony_ci 235453a5a1b3Sopenharmony_ciHandley & Jacobson Standards Track [Page 42] 235553a5a1b3Sopenharmony_ci 2356