什么是SIP方式/请求和响应

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– 已成功联系用户的代理,但会话描述的某些方面是不可接受的。