rfc8856v4.txt | rfc8856.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) G. Camarillo | Internet Engineering Task Force (IETF) G. Camarillo | |||
Request for Comments: 8856 Ericsson | Request for Comments: 8856 Ericsson | |||
Obsoletes: 4583 T. Kristensen | Obsoletes: 4583 T. Kristensen | |||
Category: Standards Track Jotron | Category: Standards Track Jotron | |||
ISSN: 2070-1721 C. Holmberg | ISSN: 2070-1721 C. Holmberg | |||
Ericsson | Ericsson | |||
December 2020 | January 2021 | |||
Session Description Protocol (SDP) Format for Binary Floor Control | Session Description Protocol (SDP) Format for Binary Floor Control | |||
Protocol (BFCP) Streams | Protocol (BFCP) Streams | |||
Abstract | Abstract | |||
This document defines the Session Description Protocol (SDP) offer/ | This document defines the Session Description Protocol (SDP) offer/ | |||
answer procedures for negotiating and establishing Binary Floor | answer procedures for negotiating and establishing Binary Floor | |||
Control Protocol (BFCP) streams. | Control Protocol (BFCP) streams. | |||
skipping to change at line 37 ¶ | skipping to change at line 37 ¶ | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
https://www.rfc-editor.org/info/rfc8856. | https://www.rfc-editor.org/info/rfc8856. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at line 148 ¶ | skipping to change at line 148 ¶ | |||
When two endpoints establish a BFCP stream, they need to determine | 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 | which of them acts as a floor control client and which acts as a | |||
floor control server. | floor control server. | |||
Once the roles have been determined, the roles will apply to all | Once the roles have been determined, the roles will apply to all | |||
BFCP-controlled streams associated with the BFCP stream. | BFCP-controlled streams associated with the BFCP stream. | |||
4. Fields in the "m=" Line | 4. Fields in the "m=" Line | |||
According to the SDP specification [RFC4566], the "m=" line format is | According to the SDP specification [RFC8866], the "m=" line format is | |||
as follows: | as follows: | |||
m=<media> <port> <proto> <fmt> ... | m=<media> <port> <proto> <fmt> ... | |||
This section describes how to generate an "m=" line of an SDP Media | This section describes how to generate an "m=" line of an SDP Media | |||
Description ("m=" section) describing a BFCP stream. | Description ("m=" section) describing a BFCP stream. | |||
The media field MUST have a value of "application". | The media field MUST have a value of "application". | |||
Depending on the value of the proto field, the port field is set as | Depending on the value of the proto field, the port field is set as | |||
skipping to change at line 379 ¶ | skipping to change at line 379 ¶ | |||
Charset Dependent: No | Charset Dependent: No | |||
Mux Category: TBD | Mux Category: TBD | |||
The Augmented BNF syntax [RFC5234] for the attribute is: | The Augmented BNF syntax [RFC5234] for the attribute is: | |||
floor-id = 1*DIGIT SP "mstrm:" token *(SP token) | floor-id = 1*DIGIT SP "mstrm:" token *(SP token) | |||
DIGIT = <DIGIT as defined in [RFC5234]> | DIGIT = <DIGIT as defined in [RFC5234]> | |||
token = <token as defined in [RFC4566]> | token = <token as defined in [RFC8866]> | |||
The maximum value of the attribute is determined by the FLOOR-ID | The maximum value of the attribute is determined by the FLOOR-ID | |||
format [RFC8855]. | format [RFC8855]. | |||
The floor identifier value is the integer representation of the | The floor identifier value is the integer representation of the | |||
Floor ID field value [RFC8855] to be used in BFCP. Each media stream | Floor ID field value [RFC8855] to be used in BFCP. Each media stream | |||
pointer value is associated with an SDP 'label' attribute [RFC4574] | pointer value is associated with an SDP 'label' attribute [RFC4574] | |||
of a media stream. | of a media stream. | |||
The SDP Offer/Answer procedures for the 'floorid' attribute are | The SDP Offer/Answer procedures for the 'floorid' attribute are | |||
skipping to change at line 630 ¶ | skipping to change at line 630 ¶ | |||
10.2. Generating the SDP Answer | 10.2. Generating the SDP Answer | |||
When the answerer receives an offer that contains an "m=" section | When the answerer receives an offer that contains an "m=" section | |||
describing a BFCP stream, the answerer MUST check whether it supports | describing a BFCP stream, the answerer MUST check whether it supports | |||
one or more of the BFCP versions supported by the offerer | one or more of the BFCP versions supported by the offerer | |||
(Section 5.5). If the answerer does not support any of the BFCP | (Section 5.5). If the answerer does not support any of the BFCP | |||
versions, it MUST NOT accept the "m=" section. Otherwise, if the | versions, it MUST NOT accept the "m=" section. Otherwise, if the | |||
answerer accepts the "m=" section, the answerer | answerer accepts the "m=" section, the answerer | |||
* MUST insert a corresponding "m=" section in the answer, with an | * MUST insert a corresponding "m=" section in the answer, with an | |||
identical "m=" line proto value [RFC4566], | identical "m=" line proto value [RFC8866], | |||
* MUST include a 'bfcpver' attribute in the "m=" section; the | * MUST include a 'bfcpver' attribute in the "m=" section; the | |||
versions indicated by the answer MUST be the same or a subset of | versions indicated by the answer MUST be the same or a subset of | |||
the versions indicated by the offerer in the corresponding offer, | the versions indicated by the offerer in the corresponding offer, | |||
and | and | |||
* MUST, if the offer contained an SDP 'floorctrl' attribute, include | * MUST, if the offer contained an SDP 'floorctrl' attribute, include | |||
a 'floorctrl' attribute in the "m=" section. | a 'floorctrl' attribute in the "m=" section. | |||
In addition, if the answerer includes an SDP 'floorctrl' attribute | In addition, if the answerer includes an SDP 'floorctrl' attribute | |||
skipping to change at line 800 ¶ | skipping to change at line 800 ¶ | |||
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 | |||
12. Security Considerations | 12. Security Considerations | |||
The BFCP specification [RFC8855], SDP specification [RFC4566], and | The BFCP specification [RFC8855], SDP specification [RFC8866], and | |||
offer/answer specification [RFC3264] discuss security issues related | offer/answer specification [RFC3264] discuss security issues related | |||
to BFCP, SDP, and offer/answer, respectively. In addition, [RFC4145] | to BFCP, SDP, and offer/answer, respectively. In addition, [RFC4145] | |||
and [RFC8122] discuss security issues related to the establishment of | and [RFC8122] discuss security issues related to the establishment of | |||
TCP and TLS connections using an offer/answer model. Furthermore, | TCP and TLS connections using an offer/answer model. Furthermore, | |||
when using DTLS over UDP, the generic offer/answer considerations | when using DTLS over UDP, the generic offer/answer considerations | |||
defined in [RFC8842] MUST be followed. | defined in [RFC8842] MUST be followed. | |||
The usage of certain proto values in the SDP offer/answer negotiation | The usage of certain proto values in the SDP offer/answer negotiation | |||
will result in a BFCP stream that is not protected by TLS or DTLS. | will result in a BFCP stream that is not protected by TLS or DTLS. | |||
Operators will need to provide integrity protection and | Operators will need to provide integrity protection and | |||
skipping to change at line 968 ¶ | skipping to change at line 968 ¶ | |||
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | |||
with Session Description Protocol (SDP)", RFC 3264, | with Session Description Protocol (SDP)", RFC 3264, | |||
DOI 10.17487/RFC3264, June 2002, | DOI 10.17487/RFC3264, June 2002, | |||
<https://www.rfc-editor.org/info/rfc3264>. | <https://www.rfc-editor.org/info/rfc3264>. | |||
[RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in | [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in | |||
the Session Description Protocol (SDP)", RFC 4145, | the Session Description Protocol (SDP)", RFC 4145, | |||
DOI 10.17487/RFC4145, September 2005, | DOI 10.17487/RFC4145, September 2005, | |||
<https://www.rfc-editor.org/info/rfc4145>. | <https://www.rfc-editor.org/info/rfc4145>. | |||
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | ||||
Description Protocol", RFC 4566, DOI 10.17487/RFC4566, | ||||
July 2006, <https://www.rfc-editor.org/info/rfc4566>. | ||||
[RFC4571] Lazzaro, J., "Framing Real-time Transport Protocol (RTP) | [RFC4571] Lazzaro, J., "Framing Real-time Transport Protocol (RTP) | |||
and RTP Control Protocol (RTCP) Packets over Connection- | and RTP Control Protocol (RTCP) Packets over Connection- | |||
Oriented Transport", RFC 4571, DOI 10.17487/RFC4571, July | Oriented Transport", RFC 4571, DOI 10.17487/RFC4571, July | |||
2006, <https://www.rfc-editor.org/info/rfc4571>. | 2006, <https://www.rfc-editor.org/info/rfc4571>. | |||
[RFC4574] Levin, O. and G. Camarillo, "The Session Description | [RFC4574] Levin, O. and G. Camarillo, "The Session Description | |||
Protocol (SDP) Label Attribute", RFC 4574, | Protocol (SDP) Label Attribute", RFC 4574, | |||
DOI 10.17487/RFC4574, August 2006, | DOI 10.17487/RFC4574, August 2006, | |||
<https://www.rfc-editor.org/info/rfc4574>. | <https://www.rfc-editor.org/info/rfc4574>. | |||
skipping to change at line 1025 ¶ | skipping to change at line 1021 ¶ | |||
[RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | |||
Connectivity Establishment (ICE): A Protocol for Network | Connectivity Establishment (ICE): A Protocol for Network | |||
Address Translator (NAT) Traversal", RFC 8445, | Address Translator (NAT) Traversal", RFC 8445, | |||
DOI 10.17487/RFC8445, July 2018, | DOI 10.17487/RFC8445, July 2018, | |||
<https://www.rfc-editor.org/info/rfc8445>. | <https://www.rfc-editor.org/info/rfc8445>. | |||
[RFC8839] Petit-Huguenin, M., Nandakumar, S., Holmberg, C., Keränen, | [RFC8839] Petit-Huguenin, M., Nandakumar, S., Holmberg, C., Keränen, | |||
A., and R. Shpount, "Session Description Protocol (SDP) | A., and R. Shpount, "Session Description Protocol (SDP) | |||
Offer/Answer Procedures for Interactive Connectivity | Offer/Answer Procedures for Interactive Connectivity | |||
Establishment (ICE)", RFC 8839, DOI 10.17487/RFC8839, | Establishment (ICE)", RFC 8839, DOI 10.17487/RFC8839, | |||
December 2020, <https://www.rfc-editor.org/info/rfc8839>. | January 2021, <https://www.rfc-editor.org/info/rfc8839>. | |||
[RFC8842] Holmberg, C. and R. Shpount, "Session Description Protocol | [RFC8842] Holmberg, C. and R. Shpount, "Session Description Protocol | |||
(SDP) Offer/Answer Considerations for Datagram Transport | (SDP) Offer/Answer Considerations for Datagram Transport | |||
Layer Security (DTLS) and Transport Layer Security (TLS)", | Layer Security (DTLS) and Transport Layer Security (TLS)", | |||
RFC 8842, DOI 10.17487/RFC8842, December 2020, | RFC 8842, DOI 10.17487/RFC8842, January 2021, | |||
<https://www.rfc-editor.org/info/rfc8842>. | <https://www.rfc-editor.org/info/rfc8842>. | |||
[RFC8855] Camarillo, G., Drage, K., Kristensen, T., Ott, J., and C. | [RFC8855] Camarillo, G., Drage, K., Kristensen, T., Ott, J., and C. | |||
Eckel, "The Binary Floor Control Protocol (BFCP)", | Eckel, "The Binary Floor Control Protocol (BFCP)", | |||
RFC 8855, DOI 10.17487/RFC8855, December 2020, | RFC 8855, DOI 10.17487/RFC8855, January 2021, | |||
<https://www.rfc-editor.org/info/rfc8855>. | <https://www.rfc-editor.org/info/rfc8855>. | |||
[RFC8859] Nandakumar, S., "A Framework for Session Description | [RFC8859] Nandakumar, S., "A Framework for Session Description | |||
Protocol (SDP) Attributes When Multiplexing", RFC 8859, | Protocol (SDP) Attributes When Multiplexing", RFC 8859, | |||
DOI 10.17487/RFC8859, December 2020, | DOI 10.17487/RFC8859, January 2021, | |||
<https://www.rfc-editor.org/info/rfc8859>. | <https://www.rfc-editor.org/info/rfc8859>. | |||
[RFC8866] Begen, A., Kyzivat, P., Perkins, C., and M. Handley, "SDP: | ||||
Session Description Protocol", RFC 8866, | ||||
DOI 10.17487/RFC8866, January 2021, | ||||
<https://www.rfc-editor.org/info/rfc8866>. | ||||
15.2. Informative References | 15.2. Informative References | |||
[Err712] RFC Errata, Erratum ID 712, RFC 4583, | [Err712] RFC Errata, Erratum ID 712, RFC 4583, | |||
<https://www.rfc-editor.org/errata/eid712>. | <https://www.rfc-editor.org/errata/eid712>. | |||
[RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific | [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific | |||
Media Attributes in the Session Description Protocol | Media Attributes in the Session Description Protocol | |||
(SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009, | (SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009, | |||
<https://www.rfc-editor.org/info/rfc5576>. | <https://www.rfc-editor.org/info/rfc5576>. | |||
[RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | |||
"Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
Description Protocol (SDP)", RFC 8843, | Description Protocol (SDP)", RFC 8843, | |||
DOI 10.17487/RFC8843, December 2020, | DOI 10.17487/RFC8843, January 2021, | |||
<https://www.rfc-editor.org/info/rfc8843>. | <https://www.rfc-editor.org/info/rfc8843>. | |||
Acknowledgements | Acknowledgements | |||
Jörg Ott, Keith Drage, Alan Johnston, Eric Rescorla, Roni Even, and | Jörg Ott, Keith Drage, Alan Johnston, Eric Rescorla, Roni Even, and | |||
Oscar Novo provided useful ideas for the original [RFC4583]. The | Oscar Novo provided useful ideas for the original [RFC4583]. The | |||
authors also acknowledge contributions to the revision of BFCP for | authors also acknowledge contributions to the revision of BFCP for | |||
use over an unreliable transport from Geir Arne Sandbakken, Charles | use over an unreliable transport from Geir Arne Sandbakken, Charles | |||
Eckel, Alan Ford, Eoin McLeod, and Mark Thompson. Useful and | Eckel, Alan Ford, Eoin McLeod, and Mark Thompson. Useful and | |||
important final reviews were done by Ali C. Begen, Mary Barnes, and | important final reviews were done by Ali C. Begen, Mary Barnes, and | |||
End of changes. 13 change blocks. | ||||
15 lines changed or deleted | 16 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/ |