IMS(IP Multimedia Subsystem)系统中除与会话相关的SIP(Session Initiation Protocol)协议外,还有SigComp、RTP、RTCP、IPSec和Diameter协议。这些协议都非常重要,它们会影响UE或直接影响UE的工作。 在VoLTE呼叫中SIP协议用于会话的创建,修改和终止;负责两个用户之间会话的协商。SIP不执行由RTP&RTCP完成的传输层(数据传递)。 SIP是按(顺)序交互的协议,其功能和格式上类似于HTTP的请求和响应。每个SIP请求中都以包含请求类型的起始行开头。SIP中所有消息列表如下: SIP Method | Description | Reference | INVITE | INVITE indicates that a client is being invited to participate in a call session | RFC3261 | ACK | ACK Confirms that the client has received a final response to an INVITE request | RFC3261 | BYE | Terminates a call; It can be sent by either the caller or the called party | RFC3261 | CANCEL | Cancels any pending request | RFC3261 | OPTIONS | It Queries the capabilities of servers | RFC3261 | PRACK | Provisional acknowledgement | RFC3262 | SUBSCRIBE | Subscribes to event notification | RFC3265 | NOTIFY | Notifies the subscriber of a new Event | RFC3265 | PUBLISH | Publishes an event to the Server | RFC3903 | INFO | Sends mid-session information that does not modify the session state | RFC6086 | REFER | Asks recipient to issue a SIP request (call transfer) | RFC3515 | MESSAGE | Transports instant messages using SIP | RFC3428 | UPDATE | Modifies the state of a session without changing the state of the dialog | RFC3311 |
SIP消息代码 SIP消息响应主要负责对Internet号码分配机构(IANA)的SIP(会话初始协议)参数的维护,它们全部以响应代码开头,共分为以下六类: 1XX(信息/临时)代码:表示接收和处理的请求;如.100 用于尝试,180 用于响铃; 2xx(成功操作)代码:表示成功接收,理解并接受了该操作;如200 OK,202接受; 3XX(重定向代码):需要采取进一步操作(通常由发送者执行)以完成请求,如一直移动 301,临时移动 302; 4XX(客户端故障代码):请求中包含语法错误或无法在服务器上实现,如 401未经授权,403禁止; 5XX(编码器错误):服务器无法完成有效的请求,如500服务器内部错误,504服务器超时; 6XX(全网故障):该请求无法在任何服务器上完成,如600全忙,604无法疏通;
100系列消息代码 SIP Message Code | Description | Reference | 100 | Trying |
| 180 | Ringing |
| 181 | Call Is Being Forwarded |
| 182 | Queued |
| 183 | Session Progress |
| 199 | Early Dialog Terminated | RFC6228 |
200系列消息代码 SIP Message Code | Description | Reference | 200 | OK |
| 202 | Accepted | RFC3265 | 204 | No Notification | RFC5839 |
300系列消息代码 SIP Message Code | Description | Reference | 300 | Multiple Choices |
| 301 | Moved Permanently |
| 302 | Moved Temporarily |
| 305 | Use Proxy |
| 380 | Alternative Service |
|
400系列消息代码 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 |
500系列消息代码 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 |
|
600系列消息代码 SIP Message Code | Description | Reference | 600 | Busy Everywhere |
| 603 | Decline |
| 604 | Does Not Exist Anywhere |
| 606 | Not Acceptable |
|
|