加载中…
个人资料
华陌飞尘
华陌飞尘
  • 博客等级:
  • 博客积分:0
  • 博客访问:37,246
  • 关注人气:6
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Freeswitch在阿里云服务器语音不通问题小记(FS的NAT穿越穿透)

(2020-05-19 15:41:00)
标签:

freeswitch

centos

linux

阿里云

nat

分类: 技术
我原来都是在公司的服务器或自己的开发环境安装FS,这次必须在阿里云上安装,自己觉得没问题,但安装好就就发现问题出来了。。
语音不通,压根就没声音!
本地PC上抓包一看,怎么回事,所有RTP包都发给了阿里云的私网地址,那当然不会通了,而后,再看SDP,服务器发过来的就是私网地址,怎么会这样呢?
---其实也很简单,因为阿里云的服务器地址就只有私网地址,他的公网地址是NAT映射的!也就是这是NAT穿透问题了!

我去阿里云下工单找技术支持,询问NAT穿透的问题,结果得到的答复是阿里云的专有网络默认是不能支持SIP的,需要去专有网络设置EIP可见才可能(他们也不100%确定,理论是可行的),但关键是,要设置这个却仅支持几个特定地域的服务器,而我当前的服务器不在其列。。。   问了他们等于没问!

而后,网上找了一大堆,基本都是说设置ext-rtp-ip和ext-sip-ip为公网地址就可以,但没有效果!
最后,我在 这篇CSDN博主「flybird_168」的原创文章 找到的处理,真谢谢他了!下面对他的文章调整一下内容说明一下:

1、需要服务器的路由本身没进行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端口(安全组和防火墙都需要设置开放相应的端口)
8、针对没有rport功能的终端,在reg.xml中加入
variablename="sip-force-contact" value="NDLB-connectile-dysfunction"
9、fs启动项:freeswitch -nonat 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有