SIP Fundamentals
SIP Response Codes (1xx-6xx)
SIP response codes are 3-digit status codes patterned after HTTP. The first digit indicates the class: 1xx provisional, 2xx success, 3xx redirection, 4xx client error, 5xx server error, 6xx global failure.
Cheat-sheet of the codes you will actually see
| Code | Meaning | What to do |
|---|---|---|
| 100 Trying | Provisional — request received | Wait for next response |
| 180 Ringing | Callee is being alerted | Show ringback to caller |
| 183 Session Progress | Early media (audio before answer) | Connect early media |
| 200 OK | Success — call answered | Send ACK, start RTP |
| 301 Moved Permanently | Use new SIP URI | Redirect |
| 302 Moved Temporarily | Use new URI for this call only | Redirect |
| 400 Bad Request | Malformed SIP message | Fix request format |
| 401 Unauthorized | Auth required | Re-send with Authorization header |
| 403 Forbidden | Authenticated but not authorized | Check permissions / ACL |
| 404 Not Found | Number / URI does not exist | Check destination |
| 407 Proxy Auth Required | Proxy needs auth | Re-send with Proxy-Authorization |
| 408 Request Timeout | No response from upstream | Retry / failover |
| 480 Temporarily Unavailable | Callee not reachable | Try voicemail / next route |
| 486 Busy Here | Callee is busy | Try forwarding |
| 487 Request Terminated | Caller hung up before answer | Normal cancellation |
| 488 Not Acceptable Here | Codec / SDP mismatch | Renegotiate codec |
| 500 Server Internal Error | Carrier internal failure | Retry / report |
| 503 Service Unavailable | Upstream overloaded | Failover to secondary |
| 504 Gateway Timeout | Upstream did not respond | Failover |
| 603 Decline | Callee declined | End |
Mapping to PSTN cause codes
SIP response codes map to ISDN Q.850 cause codes via RFC 3398. Q.850 17 (User busy) ↔ SIP 486; Q.850 16 (Normal clearing) ↔ SIP BYE with no special code; Q.850 21 (Call rejected) ↔ SIP 603. Carriers often add a Reason: Q.850;cause=21 header so you can see the underlying PSTN reason.
Related terms
Ready to get a number?
Pick a DID in 130+ countries from $1.99/month. Activates instantly on most numbers.