This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 23572 - Documented format with which to specify ICE servers does not match implementation and contains typos
Summary: Documented format with which to specify ICE servers does not match implementa...
Status: RESOLVED FIXED
Alias: None
Product: WebRTC Working Group
Classification: Unclassified
Component: WebRTC API (show other bugs)
Version: unspecified
Hardware: Other All
: P2 minor
Target Milestone: ---
Assignee: Web RTC Working Group
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-20 21:34 UTC by Matthew Robertson
Modified: 2014-10-29 18:44 UTC (History)
3 users (show)

See Also:


Attachments

Description Matthew Robertson 2013-10-20 21:34:07 UTC
The WebRTC W3C working draft states that multiple ICE server urls can be specified for a single set of credentials using the "urls" dictionary key:

http://www.w3.org/TR/webrtc/#idl-def-RTCIceServer

This does not match the current Chromium or Firefox implementations in which only single url can be specified under the "url" key: 

https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/modules/mediastream/RTCPeerConnection.cpp&l=97

Currently in the spec there is no mention of the "url" key (only "urls") and there is no example that demonstrates specifying multiple urls for a single IceServer object. This would be a useful feature for situations in which one server is capable of providing several TURN protocols (TURNS, transport=tcp, transport=udp etc) but it is not strictly necessary, as it can currently be accomplished by passing in multiple IceServer objects each with a single URL.

Also, there is a small typo in the example JSON at the bottom of this section of the spec (4.2.2.1):

http://www.w3.org/TR/webrtc/#idl-def-RTCIceServer

[ { urls: "stun:stun1.example.net } , { urls:"turn:turn.example.org", username: "user", credential:"myPassword"} ]

should be (missing "):

[ { urls: "stun:stun1.example.net" } , { urls:"turn:turn.example.org", username: "user", credential:"myPassword"} ]
Comment 1 Adam Bergkvist 2013-10-21 06:52:50 UTC
(In reply to Matthew Robertson from comment #0)

> This does not match the current Chromium or Firefox implementations in which
> only single url can be specified under the "url" key: 

This is a rather new feature so implementations may not have caught up yet.
 
> Currently in the spec there is no mention of the "url" key (only "urls") and
> there is no example that demonstrates specifying multiple urls for a single
> IceServer object. This would be a useful feature for situations in which one
> server is capable of providing several TURN protocols (TURNS, transport=tcp,
> transport=udp etc) but it is not strictly necessary, as it can currently be
> accomplished by passing in multiple IceServer objects each with a single URL.

The "url" key was replaced by "urls" which accepts both a single url string and an array of strings. The feature is there even though the example doesn't cover it.
 
> Also, there is a small typo in the example JSON at the bottom of this
> section of the spec (4.2.2.1):
> 
> http://www.w3.org/TR/webrtc/#idl-def-RTCIceServer
> 
> [ { urls: "stun:stun1.example.net } , { urls:"turn:turn.example.org",
> username: "user", credential:"myPassword"} ]
> 
> should be (missing "):
> 
> [ { urls: "stun:stun1.example.net" } , { urls:"turn:turn.example.org",
> username: "user", credential:"myPassword"} ]

Thanks for pointing this out. It will be fixed for the next release.
Comment 2 Harald Alvestrand 2014-10-29 18:44:20 UTC
The missing quote has been fixed. The mismatch with implementations is the implementations' problem to fix.