我正在使用PJSIP
客户端来处理VOIP
呼叫。当前我有两个服务器设置。
1-test1.myvoipserver.com(仅支持IPv4)
2-test2.myvoipserver.com(仅支持IPv6)
在客户端,我正在检查用户ip是否属于IPv4
系列,而不是从支持IPv4
的test1.myvoipserver.com服务器路由呼叫。
如果用户ip属于IPv6
家族,我正在路由来自test2.myvoipserver.com的呼叫,该电话仅支持IPv6
。
除以下情况外,所有通话均正常运行。
场景:
假设用户有两个可用的互联网连接。
4G-(仅在IPv6上)
Wifi-(仅在IPv4上)
用户已通过4G通话,通话被乙方接受,媒体数据包可以正常传输。在通话期间,用户开始移动到可以使用Wifi的地方,他的移动互联网会自动切换到Wifi。那时,媒体数据包将丢失,这是可以理解的。我想断开当前通话并通过IPv4
服务器再次拨打新电话,因为Wifi在IPv4
上。
实际结果:在互联网从IPv6
更改为IPv4
的情况下,我强行断开了当前通话,但通话并未立即在甲方和乙方断开,因此2后会断开分钟(可能是pjsip /服务器发送超时)。
预期结果:甲方和乙方应立即断开通话
我的理解:由于我当前的呼叫在IPv6
服务器上,但是新的IP我的设备属于IPv4
,而我的当前呼叫服务器不支持{{1} }地址,这就是为什么当从客户端发送再见时,服务器未发送OK / ACK的原因。
注意:在IPv4
通话中遇到此问题。