MYVOIPAPP

为什么语音单通,甚至双不通?

经常有客户向我们咨询:为什么我听不到对方的声音?甚至为什么双方都听不到声音?这个问题的根本原因可能是防火墙过滤了语音流,或者NAT(网络地址转换)屏蔽或者丢失了语音流。在大多数场景中,我们发现SIP设备,包括SIP电话、软终端以及网关等,总是部署在私网内部,配置私网地址,路由器采用NAT进行公网与私网地址的转换。

请参考以下方法解决类似语音单通或者双不通问题。

防火墙

如果您在VoIP网络中部署了防火墙,您可以尝试关闭防火墙进行测试。如果这种情况下能解决问题,说明您需要和网络管理员(或者系统管理员)确认防火墙配置,确保 miniSIPServer 可以被外网和内网设备访问。

关闭 SIP-ALG

请检查您的路由器是否具备 SIP-ALG (应用程序网关,Application Level Gateway) 功能。如果有这个功能,请务必关闭该功能。 根据我们的大量实践经验,绝大部分路由器在处理 SIP-ALG 功能时都有大量的错误。

关闭该功能后,请重启路由器。

终端配置 STUN

如果您的 SIP 电话或者 SIP 终端设备部署在私网内部,大多数情况下,您需要设置STUN(Simple Traversal of UDP through NATs)服务器帮助SIP终端进行私网穿越。大多数SIP设备(以及SIP终端软件)都支持 STUN 协议。

下图是 microSIP 软终端中配置 STUN 服务器。我们采用公网上的 STUN 服务器: stun.minisipserver.com 。

在 microSIP 中配置 STUN 服务器信息

如果您的 miniSIPServer 部署在公共网络、采用公共IP地址,您可以采用 miniSIPServer 作为您的STUN服务器,因为 miniSIPServer 内嵌了 STUN 服务器。

我们推荐以下公网的 STUN 服务器:

  • stun.minisipserver.com
  • stun.counterpath.net
  • stun.zoiper.com
转发媒体流

我们可以配置 miniSIPServer 转发媒体流。在分机的配置窗体中,请点击“媒体类业务”页面,并配置“转发媒体流”项。

Configure miniSIPServer to relay media stream

需要强调的是:如果配置 miniSIPServer 转发媒体流,SIP电话(设备)的媒体流都将全部转发给 miniSIPServer,这会严重增加服务器的负荷。 您需要综合考虑网络带宽、系统负荷等综合因素的影响。

如果 miniSIPServer 部署在路由器后面,默认配置私网地址,则需要做更多的配置来解决问题。

公网地址和私网地址

请参考下图。 miniSIPServer 可以配置两个 SIP 地址。 我们将"首选地址"设置为外部公网地址(可以是域名,也可以是IP地址),将“次选地址”设置为本机的私网地址。

miniSIPServer 中同时配置公网地址和私网地址

在这个场景中, 外部公网的 SIP 分机用户与 miniSIPServer 的公网地址通信, 而本地私网的 SIP 分机用户与 miniSIPServer 的私网地址通信。

转发端口

路由器需要转发相应的端口给 miniSIPServer, 否则 miniSIPServer 仍然无法接收外部的数据包。 默认情况下, 路由器应当转发以下 UDP 端口:

  • 5060
  • 10000 - 20000

如果部署了 SIP over TCP/TLS, 则还需要转发相应的 TCP 端口:5060 以及 5061。

启用 UPnP

上述端口转发需要手工配置路由器。 如果路由器具备 UPnP 能力并且已经打开了这项功能, 就可以配置 miniSIPServer 自动向路由器请求端口映射。 在 miniSIPServer 的系统配置中,请确保选择了“采用 UPnP 向路由器请求映射端口”。

配置 UPnP
解除干扰

某些地区运营商会干扰、拦截SIP信令,遇到这种情况时,可以试试修改标准的SIP端口或者采用“基于TCP/TLS的SIP”,请参考以下文档的说明:

进一步了解

我们有两篇文档进一步描述了这个问题的诸多细节。如果您有兴趣,请访问以下文档:

为什么会语音单通甚至双不通?

如何解决语音单通甚至双不通的问题?