The read-only usernameFragment
property on the RTCIceCandidate
interface is a string indicating the username fragment ("ufrag") that uniquely identifies a single ICE interaction session.
This value is specified when creating the RTCIceCandidate
by setting the corresponding usernameFragment
value in the RTCIceCandidateInit
object when creating a new candidate with new RTCIceCandidate()
.
If you instead call RTCIceCandidate()
with a string parameter containing the candidate
m-line text, the value of usernameFragment
is extracted from the m-line.
var ufrag = RTCIceCandidate.usernameFragment;
A DOMString
containing the username fragment (usually referred to in shorthand as "ufrag" or "ice-ufrag") that, along with the ICE password ("ice-pwd"), uniquely identifies a single ongoing ICE interaction. The string may be up to 256 characters long, and has no default value.
At least 24 bits of the text in the ufrag
are required to be randomly selected by the ICE layer at the beginning of the ICE session. The specifics for which bits are random and what the remainder of the ufrag
text are are left up to the browser implementation to decide. For example, a browser might choose to always use a 24-character ufrag
in which bit 4 of each character is randomly selected between 0 and 1. Another example: it might take a user-defined string and append three 8-bit random bytes to the end. Or perhaps every character is entirely random.
ICE uses the ufrag
and password to ensure message integrity. This avoids crosstalk among multiple ongoing ICE sessions, but, more importantly, helps secure ICE transactions (and all of WebRTC by extension) against attacks that might try to inject themselves into an ICE exchange.
Note: There is no API to obtain the ICE password, for what should be fairly obvious security reasons.
...
Specification | Status | Comment |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers The definition of 'RTCIceCandidate.usernameFragment' in that specification. | Candidate Recommendation | Initial definition. |
Desktop | ||||||
---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
Basic support | ? | ? | No | ? | ? | ? |
Mobile | |||||||
---|---|---|---|---|---|---|---|
Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
Basic support | ? | ? | ? | No | ? | ? | ? |
© 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/usernameFragment