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. 接听电话从PHP与AGI和AMI
- 2. Asterisk的AMI上
- 3. 如何使用WireShark以文本格式捕获Asterisk的AMI和AGI流量?
- 4. 带有C问题的Asterisk AGI
- 5. Asterisk :: AMI模块
- 6. asterisk agi(php)文件调试
- 7. WPF和Silverlight之间的相似之处
- 8. Django和Rails之间的相似之处
- 9. PHP/Asterisk AGI计数GetData的位数
- 10. Asterisk的接听电话使用AGI
- 11. IE与firefox/chrome中的-moz-border-radius有什么相似之处吗?
- 12. 设置asterisk agi函数处理的等待音
- 13. 与CDC中的CHANGE_TRACKING_IS_COLUMN_IN_MASK有什么相似之处?
- 14. DockerHub和GitHub的相似之处
- 15. Asterisk agi无法正常工作
- 16. 呼叫初始化时运行Asterisk AGI
- 17. WordNet的相似之处java
- 18. .NET语言之间有什么区别和相似之处?
- 19. JBI和SCA之间有什么不同/相似之处
- 20. Scala特性与Java 8接口之间有什么区别和相似之处?
- 21. 与用户模式下的printk有什么相似之处?
- 22. Asterisk 13 AGI Python:没有这样的文件或目录
- 23. 如何将现有的Asterisk AGI脚本转换为FASTAGI脚本
- 24. MVC和MVVM之间的区别和相似之处是什么?
- 25. AsteriskNOW和AGI脚本
- 26. 我可以通过AMI创建新的会议室(Asterisk ConfBridge)吗?
- 27. 如何使用Perl在AGI中转发当前的Asterisk调用?
- 28. 差/ XSD之间的相似之处:any和xsd:我读anyType的
- 29. C++:结构和数组之间的相似之处?
- 30. DOM与网站的原始源代码之间有什么相似之处?
[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