VoLTE SIP Methods, Response Codes and Details
VoLTE IMS Protocols
In IMS subsystem, the critical protocols are the Session Initiation Protocol (SIP), SigComp, Real-time Transport Protocol (RTP), RTP Control Protocol (RTCP) and IP Security (IPSec) and Diameter. These protocols are very important because these are the ones impacted by the UE or have a direct impact on UE operation.
In a VoLTE call, SIP protocol is used to create, modify and terminate sessions, essentially negotiating a session between two users. SIP does not perform transport layer (delivering data) those are done by RTP/RTCP.
SIP is a sequential protocol with request/response similar to HTTP both in functionality and format. Every SIP request begins with a starting line that includes the name of a request type and also called a metho. The table below lists all request methods used for SIP.
SIP Method | Description | Reference |
---|---|---|
INVITE | INVITE indicates that a client is being invited to participate in a call session | RFC 3261 |
ACK | ACK Confirms that the client has received a final response to an INVITE request | RFC 3261 |
BYE | Terminates a call; It can be sent by either the caller or the called party | RFC 3261 |
CANCEL | Cancels any pending request | RFC 3261 |
OPTIONS | It Queries the capabilities of servers | RFC 3261 |
PRACK | Provisional acknowledgment | RFC 3262 |
SUBSCRIBE | Subscribes to event notification | RFC 3265 |
NOTIFY | Notifies the subscriber of a new Event | RFC 3265 |
PUBLISH | Publishes an event to the Server | RFC 3903 |
INFO | Sends mid-session information that does not modify the session state | RFC 6086 |
REFER | Asks the recipient to issue a SIP request (call transfer) | RFC 3515 |
MESSAGE | Transports instant messages using SIP | RFC 3428 |
UPDATE | Modifies the state of a session without changing the state of the dialog | RFC 3311 |
SIP Message Codes and It’s Meaning
SIP message responses are maintained in an Internet Assigned Numbers Authority (IANA) list called Session Initiation Protocol (SIP) Parameters. They always begin with a response code. These Response Codes are divided into the following categories:
- 1XX Codes (Informational/Provisional): These codes are for the request received and being processed e.g. 100 Trying, 180 Ringing
- 2xx Codes (Successful Action): The action was successfully received, understood, and accepted e.g. 200 OK, 202 Accepted
- 3XX Codes (Redirection): Further action needs to be taken (typically by the sender) to complete the request e.g. 301 Moved Permanently, 302 Moved Temporarily
- 4XX Codes (Client Failure): The request contains bad syntax or cannot be fulfilled at the server e.g. 401 Unauthorized, 403 Forbidden
- 5XX (Codes Server Failure): The server failed to fulfill an apparently valid request e.g. 500 Server Internal Error, 504 Server Time-out
- 6XX (Global Failure): The request cannot be fulfilled at any server e.g. 600 Busy Everywhere, 604 Does Not Exist Anywhere
The detailed list of all Response code is given in below tables.
1XX Codes
SIP Message Code | Description | Reference |
---|---|---|
100 | Trying | |
180 | Ringing | |
181 | Call Is Being Forwarded | |
182 | Queued | |
183 | Session Progress | |
199 | Early Dialog Terminated | RFC6228 |
2XX Codes
SIP Message Code | Description | Reference |
---|---|---|
200 | OK | |
202 | Accepted | RFC3265 |
204 | No Notification | RFC5839 |
3XX Codes
SIP Message Code | Description | Reference |
---|---|---|
300 | Multiple Choices | |
301 | Moved Permanently | |
302 | Moved Temporarily | |
305 | Use Proxy | |
380 | Alternative Service |
4XX Codes
SIP Message Code | Description | Reference |
---|---|---|
400 | Bad Request | |
401 | Unauthorized | |
402 | Payment Required | |
403 | Forbidden | |
404 | Not Found | |
405 | Method Not Allowed | |
406 | Not Acceptable | |
407 | Proxy Authentication Required | |
408 | Request Timeout | |
410 | Gone | |
412 | Conditional Request Failed | RFC3903 |
413 | Request Entity Too Large | |
414 | Request-URI Too Long | |
415 | Unsupported Media Type | |
416 | Unsupported URI Scheme | |
417 | Unknown Resource-Priority | RFC4412 |
420 | Bad Extension | |
421 | Extension Required | |
422 | Session Interval Too Small | RFC4028 |
423 | Interval Too Brief | |
424 | Bad Location Information | RFC6442 |
428 | Use Identity Header | RFC4474 |
429 | Provide Referrer Identity | RFC3892 |
430 | Flow Failed | RFC5626 |
433 | Anonymity Disallowed | RFC5079 |
436 | Bad Identity-Info | RFC4474 |
437 | Unsupported Certificate | RFC4474 |
438 | Invalid Identity Header | RFC4474 |
439 | First Hop Lacks Outbound Support | RFC5626 |
440 | Max-Breadth Exceeded | RFC5393 |
469 | Bad Info Package | RFC6086 |
470 | Consent Needed | RFC5360 |
480 | Temporarily Unavailable | |
481 | Call/Transaction Does Not Exist | |
482 | Loop Detected | |
483 | Too Many Hops | |
484 | Address Incomplete | |
485 | Ambiguous | |
486 | Busy Here | |
487 | Request Terminated | |
488 | Not Acceptable Here | |
489 | Bad Event | RFC3265 |
491 | Request Pending | |
493 | Undecipherable | |
494 | Security Agreement Required | RFC3329 |
5XX Codes
SIP Message Code | Description | Reference |
---|---|---|
500 | Server Internal Error | |
501 | Not Implemented | |
502 | Bad Gateway | |
503 | Service Unavailable | |
504 | Server Time-out | |
505 | Version Not Supported |
6XX Codes
SIP Message Code | Description | Reference |
---|---|---|
600 | Busy Everywhere | |
603 | Decline | |
604 | Does Not Exist Anywhere | |
606 | Not Acceptable |