2016-08-12 92 views
0

我想從Asterisk dialplan訪問我的外部數據庫,但是我得到錯誤「No application MySQL for extension mycontextname」。如何從Asterisk dialplan訪問我的外部MYSQL數據庫?

因此,我運行命令「module show like mysql」,它顯示0模塊。我在博客上閱讀過,我必須添加諸如app_addon_sql_mysql.so模塊之類的mysql插件,但是我發現一次也沒有解決這種情況。 「模塊顯示如mysql」命令後,我仍然得到0模塊。

我使用的是Asterisk 13.10.0,請哪個mysql模塊對我的Asterisk版本有效,哪裏可以得到它?

+0

星號13有app_mysql.so模塊。嘗試:模塊加載app_mysql.so – viktike

回答

0

Mysql已過時並且有附加應用程序。你不應該使用它。如果你有,你需要編譯它(make make之前做menuconfig)。

推薦的方法是使用func_odbc或實時的

-1

就個人而言,我不喜歡在Asterisk的撥號規則做數據庫的東西。我覺得它很醜陋,很難寫(引用),難以維護和脆弱。

我更喜歡在AGI中編寫應用程序(邏輯和數據庫訪問)。您對數據庫具有「完全」訪問權限,並且可以將所有的細節隱藏在一個很好的黑盒中,在這裏您的代碼可以通過真正的編譯器(或腳本解釋器)進行檢查。

+0

AGI每次使用時都運行NEW進程。當然你可以隨心所欲地寫,但在大多數情況下,func_odbc的性能會更好。 – arheops

+0

是的,流程創建更加「昂貴」,但是除非您使用腳本語言編寫AGI,並且在與調用者進行交互之間執行數十個步驟,否則成本非常低。 – sedwards

+0

對不起。被'5分鐘編輯'定時器所捕獲... 是的,流程創建更加「昂貴」,但是除非您使用腳本語言編寫AGI,並且在與調用者的交互之間執行幾十次,否則成本非常低。處理數百個同時呼叫。 我用C語言編寫了大部分的AGI,所以我可以在用Perl或PHP編寫的AGI加載解釋器,解析源代碼,生成字節代碼,然後執行時執行xxx。 – sedwards