Asterisk具有Asterisk Manager Interface (AMI)和Asterisk Gateway Interface (AGI),使用它们可以在Asterisk发生某些事件时触发PHP脚本。使用相同的PHP脚本还可以指示Asterisk在调用/ session 旁边做什么。 FreeSWITCH中是否有与AMI和AGI相似的东西?
最佳答案
这些是很好的问题。我只是想在@dkwiebe所说的话中添加一些内容(正确的是,顺便说一句)。
FreeSocket中的AMI等效项是事件套接字。 (从技术上讲,它不是“事件套接字库”或ESL,它是用于编写使用事件套接字的程序的抽象层。我只是想区分一下。)实际上,相当于“Asterisk -r”的FreeSWITCH实际上是一个基于ESL的程序,名为“fs_cli”-FreeSWITCH命令行界面的简称。 fs_cli程序是您可以使用ESL完成的一个很好的示例。
另外,没有理由不能使用ESL程序来完成AGI脚本可以完成的许多工作。 ESL“连接对象”可以“锁定”到单个调用分支上并对其进行控制。 Wiki上有一些示例,即将出版的《 FreeSWITCH食谱》将对此主题进行一些介绍。 (全部披露:我是《 FreeSWITCH食谱》的合著者。)
fs_ivrd守护程序是另一种与ESL相关的控制调用(如AGI)的方法。它不如ESL常用,但对于类似AGI的脚本来说是一个不错的选择。有关更多详细信息,请参见this wiki page。
最后,我想提到Lua是执行scripting/logic/etc的绝佳选择。在通话控制中。它简单,轻巧且易于学习。在实验室中,我们已经在8核计算机上看到了数千个并发的Lua控制的调用。即使在某些非常苛刻的环境中,Lua也能正常工作。
随时加入irc.freenode.net上的#freeswitch与FreeSWITCH社区讨论您的问题。
关于php - FreeSWITCH中是否有与Asterisk AMI和AGI相似的东西?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8662846/