The SIP Response Codes Reference is a searchable lookup for the response
codes carried by the Session Initiation Protocol, the signalling layer behind
VoIP calls, video conferencing and messaging. From 100 Trying to
486 Busy Here to 604 Does Not Exist Anywhere, this tool decodes every code
with its reason phrase, class and the call-flow context you need when reading a
SIP trace.
How it works
SIP, defined in RFC 3261, deliberately mirrors HTTP’s status-code model with six classes keyed off the first digit:
1xx Provisional — request received, still processing (180 Ringing)
2xx Success — request succeeded (200 OK answers the call)
3xx Redirection — try a new location (302 Moved Temporarily)
4xx Client error — request failed at THIS server (486 Busy Here)
5xx Server error — this server failed (503 Service Unavailable)
6xx Global — failure for the WHOLE call (600 Busy Everywhere)
The crucial SIP-specific distinction is between 4xx and 6xx. When a proxy
forks an INVITE to several registered devices, a 4xx rejects only that one
branch, so other devices may still answer. A 6xx is authoritative for the
entire call — it tells the proxy to abandon every branch. This tool keeps the
full table in your browser and filters it by number, reason or keyword.
Reading a real call trace — common sequences
Successful outbound call:
100 Trying → 180 Ringing → 200 OK → ACK → (media flows) → BYE → 200 OK
The 100 Trying is sent by the first proxy to acknowledge the INVITE before it forwards it. 180 Ringing reaches the caller once the destination endpoint is alerting the user. 200 OK in response to the INVITE means the callee answered. The ACK is sent by the caller to complete the three-way handshake.
Caller hung up while ringing:
100 Trying → 180 Ringing → CANCEL → 487 Request Terminated → 200 OK (for CANCEL)
487 Request Terminated is a normal part of call cancellation, not an error to investigate. Look for the preceding CANCEL to confirm.
Callee rejected the call:
100 Trying → 180 Ringing → 603 Decline
603 is a global 6xx failure — the callee explicitly declined at all registered devices.
The codes you will encounter most often
| Code | Reason | Action |
|---|---|---|
| 180 | Ringing | Normal — wait |
| 200 | OK | Call answered |
| 302 | Moved Temporarily | Follow Contact header |
| 407 | Proxy Auth Required | Normal challenge — send credentials |
| 408 | Request Timeout | No response from callee; retry or escalate |
| 480 | Temporarily Unavailable | User offline or in DND; retry later |
| 486 | Busy Here | This device busy; fork may try others |
| 487 | Request Terminated | CANCEL was sent; not a fault |
| 488 | Not Acceptable Here | Codec mismatch; check SDP |
| 503 | Service Unavailable | Server overloaded; retry with backoff |
| 600 | Busy Everywhere | User busy at all devices; stop forking |
| 603 | Decline | Call rejected globally |
For codec or SDP negotiation failures, 488 and 415 Unsupported Media Type both point at the offer/answer exchange — compare the m= lines in the SDP to find the mismatch. For authentication, 407 Proxy Authentication Required is a normal challenge-response step and is not an error as long as it is followed by a successful re-INVITE with credentials.