SIP协议栈添加 PRACK 支持

  csdn lidp  http://blog.csdn.net/perfectpdl


对 INVITE 请求的 SIP 响应可能是最终的或临时的。最终响应始终可靠地发送,而临时响应通常并非这样。对于需要可靠地发送临时响应的情况,可以使用 PRACK(临时响应确认)方法。

为了能够开发支持 PRACK 的应用程序,必须符合下列条件:
  • 发送 INVITE 请求的客户机必须将一个 100rel 标记放入到 Supported 或 Require 头中以指示此客户机支持 PRACK。
PRACK 按下列标准进行了描述:
  • RFC 3262(“Reliability of Provisional Responses in the Session Initiation Protocol (SIP)”),它通过添加 PRACK 和选项标记 100rel 扩展了 RFC 3261(“SIP: Session Initiation Protocol”)。

过程

  • 对于充当代理的应用程序,执行此操作:
    • 使应用程序生成并发送一个可靠的临时响应给在“至”字段中任何没有标记的 INVITE 请求。
  • 对于充当用户代理客户机(UAC)的应用程序,执行此操作:
    • 使应用程序将 100rel 标记添加至出局 INVITE 请求。此选项标记必须出现在 Supported 头或 Require 头中。
    • 根据 RFC 3262 小节 7.2(“RAck”)设置 RAck 头。
    • UAC 发送 INVITE 并接收可靠的响应。当 UAC 接收此可靠响应时,它发送 PRACK 请求给 UAS 并在 PRACK 上接收到一个 200 OK,所以紧接着应实现 接收此 200 OK。
    • 准备好应用程序以便为入局的 PRACK 请求生成并发送最终的响应。
  • 对于充当用户代服务器(UAS)的应用程序,执行此操作:
    • 当可靠的临时响应没有在 64*T1 秒内应答时(其中 T1 是一个 SIP 计时器)
    • 使该应用程序至多有一个未完成、未应答的可靠临时响应。在第一个应答导致出现异常之前尝试发送另一个。
    • 确保该应用程序强制 RFC 3262 提供/应答语义周围的 PRACK 请求包含会话描述。具体来说,如果任何未应答的临时响应包含会话描述,

你可能感兴趣的:(SIP协议栈添加 PRACK 支持)