![UAC 应如何处理 SIP 183 会话进度](https://linux22.com/image/568998/UAC%20%E5%BA%94%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%20SIP%20183%20%E4%BC%9A%E8%AF%9D%E8%BF%9B%E5%BA%A6.png)
我有以下情况:
2 UAC 正在尝试通过远程 SIP 服务器 (openSER/Kamailio 3.1.3) = 客户端基础架构进行通话。UAC 软件是在使用 Asterisk 的本地测试基础架构上开发的,在该基础架构上可以建立正常通话。
问题在于在客户端基础设施上测试时没有音频。
我不了解完整的客户端基础架构,但从服务器的日志/响应(路由标头字段)可以得出结论,有一个代理授权服务器、一个 CiscoSystem SIP GW 以及 PSTN。而且,我们位于 NAT 后面,客户端也位于 NAT 后面。据我所知,没有使用 STUN 服务器。
呼叫流程的主要区别在于,在测试基础设施中我们总是收到 180 消息(振铃),而在客户端基础设施中我们收到 183 会话正在进行中。在日志中可以看到两个设备都开始发送 rtp 流,但仍然没有音频。
我还有一个商业软件,我们用它测试了客户端基础设施,它运行良好。我们比较了商业软件和我们客户端发送的消息,几乎没有区别。
我能找到的唯一区别是在 inv/407/ack 循环之后的消息中:
商业软件:
开始新的分支号 x
发送 inv + auth 字符串 - 分支/交易编号 x
获得响应 - 分支/交易号 x
发送确认消息 - 分支/传输号 x
我们的客户:
开始新的分支号 y
发送 inv + auth 字符串 - 分支/交易数字 y
获得响应 - 分支/交易号 y
发送确认消息 - 一个新的分支/交易 - z
这可能是导致音频丢失的原因吗?同样的情况在 Asterisk 中也可以正常进行。