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.
priority = rtcIceCandidateStats.priority
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.
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):
{ 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.