至于怎么安装就不说了,网上一搜一大堆,通常建议源码安装,源码安装模块都比较全,加模块也比较方便。下面简单的说一下各个模块git
在使用ivr的时候,通常都是lua实现ivr。虽然fs提供了menu的配置,可是感受不太灵活。要使用lua的ivr首先得 写一个lua的脚本。express
--打印日志 session:consoleLog("info","--------------进入欢迎的语音菜单"); --要执行answer才能给对方播放语音菜单 session:answer(); --设置这一行才会在lua执行完毕以后不自动挂断 session:setAutoHangup(false) --在死循环里面必定要判断当前会话还有没有效 while(session:ready()==true) do --播放语音,告诉对方,每个拨号的选项 session:streamFile("/usr/local/freeswitch/sounds/welcome.wav"); --这里获取对端输入的dtmf信息,也就算按下的是多少 local digit = session:getDigits(2, "#", 1000); --下面对数字逐一判断 选择执行 if(digit == "0") then --若是匹配按下的是0,进入call center,call center是一个APP,默认没用call center模块,须要在源码自行安装而且 须要load mod_callcenter加载 session:consoleLog("info","进入callcenter"); session:execute("callcenter","necoagent"); end end
而后就须要在拨号计划里面指定给lua执行了。lua也是一个app.session
<extension name="default_1236"> <condition field="destination_number" expression="^(1236)$"> <action application="lua" data="脚本所在目录/脚本文件名"/> </condition> </extension>
这样,当我向fs拨号1236的时候就会执行个人脚本app
lua在fs中应用很是广。还能够在lua里面监听某一个事件进而进行处理。在conf/autoload_configs/lua.conf.xml 里面能够设置事件回调的hook.lua
<hook event="CUSTOM" subclass="conference::maintenance" script="lua目录/lua文件名"/>日志
加上这样一句以后,当有事件自定义事件的conference::maintenance 发生的时候就会执行这个lua的脚本。固然有些事件也能够在拨号计划里面指定脚本code
<action application="set" data="bridge_pre_execute_aleg_app=lua"/>
<action application="set" data="bridge_pre_execute_aleg_data=/usr/local/freeswitch/scripts/a.lua"/>xml
加上这两句,就会在桥接以前在a腿上执行lua. 事件