Your browser does not support JavaScript!
Home » Learn » SIP Response Codes: A Complete Guide

SIP Response Codes: A Complete Guide

sip code guide

Source: DepositPhotos.com - Lic#216688154 ID#27446420

Learn about SIP response codes, how they function, and the different types of response codes available. Understanding SIP codes can help you identify issues within your communication system.

What are SIP Response Codes?

Session Initiation Protocol (SIP) is a signaling protocol used to facilitate and control communication sessions. As such, SIP lets users make and receive calls over the internet instead of traditional phone lines. This paves way for unified communications by enabling the transmission and sharing of voice, video, and other files.

A SIP session is based on a request/response transaction. Therefore, each session consists of a SIP request and at least one SIP response. Response codes indicate the status of the SIP request when making a connection between two or more parties.

How Do SIP Response Codes Work?

SIP responses use a 3-digit response code to outline or detail the status of a SIP request. For example, was the SIP request accepted, was it a bad request, and so on. These codes are divided into 6 broad categories, namely:

  1. Informational/Provisional
  2. Success
  3. Redirection
  4. Client error/Request failures
  5. Server error
  6. Global failure/error

These codes also contain a “reason phrase” which can be varied to provide additional information or in a different language.

Different Types of SIP Response Codes

So, what are the different types of SIP response codes and what do they indicate? Important abbreviations to be aware of:

  • User Agent Client (UAC) – initiates the requests
  • User Agent Server (UAS) – responds to the requests
  • Uniform Resource Identifier (URI) – a string of characters that unambiguously identify a particular resource

Here we will look at each response code in each category in detail:

1xx = Informational SIP Responses

1xx SIP response codes are sent at any time when a connection between two parties is being created. Common 1xx codes are:

100 – Trying: The request was received and an extended search or unspecified action is being performed.

180 – Ringing: The user agent has received an INVITE (SIP request code) and is alerting the user.

181 – Call is Being Forwarded: The call is being forwarded to another destination, receiver, endpoint.

182 – Queued: Indicates that the destination is temporarily unavailable and the server has placed the call in queue.

183 – Session Progress: Provides information about the progress of the call.

199 – Early Dialog Terminated: Indicates that an early dialogue has been terminated. Usually sent by the User Agent Server.

2xx = Success Responses

2xx codes indicate that the SIP request was received, understood, and accepted. Common 2xx codes are:

200 – OK: Indicates that the request was successful.

202 – Accepted: Indicates that UAS has received and accepted the request, but it has not been authorized or processed by the server yet.

204 – No Notification: Indicates that the request was successful. However, no response will be received.

3xx = Redirection Responses

3xx response codes inform the UAC about redirections and further action is needed to complete the request or reach the UAS.

300 – Multiple Choices: The request address returned several choices with different locations. The UA can select one of several options of endpoints to redirect the request.

301 – Moved Permanently: The user is no longer at the address used in the request. The original request URI is no longer valid. A new address will be provided in the Contact header field. This address should be saved and used in the future.

302 – Moved Temporarily: A new address will be provided in the Contact header field. The UAC should try the new address. This address should not be saved for the future.

305 – Use Proxy: To access the destination and address, a proxy is required. The proxy will be displayed in the Contact field.

380 – Alternative Service: The call failed, but alternatives are noted in the message body.

4xx = Request Failures/Client Error

4xx response codes indicate that the message was not processed due to an error. The request may include bad syntax and therefore cannot be fulfilled at this server

400 – Bad Request: Indicates that the request could not be understood.

401 – Not Authorized/Unauthorized: Indicates that the request requires user authentication.

403 – Forbidden: Indicates that the server is refusing to fulfill the request, even though it has understood it.

404 – Not Found: The user does not exist in that particular domain.

405 – Method Not Allowed: The method specified in the Request-Line is understood, however, it is not allowed.

406 – Not Acceptable: The resource can only generate responses with unacceptable content.

407 – Proxy Authentication Required: Similar to the 401 code, the request requires user authentication.

408 – Request Timeout: The server couldn’t find the user within a suitable time frame.

409 – Conflict: User already registered (deprecated).

410 – Gone: The user is not available here anymore.

411 – Length Required: The server needs a valid content length before accepting the request.

412 – Conditional Request Failed: The given precondition has not been met.

413 – Request Entity Too Large: Indicates that the request message body is too large.

