Troubleshooting · Reference
SIP Response Codes: The Plain-English Library
When a VoIP call fails, the network usually says why — in a three-digit code modeled on HTTP's. SIP response codes are the most underused diagnostic gift in telephony: a single number narrows a failure from 'the phones are broken' to a specific element with a specific complaint. Every guide in this library follows the same format: what the code means, who generates it, what it rules in and out, and the fixes in professional order.
Codes arrive in classes. The first digit tells you the family before you read anything else — learn the families and you can triage codes you have never seen.
The six classes
| Class | Meaning | Examples | Diagnostic value |
|---|---|---|---|
| 1xx Provisional | Request received, processing continues | 100 Trying, 180 Ringing, 183 Session Progress | Setup is alive; a call that stalls here has a later-stage problem |
| 2xx Success | The request worked | 200 OK | For REGISTER and INVITE, this is health itself |
| 3xx Redirection | The target moved; try this address instead | 301/302, 305 | Mostly a PBX/trunk routing concern |
| 4xx Client error | The request was refused as invalid here | 401, 403, 404, 408, 480, 486, 488 | The richest diagnostic family: the far side understood and refused for a stated reason |
| 5xx Server error | The server failed to fulfill a valid request | 500, 503 | Their house, their fire: capacity, crashes, dead routes |
| 6xx Global failure | The request cannot succeed anywhere | 600, 603, 606 | A definitive no — user declined everywhere or policy forbids globally |
The codes this library covers in depth
Eleven codes account for the overwhelming majority of real-world failures. Each has a dedicated guide — linked from the response-code section of the troubleshooting hub and from each other: 401 & 407 (authentication), 403 Forbidden, 404 Not Found, 408 Request Timeout, 480 Temporarily Unavailable, 486 Busy Here, 488 Not Acceptable Here, 500 Server Internal Error, 503 Service Unavailable, and 603 Decline.
- Where to find the code: in a packet capture, the response line after your INVITE or REGISTER (e.g., 'SIP/2.0 486 Busy Here'); in a PBX/provider portal, in the call detail or trace view; on many phones, in call history details.
- Reason phrases vary: the text after the number is vendor-flavored ('SIP/2.0 503 Service Unavailable' vs '503 No route found'). Trust the number; treat the phrase as a hint.
- Final vs provisional matters: a failed call shows the final response that ended the attempt. Earlier 1xx codes in the same call are progress, not the verdict.
Using a code in five minutes
- Capture or look up the failed call and find the final response code on the INVITE/REGISTER.
- Identify the sender of the response (your PBX, your provider's SBC, the far carrier) — the same code means different owners from different senders.
- Open the code's guide in this library and work its fix order; note what the code rules out before changing settings it clears.
- If the fix belongs to the provider, open the ticket with the code, the sender, a Call-ID and two example timestamps — tickets with codes route to engineers; tickets without them route to scripts.
- Retest the identical call and confirm a 2xx outcome (or a different, further-along code — progress in codes is progress in diagnosis).
Frequently asked questions
- Are SIP codes the same as HTTP status codes?
- They are modeled on HTTP and share some numbers and meanings (404, 500, 503), but SIP has its own set defined in RFC 3261 and extensions — and SIP-specific behaviors (provisional 1xx responses, digest challenges) that HTTP codes don't capture. Never diagnose a SIP failure from HTTP intuition alone.
- My phone just says 'call failed'. How do I get the code?
- Three routes: the phone's call-detail/history screen (many show it), your PBX or provider portal's call trace (the richest source), or a packet capture filtered to the call. The portal trace is usually fastest.
- One call shows several codes. Which is 'the' error?
- The final response that terminated the attempt is the verdict; earlier codes are the story of the attempt (a 404 from one route, then a retry, then a 503). Read the ladder top to bottom when a call crosses multiple systems.