WebRTC samples Trickle ICE

This page tests the trickle ICE functionality in a WebRTC implementation. It creates a PeerConnection with the specified ICEServers, and then starts candidate gathering for a session with a single audio stream. As candidates are gathered, they are displayed in the text box below, along with an indication when candidate gathering is complete.

Note that if no getUserMedia permissions for this origin are persisted only candidates from a single interface will be gathered in Chrome. See the RTCWEB IP address handling recommendations draft for details.You have given permission, candidate from multiple interface will be gathered.

Individual STUN and TURN servers can be added using the Add server / Remove server controls below; in addition, the type of candidates released to the application can be controlled via the IceTransports constraint.

If you test a STUN server, it works if you can gather a candidate with type "srflx". If you test a TURN server, it works if you can gather a candidate with type "relay".

If you test just a single TURN/UDP server, this page even allows you to detect when you are using the wrong credential to authenticate.

ICE servers

ICE options

all relay
Time Type Foundation Protocol Address Port Priority URL (if present) relayProtocol (if present)
Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4.
View source on GitHub