SIP方式/请求和响应(SIP Methods / Requests and Responses)
SIP使用方式/请求和相应的响应来通信和建立呼叫会话。
SIP请求(SIP Requests:):
有十四种SIP Request方法,其中前六种是最基本的请求/方法类型:
- INVITE =建立会话。
- ACK =确认INVITE请求。
- BYE =结束会话。
- CANCEL =取消建立会话。
- REGISTER =通信用户位置(主机名,IP)。
- OPTIONS =传达有关呼叫和接收SIP电话功能的信息。
- PRACK =临时确认。
- SUBSCRIBE =来自通知者的通知订阅。
- NOTIFY =通知订户新事件。
- PUBLISH =向服务器发布事件。
- INFO =发送会话中间信息。
- REFER =要求收件人发出呼叫转移。
- MESSAGE =传输即时消息。
- UPDATE =修改会话的状态。
SIP响应(SIP Responses)
SIP请求由SIP响应回答,其中有六个类:
1xx = 信息SIP响应
- 100 Trying– 正在执行扩展搜索,因此分叉代理必须发送一个100尝试响应。
- 180 Ringing– 目的地用户代理已收到INVITE消息并正在警告用户呼叫。
- 181 Call Is Being Forwarded– 可选,由服务器发送以指示正在转发呼叫
- 182 Queued– 目标暂时不可用,服务器已将呼叫排队,直到目标可用。
- 183 Session Progress– 此响应可用于发送仍在建立的呼叫的额外信息。
- 199 Early Dialog Terminated– 由User Agent Server发送以指示早期对话已终止。
2xx = 成功响应
- 200 OK– 显示请求成功
- 202 accepted– 表示已接受请求进行处理,主要用于引用。
- 204 No Notification– 表示请求成功但未收到响应。
3xx = 重定向响应
- 300 Multiple Choices– 地址解析为用户或客户端之间可供选择的几个选项之一。
- 301 Moved Permanently– 原始的Request URI不再有效,新的地址在Contact头中给出。
- 302 Moved Temporarily– 客户端应该尝试在“Contact”字段中的地址。
- 305 Use Proxy– “Contact”字段详细说明了必须用于访问请求目标的代理。
- 380 Alternative Service– 呼叫失败,但消息体中详细说明了替代方案。
4xx = 请求失败
- 400 Bad Request– 由于语法格式错误,无法理解请求。
- 401 Unauthorized– 该请求需要用户身份验证。 此回复由UAS和注册商发布。
- 402 Payment Required– (保留供将来使用).
- 403 Forbidden– 服务器理解请求,但拒绝履行请求。
- 404 Not Found– 服务器具有用户不存在的确定信息(未找到用户)。
- 405 Method Not Allowed– 在Request-Line中指定的方法被理解,但不允许
- 406 Not Acceptable– 资源只能生成具有不可接受内容的响应。
- 407 Proxy Authentication Required– 该请求需要用户身份验证。
- 408 Request Timeout– 无法及时找到用户。
- 409 Conflict– 用户已注册(已弃用)
- 410 Gone– 用户已存在一次,但此处不再可用。
- 411 Length Required– 如果没有有效的内容长度(不建议使用),服务器将不接受请求。
- 413 Request Entity Too Large– 请求体太大。
- 414 Request URI Too Long– 服务器拒绝为请求提供服务,Req-URI比服务器可以解释的长。
- 415 Unsupported Media Type– 请求体采用不受支持的格式。
- 416 Unsupported URI Scheme– Request-URI对于服务器是未知的。
- 417 Uknown Resource-Priority– 有一个资源优先级选项标记,但没有资源优先级标头。
- 420 Bad Extension– 使用了错误的SIP协议扩展,服务器无法理解。
- 421 Extension Required– 服务器需要未在“支持”标头中列出的特定扩展。
- 422 Session Interval Too Small– 该请求包含Session-Expires标头字段,其持续时间低于最小值。
- 423 Interval Too Brief– 资源的到期时间太短。
- 424 Bad Location Information– 请求的位置内容格式错误或不满意。
- 428 Use Identity Header– 服务器策略需要Identity标头,尚未提供一个标头。
- 429 Provide Referrer Identity– 服务器未在请求上收到有效的Referred-By令牌。
- 430 Flow Failed– 尽管其他流程可能成功,但是到用户代理的特定流程已失败。
- 433 Anonymity Disallowed– 该请求已被拒绝,因为它是匿名的。
- 436 Bad Identity Info– 该请求具有Identity-Info标头,并且无法取消引用包含的URI方案。
- 437 Unsupported Certificate– 服务器无法验证签署请求的域的证书。
- 438 Invalid Identity Header– 服务器获得了用于签署请求的有效证书,无法验证签名。
- 439 First Hop Lacks Outbound Support– 第一个出站代理不支持“出站”功能。
- 470 Consent Needed– 请求的来源没有收件人的许可来提出这样的请求。
- 480 Temporarily Unavailable–被叫方当前不可用。
- 481 Call/Transaction Does Not Exist–服务器收到的请求与任何对话或事务都不匹配。
- 482 Loop Detected– 服务器检测到循环。
- 483 Too Many Hops– Max-Forwards标头已达到值“0”。
- 484 Address Incomplete– Request-URI 不完整。
- 485 Ambiguous– Request-URI不明确。
- 486 Busy Here– 被叫方忙。
- 487 Request Terminated– 请求已被终止或取消。
- 488 Not Acceptable Here– Request-URI的会话描述的某些方面是不可接受的。
- 489 Bad Event– 服务器不理解Event头字段中指定的事件包。
- 491 Request Pending–服务器有来自同一对话框的一些待处理请求。
- 493 Undecipherable– 不可破译的请求包含加密MIME体,其收件人无法解密。
- 494 Security Agreement Required– 服务器已收到需要协商安全机制的请求。
5xx = 服务错误
- 500 Server Internal Error– 由于某些意外情况,服务器无法满足请求。
- 501 Not Implemented– 此处未实现SIP请求方法。
- 502 Bad Gateway– 服务器在尝试完成请求时收到来自下游服务器的无效响应。
- 503 Service Unavailable– 服务器处于维护状态或暂时过载,无法处理请求。
- 504 Server Time-out– 服务器在尝试处理请求时尝试访问另一台服务器,没有及时响应。
- 505 Version Not Supported– 服务器不支持请求中的SIP协议版本。
- 513 Message Too Large– 请求消息的长度比服务器可以处理的长。
- 580 Precondition Failure– 服务器无法或不愿履行要约所指明一些限制。
6xx = 全局失败
- 600 Busy Everywhere– 所有可能的目的地都很忙。
- 603 Decline– 目的地不能/不希望参加通话,没有其他目的地。
- 604 Does Not Exist Anywhere– 服务器具有所请求的用户在任何地方都不存在的权威信息。
- 606 Not Acceptable– 已成功联系用户的代理,但会话描述的某些方面是不可接受的。