Session Initiation Protocol (SIP) is a call and response protocol used to initiate, maintain and terminate multimedia sessions within VoIP applications. Simply put, these internet-hosted multimedia sessions can integrate voice, video and messaging into a call. SIP response codes are three-digit numerical messages that contain information sent by the User Agent Server (UAS) to the User Agent Client (UAC). SIP response codes provide information about the status of the call.
There are six SIP response code class types—the first digit of each code indicates the class of the code. Codes beginning with the number 1 are known as “provisional” codes, and codes beginning with numbers 2-6 are known as “final” codes. Provisional codes are sent up until a call is connected; final codes confirm whether or not the connection was successful.
- 1xx is ‘informational’
- 2xx is ‘success’
- 3xx is a ‘redirection’
- 4xx is a ‘client error’
- 5xx is a ‘Server error’
- 6xx is a ‘global failure’
You don’t need to memorize the different types of SIP codes, but it can be helpful to have a reference sheet handy and a general idea of what each code indicates. Here are the most common types of SIP response codes:
A 1xx SIP response code can be sent at any time while a connection is being established. Here are some common 1xx codes:
A call request has been received, and an unspecified action (such as consulting a database) is being taken on behalf of the call request.
An invite has been received by the User Agent Server (UAS, which is now attempting to alert the user.
181: call is being forwarded
The call is being forwarded to another endpoint.
183: session progress
Gives information about the progress of a call.
199: early dialog terminated
Notifies upstream SIP entities that an early dialog has been terminated.
The 2xx response codes are used to indicate that a SIP request has been successfully received, understood and accepted. You’ll typically see the following versions:
A request has succeeded.
A UAS has received and understood the request, but it may not have been authorized or processed by the server.
204: no notification
A request was successful, but a response will not be received.
These codes inform the User Agent Client (UAC) on redirections and of the different routes available to get to the UAS. Commonly received examples include:
300: multiple choices
A request address returned several choices, each with their own specific locations. In this case, the UA can select a preferred endpoint to redirect the request to that specific location.
301: moved permanently
A user can no longer be found at the address used in the request. A new address will be given in the contact header field, which can be retried by the requesting client. The new address should be saved and used in all future invite requests.
302: moved temporarily
A new address will be given in the contact header field, which can be retried by the requesting client. This address should not be saved for future invite requests.
305: use proxy
A proxy must be used to access the required destination. The specified proxy will be displayed in the contact field.
380: alternate service
A call failed, but the message body describes alternatives.
4xx: client error
The 4xx response codes indicate that something went wrong while processing the message, and the request cannot be fulfilled. There are quite a few of them, including:
400: bad request
A request could not be understood.
401: not authorized
A request requires user authentication.
404: not found
A server has definitive information that the user does not exist at that particular domain.
407: proxy authentication required
Similar to the 401 (not authorized) code, but in this case the client must authenticate itself with the proxy.
408: request timeout
A server could not produce a response within a suitable time frame.
415: unsupported media type
A server is refusing to service the request because the message body is in a format not supported by the server for the particular request method.
5xx: server error
5xx responses relate to server error issues and are mostly generated by the likes of proxy servers, location servers and redirect servers. They include:
500: server internal error
A server was prevented from fulfilling the request by an unexpected condition.
501: not implemented
A functionality required to fulfill the request is not supported by the server.
502: bad gateway
When attempting to fulfill the request, a server received an invalid response from a downstream server.
503: service unavailable
Temporary overloading or maintenance of a server means it is currently unable to process the request. The client should attempt to forward the request to another server.
504: server time out
When attempting to process the request, a server did not receive a timely response form the external server.
6xx: global error
Finally, the 6xx response codes relate to Global Error issues. They include:
600: busy everywhere
A callee’s end system was contacted successfully but the callee is busy.
A callee’s end system was successfully contacted but the user does not wish to or cannot participate.
604: does not exist anywhere
Information the user indicated in the request Uniform Resource Identifier (URI) does not exist.
606: not acceptable
A user wishes to communicate, but they cannot adequately support the session described.
SIP response code infographic (download)
Download the infographic below and keep it as a handy reference:
Other SIP response codes
The codes listed above are the most common codes, but there are additional codes you may encounter:
|405||method not allowed|
|412||conditional request failed|
|413||request—entity too large|
|414||request URI too long|
|416||unsupported URI scheme|
|422||session interval too small|
|423||interval too brief|
|424||bad location information|
|425||bad alert message|
|428||use identity header|
|429||provide referrer identity|
|438||invalid identity header|
|439||first hop lacks outbound support|
|469||bad info package|
|481||call/transaction does not exist|
|483||too many hops|
|488||not aceptable here|
|494||security agreement withheld|
|505||version not supported|
|513||message too large|
|555||push notification service not supported|
Why SIP? SIP, together with VoIP, enables businesses to build customized telephony systems. SIP trunks reduce the amount of infrastructure your business needs: you can add many channels to a single SIP trunk, which allows you to have multiple phone lines. Without SIP trunks, you’d need to pay for individual lines each time you hired a new employee. SIP protocol and SIP trunking features enhance your VoIP system to create a robust, scalable and flexible communication solution for your business.
Share on Social