星号有Asterisk 管理器界面 (AMI) http://www.the-asterisk-book.com/unstable/asterisk-manager-api.html and Asterisk 网关接口 (AGI) http://www.asterisk.org/docs/asterisk/trunk/applications/agi,使用它可以在 Asterisk 发生某些事件时触发 PHP 脚本。使用相同的 PHP 脚本还可以指示 Asterisk 在通话/会议之后要做什么。 FreeSWITCH 中的 AMI 和 AGI 是否有相似之处?
这些都是好问题。我只是想在 @dkwiebe 所说的内容中添加一些内容(顺便说一句,这是正确的)。
FreeSWITCH 中的 AMI 等效项是事件套接字。 (从技术上讲,它不是“事件套接字库”或 ESL,它是编写使用事件套接字的程序的抽象层。我只是想区分这一点。)事实上,FreeSWITCH 中的“星号 -r”实际上是一个名为“fs_cli”的基于 ESL 的程序 - FreeSWITCH 命令行界面的缩写。 fs_cli 程序是一个很好的示例,说明您可以使用 ESL 完成哪些任务。
此外,您没有理由不能使用 ESL 程序来完成许多可以使用 AGI 脚本完成的事情。 ESL“连接对象”可以“锁定”单个呼叫分支并控制它。 wiki 上有一些示例,即将出版的 FreeSWITCH Cookbook 将提供一些关于该主题的食谱。 (全面披露:我是 FreeSWITCH Cookbook 的合著者。)
另一种与 ESL 相关的控制调用(如 AGI)的方法是使用 fs_ivrd 守护进程。它不像 ESL 那样常用,但对于类似 AGI 的脚本编写来说是一个不错的选择。看这个维基页面 http://wiki.freeswitch.org/wiki/Perl_esl#fs_ivrd_Example更多细节。
最后,我想提一下 Lua 是执行脚本/逻辑等的绝佳选择。在呼叫控制中。它简单、轻便且易于学习。在实验室中,我们在 8 核机器上看到了数千个并发 Lua 控制的调用。 Lua 即使在一些非常苛刻的环境中也能工作。
欢迎加入 irc.freenode.net 上的#freeswitch,与 FreeSWITCH 社区讨论您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)