Metrics Reference
Complete reference for CallMeter's 90+ real-time VoIP quality metrics. Understand every measurement across quality, network, feedback, jitter buffer, audio, video, call timing, and impairment categories.
Metrics Reference
CallMeter collects 90+ real-time measurements per endpoint per second during every test and probe execution. These metrics give you complete visibility into what is happening on the wire, from high-level quality scores like MOS down to individual packet timing measurements.
This reference documents every metric: what it measures, why it matters, and how to interpret it.
Metric Categories
CallMeter organizes metrics into eight categories, each covering a different layer of the VoIP stack.
Quality
The headline metrics that summarize call quality into actionable numbers. Start here when evaluating test results.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| MOS Score | mos | 1-5 | Overall voice quality rating |
| R-Factor | r_factor | 0-100 | Transmission quality rating |
| Jitter | jitter_ms | ms | Packet arrival time variation |
| Round Trip Time | rtt_ms | ms | Network latency |
| Packets Lost | packets_lost | packets | Absolute packet loss count |
| Packet Loss Rate | fraction_lost | % | Percentage of packets lost |
| Clock Drift | clock_drift_estimate | ppm | Hardware clock accuracy |
| Clock Skew | clock_skew_estimate | ppm | Sender-receiver clock difference |
| Timestamp Jumps | timestamp_jumps | jumps | RTP timestamp discontinuities |
Network
Transport-level measurements that show what is happening at the packet level. Use these to diagnose the root cause when quality metrics show degradation.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| Packets Sent | packets_sent | packets | Total packets transmitted |
| Packets Received | packets_received | packets | Total packets received |
| Bytes Sent | bytes_sent | bytes | Total data transmitted |
| Bytes Received | bytes_received | bytes | Total data received |
| Packets Sent Rate | packets_sent_rate_ps | pps | Transmission rate |
| Packets Received Rate | packets_recv_rate_ps | pps | Reception rate |
| Send Bitrate | bytes_sent_rate_bps | bps | Outbound bandwidth |
| Receive Bitrate | bytes_recv_rate_bps | bps | Inbound bandwidth |
| Duplicate Packets | duplicate_packets | packets | Packets received more than once |
| Out-of-Order Packets | out_of_order_packets | packets | Packets arriving in wrong order |
| Sequence Resets | sequence_number_resets | resets | Sequence counter restarts |
| Sequence Gaps | sequence_number_gaps | packets | Burst loss event sizes |
| Sequence Jumps | sequence_number_jumps | jumps | Large sequence discontinuities |
| Max Packet Spacing | max_packet_spacing | ms | Largest gap between packets |
| Avg Packet Spacing | avg_packet_spacing | ms | Average gap between packets |
| Expected Packets | expected_packets | packets | Expected count from sequence numbers |
| RTP Late Packets | late_packets | packets | Packets late at network level |
| SSRC Switches | ssrc_switches | count | RTP stream identifier changes |
| SRTP Decryption Failures | srtp_decrypt_failures | count | Encryption decryption errors |
| Local ICE Candidate | local_candidate_type | — | ICE candidate type used locally (host/srflx/prflx/relay) |
| Remote ICE Candidate | remote_candidate_type | — | ICE candidate type used remotely (host/srflx/prflx/relay) |
Feedback
RTCP feedback messages exchanged between endpoints. These metrics are critical for understanding how endpoints react to quality problems.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| NACK Messages | nack_count | count | Negative acknowledgement requests |
| PLI Messages | pli_count | count | Picture Loss Indication messages |
| FIR Messages | fir_count | count | Full Intra Request messages |
| SLI Messages | sli_count | count | Slice Loss Indication messages |
| SIP INFO PFU | sip_info_pfu | requests | SIP INFO Picture Fast Update requests (RFC 5168) - non-RTCP keyframe request signaling |
| RTCP Interval | rtcp_sr_rr_interval_ms | ms | RTCP report cadence health |
Jitter Buffer
Receiver-side buffering metrics that reveal how well the receiver is coping with network jitter.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| Current Delay | jitter_buffer_delay | ms | Current jitter buffer delay (ms) - gauge metric from GStreamer rtpjitterbuffer |
| Target Delay | jitter_buffer_target | ms | Target jitter buffer delay (ms) - configuration reference from GStreamer |
| Late Packets | jitter_buffer_late | packets | Packets arriving too late for playout |
| Average Jitter | jitter_buffer_avg_jitter | ms | Buffer-observed jitter |
| Packet Losses | jitter_buffer_losses | packets | Packets lost at buffer level |
| Duplicates | jitter_buffer_duplicates | packets | Duplicate packets at buffer |
| Packets Pushed | jitter_buffer_pushed | packets | Packets delivered for playout |
| RTX Requests | jitter_buffer_rtx_requests | count | Retransmission requests sent |
| RTX Success | jitter_buffer_rtx_success | count | Successful retransmissions |
Audio
Codec-specific audio measurements including audio levels, silence detection, comfort noise, DTMF event tracking, audio bitrate, and packetization interval.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| PLC Events | plc_events | count | Packet loss concealment events |
| PLC Duration | plc_duration | ms/s | Total PLC duration from Opus decoder - opusdec plc-duration property (cumulative, Opus codec only) |
| Audio Signal Level | audio_signal_level_rms_dbov | dBov | VAD-gated speech level |
| Audio Noise Level | audio_noise_level_rms_dbov | dBov | Background noise level |
| Speech Activity (VAD) | vad_speech_ratio | % | Voice Activity Detection ratio showing DTX/VAD behavior and bandwidth savings |
| Comfort Noise Rate | comfort_noise_inserts | inserts/s | Comfort noise insertion rate providing concealment visibility |
| Opus Bandwidth | opus_bandwidth_khz | kHz | Opus decoder bandwidth in kHz (narrowband=4, mediumband=6, wideband=8, super-wideband=12, fullband=20) - indicates audio quality tier and frequency range of the encoded content |
| Opus Decoder Gain | opus_decoder_gain_db | dB | Opus decoder gain adjustment in dB - indicates output level normalization applied by decoder. Measured from opusdec in both send and receive paths. |
| Opus Packet Loss % | opus_packet_loss_pct | % | Codec-level loss percentage |
| Opus Last Packet Duration | opus_last_packet_duration_ms | ms | Opus frame duration |
| Audio Level RMS | audio_level_rms_dbov | dBov | Overall audio level |
Video
Encoding and playback metrics including frame rate, resolution changes, keyframe intervals, freeze events, decoder errors, and discarded frames.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| Keyframe Requests Sent | keyframe_requests_sent | count | PLI/FIR requests sent |
| Keyframe Requests Received | keyframe_requests_received | count | PLI/FIR requests received |
| Keyframes Sent | keyframes_sent | count | Keyframes transmitted |
| Keyframes Received | keyframes_received | count | Keyframes received |
| Video Bitrate | video_bitrate_bps | bps | Video codec bitrate |
| Video FPS | video_fps | fps | Frame rate |
| Resolution | resolution | MPx | Video resolution displayed as width×height (e.g., 640×480, 1920×1080) - shows adaptive bitrate changes |
| Keyframe Interval | keyframe_interval_ms | ms | Time between keyframes |
| Video Freeze Events | video_freeze_count | count | Number of video freezes |
| Video Freeze Duration | video_freeze_duration_ms | ms | Total freeze time |
| Video Decoder Errors | video_decoder_errors | count | Frame decode failures |
Call Timing
SIP signaling timing measurements captured once per call. Unlike the categories above, these are one-shot values rather than time-series data.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| Time to Trying | time_to_trying_ms | ms | INVITE to 100 Trying |
| Time to Ringing | time_to_ringing_ms | ms | INVITE to 180 Ringing |
| Post-Dial Delay | pdd_ms | ms | Post-Dial Delay — time from INVITE to first ringback or media |
| Call Setup Time | call_setup_ms | ms | Total time from INVITE to 200 OK (call connected) |
| Time to First Media | time_to_first_media_ms | ms | INVITE to first RTP packet |
| Call Duration | call_duration_ms | ms | Total call time |
| Final Status Code | final_status_code | code | SIP response code |
| Call Result | call_result | string | Outcome category |
Impairment
Counters emitted by CallMeter's built-in network impairment simulator. They report what the platform deliberately did to the stream, so a degraded result can be attributed to the injected condition rather than to the network under test.
| Metric | Key | Unit | What It Tells You |
|---|---|---|---|
| Impairment: Dropped | impairment_packets_dropped | packets | Packets dropped by impairment engine (random + burst loss) |
| Impairment: Delayed | impairment_packets_delayed | packets | Packets delayed by impairment engine (latency + jitter) |
| Impairment: Reordered | impairment_packets_reordered | packets | Packets reordered by impairment engine |
| Impairment: Duplicated | impairment_packets_duplicated | packets | Packets duplicated by impairment engine |
| Impairment: Throttled | impairment_packets_throttled | packets | Packets dropped by bandwidth limiter (token bucket) |
| Impairment: Avg Delay | impairment_avg_delay_ms | ms | Average delay added by impairment engine (ms) |
Time-Series vs One-Shot Metrics
Most CallMeter metrics are time-series measurements. The platform samples them every second throughout the call and records each data point with a timestamp. This produces a continuous timeline that you can chart, zoom into, and correlate across endpoints.
One-shot metrics are captured once per call and represent a single event or duration. Call timing metrics like post-dial delay and setup time fall into this category. They appear as single values in the results summary rather than as charts.
Send vs Receive Direction
Every metric has a direction: send or receive.
- Send metrics describe what the endpoint is transmitting. For example,
packets_sentcounts outbound RTP packets, andbytes_sent_rate_bpsmeasures outbound bitrate. - Receive metrics describe what the endpoint is receiving from the remote side. For example,
jitter_mson the receive side measures how much the incoming packet arrival times vary.
Some metrics are meaningful in both directions. Packet counts, byte counts, and bitrates exist for both send and receive. Quality scores like MOS and R-Factor are computed per direction based on the conditions observed in that direction.
Filtering by Direction
In the CallMeter dashboard, use the direction filter on any endpoint detail view to isolate send or receive metrics. This is essential when diagnosing asymmetric quality issues where one direction is degraded but the other is fine.
Using This Reference
Each metric page in this reference follows a consistent structure:
- What it measures — Plain-language explanation followed by technical detail
- Why it matters — Business and operational impact
- How CallMeter measures it — Measurement methodology
- Thresholds — Good, warning, and critical ranges (where applicable)
- Common causes of problems — What drives this metric out of range
- How to fix it — Actionable remediation steps
- Related metrics — Cross-references to metrics that provide additional context
Start with the Quality metrics for the high-level picture, then drill into Network metrics when you need to understand the underlying transport behavior.
Product Roadmap
See what CallMeter offers today and what is coming next. SIP stress testing, continuous monitoring, 90+ real-time metrics, and much more.
MOS Score — VoIP Quality Metric
Mean Opinion Score — the headline VoIP quality metric that rates call quality on a 1 to 5 scale using the ITU-T E-model.