CallMeter Docs

Threshold Configuration

Set warning and critical thresholds for probe metrics to control when health status changes and alerts fire.

Thresholds define the quality boundaries that determine a probe's health status. After each probe execution, every configured metric is compared against its thresholds. If any metric breaches a threshold, the probe's health status changes and configured webhooks fire. This guide covers how thresholds work, which metrics support them, and best practices for setting values.

How Thresholds Work

Each metric has two threshold levels:

LevelMeaning
WarningThe metric has deviated from acceptable quality. Quality may be noticeable to users but calls are still usable. The probe transitions to DEGRADED
CriticalThe metric has reached unacceptable quality. Calls are significantly impaired or unusable. The probe transitions to UNHEALTHY

After each probe execution, the platform evaluates every metric against its thresholds:

  1. Retrieve the latest metric values from the completed probe call
  2. Compare each metric against its warning and critical thresholds
  3. Determine the individual result for each metric (Healthy, Degraded, or Unhealthy)
  4. The worst result across all metrics determines the overall probe health status

This means a single metric breaching its critical threshold makes the entire probe UNHEALTHY, even if all other metrics are within normal range.

Understanding Metric Direction

Metrics fall into two categories based on whether higher or lower values indicate better quality:

Higher Is Better (Inverted Metrics)

For these metrics, quality decreases as the value goes down:

MetricHealthyWarning Triggers BelowCritical Triggers Below
MOSAbove warning thresholdConfigured warning valueConfigured critical value

Example: MOS warning = 3.5, MOS critical = 2.5

  • MOS 4.1 = HEALTHY (above 3.5)
  • MOS 3.2 = DEGRADED (below 3.5, above 2.5)
  • MOS 2.1 = UNHEALTHY (below 2.5)

Lower Is Better (Standard Metrics)

For these metrics, quality decreases as the value goes up:

MetricHealthyWarning Triggers AboveCritical Triggers Above
JitterBelow warning thresholdConfigured warning valueConfigured critical value
Packet LossBelow warning thresholdConfigured warning valueConfigured critical value
RTTBelow warning thresholdConfigured warning valueConfigured critical value
Setup TimeBelow warning thresholdConfigured warning valueConfigured critical value

Example: Jitter warning = 40ms, Jitter critical = 50ms

  • Jitter 25ms = HEALTHY (below 40ms)
  • Jitter 45ms = DEGRADED (above 40ms, below 50ms)
  • Jitter 55ms = UNHEALTHY (above 50ms)

Automatic direction handling

You do not need to configure the direction logic. CallMeter automatically applies the correct comparison direction based on each metric. You only need to set the numeric threshold values.

Configurable Metrics and Defaults

The following metrics support threshold configuration:

MetricUnitDefault WarningDefault CriticalDirection
MOSScore (1.0-5.0)Below 3.5Below 2.5Higher is better
JitterMillisecondsAbove 40msAbove 50msLower is better
Packet LossPercentageAbove 3%Above 5%Lower is better
RTTMillisecondsAbove 200msAbove 400msLower is better
Setup TimeMillisecondsAbove 3000msAbove 5000msLower is better
Ring TimeMillisecondsAbove 5000msAbove 8000msLower is better
Connect TimeMillisecondsAbove 8000msAbove 12000msLower is better

The default values provide a reasonable starting point based on industry standards and ITU-T recommendations. You should tune them based on your specific quality requirements.

Adjusting Thresholds

  1. Open your probe's detail page
  2. Navigate to the Settings tab
  3. Locate the Thresholds section
  4. Modify warning and critical values for each metric
  5. Click Save

Forward-looking changes

Threshold changes apply to the next probe execution and all future executions. Historical health evaluations are not recalculated with the new thresholds. Past health status entries reflect the thresholds that were active at the time.

Health Status Determination

The overall probe health status follows this logic after each execution:

