我在Edgerouter X(德国Telekom)上进行的VoIP设置有什么问题

时间:2019-11-05 12:30:10

标签: sip router voip

我来自德国,我的提供商是德国电信。我将ubiquiti edgerouter x与到Telekom的pppoe连接一起使用。互联网运行良好,但我无法使用VoIP。我的手机是西门子Gigaset C430A GO。向导之后,只有我在那里进行的配置,输入我的电话号码并选择预定义的Telekom设置。根据Telekom支持,这些设置应该正确。

在edgerouter上,我已将白名单列入名单,并将几乎每个端口转发到我的手机(10.1.0.4)。

请查看我通过手机拨打到配置的座机的电话时所用的tcpdump:https://justpaste.it/4i8n9

问题是它正在响,我接听,但听不到任何声音。 10秒后,连接关闭。相反,我也听不到任何声音,但连接保持打开状态。但是:当我一侧挂断电话时,另一侧会收到通知。

我觉得这很奇怪。它看起来确实不像是端口关闭或防火墙有其他问题。不幸的是,到目前为止我还没有使用SIP的经验,因此从日志中我无法真正得知那里是否一切正确。

我已经更改了日志中的电话号码。 111122223333是我打电话的座机。 444455556666是我打过的电话号码。 日志777788889999也在日志中,这是另一个已配置的座机。我不知道为什么在日志中。 100.200.100.200是我的外部IP。 10.1.0.4是我的手机内部IP。

有人知道什么地方可能出问题吗?

2 个答案:

答案 0 :(得分:0)

您应该检查路由器的NAT或ALG设置以及手机的STUN设置。

这是背后的原理:您发布的捕获内容显示,远程方希望端口33880上有媒体,而您的电话希望端口5012上有媒体。问题在于,虽然电话成功发送了音频,但没有收到任何声音作为回报。此外,在通话大约一秒钟时,您的电话正在使用其本地IP地址而不是可公开路由的地址发送重新邀请:

...
o=- 5012 14 IN IP4 10.1.0.4
s=Mapping
c=IN IP4 10.1.0.4
...

由于SDP虚假(正确地如此),对方拒绝了重新邀请,并且在捕获过程中,这一系列事件重复了几次。

  • 如果您的路由器支持ALG并且已启用,则应尝试反转此设置,因为它会有效篡改通过路由器的SIP流量;它的目的已被NAT淘汰,如今造成的损害大于帮助;
  • 如果您路由器的NAT设置要求对称NAT,请禁用它;否则,请禁用它。它的行为与您描述的问题一致(尽管可能有其他原因);
  • 检查手机的STUN设置(用户手册第106页)并启用它;当通知远程方将音频发送到工作端口时,STUN可以遍历本地网络,因此它在NAT方面非常有用。

答案 1 :(得分:0)

谢谢您提供的信息。我发现Edgerouter确实具有SIP ALG。我已经停用了那个。然后,我已将标准SIP和RTP端口更改为自定义名称,只是为了确保没有任何东西仍在尝试做一些SIP魔术。直到我尝试禁用STUN为止,它仍然没有起作用。现在可以了。但是为什么不呢。我现在仅转发真正需要的端口,而我的手机无缘无故不需要STUN。防火墙规则允许程序包从Telekom SIP范围到我的手机。现在一切都很好。