RTCIceCandidateStats: priority property

The RTCIceCandidateStats dictionary's priority property is a positive integer value indicating the priority (or desirability) of the described candidate.

During ICE negotiation while setting up a WebRTC peer connection, the priority values reported to the remote peer by a user agent are used to determine which candidates are considered "more desirable". The higher the value, the more desirable the candidate is.

Syntax

js
priority = rtcIceCandidateStats.priority

Value

A positive integer indicating the priority of the RTCIceCandidate described by the RTCIceCandidateStats object. The value may be anywhere from 1 to 2,147,483,647.

Determining priority

The ICE specification describes how user agents and other software using WebRTC should calculate the priority. The priority of a candidate is calculated using the following variables as inputs:

  • The preferability of the candidate type (local, server reflexive, peer reflexive, or relayed)
  • The preferability of the candidate's specific IP address (for multihomed agents)
  • The candidate's component ID (1 for RTP, 2 for RTCP)

The candidate's priority is computed using the formula (ptype is the priority of the candidate's type and plocal is the priority of the IP address):

priority = 2 24 × p type + 2 8 × p local + ( 256 - componentID ) priority\quad =\quad { 2 }^{ 24 }\times { p } { type }\quad +\quad { 2 }^{ 8 }\times { p }{ local }\quad +\quad (256\quad -\quad componentID)

This is equivalent to mapping the priorities of the candidate type, the local IP, and the component ID into various bit ranges within the 32-bit priority value.

Specifications

Specification
Identifiers for WebRTC's Statistics API
# dom-rtcicecandidatestats-priority

Browser compatibility

BCD tables only load in the browser

See also