亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

 首頁(yè) > 新聞 > 專(zhuān)家觀點(diǎn) >

《FreeSWITCH: VoIP實(shí)戰(zhàn)》:嵌入式腳本

2012-08-22 11:06:12   作者:杜金房    來(lái)源:FreeSWITCH   評(píng)論:0  點(diǎn)擊:


  非 Session 函數(shù)

  Lua 腳本中也可以使用跟 sesion 不相關(guān)的函數(shù),最典型的是 freeswitch.consoleLog(),用于輸出日志,如:

 freeswitch.consoleLog("NOTICE", "Hello lua log!\n")

  另外一個(gè)是 freeswitch.API,它允許你執(zhí)行任意 API,如

 api = freeswitch.API();
 reply = api:executeString("sofia", "status");

  獨(dú)立的 Lua 腳本

  獨(dú)立的 Lua 腳本可以直接在控制臺(tái)終端上(使用 luarun)執(zhí)行,這種腳本大部分可用于執(zhí)行一些非 Session 相關(guān)的功能,后面我們會(huì)講到相關(guān)例子。

  數(shù)據(jù)庫(kù)

  在 Lua 中,可以使用 LuaSQL 連接各種關(guān)系型數(shù)據(jù)庫(kù),但據(jù)說(shuō) LuaSQL 與某些版本的數(shù)據(jù)庫(kù)驅(qū)動(dòng)結(jié)合有內(nèi)存泄漏問(wèn)題,配置起來(lái)也比較復(fù)雜。

  另一種連接數(shù)據(jù)庫(kù)的方式是直接使用 freeswitch.Dbh。它可以直接通過(guò) FreeSWITCH 內(nèi)部的數(shù)據(jù)庫(kù)連接句柄來(lái)連接 sqlite 數(shù)據(jù)庫(kù)或任何支持 ODBC 的數(shù)據(jù)庫(kù)。下面是一個(gè)來(lái)自 FreeSWITCH wiki 的例子。

 local dbh = freeswitch.Dbh("dsn","user","pass") -- when using ODBC
 -- OR --
 -- local dbh = freeswitch.Dbh("core:my_db") -- when using sqlite

 assert(dbh:connected()) -- exits the script if we didn't connect properly

 dbh:test_reactive("SELECT * FROM my_table",
                   "DROP TABLE my_table",
                   "CREATE TABLE my_table (id INTEGER(8), name VARCHAR(255))")

 dbh:query("INSERT INTO my_table VALUES(1, 'foo')") -- populate the table
 dbh:query("INSERT INTO my_table VALUES(2, 'bar')") -- with some test data

 dbh:query("SELECT id, name FROM my_table", function(row)
   stream:write(string.format("%5s : %s\n", row.id, row.name))
 end)

 dbh:query("UPDATE my_table SET name = 'changed'")
 stream:write("Affected rows: " .. dbh:affected_rows() .. "\n")

 dbh:release() -- optional

  Javascript

  相對(duì)于 Lua, 大家可能對(duì) Javascript 更熟悉一些。Javascript 是 Web 瀏覽器上最主流的編程語(yǔ)言,它最早是設(shè)計(jì)出來(lái)用于配合 HTML 渲染頁(yè)面用的,近幾年由于 Node.js 的發(fā)展使它在服務(wù)器端的應(yīng)用也已發(fā)揚(yáng)光大。它遵循 EMCAScript 標(biāo)準(zhǔn)。

  通過(guò)加載 mod_spidermonkey 模塊可以使用 js 解析器,模塊 mod_spidermonkey_odbc 則支持在 Javascript 腳本中連接 ODBC 數(shù)據(jù)庫(kù)。

  除語(yǔ)法不同外,用法上與 Lua 類(lèi)似,如使用 javascript (它是一個(gè)APP) 執(zhí)行一個(gè) session 相關(guān)的腳本,或 jsrun (它是一個(gè)API)執(zhí)行一個(gè)非 session 相關(guān)的腳本。

  其它腳本語(yǔ)言

  其它腳本語(yǔ)言的使用也類(lèi)似,讀者可參照使用。值得一提的是,F(xiàn)reeSWITCH 有一個(gè) mod_managed 模塊支持 Windows .NET 架構(gòu)下的語(yǔ)言(F#, VB.NET, C#, IronRuby, IronPython, JScript.NET),通過(guò) mono 也可以支持其它平臺(tái)(如 Linux )。


 

分享到: 收藏

專(zhuān)題