For each metric with a configured threshold:
  1. Retrieve the measured value from the probe call
  2. Compare against warning and critical thresholds
  3. Assign individual metric status:
     - Within acceptable range --> HEALTHY
     - Exceeds warning but not critical --> DEGRADED
     - Exceeds critical --> UNHEALTHY

Overall probe status = WORST individual metric status

If no data was collected: status = UNKNOWN

Examples:

MOSJitterPacket LossOverall StatusReason
4.215ms0.5%HEALTHYAll metrics within acceptable range
3.315ms0.5%DEGRADEDMOS below warning threshold (3.5)
4.255ms0.5%UNHEALTHYJitter above critical threshold (50ms)
3.345ms4%UNHEALTHYMultiple thresholds breached, worst wins
4.215ms0.5%HEALTHYEven one excellent metric does not override a bad one

Status Transitions and Webhooks

When the probe's health status changes from one state to another, configured webhooks are triggered:

TransitionSeverityCommon Cause
HEALTHY to DEGRADEDWarningQuality starting to degrade -- investigate soon
HEALTHY to UNHEALTHYCriticalMajor quality problem -- investigate immediately
DEGRADED to UNHEALTHYEscalationDegradation has worsened to critical levels
DEGRADED to HEALTHYRecoveryIssue resolved, quality returned to normal
UNHEALTHY to HEALTHYRecoveryCritical issue resolved
UNHEALTHY to DEGRADEDPartial recoverySituation improving but not yet fully resolved
Any to UNKNOWNData issueProbe execution failed or no data collected

See Webhooks for details on webhook payload format and delivery.

Consecutive Failure Counting

To avoid alerting on transient network glitches, you can configure consecutive failure counting. Instead of changing health status on a single threshold breach, the probe requires N consecutive breaches before transitioning.

Example with consecutive count of 3:

ExecutionMOSWould BeStatus After
13.2DEGRADEDHEALTHY (1 of 3 consecutive)
23.1DEGRADEDHEALTHY (2 of 3 consecutive)
33.3DEGRADEDDEGRADED (3 of 3 -- threshold met)
44.1HEALTHYDEGRADED (counter resets)
54.0HEALTHYHEALTHY (back to normal)

This prevents false alerts from single-execution anomalies while still catching persistent problems.

Best Practices for Setting Thresholds

Start with Industry Standards

The ITU-T G.107 recommendation and industry experience provide these guidelines:

MetricGoodAcceptablePoor
MOSAbove 4.03.5-4.0Below 3.5
JitterBelow 20ms20-50msAbove 50ms
Packet LossBelow 1%1-3%Above 3%
RTTBelow 100ms100-300msAbove 300ms

Tune Based on Your Environment

After running probes for a week, review the metric history:

  • If metrics consistently hover near the warning threshold, either your infrastructure needs attention or your threshold is too tight
  • If metrics never come close to warning, you can tighten thresholds for earlier detection
  • Set warning thresholds at the point where quality becomes noticeable to users
  • Set critical thresholds at the point where calls become unusable

Account for Geography

Probes running from distant regions will naturally have higher RTT. Adjust RTT thresholds accordingly:

Probe Location vs. SIP ServerRTT WarningRTT Critical
Same region100ms200ms
Same continent200ms400ms
Cross-continent300ms500ms

Example Configurations

Enterprise voice (strict quality requirements):

MetricWarningCritical
MOSBelow 4.0Below 3.5
JitterAbove 20msAbove 30ms
Packet LossAbove 1%Above 2%
RTTAbove 100msAbove 200ms

Standard SIP trunk monitoring:

MetricWarningCritical
MOSBelow 3.5Below 2.5
JitterAbove 40msAbove 50ms
Packet LossAbove 3%Above 5%
RTTAbove 200msAbove 400ms

Best-effort / development environment:

MetricWarningCritical
MOSBelow 3.0Below 2.0
JitterAbove 60msAbove 80ms
Packet LossAbove 5%Above 10%
RTTAbove 300msAbove 500ms

Next Steps

On this page