This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.


This page is not complete.

I'm experimenting with structure for pages documenting members of dictionaries. Please contact sheppy with any feedback.


This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The obsolete RTCIceServer dictionary's url property specifies the URL of a single ICE server to be used while negotiating connections. It was removed from the specification in June 2013 but is still broadly used in older examples and books, so we include documentation here to help adapt old code to new browsers.

This property has been removed from the specification; while it's still supported by many browsers, it should no longer be used. You should instead use the newer urls property, which allows you to optionally specify multiple URLs for the server. Try to update any existing code to use that property instead.


var iceServer = {
                  url = iceServerUrl,

var serverUrl = iceServer.url;

iceServer.url = iceServerUrl;

The value of this property is a DOMString containing the full URL of a server to use during ICE negotiation.


This example creates a new RTCPeerConnection which will use a STUN server at stunserver.example.org to negotiate connections.

myPeerConnection = new RTCPeerConnection({
  iceServers: [
      url: "stun:stunserver.example.org"

Unfortunately, the only way to tell ICE that the server has a backup domain name of stunserver2.example.org is to add a new entry to the iceServers array for it. The urls property lets you include them both in one server, which is more readily maintainable.

Browser compatibility

BCD tables only load in the browser

See also