Asterisk有Asterisk Manager Interface (AMI)和Asterisk Gateway Interface (AGI),使用它可以觸發來自Asterisk的某些事件的PHP腳本。使用相同的PHP腳本還可以指示Asterisk在呼叫/會議旁邊做什麼。 FreeSWITCH中AMI和AGI是否有相似之處?與FreeSWITCH中的Asterisk AMI和AGI有相似之處嗎?
回答
這些都是很好的問題。我只是想在@dkwiebe所說的內容中添加一些內容(這是正確的,順便說一下)。
FreeSWITCH中的AMI等效項是事件套接字。 (從技術上講,它不是「事件套接字庫」或ESL,它是一個用於編寫使用事件套接字的程序的抽象層),實際上,FreeSWITCH相當於「asterisk -r」實際上是一個名爲「fs_cli」的基於ESL的程序 - FreeSWITCH命令行界面的縮寫。 fs_cli程序是ESL可以完成的一個很好的例子。
此外,沒有理由不能使用ESL程序來執行AGI腳本可以完成的許多事情。 ESL「連接對象」可以「鎖定」到單個呼叫線路並對其進行控制。維基上有一些例子,即將推出的FreeSWITCH食譜將會有一些關於這個主題的食譜。 (完全披露:我是FreeSWITCH食譜的合着者。)
另一個控制像AGI這樣的調用的ESL相關方法是使用fs_ivrd守護進程。它比ESL更少使用,但對於類似AGI的腳本來說是一個不錯的選擇。有關更多詳細信息,請參見this wiki page。
最後,我想提一下,Lua是做腳本/邏輯/等的最佳選擇。在通話控制中。它簡單,輕便,易於學習。在實驗室中,我們看到了一臺8核機器上的幾千個併發Lua控制呼叫。即使在一些非常苛刻的環境中,Lua也能工作
歡迎加入irc.freenode.net上的#freeswitch,與FreeSWITCH社區討論您的問題。
謝謝你提供這樣的信息答案。在AGI中,我可以用PHP編寫代碼,不需要學習任何新的邏輯實現。所以第一個問題,使用PHP腳本仍然是一個選項,而不是Lua?其次,如果使用PHP而不是Lua,它會在系統上造成多少開銷? – 2012-01-02 19:23:41
AGI用於在呼叫期間使用的腳本(即從撥號計劃撥號規則執行中調用)。傾聽AMI並等待事件的腳本是獨立的。雖然後者在技術上也可以完成前者的工作,但是讓他們保持分離更好。
我明白那一部分。我最近聽說FreeSWITCH比Asterisk更好,更可靠。由於我目前正在使用AMI和AGI,所以我不知道FreeSWITCH在這兩件事上是否有相似之處。 – 2011-12-30 06:27:37
對於AMI和AGI之間的區別,我從來沒有聽說過像這樣的每個分裂的用例。你可以擴大你的答案,或引用一個來源? (仍在學習星號。) – Thufir 2015-04-02 00:59:15
Agi的性質在通話過程中被星號拉開。沒有其他方法來啓動agi腳本。另一方面,您可以啓動任何腳本/進程並將其連接到AMI並對事件做出反應。資料來源:Core FreePBX開發者已有超過五年的時間。 – Mbrevda 2015-04-02 10:53:30
@dkwiebe已就serverfault- https://serverfault.com/a/345513/105376
對於你正在尋找的Event Socket Library AMI的答案。在mod_event_socket頁面上有幾個例子可用。
AGI有點不同。您可以在FreeSWITCH中做類似的事情,但他們會建議使用lua。我親自使用了FreeSWITCH mod_perl,結果很好。
FreeSWITCH wiki上有一個頁面,可解決大部分「星號到FreeSWITCH」問題:Rosetta Stone。
- 1. AMI和AGI
- 2. 接聽電話從PHP與AGI和AMI
- 3. Asterisk AGI streamFile問題
- 4. Asterisk的AMI上
- 5. Asterisk AGI - 使用php agi發起呼叫
- 6. 如何使用WireShark以文本格式捕獲Asterisk的AMI和AGI流量?
- 7. 帶有C問題的Asterisk AGI
- 8. asterisk agi撥號與DTMF也LIMIT
- 9. Asterisk :: AMI模塊
- 10. Asterisk的AMI庫C++
- 11. Asterisk Perl AGI不會繼續
- 12. asterisk agi(php)文件調試
- 13. Asterisk Agi使用C#編程?
- 14. Asterisk AGI文件返回ImportError
- 15. WPF和Silverlight之間的相似之處
- 16. Django和Rails之間的相似之處
- 17. 在Asterisk-java AGi中使用GoogleAGI
- 18. python 3.x的Asterisk ami
- 19. IE與firefox/chrome中的-moz-border-radius有什麼相似之處嗎?
- 20. Asterisk的接聽電話使用AGI
- 21. PHP/Asterisk AGI計數GetData的位數
- 22. 與CDC中的CHANGE_TRACKING_IS_COLUMN_IN_MASK有什麼相似之處?
- 23. 設置asterisk agi函數處理的等待音
- 24. Asterisk Manager界面(AMI)有哪些限制?
- 25. DockerHub和GitHub的相似之處
- 26. MongoDB的mapreduce和Hadoop有什麼相似之處和不同之處?
- 27. WordNet的相似之處java
- 28. Asterisk agi無法正常工作
- 29. asterisk to adhearsion agi async call transfer confusion
- 30. 呼叫初始化時運行Asterisk AGI
[Asterisk vs FreeSwitch,有沒有與FreeSWITCH中的AMI&AGI相似](http://stackoverflow.com/questions/8662270/asterisk-vs-freeswitch-are-there-parallels-to-ami- agi-in-freeswitch) – jprofitt 2011-12-29 00:33:40
@jprofitt,因爲前面的問題的一部分請求比較使用Asterisk和FreeSWITCH的場景,並將其關閉。所以現在我發佈了另一半,這與比較無關。 – 2011-12-29 00:39:24