| rfc8866xml2.original.xml | rfc8866.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY __reference.RFC.2848 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| ibxml/reference.RFC.2848.xml"> | ||||
| <!ENTITY __reference.RFC.3108 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3108.xml"> | ||||
| <!ENTITY __reference.RFC.7195 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.7195.xml"> | ||||
| <!ENTITY __reference.RFC.4145 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.4145.xml"> | ||||
| <!ENTITY __reference.RFC.6135 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.6135.xml"> | ||||
| <!ENTITY __reference.RFC.1034 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" | |||
| ibxml/reference.RFC.1034.xml"> | category="std" | |||
| <!ENTITY __reference.RFC.1035 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | number="8866" | |||
| ibxml/reference.RFC.1035.xml"> | docName="draft-ietf-mmusic-rfc4566bis-37" | |||
| <!ENTITY __reference.RFC.2045 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ipr="pre5378Trust200902" | |||
| ibxml/reference.RFC.2045.xml"> | obsoletes="4566" | |||
| <!ENTITY __reference.RFC.2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | updates="" | |||
| ibxml/reference.RFC.2119.xml"> | submissionType="IETF" | |||
| <!ENTITY __reference.RFC.2327 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | consensus="true" | |||
| ibxml/reference.RFC.2327.xml"> | xml:lang="en" | |||
| <!ENTITY __reference.RFC.2365 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | tocInclude="true" | |||
| ibxml/reference.RFC.2365.xml"> | symRefs="true" | |||
| <!ENTITY __reference.RFC.2974 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | sortRefs="true" | |||
| ibxml/reference.RFC.2974.xml"> | version="3"> | |||
| <!ENTITY __reference.RFC.2978 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.2978.xml"> | <!-- xml2rfc v2v3 conversion 2.27.1 --> | |||
| <!ENTITY __reference.RFC.3261 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3261.xml"> | ||||
| <!ENTITY __reference.RFC.3264 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3264.xml"> | ||||
| <!ENTITY __reference.RFC.3550 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3550.xml"> | ||||
| <!ENTITY __reference.RFC.3551 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3551.xml"> | ||||
| <!ENTITY __reference.RFC.3556 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3556.xml"> | ||||
| <!ENTITY __reference.RFC.3605 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3605.xml"> | ||||
| <!ENTITY __reference.RFC.3629 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3629.xml"> | ||||
| <!ENTITY __reference.RFC.3711 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3711.xml"> | ||||
| <!ENTITY __reference.RFC.3840 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3840.xml"> | ||||
| <!ENTITY __reference.RFC.3890 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3890.xml"> | ||||
| <!ENTITY __reference.RFC.3986 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.3986.xml"> | ||||
| <!ENTITY __reference.RFC.4566 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.4566.xml"> | ||||
| <!ENTITY __reference.RFC.4568 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.4568.xml"> | ||||
| <!ENTITY __reference.RFC.4855 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.4855.xml"> | ||||
| <!ENTITY __reference.RFC.5234 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5234.xml"> | ||||
| <!ENTITY __reference.RFC.5322 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5322.xml"> | ||||
| <!ENTITY __reference.RFC.5576 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5576.xml"> | ||||
| <!ENTITY __reference.RFC.5646 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5646.xml"> | ||||
| <!ENTITY __reference.RFC.5888 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5888.xml"> | ||||
| <!ENTITY __reference.RFC.5890 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5890.xml"> | ||||
| <!ENTITY __reference.RFC.5952 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.5952.xml"> | ||||
| <!ENTITY __reference.RFC.6466 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.6466.xml"> | ||||
| <!ENTITY __reference.RFC.6838 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.6838.xml"> | ||||
| <!ENTITY __reference.RFC.7230 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.7230.xml"> | ||||
| <!ENTITY __reference.RFC.7405 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.7405.xml"> | ||||
| <!ENTITY __reference.RFC.7656 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.7656.xml"> | ||||
| <!ENTITY __reference.RFC.7826 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.7826.xml"> | ||||
| <!ENTITY __reference.RFC.8126 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.8126.xml"> | ||||
| <!ENTITY __reference.RFC.8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.8174.xml"> | ||||
| <!ENTITY __reference.RFC.8445 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/b | ||||
| ibxml/reference.RFC.8445.xml"> | ||||
| <!ENTITY __reference.I-D.ietf-mmusic-data-channel-sdpneg SYSTEM "http://xml.reso | ||||
| urce.org/public/rfc/bibxml3/reference.I-D.ietf-mmusic-data-channel-sdpneg.xml"> | ||||
| <!ENTITY __reference.I-D.ietf-mmusic-sdp-mux-attributes SYSTEM "http://xml.resou | ||||
| rce.org/public/rfc/bibxml3/reference.I-D.ietf-mmusic-sdp-mux-attributes.xml"> | ||||
| <!ENTITY __reference.I-D.ietf-mmusic-sdp-bundle-negotiation SYSTEM "http://xml.r | ||||
| esource.org/public/rfc/bibxml3/reference.I-D.ietf-mmusic-sdp-bundle-negotiation. | ||||
| xml"> | ||||
| <!ENTITY __reference.I-D.ietf-mmusic-ice-sip-sdp SYSTEM "https://xml2rfc.tools.i | ||||
| etf.org/public/rfc/bibxml3/reference.I-D.ietf-mmusic-ice-sip-sdp.xml"> | ||||
| <!ENTITY __reference.ISO.8859-1 SYSTEM "https://xml2rfc.tools.ietf.org/public/rf | ||||
| c/bibxml2/reference.ISO.8859-1.1998.xml"> | ||||
| ]> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc toc="yes"?> | ||||
| <?rfc strict="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc rfcedstyle="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <rfc category="std" docName="draft-ietf-mmusic-rfc4566bis-37" | ||||
| ipr="pre5378Trust200902" obsoletes="4566"> | ||||
| <front> | <front> | |||
| <title abbrev="SDP">SDP: Session Description Protocol</title> | <title abbrev="SDP">SDP: Session Description Protocol</title> | |||
| <seriesInfo name="RFC" value="8866"/> | ||||
| <author fullname="Ali Begen" initials="A." surname="Begen"> | <author fullname="Ali Begen" initials="A." surname="Begen"> | |||
| <organization>Networked Media</organization> | <organization>Networked Media</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | ||||
| <city>Konya</city> | ||||
| <region/> | ||||
| <code/> | ||||
| <country>Turkey</country> | <country>Turkey</country> | |||
| </postal> | </postal> | |||
| <email>ali.begen@networked.media</email> | <email>ali.begen@networked.media</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Paul Kyzivat" initials="P." surname="Kyzivat"> | <author fullname="Paul Kyzivat" initials="P." surname="Kyzivat"> | |||
| <organization></organization> | <organization/> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street/> | <country>United States of America</country> | |||
| <city></city> | ||||
| <region/> | ||||
| <code/> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <email>pkyzivat@alum.mit.edu</email> | <email>pkyzivat@alum.mit.edu</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Colin Perkins" initials="C." surname="Perkins"> | ||||
| <author fullname="Colin Perkins" initials="C.S." surname="Perkins"> | ||||
| <organization abbrev="University of Glasgow">University of | <organization abbrev="University of Glasgow">University of | |||
| Glasgow</organization> | Glasgow</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>School of Computing Science</street> | <extaddr>School of Computing Science</extaddr> | |||
| <street>University of Glasgow</street> | ||||
| <city>Glasgow</city> | <city>Glasgow</city> | |||
| <code>G12 8QQ</code> | <code>G12 8QQ</code> | |||
| <country>United Kingdom</country> | ||||
| <country>UK</country> | ||||
| </postal> | </postal> | |||
| <email>csp@csperkins.org</email> | <email>csp@csperkins.org</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Mark Handley" initials="M." surname="Handley"> | ||||
| <author fullname="Mark Handley" initials="M." surname="Handley"> | ||||
| <organization abbrev="UCL">University College London</organization> | <organization abbrev="UCL">University College London</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Department of Computer Science</street> | <street>Department of Computer Science</street> | |||
| <city>London</city> | <city>London</city> | |||
| <code>WC1E 6BT</code> | <code>WC1E 6BT</code> | |||
| <country>United Kingdom</country> | ||||
| <country>UK</country> | ||||
| </postal> | </postal> | |||
| <email>M.Handley@cs.ucl.ac.uk</email> | <email>M.Handley@cs.ucl.ac.uk</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="January" year="2021"/> | ||||
| <date day="9" month="August" year="2019"/> | <keyword>Multimedia</keyword> | |||
| <keyword>conferencing</keyword> | ||||
| <keyword>session setup</keyword> | ||||
| <keyword>signaling</keyword> | ||||
| <keyword>media</keyword> | ||||
| <keyword>SIP</keyword> | ||||
| <keyword>RTSP</keyword> | ||||
| <keyword>voip</keyword> | ||||
| <keyword>audio</keyword> | ||||
| <keyword>video</keyword> | ||||
| <keyword>streaming</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This memo defines the Session Description Protocol (SDP). SDP is | <t>This memo defines the Session Description Protocol (SDP). SDP is | |||
| intended for describing multimedia sessions for the purposes of session | intended for describing multimedia sessions for the purposes of session | |||
| announcement, session invitation, and other forms of multimedia session | announcement, session invitation, and other forms of multimedia session | |||
| initiation. This document obsoletes RFC 4566.</t> | initiation. This document obsoletes RFC 4566.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <name>Introduction</name> | ||||
| <t>When initiating multimedia teleconferences, voice-over-IP calls, | <t>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.</t> | metadata to the participants.</t> | |||
| <t>SDP provides a standard representation for such information, | <t>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 it is intended to use different transport protocols as | protocol, and it is intended to use different transport protocols as | |||
| appropriate, including the Session Announcement Protocol (SAP) <xref | appropriate, including the Session Announcement Protocol (SAP) <xref targe | |||
| target="RFC2974"/>, Session Initiation Protocol (SIP) <xref | t="RFC2974" format="default"/>, Session Initiation Protocol (SIP) <xref target=" | |||
| target="RFC3261"/>, Real Time Streaming Protocol (RTSP) <xref | RFC3261" format="default"/>, Real-Time Streaming Protocol (RTSP) <xref target="R | |||
| target="RFC7826"/>, electronic mail <xref target="RFC5322"/> using the MIM | FC7826" format="default"/>, electronic mail <xref target="RFC5322" format="defau | |||
| E extensions <xref target="RFC2045"/>, | lt"/> using the MIME extensions <xref target="RFC2045" format="default"/>, | |||
| and the Hypertext Transport Protocol (HTTP) <xref target="RFC7230"/>.</t> | and the Hypertext Transport Protocol (HTTP) <xref target="RFC7230" format= | |||
| "default"/>.</t> | ||||
| <t>SDP is intended to be general purpose so that it can be used in a | <t>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 not | wide range of network environments and applications. However, it is not | |||
| intended to support negotiation of session content or media encodings: | intended to support negotiation of session content or media encodings: | |||
| this is viewed as outside the scope of session description.</t> | this is viewed as outside the scope of session description.</t> | |||
| <t>This memo obsoletes <xref target="RFC4566" format="default"/>. The chan | ||||
| <t>This memo obsoletes <xref target="RFC4566"/>. The changes relative to | ges relative to | |||
| <xref target="RFC4566"/> are outlined in <xref target="changes"/> of this | <xref target="RFC4566" format="default"/> are outlined in <xref target="ch | |||
| memo.</t> | anges" format="default"/> of this memo.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Glossary of Terms"> | <name>Glossary of Terms</name> | |||
| <t>The following terms are used in this document and have specific meaning | <t>The following terms are used in this document and have specific meaning | |||
| within the context of this document.</t> | within the context of this document.</t> | |||
| <dl newline="false" spacing="normal"> | ||||
| <t><list style="hanging"> | <dt>Session Description:</dt> | |||
| <t hangText="Session Description:">A well-defined format for | <dd>A well-defined format for | |||
| conveying sufficient information to discover and participate in a | conveying sufficient information to discover and participate in a | |||
| multimedia session.</t> | multimedia session.</dd> | |||
| </list> | <dt>Media Description:</dt> | |||
| </t> | <dd>A Media Description contains the information | |||
| needed for one party to establish an application-layer network protoco | ||||
| <t><list style="hanging"> | l | |||
| <t hangText="Media Description:">A Media Description contains the info | ||||
| rmation | ||||
| needed for one party to establish an application layer network protoco | ||||
| l | ||||
| connection to another party. It starts with an "m=" line and is termin ated | connection to another party. It starts with an "m=" line and is termin ated | |||
| by either the next "m=" line or by the end of the session description. | by either the next "m=" line or by the end of the session description. | |||
| </t> | </dd> | |||
| </list> | <dt>Session-Level Section:</dt> | |||
| </t> | <dd>This refers to the parts that are not media descriptions, whereas th | |||
| e session description refers to the whole body that includes the session-level s | ||||
| <t><list style="hanging"> | ection and the media description(s).</dd> | |||
| <t hangText="Session-level Section:">This refers to the parts that are | </dl> | |||
| not media descriptions, whereas the session description refers to the whole bod | ||||
| y that includes the session-level section and the media description(s).</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>The terms "multimedia conference" and "multimedia session" are used | <t>The terms "multimedia conference" and "multimedia session" are used | |||
| in this document as defined in <xref target="RFC7656"/>. The terms | in this document as defined in <xref target="RFC7656" format="default"/>. The terms | |||
| "session" and "multimedia session" are used interchangeably in this | "session" and "multimedia session" are used interchangeably in this | |||
| document.</t> | document.</t> | |||
| <t> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| described in BCP 14 <xref | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| target="RFC2119"/> <xref | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| target="RFC8174"/> when, and only when, they | be interpreted as | |||
| appear in all capitals, as shown here.</t> | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default" anchor="usage_examples"> | ||||
| <section title="Examples of SDP Usage"> | <name>Examples of SDP Usage</name> | |||
| <section title="Session Initiation"> | <section numbered="true" toc="default"> | |||
| <t>The <xref target="RFC3261">Session Initiation Protocol (SIP)</xref> | <name>Session Initiation</name> | |||
| <t>The <xref target="RFC3261" format="default">Session Initiation Protoc | ||||
| ol (SIP)</xref> | ||||
| is an application-layer control protocol for creating, modifying, and | is an application-layer control protocol for creating, modifying, and | |||
| terminating sessions such as Internet multimedia conferences, Internet | terminating sessions such as Internet multimedia conferences, Internet | |||
| telephone calls, and multimedia distribution. The SIP messages used to | telephone calls, and multimedia distribution. The SIP messages used to | |||
| create sessions carry session descriptions that allow participants to | create sessions carry session descriptions that allow participants to | |||
| agree on a set of compatible media types <xref target="RFC6838"/>. | agree on a set of compatible media types <xref target="RFC6838" format=" default"/>. | |||
| These session descriptions | These session descriptions | |||
| are commonly formatted using SDP. When used with SIP, the <xref | are commonly formatted using SDP. When used with SIP, the <xref target=" | |||
| target="RFC3264"> offer/answer model</xref> provides a limited | RFC3264" format="default"> offer/answer model</xref> provides a limited | |||
| framework for negotiation using SDP.</t> | framework for negotiation using SDP.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Streaming Media"> | <name>Streaming Media</name> | |||
| <t>The <xref target="RFC7826">Real Time Streaming Protocol | <t>The <xref target="RFC7826" format="default">Real-Time Streaming Proto | |||
| col | ||||
| (RTSP)</xref>, is an application-level protocol for control over the | (RTSP)</xref>, is an application-level protocol for control over the | |||
| delivery of data with real-time properties. RTSP provides an | delivery of data with real-time properties. RTSP provides an | |||
| extensible framework to enable controlled, on-demand delivery of | extensible framework to enable controlled, on-demand delivery of | |||
| real-time data, such as audio and video. An RTSP client and server | real-time data, such as audio and video. An RTSP client and server | |||
| negotiate an appropriate set of parameters for media delivery, | negotiate an appropriate set of parameters for media delivery, | |||
| partially using SDP syntax to describe those parameters.</t> | partially using SDP syntax to describe those parameters.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Email and the World Wide Web"> | <name>Email and the World Wide Web</name> | |||
| <t>Alternative means of conveying session descriptions include | <t>Alternative means of conveying session descriptions include | |||
| electronic mail and the World Wide Web (WWW). For both email and WWW | electronic mail and the World Wide Web (WWW). For both email and WWW | |||
| distribution, the media type "application/sdp" is used. This enables | distribution, the media type "application/sdp" is used. This enables | |||
| the automatic launching of applications for participation in the | the automatic launching of applications for participation in the | |||
| session from the WWW client or mail reader in a standard manner.</t> | session from the WWW client or mail reader in a standard manner.</t> | |||
| <t>Note that descriptions of multicast sessions sent only via email | <t>Note that descriptions of multicast sessions sent only via email | |||
| or the WWW do not have the property that the receiver of a session | or the WWW do not have the property that the receiver of a session | |||
| description can necessarily receive the session because the multicast | description can necessarily receive the session because the multicast | |||
| sessions may be restricted in scope, and access to the WWW server or | sessions may be restricted in scope, and access to the WWW server or | |||
| reception of email is possible outside this scope.</t> | reception of email is possibly outside this scope.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Multicast Session Announcement"> | <name>Multicast Session Announcement</name> | |||
| <t>In order to assist the advertisement of multicast multimedia | <t>In order to assist the advertisement of multicast multimedia | |||
| conferences and other multicast sessions, and to communicate the | conferences and other multicast sessions, and to communicate the | |||
| relevant session setup information to prospective participants, a | relevant session setup information to prospective participants, a | |||
| distributed session directory may be used. An instance of such a | distributed session directory may be used. An instance of such a | |||
| session directory periodically sends packets containing a description | session directory periodically sends packets containing a description | |||
| of the session to a well-known multicast group. These advertisements | of the session to a well-known multicast group. These advertisements | |||
| are received by other session directories such that potential remote | are received by other session directories such that potential remote | |||
| participants can use the session description to start the tools | participants can use the session description to start the tools | |||
| required to participate in the session.</t> | required to participate in the session.</t> | |||
| <t>One protocol used to implement such a distributed directory is the | <t>One protocol used to implement such a distributed directory is the | |||
| <xref target="RFC2974">SAP</xref>. SDP provides the recommended | <xref target="RFC2974" format="default">SAP</xref>. SDP provides the rec ommended | |||
| session description format for such session announcements.</t> | session description format for such session announcements.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Requirements and Recommendations"> | <name>Requirements and Recommendations</name> | |||
| <t>The purpose of SDP is to convey information about media streams in | <t>The purpose of SDP is to convey information about media streams in | |||
| multimedia sessions to allow the recipients of a session description to | multimedia sessions to allow the recipients of a session description to | |||
| participate in the session. SDP is primarily intended for use with | participate in the session. SDP is primarily intended for use with | |||
| Internet protocols, although it is sufficiently general that it can descri be | Internet protocols, although it is sufficiently general that it can descri be | |||
| multimedia conferences in other network environments. Media streams can | multimedia conferences in other network environments. Media streams can | |||
| be many-to-many. Sessions need not be continually active.</t> | be many-to-many. Sessions need not be continually active.</t> | |||
| <t>Thus far, multicast-based sessions on the Internet have differed from | <t>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 such | can join the session (unless the session traffic is encrypted). In such | |||
| an environment, SDP serves two primary purposes. It is a means to | an environment, SDP serves two primary purposes. It is a means to | |||
| communicate the existence of a session, and it is a means to convey | communicate the existence of a session, and it 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 to | session. In a unicast environment, only the latter purpose is likely to | |||
| be relevant.</t> | be relevant.</t> | |||
| <t>An SDP description includes the following:</t> | <t>An SDP description includes the following:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Session name and purpose</li> | |||
| <t>Session name and purpose</t> | <li>Time(s) the session is active</li> | |||
| <li>The media comprising the session</li> | ||||
| <t>Time(s) the session is active</t> | <li>Information needed to receive those media (addresses, ports, | |||
| formats, etc.)</li> | ||||
| <t>The media comprising the session</t> | </ul> | |||
| <t>Information needed to receive those media (addresses, ports, | ||||
| formats, etc.)</t> | ||||
| </list></t> | ||||
| <t>As resources necessary to participate in a session may be limited, | <t>As resources necessary to participate in a session may be limited, | |||
| some additional information may also be desirable:</t> | some additional information may also be desirable:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Information about the bandwidth to be used by the session</li> | |||
| <t>Information about the bandwidth to be used by the session</t> | <li>Contact information for the person responsible for the | |||
| session</li> | ||||
| <t>Contact information for the person responsible for the | </ul> | |||
| session</t> | ||||
| </list></t> | ||||
| <t>In general, SDP must convey sufficient information to enable | <t>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 | nonparticipants that may need to know. (This latter feature is | |||
| primarily useful when SDP is used with a multicast session announcement | primarily useful when SDP is used with a multicast session announcement | |||
| protocol.)</t> | protocol.)</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Media and Transport Information"> | <name>Media and Transport Information</name> | |||
| <t>An SDP description includes the following media information:</t> | <t>An SDP description includes the following media information:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The type of media (video, audio, etc.)</li> | |||
| <t>The type of media (video, audio, etc.)</t> | <li>The media transport protocol (RTP/UDP/IP, H.320, etc.)</li> | |||
| <li>The format of the media (H.261 video, MPEG video, etc.)</li> | ||||
| <t>The media transport protocol (RTP/UDP/IP, H.320, etc.)</t> | </ul> | |||
| <t>The format of the media (H.261 video, MPEG video, etc.)</t> | ||||
| </list></t> | ||||
| <t>In addition to media format and transport protocol, SDP conveys | <t>In addition to media format and transport protocol, SDP conveys | |||
| address and port details. For an IP multicast session, these | address and port details. For an IP multicast session, these | |||
| comprise:</t> | comprise:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The multicast group address for media</li> | |||
| <t>The multicast group address for media</t> | <li>The transport port for media</li> | |||
| </ul> | ||||
| <t>The transport port for media</t> | ||||
| </list></t> | ||||
| <t>This address and port are the destination address and destination | <t>This address and port are the destination address and destination | |||
| port of the multicast stream, whether being sent, received, or | port of the multicast stream, whether being sent, received, or | |||
| both.</t> | both.</t> | |||
| <t>For unicast IP sessions, the following are conveyed:</t> | <t>For unicast IP sessions, the following are conveyed:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The remote address for media</li> | |||
| <t>The remote address for media</t> | <li>The remote transport port for media</li> | |||
| </ul> | ||||
| <t>The remote transport port for media</t> | ||||
| </list></t> | ||||
| <t>The semantics of the address and port depend on context. | <t>The semantics of the address and port depend on context. | |||
| Typically, this SHOULD be the remote address and remote port | Typically, this <bcp14>SHOULD</bcp14> be the remote address and remote p ort | |||
| to which media is to be sent or received. | to which media is to be sent or received. | |||
| Details may differ based on the network type, address type, | Details may differ based on the network type, address type, | |||
| protocol and media specified, and whether the SDP is being distributed | protocol, and media specified, and whether the SDP is being distributed | |||
| as an advertisement or negotiated in an offer/answer <xref target="RFC32 | as an advertisement or negotiated in an offer/answer <xref target="RFC32 | |||
| 64"/> exchange. | 64" format="default"/> exchange. | |||
| (E.g., Some address types or protocols may not have a notion of port.) | (E.g., Some address types or protocols may not have a notion of port.) | |||
| Deviating from typical behavior should be done cautiously | Deviating from typical behavior should be done cautiously | |||
| since this complicates implementations (including middleboxes that must | since this complicates implementations (including middleboxes that must | |||
| parse the addresses to open Network Address Translation (NAT) or | parse the addresses to open Network Address Translation (NAT) or | |||
| firewall pinholes).</t> | firewall pinholes).</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Timing Information"> | <name>Timing Information</name> | |||
| <t>Sessions may be either bounded or unbounded in time. Whether or not | <t>Sessions may be either 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:</t> | convey:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>An arbitrary list of start and stop times bounding the | |||
| <t>An arbitrary list of start and stop times bounding the | session</li> | |||
| session</t> | <li>For each bound, repeat times such as "every Wednesday at 10am | |||
| for one hour"</li> | ||||
| <t>For each bound, repeat times such as "every Wednesday at 10am | </ul> | |||
| for one hour"</t> | ||||
| </list></t> | ||||
| <t>This timing information is globally consistent, irrespective of | <t>This timing information is globally consistent, irrespective of | |||
| local time zone or daylight saving time (see <xref | local time zone or daylight saving time (see <xref target="timing" forma | |||
| target="timing"/>).</t> | t="default"/>).</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Obtaining Further Information about a Session"> | <name>Obtaining Further Information about a Session</name> | |||
| <t>A session description could convey enough information to decide | <t>A session description could convey enough information to decide | |||
| whether or not to participate in a session. SDP may include additional | whether or not to participate in a session. SDP may include additional | |||
| pointers in the form of Uniform Resource Identifiers (URIs) <xref target ="RFC3986"/> | pointers in the form of Uniform Resource Identifiers (URIs) <xref target ="RFC3986" format="default"/> | |||
| for more information about the session. | for more information about the session. | |||
| (Note that use of URIs to indicate remote resources is subject to | (Note that use of URIs to indicate remote resources is subject to | |||
| the security considerations from <xref target="RFC3986"/>.) | the security considerations from <xref target="RFC3986" format="default" />.) | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Internationalization"> | <name>Internationalization</name> | |||
| <t>The SDP specification recommends the use of the ISO 10646 character | <t>The SDP specification recommends the use of the ISO 10646 character | |||
| set in the UTF-8 encoding <xref target="RFC3629"/> to allow many | set in the UTF-8 encoding <xref target="RFC3629" format="default"/> to a llow many | |||
| different languages to be represented. However, to assist in compact | different languages to be represented. However, to assist in compact | |||
| representations, SDP also allows other character sets such as | representations, SDP also allows other character sets such as | |||
| <xref target="ISO.8859-1.1998"/> to be used when desired. | <xref target="ISO.8859-1.1998" format="default"/> to be used when desire d. | |||
| Internationalization only applies to | Internationalization only applies to | |||
| free-text sub-fields (session name and background information), and not to | free-text subfields (session name and background information), and not t o | |||
| SDP as a whole.</t> | SDP as a whole.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="SDP-specification" title="SDP Specification"> | <section anchor="SDP-specification" numbered="true" toc="default"> | |||
| <name>SDP Specification</name> | ||||
| <t>An SDP description is denoted by the media type "application/sdp" | <t>An SDP description is denoted by the media type "application/sdp" | |||
| (See <xref target="iana"/>).</t> | (See <xref target="iana" format="default"/>).</t> | |||
| <t>An SDP description is entirely textual. SDP field names and attribute | <t>An SDP description is entirely textual. SDP field names and attribute | |||
| names use only the US-ASCII subset of UTF-8 <xref target="RFC3629"/>, | names use only the US-ASCII subset of UTF-8 <xref target="RFC3629" format= "default"/>, | |||
| but textual fields and | but textual fields and | |||
| attribute values MAY use the full ISO 10646 character set in UTF-8 | attribute values <bcp14>MAY</bcp14> use the full ISO 10646 character set i n UTF-8 | |||
| encoding, or some other character set defined by the "a=charset:" | encoding, or some other character set defined by the "a=charset:" | |||
| attribute. Field and attribute values that use the full UTF-8 character | attribute (<xref target="charset" format="default"/>). | |||
| Field and attribute values that use the full UTF-8 character | ||||
| set are never directly compared, hence there is no requirement for UTF-8 | set are never directly compared, hence there is no requirement for UTF-8 | |||
| normalization. The textual form, as opposed to a binary encoding such as | normalization. The textual form, as opposed to a binary encoding such as | |||
| ASN.1 or XDR, was chosen to enhance portability, to enable a variety of | ASN.1 or XDR, was chosen to enhance portability, to enable a variety of | |||
| transports to be used, and to allow flexible, text-based toolkits to be | transports to be used, and to allow flexible, text-based toolkits to be | |||
| used to generate and process session descriptions. However, since SDP | used to generate and process session descriptions. However, since SDP | |||
| may be used in environments where the maximum permissible size of a | may be used in environments where the maximum permissible size of a | |||
| session description is limited, the encoding is deliberately compact. | session description is limited, the encoding is deliberately compact. | |||
| Also, since descriptions may be transported via very unreliable means | Also, since descriptions may be transported via very unreliable means | |||
| or damaged by an intermediate caching server, the encoding was designed | or damaged by an intermediate caching server, the encoding was designed | |||
| with strict order and formatting rules so that most errors would result | with strict order and formatting rules so that most errors would result | |||
| skipping to change at line 430 ¶ | skipping to change at line 321 ¶ | |||
| ASN.1 or XDR, was chosen to enhance portability, to enable a variety of | ASN.1 or XDR, was chosen to enhance portability, to enable a variety of | |||
| transports to be used, and to allow flexible, text-based toolkits to be | transports to be used, and to allow flexible, text-based toolkits to be | |||
| used to generate and process session descriptions. However, since SDP | used to generate and process session descriptions. However, since SDP | |||
| may be used in environments where the maximum permissible size of a | may be used in environments where the maximum permissible size of a | |||
| session description is limited, the encoding is deliberately compact. | session description is limited, the encoding is deliberately compact. | |||
| Also, since descriptions may be transported via very unreliable means | Also, since descriptions may be transported via very unreliable means | |||
| or damaged by an intermediate caching server, the encoding was designed | or damaged by an intermediate caching server, the encoding was designed | |||
| with strict order and formatting rules so that most errors would result | with strict order and formatting rules so that most errors would result | |||
| in malformed session descriptions that could be detected easily and | in malformed session descriptions that could be detected easily and | |||
| discarded.</t> | discarded.</t> | |||
| <t>An SDP description consists of a number of lines of text of the | <t>An SDP description consists of a number of lines of text of the | |||
| form:</t> | form:</t> | |||
| <sourcecode name="" type=""><![CDATA[ | ||||
| <figure> | <type>=<value> | |||
| <artwork> | ]]></sourcecode> | |||
| <type>=<value> | ||||
| </artwork> | ||||
| </figure> | ||||
| <t>where <type> is exactly one case-significant character and | <t>where <type> is exactly one case-significant character and | |||
| <value> is structured text whose format depends on <type>. | <value> is structured text whose format depends on <type>. | |||
| In general, <value> is either a number of sub-fields delimited by a | In general, <value> is either a number of subfields delimited by a | |||
| single space character or a free format string, and is case-significant | single space character or a free format string, and is case-significant | |||
| unless a specific field defines otherwise. Whitespace separators are not u sed | unless a specific field defines otherwise. Whitespace separators are not u sed | |||
| on either side of the "=" sign, however, the value can contain a leading | on either side of the "=" sign, however, the value can contain a leading | |||
| whitespace as part of its syntax, i.e., that whitespace is part of the val ue.</t> | whitespace as part of its syntax, i.e., that whitespace is part of the val ue.</t> | |||
| <t>An SDP description <bcp14>MUST</bcp14> conform to the syntax defined in | ||||
| <t>An SDP description MUST conform to the syntax defined in <xref target=" | <xref target="abnf" format="default"/>. | |||
| abnf"/>. | The following is an overview of the syntax.</t> | |||
| The following is an overview of the syntax:</t> | ||||
| <t>An SDP description consists of a session-level section followed by | <t>An SDP description consists of a session-level section followed by | |||
| zero or more media descriptions. The session-level section starts with a | zero or more media descriptions. The session-level section starts with a | |||
| "v=" line and continues to the first media description (or the end of | "v=" line and continues to the first media description (or the end of | |||
| the whole description, whichever comes first). Each media description | the whole description, whichever comes first). Each media description | |||
| starts with an "m=" line and continues to the next media description | starts with an "m=" line and continues to the next media description | |||
| or the end of the whole session description, whichever comes first. In | or the end of the whole session description, whichever comes first. In | |||
| general, session-level values are the default for all media unless | general, session-level values are the default for all media unless | |||
| overridden by an equivalent media-level value.</t> | overridden by an equivalent media-level value.</t> | |||
| <t>Some lines in each description are required and some are optional, | <t>Some lines in each description are required and some are optional, | |||
| but when present must appear in exactly the order given here. (The fixed o rder | but when present, they must appear in exactly the order given here. (The f ixed order | |||
| greatly enhances error detection and allows for a simple parser). | greatly enhances error detection and allows for a simple parser). | |||
| In the following overview optional items are marked with a "*".</t> | In the following overview, optional items are marked with a "*".</t> | |||
| <sourcecode type=""><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| Session description | Session description | |||
| v= (protocol version) | v= (protocol version) | |||
| o= (originator and session identifier) | o= (originator and session identifier) | |||
| s= (session name) | s= (session name) | |||
| i=* (session information) | i=* (session information) | |||
| u=* (URI of description) | u=* (URI of description) | |||
| e=* (email address) | e=* (email address) | |||
| p=* (phone number) | p=* (phone number) | |||
| c=* (connection information -- not required if included in | c=* (connection information -- not required if included in | |||
| all media descriptions) | all media descriptions) | |||
| skipping to change at line 497 ¶ | skipping to change at line 378 ¶ | |||
| z=* (optional time zone offset line) | z=* (optional time zone offset line) | |||
| Media description, if present | Media description, if present | |||
| m= (media name and transport address) | m= (media name and transport address) | |||
| i=* (media title) | i=* (media title) | |||
| c=* (connection information -- optional if included at | c=* (connection information -- optional if included at | |||
| session level) | session level) | |||
| b=* (zero or more bandwidth information lines) | b=* (zero or more bandwidth information lines) | |||
| k=* (obsolete) | k=* (obsolete) | |||
| a=* (zero or more media attribute lines) | a=* (zero or more media attribute lines) | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>The set of type letters is deliberately small and not intended to be | <t>The set of type letters is deliberately small and not intended to be | |||
| extensible -- an SDP parser MUST completely ignore or reject any session | extensible -- an SDP parser <bcp14>MUST</bcp14> completely ignore or rejec t any session | |||
| description that contains a type letter that it does not understand. The | description that contains a type letter that it does not understand. The | |||
| attribute mechanism ("a=" described below) is the primary means for | attribute mechanism ("a=", described in <xref target="attribspec" format=" default"/>) is the primary means for | |||
| extending SDP and tailoring it to particular applications or media. Some | extending SDP and tailoring it to particular applications or media. Some | |||
| attributes (the ones listed in <xref target="attrs"/> of this memo) have | attributes (the ones listed in <xref target="attrs" format="default"/>) ha ve | |||
| a defined meaning, but others may be added on a media- | a defined meaning, but others may be added on a media- | |||
| or session-specific basis. (Attribute scopes in addition to media-specific | or session-specific basis. (Attribute scopes in addition to media-specific | |||
| and session-specific may also be defined in extensions to this document. | and session-specific scopes may also be defined in extensions to this docu | |||
| E.g., <xref target="RFC5576"/>, | ment, | |||
| <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.) | e.g., <xref target="RFC5576" format="default"/> and <xref target="RFC8864" | |||
| An SDP parser MUST ignore any attribute it doesn't understand.</t> | format="default"/>.) | |||
| An SDP parser <bcp14>MUST</bcp14> ignore any attribute it doesn't understa | ||||
| nd.</t> | ||||
| <t>An SDP description may contain URIs that reference external content | <t>An SDP description may contain URIs that reference external content | |||
| in the "u=", "k=", and "a=" lines. These URIs may be dereferenced in | in the "u=", "k=", and "a=" lines. These URIs may be dereferenced in | |||
| some cases, making the session description non-self-contained.</t> | some cases, making the session description non-self-contained.</t> | |||
| <t>The connection ("c=") information in the session-level section | <t>The connection ("c=") information in the session-level section | |||
| applies to all the media descriptions of that session unless overridden by connection | applies to all the media descriptions of that session unless overridden by connection | |||
| information in the media description. | information in the media description. | |||
| For instance, in the example below, each audio media description behaves a s if | For instance, in the example below, each audio media description behaves a s if | |||
| it were given a "c=IN IP4 198.51.100.1". | it were given a "c=IN IP4 198.51.100.1". | |||
| </t> | </t> | |||
| <t>An example SDP description is:</t> | <t>An example SDP description is:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork><![CDATA[ | ||||
| v=0 | v=0 | |||
| o=jdoe 3724394400 3724394405 IN IP4 198.51.100.1 | o=jdoe 3724394400 3724394405 IN IP4 198.51.100.1 | |||
| s=Call to John Smith | s=Call to John Smith | |||
| i=SDP Offer #1 | i=SDP Offer #1 | |||
| u=http://www.jdoe.example.com/home.html | u=http://www.jdoe.example.com/home.html | |||
| e=Jane Doe <jane@jdoe.example.com> | e=Jane Doe <jane@jdoe.example.com> | |||
| p=+1 617 555-6011 | p=+1 617 555-6011 | |||
| c=IN IP4 198.51.100.1 | c=IN IP4 198.51.100.1 | |||
| t=0 0 | t=0 0 | |||
| m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
| m=audio 49180 RTP/AVP 0 | m=audio 49180 RTP/AVP 0 | |||
| m=video 51372 RTP/AVP 99 | m=video 51372 RTP/AVP 99 | |||
| c=IN IP6 2001:db8::2 | c=IN IP6 2001:db8::2 | |||
| a=rtpmap:99 h263-1998/90000 | a=rtpmap:99 h263-1998/90000 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t/> | ||||
| <t>Text-containing fields such as the session-name-field and information-f ield are octet | <t>Text-containing fields such as the session-name-field and information-f ield are octet | |||
| strings that may contain any octet with the exceptions of 0x00 (Nul), | strings that may contain any octet with the exceptions of 0x00 (Nul), | |||
| 0x0a (ASCII newline), and 0x0d (ASCII carriage return). The sequence | 0x0a (ASCII newline), and 0x0d (ASCII carriage return). The sequence | |||
| CRLF (0x0d0a) is used to end a line, although parsers SHOULD be | CRLF (0x0d0a) is used to end a line, although parsers <bcp14>SHOULD</bcp14 > be | |||
| tolerant and also accept lines terminated with a single newline | tolerant and also accept lines terminated with a single newline | |||
| character. If the "a=charset" attribute is not present, these octet | character. If the "a=charset:" attribute is not present, these octet | |||
| strings MUST be interpreted as containing ISO-10646 characters in UTF-8 | strings <bcp14>MUST</bcp14> be interpreted as containing ISO-10646 charact | |||
| encoding. When the "a=charset" attribute is present the session-name-field | ers in UTF-8 | |||
| , | encoding. When the "a=charset:" attribute is present the session-name-fiel | |||
| d, | ||||
| information-field, and some attribute fields are interpreted according | information-field, and some attribute fields are interpreted according | |||
| to the selected character set.</t> | to the selected character set.</t> | |||
| <t>A session description can contain domain names in the "o=", "u=", | <t>A session description can contain domain names in the "o=", "u=", | |||
| "e=", "c=", and "a=" lines. Any domain name used in SDP MUST comply with | "e=", "c=", and "a=" lines. Any domain name used in SDP <bcp14>MUST</bcp14 | |||
| <xref target="RFC1034"/> and <xref target="RFC1035"/>. Internationalized | > comply with | |||
| domain names (IDNs) MUST be represented using the ASCII Compatible | <xref target="RFC1034" format="default"/> and <xref target="RFC1035" forma | |||
| Encoding (ACE) form defined in <xref target="RFC5890"/> and MUST NOT be | t="default"/>. Internationalized | |||
| domain names (IDNs) <bcp14>MUST</bcp14> be represented using the ASCII Com | ||||
| patible | ||||
| Encoding (ACE) form defined in <xref target="RFC5890" format="default"/> a | ||||
| nd <bcp14>MUST NOT</bcp14> be | ||||
| directly represented in UTF-8 or any other encoding (this requirement is | directly represented in UTF-8 or any other encoding (this requirement is | |||
| for compatibility with <xref target="RFC2327"/> and other early | for compatibility with <xref target="RFC2327" format="default"/> and other early | |||
| SDP-related standards, which predate the development of | SDP-related standards, which predate the development of | |||
| internationalized domain names).</t> | internationalized domain names).</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Protocol Version ("v=")"> | <name>Protocol Version ("v=")</name> | |||
| <figure> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| <artwork> | v=0 | |||
| v=0 | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>The "v=" line (version-field) gives the version of the Session Descri ption | <t>The "v=" line (version-field) gives the version of the Session Descri ption | |||
| Protocol. This memo defines version 0. There is no minor version | Protocol. This memo defines version 0. There is no minor version | |||
| number.</t> | number.</t> | |||
| </section> | </section> | |||
| <section anchor="origin-line" title="Origin ("o=")"> | <section anchor="origin" numbered="true" toc="default"> | |||
| <figure> | <name>Origin ("o=")</name> | |||
| <artwork> | <sourcecode name="" type=""><![CDATA[ | |||
| o=<username> <sess-id> <sess-version> <nettype> <a | o=<username> <sess-id> <sess-version> <nettype> <addrtype> | |||
| ddrtype> | <unicast-address> | |||
| <unicast-address> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>The "o=" line (origin-field) gives the originator of the session (her username and | <t>The "o=" line (origin-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:</t> | number:</t> | |||
| <dl newline="false" spacing="normal"> | ||||
| <t><list style="hanging"> | <dt><username></dt> | |||
| <t hangText="<username>">is the user's login on the | <dd>is the user's login on the | |||
| originating host, or it is "-" if the originating host does not | originating host, or it is "-" if the originating host does not | |||
| support the concept of user IDs. The <username> MUST NOT | support the concept of user IDs. The <username> <bcp14>MUST NO | |||
| contain spaces.</t> | T</bcp14> | |||
| contain spaces.</dd> | ||||
| <t hangText="<sess-id>">is a numeric string such that the | <dt><sess-id></dt> | |||
| <dd>is a numeric string such that the | ||||
| tuple of <username>, <sess-id>, <nettype>, | tuple of <username>, <sess-id>, <nettype>, | |||
| <addrtype>, and <unicast-address> forms a globally | <addrtype>, and <unicast-address> forms a globally | |||
| unique identifier for the session. The method of <sess-id> | unique identifier for the session. The method of <sess-id> | |||
| allocation is up to the creating tool, but a timestamp, | allocation is up to the creating tool, but a timestamp, | |||
| in seconds since January 1, 1900 UTC, is recommended | in seconds since January 1, 1900 UTC, is recommended | |||
| to ensure uniqueness.</t> | to ensure uniqueness.</dd> | |||
| <dt><sess-version></dt> | ||||
| <t hangText="<sess-version>">is a version number for this | <dd>is a version number for this | |||
| session description. Its usage is up to the creating tool, so long | session description. Its usage is up to the creating tool, so long | |||
| as <sess-version> is increased when a modification is made | as <sess-version> is increased when a modification is made | |||
| to the session description. Again, as with <sess-id> | to the session description. Again, as with <sess-id> | |||
| it is RECOMMENDED that a timestamp be used.</t> | it is <bcp14>RECOMMENDED</bcp14> that a timestamp be used.</dd> | |||
| <dt><nettype></dt> | ||||
| <t hangText="<nettype>">is a text string giving the type of | <dd>is a text string giving the type of | |||
| network. Initially "IN" is defined to have the meaning "Internet", | network. Initially, "IN" is defined to have the meaning "Internet", | |||
| but other values MAY be registered in the future (see <xref | but other values <bcp14>MAY</bcp14> be registered in the future (see | |||
| target="iana"/>).</t> | <xref target="iana" format="default"/>).</dd> | |||
| <dt><addrtype></dt> | ||||
| <t hangText="<addrtype>">is a text string giving the type of | <dd>is a text string giving the type of | |||
| the address that follows. Initially "IP4" and "IP6" are defined, | the address that follows. Initially, "IP4" and "IP6" are defined, | |||
| but other values MAY be registered in the future (see <xref | but other values <bcp14>MAY</bcp14> be registered in the future (see | |||
| target="iana"/>).</t> | <xref target="iana" format="default"/>).</dd> | |||
| <dt><unicast-address></dt> | ||||
| <t hangText="<unicast-address>">is an address of the machine | <dd>is an address of the machine | |||
| from which the session was created. For an address type of IP4, | from which the session was created. For an address type of "IP4", | |||
| this is either a fully qualified domain name of the machine or the | this is either a fully qualified domain name of the machine or the | |||
| dotted-decimal representation of an IP version 4 address of the | dotted-decimal representation of an IP version 4 address of the | |||
| machine. For an address type of IP6, this is either a fully | machine. For an address type of "IP6", this is either a fully | |||
| qualified domain name of the machine or the address of the machine | qualified domain name of the machine or the address of the machine | |||
| represented as specified in Section 4 of <xref target="RFC5952"/>. | represented as specified in <xref target="RFC5952" section="4" secti | |||
| For both IP4 and IP6, the fully qualified domain name is the form th | onFormat="of" format="default"/>. | |||
| at | For both "IP4" and "IP6", the fully qualified domain name is the for | |||
| SHOULD be given unless this is unavailable, in which case a | m that | |||
| globally unique address MAY be substituted.</t> | <bcp14>SHOULD</bcp14> be given unless this is unavailable, in which | |||
| </list></t> | case a | |||
| globally unique address <bcp14>MAY</bcp14> be substituted.</dd> | ||||
| </dl> | ||||
| <t>In general, the "o=" line serves as a globally unique identifier | <t>In general, the "o=" line serves as a globally unique identifier | |||
| for this version of the session description, and the sub-fields | for this version of the session description, and the subfields | |||
| excepting the version, taken together identify the session irrespective | excepting the version, taken together identify the session irrespective | |||
| of any modifications.</t> | of any modifications.</t> | |||
| <t>For privacy reasons, it is sometimes desirable to obfuscate the | <t>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 | concern, an arbitrary <username> and private | |||
| <unicast-address> MAY be chosen to populate the "o=" line, | <unicast-address> <bcp14>MAY</bcp14> be chosen to populate the "o= " line, | |||
| provided that these are selected in a manner that does not affect the | provided that these are selected in a manner that does not affect the | |||
| global uniqueness of the field.</t> | global uniqueness of the field.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Session Name ("s=")"> | <name>Session Name ("s=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | s=<session name> | |||
| s=<session name> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>The "s=" line (session-name-field) is the textual session name. | <t>The "s=" line (session-name-field) is the textual session name. | |||
| There MUST be one and only one "s=" line per session description. | There <bcp14>MUST</bcp14> be one and only one "s=" line per session desc | |||
| The "s=" line MUST NOT be empty. If a session has no meaningful name, | ription. | |||
| then "s= " or "s=-" (i.e., a single space or dash as the session name) i | The "s=" line <bcp14>MUST NOT</bcp14> be empty. If a session has no mean | |||
| s RECOMMENDED. | ingful name, | |||
| If a session-level "a=charset" attribute is present, it specifies the ch | then "s= " or "s=-" (i.e., a single space or dash as the session name) i | |||
| aracter set used | s <bcp14>RECOMMENDED</bcp14>. | |||
| in the "s=" field. If a session-level "a=charset" attribute is not prese | If a session-level "a=charset:" attribute is present, it specifies the c | |||
| nt, | haracter set used | |||
| the "s=" field MUST contain ISO 10646 characters in UTF-8 encoding.</t> | in the "s=" field. If a session-level "a=charset:" attribute is not pres | |||
| ent, | ||||
| the "s=" field <bcp14>MUST</bcp14> contain ISO 10646 characters in UTF-8 | ||||
| encoding.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Session Information ("i=")"> | <name>Session Information ("i=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | i=<session information> | |||
| i=<session information> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>The "i=" line (information-field) provides textual information about the session. There | <t>The "i=" line (information-field) provides textual information about the session. There | |||
| can be at most one session-level "i=" line per session description, | can be at most one session-level "i=" line per session description, | |||
| and at most one "i=" line in each media description. Unless a | and at most one "i=" line in each media description. Unless a | |||
| media-level "i=" line is provided, the session-level "i=" line applies | media-level "i=" line is provided, the session-level "i=" line applies | |||
| to that media description. If the "a=charset" attribute is present, it | to that media description. If the "a=charset:" attribute is present, it | |||
| specifies the character set used in the "i=" line. If the "a=charset" | specifies the character set used in the "i=" line. If the "a=charset:" | |||
| attribute is not present, the "i=" line MUST contain ISO 10646 | attribute is not present, the "i=" line <bcp14>MUST</bcp14> contain ISO | |||
| 10646 | ||||
| characters in UTF-8 encoding.</t> | characters in UTF-8 encoding.</t> | |||
| <t>At most one "i=" line can be used for each media description. In medi a | <t>At most one "i=" line can be used for each media description. In medi a | |||
| definitions, "i=" lines are primarily intended for labelling media | definitions, "i=" lines are primarily intended for labeling media | |||
| streams. As such, they are most likely to be useful when a single | streams. As such, they are most likely to be useful when a single | |||
| session has more than one distinct media stream of the same media | session has more than one distinct media stream of the same media | |||
| type. An example would be two different whiteboards, one for slides | type. An example would be two different whiteboards, one for slides | |||
| and one for feedback and questions.</t> | and one for feedback and questions.</t> | |||
| <t>The "i=" line is intended to provide a free-form human-readable | <t>The "i=" line is intended to provide a free-form human-readable | |||
| description of the session or the purpose of a media stream. It is not | description of the session or the purpose of a media stream. It is not | |||
| suitable for parsing by automata.</t> | suitable for parsing by automata.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="URI ("u=")"> | <name>URI ("u=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | u=<uri> | |||
| u=<uri> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>The "u=" line (uri-field) provides a URI (Uniform Resource Identifier ) | <t>The "u=" line (uri-field) provides a URI (Uniform Resource Identifier ) | |||
| <xref target="RFC3986"/>. The URI should be a pointer to additional | <xref target="RFC3986" format="default"/>. The URI should be a pointer t o additional | |||
| human readable information about the session. | human readable information about the session. | |||
| This line is OPTIONAL. No more than one | This line is <bcp14>OPTIONAL</bcp14>. No more than one | |||
| "u=" line is allowed per session description.</t> | "u=" line is allowed per session description.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Email Address and Phone Number ("e=" and "p | <name>Email Address and Phone Number ("e=" and "p=")</name> | |||
| =")"> | <sourcecode name="" type=""><![CDATA[ | |||
| <figure> | e=<email-address> | |||
| <artwork> | p=<phone-number> | |||
| e=<email-address> | ]]></sourcecode> | |||
| p=<phone-number> | ||||
| </artwork> | ||||
| </figure> | ||||
| <t>The "e=" line (email-field) and "p=" line (phone-field) specify conta ct information for the person | <t>The "e=" line (email-field) and "p=" line (phone-field) specify conta ct information for the person | |||
| responsible for the session. This is not necessarily the same person | responsible for the session. This is not necessarily the same person | |||
| that created the session description.</t> | that created the session description.</t> | |||
| <t>Inclusion of an email address or phone number is <bcp14>OPTIONAL</bcp | ||||
| <t>Inclusion of an email address or phone number is OPTIONAL.</t> | 14>.</t> | |||
| <t>If an email address or phone number is present, it <bcp14>MUST</bcp14 | ||||
| <t>If an email address or phone number is present, it MUST be | > be | |||
| specified before the first media description. More than one email or pho ne | specified before the first media description. More than one email or pho ne | |||
| line can be given for a session description.</t> | line can be given for a session description.</t> | |||
| <t>Phone numbers <bcp14>SHOULD</bcp14> be given in the form of an intern | ||||
| <t>Phone numbers SHOULD be given in the form of an international | ational | |||
| public telecommunication number (see ITU-T Recommendation E.164 <xref ta | public telecommunication number (see ITU-T Recommendation E.164 <xref ta | |||
| rget="E164"/>) | rget="E164" format="default"/>) | |||
| preceded by a "+". Spaces and hyphens may be used to split up a phone-fi eld | preceded by a "+". Spaces and hyphens may be used to split up a phone-fi eld | |||
| to aid readability if desired. For example:</t> | to aid readability if desired. For example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| p=+1 617 555-6011 | p=+1 617 555-6011 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Both email addresses and phone numbers can have an <bcp14>OPTIONAL</b | |||
| cp14> free | ||||
| <t>Both email addresses and phone numbers can have an OPTIONAL free | ||||
| text string associated with them, normally giving the name of the | text string associated with them, normally giving the name of the | |||
| person who may be contacted. This MUST be enclosed in parentheses if | person who may be contacted. This <bcp14>MUST</bcp14> be enclosed in par entheses if | |||
| it is present. For example:</t> | it is present. For example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| e=j.doe@example.com (Jane Doe) | e=j.doe@example.com (Jane Doe) | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>The alternative <xref target="RFC5322" format="default"/> name quotin | |||
| g convention is | ||||
| <t>The alternative <xref target="RFC5322"/> name quoting convention is | ||||
| also allowed for both email addresses and phone numbers. For | also allowed for both email addresses and phone numbers. For | |||
| example:</t> | example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | e=Jane Doe <j.doe@example.com> | |||
| <artwork> | ]]></sourcecode> | |||
| e=Jane Doe <j.doe@example.com> | <t>The free text string <bcp14>SHOULD</bcp14> be in the ISO-10646 charac | |||
| </artwork> | ter set with | |||
| </figure> | ||||
| <t>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.</t> | the appropriate session-level "a=charset:" attribute is set.</t> | |||
| </section> | </section> | |||
| <section anchor="connection-information" title="Connection Information (&q | <section anchor="connection-information" numbered="true" toc="default"> | |||
| uot;c=")"> | <name>Connection Information ("c=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | c=<nettype> <addrtype> <connection-address> | |||
| c=<nettype> <addrtype> <connection-address> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>The "c=" line (connection-field) contains information necessary | <t>The "c=" line (connection-field) contains information necessary | |||
| to establish a network connection.</t> | to establish a network connection.</t> | |||
| <t>A session description <bcp14>MUST</bcp14> contain either at least one | ||||
| <t>A session description MUST contain either at least one "c=" line in | "c=" line in | |||
| each media description or a single "c=" line at the session level. It | each media description or a single "c=" line at the session level. It | |||
| MAY contain a single session-level "c=" line and additional media-level "c=" | <bcp14>MAY</bcp14> contain a single session-level "c=" line and addition al media-level "c=" | |||
| line(s) per-media-description, in which case the media-level values | line(s) per-media-description, in which case the media-level values | |||
| override the session-level settings for the respective media.</t> | override the session-level settings for the respective media.</t> | |||
| <t>The first subfield (<nettype>) is the network type, which | ||||
| <t>The first sub-field ("<nettype>") is the network type, which | ||||
| is a text string giving the type of network. Initially, "IN" is | is a text string giving the type of network. Initially, "IN" is | |||
| defined to have the meaning "Internet", but other values MAY be | defined to have the meaning "Internet", but other values <bcp14>MAY</bcp | |||
| registered in the future (see <xref target="iana"/>).</t> | 14> be | |||
| registered in the future (see <xref target="iana" format="default"/>).</ | ||||
| <t>The second sub-field ("<addrtype>") is the address type. This | t> | |||
| <t>The second subfield (<addrtype>) is the address type. This | ||||
| allows SDP to be used for sessions that are not IP based. This memo | allows SDP to be used for sessions that are not IP based. This memo | |||
| only defines IP4 and IP6, but other values MAY be registered in the | only defines "IP4" and "IP6", but other values <bcp14>MAY</bcp14> be reg | |||
| future (see <xref target="iana"/>).</t> | istered in the | |||
| future (see <xref target="iana" format="default"/>).</t> | ||||
| <t>The third sub-field ("<connection-address>") is the | <t>The third subfield (<connection-address>) is the | |||
| connection address. Additional sub-fields MAY be added after the | connection address. Additional subfields <bcp14>MAY</bcp14> be added aft | |||
| er the | ||||
| connection address depending on the value of the <addrtype> | connection address depending on the value of the <addrtype> | |||
| sub-field.</t> | subfield.</t> | |||
| <t>When the <addrtype> is "IP4" or "IP6", the connection address i | ||||
| <t>When the <addrtype> is IP4 or IP6, the connection address is | s | |||
| defined as follows:</t> | defined as follows:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>If the session is multicast, the connection address will be an | |||
| <t>If the session is multicast, the connection address will be an | ||||
| IP multicast group address. If the session is not multicast, then | IP multicast group address. If the session is not multicast, then | |||
| the connection address contains the unicast IP address of the | the connection address contains the unicast IP address of the | |||
| expected data source, data relay or data sink as determined by | expected data source, data relay, or data sink as determined by | |||
| additional attribute-fields. It is not expected that unicast | additional attribute-fields (<xref target="attribspec" format="defau | |||
| lt"/>). | ||||
| It is not expected that unicast | ||||
| addresses will be given in a session description that is | addresses will be given in a session description that is | |||
| communicated by a multicast announcement, though this is not | communicated by a multicast announcement, though this is not | |||
| prohibited.</t> | prohibited.</li> | |||
| <li>Sessions using an "IP4" multicast connection address <bcp14>MUST</ | ||||
| <t>Sessions using an IP4 multicast connection address MUST also | bcp14> also | |||
| have a time to live (TTL) value present in addition to the | have a time to live (TTL) value present in addition to the | |||
| multicast address. The TTL and the address together define the | multicast address. The TTL and the address together define the | |||
| scope with which multicast packets sent in this session will be | scope with which multicast packets sent in this session will be | |||
| sent. TTL values MUST be in the range 0-255. Although the TTL MUST | sent. TTL values <bcp14>MUST</bcp14> be in the range 0-255. Although the TTL <bcp14>MUST</bcp14> | |||
| be specified, its use to scope multicast traffic is deprecated; | be specified, its use to scope multicast traffic is deprecated; | |||
| applications SHOULD use an administratively scoped address | applications <bcp14>SHOULD</bcp14> use an administratively scoped ad | |||
| instead.</t> | dress | |||
| </list></t> | instead.</li> | |||
| </ul> | ||||
| <t>The TTL for the session is appended to the address using a slash as | <t>The TTL for the session is appended to the address using a slash as | |||
| a separator. An example is:</t> | a separator. An example is:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| c=IN IP4 233.252.0.1/127 | c=IN IP4 233.252.0.1/127 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>"IP6" multicast does not use TTL scoping, and hence the TTL value | |||
| <bcp14>MUST NOT</bcp14> be present for "IP6" multicast. It is expected t | ||||
| <t>IP6 multicast does not use TTL scoping, and hence the TTL value | hat IPv6 scoped | |||
| MUST NOT be present for IP6 multicast. It is expected that IPv6 scoped | ||||
| addresses will be used to limit the scope of multimedia | addresses will be used to limit the scope of multimedia | |||
| conferences.</t> | conferences.</t> | |||
| <t>Hierarchical or layered encoding schemes are data streams where the | <t>Hierarchical or layered encoding schemes are data streams where the | |||
| encoding from a single media source is split into a number of layers. | encoding from a single media source is split into a number of layers. | |||
| The receiver can choose the desired quality (and hence bandwidth) by | The receiver can choose the desired quality (and hence bandwidth) by | |||
| only subscribing to a subset of these layers. Such layered encodings | only subscribing to a subset of these layers. Such layered encodings | |||
| are normally transmitted in multiple multicast groups to allow | are normally transmitted in multiple multicast groups to allow | |||
| multicast pruning. This technique keeps unwanted traffic from sites | multicast pruning. This technique keeps unwanted traffic from sites | |||
| only requiring certain levels of the hierarchy. For applications | only requiring certain levels of the hierarchy. For applications | |||
| requiring multiple multicast groups, we allow the following notation | requiring multiple multicast groups, we allow the following notation | |||
| to be used for the connection address:</t> | to be used for the connection address:</t> | |||
| <sourcecode name="" type=""><![CDATA[ | ||||
| <figure> | <base multicast address>[/<ttl>]/<number of addresses> | |||
| <artwork> | ]]></sourcecode> | |||
| <base multicast address>[/<ttl>]/<number of addresses> | ||||
| </artwork> | ||||
| </figure> | ||||
| <t>If the number of addresses is not given, it is assumed to be one. | <t>If the number of addresses is not given, it is assumed to be one. | |||
| Multicast addresses so assigned are contiguously allocated above the | Multicast addresses so assigned are contiguously allocated above the | |||
| base address, so that, for example:</t> | base address, so that, for example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| c=IN IP4 233.252.0.1/127/3 | c=IN IP4 233.252.0.1/127/3 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>would state that addresses 233.252.0.1, 233.252.0.2, and | <t>would state that addresses 233.252.0.1, 233.252.0.2, and | |||
| 233.252.0.3 are to be used with a TTL of 127. This is semantically | 233.252.0.3 are to be used with a TTL of 127. This is semantically | |||
| identical to including multiple "c=" lines in a media description:</t> | identical to including multiple "c=" lines in a media description:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| c=IN IP4 233.252.0.1/127 | c=IN IP4 233.252.0.1/127 | |||
| c=IN IP4 233.252.0.2/127 | c=IN IP4 233.252.0.2/127 | |||
| c=IN IP4 233.252.0.3/127 | c=IN IP4 233.252.0.3/127 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>Similarly, an IPv6 example would be:</t> | <t>Similarly, an IPv6 example would be:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| c=IN IP6 ff00::db8:0:101/3 | c=IN IP6 ff00::db8:0:101/3 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>which is semantically equivalent to:</t> | <t>which is semantically equivalent to:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| c=IN IP6 ff00::db8:0:101 | c=IN IP6 ff00::db8:0:101 | |||
| c=IN IP6 ff00::db8:0:102 | c=IN IP6 ff00::db8:0:102 | |||
| c=IN IP6 ff00::db8:0:103 | c=IN IP6 ff00::db8:0:103 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>(remember that the TTL subfield is not present in "IP6" | |||
| <t>(remembering that the TTL sub-field is not present in IP6 | ||||
| multicast).</t> | multicast).</t> | |||
| <t>Multiple addresses or "c=" lines <bcp14>MAY</bcp14> be specified on a | ||||
| <t>Multiple addresses or "c=" lines MAY be specified on a per media desc | per media description | |||
| ription | ||||
| basis only if they provide multicast addresses for different layers in | basis only if they provide multicast addresses for different layers in | |||
| a hierarchical or layered encoding scheme. Multiple addresses or "c=" li nes | a hierarchical or layered encoding scheme. Multiple addresses or "c=" li nes | |||
| MUST NOT be specified at session level.</t> | <bcp14>MUST NOT</bcp14> be specified at session level.</t> | |||
| <t>The slash notation for multiple addresses described above <bcp14>MUST | ||||
| <t>The slash notation for multiple addresses described above MUST NOT | NOT</bcp14> | |||
| be used for IP unicast addresses.</t> | be used for IP unicast addresses.</t> | |||
| </section> | </section> | |||
| <section title="Bandwidth Information ("b=")"> | <section anchor="bandwidthInfo" numbered="true" toc="default"> | |||
| <figure> | <name>Bandwidth Information ("b=")</name> | |||
| <artwork> | <sourcecode name="" type=""><![CDATA[ | |||
| b=<bwtype>:<bandwidth> | b=<bwtype>:<bandwidth> | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>The <bcp14>OPTIONAL</bcp14> "b=" line (bandwidth-field) denotes the p | |||
| roposed bandwidth to be used by the | ||||
| <t>The OPTIONAL "b=" line (bandwidth-field) denotes the proposed bandwid | ||||
| th to be used by the | ||||
| session or media description. The <bwtype> is an alphanumeric modi fier | session or media description. The <bwtype> is an alphanumeric modi fier | |||
| giving the meaning of the <bandwidth> figure. Two values are | that provides the meaning of the <bandwidth> number. Two values ar | |||
| defined in this specification, but other values MAY be registered in | e | |||
| the future (see <xref target="iana"/> and <xref target="RFC3556"/>, | defined in this specification, but other values <bcp14>MAY</bcp14> be re | |||
| <xref target="RFC3890"/>):</t> | gistered in | |||
| the future (see <xref target="iana" format="default"/> and <xref target= | ||||
| <t><list style="hanging"> | "RFC3556" format="default"/>, | |||
| <t hangText="CT">If the bandwidth of a session is different from | <xref target="RFC3890" format="default"/>):</t> | |||
| the bandwidth implicit from the scope, a "b=CT:..." line SHOULD be | <dl newline="false" spacing="normal"> | |||
| <dt>CT</dt> | ||||
| <dd><t>If the bandwidth of a session is different from | ||||
| the bandwidth implicit from the scope, a "b=CT:" line <bcp14>SHOULD< | ||||
| /bcp14> be | ||||
| supplied for the session giving the proposed upper limit to the | supplied for the session giving the proposed upper limit to the | |||
| bandwidth used (the "conference total" bandwidth). Similarly, if | bandwidth used (the "conference total" bandwidth). Similarly, if | |||
| the bandwidth of bundled media streams | the bandwidth of bundled media streams | |||
| <xref target="I-D.ietf-mmusic-sdp-bundle-negotiation"/> | <xref target="RFC8843" format="default"/> | |||
| in an "m=" line is different | in an "m=" line is different | |||
| from the implicit value from the scope, a "b=CT:..." line SHOULD | from the implicit value from the scope, a "b=CT:" line <bcp14>SHOULD </bcp14> | |||
| be supplied in the media level. The primary purpose of this is to | be supplied in the media level. The primary purpose of this is to | |||
| give an approximate idea as to whether two or more sessions (or | give an approximate idea as to whether two or more sessions (or | |||
| bundled media streams) can coexist simultaneously. Note that CT | bundled media streams) can coexist simultaneously. Note that a "b=CT :" line | |||
| gives a total bandwidth figure for all the media at all | gives a total bandwidth figure for all the media at all | |||
| endpoints.</t> | endpoints.</t> | |||
| <t>The Mux Category for "b=CT:" is NORMAL. This is discussed | ||||
| <t hangText="">The Mux Category for CT is NORMAL. This is discussed | in <xref target="RFC8859" format="default"/>.</t> | |||
| in <xref target="I-D.ietf-mmusic-sdp-mux-attributes"/>.</t> | </dd> | |||
| <dt>AS</dt> | ||||
| <t hangText="AS">The bandwidth is interpreted to be application | <dd><t>The bandwidth is interpreted to be application | |||
| specific (it will be the application's concept of maximum | specific (it will be the application's concept of maximum | |||
| bandwidth). Normally, this will coincide with what is set on the | bandwidth). Normally, this will coincide with what is set on the | |||
| application's "maximum bandwidth" control if applicable. For | application's "maximum bandwidth" control if applicable. For | |||
| RTP-based applications, AS gives the RTP "session bandwidth" as | RTP-based applications, the "b=AS:" line gives the RTP "session band | |||
| defined in Section 6.2 of <xref target="RFC3550"/>. Note that AS | width" as | |||
| defined in <xref target="RFC3550" section="6.2" sectionFormat="of" f | ||||
| ormat="default"/>. Note that a "b=AS:" line | ||||
| gives a bandwidth figure for a single media at a single endpoint, | gives a bandwidth figure for a single media at a single endpoint, | |||
| although there may be many endpoints sending simultaneously.</t> | although there may be many endpoints sending simultaneously.</t> | |||
| <t>The Mux Category for "b=AS:" is SUM. This is discussed | ||||
| <t hangText="">The Mux Category for AS is SUM. This is discussed | in <xref target="RFC8859" format="default"/>.</t> | |||
| in <xref target="I-D.ietf-mmusic-sdp-mux-attributes"/>.</t> | </dd> | |||
| </list></t> | </dl> | |||
| <t><xref target="RFC4566" format="default"/> defined an "X-" prefix for | ||||
| <t><xref target="RFC4566"/> defined an "X-" prefix for <bwtype> na | <bwtype> names. | |||
| mes. | ||||
| This was intended for experimental purposes only. For example:</t> | This was intended for experimental purposes only. For example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| b=X-YZ:128 | b=X-YZ:128 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Use of the "X-" prefix is <bcp14>NOT RECOMMENDED</bcp14>. Instead new | |||
| (non "X-" prefix) <bwtype> names | ||||
| <t>Use of the "X-" prefix is NOT RECOMMENDED. Instead new (non "X-" pref | <bcp14>SHOULD</bcp14> be defined, and then <bcp14>MUST</bcp14> be regist | |||
| ix) <bwtype> names | ered with IANA in the standard namespace. SDP parsers | |||
| SHOULD be defined, and then MUST be registered with IANA in the standard | <bcp14>MUST</bcp14> ignore bandwidth-fields with unknown <bwtype> | |||
| namespace. SDP parsers | names. The <bwtype> names <bcp14>MUST</bcp14> be | |||
| MUST ignore bandwidth-fields with unknown <bwtype> names. The < | ||||
| bwtype> names MUST be | ||||
| alphanumeric and, although no length limit is given, it is recommended | alphanumeric and, although no length limit is given, it is recommended | |||
| that they be short.</t> | that they be short.</t> | |||
| <t>The <bandwidth> is interpreted as kilobits per second by | <t>The <bandwidth> is interpreted as kilobits per second by | |||
| default (including the transport and network-layer but not the link-laye r overhead). The definition of a new <bwtype> modifier MAY specify | default (including the transport and network-layer, but not the link-lay er, overhead). The definition of a new <bwtype> modifier <bcp14>MAY</bcp14 > specify | |||
| that the bandwidth is to be interpreted in some alternative unit (the | that the bandwidth is to be interpreted in some alternative unit (the | |||
| "CT" and "AS" modifiers defined in this memo use the default | "CT" and "AS" modifiers defined in this memo use the default | |||
| units).</t> | units).</t> | |||
| </section> | </section> | |||
| <section anchor="timing" numbered="true" toc="default"> | ||||
| <section anchor="timing" title="Time Active ("t=")"> | <name>Time Active ("t=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | t=<start-time> <stop-time> | |||
| t=<start-time> <stop-time> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>A "t=" line (time-field) begins a time description that specifies the start and stop times for a session. | <t>A "t=" line (time-field) begins a time description that specifies the start and stop times for a session. | |||
| Multiple time descriptions MAY be used if a session is active at multipl e | Multiple time descriptions <bcp14>MAY</bcp14> be used if a session is ac tive at multiple | |||
| irregularly spaced times; each additional time description specifies | irregularly spaced times; each additional time description specifies | |||
| additional periods of time for which the session will be active. If the | additional periods of time for which the session will be active. If the | |||
| session is active at regular repeat times, a repeat description, begun b | session is active at regular repeat times, a repeat description, | |||
| y an "r=" line (see below) can be | begun by an "r=" line (see <xref target="repeattime" format="default"/>) | |||
| can be | ||||
| included following the time-field -- in which case the | included following the time-field -- in which case the | |||
| time-field specifies the start and stop times of the entire repeat | time-field specifies the start and stop times of the entire repeat | |||
| sequence.</t> | sequence.</t> | |||
| <t>The following example specifies two active intervals:</t> | <t>The following example specifies two active intervals:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| t=3724394400 3724398000 ; Mon 8-Jan-2018 10:00-11:00 UTC | t=3724394400 3724398000 ; Mon 8-Jan-2018 10:00-11:00 UTC | |||
| t=3724484400 3724488000 ; Tue 9-Jan-2018 11:00-12:00 UTC | t=3724484400 3724488000 ; Tue 9-Jan-2018 11:00-12:00 UTC | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>The first and second subfields of the time-field give the start and s | |||
| top times, | ||||
| <t>The first and second sub-fields of the time-field give the start and | ||||
| stop times, | ||||
| respectively, for the session. These are the decimal | respectively, for the session. These are the decimal | |||
| representation of time values in seconds | representation of time values in seconds | |||
| since January 1, 1900 UTC. To convert these values to UNIX | since January 1, 1900 UTC. To convert these values to Unix | |||
| time (UTC), subtract decimal 2208988800.</t> | time (UTC), subtract decimal 2208988800.</t> | |||
| <t>Some time representations will | <t>Some time representations will | |||
| wrap in the year 2036. Because SDP uses an arbitrary length | wrap in the year 2036. Because SDP uses an arbitrary length | |||
| decimal representation, it does not have this issue. Implementations | decimal representation, it does not have this issue. Implementations | |||
| of SDP need to be prepared to handle these larger values.</t> | of SDP need to be prepared to handle these larger values.</t> | |||
| <t>If the <stop-time> is set to zero, then the session is not | <t>If the <stop-time> is set to zero, then the session is not | |||
| bounded, though it will not become active until after the | bounded, though it will not become active until after the | |||
| <start-time>. If the <start-time> is also zero, the | <start-time>. If the <start-time> is also zero, the | |||
| session is regarded as permanent.</t> | session is regarded as permanent.</t> | |||
| <t>User interfaces <bcp14>SHOULD</bcp14> strongly discourage the creatio | ||||
| <t>User interfaces SHOULD strongly discourage the creation of | n of | |||
| unbounded and permanent sessions as they give no information about | unbounded and permanent sessions as they give no information about | |||
| when the session is actually going to terminate, and so make | when the session is actually going to terminate, and so make | |||
| scheduling difficult.</t> | scheduling difficult.</t> | |||
| <t>The general assumption may be made, when displaying unbounded | <t>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 behavior other | or the session start time, whichever is the later. If behavior other | |||
| than this is required, an end-time SHOULD be given and modified as | than this is required, a <stop-time> <bcp14>SHOULD</bcp14> be give n and modified as | |||
| appropriate when new information becomes available about when the | appropriate when new information becomes available about when the | |||
| session should really end.</t> | session should really end.</t> | |||
| <t>Permanent sessions may be shown to the user as never being active | <t>Permanent sessions may be shown to the user as never being active | |||
| unless there are associated repeat times that state precisely when the | unless there are associated repeat times that state precisely when the | |||
| session will be active.</t> | session will be active.</t> | |||
| </section> | </section> | |||
| <section anchor="repeattime" numbered="true" toc="default"> | ||||
| <section title="Repeat Times ("r=")"> | <name>Repeat Times ("r=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | r=<repeat interval> <active duration> <offsets from start-time> | |||
| r=<repeat interval> <active duration> <offsets from start-time | ]]></sourcecode> | |||
| > | ||||
| </artwork> | ||||
| </figure> | ||||
| <t>An"r=" line (repeat-field) specifies repeat times for a session. | <t>An"r=" line (repeat-field) specifies repeat times for a session. | |||
| If needed to express complex schedules, multiple repeat-fields may | If needed to express complex schedules, multiple repeat-fields may | |||
| be included. For example, if a | be included. 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=" line would be the representation of 10am on the | corresponding "t=" line would be the representation of 10am on the | |||
| first Monday, the <repeat interval> would be 1 week, the | first Monday, the <repeat interval> would be 1 week, the | |||
| <active duration> would be 1 hour, and the offsets would be zero | <active duration> would be 1 hour, and the offsets would be zero | |||
| and 25 hours. The corresponding "t=" line stop time would be the | and 25 hours. The corresponding "t=" line stop time would be the | |||
| representation of the end of the last session three months later. By | representation of the end of the last session three months later. By | |||
| default, all sub-fields are in seconds, so the "r=" and "t=" lines might | default, all subfields are in seconds, so the "r=" and "t=" lines might | |||
| be the following:</t> | be the following:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| t=3724394400 3730536000 ; Mon 8-Jan-2018 10:00-11:00 UTC | t=3724394400 3730536000 ; Mon 8-Jan-2018 10:00-11:00 UTC | |||
| ; Tues 20-Mar-2018 12:00 UTC | ; Tues 20-Mar-2018 12:00 UTC | |||
| r=604800 3600 0 90000 ; 1 week, 1 hour, zero, 25 hours | r=604800 3600 0 90000 ; 1 week, 1 hour, zero, 25 hours | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>To make the description more compact, times may also be given in | <t>To make the description more compact, times may also be given in | |||
| units of days, hours, or minutes. The syntax for these is a number | units of days, hours, or minutes. The syntax for these is a number | |||
| immediately followed by a single case-sensitive character. Fractional | immediately followed by a single case-sensitive character. Fractional | |||
| units are not allowed -- a smaller unit should be used instead. The | units are not allowed -- a smaller unit should be used instead. The | |||
| following unit specification characters are allowed:</t> | following unit specification characters are allowed:</t> | |||
| <table> | ||||
| <figure> | <name>Time Unit Specification Characters</name> | |||
| <artwork> | <tbody> | |||
| d - days (86400 seconds) | <tr> | |||
| h - hours (3600 seconds) | <td>d</td> | |||
| m - minutes (60 seconds) | <td>days (86400 seconds)</td> | |||
| s - seconds (allowed for completeness) | </tr> | |||
| </artwork> | <tr> | |||
| </figure> | <td>h</td> | |||
| <td>hours (3600 seconds)</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>m</td> | ||||
| <td>minutes (60 seconds)</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>s</td> | ||||
| <td>seconds (allowed for completeness)</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>Thus, the above repeat-field could also have been | <t>Thus, the above repeat-field could also have been | |||
| written:</t> | written:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| r=7d 1h 0 25h | r=7d 1h 0 25h | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>Monthly and yearly repeats cannot be directly specified with a | <t>Monthly and yearly repeats cannot be directly specified with a | |||
| single SDP repeat time; instead, separate time-descriptions should be us ed to | single SDP repeat time; instead, separate time-descriptions should be us ed to | |||
| explicitly list the session times.</t> | explicitly list the session times.</t> | |||
| </section> | </section> | |||
| <section anchor="tzadj" numbered="true" toc="default"> | ||||
| <section title="Time Zone Adjustment ("z=")"> | <name>Time Zone Adjustment ("z=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | z=<adjustment time> <offset> <adjustment time> <offset> .... | |||
| z=<adjustment time> <offset> <adjustment time> <offset&g | ]]></sourcecode> | |||
| t; .... | ||||
| </artwork> | ||||
| </figure> | ||||
| <t>A "z=" line (zone-field) is an optional modifier to the repeat-fields it immediately follows. | <t>A "z=" line (zone-field) is an optional modifier to the repeat-fields it immediately follows. | |||
| It does not apply to any other fields.</t> | It does not apply to any other fields.</t> | |||
| <t>To schedule a repeated session that spans a change from daylight | <t>To schedule a repeated session that spans a change from daylight | |||
| saving time to standard time or vice versa, it is necessary to specify | saving time to standard time or vice versa, it is necessary to specify | |||
| offsets from the base time. This is required because different time | offsets from the base time. This is required because different time | |||
| zones change time at different times of day, different countries | zones change time at different times of day, different countries | |||
| change to or from daylight saving time on different dates, and some | change to or from daylight saving time on different dates, and some | |||
| countries do not have daylight saving time at all.</t> | countries do not have daylight saving time at all.</t> | |||
| <t>Thus, in order to schedule a session that is at the same time | <t>Thus, in order to schedule a session that is at the same time | |||
| winter and summer, it must be possible to specify unambiguously by | winter and summer, it must be possible to specify unambiguously by | |||
| whose time zone a session is scheduled. To simplify this task for | whose time zone a session is scheduled. To simplify this task for | |||
| receivers, we allow the sender to specify the time (represented as secon ds | receivers, we allow the sender to specify the time (represented as secon ds | |||
| since January 1, 1900 UTC) that a time zone adjustment happens | since January 1, 1900 UTC) that a time zone adjustment happens | |||
| and the offset from the time when the session | and the offset from the time when the session | |||
| was first scheduled. The "z=" line allows the sender to specify a list | was first scheduled. The "z=" line allows the sender to specify a list | |||
| of these adjustment times and offsets from the base time.</t> | of these adjustment times and offsets from the base time.</t> | |||
| <t>An example might be the following:</t> | <t>An example might be the following:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <artwork> | ||||
| t=3724394400 3754123200 ; Mon 8-Jan-2018 10:00 UTC | t=3724394400 3754123200 ; Mon 8-Jan-2018 10:00 UTC | |||
| ; Tues 18-Dec-2018 12:00 UTC | ; Tues 18-Dec-2018 12:00 UTC | |||
| r=604800 3600 0 90000 ; 1 week, 1 hour, zero, 25 hours | r=604800 3600 0 90000 ; 1 week, 1 hour, zero, 25 hours | |||
| z=3730928400 -1h 3749680800 0 ; Sun 25-Mar-2018 1:00 UTC, | z=3730928400 -1h 3749680800 0 ; Sun 25-Mar-2018 1:00 UTC, | |||
| ; offset 1 hour, | ; offset 1 hour, | |||
| ; Sun 28-Oct-2018 2:00 UTC, | ; Sun 28-Oct-2018 2:00 UTC, | |||
| ; no offset | ; no offset | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This specifies that at time 3730928400 (Sun 25-Mar-2018 1:00 UTC, | <t>This specifies that at time 3730928400 (Sun 25-Mar-2018 1:00 UTC, | |||
| the onset of British Summer Time) the time base by which the | the onset of British Summer Time) the time base by which the | |||
| session's repeat times are calculated is shifted back by 1 hour, and | session's repeat times are calculated is shifted back by 1 hour, and | |||
| that at time 3749680800 (Sun 28-Oct-2018 2:00 UTC, the end of British | that at time 3749680800 (Sun 28-Oct-2018 2:00 UTC, the end of British | |||
| Summer Time) the session's original time base is restored. | Summer Time) 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.</t> | are not cumulative.</t> | |||
| <t>If a session is likely to last several years, it is expected that | <t>If a session is likely to last several years, it is expected that | |||
| the session description will be modified periodically rather than | the session description will be modified periodically rather than | |||
| transmit several years' worth of adjustments in one session | transmit several years' worth of adjustments in one session | |||
| description.</t> | description.</t> | |||
| </section> | </section> | |||
| <section anchor="key-field" numbered="true" toc="default"> | ||||
| <section title="Encryption Keys ("k=")"> | <name>Encryption Keys ("k=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | k=<method> | |||
| k=<method> | k=<method>:<encryption key> | |||
| k=<method>:<encryption key> | ]]></sourcecode> | |||
| </artwork> | <t>The "k=" line (key-field) is obsolete and <bcp14>MUST NOT</bcp14> be | |||
| </figure> | used. It is included in | |||
| <t>The "k=" line (key-field) is obsolete and MUST NOT be used. It is inc | this document for legacy reasons. One <bcp14>MUST NOT</bcp14> includ | |||
| luded in | e a "k=" line | |||
| this document for legacy reasons. One MUST NOT include a "k=" line | in an SDP, and <bcp14>MUST</bcp14> discard it if it is received in a | |||
| in an SDP, and MUST discard it if it is received in an SDP. </t> | n SDP. </t> | |||
| </section> | </section> | |||
| <section anchor="attribspec" numbered="true" toc="default"> | ||||
| <section title="Attributes ("a=")"> | <name>Attributes ("a=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | a=<attribute-name> | |||
| a=<attribute> | a=<attribute-name>:<attribute-value> | |||
| a=<attribute>:<value> | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>Attributes are the primary means for extending SDP. Attributes may | <t>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. (Attribute scopes in addition to media- and | attributes, or both. (Attribute scopes in addition to media-level and | |||
| session- level may also be defined in extensions to this document. | session-level scopes may also be defined in extensions to this document, | |||
| E.g., <xref target="RFC5576"/>, | e.g., <xref target="RFC5576" format="default"/> and | |||
| <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.)</t> | <xref target="RFC8864" format="default"/>.)</t> | |||
| <t>A media description may contain any number of "a=" lines (attribute-f ields) | <t>A media description may contain any number of "a=" lines (attribute-f ields) | |||
| that are media description specific. These are referred to as "media-lev el" | that are media description specific. These are referred to as media-leve l | |||
| attributes and add information about the media description. Attribute-fi elds | attributes and add information about the media description. Attribute-fi elds | |||
| can also be added before the first media description; these "session-lev el" | can also be added before the first media description; these session-leve l | |||
| attributes convey additional information that applies to the session | attributes convey additional information that applies to the session | |||
| as a whole rather than to individual media descriptions.</t> | as a whole rather than to individual media descriptions.</t> | |||
| <t>Attribute-fields may be of two forms:</t> | <t>Attribute-fields may be of two forms:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>A property attribute is simply of the form "a=<attribute-name&g | |||
| <t>A property attribute is simply of the form "a=<attribute>". | t;". | |||
| These are binary attributes, and the presence of the attribute | These are binary attributes, and the presence of the attribute | |||
| conveys that the attribute is a property of the session. An | conveys that the attribute is a property of the session. An | |||
| example might be "a=recvonly".</t> | example might be "a=recvonly".</li> | |||
| <li>A value attribute is of the form | ||||
| <t>A value attribute is of the form | "a=<attribute-name>:<attribute-value>". For example, a w | |||
| "a=<attribute>:<value>". For example, a whiteboard | hiteboard | |||
| could have the value attribute "a=orient:landscape"</t> | could have the value attribute "a=orient:landscape".</li> | |||
| </list></t> | </ul> | |||
| <t>Attribute interpretation depends on the media tool being invoked. | <t>Attribute interpretation depends on the media tool being invoked. | |||
| Thus receivers of session descriptions should be configurable in their | Thus receivers of session descriptions should be configurable in their | |||
| interpretation of session descriptions in general and of attributes in | interpretation of session descriptions in general and of attributes in | |||
| particular.</t> | particular.</t> | |||
| <t>Attribute names <bcp14>MUST</bcp14> use the US-ASCII subset of | ||||
| <t>Attribute names MUST use the US-ASCII subset of | ||||
| ISO-10646/UTF-8.</t> | ISO-10646/UTF-8.</t> | |||
| <t>Attribute values are octet strings, and <bcp14>MAY</bcp14> use any oc | ||||
| <t>Attribute values are octet strings, and MAY use any octet value | tet value | |||
| except 0x00 (Nul), 0x0A (LF), and 0x0D (CR). By default, attribute | except 0x00 (Nul), 0x0A (LF), and 0x0D (CR). By default, attribute | |||
| values are to be interpreted as in ISO-10646 character set with UTF-8 | values are to be interpreted as in ISO-10646 character set with UTF-8 | |||
| encoding. Unlike other text fields, attribute values are NOT normally | encoding. Unlike other text fields, attribute values are NOT normally | |||
| affected by the "charset" attribute as this would make comparisons | affected by the "a=charset:" attribute as this would make comparisons | |||
| against known values problematic. However, when an attribute is | against known values problematic. However, when an attribute is | |||
| defined, it can be defined to be charset dependent, in which case its | defined, it can be defined to be charset dependent, in which case its | |||
| value should be interpreted in the session charset rather than in | value should be interpreted in the session charset rather than in | |||
| ISO-10646.</t> | ISO-10646.</t> | |||
| <t>Attributes <bcp14>MUST</bcp14> be registered with IANA (see <xref tar | ||||
| <t>Attributes MUST be registered with IANA (see <xref | get="iana" format="default"/>). | |||
| target="iana"/>). If an attribute is received that is not understood, | If an attribute is received that is not understood, | |||
| it MUST be ignored by the receiver.</t> | it <bcp14>MUST</bcp14> be ignored by the receiver.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Media Descriptions ("m=")"> | <name>Media Descriptions ("m=")</name> | |||
| <figure> | <sourcecode name="" type=""><![CDATA[ | |||
| <artwork> | m=<media> <port> <proto> <fmt> ... | |||
| m=<media> <port> <proto> <fmt> ... | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure> | ||||
| <t>A session description may contain a number of media descriptions. | <t>A session description may contain a number of media descriptions. | |||
| Each media description starts with an "m=" line (media-field) and is ter minated by | Each media description starts with an "m=" line (media-field) and is ter minated by | |||
| either the next "m=" line or by the end of the session description. A | either the next "m=" line or by the end of the session description. A | |||
| media-field has several sub-fields:</t> | media-field has several subfields:</t> | |||
| <dl newline="false" spacing="normal"> | ||||
| <t><list style="hanging"> | <dt><media></dt> | |||
| <t hangText="<media>">is the media type. This document defines | <dd>is the media type. This document defines the values "audio", "vide | |||
| the values "audio", "video", "text", "application", and "message". This list is | o", "text", "application", and "message". This list is extended by other memos a | |||
| extended by other memos and may be further extended by additional memos registe | nd may be further extended by additional memos registering media types in the fu | |||
| ring media types in the future (see <xref target="iana"/>). For example, <xref t | ture (see <xref target="iana" format="default"/>). For example, <xref target="RF | |||
| arget="RFC6466"/> defined the "image" media type.</t> | C6466" format="default"/> defined the "image" media type.</dd> | |||
| <dt><port></dt> | ||||
| <t hangText="<port>">is the transport port to which the | <dd><t>is the transport port to which the | |||
| media stream is sent. The meaning of the transport port depends on | media stream is sent. The meaning of the transport port depends on | |||
| the network being used as specified in the relevant "c=" line, and | the network being used as specified in the relevant "c=" line, and | |||
| on the transport protocol defined in the <proto> sub-field | on the transport protocol defined in the <proto> subfield | |||
| of the media-field. Other ports used by the media application | of the media-field. Other ports used by the media application | |||
| (such as the RTP Control Protocol (RTCP) port <xref | (such as the RTP Control Protocol (RTCP) port <xref target="RFC3550" | |||
| target="RFC3550"/>) MAY be derived algorithmically from the base | format="default"/>) <bcp14>MAY</bcp14> be derived algorithmically from the base | |||
| media port or MAY be specified in a separate attribute (for | media port or <bcp14>MAY</bcp14> be specified in a separate attribut | |||
| example, "a=rtcp:" as defined in <xref target="RFC3605"/>).</t> | e (for | |||
| example, the "a=rtcp:" attribute as defined in <xref target="RFC3605 | ||||
| " format="default"/>).</t> | ||||
| <t>If non-contiguous ports are used or if they don't follow the | <t>If noncontiguous 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 <bcp14>MUST</bcp14> be used. Applications that are request | |||
| media to a <port> that is odd and where the "a=rtcp:" is | ed to send | |||
| present MUST NOT subtract 1 from the RTP port: that is, they MUST | media to a <port> that is odd and where the "a=rtcp:" attribut | |||
| e is | ||||
| present <bcp14>MUST NOT</bcp14> subtract 1 from the RTP port: that i | ||||
| s, they <bcp14>MUST</bcp14> | ||||
| send the RTP to the port indicated in <port> and send the | send the RTP to the port indicated in <port> and send the | |||
| RTCP to the port indicated in the "a=rtcp" attribute.</t> | RTCP to the port indicated in the "a=rtcp:" attribute.</t> | |||
| <t>For applications where hierarchically encoded streams are being | <t>For applications where hierarchically encoded streams are being | |||
| sent to a unicast address, it may be necessary to specify multiple | sent to a unicast address, it may be necessary to specify multiple | |||
| transport ports. This is done using a similar notation to that | transport ports. This is done using a similar notation to that | |||
| used for IP multicast addresses in the "c=" line: <figure> | used for IP multicast addresses in the "c=" line: </t> | |||
| <artwork> | <sourcecode name="" type=""><![CDATA[ | |||
| m=<media> <port>/<number of ports> <proto> <fm | m=<media> <port>/<number of ports> <proto> <fmt> ... | |||
| t> ... | ]]></sourcecode> | |||
| </artwork> | ||||
| </figure></t> | ||||
| <t>In such a case, the ports used depend on the transport | <t>In such a case, the ports used depend on the transport | |||
| protocol. For RTP, the default is that only the even-numbered | protocol. For RTP, the default is that only the even-numbered | |||
| ports are used for data with the corresponding one-higher odd | ports are used for data with the corresponding one-higher odd | |||
| ports used for the RTCP belonging to the RTP session, and the | ports used for the RTCP belonging to the RTP session, and the | |||
| <number of ports> denoting the number of RTP sessions. For | <number of ports> denoting the number of RTP sessions. For | |||
| example: <figure> | example: </t> | |||
| <artwork> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| m=video 49170/2 RTP/AVP 31 | m=video 49170/2 RTP/AVP 31 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <t>would specify that ports 49170 and 49171 form one RTP/RTCP pair, | |||
| <t>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).</t> | transport protocol, and 31 is the format (see the description of < | |||
| ;fmt> below).</t> | ||||
| <t>This document does not include a mechanism for declaring hierarchi | <t>This document does not include a mechanism for declaring hierarchic | |||
| cally | ally | |||
| encoded streams using non-contiguous ports. | encoded streams using noncontiguous ports. | |||
| (There is currently no attribute defined that can accomplish this. | (There is currently no attribute defined that can accomplish this. | |||
| The "a=rtcp:" defined in <xref target="RFC3605"/> does not handle hie | The "a=rtcp:" attribute defined in <xref target="RFC3605" format="def | |||
| rarchical encoding.) | ault"/> does not handle hierarchical encoding.) | |||
| If a need arises to declare non-contiguous ports then it will be nece | If a need arises to declare noncontiguous ports then it will be neces | |||
| ssary to define a new attribute to do so.</t> | sary to define a new attribute to do so.</t> | |||
| <t>If multiple addresses are specified in the "c=" line and | <t>If multiple addresses are specified in the "c=" line and | |||
| multiple ports are specified in the "m=" line, a one-to-one | multiple ports are specified in the "m=" line, a one-to-one | |||
| mapping from port to the corresponding address is implied. For | mapping from port to the corresponding address is implied. For | |||
| example: | example: </t> | |||
| <figure> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| <artwork> | ||||
| m=video 49170/2 RTP/AVP 31 | m=video 49170/2 RTP/AVP 31 | |||
| c=IN IP4 233.252.0.1/127/2 | c=IN IP4 233.252.0.1/127/2 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <t>would imply that address 233.252.0.1 is used with ports 49170 | |||
| <t>would imply that address 233.252.0.1 is used with ports 49170 | ||||
| and 49171, and address 233.252.0.2 is used with ports 49172 and | and 49171, and address 233.252.0.2 is used with ports 49172 and | |||
| 49173.</t> | 49173.</t> | |||
| <t>The mapping is similar if multiple addresses are specified using multiple "c=" lines. | <t>The mapping is similar if multiple addresses are specified using multiple "c=" lines. | |||
| For example: | For example: </t> | |||
| <figure> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| <artwork> | ||||
| m=video 49170/2 RTP/AVP 31 | m=video 49170/2 RTP/AVP 31 | |||
| c=IN IP6 ff00::db8:0:101 | c=IN IP6 ff00::db8:0:101 | |||
| c=IN IP6 ff00::db8:0:102 | c=IN IP6 ff00::db8:0:102 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <t>would imply that address ff00::db8:0:101 is used with ports 49170 | |||
| <t>would imply that address ff00::db8:0:101 is used with ports 49170 | ||||
| and 49171, and address ff00::db8:0:102 is used with ports 49172 and | and 49171, and address ff00::db8:0:102 is used with ports 49172 and | |||
| 49173.</t> | 49173.</t> | |||
| <t>This document gives no meaning to assigning the same media address | ||||
| <t>This document gives no meaning to assigning the same media addres | to | |||
| s to | multiple media descriptions. | |||
| multiple media-descriptions. | Doing so does not implicitly group those media descriptions in any wa | |||
| Doing so does not implicitly group those media-descriptions in any wa | y. | |||
| y. | An explicit grouping framework (for example, <xref target="RFC5888" f | |||
| An explicit grouping framework (for example, <xref target="RFC5888"/> | ormat="default"/>) | |||
| ) | ||||
| should instead be used to express the intended semantics. | should instead be used to express the intended semantics. | |||
| For instance, see <xref target="I-D.ietf-mmusic-sdp-bundle-negotiatio | For instance, see <xref target="RFC8843" format="default"/>.</t> | |||
| n"/>.</t> | </dd> | |||
| <dt><proto></dt> | ||||
| <t hangText="<proto>">is the transport protocol. The meaning | <dd> | |||
| of the transport protocol is dependent on the address type sub-field | <t>is the transport protocol. The meaning | |||
| in the relevant "c=" line. Thus a "c=" line with an address type of | of the transport protocol is dependent on the address type subfield | |||
| IP4 indicates that | in the relevant "c=" line. Thus a "c=" line with an address type of | |||
| "IP4" indicates that | ||||
| the transport protocol runs over IPv4. The following transport | the transport protocol runs over IPv4. The following transport | |||
| protocols are defined, but may be extended through registration of | protocols are defined, but may be extended through registration of | |||
| new protocols with IANA (see <xref target="iana"/>): <list | new protocols with IANA (see <xref target="iana" format="default"/>) | |||
| style="symbols"> | : </t> | |||
| <t>udp: denotes that the data is transported directly in UDP | <ul spacing="normal"> | |||
| with no additional framing.</t> | <li>udp: denotes that the data is transported directly in UDP | |||
| with no additional framing.</li> | ||||
| <t>RTP/AVP: denotes <xref target="RFC3550">RTP</xref> used | <li>RTP/AVP: denotes <xref target="RFC3550" format="default">RTP</ | |||
| under the <xref target="RFC3551">RTP Profile for Audio and | xref> used | |||
| under the <xref target="RFC3551" format="default">RTP Profile fo | ||||
| r Audio and | ||||
| Video Conferences with Minimal Control</xref> running over | Video Conferences with Minimal Control</xref> running over | |||
| UDP.</t> | UDP.</li> | |||
| <li>RTP/SAVP: denotes the <xref target="RFC3711" format="default"> | ||||
| <t>RTP/SAVP: denotes the <xref target="RFC3711">Secure | Secure | |||
| Real-time Transport Protocol</xref> running over UDP.</t> | Real-time Transport Protocol</xref> running over UDP.</li> | |||
| </list></t> | <li>RTP/SAVPF: denotes SRTP with the <xref target="RFC5124" format | |||
| ="default"> | ||||
| <t>The main reason to specify the transport protocol in addition | Extended SRTP Profile for RTCP-Based Feedback</xref> running ove | |||
| r UDP.</li> | ||||
| </ul> | ||||
| <t>The main reason to specify the transport protocol in addition | ||||
| to the media format is that the same standard media formats may be | to 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 (MBone's popular multimedia audio tool) Pulse Code | protocol is the same -- a historical example is vat (MBone's popular multimedia audio tool) Pulse Code | |||
| Modulation (PCM) audio and RTP PCM audio; another might be TCP/RTP | Modulation (PCM) audio and RTP PCM audio; another might be TCP/RTP | |||
| PCM audio. In addition, relays and monitoring tools that are | PCM audio. In addition, relays and monitoring tools that are | |||
| transport-protocol-specific but format-independent are | transport-protocol-specific but format-independent are | |||
| possible.</t> | possible.</t> | |||
| </dd> | ||||
| <t hangText="<fmt>">is a media format description. The | <dt><fmt></dt> | |||
| fourth and any subsequent sub-fields describe the format of the | <dd><t>is a media format description. The | |||
| fourth and any subsequent subfields describe the format of the | ||||
| media. The interpretation of the media format depends on the value | media. The interpretation of the media format depends on the value | |||
| of the <proto> sub-field.</t> | of the <proto> subfield.</t> | |||
| <t>If the <proto> sub-field is "RTP/AVP" or "RTP/SAVP" the | <t>If the <proto> subfield is "RTP/AVP" or "RTP/SAVP", the | |||
| <fmt> sub-fields contain RTP payload type numbers. When a | <fmt> subfields contain RTP payload type numbers. When a list | |||
| list of payload type numbers is given, this implies that all of | of | |||
| these payload formats MAY be used in the session, but the first of | payload type numbers is given, this implies that all of these | |||
| these formats SHOULD be used as the default format for the | payload formats MAY be used in the session, and these payload | |||
| session. For dynamic payload type assignments the "a=rtpmap:" | formats are listed in order of preference, with the first format listed | |||
| attribute (see <xref target="attrs"/>) SHOULD be used to map from | being preferred. When multiple payload formats are listed, | |||
| an RTP payload type number to a media encoding name that | the first acceptable payload format | |||
| identifies the payload format. The "a=fmtp:" attribute MAY be used | from the beginning of the list <bcp14>SHOULD</bcp14> be used for the session. | |||
| to specify format parameters (see <xref target="attrs"/>).</t> | ||||
| <t>If the <proto> sub-field is "udp" the <fmt> | For dynamic payload type assignments, the "a=rtpmap:" | |||
| sub-fields MUST reference a media type describing the format under | attribute (see <xref target="rtpmap" format="default"/>) <bcp14>SHOU | |||
| LD</bcp14> be used to map from | ||||
| an RTP payload type number to a media encoding name that | ||||
| identifies the payload format. The "a=fmtp:" attribute <bcp14>MAY</b | ||||
| cp14> be used | ||||
| to specify format parameters (see <xref target="fmtp" format="defaul | ||||
| t"/>).</t> | ||||
| <t>If the <proto> subfield is "udp", the <fmt> | ||||
| subfields <bcp14>MUST</bcp14> reference a media type describing the | ||||
| format under | ||||
| the "audio", "video", "text", "application", or "message" | the "audio", "video", "text", "application", or "message" | |||
| top-level media types. The media type registration SHOULD define | top-level media types. The media type registration <bcp14>SHOULD</bc p14> define | |||
| the packet format for use with UDP transport.</t> | the packet format for use with UDP transport.</t> | |||
| <t>For media using other transport protocols, the <fmt> | ||||
| <t>For media using other transport protocols, the <fmt> | subfield is protocol specific. Rules for interpretation of the | |||
| sub-field is protocol specific. Rules for interpretation of the | <fmt> subfield <bcp14>MUST</bcp14> be defined when registering | |||
| <fmt> sub-field MUST be defined when registering new | new | |||
| protocols (see Section 8.2.2).</t> | protocols (see <xref target="MediaTypes"/>).</t> | |||
| <t><xref target="RFC4855" section="3" sectionFormat="of" format="defau | ||||
| <t>Section 3 of <xref target="RFC4855"/> states that the payload | lt"/> states that the payload | |||
| format (encoding) names defined in the RTP Profile are commonly | format (encoding) names defined in the RTP profile are commonly | |||
| shown in upper case, while media subtype names are commonly shown | shown in upper case, while media subtype names are commonly shown | |||
| in lower case. It also states that both of these names are | in lower case. It also states that both of these names are | |||
| case-insensitive in both places, similar to parameter names which | case-insensitive in both places, similar to parameter names which | |||
| are case-insensitive both in media type strings and in the default | are case-insensitive both in media type strings and in the default | |||
| mapping to the SDP a=fmtp attribute.</t> | mapping to the SDP "a=fmtp:" attribute.</t> | |||
| </list></t> | </dd> | |||
| </dl> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="attrs" numbered="true" toc="default"> | ||||
| <section anchor="attrs" title="SDP Attributes"> | <name>SDP Attributes</name> | |||
| <t>The following attributes are defined. Since application writers may | <t>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 <xref target="At | |||
| 8.2.4. Syntax is provided using ABNF <xref target="RFC7405"/> with some of | tributeNames" format="default"/>. | |||
| the rules defined further in Section 9.</t> | Syntax is provided using ABNF <xref target="RFC7405" format="default"/> | |||
| with some of the rules defined further in <xref target="abnf" format="defa | ||||
| <section title="cat (category)"> | ult"/>.</t> | |||
| <t>Name: cat</t> | <section anchor="cat" numbered="true" toc="default"> | |||
| <name>cat (Category)</name> | ||||
| <t>Value: cat-value</t> | <dl> | |||
| <dt>Name:</dt><dd>cat</dd> | ||||
| <t>Usage Level: session</t> | <dt>Value:</dt><dd>cat-value</dd> | |||
| <dt>Usage Level:</dt><dd>session</dd> | ||||
| <t>Charset Dependent: no</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <figure> | <t>Syntax:</t> | |||
| <preamble>Syntax:</preamble> | <sourcecode type="abnf"><![CDATA[ | |||
| <artwork> | ||||
| cat-value = category | cat-value = category | |||
| category = non-ws-string | category = non-ws-string | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=cat:foo.bar | a=cat:foo.bar | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This attribute gives the dot-separated hierarchical category of the | <t>This attribute gives the dot-separated hierarchical category of the | |||
| session. This is to enable a receiver to filter unwanted sessions by | session. This is to enable a receiver to filter unwanted sessions by | |||
| category. There is no central registry of categories. This attribute | category. There is no central registry of categories. This attribute | |||
| is obsolete and SHOULD NOT be used. It SHOULD be ignored if received.</t > | is obsolete and <bcp14>SHOULD NOT</bcp14> be used. It <bcp14>SHOULD</bcp 14> be ignored if received.</t> | |||
| </section> | </section> | |||
| <section anchor="keywds" numbered="true" toc="default"> | ||||
| <section title="keywds (keywords)"> | <name>keywds (Keywords)</name> | |||
| <t>Name: keywds</t> | <dl> | |||
| <dt>Name:</dt><dd>keywds</dd> | ||||
| <t>Value: keywds-value</t> | <dt>Value:</dt><dd>keywds-value</dd> | |||
| <dt>Usage Level:</dt><dd>session</dd> | ||||
| <t>Usage Level: session</t> | <dt>Charset Dependent:</dt><dd>yes</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: yes</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| keywds-value = keywords | keywds-value = keywords | |||
| keywords = text | keywords = text | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=keywds:SDP session description protocol | a=keywds:SDP session description protocol | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Like the "a=cat:" attribute, this was intended to assist identifying | |||
| wanted | ||||
| <t>Like the cat attribute, this was intended to assist identifying wante | sessions at the receiver, and to allow a receiver to select interesting | |||
| d | sessions based on keywords describing the purpose of the session; howeve | |||
| sessions at the receiver. This allows a receiver to select interesting | r, there | |||
| sessions based on keywords describing the purpose of the session; there | ||||
| is no central registry of keywords. Its value should be interpreted in | is no central registry of keywords. Its value should be interpreted in | |||
| the charset specified for the session description if one is specified, | the charset specified for the session description if one is specified, | |||
| or by default in ISO 10646/UTF-8. This attribute is obsolete and | or by default in ISO 10646/UTF-8. This attribute is obsolete and | |||
| SHOULD NOT be used. It SHOULD be ignored if received.</t> | <bcp14>SHOULD NOT</bcp14> be used. It <bcp14>SHOULD</bcp14> be ignored if received.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="tool"> | <name>tool</name> | |||
| <t>Name: tool</t> | <dl> | |||
| <dt>Name:</dt><dd>tool</dd> | ||||
| <t>Value: tool-value</t> | <dt>Value:</dt><dd>tool-value</dd> | |||
| <dt>Usage Level:</dt><dd>session</dd> | ||||
| <t>Usage Level: session</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| tool-value = tool-name-and-version | tool-value = tool-name-and-version | |||
| tool-name-and-version = text | tool-name-and-version = text | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=tool:foobar V3.2 | a=tool:foobar V3.2 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This gives the name and version number of the tool used to create | <t>This gives the name and version number of the tool used to create | |||
| the session description.</t> | the session description.</t> | |||
| </section> | </section> | |||
| <section anchor="ptime" numbered="true" toc="default"> | ||||
| <section title="ptime (packet time)"> | <name>ptime (Packet Time)</name> | |||
| <t>Name: ptime</t> | <dl> | |||
| <dt>Name:</dt><dd>ptime</dd> | ||||
| <t>Value: ptime-value</t> | <dt>Value:</dt><dd>ptime-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| ptime-value = non-zero-int-or-real | ptime-value = non-zero-int-or-real | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=ptime:20 | a=ptime:20 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This gives the length of time in milliseconds represented by the | <t>This gives the length of time in milliseconds represented by the | |||
| media in a packet. This is probably only meaningful for audio data, | media in a packet. This is probably only meaningful for audio data, | |||
| but may be used with other media types if it makes sense. It should | but may be used with other media types if it makes sense. It should | |||
| not be necessary to know ptime to decode RTP or vat audio, and it is | not be necessary to know "a=ptime:" to decode RTP or vat audio, and it i s | |||
| intended as a recommendation for the encoding/packetization of | intended as a recommendation for the encoding/packetization of | |||
| audio.</t> | audio.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="maxptime (maximum packet time)"> | <name>maxptime (Maximum Packet Time)</name> | |||
| <t>Name: maxptime</t> | <dl> | |||
| <dt>Name:</dt><dd>maxptime</dd> | ||||
| <t>Value: maxptime-value</t> | <dt>Value:</dt><dd>maxptime-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| maxptime-value = non-zero-int-or-real | maxptime-value = non-zero-int-or-real | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=maxptime:20 | a=maxptime:20 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This gives the maximum amount of media that can be encapsulated in | <t>This gives the maximum amount of media that can be encapsulated in | |||
| each packet, expressed as time in milliseconds. The time SHALL be | each packet, expressed as time in milliseconds. The time <bcp14>SHALL</b cp14> be | |||
| calculated as the sum of the time the media present in the packet | calculated as the sum of the time the media present in the packet | |||
| represents. For frame-based codecs, the time SHOULD be an integer | represents. For frame-based codecs, the time <bcp14>SHOULD</bcp14> be an integer | |||
| multiple of the frame size. This attribute is probably only meaningful | multiple of the frame size. This attribute is probably only meaningful | |||
| for audio data, but may be used with other media types if it makes | for audio data, but may be used with other media types if it makes | |||
| sense. Note that this attribute was introduced after <xref | sense. Note that this attribute was introduced after <xref target="RFC23 | |||
| target="RFC2327"/>, and non-updated implementations will ignore this | 27" format="default"/>, | |||
| and implementations that have not been updated will ignore this | ||||
| attribute.</t> | attribute.</t> | |||
| </section> | </section> | |||
| <section anchor="rtpmap" numbered="true" toc="default"> | ||||
| <section title="rtpmap"> | <name>rtpmap</name> | |||
| <t>Name: rtpmap</t> | <dl> | |||
| <dt>Name:</dt><dd>rtpmap</dd> | ||||
| <t>Value: rtpmap-value</t> | <dt>Value:</dt><dd>rtpmap-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| rtpmap-value = payload-type SP encoding-name | rtpmap-value = payload-type SP encoding-name | |||
| "/" clock-rate [ "/" encoding-params ] | "/" clock-rate [ "/" encoding-params ] | |||
| payload-type = zero-based-integer | payload-type = zero-based-integer | |||
| encoding-name = token | encoding-name = token | |||
| clock-rate = integer | clock-rate = integer | |||
| encoding-params = channels | encoding-params = channels | |||
| channels = integer | channels = integer | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This attribute maps from an RTP payload type number (as used in an | <t>This attribute maps from an RTP payload type number (as used in an | |||
| "m=" line) to an encoding name denoting the payload format to be used. | "m=" line) to an encoding name denoting the payload format to be used. | |||
| It also provides information on the clock rate and encoding | It also provides information on the clock rate and encoding | |||
| parameters. Note that the payload type number is indicated in a 7-bit | parameters. Note that the payload type number is indicated in a 7-bit | |||
| field, limiting the values to inclusively between 0 and 127.</t> | field, limiting the values to inclusively between 0 and 127.</t> | |||
| <t>Although an RTP profile can make static assignments of payload type | <t>Although an RTP profile can make static assignments of payload type | |||
| numbers to payload formats, it is more common for that assignment to | numbers to payload formats, it is more common for that assignment to | |||
| be done dynamically using "a=rtpmap:" attributes. As an example of a | be done dynamically using "a=rtpmap:" attributes. As an example of a | |||
| static payload type, consider u-law PCM coded single-channel audio | static payload type, consider u-law PCM encoded single-channel audio | |||
| sampled at 8 kHz. This is completely defined in the RTP Audio/Video | sampled at 8 kHz. This is completely defined in the RTP audio/video | |||
| profile as payload type 0, so there is no need for an "a=rtpmap:" | profile as payload type 0, so there is no need for an "a=rtpmap:" | |||
| attribute, and the media for such a stream sent to UDP port 49232 can | attribute, and the media for such a stream sent to UDP port 49232 can | |||
| be specified as: <figure> | be specified as: </t> | |||
| <artwork> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| m=audio 49232 RTP/AVP 0 | m=audio 49232 RTP/AVP 0 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | ||||
| <t>An example of a dynamic payload type is 16-bit linear encoded | <t>An example of a dynamic payload type is 16-bit linear encoded | |||
| stereo audio sampled at 16 kHz. If we wish to use the dynamic RTP/AVP | stereo audio sampled at 16 kHz. If we wish to use the dynamic RTP/AVP | |||
| payload type 98 for this stream, additional information is required to | payload type 98 for this stream, additional information is required to | |||
| decode it: <figure> | decode it: </t> | |||
| <artwork> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| m=audio 49232 RTP/AVP 98 | m=audio 49232 RTP/AVP 98 | |||
| a=rtpmap:98 L16/16000/2 | a=rtpmap:98 L16/16000/2 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <t>Up to one "a=rtpmap:" attribute can be defined for each media format | |||
| specified. Thus, we might have the following: </t> | ||||
| <t>Up to one rtpmap attribute can be defined for each media format | <sourcecode name="" type="sdp"><![CDATA[ | |||
| specified. Thus, we might have the following: <figure> | ||||
| <artwork> | ||||
| 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 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <t>RTP profiles that specify the use of dynamic payload types <bcp14>MUS | |||
| T</bcp14> | ||||
| <t>RTP profiles that specify the use of dynamic payload types MUST | ||||
| define the set of valid encoding names and/or a means to register | define the set of valid encoding names and/or a means to register | |||
| encoding names if that profile is to be used with SDP. The "RTP/AVP" | encoding names if that profile is to be used with SDP. The "RTP/AVP" | |||
| and "RTP/SAVP" profiles use media subtypes for encoding names, under | and "RTP/SAVP" profiles use media subtypes for encoding names, under | |||
| the top-level media type denoted in the "m=" line. In the example | the top-level media type denoted in the "m=" line. In the example | |||
| above, the media types are "audio/L8" and "audio/L16".</t> | above, the media types are "audio/L8" and "audio/L16".</t> | |||
| <t>For audio streams, encoding-params indicates the number | <t>For audio streams, encoding-params indicates the number | |||
| of audio channels. This parameter is OPTIONAL and may be omitted if | of audio channels. This parameter is <bcp14>OPTIONAL</bcp14> and may be omitted if | |||
| the number of channels is one, provided that no additional parameters | the number of channels is one, provided that no additional parameters | |||
| are needed.</t> | are needed.</t> | |||
| <t>For video streams, no encoding parameters are currently | <t>For video streams, no encoding parameters are currently | |||
| specified.</t> | specified.</t> | |||
| <t>Additional encoding parameters <bcp14>MAY</bcp14> be defined in the f | ||||
| <t>Additional encoding parameters MAY be defined in the future, but | uture, but | |||
| codec-specific parameters SHOULD NOT be added. Parameters added to an | codec-specific parameters <bcp14>SHOULD NOT</bcp14> be added. Parameters | |||
| "a=rtpmap:" attribute SHOULD only be those required for a session | added to an | |||
| "a=rtpmap:" attribute <bcp14>SHOULD</bcp14> only be those required for a | ||||
| session | ||||
| directory to make the choice of appropriate media to participate in a | directory to make the choice of appropriate media to participate in a | |||
| session. Codec-specific parameters should be added in other attributes | session. Codec-specific parameters should be added in other attributes | |||
| (for example, "a=fmtp:").</t> | (for example, "a=fmtp:").</t> | |||
| <t>Note: RTP audio formats typically do not include information about | <t>Note: RTP audio formats typically do not include information about | |||
| the number of samples per packet. If a non-default (as defined in the | the number of samples per packet. If a non-default (as defined in the | |||
| RTP Audio/Video Profile <xref | RTP Audio/Video Profile <xref target="RFC3551" format="default"/>) packe | |||
| target="RFC3551"/>) packetization is required, the "ptime" | tization is required, the "a=ptime:" | |||
| attribute is used as given above.</t> | attribute is used as given in <xref target="ptime" format="default"/>.</ | |||
| t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Media Direction Attributes"> | <name>Media Direction Attributes</name> | |||
| <t>At most one occurrence of recvonly, sendrecv, sendonly, or inactive M | <t>At most one occurrence of "a=recvonly", "a=sendrecv", "a=sendonly", | |||
| AY appear at | or "a=inactive" <bcp14>MAY</bcp14> appear at | |||
| session level, and at most one MAY appear in each media description.</t> | session level, and at most one <bcp14>MAY</bcp14> appear in each media d | |||
| escription.</t> | ||||
| <t>If any one of these appears in a media description then it applies fo | <t>If any one of these appears in a media description, then it applies f | |||
| r | or | |||
| that media description. If none appear in a media description then the o | that media description. If none appears in a media description, then the | |||
| ne | one | |||
| from session level, if any, applies to that media description.</t> | from session level, if any, applies to that media description.</t> | |||
| <t>If none of the media direction attributes is present at either | <t>If none of the media direction attributes is present at either | |||
| session level or media level, "sendrecv" SHOULD be assumed as the | session level or media level, "a=sendrecv" <bcp14>SHOULD</bcp14> be assu med as the | |||
| default.</t> | default.</t> | |||
| <t>Within the following SDP example, the "a=sendrecv" attribute applies | ||||
| <t>Within the following SDP example, the "sendrecv" attribute applies | to the first audio media and the "a=inactive" attribute applies to the o | |||
| to the first audio media and the "inactive" attribute applies to the oth | thers.</t> | |||
| ers.</t> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| <t><figure> | ||||
| <artwork> | ||||
| v=0 | v=0 | |||
| o=jdoe 3724395000 3724395001 IN IP6 2001:db8::1 | o=jdoe 3724395000 3724395001 IN IP6 2001:db8::1 | |||
| s=- | s=- | |||
| c=IN IP6 2001:db8::1 | c=IN IP6 2001:db8::1 | |||
| t=0 0 | t=0 0 | |||
| a=inactive | a=inactive | |||
| m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
| a=sendrecv | a=sendrecv | |||
| m=audio 49180 RTP/AVP 0 | m=audio 49180 RTP/AVP 0 | |||
| m=video 51372 RTP/AVP 99 | m=video 51372 RTP/AVP 99 | |||
| a=rtpmap:99 h263-1998/90000 | a=rtpmap:99 h263-1998/90000 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <section numbered="true" toc="default"> | |||
| <name>recvonly (Receive-Only)</name> | ||||
| <section title="recvonly (receive-only)"> | <dl> | |||
| <t>Name: recvonly</t> | <dt>Name:</dt><dd>recvonly</dd> | |||
| <dt>Value:</dt><dd></dd> | ||||
| <t>Value:</t> | <dt>Usage Level:</dt><dd>session, media</dd> | |||
| <dt>Charset Dependent:</dt><dd>no</dd> | ||||
| <t>Usage Level: session, media</t> | </dl> | |||
| <t>Example:</t> | ||||
| <t>Charset Dependent: no</t> | <sourcecode name="" type="sdp"><![CDATA[ | |||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=recvonly | a=recvonly | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This specifies that the tools should be started in receive-only | <t>This specifies that the tools should be started in receive-only | |||
| mode where applicable. Note that recvonly applies to the media only, | mode where applicable. Note that receive-only mode applies to the medi a only, | |||
| not to any associated control protocol. | not to any associated control protocol. | |||
| An RTP-based system in recvonly mode MUST still send RTCP packets | An RTP-based system in receive-only mode <bcp14>MUST</bcp14> still sen | |||
| as described in <xref target="RFC3550"/> Section 6.</t> | d RTCP packets | |||
| as described in <xref target="RFC3550" section="6" sectionFormat="comm | ||||
| a" format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="sendrecv (send-receive)"> | <name>sendrecv (Send-Receive)</name> | |||
| <t>Name: sendrecv</t> | <dl> | |||
| <dt>Name:</dt><dd>sendrecv</dd> | ||||
| <t>Value:</t> | <dt>Value:</dt><dd></dd> | |||
| <dt>Usage Level:</dt><dd>session, media</dd> | ||||
| <t>Usage Level: session, media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=sendrecv | a=sendrecv | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This specifies that the tools should be started in send and | <t>This specifies that the tools should be started in send and | |||
| receive mode. This is necessary for interactive multimedia | receive mode. This is necessary for interactive multimedia | |||
| conferences with tools that default to receive-only mode.</t> | conferences with tools that default to receive-only mode.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="sendonly (send-only)"> | <name>sendonly (Send-Only)</name> | |||
| <t>Name: sendonly</t> | <dl> | |||
| <dt>Name:</dt><dd>sendonly</dd> | ||||
| <t>Value:</t> | <dt>Value:</dt><dd></dd> | |||
| <dt>Usage Level:</dt><dd>session, media</dd> | ||||
| <t>Usage Level: session, media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=sendonly | a=sendonly | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This specifies that the tools should be started in send-only | <t>This specifies that the tools should be started in send-only | |||
| mode. An example may be where a different unicast address is to be | mode. An example may be where a different unicast address is to be | |||
| used for a traffic destination than for a traffic source. In such a | used for a traffic destination than for a traffic source. In such a | |||
| case, two media descriptions may be used, one sendonly and one | case, two media descriptions may be used, one in send-only mode and on | |||
| recvonly. Note that sendonly applies only to the media, and any | e | |||
| associated control protocol (e.g., RTCP) SHOULD still be received | in receive-vonly mode. Note that send-only mode applies only to the me | |||
| dia, and any | ||||
| associated control protocol (e.g., RTCP) <bcp14>SHOULD</bcp14> still b | ||||
| e received | ||||
| and processed as normal.</t> | and processed as normal.</t> | |||
| </section> | </section> | |||
| <section anchor="inactive" numbered="true" toc="default"> | ||||
| <section title="inactive"> | <name>inactive</name> | |||
| <t>Name: inactive</t> | <dl> | |||
| <dt>Name:</dt><dd>inactive</dd> | ||||
| <t>Value:</t> | <dt>Value:</dt><dd></dd> | |||
| <dt>Usage Level:</dt><dd>session, media</dd> | ||||
| <t>Usage Level: session, media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=inactive | a=inactive | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This specifies that the tools should be started in inactive mode. | <t>This specifies that the tools should be started in inactive mode. | |||
| This is necessary for interactive multimedia conferences where users | This is necessary for interactive multimedia conferences where users | |||
| can put other users on hold. No media is sent over an inactive media | can put other users on hold. No media is sent over an inactive media | |||
| stream. Note that an RTP-based system MUST still send RTCP (if RTCP | stream. Note that an RTP-based system <bcp14>MUST</bcp14> still send R | |||
| is used), even if started inactive.</t> | TCP (if RTCP | |||
| is used), even if started in inactive mode.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="orient (orientation)"> | <name>orient (Orientation)</name> | |||
| <t>Name: orient</t> | <dl> | |||
| <dt>Name:</dt><dd>orient</dd> | ||||
| <t>Value: orient-value</t> | <dt>Value:</dt><dd>orient-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| orient-value = portrait / landscape / seascape | orient-value = portrait / landscape / seascape | |||
| portrait = %s"portrait" | portrait = %s"portrait" | |||
| landscape = %s"landscape" | landscape = %s"landscape" | |||
| seascape = %s"seascape" | seascape = %s"seascape" | |||
| ; NOTE: These names are case-sensitive. | ; NOTE: These names are case-sensitive. | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=orient:portrait | a=orient:portrait | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>Normally this is only used for a whiteboard or presentation tool. | <t>Normally this is only used for a whiteboard or presentation tool. | |||
| It specifies the orientation of the workspace on the screen. | It specifies the orientation of the workspace on the screen. | |||
| Permitted values are "portrait", "landscape", and "seascape" | Permitted values are "portrait", "landscape", and "seascape" | |||
| (upside-down landscape).</t> | (upside-down landscape).</t> | |||
| </section> | </section> | |||
| <section anchor="type" numbered="true" toc="default"> | ||||
| <section title="type (conference type)"> | <name>type (Conference Type)</name> | |||
| <t>Name: type</t> | <dl> | |||
| <dt>Name:</dt><dd>type</dd> | ||||
| <t>Value: type-value</t> | <dt>Value:</dt><dd>type-value</dd> | |||
| <dt>Usage Level:</dt><dd>session</dd> | ||||
| <t>Usage Level: session</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | type-value = conference-type | |||
| <preamble>Syntax:</preamble> | conference-type = broadcast / meeting / moderated / test / | |||
| H332 | ||||
| <artwork> | broadcast = %s"broadcast" | |||
| type-value = conference-type | meeting = %s"meeting" | |||
| conference-type = broadcast / meeting / moderated / test / | moderated = %s"moderated" | |||
| H332 | test = %s"test" | |||
| broadcast = %s"broadcast" | H332 = %s"H332" | |||
| meeting = %s"meeting" | ; NOTE: These names are case-sensitive. | |||
| moderated = %s"moderated" | ]]></sourcecode> | |||
| test = %s"test" | <t>Example:</t> | |||
| H332 = %s"H332" | <sourcecode name="" type="sdp"><![CDATA[ | |||
| ; NOTE: These names are case-sensitive. | ||||
| </artwork> | ||||
| </figure> | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=type:moderated | a=type:moderated | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This specifies the type of the multimedia conference. | <t>This specifies the type of the multimedia conference. | |||
| Allowed values are "broadcast", "meeting", "moderated", "test", and "H33 2". | Allowed values are "broadcast", "meeting", "moderated", "test", and "H33 2". | |||
| These values have implications for other options that are likely to be a ppropriate: | These values have implications for other options that are likely to be a ppropriate: | |||
| <list style="symbols"> | </t> | |||
| <t>When "a=type:broadcast" is specified, "a=recvonly" is probably | <ul spacing="normal"> | |||
| appropriate for those connecting.</t> | <li>When "a=type:broadcast" is specified, "a=recvonly" is probably | |||
| <t>When "a=type:meeting" is specified, "a=sendrecv" is likely to b | appropriate for those connecting.</li> | |||
| e appropriate.</t> | <li>When "a=type:meeting" is specified, "a=sendrecv" is likely to be a | |||
| <t>"a=type:moderated" suggests the use of a floor control tool and | ppropriate.</li> | |||
| <li>"a=type:moderated" suggests the use of a floor control tool and | ||||
| that the media tools be started so as to mute new sites joining the | that the media tools be started so as to mute new sites joining the | |||
| multimedia conference.</t> | multimedia conference.</li> | |||
| <t>Specifying "a=type:H332" indicates that this loosely | <li>Specifying "a=type:H332" indicates that this loosely | |||
| coupled session is part of an H.332 session as defined in the I TU | coupled session is part of an H.332 session as defined in the I TU | |||
| H.332 specification <xref target="ITU.H332.1998"/>. Media tools | H.332 specification <xref target="ITU.H332.1998" format="defaul | |||
| should | t"/>. Media tools should | |||
| be started using "a=recvonly".</t> | be started using "a=recvonly".</li> | |||
| <t>Specifying "a=type:test" is suggested as a hint that, | <li>Specifying "a=type:test" is suggested as a hint that, | |||
| unless explicitly requested otherwise, receivers can safely avo id | unless explicitly requested otherwise, receivers can safely avo id | |||
| displaying this session description to users.</t> | displaying this session description to users.</li> | |||
| </list> | </ul> | |||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="charset" numbered="true" toc="default"> | ||||
| <section title="charset (character set)"> | <name>charset (Character Set)</name> | |||
| <t>Name: charset</t> | <dl> | |||
| <dt>Name:</dt><dd>charset</dd> | ||||
| <t>Value: charset-value</t> | <dt>Value:</dt><dd>charset-value</dd> | |||
| <dt>Usage Level:</dt><dd>session</dd> | ||||
| <t>Usage Level: session</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | charset-value = <defined in [RFC2978]> | |||
| <preamble>Syntax:</preamble> | ]]></sourcecode> | |||
| <artwork> | ||||
| charset-value = <defined in [RFC2978]> | ||||
| </artwork> | ||||
| </figure> | ||||
| <t>This specifies the character set to be used to display the session | <t>This specifies the character set to be used to display the session | |||
| name and information data. By default, the ISO-10646 character set in | name and information data. By default, the ISO-10646 character set in | |||
| UTF-8 encoding is used. If a more compact representation is required, | UTF-8 encoding is used. If a more compact representation is required, | |||
| other character sets may be used. For example, the ISO 8859-1 is | other character sets may be used. For example, the ISO 8859-1 is | |||
| specified with the following SDP attribute:</t> | specified with the following SDP attribute:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <t><figure> | ||||
| <artwork> | ||||
| a=charset:ISO-8859-1 | a=charset:ISO-8859-1 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure></t> | <t>The charset specified <bcp14>MUST</bcp14> be one of those registered | |||
| in the IANA | ||||
| <t>The charset specified MUST be one of those registered in the IANA | ||||
| Character Sets registry | Character Sets registry | |||
| (http://www.iana.org/assignments/character-sets), such as ISO-8859-1. | (<eref target="http://www.iana.org/assignments/character-sets"/>), such | |||
| The character set identifier is a string that MUST be compared | as ISO-8859-1. | |||
| The character set identifier is a string that <bcp14>MUST</bcp14> be com | ||||
| pared | ||||
| against identifiers from the "Name" or "Preferred MIME Name" field of | against identifiers from the "Name" or "Preferred MIME Name" field of | |||
| the registry using a case-insensitive comparison. If the identifier is | the registry using a case-insensitive comparison. If the identifier is | |||
| not recognized or not supported, all strings that are affected by it | not recognized or not supported, all strings that are affected by it | |||
| SHOULD be regarded as octet strings.</t> | <bcp14>SHOULD</bcp14> be regarded as octet strings.</t> | |||
| <t>Charset-dependent fields <bcp14>MUST</bcp14> contain only sequences o | ||||
| <t>Charset-dependent fields MUST contain only sequences of bytes that ar | f bytes that are | |||
| e | ||||
| valid according to the definition of the selected character set. | valid according to the definition of the selected character set. | |||
| Furthermore, charset-dependent fields MUST NOT contain the bytes 0x00 (N ul), | Furthermore, charset-dependent fields <bcp14>MUST NOT</bcp14> contain th e bytes 0x00 (Nul), | |||
| 0x0A (LF), and 0x0d (CR).</t> | 0x0A (LF), and 0x0d (CR).</t> | |||
| </section> | </section> | |||
| <section anchor="sdplang" numbered="true" toc="default"> | ||||
| <section title="sdplang (SDP language)"> | <name>sdplang (SDP Language)</name> | |||
| <t>Name: sdplang</t> | <dl> | |||
| <dt>Name:</dt><dd>sdplang</dd> | ||||
| <t>Value: sdplang-value</t> | <dt>Value:</dt><dd>sdplang-value</dd> | |||
| <dt>Usage Level:</dt><dd>session, media</dd> | ||||
| <t>Usage Level: session, media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | sdplang-value = Language-Tag | |||
| <preamble>Syntax:</preamble> | ; Language-Tag defined in RFC 5646 | |||
| ]]></sourcecode> | ||||
| <artwork> | <t>Example:</t> | |||
| sdplang-value = Language-Tag | <sourcecode name="" type="sdp"><![CDATA[ | |||
| ; Language-Tag defined in RFC5646 | ||||
| </artwork> | ||||
| </figure> | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=sdplang:fr | a=sdplang:fr | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Multiple "a=sdplang:" attributes can be provided either at session or | |||
| <t>Multiple sdplang attributes can be provided either at session or | ||||
| media level if the session description or media use multiple | media level if the session description or media use multiple | |||
| languages.</t> | languages.</t> | |||
| <t>As a session-level attribute, it specifies the language for the | <t>As a session-level attribute, it specifies the language for the | |||
| session description (not the language of the media). As a media-level | session description (not the language of the media). 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 (again not the language | information-field associated with that media (again not the language | |||
| of the media), overriding any sdplang attributes specified at | of the media), overriding any "a=sdplang:" attributes specified at | |||
| session level.</t> | session level.</t> | |||
| <t>In general, sending session descriptions consisting of multiple | <t>In general, sending session descriptions consisting of multiple | |||
| languages is discouraged. Instead, multiple sesssion descriptions SHOULD be | languages is discouraged. Instead, multiple session descriptions <bcp14> SHOULD</bcp14> be | |||
| sent describing the session, one in each language. However, this is | sent describing the session, one in each language. However, this is | |||
| not possible with all transport mechanisms, and so multiple sdplang | not possible with all transport mechanisms, and so multiple "a=sdplang:" | |||
| attributes are allowed although NOT RECOMMENDED.</t> | attributes are allowed although <bcp14>NOT RECOMMENDED</bcp14>.</t> | |||
| <t>The "a=sdplang:" attribute value must be a single language tag | ||||
| <t>The "sdplang" attribute value must be a single <xref | <xref target="RFC5646" format="default"/>. An "a=sdplang:" attribute | |||
| target="RFC5646"/> language tag. An "sdplang" attribute | <bcp14>SHOULD</bcp14> be specified when a session is distributed with su | |||
| SHOULD be specified when a session is distributed with sufficient | fficient | |||
| scope to cross geographic boundaries, where the language of recipients | scope to cross geographic boundaries, where the language of recipients | |||
| cannot be assumed, or where the session is in a different language | cannot be assumed, or where the session is in a different language | |||
| from the locally assumed norm.</t> | from the locally assumed norm.</t> | |||
| </section> | </section> | |||
| <section anchor="lang" numbered="true" toc="default"> | ||||
| <section title="lang (language)"> | <name>lang (Language)</name> | |||
| <t>Name: lang</t> | <dl> | |||
| <dt>Name:</dt><dd>lang</dd> | ||||
| <t>Value: lang-value</t> | <dt>Value:</dt><dd>lang-value</dd> | |||
| <dt>Usage Level:</dt><dd>session, media</dd> | ||||
| <t>Usage Level: session, media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| lang-value = Language-Tag | lang-value = Language-Tag | |||
| ; Language-Tag defined in RFC5646 | ; Language-Tag defined in RFC 5646 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=lang:de | a=lang:de | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Multiple "a=lang:" attributes can be provided either at session or me | |||
| dia | ||||
| <t>Multiple lang attributes can be provided either at session or media | ||||
| level if the session or media has capabilities in more than one | level if the session or media has capabilities in more than one | |||
| language, in which case the order of the attributes indicates the | language, in which case the order of the attributes indicates the | |||
| order of preference of the various languages in the session or media, | order of preference of the various languages in the session or media, | |||
| from most preferred to least preferred.</t> | from most preferred to least preferred.</t> | |||
| <t>As a session-level attribute, "a=lang:" specifies a language capabili | ||||
| <t>As a session-level attribute, lang specifies a language capability | ty | |||
| for the session being described. As a media-level attribute, it | for the session being described. As a media-level attribute, it | |||
| specifies a language capability for that media, overriding any | specifies a language capability for that media, overriding any | |||
| session-level language(s) specified.</t> | session-level language(s) specified.</t> | |||
| <t>The "a=lang:" attribute value must be a single <xref target="RFC5646" | ||||
| <t>The "lang" attribute value must be a single <xref | format="default"/> | |||
| target="RFC5646"/> language tag. A "lang" attribute SHOULD | language tag. An "a=lang:" attribute <bcp14>SHOULD</bcp14> | |||
| be specified when a session is of sufficient scope to cross geographic | be specified when a session is of sufficient scope to cross geographic | |||
| boundaries where the language of participants cannot be assumed, or | boundaries where the language of participants cannot be assumed, or | |||
| where the session has capabilities in languages different from the | where the session has capabilities in languages different from the | |||
| locally assumed norm.</t> | locally assumed norm.</t> | |||
| <t>The "a=lang:" attribute is supposed to be used for setting the initia | ||||
| <t>The "lang" attribute is supposed to be used for setting the initial | l | |||
| language(s) used in the session. Events during the session may influence which language(s) are used, and the participants are not strictly bound to only use th e declared languages.</t> | language(s) used in the session. Events during the session may influence which language(s) are used, and the participants are not strictly bound to only use th e declared languages.</t> | |||
| <t>Most real-time use cases start with just one language used, while oth | ||||
| <t>Most real-time use cases start with just one language used, while other case | er cases involve a range of languages, e.g., an interpreted or subtitled session | |||
| s involve a range of languages, e.g. an interpreted or subtitled session. When m | . When more than one "a=lang:" attribute is specified, | |||
| ore than one 'lang' attribute is specified, the "lang" attribute itself does not | the "a=lang:" attribute itself does not provide any information about multiple l | |||
| provide any information about multiple languages being intended to be used duri | anguages being intended to be used during the session, or if the intention is to | |||
| ng the session, or if the intention is to only select one of the languages. If n | only select one of the languages. If needed, a new attribute can be defined and | |||
| eeded, a new attribute can be defined and used to indicate such intentions. With | used to indicate such intentions. Without such semantics, it is assumed that fo | |||
| out such semantics, it is assumed that for a negotiated session one of the decla | r a negotiated session one of the declared languages will be selected and used.< | |||
| red languages will be selected and used.</t> | /t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="framerate (frame rate)"> | <name>framerate (Frame Rate)</name> | |||
| <t>Name: framerate</t> | <dl> | |||
| <dt>Name:</dt><dd>framerate</dd> | ||||
| <t>Value: framerate-value</t> | <dt>Value:</dt><dd>framerate-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| framerate-value = non-zero-int-or-real | framerate-value = non-zero-int-or-real | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=framerate:60 | a=framerate:60 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This gives the maximum video frame rate in frames/sec. It is | <t>This gives the maximum video frame rate in frames/sec. It is | |||
| intended as a recommendation for the encoding of video data. Decimal | intended as a recommendation for the encoding of video data. Decimal | |||
| representations of fractional values are allowed. It is defined only | representations of fractional values are allowed. It is defined only | |||
| for video media.</t> | for video media.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="quality"> | <name>quality</name> | |||
| <t>Name: quality</t> | <dl> | |||
| <dt>Name:</dt><dd>quality</dd> | ||||
| <t>Value: quality-value</t> | <dt>Value:</dt><dd>quality-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| quality-value = zero-based-integer | quality-value = zero-based-integer | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=quality:10 | a=quality:10 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This gives a suggestion for the quality of the encoding as an | <t>This gives a suggestion for the quality of the encoding as an | |||
| integer value. The intention of the quality attribute for video is to | integer value. The intention of the quality attribute for video is to | |||
| specify a non-default trade-off between frame-rate and still-image | specify a non-default trade-off between frame-rate and still-image | |||
| quality. For video, the value is in the range 0 to 10, with the | quality. For video, the value is in the range 0 to 10, with the | |||
| following suggested meaning: <figure> | following suggested meaning: </t> | |||
| <artwork> | <table> | |||
| 10 - the best still-image quality the compression scheme | <name>Encoding Quality Values</name> | |||
| can give. | <tbody> | |||
| 5 - the default behavior given no quality suggestion. | <tr> | |||
| 0 - the worst still-image quality the codec designer | <td>10</td> | |||
| thinks is still usable. | <td>the best still-image quality the compression scheme can give. | |||
| </artwork> | </td> | |||
| </figure></t> | </tr> | |||
| <tr> | ||||
| <td>5</td> | ||||
| <td>the default behavior given no quality suggestion.</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>0</td> | ||||
| <td>the worst still-image quality the codec designer thinks is st | ||||
| ill usable.</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | </section> | |||
| <section anchor="fmtp" numbered="true" toc="default"> | ||||
| <section title="fmtp (format parameters)"> | <name>fmtp (Format Parameters)</name> | |||
| <t>Name: fmtp</t> | <dl> | |||
| <dt>Name:</dt><dd>fmtp</dd> | ||||
| <t>Value: fmtp-value</t> | <dt>Value:</dt><dd>fmtp-value</dd> | |||
| <dt>Usage Level:</dt><dd>media</dd> | ||||
| <t>Usage Level: media</t> | <dt>Charset Dependent:</dt><dd>no</dd> | |||
| </dl> | ||||
| <t>Charset Dependent: no</t> | <t>Syntax:</t> | |||
| <sourcecode type="abnf"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Syntax:</preamble> | ||||
| <artwork> | ||||
| fmtp-value = fmt SP format-specific-params | fmtp-value = fmt SP format-specific-params | |||
| format-specific-params = byte-string | format-specific-params = byte-string | |||
| ; Notes: | ; Notes: | |||
| ; - The format parameters are media type parameters and | ; - The format parameters are media type parameters and | |||
| ; need to reflect their syntax. | ; need to reflect their syntax. | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | <t>Example:</t> | |||
| <sourcecode name="" type="sdp"><![CDATA[ | ||||
| <figure> | ||||
| <preamble>Example:</preamble> | ||||
| <artwork> | ||||
| a=fmtp:96 profile-level-id=42e016;max-mbps=108000;max-fs=3600 | a=fmtp:96 profile-level-id=42e016;max-mbps=108000;max-fs=3600 | |||
| </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| <t>This attribute allows parameters that are specific to a particular | <t>This attribute allows parameters that are specific to a particular | |||
| format to be conveyed in a way that SDP does not have to understand | format to be conveyed in a way that SDP does not have to understand | |||
| them. The format must be one of the formats specified for the media. | them. The format must be one of the formats specified for the media. | |||
| Format-specific parameters, semicolon separated, may be any set of param eters required to be | Format-specific parameters, semicolon separated, may be any set of param eters required to be | |||
| conveyed by SDP and given unchanged to the media tool that will use | conveyed by SDP and given unchanged to the media tool that will use | |||
| this format. At most one instance of this attribute is allowed for | this format. At most one instance of this attribute is allowed for | |||
| each format.</t> | each format.</t> | |||
| <t>The "a=fmtp:" attribute may be used to specify parameters for any | ||||
| <t>The fmtp attribute may be used to specify parameters for any | ||||
| protocol and format that defines use of such parameters. | protocol and format that defines use of such parameters. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="security" numbered="true" toc="default"> | ||||
| <section anchor="security" title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t>SDP is frequently used with the <xref target="RFC3261">Session | <t>SDP is frequently used with the <xref target="RFC3261" format="default" | |||
| Initiation Protocol</xref> using the <xref target="RFC3264">offer/answer | >Session | |||
| Initiation Protocol</xref> using the <xref target="RFC3264" format="defaul | ||||
| t">offer/answer | ||||
| model</xref> to agree on parameters for unicast sessions. When used in | model</xref> to agree on parameters for unicast sessions. When used in | |||
| this manner, the security considerations of those protocols apply.</t> | this manner, the security considerations of those protocols apply.</t> | |||
| <t>SDP is a session description format that describes multimedia | <t>SDP is a session description format that describes multimedia | |||
| sessions. Entities receiving and acting upon an SDP message SHOULD be | sessions. Entities receiving and acting upon an SDP message <bcp14>SHOULD< /bcp14> be | |||
| aware that a session description cannot be trusted unless it has been | aware that a session description cannot be trusted unless it has been | |||
| obtained by an authenticated and integrity-protected transport protocol fr om a known and trusted | obtained by an authenticated and integrity-protected transport protocol fr om a known and trusted | |||
| source. Many different transport protocols may be used to distribute | source. Many different transport protocols may be used to distribute | |||
| session descriptions, and the nature of the authentication and integrity-p rotection will differ | session descriptions, and the nature of the authentication and integrity p rotection will differ | |||
| from transport to transport. For some transports, security features are | from transport to transport. For some transports, security features are | |||
| often not deployed. In case a session description has not been obtained | often not deployed. In case a session description has not been obtained | |||
| in a trusted manner, the endpoint SHOULD exercise care because, among | in a trusted manner, the endpoint <bcp14>SHOULD</bcp14> exercise care beca use, among | |||
| other attacks, the media sessions received may not be the intended ones, | 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 destination to where the media is sent may not be the expected one, a ny | |||
| of the parameters of the session may be incorrect, or the media security | of the parameters of the session may be incorrect, or the media security | |||
| may be compromised. It is up to the endpoint to make a sensible decision | may be compromised. It is up to the endpoint to make a sensible decision, | |||
| taking into account the security risks of the application and the user | taking into account the security risks of the application and the user | |||
| preferences - the endpoint may decide to ask the user whether or not to ac cept the | preferences - the endpoint may decide to ask the user whether or not to ac cept the | |||
| session.</t> | session.</t> | |||
| <t>On receiving a session description over an unauthenticated transport | <t>On receiving a session description over an unauthenticated transport | |||
| mechanism or from an untrusted party, software parsing the session descrip tion | mechanism or from an untrusted party, software parsing the session descrip tion | |||
| should take a few precautions. Similar concerns apply if integrity protect ion is not in place. | should take a few precautions. Similar concerns apply if integrity protect ion is not in place. | |||
| Session descriptions contain information | Session descriptions contain information | |||
| required to start software on the receiver's system. Software that | required to start software on the receiver's system. Software that | |||
| parses a session description MUST NOT be able to start other software | parses a session description <bcp14>MUST NOT</bcp14> be able to start othe r software | |||
| except that which is specifically configured as appropriate software to | except that which is specifically configured as appropriate software to | |||
| participate in multimedia sessions. It is normally considered | participate in multimedia sessions. It is normally considered | |||
| inappropriate for software parsing a session description to start, on a | inappropriate for software parsing a session description to start, on a | |||
| user's system, software that is appropriate to participate in multimedia | user's system, software that is appropriate to participate in multimedia | |||
| sessions, without the user first being informed that such software will | sessions, without the user first being informed that such software will | |||
| be started and giving the user's consent. Thus, a session description | be started and giving the user's consent. Thus, a session description | |||
| arriving by session announcement, email, session invitation, or WWW page | arriving by session announcement, email, session invitation, or WWW page | |||
| MUST NOT deliver the user into an interactive multimedia session unless | <bcp14>MUST NOT</bcp14> deliver the user into an interactive multimedia se ssion unless | |||
| the user has explicitly pre-authorized such action. As it is not always | the user has explicitly pre-authorized such action. As it is not always | |||
| simple to tell whether or not a session is interactive, applications | simple to tell whether or not a session is interactive, applications | |||
| that are unsure should assume sessions are interactive. | that are unsure should assume sessions are interactive. | |||
| Software processing URLs contained in session descriptions should also | Software processing URLs contained in session descriptions should also | |||
| heed the security considerations identified in <xref target="RFC3986"/>.</ | heed the security considerations identified in <xref target="RFC3986" form | |||
| t> | at="default"/>.</t> | |||
| <t>In this specification, there are no attributes that would allow the | <t>In this specification, there are no attributes that 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 this | circumstances it might be appropriate to define such attributes. If this | |||
| is done, an application parsing a session description containing such | is done, an application parsing a session description containing such | |||
| attributes SHOULD either ignore them or inform the user that joining | attributes <bcp14>SHOULD</bcp14> either ignore them or inform the user tha t joining | |||
| this session will result in the automatic transmission of multimedia | this session will result in the automatic transmission of multimedia | |||
| data. The default behavior for an unknown attribute is to ignore | data. The default behavior for an unknown attribute is to ignore | |||
| it.</t> | it.</t> | |||
| <t>In certain environments, it has become common for intermediary | <t>In certain environments, it has become common for intermediary | |||
| systems to intercept and analyze session descriptions contained within | systems to intercept and analyze session descriptions contained within | |||
| other signaling protocols. This is done for a range of purposes, | other signaling protocols. This is done for a range of purposes, | |||
| including but not limited to opening holes in firewalls to allow media | including but not limited to opening holes in firewalls to allow media | |||
| streams to pass, or to mark, prioritize, or block traffic selectively. | streams to pass, or to mark, prioritize, or block traffic selectively. | |||
| In some cases, such intermediary systems may modify the session | In some cases, such intermediary systems may modify the session | |||
| description, for example, to have the contents of the session | description, for example, to have the contents of the session | |||
| description match NAT bindings dynamically created. These behaviors are | description match NAT bindings dynamically created. These behaviors are | |||
| NOT RECOMMENDED unless the session description is conveyed in such a | <bcp14>NOT RECOMMENDED</bcp14> unless the session description is conveyed in such a | |||
| manner that allows the intermediary system to conduct proper checks to | manner that allows the intermediary system to conduct proper checks to | |||
| establish the authenticity of the session description, and the authority | establish the authenticity of the session description, and the authority | |||
| of its source to establish such communication sessions. SDP by itself | of its source to establish such communication sessions. SDP by itself | |||
| does not include sufficient information to enable these checks: they | does not include sufficient information to enable these checks: they | |||
| depend on the encapsulating protocol (e.g., SIP or RTSP). | depend on the encapsulating protocol (e.g., SIP or RTSP). | |||
| Use of some procedures and SDP extensions | The use of some procedures and SDP extensions | |||
| (e.g., ICE <xref target="RFC8445"/> and ICE-SIP-SDP <xref target="I-D.ietf | (e.g., Interactive Connectivity Establishment (ICE) <xref target="RFC8445" | |||
| -mmusic-ice-sip-sdp"/>) | format="default"/> | |||
| and ICE-SIP-SDP <xref target="RFC8839" format="default"/>) | ||||
| may avoid the need for intermediaries to modify SDP.</t> | may avoid the need for intermediaries to modify SDP.</t> | |||
| <t>SDP <bcp14>MUST NOT</bcp14> be used to convey keying material (e.g., us | ||||
| <t>SDP MUST NOT be used to convey keying material (e.g., using | ing | |||
| "a=crypto" <xref target="RFC4568"/>) unless it can be guaranteed that the | the "a=crypto:" attribute <xref target="RFC4568" format="default"/>) unles | |||
| channel over | s it can be guaranteed that the channel over | |||
| which the SDP is delivered is both private and authenticated.</t> | which the SDP is delivered is both private and authenticated.</t> | |||
| </section> | </section> | |||
| <section anchor="iana" numbered="true" toc="default"> | ||||
| <section anchor="iana" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <section title="The "application/sdp" Media Type"> | <section numbered="true" toc="default"> | |||
| <t>One media type registration from <xref target="RFC4566"/> is to be | <name>The "application/sdp" Media Type</name> | |||
| <t>One media type registration from <xref target="RFC4566" format="defau | ||||
| lt"/> has been | ||||
| updated, as defined below.</t> | updated, as defined below.</t> | |||
| <figure> | <dl> | |||
| <artwork> | <dt>Type name:</dt><dd>application</dd> | |||
| To: ietf-types@iana.org | ||||
| Subject: Registration of media type "application/sdp" | ||||
| Type name: application | ||||
| Subtype name: sdp | <dt>Subtype name:</dt><dd>sdp</dd> | |||
| Required parameters: None. | <dt>Required parameters:</dt><dd>None.</dd> | |||
| Optional parameters: None. | <dt>Optional parameters:</dt><dd>None.</dd> | |||
| Encoding considerations: 8-bit text. | <dt>Encoding considerations:</dt><dd>8-bit text. | |||
| SDP files are primarily UTF-8 format text. The "a=charset:" | SDP files are primarily UTF-8 format text. The "a=charset:" | |||
| attribute may be used to signal the presence of other character | attribute may be used to signal the presence of other character | |||
| sets in certain parts of an SDP file (see Section 6 of RFC | sets in certain parts of an SDP file (see <xref target="attrs"/> of RFC | |||
| XXXX). Arbitrary binary content cannot be directly | 8866). Arbitrary binary content cannot be directly | |||
| represented in SDP. | represented in SDP.</dd> | |||
| Security considerations: | <dt>Security considerations:</dt><dd> | |||
| See Section 7 of RFC XXXX. | See <xref target="security"/> of RFC 8866.</dd> | |||
| Interoperability considerations: | <dt>Interoperability considerations:</dt><dd> | |||
| See RFC XXXX. | See RFC 8866.</dd> | |||
| Published specification: | <dt>Published specification:</dt><dd> | |||
| See RFC XXXX. | See RFC 8866.</dd> | |||
| Applications which use this media type: | <dt>Applications which use this media type:</dt><dd><t><br/> | |||
| Voice over IP, video teleconferencing, streaming media, instant | Voice over IP, video teleconferencing, streaming media, instant | |||
| messaging, among others. See also Section 3 of RFC XXXX. | messaging, among others. See also <xref target="usage_examples"/> of RFC | |||
| 8866.</t></dd> | ||||
| Fragment identifier considerations: None | ||||
| Additional information: | <dt>Fragment identifier considerations:</dt><dd>None</dd> | |||
| Deprecated alias names for this type: N/A | <dt>Additional information:</dt><dd><t><br/></t> | |||
| Magic number(s): None. | <dl spacing="compact"> | |||
| File extension(s): The extension ".sdp" is commonly used. | <dt>Deprecated alias names for this type:</dt><dd>N/A</dd> | |||
| Macintosh File Type Code(s): "sdp " | <dt>Magic number(s):</dt><dd>None.</dd> | |||
| <dt>File extension(s):</dt><dd>The extension ".sdp" is commonly used.</dd> | ||||
| <dt>Macintosh File Type Code(s):</dt><dd>"sdp"</dd> | ||||
| </dl> | ||||
| </dd> | ||||
| Person & email address to contact for further information: | <dt>Person & email address to contact for further information:</dt><dd> | |||
| IETF MMUSIC working group <mmusic@ietf.org> | IETF MMUSIC working group <mmusic@ietf.org></dd> | |||
| Intended usage: COMMON | <dt>Intended usage:</dt><dd>COMMON</dd> | |||
| Restrictions on usage: None | <dt>Restrictions on usage:</dt><dd>None</dd> | |||
| Author/Change controller: | <dt>Author/Change controller:</dt><dd><t><br/></t> | |||
| Authors of RFC XXXX | <ul spacing="compact" empty="true"> | |||
| IETF MMUSIC working group delegated from the IESG | <li>Authors of RFC 8866</li> | |||
| <li>IETF MMUSIC working group delegated from the IESG</li> | ||||
| </ul> | ||||
| </dd> | ||||
| </artwork> | </dl> | |||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="SDP_Parameters" numbered="true" toc="default"> | ||||
| <section anchor="SDP_Parameters" title="Registration of SDP Parameters wit | <name>Registration of SDP Parameters with IANA</name> | |||
| h IANA"> | ||||
| <t>This document specifies IANA parameter registries | <t>This document specifies IANA parameter registries | |||
| for six named SDP sub-fields. Using | for six named SDP subfields. Using | |||
| the terminology in the SDP specification Augmented Backus-Naur Form (ABN F), they | the terminology in the SDP specification Augmented Backus-Naur Form (ABN F), they | |||
| are "media", "proto", "att-field", "bwtype", "nettype", and | are <media>, <proto>, <attribute-name>, <bwtype> | |||
| "addrtype".</t> | , <nettype>, and | |||
| <addrtype>.</t> | ||||
| <t>This document also replaces and updates the definitions of all those parameters previously | <t>This document also replaces and updates the definitions of all those parameters previously | |||
| defined by <xref target="RFC4566"/>.</t> | defined by <xref target="RFC4566" format="default"/>.</t> | |||
| <t>IANA has changed all references to RFC 4566 in these registries to in | ||||
| <t>IANA: Please change all references to RFC4566 in these registries to i | stead refer to this document.</t> | |||
| nstead refer to this document.</t> | <t>The contact name and email address for all parameters registered in t | |||
| his document is: </t> | ||||
| <t>The contact name and email address for all parameters registered in t | <t indent="3">The IETF MMUSIC working group <mmusic@ietf.org> or | |||
| his document is: <list | its successor as designated by the IESG.</t> | |||
| style="empty"> | ||||
| <t>The IETF MMUSIC working group <mmusic@ietf.org> or its succ | ||||
| essor as designated by the IESG.</t> | ||||
| </list></t> | ||||
| <t>All of these registries have a common format:</t> | <t>All of these registries have a common format:</t> | |||
| <table> | ||||
| <t><figure> | <name>Common Format for SDP Registries</name> | |||
| <artwork> | <tbody> | |||
| | Type | SDP Name | [other fields] | Reference | | <tr> | |||
| </artwork> | <th>Type</th> | |||
| </figure></t> | <th>SDP Name</th> | |||
| <th>[other fields]</th> | ||||
| <section anchor="Registration_Procedure" title="Registration Procedure"> | <th>Reference</th> | |||
| <t>A specification document that defines values for SDP "media", "prot | </tr> | |||
| o", | </tbody> | |||
| "att-field", "bwtype", "nettype", and "addrtype" parameters MUST | </table> | |||
| <section anchor="Registration_Procedure" numbered="true" toc="default"> | ||||
| <name>Registration Procedure</name> | ||||
| <t>A specification document that defines values for SDP <media>, | ||||
| <proto>, | ||||
| <attribute-name>, <bwtype>, <nettype>, and <addrt | ||||
| ype> parameters <bcp14>MUST</bcp14> | ||||
| include the following information: | include the following information: | |||
| <list style="symbols"> | </t> | |||
| <t>contact name;</t> | <ul spacing="normal"> | |||
| <li>Contact name</li> | ||||
| <t>contact email address;</t> | <li>Contact email address</li> | |||
| <li>Name being defined (as it will appear in SDP)</li> | ||||
| <t>name being defined (as it will appear in SDP);</t> | <li>Type of name (<media>, <proto>, <attribute-name&g | |||
| t;, <bwtype>, <nettype>, | ||||
| <t>type of name ("media", "proto", "bwtype", "nettype", | or <addrtype>)</li> | |||
| or "addrtype");</t> | <li>A description of the purpose of the defined name</li> | |||
| <li>A stable reference to the document containing this | ||||
| <t>a description of the purpose of the defined name;</t> | ||||
| <t>a stable reference to the document containing this | ||||
| information and the definition of the value. | information and the definition of the value. | |||
| (This will typically be an RFC number.)</t> | (This will typically be an RFC number.)</li> | |||
| </list></t> | </ul> | |||
| <t>The subsections below specify what other information (if any) must be specified | <t>The subsections below specify what other information (if any) must be specified | |||
| for particular parameters, and what other fields are to be included | for particular parameters, and what other fields are to be included | |||
| in the registry.</t> | in the registry.</t> | |||
| </section> | </section> | |||
| <section anchor="MediaTypes" numbered="true" toc="default"> | ||||
| <section title="Media Types ("media")"> | <name>Media Types (<media>)</name> | |||
| <t>The set of media types is intended to be small and SHOULD NOT be | <t>The set of media types is intended to be small and <bcp14>SHOULD NO | |||
| T</bcp14> 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 media types, and where | apply for media names as well as for top-level media 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 top-level media types, a Standards Track | media other than existing top-level media types, a Standards Track | |||
| RFC MUST be produced for a new top-level media type to be | RFC <bcp14>MUST</bcp14> be produced for a new top-level media type to | |||
| registered, and the registration MUST provide good justification why | be | |||
| registered, and the registration <bcp14>MUST</bcp14> provide good just | ||||
| ification why | ||||
| no existing media name is appropriate (the "Standards Action" policy | no existing media name is appropriate (the "Standards Action" policy | |||
| of <xref target="RFC8126"/>).</t> | of <xref target="RFC8126" format="default"/>).</t> | |||
| <t>This memo registers the media types "audio", "video", "text", | <t>This memo registers the media types "audio", "video", "text", | |||
| "application", and "message".</t> | "application", and "message".</t> | |||
| <t>Note: The media types "control" and "data" were listed as valid | <t>Note: The media types "control" and "data" were listed as valid | |||
| in an early version of this specification (RFC 2327); however, their | in an early version of this specification <xref target="RFC2327" forma | |||
| semantics were never fully specified and they are not widely used. | t="default"/>; however, their | |||
| 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 <xref target="RFC3840"/>. If these media types are | as defined in <xref target="RFC3840" format="default"/>. If these medi | |||
| considered useful in the future, a Standards Track RFC MUST be | a types are | |||
| considered useful in the future, a Standards Track RFC <bcp14>MUST</bc | ||||
| p14> be | ||||
| produced to document their use. Until that is done, applications | produced to document their use. Until that is done, applications | |||
| SHOULD NOT use these types and SHOULD NOT declare support for them | <bcp14>SHOULD NOT</bcp14> use these types and <bcp14>SHOULD NOT</bcp14 > declare support for them | |||
| in SIP capabilities declarations (even though they exist in the | in SIP capabilities declarations (even though they exist in the | |||
| registry created by <xref target="RFC3840"/>). Also note that <xref ta rget="RFC6466"/> defined the "image" media type.</t> | registry created by <xref target="RFC3840" format="default"/>). Also n ote that <xref target="RFC6466" format="default"/> defined the "image" media typ e.</t> | |||
| </section> | </section> | |||
| <section anchor="protoreg" numbered="true" toc="default"> | ||||
| <section title="Transport Protocols ("proto")"> | <name>Transport Protocols (<proto>)</name> | |||
| <t>The "proto" sub-field describes the transport protocol used. | <t>The <proto> subfield describes the transport protocol used. | |||
| The registration procedure for this registry is "RFC Required".</t> | The registration procedure for this registry is "RFC Required".</t> | |||
| <t>This document registers two values: | <t>This document registers two values: | |||
| <list style="symbols"> | ||||
| <t>"RTP/AVP" is a reference to <xref target="RFC3550"/> | ||||
| used under the <xref target="RFC3551">RTP Profile for Audio a | ||||
| nd | ||||
| Video Conferences with Minimal Control</xref> running over UD | ||||
| P/IP,</t> | ||||
| <t>"UDP" indicates direct use of the UDP protocol.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>New transport protocols MAY be defined, and MUST be registered with | <li>"RTP/AVP" is a reference to <xref target="RFC3550" format="defau | |||
| IANA. | lt"/> | |||
| Registrations MUST reference an RFC describing the protocol. Such an | used under the <xref target="RFC3551" format="default">RTP Pr | |||
| RFC MAY be Experimental or Informational, although it is preferable | ofile for Audio and | |||
| that it be Standards Track. The RFC defining a new protocol MUST defin | Video Conferences with Minimal Control</xref> running over UD | |||
| e the rules | P/IP.</li> | |||
| by which the "fmt" (see below) namespace is managed.</t> | <li>"udp" indicates direct use of UDP.</li> | |||
| </ul> | ||||
| <t>"proto" names starting with "RTP/" MUST only be used for | <t>New transport protocols <bcp14>MAY</bcp14> be defined, and <bcp14>M | |||
| defining transport protocols that are profiles of the RTP protocol. | UST</bcp14> be registered with IANA. | |||
| Registrations <bcp14>MUST</bcp14> reference an RFC describing the prot | ||||
| ocol. Such an | ||||
| RFC <bcp14>MAY</bcp14> be Experimental or Informational, although it i | ||||
| s preferable | ||||
| that it be Standards Track. The RFC defining a new protocol <bcp14>MUS | ||||
| T</bcp14> define the rules | ||||
| by which the <fmt> (see below) namespace is managed.</t> | ||||
| <t><proto> names starting with "RTP/" <bcp14>MUST</bcp14> only b | ||||
| e used for | ||||
| defining transport protocols that are profiles of RTP. | ||||
| For example, a profile whose short name is "XYZ" would be denoted by | For example, a profile whose short name is "XYZ" would be denoted by | |||
| a "proto" sub-field of "RTP/XYZ".</t> | a <proto> subfield of "RTP/XYZ".</t> | |||
| <t>Each transport protocol, defined by the <proto> subfield, has | ||||
| <t>Each transport protocol, defined by the "proto" sub-field, has an | an | |||
| associated "fmt" namespace that describes the media formats that may | associated <fmt> namespace that describes the media formats that | |||
| may | ||||
| be conveyed by that protocol. Formats cover all the possible | be conveyed by that protocol. Formats cover all the possible | |||
| encodings that could be transported in a multimedia session.</t> | encodings that could be transported in a multimedia session.</t> | |||
| <t>RTP payload formats under the "RTP/AVP" and other "RTP/*" profiles | <t>RTP payload formats under the "RTP/AVP" and other "RTP/*" profiles | |||
| MUST use the payload type number as their "fmt" value. If the | <bcp14>MUST</bcp14> use the payload type number as their <fmt> v alue. If the | |||
| payload type number is dynamically assigned by this session | payload type number is dynamically assigned by this session | |||
| description, an additional "rtpmap" attribute MUST be included to | description, an additional "a=rtpmap:" attribute <bcp14>MUST</bcp14> b e included to | |||
| specify the format name and parameters as defined by the media type | specify the format name and parameters as defined by the media type | |||
| registration for the payload format. It is RECOMMENDED that other | registration for the payload format. It is <bcp14>RECOMMENDED</bcp14> that other | |||
| RTP profiles that are registered (in combination with RTP) as SDP | RTP profiles that are registered (in combination with RTP) as SDP | |||
| transport protocols specify the same rules for the "fmt" | transport protocols specify the same rules for the <fmt> | |||
| namespace.</t> | namespace.</t> | |||
| <t>For the "udp" protocol, the allowed <fmt> values are media su | ||||
| <t>For the "UDP" protocol, allowed "fmt" values are media subtypes | btypes | |||
| from the IANA Media Types registry. The media type and subtype combina tion | from the IANA Media Types registry. The media type and subtype combina tion | |||
| <media>/<fmt> specifies the format of the body of UDP pack ets. | <media>/<fmt> specifies the format of the body of UDP pack ets. | |||
| Use of an existing media subtype for the format is encouraged. If no s uitable media | Use of an existing media subtype for the format is encouraged. If no s uitable media | |||
| subtype exists, it is RECOMMENDED that a new one be registered | subtype exists, it is <bcp14>RECOMMENDED</bcp14> that a new one be reg | |||
| through the IETF process <xref target="RFC6838"/> by production of, | istered | |||
| or reference to, a standards-track RFC that defines the format.</t> | through the IETF process <xref target="RFC6838" format="default"/> by | |||
| production of, | ||||
| <t>For other protocols, formats MAY be registered according to the | or reference to, a Standards Track RFC that defines the format.</t> | |||
| rules of the associated "proto" specification.</t> | <t>For other protocols, formats <bcp14>MAY</bcp14> be registered accor | |||
| ding to the | ||||
| <t>Registrations of new formats MUST specify which transport | rules of the associated <proto> specification.</t> | |||
| <t>Registrations of new formats <bcp14>MUST</bcp14> specify which tran | ||||
| sport | ||||
| protocols they apply to.</t> | protocols they apply to.</t> | |||
| </section> | </section> | |||
| <section anchor="AttributeNames" numbered="true" toc="default"> | ||||
| <section title="Attribute Names ("att-field")"> | <name>Attribute Names (<attribute-name>)</name> | |||
| <t>Attribute-field names (<attribute-name>) <bcp14>MUST</bcp14> | ||||
| <t>Attribute-field names ("att-field") MUST be registered with | be registered with | |||
| IANA and documented, to avoid any issues due to | IANA and documented to avoid any issues due to | |||
| conflicting attribute definitions under the same name. | conflicting attribute definitions under the same name. | |||
| (While unknown attributes in | (While unknown attributes in | |||
| SDP are simply ignored, conflicting ones that fragment the | SDP are simply ignored, conflicting ones that fragment the | |||
| protocol are a serious problem.)</t> | protocol are a serious problem.)</t> | |||
| <t>The format of the <attribute-name> registry is:</t> | ||||
| <table anchor="attRegformat"> | ||||
| <name>Format of the <attribute-name> Registry</name> | ||||
| <tbody> | ||||
| <tr> | ||||
| <th>Type</th> | ||||
| <th>SDP Name</th> | ||||
| <th>Usage Level</th> | ||||
| <th>Mux Category</th> | ||||
| <th>Reference</th> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>The format of the attribute registry is:</t> | <t>For example, the attribute "a=lang:", which is defined for both | |||
| <t><figure> | ||||
| <artwork> | ||||
| | | | | Mux | | | ||||
| | Type | SDP Name | Usage Level | Category | Reference | | ||||
| </artwork> | ||||
| </figure></t> | ||||
| <t>For example, the attribute "setup" which is defined for both | ||||
| session and media level, will be listed in the new registry as | session and media level, will be listed in the new registry as | |||
| follows:</t> | follows:</t> | |||
| <table anchor="attReg"> | ||||
| <t><figure> | <name><attribute-name> Registry Example</name> | |||
| <artwork> | <thead> | |||
| | | | | Mux | | | <tr> | |||
| | Type | SDP Name | Usage Level | Category | Reference | | <th>Type</th> | |||
| |----------|------------|----------------|----------|----------------| | <th>SDP Name</th> | |||
| |attribute |setup | session,media, |IDENTICAL | [RFC4145] | | <th>Usage Level</th> | |||
| | | | dcsa,dcsa(msrp)| | [RFC6135] | | <th>Mux Category</th> | |||
| | | | | | [I-D.mmusic- | | <th>Reference</th> | |||
| | | | | | msrp-usage- | | </tr> | |||
| | | | | | data-channel] | | </thead> | |||
| </artwork> | <tbody> | |||
| </figure></t> | <tr> | |||
| <td>attribute</td> | ||||
| <t>This one registry combines all of the previous usage-level-specific | <td>lang</td> | |||
| "att-field" | <td>session, media</td> | |||
| registries, including updates made by <xref target="I-D.ietf-mmusic-sd | <td>TRANSPORT</td> | |||
| p-mux-attributes"/>. | <td>[RFC8866] | |||
| IANA is requested to do the necessary reformatting.</t> | <xref target="RFC8859" format="default"/> | |||
| </td> | ||||
| <t><xref target="attrs"/> of this document replaces the initial set of | </tr> | |||
| attribute definitions made by <xref target="RFC4566"/>. | </tbody> | |||
| IANA is requested to update the registry accordingly.</t> | </table> | |||
| <t>This one <attribute-name> registry combines all of the previo | ||||
| us usage-level-specific "att-field" | ||||
| registries, including updates made by <xref target="RFC8859" format="d | ||||
| efault"/>, | ||||
| and renames the "att-field" registry to the | ||||
| "attribute-name (formerly "att-field")" registry. | ||||
| IANA has completed the necessary reformatting.</t> | ||||
| <t><xref target="attrs" format="default"/> of this document replaces t | ||||
| he initial set of | ||||
| attribute definitions made by <xref target="RFC4566" format="default"/ | ||||
| >. | ||||
| IANA has updated the registry accordingly.</t> | ||||
| <t>Documents can define new attributes and can also extend the | <t>Documents can define new attributes and can also extend the | |||
| definitions of previously defined attributes:</t> | definitions of previously defined attributes.</t> | |||
| <section anchor="newatt" numbered="true" toc="default"> | ||||
| <section anchor="newatt" title="New Attributes"> | <name>New Attributes</name> | |||
| <t>New attribute registrations are accepted according to the | <t>New attribute registrations are accepted according to the | |||
| "Specification Required" policy of <xref target="RFC8126"/>, | "Specification Required" policy of <xref target="RFC8126" format="de fault"/>, | |||
| provided that the specification includes the following | provided that the specification includes the following | |||
| information:</t> | information:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Contact name</li> | |||
| <t>Contact Name.</t> | <li>Contact email address</li> | |||
| <li>Attribute name: the name of the attribute that will appear | ||||
| <t>Contact Email Address.</t> | in SDP. This <bcp14>MUST</bcp14> conform to the definition of | |||
| <attribute-name>.</li> | ||||
| <t>Attribute Name: The name of the attribute that will appear | <li>Attribute syntax: for a value attribute (see <xref target="att | |||
| in SDP). This MUST conform to the definition of | ribspec" format="default"/>), | |||
| <att-field>.</t> | an ABNF definition of the attribute value <attribute-value> | |||
| ; | ||||
| <t>Attribute Syntax: For a value attribute (see clause 5.13), | syntax (see <xref target="abnf" format="default"/>) <bcp14>MUST< | |||
| an ABNF definition of the attribute value <att-value> | /bcp14> be provided. | |||
| syntax (see <xref target="abnf"/>) MUST be provided. | The syntax <bcp14>MUST</bcp14> follow the rule form per | |||
| The syntax MUST follow the rule form as per Section 2.2 of | <xref target="RFC5234" section="2.2" sectionFormat="of" format=" | |||
| <xref target="RFC5234"/> and <xref target="RFC7405"/>. This SHAL | default"/> | |||
| L define the allowable | and <xref target="RFC7405" format="default"/>. This <bcp14>SHALL | |||
| values that the attribute might take. It MAY also define an | </bcp14> define the allowable | |||
| values that the attribute might take. It <bcp14>MAY</bcp14> also | ||||
| define an | ||||
| extension method for the addition of future values. For a | extension method for the addition of future values. For a | |||
| property attribute, the ABNF definition is omitted as the | property attribute, the ABNF definition is omitted as the | |||
| property attribute takes no values.</t> | property attribute takes no values.</li> | |||
| <li>Attribute semantics: for a value attribute, a semantic | ||||
| <t>Attribute Semantics: For a value attribute, a semantic | description of the values that the attribute might take <bcp14>M | |||
| description of the values that the attribute might take MUST | UST</bcp14> | |||
| be provided. The usage of a property attribute is described | be provided. The usage of a property attribute is described | |||
| under purpose below.</t> | under Purpose below.</li> | |||
| <li>Attribute value: the name of an ABNF syntax rule defining | ||||
| <t>Attribute Value: The name of an ABNF syntax rule defining | ||||
| the syntax of the value. Absence of a rule name indicates that | the syntax of the value. Absence of a rule name indicates that | |||
| the attribute takes no values. Enclosing the rule name in "[" | the attribute takes no values. Enclosing the rule name in "[" | |||
| and "]" indicates that a value is optional.</t> | and "]" indicates that a value is optional.</li> | |||
| <li>Usage level: the usage level(s) of the attribute. | ||||
| <t>Usage Level: Usage level(s) of the attribute. | This <bcp14>MUST</bcp14> be one or more of the following: | |||
| This MUST be one or more of the following: | session, media, source, dcsa, and dcsa(subprotocol). | |||
| session, media, source, dcsa and dcsa(subprotocol). | For a definition of source-level attributes, see <xref target="R | |||
| For a definition of source level attributes, see <xref | FC5576" format="default"/>. | |||
| target="RFC5576"/>. For a definition of dcsa attributes see: | For a definition of dcsa attributes see | |||
| <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.</t> | <xref target="RFC8864" format="default"/>.</li> | |||
| <li>Charset dependent: this <bcp14>MUST</bcp14> be "Yes" or "No" d | ||||
| <t>Charset Dependent: This MUST be "Yes" or "No" depending | epending | |||
| on whether the attribute value is subject to the charset attribu | on whether the attribute value is subject to the "a=charset:" at | |||
| te.</t> | tribute.</li> | |||
| <li>Purpose: an explanation of the purpose and usage of the | ||||
| <t>Purpose: An explanation of the purpose and usage of the | attribute.</li> | |||
| attribute.</t> | <li>O/A procedures: offer/answer procedures as explained in | |||
| <xref target="RFC3264" format="default"/>.</li> | ||||
| <t>O/A Procedures: Offer/Answer procedures as explained in | <li>Mux Category: this <bcp14>MUST</bcp14> indicate one of the fol | |||
| <xref target="RFC3264"/>.</t> | lowing | |||
| <t>Mux Category: This MUST indicate one of the following | ||||
| categories: NORMAL, NOT RECOMMENDED, IDENTICAL, SUM, TRANSPORT, | categories: NORMAL, NOT RECOMMENDED, IDENTICAL, SUM, TRANSPORT, | |||
| INHERIT, IDENTICAL-PER-PT, SPECIAL or TBD as defined by | INHERIT, IDENTICAL-PER-PT, SPECIAL, or TBD as defined by | |||
| [I-D.ietf-mmusic-sdp-mux-attributes].</t> | <xref target="RFC8859" format="default"/>.</li> | |||
| <li>Reference: a reference to the specification defining the | ||||
| <t>Reference: A reference to the specification defining the | attribute.</li> | |||
| attribute.</t> | </ul> | |||
| </list></t> | ||||
| <t>The above is the minimum that IANA will accept. Attributes that | <t>The above is the minimum that IANA will accept. Attributes that | |||
| are expected to see widespread use and interoperability SHOULD be | are expected to see widespread use and interoperability <bcp14>SHOUL | |||
| documented with a standards-track RFC that specifies the attribute | D</bcp14> be | |||
| documented with a Standards Track RFC that specifies the attribute | ||||
| more precisely.</t> | more precisely.</t> | |||
| <t>Submitters of registrations should ensure that the | <t>Submitters of registrations should ensure that the | |||
| specification is in the spirit of SDP attributes, most notably | specification is in the spirit of SDP attributes, most notably | |||
| that the attribute is platform independent in the sense that it | that the attribute is platform independent in the sense that it | |||
| makes no implicit assumptions about operating systems and does not | makes no implicit assumptions about operating systems and does not | |||
| name specific pieces of software in a manner that might inhibit | name specific pieces of software in a manner that might inhibit | |||
| interoperability.</t> | interoperability.</t> | |||
| <t>Submitters of registrations should also carefully choose the | <t>Submitters of registrations should also carefully choose the | |||
| attribute usage level. They should not choose only "session" when | attribute usage level. They should not choose only "session" when | |||
| the attribute can have different values when media is | the attribute can have different values when media is | |||
| disaggregated, i.e., when each m= section has its own IP address | disaggregated, i.e., when each "m=" section has its own IP address | |||
| on a different endpoint. In that case the attribute type chosen | on a different endpoint. In that case, the attribute type chosen | |||
| should be "session, media" or "media" (depending on desired semantic s). | should be "session, media" or "media" (depending on desired semantic s). | |||
| The default rule is that for all new | The default rule is that for all new | |||
| SDP attributes that can occur both in session and media level, the | SDP attributes that can occur both in session and media level, the | |||
| media level overrides the session level. When this is not the case | media level overrides the session level. When this is not the case | |||
| for a new SDP attribute, it MUST be explicitly stated.</t> | for a new SDP attribute, it <bcp14>MUST</bcp14> be explicitly stated | |||
| .</t> | ||||
| <t>IANA has registered the initial set of attribute names | <t>IANA has registered the initial set of attribute names | |||
| ("att-field" values) with definitions as in <xref | (<attribute-name> values) with definitions as in <xref target= | |||
| target="attrs"/> of this memo (these definitions replace those in | "attrs" format="default"/> | |||
| <xref target="RFC4566"/>).</t> | of this memo (these definitions replace those in | |||
| <xref target="RFC4566" format="default"/>).</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Updates to Existing Attributes"> | <name>Updates to Existing Attributes</name> | |||
| <t>Updated attribute registrations are accepted according to the | <t>Updated attribute registrations are accepted according to the | |||
| "Specification Required" policy of <xref target="RFC8126"/>.</t> | "Specification Required" policy of <xref target="RFC8126" format="de | |||
| fault"/>.</t> | ||||
| <t>The Designated Expert reviewing the update is requested to evalua te | <t>The Designated Expert reviewing the update is requested to evalua te | |||
| whether the update is compatible with the prior intent and use of th e attribute, | whether the update is compatible with the prior intent and use of th e attribute, | |||
| and whether the new document is of sufficient maturity and authority in | and whether the new document is of sufficient maturity and authority in | |||
| relation to the prior document. | relation to the prior document. | |||
| </t> | </t> | |||
| <t>The specification updating the attribute (for | <t>The specification updating the attribute (for | |||
| example, by adding a new value) MUST update registration | example, by adding a new value) <bcp14>MUST</bcp14> update registrat | |||
| information items from <xref target="newatt"/> according | ion | |||
| information items from <xref target="newatt" format="default"/> acc | ||||
| ording | ||||
| to the following constraints:</t> | to the following constraints:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Contact name: a name for an entity | |||
| <t>Contact Name: A name for an entity | responsible for the update <bcp14>MUST</bcp14> be provided.</li> | |||
| responsible for the update MUST be provided.</t> | <li>Contact email address: an email address for an entity | |||
| responsible for the update <bcp14>MUST</bcp14> be provided.</li> | ||||
| <t>Contact Email Address: An email address for an entity | <li>Attribute name: <bcp14>MUST</bcp14> be provided and <bcp14>MUS | |||
| responsible for the update MUST be provided.</t> | T NOT</bcp14> be changed. | |||
| Otherwise it is a new attribute.</li> | ||||
| <t>Attribute Name: MUST be provided and MUST NOT be changed. | <li>Attribute syntax: the existing rule syntax with the syntax | |||
| Otherwise it is a new attribute.</t> | extensions <bcp14>MUST</bcp14> be provided if there is a change | |||
| to the | ||||
| <t>Attribute Syntax: The existing rule syntax with the syntax | syntax. A revision to an existing attribute usage <bcp14>MAY</bc | |||
| extensions MUST be provided if there is a change to the | p14> extend | |||
| syntax. A revision to an existing attribute usage MAY extend | the syntax of an attribute, but <bcp14>MUST</bcp14> be backward | |||
| the syntax of an attribute, but MUST be backward | compatible.</li> | |||
| compatible.</t> | <li>Attribute semantics: a semantic description of new | |||
| <t>Attribute Semantics: A semantic description of new | ||||
| additional attribute values or a semantic extension of | additional attribute values or a semantic extension of | |||
| existing values. Existing attribute values semantics MUST only | existing values. Existing attribute values semantics <bcp14>MUST | |||
| be extended in a backward compatible manner.</t> | </bcp14> only | |||
| be extended in a backward compatible manner.</li> | ||||
| <t>Usage Level: Updates MAY only add additional levels.</t> | <li>Usage level: updates <bcp14>MAY</bcp14> only add additional le | |||
| vels.</li> | ||||
| <t>Charset Dependent: MUST NOT be changed.</t> | <li>Charset dependent: <bcp14>MUST NOT</bcp14> be changed.</li> | |||
| <li>Purpose: <bcp14>MAY</bcp14> be extended according to the updat | ||||
| <t>Purpose: MAY be extended according to the updated | ed | |||
| usage.</t> | usage.</li> | |||
| <li>O/A procedures: <bcp14>MAY</bcp14> be updated in a backward co | ||||
| <t>O/A Procedures: MAY be updated in a backward compatible | mpatible | |||
| manner and/or it applies to a new usage level only.</t> | manner and/or it applies to a new usage level only.</li> | |||
| <li>Mux Category: no change unless from "TBD" to another value | ||||
| <t>Mux Category: No change unless from "TBD" to another value | (see <xref target="RFC8859" format="default"/>. | |||
| (see <xref target="I-D.ietf-mmusic-sdp-mux-attributes"/>. | It <bcp14>MAY</bcp14> also change if media level is being added | |||
| It MAY also change if 'media' level is being added to the | to the | |||
| definition of an attribute that previously did not include | definition of an attribute that previously did not include | |||
| it.</t> | it.</li> | |||
| <li>Reference: a new (additional or replacement) reference <bcp14> | ||||
| <t>Reference: A new (additional or replacement) reference MUST b | MUST</bcp14> be provided.</li> | |||
| e provided.</t> | </ul> | |||
| </list></t> | <t>Items <bcp14>SHOULD</bcp14> be omitted if there is no impact to t | |||
| hem as a | ||||
| <t>Items SHOULD be omitted if there is no impact to them as a | ||||
| result of the attribute update.</t> | result of the attribute update.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Bandwidth Specifiers ("bwtype")"> | <name>Bandwidth Specifiers (<bwtype>)</name> | |||
| <t>A proliferation of bandwidth specifiers is strongly | <t>A proliferation of bandwidth specifiers is strongly | |||
| discouraged.</t> | discouraged.</t> | |||
| <t>New bandwidth specifiers (<bwtype> subfield values) <bcp14>MU | ||||
| <t>New bandwidth specifiers (<bwtype> sub-field values) MUST be | ST</bcp14> be registered | |||
| registered | with IANA. The submission <bcp14>MUST</bcp14> reference a Standards Tr | |||
| with IANA. The submission MUST reference a standards-track RFC | ack RFC | |||
| specifying the semantics of the bandwidth specifier precisely, and | specifying the semantics of the bandwidth specifier precisely, and | |||
| indicating when it should be used, and why the existing registered | indicating when it should be used, and why the existing registered | |||
| bandwidth specifiers do not suffice.</t> | bandwidth specifiers do not suffice.</t> | |||
| <t>The RFC <bcp14>MUST</bcp14> specify the Mux Category for this value | ||||
| <t>The RFC MUST specify the Mux Category for this value as defined by | as defined by | |||
| [I-D.ietf-mmusic-sdp-mux-attributes].</t> | <xref target="RFC8859" format="default"/>.</t> | |||
| <t>The format of the <bwtype> registry is:</t> | ||||
| <t>The format of the "bwtype" registry is:</t> | <table anchor="bwtypeRegformat"> | |||
| <name>Format of the <bwtype> Registry</name> | ||||
| <t><figure> | <tbody> | |||
| <artwork> | <tr> | |||
| | Type | SDP Name | Mux Category | Reference | | <th>Type</th> | |||
| </artwork> | <th>SDP Name</th> | |||
| </figure></t> | <th>Mux Category</th> | |||
| <th>Reference</th> | ||||
| <t>IANA is requested to update the "bwtype" registry entries for the | </tr> | |||
| </tbody> | ||||
| </table> | ||||
| <t>IANA has updated the <bwtype> registry entries for the | ||||
| bandwidth specifiers "CT" and "AS" with the | bandwidth specifiers "CT" and "AS" with the | |||
| definitions in Section 5.8 of this memo (these definitions replace | definitions in <xref target="bandwidthInfo" format="default"/> of this | |||
| those in <xref target="RFC4566"/>).</t> | memo (these definitions replace | |||
| those in <xref target="RFC4566" format="default"/>).</t> | ||||
| </section> | </section> | |||
| <section anchor="nettypereg" numbered="true" toc="default"> | ||||
| <section title="Network Types ("nettype")"> | <name>Network Types (<nettype>)</name> | |||
| <t>Network type "IN", representing the Internet, | <t>Network type "IN", representing the Internet, | |||
| is defined in <xref target="origin-line"/> and | is defined in <xref target="origin" format="default"/> and | |||
| <xref target="connection-information"/> of this memo. | <xref target="connection-information" format="default"/> of this memo | |||
| (This definition replaces that in <xref target="RFC4566"/>.)</t> | (this definition replaces that in <xref target="RFC4566" format="defau | |||
| lt"/>).</t> | ||||
| <t>To enable SDP to reference a new non-Internet environment | <t>To enable SDP to reference a new non-Internet environment, | |||
| a new network type (<nettype> sub-field value) MUST be registere | a new network type (<nettype> subfield value) <bcp14>MUST</bcp14 | |||
| d | > be registered | |||
| with IANA. The registration is subject to the "RFC Required" policy | with IANA. The registration is subject to the "RFC Required" policy | |||
| of <xref target="RFC8126"/>. Although non-Internet environments are | of <xref target="RFC8126" format="default"/>. Although non-Internet en vironments are | |||
| not normally the preserve of IANA, there may be circumstances when | not normally the preserve of IANA, there may be circumstances when | |||
| an Internet application needs to interoperate with a non-Internet | an Internet application needs to interoperate with a non-Internet | |||
| application, such as when gatewaying an Internet telephone call into | application, such as when gatewaying an Internet telephone call into | |||
| the Public Switched Telephone Network (PSTN). The number of network | the Public Switched Telephone Network (PSTN). The number of network | |||
| types should be small and should be rarely extended. A new network typ e | types should be small and should be rarely extended. A new network typ e | |||
| registration MUST reference an RFC that gives details of the network | registration <bcp14>MUST</bcp14> reference an RFC that gives details o f the network | |||
| type and the address type(s) that may be used with it.</t> | type and the address type(s) that may be used with it.</t> | |||
| <t>The format of the <nettype> registry is:</t> | ||||
| <t>The format of the "nettype" registry is:</t> | <table anchor="nettypeRegformat"> | |||
| <name>Format of the <nettype> Registry</name> | ||||
| <t><figure> | <tbody> | |||
| <artwork> | <tr> | |||
| |Type | SDP Name | Usable addrtype Values | Reference | | <th>Type</th> | |||
| </artwork> | <th>SDP Name</th> | |||
| </figure></t> | <th>Usable addrtype Values</th> | |||
| <th>Reference</th> | ||||
| <t>IANA is requested to update the "nettype" registry to this | </tr> | |||
| new format. The following is the updated content of th registry: </t> | </tbody> | |||
| </table> | ||||
| <t><figure> | <t>IANA has updated the <nettype> registry to this | |||
| <artwork> | new format. The following is the updated content of the registry: </t> | |||
| |Type | SDP Name | Usable addrtype Values | Reference | | <table anchor="nettypeReg"> | |||
| |nettype | IN | IP4, IP6 | [RFCXXXX] | | <name>Content of the <nettype> registry</name> | |||
| |nettype | TN | RFC2543 | [RFC2848] | | <thead> | |||
| |nettype | ATM | NSAP, GWID, E164 | [RFC3108] | | <tr> | |||
| |nettype | PSTN | E164 | [RFC7195] | | <th>Type</th> | |||
| </artwork> | <th>SDP Name</th> | |||
| </figure></t> | <th>Usable addrtype Values</th> | |||
| <th>Reference</th> | ||||
| <t>Note that both [RFC7195] and [RFC3108] registered "E164" as an | </tr> | |||
| address type, although [RFC7195] mentions that the "E164" address type | </thead> | |||
| <tbody> | ||||
| <tr> | ||||
| <td>nettype</td> | ||||
| <td>IN</td> | ||||
| <td>IP4, IP6</td> | ||||
| <td>[RFC8866]</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>nettype</td> | ||||
| <td>TN</td> | ||||
| <td>RFC2543</td> | ||||
| <td><xref target="RFC2848" format="default"/></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>nettype</td> | ||||
| <td>ATM</td> | ||||
| <td>NSAP, GWID, E164</td> | ||||
| <td><xref target="RFC3108" format="default"/></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>nettype</td> | ||||
| <td>PSTN</td> | ||||
| <td>E164</td> | ||||
| <td><xref target="RFC7195" format="default"/></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>Note that both <xref target="RFC7195" format="default"/> | ||||
| and <xref target="RFC3108" format="default"/> registered "E164" as an | ||||
| address type, although <xref target="RFC7195" format="default"/> menti | ||||
| ons that the "E164" address type | ||||
| has a different context for ATM and PSTN networks.</t> | has a different context for ATM and PSTN networks.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Address Types ("addrtype")"> | <name>Address Types (<addrtype>)</name> | |||
| <t>New address types ("addrtype") MUST be registered with IANA. The | <t>New address types (<addrtype>) <bcp14>MUST</bcp14> be registe | |||
| red with IANA. The | ||||
| registration is subject to the "RFC Required" policy | registration is subject to the "RFC Required" policy | |||
| of <xref target="RFC8126"/>. A new address type registration | of <xref target="RFC8126" format="default"/>. A new address type regis | |||
| MUST reference an RFC giving details of the syntax of the address | tration | |||
| <bcp14>MUST</bcp14> reference an RFC, giving details of the syntax of | ||||
| the address | ||||
| type. Address types are not expected to be registered | type. Address types are not expected to be registered | |||
| frequently.</t> | frequently.</t> | |||
| <t><xref target="connection-information" format="default"/> of this do | ||||
| <t><xref target="connection-information"/> of this document gives | cument gives | |||
| new definitions of address types "IP4" and "IP6".</t> | new definitions of address types "IP4" and "IP6".</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Encryption Key Access Methods (OBSOLETE)"> | <name>Encryption Key Access Methods (OBSOLETE)</name> | |||
| <t>The IANA previously maintained a table of SDP encryption key access | <t>The IANA previously maintained a table of SDP encryption key access | |||
| method ("enckey") names. This table is obsolete, since the "k=" line | method ("enckey") names. This table is obsolete, since the "k=" line | |||
| is not extensible. New registrations MUST NOT be accepted.</t> | is not extensible. New registrations <bcp14>MUST NOT</bcp14> be accepted .</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="abnf" numbered="true" toc="default"> | ||||
| <section anchor="abnf" title="SDP Grammar"> | <name>SDP Grammar</name> | |||
| <t>This section provides an Augmented BNF grammar for SDP. ABNF is | <t>This section provides an Augmented BNF grammar for SDP. ABNF is | |||
| defined in <xref target="RFC5234"/> and <xref target="RFC7405"/>.</t> | defined in <xref target="RFC5234" format="default"/> and <xref target="RFC 7405" format="default"/>.</t> | |||
| <figure> | <sourcecode type="abnf" name="sdp-syntax.abnf"><![CDATA[ | |||
| <artwork><![CDATA[ | ||||
| ; SDP Syntax | ; SDP Syntax | |||
| session-description = version-field | session-description = version-field | |||
| origin-field | origin-field | |||
| session-name-field | session-name-field | |||
| [information-field] | [information-field] | |||
| [uri-field] | [uri-field] | |||
| *email-field | *email-field | |||
| *phone-field | *phone-field | |||
| [connection-field] | [connection-field] | |||
| *bandwidth-field | *bandwidth-field | |||
| skipping to change at line 2836 ¶ | skipping to change at line 2368 ¶ | |||
| %s"base64:" base64 / | %s"base64:" base64 / | |||
| %s"uri:" uri | %s"uri:" uri | |||
| ; NOTE: These names are case-sensitive. | ; NOTE: These names are case-sensitive. | |||
| base64 = *base64-unit [base64-pad] | base64 = *base64-unit [base64-pad] | |||
| base64-unit = 4base64-char | base64-unit = 4base64-char | |||
| base64-pad = 2base64-char "==" / 3base64-char "=" | base64-pad = 2base64-char "==" / 3base64-char "=" | |||
| base64-char = ALPHA / DIGIT / "+" / "/" | base64-char = ALPHA / DIGIT / "+" / "/" | |||
| ; sub-rules of 'a=' | ; sub-rules of 'a=' | |||
| attribute = (att-field ":" att-value) / att-field | attribute = (attribute-name ":" attribute-value) / | |||
| attribute-name | ||||
| att-field = token | attribute-name = token | |||
| att-value = byte-string | attribute-value = byte-string | |||
| att-field = attribute-name ; for backward compatibility | ||||
| ; sub-rules of 'm=' | ; sub-rules of 'm=' | |||
| media = token | media = token | |||
| ;typically "audio", "video", "text", "image" | ;typically "audio", "video", "text", "image" | |||
| ;or "application" | ;or "application" | |||
| fmt = token | fmt = token | |||
| ;typically an RTP payload type for audio | ;typically an RTP payload type for audio | |||
| ;and video media | ;and video media | |||
| proto = token *("/" token) | proto = token *("/" token) | |||
| ;typically "RTP/AVP" or "udp" | ;typically "RTP/AVP", "RTP/SAVP", "udp", | |||
| ;or "RTP/SAVPF" | ||||
| port = 1*DIGIT | port = 1*DIGIT | |||
| ; generic sub-rules: addressing | ; generic sub-rules: addressing | |||
| unicast-address = IP4-address / IP6-address / FQDN / extn-addr | unicast-address = IP4-address / IP6-address / FQDN / extn-addr | |||
| multicast-address = IP4-multicast / IP6-multicast / FQDN | multicast-address = IP4-multicast / IP6-multicast / FQDN | |||
| / extn-addr | / extn-addr | |||
| IP4-multicast = m1 3( "." decimal-uchar ) | IP4-multicast = m1 3( "." decimal-uchar ) | |||
| skipping to change at line 2948 ¶ | skipping to change at line 2484 ¶ | |||
| POS-DIGIT = %x31-39 ; 1 - 9 | POS-DIGIT = %x31-39 ; 1 - 9 | |||
| decimal-uchar = DIGIT | decimal-uchar = DIGIT | |||
| / POS-DIGIT DIGIT | / POS-DIGIT DIGIT | |||
| / ("1" 2(DIGIT)) | / ("1" 2(DIGIT)) | |||
| / ("2" ("0"/"1"/"2"/"3"/"4") DIGIT) | / ("2" ("0"/"1"/"2"/"3"/"4") DIGIT) | |||
| / ("2" "5" ("0"/"1"/"2"/"3"/"4"/"5")) | / ("2" "5" ("0"/"1"/"2"/"3"/"4"/"5")) | |||
| ; external references: | ; external references: | |||
| ALPHA = <ALPHA definition from RFC5234> | ALPHA = <ALPHA definition from RFC 5234> | |||
| DIGIT = <DIGIT definition from RFC5234> | DIGIT = <DIGIT definition from RFC 5234> | |||
| CRLF = <CRLF definition from RFC5234> | CRLF = <CRLF definition from RFC 5234> | |||
| HEXDIG = <HEXDIG definition from RFC5234> | HEXDIG = <HEXDIG definition from RFC 5234> | |||
| SP = <SP definition from RFC5234> | SP = <SP definition from RFC 5234> | |||
| VCHAR = <VCHAR definition from RFC5234> | VCHAR = <VCHAR definition from RFC 5234> | |||
| URI-reference = <URI-reference definition from RFC3986> | URI-reference = <URI-reference definition from RFC 3986> | |||
| addr-spec = <addr-spec definition from RFC5322> | addr-spec = <addr-spec definition from RFC 5322> | |||
| ]]> </artwork> | ]]></sourcecode> | |||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="changes" numbered="true" toc="default"> | ||||
| <section anchor="changes" title="Summary of Changes from RFC 4566"> | <name>Summary of Changes from RFC 4566</name> | |||
| <t><list style="symbols"> | <ul spacing="normal"> | |||
| <t>Generally clarified and refined terminology.</t> | <li>Generally clarified and refined terminology. Aligned terms used in | |||
| text with the ABNF. The terms <attribute>, <att-field>, and | ||||
| <t>Identified now-obsolete items: "a=cat", "a=keywds", "k=".</t> | "att-field" are now <attribute-name>. The terms <value> and | |||
| <att-value> are now <attribute-value>. The term "media" is now | ||||
| <t>Updated normative and informative references, and added references | <media>. </li> | |||
| to additional relevant related RFCs.</t> | <li>Identified now-obsolete items: "a=cat:" (<xref target="cat" format=" | |||
| default"/>), | ||||
| <t>Reformatted the SDP Attributes section for readability. | "a=keywds:" (<xref target="keywds" format="default"/>), and "k=" | |||
| The syntax of attribute values is now given in ABNF.</t> | (<xref target="key-field" format="default"/>).</li> | |||
| <li>Updated normative and informative references, and added references | ||||
| <t>Made mandatory the sending of RTCP with inactive media streams.</t | to additional relevant related RFCs.</li> | |||
| > | <li>Reformatted the SDP Attributes section (<xref target="attrs" format= | |||
| "default"/>) for readability. | ||||
| <t>Removed the section "Private Sessions". That section dates back to | The syntax of attribute values is now given in ABNF.</li> | |||
| a time | <li>Made mandatory the sending of RTCP with inactive media streams (<xre | |||
| when the primary use of SDP was with SAP (Session Announcement Protoc | f target="inactive" format="default"/>).</li> | |||
| ol). | <li>Removed the section "Private Sessions". That section dated back to a | |||
| That has fallen out of use. Now the vast majority of uses of SDP is | time | |||
| when the primary use of SDP was with SAP (Session Announcement Protoc | ||||
| ol), | ||||
| which has fallen out of use. Now the vast majority of uses of SDP is | ||||
| for establishment of private sessions. The considerations for that ar e | for establishment of private sessions. The considerations for that ar e | |||
| covered in <xref target="security"/>.</t> | covered in <xref target="security" format="default"/>.</li> | |||
| <li>Expanded and clarified the specification of the "a=lang:" (<xref tar | ||||
| <t>Expanded and clarified the specification of the "lang" | get="lang" format="default"/>) | |||
| and "sdplang" attributes.</t> | and "a=sdplang:" (<xref target="sdplang" format="default"/>) attri | |||
| butes.</li> | ||||
| <t>Removed some references to SAP because it is no longer in widespre | <li>Removed some references to SAP because it is no longer in widespread | |||
| ad use.</t> | use.</li> | |||
| <li>Changed the way <fmt> values for UDP transport are registered | ||||
| <t>Changed the way <fmt> values for UDP transport are registere | (<xref target="protoreg" format="default"/>).</li> | |||
| d.</t> | <li>Changed the mechanism and documentation required for | |||
| registering new attributes (<xref target="newatt" format="default" | ||||
| <t>Changed the mechanism and documentation required for | />).</li> | |||
| registering new attributes.</t> | <li>Tightened up IANA registration procedures for extensions. | |||
| Removed phone number and long-form name (<xref target="SDP_Paramet | ||||
| <t>Tightened up IANA registration procedures for extensions. | ers" format="default"/>).</li> | |||
| Removed phone number and long-form name.</t> | <li>Expanded the IANA <nettype> registry to identify valid <add | |||
| rtype> subfields (<xref target="nettypereg" format="default"/>).</li> | ||||
| <t>Expanded the IANA nettype registry to identify valid addrtypes.</t | <li>Reorganized the several IANA "att-field" registries | |||
| > | into a single <attribute-name> registry (<xref target="Attri | |||
| buteNames" format="default"/>).</li> | ||||
| <t>Reorganized the several IANA att-type registries | <li> | |||
| into a single registry</t> | <t>Revised ABNF syntax (<xref target="abnf" format="default"/>) f | |||
| or clarity | ||||
| <t>Revised ABNF syntax for clarity. | and for alignment with text. Backward compatibility is | |||
| Backward compatibility is maintained with a few exceptions: | maintained with a few exceptions. Of particular note: </t> | |||
| <list style="symbols"> | <ul spacing="normal"> | |||
| <t>Revised the syntax of time descriptions ("t=", "r=", "z=") | <li>Revised the syntax of time descriptions ("t=", "r=", "z=") to | |||
| to remove ambiguities. Clarified that "z=" only modifies | remove ambiguities. Clarified that "z=" only modifies the | |||
| the immediately preceding "r=" lines. Made "z=" without a | immediately preceding "r=" lines. Made "z=" without a | |||
| preceding "r=" a syntax error. | preceding "r=" a syntax error (<xref target="tzadj" format="defaul | |||
| (This is incompatible with certain aberrant usage.)</t> | t"/>). | |||
| <t>Updated the "IP6-address" and "IP6-multicast" rules, | (This is incompatible with certain aberrant usage.)</li> | |||
| consistent with the syntax in RFC3986. | <li>Updated the "IP6-address" and "IP6-multicast" rules, consistent | |||
| (This mirrors a bug fix made to RFC3261 by RFC5964.) | with the syntax in <xref target="RFC3986" format="default"/>, mir | |||
| Removed rules that were unused as a result of this change. | roring a bug fix made to | |||
| </t> </list> | <xref target="RFC3261" format="default"/> by <xref target="RFC595 | |||
| </t> | 4" format="default"/>. | |||
| Removed rules that were unused as a result of this change.</li> | ||||
| <t>Revised normative statements that were redundant with ABNF syntax | <li>The "att-field" rule has been renamed "attribute-name" because | |||
| , | elsewhere "*-field" always refers to a complete line. However, | |||
| making the text non-normative.</t> | the rulename "att-field" remains defined as a synonym for | |||
| backward compatibility with references from other RFCs.</li> | ||||
| <t>Revised IPv4 unicast and multicast addresses in the | <li>The "att-value" rule has been renamed "attribute-value".</li> | |||
| example SDP descriptions per RFCs 5735 and 5771.</t> | </ul> | |||
| </li> | ||||
| <t>Changed some examples to use IPv6 addresses, and added additional | <li>Revised normative statements that were redundant with ABNF syntax, | |||
| examples using IPv6.</t> | making the text non-normative.</li> | |||
| <t>Incorporated case-insensitivity rules from RFC 4855.</t> | ||||
| <t>Revised sections that incorrectly referenced NTP.</t> | ||||
| <t>Clarified the explanation of the impact and use of a=charset.</t> | ||||
| <t>Revised the description of a=type to remove implication that it | ||||
| sometimes changes the default media direction to something other tha | ||||
| n sendrecv.</t> </list></t> | ||||
| </section> | ||||
| <section title="Acknowledgements"> | ||||
| <t>Many people in the IETF Multiparty Multimedia Session Control | ||||
| (MMUSIC) working group have made comments and suggestions contributing | ||||
| to this document.</t> | ||||
| <t>In particular, we would like to thank the following people who contribu | <li>Revised IPv4 unicast and multicast addresses in the | |||
| ted | example SDP descriptions per <xref target="RFC5735"/> and <xref | |||
| to the creation of this document or one of its predecessor documents: | target="RFC5771"/>.</li> | |||
| Adam Roach, Allison Mankin, Bernie Hoeneisen, Bill Fenner, Carsten Bormann, | <li>Changed some examples to use IPv6 addresses, and added additional | |||
| Eve Schooler, Flemming Andreasen, Gonzalo Camarillo, Joerg Ott, John Elwel | examples using IPv6.</li> | |||
| l, | <li>Incorporated case-insensitivity rules from <xref target="RFC4855" fo | |||
| Jon Peterson, Jonathan Lennox, Jonathan Rosenberg, Keith Drage, Peter Parn | rmat="default"/>.</li> | |||
| es, | <li>Revised sections that incorrectly referenced NTP (<xref target="orig | |||
| Rob Lanphier, Ross Finlayson, Sean Olson, Spencer Dawkins, Steve Casner, | in" format="default"/>, | |||
| Steve Hanna, Van Jacobson.</t> | <xref target="timing" format="default"/>, <xref target="repeattime" | |||
| format="default"/>, and | ||||
| <xref target="tzadj" format="default"/>).</li> | ||||
| <li>Clarified the explanation of the impact and use of the "a=charset:" | ||||
| attribute | ||||
| (<xref target="charset" format="default"/>).</li> | ||||
| <li>Revised the description of the "a=type:" attribute to remove implica | ||||
| tion that it | ||||
| sometimes changes the default media direction to something other tha | ||||
| n "a=sendrecv" | ||||
| (<xref target="type" format="default"/>).</li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | ||||
| &__reference.RFC.1034; | ||||
| &__reference.RFC.1035; | <references> | |||
| <name>References</name> | ||||
| &__reference.RFC.2119; | <references> | |||
| <name>Normative References</name> | ||||
| &__reference.RFC.2848; | ||||
| &__reference.RFC.2978; | ||||
| &__reference.RFC.3108; | ||||
| &__reference.RFC.3629; | ||||
| &__reference.RFC.3986; | ||||
| &__reference.RFC.4145; | ||||
| &__reference.RFC.4566; | ||||
| &__reference.RFC.5234; | ||||
| &__reference.RFC.5576; | ||||
| &__reference.RFC.5646; | ||||
| &__reference.RFC.5890; | ||||
| &__reference.RFC.5952; | ||||
| &__reference.RFC.6135; | ||||
| &__reference.RFC.7195; | ||||
| &__reference.RFC.8126; | ||||
| &__reference.RFC.8174; | ||||
| &__reference.I-D.ietf-mmusic-data-channel-sdpneg; | ||||
| &__reference.I-D.ietf-mmusic-sdp-mux-attributes; | ||||
| &__reference.ISO.8859-1; | ||||
| <reference anchor="E164"> | ||||
| <front> | ||||
| <title>E.164 : The international public telecommunication numbering pl | ||||
| an</title> | ||||
| <author> | ||||
| <organization>International Telecommunication Union</organization> | ||||
| </author> | ||||
| <date month="November" year="2010"/> | ||||
| </front> | ||||
| <seriesInfo name="ITU" value="Recommendation E.164"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| &__reference.RFC.2045; | ||||
| &__reference.RFC.2327; | ||||
| &__reference.RFC.2974; | ||||
| &__reference.RFC.3261; | ||||
| &__reference.RFC.3264; | ||||
| &__reference.RFC.3550; | ||||
| &__reference.RFC.3551; | ||||
| &__reference.RFC.3556; | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1034.xml" | |||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1035.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2848.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2978.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3108.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3629.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3986.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4566.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5234.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5576.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5646.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5890.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5952.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7195.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8126.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml" | ||||
| /> | ||||
| &__reference.RFC.3605; | <reference anchor="RFC8864" target="https://www.rfc-editor.org/info/rfc8864"> | |||
| <front> | ||||
| <title>Negotiation Data Channels Using the Session Description | ||||
| Protocol (SDP)</title> | ||||
| <author fullname="Keith Drage" initials="K." surname="Drage"> | ||||
| <organization>Unaffiliated</organization> | ||||
| </author> | ||||
| <author fullname="Raju Makaraju" initials="M." surname="Makaraju"> | ||||
| <organization>Nokia</organization> | ||||
| </author> | ||||
| <author fullname="Richard Ejzak" initials="R." surname="Ejzak"> | ||||
| <organization>Unaffiliated</organization> | ||||
| </author> | ||||
| <author fullname="Jerome Marcon" initials="J." surname="Marcon"> | ||||
| <organization>Unaffiliated</organization> | ||||
| </author> | ||||
| <author fullname="Roni Even" initials="R." surname="Even" role="editor"> | ||||
| <organization>Huawei</organization> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8864"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8864"/> | ||||
| </reference> | ||||
| &__reference.RFC.3711; | <reference anchor="RFC8859" target="https://www.rfc-editor.org/info/rfc8 | |||
| 859"> | ||||
| <front> | ||||
| <title>A Framework for Session Description Protocol (SDP) | ||||
| Attributes When Multiplexing</title> | ||||
| <author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar | ||||
| "> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8859"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8859"/> | ||||
| &__reference.RFC.3840; | </reference> | |||
| &__reference.RFC.3890; | <reference anchor="ISO.8859-1.1998"> | |||
| <front> | ||||
| <title>Information technology - 8-bit single byte coded graphic - ch | ||||
| aracter sets - Part 1: Latin alphabet No. 1, JTC1/SC2</title> | ||||
| <author> | ||||
| <organization>International Organization for Standardization</orga | ||||
| nization> | ||||
| </author> | ||||
| <date month="" year="1998"/> | ||||
| </front> | ||||
| <seriesInfo name="ISO/IEC Standard" value="8859-1"/> | ||||
| </reference> | ||||
| &__reference.RFC.4568; | <reference anchor="E164" target="https://www.itu.int/rec/T-REC-E.164-201 | |||
| 011-I/en"> | ||||
| <front> | ||||
| <title>E.164 : The international public telecommunication numbering | ||||
| plan</title> | ||||
| <author> | ||||
| <organization>International Telecommunication Union</organization> | ||||
| </author> | ||||
| <date month="November" year="2010"/> | ||||
| </front> | ||||
| <seriesInfo name="ITU Recommendation" value="E.164"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references> | ||||
| &__reference.RFC.4855; | <name>Informative References</name> | |||
| &__reference.RFC.5322; | <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2045.xml" | |||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2327.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2974.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3261.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3264.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3550.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3551.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3556.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3605.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3711.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3840.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3890.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4568.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4855.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5124.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5322.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5735.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5771.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5888.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6466.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6838.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7230.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7405.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7656.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7826.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8445.xml" | ||||
| /> | ||||
| <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5954.xml" | ||||
| /> | ||||
| &__reference.RFC.5888; | <reference anchor="RFC8843" target="https://www.rfc-editor.org/info/rfc8843" | |||
| > | ||||
| <front> | ||||
| <title>Negotiating Media Multiplexing Using the Session Description Prot | ||||
| ocol (SDP)</title> | ||||
| <author initials="C" surname="Holmberg" fullname="Christer Holmberg"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="H" surname="Alvestrand" fullname="Harald Alvestrand"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="C" surname="Jennings" fullname="Cullen Jennings"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8843"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8843"/> | ||||
| </reference> | ||||
| &__reference.RFC.6466; | <reference anchor='RFC8839' target="https://www.rfc-editor.org/info/rfc8839"> | |||
| <front> | ||||
| <title>Session Description Protocol (SDP) Offer/Answer Procedures for Interactiv | ||||
| e Connectivity Establishment (ICE)</title> | ||||
| &__reference.RFC.6838; | <author initials='M' surname='Petit-Huguenin' fullname='Marc Petit-Huguenin'> | |||
| <organization /> | ||||
| </author> | ||||
| &__reference.RFC.7230; | <author initials='S' surname='Nandakumar' fullname='Suhas Nandakumar'> | |||
| <organization /> | ||||
| </author> | ||||
| &__reference.RFC.7405; | <author initials='C' surname='Holmberg' fullname='Christer Holmberg'> | |||
| <organization /> | ||||
| </author> | ||||
| &__reference.RFC.7656; | <author initials='A' surname='Keränen' fullname='Ari Keränen'> | |||
| <organization /> | ||||
| </author> | ||||
| &__reference.RFC.7826; | <author initials='R' surname='Shpount' fullname='Roman Shpount'> | |||
| <organization /> | ||||
| </author> | ||||
| &__reference.RFC.8445; | <date month="January" year="2021"/> | |||
| &__reference.I-D.ietf-mmusic-sdp-bundle-negotiation; | </front> | |||
| <seriesInfo name="RFC" value="8839"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8839"/> | ||||
| &__reference.I-D.ietf-mmusic-ice-sip-sdp; | </reference> | |||
| <reference anchor="ITU.H332.1998"> | <reference anchor="ITU.H332.1998" target="https://www.itu.int/rec/T-REC- | |||
| <front> | H.332-199809-I/en"> | |||
| <title>H.323 extended for loosely coupled conferences</title> | <front> | |||
| <author> | <title>H.332 : H.323 extended for loosely coupled conferences</title | |||
| <organization>International Telecommunication Union</organization> | > | |||
| </author> | <author> | |||
| <date month="September" year="1998"/> | <organization>International Telecommunication Union</organization> | |||
| </front> | </author> | |||
| <seriesInfo name="ITU" value="Recommendation H.332"/> | <date month="September" year="1998"/> | |||
| </reference> | </front> | |||
| <seriesInfo name="ITU Recommendation" value="H.332"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t>Many people in the IETF Multiparty Multimedia Session Control | ||||
| (MMUSIC) working group have made comments and suggestions contributing | ||||
| to this document.</t> | ||||
| <t>In particular, we would like to thank the following people who contribu | ||||
| ted | ||||
| to the creation of this document or one of its predecessor documents: | ||||
| <contact fullname="Adam Roach"/>, <contact fullname="Allison Mankin"/>, | ||||
| <contact fullname="Bernie Hoeneisen"/>, <contact fullname="Bill Fenner"/>, | ||||
| <contact fullname="Carsten Bormann"/>, <contact fullname="Eve Schooler"/>, | ||||
| <contact fullname="Flemming Andreasen"/>, <contact fullname="Gonzalo Camar | ||||
| illo"/>, | ||||
| <contact fullname="Jörg Ott"/>, <contact fullname="John Elwell"/>, | ||||
| <contact fullname="Jon Peterson"/>, <contact fullname="Jonathan Lennox"/>, | ||||
| <contact fullname="Jonathan Rosenberg"/>, <contact fullname="Keith Drage"/ | ||||
| >, | ||||
| <contact fullname="Peter Parnes"/>, <contact fullname="Rob Lanphier"/>, | ||||
| <contact fullname="Ross Finlayson"/>, <contact fullname="Sean Olson"/>, | ||||
| <contact fullname="Spencer Dawkins"/>, <contact fullname="Steve Casner"/>, | ||||
| <contact fullname="Steve Hanna"/>, <contact fullname="Van Jacobson"/>.</t> | ||||
| </section> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 467 change blocks. | ||||
| 2037 lines changed or deleted | 1822 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/ | ||||