WebRTC Metrics

A comprehensive overview of WebRTC statistics, derived indicators, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats

A bluetooth device is being used
Aborted connection attempt
local-candidateaddress
remote-candidateaddress
AEC intentionally disabled
Apple device used
Audio Interruptions
inbound-rtpaudioLevel
media-sourceaudioLevel
inbound-rtpaudioLevel(rms)
media-sourceaudioLevel(rms)
candidate-pairavailableIncomingBitrate
candidate-pairavailableOutgoingBitrate
candidate-pairbytesDiscardedOnSend
candidate-pairbytesReceieved (bits/s)
candidate-pairbytesReceived
data-channelbytesReceived
inbound-rtpbytesReceived
transportbytesReceived
data-channelbytesReceived (bits/s)
inbound-rtpbytesReceived(bits/s)
candidate-pairbytesSent
data-channelbytesSent
outbound-rtpbytesSent
remote-outbound-rtpbytesSent
transportbytesSent
candidate-pairbytesSent (bits/s)
data-channelbytesSent (bits/s)
outbound-rtpbytesSent(bits/s)
Can't establish connection to TURN
local-candidatecandidateType
remote-candidatecandidateType
codecchannels
codecclockRate
inbound-rtpconcealedSamples
inbound-rtpconcealedSamples/s
inbound-rtpconcealedSamples/totalSamplesReceived(%)
inbound-rtpconcealmentEvents
Connected via a public discovered address
Connected via VPN
Connection churn
Connection dropped
Connection failed to establish
Connection relayed over TCP
Connection relayed over TLS
Connection warmup
candidate-pairconsentRequestsSent
Constant Microphone Volume
inbound-rtpcorruptionMeasurements
CPU pressure
candidate-paircurrentRoundTripTime(ms)
Delay in playing audio
Delays on sending media
Device already in use
Device can't fully support application request
Device not found
DTLS failure
transportdtlsCipher
transportdtlsState
Duplicated lines in local SDP
Duplicated lines in remote SDP
media-sourceechoReturnLoss
media-sourceechoReturnLossEnhancement
Empty connection
inbound-rtpfecBytesReceived
inbound-rtpfecPacketsDiscarded
inbound-rtpfecPacketsDiscarded/s
inbound-rtpfecPacketsReceived
inbound-rtpfecPacketsReceived/s
certificatefingerprint
certificatefingerprintAlgorithm
inbound-rtpfirCount
outbound-rtpfirCount
remote-inbound-rtpfractionLost
inbound-rtpframeHeight
outbound-rtpframeHeight
media-sourceframes
inbound-rtpframesAssembledFromMultiplePackets
inbound-rtpframesDecoded
inbound-rtpframesDecoded/s
inbound-rtpframesDropped
inbound-rtpframesDropped/Received(%)
outbound-rtpframesEncoded
outbound-rtpframesEncoded/s
inbound-rtpframesPerSecond
media-sourceframesPerSecond
outbound-rtpframesPerSecond
inbound-rtpframesReceived
inbound-rtpframesReceived/s
inbound-rtpframesRendered
outbound-rtpframesSent
outbound-rtpframesSent/s
inbound-rtpframeWidth
outbound-rtpframeWidth
inbound-rtpfreezeCount
Gain control intentionally disabled
inbound-rtpheaderBytesReceived
inbound-rtpheaderBytesReceived(bits/s)
outbound-rtpheaderBytesReceived(bits/s)
outbound-rtpheaderBytesSent
media-sourceheight
High bandwidth limitation
High CPU Limitation
High decode time
High encode time
High freeze duration
High inbound network instability
High inbound network instability
High incoming audio packet loss
High incoming media jitter
High incoming media round trip time
High other limitation
High outbound network instability
High outbound network instability
High outgoing audio packet loss
High outgoing media jitter
High outgoing media round trip time
High pause duration
High signaling time
High STUN delay
High TURN delay
High video retransmission received
outbound-rtphugeFramesSent
ICE warmup
transporticeState
Incoming audio is too loud
Incoming audio is too low
Incoming video disrupted
Inefficient Simulcast detected
inbound-rtpinsertedSamplesForDeceleration
inbound-rtpinsertedSamplesForDeceleration/s
Internal IP exposed
inbound-rtpinterruptionCount
Invalid packet loss values
IPv6 Connection
inbound-rtpjitter(ms)
remote-inbound-rtpjitter(ms)
inbound-rtpjitterBufferDelay
inbound-rtpjitterBufferDelay/jitterBufferEmittedCount(ms)
inbound-rtpjitterBufferEmittedCount
inbound-rtpjitterBufferFlushes
inbound-rtpjitterBufferMinimumDelay
inbound-rtpjitterBufferTargetDelay
inbound-rtpkeyFramesDecoded
inbound-rtpkeyFramesDecoded/s
candidate-pairlastPacketReceivedTimestamp
candidate-pairlastPacketSentTimestamp
Late WebRTC Internals capture
Long connection time
Low echo cancellation
data-channelmessagesReceived
data-channelmessagesReceived/s
data-channelmessagesSent
data-channelmessagesSent/s
Microphone is inaudible
Microphone is too loud
codecmimeType
inbound-rtpminPlayoutDelay
mos
Multiple STUN servers
inbound-rtpnackCount
outbound-rtpnackCount
No audible incoming audio
No audio samples played out
No iceServers configured
No IPv4 interface
No specific audio and video constraints
No specific audio constraints
No specific video constraints
No TURN TLS/443
No volume on incoming audio
No volume on outgoing audio
Not allowed to use the device
inbound-rtppacketsDiscarded
inbound-rtppacketsDiscarded(%)
inbound-rtppacketsDiscarded/s
candidate-pairpacketsDiscardedOnSend
inbound-rtppacketsLost
remote-inbound-rtppacketsLost
inbound-rtppacketsLost(%)
remote-inbound-rtppacketsLost(%)
inbound-rtppacketsLost/s
remote-inbound-rtppacketsLost/s
candidate-pairpacketsReceived
inbound-rtppacketsReceived
remote-inbound-rtppacketsReceived
transportpacketsReceived
candidate-pairpacketsReceived/s
inbound-rtppacketsReceived/s
inbound-rtppacketsReceivedWithCe
remote-inbound-rtppacketsReceivedWithCe
inbound-rtppacketsReceivedWithEct1
remote-inbound-rtppacketsReceivedWithEct1
inbound-rtppacketsReportedAsLost
remote-inbound-rtppacketsReportedAsLost
inbound-rtppacketsReportedAsLostButRecovered
remote-inbound-rtppacketsReportedAsLostButRecovered
candidate-pairpacketsSent
outbound-rtppacketsSent
remote-outbound-rtppacketsSent
transportpacketsSent
candidate-pairpacketsSent/s
outbound-rtppacketsSent/s
outbound-rtppacketsSentWithEct1
outbound-rtppacketsSentWithEct1/s
remote-inbound-rtppacketsWithBleachedEct1Marking
inbound-rtppauseCount
codecpayloadType
peer-connection.dataChannelsClosed
peer-connection.dataChannelsOpened
inbound-rtppliCount
outbound-rtppliCount
local-candidateport
remote-candidateport
Potential echo loop
Potential local bufferbloat
Prefer TURN candidates only
local-candidatepriority
Private TURN address published
Protected mDNS address
local-candidateprotocol
remote-candidateprotocol
inbound-rtpqpSum
outbound-rtpqpSum
inbound-rtpqpSum/framesDecoded
outbound-rtpqpSum/framesEncoded
outbound-rtpqualityLimitationDurations
Redundant STUN servers
local-candidaterelayProtocol
inbound-rtpremovedSamplesForAcceleration
inbound-rtpremovedSamplesForAcceleration/s
remote-outbound-rtpreportsSent
candidate-pairrequestsReceived
candidate-pairrequestsSent
candidate-pairresponsesReceived
candidate-pairresponsesSent
inbound-rtpretransmittedBytesReceived
inbound-rtpretransmittedBytesReceived(bits/s)
outbound-rtpretransmittedBytesSent
outbound-rtpretransmittedBytesSent(bits/s)
inbound-rtpretransmittedPacketsReceived
outbound-rtpretransmittedPacketsSent
outbound-rtpretransmittedPacketsSent/s
remote-inbound-rtproundTripTime(ms)
remote-outbound-rtproundTripTime(ms)
remote-inbound-rtproundTripTimeMeasurements
remote-outbound-rtproundTripTimeMeasurements
codecsdpFmtpLine
transportselectedCandidatePairChanges
transportselectedCandidatePairId
Short-lived connection
inbound-rtpsilentConcealedSamples
inbound-rtpsilentConcealedSamples/s
Slow DTLS establishment
transportsrtpCipher
Stalled stream
Symmetric NAT
outbound-rtptargetBitrate
outbound-rtptargetEncodedBytesTarget
transporttlsVersion
Too many camera changes
Too many disconnections
Too many enumerateDevices requests
Too many frames dropped
Too many getUserMedia requests
Too many ICE handovers
Too many ICE Servers
Too many microphone changes
Too many network interfaces
inbound-rtptotalAssemblyTime
inbound-rtptotalAssemblyTime/framesAssembledFromMultiplePackets(ms)
inbound-rtptotalAudioEnergy
media-sourcetotalAudioEnergy
inbound-rtptotalCorruptionProbability
inbound-rtptotalDecodeTime
inbound-rtptotalDecodeTime/framesDecoded(ms)
outbound-rtptotalEncodeTime
outbound-rtptotalEncodeTime/framesEncoded(ms)
inbound-rtptotalFreezesDuration
inbound-rtptotalInterFrameDelay
inbound-rtptotalInterFrameDelay/framesDecoded(ms)
inbound-rtptotalInterruptionDuration
outbound-rtptotalPacketSendDelay
outbound-rtptotalPacketSendDelay/packetsSent(ms)
inbound-rtptotalPausesDuration
media-playouttotalPlayoutDelay
media-playouttotalPlayoutDelay/totalSamplesCount(ms)
inbound-rtptotalProcessingDelay
inbound-rtptotalProcessingDelay/jitterBufferEmittedCount(ms)
candidate-pairtotalRoundTripTime
remote-inbound-rtptotalRoundTripTime
remote-outbound-rtptotalRoundTripTime
candidate-pairtotalRoundTripTime/responsesReceived(ms)
remote-inbound-rtptotalRoundTripTime/roundTripTimeMeasurements(ms)
remote-outbound-rtptotalRoundTripTime/roundTripTimeMeasurements(ms)
media-playouttotalSamplesCount
inbound-rtptotalSamplesDuration
media-playouttotalSamplesDuration
media-sourcetotalSamplesDuration
inbound-rtptotalSamplesDuration/s
inbound-rtptotalSamplesReceived
inbound-rtptotalSamplesReceived/s
inbound-rtptotalSquaredCorruptionProbability
inbound-rtptotalSquaredInterFrameDelay
TURN Authentication Error
TURN Client Error
TURN configured but no TURN candidate gathered
TURN Other Error
TURN Other Error
TURN Server Error
UDP blocked
Unused Data Channel
Unused media stream
local-candidateurl
USB device used
Virtual device used
media-sourcewidth