RemoteAudioStats

Describes the audio statistics of a remote user.

struct RemoteAudioStats
{
  uid_t uid;
  int quality;
  int networkTransportDelay;
  int jitterBufferDelay;
  int audioLossRate;
  int numChannels;
  int receivedSampleRate;
  int receivedBitrate;
  int totalFrozenTime;
  int frozenRate;
  int mosValue;
  uint32_t frozenRateByCustomPlcCount;
  uint32_t plcCount;
  uint32_t frozenCntByCustom;
  uint32_t frozenTimeByCustom;
  int totalActiveTime;
  int publishDuration;
  int qoeQuality;
  int qualityChangedReason;
  unsigned int rxAudioBytes;
  int e2eDelay;
};

Properties

uid
The user ID of the remote user.
quality
Audio stream quality. See QUALITY_TYPE.
networkTransportDelay
Network transport delay from sender to receiver (ms).
jitterBufferDelay
Network delay from the audio receiver to the jitter buffer (ms).
Note: This parameter is not effective when the receiver is an audience member and audienceLatencyLevel in ClientRoleOptions is set to 1.
audioLossRate
Audio frame loss rate (%) of the remote stream during the reporting interval.
numChannels
Number of audio channels.
receivedSampleRate
Sampling rate of the received audio stream during the reporting interval.
receivedBitrate
Average bitrate (Kbps) of the received audio stream during the reporting interval.
totalFrozenTime
Total duration (ms) of audio freeze after the remote user joins the channel. Audio is considered frozen when the audio frame loss rate reaches 4%.
frozenRate
Percentage (%) of total audio freeze duration relative to the total available time of the audio. Audio is considered available if the remote user neither stops sending audio nor disables the audio module after joining the channel.
mosValue
Audio quality of the remote stream during the reporting interval, measured by Agora’s real-time audio MOS (Mean Opinion Score) algorithm. The value ranges from [0, 500], which corresponds to a MOS score from 0 to 5 when divided by 100. Higher scores indicate better audio quality. Subjective quality perception based on MOS:
  • > 4: Excellent audio quality, clear and smooth.
  • 3.5–4: Good audio quality, occasional artifacts but still clear.
  • 3–3.5: Fair audio quality, occasional stutters, requires attention to understand.
  • 2.5–3: Poor audio quality, frequent stutters, hard to follow.
  • 2–2.5: Very poor audio quality, occasional noise, some semantic loss, hard to communicate.
  • < 2: Extremely poor audio quality, frequent noise, significant semantic loss, communication impossible.
frozenRateByCustomPlcCount
A freeze is considered to occur when packet loss concealment (PLC) happens N times consecutively; freeze count = (n_plc - n) / m.
plcCount
Number of times audio packet loss concealment (PLC) occurred.
totalActiveTime
Total active time (ms) from the start of the call until the remote user callback. Active time refers to the total time the remote user is not muted.
publishDuration
Total duration (ms) of the remote audio stream.
qoeQuality
Quality of experience (QoE) when the local user receives the remote audio stream. See EXPERIENCE_QUALITY_TYPE.
qualityChangedReason
Reason for poor QoE when the local user receives the remote audio stream. See EXPERIENCE_POOR_REASON.
rxAudioBytes
Total number of received audio bytes (bytes), including FEC bytes, represented as an aggregate value.
e2eDelay
End-to-end audio delay (ms), from the time the remote user captures the audio to when the local user plays it.