首頁 > 新聞 > 專家觀點(diǎn) >

《FreeSWITCH 1.2》:撥號規(guī)則腳本語言

2014-04-23 11:44:20   作者:   來源:CTI論壇   評論:0  點(diǎn)擊:


  在上一個章節(jié)中,我們介紹了通過內(nèi)置的XML IVR引擎創(chuàng)建基本的IVR應(yīng)用。XML IVR引擎可以創(chuàng)建相對簡單,相對靜態(tài)的IVR應(yīng)用場景。FreeSWITCH同樣支持另外一種搭建IVR場景的方式,這種方式比內(nèi)置的IVR引擎更加強(qiáng)大,靈活。這種方法就是通過調(diào)用各種腳本語言來配合FreeSWITCH 創(chuàng)建靈活的IVR應(yīng)用模塊。FreeSWITCH 支持以下幾種腳本語言來創(chuàng)建IVR:

  ·JavaScript
  ·Lua
  ·Perl

  我們可以通過以上任何一種語言來進(jìn)行IVR開發(fā)。在這個章節(jié),我們重點(diǎn)技術(shù)Lua (www.lua.org),它是一種輕量級的基本語言,可以嵌入到其他的項(xiàng)目中。最著名的例子就是魔獸世界。

  【每一種腳本語言都有他們各自的優(yōu)勢和劣勢。因?yàn)長ua 執(zhí)行比較快,穩(wěn)定性好,而且容易學(xué)習(xí),所以我們選擇Lua 作為重點(diǎn)技術(shù)的基本語言。如果一切條件不變,Lua相對來說是比較好的選擇用來編寫撥號規(guī)則腳本!

  在這個章節(jié),我們將討論以下內(nèi)容:

  ·使用Lua語言開發(fā)
  ·創(chuàng)建語音應(yīng)用
  ·高級IVR
  ·腳本使用提示

  開發(fā)語音應(yīng)用中使用了Lua腳本語言,在我們的實(shí)例中,我們將更多使用自定義的phrase macros。

  使用Lua語言開發(fā)

  當(dāng)我們使用實(shí)例配置文件時,Lua已經(jīng)被默認(rèn)加載。為了確認(rèn)用戶已經(jīng)安裝運(yùn)行了Lua, 打開fs_cli,然后執(zhí)行命令lua。用戶應(yīng)該看到類似的結(jié)果:

  freeswitch@internal> lua
  -ERR no reply

  如果看到錯誤信息,這個錯誤信息提示沒有發(fā)現(xiàn)此命令,那么用戶需要安裝加載mod_lua 到系統(tǒng)中。就像我們編譯加載mod_flite那樣安裝此模塊。參考第二章,編譯和安裝的詳細(xì)信息。

  從撥號規(guī)則中運(yùn)行Lua腳本

  從 標(biāo)簽中調(diào)用lua撥號應(yīng)用,可以使用以下類似語法:

  <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'"/>

  如果用戶的腳本安裝在了默認(rèn)FreeSWITCH的scripts 子目錄,用戶沒有必要指定腳本的完整路徑。如果需要那樣設(shè)置,用戶可以使用絕對路徑。例如,在Linux/Unix環(huán)境下,可以這樣設(shè)置:

  <action application="lua" data="/full/path/to/my_script.lua"/>

  在Windows環(huán)境下:

  <action application="lua"

  data="C:\full\path\to\my_script.lua"/>

  開始編寫腳本之前,讓我們簡單了解一下Lua語言的語法。

  未完待續(xù)······

 

 

 

 

 

 

 

 

 

相關(guān)閱讀:

分享到: 收藏

專題