在以前的文档中,我们曾经介绍过阿里云安装脚本FreePBX的方法,很多企业终端用户仍然掌握不了其配置的核心步骤,我们我们再次更新了脚本,支持了Asterisk-15,对NAT配置做了重点说明,也增加了PJSIP的配置说明。这样用户基本上就可以完全实现简单的SIP 分机之间的呼叫测试。
1、环境准备
用户需要准备以下配置环境:
阿里云购买ECS示例,设置安全访问组,保证外网正常访问。
星昊通官方网站下载FreePBX安装脚本。访问公司页面主菜单,技术支持->Asterisk学习中心,点击下载安装脚本。
为了帮助中国用户尽快了解开源语音通信的技术架构和文档配置,我公司一直不断发布开源语音通信的相关配置文档和翻译资料。未来我们将按照一定的时间进度定期发布开源通信相关学习资料。点击下载:Asterisk中文语音包下载: 完整的Asterisk系统语音文件,用户下载替换默认的语音文件,重新加载,即可播放中文语音提示。点击下载:FreePBX-12 电子书下载:FreePBX 用户手册中文版本,包括如何下载FreePBX,安装PBX,配置FreePBX的各种功能。点击脚本下载在阿里云安装FreePBX-14,支持Centos-7
2、下载配置脚本和执行脚本
下载脚本以后,通过命令行执行Linux权限设置,然后开始执行脚本。

注意,脚本中的Asterisk 源代码下载链接可能有时失效。如果出现安装错误,用户到官方网站找一个新的下载链接,重新修改脚本中的链接。脚本成功执行后,用户就可以通过公网IP地址访问阿里云安装的FreePBX。
systemctl enable httpd.service
systemctl start httpd.service
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.10.tar.gz
cd /usr/src
tar vxfz jansson.tar.gz
3、配置NAT环境
安装完成后,首先需要设置安全策略,修改端口。如果不修改端口的话,IPPBX可能是完全在公网上裸奔。
确认以上步骤成功安装了FreePBX以后,通过公网地址登录FreePBX,输入密码,登录访问界面:


接下来,用户需要设置阿里云用户安全组,开启我们使用的SIP端口和RTP端口,保证用户SIP分机可以正常注册。入口方向:

出口方向:

然后,我们需要在FreePBX界面做几个方面的事情,这是防止外网注册的第一步。首先,关闭chan_sip, 修改chan_sip 端口,防止外网使用默认5060端口注册,关闭chan_sip, 仅使用pjsip 启动来进行SIP注册。在高级设置中,现在pjsip,关闭chan_sip。这里再次说明,FreePBX和Asterisk现在已经切换到pjsip协议栈,不再使用chan_sip, 所以我们现在官方支持的方式。当然,用户也可以chan_sip。

在SIP 设置界面,修改NAT地址,开启外网IP地址和端口号。注意,这里的外网地址系统已经自动检测到了,所以,无需人工填写。

修改默认端口5060为新的端口,我们将使用这个新端口来测试呼叫。

当然,用户需要在公司网络的路由器开启相应的端口和RTP流端口,关闭ALG开关。阿里云安全设置创建好以后,FreePBX NAT 外网设置和端口创建以后,用户就可以重新启动一次FreePBX界面,然后进行下一步的分机注册。最后,确认FreePBX 的防火墙关闭和iptables关闭。
4、创建SIP分机
登录FreePBX界面,点击分机,选择创建pjsip分机(这里,因为chan_sip 已经关闭,所以看不到chan_sip)。点击刷新界面,FreePBX就会加载最新的配置文件。

5、登录分机呼叫
FreePBX创建了分机以后,我们使用软电话登录这个公网IP地址和修改后的端口。如果以上安全策略设置成功的话,我们的软电话是可以成功注册的。


Asterisk CLI 命令也可以看到注册的状态,这里两个分机已经成功注册。表示可以进行内部呼叫。

6、分机呼叫测试
使用分机700呼叫分机701。

Asterisk CLI 呼叫日志,表示呼叫成功。

CDR报表可以看到呼叫记录:

7、其他问题说明
有时,用户安装完成以后,可能在界面出现Asterisk 连接失败的红色提示,这表示Asterisk还没有完全启动。用户可以使用fwconsole 命令重新启动一次任务,尽量不要使用Asterisk直接启动的命令。
linux: fwconsole restart
我们在阿里云的Centos-7 进行的测试,其他比较新的Centos 版本应该也可以支持,用户可以自己测试。
在脚本编译过程中,有时可能出现SIP TLS 安全包安装问题,用户需要自己重新手动安装。另外,如果出现Asterisk编译失败,一定要查找其真正的原因,或者源代码链接失效或者支持包没有安装成功。
如果SIP 分机不能注册的话,用户需要重新检查端口,防火墙,路由器设置和FreePBX NAT设置,另外,确认系统防火墙和iptables关闭,或者保证其IP地址在白名单状态。
如果用户需要支持呼入呼出的话,用户需要对接网关或者购买其他的SIP trunk服务来对接。这里不再讨论。
如果需要安全防护的话,用户或者购买阿里云的VPN服务,或者通过FreeSBC实现对接服务,保证系统的安全性。
8、总结
在本文档中,我们技术类如何通过一键式安装方式在阿里云部署开源免费的FreePBX,以及如何配置NAT环境,保证分机可以正常注册,并且成功呼叫。笔者重点介绍了阿里云的安全策略设置,FreePBXNAT设置和修改SIP协议以及端口,通过这样的设置可以减少外网注册的问题。通过一定的配置,FreePBX可以轻松实现开源免费的云总机,振铃组,电话录音,呼入呼出等强大的IPPBX功能。



关注微信公众号:asterisk-cn,获得有价值的Asterisk行业分享
Asterisk freepbx 中文官方论坛:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技术文档: www.freepbx.org.cn
融合通信商业解决方案,协同解决方案首选产品:www.hiastar.com
Asterisk/FreePBX中国合作伙伴,官方qq技术分享群(3000千人):589995817
Asterisk freepbx 中文官方论坛:http://bbs.freepbx.cn/forum.php
Asterisk freepbx技术文档: www.freepbx.org.cn
融合通信商业解决方案,协同解决方案首选产品:www.hiastar.com
Asterisk/FreePBX中国合作伙伴,官方qq技术分享群(3000千人):589995817