系列文章目录
【FreeSwitch开发实践】centos7下编译安装freeswitch及常见编译问题的解决
【FreeSwitch开发实践】freeswitch配置wss
【FreeSwitch开发实践】freeswitch配置wss证书问题 Encrypted Alert/Certification Unknown
【FreeSwitch开发实践】ESL简介
前言
在《【FreeSwitch开发实践】 ESL简介
》对ESL作了简要介绍,知道了ESL实际就是对Event Socket的一组实现库,在这里主要对FreeSwitch下如下配置ESL作了一简介。
(说明一下,以下对配置的介绍只针对内连模块InBound)
一、配置修改
和配置ESL相关的总共有两个文件,所在目录为conf/autoload_configs
,
配置文件为event_socket.conf.xml
和 acl.conf.xml
。
1.1 event_socket.conf.xml
<configuration name="event_socket.conf" description="Socket Client">
<settings>
<param name="nat-map" value="false"/>
<param name="listen-ip" value="0.0.0.0"/>
<param name="listen-port" value="8021"/>
<param name="password" value="ClueCon"/>
<param name="apply-inbound-acl" value="socket"/>
</settings>
</configuration>
配置说明:
listen-ip
默认是::, 修改成0.0.0.0,意为监听所有的Ip;
listen-port
是ESL的监听端口
password
是ESL连接auth命令的密码
apply-inbuound-acl
是网关配置,其中socket
在acl.conf.xml中配置,可以配置哪些ip或网段是可以连接,哪些是禁止连接的
1.2 acl.conf.xml
<list name="socket" default="allow">
<node type="allow" cidr="192.168.0.0/32"/>
</list>
配置说明:
node type
allow
是允许连接到FreeSwitch的配置, 其中192.168.0.0/32
允许的网段;这里需要根据实际情况填写,当然在测试阶段,也可以写成0.0.0.0/32
允许所有网段(当测试完毕,务必改成实际需要,避免被网络攻击)。
以上就是对ESL的配置的修改,下面用FreeSwitch自带的fs_cli工具进行验证。
顺便说一下,fs_cli完全是用ESL实现的,它能ESL连接到FreeSwitch,再通过ESL订阅FreeSwitch各种事件,可以通过ESL完成大部分FreeSwitch的控制,所以在fs_cli上操作FreeSwitch和在FreeSwitch命令行上操作基本是一致,这也ESL的魅力所在。
二、fs_cli验证
fs_cli远程连接FreeSwitch命令如下:
fs_cli.exe --host=192.168.0.102 --port=8021 --password=ClueCon
命令说明:
--host
FreeSwitch服务器的ip地址
--port
FreeSwitch ESL监听的端口
--password
ESL连接密码
出现下面的提示,则代码连接成功了:
试一下version
命令:
完美,ESL配置验证完成。
三、常见错误
[WARNING] mod_event_socket.c:2676 IP 192.168.0.102 Rejected by acl “socket”
出现这个错误,一般是由于只event.conf.xml
配置了网关名称"socket", 如<param name="apply-inbound-acl" value="socket"/>
,但没有在acl.conf.xml
配置相应的网络策略,解决的办法前面已经给出来了,参考《1.2 acl.conf.xml》。
总结
以上就关于FreeSwitch ESL配置所有内容,主要对ESL配置文件修改和用fs_cli工具进行测试验证作了介绍。另外,ESL的网关配置部分(acl.conf.xml
),可以进行各种网络策略配置,可以防止网络攻击,外网运营时这部分尤其重要。