Docker容器化Asterisk通话20秒自动挂断问题求助
Docker容器化Asterisk通话20秒自动挂断问题求助
各位大佬好!最近我在把Asterisk容器化部署到Docker里时,碰到了一个特别棘手的问题,想请大家帮忙排查下~
具体情况是这样的:
- 我用的SIP软电话是Twinkle,它能正常注册到容器里的Asterisk;
- 发起通话一开始是能通的,但大概20秒左右,Asterisk就会自动把通话挂断;
- 环境信息:Docker宿主机的地址是1.2.3.4,Twinkle运行在另一台地址为9.8.7.6的物理机上,容器内部的Asterisk识别到自己的地址是172.17.0.2。
我抓包分析了Asterisk和Twinkle之间的SIP对话,发现了关键问题:
Asterisk收到Twinkle的INVITE请求后,回复了OK,Twinkle也发回了ACK响应,但这个ACK直接被Asterisk丢弃了!看请求行就知道原因——Twinkle发的是ACK sip:172.17.0.2:5060 SIP/2.0,但实际上它应该发ACK sip:1.2.3.4:5060 SIP/2.0才对。
之后Asterisk会反复发送OK响应大概20秒,接着就发BYE请求挂断通话了,我猜应该是因为一直没收到正确的ACK,触发了超时机制导致的。
我的pjsip.conf配置大致如下:
[...(省略部分配置内容)]
备注:内容来源于stack exchange,提问作者Michael Beer
相关产品推荐
相关产品推荐

