網上找了一大堆,基本都是說
設置ext-rtp-ip和ext-sip-ip為公網地址就可以,但沒有效果!
最后,我在
這篇CSDN博主「flybird_168」的原創文章 找到的處理,真謝謝他了!下面對他的文章調整一下內容說明一下:
1、路由器去掉upnp和alg功能。服務器的路由本身沒進行UPNP,沒打開NAT ALG (阿里雲服務器都沒有!除非你自己去安裝)
2、在FS上開啟rport功能,這個配置默認是被注釋掉了 (下面都是修改配置文件 internal.xml)
param name="NDLB-force-rport" value="true"
3、設置rtp自動調整功能
(這個配置默認被注釋掉了,而且原來設置的是true)
param name="disable-rtp-auto-adjust" value="false"
4、設置sip和rtp的外網地址
(也可以直接設置公網IP)
param name="ext-rtp-ip" value="autonat:公網IP"
param name="ext-sip-ip" value="autonat: 公網IP "
5、設置acl參數,以此來判斷內外網呼叫
param name="local-network-acl" value="lan"
6、acl中配置lan(這里修改配置文件 acl.conf.xml)
list name="lan"default="deny"
node type="allow"cidr="172.16.19.0/24" /
/list
7、在開放FS的sip端口和rtp端口(安全組和防火牆都需要設置開放相應的端口)
實際上只開放 Profile 監聽端口就行了,如5060,5080; rtp 端口會自動nat
8、針對沒有rport功能的終端,在 reg.xml (應該是分機配置文件)中加入
<variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>
9、fs啟動項:freeswitch -nonat