Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1046942 of RTCConfiguration

  • Revision slug: Web/API/RTCConfiguration
  • Revision title: RTCConfiguration
  • Revision id: 1046942
  • Created:
  • Creator: Sheppy
  • Is current revision? No
  • Comment

Revision Content

{{APIRef("WebRTC")}}{{draft}}

The RTCConfiguration dictionary is used to provide configuration options for an {{domxref("RTCPeerConnection")}}. It may be passed into the constructor when instantiating a connection, or used with the {{domxref("RTCPeerConnection.getConfiguration()")}} and {{domxref("RTCPeerConnection.setConfiguration()")}} methods, which allow inspecting and changing the configuration while a connection is established.

The options include ICE server and transport settings and identity information.

Properties

iceServers
An array of RTCIceServer objects, each describing one server which may be used by the ICE agent; these are typically STUN and/or TURN servers.
iceTransportPolicy
The current ICE transport policy; this must be one of the values from the RTCIceTransportPolicy enum. If this isn't specified, "all" is assumed.

RTCIceServer Properties

Name Type Description
urls {{domxref("DOMString")}}, {{jsxref("Array")}} Either a string specifying a single STUN or TURN server's URI to use, or an array of strings specifying multiple URIs for servers with multiple addresses.
username {{domxref("DOMString")}} An account username (optional)
credential {{domxref("DOMString")}} The password associated with username, if given (optional)

Avoid specifying an unnecessarily large number of URLs in the urls property; the startup time for your connection will go up substantially. Every server in the list will be contacted and tried out before one is selected to be used for negotiation.

Older versions of the WebRTC specification included an url property instead of urls; this was changed in order to let you specify multiple addresses for each server in the list, as shown in the example below.

Constants

{{page("/en-US/docs/Web/API/RTCPeerConnection", "RTCIceTransportPolicy enum", 0, 1)}}

Example

var configuration = { iceServers: [{
                          urls: "stun:stun.services.mozilla.com",
                          username: "[email protected]", 
                          credential: "webrtcdemo"
                      }, {
                          urls: ["stun:stun.example.com", "stun:stun-1.example.com"]
                      }]
};

var pc = new RTCPeerConnection(configuration);

Revision Source

<p>{{APIRef("WebRTC")}}{{draft}}</p>

<p>The <strong><code>RTCConfiguration</code></strong> dictionary is used to provide configuration options for an {{domxref("RTCPeerConnection")}}. It may be passed into the constructor when instantiating a connection, or used with the {{domxref("RTCPeerConnection.getConfiguration()")}} and {{domxref("RTCPeerConnection.setConfiguration()")}} methods, which allow inspecting and changing the configuration while a connection is established.</p>

<p>The options include ICE server and transport settings and identity information.</p>

<h2 id="Properties">Properties</h2>

<dl>
 <dt>iceServers</dt>
 <dd>An array of RTCIceServer objects, each describing one server which may be used by the ICE agent; these are typically STUN and/or TURN servers.</dd>
 <dt>iceTransportPolicy</dt>
 <dd>The current ICE transport policy; this must be one of the values from the RTCIceTransportPolicy enum. If this isn't specified, <code>"all"</code> is assumed.</dd>
</dl>

<h3 id="RTCIceServer_Properties">RTCIceServer Properties</h3>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Name</th>
   <th scope="col">Type</th>
   <th scope="col">Description</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><code>urls</code></td>
   <td>{{domxref("DOMString")}}, {{jsxref("Array")}}</td>
   <td>Either a string specifying a single STUN or TURN server's URI to use, or an array of strings specifying multiple URIs for servers with multiple addresses.</td>
  </tr>
  <tr>
   <td><code>username</code></td>
   <td>{{domxref("DOMString")}}</td>
   <td>An account username (optional)</td>
  </tr>
  <tr>
   <td><code>credential</code></td>
   <td>{{domxref("DOMString")}}</td>
   <td>The password associated with username, if given (optional)</td>
  </tr>
 </tbody>
</table>

<p>Avoid specifying an unnecessarily large number of URLs in the <code>urls</code> property; the startup time for your connection will go up substantially. Every server in the list will be contacted and tried out before one is selected to be used for negotiation.</p>

<div class="note">
<p>Older versions of the WebRTC specification included an <code>url</code> property instead of <code>urls</code>; this was changed in order to let you specify multiple addresses for each server in the list, as shown in the example below.</p>
</div>

<h2 id="Constants">Constants</h2>

<p>{{page("/en-US/docs/Web/API/RTCPeerConnection", "RTCIceTransportPolicy enum", 0, 1)}}</p>

<h2 id="Example">Example</h2>

<pre class="brush: js">
var configuration = { iceServers: [{
                          urls: "stun:stun.services.mozilla.com",
                          username: "[email protected]", 
                          credential: "webrtcdemo"
                      }, {
                          urls: ["stun:stun.example.com", "stun:stun-1.example.com"]
                      }]
};

var pc = new RTCPeerConnection(configuration);</pre>
Revert to this revision