draft-ietf-rtcweb-overview-02.txt | draft-ietf-rtcweb-overview-03.txt | |||
---|---|---|---|---|
Network Working Group H. Alvestrand | Network Working Group H. Alvestrand | |||
Internet-Draft Google | Internet-Draft Google | |||
Intended status: Standards Track September 28, 2011 | Intended status: Standards Track March 12, 2012 | |||
Expires: March 31, 2012 | Expires: September 13, 2012 | |||
Overview: Real Time Protocols for Brower-based Applications | Overview: Real Time Protocols for Brower-based Applications | |||
draft-ietf-rtcweb-overview-02 | draft-ietf-rtcweb-overview-03 | |||
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 2, line 4 | skipping to change at page 2, line 4 | |||
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 March 31, 2012. | This Internet-Draft will expire on September 13, 2012. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2012 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 | |||
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 page 3, line 16 | skipping to change at page 3, line 16 | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Principles and Terminology . . . . . . . . . . . . . . . . . . 5 | 2. Principles and Terminology . . . . . . . . . . . . . . . . . . 5 | |||
2.1. Goals of this document . . . . . . . . . . . . . . . . . . 5 | 2.1. Goals of this document . . . . . . . . . . . . . . . . . . 5 | |||
2.2. Relationship between API and protocol . . . . . . . . . . 5 | 2.2. Relationship between API and protocol . . . . . . . . . . 5 | |||
2.3. On interoperability and innovation . . . . . . . . . . . . 6 | 2.3. On interoperability and innovation . . . . . . . . . . . . 6 | |||
2.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
3. Architecture and Functionality groups . . . . . . . . . . . . 8 | 3. Architecture and Functionality groups . . . . . . . . . . . . 8 | |||
4. Data transport . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4. Data transport . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5. Data framing and securing . . . . . . . . . . . . . . . . . . 12 | 5. Data framing and securing . . . . . . . . . . . . . . . . . . 12 | |||
6. Data formats . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6. Data formats . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
7. Connection management . . . . . . . . . . . . . . . . . . . . 13 | 7. Connection management . . . . . . . . . . . . . . . . . . . . 13 | |||
8. Presentation and control . . . . . . . . . . . . . . . . . . . 13 | 8. Presentation and control . . . . . . . . . . . . . . . . . . . 14 | |||
9. Local system support functions . . . . . . . . . . . . . . . . 14 | 9. Local system support functions . . . . . . . . . . . . . . . . 14 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
13.1. Normative References . . . . . . . . . . . . . . . . . . . 15 | 13.1. Normative References . . . . . . . . . . . . . . . . . . . 16 | |||
13.2. Informative References . . . . . . . . . . . . . . . . . . 16 | 13.2. Informative References . . . . . . . . . . . . . . . . . . 17 | |||
Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 16 | Appendix A. Change log . . . . . . . . . . . . . . . . . . . . . 18 | |||
A.1. Changes from | A.1. Changes from | |||
draft-alvestrand-dispatch-rtcweb-datagram-00 to -01 . . . 17 | draft-alvestrand-dispatch-rtcweb-datagram-00 to -01 . . . 18 | |||
A.2. Changes from draft-alvestrand-dispatch-01 to | A.2. Changes from draft-alvestrand-dispatch-01 to | |||
draft-alvestrand-rtcweb-overview-00 . . . . . . . . . . . 17 | draft-alvestrand-rtcweb-overview-00 . . . . . . . . . . . 18 | |||
A.3. Changes from draft-alvestrand-rtcweb-00 to -01 . . . . . . 17 | A.3. Changes from draft-alvestrand-rtcweb-00 to -01 . . . . . . 19 | |||
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 . . . . . . . . . . . . . . 17 | draft-ietf-rtcweb-overview-00 . . . . . . . . . . . . . . 19 | |||
A.5. Changes from draft-ietf-rtcweb-overview -00 to -01 . . . . 18 | A.5. Changes from -00 to -01 of draft-ietf-rtcweb-overview . . 19 | |||
A.6. Changes from draft-ietf-rtcweb-overview -01 to -02 . . . . 18 | A.6. Changes from -01 to -02 of draft-ietf-rtcweb-overview . . 19 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 18 | A.7. Changes from -02 to -03 of draft-ietf-rtcweb-overview . . 20 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 20 | ||||
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 videoconferencing. | conversations (aka "Internet telephony") and videoconferencing. | |||
The first attempts to build this were dependent on special networks, | The first attempts to build this were dependent on special networks, | |||
special hardware and custom-built software, often at very high prices | special hardware and custom-built software, often at very high prices | |||
skipping to change at page 5, line 39 | skipping to change at page 5, line 39 | |||
By reading this document and the documents it refers to, it should be | By reading this document and the documents it refers to, it should be | |||
possible to have all information needed to implement an RTCWEB | possible to have all information needed to implement an RTCWEB | |||
compatible implementation. | compatible implementation. | |||
2.2. Relationship between API and protocol | 2.2. Relationship between API and protocol | |||
The total RTCWEB/WEBRTC effort consists of two pieces: | The total RTCWEB/WEBRTC effort consists of two pieces: | |||
o A protocol specification, done in the IETF | o A protocol specification, done in the IETF | |||
o A Javascript API specification, done in the W3C [webrtc-api] | o A Javascript API specification, done in the W3C | |||
[W3C.WD-webrtc-20120209] | ||||
Together, these two specifications aim to provide an environment | Together, these two specifications aim to provide an environment | |||
where Javascript embedded in any page, viewed in any compatible | where Javascript embedded in any page, viewed in any compatible | |||
browser, when suitably authorized by its user, is able to set up | browser, when suitably authorized by its user, is able to set up | |||
communication using audio, video and auxiliary data, where the | communication using audio, video and auxiliary data, where the | |||
browser environment does not constrain the types of application in | browser environment does not constrain the types of application in | |||
which this functionality can be used. | which this functionality can be used. | |||
The protocol specification does not assume that all implementations | The protocol specification does not assume that all implementations | |||
implement this API; it is not intended to be possible by observing | implement this API; it is not intended to be possible by observing | |||
skipping to change at page 7, line 21 | skipping to change at page 7, line 21 | |||
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 | |||
calls and events, usually tied to a programming language or an | calls and events, usually tied to a programming language or an | |||
abstract formal specification such as WebIDL, with its defined | abstract formal specification such as WebIDL, with its defined | |||
semantics. | semantics. | |||
Browser: Used synonymously with "Interactive User Agent" as defined | ||||
in the HTML specification [W3C.WD-html5-20110525]. | ||||
ICE Agent: An implementation of the ICE [RFC5245] protocol. An ICE | ICE Agent: An implementation of the ICE [RFC5245] 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). | |||
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. | |||
skipping to change at page 7, line 45 | skipping to change at page 7, line 48 | |||
Media path: The path that media data follows from one browser to | Media path: The path that media data follows from one browser to | |||
another. | another. | |||
Protocol: A specification of a set of data units, their | Protocol: A specification of a set of data units, their | |||
representation, and rules for their transmission, with their | representation, and rules for their transmission, with their | |||
defined semantics. A protocol is usually thought of as going | defined semantics. A protocol is usually thought of as going | |||
between systems. | between systems. | |||
Real-time media: Media where generation of content and display of | Real-time media: Media where generation of content and display of | |||
content are intended to occur closely together in time (on the | content are intended to occur closely together in time (on the | |||
order of no more than hundreds of milliseconds). | order of no more than hundreds of milliseconds). Real-time media | |||
can be used to support interactive communication. | ||||
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 control media paths. | |||
Signaling Path: The communication channels used between entities | Signaling Path: The communication channels used between entities | |||
participating in signalling to transfer signaling. There may be | participating in signalling 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. | |||
skipping to change at page 9, line 39 | skipping to change at page 9, line 39 | |||
| | || | | | || | |||
| | || | | | || | |||
| +---------+| | | +---------+| | |||
+---------------------|------+ | +---------------------|------+ | |||
| | | | |||
V | V | |||
Native OS Services | Native OS Services | |||
Figure 1: Browser Model | Figure 1: Browser Model | |||
Note that HTTP and Websockets are also offered to the Javascript | ||||
application through browser APIs. | ||||
As for all protocol and API specifications, there is no restriction | As for all protocol and API specifications, there is no restriction | |||
that the protocols can only be used to talk to another browser; since | that the protocols can only be used to talk to another browser; since | |||
they are fully specified, any device that implements the protocols | they are fully specified, any device that implements the protocols | |||
faithfully should be able to interoperate with the application | faithfully should be able to interoperate with the application | |||
running in the browser. | running in the browser. | |||
A commonly imagined model of deployment is the one depicted below. | A commonly imagined model of deployment is the one depicted below. | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
| Web | | Web | | | Web | | Web | | |||
| | Signalling | | | | | Signalling | | | |||
| |-------------| | | | |-------------| | | |||
| Server | path | Server | | | Server | path | Server | | |||
| | | | | | | | | | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
/ \ | / \ | |||
/ \ Proprietary over | / \ Application-defined over | |||
/ \ HTTP/Websockets | / \ HTTP/Websockets | |||
/ \ | / \ | |||
/ Proprietary over \ | / Application-defined over \ | |||
/ HTTP/Websockets \ | / HTTP/Websockets \ | |||
/ \ | / \ | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
|JS/HTML/CSS| |JS/HTML/CSS| | |JS/HTML/CSS| |JS/HTML/CSS| | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
| | | | | | | | | | |||
| | | | | | | | | | |||
| Browser | ------------------------- | Browser | | | Browser | ------------------------- | Browser | | |||
| | Media path | | | | | Media path | | | |||
| | | | | | | | | | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
Figure 2: Browser RTC Trapezoid | Figure 2: Browser RTC Trapezoid | |||
If the two Web servers are operated by different entities, the | ||||
signalling path needs to be agreed upon, either by standardization or | ||||
by other means of agreement; for example, both servers might | ||||
implement SIP, and the servers would talk SIP to each other, and each | ||||
would translate between the SIP protocol and their proprietary | ||||
representation for sending to their application running in the | ||||
browser. This part is outside the scope of the RTCWEB standars | ||||
suite. | ||||
On this drawing, the critical part to note is that the media path | On this drawing, the critical part to note is that the media path | |||
("low path") goes directly between the browsers, so it has to be | ("low path") goes directly between the browsers, so it has to be | |||
conformant to the specifications of the RTCWEB protocol suite; the | conformant to the specifications of the RTCWEB protocol suite; the | |||
signalling path ("high path") goes via servers that can modify, | signalling path ("high path") goes via servers that can modify, | |||
translate or massage the signals as needed. | translate or massage the signals as needed. | |||
If the two Web servers are operated by different entities, the inter- | ||||
server signalling mechanism needs to be agreed upon, either by | ||||
standardization or by other means of agreement. Existing protocols | ||||
(for example SIP or XMPP) could be used between servers, while either | ||||
a standards-based or proprietary protocol could be used between the | ||||
browser and the web server. | ||||
For example, if both operators' servers implement SIP, SIP could be | ||||
used for communication between servers, along with either a | ||||
standardized signaling mechanism (e.g. SIP over Websockets) or a | ||||
proprietary signaling mechanism used between the application running | ||||
in the browser and the web server. Similarly, if both operators' | ||||
servers implement XMPP, XMPP couild be used for communication between | ||||
XMPP servers, with either a standardized signaling mechanism (e.g. | ||||
XMPP over Websockets or BOSH) or a proprietary signaling mechanism | ||||
used between the application running in the browser and the web | ||||
server. | ||||
The choice of protocols, and definition of the translation between | ||||
them, is outside the scope of the RTCWEB standards suite described in | ||||
the document. | ||||
The functionality groups that are needed in the browser can be | The functionality groups that are needed in the browser can be | |||
specified, more or less from the bottom up, as: | specified, more or less from the bottom up, as: | |||
o Data transport: TCP, UDP and the means to securely set up | o Data transport: TCP, UDP and the means to securely set up | |||
connections between entities, as well as the functions for | connections between entities, as well as the functions for | |||
deciding when to send data: Congestion management, bandwidth | deciding when to send data: Congestion management, bandwidth | |||
estimation and so on. | estimation and so on. | |||
o Data framing: RTP and other data formats that serve as containers, | o Data framing: RTP and other data formats that serve as containers, | |||
and their functions for data confidentiality and integrity. | and their functions for data confidentiality and integrity. | |||
skipping to change at page 12, line 34 | skipping to change at page 13, line 6 | |||
The details of interactions with intermediate boxes, such as | The details of interactions with intermediate boxes, such as | |||
firewalls, relays and NAT boxes, is described in <WORKING GROUP DRAFT | firewalls, relays and NAT boxes, is described in <WORKING GROUP DRAFT | |||
"PEER TO PEER CONNECTIVITY">. | "PEER TO PEER CONNECTIVITY">. | |||
5. Data framing and securing | 5. Data framing and securing | |||
The format for media transport is RTP [RFC3550]. Implementation of | The format for media transport is RTP [RFC3550]. Implementation of | |||
SRTP [RFC3711] is required for all implementations. | SRTP [RFC3711] is required for all implementations. | |||
The detailed considerations for usage of functions from RTP and SRTP | The detailed considerations for usage of functions from RTP and SRTP | |||
are given in [I-D.ietf-rtcweb-rtp-usage]. Key negotiation for SRTP | are given in [I-D.ietf-rtcweb-rtp-usage]. The security | |||
is described in <MISSING>. Transfer of data that is not in RTP | considerations for the RTCWEB use case are in | |||
format is described in <MISSING>. | [I-D.ietf-rtcweb-security], and the resulting security functions are | |||
described in [I-D.ietf-rtcweb-security-arch] Considerations for the | ||||
transfer of data that is not in RTP format is described in | ||||
[I-D.ietf-rtcweb-data-channel], and the resulting protocol is | ||||
described in [I-D.jesup-rtcweb-data-protocol] (not yet a WG document) | ||||
6. Data formats | 6. Data formats | |||
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. | |||
The mandatory to implement codecs, as well as any profiling | The mandatory to implement codecs, as well as any profiling | |||
requirements for both mandatory and optional codecs, is described in | requirements for both mandatory and optional codecs, is described in | |||
<WORKING GROUP DRAFT "MEDIA PROCESSING">. | <WORKING GROUP DRAFT "MEDIA PROCESSING"> (candidate draft: | |||
[I-D.cbran-rtcweb-codec]. | ||||
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 media negotiations will be done using the same SDP offer/ | 1. The RTCWEB media negotiations will be capable of representing the | |||
answer semantics that are used in SIP [RFC3264], in such a way | same SDP offer/answer semantics that are used in SIP [RFC3264], | |||
that it is possible to build a signalling gateway between SIP and | in such a way that it is possible to build a signalling gateway | |||
the RTCWEB media negotiation. | between SIP and the RTCWEB media negotiation. | |||
2. It will be possible to gateway between legacy SIP devices that | 2. It will be possible to gateway between legacy SIP devices that | |||
support ICE and appropriate RTP / SDP mechanisms and codecs | support ICE and appropriate RTP / SDP mechanisms, codecs and | |||
without using a media gateway. A signaling gateway to convert | security mechanisms without using a media gateway. A signaling | |||
between the signaling on the web side to the SIP signaling may be | gateway to convert between the signaling on the web side to the | |||
needed. | SIP signaling may be needed. | |||
3. When a new codec is specified, and the SDP for the new codec is | 3. When a new codec is specified, and the SDP for the new codec is | |||
specified in the MMUSIC WG, no other standardization would should | specified in the MMUSIC WG, no other standardization would should | |||
be required for it to be possible to use that in the web | be required for it to be possible to use that in the web | |||
browsers. Adding new codecs which might have new SDP parameters | browsers. Adding new codecs which might have new SDP parameters | |||
should not change the APIs between the browser and javascript | should not change the APIs between the browser and javascript | |||
application. As soon as the browsers support the new codecs, old | application. As soon as the browsers support the new codecs, old | |||
applications written before the codecs were specified should | applications written before the codecs were specified should | |||
automatically be able to use the new codecs where appropriate | automatically be able to use the new codecs where appropriate | |||
with no changes to the JS applications. | with no changes to the JS applications. | |||
The particular choices made for RTCWEB are described in <WORKING | The particular choices made for RTCWEB, and their implications for | |||
GROUP DRAFT "SIGNALING AND NEGOTIATION">. | the API offered by a browser implementing RTCWEB, are described in | |||
[I-D.ietf-rtcweb-jsep] | ||||
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 | |||
interface; this is being worked on as part of the W3C API effort, and | interface; this is being worked on as part of the W3C API effort, and | |||
will be part of [webrtc-api] | will be part of the peer connection API [W3C.WD-webrtc-20120209], and | |||
the device control API [getusermedia]. Considerations for the | ||||
implications of wanting to identify correspondents are described in | ||||
[I-D.rescorla-rtcweb-generic-idp] (not a WG item). | ||||
9. Local system support functions | 9. Local system support functions | |||
These are characterized by the fact that the quality of these | These are characterized by the fact that the quality of these | |||
functions strongly influences the user experience, but the exact | functions strongly influences the user experience, but the exact | |||
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. | |||
skipping to change at page 14, line 36 | skipping to change at page 15, line 19 | |||
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 to figure out who's controlling the camera, | the local participant to figure out who's controlling the camera, | |||
and possibly decide to revoke the permission for camera usage. | and 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 <whatever dB metrics makes sense here - most important | voice into <whatever dB metrics makes sense here - most important | |||
that we have one only> | that we have one only> | |||
The requirements on RTCWEB systems in this category are found in | The requirements on RTCWEB systems in this category are found in | |||
<WORKING GROUP DRAFT "MEDIA PROCESSING">. | <WORKING GROUP DRAFT "MEDIA PROCESSING">; the proposed API for | |||
control of local devices are found in [getusermedia]. | ||||
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 15, line 46 | skipping to change at page 16, line 29 | |||
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 Justin Uberti, Henry Sinnreich, Colin Perkins and Simon | Thanks to Justin Uberti, Henry Sinnreich, Colin Perkins and Simon | |||
Leinen for document review. | Leinen for document review. | |||
13. References | 13. References | |||
13.1. Normative References | 13.1. Normative References | |||
[I-D.ietf-rtcweb-data-channel] | ||||
Jesup, R., Loreto, S., and M. Tuexen, "RTCWeb Datagram | ||||
Connection", draft-ietf-rtcweb-data-channel-00 (work in | ||||
progress), March 2012. | ||||
[I-D.ietf-rtcweb-jsep] | ||||
Uberti, J. and C. Jennings, "Javascript Session | ||||
Establishment Protocol", draft-ietf-rtcweb-jsep-00 (work | ||||
in progress), March 2012. | ||||
[I-D.ietf-rtcweb-rtp-usage] | [I-D.ietf-rtcweb-rtp-usage] | |||
Perkins, C., Westerlund, M., and J. Ott, "RTP Requirements | Perkins, C., Ott, J., and M. Westerlund, "Web Real-Time | |||
for RTC-Web", draft-ietf-rtcweb-rtp-usage-00 (work in | Communication (WebRTC): Media Transport and Use of RTP", | |||
progress), September 2011. | draft-ietf-rtcweb-rtp-usage-01 (work in progress), | |||
October 2011. | ||||
[I-D.ietf-rtcweb-security] | [I-D.ietf-rtcweb-security] | |||
Rescorla, E., "Security Considerations for RTC-Web", | Rescorla, E., "Security Considerations for RTC-Web", | |||
draft-ietf-rtcweb-security-00 (work in progress), | draft-ietf-rtcweb-security-01 (work in progress), | |||
September 2011. | October 2011. | |||
[I-D.ietf-rtcweb-security-arch] | ||||
Rescorla, E., "RTCWEB Security Architecture", | ||||
draft-ietf-rtcweb-security-arch-00 (work in progress), | ||||
January 2012. | ||||
[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, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[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 2002. | June 2002. | |||
[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, July 2003. | Applications", STD 64, RFC 3550, July 2003. | |||
[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, March 2004. | RFC 3711, March 2004. | |||
13.2. Informative References | 13.2. Informative References | |||
[I-D.cbran-rtcweb-codec] | ||||
Bran, C. and C. Jennings, "WebRTC Codec and Media | ||||
Processing Requirements", draft-cbran-rtcweb-codec-01 | ||||
(work in progress), October 2011. | ||||
[I-D.ietf-rtcweb-use-cases-and-requirements] | [I-D.ietf-rtcweb-use-cases-and-requirements] | |||
Holmberg, C., Hakansson, S., and G. Eriksson, "Web Real- | Holmberg, C., Eriksson, G., and S. Hakansson, "Web Real- | |||
Time Communication Use-cases and Requirements", | Time Communication Use-cases and Requirements", | |||
draft-ietf-rtcweb-use-cases-and-requirements-05 (work in | draft-ietf-rtcweb-use-cases-and-requirements-06 (work in | |||
progress), September 2011. | progress), October 2011. | |||
[I-D.jesup-rtcweb-data-protocol] | ||||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | ||||
Protocol", draft-jesup-rtcweb-data-protocol-00 (work in | ||||
progress), March 2012. | ||||
[I-D.rescorla-rtcweb-generic-idp] | ||||
Rescorla, E., "RTCWEB Generic Identity Provider | ||||
Interface", draft-rescorla-rtcweb-generic-idp-00 (work in | ||||
progress), January 2012. | ||||
[RFC3935] Alvestrand, H., "A Mission Statement for the IETF", | [RFC3935] Alvestrand, H., "A Mission Statement for the IETF", | |||
BCP 95, RFC 3935, October 2004. | BCP 95, RFC 3935, October 2004. | |||
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment | [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment | |||
(ICE): A Protocol for Network Address Translator (NAT) | (ICE): A Protocol for Network Address Translator (NAT) | |||
Traversal for Offer/Answer Protocols", RFC 5245, | Traversal for Offer/Answer Protocols", RFC 5245, | |||
April 2010. | April 2010. | |||
[webrtc-api] | [W3C.WD-html5-20110525] | |||
Bergkvist, Burnett, Jennings, Narayanan, "WebRTC 1.0: | Hickson, I., "HTML5", World Wide Web Consortium | |||
Real-time Communication Between Browsers", August 2011. | LastCall WD-html5-20110525, May 2011, | |||
<http://www.w3.org/TR/2011/WD-html5-20110525>. | ||||
Available at | [W3C.WD-webrtc-20120209] | |||
http://dev.w3.org/2011/webrtc/editor/webrtc.html | Bergkvist, A., Burnett, D., Narayanan, A., and C. | |||
Jennings, "WebRTC 1.0: Real-time Communication Between | ||||
Browsers", World Wide Web Consortium WD WD-webrtc- | ||||
20120209, February 2012, | ||||
<http://www.w3.org/TR/2012/WD-webrtc-20120209>. | ||||
[getusermedia] | ||||
Burnett, D. and A. Narayanan, "getusermedia: Getting | ||||
access to local devices that can generate multimedia | ||||
streams", December 2011, | ||||
<http://dev.w3.org/2011/webrtc/editor/getusermedia.html>. | ||||
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" | |||
skipping to change at page 18, line 5 | skipping to change at page 19, line 27 | |||
Spell-checked document. | Spell-checked document. | |||
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 | draft-ietf-rtcweb-overview-00 | |||
Changed draft name and document date. | Changed draft name and document date. | |||
Removed unused references | Removed unused references | |||
A.5. Changes from draft-ietf-rtcweb-overview -00 to -01 | A.5. Changes from -00 to -01 of draft-ietf-rtcweb-overview | |||
Added architecture figures to section 2. | Added architecture figures to section 2. | |||
Changed the description of "echo cancellation" under "local system | Changed the description of "echo cancellation" under "local system | |||
support functions". | support functions". | |||
Added a few more definitions. | Added a few more definitions. | |||
A.6. Changes from draft-ietf-rtcweb-overview -01 to -02 | A.6. Changes from -01 to -02 of draft-ietf-rtcweb-overview | |||
Added pointers to use cases, security and rtp-usage drafts (now WG | Added pointers to use cases, security and rtp-usage drafts (now WG | |||
drafts). | drafts). | |||
Changed description of SRTP from mandatory-to-use to mandatory-to- | Changed description of SRTP from mandatory-to-use to mandatory-to- | |||
implement. | implement. | |||
Added the "3 principles of negotiation" to the connection management | Added the "3 principles of negotiation" to the connection management | |||
section. | section. | |||
Added an explicit statement that ICE is required for both NAT and | Added an explicit statement that ICE is required for both NAT and | |||
consent-to-receive. | consent-to-receive. | |||
A.7. Changes from -02 to -03 of draft-ietf-rtcweb-overview | ||||
Added references to a number of new drafts. | ||||
Expanded the description text under the "trapezoid" drawing with some | ||||
more text discussed on the list. | ||||
Changed the "Connection management" sentence from "will be done using | ||||
SDP offer/answer" to "will be capable of representing SDP offer/ | ||||
answer" - this seems more consistent with JSEP. | ||||
Added "security mechanisms" to the things a non-gatewayed SIP devices | ||||
must support in order to not need a media gateway. | ||||
Added a definition for "browser". | ||||
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. 35 change blocks. | ||||
87 lines changed or deleted | 177 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |