< draft-ietf-bfcpbis-bfcp-websocket-06.txt   draft-ietf-bfcpbis-bfcp-websocket-07.txt >
BFCPBIS Working Group V. Pascual BFCPBIS Working Group V. Pascual
Internet-Draft Oracle Internet-Draft Oracle
Updates: rfc4582bis, rfc4583bis (if A. Roman Updates: rfc4582bis, rfc4583bis (if A. Roman
approved) Quobis approved) Quobis
Intended status: Standards Track S. Cazeaux Intended status: Standards Track S. Cazeaux
Expires: August 6, 2016 France Telecom Orange Expires: November 3, 2016 France Telecom Orange
G. Salgueiro G. Salgueiro
R. Ravindranath R. Ravindranath
Cisco Cisco
S. Garcia Murillo S. Garcia Murillo
Medooze Medooze
February 3, 2016 May 2, 2016
The WebSocket Protocol as a Transport for the Binary Floor Control The WebSocket Protocol as a Transport for the Binary Floor Control
Protocol (BFCP) Protocol (BFCP)
draft-ietf-bfcpbis-bfcp-websocket-06 draft-ietf-bfcpbis-bfcp-websocket-07
Abstract Abstract
The WebSocket protocol enables two-way realtime communication between The WebSocket protocol enables two-way realtime communication between
clients and servers. This document specifies a new WebSocket sub- clients and servers. This document specifies a new WebSocket sub-
protocol as a reliable transport mechanism between Binary Floor protocol as a reliable transport mechanism between Binary Floor
Control Protocol (BFCP) entities to enable usage of BFCP in new Control Protocol (BFCP) entities to enable usage of BFCP in new
scenarios. scenarios.
Status of This Memo Status of This Memo
skipping to change at page 1, line 43 skipping to change at page 1, line 43
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 6, 2016. This Internet-Draft will expire on November 3, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 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
(http://trustee.ietf.org/license-info) in effect on the date of (http://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
skipping to change at page 2, line 35 skipping to change at page 2, line 35
6. SDP Considerations . . . . . . . . . . . . . . . . . . . . . 6 6. SDP Considerations . . . . . . . . . . . . . . . . . . . . . 6
6.1. Updates to RFC4583bis . . . . . . . . . . . . . . . . . . 6 6.1. Updates to RFC4583bis . . . . . . . . . . . . . . . . . . 6
6.2. Updates to RFC4582bis . . . . . . . . . . . . . . . . . . 6 6.2. Updates to RFC4582bis . . . . . . . . . . . . . . . . . . 6
6.3. SDP Media Attributes . . . . . . . . . . . . . . . . . . 7 6.3. SDP Media Attributes . . . . . . . . . . . . . . . . . . 7
7. SDP Offer/Answer Procedures . . . . . . . . . . . . . . . . . 7 7. SDP Offer/Answer Procedures . . . . . . . . . . . . . . . . . 7
7.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 7 7.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 7
7.2. Example Usage of 'wss-uri' SDP Attribute . . . . . . . . 7 7.2. Example Usage of 'wss-uri' SDP Attribute . . . . . . . . 7
8. Authentication . . . . . . . . . . . . . . . . . . . . . . . 8 8. Authentication . . . . . . . . . . . . . . . . . . . . . . . 8
9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
10.1. Registration of the WebSocket BFCP Sub-Protocol . . . . 9 10.1. Registration of the WebSocket BFCP Sub-Protocol . . . . 10
10.2. Registration of the 'TCP/WS/BFCP' and 'TCP/WSS/BFCP' SDP 10.2. Registration of the 'TCP/WS/BFCP' and 'TCP/WSS/BFCP' SDP
'proto' Values . . . . . . . . . . . . . . . . . . . . . 10 'proto' Values . . . . . . . . . . . . . . . . . . . . . 10
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
12.1. Normative References . . . . . . . . . . . . . . . . . . 10 12.1. Normative References . . . . . . . . . . . . . . . . . . 10
12.2. Informative References . . . . . . . . . . . . . . . . . 11 12.2. Informative References . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction 1. Introduction
The WebSocket [RFC6455] protocol enables two-way message exchange The WebSocket [RFC6455] protocol enables two-way message exchange
between clients and servers on top of a persistent TCP connection, between clients and servers on top of a persistent TCP connection,
optionally secured with Transport Layer Security (TLS) [RFC5246]. optionally secured with Transport Layer Security (TLS) [RFC5246].
The initial protocol handshake makes use of Hypertext Transfer The initial protocol handshake makes use of Hypertext Transfer
Protocol (HTTP) [RFC2616] semantics, allowing the WebSocket protocol Protocol (HTTP) [RFC2616] semantics, allowing the WebSocket protocol
to reuse existing HTTP infrastructure. to reuse existing HTTP infrastructure.
skipping to change at page 5, line 33 skipping to change at page 5, line 33
Sec-WebSocket-Protocol: bfcp Sec-WebSocket-Protocol: bfcp
Sec-WebSocket-Version: 13 Sec-WebSocket-Version: 13
The handshake response from the Server accepting the WebSocket BFCP The handshake response from the Server accepting the WebSocket BFCP
sub-protocol would look as follows: sub-protocol would look as follows:
HTTP/1.1 101 Switching Protocols HTTP/1.1 101 Switching Protocols
Upgrade: websocket Upgrade: websocket
Connection: Upgrade Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
Sec-WebSocket-Protocol: bfcp Sec-WebSocket-Protocol: BFCP
Once the negotiation has been completed, the WebSocket connection is Once the negotiation has been completed, the WebSocket connection is
established and can be used for the transport of BFCP messages. The established and can be used for the transport of BFCP messages. The
WebSocket messages transmitted over this connection MUST conform to WebSocket messages transmitted over this connection MUST conform to
the negotiated WebSocket sub-protocol. the negotiated WebSocket sub-protocol.
4.2. BFCP Encoding 4.2. BFCP Encoding
BFCP messages use a TLV (Type-Length-Value) binary encoding, BFCP messages use a TLV (Type-Length-Value) binary encoding,
therefore BFCP WebSocket Clients and BFCP WebSocket Servers MUST be therefore BFCP WebSocket Clients and BFCP WebSocket Servers MUST be
skipping to change at page 7, line 31 skipping to change at page 7, line 31
open the WebSocket connection. The port provided in the 'm' line open the WebSocket connection. The port provided in the 'm' line
SHALL be ignored too, as the a=ws-uri or a=wss-uri SHALL provide port SHALL be ignored too, as the a=ws-uri or a=wss-uri SHALL provide port
number when needed. number when needed.
7. SDP Offer/Answer Procedures 7. SDP Offer/Answer Procedures
7.1. General 7.1. General
An endpoint (i.e., both the offerer and the answerer) MUST create an An endpoint (i.e., both the offerer and the answerer) MUST create an
SDP media description ("m=" line) for each BFCP-over-WebSocket media SDP media description ("m=" line) for each BFCP-over-WebSocket media
stream and MUST assign a TCP/WSS/BFCP value to the "proto" field of stream and MUST assign either TCP/WSS/BFCP or TCP/WS/BFCP value to
the "m=" line. Furthermore, the SDP answerer (Server) MUST add an the "proto" field of the "m=" line depending on whether the endpoint
"a=ws-uri" or "a=wss-uri" attribute in the "m=" line of each BFCP- wishes to use secure WebSocket or WebSocket. Furthermore, the server
over-WebSocket media stream depending on whether it is WS or WSS. side, whichcould be either the offerer or answerer, MUST add an
This new attribute MUST follow the syntax defined in "a=ws-uri" or "a=wss-uri" attribute in the media section depending on
whether it wishes to use WebSocket or secure WebSocket. This new
attribute MUST follow the syntax defined in
[I-D.ram-bfcpbis-sdp-ws-uri]. Additionally, the SDP Offer/Answer [I-D.ram-bfcpbis-sdp-ws-uri]. Additionally, the SDP Offer/Answer
procedures defined in Section 4 of [I-D.ram-bfcpbis-sdp-ws-uri] MUST procedures defined in Section 4 of [I-D.ram-bfcpbis-sdp-ws-uri] MUST
be followed for the "m=" line associated with a BFCP-over-WebSocket be followed for the "m=" line associated with a BFCP-over-WebSocket
media stream. media stream.
7.2. Example Usage of 'wss-uri' SDP Attribute 7.2. Example Usage of 'wss-uri' SDP Attribute
The following is an example of an "m=" line for a BFCP connection. The following is an example of an "m=" line for a BFCP connection.
In this example, the offeror sends the SDP with the "proto" field In this example, the offerer sends the SDP with the "proto" field
having a value of TCP/WSS/BFCP * indicating that the offeror wishes having a value of TCP/WSS/BFCP * indicating that the offerer wishes
to use secure WebSocket as a transport for the media stream. to use secure WebSocket as a transport for the media stream.
Offer (browser): Offer (browser):
m=application 9 TCP/WSS/BFCP * m=application 9 TCP/WSS/BFCP *
a=setup:active a=setup:active
a=connection:new a=connection:new
a=floorctrl:c-only a=floorctrl:c-only
m=audio 55000 RTP/AVP 0 m=audio 55000 RTP/AVP 0
m=video 55002 RTP/AVP 31 m=video 55002 RTP/AVP 31
skipping to change at page 8, line 28 skipping to change at page 8, line 28
a=floorctrl:s-only a=floorctrl:s-only
a=confid:4321 a=confid:4321
a=userid:1234 a=userid:1234
a=floorid:1 m-stream:10 a=floorid:1 m-stream:10
a=floorid:2 m-stream:11 a=floorid:2 m-stream:11
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
It is possible that a endpoint (e.g., a browser) sends an offerless
INVITE to the server. In such cases the server will act as SDP
offerer. The server MUST assign the SDP "setup" attribute with a
value of "passive". The server MUST have an "a=ws-uri" or "a=wss-
uri" attribute in the media section depending on whether the server
wishes to use WebSocket or secure WebSocket. This attribute MUST
follow the syntax defined in Section 3. For BFCP application, the
"proto" value in the "m=" line MUST be TCP/WSS/BFCP if WebSocket is
over TLS, else it MUST be TCP/WS/BFCP.
8. Authentication 8. Authentication
Section 9 of [I-D.ietf-bfcpbis-rfc4582bis] states that BFCP clients Section 9 of [I-D.ietf-bfcpbis-rfc4582bis] states that BFCP clients
and floor control servers SHOULD authenticate each other prior to and floor control servers SHOULD authenticate each other prior to
accepting messages, and RECOMMENDS that mutual TLS/DTLS accepting messages, and RECOMMENDS that mutual TLS/DTLS
authentication be used. However, browser-based WebSocket clients authentication be used. However, browser-based WebSocket clients
have no control over the use of TLS in the WebSocket API [WS-API], so have no control over the use of TLS in the WebSocket API [WS-API], so
it is RECOMMENDED that standard Web-based methods for client and it is RECOMMENDED that standard Web-based methods for client and
server authentication are used, as follows. server authentication are used, as follows.
skipping to change at page 10, line 30 skipping to change at page 10, line 42
Figure 1: Values for the SDP 'proto' Field Figure 1: Values for the SDP 'proto' Field
[[NOTE TO RFC EDITOR: Please change XXXX to the number assigned to [[NOTE TO RFC EDITOR: Please change XXXX to the number assigned to
this specification, and remove this paragraph on publication.]] this specification, and remove this paragraph on publication.]]
11. Acknowledgements 11. Acknowledgements
The authors want to thank Robert Welbourn, from Acme Packet, who made The authors want to thank Robert Welbourn, from Acme Packet, who made
significant contributions to the first version of this document. significant contributions to the first version of this document.
This work benefited from the thorough review and constructive This work benefited from the thorough review and constructive
comments of Charles Eckel and Christer Holmberg. comments of Charles Eckel, Christer Holmberg and Paul Kyzivat.
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-bfcpbis-rfc4582bis] [I-D.ietf-bfcpbis-rfc4582bis]
Camarillo, G., Drage, K., Kristensen, T., Ott, J., and C. Camarillo, G., Drage, K., Kristensen, T., Ott, J., and C.
Eckel, "The Binary Floor Control Protocol (BFCP)", draft- Eckel, "The Binary Floor Control Protocol (BFCP)", draft-
ietf-bfcpbis-rfc4582bis-16 (work in progress), November ietf-bfcpbis-rfc4582bis-16 (work in progress), November
2015. 2015.
[I-D.ietf-bfcpbis-rfc4583bis] [I-D.ietf-bfcpbis-rfc4583bis]
Camarillo, G., Kristensen, T., and P. Jones, "Session Camarillo, G., Kristensen, T., and P. Jones, "Session
Description Protocol (SDP) Format for Binary Floor Control Description Protocol (SDP) Format for Binary Floor Control
Protocol (BFCP) Streams", draft-ietf-bfcpbis-rfc4583bis-12 Protocol (BFCP) Streams", draft-ietf-bfcpbis-rfc4583bis-13
(work in progress), September 2015. (work in progress), February 2016.
[I-D.ram-bfcpbis-sdp-ws-uri] [I-D.ram-bfcpbis-sdp-ws-uri]
R, R. and G. Salgueiro, "Session Description Protocol R, R. and G. Salgueiro, "Session Description Protocol
(SDP) WebSocket Connection URI Attribute", draft-ram- (SDP) WebSocket Connection URI Attribute", draft-ram-
bfcpbis-sdp-ws-uri-01 (work in progress), October 2015. bfcpbis-sdp-ws-uri-03 (work in progress), February 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[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,
<http://www.rfc-editor.org/info/rfc4145>. <http://www.rfc-editor.org/info/rfc4145>.
 End of changes. 13 change blocks. 
18 lines changed or deleted 30 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/