rfc8856xml2.original.xml | rfc8856.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="UTF-8"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | ||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | nsus="true" docName="draft-ietf-bfcpbis-rfc4583bis-27" indexInclude="true" ipr=" | |||
trust200902" number="8856" obsoletes="4583" prepTime="2021-01-17T13:35:34" scrip | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth= | |||
"4" tocInclude="true" xml:lang="en"> | ||||
<rfc category="std" ipr="trust200902" docName="draft-ietf-bfcpbis-rfc4583bis-27" | <link href="https://datatracker.ietf.org/doc/draft-ietf-bfcpbis-rfc4583bis-27" | |||
obsoletes="4583"> | rel="prev"/> | |||
<link href="https://dx.doi.org/10.17487/rfc8856" rel="alternate"/> | ||||
<?rfc strict="yes"?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
<?rfc toc="yes"?> | <front> | |||
<?rfc tocdepth="4"?> | <title abbrev="SDP Format for BFCP Streams">Session Description Protocol (SD | |||
<?rfc symrefs="no"?> | P) Format for Binary Floor Control Protocol (BFCP) Streams</title> | |||
<?rfc sortrefs="yes" ?> | <seriesInfo name="RFC" value="8856" stream="IETF"/> | |||
<?rfc compact="yes" ?> | <author initials="G." surname="Camarillo" fullname="Gonzalo Camarillo"> | |||
<?rfc subcompact="no" ?> | <organization showOnFrontPage="true">Ericsson</organization> | |||
<?rfc symrefs="yes" ?> | <address> | |||
<postal> | ||||
<front> | <street>Hirsalantie 11</street> | |||
<title abbrev="BFCP">Session Description Protocol (SDP) Format for Binary Floo | ||||
r Control Protocol (BFCP) Streams</title> | ||||
<author initials="G." surname="Camarillo" fullname="Gonzalo Camarillo"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Hirsalantie 11</street> | ||||
<city>FI-02420 Jorvas</city> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>Gonzalo.Camarillo@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Tom Kristensen" initials="T." surname="Kristensen"> | ||||
<organization>Cisco</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Philip Pedersens vei 1</street> | ||||
<city>NO-1366 Lysaker</city> | ||||
<country>Norway</country> | ||||
</postal> | ||||
<email>tomkrist@cisco.com, tomkri@ifi.uio.no</email> | ||||
</address> | ||||
</author> | ||||
<author initials="C.H." surname="Holmberg" fullname="Christer Holmberg"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Hirsalantie 11</street> | ||||
<code>02420</code> | <code>02420</code> | |||
<city>Jorvas</city> | <city>Jorvas</city> | |||
<country>Finland</country> | <country>Finland</country> | |||
</postal> | </postal> | |||
<email>christer.holmberg@ericsson.com</email> | <email>Gonzalo.Camarillo@ericsson.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Tom Kristensen" initials="T." surname="Kristensen"> | ||||
<date year="2018"/> | <organization abbrev="Jotron" showOnFrontPage="true">Jotron AS</organizati | |||
on> | ||||
<area>Real-time Applications and Infrastructure</area> | <address> | |||
<workgroup>BFCPbis Working Group</workgroup> | <postal> | |||
<street>Ringdalskogen 8</street> | ||||
<keyword>floor control</keyword> | <code>3270</code> | |||
<keyword>BFCP</keyword> | <city>Larvik</city> | |||
<keyword>SDP</keyword> | <country>Norway</country> | |||
</postal> | ||||
<abstract> | <email>tom.kristensen@jotron.com, tomkri@ifi.uio.no</email> | |||
<t>This document defines the Session Description Protocol (SDP) offer/answer | </address> | |||
procedures for negotiating and establishing Binary Floor Control Protocol (BFCP) | </author> | |||
streams.</t> | <author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | |||
<t>This document obsoletes RFC 4583. Changes from RFC 4583 are summarized in | <organization showOnFrontPage="true">Ericsson</organization> | |||
Section 14.</t> | <address> | |||
<!-- Ensure correct section #, as xref is no | <postal> | |||
t allowed in abstract --> | <street>Hirsalantie 11</street> | |||
</abstract> | <code>02420</code> | |||
</front> | <city>Jorvas</city> | |||
<country>Finland</country> | ||||
<middle> | </postal> | |||
<section title="Introduction"> | <email>christer.holmberg@ericsson.com</email> | |||
<t>As discussed in the BFCP (Binary Floor Control Protocol) specification <x | </address> | |||
ref target="I-D.ietf-bfcpbis-rfc4582bis"/>, a | </author> | |||
<date month="01" year="2021"/> | ||||
<keyword>floor control</keyword> | ||||
<keyword>BFCP</keyword> | ||||
<keyword>SDP</keyword> | ||||
<abstract pn="section-abstract"> | ||||
<t indent="0" pn="section-abstract-1">This document defines the Session De | ||||
scription Protocol (SDP) | ||||
offer/answer procedures for negotiating and establishing Binary Floor | ||||
Control Protocol (BFCP) streams.</t> | ||||
<t indent="0" pn="section-abstract-2">This document obsoletes RFC 4583.</t | ||||
> | ||||
</abstract> | ||||
<boilerplate> | ||||
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
"exclude" pn="section-boilerplate.1"> | ||||
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
> | ||||
<t indent="0" pn="section-boilerplate.1-1"> | ||||
This is an Internet Standards Track document. | ||||
</t> | ||||
<t indent="0" pn="section-boilerplate.1-2"> | ||||
This document is a product of the Internet Engineering Task Force | ||||
(IETF). It represents the consensus of the IETF community. It has | ||||
received public review and has been approved for publication by | ||||
the Internet Engineering Steering Group (IESG). Further | ||||
information on Internet Standards is available in Section 2 of | ||||
RFC 7841. | ||||
</t> | ||||
<t indent="0" pn="section-boilerplate.1-3"> | ||||
Information about the current status of this document, any | ||||
errata, and how to provide feedback on it may be obtained at | ||||
<eref target="https://www.rfc-editor.org/info/rfc8856" brackets="non | ||||
e"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
ude" pn="section-boilerplate.2"> | ||||
<name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
<t indent="0" pn="section-boilerplate.2-1"> | ||||
Copyright (c) 2021 IETF Trust and the persons identified as the | ||||
document authors. All rights reserved. | ||||
</t> | ||||
<t indent="0" pn="section-boilerplate.2-2"> | ||||
This document is subject to BCP 78 and the IETF Trust's Legal | ||||
Provisions Relating to IETF Documents | ||||
(<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
"/>) in effect on the date of | ||||
publication of this document. Please review these documents | ||||
carefully, as they describe your rights and restrictions with | ||||
respect to this document. Code Components extracted from this | ||||
document must include Simplified BSD License text as described in | ||||
Section 4.e of the Trust Legal Provisions and are provided without | ||||
warranty as described in the Simplified BSD License. | ||||
</t> | ||||
</section> | ||||
</boilerplate> | ||||
<toc> | ||||
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
n="section-toc.1"> | ||||
<name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
c.1-1"> | ||||
<li pn="section-toc.1-1.1"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der | ||||
ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-introduction"> | ||||
Introduction</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.2"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref der | ||||
ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-conventions">C | ||||
onventions</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3"> | ||||
<t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref der | ||||
ivedContent="3" format="counter" sectionFormat="of" target="section-3"/>. <xref | ||||
derivedContent="" format="title" sectionFormat="of" target="name-floor-control- | ||||
roles">Floor Control Roles</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4"> | ||||
<t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form | ||||
at="counter" sectionFormat="of" target="section-4"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-fields-in-the-m-line">Fields in th | ||||
e "m=" Line</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5"> | ||||
<t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form | ||||
at="counter" sectionFormat="of" target="section-5"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-sdp-attributes">SDP Attributes</xr | ||||
ef></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.5.2"> | ||||
<li pn="section-toc.1-1.5.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent= | ||||
"5.1" format="counter" sectionFormat="of" target="section-5.1"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-sdp-floorctrl-attribut | ||||
e">SDP 'floorctrl' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent= | ||||
"5.2" format="counter" sectionFormat="of" target="section-5.2"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-sdp-confid-attribute"> | ||||
SDP 'confid' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent= | ||||
"5.3" format="counter" sectionFormat="of" target="section-5.3"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-sdp-userid-attribute"> | ||||
SDP 'userid' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent= | ||||
"5.4" format="counter" sectionFormat="of" target="section-5.4"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-sdp-floorid-attribute" | ||||
>SDP 'floorid' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.5.2.5"> | ||||
<t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent= | ||||
"5.5" format="counter" sectionFormat="of" target="section-5.5"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-sdp-bfcpver-attribute" | ||||
>SDP 'bfcpver' Attribute</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.6"> | ||||
<t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form | ||||
at="counter" sectionFormat="of" target="section-6"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-multiplexing-considerations">Multi | ||||
plexing Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.7"> | ||||
<t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form | ||||
at="counter" sectionFormat="of" target="section-7"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-bfcp-connection-management">BFCP C | ||||
onnection Management</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.7.2"> | ||||
<li pn="section-toc.1-1.7.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent= | ||||
"7.1" format="counter" sectionFormat="of" target="section-7.1"/>. <xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-tcp-connection-managem | ||||
ent">TCP Connection Management</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.8"> | ||||
<t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form | ||||
at="counter" sectionFormat="of" target="section-8"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-tls-dtls-considerations">TLS/DTLS | ||||
Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.9"> | ||||
<t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form | ||||
at="counter" sectionFormat="of" target="section-9"/>. <xref derivedContent="" f | ||||
ormat="title" sectionFormat="of" target="name-ice-considerations">ICE Considerat | ||||
ions</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10"> | ||||
<t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" fo | ||||
rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-sdp-offer-answer-procedures">SDP | ||||
Offer/Answer Procedures</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.10.2"> | ||||
<li pn="section-toc.1-1.10.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent | ||||
="10.1" format="counter" sectionFormat="of" target="section-10.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-generating-the-init | ||||
ial-sdp-">Generating the Initial SDP Offer</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent | ||||
="10.2" format="counter" sectionFormat="of" target="section-10.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-generating-the-sdp- | ||||
answer">Generating the SDP Answer</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.3.1"><xref derivedContent | ||||
="10.3" format="counter" sectionFormat="of" target="section-10.3"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-offerer-processing- | ||||
of-the-s">Offerer Processing of the SDP Answer</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.10.2.4.1"><xref derivedContent | ||||
="10.4" format="counter" sectionFormat="of" target="section-10.4"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-modifying-the-sessi | ||||
on">Modifying the Session</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.11"> | ||||
<t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" fo | ||||
rmat="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-examples">Examples</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.12"> | ||||
<t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" fo | ||||
rmat="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-security-considerations">Securit | ||||
y Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13"> | ||||
<t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" fo | ||||
rmat="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-iana-considerations">IANA Consid | ||||
erations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.13.2"> | ||||
<li pn="section-toc.1-1.13.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.1.1"><xref derivedContent | ||||
="13.1" format="counter" sectionFormat="of" target="section-13.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-registration-of-sdp | ||||
-proto-v">Registration of SDP 'proto' Values</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.2.1"><xref derivedContent | ||||
="13.2" format="counter" sectionFormat="of" target="section-13.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-registration-of-the | ||||
-sdp-flo">Registration of the SDP 'floorctrl' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13.2.3"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.3.1"><xref derivedContent | ||||
="13.3" format="counter" sectionFormat="of" target="section-13.3"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-registration-of-the | ||||
-sdp-con">Registration of the SDP 'confid' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13.2.4"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.4.1"><xref derivedContent | ||||
="13.4" format="counter" sectionFormat="of" target="section-13.4"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-registration-of-the | ||||
-sdp-use">Registration of the SDP 'userid' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13.2.5"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.5.1"><xref derivedContent | ||||
="13.5" format="counter" sectionFormat="of" target="section-13.5"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-registration-of-the | ||||
-sdp-floo">Registration of the SDP 'floorid' Attribute</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.13.2.6"> | ||||
<t indent="0" pn="section-toc.1-1.13.2.6.1"><xref derivedContent | ||||
="13.6" format="counter" sectionFormat="of" target="section-13.6"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-registration-of-the | ||||
-sdp-bfc">Registration of the SDP 'bfcpver' Attribute</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.14"> | ||||
<t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" fo | ||||
rmat="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-changes-from-rfc-4583">Changes f | ||||
rom RFC 4583</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15"> | ||||
<t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" fo | ||||
rmat="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent="" | ||||
format="title" sectionFormat="of" target="name-references">References</xref></t | ||||
> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.15.2"> | ||||
<li pn="section-toc.1-1.15.2.1"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.1.1"><xref derivedContent | ||||
="15.1" format="counter" sectionFormat="of" target="section-15.1"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-normative-reference | ||||
s">Normative References</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.15.2.2"> | ||||
<t indent="0" pn="section-toc.1-1.15.2.2.1"><xref derivedContent | ||||
="15.2" format="counter" sectionFormat="of" target="section-15.2"/>. <xref deri | ||||
vedContent="" format="title" sectionFormat="of" target="name-informative-referen | ||||
ces">Informative References</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.16"> | ||||
<t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="" form | ||||
at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent=" | ||||
" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgeme | ||||
nts</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.17"> | ||||
<t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="" form | ||||
at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent=" | ||||
" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add | ||||
resses</xref></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
</toc> | ||||
</front> | ||||
<middle> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | ||||
<name slugifiedName="name-introduction">Introduction</name> | ||||
<t indent="0" pn="section-1-1">As discussed in the BFCP (Binary Floor Cont | ||||
rol Protocol) specification <xref target="RFC8855" format="default" sectionForma | ||||
t="of" derivedContent="RFC8855"/>, a | ||||
given BFCP client needs a set of data in order to establish a BFCP connectio n to a floor control server. This data includes | given BFCP client needs a set of data in order to establish a BFCP connectio n to a floor control server. This data includes | |||
the transport address of the server, the conference identifier, and the user identifier.</t> | the transport address of the server, the conference identifier, and the user identifier.</t> | |||
<t>One way for clients to obtain this information is to use an SDP offer/ans | <t indent="0" pn="section-1-2">One way for clients to obtain this informat | |||
wer <xref target="RFC3264"/> exchange. | ion is to use a Session | |||
Description Protocol (SDP) offer/answer exchange <xref target="RFC3264" fo | ||||
rmat="default" sectionFormat="of" derivedContent="RFC3264"/>. | ||||
This document specifies how to encode this information in the SDP session de scriptions that are part of such an offer/answer | This document specifies how to encode this information in the SDP session de scriptions that are part of such an offer/answer | |||
exchange.</t> | exchange.</t> | |||
<t>User agents typically use the offer/answer model to establish a number of | <t indent="0" pn="section-1-3">User agents typically use the offer/answer | |||
media streams of different types. | model to establish a number of media streams of different types. | |||
Following this model, a BFCP connection is described as any other media stre | Following this model, a BFCP connection is described as any other media stre | |||
am by using an SDP 'm' line, possibly | am by using an SDP "m=" line, possibly | |||
followed by a number of SDP lines that also apply to the BFCP connection.</t > | followed by a number of SDP lines that also apply to the BFCP connection.</t > | |||
<t><xref target="sec:m-line"/> defines how the field values in 'm' line repr | <t indent="0" pn="section-1-4"><xref target="sec_m-line" format="default" | |||
esenting a BFCP connection are set.</t> | sectionFormat="of" derivedContent="Section 4"/> defines how the field | |||
<t><xref target="sec:attributes"/> defines SDP attributes that are used when | values in an "m=" line representing a BFCP connection are set.</t> | |||
negotiating a BFCP connection.</t> | <t indent="0" pn="section-1-5"><xref target="sec_attributes" format="defau | |||
<t><xref target="sec:mux-cons"/> defines multiplexing considerations for a B | lt" sectionFormat="of" derivedContent="Section 5"/> defines SDP attributes that | |||
FCP connection.</t> | are used when negotiating a BFCP connection.</t> | |||
<t><xref target="sec:bfcp-connection"/> defines procedures for managing a BF | <t indent="0" pn="section-1-6"><xref target="sec_mux-cons" format="default | |||
CP connection.</t> | " sectionFormat="of" derivedContent="Section 6"/> defines multiplexing considera | |||
<t><xref target="sec:authentication"/> defines TLS and DTLS considerations w | tions for a BFCP connection.</t> | |||
hen negotiating a BFCP connection.</t> | <t indent="0" pn="section-1-7"><xref target="sec_bfcp-connection" format=" | |||
<t><xref target="sec:ice-considerations"/> defines the Interactive Connectiv | default" sectionFormat="of" derivedContent="Section 7"/> defines procedures for | |||
ity Establishment (ICE) | managing a BFCP connection.</t> | |||
<xref target="RFC8445"/> considerations when negotiating a BFCP connection.< | <t indent="0" pn="section-1-8"><xref target="sec_authentication" format="d | |||
/t> | efault" sectionFormat="of" derivedContent="Section 8"/> defines TLS and DTLS con | |||
<t><xref target="sec:oa-offer-answer-proc"/> defines the SDP offer/answer pr | siderations when negotiating a BFCP connection.</t> | |||
ocedures for negotiating a BFCP connection.</t> | <t indent="0" pn="section-1-9"><xref target="sec_ice-considerations" forma | |||
</section> | t="default" sectionFormat="of" derivedContent="Section 9"/> defines | |||
considerations regarding Interactive Connectivity Establishment (ICE) | ||||
<section title="Conventions"> | <xref target="RFC8445" format="default" sectionFormat="of" derivedContent="R | |||
<t> | FC8445"/> when negotiating a BFCP connection.</t> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOUL | <t indent="0" pn="section-1-10"><xref target="sec_oa-offer-answer-proc" fo | |||
D", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | rmat="default" sectionFormat="of" derivedContent="Section 10"/> defines | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as described | the SDP offer/answer procedures for negotiating a BFCP connection.</t> | |||
in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> | <t indent="0" pn="section-1-11">This document obsoletes RFC 4583 <xref tar | |||
when, and only when, they appear in all capitals, as shown here. | get="RFC4583" format="default" sectionFormat="of" derivedContent="RFC4583"/>. <x | |||
</t> | ref target="sec_changes" format="default" sectionFormat="of" derivedContent="Sec | |||
</section> | tion 14"/> summarizes the changes | |||
from RFC 4583.</t> | ||||
<section title="Floor Control Roles" anchor="sec:server-determination"> | </section> | |||
<t> | <section numbered="true" toc="include" removeInRFC="false" pn="section-2"> | |||
<name slugifiedName="name-conventions">Conventions</name> | ||||
<t indent="0" pn="section-2-1">The key words "<bcp14>MUST</bcp14>", "<bcp1 | ||||
4>MUST NOT</bcp14>", | ||||
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | ||||
"<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | ||||
"<bcp14>SHOULD NOT</bcp14>", | ||||
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | ||||
to be interpreted as described in BCP 14 <xref target="RFC2119" format="def | ||||
ault" sectionFormat="of" derivedContent="RFC2119"/> | ||||
<xref target="RFC8174" format="default" sectionFormat="of" derivedConten | ||||
t="RFC8174"/> when, and only when, they appear in all capitals, | ||||
as shown here.</t> | ||||
</section> | ||||
<section anchor="sec_server-determination" numbered="true" toc="include" rem | ||||
oveInRFC="false" pn="section-3"> | ||||
<name slugifiedName="name-floor-control-roles">Floor Control Roles</name> | ||||
<t indent="0" pn="section-3-1"> | ||||
When two endpoints establish a BFCP stream, they need to determine which of them acts as a floor control client and which acts as a floor control server. | When two endpoints establish a BFCP stream, they need to determine which of them acts as a floor control client and which acts as a floor control server. | |||
</t> | </t> | |||
<t> | <t indent="0" pn="section-3-2"> | |||
Once the roles have been determined, the roles will apply to all BFCP-con trolled streams associated with the BFCP stream. | Once the roles have been determined, the roles will apply to all BFCP-con trolled streams associated with the BFCP stream. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec_m-line" numbered="true" toc="include" removeInRFC="fals | ||||
<section title="Fields in the 'm' Line" anchor="sec:m-line"> | e" pn="section-4"> | |||
<t>According to the SDP specification <xref target="RFC4566"/>, the 'm' line | <name slugifiedName="name-fields-in-the-m-line">Fields in the "m=" Line</n | |||
format is the following:</t> | ame> | |||
<t><list style="hanging"> | <t indent="0" pn="section-4-1">According to the SDP specification <xref ta | |||
<t><![CDATA[m=<media> <port> <proto> <fmt> ...]]></t> | rget="RFC8866" format="default" sectionFormat="of" derivedContent="RFC8866"/>, t | |||
</list></t> | he "m=" line format is as follows:</t> | |||
<t>This section describes how to generate an 'm' line of an SDP Media Descri | <sourcecode name="" type="sdp" markers="false" pn="section-4-2"> | |||
ption ('m' section) describing a BFCP stream.</t> | m=<media> <port> <proto> <fmt> ...</sourcecode> | |||
<t>The media field MUST have a value of "application".</t> | <t indent="0" pn="section-4-3">This section describes how to generate an " | |||
<t>The port field is set depending on the value of the proto field, as expla | m=" line of an SDP Media Description ("m=" section) describing a BFCP stream.</t | |||
ined below. A port field value of zero has the standard SDP meaning (i.e., reje | > | |||
ction of the media stream) regardless of the proto field.</t> | <t indent="0" pn="section-4-4">The media field <bcp14>MUST</bcp14> have a | |||
<t><list style="hanging"> | value of "application".</t> | |||
<t>When TCP is used as the transport, the port field is set following th | <t indent="0" pn="section-4-5">Depending on the value of the proto field, | |||
e rules in <xref target="RFC4145"/>. Depending on the value of the 'setup' attri | the port field is set as explained below. A port field value of zero has the st | |||
bute (discussed in <xref target="sec:tcp-connection"/>), the port field contains | andard SDP meaning (i.e., rejection of the media stream), regardless of the prot | |||
the port to which the remote endpoint will direct BFCP messages, or in the case | o field.</t> | |||
where the endpoint will initiate the connection towards the remote endpoint, sh | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-6 | |||
ould be set to a value of 9.</t> | "> | |||
<t>When UDP is used as the transport, the port field contains the port t | <li pn="section-4-6.1">When TCP is used as the transport, the port field | |||
o which the remote endpoint will direct BFCP messages regardless of the value of | is set following | |||
the 'setup' attribute.</t> | the rules in <xref target="RFC4145" format="default" sectionFormat="of" d | |||
</list></t> | erivedContent="RFC4145"/>. Depending on | |||
<t>This document defines five values for the proto field: TCP/BFCP, TCP/DTLS | the value of the 'setup' attribute (defined in <xref target="RFC4145" for | |||
/BFCP, TCP/TLS/BFCP, UDP/BFCP, and UDP/TLS/BFCP.</t> | mat="default" sectionFormat="of" derivedContent="RFC4145"/> and discussed in <xr | |||
<t>The proto value are used as described below:</t> | ef target="sec_tcp-connection" format="default" sectionFormat="of" derivedConten | |||
<t><list style="hanging"> | t="Section 7.1"/>), the port field contains the port to which the remote endpoin | |||
<t>'TCP/BFCP' is used for TCP transport of BFCP without TLS encryption, an | t will direct BFCP messages, or in the case where the endpoint will initiate the | |||
d is backward compatible with RFC 4583 compliant endpoints.</t> | connection towards the remote endpoint, should be set to a value of 9.</li> | |||
<t>'TCP/TLS/BFCP' is used for TCP transport of BFCP with TLS encryption, a | <li pn="section-4-6.2">When UDP is used as the transport, the port field | |||
nd is backward compatible with RFC 4583 compliant endpoints that support TLS.</t | contains the port to which the remote endpoint will direct BFCP messages, regar | |||
> | dless of the value of the 'setup' attribute.</li> | |||
<t>'UDP/BFCP' is used for UDP transport of BFCP without DTLS encryption <x | </ul> | |||
ref target="RFC6347"/>.</t> | <t indent="0" pn="section-4-7">This document defines five values for the p | |||
<t>'UDP/TLS/BFCP' is used for UDP transport of BFCP with DTLS encryption. | roto field: 'TCP/BFCP', 'TCP/DTLS/BFCP', 'TCP/TLS/BFCP', 'UDP/BFCP', and 'UDP/TL | |||
This is one of the options when ICE is used (<xref target="sec:ice-consideration | S/BFCP'.</t> | |||
s"/>). It can also be used without ICE | <t indent="0" pn="section-4-8">The proto values are used as described belo | |||
when backward compatibility with RFC 4583 compliant endpoints is not r | w:</t> | |||
equired.</t> | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-9 | |||
<t>'TCP/DTLS/BFCP' is used for TCP transport of BFCP with DTLS encryption, | "> | |||
running on top of TCP using the framing method defined in <xref target="RFC4571 | <li pn="section-4-9.1">'TCP/BFCP' is used for TCP transport of BFCP with | |||
"/>, with DTLS packets being | out TLS | |||
sent and received instead of RTP/RTCP packets using the shim defined i | encryption and is backward compatible with endpoints that are compliant w | |||
n RFC 4571 such that the length field defined in RFC 4571 precedes each DTLS mes | ith RFC 4583.</li> | |||
sage. This is one of the options when | <li pn="section-4-9.2">'TCP/TLS/BFCP' is used for TCP transport of BFCP | |||
ICE is used (<xref target="sec:ice-considerations"/>). It can also be | with TLS | |||
used without ICE when backward compatibility with RFC 4583 compliant endpoints i | encryption and is backward compatible with endpoints that are | |||
s not required.</t> | compliant with RFC 4583 and support TLS.</li> | |||
</list></t> | <li pn="section-4-9.3">'UDP/BFCP' is used for UDP transport of BFCP with | |||
<t>The fmt (format) list is not applicable to BFCP. The fmt list of 'm' line | out DTLS encryption <xref target="RFC6347" format="default" sectionFormat="of" d | |||
s in the case of any proto field value related to BFCP MUST contain a single "*" | erivedContent="RFC6347"/>.</li> | |||
character. If the the fmt list contains any other value it MUST be ignored.</t> | <li pn="section-4-9.4">'UDP/TLS/BFCP' is used for UDP transport of BFCP | |||
<t>The following is an example of an 'm' line for a BFCP connection:</t> | with DTLS | |||
<figure> | encryption. This is one of the options when ICE is used (<xref target="se | |||
<artwork> | c_ice-considerations" format="default" sectionFormat="of" derivedContent="Sectio | |||
m=application 50000 TCP/TLS/BFCP * | n 9"/>). It can also be used without ICE | |||
</artwork> | when backward compatibility with endpoints compliant with RFC 4583 is | |||
</figure> | not required.</li> | |||
</section> | <li pn="section-4-9.5">'TCP/DTLS/BFCP' is used for TCP transport of BFCP | |||
with DTLS encryption, running on top of TCP using the framing method defined in | ||||
<section title="SDP Attributes" anchor="sec:attributes"> | <xref target="RFC4571" format="default" sectionFormat="of" derivedContent="RFC4 | |||
<section title="SDP 'floorctrl' Attribute" anchor="sec:floorctrl-attr"> | 571"/>, with DTLS packets being | |||
<t> | sent and received instead of RTP / RTP Control Protocol (RTCP) | |||
packets, such that the LENGTH field defined in RFC 4571 precedes | ||||
each DTLS message. This is one of the options when | ||||
ICE is used (<xref target="sec_ice-considerations" format="default" se | ||||
ctionFormat="of" derivedContent="Section 9"/>). It can also be used without ICE | ||||
when backward | ||||
compatibility with endpoints compliant with RFC 4583 is not required.</li | ||||
> | ||||
</ul> | ||||
<t indent="0" pn="section-4-10">The fmt (format) list is not applicable to | ||||
BFCP. The fmt list of "m=" lines in the case of any proto field value related t | ||||
o BFCP <bcp14>MUST</bcp14> contain a single "*" character. If the fmt list conta | ||||
ins any other value, it <bcp14>MUST</bcp14> be ignored.</t> | ||||
<t indent="0" pn="section-4-11">The following is an example of an "m=" lin | ||||
e for a BFCP connection:</t> | ||||
<sourcecode name="" type="sdp" markers="false" pn="section-4-12"> | ||||
m=application 50000 TCP/TLS/BFCP *</sourcecode> | ||||
</section> | ||||
<section anchor="sec_attributes" numbered="true" toc="include" removeInRFC=" | ||||
false" pn="section-5"> | ||||
<name slugifiedName="name-sdp-attributes">SDP Attributes</name> | ||||
<section anchor="sec_floorctrl-attr" numbered="true" toc="include" removeI | ||||
nRFC="false" pn="section-5.1"> | ||||
<name slugifiedName="name-sdp-floorctrl-attribute">SDP 'floorctrl' Attri | ||||
bute</name> | ||||
<t indent="0" pn="section-5.1-1"> | ||||
This section defines the SDP 'floorctrl' media-level attribute. The att ribute is used to determine the floor control roles (client and server) for the endpoints associated with | This section defines the SDP 'floorctrl' media-level attribute. The att ribute is used to determine the floor control roles (client and server) for the endpoints associated with | |||
the BFCP stream. | the BFCP stream. | |||
</t> | </t> | |||
<figure> | <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-5. | |||
<artwork type='abnf'> | 1-2"> | |||
Attribute Name: floorctrl | <li pn="section-5.1-2.1"> | |||
<dl indent="3" newline="false" spacing="normal" pn="section-5.1-2.1. | ||||
Attribute Value: floor-control | 1"> | |||
<dt pn="section-5.1-2.1.1.1">Attribute Name:</dt> | ||||
Usage Level: media | <dd pn="section-5.1-2.1.1.2">floorctrl</dd> | |||
<dt pn="section-5.1-2.1.1.3">Attribute Value:</dt> | ||||
Charset Dependent: No | <dd pn="section-5.1-2.1.1.4">floor-control</dd> | |||
<dt pn="section-5.1-2.1.1.5">Usage Level:</dt> | ||||
Mux Category: TBD | <dd pn="section-5.1-2.1.1.6">media</dd> | |||
<dt pn="section-5.1-2.1.1.7">Charset Dependent:</dt> | ||||
The Augmented BNF syntax [RFC5234] for the attribute is: | <dd pn="section-5.1-2.1.1.8">No</dd> | |||
<dt pn="section-5.1-2.1.1.9">Mux Category:</dt> | ||||
floor-control = role *(SP role) | <dd pn="section-5.1-2.1.1.10">TBD</dd> | |||
role = "c-only" / "s-only" / "c-s" | </dl> | |||
</artwork> | </li> | |||
</figure> | </ul> | |||
<t>An endpoint includes the attribute to indicate the role(s) it would be | <t indent="0" pn="section-5.1-3">The Augmented BNF syntax <xref target=" | |||
willing to perform for the BFCP-controlled media streams:</t> | RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> for the | |||
<t><list style="hanging"> | attribute is:</t> | |||
<t hangText="c-only:">The endpoint is willing to act as floor control | <sourcecode name="" type="abnf" markers="false" pn="section-5.1-4"> | |||
client.</t> | floor-control = role *(SP role) | |||
<t hangText="s-only:">The endpoint is willing to act as floor control | role = "c-only" / "s-only" / "c-s"</sourcecode> | |||
server only.</t> | <t indent="0" pn="section-5.1-5">An endpoint includes the attribute to i | |||
</list></t> | ndicate the role(s) it would be willing to perform for the BFCP-controlled media | |||
<t> | streams:</t> | |||
When inserted in an offer, the offerer MAY indicate multiple attribute v | <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-5. | |||
alues ("c-only" and "s-only"). When inserted in an answer, the answerer MUST | 1-6"> | |||
<li pn="section-5.1-6.1"> | ||||
<dl newline="false" spacing="normal" indent="3" pn="section-5.1-6.1. | ||||
1"> | ||||
<dt pn="section-5.1-6.1.1.1">c-only:</dt> | ||||
<dd pn="section-5.1-6.1.1.2">The endpoint is willing to act as a f | ||||
loor control client.</dd> | ||||
<dt pn="section-5.1-6.1.1.3">s-only:</dt> | ||||
<dd pn="section-5.1-6.1.1.4">The endpoint is willing to act as a f | ||||
loor control server only.</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t indent="0" pn="section-5.1-7"> | ||||
When inserted in an offer, the offerer <bcp14>MAY</bcp14> indicate multi | ||||
ple attribute values ("c-only" and "s-only"). When inserted in an answer, the an | ||||
swerer <bcp14>MUST</bcp14> | ||||
indicate only one attribute value: "c-only" or "s-only". The answerer in dicates the role taken by the answerer. The offerer will then take the | indicate only one attribute value: "c-only" or "s-only". The answerer in dicates the role taken by the answerer. The offerer will then take the | |||
opposite role. | opposite role. | |||
</t> | </t> | |||
<t> | <t indent="0" pn="section-5.1-8"> | |||
In <xref target="RFC4583"/>, there was a third attribute specified, "c-s | In <xref target="RFC4583" format="default" sectionFormat="of" derivedCon | |||
", which meant that an endpoint was willing to act as both floor control client | tent="RFC4583"/>, there was a third | |||
and | attribute specified, "c-s", which meant that an endpoint was willing | |||
to act as both a floor control client and a | ||||
floor control server at the same time for the BFCP stream, taking differ ent roles for different BFCP-controlled media streams. The feature was underspec ified | floor control server at the same time for the BFCP stream, taking differ ent roles for different BFCP-controlled media streams. The feature was underspec ified | |||
and implemented in different ways, in particular many implementations in | and implemented in different ways; in particular, many implementations | |||
terpreted "c-s” to mean that the endpoint is willing to act as either client or | interpreted "c-s" to mean that the endpoint is willing to act as | |||
server | either a client or a server | |||
(equivalent to “c-only s-only”). An implementation compliant to this spe | (equivalent to "c-only s-only"). An implementation compliant with this s | |||
cification MUST NOT include the "c-s" floorctl attribute value in an offer or in | pecification <bcp14>MUST NOT</bcp14> include the "c-s" 'floorctrl' attribute val | |||
an answer, | ue in an offer or in an answer | |||
but MUST accept the attribute value in an offer and process it as equiva | but <bcp14>MUST</bcp14> accept the attribute value in an offer and | |||
lent to "c-only s-only" (or "s-only c-only"). Also, as an implementation complia | process it as equivalent to "c-only s-only" (or "s-only c-only"). Also, a | |||
nt to | s an implementation compliant with | |||
this specification is only allowed to include one role, either 'c-only' | this specification is only allowed to include one role -- either | |||
or 's-conly', in an answer, each endpoint will only take one role, and as a resu | "c-only" or "s-only" -- in an answer, each endpoint will only take one ro | |||
lt | le, and as a result | |||
the endpoint will take the same role for each BFCP-controlled media stre am associated with the BFCP stream. | the endpoint will take the same role for each BFCP-controlled media stre am associated with the BFCP stream. | |||
</t> | </t> | |||
<t> | <t indent="0" pn="section-5.1-9"> | |||
<xref target="tab-roles"/> shows the roles that the answerer is allowed | <xref target="tab-roles" format="default" sectionFormat="of" derivedCont | |||
to take, based on what roles the offerer has | ent="Table 1"/> shows the roles that the answerer is allowed to take, based on w | |||
hat roles the offerer has | ||||
indicated that it is willing to take. | indicated that it is willing to take. | |||
</t> | </t> | |||
<texttable title="Roles" anchor="tab-roles"> | <table anchor="tab-roles" align="center" pn="table-1"> | |||
<ttcol align="center">Offerer</ttcol> | <name slugifiedName="name-roles">Roles</name> | |||
<ttcol align="center">Answerer</ttcol> | <thead> | |||
<tr> | ||||
<c>c-only</c> | <th align="center" colspan="1" rowspan="1">Offerer</th> | |||
<c>s-only</c> | <th align="center" colspan="1" rowspan="1">Answerer</th> | |||
</tr> | ||||
<c>s-only</c> | </thead> | |||
<c>c-only</c> | <tbody> | |||
<tr> | ||||
<c>c-s</c> | <td align="center" colspan="1" rowspan="1">c-only</td> | |||
<c>c-only</c> | <td align="center" colspan="1" rowspan="1">s-only</td> | |||
</tr> | ||||
<c>c-s</c> | <tr> | |||
<c>s-only</c> | <td align="center" colspan="1" rowspan="1">s-only</td> | |||
</texttable> | <td align="center" colspan="1" rowspan="1">c-only</td> | |||
<t> | </tr> | |||
Endpoints compliant with <xref target="RFC4583"/> might not include the | <tr> | |||
'floorctrl' attribute in offers and answerer. | <td align="center" colspan="1" rowspan="1">c-s</td> | |||
If the 'floorctrl' attribute is not present, in order to be interoperabl | <td align="center" colspan="1" rowspan="1">c-only</td> | |||
e with such endpoints, the offerer will act as floor control client | </tr> | |||
and the answerer will act as floor control server. | <tr> | |||
</t> | <td align="center" colspan="1" rowspan="1">c-s</td> | |||
<t> | <td align="center" colspan="1" rowspan="1">s-only</td> | |||
The SDP Offer/Answer procedures for the 'floorctrl' attribute are define | </tr> | |||
d in <xref target="sec:oa-offer-answer-proc"/>. | </tbody> | |||
</t> | </table> | |||
<t>The following is an example of a 'floorctrl' attribute in an offer:</t> | <t indent="0" pn="section-5.1-11"> | |||
<figure> | Endpoints compliant with <xref target="RFC4583" format="default" section | |||
<artwork> | Format="of" derivedContent="RFC4583"/> might not include the 'floorctrl' attribu | |||
a=floorctrl:c-only s-only | te in offers and answers. | |||
</artwork> | If the 'floorctrl' attribute is not present, in order to be | |||
</figure> | interoperable with such endpoints, the offerer will act as a floor contro | |||
</section> | l client | |||
and the answerer will act as a floor control server. | ||||
<section title="SDP 'confid' Attribute" anchor="sec:confid-attr"> | </t> | |||
<t> | <t indent="0" pn="section-5.1-12"> | |||
The SDP Offer/Answer procedures for the 'floorctrl' attribute are define | ||||
d in <xref target="sec_oa-offer-answer-proc" format="default" sectionFormat="of" | ||||
derivedContent="Section 10"/>. | ||||
</t> | ||||
<t indent="0" pn="section-5.1-13">The following is an example of a 'floo | ||||
rctrl' attribute in an offer:</t> | ||||
<sourcecode name="" type="sdp" markers="false" pn="section-5.1-14"> | ||||
a=floorctrl:c-only s-only</sourcecode> | ||||
</section> | ||||
<section anchor="sec_confid-attr" numbered="true" toc="include" removeInRF | ||||
C="false" pn="section-5.2"> | ||||
<name slugifiedName="name-sdp-confid-attribute">SDP 'confid' Attribute</ | ||||
name> | ||||
<t indent="0" pn="section-5.2-1"> | ||||
This section defines the SDP 'confid' media-level attribute. The attribute is used by a floor control server | This section defines the SDP 'confid' media-level attribute. The attribute is used by a floor control server | |||
to convey the conference ID value to the floor control client, using decim al integer representation. | to convey the conference ID value to the floor control client, using decim al integer representation. | |||
</t> | </t> | |||
<figure> | <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-5. | |||
<artwork type='abnf'><![CDATA[ | 2-2"> | |||
Attribute Name: confid | <li pn="section-5.2-2.1"> | |||
<dl indent="3" newline="false" spacing="normal" pn="section-5.2-2.1. | ||||
Attribute Value: conference-id | 1"> | |||
<dt pn="section-5.2-2.1.1.1">Attribute Name:</dt> | ||||
Usage Level: media | <dd pn="section-5.2-2.1.1.2">confid</dd> | |||
<dt pn="section-5.2-2.1.1.3">Attribute Value:</dt> | ||||
Charset Dependent: No | <dd pn="section-5.2-2.1.1.4">conference-id</dd> | |||
<dt pn="section-5.2-2.1.1.5">Usage Level:</dt> | ||||
Mux Category: TBD | <dd pn="section-5.2-2.1.1.6">media</dd> | |||
<dt pn="section-5.2-2.1.1.7">Charset Dependent:</dt> | ||||
The Augmented BNF syntax [RFC5234] for the attribute is: | <dd pn="section-5.2-2.1.1.8">No</dd> | |||
<dt pn="section-5.2-2.1.1.9">Mux Category:</dt> | ||||
conference-id = 1*DIGIT | <dd pn="section-5.2-2.1.1.10">TBD</dd> | |||
</dl> | ||||
DIGIT = <DIGIT defined in [RFC5234]> | </li> | |||
</ul> | ||||
The maximum value of the attribute is determined by the | <t indent="0" pn="section-5.2-3">The Augmented BNF syntax <xref target=" | |||
COMMON-HEADER format [I-D.ietf-bfcpbis-rfc4582bis]. | RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> for the | |||
attribute is:</t> | ||||
]]></artwork> | <sourcecode name="" type="abnf" markers="false" pn="section-5.2-4"> | |||
</figure> | conference-id = 1*DIGIT | |||
<t> | ||||
The SDP Offer/Answer procedures for the 'confid' attribute are defined in | ||||
<xref target="sec:oa-offer-answer-proc"/>. | ||||
</t> | ||||
</section> | ||||
<section title="SDP 'userid' Attribute" anchor="sec:userid-attr"> | DIGIT = <DIGIT as defined in [RFC5234]></sourcecode> | |||
<t> | <t indent="0" pn="section-5.2-5">The maximum value of the attribute is d | |||
This section defines the SDP userid' media-level attribute. The attribute | etermined by the | |||
is used by a floor control server | COMMON-HEADER format <xref target="RFC8855" format="default" sectionFormat | |||
="of" derivedContent="RFC8855"/>.</t> | ||||
<t indent="0" pn="section-5.2-6"> | ||||
The SDP Offer/Answer procedures for the 'confid' attribute are defined in | ||||
<xref target="sec_oa-offer-answer-proc" format="default" sectionFormat="of" deri | ||||
vedContent="Section 10"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="sec_userid-attr" numbered="true" toc="include" removeInRF | ||||
C="false" pn="section-5.3"> | ||||
<name slugifiedName="name-sdp-userid-attribute">SDP 'userid' Attribute</ | ||||
name> | ||||
<t indent="0" pn="section-5.3-1"> | ||||
This section defines the SDP 'userid' media-level attribute. The attribute | ||||
is used by a floor control server | ||||
to convey the user ID value to the floor control client, using decimal int eger representation. | to convey the user ID value to the floor control client, using decimal int eger representation. | |||
</t> | </t> | |||
<figure> | <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-5. | |||
<artwork type='abnf'><![CDATA[ | 3-2"> | |||
Attribute Name: userid | <li pn="section-5.3-2.1"> | |||
<dl indent="3" newline="false" spacing="normal" pn="section-5.3-2.1. | ||||
Attribute Value: user-id | 1"> | |||
<dt pn="section-5.3-2.1.1.1">Attribute Name:</dt> | ||||
Usage Level: media | <dd pn="section-5.3-2.1.1.2">userid</dd> | |||
<dt pn="section-5.3-2.1.1.3">Attribute Value:</dt> | ||||
Charset Dependent: No | <dd pn="section-5.3-2.1.1.4">user-id</dd> | |||
<dt pn="section-5.3-2.1.1.5">Usage Level:</dt> | ||||
Mux Category: TBD | <dd pn="section-5.3-2.1.1.6">media</dd> | |||
<dt pn="section-5.3-2.1.1.7">Charset Dependent:</dt> | ||||
The Augmented BNF syntax [RFC5234] for the attribute is: | <dd pn="section-5.3-2.1.1.8">No</dd> | |||
<dt pn="section-5.3-2.1.1.9">Mux Category:</dt> | ||||
user-id = 1*DIGIT | <dd pn="section-5.3-2.1.1.10">TBD</dd> | |||
</dl> | ||||
DIGIT = <DIGIT defined in [RFC5234]> | </li> | |||
</ul> | ||||
The maximum value of the attribute is determined by the | <t indent="0" pn="section-5.3-3">The Augmented BNF syntax <xref target=" | |||
COMMON-HEADER format [I-D.ietf-bfcpbis-rfc4582bis]. | RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> for the | |||
attribute is:</t> | ||||
]]></artwork> | <sourcecode name="" type="abnf" markers="false" pn="section-5.3-4"> | |||
</figure> | user-id = 1*DIGIT | |||
<t> | ||||
The SDP Offer/Answer procedures for the 'userid' attribute are defined in | ||||
<xref target="sec:oa-offer-answer-proc"/>. | ||||
</t> | ||||
</section> | ||||
<section title="SDP 'floorid' Attribute" anchor="sec:floorid-attr"> | ||||
<t> | ||||
This section defines the SDP 'floorid' media-level attribute. The attribut | ||||
e conveys a floor identifier, using decimal integer | ||||
representation, and optionally pointers to one or more BFCP-controlled med | ||||
ia streams. | ||||
</t> | ||||
<figure> | ||||
<artwork type='abnf'><![CDATA[ | ||||
Attribute Name: floorid | ||||
Attribute Value: floor-id | ||||
Usage Level: media | ||||
Charset Dependent: No | ||||
Mux Category: TBD | ||||
The Augmented BNF syntax [RFC5234] for the attribute is: | ||||
floor-id = 1*DIGIT SP "mstrm:" token *(SP token) | ||||
DIGIT = <DIGIT defined in [RFC5234]> | ||||
token = <token defined in [RFC4566]> | ||||
The maximum value of the attribute is determined by the | ||||
FLOOR-ID format [I-D.ietf-bfcpbis-rfc4582bis]. | ||||
]]></artwork> | ||||
</figure> | ||||
<t> | ||||
The floor identifier value is the integer representation of the Floor ID t | ||||
o be used in BFCP. Each media stream | ||||
pointer value is associated with an SDP 'label' attribute <xref target="RF | ||||
C4574"/> of a media stream. | ||||
</t> | ||||
<t> | ||||
The SDP Offer/Answer procedures for the 'floorid' attribute are defined in | ||||
<xref target="sec:oa-offer-answer-proc"/>. | ||||
</t> | ||||
<t><list style="empty"> | ||||
<t> | ||||
Note: In <xref target="RFC4583"/> 'm-stream' was erroneously used in <xref | ||||
target="sec:example"/>. Although the example was non-normative, it is | ||||
implemented by some vendors and occurs in cases where the endpoint is will | ||||
ing to act as a server. Therefore, it is RECOMMENDED to support parsing and | ||||
interpreting 'm-stream' the same way as 'mstrm' when receiving. | ||||
</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="SDP 'bfcpver' Attribute" anchor="sec:bfcp-version-attr"> | ||||
<t> | ||||
This section defines the SDP 'bfcpver' media-level attribute. The attribut | ||||
e is used to negotiate the | ||||
BFCP version, using decimal integer representation. | ||||
</t> | ||||
<t> | ||||
The Augmented BNF syntax <xref target="RFC5234"/> for the attributes is: | ||||
</t> | ||||
<figure> | ||||
<artwork type='abnf'><![CDATA[ | ||||
Attribute Name: bfcpver | ||||
Attribute Value: bfcp-version | ||||
Usage Level: media | ||||
Charset Dependent: No | ||||
Mux Category: TBD | ||||
The Augmented BNF syntax [RFC5234] for the attribute is: | ||||
bfcp-version = version *(SP version) | ||||
version = 1*DIGIT | ||||
DIGIT = <DIGIT defined in [RFC5234]> | DIGIT = <DIGIT as defined in [RFC5234]></sourcecode> | |||
<t indent="0" pn="section-5.3-5">The maximum value of the attribute is d | ||||
etermined by the | ||||
COMMON-HEADER format <xref target="RFC8855" format="default" sectionFormat | ||||
="of" derivedContent="RFC8855"/>.</t> | ||||
<t indent="0" pn="section-5.3-6"> | ||||
The SDP Offer/Answer procedures for the 'userid' attribute are defined in | ||||
<xref target="sec_oa-offer-answer-proc" format="default" sectionFormat="of" deri | ||||
vedContent="Section 10"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="sec_floorid-attr" numbered="true" toc="include" removeInR | ||||
FC="false" pn="section-5.4"> | ||||
<name slugifiedName="name-sdp-floorid-attribute">SDP 'floorid' Attribute | ||||
</name> | ||||
<t indent="0" pn="section-5.4-1"> | ||||
This section defines the SDP 'floorid' media-level attribute. The | ||||
attribute is used to convey a floor identifier, using decimal integer | ||||
representation, and, optionally, pointers to one or more BFCP-controlled | ||||
media streams.</t> | ||||
<ul empty="true" bare="false" indent="3" spacing="normal" pn="section-5. | ||||
4-2"> | ||||
<li pn="section-5.4-2.1"> | ||||
<dl indent="3" newline="false" spacing="normal" pn="section-5.4-2.1. | ||||
1"> | ||||
<dt pn="section-5.4-2.1.1.1">Attribute Name:</dt> | ||||
<dd pn="section-5.4-2.1.1.2">floorid</dd> | ||||
<dt pn="section-5.4-2.1.1.3">Attribute Value:</dt> | ||||
<dd pn="section-5.4-2.1.1.4">floor-id</dd> | ||||
<dt pn="section-5.4-2.1.1.5">Usage Level:</dt> | ||||
<dd pn="section-5.4-2.1.1.6">media</dd> | ||||
<dt pn="section-5.4-2.1.1.7">Charset Dependent:</dt> | ||||
<dd pn="section-5.4-2.1.1.8">No</dd> | ||||
<dt pn="section-5.4-2.1.1.9">Mux Category:</dt> | ||||
<dd pn="section-5.4-2.1.1.10">TBD</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t indent="0" pn="section-5.4-3">The Augmented BNF syntax <xref target=" | ||||
RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> for the | ||||
attribute is:</t> | ||||
<sourcecode name="" type="abnf" markers="false" pn="section-5.4-4"> | ||||
floor-id = 1*DIGIT SP "mstrm:" token *(SP token) | ||||
The maximum value of the attribute is determined by the | DIGIT = <DIGIT as defined in [RFC5234]> | |||
COMMON-HEADER format [I-D.ietf-bfcpbis-rfc4582bis]. | token = <token as defined in [RFC8866]></sourcecode> | |||
<t indent="0" pn="section-5.4-5">The maximum value of the attribute is d | ||||
etermined by the | ||||
FLOOR-ID format <xref target="RFC8855" format="default" sectionFormat="of" | ||||
derivedContent="RFC8855"/>.</t> | ||||
<t indent="0" pn="section-5.4-6">The floor identifier value is the integ | ||||
er representation of the | ||||
Floor ID field value <xref target="RFC8855" format="default" sectionForm | ||||
at="of" derivedContent="RFC8855"/> to be used in BFCP. Each media stream | ||||
pointer value is associated with an SDP 'label' attribute <xref target="RF | ||||
C4574" format="default" sectionFormat="of" derivedContent="RFC4574"/> of a media | ||||
stream. | ||||
</t> | ||||
<t indent="0" pn="section-5.4-7"> | ||||
The SDP Offer/Answer procedures for the 'floorid' attribute are defined in | ||||
<xref target="sec_oa-offer-answer-proc" format="default" sectionFormat="of" der | ||||
ivedContent="Section 10"/>. | ||||
</t> | ||||
<aside pn="section-5.4-8"> | ||||
<t indent="0" pn="section-5.4-8.1">Note: In the first SDP example in | ||||
<xref target="RFC4583" sectionFormat="of" section="9" format="default" deriv | ||||
edLink="https://rfc-editor.org/rfc/rfc4583#section-9" derivedContent="RFC4583"/> | ||||
, 'm-stream' | ||||
was erroneously listed. Although the example was non‑normative, it is | ||||
implemented by some vendors and occurs in cases where the endpoint is will | ||||
ing to act as a server. Therefore, it is <bcp14>RECOMMENDED</bcp14> to support p | ||||
arsing and | ||||
interpreting 'm-stream' the same way as 'mstrm' when receiving.</t> | ||||
</aside> | ||||
</section> | ||||
<section anchor="sec_bfcp-version-attr" numbered="true" toc="include" remo | ||||
veInRFC="false" pn="section-5.5"> | ||||
<name slugifiedName="name-sdp-bfcpver-attribute">SDP 'bfcpver' Attribute | ||||
</name> | ||||
<t indent="0" pn="section-5.5-1"> | ||||
This section defines the SDP 'bfcpver' media-level attribute. The | ||||
attribute is used to negotiate the BFCP version, using decimal integer | ||||
representation. | ||||
</t> | ||||
<ul empty="true" bare="false" indent="3" spacing="normal" pn="section-5. | ||||
5-2"> | ||||
<li pn="section-5.5-2.1"> | ||||
<dl indent="3" newline="false" spacing="normal" pn="section-5.5-2.1. | ||||
1"> | ||||
<dt pn="section-5.5-2.1.1.1">Attribute Name:</dt> | ||||
<dd pn="section-5.5-2.1.1.2">bfcpver</dd> | ||||
<dt pn="section-5.5-2.1.1.3">Attribute Value:</dt> | ||||
<dd pn="section-5.5-2.1.1.4">bfcp-version</dd> | ||||
<dt pn="section-5.5-2.1.1.5">Usage Level:</dt> | ||||
<dd pn="section-5.5-2.1.1.6">media</dd> | ||||
<dt pn="section-5.5-2.1.1.7">Charset Dependent:</dt> | ||||
<dd pn="section-5.5-2.1.1.8">No</dd> | ||||
<dt pn="section-5.5-2.1.1.9">Mux Category:</dt> | ||||
<dd pn="section-5.5-2.1.1.10">TBD</dd> | ||||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t indent="0" pn="section-5.5-3">The Augmented BNF syntax <xref target=" | ||||
RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> for the | ||||
attribute is:</t> | ||||
<sourcecode name="" type="abnf" markers="false" pn="section-5.5-4"> | ||||
bfcp-version = version *(SP version) | ||||
version = 1*DIGIT | ||||
]]></artwork> | DIGIT = <DIGIT as defined in [RFC5234]></sourcecode> | |||
</figure> | <t indent="0" pn="section-5.5-5">The maximum value of the attribute is d | |||
<t> | etermined by the | |||
COMMON-HEADER format <xref target="RFC8855" format="default" sectionFormat | ||||
="of" derivedContent="RFC8855"/>.</t> | ||||
<t indent="0" pn="section-5.5-6"> | ||||
An endpoint uses the 'bfcpver' attribute to convey the version(s) of BFCP supported by the endpoint, using integer values. For a given version, the attrib ute | An endpoint uses the 'bfcpver' attribute to convey the version(s) of BFCP supported by the endpoint, using integer values. For a given version, the attrib ute | |||
value representing the version MUST match the "Version" field that would b e presented in the BFCP COMMON-HEADER <xref target="I-D.ietf-bfcpbis-rfc4582bis" />. | value representing the version <bcp14>MUST</bcp14> match the version ("Ver ") field that would be presented in the BFCP COMMON‑HEADER <xref target="RFC8855 " format="default" sectionFormat="of" derivedContent="RFC8855"/>. | |||
The BFCP version that will eventually be used will be conveyed with a BFCP -level Hello/HelloAck. | The BFCP version that will eventually be used will be conveyed with a BFCP -level Hello/HelloAck. | |||
</t> | </t> | |||
<t> | <t indent="0" pn="section-5.5-7"> | |||
Endpoints compliant with <xref target="RFC4583"/> might not always include | Endpoints compliant with <xref target="RFC4583" format="default" sectionFo | |||
the 'bfcpver' | rmat="of" derivedContent="RFC4583"/> might not always include the 'bfcpver' | |||
attribute in offers and answers. The attribute value, if present, MUST be | attribute in offers and answers. The attribute value, if present, <bcp14>M | |||
in accordance with | UST</bcp14> be in accordance with | |||
the definition of the Version field in <xref target="I-D.ietf-bfcpbis-rfc4 | the definition of the version ("Ver") field in <xref target="RFC8855" form | |||
582bis"/>. If the | at="default" sectionFormat="of" derivedContent="RFC8855"/>. If the | |||
attribute is not present, endpoints MUST assume a default value in accorda | attribute is not present, endpoints <bcp14>MUST</bcp14> assume a default v | |||
nce with | alue in accordance with | |||
<xref target="I-D.ietf-bfcpbis-rfc4582bis"/>: when used over a reliable tr | <xref target="RFC8855" format="default" sectionFormat="of" derivedContent= | |||
ansport the default | "RFC8855"/>: when used over a reliable transport, the default | |||
attribute value is "1", and when used over an unreliable transport the def | attribute value is "1", and when used over an unreliable transport, the de | |||
ault attribute value | fault attribute value | |||
is "2". The value is inferred from the transport specified in the 'm' line | is "2". The value is inferred from the transport specified in the "m=" lin | |||
(<xref target="sec:m-line"/>) | e (<xref target="sec_m-line" format="default" sectionFormat="of" derivedContent= | |||
of the 'm' section associated with the stream. | "Section 4"/>) | |||
</t> | of the "m=" section associated with the stream. | |||
<t> | </t> | |||
The SDP Offer/Answer procedures for the 'bfcpver' attribute are defined in | <t indent="0" pn="section-5.5-8"> | |||
<xref target="sec:oa-offer-answer-proc"/>. | The SDP Offer/Answer procedures for the 'bfcpver' attribute are defined in | |||
</t> | <xref target="sec_oa-offer-answer-proc" format="default" sectionFormat="of" der | |||
</section> | ivedContent="Section 10"/>. | |||
</t> | ||||
</section> | ||||
</section> | </section> | |||
<section title="Multiplexing Considerations" anchor="sec:mux-cons"> | <section anchor="sec_mux-cons" numbered="true" toc="include" removeInRFC="fa | |||
<t> | lse" pn="section-6"> | |||
<xref target="I-D.ietf-mmusic-sdp-bundle-negotiation"/> defines how multip | <name slugifiedName="name-multiplexing-considerations">Multiplexing Consid | |||
lexing of multiple media streams can be negotiated. This specification does not | erations</name> | |||
define | <t indent="0" pn="section-6-1"> | |||
how BFCP streams can be multiplexed with other media streams. Therefore, a | <xref target="RFC8843" format="default" sectionFormat="of" derivedContent= | |||
BFCP stream MUST NOT be associated with a BUNDLE group <xref target="I-D.ietf-m | "RFC8843"/> defines how multiplexing of multiple media streams can be negotiated | |||
music-sdp-bundle-negotiation"/>. | . This specification does not define | |||
how BFCP streams can be multiplexed with other media streams. Therefore, a | ||||
BFCP stream <bcp14>MUST NOT</bcp14> be associated with a BUNDLE group <xref tar | ||||
get="RFC8843" format="default" sectionFormat="of" derivedContent="RFC8843"/>. | ||||
Note that BFCP-controlled media streams might be multiplexed with other me dia streams. | Note that BFCP-controlled media streams might be multiplexed with other me dia streams. | |||
</t> | </t> | |||
<t> | <t indent="0" pn="section-6-2"> | |||
<xref target="I-D.ietf-mmusic-sdp-mux-attributes"/> defines the mux catego | <xref target="RFC8859" format="default" sectionFormat="of" derivedContent= | |||
ries for the SDP | "RFC8859"/> defines the mux categories for the SDP | |||
attributes defined in this specification, except for the 'bfcpver' attribu | attributes defined in this specification, except for the 'bfcpver' attribu | |||
te. <xref target="tab:mux-tbd"/> defines the mux category | te. <xref target="tab_mux-tbd" format="default" sectionFormat="of" derivedConten | |||
t="Table 2"/> defines the mux category | ||||
for the 'bfcpver' attribute: | for the 'bfcpver' attribute: | |||
</t> | </t> | |||
<texttable title="Multiplexing Attribute Analysis" anchor="tab:mux-tbd"> | <table anchor="tab_mux-tbd" align="center" pn="table-2"> | |||
<ttcol>Name</ttcol> | <name slugifiedName="name-multiplexing-attribute-anal">Multiplexing Attr | |||
<ttcol>Notes</ttcol> | ibute Analysis</name> | |||
<ttcol>Level</ttcol> | <thead> | |||
<ttcol>Mux Category</ttcol> | <tr> | |||
<th align="left" colspan="1" rowspan="1">Name</th> | ||||
<c>bfcpver</c> | <th align="left" colspan="1" rowspan="1">Notes</th> | |||
<c>Needs further analysis in a separate specification</c> | <th align="left" colspan="1" rowspan="1">Level</th> | |||
<c>M</c> | <th align="left" colspan="1" rowspan="1">Mux Category</th> | |||
<c>TBD</c> | </tr> | |||
</texttable> | </thead> | |||
</section> | <tbody> | |||
<tr> | ||||
<section title="BFCP Connection Management" anchor="sec:bfcp-connection"> | <td align="left" colspan="1" rowspan="1">bfcpver</td> | |||
<t> | <td align="left" colspan="1" rowspan="1">Needs further analysis in a | |||
separate specification</td> | ||||
<td align="left" colspan="1" rowspan="1">M</td> | ||||
<td align="left" colspan="1" rowspan="1">TBD</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="sec_bfcp-connection" numbered="true" toc="include" removeIn | ||||
RFC="false" pn="section-7"> | ||||
<name slugifiedName="name-bfcp-connection-management">BFCP Connection Mana | ||||
gement</name> | ||||
<t indent="0" pn="section-7-1"> | ||||
BFCP streams can use TCP or UDP as the underlying transport. Endpoints exc hanging BFCP messages over UDP send the BFCP messages towards the peer | BFCP streams can use TCP or UDP as the underlying transport. Endpoints exc hanging BFCP messages over UDP send the BFCP messages towards the peer | |||
using the connection address and port provided in the SDP 'c' and 'm' line | using the connection address and port provided in the SDP "c=" and "m=" li | |||
s. TCP connection management is more complicated and is described in | nes. TCP connection management is more complicated and is described in | |||
the following Section. | the following section. | |||
</t> | </t> | |||
<t><list style="empty"> | <aside pn="section-7-2"> | |||
<t>Note: When using Interactive Connectivity Establishment (ICE) <xref tar | <t indent="0" pn="section-7-2.1">Note: When using Interactive Connectivi | |||
get="RFC8445"/>, TCP/DTLS/BFCP, or UDP/TLS/BFCP, the straight-forward procedures | ty Establishment | |||
for connection management as UDP/BFCP described above apply. | (ICE) <xref target="RFC8445" format="default" sectionFormat="of" derivedC | |||
TCP/TLS/BFCP follows the same procedures as TCP/BFCP and is described belo | ontent="RFC8445"/>, TCP/DTLS/BFCP, or | |||
w.</t> | UDP/TLS/BFCP, the straightforward procedures for connection management | |||
</list></t> | via UDP/BFCP, as described above, apply. | |||
<section title="TCP Connection Management" anchor="sec:tcp-connection"> | TCP/TLS/BFCP follows the same procedures as TCP/BFCP and is described bel | |||
<t> | ow.</t> | |||
The management of the TCP connection used to transport BFCP messages is | </aside> | |||
performed using the SDP 'setup' and 'connection' attributes <xref target="RFC414 | <section anchor="sec_tcp-connection" numbered="true" toc="include" removeI | |||
5"/>. | nRFC="false" pn="section-7.1"> | |||
<name slugifiedName="name-tcp-connection-management">TCP Connection Mana | ||||
gement</name> | ||||
<t indent="0" pn="section-7.1-1"> | ||||
The management of the TCP connection used to transport BFCP messages is | ||||
performed using the SDP 'setup' and 'connection' attributes <xref target="RFC414 | ||||
5" format="default" sectionFormat="of" derivedContent="RFC4145"/>. | ||||
The 'setup' attribute indicates which of the endpoints initiates the TCP connection. The 'connection' attribute handles TCP connection re-establishment. | The 'setup' attribute indicates which of the endpoints initiates the TCP connection. The 'connection' attribute handles TCP connection re-establishment. | |||
</t> | ||||
<t indent="0" pn="section-7.1-2"> | ||||
The BFCP specification <xref target="RFC8855" format="default" sectionFo | ||||
rmat="of" derivedContent="RFC8855"/> describes a number of situations when the T | ||||
CP connection between a floor control client | ||||
and the floor control server needs to be re-established. However, | ||||
<xref target="RFC8855" format="default" sectionFormat="of" derivedContent | ||||
="RFC8855"/> does not describe the re-establishment | ||||
process, because this process | ||||
depends on how the connection was established in the first | ||||
place. Endpoints using the offer/answer mechanism follow the following | ||||
rules.</t> | ||||
<t indent="0" pn="section-7.1-3"> | ||||
When the existing TCP connection is closed and re-established following | ||||
the rules in <xref target="RFC8855" format="default" sectionFormat="of" derivedC | ||||
ontent="RFC8855"/>, the floor control client | ||||
<bcp14>MUST</bcp14> send an offer towards the floor control server in or | ||||
der to re-establish the connection. If a TCP connection cannot deliver a BFCP me | ||||
ssage and times out, | ||||
the endpoint that attempted to send the message (i.e., the one that dete | ||||
cted the TCP timeout) <bcp14>MUST</bcp14> send an offer in order to re-establish | ||||
the TCP connection. | ||||
</t> | ||||
<t indent="0" pn="section-7.1-4"> | ||||
Endpoints that use the offer/answer mechanism to negotiate TCP connectio | ||||
ns <bcp14>MUST</bcp14> support the 'setup' and 'connection' attributes. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="sec_authentication" numbered="true" toc="include" removeInR | ||||
FC="false" pn="section-8"> | ||||
<name slugifiedName="name-tls-dtls-considerations">TLS/DTLS Considerations | ||||
</name> | ||||
<t indent="0" pn="section-8-1"> | ||||
When DTLS is used with UDP, the generic procedures defined in <xref targe | ||||
t="RFC8842" sectionFormat="of" section="5" format="default" derivedLink="https:/ | ||||
/rfc-editor.org/rfc/rfc8842#section-5" derivedContent="RFC8842"/> | ||||
<bcp14>MUST</bcp14> be followed. | ||||
</t> | </t> | |||
<t> | <t indent="0" pn="section-8-2"> | |||
The BFCP specification <xref target="I-D.ietf-bfcpbis-rfc4582bis"/> desc | When TLS is used with TCP, once the underlying connection is established, | |||
ribes a number of situations when the TCP connection between a floor control cli | the answerer always acts as the TLS server. | |||
ent | If the TCP connection is lost, the active endpoint <xref target="RFC4583" | |||
and the floor control server needs to be re-established. However, that s | format="default" sectionFormat="of" derivedContent="RFC4583"/> is responsible f | |||
pecification does not describe the re-establishment process because this process | or re-establishing the TCP connection. Unless a new | |||
depends on how the connection was established in the first place. Endpoi | TLS connection is negotiated, subsequent SDP offers and answers will not | |||
nts using the offer/answer mechanism follow the following rules. | impact the previously negotiated TLS roles. | |||
</t> | </t> | |||
<t> | <aside pn="section-8-3"> | |||
When the existing TCP connection is closed and re-established following | <t indent="0" pn="section-8-3.1">Note: For TLS, it was decided to keep t | |||
the rules in <xref target="I-D.ietf-bfcpbis-rfc4582bis"/>, the floor control cli | he original procedures in <xref target="RFC4583" format="default" sectionFormat= | |||
ent | "of" derivedContent="RFC4583"/> to determine which endpoint | |||
MUST send an offer towards the floor control server in order to re-estab | acts as the TLS server, in order to retain backward compatibility.</t> | |||
lish the connection. If a TCP connection cannot deliver a BFCP message and times | </aside> | |||
out, | </section> | |||
the endpoint that attempted to send the message (i.e., the one that dete | <section anchor="sec_ice-considerations" numbered="true" toc="include" remov | |||
cted the TCP timeout) MUST send an offer in order to re-establish the TCP connec | eInRFC="false" pn="section-9"> | |||
tion. | <name slugifiedName="name-ice-considerations">ICE Considerations</name> | |||
<t indent="0" pn="section-9-1"> | ||||
Generic SDP offer/answer procedures for ICE are defined in <xref target="R | ||||
FC8839" format="default" sectionFormat="of" derivedContent="RFC8839"/>. | ||||
</t> | </t> | |||
<t> | <t indent="0" pn="section-9-2"> | |||
Endpoints that use the offer/answer mechanism to negotiate TCP connectio | When BFCP is used with UDP-based ICE candidates <xref target="RFC8445" for | |||
ns MUST support the 'setup' and 'connection' attributes. | mat="default" sectionFormat="of" derivedContent="RFC8445"/>, the procedures for | |||
UDP/TLS/BFCP are used. | ||||
</t> | </t> | |||
</section> | <t indent="0" pn="section-9-3"> | |||
</section> | When BFCP is used with TCP-based ICE candidates <xref target="RFC6544" for | |||
mat="default" sectionFormat="of" derivedContent="RFC6544"/>, the procedures for | ||||
<section title="TLS/DTLS Considerations" anchor="sec:authentication"> | TCP/DTLS/BFCP are used. | |||
<t> | </t> | |||
When DTLS is used with UDP, the generic procedures defined in Section 5 o | <t indent="0" pn="section-9-4"> | |||
f <xref target="I-D.ietf-mmusic-dtls-sdp"/> | Based on the procedures defined in <xref target="RFC8842" format="default" | |||
MUST be followed. | sectionFormat="of" derivedContent="RFC8842"/>, endpoints treat all ICE candidat | |||
</t> | e pairs associated with a BFCP stream on top of a DTLS association | |||
<t> | as part of the same DTLS association. Thus, there will only be one BFCP ha | |||
When TLS is used with TCP, once the underlying connection is established, | ndshake and one DTLS handshake | |||
the answerer always acts as the TLS server. | even if there are multiple valid candidate pairs, and even if BFCP media | |||
If the TCP connection is lost, the active endpoint <xref target="RFC4583" | is shifted between candidate pairs (including switching between UDP | |||
/> is responsible for re-establishing the TCP connection. Unless a new | candidate pairs and TCP candidate pairs) prior to nomination. If new | |||
TLS connection is negotiated, subsequent SDP offers and answers will not | candidates are added, they will also be part of the same DTLS association. | |||
impact the previously negotiated TLS roles. | </t> | |||
</t> | <t indent="0" pn="section-9-5"> | |||
<t><list style="empty"> | In order to maximize the likelihood of interoperability between the endpoi | |||
<t> | nts, all ICE-enabled BFCP-over-DTLS endpoints <bcp14>SHOULD</bcp14> | |||
Note: For TLS, it was decided to keep the original procedures in <xref | ||||
target="RFC4583"/> to determine which endpoint | ||||
acts as the TLS server in order to retain backwards compatibility. | ||||
</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="ICE Considerations" anchor="sec:ice-considerations"> | ||||
<t> | ||||
Generic SDP offer/answer procedures for Interactive Connectivity Establish | ||||
ment (ICE) are defined in <xref target="I-D.ietf-mmusic-ice-sip-sdp"/>. | ||||
</t> | ||||
<t> | ||||
When BFCP is used with UDP based ICE candidates <xref target="RFC8445"/> t | ||||
hen the procedures for UDP/TLS/BFCP are used. | ||||
</t> | ||||
<t> | ||||
When BFCP is used with TCP based ICE candidates <xref target="RFC6544"/> t | ||||
hen the procedures for TCP/DTLS/BFCP are used. | ||||
</t> | ||||
<t> | ||||
Based on the procedures defined in <xref target="I-D.ietf-mmusic-dtls-sdp" | ||||
/>, endpoints treat all ICE candidate pairs associated with a BFCP stream on top | ||||
of a DTLS association | ||||
as part of the same DTLS association. Thus, there will only be one BFCP ha | ||||
ndshake and one DTLS handshake even if there are multiple valid candidate pairs, | ||||
and if BFCP media is shifted between candidate pairs (including switching | ||||
between UDP to TCP candidate pairs) prior to nomination. If new candidates are a | ||||
dded, | ||||
they will also be part of the same DTLS association. | ||||
</t> | ||||
<t> | ||||
In order to maximize the likelihood of interoperability between the endpoi | ||||
nts, all ICE enabled BFCP-over-DTLS endpoints SHOULD | ||||
implement support for UDP/TLS/BFCP. | implement support for UDP/TLS/BFCP. | |||
</t> | ||||
<t> | ||||
When an SDP offer or answer conveys multiple ICE candidates for a BFCP str | ||||
eam, UDP based candidates SHOULD be included and | ||||
the default candidate SHOULD be chosen from one of those UDP candidates. I | ||||
f UDP transport is used for the default candidate, | ||||
then the 'm' line proto value MUST be 'UDP/TLS/BFCP'. If TCP transport is | ||||
used for the default candidate, the 'm' line proto | ||||
value MUST be 'TCP/DTLS/BFCP'. | ||||
</t> | ||||
<t><list style="empty"> | ||||
<t>Note: Usage of ICE with protocols other than UDP/TLS/BFCP and TCP/DTLS/ | ||||
BFCP is outside of scope for this specification.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="SDP Offer/Answer Procedures" anchor="sec:oa-offer-answer-proc" | ||||
> | ||||
<t> | ||||
This section defines the SDP offer/answer <xref target="RFC3264"/> procedu | ||||
res for negotiating and establishing a BFCP stream. | ||||
Generic procedures for DTLS are defined in <xref target="I-D.ietf-mmusic-d | ||||
tls-sdp"/>. Generic procedures for TLS are defined | ||||
in <xref target="RFC8122"/>. | ||||
</t> | ||||
<t> | ||||
This section only defines the BFCP-specific procedures. Unless explicitly | ||||
stated otherwise, the procedures apply to an 'm' section describing a BFCP strea | ||||
m. | ||||
If an offer or answer contains multiple 'm' sections describing BFCP strea | ||||
ms, the procedures are applied independently to each stream. | ||||
</t> | ||||
<t> | ||||
Within this document, 'initial offer' refers to the first offer, within an | ||||
SDP session (e.g. a SIP | ||||
dialog when the Session Initiation Protocol (SIP) <xref target="RFC3261"/> | ||||
is used to carry SDP) in which the offerer | ||||
indicates that it wants to negotiate the establishment of a BFCP stream. | ||||
</t> | ||||
<t> | ||||
If the 'm' line 'proto' value is 'TCP/TLS/BFCP', 'TCP/DTLS/BFCP' or 'UDP/T | ||||
LS/BFCP', the offerer and answerer follow the generic procedures | ||||
defined in <xref target="RFC8122"/>. | ||||
</t> | ||||
<t> | ||||
If the 'm' line proto value is 'TCP/BFCP', 'TCP/TLS/BFCP', 'TCP/DTLS/TCP' | ||||
or 'UDP/TLS/BFCP', the offerer and answerer | ||||
use the SDP 'setup' attribute according to the procedures in <xref target= | ||||
"RFC4145"/>. | ||||
</t> | ||||
<t> | ||||
If the 'm' line proto value is 'TCP/BFCP', 'TCP/TLS/BFCP' or 'TCP/DTLS/BFC | ||||
P', the offerer and anwerer use | ||||
the SDP 'connection' attribute according to the procedures in <xref target | ||||
="RFC4145"/>. | ||||
</t> | ||||
<t><list style="empty"> | ||||
<t>Note: The use of source-specific SDP parameters <xref target="RFC5576"/ | ||||
> is not defined for BFCP streams.</t> | ||||
</list></t> | ||||
<section title="Generating the Initial SDP Offer" anchor="oa-gen-initial-off | ||||
er"> | ||||
<t> | ||||
When the offerer creates an initial offer, the offerer MUST include an S | ||||
DP 'floorctrl' attribute (<xref target="sec:floorctrl-attr"/>) | ||||
and an SDP 'bfcpver' attribute (<xref target="sec:bfcp-version-attr"/>) | ||||
in the 'm' section. | ||||
</t> | </t> | |||
<t> | <t indent="0" pn="section-9-6"> | |||
In addition, if the offerer includes an SDP 'floorctrl' attribute with ' | When an SDP offer or answer conveys multiple ICE candidates for a BFCP str | |||
s-only' or 'c-s' attribute values in the offer, the offerer: | eam, UDP-based candidates <bcp14>SHOULD</bcp14> be included and | |||
the default candidate <bcp14>SHOULD</bcp14> be chosen from one of those UD | ||||
P candidates. If UDP transport is used for the default candidate, | ||||
then the "m=" line proto value <bcp14>MUST</bcp14> be 'UDP/TLS/BFCP'. If T | ||||
CP transport is used for the default candidate, the "m=" line proto | ||||
value <bcp14>MUST</bcp14> be 'TCP/DTLS/BFCP'. | ||||
</t> | </t> | |||
<t><list style="symbols"> | <aside pn="section-9-7"> | |||
<t>MUST include an SDP 'confid' attribute (<xref target="sec:confid-at | <t indent="0" pn="section-9-7.1">Note: Usage of ICE with protocols other | |||
tr"/>) in the 'm' section; and</t> | than UDP/TLS/BFCP and TCP/DTLS/BFCP is out of scope for this specification.</t> | |||
<t>MUST include an SDP 'userid' attribute (<xref target="sec:userid-at | </aside> | |||
tr"/>) in the 'm' section; and</t> | ||||
<t>MUST include an SDP 'floorid' attribute (<xref target="sec:floorid- | ||||
attr"/>) in the 'm' section; and</t> | ||||
<t>MUST include an SDP 'label' attribute (<xref target="RFC4574"/>) wi | ||||
th the 'm' section of each BFCP-controlled media stream.</t> | ||||
</list></t> | ||||
<t><list style="empty"> | ||||
<t> | ||||
Note: If the offerer includes an SDP 'floorctrl' attribute with a 'c-s | ||||
' attribute value, or both a 'c-only' and a 's-only' attribute value in the offe | ||||
r, | ||||
the attribute values above will only be used if it is determined (<xre | ||||
f target="sec:floorctrl-attr"/>) that the offerer will act as floor control serv | ||||
er. | ||||
</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section anchor="sec_oa-offer-answer-proc" numbered="true" toc="include" rem | ||||
<section title="Generating the SDP Answer" anchor="oa-gen-answer"> | oveInRFC="false" pn="section-10"> | |||
<t> | <name slugifiedName="name-sdp-offer-answer-procedures">SDP Offer/Answer Pr | |||
When the answerer receives an offer that contains an 'm' section describ | ocedures</name> | |||
ing a BFCP stream, the answerer MUST check whether it supports | <t indent="0" pn="section-10-1"> | |||
one or more of the BFCP versions supported by the offerer (<xref target= | This section defines the SDP offer/answer <xref target="RFC3264" format="d | |||
"sec:bfcp-version-attr"/>). If the answerer does not support | efault" sectionFormat="of" derivedContent="RFC3264"/> procedures for negotiating | |||
any of the BFCP versions, it MUST NOT accept the 'm' section. Otherwise, | and establishing a BFCP stream. | |||
if the answerer accepts the 'm' section, it: | Generic procedures for DTLS are defined in <xref target="RFC8842" format=" | |||
</t> | default" sectionFormat="of" derivedContent="RFC8842"/>. Generic procedures for T | |||
<t><list style="symbols"> | LS are defined | |||
<t>MUST insert a corresponding 'm' section in the answer, with an iden | in <xref target="RFC8122" format="default" sectionFormat="of" derivedConte | |||
tical 'm' line proto value <xref target="RFC3264"/>; and</t> | nt="RFC8122"/>. | |||
<t>MUST include a 'bfcpver' attribute in the 'm' section. The versions | ||||
indicated by the answer MUST be the same or a subset of the versions indicated | ||||
by the offerer in the corresponding offer; and</t> | ||||
<t>MUST, if the offer contained an SDP 'floorctrl' attribute, include | ||||
a 'floorctrl' attribute in the 'm' section.</t> | ||||
</list></t> | ||||
<t> | ||||
In addition, if the answerer includes an SDP 'floorctrl' attribute with | ||||
an 's-only' attribute value in the answer, the answerer: | ||||
</t> | </t> | |||
<t><list style="symbols"> | <t indent="0" pn="section-10-2"> | |||
<t>MUST include an SDP 'confid' attribute in the 'm' section; and</t> | This section only defines the BFCP-specific procedures. Unless explicitly | |||
<t>MUST include an SDP 'userid' attribute in the 'm' section; and</t> | stated otherwise, the procedures apply to an "m=" section describing a BFCP stre | |||
<t>MUST include an SDP 'floorid' attribute in the 'm' section; and</t> | am. | |||
<t>MUST include an SDP 'label' attribute in the 'm' section of each BF | If an offer or answer contains multiple "m=" sections describing BFCP stre | |||
CP-controlled media stream.</t> | ams, the procedures are applied independently to each stream. | |||
</list></t> | ||||
<t><list style="empty"> | ||||
<t> | ||||
Note: An offerer compliant with <xref target="RFC4583"/> might not inc | ||||
lude 'floorctrl' and 'bfcpver' attributes in offers, in which cases | ||||
the default values apply. | ||||
</t> | ||||
</list></t> | ||||
<t> | ||||
Once the answerer has sent the answer, the answerer: | ||||
</t> | </t> | |||
<t><list style="symbols"> | <t indent="0" pn="section-10-3"> | |||
<t>MUST, if the answerer is the active endpoint, and if a TCP connecti | Within this document, 'initial offer' refers to the first offer within | |||
on associated with the 'm' section is to be established (or re-established), | an SDP session (e.g., a Session Initiation Protocol (SIP) | |||
initiate the establishing of the TCP connection; and</t> | dialog when SIP <xref target="RFC3261" format="default" sectionFormat="of" | |||
<t>MUST, if the answerer is the active endpoint, and if an TLS/DTLS co | derivedContent="RFC3261"/> is used to carry SDP) in which the offerer | |||
nnection associated with the 'm' section is to be established (or re-established | indicates that it wants to negotiate the establishment of a BFCP stream. | |||
), | ||||
initiate the establishing of the TLS/DTLS connection (by sending a | ||||
ClientHello message).</t> | ||||
</list></t> | ||||
<t> | ||||
If the answerer does not accept the 'm' section in the offer, it MUST as | ||||
sign a zero port value to the 'm' line of the corresponding 'm' section in the a | ||||
nswer. | ||||
In addition, the answerer MUST NOT establish a TCP connection or a TLS/D | ||||
TLS connection associated with the 'm' section. | ||||
</t> | </t> | |||
</section> | <t indent="0" pn="section-10-4"> | |||
If the "m=" line 'proto' value is 'TCP/TLS/BFCP', 'TCP/DTLS/BFCP', or 'UDP | ||||
<section title="Offerer Processing of the SDP Answer" anchor="oa-offerer-pro | /TLS/BFCP', the offerer and answerer follow the generic procedures | |||
cessing-answer"> | defined in <xref target="RFC8122" format="default" sectionFormat="of" deri | |||
<t> | vedContent="RFC8122"/>. | |||
When the offerer receives an answer that contains an 'm' section with a | ||||
non-zero port value, describing a BFCP stream, the offerer: | ||||
</t> | </t> | |||
<t><list style="symbols"> | <t indent="0" pn="section-10-5"> | |||
<t>MUST, if the offerer is the active endpoint, and if a TCP connectio | If the "m=" line proto value is 'TCP/BFCP', 'TCP/TLS/BFCP', 'TCP/DTLS/TC | |||
n associated with the 'm' section is to be established (or re-established), | P', or 'UDP/TLS/BFCP', the offerer and answerer | |||
initiate the establishing of the TCP connection; and</t> | use the SDP 'setup' attribute according to the procedures in <xref target= | |||
<t>MUST, if the offerer is the active endpoint, and if an TLS/DTLS con | "RFC4145" format="default" sectionFormat="of" derivedContent="RFC4145"/>. | |||
nection associated with the 'm' section is to be established (or re-established) | ||||
, | ||||
initiate the establishing of the TLS/DTLS connection (by sending a | ||||
ClientHello message).</t> | ||||
</list></t> | ||||
<t> | ||||
Note: An answerer compliant with <xref target="RFC4583"/> might not incl | ||||
ude 'floorctrl' and 'bfcpver' attributes in answers, | ||||
in which cases the default values apply. | ||||
</t> | </t> | |||
<t> | <t indent="0" pn="section-10-6"> | |||
If the 'm' line in the answer contains a zero port value, or if the offe | If the "m=" line proto value is 'TCP/BFCP', 'TCP/TLS/BFCP', or 'TCP/DTLS/B | |||
rer for some other reason does not accept the answer (e.g., if the answerer only | FCP', the offerer and answerer use | |||
indicates support of BFCP versions not supported by the offerer), the of | the SDP 'connection' attribute according to the procedures in <xref target | |||
ferer MUST NOT establish a TCP connection or a TLS/DTLS connection associated wi | ="RFC4145" format="default" sectionFormat="of" derivedContent="RFC4145"/>. | |||
th the 'm' section. | ||||
</t> | </t> | |||
</section> | <aside pn="section-10-7"> | |||
<t indent="0" pn="section-10-7.1">Note: The use of source-specific SDP p | ||||
<section title="Modifying the Session" anchor="oa-mod-session"> | arameters <xref target="RFC5576" format="default" sectionFormat="of" derivedCont | |||
<t> | ent="RFC5576"/> is not defined for BFCP streams.</t> | |||
</aside> | ||||
<section anchor="oa-gen-initial-offer" numbered="true" toc="include" remov | ||||
eInRFC="false" pn="section-10.1"> | ||||
<name slugifiedName="name-generating-the-initial-sdp-">Generating the In | ||||
itial SDP Offer</name> | ||||
<t indent="0" pn="section-10.1-1"> | ||||
When the offerer creates an initial offer, the offerer <bcp14>MUST</bcp1 | ||||
4> include an SDP 'floorctrl' attribute (<xref target="sec_floorctrl-attr" forma | ||||
t="default" sectionFormat="of" derivedContent="Section 5.1"/>) | ||||
and an SDP 'bfcpver' attribute (<xref target="sec_bfcp-version-attr" for | ||||
mat="default" sectionFormat="of" derivedContent="Section 5.5"/>) in the "m=" sec | ||||
tion. | ||||
</t> | ||||
<t indent="0" pn="section-10.1-2"> | ||||
In addition, if the offerer includes an SDP 'floorctrl' attribute with " | ||||
s-only" or "c-s" attribute values in the offer, the offerer | ||||
</t> | ||||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | ||||
0.1-3"> | ||||
<li pn="section-10.1-3.1"> | ||||
<bcp14>MUST</bcp14> include an SDP 'confid' attribute (<xref target= | ||||
"sec_confid-attr" format="default" sectionFormat="of" derivedContent="Section 5. | ||||
2"/>) in the "m=" section,</li> | ||||
<li pn="section-10.1-3.2"> | ||||
<bcp14>MUST</bcp14> include an SDP 'userid' attribute (<xref target= | ||||
"sec_userid-attr" format="default" sectionFormat="of" derivedContent="Section 5. | ||||
3"/>) in the "m=" section,</li> | ||||
<li pn="section-10.1-3.3"> | ||||
<bcp14>MUST</bcp14> include an SDP 'floorid' attribute (<xref target | ||||
="sec_floorid-attr" format="default" sectionFormat="of" derivedContent="Section | ||||
5.4"/>) in the "m=" section, and</li> | ||||
<li pn="section-10.1-3.4"> | ||||
<bcp14>MUST</bcp14> include an SDP 'label' attribute <xref target="R | ||||
FC4574" format="default" sectionFormat="of" derivedContent="RFC4574"/> with the | ||||
"m=" section of each BFCP-controlled media stream.</li> | ||||
</ul> | ||||
<aside pn="section-10.1-4"> | ||||
<t indent="0" pn="section-10.1-4.1">Note: If the offerer includes an S | ||||
DP 'floorctrl' attribute with a "c-s" attribute value, or both a "c-only" and an | ||||
"s-only" attribute value in the offer, | ||||
the attribute values above will only be used if it is determined | ||||
(<xref target="sec_floorctrl-attr" format="default" sectionFormat="of" de | ||||
rivedContent="Section 5.1"/>) that the | ||||
offerer will act as a floor control server.</t> | ||||
</aside> | ||||
</section> | ||||
<section anchor="oa-gen-answer" numbered="true" toc="include" removeInRFC= | ||||
"false" pn="section-10.2"> | ||||
<name slugifiedName="name-generating-the-sdp-answer">Generating the SDP | ||||
Answer</name> | ||||
<t indent="0" pn="section-10.2-1"> | ||||
When the answerer receives an offer that contains an "m=" section descri | ||||
bing a BFCP stream, the answerer <bcp14>MUST</bcp14> check whether it supports | ||||
one or more of the BFCP versions supported by the offerer (<xref target= | ||||
"sec_bfcp-version-attr" format="default" sectionFormat="of" derivedContent="Sect | ||||
ion 5.5"/>). If the answerer does not support | ||||
any of the BFCP versions, it <bcp14>MUST NOT</bcp14> accept the "m=" | ||||
section. Otherwise, if the answerer accepts the "m=" section, the answere | ||||
r | ||||
</t> | ||||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | ||||
0.2-2"> | ||||
<li pn="section-10.2-2.1"> | ||||
<bcp14>MUST</bcp14> insert a corresponding "m=" section in the | ||||
answer, with an identical "m=" line proto value <xref target="RFC8866" | ||||
format="default" sectionFormat="of" derivedContent="RFC8866"/>,</li> | ||||
<li pn="section-10.2-2.2"> | ||||
<bcp14>MUST</bcp14> include a 'bfcpver' attribute in the "m=" sectio | ||||
n; the versions indicated by the answer <bcp14>MUST</bcp14> be the same or a sub | ||||
set of the versions indicated by the offerer in the corresponding offer, and</li | ||||
> | ||||
<li pn="section-10.2-2.3"> | ||||
<bcp14>MUST</bcp14>, if the offer contained an SDP 'floorctrl' attri | ||||
bute, include a 'floorctrl' attribute in the "m=" section.</li> | ||||
</ul> | ||||
<t indent="0" pn="section-10.2-3"> | ||||
In addition, if the answerer includes an SDP 'floorctrl' attribute with | ||||
an "s-only" attribute value in the answer, the answerer | ||||
</t> | ||||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | ||||
0.2-4"> | ||||
<li pn="section-10.2-4.1"> | ||||
<bcp14>MUST</bcp14> include an SDP 'confid' attribute in the "m=" se | ||||
ction,</li> | ||||
<li pn="section-10.2-4.2"> | ||||
<bcp14>MUST</bcp14> include an SDP 'userid' attribute in the "m=" se | ||||
ction,</li> | ||||
<li pn="section-10.2-4.3"> | ||||
<bcp14>MUST</bcp14> include an SDP 'floorid' attribute in the "m=" s | ||||
ection, and</li> | ||||
<li pn="section-10.2-4.4"> | ||||
<bcp14>MUST</bcp14> include an SDP 'label' attribute in the "m=" sec | ||||
tion of each BFCP-controlled media stream.</li> | ||||
</ul> | ||||
<aside pn="section-10.2-5"> | ||||
<t indent="0" pn="section-10.2-5.1">Note: An offerer compliant with <x | ||||
ref target="RFC4583" format="default" sectionFormat="of" derivedContent="RFC4583 | ||||
"/> might not include 'floorctrl' and 'bfcpver' attributes in offers, in which c | ||||
ase | ||||
the default values apply.</t> | ||||
</aside> | ||||
<t indent="0" pn="section-10.2-6"> | ||||
Once the answerer has sent the answer, the answerer | ||||
</t> | ||||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | ||||
0.2-7"> | ||||
<li pn="section-10.2-7.1"> | ||||
<bcp14>MUST</bcp14>, if the answerer is the active endpoint and if a | ||||
TCP connection associated with the "m=" section is to be established (or re-est | ||||
ablished), | ||||
initiate the establishment of the TCP connection, and</li> | ||||
<li pn="section-10.2-7.2"> | ||||
<bcp14>MUST</bcp14>, if the answerer is the active endpoint and if a | ||||
TLS/DTLS connection associated with the "m=" section is to be established (or r | ||||
e-established), | ||||
initiate the establishment of the TLS/DTLS connection (by sending a | ||||
ClientHello message).</li> | ||||
</ul> | ||||
<t indent="0" pn="section-10.2-8"> | ||||
If the answerer does not accept the "m=" section in the offer, it <bcp14 | ||||
>MUST</bcp14> assign a zero port value to the "m=" line of the corresponding "m= | ||||
" section in the answer. | ||||
In addition, the answerer <bcp14>MUST NOT</bcp14> establish a TCP connec | ||||
tion or a TLS/DTLS connection associated with the "m=" section. | ||||
</t> | ||||
</section> | ||||
<section anchor="oa-offerer-processing-answer" numbered="true" toc="includ | ||||
e" removeInRFC="false" pn="section-10.3"> | ||||
<name slugifiedName="name-offerer-processing-of-the-s">Offerer Processin | ||||
g of the SDP Answer</name> | ||||
<t indent="0" pn="section-10.3-1"> | ||||
When the offerer receives an answer that contains an "m=" section | ||||
describing a BFCP stream and with a non-zero port value in the | ||||
"m=" line, the offerer</t> | ||||
<ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | ||||
0.3-2"> | ||||
<li pn="section-10.3-2.1"> | ||||
<bcp14>MUST</bcp14>, if the offerer is the active endpoint and if a | ||||
TCP connection associated with the "m=" section is to be established (or re-esta | ||||
blished), | ||||
initiate the establishment of the TCP connection, and</li> | ||||
<li pn="section-10.3-2.2"> | ||||
<bcp14>MUST</bcp14>, if the offerer is the active endpoint and if a | ||||
TLS/DTLS connection associated with the "m=" section is to be established (or re | ||||
-established), | ||||
initiate the establishment of the TLS/DTLS connection (by sending a | ||||
ClientHello message).</li> | ||||
</ul> | ||||
<aside pn="section-10.3-3"> | ||||
<t indent="0" pn="section-10.3-3.1">Note: An answerer compliant with < | ||||
xref target="RFC4583" format="default" sectionFormat="of" derivedContent="RFC458 | ||||
3"/> might not include 'floorctrl' and 'bfcpver' attributes in answers, | ||||
in which case the default values apply.</t> | ||||
</aside> | ||||
<t indent="0" pn="section-10.3-4"> | ||||
If the "m=" line in the answer contains a zero port value or if the offe | ||||
rer for some other reason does not accept the answer (e.g., if the answerer only | ||||
indicates support of BFCP versions not supported by the offerer), the of | ||||
ferer <bcp14>MUST NOT</bcp14> establish a TCP connection or a TLS/DTLS connectio | ||||
n associated with the "m=" section. | ||||
</t> | ||||
</section> | ||||
<section anchor="oa-mod-session" numbered="true" toc="include" removeInRFC | ||||
="false" pn="section-10.4"> | ||||
<name slugifiedName="name-modifying-the-session">Modifying the Session</ | ||||
name> | ||||
<t indent="0" pn="section-10.4-1"> | ||||
When an offerer sends an updated offer, in order to modify a previously established BFCP stream, it follows the procedures | When an offerer sends an updated offer, in order to modify a previously established BFCP stream, it follows the procedures | |||
in <xref target="oa-gen-initial-offer"/>, with the following exceptions: | in <xref target="oa-gen-initial-offer" format="default" sectionFormat="o | |||
</t> | f" derivedContent="Section 10.1"/>, with the following exceptions: | |||
<t><list style="symbols"> | </t> | |||
<t>If the BFCP stream is carried on top of TCP, and if the offerer doe | <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1 | |||
s not want to re-establish an existing TCP connection, the offerer MUST include | 0.4-2"> | |||
an SDP 'connection' attribute with a value of "existing", in the 'm | <li pn="section-10.4-2.1">If the BFCP stream is carried on top of TCP | |||
' section; and</t> | and if the offerer | |||
<t>If the offerer wants to disable a previously established BFCP strea | does not want to re-establish an existing TCP connection, the | |||
m, it MUST assign a zero port value to the 'm' line associated with the | offerer <bcp14>MUST</bcp14> include in the "m=" section | |||
BFCP connection, following the procedures in <xref target="RFC3264" | an SDP 'connection' attribute with a value of "existing", and</li> | |||
/>.</t> | <li pn="section-10.4-2.2">If the offerer wants to disable a previously | |||
</list></t> | established BFCP stream, it <bcp14>MUST</bcp14> assign a zero port value to the | |||
"m=" line associated with the | ||||
BFCP connection, following the procedures in <xref target="RFC3264" | ||||
format="default" sectionFormat="of" derivedContent="RFC3264"/>.</li> | ||||
</ul> | ||||
</section> | ||||
</section> | </section> | |||
<section anchor="sec_example" numbered="true" toc="include" removeInRFC="fal | ||||
</section> | se" pn="section-11"> | |||
<name slugifiedName="name-examples">Examples</name> | ||||
<section title="Examples" anchor="sec:example"> | <t indent="0" pn="section-11-1">For the purpose of brevity, the main porti | |||
<t>For the purpose of brevity, the main portion of the session description i | on of the session description is omitted in the examples, which only show "m=" s | |||
s omitted in the examples, which only show 'm' sections and their 'm' lines and | ections and their "m=" lines and attributes.</t> | |||
attributes.</t> | <t indent="0" pn="section-11-2">The following is an example of an offer se | |||
<t>The following is an example of an offer sent by a conference server to a | nt by a conference server to a client.</t> | |||
client.</t> | <sourcecode name="" type="sdp" markers="false" pn="section-11-3"> | |||
<figure> | ||||
<artwork> | ||||
m=application 50000 TCP/TLS/BFCP * | m=application 50000 TCP/TLS/BFCP * | |||
a=setup:actpass | a=setup:actpass | |||
a=connection:new | a=connection:new | |||
a=fingerprint:sha-256 \ | a=fingerprint:sha-256 \ | |||
19:E2:1C:3B:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04: \ | 19:E2:1C:3B:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04: \ | |||
BB:05:2F:70:9F:04:A9:0E:05:E9:26:33:E8:70:88:A2 | BB:05:2F:70:9F:04:A9:0E:05:E9:26:33:E8:70:88:A2 | |||
a=floorctrl:c-only s-only | a=floorctrl:c-only s-only | |||
a=confid:4321 | a=confid:4321 | |||
a=userid:1234 | a=userid:1234 | |||
a=floorid:1 mstrm:10 | a=floorid:1 mstrm:10 | |||
a=floorid:2 mstrm:11 | a=floorid:2 mstrm:11 | |||
a=bfcpver:1 2 | a=bfcpver:1 2 | |||
m=audio 50002 RTP/AVP 0 | m=audio 50002 RTP/AVP 0 | |||
a=label:10 | a=label:10 | |||
m=video 50004 RTP/AVP 31 | m=video 50004 RTP/AVP 31 | |||
a=label:11 | a=label:11</sourcecode> | |||
</artwork> | <t indent="0" pn="section-11-4">Note that due to RFC formatting convention | |||
</figure> | s, this document splits the | |||
<t>Note that due to RFC formatting conventions, this document splits SDP acr | SDP entries across lines whose content would exceed the maximum line | |||
oss lines whose content would exceed 72 characters. A backslash character marks | length. A backslash character ("\") marks where this line folding has take | |||
where this line folding has taken place. This backslash and its trailing CRLF an | n place. This backslash and its trailing CRLF and whitespace would not appear in | |||
d whitespace would not appear in actual SDP content.</t> | actual SDP content.</t> | |||
<t>The following is the answer returned by the client.</t> | <t indent="0" pn="section-11-5">The following is the answer returned by th | |||
<figure> | e client.</t> | |||
<artwork> | <sourcecode name="" type="sdp" markers="false" pn="section-11-6"> | |||
m=application 9 TCP/TLS/BFCP * | m=application 9 TCP/TLS/BFCP * | |||
a=setup:active | a=setup:active | |||
a=connection:new | a=connection:new | |||
a=fingerprint:sha-256 \ | a=fingerprint:sha-256 \ | |||
6B:8B:F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35: \ | 6B:8B:F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35: \ | |||
DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:08 | DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:08 | |||
a=floorctrl:c-only | a=floorctrl:c-only | |||
a=bfcpver:1 | a=bfcpver:1 | |||
m=audio 55000 RTP/AVP 0 | m=audio 55000 RTP/AVP 0 | |||
m=video 55002 RTP/AVP 31 | m=video 55002 RTP/AVP 31</sourcecode> | |||
</artwork> | <t indent="0" pn="section-11-7">A similar example using an unreliable tran | |||
</figure> | sport and DTLS is shown below, where the offer is sent from a client.</t> | |||
<sourcecode name="" type="sdp" markers="false" pn="section-11-8"> | ||||
<t>A similar example using unreliable transport and DTLS is shown below, where t | ||||
he offer is sent from a client.</t> | ||||
<figure> | ||||
<artwork> | ||||
m=application 50000 UDP/TLS/BFCP * | m=application 50000 UDP/TLS/BFCP * | |||
a=setup:actpass | a=setup:actpass | |||
a=dtls-id:abc3dl | a=dtls-id:abc3dl | |||
a=fingerprint:sha-256 \ | a=fingerprint:sha-256 \ | |||
19:E2:1C:3B:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04: \ | 19:E2:1C:3B:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04: \ | |||
BB:05:2F:70:9F:04:A9:0E:05:E9:26:33:E8:70:88:A2 | BB:05:2F:70:9F:04:A9:0E:05:E9:26:33:E8:70:88:A2 | |||
a=floorctrl:c-only s-only | a=floorctrl:c-only s-only | |||
a=confid:4321 | a=confid:4321 | |||
a=userid:1234 | a=userid:1234 | |||
a=floorid:1 mstrm:10 | a=floorid:1 mstrm:10 | |||
a=floorid:2 mstrm:11 | a=floorid:2 mstrm:11 | |||
a=bfcpver:1 2 | a=bfcpver:1 2 | |||
m=audio 50002 RTP/AVP 0 | m=audio 50002 RTP/AVP 0 | |||
a=label:10 | a=label:10 | |||
m=video 50004 RTP/AVP 31 | m=video 50004 RTP/AVP 31 | |||
a=label:11 | a=label:11</sourcecode> | |||
</artwork> | <t indent="0" pn="section-11-9">The following is the answer returned by th | |||
</figure> | e server.</t> | |||
<t>The following is the answer returned by the server.</t> | <sourcecode name="" type="sdp" markers="false" pn="section-11-10"> | |||
<figure> | ||||
<artwork> | ||||
m=application 55000 UDP/TLS/BFCP * | m=application 55000 UDP/TLS/BFCP * | |||
a=setup:active | a=setup:active | |||
a=dtls-id:abc3dl | a=dtls-id:abc3dl | |||
a=fingerprint:sha-256 \ | a=fingerprint:sha-256 \ | |||
6B:8B:F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35: \ | 6B:8B:F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35: \ | |||
DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:08 | DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:08 | |||
a=floorctrl:s-only | a=floorctrl:s-only | |||
a=confid:4321 | a=confid:4321 | |||
a=userid:1234 | a=userid:1234 | |||
a=floorid:1 mstrm:10 | a=floorid:1 mstrm:10 | |||
a=floorid:2 mstrm:11 | a=floorid:2 mstrm:11 | |||
a=bfcpver:2 | a=bfcpver:2 | |||
m=audio 55002 RTP/AVP 0 | m=audio 55002 RTP/AVP 0 | |||
m=video 55004 RTP/AVP 31 | m=video 55004 RTP/AVP 31</sourcecode> | |||
</artwork> | </section> | |||
</figure> | <section anchor="sec_security" numbered="true" toc="include" removeInRFC="fa | |||
</section> | lse" pn="section-12"> | |||
<name slugifiedName="name-security-considerations">Security Considerations | ||||
<section title="Security Considerations" anchor="sec:security"> | </name> | |||
<t>The BFCP <xref target="I-D.ietf-bfcpbis-rfc4582bis"/>, SDP <xref target=" | <t indent="0" pn="section-12-1">The BFCP specification <xref target="RFC88 | |||
RFC4566"/>, and offer/answer <xref target="RFC3264"/> | 55" format="default" sectionFormat="of" derivedContent="RFC8855"/>, SDP | |||
specifications discuss security issues related to BFCP, SDP, and offer/answe | specification <xref target="RFC8866" format="default" sectionFormat="of" d | |||
r, respectively. In addition, <xref target="RFC4145"/> | erivedContent="RFC8866"/>, and | |||
and <xref target="RFC8122"/> discuss security issues related to the establis | offer/answer specification <xref target="RFC3264" format="default" section | |||
hment of TCP and TLS connections using an offer/answer | Format="of" derivedContent="RFC3264"/> discuss security issues related to BFCP, | |||
SDP, and offer/answer, respectively. In addition, <xref target="RFC4145" format= | ||||
"default" sectionFormat="of" derivedContent="RFC4145"/> | ||||
and <xref target="RFC8122" format="default" sectionFormat="of" derivedConten | ||||
t="RFC8122"/> discuss security issues related to the establishment of TCP and TL | ||||
S connections using an offer/answer | ||||
model. Furthermore, when using DTLS over UDP, the generic offer/answer consi derations defined in | model. Furthermore, when using DTLS over UDP, the generic offer/answer consi derations defined in | |||
<xref target="I-D.ietf-mmusic-dtls-sdp"/> MUST be followed.</t> | <xref target="RFC8842" format="default" sectionFormat="of" derivedContent="R | |||
<t>The usage of certain proto values in the SDP offer/answer negotiation wil | FC8842"/> <bcp14>MUST</bcp14> be followed.</t> | |||
l result in a BFCP stream that is not protected by | <t indent="0" pn="section-12-2">The usage of certain proto values in the S | |||
DP offer/answer negotiation will result in a BFCP stream that is not protected b | ||||
y | ||||
TLS or DTLS. Operators will need to provide integrity protection and confide ntiality protection of the BFCP stream using other means.</t> | TLS or DTLS. Operators will need to provide integrity protection and confide ntiality protection of the BFCP stream using other means.</t> | |||
<t>The generic security considerations associated with SDP attributes are de | <t indent="0" pn="section-12-3">The generic security considerations associ | |||
fined in <xref target="RFC3264"/>. While the attributes | ated with SDP attributes are defined in <xref target="RFC3264" format="default" | |||
defined in this specification do not reveal information about the content of | sectionFormat="of" derivedContent="RFC3264"/>. While the attributes | |||
individual BFCP controlled media streams, they do reveal | defined in this specification do not reveal information about the content of | |||
individual BFCP-controlled media streams, they do reveal | ||||
which media streams will be BFCP controlled.</t> | which media streams will be BFCP controlled.</t> | |||
</section> | ||||
<section title="IANA Considerations" anchor="sec:iana"> | ||||
<t><list style="empty"> | ||||
<t>[Editorial note: The changes in <xref target="sec:proto-reg"/> instruct | ||||
the IANA to register the three new values TCP/DTLS/BFCP, UDP/BFCP and UDP/TLS/B | ||||
FCP for the SDP 'proto' field. The new section <xref target="sec:bfcp-version-at | ||||
tr"/> registers a new SDP "bfcpver" attribute. The rest is unchanged from <xref | ||||
target="RFC4582"/>.]</t> | ||||
</list></t> | ||||
<section title="Registration of SDP 'proto' Values" anchor="sec:proto-reg"> | ||||
<t>The IANA is requested to register the following values for the SDP 'pro | ||||
to' field under the Session Description Protocol (SDP) Parameters registry:</t> | ||||
<texttable title="Values for the SDP 'proto' field" anchor="tab:proto-iana | ||||
"> | ||||
<ttcol>Value</ttcol> | ||||
<ttcol align="center">Reference</ttcol> | ||||
<c>TCP/BFCP</c> | ||||
<c>[RFC XXXX]</c> | ||||
<c>TCP/DTLS/BFCP</c> | ||||
<c>[RFC XXXX]</c> | ||||
<c>TCP/TLS/BFCP</c> | ||||
<c>[RFC XXXX]</c> | ||||
<c>UDP/BFCP</c> | ||||
<c>[RFC XXXX]</c> | ||||
<c>UDP/TLS/BFCP</c> | ||||
<c>[RFC XXXX]</c> | ||||
</texttable> | ||||
</section> | </section> | |||
<section anchor="sec_iana" numbered="true" toc="include" removeInRFC="false" | ||||
<section title="Registration of the SDP 'floorctrl' Attribute"> | pn="section-13"> | |||
<t> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
This document defines the SDP attribute,'floorctrl'. | <t indent="0" pn="section-13-1">This document registers three new values i | |||
The details of the attribute are defined in <xref target="sec:floorctrl- | n the "proto" | |||
attr"/>. | subregistry within the "Session Description Protocol (SDP) | |||
</t> | Parameters" registry: 'TCP/DTLS/BFCP', 'UDP/BFCP', and 'UDP/TLS/BFCP' (see <xref | |||
</section> | target="sec_proto-reg" format="default" sectionFormat="of" derivedContent="Sect | |||
ion 13.1"/>).</t> | ||||
<section title="Registration of the SDP 'confid' Attribute"> | <t indent="0" pn="section-13-2">This document also registers a new SDP att | |||
<t> | ribute in the | |||
This document defines the SDP attribute,'confid'. | 'attribute-name (formerly "att-field")' | |||
The details of the attribute are defined in <xref target="sec:confid-att | subregistry within the "Session Description Protocol (SDP) Parameters" | |||
r"/>. | registry: 'bfcpver' (see <xref target="sec_bfcp-version-attr" format="default" s | |||
</t> | ectionFormat="of" derivedContent="Section 5.5"/>).</t> | |||
<t indent="0" pn="section-13-3">The remaining values are unchanged from <x | ||||
ref target="RFC4582" format="default" sectionFormat="of" derivedContent="RFC4582 | ||||
"/>, except | ||||
that the references have been updated to refer to this document.</t> | ||||
<section anchor="sec_proto-reg" numbered="true" toc="include" removeInRFC= | ||||
"false" pn="section-13.1"> | ||||
<name slugifiedName="name-registration-of-sdp-proto-v">Registration of S | ||||
DP 'proto' Values</name> | ||||
<t indent="0" pn="section-13.1-1">The IANA has registered three new valu | ||||
es in the SDP | ||||
'proto' field under the "Session Description Protocol (SDP) | ||||
Parameters" registry.</t> | ||||
<table anchor="tab_proto-iana" align="center" pn="table-3"> | ||||
<name slugifiedName="name-values-for-the-sdp-proto-fi">Values for the | ||||
SDP 'proto' Field</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left" colspan="1" rowspan="1">Value</th> | ||||
<th align="center" colspan="1" rowspan="1">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">TCP/BFCP</td> | ||||
<td align="center" colspan="1" rowspan="1">RFC 8856</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">TCP/DTLS/BFCP</td> | ||||
<td align="center" colspan="1" rowspan="1">RFC 8856</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">TCP/TLS/BFCP</td> | ||||
<td align="center" colspan="1" rowspan="1">RFC 8856</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">UDP/BFCP</td> | ||||
<td align="center" colspan="1" rowspan="1">RFC 8856</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left" colspan="1" rowspan="1">UDP/TLS/BFCP</td> | ||||
<td align="center" colspan="1" rowspan="1">RFC 8856</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-13. | ||||
2"> | ||||
<name slugifiedName="name-registration-of-the-sdp-flo">Registration of t | ||||
he SDP 'floorctrl' Attribute</name> | ||||
<t indent="0" pn="section-13.2-1"> | ||||
This document defines the SDP 'floorctrl' attribute. | ||||
Details regarding this attribute are provided in <xref target="sec_floor | ||||
ctrl-attr" format="default" sectionFormat="of" derivedContent="Section 5.1"/>. | ||||
</t> | ||||
</section> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-13. | ||||
3"> | ||||
<name slugifiedName="name-registration-of-the-sdp-con">Registration of t | ||||
he SDP 'confid' Attribute</name> | ||||
<t indent="0" pn="section-13.3-1"> | ||||
This document defines the SDP 'confid' attribute. | ||||
Details regarding this attribute are provided in <xref target="sec_confi | ||||
d-attr" format="default" sectionFormat="of" derivedContent="Section 5.2"/>. | ||||
</t> | ||||
</section> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-13. | ||||
4"> | ||||
<name slugifiedName="name-registration-of-the-sdp-use">Registration of t | ||||
he SDP 'userid' Attribute</name> | ||||
<t indent="0" pn="section-13.4-1"> | ||||
This document defines the SDP 'userid' attribute. | ||||
Details regarding this attribute are provided in <xref target="sec_useri | ||||
d-attr" format="default" sectionFormat="of" derivedContent="Section 5.3"/>. | ||||
</t> | ||||
</section> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-13. | ||||
5"> | ||||
<name slugifiedName="name-registration-of-the-sdp-floo">Registration of | ||||
the SDP 'floorid' Attribute</name> | ||||
<t indent="0" pn="section-13.5-1"> | ||||
This document defines the SDP 'floorid' attribute. | ||||
Details regarding this attribute are provided in <xref target="sec_floor | ||||
id-attr" format="default" sectionFormat="of" derivedContent="Section 5.4"/>. | ||||
</t> | ||||
</section> | ||||
<section numbered="true" toc="include" removeInRFC="false" pn="section-13. | ||||
6"> | ||||
<name slugifiedName="name-registration-of-the-sdp-bfc">Registration of t | ||||
he SDP 'bfcpver' Attribute</name> | ||||
<t indent="0" pn="section-13.6-1"> | ||||
This document defines the SDP 'bfcpver' attribute. | ||||
Details regarding this attribute are provided in <xref target="sec_bfcp- | ||||
version-attr" format="default" sectionFormat="of" derivedContent="Section 5.5"/> | ||||
. | ||||
</t> | ||||
</section> | ||||
</section> | </section> | |||
<section anchor="sec_changes" numbered="true" toc="include" removeInRFC="fal | ||||
<section title="Registration of the SDP 'userid' Attribute"> | se" pn="section-14"> | |||
<t> | <name slugifiedName="name-changes-from-rfc-4583">Changes from RFC 4583</na | |||
This document defines the SDP attribute,'userid'. | me> | |||
The details of the attribute are defined in <xref target="sec:userid-att | <t indent="0" pn="section-14-1">The technical changes and other fixes from | |||
r"/>. | <xref target="RFC4583" format="default" sectionFormat="of" derivedContent="RFC4 | |||
</t> | 583"/> are listed below.</t> | |||
<t indent="0" pn="section-14-2">The main purpose of this work was to add s | ||||
ignaling support necessary | ||||
to support BFCP over an unreliable transport, as described in <xref target | ||||
="RFC8855" format="default" sectionFormat="of" derivedContent="RFC8855"/>, resul | ||||
ting in the following changes:</t> | ||||
<ul bare="false" empty="false" indent="3" spacing="normal" pn="section-14- | ||||
3"> | ||||
<li pn="section-14-3.1"> | ||||
<t indent="0" pn="section-14-3.1.1">Fields in the "m=" Line (<xref tar | ||||
get="sec_m-line" format="default" sectionFormat="of" derivedContent="Section 4"/ | ||||
>):</t> | ||||
<t indent="0" pn="section-14-3.1.2">This section has been rewritten to | ||||
remove reference to the exclusivity | ||||
of TCP as a transport for BFCP streams. The proto field values | ||||
'TCP/DTLS/BFCP', 'UDP/BFCP', and 'UDP/TLS/BFCP' have been added.</t> | ||||
</li> | ||||
<li pn="section-14-3.2"> | ||||
<t indent="0" pn="section-14-3.2.1">Security Considerations (<xref tar | ||||
get="sec_security" format="default" sectionFormat="of" derivedContent="Section 1 | ||||
2"/>):</t> | ||||
<t indent="0" pn="section-14-3.2.2">For the DTLS-over-UDP case, we dir | ||||
ect the reader to existing considerations | ||||
and requirements for the offer/answer exchange as provided in <xref tar | ||||
get="RFC8842" format="default" sectionFormat="of" derivedContent="RFC8842"/>.</t | ||||
> | ||||
</li> | ||||
<li pn="section-14-3.3"> | ||||
<t indent="0" pn="section-14-3.3.1">Registration of SDP 'proto' Values | ||||
(<xref target="sec_proto-reg" format="default" sectionFormat="of" derivedConten | ||||
t="Section 13.1"/>):</t> | ||||
<t indent="0" pn="section-14-3.3.2">This document registers the three | ||||
new values 'TCP/DTLS/BFCP', 'UDP/BFCP', and | ||||
'UDP/TLS/BFCP' in the "Session Description Protocol (SDP) Parameters" re | ||||
gistry.</t> | ||||
</li> | ||||
<li pn="section-14-3.4"> | ||||
<t indent="0" pn="section-14-3.4.1">SDP 'bfcpver' Attribute (<xref tar | ||||
get="sec_bfcp-version-attr" format="default" sectionFormat="of" derivedContent=" | ||||
Section 5.5"/>):</t> | ||||
<t indent="0" pn="section-14-3.4.2">A new 'bfcpver' SDP media-level at | ||||
tribute has been added, in order to | ||||
signal the supported version number.</t> | ||||
</li> | ||||
</ul> | ||||
<t indent="0" pn="section-14-4">In addition to the changes associated with | ||||
support of BFCP over an | ||||
unreliable transport, the possibility that an endpoint can act as both a | ||||
floor control client and a floor control server at the same time has | ||||
been removed. An endpoint will now take the same role for all BFCP-controlle | ||||
d streams associated with the BFCP stream.</t> | ||||
<t indent="0" pn="section-14-5">Clarifications and bug fixes:</t> | ||||
<ul bare="false" empty="false" indent="3" spacing="normal" pn="section-14- | ||||
6"> | ||||
<li pn="section-14-6.1"> | ||||
<t indent="0" pn="section-14-6.1.1">Erratum ID 712 (Sections <xref tar | ||||
get="RFC4583" section="3" sectionFormat="bare" format="default" derivedLink="htt | ||||
ps://rfc-editor.org/rfc/rfc4583#section-3" derivedContent="RFC4583"/> and <xref | ||||
target="RFC4583" section="10" sectionFormat="bare" format="default" derivedLink= | ||||
"https://rfc-editor.org/rfc/rfc4583#section-10" derivedContent="RFC4583"/> of <x | ||||
ref target="RFC4583" format="default" sectionFormat="of" derivedContent="RFC4583 | ||||
"/>; see <xref target="Err712" format="default" sectionFormat="of" derivedConten | ||||
t="Err712"/> for details):</t> | ||||
<t indent="0" pn="section-14-6.1.2">Do not use language such as 'used | ||||
in an "m=" line' when discussing an SDP attribute; instead, make clear that the | ||||
attribute is a | ||||
media-level attribute.</t> | ||||
</li> | ||||
<li pn="section-14-6.2"> | ||||
<t indent="0" pn="section-14-6.2.1">Spelling corrected in the first SD | ||||
P example in <xref target="RFC4583" sectionFormat="of" section="9" format="defau | ||||
lt" derivedLink="https://rfc-editor.org/rfc/rfc4583#section-9" derivedContent="R | ||||
FC4583"/>:</t> | ||||
<t indent="0" pn="section-14-6.2.2">Do not use 'm-stream' as listed in | ||||
the first SDP example in <xref target="RFC4583" format="default" sectionFormat= | ||||
"of" derivedContent="RFC4583"/>; instead, use the correct 'mstrm' | ||||
as specified in <xref target="sec_example" format="default" sectionForma | ||||
t="of" derivedContent="Section 11"/> of this | ||||
document. However, we recommend continuing to interpret 'm-stream', if r | ||||
eceived, | ||||
because it is still present in some implementations.</t> | ||||
</li> | ||||
<li pn="section-14-6.3"> | ||||
<t indent="0" pn="section-14-6.3.1">Assorted clarifications (throughou | ||||
t the document):</t> | ||||
<t indent="0" pn="section-14-6.3.2">Language clarifications were made | ||||
as a result of reviews. Also, | ||||
normative language was "tightened" where appropriate, i.e., changed | ||||
from "<bcp14>SHOULD</bcp14>" strength to "<bcp14>MUST</bcp14>" in a | ||||
number of places.</t> | ||||
</li> | ||||
</ul> | ||||
</section> | </section> | |||
</middle> | ||||
<section title="Registration of the SDP 'floorid' Attribute"> | <back> | |||
<t> | <references pn="section-15"> | |||
This document defines the SDP attribute,'floorid'. | <name slugifiedName="name-references">References</name> | |||
The details of the attribute are defined in <xref target="sec:floorid-at | <references pn="section-15.1"> | |||
tr"/>. | <name slugifiedName="name-normative-references">Normative References</na | |||
</t> | me> | |||
<reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
119" quoteTitle="true" derivedAnchor="RFC2119"> | ||||
<front> | ||||
<title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
le> | ||||
<author initials="S." surname="Bradner" fullname="S. Bradner"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="1997" month="March"/> | ||||
<abstract> | ||||
<t indent="0">In many standards track documents several words are | ||||
used to signify the requirements in the specification. These words are often ca | ||||
pitalized. This document defines these words as they should be interpreted in IE | ||||
TF documents. This document specifies an Internet Best Current Practices for th | ||||
e Internet Community, and requests discussion and suggestions for improvements.< | ||||
/t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="2119"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
</reference> | ||||
<reference anchor="RFC3261" target="https://www.rfc-editor.org/info/rfc3 | ||||
261" quoteTitle="true" derivedAnchor="RFC3261"> | ||||
<front> | ||||
<title>SIP: Session Initiation Protocol</title> | ||||
<author initials="J." surname="Rosenberg" fullname="J. Rosenberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G." surname="Camarillo" fullname="G. Camarillo"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Johnston" fullname="A. Johnston"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Peterson" fullname="J. Peterson"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Sparks" fullname="R. Sparks"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M." surname="Handley" fullname="M. Handley"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="E." surname="Schooler" fullname="E. Schooler"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2002" month="June"/> | ||||
<abstract> | ||||
<t indent="0">This document describes Session Initiation Protocol | ||||
(SIP), an application-layer control (signaling) protocol for creating, modifying | ||||
, and terminating sessions with one or more participants. These sessions includ | ||||
e Internet telephone calls, multimedia distribution, and multimedia conferences. | ||||
[STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3261"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3261"/> | ||||
</reference> | ||||
<reference anchor="RFC3264" target="https://www.rfc-editor.org/info/rfc3 | ||||
264" quoteTitle="true" derivedAnchor="RFC3264"> | ||||
<front> | ||||
<title>An Offer/Answer Model with Session Description Protocol (SDP) | ||||
</title> | ||||
<author initials="J." surname="Rosenberg" fullname="J. Rosenberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2002" month="June"/> | ||||
<abstract> | ||||
<t indent="0">This document defines a mechanism by which two entit | ||||
ies can make use of the Session Description Protocol (SDP) to arrive at a common | ||||
view of a multimedia session between them. In the model, one participant offer | ||||
s the other a description of the desired session from their perspective, and the | ||||
other participant answers with the desired session from their perspective. Thi | ||||
s offer/answer model is most useful in unicast sessions where information from b | ||||
oth participants is needed for the complete view of the session. The offer/answ | ||||
er model is used by protocols like the Session Initiation Protocol (SIP). [STAN | ||||
DARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3264"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3264"/> | ||||
</reference> | ||||
<reference anchor="RFC4145" target="https://www.rfc-editor.org/info/rfc4 | ||||
145" quoteTitle="true" derivedAnchor="RFC4145"> | ||||
<front> | ||||
<title>TCP-Based Media Transport in the Session Description Protocol | ||||
(SDP)</title> | ||||
<author initials="D." surname="Yon" fullname="D. Yon"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G." surname="Camarillo" fullname="G. Camarillo"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2005" month="September"/> | ||||
<abstract> | ||||
<t indent="0">This document describes how to express media transpo | ||||
rt over TCP using the Session Description Protocol (SDP). It defines the SDP 'T | ||||
CP' protocol identifier, the SDP 'setup' attribute, which describes the connecti | ||||
on setup procedure, and the SDP 'connection' attribute, which handles connection | ||||
reestablishment. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4145"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4145"/> | ||||
</reference> | ||||
<reference anchor="RFC4571" target="https://www.rfc-editor.org/info/rfc4 | ||||
571" quoteTitle="true" derivedAnchor="RFC4571"> | ||||
<front> | ||||
<title>Framing Real-time Transport Protocol (RTP) and RTP Control Pr | ||||
otocol (RTCP) Packets over Connection-Oriented Transport</title> | ||||
<author initials="J." surname="Lazzaro" fullname="J. Lazzaro"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2006" month="July"/> | ||||
<abstract> | ||||
<t indent="0">This memo defines a method for framing Real-time Tra | ||||
nsport Protocol (RTP) and RTP Control Protocol (RTCP) packets onto connection-or | ||||
iented transport (such as TCP). The memo also defines how session descriptions | ||||
may specify RTP streams that use the framing method. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4571"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4571"/> | ||||
</reference> | ||||
<reference anchor="RFC4574" target="https://www.rfc-editor.org/info/rfc4 | ||||
574" quoteTitle="true" derivedAnchor="RFC4574"> | ||||
<front> | ||||
<title>The Session Description Protocol (SDP) Label Attribute</title | ||||
> | ||||
<author initials="O." surname="Levin" fullname="O. Levin"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G." surname="Camarillo" fullname="G. Camarillo"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2006" month="August"/> | ||||
<abstract> | ||||
<t indent="0">This document defines a new Session Description Prot | ||||
ocol (SDP) media-level attribute: "label". The "label" attribute carries a poin | ||||
ter to a media stream in the context of an arbitrary network application that us | ||||
es SDP. The sender of the SDP document can attach the "label" attribute to a pa | ||||
rticular media stream or streams. The application can then use the provided poi | ||||
nter to refer to each particular media stream in its context. [STANDARDS-TRACK] | ||||
</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4574"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4574"/> | ||||
</reference> | ||||
<reference anchor="RFC4582" target="https://www.rfc-editor.org/info/rfc4 | ||||
582" quoteTitle="true" derivedAnchor="RFC4582"> | ||||
<front> | ||||
<title>The Binary Floor Control Protocol (BFCP)</title> | ||||
<author initials="G." surname="Camarillo" fullname="G. Camarillo"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Ott" fullname="J. Ott"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="K." surname="Drage" fullname="K. Drage"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2006" month="November"/> | ||||
<abstract> | ||||
<t indent="0">Floor control is a means to manage joint or exclusiv | ||||
e access to shared resources in a (multiparty) conferencing environment. Thereby | ||||
, floor control complements other functions -- such as conference and media sess | ||||
ion setup, conference policy manipulation, and media control -- that are realize | ||||
d by other protocols.</t> | ||||
<t indent="0">This document specifies the Binary Floor Control Pro | ||||
tocol (BFCP). BFCP is used between floor participants and floor control servers, | ||||
and between floor chairs (i.e., moderators) and floor control servers. [STANDA | ||||
RDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4582"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4582"/> | ||||
</reference> | ||||
<reference anchor="RFC4583" target="https://www.rfc-editor.org/info/rfc4 | ||||
583" quoteTitle="true" derivedAnchor="RFC4583"> | ||||
<front> | ||||
<title>Session Description Protocol (SDP) Format for Binary Floor Co | ||||
ntrol Protocol (BFCP) Streams</title> | ||||
<author initials="G." surname="Camarillo" fullname="G. Camarillo"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2006" month="November"/> | ||||
<abstract> | ||||
<t indent="0">This document specifies how to describe Binary Floor | ||||
Control Protocol (BFCP) streams in Session Description Protocol (SDP) descripti | ||||
ons. User agents using the offer/answer model to establish BFCP streams use this | ||||
format in their offers and answers. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4583"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4583"/> | ||||
</reference> | ||||
<reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5 | ||||
234" quoteTitle="true" derivedAnchor="RFC5234"> | ||||
<front> | ||||
<title>Augmented BNF for Syntax Specifications: ABNF</title> | ||||
<author initials="D." surname="Crocker" fullname="D. Crocker" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="P." surname="Overell" fullname="P. Overell"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2008" month="January"/> | ||||
<abstract> | ||||
<t indent="0">Internet technical specifications often need to defi | ||||
ne a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF | ||||
), called Augmented BNF (ABNF), has been popular among many Internet specificati | ||||
ons. The current specification documents ABNF. It balances compactness and simp | ||||
licity with reasonable representational power. The differences between standard | ||||
BNF and ABNF involve naming rules, repetition, alternatives, order-independence | ||||
, and value ranges. This specification also supplies additional rule definition | ||||
s and encoding for a core lexical analyzer of the type common to several Interne | ||||
t specifications. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="STD" value="68"/> | ||||
<seriesInfo name="RFC" value="5234"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5234"/> | ||||
</reference> | ||||
<reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6 | ||||
347" quoteTitle="true" derivedAnchor="RFC6347"> | ||||
<front> | ||||
<title>Datagram Transport Layer Security Version 1.2</title> | ||||
<author initials="E." surname="Rescorla" fullname="E. Rescorla"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="N." surname="Modadugu" fullname="N. Modadugu"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2012" month="January"/> | ||||
<abstract> | ||||
<t indent="0">This document specifies version 1.2 of the Datagram | ||||
Transport Layer Security (DTLS) protocol. The DTLS protocol provides communicat | ||||
ions privacy for datagram protocols. The protocol allows client/server applicat | ||||
ions to communicate in a way that is designed to prevent eavesdropping, tamperin | ||||
g, or message forgery. The DTLS protocol is based on the Transport Layer Securi | ||||
ty (TLS) protocol and provides equivalent security guarantees. Datagram semanti | ||||
cs of the underlying transport are preserved by the DTLS protocol. This documen | ||||
t updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6347"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6347"/> | ||||
</reference> | ||||
<reference anchor="RFC6544" target="https://www.rfc-editor.org/info/rfc6 | ||||
544" quoteTitle="true" derivedAnchor="RFC6544"> | ||||
<front> | ||||
<title>TCP Candidates with Interactive Connectivity Establishment (I | ||||
CE)</title> | ||||
<author initials="J." surname="Rosenberg" fullname="J. Rosenberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Keranen" fullname="A. Keranen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B. B." surname="Lowekamp" fullname="B. B. Lowekamp | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A. B." surname="Roach" fullname="A. B. Roach"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2012" month="March"/> | ||||
<abstract> | ||||
<t indent="0">Interactive Connectivity Establishment (ICE) defines | ||||
a mechanism for NAT traversal for multimedia communication protocols based on t | ||||
he offer/answer model of session negotiation. ICE works by providing a set of c | ||||
andidate transport addresses for each media stream, which are then validated wit | ||||
h peer-to-peer connectivity checks based on Session Traversal Utilities for NAT | ||||
(STUN). ICE provides a general framework for describing candidates but only def | ||||
ines UDP-based media streams. This specification extends ICE to TCP-based media, | ||||
including the ability to offer a mix of TCP and UDP-based candidates for a sing | ||||
le stream. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="6544"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC6544"/> | ||||
</reference> | ||||
<reference anchor="RFC8122" target="https://www.rfc-editor.org/info/rfc8 | ||||
122" quoteTitle="true" derivedAnchor="RFC8122"> | ||||
<front> | ||||
<title>Connection-Oriented Media Transport over the Transport Layer | ||||
Security (TLS) Protocol in the Session Description Protocol (SDP)</title> | ||||
<author initials="J." surname="Lennox" fullname="J. Lennox"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C." surname="Holmberg" fullname="C. Holmberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="March"/> | ||||
<abstract> | ||||
<t indent="0">This document specifies how to establish secure conn | ||||
ection-oriented media transport sessions over the Transport Layer Security (TLS) | ||||
protocol using the Session Description Protocol (SDP). It defines the SDP prot | ||||
ocol identifier, 'TCP/TLS'. It also defines the syntax and semantics for an SDP | ||||
'fingerprint' attribute that identifies the certificate that will be presented | ||||
for the TLS session. This mechanism allows media transport over TLS connections | ||||
to be established securely, so long as the integrity of session descriptions is | ||||
assured.</t> | ||||
<t indent="0">This document obsoletes RFC 4572 by clarifying the u | ||||
sage of multiple fingerprints.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8122"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8122"/> | ||||
</reference> | ||||
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
<front> | ||||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
tle> | ||||
<author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="May"/> | ||||
<abstract> | ||||
<t indent="0">RFC 2119 specifies common key words that may be used | ||||
in protocol specifications. This document aims to reduce the ambiguity by cla | ||||
rifying that only UPPERCASE usage of the key words have the defined special mea | ||||
nings.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="BCP" value="14"/> | ||||
<seriesInfo name="RFC" value="8174"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
</reference> | ||||
<reference anchor="RFC8445" target="https://www.rfc-editor.org/info/rfc8 | ||||
445" quoteTitle="true" derivedAnchor="RFC8445"> | ||||
<front> | ||||
<title>Interactive Connectivity Establishment (ICE): A Protocol for | ||||
Network Address Translator (NAT) Traversal</title> | ||||
<author initials="A." surname="Keranen" fullname="A. Keranen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C." surname="Holmberg" fullname="C. Holmberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Rosenberg" fullname="J. Rosenberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="July"/> | ||||
<abstract> | ||||
<t indent="0">This document describes a protocol for Network Addre | ||||
ss Translator (NAT) traversal for UDP-based communication. This protocol is cal | ||||
led Interactive Connectivity Establishment (ICE). ICE makes use of the Session | ||||
Traversal Utilities for NAT (STUN) protocol and its extension, Traversal Using R | ||||
elay NAT (TURN).</t> | ||||
<t indent="0">This document obsoletes RFC 5245.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8445"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8445"/> | ||||
</reference> | ||||
<reference anchor="RFC8839" target="https://www.rfc-editor.org/info/rfc8 | ||||
839" quoteTitle="true" derivedAnchor="RFC8839"> | ||||
<front> | ||||
<title>Session Description Protocol (SDP) Offer/Answer Procedures fo | ||||
r Interactive Connectivity Establishment (ICE)</title> | ||||
<author initials="M" surname="Petit-Huguenin" fullname="Marc Petit-H | ||||
uguenin"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Holmberg" fullname="Christer Holmberg" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A" surname="Keränen" fullname="Ari Keränen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R" surname="Shpount" fullname="Roman Shpount"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8839"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8839"/> | ||||
</reference> | ||||
<reference anchor="RFC8842" target="https://www.rfc-editor.org/info/rfc8 | ||||
842" quoteTitle="true" derivedAnchor="RFC8842"> | ||||
<front> | ||||
<title>Session Description Protocol (SDP) Offer/Answer Consideration | ||||
s for Datagram Transport Layer Security (DTLS) and Transport Layer Security (TLS | ||||
)</title> | ||||
<author initials="C." surname="Holmberg" fullname="Christer Holmberg | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Shpount" fullname="Roman Shpount"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8842"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8842"/> | ||||
</reference> | ||||
<reference anchor="RFC8855" target="https://www.rfc-editor.org/info/rfc8 | ||||
855" quoteTitle="true" derivedAnchor="RFC8855"> | ||||
<front> | ||||
<title>The Binary Floor Control Protocol (BFCP)</title> | ||||
<author initials="G." surname="Camarillo" fullname=""> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="K." surname="Drage" fullname="Keith Drage"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="T." surname="Kristensen" fullname="Tom Kristensen" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Ott" fullname="Jörg Ott"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C." surname="Eckel" fullname="Charles Eckel"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8855"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8855"/> | ||||
</reference> | ||||
<reference anchor="RFC8859" target="https://www.rfc-editor.org/info/rfc8 | ||||
859" quoteTitle="true" derivedAnchor="RFC8859"> | ||||
<front> | ||||
<title>A Framework for Session Description Protocol (SDP) Attributes | ||||
When Multiplexing</title> | ||||
<author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8859"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8859"/> | ||||
</reference> | ||||
<reference anchor="RFC8866" target="https://www.rfc-editor.org/info/rfc8 | ||||
866" quoteTitle="true" derivedAnchor="RFC8866"> | ||||
<front> | ||||
<title>SDP: Session Description Protocol</title> | ||||
<author initials="A" surname="Begen" fullname="Ali Begen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="P" surname="Kyzivat" fullname="Paul Kyzivat"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Perkins" fullname="Colin Perkins"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M" surname="Handley" fullname="Mark Handley"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8866"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8866"/> | ||||
</reference> | ||||
</references> | ||||
<references pn="section-15.2"> | ||||
<name slugifiedName="name-informative-references">Informative References | ||||
</name> | ||||
<reference anchor="Err712" target="https://www.rfc-editor.org/errata/eid | ||||
712" quoteTitle="false" derivedAnchor="Err712"> | ||||
<front> | ||||
<title>Erratum ID 712</title> | ||||
<author> | ||||
<organization showOnFrontPage="true">RFC Errata</organization> | ||||
</author> | ||||
</front> | ||||
<refcontent>RFC 4583</refcontent> | ||||
</reference> | ||||
<reference anchor="RFC5576" target="https://www.rfc-editor.org/info/rfc5 | ||||
576" quoteTitle="true" derivedAnchor="RFC5576"> | ||||
<front> | ||||
<title>Source-Specific Media Attributes in the Session Description P | ||||
rotocol (SDP)</title> | ||||
<author initials="J." surname="Lennox" fullname="J. Lennox"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J." surname="Ott" fullname="J. Ott"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="T." surname="Schierl" fullname="T. Schierl"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2009" month="June"/> | ||||
<abstract> | ||||
<t indent="0">The Session Description Protocol (SDP) provides mech | ||||
anisms to describe attributes of multimedia sessions and of individual media str | ||||
eams (e.g., Real-time Transport Protocol (RTP) sessions) within a multimedia ses | ||||
sion, but does not provide any mechanism to describe individual media sources wi | ||||
thin a media stream. This document defines a mechanism to describe RTP media so | ||||
urces, which are identified by their synchronization source (SSRC) identifiers, | ||||
in SDP, to associate attributes with these sources, and to express relationships | ||||
among sources. It also defines several source-level attributes that can be use | ||||
d to describe properties of media sources. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5576"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5576"/> | ||||
</reference> | ||||
<reference anchor="RFC8843" target="https://www.rfc-editor.org/info/rfc8 | ||||
843" quoteTitle="true" derivedAnchor="RFC8843"> | ||||
<front> | ||||
<title>Negotiating Media Multiplexing Using the Session Description | ||||
Protocol (SDP)</title> | ||||
<author initials="C" surname="Holmberg" fullname="Christer Holmberg" | ||||
> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H" surname="Alvestrand" fullname="Harald Alvestran | ||||
d"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Jennings" fullname="Cullen Jennings"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8843"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8843"/> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="sec_acks" numbered="false" toc="include" removeInRFC="false | ||||
" pn="section-appendix.a"> | ||||
<name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
<t indent="0" pn="section-appendix.a-1"><contact fullname="Jörg Ott"/>, <c | ||||
ontact fullname="Keith Drage"/>, | ||||
<contact fullname="Alan Johnston"/>, <contact fullname="Eric Rescorl | ||||
a"/>, <contact fullname="Roni Even"/>, and <contact fullname="Oscar Novo"/> prov | ||||
ided useful ideas for the original <xref target="RFC4583" format="default" secti | ||||
onFormat="of" derivedContent="RFC4583"/>. The authors also acknowledge | ||||
contributions to the revision of BFCP for use over an unreliable | ||||
transport from <contact fullname="Geir Arne Sandbakken"/>, <contact fullna | ||||
me="Charles Eckel"/>, <contact fullname="Alan Ford"/>, <contact fullname="Eoin M | ||||
cLeod"/>, and <contact fullname="Mark Thompson"/>. Useful | ||||
and important final reviews were done by <contact fullname="Ali C. B | ||||
egen"/>, <contact fullname="Mary Barnes"/>, and <contact fullname="Charles Eckel | ||||
"/>. In the final stages, <contact fullname="Roman Shpount"/> made a considerabl | ||||
e effort in adding proper ICE support and considerations.</t> | ||||
</section> | </section> | |||
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
<section title="Registration of the SDP 'bfcpver' Attribute"> | ="include" pn="section-appendix.b"> | |||
<t> | <name slugifiedName="name-authors-addresses">Authors' Addresses</name> | |||
This document defines the SDP attribute,'bfcpver'. | <author initials="G." surname="Camarillo" fullname="Gonzalo Camarillo"> | |||
The details of the attribute are defined in <xref target="sec:bfcp-versi | <organization showOnFrontPage="true">Ericsson</organization> | |||
on-attr"/>. | <address> | |||
</t> | <postal> | |||
<street>Hirsalantie 11</street> | ||||
<code>02420</code> | ||||
<city>Jorvas</city> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>Gonzalo.Camarillo@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Tom Kristensen" initials="T." surname="Kristensen"> | ||||
<organization abbrev="Jotron" showOnFrontPage="true">Jotron AS</organiza | ||||
tion> | ||||
<address> | ||||
<postal> | ||||
<street>Ringdalskogen 8</street> | ||||
<code>3270</code> | ||||
<city>Larvik</city> | ||||
<country>Norway</country> | ||||
</postal> | ||||
<email>tom.kristensen@jotron.com, tomkri@ifi.uio.no</email> | ||||
</address> | ||||
</author> | ||||
<author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | ||||
<organization showOnFrontPage="true">Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Hirsalantie 11</street> | ||||
<code>02420</code> | ||||
<city>Jorvas</city> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>christer.holmberg@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
</section> | </section> | |||
</section> | </back> | |||
<section title="Changes from RFC 4583" anchor="sec:changes"> | ||||
<t>Following is the list of technical changes and other fixes from <xref tar | ||||
get="RFC4583"/>.</t> | ||||
<t>Main purpose of this work was to add signaling support necessary to suppo | ||||
rt BFCP over unreliable transport, as described in <xref target="I-D.ietf-bfcpbi | ||||
s-rfc4582bis"/>, resulting in the following changes:</t> | ||||
<t><list style="numbers"> | ||||
<t>Fields in the 'm' line (<xref target="sec:m-line"/>):<vspace/> | ||||
The section is re-written to remove reference to the exclusivity of TC | ||||
P as a transport for BFCP streams. The proto field values TCP/DTLS/BFCP, UDP/BFC | ||||
P and UDP/TLS/BFCP added.</t> | ||||
<t>Security Considerations (<xref target="sec:security"/>):<vspace/> | ||||
For the DTLS over UDP case, mention existing considerations and requir | ||||
ements for the offer/answer exchange in <xref target="I-D.ietf-mmusic-dtls-sdp"/ | ||||
>.</t> | ||||
<t>Registration of SDP 'proto' Values (<xref target="sec:proto-reg"/>):< | ||||
vspace/> | ||||
Register the three new values TCP/DTLS/BFCP, UDP/BFCP and UDP/TLS/BFCP | ||||
in the SDP parameters registry.</t> | ||||
<t>BFCP Version Negotiation (<xref target="sec:bfcp-version-attr"/>):<vs | ||||
pace/> | ||||
A new 'bfcpver' SDP media-level attribute is added in order to signal | ||||
supported version number.</t> | ||||
</list></t> | ||||
<t>In addition to the changes associated with support of BFCP over unreliabl | ||||
e transport, the possibility for an endpoint to act as both floor control client | ||||
and floor control server at the same time has | ||||
been removed. An endpoint will now take the same role for all BFCP-controlle | ||||
d streams associated with the BFCP stream.</t> | ||||
<t>Clarification and bug fixes:</t> | ||||
<t><list style="numbers"> | ||||
<t>Errata ID: 712 (<xref target="sec:server-determination"/> and <xref t | ||||
arget="sec:oa-offer-answer-proc"/>):<vspace/> | ||||
Language clarification. Don't use terms like an SDP attribute is "used | ||||
in an 'm' line", instead make clear that the attribute is a media-level attribu | ||||
te.</t> | ||||
<t>Fix typo in example (<xref target="sec:example"/>):<vspace/> | ||||
Do not use 'm-stream' in the SDP example, use the correct 'mstrm' as s | ||||
pecified in <xref target="sec:example"/>. Recommend interpreting 'm-stream' if i | ||||
t is received, since it is present in some implementations.</t> | ||||
<t>Assorted clarifications (Across the document):<vspace/> | ||||
Language clarifications as a result of reviews. Also, the normative la | ||||
nguage where tightened where appropriate, i.e. changed from SHOULD strength to M | ||||
UST in a number of places.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="Acknowledgements" anchor="sec:acks"> | ||||
<t>Joerg Ott, Keith Drage, Alan Johnston, Eric Rescorla, Roni Even, and Osca | ||||
r Novo provided useful ideas for the original <xref target="RFC4583"/>. The auth | ||||
ors also acknowledge contributions to the revision of BFCP for use over an unrel | ||||
iable transport from Geir Arne Sandbakken, Charles Eckel, Alan Ford, Eoin McLeod | ||||
and Mark Thompson. Useful and important final reviews were done by Ali C. Begen | ||||
, Mary Barnes and Charles Eckel. In the final stages, Roman Shpount made a consi | ||||
derable effort in adding proper ICE support and considerations.</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<?rfc include="reference.RFC.2119" ?> | ||||
<?rfc include="reference.RFC.5234" ?> | ||||
<?rfc include="reference.RFC.3261" ?> | ||||
<?rfc include="reference.RFC.3264" ?> | ||||
<?rfc include="reference.RFC.4145" ?> | ||||
<?rfc include="reference.RFC.4574" ?> | ||||
<?rfc include="reference.RFC.8122" ?> | ||||
<?rfc include="reference.RFC.4566" ?> | ||||
<?rfc include="reference.RFC.6347" ?> | ||||
<?rfc include="reference.RFC.4571" ?> | ||||
<?rfc include="reference.RFC.6544" ?> | ||||
<?rfc include="reference.RFC.4582" ?> | ||||
<?rfc include="reference.RFC.4583" ?> | ||||
<?rfc include="reference.RFC.8174" ?> | ||||
<?rfc include="reference.RFC.8445" ?> | ||||
<?rfc include="reference.I-D.draft-ietf-mmusic-ice-sip-sdp-24"?> | ||||
<?rfc include="reference.I-D.draft-ietf-bfcpbis-rfc4582bis-16" ?> | ||||
<?rfc include="reference.I-D.draft-ietf-mmusic-dtls-sdp-32" ?> | ||||
<?rfc include="reference.I-D.draft-ietf-mmusic-sdp-mux-attributes-17" ?> | ||||
</references> | ||||
<references title="Informational References"> | ||||
<?rfc include="reference.RFC.5576" ?> | ||||
<?rfc include="reference.I-D.draft-ietf-mmusic-sdp-bundle-negotiation-53" ?> | ||||
</references> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 53 change blocks. | ||||
964 lines changed or deleted | 2078 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/ |