draft-ietf-rtcweb-overview-17.txt | draft-ietf-rtcweb-overview-18.txt | |||
---|---|---|---|---|
Network Working Group H. Alvestrand | Network Working Group H. Alvestrand | |||
Internet-Draft Google | Internet-Draft Google | |||
Intended status: Standards Track February 17, 2017 | Intended status: Standards Track March 3, 2017 | |||
Expires: August 21, 2017 | Expires: September 4, 2017 | |||
Overview: Real Time Protocols for Browser-based Applications | Overview: Real Time Protocols for Browser-based Applications | |||
draft-ietf-rtcweb-overview-17 | draft-ietf-rtcweb-overview-18 | |||
Abstract | Abstract | |||
This document gives an overview and context of a protocol suite | This document gives an overview and context of a protocol suite | |||
intended for use with real-time applications that can be deployed in | intended for use with real-time applications that can be deployed in | |||
browsers - "real time communication on the Web". | browsers - "real time communication on the Web". | |||
It intends to serve as a starting and coordination point to make sure | It intends to serve as a starting and coordination point to make sure | |||
all the parts that are needed to achieve this goal are findable, and | all the parts that are needed to achieve this goal are findable, and | |||
that the parts that belong in the Internet protocol suite are fully | that the parts that belong in the Internet protocol suite are fully | |||
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 21, 2017. | This Internet-Draft will expire on September 4, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 41 ¶ | skipping to change at page 2, line 41 ¶ | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
13.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
13.2. Informative References . . . . . . . . . . . . . . . . . 18 | 13.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 19 | Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 19 | |||
A.1. Changes from draft-alvestrand-dispatch-rtcweb-datagram-00 | A.1. Changes from draft-alvestrand-dispatch-rtcweb-datagram-00 | |||
to -01 . . . . . . . . . . . . . . . . . . . . . . . . . 19 | to -01 . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
A.2. Changes from draft-alvestrand-dispatch-01 to draft- | A.2. Changes from draft-alvestrand-dispatch-01 to draft- | |||
alvestrand-rtcweb-overview-00 . . . . . . . . . . . . . . 19 | alvestrand-rtcweb-overview-00 . . . . . . . . . . . . . . 19 | |||
A.3. Changes from draft-alvestrand-rtcweb-00 to -01 . . . . . 19 | A.3. Changes from draft-alvestrand-rtcweb-00 to -01 . . . . . 20 | |||
A.4. Changes from draft-alvestrand-rtcweb-overview-01 to | A.4. Changes from draft-alvestrand-rtcweb-overview-01 to | |||
draft-ietf-rtcweb-overview-00 . . . . . . . . . . . . . . 20 | draft-ietf-rtcweb-overview-00 . . . . . . . . . . . . . . 20 | |||
A.5. Changes from -00 to -01 of draft-ietf-rtcweb-overview . . 20 | A.5. Changes from -00 to -01 of draft-ietf-rtcweb-overview . . 20 | |||
A.6. Changes from -01 to -02 of draft-ietf-rtcweb-overview . . 20 | A.6. Changes from -01 to -02 of draft-ietf-rtcweb-overview . . 20 | |||
A.7. Changes from -02 to -03 of draft-ietf-rtcweb-overview . . 20 | A.7. Changes from -02 to -03 of draft-ietf-rtcweb-overview . . 20 | |||
A.8. Changes from -03 to -04 of draft-ietf-rtcweb-overview . . 21 | A.8. Changes from -03 to -04 of draft-ietf-rtcweb-overview . . 21 | |||
A.9. Changes from -04 to -05 of draft-ietf-rtcweb-overview . . 21 | A.9. Changes from -04 to -05 of draft-ietf-rtcweb-overview . . 21 | |||
A.10. Changes from -05 to -06 . . . . . . . . . . . . . . . . . 21 | A.10. Changes from -05 to -06 . . . . . . . . . . . . . . . . . 21 | |||
A.11. Changes from -06 to -07 . . . . . . . . . . . . . . . . . 21 | A.11. Changes from -06 to -07 . . . . . . . . . . . . . . . . . 21 | |||
A.12. Changes from -07 to -08 . . . . . . . . . . . . . . . . . 21 | A.12. Changes from -07 to -08 . . . . . . . . . . . . . . . . . 21 | |||
A.13. Changes from -08 to -09 . . . . . . . . . . . . . . . . . 21 | A.13. Changes from -08 to -09 . . . . . . . . . . . . . . . . . 21 | |||
A.14. Changes from -09 to -10 . . . . . . . . . . . . . . . . . 21 | A.14. Changes from -09 to -10 . . . . . . . . . . . . . . . . . 22 | |||
A.15. Changes from -10 to -11 . . . . . . . . . . . . . . . . . 22 | A.15. Changes from -10 to -11 . . . . . . . . . . . . . . . . . 22 | |||
A.16. Changes from -11 to -12 . . . . . . . . . . . . . . . . . 22 | A.16. Changes from -11 to -12 . . . . . . . . . . . . . . . . . 22 | |||
A.17. Changes from -12 to -13 . . . . . . . . . . . . . . . . . 22 | A.17. Changes from -12 to -13 . . . . . . . . . . . . . . . . . 22 | |||
A.18. Changes from -13 to -14 . . . . . . . . . . . . . . . . . 22 | A.18. Changes from -13 to -14 . . . . . . . . . . . . . . . . . 23 | |||
A.19. Changes from -14 to -15 . . . . . . . . . . . . . . . . . 22 | A.19. Changes from -14 to -15 . . . . . . . . . . . . . . . . . 23 | |||
A.20. Changes from -15 to -16 . . . . . . . . . . . . . . . . . 22 | A.20. Changes from -15 to -16 . . . . . . . . . . . . . . . . . 23 | |||
A.21. Changes from -16 to -17 . . . . . . . . . . . . . . . . . 23 | A.21. Changes from -16 to -17 . . . . . . . . . . . . . . . . . 23 | |||
A.22. Changes from -17 to -18 . . . . . . . . . . . . . . . . . 23 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 23 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
1. Introduction | 1. Introduction | |||
The Internet was, from very early in its lifetime, considered a | The Internet was, from very early in its lifetime, considered a | |||
possible vehicle for the deployment of real-time, interactive | possible vehicle for the deployment of real-time, interactive | |||
applications - with the most easily imaginable being audio | applications - with the most easily imaginable being audio | |||
conversations (aka "Internet telephony") and video conferencing. | conversations (aka "Internet telephony") and video conferencing. | |||
The first attempts to build this were dependent on special networks, | The first attempts to build this were dependent on special networks, | |||
skipping to change at page 4, line 11 ¶ | skipping to change at page 4, line 11 ¶ | |||
the development of HTML5, application developers see much promise in | the development of HTML5, application developers see much promise in | |||
the possibility of making those interfaces available in a | the possibility of making those interfaces available in a | |||
standardized way within the browser. | standardized way within the browser. | |||
This memo describes a set of building blocks that can be made | This memo describes a set of building blocks that can be made | |||
accessible and controllable through a Javascript API in a browser, | accessible and controllable through a Javascript API in a browser, | |||
and which together form a sufficient set of functions to allow the | and which together form a sufficient set of functions to allow the | |||
use of interactive audio and video in applications that communicate | use of interactive audio and video in applications that communicate | |||
directly between browsers across the Internet. The resulting | directly between browsers across the Internet. The resulting | |||
protocol suite is intended to enable all the applications that are | protocol suite is intended to enable all the applications that are | |||
described as required scenarios in the use cases document | described as required scenarios in the use cases document [RFC7478]. | |||
[I-D.ietf-rtcweb-use-cases-and-requirements]. | ||||
Other efforts, for instance the W3C WEBRTC, Web Applications and | Other efforts, for instance the W3C WEBRTC, Web Applications and | |||
Device API working groups, focus on making standardized APIs and | Device API working groups, focus on making standardized APIs and | |||
interfaces available, within or alongside the HTML5 effort, for those | interfaces available, within or alongside the HTML5 effort, for those | |||
functions; this memo concentrates on specifying the protocols and | functions; this memo concentrates on specifying the protocols and | |||
subprotocols that are needed to specify the interactions that happen | subprotocols that are needed to specify the interactions that happen | |||
across the network. | across the network. | |||
This memo uses the term "WebRTC" (note the case used) to refer to the | This memo uses the term "WebRTC" (note the case used) to refer to the | |||
overall effort consisting of both IETF and W3C efforts. | overall effort consisting of both IETF and W3C efforts. | |||
skipping to change at page 5, line 33 ¶ | skipping to change at page 5, line 30 ¶ | |||
exercise that option or feature; similarly, for any sequence of API | exercise that option or feature; similarly, for any sequence of API | |||
calls, it should be clear which protocol options and features will be | calls, it should be clear which protocol options and features will be | |||
invoked. Both subject to constraints of the implementation, of | invoked. Both subject to constraints of the implementation, of | |||
course. | course. | |||
For the purpose of this document, we define the following terminology | For the purpose of this document, we define the following terminology | |||
to talk about WebRTC things: | to talk about WebRTC things: | |||
o A WebRTC browser (also called a WebRTC User Agent or WebRTC UA) is | o A WebRTC browser (also called a WebRTC User Agent or WebRTC UA) is | |||
something that conforms to both the protocol specification and the | something that conforms to both the protocol specification and the | |||
Javascript API defined above. | Javascript API cited above. | |||
o A WebRTC non-browser is something that conforms to the protocol | o A WebRTC non-browser is something that conforms to the protocol | |||
specification, but does not claim to implement the Javascript API. | specification, but does not claim to implement the Javascript API. | |||
This can also be called a "WebRTC device" or "WebRTC native | This can also be called a "WebRTC device" or "WebRTC native | |||
application". | application". | |||
o A WebRTC endpoint is either a WebRTC browser or a WebRTC non- | o A WebRTC endpoint is either a WebRTC browser or a WebRTC non- | |||
browser. It conforms to the protocol specification. | browser. It conforms to the protocol specification. | |||
o A WebRTC-compatible endpoint is an endpoint that is able to | o A WebRTC-compatible endpoint is an endpoint that is able to | |||
skipping to change at page 7, line 15 ¶ | skipping to change at page 7, line 10 ¶ | |||
The alternative - that of having no mandatory to implement - does not | The alternative - that of having no mandatory to implement - does not | |||
mean that you cannot communicate, it merely means that in order to be | mean that you cannot communicate, it merely means that in order to be | |||
part of the communications partnership, you have to implement the | part of the communications partnership, you have to implement the | |||
standard "and then some" - that "and then some" usually being called | standard "and then some" - that "and then some" usually being called | |||
a profile of some sort; in the version most antithetical to the | a profile of some sort; in the version most antithetical to the | |||
Internet ethos, that "and then some" consists of having to use a | Internet ethos, that "and then some" consists of having to use a | |||
specific vendor's product only. | specific vendor's product only. | |||
2.4. Terminology | 2.4. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in [RFC2119]. | ||||
The following terms are used across the documents specifying the | The following terms are used across the documents specifying the | |||
WebRTC suite, in the specific meanings given here. Not all terms are | WebRTC suite, in the specific meanings given here. Not all terms are | |||
used in this document. Other terms are used in their commonly used | used in this document. Other terms are used in their commonly used | |||
meaning. | meaning. | |||
The list is in alphabetical order. | The list is in alphabetical order. | |||
Agent: Undefined term. See "SDP Agent" and "ICE Agent". | Agent: Undefined term. See "SDP Agent" and "ICE Agent". | |||
API: Application Programming Interface - a specification of a set of | API: Application Programming Interface - a specification of a set of | |||
skipping to change at page 7, line 40 ¶ | skipping to change at page 7, line 39 ¶ | |||
in the HTML specification [W3C.WD-html5-20110525]. See also | in the HTML specification [W3C.WD-html5-20110525]. See also | |||
"WebRTC User Agent". | "WebRTC User Agent". | |||
Data channel: An abstraction that allows data to be sent between | Data channel: An abstraction that allows data to be sent between | |||
WebRTC endpoints in the form of messages. Two endpoints can have | WebRTC endpoints in the form of messages. Two endpoints can have | |||
multiple data channels between them. | multiple data channels between them. | |||
ICE Agent: An implementation of the Interactive Connectivty | ICE Agent: An implementation of the Interactive Connectivty | |||
Establishment (ICE) [I-D.ietf-ice-rfc5245bis] protocol. An ICE | Establishment (ICE) [I-D.ietf-ice-rfc5245bis] protocol. An ICE | |||
Agent may also be an SDP Agent, but there exist ICE Agents that do | Agent may also be an SDP Agent, but there exist ICE Agents that do | |||
not use SDP (for instance those that use Jingle). | not use SDP (for instance those that use Jingle [XEP-0166]). | |||
Interactive: Communication between multiple parties, where the | Interactive: Communication between multiple parties, where the | |||
expectation is that an action from one party can cause a reaction | expectation is that an action from one party can cause a reaction | |||
by another party, and the reaction can be observed by the first | by another party, and the reaction can be observed by the first | |||
party, with the total time required for the action/reaction/ | party, with the total time required for the action/reaction/ | |||
observation is on the order of no more than hundreds of | observation is on the order of no more than hundreds of | |||
milliseconds. | milliseconds. | |||
Media: Audio and video content. Not to be confused with | Media: Audio and video content. Not to be confused with | |||
"transmission media" such as wires. | "transmission media" such as wires. | |||
skipping to change at page 8, line 28 ¶ | skipping to change at page 8, line 28 ¶ | |||
SDP Agent: The protocol implementation involved in the SDP offer/ | SDP Agent: The protocol implementation involved in the SDP offer/ | |||
answer exchange, as defined in [RFC3264] section 3. | answer exchange, as defined in [RFC3264] section 3. | |||
Signaling: Communication that happens in order to establish, manage | Signaling: Communication that happens in order to establish, manage | |||
and control media paths and data paths. | and control media paths and data paths. | |||
Signaling Path: The communication channels used between entities | Signaling Path: The communication channels used between entities | |||
participating in signaling to transfer signaling. There may be | participating in signaling to transfer signaling. There may be | |||
more entities in the signaling path than in the media path. | more entities in the signaling path than in the media path. | |||
NOTE: Where common definitions exist for these terms, those | ||||
definitions should be used to the greatest extent possible. | ||||
3. Architecture and Functionality groups | 3. Architecture and Functionality groups | |||
The model of real-time support for browser-based applications does | The model of real-time support for browser-based applications does | |||
not assume that the browser will contain all the functions that need | not assume that the browser will contain all the functions that need | |||
to be performed in order to have a function such as a telephone or a | to be performed in order to have a function such as a telephone or a | |||
video conferencing unit; the vision is that the browser will have the | video conferencing unit; the vision is that the browser will have the | |||
functions that are needed for a Web application, working in | functions that are needed for a Web application, working in | |||
conjunction with its backend servers, to implement these functions. | conjunction with its backend servers, to implement these functions. | |||
This means that two vital interfaces need specification: The | This means that two vital interfaces need specification: The | |||
skipping to change at page 13, line 27 ¶ | skipping to change at page 13, line 27 ¶ | |||
The intent of this specification is to allow each communications | The intent of this specification is to allow each communications | |||
event to use the data formats that are best suited for that | event to use the data formats that are best suited for that | |||
particular instance, where a format is supported by both sides of the | particular instance, where a format is supported by both sides of the | |||
connection. However, a minimum standard is greatly helpful in order | connection. However, a minimum standard is greatly helpful in order | |||
to ensure that communication can be achieved. This document | to ensure that communication can be achieved. This document | |||
specifies a minimum baseline that will be supported by all | specifies a minimum baseline that will be supported by all | |||
implementations of this specification, and leaves further codecs to | implementations of this specification, and leaves further codecs to | |||
be included at the will of the implementor. | be included at the will of the implementor. | |||
WebRTC endpoints that support audio and/or video MUST implement the | WebRTC endpoints that support audio and/or video MUST implement the | |||
codecs and profiles required in [I-D.ietf-rtcweb-audio] and | codecs and profiles required in [RFC7874] and [RFC7742]. | |||
[I-D.ietf-rtcweb-video]. | ||||
7. Connection management | 7. Connection management | |||
The methods, mechanisms and requirements for setting up, negotiating | The methods, mechanisms and requirements for setting up, negotiating | |||
and tearing down connections is a large subject, and one where it is | and tearing down connections is a large subject, and one where it is | |||
desirable to have both interoperability and freedom to innovate. | desirable to have both interoperability and freedom to innovate. | |||
The following principles apply: | The following principles apply: | |||
1. The WebRTC media negotiations will be capable of representing the | 1. The WebRTC media negotiations will be capable of representing the | |||
skipping to change at page 14, line 17 ¶ | skipping to change at page 14, line 17 ¶ | |||
able to use the new codecs where appropriate with no changes to | able to use the new codecs where appropriate with no changes to | |||
the JS applications. | the JS applications. | |||
The particular choices made for WebRTC, and their implications for | The particular choices made for WebRTC, and their implications for | |||
the API offered by a browser implementing WebRTC, are described in | the API offered by a browser implementing WebRTC, are described in | |||
[I-D.ietf-rtcweb-jsep]. | [I-D.ietf-rtcweb-jsep]. | |||
WebRTC browsers MUST implement [I-D.ietf-rtcweb-jsep]. | WebRTC browsers MUST implement [I-D.ietf-rtcweb-jsep]. | |||
WebRTC endpoints MUST implement the functions described in that | WebRTC endpoints MUST implement the functions described in that | |||
document that relate to the network layer (for example Bundle, RTCP- | document that relate to the network layer (for example Bundle | |||
mux and Trickle ICE), but do not need to support the API | [I-D.ietf-mmusic-sdp-bundle-negotiation], RTCP-mux [RFC5761] and | |||
functionality described there. | Trickle ICE [I-D.ietf-ice-trickle]), but do not need to support the | |||
API functionality described there. | ||||
8. Presentation and control | 8. Presentation and control | |||
The most important part of control is the user's control over the | The most important part of control is the user's control over the | |||
browser's interaction with input/output devices and communications | browser's interaction with input/output devices and communications | |||
channels. It is important that the user have some way of figuring | channels. It is important that the user have some way of figuring | |||
out where his audio, video or texting is being sent, for what | out where his audio, video or texting is being sent, for what | |||
purported reason, and what guarantees are made by the parties that | purported reason, and what guarantees are made by the parties that | |||
form part of this control channel. This is largely a local function | form part of this control channel. This is largely a local function | |||
between the browser, the underlying operating system and the user | between the browser, the underlying operating system and the user | |||
skipping to change at page 14, line 50 ¶ | skipping to change at page 14, line 51 ¶ | |||
algorithm does not need coordination. In some cases (for instance | algorithm does not need coordination. In some cases (for instance | |||
echo cancellation, as described below), the overall system definition | echo cancellation, as described below), the overall system definition | |||
may need to specify that the overall system needs to have some | may need to specify that the overall system needs to have some | |||
characteristics for which these facilities are useful, without | characteristics for which these facilities are useful, without | |||
requiring them to be implemented a certain way. | requiring them to be implemented a certain way. | |||
Local functions include echo cancellation, volume control, camera | Local functions include echo cancellation, volume control, camera | |||
management including focus, zoom, pan/tilt controls (if available), | management including focus, zoom, pan/tilt controls (if available), | |||
and more. | and more. | |||
Certain parts of the system SHOULD conform to certain properties, for | One would want to see certain parts of the system conform to certain | |||
instance: | properties, for instance: | |||
o Echo cancellation should be good enough to achieve the suppression | o Echo cancellation should be good enough to achieve the suppression | |||
of acoustical feedback loops below a perceptually noticeable | of acoustical feedback loops below a perceptually noticeable | |||
level. | level. | |||
o Privacy concerns MUST be satisfied; for instance, if remote | o Privacy concerns MUST be satisfied; for instance, if remote | |||
control of camera is offered, the APIs should be available to let | control of camera is offered, the APIs should be available to let | |||
the local participant figure out who's controlling the camera, and | the local participant figure out who's controlling the camera, and | |||
possibly decide to revoke the permission for camera usage. | possibly decide to revoke the permission for camera usage. | |||
o Automatic gain control, if present, should normalize a speaking | o Automatic gain control, if present, should normalize a speaking | |||
voice into a reasonable dB range. | voice into a reasonable dB range. | |||
The requirements on WebRTC systems with regard to audio processing | The requirements on WebRTC systems with regard to audio processing | |||
are found in [I-D.ietf-rtcweb-audio]; the proposed API for control of | are found in [RFC7874] and includes more guidance about echo | |||
local devices are found in [W3C.WD-mediacapture-streams-20120628]. | cancellation and AGC; the proposed API for control of local devices | |||
are found in [W3C.WD-mediacapture-streams-20120628]. | ||||
WebRTC endpoints MUST implement the processing functions in | WebRTC endpoints MUST implement the processing functions in | |||
[I-D.ietf-rtcweb-audio]. (Together with the requirement in | [RFC7874]. (Together with the requirement in Section 6, this means | |||
Section 6, this means that WebRTC endpoints MUST implement the whole | that WebRTC endpoints MUST implement the whole document.) | |||
document.) | ||||
10. IANA Considerations | 10. IANA Considerations | |||
This document makes no request of IANA. | This document makes no request of IANA. | |||
Note to RFC Editor: this section may be removed on publication as an | Note to RFC Editor: this section may be removed on publication as an | |||
RFC. | RFC. | |||
11. Security Considerations | 11. Security Considerations | |||
skipping to change at page 16, line 27 ¶ | skipping to change at page 16, line 27 ¶ | |||
The ones below have made special, identifiable contributions; this | The ones below have made special, identifiable contributions; this | |||
does not mean that others' contributions are less important. | does not mean that others' contributions are less important. | |||
Thanks to Cary Bran, Cullen Jennings, Colin Perkins, Magnus | Thanks to Cary Bran, Cullen Jennings, Colin Perkins, Magnus | |||
Westerlund and Joerg Ott, who offered technical contributions on | Westerlund and Joerg Ott, who offered technical contributions on | |||
various versions of the draft. | various versions of the draft. | |||
Thanks to Jonathan Rosenberg, Matthew Kaufman and others at Skype for | Thanks to Jonathan Rosenberg, Matthew Kaufman and others at Skype for | |||
the ASCII drawings in section 1. | the ASCII drawings in section 1. | |||
Thanks to Bjoern Hoehrmann, Colin Perkins, Colton Shields, Eric | Thanks to Alissa Cooper, Bjoern Hoehrmann, Colin Perkins, Colton | |||
Rescorla, Heath Matlock, Henry Sinnreich, Justin Uberti, Keith Drage, | Shields, Eric Rescorla, Heath Matlock, Henry Sinnreich, Justin | |||
Magnus Westerlund, Olle E. Johansson and Simon Leinen for document | Uberti, Keith Drage, Magnus Westerlund, Olle E. Johansson, Sean | |||
review. | Turner and Simon Leinen for document review. | |||
13. References | 13. References | |||
13.1. Normative References | 13.1. Normative References | |||
[I-D.ietf-ice-rfc5245bis] | [I-D.ietf-ice-rfc5245bis] | |||
Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | 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", draft-ietf-ice- | Address Translator (NAT) Traversal", draft-ietf-ice- | |||
rfc5245bis-08 (work in progress), December 2016. | rfc5245bis-08 (work in progress), December 2016. | |||
[I-D.ietf-rtcweb-audio] | ||||
Valin, J. and C. Bran, "WebRTC Audio Codec and Processing | ||||
Requirements", draft-ietf-rtcweb-audio-11 (work in | ||||
progress), April 2016. | ||||
[I-D.ietf-rtcweb-data-channel] | [I-D.ietf-rtcweb-data-channel] | |||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data | Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data | |||
Channels", draft-ietf-rtcweb-data-channel-13 (work in | Channels", draft-ietf-rtcweb-data-channel-11 (work in | |||
progress), January 2015. | progress), July 2014. | |||
[I-D.ietf-rtcweb-data-protocol] | [I-D.ietf-rtcweb-data-protocol] | |||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | |||
Establishment Protocol", draft-ietf-rtcweb-data- | Establishment Protocol", draft-ietf-rtcweb-data- | |||
protocol-09 (work in progress), January 2015. | protocol-07 (work in progress), July 2014. | |||
[I-D.ietf-rtcweb-jsep] | [I-D.ietf-rtcweb-jsep] | |||
Uberti, J., Jennings, C., and E. Rescorla, "Javascript | Uberti, J., Jennings, C., and E. Rescorla, "Javascript | |||
Session Establishment Protocol", draft-ietf-rtcweb-jsep-18 | Session Establishment Protocol", draft-ietf-rtcweb-jsep-07 | |||
(work in progress), January 2017. | (work in progress), July 2014. | |||
[I-D.ietf-rtcweb-rtp-usage] | [I-D.ietf-rtcweb-rtp-usage] | |||
Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time | Perkins, C., Westerlund, M., and J. Ott, "Web Real-Time | |||
Communication (WebRTC): Media Transport and Use of RTP", | Communication (WebRTC): Media Transport and Use of RTP", | |||
draft-ietf-rtcweb-rtp-usage-26 (work in progress), March | draft-ietf-rtcweb-rtp-usage-16 (work in progress), July | |||
2016. | 2014. | |||
[I-D.ietf-rtcweb-security] | [I-D.ietf-rtcweb-security] | |||
Rescorla, E., "Security Considerations for WebRTC", draft- | Rescorla, E., "Security Considerations for WebRTC", draft- | |||
ietf-rtcweb-security-08 (work in progress), February 2015. | ietf-rtcweb-security-07 (work in progress), July 2014. | |||
[I-D.ietf-rtcweb-security-arch] | [I-D.ietf-rtcweb-security-arch] | |||
Rescorla, E., "WebRTC Security Architecture", draft-ietf- | Rescorla, E., "WebRTC Security Architecture", draft-ietf- | |||
rtcweb-security-arch-12 (work in progress), June 2016. | rtcweb-security-arch-10 (work in progress), July 2014. | |||
[I-D.ietf-rtcweb-transports] | [I-D.ietf-rtcweb-transports] | |||
Alvestrand, H., "Transports for WebRTC", draft-ietf- | Alvestrand, H., "Transports for WebRTC", draft-ietf- | |||
rtcweb-transports-17 (work in progress), October 2016. | rtcweb-transports-06 (work in progress), August 2014. | |||
[I-D.ietf-rtcweb-video] | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Roach, A., "WebRTC Video Processing and Codec | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
Requirements", draft-ietf-rtcweb-video-06 (work in | ||||
progress), June 2015. | ||||
[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, June | |||
DOI 10.17487/RFC3264, June 2002, | 2002. | |||
<http://www.rfc-editor.org/info/rfc3264>. | ||||
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. | |||
Jacobson, "RTP: A Transport Protocol for Real-Time | Jacobson, "RTP: A Transport Protocol for Real-Time | |||
Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, | Applications", STD 64, RFC 3550, July 2003. | |||
July 2003, <http://www.rfc-editor.org/info/rfc3550>. | ||||
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. | [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. | |||
Norrman, "The Secure Real-time Transport Protocol (SRTP)", | Norrman, "The Secure Real-time Transport Protocol (SRTP)", | |||
RFC 3711, DOI 10.17487/RFC3711, March 2004, | RFC 3711, March 2004. | |||
<http://www.rfc-editor.org/info/rfc3711>. | ||||
[RFC7742] Roach, A., "WebRTC Video Processing and Codec | ||||
Requirements", RFC 7742, DOI 10.17487/RFC7742, March 2016, | ||||
<http://www.rfc-editor.org/info/rfc7742>. | ||||
[RFC7874] Valin, JM. and C. Bran, "WebRTC Audio Codec and Processing | ||||
Requirements", RFC 7874, DOI 10.17487/RFC7874, May 2016, | ||||
<http://www.rfc-editor.org/info/rfc7874>. | ||||
[W3C.WD-mediacapture-streams-20120628] | [W3C.WD-mediacapture-streams-20120628] | |||
Burnett, D. and A. Narayanan, "Media Capture and Streams", | Burnett, D. and A. Narayanan, "Media Capture and Streams", | |||
World Wide Web Consortium WD WD-mediacapture-streams- | World Wide Web Consortium WD WD-mediacapture-streams- | |||
20120628, June 2012, <http://www.w3.org/TR/2012/ | 20120628, June 2012, <http://www.w3.org/TR/2012/ | |||
WD-mediacapture-streams-20120628>. | WD-mediacapture-streams-20120628>. | |||
[W3C.WD-webrtc-20120209] | [W3C.WD-webrtc-20120209] | |||
Bergkvist, A., Burnett, D., Jennings, C., and A. | Bergkvist, A., Burnett, D., Jennings, C., and A. | |||
Narayanan, "WebRTC 1.0: Real-time Communication Between | Narayanan, "WebRTC 1.0: Real-time Communication Between | |||
Browsers", World Wide Web Consortium WD WD-webrtc- | Browsers", World Wide Web Consortium WD WD-webrtc- | |||
20120209, February 2012, | 20120209, February 2012, | |||
<http://www.w3.org/TR/2012/WD-webrtc-20120209>. | <http://www.w3.org/TR/2012/WD-webrtc-20120209>. | |||
13.2. Informative References | 13.2. Informative References | |||
[I-D.ietf-ice-trickle] | ||||
Ivov, E., Rescorla, E., Uberti, J., and P. Saint-Andre, | ||||
"Trickle ICE: Incremental Provisioning of Candidates for | ||||
the Interactive Connectivity Establishment (ICE) | ||||
Protocol", draft-ietf-ice-trickle-07 (work in progress), | ||||
February 2017. | ||||
[I-D.ietf-mmusic-sdp-bundle-negotiation] | ||||
Holmberg, C., Alvestrand, H., and C. Jennings, | ||||
"Negotiating Media Multiplexing Using the Session | ||||
Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | ||||
negotiation-07 (work in progress), April 2014. | ||||
[I-D.ietf-rtcweb-gateways] | [I-D.ietf-rtcweb-gateways] | |||
Alvestrand, H. and U. Rauschenbach, "WebRTC Gateways", | Alvestrand, H. and U. Rauschenbach, "WebRTC Gateways", | |||
draft-ietf-rtcweb-gateways-02 (work in progress), January | draft-ietf-rtcweb-gateways-02 (work in progress), January | |||
2016. | 2016. | |||
[I-D.ietf-rtcweb-use-cases-and-requirements] | ||||
Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- | ||||
Time Communication Use-cases and Requirements", draft- | ||||
ietf-rtcweb-use-cases-and-requirements-16 (work in | ||||
progress), January 2015. | ||||
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, | |||
A., Peterson, J., Sparks, R., Handley, M., and E. | A., Peterson, J., Sparks, R., Handley, M., and E. | |||
Schooler, "SIP: Session Initiation Protocol", RFC 3261, | Schooler, "SIP: Session Initiation Protocol", RFC 3261, | |||
DOI 10.17487/RFC3261, June 2002, | June 2002. | |||
<http://www.rfc-editor.org/info/rfc3261>. | ||||
[RFC3935] Alvestrand, H., "A Mission Statement for the IETF", | [RFC3935] Alvestrand, H., "A Mission Statement for the IETF", BCP | |||
BCP 95, RFC 3935, DOI 10.17487/RFC3935, October 2004, | 95, RFC 3935, October 2004. | |||
<http://www.rfc-editor.org/info/rfc3935>. | ||||
[RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and | ||||
Control Packets on a Single Port", RFC 5761, April 2010. | ||||
[RFC6120] Saint-Andre, P., "Extensible Messaging and Presence | [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence | |||
Protocol (XMPP): Core", RFC 6120, DOI 10.17487/RFC6120, | Protocol (XMPP): Core", RFC 6120, March 2011. | |||
March 2011, <http://www.rfc-editor.org/info/rfc6120>. | ||||
[RFC7478] Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- | ||||
Time Communication Use Cases and Requirements", RFC 7478, | ||||
DOI 10.17487/RFC7478, March 2015, | ||||
<http://www.rfc-editor.org/info/rfc7478>. | ||||
[W3C.WD-html5-20110525] | [W3C.WD-html5-20110525] | |||
Hickson, I., "HTML5", World Wide Web Consortium LastCall | Hickson, I., "HTML5", World Wide Web Consortium LastCall | |||
WD-html5-20110525, May 2011, | WD-html5-20110525, May 2011, | |||
<http://www.w3.org/TR/2011/WD-html5-20110525>. | <http://www.w3.org/TR/2011/WD-html5-20110525>. | |||
[XEP-0166] | ||||
Ludwig, S., Beda, J., Saint-Andre, P., McQueen, R., Egan, | ||||
S., and J. Hildebrand, "Jingle", XSF XEP 0166, June 2007. | ||||
Appendix A. Change log | Appendix A. Change log | |||
This section may be deleted by the RFC Editor when preparing for | This section may be deleted by the RFC Editor when preparing for | |||
publication. | publication. | |||
A.1. Changes from draft-alvestrand-dispatch-rtcweb-datagram-00 to -01 | A.1. Changes from draft-alvestrand-dispatch-rtcweb-datagram-00 to -01 | |||
Added section "On interoperability and innovation" | Added section "On interoperability and innovation" | |||
Added data confidentiality and integrity to the "data framing" layer | Added data confidentiality and integrity to the "data framing" layer | |||
skipping to change at page 23, line 9 ¶ | skipping to change at page 23, line 21 ¶ | |||
Changed "gateways" reference to point to the WG document. | Changed "gateways" reference to point to the WG document. | |||
A.20. Changes from -15 to -16 | A.20. Changes from -15 to -16 | |||
None. This is a "keepalive" publication. | None. This is a "keepalive" publication. | |||
A.21. Changes from -16 to -17 | A.21. Changes from -16 to -17 | |||
Addressed review comments by Olle E. Johansson and Magnus Westerlund | Addressed review comments by Olle E. Johansson and Magnus Westerlund | |||
A.22. Changes from -17 to -18 | ||||
Addressed review comments from Sean Turner and Alissa Cooper | ||||
Author's Address | Author's Address | |||
Harald T. Alvestrand | Harald T. Alvestrand | |||
Kungsbron 2 | Kungsbron 2 | |||
Stockholm 11122 | Stockholm 11122 | |||
Sweden | Sweden | |||
Email: harald@alvestrand.no | Email: harald@alvestrand.no | |||
End of changes. 37 change blocks. | ||||
71 lines changed or deleted | 90 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/ |