在上一個章節(jié)中,我們介紹了通過內(nèi)置的XML IVR引擎創(chuàng)建基本的IVR應用。XML IVR引擎可以創(chuàng)建相對簡單,相對靜態(tài)的IVR應用場景。FreeSWITCH同樣支持另外一種搭建IVR場景的方式,這種方式比內(nèi)置的IVR引擎更加強大,靈活。這種方法就是通過調(diào)用各種腳本語言來配合FreeSWITCH 創(chuàng)建靈活的IVR應用模塊。FreeSWITCH 支持以下幾種腳本語言來創(chuàng)建IVR:
·JavaScript
·Lua
·Perl
我們可以通過以上任何一種語言來進行IVR開發(fā)。在這個章節(jié),我們重點技術(shù)Lua (www.lua.org),它是一種輕量級的基本語言,可以嵌入到其他的項目中。最著名的例子就是魔獸世界。
【每一種腳本語言都有他們各自的優(yōu)勢和劣勢。因為Lua 執(zhí)行比較快,穩(wěn)定性好,而且容易學習,所以我們選擇Lua 作為重點技術(shù)的基本語言。如果一切條件不變,Lua相對來說是比較好的選擇用來編寫撥號規(guī)則腳本!
在這個章節(jié),我們將討論以下內(nèi)容:
·使用Lua語言開發(fā)
·創(chuàng)建語音應用
·高級IVR
·腳本使用提示
開發(fā)語音應用中使用了Lua腳本語言,在我們的實例中,我們將更多使用自定義的phrase macros。
使用Lua語言開發(fā)
當我們使用實例配置文件時,Lua已經(jīng)被默認加載。為了確認用戶已經(jīng)安裝運行了Lua, 打開fs_cli,然后執(zhí)行命令lua。用戶應該看到類似的結(jié)果:
freeswitch@internal> lua
-ERR no reply
如果看到錯誤信息,這個錯誤信息提示沒有發(fā)現(xiàn)此命令,那么用戶需要安裝加載mod_lua 到系統(tǒng)中。就像我們編譯加載mod_flite那樣安裝此模塊。參考第二章,編譯和安裝的詳細信息。
從撥號規(guī)則中運行Lua腳本
從
<action application="lua"
data="my_script.lua arg1 arg2 arg3"/>
通過空格界定傳遞到腳本的參數(shù)。包含一個帶空格的傳遞參數(shù),請使用單引號來界定參數(shù):
<action application="lua"
data="my_script.lua 'arg 1' 'arg 2' 'arg 3'"/>
在Windows環(huán)境下: <action application="lua" data="C:\full\path\to\my_script.lua"/> 開始編寫腳本之前,讓我們簡單了解一下Lua語言的語法。
未完待續(xù)······