414 – Request URI Too Long: The server refuses to accept the request. This is because the request URI is longer than the server can interpret or understand.

415 – Unsupported Media Type: Requested message body is in a format that is not supported by the server.

416 – Unsupported URI Scheme: The request URI is unknown to the server or not supported by the server.

417 – Unknown Resource-Priority: Indicates that a resource-priority option tag was present, but without a Resource-Priority header.

420 – Bad Extension: Bad SIP Extension was used. The SIP extension is not understood by the server.

421 – Extension Required: The server requires a specific SIP extension that is not listed in the supported header.

422 – Session Interval Too Small: The request contains a Session-Expires header field with a duration or interval that is too small or below the minimum.

423 – Interval Too Brief: Similar to 422, the expiration time of the resource is too short.

424 – Bad Location Information: The request’s location content was unsatisfactory or “bad.”

428 – Use Identity Header: An Identity header field is required by the server policy and one has not been provided.

429 – Provide Referrer Identity: The server has not received a valid Referred-By token on the request.

430 – Flow Failed: A specific “flow” that was sent to a user agent has failed. However, other flows may succeed.

433 – Anonymity Disallowed: The request was rejected since it was anonymous.

436 – Bad Identity Info: The request has an Identity-Info header filed and the URI contained cannot be identified.

437 – Unsupported Certificate: The server could not validate a certificate for the domain that signed or sent out the request.

438 – Invalid Identity Header: Server obtained a valid certificate used to sign a request. However, the server could not verify the signature.

439 – First Hop Lacks Outbound Support: The first outbound proxy doesn’t support the “outbound” feature.

440 – Max-Breadth Exceeded: A client that received a 440 response can interpret that its request did not reach all possible destinations.

469 – Bad Info Package: A 469 response indicates that the receiver is not willing to accept this Info Package.

470 – Consent Needed: The source of the request did not have the recipient’s permission to make such a request.

480 – Temporarily Unavailable: The recipient is currently unavailable.

481 – Call/Transaction Does Not Exist: The server received a request that does not match any dialogue or transaction.

482 – Loop Detected: Server has detected a loop.

483 – Too Many Hops: Max-Forwards header has reached the value ‘0.’

484 – Address Incomplete: The requested URI is incomplete.

485 – Ambiguous: The request-URI is ambiguous.

486 – Busy Here: The recipient is busy.

487 – Request Terminated: Request has terminated or canceled.

488 – Not Acceptable Here: Parts of the session description of the request URI are not acceptable.

489 – Bad Event: The server could not understand an event package specified in an Event header field.

491 – Request Pending: Server has some pending requests from the same dialogue.

493 – Undecipherable: The request contains an encrypted MIME body, which the recipient can not decrypt.

494 – Security Agreement Required: The server has received a request that needs a negotiated security agreement.

5xx = Server Errors

5xx response codes indicate that there’s an issue with the server and it has, therefore, failed to fulfill a valid request.

500 – Server Internal Error: The request could not be fulfilled due to some unexpected condition.

501 – Not Implemented: The SIP request method is not implemented here.

502 – Bad Gateway: An invalid response was received from a downstream server while trying to fulfill a request.

503 – Service Unavailable: The server is in maintenance or temporarily overloaded. Therefore, cannot process the request.

504 – Server Time-out: The server tried to access another server while attempting to process a request. However, there was no timely response.

505 – Version Not Supported: The SIP protocol version in the request is not supported by the server.

513 – Message Too Large: The length of the request message is longer than the server can process.

555 – Push Notification Service Not Supported: The server does not support the push notification specified in the SIP URI parameter.

580 – Precondition Failure: The server is unable or unwilling to meet the constraints specified in the request.

6xx = Global Failures/ Global Error

The request cannot be completed at any server.

600 – Busy Everywhere: All possible destinations are busy.

603 – Decline: Destination cannot participate in the call and there are no alternative destinations.

604 – Does Not Exist Anywhere: The requested user does not exist anywhere.

606 – Not Acceptable: The user’s agent was contacted successfully. However, certain aspects of the session description are not acceptable.

607 – Unwanted: The call is unwanted by the recipient. Future attempts are likely to be similarly rejected.

Buy Quality SIP Trunks from United World Telecom

Buy SIP trunks from us and improve the way your business communicates with advanced features, high voice quality, and competitive rates. Sign up on our website or speak with our specialists to learn more!

Related: SIP Trunk Pricing Breakdown (2020)