SIP (Session Initiation Protocol) 状态码类似于 HTTP 状态码,用于指示 SIP 请求的结果。SIP 状态码分为六个类别,每个类别都有一个特定的含义范围。下面是 SIP 中常见的状态码及其详细解释:
100 系列 - 信息响应
这些响应码表示事务正在处理中,并且更多的响应将会跟随。
- 100 Trying:请求已被接收并正在处理中。
- 101 Multiple Choices:已废弃,表示有多个选择可用于请求,但未在 SIP 中使用。
- 102 Ringing:表示电话正在振铃,或等效的呼叫正在被送达。
- 103 Queued:表示呼叫已排队等待,通常用于呼叫中心。
- 104 Request-Uri Waiting:已废弃,不推荐使用。
200 系列 - 成功响应
这些响应码表示请求已被成功处理。
- 200 OK:请求已成功处理。这是最常见的成功响应。
300 系列 - 重定向响应
这些响应码指示客户端应采取进一步的动作来完成请求。
- 300 Multiple Choices:已废弃,不推荐使用。
- 301 Moved Permanently:资源(如电话号码)已永久移动到新位置。
- 302 Moved Temporarily:资源已临时移动到新位置。
- 303 See Other:已废弃,不推荐使用。
- 305 Use Proxy:请求必须通过代理来完成。
- 380 Alternative Service:指示替代的服务。
400 系列 - 客户端错误
这些响应码表示请求包含语法错误或无法完成。
- 400 Bad Request:请求无效或无法理解。
- 401 Unauthorized:未授权。必须在请求中包含有效的认证信息。
- 402 Payment Required:已废弃。最初是为了未来可能要求支付的机制设计的,但从未实施。
- 403 Forbidden:禁止。服务器理解请求客户端的认证信息,但是拒绝执行此请求。
- 404 Not Found:未找到。没有找到请求的URI。
- 405 Method Not Allowed:方法不允许。请求中指定的方法不被允许。
- 406 Not Acceptable:不可接受。无法提供满足请求Accept头字段的媒体类型。
- 407 Proxy Authentication Required:代理认证所需。必须在请求中包含有效的代理认证信息。
- 408 Request Timeout:请求超时。请求耗时太长。
- 409 Conflict:冲突。请求不能完成,因为与当前状态冲突。
- 410 Gone:已消失。请求的资源不再可用,并且没有任何已知的转发地址。
- 413 Request Entity Too Large:请求实体太大。请求的资源太大,无法处理。
- 414 Request-URI Too Long:请求URI太长。请求的URI长度超过了服务器愿意解释的长度。
- 415 Unsupported Media Type:不支持的媒体类型。服务器拒绝服务,因为请求的内容类型不受支持。
- 416 Unsupported URI Scheme:不支持的URI方案。请求的URI方案不受支持。
- 420 Bad Extension:已废弃。现在使用488。
- 421 Extension Required:请求中缺少必需的扩展。
- 422 Session Interval Too Small:会话间隔太小。请求的会话持续时间太小。
- 423 Interval Too Brief:间隔太短暂。请求的间隔太短。
- 428 Use Proxy:使用代理。客户端必须使用代理。
- 431 Too Many Hops:跳数太多。请求经过了太多的中间节点。
- 480 Temporarily Unavailable:临时不可用。用户或设备暂时不可用。
- 481 Call/Transaction Does Not Exist:呼叫/事务不存在。请求引用了一个不存在的呼叫或事务。
- 482 Loop Detected:检测到循环。请求导致了一个循环。
- 483 Too Many Hops:跳数太多。请求经过了太多的中间节点。(请注意,431也是“Too Many Hops”,但这两个错误码有所不同)
- 484 Address Incomplete:地址不完整。请求的地址信息不足以完成请求。
- 485 Ambiguous:含糊不清。请求没有明确的目标。
- 486 Busy Here:忙。用户或设备当前忙。
- 487 Request Terminated:请求终止。请求已经被终止。
- 488 Not Acceptable Here:在此处不可接受。请求的方法在此上下文中不可接受。
- 491 Request Pending:请求待处理。请求正在等待处理。
- 493 Undecipherable:无法解密。无法解密请求。
- 494 Security Agreement Failed:安全协议失败。客户端和服务器之间未能达成安全协议。
500 系列 - 服务器错误
这些响应码表示服务器无法完成一个显然有效的请求。
- 500 Internal Server Error:内部服务器错误。服务器遇到了意外情况,无法完成请求。
- 501 Not Implemented:未实现。服务器不支持请求的功能。
- 502 Bad Gateway:错误网关。服务器作为网关或代理,从上游服务器收到了无效的响应。
- 503 Service Unavailable:服务不可用。服务器目前无法处理请求(由于过载或维护)。
- 504 Gateway Timeout:网关超时。服务器作为网关或代理,没有及时从上游服务器收到请求。
- 505 SIP Version Not Supported:不支持的SIP版本。服务器不支持请求中使用的SIP版本。
- 513 Message Too Large:消息太大。消息的大小超过了服务器愿意接收的大小。
600 系列 - 全局失败
这些响应码表示全局性的失败。
- 600 Busy Everywhere:到处都忙。所有的目的地都忙。
- 603 Decline:拒绝。请求被拒绝。
- 604 Does Not Exist Anywhere:任何地方都不存在。请求的目标在任何地方都不存在。
- 606 Not Acceptable:不可接受。请求无法被接受。
这些状态码有助于客户端和服务器之间的交互,使得双方能够更好地理解和处理各种情况。了解这些状态码对于调试 SIP 应用程序非常重要。