- From: CVS User abergkvi <cvsmail@w3.org>
- Date: Tue, 17 Jun 2014 12:06:06 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2011/webrtc/editor/sources In directory roscoe:/tmp/cvs-serv15378/sources Modified Files: webrtc.html webrtc.js Log Message: Added 20140617 archived version. --- /sources/public/2011/webrtc/editor/sources/webrtc.html 2013/11/05 18:10:45 1.1 +++ /sources/public/2011/webrtc/editor/sources/webrtc.html 2014/06/17 12:06:06 1.2 @@ -1,26 +1,27 @@ <!DOCTYPE html> - -<html lang="en"> -<head> - <meta name="generator" content= - "HTML Tidy for HTML5 (experimental) for Mac OS X https://github.com/w3c/tidy-html5/tree/c63cc39"> - - <title>WebRTC 1.0: Real-time Communication Between Browsers</title> - <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> - <!-- +<!-- To publish this document, see instructions in README --> +<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> + <title>WebRTC 1.0: Real-time Communication Between Browsers</title> + <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <script class="remove" src="http://www.w3.org/Tools/respec/respec-w3c-common" type="text/javascript"> -// keep this comment +//<![CDATA[ + // keep this comment + //]]> </script> <script class="remove" src="webrtc.js" type="text/javascript"> -// keep this comment +//<![CDATA[ + // keep this comment + //]]> </script> </head> -<body> <section id="abstract"> +<body> + <section id="abstract"> <p>This document defines a set of ECMAScript APIs in WebIDL to allow media to be sent to and received from another browser or device implementing the appropriate set of real-time protocols. This specification is being @@ -29,6 +30,7 @@ devices developed by the Media Capture Task Force.</p> </section> + <section id="sotd"> <p>This document is neither complete nor stable, and as such is not yet suitable for commercial implementation. However, early experimentation is @@ -36,85 +38,119 @@ Web Real-Time Communications Working Group expects this specification to evolve significantly based on:</p> + <ul> <li>The outcome of ongoing exchanges in the companion RTCWEB group at IETF to define the set of protocols that, together with this document, will enable real-time communications in Web browsers.</li> + <li>Privacy issues that arise when exposing local capabilities and local streams.</li> + <li>Technical discussions within the group.</li> + <li>Experience gained through early experimentations.</li> + <li>Feedback received from other groups and individuals.</li> </ul> </section> + <section class="informative" id="intro"> <h2>Introduction</h2> + <p>There are a number of facets to video-conferencing in HTML covered by this specification:</p> + <ul> <li>Connecting to remote peers using NAT-traversal technologies such as ICE, STUN, and TURN.</li> + <li>Sending the locally-produced streams to remote peers and receiving streams from remote peers.</li> + <li>Sending arbitrary data directly to remote peers.</li> </ul> + <p>This document defines the APIs used for these features. This specification is being developed in conjunction with a protocol specification developed by the <a href= "http://datatracker.ietf.org/wg/rtcweb/">IETF RTCWEB group</a> and an API - specification to get access to local media devices developed by the - <a href="http://www.w3.org/2011/04/webrtc/">Media Capture Task - Force</a>.</p> + specification to get access to local media devices + [[!GETUSERMEDIA]]developed by the <a + href="http://www.w3.org/2011/04/webrtc/">Media Capture Task Force</a>. An + overview of the system can be found in [[RTCWEB-OVERVIEW]] and + [[RTCWEB-SECURITY]]. </p> + </section> + <section id="conformance"> <p>This specification defines conformance criteria that apply to a single product: the <dfn>user agent</dfn> that implements the interfaces that it contains.</p> + + <p>Conformance requirements phrased as algorithms or specific steps may be + implemented in any manner, so long as the end result is equivalent. (In + particular, the algorithms defined in this specification are intended to be + easy to follow, and not intended to be performant.)</p> + + <p>Implementations that use ECMAScript to implement the APIs defined in this specification must implement them in a manner consistent with the ECMAScript Bindings defined in the Web IDL specification [[!WEBIDL]], as this specification uses that specification and terminology.</p> </section> + <section> <h2>Terminology</h2> + <p>The <code><a href= "http://dev.w3.org/html5/spec/webappapis.html#eventhandler">EventHandler</a></code> interface represents a callback used for event handlers as defined in [[!HTML5]].</p> + <p>The concepts <dfn><a href= "http://dev.w3.org/html5/spec/webappapis.html#queue-a-task">queue a task</a></dfn> and <dfn><a href= "http://dev.w3.org/html5/spec/webappapis.html#fire-a-simple-event">fires a simple event</a></dfn> are defined in [[!HTML5]].</p> - <p>The terms <dfn><a href= + + <p>The terms <dfn>event</dfn>, <dfn><a href= "http://dev.w3.org/html5/spec/webappapis.html#event-handlers">event handlers</a></dfn> and <dfn><a href= "http://dev.w3.org/html5/spec/webappapis.html#event-handler-event-type">event handler event types</a></dfn> are defined in [[!HTML5]].</p> + + + <p>The terms <dfn>MediaStream</dfn>, <dfn>MediaStreamTrack</dfn>, + <dfn>Constraints</dfn>, and <dfn>Consumer</dfn> are defined in + [[!GETUSERMEDIA]].</p> </section> + <section> <h2>Peer-to-peer connections</h2> + <section> <h3>Introduction</h3> + <p>An <code><a>RTCPeerConnection</a></code> allows two users to communicate directly, browser to browser. Communications are coordinated via a signaling channel which is provided by unspecified means, but @@ -122,42 +158,72 @@ <code>XMLHttpRequest</code>.</p> </section> + <section> <h3>Configuration</h3> + <section> <h4>RTCConfiguration Type</h4> + <dl class="idl" title="dictionary RTCConfiguration"> <dt>sequence<RTCIceServer> iceServers</dt> + + <dd> + <p>An array containing URIs of servers available to be used + by ICE, such as STUN and TURN server.</p> + </dd> + + + <dt>RTCIceTransports iceTransports = "all"</dt> + + + <dd> + <p>Indicates which candidates the ICE engine is allowed to use. + </p> + </dd> + + + <dt>RTCIdentityOption requestIdentity = "ifconfigured"</dt> + + <dd> - <p>An array containing STUN and TURN servers available to be used - by ICE.</p> + <p>See the <a href= + "#dom-rtcoaoptions-requestidentity">requestIdentity</a> member of + the <code><a>RTCOfferAnswerOptions</a></code> dictionary.</p> </dd> </dl> </section> + <section> <h4>RTCIceServer Type</h4> + <dl class="idl" title="dictionary RTCIceServer"> <dt>(DOMString or sequence<DOMString> urls</dt> + <dd> - <p>STUN or TURN URI(s) as defined in [[!STUN-URI]] and - [[!TURN-URI]].</p> + <p>STUN or TURN URI(s) as defined in [[!RFC7064]] and + [[!RFC7065]] or other URI types.</p> </dd> - <dt>DOMString? username = null</dt> + + <dt>DOMString username</dt> + <dd> <p>If this <code><a>RTCIceServer</a></code> object represents a - TURN server, then this attribute specifies the username to use - with that TURN server.</p> + TURN server, then this attribute specifies the username to use with + that TURN server.</p> </dd> - <dt>DOMString? credential</dt> + + <dt>DOMString credential</dt> + <dd> <p>If this <code><a>RTCIceServer</a></code> object represents a @@ -166,101 +232,274 @@ </dd> </dl> + <p>In network topologies with multiple layers of NATs, it is desirable to have a STUN server between every layer of NATs in addition to the TURN servers to minimize the peer to peer network latency.</p> + <p>An example array of RTCIceServer objects is:</p> - <p><code>[ { urls: "stun:stun1.example.net } , { - urls:"turn:turn.example.org", username: "user", credential:"myPassword"} ]</code></p> + + <p><code>[ { "urls": "stun:stun1.example.net" }, { "urls": + "turn:turn.example.org", "username": "user", "credential": "myPassword" + } ]</code> + </p> + </section> + + <section> + <h4>RTCIceTransports Enum</h4> + + + <dl class='idl' title='enum RTCIceTransports'> + <dt>none</dt> + + + <dd>The ICE engine MUST not send or receive any packets at this + point.</dd> + + + <dt>relay</dt> + + + <dd>The ICE engine MUST only use media relay candidates such as + candidates passing through a TURN server. This can be used to reduce + leakage of IP addresses in certain use cases.</dd> + + + <dt>all</dt> + + + <dd>The ICE engine may use any type of candidates when this value is + specified.</dd> + </dl> + + </section> + + <section> + <h4>Offer/Answer Options</h4> + + <p>These dictionaries describe the options that can be used to + control the offer/answer creation process.</p> + + + <dl class="idl" title="dictionary RTCOfferAnswerOptions"> + <dt>RTCIdentityOption requestIdentity = "ifconfigured"</dt> + + + <dd> + <p>The <dfn id= + "dom-rtcoaoptions-requestidentity"><code>requestIdentity</code></dfn> + option indicates whether an identity should be requested. The option + may be used with either of the <code>createOffer()</code> or + <code>createAnswer()</code> calls, but also with the <code> + <a>RTCPeerConnection</a></code> constructor. Note that since + DTLS-SRTP is used, fingerprints will be sent regardless of the + value of this option.</p> + </dd> + </dl> + + + <dl class="idl" title= + "dictionary RTCOfferOptions : RTCOfferAnswerOptions"> + + <dt>long offerToReceiveVideo</dt> + + + <dd> + <p>In some cases, an <code>RTCPeerConnection</code> may wish to + receive video but not send any video. The + <code>RTCPeerConnection</code> needs to know if it should signal to + the remote side whether it wishes to receive video or not. This + option allows an application to indicate its preferences for the + number of video streams to receive when creating an offer.</p> + </dd> + + + <dt>long offerToReceiveAudio</dt> + + + <dd> + <p>In some cases, an <code>RTCPeerConnection</code> may wish to + receive audio but not send any audio. The + <code>RTCPeerConnection</code> needs to know if it should signal to + the remote side whether it wishes to receive audio. This option + allows an application to indicate its preferences for the number of + audio streams to receive when creating an offer.</p> + </dd> + + + <dt>boolean voiceActivityDetection = true</dt> + + + <dd> + <p>Many codecs and system are capable of detecting "silence" and + changing their behavior in this case by doing things such as not + transmitting any media. In many cases, such as when + dealing with emergency calling or + sounds other than spoken voice, it is desirable + to be able to turn off this behavior. This option allows the + application to provide information about whether it wishes this type + of processing enabled or disabled.</p> + </dd> + + + <dt>boolean iceRestart = false</dt> + + + <dd> + <p>When the value of this dictionary member is true, the + generated description will have ICE credentials that are different + from the current credentials (as visible in the + <code><a>localDescription</a></code> attribute's SDP). Applying the + generated description will restart ICE.</p> + + + <p>When the value of this dictionary member is false, and the + <code><a>localDescription</a></code> attribute has valid ICE + credentials, the generated description will have the same ICE + credentials as the current value from the + <code><a>localDescription</a></code> attribute.</p> + </dd> + </dl> + + + <dl class='idl' title='enum RTCIdentityOption'> + <dt>yes</dt> + + + <dd>An identity MUST be requested.</dd> + + [6733 lines skipped] --- /sources/public/2011/webrtc/editor/sources/webrtc.js 2013/11/05 18:10:45 1.1 +++ /sources/public/2011/webrtc/editor/sources/webrtc.js 2014/06/17 12:06:06 1.2 @@ -11,10 +11,10 @@ // subtitle : "an excellent document", // if you wish the publication date to be other than today, set this - // publishDate: "2012-05-28", + // publishDate: "2014-01-27", // new ability to override the copyright completely - overrideCopyright: "<p class='copyright'>Initial Author of this Specification was Ian Hickson, Google Inc., with the following copyright statement:<br /> © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and Opera Software ASA. You are granted a license to use, reproduce and create derivative works of this document.</p> <p class='copyright'>All subsequent changes since 26 July 2011 done by the W3C WebRTC Working Group are under the following <a href='http://www.w3.org/Consortium/Legal/ipr-notice#Copyright'>Copyright</a>:<br />© 2011-2012 <a href='http://www.w3.org/'><acronym title='World Wide Web Consortium'>W3C</acronym></a><sup>®</sup> (<a href='http://www.csail.mit.edu/'><acronym title='Massachusetts Institute of Technology'>MIT</acronym></a>, <a href='http://www.ercim.eu/'><acronym title='European Research Consortium for Informatics and Mathematics'>ERCIM</acronym></a>, <a href='http://www.keio.ac.jp/'>Keio</a>, <a href='http://ev.buaa.edu.cn/'>Beihang<\/a>), All Rights eserved. <a href='http://www.w3.org/Consortium/Legal/copyright-documents'>Document use</a> rules apply.</p> <p class='copyright'>For the entire publication on the W3C site the <a href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>liability</a> and <a href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>trademark</a> rules apply.</p>", + overrideCopyright: "<p class='copyright'>Initial Author of this Specification was Ian Hickson, Google Inc., with the following copyright statement:<br /> © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and Opera Software ASA. You are granted a license to use, reproduce and create derivative works of this document.</p> <p class='copyright'>All subsequent changes since 26 July 2011 done by the W3C WebRTC Working Group are under the following <a href='http://www.w3.org/Consortium/Legal/ipr-notice#Copyright'>Copyright</a>:<br />© 2011-2014 <a href='http://www.w3.org/'><acronym title='World Wide Web Consortium'>W3C</acronym></a><sup>®</sup> (<a href='http://www.csail.mit.edu/'><acronym title='Massachusetts Institute of Technology'>MIT</acronym></a>, <a href='http://www.ercim.eu/'><acronym title='European Research Consortium for Informatics and Mathematics'>ERCIM</acronym></a>, <a href='http://www.keio.ac.jp/'>Keio</a>, <a href='http://ev.buaa.edu.cn/'>Beihang<\/a>), All Rights eserved. <a href='http://www.w3.org/Consortium/Legal/copyright-documents'>Document use</a> rules apply.</p> <p class='copyright'>For the entire publication on the W3C site the <a href='http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer'>liability</a> and <a href='http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks'>trademark</a> rules apply.</p>", // if the specification's copyright date is a range of years, specify @@ -22,7 +22,7 @@ // copyrightStart: "2005", // if there is a previously published draft, uncomment this and set its YYYY-MM-DD - prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20130603/webrtc.html", + prevED: "http://dev.w3.org/2011/webrtc/editor/archives/20140410/webrtc.html", // if there a publicly available Editor's Draft, this is the link edDraftURI: "http://dev.w3.org/2011/webrtc/editor/webrtc.html",
Received on Tuesday, 17 June 2014 12:06:09 UTC