首页 > 解决方案 > SIP UAS/UAC 是否必须在同一个端口监听 TCP 和 UDP 协议?

问题描述

我有两个注册用户的 freeswitch。
比如A和B。
但是B不能同时监听同一个端口的TCP和UDP协议。因此,如果我将 B 配置为 UDP 并通过 freeswitch 从 A 呼叫 B。freeswitch 尝试通过 TCP 连接到 B,然后失败并向 A 发送 503 Service Unavailable。
我知道RFC3261 中的第8.1.3.1条。但我不确定,我想问一下 SIP 标准是怎么说的。如果您无法建立 TCP 连接,您不应该尝试通过 UDP 发送消息吗?
我阅读了 SIP 标准,但对此一无所知(也许我错过了)。
此外,我想知道这是否是 freeswitch 错误。

标签: sipfreeswitch

解决方案


如果您从 B 发送 REGISTER 请求,并在联系标头中使用 TCP 传输,则 freeswitch 将与 TCP 通信,否则使用 UDP。对于您的情况,是的,有可能。UAS/UAC 可以与 TCP 和 UDP 侦听同一端口。您可以在代码中使用 TCP 和 UDP 创建套接字。下面的 UAS 正在侦听 UDP 和 TCP。 在此处输入图像描述


推荐阅读