| < draft-ietf-mmusic-sdp-new-25.txt | draft-ietf-mmusic-sdp-new-26.txt > | |||
|---|---|---|---|---|
| Network Working Group M. Handley | Network Working Group M. Handley | |||
| Internet-Draft UCL | Internet-Draft UCL | |||
| Obsoletes: 2327, 3266 (if V. Jacobson | Obsoletes: 2327, 3266 (if V. Jacobson | |||
| approved) Packet Design | approved) Packet Design | |||
| Expires: January 17, 2006 C. Perkins | Expires: July 28, 2006 C. Perkins | |||
| University of Glasgow | University of Glasgow | |||
| July 16, 2005 | January 24, 2006 | |||
| SDP: Session Description Protocol | SDP: Session Description Protocol | |||
| draft-ietf-mmusic-sdp-new-25.txt | draft-ietf-mmusic-sdp-new-26.txt | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
| have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
| aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on January 17, 2006. | This Internet-Draft will expire on July 28, 2006. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2006). | |||
| Abstract | Abstract | |||
| This memo defines the Session Description Protocol (SDP). SDP is | This memo defines the Session Description Protocol (SDP). SDP is | |||
| intended for describing multimedia sessions for the purposes of | intended for describing multimedia sessions for the purposes of | |||
| session announcement, session invitation, and other forms of | session announcement, session invitation, and other forms of | |||
| multimedia session initiation. | multimedia session initiation. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Glossary of Terms . . . . . . . . . . . . . . . . . . . . . 3 | 2. Glossary of Terms . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Examples of SDP Usage . . . . . . . . . . . . . . . . . . . 4 | 3. Examples of SDP Usage . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1 Multicast Session Announcement . . . . . . . . . . . . . . 4 | 3.1. Session Initiation . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.2 Session Initiation . . . . . . . . . . . . . . . . . . . . 4 | 3.2. Streaming media . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.3 Streaming media . . . . . . . . . . . . . . . . . . . . . 4 | 3.3. Email and the World Wide Web . . . . . . . . . . . . . . . 4 | |||
| 3.4 Email and the World Wide Web . . . . . . . . . . . . . . . 4 | 3.4. Multicast Session Announcement . . . . . . . . . . . . . . 4 | |||
| 4. Requirements and Recommendations . . . . . . . . . . . . . . 5 | 4. Requirements and Recommendations . . . . . . . . . . . . . . . 5 | |||
| 4.1 Media and Transport Information . . . . . . . . . . . . . 6 | 4.1. Media and Transport Information . . . . . . . . . . . . . 6 | |||
| 4.2 Timing Information . . . . . . . . . . . . . . . . . . . . 6 | 4.2. Timing Information . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.3 Private Sessions . . . . . . . . . . . . . . . . . . . . . 7 | 4.3. Private Sessions . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.4 Obtaining Further Information about a Session . . . . . . 7 | 4.4. Obtaining Further Information about a Session . . . . . . 7 | |||
| 4.5 Categorisation . . . . . . . . . . . . . . . . . . . . . . 7 | 4.5. Categorisation . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.6 Internationalisation . . . . . . . . . . . . . . . . . . . 7 | 4.6. Internationalisation . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. SDP Specification . . . . . . . . . . . . . . . . . . . . . 7 | 5. SDP Specification . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1 Protocol Version ("v=") . . . . . . . . . . . . . . . . . 10 | 5.1. Protocol Version ("v=") . . . . . . . . . . . . . . . . . 10 | |||
| 5.2 Origin ("o=") . . . . . . . . . . . . . . . . . . . . . . 10 | 5.2. Origin ("o=") . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.3 Session Name ("s=") . . . . . . . . . . . . . . . . . . . 12 | 5.3. Session Name ("s=") . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.4 Session Information ("i=") . . . . . . . . . . . . . . . . 12 | 5.4. Session Information ("i=") . . . . . . . . . . . . . . . . 12 | |||
| 5.5 URI ("u=") . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.5. URI ("u=") . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.6 Email Address and Phone Number ("e=" and "p=") . . . . . . 13 | 5.6. Email Address and Phone Number ("e=" and "p=") . . . . . . 13 | |||
| 5.7 Connection Data ("c=") . . . . . . . . . . . . . . . . . . 13 | 5.7. Connection Data ("c=") . . . . . . . . . . . . . . . . . . 13 | |||
| 5.8 Bandwidth ("b=") . . . . . . . . . . . . . . . . . . . . . 15 | 5.8. Bandwidth ("b=") . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 5.9 Timing ("t=") . . . . . . . . . . . . . . . . . . . . . . 16 | 5.9. Timing ("t=") . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.10 Repeat Times ("r=") . . . . . . . . . . . . . . . . . . 17 | 5.10. Repeat Times ("r=") . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.11 Time Zones ("z=") . . . . . . . . . . . . . . . . . . . 18 | 5.11. Time Zones ("z=") . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.12 Encryption Keys ("k=") . . . . . . . . . . . . . . . . . 19 | 5.12. Encryption Keys ("k=") . . . . . . . . . . . . . . . . . . 19 | |||
| 5.13 Attributes ("a=") . . . . . . . . . . . . . . . . . . . 21 | 5.13. Attributes ("a=") . . . . . . . . . . . . . . . . . . . . 20 | |||
| 5.14 Media Descriptions ("m=") . . . . . . . . . . . . . . . 22 | 5.14. Media Descriptions ("m=") . . . . . . . . . . . . . . . . 21 | |||
| 6. SDP Attributes . . . . . . . . . . . . . . . . . . . . . . . 25 | 6. SDP Attributes . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . 31 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . 32 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 8.1 The "application/sdp" media type . . . . . . . . . . . . . 32 | 8.1. The "application/sdp" media type . . . . . . . . . . . . . 32 | |||
| 8.2 Registration of Parameters . . . . . . . . . . . . . . . . 34 | 8.2. Registration of Parameters . . . . . . . . . . . . . . . . 34 | |||
| 8.3 Encryption Key Access Methods . . . . . . . . . . . . . . 38 | 8.3. Encryption Key Access Methods . . . . . . . . . . . . . . 38 | |||
| 9. SDP Grammar . . . . . . . . . . . . . . . . . . . . . . . . 39 | 9. SDP Grammar . . . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 10. Summary of Changes from RFC 2327 . . . . . . . . . . . . . . 44 | 10. Summary of Changes from RFC 2327 . . . . . . . . . . . . . . . 44 | |||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 44 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 45 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 12.1 Normative References . . . . . . . . . . . . . . . . . . 45 | 12.1. Normative References . . . . . . . . . . . . . . . . . . . 45 | |||
| 12.2 Informative References . . . . . . . . . . . . . . . . . 46 | 12.2. Informative References . . . . . . . . . . . . . . . . . . 46 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 47 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 48 | |||
| Intellectual Property and Copyright Statements . . . . . . . 48 | Intellectual Property and Copyright Statements . . . . . . . . . . 49 | |||
| 1. Introduction | 1. Introduction | |||
| When initiating multimedia teleconferences, voice-over-IP calls, | When initiating multimedia teleconferences, voice-over-IP calls, | |||
| streaming video, or other sessions, there is a requirement to convey | streaming video, or other sessions, there is a requirement to convey | |||
| media details, transport addresses, and other session description | media details, transport addresses, and other session description | |||
| metadata to the participants. | metadata to the participants. | |||
| SDP provides a standard representation for such information, | SDP provides a standard representation for such information, | |||
| irrespective of how that information is transported. SDP is purely a | irrespective of how that information is transported. SDP is purely a | |||
| format for session description - it does not incorporate a transport | format for session description - it does not incorporate a transport | |||
| protocol, and is intended to use different transport protocols as | protocol, and is intended to use different transport protocols as | |||
| appropriate, including the Session Announcement Protocol [14], | appropriate, including the Session Announcement Protocol [15], | |||
| Session Initiation Protocol [15], Real-Time Streaming Protocol [16], | Session Initiation Protocol [16], Real-Time Streaming Protocol [17], | |||
| electronic mail using the MIME extensions, and the Hypertext | electronic mail using the MIME extensions, and the Hypertext | |||
| Transport Protocol. | Transport Protocol. | |||
| SDP is intended to be general purpose so that it can be used in a | SDP is intended to be general purpose so that it can be used in a | |||
| wide range of network environments and applications. However, it is | wide range of network environments and applications. However, it is | |||
| not intended to support negotiation of session content or media | not intended to support negotiation of session content or media | |||
| encodings: this is viewed as outside the scope of session | encodings: this is viewed as outside the scope of session | |||
| description. | description. | |||
| This memo updates RFC 2327 [6] in the light of implementation | This memo obsoletes RFC 2327 [6] and RFC 3266 [11]. Section 10 | |||
| experience, and adds a small number of new features. Section 10 | ||||
| outlines the changes introduced in this memo. | outlines the changes introduced in this memo. | |||
| 2. Glossary of Terms | 2. Glossary of Terms | |||
| The following terms are used in this document, and have specific | The following terms are used in this document, and have specific | |||
| meaning within the context of this document. | meaning within the context of this document. | |||
| Conference: A multimedia conference is a set of two or more | Conference: A multimedia conference is a set of two or more | |||
| communicating users along with the software they are using to | communicating users along with the software they are using to | |||
| communicate. | communicate. | |||
| Session: A multimedia session is a set of multimedia senders and | Session: A multimedia session is a set of multimedia senders and | |||
| receivers and the data streams flowing from senders to receivers. | receivers and the data streams flowing from senders to receivers. | |||
| A multimedia conference is an example of a multimedia session. | A multimedia conference is an example of a multimedia session. | |||
| Session Description: A well defined format for conveying sufficient | Session Description: A well defined format for conveying sufficient | |||
| information to discover and participate in a multimedia session. | information to discover and participate in a multimedia session. | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [3]. | document are to be interpreted as described in RFC 2119 [3]. | |||
| 3. Examples of SDP Usage | 3. Examples of SDP Usage | |||
| 3.1 Multicast Session Announcement | 3.1. Session Initiation | |||
| In order to assist the advertisement of multicast multimedia | ||||
| conferences and other multicast sessions, and to communicate the | ||||
| relevant session setup information to prospective participants, a | ||||
| distributed session directory may be used. An instance of such a | ||||
| session directory periodically sends packets containing a description | ||||
| of the session to a well known multicast group. These advertisements | ||||
| are received by other session directories such that potential remote | ||||
| participants can use the session description to start the tools | ||||
| required to participate in the session. | ||||
| One protocol commonly used to implement such a distributed directory | ||||
| is the Session Announcement Protocol, SAP [14]. SDP provides the | ||||
| recommended session description format for such session | ||||
| announcements. | ||||
| 3.2 Session Initiation | ||||
| The Session Initiation Protocol, SIP [15] is an application layer | The Session Initiation Protocol, SIP [16] is an application layer | |||
| control protocol for creating, modifying and terminating sessions | control protocol for creating, modifying and terminating sessions | |||
| such as Internet multimedia conferences, Internet telephone calls and | such as Internet multimedia conferences, Internet telephone calls and | |||
| multimedia distribution. The SIP messages used to create sessions | multimedia distribution. The SIP messages used to create sessions | |||
| carry session descriptions which allow participants to agree on a set | carry session descriptions which allow participants to agree on a set | |||
| of compatible media types. These session descriptions are commonly | of compatible media types. These session descriptions are commonly | |||
| formatted using SDP. When used with SIP, the offer/answer model [17] | formatted using SDP. When used with SIP, the offer/answer model [18] | |||
| provides a limited framework for negotiation using SDP. | provides a limited framework for negotiation using SDP. | |||
| 3.3 Streaming media | 3.2. Streaming media | |||
| The Real Time Streaming Protocol, RTSP [16], is an application-level | The Real Time Streaming Protocol, RTSP [17], is an application-level | |||
| protocol for control over the delivery of data with real-time | protocol for control over the delivery of data with real-time | |||
| properties. RTSP provides an extensible framework to enable | properties. RTSP provides an extensible framework to enable | |||
| controlled, on-demand delivery of real-time data, such as audio and | controlled, on-demand delivery of real-time data, such as audio and | |||
| video. An RTSP client and server negotiate an appropriate set of | video. An RTSP client and server negotiate an appropriate set of | |||
| parameters for media delivery, partially using SDP syntax to describe | parameters for media delivery, partially using SDP syntax to describe | |||
| those parameters. | those parameters. | |||
| 3.4 Email and the World Wide Web | 3.3. Email and the World Wide Web | |||
| Alternative means of conveying session descriptions include | Alternative means of conveying session descriptions include | |||
| electronic mail and the World Wide Web. For both email and WWW | electronic mail and the World Wide Web. For both email and WWW | |||
| distribution, the MIME content type "application/sdp" is used. This | distribution, the MIME content type "application/sdp" is used. This | |||
| enables the automatic launching of applications for participation in | enables the automatic launching of applications for participation in | |||
| the session from the WWW client or mail reader in a standard manner. | the session from the WWW client or mail reader in a standard manner. | |||
| Note that announcements of multicast sessions made only via email or | Note that announcements of multicast sessions made only via email or | |||
| the World Wide Web (WWW) do not have the property that the receiver | the World Wide Web (WWW) do not have the property that the receiver | |||
| of a session announcement can necessarily receive the session because | of a session announcement can necessarily receive the session because | |||
| the multicast sessions may be restricted in scope, and access to the | the multicast sessions may be restricted in scope, and access to the | |||
| WWW server or reception of email is possible outside this scope. | WWW server or reception of email is possible outside this scope. | |||
| Session announcements made using SAP do not suffer this mismatch. | ||||
| 3.4. Multicast Session Announcement | ||||
| In order to assist the advertisement of multicast multimedia | ||||
| conferences and other multicast sessions, and to communicate the | ||||
| relevant session setup information to prospective participants, a | ||||
| distributed session directory may be used. An instance of such a | ||||
| session directory periodically sends packets containing a description | ||||
| of the session to a well known multicast group. These advertisements | ||||
| are received by other session directories such that potential remote | ||||
| participants can use the session description to start the tools | ||||
| required to participate in the session. | ||||
| One protocol used to implement such a distributed directory is the | ||||
| Session Announcement Protocol, SAP [15]. SDP provides the | ||||
| recommended session description format for such session | ||||
| announcements. | ||||
| 4. Requirements and Recommendations | 4. Requirements and Recommendations | |||
| The purpose of SDP is to convey information about media streams in | The purpose of SDP is to convey information about media streams in | |||
| multimedia sessions to allow the recipients of a session description | multimedia sessions to allow the recipients of a session description | |||
| to participate in the session. SDP is primarily intended for use in | to participate in the session. SDP is primarily intended for use in | |||
| an internetwork, although it is sufficiently general that it can | an internetwork, although it is sufficiently general that it can | |||
| describe conferences in other network environments. Media streams | describe conferences in other network environments. Media streams | |||
| can be many-to-many. The times during which the session is active | can be many-to-many. Sessions need not be continually active. | |||
| need not be continuous. | ||||
| Thus far, multicast based sessions on the Internet have differed from | Thus far, multicast based sessions on the Internet have differed from | |||
| many other forms of conferencing in that anyone receiving the traffic | many other forms of conferencing in that anyone receiving the traffic | |||
| can join the session (unless the session traffic is encrypted). In | can join the session (unless the session traffic is encrypted). In | |||
| such an environment, SDP serves two primary purposes. It is a means | such an environment, SDP serves two primary purposes. It is a means | |||
| to communicate the existence of a session, and is a means to convey | to communicate the existence of a session, and is a means to convey | |||
| sufficient information to enable joining and participating in the | sufficient information to enable joining and participating in the | |||
| session. In a unicast environment, only the latter purpose is likely | session. In a unicast environment, only the latter purpose is likely | |||
| to be relevant. | to be relevant. | |||
| skipping to change at page 6, line 7 ¶ | skipping to change at page 6, line 5 ¶ | |||
| o Contact information for the person responsible for the session | o Contact information for the person responsible for the session | |||
| In general, SDP must convey sufficient information to enable | In general, SDP must convey sufficient information to enable | |||
| applications to join a session (with the possible exception of | applications to join a session (with the possible exception of | |||
| encryption keys), and to announce the resources to be used to any | encryption keys), and to announce the resources to be used to any | |||
| non-participants that may need to know (this latter feature is | non-participants that may need to know (this latter feature is | |||
| primarily useful when SDP is used with a multicast session | primarily useful when SDP is used with a multicast session | |||
| announcement protocol). | announcement protocol). | |||
| 4.1 Media and Transport Information | 4.1. Media and Transport Information | |||
| An SDP session description includes the following media information: | An SDP session description includes the following media information: | |||
| o The type of media (video, audio, etc.) | o The type of media (video, audio, etc.) | |||
| o The transport protocol (RTP/UDP/IP, H.320, etc.) | o The transport protocol (RTP/UDP/IP, H.320, etc.) | |||
| o The format of the media (H.261 video, MPEG video, etc.) | o The format of the media (H.261 video, MPEG video, etc.) | |||
| In addition to media format and transport protocol, SDP conveys | In addition to media format and transport protocol, SDP conveys | |||
| skipping to change at page 6, line 36 ¶ | skipping to change at page 6, line 34 ¶ | |||
| port of the multicast stream, whether being sent, received, or both. | port of the multicast stream, whether being sent, received, or both. | |||
| For unicast IP sessions, the following are conveyed: | For unicast IP sessions, the following are conveyed: | |||
| o The remote address for media | o The remote address for media | |||
| o The remote transport port for media | o The remote transport port for media | |||
| The semantics of this address and port depend on the media and | The semantics of this address and port depend on the media and | |||
| transport protocol defined. By default, this SHOULD be the remote | transport protocol defined. By default, this SHOULD be the remote | |||
| address and remote port to which data is sent. Some media types MAY | address and remote port to which data is sent. Some media types may | |||
| redefine this behaviour, but this is NOT RECOMMENDED. | redefine this behaviour, but this is NOT RECOMMENDED since it | |||
| complicates implementations (including middleboxes that must parse | ||||
| the addresses to open NAT or firewall pinholes). | ||||
| 4.2 Timing Information | 4.2. Timing Information | |||
| Sessions may either be bounded or unbounded in time. Whether or not | Sessions may either be bounded or unbounded in time. Whether or not | |||
| they are bounded, they may be only active at specific times. SDP can | they are bounded, they may be only active at specific times. SDP can | |||
| convey: | convey: | |||
| o An arbitrary list of start and stop times bounding the session | o An arbitrary list of start and stop times bounding the session | |||
| o For each bound, repeat times such as "every Wednesday at 10am for | o For each bound, repeat times such as "every Wednesday at 10am for | |||
| one hour" | one hour" | |||
| This timing information is globally consistent, irrespective of local | This timing information is globally consistent, irrespective of local | |||
| time zone or daylight saving time. | time zone or daylight saving time (see Section 5.9). | |||
| 4.3 Private Sessions | 4.3. Private Sessions | |||
| It is possible to create both public sessions and private sessions. | It is possible to create both public sessions and private sessions. | |||
| SDP itself does not distinguish between these: private sessions are | SDP itself does not distinguish between these; private sessions are | |||
| typically conveyed by encrypting the session description during | typically conveyed by encrypting the session description during | |||
| distribution. The details of how encryption is performed are | distribution. The details of how encryption is performed are | |||
| dependent on the mechanism used to convey SDP: mechanisms are | dependent on the mechanism used to convey SDP; mechanisms are | |||
| currently defined for SDP transported using SAP [14] and SIP [15], | currently defined for SDP transported using SAP [15] and SIP [16], | |||
| others may be defined in future. | others may be defined in future. | |||
| If a session announcement is private it is possible to use that | If a session announcement is private it is possible to use that | |||
| private announcement to convey encryption keys necessary to decode | private announcement to convey encryption keys necessary to decode | |||
| each of the media in a conference, including enough information to | each of the media in a conference, including enough information to | |||
| know which encryption scheme is used for each media. | know which encryption scheme is used for each media. | |||
| 4.4 Obtaining Further Information about a Session | 4.4. Obtaining Further Information about a Session | |||
| A session description should convey enough information to decide | A session description should convey enough information to decide | |||
| whether or not to participate in a session. SDP may include | whether or not to participate in a session. SDP may include | |||
| additional pointers in the form of Universal Resources Identifiers | additional pointers in the form of Universal Resources Identifiers | |||
| (URIs) for more information about the session. | (URIs) for more information about the session. | |||
| 4.5 Categorisation | 4.5. Categorisation | |||
| When many session descriptions are being distributed by SAP, or any | When many session descriptions are being distributed by SAP, or any | |||
| other advertisement mechanism, it may be desirable to filter session | other advertisement mechanism, it may be desirable to filter session | |||
| announcements that are of interest from those that are not. SDP | announcements that are of interest from those that are not. SDP | |||
| supports a categorisation mechanism for sessions that is capable of | supports a categorisation mechanism for sessions that is capable of | |||
| being automated. | being automated (the "a=cat:" attribute; see Section 6). | |||
| 4.6 Internationalisation | 4.6. Internationalisation | |||
| The SDP specification recommends the use of the ISO 10646 character | The SDP specification recommends the use of the ISO 10646 character | |||
| sets in the UTF-8 encoding [5] to allow many different languages to | sets in the UTF-8 encoding [5] to allow many different languages to | |||
| be represented. However, to assist in compact representations, SDP | be represented. However, to assist in compact representations, SDP | |||
| also allows other character sets such as ISO 8859-1 to be used when | also allows other character sets such as ISO 8859-1 to be used when | |||
| desired. Internationalisation only applies to free-text fields | desired. Internationalisation only applies to free-text fields | |||
| (session name and background information), and not to SDP as a whole. | (session name and background information), and not to SDP as a whole. | |||
| 5. SDP Specification | 5. SDP Specification | |||
| skipping to change at page 10, line 30 ¶ | skipping to change at page 10, line 30 ¶ | |||
| a=rtpmap:99 h263-1998/90000 | a=rtpmap:99 h263-1998/90000 | |||
| Text fields such as the session name and information are octet | Text fields such as the session name and information are octet | |||
| strings which may contain any octet with the exceptions of 0x00 | strings which may contain any octet with the exceptions of 0x00 | |||
| (Nul), 0x0a (ASCII newline) and 0x0d (ASCII carriage return). The | (Nul), 0x0a (ASCII newline) and 0x0d (ASCII carriage return). The | |||
| sequence CRLF (0x0d0a) is used to end a record, although parsers | sequence CRLF (0x0d0a) is used to end a record, although parsers | |||
| SHOULD be tolerant and also accept records terminated with a single | SHOULD be tolerant and also accept records terminated with a single | |||
| newline character. If the "a=charset" attribute is not present, | newline character. If the "a=charset" attribute is not present, | |||
| these octet strings MUST be interpreted as containing ISO-10646 | these octet strings MUST be interpreted as containing ISO-10646 | |||
| characters in UTF-8 encoding (the presence of the "a=charset" | characters in UTF-8 encoding (the presence of the "a=charset" | |||
| attribute MAY force some fields to be interpreted differently). | attribute may force some fields to be interpreted differently). | |||
| A session description can contain domain names in the "o=", "u=", | A session description can contain domain names in the "o=", "u=", | |||
| "e=", "c=" and "a=" lines. Any domain name used in SDP MUST comply | "e=", "c=" and "a=" lines. Any domain name used in SDP MUST comply | |||
| with [1], [2]. Internationalised domain names (IDNs) MUST be | with [1], [2]. Internationalised domain names (IDNs) MUST be | |||
| represented using the ASCII Compatible Encoding (ACE) form defined in | represented using the ASCII Compatible Encoding (ACE) form defined in | |||
| [11] and MUST NOT be directly represented in UTF-8 or any other | [12] and MUST NOT be directly represented in UTF-8 or any other | |||
| encoding (this requirement is for compatibility with RFC 2327 and | encoding (this requirement is for compatibility with RFC 2327 and | |||
| other SDP-related standards, which predate the development of | other SDP-related standards, which predate the development of | |||
| internationalized domain names). | internationalized domain names). | |||
| 5.1 Protocol Version ("v=") | 5.1. Protocol Version ("v=") | |||
| v=0 | v=0 | |||
| The "v=" field gives the version of the Session Description Protocol. | The "v=" field gives the version of the Session Description Protocol. | |||
| This memo defines version 0. There is no minor version number. | This memo defines version 0. There is no minor version number. | |||
| 5.2 Origin ("o=") | 5.2. Origin ("o=") | |||
| o=<username> <sess-id> <sess-version> <nettype> <addrtype> | o=<username> <sess-id> <sess-version> <nettype> <addrtype> | |||
| <unicast-address> | <unicast-address> | |||
| The "o=" field gives the originator of the session (her username and | The "o=" field gives the originator of the session (her username and | |||
| the address of the user's host) plus a session identifier and version | the address of the user's host) plus a session identifier and version | |||
| number: | number: | |||
| <username> is the user's login on the originating host, or it is "-" | <username> is the user's login on the originating host, or it is "-" | |||
| if the originating host does not support the concept of user ids. | if the originating host does not support the concept of user ids. | |||
| The <username> MUST NOT contain spaces. | The <username> MUST NOT contain spaces. | |||
| <sess-id> is a numeric string such that the tuple of <username>, | <sess-id> is a numeric string such that the tuple of <username>, | |||
| <sess-id>, <nettype>, <addrtype> and <unicast-address> form a | <sess-id>, <nettype>, <addrtype> and <unicast-address> form a | |||
| globally unique identifier for the session. The method of | globally unique identifier for the session. The method of | |||
| <sess-id> allocation is up to the creating tool, but it has been | <sess-id> allocation is up to the creating tool, but it has been | |||
| suggested that a Network Time Protocol (NTP) format timestamp be | suggested that a Network Time Protocol (NTP) format timestamp be | |||
| used to ensure uniqueness [13]. | used to ensure uniqueness [14]. | |||
| <sess-version> is a version number for this session description. Its | <sess-version> is a version number for this session description. Its | |||
| usage is up to the creating tool, so long as <sess-version> is | usage is up to the creating tool, so long as <sess-version> is | |||
| increased when a modification is made to the session data. Again, | increased when a modification is made to the session data. Again, | |||
| it is RECOMMENDED that an NTP format timestamp is used. | it is RECOMMENDED that an NTP format timestamp is used. | |||
| <nettype> is a text string giving the type of network. Initially | <nettype> is a text string giving the type of network. Initially | |||
| "IN" is defined to have the meaning "Internet", but other values | "IN" is defined to have the meaning "Internet", but other values | |||
| MAY be registered in future (see Section 8). | MAY be registered in future (see Section 8). | |||
| skipping to change at page 11, line 44 ¶ | skipping to change at page 11, line 44 ¶ | |||
| session was created. For an address type of IP4, this is either | session was created. For an address type of IP4, this is either | |||
| the fully-qualified domain name of the machine, or the dotted- | the fully-qualified domain name of the machine, or the dotted- | |||
| decimal representation of the IP version 4 address of the machine. | decimal representation of the IP version 4 address of the machine. | |||
| For an address type of IP6, this is either the fully-qualified | For an address type of IP6, this is either the fully-qualified | |||
| domain name of the machine, or the compressed textual | domain name of the machine, or the compressed textual | |||
| representation of the IP version 6 address of the machine. For | representation of the IP version 6 address of the machine. For | |||
| both IP4 and IP6, the fully-qualified domain name is the form that | both IP4 and IP6, the fully-qualified domain name is the form that | |||
| SHOULD be given unless this is unavailable, in which case the | SHOULD be given unless this is unavailable, in which case the | |||
| globally unique address MAY be substituted. A local IP address | globally unique address MAY be substituted. A local IP address | |||
| MUST NOT be used in any context where the SDP description might | MUST NOT be used in any context where the SDP description might | |||
| leave the scope in which the address is meaningful. | leave the scope in which the address is meaningful (for example, a | |||
| local address MUST NOT be included in an application-level | ||||
| referral that might leave the scope). | ||||
| In general, the "o=" field serves as a globally unique identifier for | In general, the "o=" field serves as a globally unique identifier for | |||
| this version of this session description, and the subfields excepting | this version of this session description, and the subfields excepting | |||
| the version taken together identify the session irrespective of any | the version taken together identify the session irrespective of any | |||
| modifications. | modifications. | |||
| For privacy reasons, it is sometimes desirable to obfuscate the | For privacy reasons, it is sometimes desirable to obfuscate the | |||
| username and IP address of the session originator. If this is a | username and IP address of the session originator. If this is a | |||
| concern, an arbitrary <username> and private <unicast-address> MAY be | concern, an arbitrary <username> and private <unicast-address> MAY be | |||
| chosen to populate the "o=" field, provided these are selected in a | chosen to populate the "o=" field, provided these are selected in a | |||
| manner that does not affect the global uniqueness of the field. | manner that does not affect the global uniqueness of the field. | |||
| 5.3 Session Name ("s=") | 5.3. Session Name ("s=") | |||
| s=<session name> | s=<session name> | |||
| The "s=" field is the textual session name. There MUST be one and | The "s=" field is the textual session name. There MUST be one and | |||
| only one "s=" field per session description. The "s=" field MUST NOT | only one "s=" field per session description. The "s=" field MUST NOT | |||
| be empty and SHOULD contain ISO 10646 characters (but see also the | be empty and SHOULD contain ISO 10646 characters (but see also the | |||
| "a=charset" attribute). If a session has no meaningful name, the | "a=charset" attribute). If a session has no meaningful name, the | |||
| value "s= " SHOULD be used (i.e. a single space as the session name). | value "s= " SHOULD be used (i.e. a single space as the session name). | |||
| 5.4 Session Information ("i=") | 5.4. Session Information ("i=") | |||
| i=<session description> | i=<session description> | |||
| The "i=" field provides textual information about the session. There | The "i=" field provides textual information about the session. There | |||
| MUST be at most one session-level "i=" field per session description, | MUST be at most one session-level "i=" field per session description, | |||
| and at most one "i=" field per media. If the "a=charset" attribute | and at most one "i=" field per media. If the "a=charset" attribute | |||
| is present, it specifies the character set used in the "i=" field. | is present, it specifies the character set used in the "i=" field. | |||
| If the "a=charset" attribute is not present, the "i=" field MUST | If the "a=charset" attribute is not present, the "i=" field MUST | |||
| contain ISO 10646 characters in UTF-8 encoding. | contain ISO 10646 characters in UTF-8 encoding. | |||
| skipping to change at page 12, line 40 ¶ | skipping to change at page 12, line 43 ¶ | |||
| media definitions, "i=" fields are primarily intended for labelling | media definitions, "i=" fields are primarily intended for labelling | |||
| media streams. As such, they are most likely to be useful when a | media streams. As such, they are most likely to be useful when a | |||
| single session has more than one distinct media stream of the same | single session has more than one distinct media stream of the same | |||
| media type. An example would be two different whiteboards, one for | media type. An example would be two different whiteboards, one for | |||
| slides and one for feedback and questions. | slides and one for feedback and questions. | |||
| The "i=" field is intended to provide a free-form human readable | The "i=" field is intended to provide a free-form human readable | |||
| description of the session or the purpose of a media stream. It is | description of the session or the purpose of a media stream. It is | |||
| not suitable for parsing by automata. | not suitable for parsing by automata. | |||
| 5.5 URI ("u=") | 5.5. URI ("u=") | |||
| u=<uri> | u=<uri> | |||
| A URI is a Universal Resource Identifier as used by WWW clients [7], | A URI is a Universal Resource Identifier as used by WWW clients [7], | |||
| [9]. The URI should be a pointer to additional information about the | [9]. The URI should be a pointer to additional information about the | |||
| session. This field is OPTIONAL, but if it is present it MUST be | session. This field is OPTIONAL, but if it is present it MUST be | |||
| specified before the first media field. No more than one URI field | specified before the first media field. No more than one URI field | |||
| is allowed per session description. | is allowed per session description. | |||
| 5.6 Email Address and Phone Number ("e=" and "p=") | 5.6. Email Address and Phone Number ("e=" and "p=") | |||
| e=<email-address> | e=<email-address> | |||
| p=<phone-number> | p=<phone-number> | |||
| The "e=" and "p=" lines specify contact information for the person | The "e=" and "p=" lines specify contact information for the person | |||
| responsible for the conference. This is not necessarily the same | responsible for the conference. This is not necessarily the same | |||
| person that created the conference announcement. | person that created the conference announcement. | |||
| Inclusion of an email address or phone number is OPTIONAL. Note that | Inclusion of an email address or phone number is OPTIONAL. Note that | |||
| the previous version of SDP specified that either an email field or a | the previous version of SDP specified that either an email field or a | |||
| skipping to change at page 13, line 46 ¶ | skipping to change at page 13, line 46 ¶ | |||
| The alternative RFC 2822 name quoting convention is also allowed for | The alternative RFC 2822 name quoting convention is also allowed for | |||
| both email addresses and phone numbers. For example: | both email addresses and phone numbers. For example: | |||
| e=Jane Doe <j.doe@example.com> | e=Jane Doe <j.doe@example.com> | |||
| The free text string SHOULD be in the ISO-10646 character set with | The free text string SHOULD be in the ISO-10646 character set with | |||
| UTF-8 encoding, or alternatively in ISO-8859-1 or other encodings if | UTF-8 encoding, or alternatively in ISO-8859-1 or other encodings if | |||
| the appropriate session-level "a=charset" attribute is set. | the appropriate session-level "a=charset" attribute is set. | |||
| 5.7 Connection Data ("c=") | 5.7. Connection Data ("c=") | |||
| c=<nettype> <addrtype> <connection-address> | c=<nettype> <addrtype> <connection-address> | |||
| The "c=" field contains connection data. | The "c=" field contains connection data. | |||
| A session description MUST contain either at least one "c=" field in | A session description MUST contain either at least one "c=" field in | |||
| each media description or a single "c=" field at the session level. | each media description or a single "c=" field at the session level. | |||
| It MAY contain a single session-level "c=" field and additional "c=" | It MAY contain a single session-level "c=" field and additional "c=" | |||
| field(s) per media description, in which case the per-media values | field(s) per media description, in which case the per-media values | |||
| override the session-level settings for the respective media. | override the session-level settings for the respective media. | |||
| skipping to change at page 15, line 51 ¶ | skipping to change at page 15, line 51 ¶ | |||
| (remembering that the TTL field is not present in IPv6 multicast). | (remembering that the TTL field is not present in IPv6 multicast). | |||
| Multiple addresses or "c=" lines MAY be specified on a per-media | Multiple addresses or "c=" lines MAY be specified on a per-media | |||
| basis only if they provide multicast addresses for different layers | basis only if they provide multicast addresses for different layers | |||
| in a hierarchical or layered encoding scheme. They MUST NOT be | in a hierarchical or layered encoding scheme. They MUST NOT be | |||
| specified for a session-level "c=" field. | specified for a session-level "c=" field. | |||
| The slash notation for multiple addresses described above MUST NOT be | The slash notation for multiple addresses described above MUST NOT be | |||
| used for IP unicast addresses. | used for IP unicast addresses. | |||
| 5.8 Bandwidth ("b=") | 5.8. Bandwidth ("b=") | |||
| b=<bwtype>:<bandwidth> | b=<bwtype>:<bandwidth> | |||
| This OPTIONAL field denotes the proposed bandwidth to be used by the | This OPTIONAL field denotes the proposed bandwidth to be used by the | |||
| session or media. The <bwtype> is an alphanumeric modifier giving | session or media. The <bwtype> is an alphanumeric modifier giving | |||
| the meaning of the <bandwidth> figure. Two values are defined in | the meaning of the <bandwidth> figure. Two values are defined in | |||
| this specification, but other values MAY be registered in future (see | this specification, but other values MAY be registered in future (see | |||
| Section 8 and [20], [24]): | Section 8 and [22], [26]): | |||
| CT If the bandwidth of a session or media in a session is different | CT If the bandwidth of a session or media in a session is different | |||
| from the bandwidth implicit from the scope, a "b=CT:..." line | from the bandwidth implicit from the scope, a "b=CT:..." line | |||
| SHOULD be supplied for the session giving the proposed upper limit | SHOULD be supplied for the session giving the proposed upper limit | |||
| to the bandwidth used (the "conference total" bandwidth). The | to the bandwidth used (the "conference total" bandwidth). The | |||
| primary purpose of this is to give an approximate idea as to | primary purpose of this is to give an approximate idea as to | |||
| whether two or more sessions can co-exist simultaneously. When | whether two or more sessions can co-exist simultaneously. When | |||
| using the CT modifier with RTP, if several RTP sessions are part | using the CT modifier with RTP, if several RTP sessions are part | |||
| of the conference, the conference total refers to total bandwidth | of the conference, the conference total refers to total bandwidth | |||
| of all RTP sessions. | of all RTP sessions. | |||
| AS The bandwidth is interpreted to be application-specific (it will | AS The bandwidth is interpreted to be application-specific (it will | |||
| be the application's concept of maximum bandwidth). Normally this | be the application's concept of maximum bandwidth). Normally this | |||
| will coincide with what is set on the application's "maximum | will coincide with what is set on the application's "maximum | |||
| bandwidth" control if applicable. For RTP based applications, AS | bandwidth" control if applicable. For RTP based applications, AS | |||
| gives the RTP "session bandwidth" as defined in Section 6.2 of | gives the RTP "session bandwidth" as defined in Section 6.2 of | |||
| [18]. | [20]. | |||
| Note that CT gives a total bandwidth figure for all the media at all | Note that CT gives a total bandwidth figure for all the media at all | |||
| sites. AS gives a bandwidth figure for a single media at a single | sites. AS gives a bandwidth figure for a single media at a single | |||
| site, although there may be many sites sending simultaneously. | site, although there may be many sites sending simultaneously. | |||
| A prefix "X-" is defined for <bwtype> names. This is intended for | A prefix "X-" is defined for <bwtype> names. This is intended for | |||
| experimental purposes only. For example: | experimental purposes only. For example: | |||
| b=X-YZ:128 | b=X-YZ:128 | |||
| skipping to change at page 16, line 49 ¶ | skipping to change at page 16, line 49 ¶ | |||
| SHOULD be registered with IANA in the standard namespace. SDP | SHOULD be registered with IANA in the standard namespace. SDP | |||
| parsers MUST ignore bandwidth fields with unknown modifiers. | parsers MUST ignore bandwidth fields with unknown modifiers. | |||
| Modifiers MUST be alpha-numeric and, although no length limit is | Modifiers MUST be alpha-numeric and, although no length limit is | |||
| given, they are recommended to be short. | given, they are recommended to be short. | |||
| The <bandwidth> is interpreted as kilobits per second by default. | The <bandwidth> is interpreted as kilobits per second by default. | |||
| The definition of a new <bwtype> modifier MAY specify that the | The definition of a new <bwtype> modifier MAY specify that the | |||
| bandwidth is to be interpreted in some alternative unit (the "CT" and | bandwidth is to be interpreted in some alternative unit (the "CT" and | |||
| "AS" modifiers defined in this memo use the default units). | "AS" modifiers defined in this memo use the default units). | |||
| 5.9 Timing ("t=") | 5.9. Timing ("t=") | |||
| t=<start-time> <stop-time> | t=<start-time> <stop-time> | |||
| The "t=" lines specify the start and stop times for a session. | The "t=" lines specify the start and stop times for a session. | |||
| Multiple "t=" lines MAY be used if a session is active at multiple | Multiple "t=" lines MAY be used if a session is active at multiple | |||
| irregularly spaced times; each additional "t=" lines specifies an | irregularly spaced times; each additional "t=" lines specifies an | |||
| additional period of time for which the session will be active. If | additional period of time for which the session will be active. If | |||
| the session is active at regular times, an "r=" line (see below) | the session is active at regular times, an "r=" line (see below) | |||
| should be used in addition to, and following, a "t=" line - in which | should be used in addition to, and following, a "t=" line - in which | |||
| case the "t=" line specifies the start and stop times of the repeat | case the "t=" line specifies the start and stop times of the repeat | |||
| sequence. | sequence. | |||
| The first and second sub-fields give the start and stop times for the | The first and second sub-fields give the start and stop times for the | |||
| session respectively. These values are the decimal representation of | session respectively. These values are the decimal representation of | |||
| Network Time Protocol (NTP) time values in seconds since 1900 [13]. | Network Time Protocol (NTP) time values in seconds since 1900 [14]. | |||
| To convert these values to UNIX time, subtract decimal 2208988800. | To convert these values to UNIX time, subtract decimal 2208988800. | |||
| NTP timestamps are elsewhere represented by 64 bit values which wrap | NTP timestamps are elsewhere represented by 64 bit values which wrap | |||
| sometime in the year 2036. Since SDP uses an arbitrary length | sometime in the year 2036. Since SDP uses an arbitrary length | |||
| decimal representation, this should not cause an issue (SDP | decimal representation, this should not cause an issue (SDP | |||
| timestamps MUST continue counting seconds since 1900, NTP will use | timestamps MUST continue counting seconds since 1900, NTP will use | |||
| the value modulo the 64 bit limit). | the value modulo the 64 bit limit). | |||
| If the <stop-time> is set to zero, then the session is not bounded, | If the <stop-time> is set to zero, then the session is not bounded, | |||
| though it will not become active until after the <start-time>. If | though it will not become active until after the <start-time>. If | |||
| skipping to change at page 17, line 44 ¶ | skipping to change at page 17, line 44 ¶ | |||
| The general assumption may be made, when displaying unbounded | The general assumption may be made, when displaying unbounded | |||
| sessions that have not timed out to the user, that an unbounded | sessions that have not timed out to the user, that an unbounded | |||
| session will only be active until half an hour from the current time | session will only be active until half an hour from the current time | |||
| or the session start time, whichever is the later. If behaviour | or the session start time, whichever is the later. If behaviour | |||
| other than this is required, an end-time SHOULD be given and modified | other than this is required, an end-time SHOULD be given and modified | |||
| as appropriate when new information becomes available about when the | as appropriate when new information becomes available about when the | |||
| session should really end. | session should really end. | |||
| Permanent sessions may be shown to the user as never being active | Permanent sessions may be shown to the user as never being active | |||
| unless there are associated repeat times which state precisely when | unless there are associated repeat times which state precisely when | |||
| the session will be active. In general, permanent sessions SHOULD | the session will be active. | |||
| NOT be created for any session expected to have a duration of less | ||||
| than 2 months, and should be discouraged for sessions expected to | ||||
| have a duration of less than 6 months. | ||||
| 5.10 Repeat Times ("r=") | 5.10. Repeat Times ("r=") | |||
| r=<repeat-interval> <active duration> <offsets from start-time> | r=<repeat-interval> <active duration> <offsets from start-time> | |||
| "r=" fields specify repeat times for a session. For example, if a | "r=" fields specify repeat times for a session. For example, if a | |||
| session is active at 10am on Monday and 11am on Tuesday for one hour | session is active at 10am on Monday and 11am on Tuesday for one hour | |||
| each week for three months, then the <start-time> in the | each week for three months, then the <start-time> in the | |||
| corresponding "t=" field would be the NTP representation of 10am on | corresponding "t=" field would be the NTP representation of 10am on | |||
| the first Monday, the <repeat interval> would be 1 week, the <active | the first Monday, the <repeat interval> would be 1 week, the <active | |||
| duration> would be 1 hour, and the offsets would be zero and 25 | duration> would be 1 hour, and the offsets would be zero and 25 | |||
| hours. The corresponding "t=" field stop time would be the NTP | hours. The corresponding "t=" field stop time would be the NTP | |||
| skipping to change at page 18, line 28 ¶ | skipping to change at page 18, line 24 ¶ | |||
| To make description more compact, times may also be given in units of | To make description more compact, times may also be given in units of | |||
| days, hours or minutes. The syntax for these is a number immediately | days, hours or minutes. The syntax for these is a number immediately | |||
| followed by a single case-sensitive character. Fractional units are | followed by a single case-sensitive character. Fractional units are | |||
| not allowed - a smaller unit should be used instead. The following | not allowed - a smaller unit should be used instead. The following | |||
| unit specification characters are allowed: | unit specification characters are allowed: | |||
| d - days (86400 seconds) | d - days (86400 seconds) | |||
| h - hours (3600 seconds) | h - hours (3600 seconds) | |||
| m - minutes (60 seconds) | m - minutes (60 seconds) | |||
| s - seconds (allowed for completeness but NOT RECOMMENDED) | s - seconds (allowed for completeness) | |||
| Thus, the above session announcement could also have been written: | Thus, the above session announcement could also have been written: | |||
| r=7d 1h 0 25h | r=7d 1h 0 25h | |||
| Monthly and yearly repeats cannot be directly specified with a single | Monthly and yearly repeats cannot be directly specified with a single | |||
| SDP repeat time - instead separate "t=" fields should be used to | SDP repeat time - instead separate "t=" fields should be used to | |||
| explicitly list the session times. | explicitly list the session times. | |||
| 5.11 Time Zones ("z=") | 5.11. Time Zones ("z=") | |||
| z=<adjustment time> <offset> <adjustment time> <offset> .... | z=<adjustment time> <offset> <adjustment time> <offset> .... | |||
| To schedule a repeated session which spans a change from daylight | To schedule a repeated session which spans a change from daylight | |||
| saving time to standard time or vice-versa, it is necessary to | saving time to standard time or vice-versa, it is necessary to | |||
| specify offsets from the base time. This is required because | specify offsets from the base time. This is required because | |||
| different time zones change time at different times of day, different | different time zones change time at different times of day, different | |||
| countries change to or from daylight time on different dates, and | countries change to or from daylight time on different dates, and | |||
| some countries do not have daylight saving time at all. | some countries do not have daylight saving time at all. | |||
| skipping to change at page 19, line 24 ¶ | skipping to change at page 19, line 21 ¶ | |||
| that at time 2898848070 the session's original time base is restored. | that at time 2898848070 the session's original time base is restored. | |||
| Adjustments are always relative to the specified start time - they | Adjustments are always relative to the specified start time - they | |||
| are not cumulative. Adjustments apply to all "t=" and "r=" lines in | are not cumulative. Adjustments apply to all "t=" and "r=" lines in | |||
| a session description. | a session description. | |||
| If a session is likely to last several years, it is expected that the | If a session is likely to last several years, it is expected that the | |||
| session announcement will be modified periodically rather than | session announcement will be modified periodically rather than | |||
| transmit several years worth of adjustments in one session | transmit several years worth of adjustments in one session | |||
| announcement. | announcement. | |||
| 5.12 Encryption Keys ("k=") | 5.12. Encryption Keys ("k=") | |||
| k=<method> | k=<method> | |||
| k=<method>:<encryption key> | k=<method>:<encryption key> | |||
| If transported over a secure and trusted channel, the session | If transported over a secure and trusted channel, the session | |||
| description protocol MAY be used to convey encryption keys. A simple | description protocol MAY be used to convey encryption keys. A simple | |||
| mechanism for key exchange is provided by the key field ("k=") | mechanism for key exchange is provided by the key field ("k=") | |||
| although this is primarily supported for compatibility with older | although this is primarily supported for compatibility with older | |||
| implementations and its use is NOT RECOMMENDED. Work is in progress | implementations and its use is NOT RECOMMENDED. Work is in progress | |||
| to define new key exchange mechanisms for use with SDP [26] [27] and | to define new key exchange mechanisms for use with SDP [28] [29] and | |||
| it is expected that new applications will use those mechanisms. | it is expected that new applications will use those mechanisms. | |||
| A key field is permitted before the first media entry (in which case | A key field is permitted before the first media entry (in which case | |||
| it applies to all media in the session), or for each media entry as | it applies to all media in the session), or for each media entry as | |||
| required. The format of keys and their usage is outside the scope of | required. The format of keys and their usage is outside the scope of | |||
| this document, and the key field provides no way to indicate the | this document, and the key field provides no way to indicate the | |||
| encryption algorithm to be used, key type, or other information about | encryption algorithm to be used, key type, or other information about | |||
| the key: this is assumed to be provided by the higher-level protocol | the key: this is assumed to be provided by the higher-level protocol | |||
| using SDP. If there is a need to convey this information within SDP, | using SDP. If there is a need to convey this information within SDP, | |||
| the extensions mentioned previously SHOULD be used. Many security | the extensions mentioned previously SHOULD be used. Many security | |||
| skipping to change at page 20, line 17 ¶ | skipping to change at page 20, line 12 ¶ | |||
| The encryption key is included untransformed in this key field. | The encryption key is included untransformed in this key field. | |||
| This method MUST NOT be used unless it can be guaranteed that | This method MUST NOT be used unless it can be guaranteed that | |||
| the SDP is conveyed over a secure channel. The encryption key | the SDP is conveyed over a secure channel. The encryption key | |||
| is interpreted as text according to the charset attribute, use | is interpreted as text according to the charset attribute, use | |||
| the "k=base64:" method to convey characters that are otherwise | the "k=base64:" method to convey characters that are otherwise | |||
| prohibited in SDP. | prohibited in SDP. | |||
| k=base64:<encoded encryption key> | k=base64:<encoded encryption key> | |||
| The encryption key is included in this key field but has been | The encryption key is included in this key field but has been | |||
| base64 encoded [12] because it includes characters that are | base64 encoded [13] because it includes characters that are | |||
| prohibited in SDP. This method MUST NOT be used unless it can | prohibited in SDP. This method MUST NOT be used unless it can | |||
| be guaranteed that the SDP is conveyed over a secure channel. | be guaranteed that the SDP is conveyed over a secure channel. | |||
| k=uri:<URI to obtain key> | k=uri:<URI to obtain key> | |||
| A Universal Resource Identifier is included in the key field. | A Universal Resource Identifier is included in the key field. | |||
| The URI refers to the data containing the key, and may require | The URI refers to the data containing the key, and may require | |||
| additional authentication before the key can be returned. When | additional authentication before the key can be returned. When | |||
| a request is made to the given URI, the reply should specify | a request is made to the given URI, the reply should specify | |||
| the encoding for the key. The URI is often a secure HTTP URI, | the encoding for the key. The URI is often a a SSL/ | |||
| although this is not required. | TLS-protected HTTP URI ("https:"), although this is not | |||
| required. | ||||
| k=prompt | k=prompt | |||
| No key is included in this SDP description, but the session or | No key is included in this SDP description, but the session or | |||
| media stream referred to by this key field is encrypted. The | media stream referred to by this key field is encrypted. The | |||
| user should be prompted for the key when attempting to join the | user should be prompted for the key when attempting to join the | |||
| session, and this user-supplied key should then be used to | session, and this user-supplied key should then be used to | |||
| decrypt the media streams. The use of user-specified keys is | decrypt the media streams. The use of user-specified keys is | |||
| NOT RECOMMENDED, since such keys tend to have weak security | NOT RECOMMENDED, since such keys tend to have weak security | |||
| properties. | properties. | |||
| The key field MUST NOT be used unless it can be guaranteed that the | The key field MUST NOT be used unless it can be guaranteed that the | |||
| SDP is conveyed over a secure and trusted channel. An example of | SDP is conveyed over a secure and trusted channel. An example of | |||
| such a channel might be SDP embedded inside an S/MIME message or a | such a channel might be SDP embedded inside an S/MIME message or a | |||
| TLS-protected HTTP session. It is important to ensure that the | TLS-protected HTTP session. It is important to ensure that the | |||
| secure channel is with the party that is authorised to join the | secure channel is with the party that is authorised to join the | |||
| session, not an intermediary: if a caching proxy server is used, it | session, not an intermediary: if a caching proxy server is used, it | |||
| is important to ensure that the proxy is either trusted or unable to | is important to ensure that the proxy is either trusted or unable to | |||
| access the SDP. Definition of appropriate security measures is | access the SDP. | |||
| beyond the scope of this specification, and should be defined by the | ||||
| users of SDP. | ||||
| 5.13 Attributes ("a=") | 5.13. Attributes ("a=") | |||
| a=<attribute> | a=<attribute> | |||
| a=<attribute>:<value> | a=<attribute>:<value> | |||
| Attributes are the primary means for extending SDP. Attributes may | Attributes are the primary means for extending SDP. Attributes may | |||
| be defined to be used as "session-level" attributes, "media-level" | be defined to be used as "session-level" attributes, "media-level" | |||
| attributes, or both. | attributes, or both. | |||
| A media description may have any number of attributes ("a=" fields) | A media description may have any number of attributes ("a=" fields) | |||
| which are media specific. These are referred to as "media-level" | which are media specific. These are referred to as "media-level" | |||
| skipping to change at page 22, line 5 ¶ | skipping to change at page 21, line 45 ¶ | |||
| normally affected by the "charset" attribute as this would make | normally affected by the "charset" attribute as this would make | |||
| comparisons against known values problematic. However, when an | comparisons against known values problematic. However, when an | |||
| attribute is defined, it can be defined to be charset-dependent, in | attribute is defined, it can be defined to be charset-dependent, in | |||
| which case its value should be interpreted in the session charset | which case its value should be interpreted in the session charset | |||
| rather than in ISO-10646. | rather than in ISO-10646. | |||
| Attributes MUST be registered with IANA (see Section 8). If an | Attributes MUST be registered with IANA (see Section 8). If an | |||
| attribute is received that is not understood, it MUST be ignored by | attribute is received that is not understood, it MUST be ignored by | |||
| the receiver. | the receiver. | |||
| 5.14 Media Descriptions ("m=") | 5.14. Media Descriptions ("m=") | |||
| m=<media> <port> <proto> <fmt> ... | m=<media> <port> <proto> <fmt> ... | |||
| A session description may contain a number of media descriptions. | A session description may contain a number of media descriptions. | |||
| Each media description starts with an "m=" field, and is terminated | Each media description starts with an "m=" field, and is terminated | |||
| by either the next "m=" field or by the end of the session | by either the next "m=" field or by the end of the session | |||
| description. A media field has several sub-fields: | description. A media field has several sub-fields: | |||
| <media> is the media type. Currently defined media are "audio", | <media> is the media type. Currently defined media are "audio", | |||
| "video", "text", "application" and "message", although this list | "video", "text", "application" and "message", although this list | |||
| may be extended in future (see Section 8). | may be extended in future (see Section 8). | |||
| <port> is the transport port to which the media stream is sent. The | <port> is the transport port to which the media stream is sent. The | |||
| meaning of the transport port depends on the network being used as | meaning of the transport port depends on the network being used as | |||
| specified in the relevant "c=" field, and on the transport | specified in the relevant "c=" field, and on the transport | |||
| protocol defined in the <proto> sub-field of the media field. | protocol defined in the <proto> sub-field of the media field. | |||
| Other ports used by the media application (such as the RTCP port | Other ports used by the media application (such as the RTCP port | |||
| [18]) MAY be derived algorithmically from the base media port or | [20]) MAY be derived algorithmically from the base media port or | |||
| MAY be specified in a separate attribute (for example "a=rtcp:" as | MAY be specified in a separate attribute (for example "a=rtcp:" as | |||
| defined in [21]). | defined in [23]). | |||
| If non-contiguous ports are used or if they don't follow the | If non-contiguous ports are used or if they don't follow the | |||
| parity rule of even RTP ports and odd RTCP ports, the "a=rtcp:" | parity rule of even RTP ports and odd RTCP ports, the "a=rtcp:" | |||
| attribute MUST be used. Applications that are requested to send | attribute MUST be used. Applications that are requested to send | |||
| media to a <port> that is odd and where the "a=rtcp:" is present | media to a <port> that is odd and where the "a=rtcp:" is present | |||
| MUST NOT substract 1 to the RTP port: i.e, they MUST send the RTP | MUST NOT substract 1 to the RTP port: i.e, they MUST send the RTP | |||
| to the port indicated in <port> and send the RTCP to the port | to the port indicated in <port> and send the RTCP to the port | |||
| indicated in the "a=rtcp" attribute. | indicated in the "a=rtcp" attribute. | |||
| For applications where hierarchically encoded streams are being | For applications where hierarchically encoded streams are being | |||
| skipping to change at page 23, line 9 ¶ | skipping to change at page 22, line 46 ¶ | |||
| for data with the corresponding one-higher odd ports used for the | for data with the corresponding one-higher odd ports used for the | |||
| RTCP belonging to the RTP session, and the <number of ports> | RTCP belonging to the RTP session, and the <number of ports> | |||
| denoting the number of RTP sessions. For example: | denoting the number of RTP sessions. For example: | |||
| m=video 49170/2 RTP/AVP 31 | m=video 49170/2 RTP/AVP 31 | |||
| would specify that ports 49170 and 49171 form one RTP/RTCP pair | would specify that ports 49170 and 49171 form one RTP/RTCP pair | |||
| and 49172 and 49173 form the second RTP/RTCP pair. RTP/AVP is the | and 49172 and 49173 form the second RTP/RTCP pair. RTP/AVP is the | |||
| transport protocol and 31 is the format (see below). If non- | transport protocol and 31 is the format (see below). If non- | |||
| contiguous ports are required, they must be signalled using a | contiguous ports are required, they must be signalled using a | |||
| separate attribute (for example "a=rtcp:" as defined in [21]). | separate attribute (for example "a=rtcp:" as defined in [23]). | |||
| If multiple addresses are specified in the "c=" field and multiple | If multiple addresses are specified in the "c=" field and multiple | |||
| ports are specified in the "m=" field, a one-to-one mapping from | ports are specified in the "m=" field, a one-to-one mapping from | |||
| port to the corresponding address is implied. For example: | port to the corresponding address is implied. For example: | |||
| c=IN IP4 224.2.1.1/127/2 | c=IN IP4 224.2.1.1/127/2 | |||
| m=video 49170/2 RTP/AVP 31 | m=video 49170/2 RTP/AVP 31 | |||
| would imply that address 224.2.1.1 is used with ports 49170 and | would imply that address 224.2.1.1 is used with ports 49170 and | |||
| 49171, and address 224.2.1.2 is used with ports 49172 and 49173. | 49171, and address 224.2.1.2 is used with ports 49172 and 49173. | |||
| The combination of ports specified in "m=" lines and IP addresses | The semantics of multiple "m=" lines using the same transport | |||
| specified in "c=" lines MUST comply with the following rules for | address are undefined. This implies that, unlike limited past | |||
| RTP-based media streams (other protocols SHOULD define similar | practice, there is no implicit grouping defined by such means and | |||
| rules): | an explicit grouping framework (for example [19]) should instead | |||
| be used to express the intended semantics. | ||||
| 1. If two media sessions have the same transport address (i.e. | ||||
| identical IP address and port numbers), the associated payload | ||||
| types (e.g. given in the "a=rtpmap:" attribute) MUST NOT be in | ||||
| conflict, i.e. the same payload type MUST NOT be mapped to | ||||
| different media types. | ||||
| 2. If two media sessions have the same transport address, they | ||||
| MUST use compatible media (e.g. both audio or both video). | ||||
| 3. If two media sessions have the same transport address, they | ||||
| SHOULD operate under the same RTP profile. The sessions MAY | ||||
| use two different RTP profiles only if those profiles are | ||||
| specifically designed to be compatible. | ||||
| 4. If two media sessions have the same RTP transport address, | ||||
| they MUST also use the same RTCP address and vice versa. | ||||
| Two media sessions with the same transport address indicate | ||||
| alternatives for the same media stream, i.e. all profiles, media | ||||
| types, and payload types provided in any of the "m=" lines are | ||||
| valid. | ||||
| <proto> is the transport protocol. The meaning of the transport | <proto> is the transport protocol. The meaning of the transport | |||
| protocol is dependent on the address type field in the relevant | protocol is dependent on the address type field in the relevant | |||
| "c=" field. Thus a "c=" field of IP4 indicates that the transport | "c=" field. Thus a "c=" field of IP4 indicates that the transport | |||
| protocol runs over IP4. The following transport protocols are | protocol runs over IP4. The following transport protocols are | |||
| defined, but may be extended through registration of new protocols | defined, but may be extended through registration of new protocols | |||
| with IANA (see Section 8): | with IANA (see Section 8): | |||
| * udp: denotes an unspecified protocol running over UDP. | * udp: denotes an unspecified protocol running over UDP. | |||
| * RTP/AVP: denotes RTP [18] used under the RTP Profile for Audio | * RTP/AVP: denotes RTP [20] used under the RTP Profile for Audio | |||
| and Video Conferences with Minimal Control [19] running over | and Video Conferences with Minimal Control [21] running over | |||
| UDP. | UDP. | |||
| * RTP/SAVP: denotes the Secure Real-time Transport Protocol [22] | * RTP/SAVP: denotes the Secure Real-time Transport Protocol [24] | |||
| running over UDP. | running over UDP. | |||
| The main reason to specify the transport-protocol in addition to | The main reason to specify the transport-protocol in addition to | |||
| the media format is that the same standard media formats may be | the media format is that the same standard media formats may be | |||
| carried over different transport protocols even when the network | carried over different transport protocols even when the network | |||
| protocol is the same - a historical example is vat PCM audio and | protocol is the same - a historical example is vat PCM audio and | |||
| RTP PCM audio, another might be TCP/RTP PCM audio. In addition, | RTP PCM audio, another might be TCP/RTP PCM audio. In addition, | |||
| relays and monitoring tools that are transport-protocol-specific | relays and monitoring tools that are transport-protocol-specific | |||
| but format-independent are possible. | but format-independent are possible. | |||
| skipping to change at page 25, line 19 ¶ | skipping to change at page 24, line 27 ¶ | |||
| 6. SDP Attributes | 6. SDP Attributes | |||
| The following attributes are defined. Since application writers may | The following attributes are defined. Since application writers may | |||
| add new attributes as they are required, this list is not exhaustive. | add new attributes as they are required, this list is not exhaustive. | |||
| Registration procedures for new attributes are defined in Section | Registration procedures for new attributes are defined in Section | |||
| 8.2.4. | 8.2.4. | |||
| a=cat:<category> | a=cat:<category> | |||
| This attribute gives the dot-separated hierarchical category | This attribute gives the dot-separated hierarchical category of | |||
| of the session. This is to enable a receiver to filter | the session. This is to enable a receiver to filter unwanted | |||
| unwanted sessions by category. It is a session-level | sessions by category. There is no central registry of | |||
| attribute, and is not dependent on charset. | categories. It is a session-level attribute, and is not | |||
| dependent on charset. | ||||
| a=keywds:<keywords> | a=keywds:<keywords> | |||
| Like the cat attribute, this is to assist identifying wanted | Like the cat attribute, this is to assist identifying wanted | |||
| sessions at the receiver. This allows a receiver to select | sessions at the receiver. This allows a receiver to select | |||
| interesting session based on keywords describing the purpose | interesting session based on keywords describing the purpose of | |||
| of the session. It is a session-level attribute. It is a | the session; there is no central registry of keywords. It is a | |||
| charset dependent attribute, meaning that its value should be | session-level attribute. It is a charset dependent attribute, | |||
| interpreted in the charset specified for the session | meaning that its value should be interpreted in the charset | |||
| description if one is specified, or by default in ISO | specified for the session description if one is specified, or | |||
| 10646/UTF-8. | by default in ISO 10646/UTF-8. | |||
| a=tool:<name and version of tool> | a=tool:<name and version of tool> | |||
| This gives the name and version number of the tool used to | This gives the name and version number of the tool used to | |||
| create the session description. It is a session-level | create the session description. It is a session-level | |||
| attribute, and is not dependent on charset. | attribute, and is not dependent on charset. | |||
| a=ptime:<packet time> | a=ptime:<packet time> | |||
| This gives the length of time in milliseconds represented by | This gives the length of time in milliseconds represented by | |||
| skipping to change at page 26, line 4 ¶ | skipping to change at page 25, line 16 ¶ | |||
| This gives the length of time in milliseconds represented by | This gives the length of time in milliseconds represented by | |||
| the media in a packet. This is probably only meaningful for | the media in a packet. This is probably only meaningful for | |||
| audio data, but may be used with other media types if it makes | audio data, but may be used with other media types if it makes | |||
| sense. It should not be necessary to know ptime to decode RTP | sense. It should not be necessary to know ptime to decode RTP | |||
| or vat audio, and it is intended as a recommendation for the | or vat audio, and it is intended as a recommendation for the | |||
| encoding/packetisation of audio. It is a media attribute, and | encoding/packetisation of audio. It is a media attribute, and | |||
| is not dependent on charset. | is not dependent on charset. | |||
| a=maxptime:<maximum packet time> | a=maxptime:<maximum packet time> | |||
| The maximum amount of media which can be encapsulated in each | The maximum amount of media which can be encapsulated in each | |||
| packet, expressed as time in milliseconds. The time SHALL be | packet, expressed as time in milliseconds. The time SHALL be | |||
| calculated as the sum of the time the media present in the | calculated as the sum of the time the media present in the | |||
| packet represents. For frame based codecs, the time SHOULD | packet represents. For frame based codecs, the time SHOULD be | |||
| be an integer multiple of the frame size. This attribute is | an integer multiple of the frame size. This attribute is | |||
| probably only meaningful for audio data, but may be used with | probably only meaningful for audio data, but may be used with | |||
| other media types if it makes sense. It is a media attribute, | other media types if it makes sense. It is a media attribute, | |||
| and is not dependent on charset. Note that this attribute was | and is not dependent on charset. Note that this attribute was | |||
| introduced after RFC 2327, and non updated implementations will | introduced after RFC 2327, and non updated implementations will | |||
| ignore this attribute. | ignore this attribute. | |||
| a=rtpmap:<payload type> <encoding name>/<clock rate> | a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding | |||
| [/<encoding parameters>] | parameters>] | |||
| This attribute maps from an RTP payload type number (as used in | This attribute maps from an RTP payload type number (as used in | |||
| an "m=" line) to an encoding name denoting the payload format | an "m=" line) to an encoding name denoting the payload format | |||
| to be used. It also provides information on the clock rate and | to be used. It also provides information on the clock rate and | |||
| encoding parameters. It is a media level attribute that is not | encoding parameters. It is a media level attribute that is not | |||
| dependent on charset. | dependent on charset. | |||
| While an RTP profile may make static assignments of payload | While an RTP profile may make static assignments of payload | |||
| type numbers to payload formats, it is more common for that | type numbers to payload formats, it is more common for that | |||
| assignment to be done dynamically using "a=rtpmap:" attributes. | assignment to be done dynamically using "a=rtpmap:" attributes. | |||
| As an example of a static payload type, consider u-law PCM | As an example of a static payload type, consider u-law PCM | |||
| coded single channel audio sampled at 8kHz. This is completely | coded single channel audio sampled at 8kHz. This is completely | |||
| defined in the RTP Audio/Video profile as payload type 0, so | defined in the RTP Audio/Video profile as payload type 0, so | |||
| there is no need for an "a=rtpmap: attribute, and the media for | there is no need for an "a=rtpmap: attribute, and the media for | |||
| skipping to change at page 27, line 8 ¶ | skipping to change at page 26, line 21 ¶ | |||
| m=audio 49230 RTP/AVP 96 97 98 | m=audio 49230 RTP/AVP 96 97 98 | |||
| a=rtpmap:96 L8/8000 | a=rtpmap:96 L8/8000 | |||
| a=rtpmap:97 L16/8000 | a=rtpmap:97 L16/8000 | |||
| a=rtpmap:98 L16/11025/2 | a=rtpmap:98 L16/11025/2 | |||
| RTP profiles that specify the use of dynamic payload types MUST | RTP profiles that specify the use of dynamic payload types MUST | |||
| define the set of valid encoding names and/or a means to | define the set of valid encoding names and/or a means to | |||
| register encoding names if that profile is to be used with SDP. | register encoding names if that profile is to be used with SDP. | |||
| The "RTP/AVP" and "RTP/SAVP" profiles use MIME sub-types for | The "RTP/AVP" and "RTP/SAVP" profiles use MIME sub-types for | |||
| encoding names, under the top-level media type denoted in the | encoding names, under the top-level media type denoted in the | |||
| "m=" line. In the example above, the media types are "audio/l8" | "m=" line. In the example above, the media types are | |||
| and "audio/l16". | "audio/l8" and "audio/l16". | |||
| For audio streams, <encoding parameters> indicates the | For audio streams, <encoding parameters> indicates the number | |||
| number of audio channels. This parameter is OPTIONAL and | of audio channels. This parameter is OPTIONAL and may be | |||
| may be omitted if the number of channels is one, provided | omitted if the number of channels is one, provided no | |||
| no additional parameters are needed. | additional parameters are needed. | |||
| For video streams, no encoding parameters are currently | For video streams, no encoding parameters are currently | |||
| specified. | specified. | |||
| Additional encoding parameters MAY be defined in the future, | Additional encoding parameters MAY be defined in the future, | |||
| but codec specific parameters SHOULD NOT be added. Parameters | but codec specific parameters SHOULD NOT be added. Parameters | |||
| added to an "a=rtpmap:" attribute SHOULD only be those required | added to an "a=rtpmap:" attribute SHOULD only be those required | |||
| for a session directory to make the choice of appropriate media | for a session directory to make the choice of appropriate media | |||
| to participate in a session. Codec-specific parameters should | to participate in a session. Codec-specific parameters should | |||
| be added in other attributes (for example, "a=fmtp:"). | be added in other attributes (for example, "a=fmtp:"). | |||
| Note: RTP audio formats typically do not include information | Note: RTP audio formats typically do not include information | |||
| about the number of samples per packet. If a non-default (as | about the number of samples per packet. If a non-default (as | |||
| defined in the RTP Audio/Video Profile) packetisation is | defined in the RTP Audio/Video Profile) packetisation is | |||
| required, the "ptime" attribute is used as given below. | required, the "ptime" attribute is used as given below. | |||
| a=recvonly | a=recvonly | |||
| This specifies that the tools should be started in receive | This specifies that the tools should be started in receive only | |||
| only mode where applicable. It can be either a session or | mode where applicable. It can be either a session or media | |||
| media attribute, and is not dependent on charset. Note that | attribute, and is not dependent on charset. Note that recvonly | |||
| recvonly applies to the media only, not to any associated | applies to the media only, not to any associated control | |||
| control protocol (e.g. an RTP based system in recvonly mode | protocol (e.g. an RTP based system in recvonly mode SHOULD | |||
| SHOULD still send RTCP packets). | still send RTCP packets). | |||
| a=sendrecv | a=sendrecv | |||
| This specifies that the tools should be started in send and | This specifies that the tools should be started in send and | |||
| receive mode. This is necessary for interactive conferences | receive mode. This is necessary for interactive conferences | |||
| with tools that default to receive only mode. It can be either | with tools that default to receive only mode. It can be either | |||
| a session or media attribute, and is not dependent on charset. | a session or media attribute, and is not dependent on charset. | |||
| If none of the attributes "sendonly", "recvonly", "inactive", | If none of the attributes "sendonly", "recvonly", "inactive", | |||
| and "sendrecv" is present, "sendrecv" SHOULD be assumed as the | and "sendrecv" is present, "sendrecv" SHOULD be assumed as the | |||
| default for sessions which are not of the conference type | default for sessions which are not of the conference type | |||
| "broadcast" or "H332" (see below). | "broadcast" or "H332" (see below). | |||
| a=sendonly | a=sendonly | |||
| This specifies that the tools should be started in send-only | This specifies that the tools should be started in send-only | |||
| mode. An example may be where a different unicast address is | mode. An example may be where a different unicast address is | |||
| to be used for a traffic destination than for a traffic | to be used for a traffic destination than for a traffic source. | |||
| source. In such a case, two media descriptions may be used, | In such a case, two media descriptions may be used, one | |||
| one sendonly and one recvonly. It can be either a session or | sendonly and one recvonly. It can be either a session or media | |||
| media attribute, but would normally only be used as a media | attribute, but would normally only be used as a media | |||
| attribute. It is not dependent on charset. Note that sendonly | attribute. It is not dependent on charset. Note that sendonly | |||
| applies only to the media, and any associated control protocol | applies only to the media, and any associated control protocol | |||
| (e.g. RTCP) SHOULD still be received and processed as normal. | (e.g. RTCP) SHOULD still be received and processed as normal. | |||
| a=inactive | a=inactive | |||
| This specifies that the tools should be started in inactive | This specifies that the tools should be started in inactive | |||
| mode. This is necessary for interactive conferences where | mode. This is necessary for interactive conferences where | |||
| users can put other users on hold. No media is sent over an | users can put other users on hold. No media is sent over an | |||
| inactive media stream. Note that an RTP based system SHOULD | inactive media stream. Note that an RTP based system SHOULD | |||
| still send RTCP, even if started inactive. It can be either a | still send RTCP, even if started inactive. It can be either a | |||
| session or media attribute, and is not dependent on charset. | session or media attribute, and is not dependent on charset. | |||
| a=orient:<orientation> | a=orient:<orientation> | |||
| Normally this is only used for a whiteboard or presentation | Normally this is only used for a whiteboard or presentation | |||
| tool. It specifies the orientation of a the workspace on | tool. It specifies the orientation of a the workspace on the | |||
| the screen. It is a media attribute. Permitted values are | screen. It is a media attribute. Permitted values are | |||
| "portrait", "landscape" and "seascape" (upside down landscape). | "portrait", "landscape" and "seascape" (upside down landscape). | |||
| It is not dependent on charset. | It is not dependent on charset. | |||
| a=type:<conference type> | a=type:<conference type> | |||
| This specifies the type of the conference. Suggested values | This specifies the type of the conference. Suggested values | |||
| are "broadcast", "meeting", "moderated", "test" and "H332". | are "broadcast", "meeting", "moderated", "test" and "H332". | |||
| "recvonly" should be the default for "type:broadcast" | "recvonly" should be the default for "type:broadcast" sessions, | |||
| sessions, "type:meeting" should imply "sendrecv" and | "type:meeting" should imply "sendrecv" and "type:moderated" | |||
| "type:moderated" should indicate the use of a floor control | should indicate the use of a floor control tool and that the | |||
| tool and that the media tools are started so as to mute new | media tools are started so as to mute new sites joining the | |||
| sites joining the conference. | conference. | |||
| Specifying the attribute "type:H332" indicates that this | Specifying the attribute "type:H332" indicates that this | |||
| loosely coupled session is part of a H.332 session as defined | loosely coupled session is part of a H.332 session as defined | |||
| in the ITU H.332 specification [15]. Media tools should be | in the ITU H.332 specification [27]. Media tools should be | |||
| started "recvonly". | started "recvonly". | |||
| Specifying the attribute "type:test" is suggested as a hint | Specifying the attribute "type:test" is suggested as a hint | |||
| that, unless explicitly requested otherwise, receivers can | that, unless explicitly requested otherwise, receivers can | |||
| safely avoid displaying this session description to users. | safely avoid displaying this session description to users. | |||
| The type attribute is a session-level attribute, and is not | The type attribute is a session-level attribute, and is not | |||
| dependent on charset. | dependent on charset. | |||
| a=charset:<character set> | a=charset:<character set> | |||
| This specifies the character set to be used to display the | This specifies the character set to be used to display the | |||
| session name and information data. By default, the ISO-10646 | session name and information data. By default, the ISO-10646 | |||
| character set in UTF-8 encoding is used. If a more compact | character set in UTF-8 encoding is used. If a more compact | |||
| representation is required, other character sets may be used. | representation is required, other character sets may be used. | |||
| For example, the ISO 8859-1 is specified with the following | For example, the ISO 8859-1 is specified with the following SDP | |||
| SDP attribute: | attribute: | |||
| a=charset:ISO-8859-1 | a=charset:ISO-8859-1 | |||
| This is a session-level attribute and is not dependent on | This is a session-level attribute and is not dependent on | |||
| charset. The charset specified MUST be one of those registered | charset. The charset specified MUST be one of those registered | |||
| with IANA, such as ISO-8859-1. The character set identifier is | with IANA, such as ISO-8859-1. The character set identifier is | |||
| a US-ASCII string and MUST be compared against the IANA | a US-ASCII string and MUST be compared against the IANA | |||
| identifiers using a case insensitive comparison. If the | identifiers using a case insensitive comparison. If the | |||
| identifier is not recognised or not supported, all strings that | identifier is not recognised or not supported, all strings that | |||
| are affected by it SHOULD be regarded as octet strings. | are affected by it SHOULD be regarded as octet strings. | |||
| Note that a character set specified MUST still prohibit the | Note that a character set specified MUST still prohibit the use | |||
| use of bytes 0x00 (Nul), 0x0A (LF) and 0x0d (CR). Character | of bytes 0x00 (Nul), 0x0A (LF) and 0x0d (CR). Character sets | |||
| sets requiring the use of these characters MUST define a | requiring the use of these characters MUST define a quoting | |||
| quoting mechanism that prevents these bytes appearing within | mechanism that prevents these bytes appearing within text | |||
| text fields. | fields. | |||
| a=sdplang:<language tag> | a=sdplang:<language tag> | |||
| This can be a session level attribute or a media level | This can be a session level attribute or a media level | |||
| attribute. As a session level attribute, it specifies the | attribute. As a session level attribute, it specifies the | |||
| language for the session description. As a media level | language for the session description. As a media level | |||
| attribute, it specifies the language for any media-level SDP | attribute, it specifies the language for any media-level SDP | |||
| information field associated with that media. Multiple | information field associated with that media. Multiple sdplang | |||
| sdplang attributes can be provided either at session or media | attributes can be provided either at session or media level if | |||
| level if multiple languages in the session description or | multiple languages in the session description or media use | |||
| media use multiple languages, in which case the order of the | multiple languages, in which case the order of the attributes | |||
| attributes indicates the order of importance of the various | indicates the order of importance of the various languages in | |||
| languages in the session or media from most important to least | the session or media from most important to least important. | |||
| important. | ||||
| In general, sending session descriptions consisting of | In general, sending session descriptions consisting of multiple | |||
| multiple languages is discouraged. Instead, multiple | languages is discouraged. Instead, multiple descriptions | |||
| descriptions SHOULD be sent describing the session, one in | SHOULD be sent describing the session, one in each language. | |||
| each language. However this is not possible with all | However this is not possible with all transport mechanisms, and | |||
| transport mechanisms, and so multiple sdplang attributes are | so multiple sdplang attributes are allowed although NOT | |||
| allowed although NOT RECOMMENDED. | RECOMMENDED. | |||
| The "sdplang" attribute value must be a single RFC 3066 | The "sdplang" attribute value must be a single RFC 3066 | |||
| language tag in US-ASCII [6]. It is not dependent on | language tag in US-ASCII [10]. It is not dependent on the | |||
| the charset attribute. An "sdplang" attribute SHOULD be | charset attribute. An "sdplang" attribute SHOULD be specified | |||
| specified when a session is of sufficient scope to cross | when a session is of sufficient scope to cross geographic | |||
| geographic boundaries where the language of recipients cannot | boundaries where the language of recipients cannot be assumed, | |||
| be assumed, or where the session is in a different language | or where the session is in a different language from the | |||
| from the locally assumed norm. | locally assumed norm. | |||
| a=lang:<language tag> | a=lang:<language tag> | |||
| This can be a session level attribute or a media level | This can be a session level attribute or a media level | |||
| attribute. As a session level attribute, it specifies the | attribute. As a session level attribute, it specifies the | |||
| default language for the session being described. As a media | default language for the session being described. As a media | |||
| level attribute, it specifies the language for that media, | level attribute, it specifies the language for that media, | |||
| overriding any session-level language specified. Multiple | overriding any session-level language specified. Multiple lang | |||
| lang attributes can be provided either at session or media | attributes can be provided either at session or media level if | |||
| level if the session description or media use multiple | the session description or media use multiple languages, in | |||
| languages, in which case the order of the attributes indicates | which case the order of the attributes indicates the order of | |||
| the order of importance of the various languages in the | importance of the various languages in the session or media | |||
| session or media from most important to least important. | from most important to least important. | |||
| The "lang" attribute value must be a single RFC 3066 language | The "lang" attribute value must be a single RFC 3066 language | |||
| tag in US-ASCII [6]. It is not dependent on the charset | tag in US-ASCII [10]. It is not dependent on the charset | |||
| attribute. A "lang" attribute SHOULD be specified when a | attribute. A "lang" attribute SHOULD be specified when a | |||
| session is of sufficient scope to cross geographic boundaries | session is of sufficient scope to cross geographic boundaries | |||
| where the language of recipients cannot be assumed, or where | where the language of recipients cannot be assumed, or where | |||
| the session is in a different language from the locally | the session is in a different language from the locally assumed | |||
| assumed norm. | norm. | |||
| a=framerate:<frame rate> | a=framerate:<frame rate> | |||
| This gives the maximum video frame rate in frames/sec. It is | This gives the maximum video frame rate in frames/sec. It is | |||
| intended as a recommendation for the encoding of video data. | intended as a recommendation for the encoding of video data. | |||
| Decimal representations of fractional values using the | Decimal representations of fractional values using the notation | |||
| notation "<integer>.<fraction>" are allowed. It is a | "<integer>.<fraction>" are allowed. It is a media attribute, | |||
| media attribute, defined only for video media, and is not | defined only for video media, and is not dependent on charset. | |||
| dependent on charset. | ||||
| a=quality:<quality> | a=quality:<quality> | |||
| This gives a suggestion for the quality of the encoding as an | This gives a suggestion for the quality of the encoding as an | |||
| integer value. The intention of the quality attribute for | integer value. The intention of the quality attribute for | |||
| video is to specify a non-default trade-off between frame-rate | video is to specify a non-default trade-off between frame-rate | |||
| and still-image quality. For video, the value in the range 0 | and still-image quality. For video, the value in the range 0 | |||
| to 10, with the following suggested meaning: | to 10, with the following suggested meaning: | |||
| 10 - the best still-image quality the compression scheme | 10 - the best still-image quality the compression scheme | |||
| can give. | can give. | |||
| 5 - the default behaviour given no quality suggestion. | 5 - the default behaviour given no quality suggestion. | |||
| 0 - the worst still-image quality the codec designer | 0 - the worst still-image quality the codec designer | |||
| thinks is still usable. | thinks is still usable. | |||
| It is a media attribute, and is not dependent on charset. | It is a media attribute, and is not dependent on charset. | |||
| a=fmtp:<format> <format specific parameters> | a=fmtp:<format> <format specific parameters> | |||
| This attribute allows parameters that are specific to a | This attribute allows parameters that are specific to a | |||
| particular format to be conveyed in a way that SDP doesn't | particular format to be conveyed in a way that SDP doesn't have | |||
| have to understand them. The format must be one of the | to understand them. The format must be one of the formats | |||
| formats specified for the media. Format-specific parameters | specified for the media. Format-specific parameters may be any | |||
| may be any set of parameters required to be conveyed by SDP | set of parameters required to be conveyed by SDP and given | |||
| and given unchanged to the media tool that will use this | unchanged to the media tool that will use this format. At most | |||
| format. At most one instance of this attribute is allowed | one instance of this attribute is allowed for each format. | |||
| for each format. | ||||
| It is a media attribute, and is not dependent on charset. | It is a media attribute, and is not dependent on charset. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| SDP is frequently used with the Session Initiation Protocol [15] | SDP is frequently used with the Session Initiation Protocol [16] | |||
| using the offer/answer model [17] to agree parameters for unicast | using the offer/answer model [18] to agree on parameters for unicast | |||
| sessions. When used in this manner, the security considerations of | sessions. When used in this manner, the security considerations of | |||
| those protocols apply. | those protocols apply. | |||
| SDP is a session description format that describes multimedia | SDP is a session description format that describes multimedia | |||
| sessions. A session description SHOULD NOT be trusted unless it has | sessions. Entities receiving and acting upon an SDP message SHOULD | |||
| been obtained by an authenticated transport protocol from a trusted | be aware that a session description cannot be trusted unless it has | |||
| source. Many different transport protocols may be used to distribute | been obtained by an authenticated transport protocol from a known and | |||
| session description, and the nature of the authentication will differ | trusted source. Many different transport protocols may be used to | |||
| from transport to transport. | distribute session description, and the nature of the authentication | |||
| will differ from transport to transport. For some transports, | ||||
| security features are often not deployed. In case a session | ||||
| description has not been obtained in a trusted manner, the endpoint | ||||
| SHOULD exercise care because, among other attacks, the media sessions | ||||
| received may not be the intended ones, the destination where media is | ||||
| sent to may not be the expected one, any the parameters of the | ||||
| session may be incorrect, or the media security may be compromised. | ||||
| It is up to the endpoint to take a sensible decision taking into | ||||
| account the security risks of the application and the user | ||||
| preferences and may decide to inquire the user whether or not to | ||||
| accept the session. | ||||
| One transport that will frequently be used to distribute session | One transport that can be used to distribute session descriptions is | |||
| descriptions is the Session Announcement Protocol (SAP). SAP | the Session Announcement Protocol (SAP). SAP provides both | |||
| provides both encryption and authentication mechanisms but due to the | encryption and authentication mechanisms but due to the nature of | |||
| nature of session announcements it is likely that there are many | session announcements it is likely that there are many occasions | |||
| occasions where the originator of a session announcement cannot be | where the originator of a session announcement cannot be | |||
| authenticated because they are previously unknown to the receiver of | authenticated because they are previously unknown to the receiver of | |||
| the announcement and because no common public key infrastructure is | the announcement and because no common public key infrastructure is | |||
| available. | available. | |||
| On receiving a session description over an unauthenticated transport | On receiving a session description over an unauthenticated transport | |||
| mechanism or from an untrusted party, software parsing the session | mechanism or from an untrusted party, software parsing the session | |||
| should take a few precautions. Session descriptions contain | should take a few precautions. Session descriptions contain | |||
| information required to start software on the receivers system. | information required to start software on the receivers system. | |||
| Software that parses a session description MUST NOT be able to start | Software that parses a session description MUST NOT be able to start | |||
| other software except that which is specifically configured as | other software except that which is specifically configured as | |||
| skipping to change at page 32, line 27 ¶ | skipping to change at page 31, line 47 ¶ | |||
| In this specification, there are no attributes which would allow the | In this specification, there are no attributes which would allow the | |||
| recipient of a session description to be informed to start multimedia | recipient of a session description to be informed to start multimedia | |||
| tools in a mode where they default to transmitting. Under some | tools in a mode where they default to transmitting. Under some | |||
| circumstances it might be appropriate to define such attributes. If | circumstances it might be appropriate to define such attributes. If | |||
| this is done an application parsing a session description containing | this is done an application parsing a session description containing | |||
| such attributes SHOULD either ignore them, or inform the user that | such attributes SHOULD either ignore them, or inform the user that | |||
| joining this session will result in the automatic transmission of | joining this session will result in the automatic transmission of | |||
| multimedia data. The default behaviour for an unknown attribute is | multimedia data. The default behaviour for an unknown attribute is | |||
| to ignore it. | to ignore it. | |||
| Session descriptions may be parsed at intermediate systems such as | In certain environments is has become common for intermediary systems | |||
| firewalls for the purposes of opening a hole in the firewall to allow | to intercept and analyse session descriptions contained within other | |||
| participation in multimedia sessions. This SHOULD NOT be done unless | signalling protocols. This is done for a range of purposes, | |||
| the SDP is conveyed in a manner that allows proper authentication and | including but not limited to: opening holes in firewalls to allow | |||
| authorization checks to ensure that firewall holes are only opened in | media streams to pass, or to mark, prioritize, or block traffic | |||
| accordance with applicable security policy. SDP by itself does not | selectively. In some cases, such intermediary systems may modify the | |||
| include sufficient information to enable these checks: they depend on | session description, for example to have the contents of the session | |||
| the encapsulating protocol (e.g. SIP or RTSP). | description match NAT bindings dynamically created. These behaviors | |||
| are NOT RECOMMENDED unless the session description is conveyed in | ||||
| such a manner that allows the intermediary system to conduct proper | ||||
| checks to establish the authenticity of the session description, and | ||||
| the authority of its source to establish such communication sessions. | ||||
| SDP by itself does not include sufficient information to enable these | ||||
| checks: they depend on the encapsulating protocol (e.g. SIP or | ||||
| RTSP). | ||||
| Use of the "k=" field poses a significant security risk, since it | Use of the "k=" field poses a significant security risk, since it | |||
| conveys session encryption keys in the clear. SDP MUST NOT be used | conveys session encryption keys in the clear. SDP MUST NOT be used | |||
| to convey key material, unless it can be guaranteed that the channel | to convey key material, unless it can be guaranteed that the channel | |||
| over which the SDP is delivered is both private and authenticated. | over which the SDP is delivered is both private and authenticated. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 8.1 The "application/sdp" media type | 8.1. The "application/sdp" media type | |||
| One MIME media type registration from RFC 2327 is to be updated, as | One MIME media type registration from RFC 2327 is to be updated, as | |||
| defined below. | defined below. | |||
| To: ietf-types@iana.org | To: ietf-types@iana.org | |||
| Subject: Registration of media type "application/sdp" | Subject: Registration of media type "application/sdp" | |||
| MIME media type name: application | MIME media type name: application | |||
| MIME subtype name: sdp | MIME subtype name: sdp | |||
| skipping to change at page 34, line 5 ¶ | skipping to change at page 34, line 5 ¶ | |||
| Mark Handley <M.Handley@cs.ucl.ac.uk> | Mark Handley <M.Handley@cs.ucl.ac.uk> | |||
| Colin Perkins <csp@csperkins.org> | Colin Perkins <csp@csperkins.org> | |||
| IETF MMUSIC working group <mmusic@ietf.org> | IETF MMUSIC working group <mmusic@ietf.org> | |||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Author/Change controller: | Author/Change controller: | |||
| Authors of RFC XXXX | Authors of RFC XXXX | |||
| IETF MMUSIC working group delegated from the IESG | IETF MMUSIC working group delegated from the IESG | |||
| 8.2 Registration of Parameters | 8.2. Registration of Parameters | |||
| There are seven field names that may be registered with IANA. Using | There are seven field names that may be registered with IANA. Using | |||
| the terminology in the SDP specification BNF, they are "media", | the terminology in the SDP specification BNF, they are "media", | |||
| "proto", "fmt", "att-field", "bwtype", "nettype" and "addrtype". | "proto", "fmt", "att-field", "bwtype", "nettype" and "addrtype". | |||
| 8.2.1 Media types ("media") | 8.2.1. Media types ("media") | |||
| The set of media types is intended to be small and SHOULD NOT be | The set of media types is intended to be small and SHOULD NOT be | |||
| extended except under rare circumstances. The same rules should | extended except under rare circumstances. The same rules should | |||
| apply for media names as for top-level MIME content types, and where | apply for media names as for top-level MIME content types, and where | |||
| possible the same name should be registered for SDP as for MIME. For | possible the same name should be registered for SDP as for MIME. For | |||
| media other than existing MIME top-level content types, a standards- | media other than existing MIME top-level content types, a standards- | |||
| track RFC MUST be produced for a new top-level content type to be | track RFC MUST be produced for a new top-level content type to be | |||
| registered, and the registration MUST provide good justification why | registered, and the registration MUST provide good justification why | |||
| no existing media name is appropriate (the "Standards Action" policy | no existing media name is appropriate (the "Standards Action" policy | |||
| of RFC 2434 [8]. | of RFC 2434 [8]. | |||
| This memo registers the media types "audio", "video", "text", | This memo registers the media types "audio", "video", "text", | |||
| "application" and "message". | "application" and "message". | |||
| Note: The media types "control" and "data" were listed as valid in | Note: The media types "control" and "data" were listed as valid in | |||
| the previous version of this specification [6], however their | the previous version of this specification [6], however their | |||
| semantics were never fully specified and they are not widely used. | semantics were never fully specified and they are not widely used. | |||
| These media types have been removed in this specification, although | These media types have been removed in this specification, although | |||
| they still remain valid media type capabilities for a SIP user agent | they still remain valid media type capabilities for a SIP user agent | |||
| as defined in RFC 3840 [23]. If these media types are considered | as defined in RFC 3840 [25]. If these media types are considered | |||
| useful in future, a Standards Track RFC MUST be produced to document | useful in future, a Standards Track RFC MUST be produced to document | |||
| their use. Until that is done, applications SHOULD NOT use these | their use. Until that is done, applications SHOULD NOT use these | |||
| types and SHOULD NOT declare support for them in SIP capabilities | types and SHOULD NOT declare support for them in SIP capabilities | |||
| declarations (even though they exist in the registry created by RFC | declarations (even though they exist in the registry created by RFC | |||
| 3840). | 3840). | |||
| 8.2.2 Transport protocols ("proto") | 8.2.2. Transport protocols ("proto") | |||
| The "proto" field describes the transport protocol used. This SHOULD | The "proto" field describes the transport protocol used. This SHOULD | |||
| reference a standards-track protocol RFC. This memo registers three | reference a standards-track protocol RFC. This memo registers three | |||
| values: "RTP/AVP" is a reference to RTP [18] used under the RTP | values: "RTP/AVP" is a reference to RTP [20] used under the RTP | |||
| Profile for Audio and Video Conferences with Minimal Control [19] | Profile for Audio and Video Conferences with Minimal Control [21] | |||
| running over UDP/IP, "RTP/SAVP" is a reference to the Secure Real- | running over UDP/IP, "RTP/SAVP" is a reference to the Secure Real- | |||
| time Transport Protocol [22], and "udp" indicates an unspecified | time Transport Protocol [24], and "udp" indicates an unspecified | |||
| protocol over UDP. | protocol over UDP. | |||
| If other RTP profiles are defined in the future, their "proto" name | If other RTP profiles are defined in the future, their "proto" name | |||
| SHOULD be specified in the same manner. For example, an RTP profile | SHOULD be specified in the same manner. For example, an RTP profile | |||
| whose short name is "XYZ" would be denoted by a "proto" field of | whose short name is "XYZ" would be denoted by a "proto" field of | |||
| "RTP/XYZ". | "RTP/XYZ". | |||
| New transport protocols SHOULD be registered with IANA. | New transport protocols SHOULD be registered with IANA. | |||
| Registrations MUST reference an RFC describing the protocol. Such an | Registrations MUST reference an RFC describing the protocol. Such an | |||
| RFC MAY be Experimental or Informational, although it is preferable | RFC MAY be Experimental or Informational, although it is preferable | |||
| if it is Standards-Track. Registrations MUST also define the rules | if it is Standards-Track. Registrations MUST also define the rules | |||
| by which their "fmt" namespace is managed (see below). | by which their "fmt" namespace is managed (see below). | |||
| 8.2.3 Media formats ("fmt") | 8.2.3. Media formats ("fmt") | |||
| Each transport protocol, defined by the "proto" field, has an | Each transport protocol, defined by the "proto" field, has an | |||
| associated "fmt" namespace that describes the media formats which may | associated "fmt" namespace that describes the media formats which may | |||
| conveyed by that protocol. Formats cover all the possible encodings | conveyed by that protocol. Formats cover all the possible encodings | |||
| that might want to be transported in a multimedia session. | that might want to be transported in a multimedia session. | |||
| RTP payload formats under the "RTP/AVP" and "RTP/SAVP" profiles MUST | RTP payload formats under the "RTP/AVP" and "RTP/SAVP" profiles MUST | |||
| use the payload type number as their "fmt" value. If the payload | use the payload type number as their "fmt" value. If the payload | |||
| type number is dynamically assigned by this session description, an | type number is dynamically assigned by this session description, an | |||
| additional "rtpmap" attribute MUST be included to specify the format | additional "rtpmap" attribute MUST be included to specify the format | |||
| skipping to change at page 35, line 40 ¶ | skipping to change at page 35, line 40 ¶ | |||
| through the IETF process (RFC 2048) by production of, or reference | through the IETF process (RFC 2048) by production of, or reference | |||
| to, a standards-track RFC that defines the transport protocol for the | to, a standards-track RFC that defines the transport protocol for the | |||
| format. | format. | |||
| For other protocols, formats MAY be registered according to the rules | For other protocols, formats MAY be registered according to the rules | |||
| of the associated "proto" specification. | of the associated "proto" specification. | |||
| Registrations of new formats MUST specify which transport protocols | Registrations of new formats MUST specify which transport protocols | |||
| they apply to. | they apply to. | |||
| 8.2.4 Attribute names ("att-field") | 8.2.4. Attribute names ("att-field") | |||
| Attribute field names ("att-field") MUST be registered with IANA and | Attribute field names ("att-field") MUST be registered with IANA and | |||
| documented, because of noticeable issues due to conflicting | documented, because of noticeable issues due to conflicting | |||
| attributes under the same name. Unknown attributes in SDP are simply | attributes under the same name. Unknown attributes in SDP are simply | |||
| ignored, but conflicting ones that fragment the protocol are a | ignored, but conflicting ones that fragment the protocol are a | |||
| serious problem. | serious problem. | |||
| New attribute registrations are accepted according to the | New attribute registrations are accepted according to the | |||
| "Specification Required" policy of RFC 2434, provided that the | "Specification Required" policy of RFC 2434, provided that the | |||
| specification includes the following information: | specification includes the following information: | |||
| skipping to change at page 37, line 26 ¶ | skipping to change at page 37, line 26 ¶ | |||
| inactive | Either | No | inactive | Either | No | |||
| orient | Media | No | orient | Media | No | |||
| type | Session | No | type | Session | No | |||
| charset | Session | No | charset | Session | No | |||
| sdplang | Either | No | sdplang | Either | No | |||
| lang | Either | No | lang | Either | No | |||
| framerate | Media | No | framerate | Media | No | |||
| quality | Media | No | quality | Media | No | |||
| fmtp | Media | No | fmtp | Media | No | |||
| 8.2.5 Bandwidth specifiers ("bwtype") | 8.2.5. Bandwidth specifiers ("bwtype") | |||
| A proliferation of bandwidth specifiers is strongly discouraged. | A proliferation of bandwidth specifiers is strongly discouraged. | |||
| New bandwidth specifiers ("bwtype" fields) MUST be registered with | New bandwidth specifiers ("bwtype" fields) MUST be registered with | |||
| IANA. The submission MUST reference a standards-track RFC specifying | IANA. The submission MUST reference a standards-track RFC specifying | |||
| the semantics of the bandwidth specifier precisely, and indicating | the semantics of the bandwidth specifier precisely, and indicating | |||
| when it should be used, and why the existing registered bandwidth | when it should be used, and why the existing registered bandwidth | |||
| specifiers do not suffice. | specifiers do not suffice. | |||
| IANA is requested to register the bandwith specifiers "CT" and "AS" | IANA is requested to register the bandwith specifiers "CT" and "AS" | |||
| with definitions as in Section 5.8 of this memo (these definitions | with definitions as in Section 5.8 of this memo (these definitions | |||
| update those in RFC 2327). | update those in RFC 2327). | |||
| 8.2.6 Network types ("nettype") | 8.2.6. Network types ("nettype") | |||
| New network types (the "nettype" field) may be registered with IANA | New network types (the "nettype" field) may be registered with IANA | |||
| if SDP needs to be used in the context of non-Internet environments. | if SDP needs to be used in the context of non-Internet environments. | |||
| Whilst these are not normally the preserve of IANA, there may be | Whilst these are not normally the preserve of IANA, there may be | |||
| circumstances when an Internet application needs to interoperate with | circumstances when an Internet application needs to interoperate with | |||
| a non- Internet application, such as when gatewaying an Internet | a non- Internet application, such as when gatewaying an Internet | |||
| telephony call into the PSTN. The number of network types should be | telephony call into the PSTN. The number of network types should be | |||
| small and should be rarely extended. A new network type cannot be | small and should be rarely extended. A new network type cannot be | |||
| registered without registering at least one address type to be used | registered without registering at least one address type to be used | |||
| with that network type. A new network type registration MUST | with that network type. A new network type registration MUST | |||
| reference an RFC which gives details of the network type and address | reference an RFC which gives details of the network type and address | |||
| type and specifies how and when they would be used. | type and specifies how and when they would be used. | |||
| IANA is requested to register the network type "IN" to represent the | IANA is requested to register the network type "IN" to represent the | |||
| Internet, with definition as in Sections 5.2 and 5.7 of this memo | Internet, with definition as in Sections 5.2 and 5.7 of this memo | |||
| (these definitions update those in RFC 2327). | (these definitions update those in RFC 2327). | |||
| 8.2.7 Address types ("addrtype") | 8.2.7. Address types ("addrtype") | |||
| New address types ("addrtype") may be registered with IANA. An | New address types ("addrtype") may be registered with IANA. An | |||
| address type is only meaningful in the context of a network type, and | address type is only meaningful in the context of a network type, and | |||
| any registration of an address type MUST specify a registered network | any registration of an address type MUST specify a registered network | |||
| type, or be submitted along with a network type registration. A new | type, or be submitted along with a network type registration. A new | |||
| address type registration MUST reference an RFC giving details of the | address type registration MUST reference an RFC giving details of the | |||
| syntax of the address type. Address types are not expected to be | syntax of the address type. Address types are not expected to be | |||
| registered frequently. | registered frequently. | |||
| IANA is requested to register the address types "IP4" and "IP6" with | IANA is requested to register the address types "IP4" and "IP6" with | |||
| definitions as in Sections 5.2 and 5.7 of this memo (these | definitions as in Sections 5.2 and 5.7 of this memo (these | |||
| definitions update those in RFC 2327). | definitions update those in RFC 2327). | |||
| 8.2.8 Registration Procedure | 8.2.8. Registration Procedure | |||
| In the RFC documentation that registers SDP "media", "proto", "fmt", | In the RFC documentation that registers SDP "media", "proto", "fmt", | |||
| "bwtype", "nettype" and "addrtype" fields, the authors MUST include | "bwtype", "nettype" and "addrtype" fields, the authors MUST include | |||
| the following information for IANA to place in the appropriate | the following information for IANA to place in the appropriate | |||
| registry: | registry: | |||
| o contact name, email address and telephone number | o contact name, email address and telephone number | |||
| o name being registered (as it will appear in SDP) | o name being registered (as it will appear in SDP) | |||
| skipping to change at page 38, line 49 ¶ | skipping to change at page 38, line 48 ¶ | |||
| o a one paragraph explanation of the purpose of the registered name. | o a one paragraph explanation of the purpose of the registered name. | |||
| o a reference to the specification for the registered name (this | o a reference to the specification for the registered name (this | |||
| will typically be an RFC number). | will typically be an RFC number). | |||
| IANA may refer any registration to the IESG Transport Area Directors | IANA may refer any registration to the IESG Transport Area Directors | |||
| for review, and may request revisions to be made before a | for review, and may request revisions to be made before a | |||
| registration will be made. | registration will be made. | |||
| 8.3 Encryption Key Access Methods | 8.3. Encryption Key Access Methods | |||
| The IANA currently maintains a table of SDP encryption key access | The IANA currently maintains a table of SDP encryption key access | |||
| method ("enckey") names. This table is obsolete and SHOULD be | method ("enckey") names. This table is obsolete and SHOULD be | |||
| removed, since the "k=" line is not extensible. New registrations | removed, since the "k=" line is not extensible. New registrations | |||
| MUST NOT be accepted. | MUST NOT be accepted. | |||
| 9. SDP Grammar | 9. SDP Grammar | |||
| This section provides an Augmented BNF grammar for SDP. ABNF is | This section provides an Augmented BNF grammar for SDP. ABNF is | |||
| defined in [4]. | defined in [4]. | |||
| skipping to change at page 45, line 6 ¶ | skipping to change at page 45, line 7 ¶ | |||
| Most uses of the "x-" prefix notation for experimental parameters are | Most uses of the "x-" prefix notation for experimental parameters are | |||
| disallowed and the other uses are deprecated. | disallowed and the other uses are deprecated. | |||
| 11. Acknowledgements | 11. Acknowledgements | |||
| Many people in the IETF Multiparty Multimedia Session Control | Many people in the IETF Multiparty Multimedia Session Control | |||
| (MMUSIC) working group have made comments and suggestions | (MMUSIC) working group have made comments and suggestions | |||
| contributing to this document. In particular, we would like to thank | contributing to this document. In particular, we would like to thank | |||
| Eve Schooler, Steve Casner, Bill Fenner, Allison Mankin, Ross | Eve Schooler, Steve Casner, Bill Fenner, Allison Mankin, Ross | |||
| Finlayson, Peter Parnes, Joerg Ott, Carsten Bormann, Steve Hanna, | Finlayson, Peter Parnes, Joerg Ott, Carsten Bormann, Steve Hanna, | |||
| Jonathan Lennox, Keith Drage, Sean Olson, Bernie Hoeneisen and | Jonathan Lennox, Keith Drage, Sean Olson, Bernie Hoeneisen, Jonathan | |||
| Jonathan Rosenberg. | Rosenberg, John Elwell, Flemming Andreasen, Jon Peterson and Spencer | |||
| Dawkins. | ||||
| 12. References | 12. References | |||
| 12.1 Normative References | 12.1. Normative References | |||
| [1] Mockapetris, P., "Domain names - concepts and facilities", | [1] Mockapetris, P., "Domain names - concepts and facilities", | |||
| STD 13, RFC 1034, November 1987. | STD 13, RFC 1034, November 1987. | |||
| [2] Mockapetris, P., "Domain names - implementation and | [2] Mockapetris, P., "Domain names - implementation and | |||
| specification", STD 13, RFC 1035, November 1987. | specification", STD 13, RFC 1035, November 1987. | |||
| [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [3] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
| Levels", BCP 14, RFC 2119, March 1997. | Levels", BCP 14, RFC 2119, March 1997. | |||
| skipping to change at page 45, line 45 ¶ | skipping to change at page 45, line 47 ¶ | |||
| [8] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA | [8] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA | |||
| Considerations Section in RFCs", BCP 26, RFC 2434, | Considerations Section in RFCs", BCP 26, RFC 2434, | |||
| October 1998. | October 1998. | |||
| [9] Hinden, R., Carpenter, B., and L. Masinter, "Format for Literal | [9] Hinden, R., Carpenter, B., and L. Masinter, "Format for Literal | |||
| IPv6 Addresses in URL's", RFC 2732, December 1999. | IPv6 Addresses in URL's", RFC 2732, December 1999. | |||
| [10] Alvestrand, H., "Tags for the Identification of Languages", | [10] Alvestrand, H., "Tags for the Identification of Languages", | |||
| BCP 47, RFC 3066, January 2001. | BCP 47, RFC 3066, January 2001. | |||
| [11] Faltstrom, P., Hoffman, P., and A. Costello, | [11] Olson, S., Camarillo, G., and A. Roach, "Support for IPv6 in | |||
| Session Description Protocol (SDP)", RFC 3266, June 2002. | ||||
| [12] Faltstrom, P., Hoffman, P., and A. Costello, | ||||
| "Internationalizing Domain Names in Applications (IDNA)", | "Internationalizing Domain Names in Applications (IDNA)", | |||
| RFC 3490, March 2003. | RFC 3490, March 2003. | |||
| [12] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", | [13] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", | |||
| RFC 3548, July 2003. | RFC 3548, July 2003. | |||
| 12.2 Informative References | 12.2. Informative References | |||
| [13] Mills, D., "Network Time Protocol (Version 3) Specification, | [14] Mills, D., "Network Time Protocol (Version 3) Specification, | |||
| Implementation", RFC 1305, March 1992. | Implementation", RFC 1305, March 1992. | |||
| [14] Handley, M., Perkins, C., and E. Whelan, "Session Announcement | [15] Handley, M., Perkins, C., and E. Whelan, "Session Announcement | |||
| Protocol", RFC 2974, October 2000. | Protocol", RFC 2974, October 2000. | |||
| [15] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., | [16] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., | |||
| Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: | Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: | |||
| Session Initiation Protocol", RFC 3261, June 2002. | Session Initiation Protocol", RFC 3261, June 2002. | |||
| [16] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming | [17] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming | |||
| Protocol (RTSP)", RFC 2326, April 1998. | Protocol (RTSP)", RFC 2326, April 1998. | |||
| [17] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | [18] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | |||
| Session Description Protocol (SDP)", RFC 3264, June 2002. | Session Description Protocol (SDP)", RFC 3264, June 2002. | |||
| [18] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, | [19] Camarillo, G., Eriksson, G., Holler, J., and H. Schulzrinne, | |||
| "Grouping of Media Lines in the Session Description Protocol | ||||
| (SDP)", RFC 3388, December 2002. | ||||
| [20] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, | ||||
| "RTP: A Transport Protocol for Real-Time Applications", STD 64, | "RTP: A Transport Protocol for Real-Time Applications", STD 64, | |||
| RFC 3550, July 2003. | RFC 3550, July 2003. | |||
| [19] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video | [21] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video | |||
| Conferences with Minimal Control", STD 65, RFC 3551, July 2003. | Conferences with Minimal Control", STD 65, RFC 3551, July 2003. | |||
| [20] Casner, S., "Session Description Protocol (SDP) Bandwidth | [22] Casner, S., "Session Description Protocol (SDP) Bandwidth | |||
| Modifiers for RTP Control Protocol (RTCP) Bandwidth", RFC 3556, | Modifiers for RTP Control Protocol (RTCP) Bandwidth", RFC 3556, | |||
| July 2003. | July 2003. | |||
| [21] Huitema, C., "Real Time Control Protocol (RTCP) attribute in | [23] Huitema, C., "Real Time Control Protocol (RTCP) attribute in | |||
| Session Description Protocol (SDP)", RFC 3605, October 2003. | Session Description Protocol (SDP)", RFC 3605, October 2003. | |||
| [22] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. | [24] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. | |||
| Norrman, "The Secure Real-time Transport Protocol (SRTP)", | Norrman, "The Secure Real-time Transport Protocol (SRTP)", | |||
| RFC 3711, March 2004. | RFC 3711, March 2004. | |||
| [23] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating | [25] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating | |||
| User Agent Capabilities in the Session Initiation Protocol | User Agent Capabilities in the Session Initiation Protocol | |||
| (SIP)", RFC 3840, August 2004. | (SIP)", RFC 3840, August 2004. | |||
| [24] Westerlund, M., "A Transport Independent Bandwidth Modifier for | [26] Westerlund, M., "A Transport Independent Bandwidth Modifier for | |||
| the Session Description Protocol (SDP)", RFC 3890, | the Session Description Protocol (SDP)", RFC 3890, | |||
| September 2004. | September 2004. | |||
| [25] International Telecommunications Union, "H.323 extended for | [27] International Telecommunications Union, "H.323 extended for | |||
| loosely coupled conferences", ITU Recommendation H.332, | loosely coupled conferences", ITU Recommendation H.332, | |||
| September 1998. | September 1998. | |||
| [26] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and K. | [28] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and K. | |||
| Norrman, "Key Management Extensions for Session Description | Norrman, "Key Management Extensions for Session Description | |||
| Protocol (SDP) and Real Time Streaming Protocol (RTSP)", | Protocol (SDP) and Real Time Streaming Protocol (RTSP)", | |||
| draft-ietf-mmusic-kmgmt-ext-12 (work in progress), | draft-ietf-mmusic-kmgmt-ext-12 (work in progress), | |||
| November 2004. | November 2004. | |||
| [27] Andreasen, F., Baugher, M., and D. Wing, "Session Description | [29] Andreasen, F., Baugher, M., and D. Wing, "Session Description | |||
| Protocol Security Descriptions for Media Streams", | Protocol Security Descriptions for Media Streams", | |||
| draft-ietf-mmusic-sdescriptions-07 (work in progress), | draft-ietf-mmusic-sdescriptions-07 (work in progress), | |||
| July 2004. | July 2004. | |||
| Authors' Addresses | Authors' Addresses | |||
| Mark Handley | Mark Handley | |||
| University College London | University College London | |||
| Department of Computer Science | Department of Computer Science | |||
| Gower Street | Gower Street | |||
| skipping to change at page 48, line 41 ¶ | skipping to change at page 49, line 41 ¶ | |||
| This document and the information contained herein are provided on an | This document and the information contained herein are provided on an | |||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | |||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | |||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | |||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | |||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Copyright Statement | Copyright Statement | |||
| Copyright (C) The Internet Society (2005). This document is subject | Copyright (C) The Internet Society (2006). This document is subject | |||
| to the rights, licenses and restrictions contained in BCP 78, and | to the rights, licenses and restrictions contained in BCP 78, and | |||
| except as set forth therein, the authors retain all their rights. | except as set forth therein, the authors retain all their rights. | |||
| Acknowledgment | Acknowledgment | |||
| Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
| Internet Society. | Internet Society. | |||
| End of changes. 127 change blocks. | ||||
| 306 lines changed or deleted | 306 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||