The RTCIceCandidate
interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection
.
An ICE candidate describes the protocols and routing needed for WebRTC to be able to communicate with a remote device. When starting a WebRTC peer connection, typically a number of candidates are proposed by each end of the connection, until they mutually agree upon one which describes the connection they decide will be best. WebRTC then uses that candidate's details to initiate the connection.
For details on how the ICE process works, see Lifetime of a WebRTC session. The article WebRTC connectivity provides additional useful details.
RTCIceCandidate()
RTCIceCandidate
object to represent a single ICE candidate, optionally configured based on an object based on the RTCIceCandidateInit
dictionary. candidate
property instead of a RTCIceCandidateInit
object, since the candidate
includes all of the information that RTCIceCandidateInit
does and more.candidate
Read only
DOMString
representing the transport address for the candidate that can be used for connectivity checks. The format of this address is a candidate-attribute
as defined in RFC 5245. This string is empty (""
) if the RTCIceCandidate
is an "end of candidates" indicator.component
Read only
DOMString
which indicates whether the candidate is an RTP or an RTCP candidate; its value is either "rtp"
or "rtcp"
, and is derived from the "component-id"
field in the candidate
a-line string. The permitted values are listed in the RTCIceComponent
enumerated type.foundation
Read only
DOMString
containing a unique identifier that is the same for any candidates of the same type, share the same base (the address from which the ICE agent sent the candidate), and come from the same STUN server. This is used to help optimize ICE performance while prioritizing and correlating candidates that appear on multiple RTCIceTransport
objects.ip
Read only
DOMString
containing the IP address of the candidate.port
Read only
priority
Read only
protocol
Read only
"tcp"
or "udp"
. The string is one of those in the enumerated type RTCIceProtocol
.relatedAddress
Read only
relatedAddress
is a DOMString
containing that host candidate's IP address. For host candidates, this value is null
.relatedPort
Read only
relatedPort
is a number indicating the port number of the candidate from which this candidate is derived. For host candidates, the relatedPort
property is null
.sdpMid
Read only
DOMString
specifying the candidate's media stream identification tag which uniquely identifies the media stream within the component with which the candidate is associated, or null
if no such association exists.sdpMLineIndex
Read only
null
, sdpMLineIndex
indicates the zero-based index number of the media description (as defined in RFC 4566) in the SDP with which the candidate is associated.tcpType
Read only
protocol
is "tcp"
, tcpType
represents the type of TCP candidate. Otherwise, tcpType
is null
.type
Read only
DOMString
indicating the type of candidate as one of the strings from the RTCIceCandidateType
enumerated type.usernameFragment
Read only
DOMString
containing a randomly-generated username fragment ("ice-ufrag") which ICE uses for message integrity along with a randomly-generated password ("ice-pwd"). You can use this string to verify generations of ICE generation; each generation of the same ICE process will use the same usernameFragment
, even across ICE restarts.toJSON()
RTCIceCandidate
's current configuration, toJSON()
returns a DOMString
containing a JSON representation of that configuration in the form of a RTCIceCandidateInit
object.For examples, see the article Signaling and video calling, which demonstrates the entire process.
Specification | Status | Comment |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers The definition of 'RTCIceCandidate' in that specification. | Candidate Recommendation | Initial definition. |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | Yes | Yes | 22 | ? | Yes | ? |
RTCIceCandidate() | Yes | Yes | 22 | ? | Yes | ? |
candidate |
Yes | 15 | 22 | ? | Yes | ? |
foundation |
No | Yes | No | No | No | ? |
ip |
No | Yes | No | No | No | ? |
port |
No | Yes | No | No | No | ? |
priority |
No | Yes | No | No | No | ? |
protocol |
No | Yes | No | No | No | ? |
relatedAddress |
No | Yes | No | No | No | ? |
relatedPort |
No | Yes | No | No | No | ? |
sdpMid |
Yes | 15 | 22 | ? | Yes | ? |
sdpMLineIndex |
Yes | 15 | 22 | ? | Yes | ? |
tcpType |
No | Yes | No | No | No | ? |
type |
No | Yes | No | No | No | ? |
component |
No | ? | No | No | ? | ? |
usernameFragment |
? | ? | No | ? | ? | ? |
toJSON |
? | 15 | 27 | ? | ? | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | Yes | Yes | Yes | ? | Yes | ? | Yes |
RTCIceCandidate() | Yes | Yes | Yes | ? | Yes | ? | Yes |
candidate |
Yes | Yes | Yes | ? | Yes | ? | Yes |
foundation |
No | No | Yes | ? | No | ? | Yes |
ip |
No | No | Yes | No | No | ? | Yes |
port |
No | No | Yes | No | No | ? | Yes |
priority |
No | No | Yes | No | No | ? | Yes |
protocol |
No | No | Yes | No | No | ? | Yes |
relatedAddress |
No | No | Yes | No | No | ? | Yes |
relatedPort |
No | No | Yes | No | No | ? | Yes |
sdpMid |
Yes | Yes | Yes | ? | Yes | ? | Yes |
sdpMLineIndex |
Yes | Yes | Yes | ? | Yes | ? | Yes |
tcpType |
No | No | Yes | No | No | ? | Yes |
type |
No | No | Yes | No | No | ? | Yes |
component |
No | No | ? | No | ? | ? | ? |
usernameFragment |
? | ? | ? | No | ? | ? | ? |
toJSON |
? | ? | ? | 27 | ? | ? | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCIceCandidate