1

SIP over UDP:对于 UDP 上的 SIP,必须有 SIP 响应“100 Trying”才能关闭由呼叫者启动的 Timer-A,从而停止重新传输 SIP 消息。这真的很重要,因为初始 INVITE 消息的其他响应(临时和最终)可能需要一段时间,因为我们必须考虑分叉、UE-B 无法访问、回退等场景。这可能需要一些时间。

SIP over TCP: Timer-A 不会被呼叫者启动,因此不会重传消息。TCP是可靠的,不需要重新传输。即使那样,为什么大多数实现发送 100 Trying over TCP ???

4

2 回答 2

2

SIP over TCP 仍然需要 100 Trying 的原因很少。

  1. 拥有 TCP 连接并不能保证 SIP 应用程序正在工作,或者它是否完全是 SIP 感知应用程序。100 Trying 向您提供反馈,表明您的请求正在由 SIP 应用程序处理。

  2. 缺少 100 次尝试也可能是正确的触发器,不仅可以重新传输,还可以重新尝试配置中的不同服务器。即使连接是 TCP,您也可能不希望配置中的每个服务器都经过 32 秒。

  3. 在部署场景中,如果有 SBC 或负载均衡器等元素,则与它们建立 TCP 连接。它背后的应用程序可以是不同的实体,通常这些边缘元素传递所有消息或生成消息以指示调用处于操作状态。

于 2014-11-03T22:45:44.140 回答
0

可能是因为它使 SIP 堆栈实现更容易。如果 SIP 事务层是相同的,而与所使用的 SIP 传输无关,这会使生活变得更轻松。如果事务层对不同的传输有不同的规则,那就是额外的代码,没有真正的好处,即通过不发送 100 Trying 响应节省的带宽在事物方案中可以忽略不计。

于 2014-11-03T09:30:13.727 回答