FreeSWITCH的架构设计的非常好,可以通过动态加载模块来扩充功能。 通过源码安装的时候,FreeSWITCH缺失只安装了一些基本模块,还有很多模块并没有安装,可以通过如下的方法进行安装。
1. 声音模块
声音文件分为两种:一种提示音,用于通话期间的语音提示,如voicemail的提示音,支持TTS的提示音等。另一种是音乐,用于Hold状态的播放,即所谓的Music on Hold.
1. window上是默认安装,linux中需要在源码中添加
make sounds-install
make moh-install
2. 安装过程中将自动从files.freeswitch.org下载相关的语音包,并解压到安装路径(默认安装在/usr/local/freeswitch/sounds)
3. 普通电话支持是8kHz,如需要16kHz的高清文件,可以按如下命令安装:
make cd-sounds-install
make cd-moh-install
2.呼叫中心模块
mod_callcenter
模块主要功能是实现实际的呼叫中心应用。
对于主教用户来说,mod_callcenter采用的是一种基于积分策略的排队算法。
用户在队列中每待一秒,积分自动加一。在座席端,它实现了一个多级的梯队,允许具有不同技能的坐席通过不同的优先级来对用户提供服务。
1. 源码中安装:
make mod_callcenter-install
2. 然后再freeswitch控制台加载该模块
load mod_callcenter
3. 需要在freeswitch启动时自动加载该模块,可以编辑conf/autoload_configs/modules.conf.xml中去掉该模块相关的行注释:
<load module="mod_callcenter"/>
使用在呼叫中心队列位置
3.话单模块
mod_xml_cdr、mod_json_cdr、mod_format_cdr
分别是使用xml传递话单,使用json传递话单,配置xml或json格式的话单
模块主要功能:将话单写入远程的http服务器;
此处使用的是mod_format_cdr模块,方便后端选择需要什么样的格式的数据。
1. 源码中安装:
make mod_format_cdr-install
2. 然后进入modules.conf.xml取消掉mod_format_cdr的注释即可自动加载
3. 加载模块load mod_format_cdr
4. 注意 安装好后建议从启freeswitch服务器,因为我使用load mod_format_cdr发现无用
4.modxml curl模块
mod_xml_curl可用于动态控制FreeSWITCH的行为
作用:
它就像任何其他典型的API一样,它会向您的Web应用程序发送一个POST请求,您将回复一大堆XML。
它将获取本来通过FreeSWITCH配置文件加载的任何配置。
如果它从您的Web应用程序收到有效响应,那么它将加载配置,就像您将其放入FreeSWITCH配置文件一样
主要功能:
1. 动态管理用户注册,将数据注册嵌入后台
2. 动态控制呼叫路由dialplan,使用前端语言控制,呼叫流程
3. 控制录音文件的存储
安装该模块
1. 在源码中安装:
make mod_xml_curl && make mod_xml_curl-install
2. cd /usr/local/freeswitch/conf/autoload_configs/目录下的modules.conf.xml文件取消
<!-- <load module="mod_xml_curl"/> -->的注释
3. 为mod_xml_curl绑定网关
编辑/freeswitch/conf/autoload_configs/xml_curl.conf.xml
4. 创建一个本地的http服务上面的地址就是创建的服务器地址的directory.php文件,编辑管理用户逻辑
注意:使用该部分,Web应用程序的性能将直接影响FreeSWITCH的性能