我来自德国,我的提供商是德国电信。我将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。
有人知道什么地方可能出问题吗?
答案 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虚假(正确地如此),对方拒绝了重新邀请,并且在捕获过程中,这一系列事件重复了几次。
答案 1 :(得分:0)
谢谢您提供的信息。我发现Edgerouter确实具有SIP ALG。我已经停用了那个。然后,我已将标准SIP和RTP端口更改为自定义名称,只是为了确保没有任何东西仍在尝试做一些SIP魔术。直到我尝试禁用STUN为止,它仍然没有起作用。现在可以了。但是为什么不呢。我现在仅转发真正需要的端口,而我的手机无缘无故不需要STUN。防火墙规则允许程序包从Telekom SIP范围到我的手机。现在一切都很好。