VoIP Infrastructure Guide

SIP OPTIONS Ping — Trunk Health Monitoring

7 min read  ·  Updated April 2026

SIP OPTIONS is the ping of VoIP. Sending OPTIONS to a SIP endpoint and waiting for 200 OK is the standard way to check if a trunk or endpoint is alive. Every production SIP deployment should use OPTIONS-based health monitoring.

In this guide

1. What SIP OPTIONS does

The SIP OPTIONS method, defined in RFC 3261, queries a SIP server or endpoint about its capabilities. The response includes the methods and features the server supports. But in practice, OPTIONS is used primarily as a health check and keepalive ping — a lightweight way to verify a SIP endpoint is alive without placing a real call.

; OPTIONS request OPTIONS sip:sip.provider.com SIP/2.0 Via: SIP/2.0/UDP pbx.example.com:5060;branch=z9hG4bK776 From: sip:pbx.example.com;tag=abc123 To: sip:sip.provider.com Call-ID: options-check-001 CSeq: 1 OPTIONS Max-Forwards: 70 Content-Length: 0 ; Expected response SIP/2.0 200 OK Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, REFER, SUBSCRIBE, NOTIFY Accept: application/sdp Supported: replaces, timer

2. Trunk health monitoring with OPTIONS

Most SIP PBX platforms and SBCs send periodic OPTIONS requests to SIP trunks to monitor their health. If the trunk stops responding, the system marks it as unavailable and can fail over to a backup trunk automatically.

Carriers also send OPTIONS pings to your SBC or PBX to verify it is reachable before routing calls. Microsoft Teams Direct Routing, Zoom BYOC, and most SIP trunk providers require your SBC to respond to OPTIONS.

ResponseMeaningAction
200 OKEndpoint alive and readyMark trunk as healthy
486/480/403Alive but cannot accept calls nowTrunk reachable, call may still fail
503Temporarily unavailableBack off and retry
No response / timeoutEndpoint unreachableMark trunk as down, failover

3. OPTIONS as NAT keepalive

Behind NAT, UDP port mappings expire if no traffic flows through them. After 30-60 seconds of silence, the NAT device closes the mapping and incoming SIP traffic can no longer reach the endpoint.

OPTIONS requests serve as keepalives — they maintain the NAT UDP binding open by sending periodic traffic. Without keepalives, registrations expire from the NAT side even if the SIP registration is still valid on the server.

; Typical keepalive intervals ; Too frequent: wastes bandwidth, can trigger rate limiting ; Too infrequent: NAT binding expires ; For most home/office NAT: 30 second interval ; For corporate/carrier-grade NAT: 15-20 second interval ; For session keepalive (prevent call drops): every 15-30 seconds

4. Configuring OPTIONS in Asterisk

PJSIP qualify (OPTIONS ping)

; pjsip.conf AOR - enable qualify for endpoint [my-endpoint] type=aor qualify_frequency=30 ; Send OPTIONS every 30 seconds qualify_timeout=3.0 ; Mark unreachable after 3s no response qualify_on_only_reachable=no ; Check qualify status asterisk -r pjsip show contacts ; Look for: Avail Nanos column - shows RTT of last OPTIONS ; "Unknown" means no response received ; Show endpoint qualify status pjsip show endpoint my-endpoint

chan_sip qualify

; sip.conf peer [mypeer] qualify=yes ; Enable OPTIONS keepalive/health check qualifyfreq=60 ; Send OPTIONS every 60 seconds ; Check peer status sip show peers ; UNREACHABLE = OPTIONS timeout ; OK (xx ms) = OPTIONS responded with RTT

5. OPTIONS monitoring in Kamailio

; Kamailio options_ping module loadmodule "options.so" ; Handle OPTIONS requests - respond 200 OK request_route { if (is_method("OPTIONS") && uri==myself) { options_reply(); exit; } } ; Use dispatcher module for trunk health monitoring ; dispatcher.list file: each entry gets OPTIONS health check loadmodule "dispatcher.so" modparam("dispatcher", "ds_ping_method", "OPTIONS") modparam("dispatcher", "ds_ping_interval", 30) modparam("dispatcher", "ds_probing_threshold", 3) modparam("dispatcher", "ds_inactive_threshold", 3)

6. Interpreting OPTIONS responses

No response to OPTIONS: The endpoint is unreachable — firewall blocking, server down, or NAT binding expired. If your SBC stops responding to OPTIONS from a carrier, the carrier will mark you as unavailable and stop sending calls.

200 OK but calls still fail: The endpoint is reachable but something is wrong with call handling — codec issues, authentication failures, or dialplan errors. OPTIONS only checks reachability, not call capability.

High OPTIONS response time: Latency between endpoints. OPTIONS RTT is a good proxy for SIP signaling latency. If OPTIONS RTT exceeds 500ms, call setup will feel slow.

; Manual OPTIONS test with sipsak sipsak -s sip:sip.provider.com -v ; Manual test with sngrep (capture and display OPTIONS exchange) sngrep -I /tmp/trace.pcap ; Test from specific source port sipsak -s sip:sip.provider.com -p 5060 -v

Frequently asked questions

What is a SIP OPTIONS ping?

A SIP OPTIONS ping is a lightweight health check that sends an OPTIONS request to a SIP endpoint and waits for a 200 OK response. It is used to monitor SIP trunk availability, maintain NAT keepalives, and verify SBC reachability. Most SIP platforms (Asterisk qualify, Kamailio dispatcher ping) use OPTIONS-based health monitoring. Carriers like Microsoft Teams require SBCs to respond to OPTIONS pings.

How do I configure SIP OPTIONS keepalive in Asterisk?

In Asterisk PJSIP, set qualify_frequency=30 and qualify_timeout=3.0 in the AOR section of pjsip.conf. This sends OPTIONS every 30 seconds and marks the endpoint unreachable if no response in 3 seconds. Check status with pjsip show contacts. In chan_sip, set qualify=yes and qualifyfreq=60 in the peer definition, then check status with sip show peers.

Why is my SBC not responding to OPTIONS pings?

SBC not responding to OPTIONS is usually caused by: firewall blocking UDP 5060 inbound from the carrier IP range, the SBC not configured to handle OPTIONS on the listening interface, or the SBC returning 403 because the source IP is not in the allowlist. Check that your SBC responds to OPTIONS from all carrier IP ranges and that your firewall allows bidirectional UDP 5060.

Want to test SIP trunk health from your traces?

Paste your SIP trace into SIPSymposium. The analyzer identifies OPTIONS ping failures, measures response times, and flags trunks that are not responding to health checks.

Analyze my trace Create free account
Related guides