簡體   English   中英

FreeSWITCH中是否與Asterisk AMI和AGI有相似之處?

[英]Are there parallels to Asterisk AMI and AGI in FreeSWITCH?

Asterisk具有Asterisk Manager接口(AMI)Asterisk網關接口(AGI) ,使用它可以在Asterisk的某些事件中觸發PHP腳本。 使用相同的PHP腳本還可以指示Asterisk在呼叫/會議旁邊做什么。 FreeSWITCH中有與AMI和AGI的相似之處嗎?

這些都是好問題。 我只想在@dkwiebe所說的內容中添加一些內容(這是正確的,BTW)。

FreeSWITCH中的AMI等效項是事件套接字。 (從技術上講,它不是“事件套接字庫”或ESL,它是用於編寫使用事件套接字的程序的抽象層。我只想做出這種區別。)事實上,FreeSWITCH等效於“asterisk -r”實際上是一個名為“fs_cli”的基於ESL的程序 - FreeSWITCH命令行界面的縮寫。 fs_cli程序是您使用ESL可以完成的一個很好的例子。

此外,沒有理由不能使用ESL程序來完成許多可以使用AGI腳本完成的事情。 ESL“連接對象”可以“鎖定”到單個呼叫支路並控制它。 維基上有一些例子,即將發布的FreeSWITCH Cookbook將有一些關於這個主題的食譜。 (完全披露:我是FreeSWITCH Cookbook的合着者。)

控制像AGI這樣的調用的另一種與ESL相關的方法是使用fs_ivrd守護進程。 它不像ESL那么常用,但對於類似AGI的腳本來說是個不錯的選擇。 有關詳細信息,請參閱此Wiki頁面

最后,我想提一下Lua是編寫腳本/邏輯/等的絕佳選擇。 在呼叫控制中。 它簡單,輕便,易於學習。 在實驗室中,我們在8核機器上看到了幾千個並發Lua控制的呼叫。 Lua甚至在一些非常苛刻的環境中工作。

歡迎加入irc.freenode.net上的#freeswitch,與FreeSWITCH社區討論您的問題。

FreeSWITCH wiki上有一個頁面解決了大部分“Asterisk到FreeSWITCH”的問題: Rosetta Stone

AGI用於呼叫期間使用的腳本(即從撥號方案durrign撥號方案執行調用)。 收聽AMI並等待事件的腳本是獨立的。 雖然后者在技術上可以做前者的工作,但你最好還是將它們分開。

@dkwiebe在serverfault上給出了答案 - https://serverfault.com/a/345513/105376

對於AMI,您正在尋找事件套接字庫 mod_event_socket頁面上提供了一些示例。

AGI有點不同。 您可以在FreeSWITCH中執行類似的操作,但他們會建議使用lua 我個人使用FreeSWITCH mod_perl效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM