如果网络在通话过程中从IPv6切换到IPv4,则pjsip呼叫挂断延迟

Sha*_*asi 8 voip pjsip ios

我正在使用PJSIP客户端来处理VOIP呼叫。当前我有两个服务器设置。

1-test1.myvoipserver.com(仅支持IPv4)

2-test2.myvoipserver.com(仅支持IPv6)

在客户端,我要检查用户IP是否属于IPv4家庭,而不是从支持的test1.myvoipserver.com服务器路由呼叫IPv4

如果用户IP属于IPv6家庭,我正在路由仅来自支持的test2.myvoipserver.com的呼叫IPv6

除以下情况外,所有通话均工作正常。

场景:

假设用户有两个可用的Internet连接。

4G-(仅在IPv6上)

Wifi-(仅在IPv4上)

用户在4G上进行了通话,通话被乙方接受,并且媒体数据包可以正常传输。在通话期间,用户已开始移动到可以使用Wifi的位置,他的移动互联网会自动切换到Wifi。那时媒体包将丢失,这是可以理解的。我想断开当前通话,并在IPv4Wifi开启时再次与服务器进行新通话IPv4

**实际结果**:在Internet从更改为时IPv6IPv4我强制断开当前通话,但通话并未立即在甲方和乙方断开,因此2分钟后可能会断开(可能是pjsip /服务器发送超时)。

预期结果:甲方和乙方应立即断开通话

我的理解:因为我当前的呼叫在IPv6服务器上,但是我的设备属于新IP,IPv4并且我的当前呼叫服务器不支持IPv4地址,所以这就是为什么从客户端发送再见时,服务器未发送OK / ACK的原因。

注意:PSTN呼叫时会遇到此问题。