Asterisk不断混淆公共IP和私有IP,因此当软电话位于NAT之后时,呼叫没有音频

时间:2020-04-30 03:59:11

标签: asterisk sip voip rtp nat

我正在尝试使用星号和定制的移动应用程序来建立voip系统,以在用户之间进行通话。 该系统在同一网络上建立时可以正常工作,但是由于软电话位于NAT之后,因此一旦部署到在线服务器上,音频就不会通过,但是所有SIP数据包都会被正确接收,并且软电话会振铃,但是当通话打开时,两个端点都听不到声音。 我到处都有关于如何设置星号以与NAT后面的终结点一起使用的信息,但是在线上所有谈论的都是旧版本的Asterisk上的Sip。但是我使用的是最新版本的Asterisk,该版本使用的是Pjsip.conf,我为端点尝试了不同的设置,但RTP仍然使IP混乱,并尝试将RTP数据包路由到专用IP而不是公用IP。 我尝试使用不同的选项尝试rewrite_contact,direct_media,force_rport,ice_support,rtp_symmetric,似乎找不到理想的设置。

有人做过吗?您是否可以查看有关Asterisk最新版本的任何文档?

3 个答案:

答案 0 :(得分:0)

当然有很多人这样做。

官方网站上有关于此的文档

https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip+to+work+through+NAT

答案 1 :(得分:0)

显然,星号部署不需要执行任何操作。这是一个客户端问题,客户端Sip电话需要启用RPORT才能启用媒体,而我使用的MizuDroid没有该功能。切换到Zoiper并将其设置为打开后,一切便开始正常工作。

答案 2 :(得分:0)

在传输pjsip(类型为扩展使用的传输)时,您必须设置local_net,external_media_address,external_signaling_address:

[transport-udp-nat]
type = transport
protocol = udp
bind = 0.0.0.0
local_net = (your local network like 192.168.0.0/24)
external_media_address = (your external IP)
external_signaling_address = (your external IP)

此外,您还必须在扩展程序中使用

rewrite_contact = yes
direct_media = no 
force_rport = yes
rtp_symmetric = yes
相关问题