我的固定电话已连接到 VoIP 适配器,打电话时可以正常工作,但接听电话时却无法正常工作。电话会像平常一样响铃,但只要我拿起电话,电话就会断开。
我用 Wireshark 分析了数据包,发现我拿起电话后,我的 VoIP 提供商的服务器就会发送 SIP 数据包 BYE 请求。当第一次响铃时,我可以看到服务器发出 INVITE 请求,然后我的适配器发送 100 TRYING、180 RINGING 和 200 OK 响应。之后,BYE 被发送,这大概就是问题所在,但我不知道为什么会这样,也不知道该如何修复。
数据包中唯一不寻常的地方是,我的适配器发送的数据包包含警告文本“检测到的 NAT 类型是端口限制锥 NA”,我不确定该怎么做,或者这是否是问题所在。我猜想如果 NAT 不工作,那么 SIP 数据包将无法到达我的适配器,但我可以在 Wireshark 中看到服务器和适配器通信正常。除此之外,数据包似乎很好,当然除了通话开始时的 BYE 请求。
我还应该提到,我已经使用 VoIP 服务和适配器有一段时间了,而这个问题是在我更换互联网服务提供商后才出现的。我也更换了调制解调器,但一旦我注意到这个问题,我就换回了旧调制解调器,但这并没有解决问题。如果可能的话,我更愿意继续使用我当前的 ISP 和 VoIP 提供商。什么可能导致 BYE 请求,我该如何防止这种情况发生?
答案1
这似乎不寻常且调试起来很棘手。如果适配器有任何类型的日志 - 请查看它。
检查 INVITE 中的 SDP 提议和 200/OK 中的 SDP 中是否有任何可疑内容 - 将其与拨出电话进行比较。
200/OK 和 BYE 之间的时间可能是关注点 - BYE 是在几毫秒内还是被延迟了。
尝试使用其他设备和/或软件电话进行比较 - 即使它们也存在问题,但使用更详细的日志也可能更容易调试。