SIP response codes
Every SIP request gets a three-digit status code. The first digit is the class: 1xx provisional, 2xx success, 3xx redirection, 4xx client failure, 5xx server failure, 6xx global failure. Here is every registered code, what it means, and what it tells you when your SBC answers a SIP OPTIONS ping.
1xx Provisional
The request was received and is still being processed. A provisional response is never the final answer, and a final response always follows.
| Code | Reason phrase | Meaning | Answer to SIP OPTIONS | RFC |
|---|---|---|---|---|
| 100 | Trying | The next hop received the request and is working on it. It stops retransmissions. | Not a final answer. The check waits for the final response. | RFC 3261 |
| 180 | Ringing | The called user agent is alerting the user. | Not a final answer. The check waits for the final response. | RFC 3261 |
| 181 | Call Is Being Forwarded | A proxy is forwarding the call to another destination. | Not a final answer. The check waits for the final response. | RFC 3261 |
| 182 | Queued | The callee is temporarily unavailable and the call is queued. | Not a final answer. The check waits for the final response. | RFC 3261 |
| 183 | Session Progress | Progress information, often with early media such as ringback or an announcement. | Not a final answer. The check waits for the final response. | RFC 3261 |
| 199 | Early Dialog Terminated | An early dialog was terminated before a final response. | Not a final answer. The check waits for the final response. | RFC 6228 |
2xx Success
The request was received, understood and accepted.
| Code | Reason phrase | Meaning | Answer to SIP OPTIONS | RFC |
|---|---|---|---|---|
| 200 | OK | The request succeeded. | Up and answering. This is the healthy answer. | RFC 3261 |
| 202 | Accepted | The request was accepted for processing. Deprecated by RFC 6665. | Up and answering. | RFC 3265 |
| 204 | No Notification | The subscription succeeded, but no NOTIFY will be sent because nothing changed. | Up and answering. | RFC 5839 |
3xx Redirection
The server points the request somewhere else. The client should retry at another address.
| Code | Reason phrase | Meaning | Answer to SIP OPTIONS | RFC |
|---|---|---|---|---|
| 300 | Multiple Choices | The address resolved to several locations, listed in Contact. | Up. It answered with a redirect. | RFC 3261 |
| 301 | Moved Permanently | The user is no longer at this address. Use the address in Contact. | Up. It answered with a redirect. | RFC 3261 |
| 302 | Moved Temporarily | Retry at the address in Contact for now. Common for call forwarding. | Up. It answered with a redirect. | RFC 3261 |
| 305 | Use Proxy | The request must go through the proxy given in Contact. | Up. It answered with a redirect. | RFC 3261 |
| 380 | Alternative Service | The call failed, but alternative services are possible. | Up. It answered with a redirect. | RFC 3261 |
4xx Client failure
The request was understood but rejected by this server, for example for missing credentials, an unknown address or an unsupported method. The server is working; it is saying no to this request.
| Code | Reason phrase | Meaning | Answer to SIP OPTIONS | RFC |
|---|---|---|---|---|
| 400 | Bad Request | The request was malformed. | Up, but it could not parse our request. | RFC 3261 |
| 401 | Unauthorized | The request needs user authentication. Registrars and user agents send it. | Up. It wants credentials, which is normal for an SBC or registrar. | RFC 3261 |
| 402 | Payment Required | Reserved for future use. | Up. It rejected the request. | RFC 3261 |
| 403 | Forbidden | The server understood the request and refuses to fulfil it. Authenticating again won't help. | Up. It refused us, often because only listed IP addresses are allowed. | RFC 3261 |
| 404 | Not Found | The user does not exist in the domain in the Request-URI. | Up. It doesn't know the address we asked for. | RFC 3261 |
| 405 | Method Not Allowed | The method is known but not allowed for this address. | Up. It doesn't allow OPTIONS. | RFC 3261 |
| 406 | Not Acceptable | The resource can only produce responses the request said it can't accept. | Up. It rejected the request. | RFC 3261 |
| 407 | Proxy Authentication Required | Like 401, but the client must authenticate with the proxy. | Up. It wants proxy credentials, which is normal for an SBC. | RFC 3261 |
| 408 | Request Timeout | The server could not produce a response in time, often while waiting on a downstream hop. | Up, but timed out waiting on something behind it. | RFC 3261 |
| 410 | Gone | The user existed but is no longer available, and no forwarding address is known. | Up. It rejected the request. | RFC 3261 |
| 412 | Conditional Request Failed | The precondition of a PUBLISH did not hold, for example an unknown entity tag. | Up. It rejected the request. | RFC 3903 |
| 413 | Request Entity Too Large | The request body is larger than the server will process. | Up. It rejected the request. | RFC 3261 |
| 414 | Request-URI Too Long | The Request-URI is longer than the server will interpret. | Up. It rejected the request. | RFC 3261 |
| 415 | Unsupported Media Type | The body format or encoding is not supported, for example an SDP the server can't handle. | Up. It rejected the request. | RFC 3261 |
| 416 | Unsupported URI Scheme | The Request-URI scheme is unknown to the server. | Up. It rejected the request. | RFC 3261 |
| 417 | Unknown Resource-Priority | The Resource-Priority header named an unknown namespace or value. | Up. It rejected the request. | RFC 4412 |
| 420 | Bad Extension | The request required an extension (in Proxy-Require or Require) that the server does not support. | Up. It rejected the request. | RFC 3261 |
| 421 | Extension Required | The server needs an extension that the request did not list in Supported. | Up. It rejected the request. | RFC 3261 |
| 422 | Session Interval Too Small | The session timer interval in the request is below the server's minimum. | Up. It rejected the request. | RFC 4028 |
| 423 | Interval Too Brief | The expiration time of the registration or subscription is too short. | Up. It rejected the request. | RFC 3261 |
| 424 | Bad Location Information | The location information in the request was malformed or unsatisfactory. | Up. It rejected the request. | RFC 6442 |
| 425 | Bad Alert Message | The Alert-Info or alert message in the request was not acceptable. | Up. It rejected the request. | RFC 8876 |
| 428 | Use Identity Header | The server requires an Identity header (STIR) and the request had none. | Up. It rejected the request. | RFC 8224 |
| 429 | Provide Referrer Identity | The REFER target requires a valid Referred-By token. | Up. It rejected the request. | RFC 3892 |
| 430 | Flow Failed | The outbound flow to the user agent has failed. Sent between proxies. | Up. It rejected the request. | RFC 5626 |
| 433 | Anonymity Disallowed | The server refuses anonymous requests. | Up. It rejected the request. | RFC 5079 |
| 436 | Bad Identity Info | The Identity header's info URI could not be dereferenced or used. | Up. It rejected the request. | RFC 8224 |
| 437 | Unsupported Credential | The credential used to sign the Identity header is not supported or not trusted. | Up. It rejected the request. | RFC 8224 |
| 438 | Invalid Identity Header | The Identity header signature did not validate. | Up. It rejected the request. | RFC 8224 |
| 439 | First Hop Lacks Outbound Support | The first-hop proxy does not support SIP Outbound. | Up. It rejected the request. | RFC 5626 |
| 440 | Max-Breadth Exceeded | Forking would exceed the Max-Breadth limit. | Up. It rejected the request. | RFC 5393 |
| 469 | Bad Info Package | The INFO package is not one the receiver supports. | Up. It rejected the request. | RFC 6086 |
| 470 | Consent Needed | The recipient has not consented to receive the request. | Up. It rejected the request. | RFC 5360 |
| 480 | Temporarily Unavailable | The callee is known but not reachable right now, for example not registered or busy with do-not-disturb. | Up. It doesn't have the address we asked for available. | RFC 3261 |
| 481 | Call/Transaction Does Not Exist | The request matches no existing dialog or transaction. | Up. It rejected the request. | RFC 3261 |
| 482 | Loop Detected | The request came back to a server it already passed through. | Up, but our request looped between its proxies. | RFC 3261 |
| 483 | Too Many Hops | Max-Forwards reached zero before the request reached its target. | Up, but our request passed through too many proxies. | RFC 3261 |
| 484 | Address Incomplete | The Request-URI is incomplete, for example a partially dialled number. | Up. It doesn't recognise the address we asked for. | RFC 3261 |
| 485 | Ambiguous | The Request-URI matched several users. | Up. It rejected the request. | RFC 3261 |
| 486 | Busy Here | The callee is reachable but busy at this location. | Up. It rejected the request. | RFC 3261 |
| 487 | Request Terminated | The request was cancelled by a CANCEL or BYE before it completed. | Up. It rejected the request. | RFC 3261 |
| 488 | Not Acceptable Here | Some part of the session description, often the codec list, is not acceptable at this endpoint. | Up. It rejected the request. | RFC 3261 |
| 489 | Bad Event | The event package in SUBSCRIBE or NOTIFY is not understood. | Up. It rejected the request. | RFC 6665 |
| 491 | Request Pending | Another request is already pending in this dialog, for example a re-INVITE glare. | Up. It rejected the request. | RFC 3261 |
| 493 | Undecipherable | The request has an encrypted body the server can't decrypt. | Up. It rejected the request. | RFC 3261 |
| 494 | Security Agreement Required | The server requires a security mechanism agreement before it will proceed. | Up. It rejected the request. | RFC 3329 |
5xx Server failure
The request may be valid, but the server failed to fulfil it: overloaded, in maintenance, misconfigured or unable to reach the next hop.
| Code | Reason phrase | Meaning | Answer to SIP OPTIONS | RFC |
|---|---|---|---|---|
| 500 | Server Internal Error | The server hit an unexpected condition. | Answering, but it hit an internal error. | RFC 3261 |
| 501 | Not Implemented | The server does not support the method at all. | Up. It doesn't implement OPTIONS. | RFC 3261 |
| 502 | Bad Gateway | A gateway or proxy got an invalid response from the next hop. | Answering, but the server behind it sent a bad response. | RFC 3261 |
| 503 | Service Unavailable | The server is overloaded, in maintenance or has no route onward. Retry-After may say when to come back. | Answering, but overloaded, in maintenance or without a usable upstream. This is the most common "SBC up, trunk down" answer. | RFC 3261 |
| 504 | Server Time-out | A gateway or proxy timed out waiting for the next hop. | Answering, but the server behind it didn't reply in time. | RFC 3261 |
| 505 | Version Not Supported | The SIP protocol version is not supported. | Answering, but it reports a server-side problem. | RFC 3261 |
| 513 | Message Too Large | The message is longer than the server can process. | Answering, but it reports a server-side problem. | RFC 3261 |
| 555 | Push Notification Service Not Supported | The push notification service named in the request is not supported. | Answering, but it reports a server-side problem. | RFC 8599 |
| 580 | Precondition Failure | The session preconditions (QoS, security) cannot be met. | Answering, but it reports a server-side problem. | RFC 3312 |
6xx Global failure
The server has definitive information that the request will fail everywhere, not only at this server.
| Code | Reason phrase | Meaning | Answer to SIP OPTIONS | RFC |
|---|---|---|---|---|
| 600 | Busy Everywhere | The callee is busy at every location. | Answering, with a global refusal. | RFC 3261 |
| 603 | Decline | The callee does not want to take the call, here or anywhere. | Answering. It declined us. | RFC 3261 |
| 604 | Does Not Exist Anywhere | The user does not exist anywhere. | Answering, with a global refusal. | RFC 3261 |
| 606 | Not Acceptable | The session description is not acceptable anywhere. | Answering, with a global refusal. | RFC 3261 |
| 607 | Unwanted | The callee marked the call as unwanted, for example spam. | Answering, with a global refusal. | RFC 8197 |
| 608 | Rejected | An intermediary such as an analytics engine rejected the call. | Answering, with a global refusal. | RFC 8688 |
No response to SIP OPTIONS
No response is not a SIP code. It means nothing came back. PingVo waits 2 seconds. The usual causes are a firewall or security group dropping traffic from unknown IPs, the server being down, the wrong port or transport (for example SIP on TCP only), or a NAT or SIP ALG eating the reply. A connection refused on TCP means the host is up but nothing listens on that port. Unreachable means a router or the host itself sent back an ICMP error.
Which SIP codes mean a server is up?
Any response, including 401, 403 or 503, proves the server is reachable and processing SIP. That is why PingVo's line check on a Route counts every response as reachable by default. You can narrow it to specific codes, for example only 200, in the Route's expected codes.
PingVo sends this check continuously and alerts you when your SBC stops answering: see how PingVo monitors SIP trunks.