Key features of SIP
SIP determines five attributes when establishing and terminating multimedia sessions:
- user location
- user availability
- user capabilities
- session setup
- session management
Common SIP Codes and Their Meanings
INVITE
The SIP INVITE is the foundation for every SIP phone call. The SIP INVITE request is the message sent by the calling party, inviting the recipient for a session. The SIP headers included in this SIP INVITE request provide information about the message.
1XX | ||
100 | Trying | Extended search being performed may take a significant time so a forking proxy must send a 100 Trying response. |
180 | Ringing | Far-end Destination carrier received INVITE and they are notifying their subscriber |
183 | Session Progress (Early Media) | This response may be used to send extra information for a call which is still being set up |
2XX | ||
200 | OK | Indicates that the request was successful |
3XX | ||
300 | Multiple Choices | The address resolved to one of several options for the user or client to choose between, which are listed in the message body or the message's Contact fields |
301 | Moved Permanently | The original Request-URI is no longer valid, the new address is given in the Contact header field, and the client should update any records of the original Request-URI with the new value |
302 | Moved Temporarily | The client should try at the address in the Contact field. |
4XX | ||
400 | Bad Request | The request could not be understood due to malformed syntax |
403 | Forbidden Number | The carrier has explicitly blocked the call, likely due to regulatory compliance or fraud prevention. |
404 | Not Found | The server has definitive information that the user does not exist at the domain specified in the Request-URI. This status is also returned if the domain in the Request-URI does not match any of the domains handled by the recipient of the request. |
405 | Method Not Allowed | The method specified in the Request-Line is understood, but not allowed for the address identified by the Request-URI. |
408 | Request Timeout | Couldn't find the user in time. The server could not produce a response within a suitable amount of time, for example, if it could not determine the location of the user in time. |
420 | Bad Extension | Bad SIP Protocol Extension used, not understood by the server |
437 | Unsupported Certificate | The server was unable to validate a certificate for the domain that signed the request. |
438 | Invalid Identity Header | The server obtained a valid certificate that the request claimed was used to sign the request, but was unable to verify that signature |
480 | Temporarily Unavailable | Caller currently unavailable. |
482 | Loop Detected | Server has detected a loop. |
484 | Address Incomplete | Request-URI incomplete |
486 | Busy Here | Caller is busy |
487 | Request Terminated | Request has terminated by bye or cancel |
488 | Not Acceptable Here | Some aspect of the session description or the Request-URI is not acceptable |
5XX | ||
500 | Internal Server Error | The server could not fulfill the request due to some unexpected condition. |
502 | Bad Gateway | The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request. |
503 | Service Unavailable | The server is undergoing maintenance or is temporarily overloaded and so cannot process the request. |
504 | Server Time-out | The server attempted to access another server in attempting to process the request, and did not receive a prompt response |
6XX | ||
600 | Busy Everywhere | All possible destinations are busy. This response indicates the destination knows there are no alternative destinations (such as a voicemail server) able to accept the call. |
603 | Decline/ Possible Do Not Disturb | The destination does not wish to participate in the call, or cannot do so, and additionally the destination knows there are no alternative destinations (such as a voicemail server) willing to accept the call. The response may indicate a better time to call in the Retry-After header field. |
604 | Does Not Exist Anywhere | The server has authoritative information that the requested user does not exist anywhere. |
608 | Rejected | An intermediary machine or process rejected the call attempt. This contrasts with the 607 (Unwanted) SIP response code in which a human, the called party, rejected the call. |
HTTP Errors
HTTP 401 errors | 401 errors indicate that Authorization has failed. This can be due to a missing or incorrectly configured Authorization header or a whitelist violation. |
HTTP 403 errors | 403 errors indicate that Authentication has failed. This means that the Authorization header has been validated but the credentials passed in the Authorization header do not have permission to access the resource. |
HTTP 500 errors | 500 errors indicate that an error has occurred outside of the API call itself. |
HTTP 200 responses | All authenticated and authorized responses will be returned with an HTTP 200 OK response. This means that the POST has been allowed to request the service for which it was intended and the service has responded accordingly. |