Repository navigation
1.2.0
ObservedClient session totals
New public fields that accumulate over the whole session, are never reset per sample, and survive
a peer connection being closed, so a per-client summary can be read directly off the client:
- RTT:
totalRttSumInMs,numberOfRttMeasurements,minRttInMs,maxRttInMs, and
rttHistogram(50 buckets of 20 ms; the last holds 980 ms and above).rttSummary
returns a frozen, cached{ p50, p75, p95, p99, avg }. - Score:
scoreHistogram(5 buckets of 1 point over 0..5),minScore,maxScore.
scoreSummaryreturns a frozen, cached{ p5, p25, p50, p75, p95, avg }. A score of0is
now counted intotalScoreSum/numberOfScoreMeasurements(it was skipped before). - Issues:
issueHistogram['<type>']counts raises per base type (resolutions and re-raises of an
open keyed issue are not counted);totalNumberOfIssuesis its sum. - Traffic:
totalInboundPacketsLost,totalInboundPacketsReceived,totalOutboundPacketsSent,
totalReceived/SentAudio/VideoBytes,totalTransportReceived/SentBytes,totalDataChannel*. - Path:
numberOfSamplesOverUdp,numberOfSamplesOverTcp,numberOfSamplesOverTurnUdp,
numberOfSamplesOverTurnTcp,numberOfSamplesWithUnknownPath. TURN over TCP/TLS is taken from
the relay candidate'srelayProtocol. - Other:
numberOfPublicAddressChanges,peakSendingBitrate,peakReceivingBitrate. percentileOfHistogram(histogram, bucketWidth, p, options)inutils/stats, for percentiles of
histograms combined across clients. Exported typesRttSummary,ScoreSummaryand
constantsRTT_HISTOGRAM_*,SCORE_HISTOGRAM_*.
Breaking: removed ObservedClient.deltaRttLt50Measurements, deltaRttLt150Measurements,
deltaRttLt300Measurements and deltaRttGtOrEq300Measurements; use rttHistogram.
AudioEchoDetector (new, call scope)
call.addDetector('audio-echo-detector') / observer.addCallDetector('audio-echo-detector').
Raises AUDIO_ECHO_SUSPECTED when a participant's outgoing audio follows another participant's
voice: active in at least minFollowRatio of the buckets where the loudest other participant
spoke, with a dB level correlation of at least minCorrelation. The payload names the echoing and
the source track and client, the evidence, the capture device label (from AUDIO_INPUT_DEVICE
metadata) and whether the client's loopback-audio-input issue is open on the track.
Audio level fields
ObservedInboundRtp:audioLevel,totalAudioEnergyandtotalSamplesDurationare now
assigned (they were declared but alwaysundefined), plus the per-tickdeltaTotalAudioEnergy,
deltaTotalSamplesDurationandrmsAudioLevel.ObservedMediaSource:deltaTotalAudioEnergy,deltaTotalSamplesDuration,rmsAudioLevel.ObservedOutboundTrack:rmsAudioLevel(media-source level, else the receivers' median),
rmsAudioLevelSource,receivedRmsAudioLevel, andaudioInputDevice.rmsAudioLevel(deltaEnergy, deltaDuration)inutils/stats.
AUDIO_INPUT_DEVICE client metadata
ClientMetaTypes.AUDIO_INPUT_DEVICE (client-monitor-js next) is parsed into
ObservedClient.audioInputDevices, keyed by track id. AudioInputDevice is exported.