Asterisk 有 Asterisk Manager Interface (AMI)和 Asterisk Gateway Interface (AGI) , 使用它可以在 Asterisk 的某些事件中触发 PHP 脚本。使用相同的 PHP 脚本还可以指示 Asterisk 在电话/ session 之后做什么。 FreeSWITCH 中是否有与 AMI 和 AGI 相似的地方?
最佳答案
这些都是很好的问题。我只是想对@dkwiebe 所说的内容添加一些内容(顺便说一句,这是正确的)。
FreeSWITCH 中的 AMI 等价物是事件套接字。 (从技术上讲,它不是“事件套接字库”或 ESL,它是编写使用事件套接字的程序的抽象层。我只是想做出这种区分。)事实上,“asterisk -r”的 FreeSWITCH 等价物实际上是一个名为“fs_cli”的基于 ESL 的程序 - FreeSWITCH 命令行界面的缩写。 fs_cli 程序是一个很好的例子,说明您可以使用 ESL 完成什么。
此外,您没有理由不能使用 ESL 程序来完成许多可以使用 AGI 脚本完成的事情。 ESL“连接对象”可以“锁定”到单个调用段并对其进行控制。 wiki 上有一些例子,即将出版的 FreeSWITCH Cookbook 将有一些关于这个主题的食谱。 (全面披露:我是 FreeSWITCH Cookbook 的合著者。)
另一种与 ESL 相关的控制调用(如 AGI)的方法是使用 fs_ivrd 守护进程。它不像 ESL 那样常用,但对于类似 AGI 的脚本来说是一个不错的选择。参见 this wiki page了解更多详情。
最后,我想提一下,Lua 是执行脚本/逻辑/等的绝佳选择。在调用控制中。它简单、轻便且易于学习。在实验室中,我们已经在 8 核机器上看到了数千个并发的 Lua 控制调用。 Lua 甚至可以在一些非常苛刻的环境中工作。
欢迎加入 irc.freenode.net 上的#freeswitch,与 FreeSWITCH 社区讨论您的问题。
关于php - FreeSWITCH 中是否有与 Asterisk AMI 和 AGI 相似的地方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662846/