最近一位 miniSIPServer 云通信系统客户报告了一个问题,他的 SIP 电话全部都离线了,无法注册到虚拟服务器。我们检查了网络和对应的虚拟节点,结果一无所获。
我们试图跟踪来自该用户分机的 SIP 消息,但同样跟踪不到任何消息。这说明来自客户侧的 SIP 消息都丢失了,但是测试表明他的本地网络很正常,其他网络应用都没有问题,唯独 SIP 网络宕机了。
这确实非常奇怪。最终客户发现他本地的 DNS 记录由于不可知的原因被修改了,本地 ISP 对虚拟服务器的 DNS 查询记录返回了错误的地址。将 DNS 服务器配置为腾讯的 DNS 服务器地址后,问题解决,他的 VoIP 网络回归正常。
如果您的所有 SIP 电话都离线了,同时又发现网络是正常工作状态,您可以试试检查 DNS 记录。我们建议以下小技巧对比检查本地 ISP 的 DNS 记录与腾讯 DNS 记录。
如果您的工作系统是 Windows 系统,可以使用 nslookup 命令检查 DNS 结果。例如,我们指定通过腾讯的 DNS 服务器(即‘119.29.29.29’)查询虚拟服务器‘1425.s1.minisipserver.com’的 DNS 记录,命令如下所示:
nslookup 1425.s1.minisipserver.com 119.29.29.29
如果您的工作系统是 Linux 系统,可以使用 dig 命令查询 DNS 结果,如下所示:
dig @119.29.29.29 1425.s1.minisipserver.com
您可以按照上述方法再检查本地 ISP 的 DNS 结果。如果结果与腾讯的 DNS 结果不一致,那说明(1)您本地的 ISP 屏蔽了我们的云通信系统,或者(2)本地 ISP 的 DNS 记录由于不可知的原因被污染了。
我们推荐在 VoIP 网络环境中采用腾讯DNS 服务器(地址是 119.29.29.29),或者阿里DNS 服务器(地址是 223.5.5.5)。
另外,Debian 系统默认没有 dig 命令,您需要安装 dnsutils 包获得该工具:
sudo apt install dnsutils