Skip to main content

WebRTC

The WebRTC component opens a transient RTCPeerConnection, generates an SDP offer, and extracts a stable signature from it. Two things end up in the fingerprint:

  1. The set of audio and video codecs the browser advertises (mime type, clock rate, channels, feedback support, fmtp lines), reduced to a count and a hash per media type.
  2. The list of RTP header extensions the browser supports, reduced to a single hash.

A short ICE-gathering pass also captures the candidate type (host, srflx, …) when one is produced before the timeout. No actual connection is established — the connection is closed as soon as the first candidate arrives or the timeout fires (90% of options.timeout).

The component returns null/supported: false on browsers that do not expose RTCPeerConnection.

Example

"webrtc": {
"details": {
"supported": true,
"audio": { "count": 4, "hash": "..." },
"video": { "count": 7, "hash": "..." },
"extensionsHash": "...",
"candidateType": "host"
},
"hash": "..."
}

Code

Check out the implementation