SIP(RFC 3261)服务器事务超时

时间:2011-07-11 07:39:38

标签: transactions sip

根据RFC 3261,在PROCEEDING或TRYING状态下服务器事务没有超时。据我了解,这意味着TU必须向交易发送响应。但是,如果TU失败,交易应该有办法知道并终止。

根据RFC 3261

,哪种行为是正确的
  1. 服务器事务是否应检测到TU失败?

  2. 我应该添加自己的超时吗?假设另一方的客户端事务无论如何都会超时,在超时后终止服务器事务应该是安全的。预期的客户交易超时。

  3. 还有其他行为吗?

1 个答案:

答案 0 :(得分:2)

事务中的超时是处理远程失败 - 网络分区,远程机器崩溃等等。

SIP不会告诉您在本地失败时该怎么做,比如您的事务用户层崩溃了。

您的TU是整个SIP堆栈的“大脑”,因此如果失败,您的SIP堆栈将整体失败。我不认为交易层尝试继续运作是明智的。

某些事务可能会在您的应用程序重新启动过程中有意义地持续存在 - 比如在线状态订阅 - 而其他类似的调用可能不会。您可以将这些“可持久”事务的状态存储在磁盘上,并在重新启动应用程序后将其还原。