至於怎麼安裝就不說了,網上一搜一大堆,通常建議源碼安裝,源碼安裝模塊都比較全,加模塊也比較方便。下面簡單的說一下各個模塊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. 事件