RTCIceCandidate.type

The RTCIceCandidate interface's read-only type specifies the type of candidate the object represents.

The type field's value is set from the candidateInfo options object passed to the RTCIceCandidate() constructor. You can't specify the value of type directly in the options object, but its value is automatically extracted from the object's candidate a-line (the cand-type field), if it's formatted properly.

Value

A DOMString whose value is one of those defined below. These candidate types are listed in order of priority; the higher in the list they are, the more efficient they are.

host

The candidate is a host candidate, whose IP address as specified in the RTCIceCandidate.address property is in fact the true address of the remote peer.

srflx

The candidate is a server reflexive candidate; the ip indicates an intermediary address assigned by the STUN server to represent the candidate's peer anonymously.

prflx

The candidate is a peer reflexive candidate; the ip is an intermediary address assigned by the STUN server to represent the candidate's peer anonymously.

relay

The candidate is a relay candidate, obtained from a TURN server. The relay candidate's IP address is an address the TURN server uses to forward the media between the two peers.

If type is null, that information was missing from the candidate's a-line, which will cause RTCPeerConnection.addIceCandidate() to throw an OperationError exception.

Examples

In this example, the candidate's type is used to present a modified user interface for host candidates (those where the ip refers directly to the remote peer, rather than an intermediary).

if (candidate.type == "host") {
  showHostControls();
} else {
  hideHostControls();
}

Specifications

Specification
WebRTC 1.0: Real-Time Communication Between Browsers
# dom-rtcicecandidate-type

Browser compatibility

BCD tables only load in the browser

See also