FreeSWITCH中是否与Asterisk AMI和AGI有相似之处?

jef*_*usk 6 php voip asterisk freeswitch

Asterisk具有Asterisk Manager接口(AMI)Asterisk网关接口(AGI),使用它可以在Asterisk的某些事件中触发PHP脚本.使用相同的PHP脚本还可以指示Asterisk在呼叫/会议旁边做什么.FreeSWITCH中有与AMI和AGI的相似之处吗?

小智 8

这些都是好问题.我只想在@dkwiebe所说的内容中添加一些内容(这是正确的,BTW).

FreeSWITCH中的AMI等效项是事件套接字.(从技术上讲,它不是"事件套接字库"或ESL,它是用于编写使用事件套接字的程序的抽象层.我只想做出这种区别.)事实上,FreeSWITCH等效于"asterisk -r"实际上是一个名为"fs_cli"的基于ESL的程序 - FreeSWITCH命令行界面的缩写.fs_cli程序是您使用ESL可以完成的一个很好的例子.

此外,没有理由不能使用ESL程序来完成许多可以使用AGI脚本完成的事情.ESL"连接对象"可以"锁定"到单个呼叫支路并控制它.维基上有一些例子,即将发布的FreeSWITCH Cookbook将有一些关于这个主题的食谱.(完全披露:我是FreeSWITCH Cookbook的合着者.)

控制像AGI这样的调用的另一种与ESL相关的方法是使用fs_ivrd守护进程.它不像ESL那么常用,但对于类似AGI的脚本来说是个不错的选择.有关详细信息,请参阅此Wiki页面.

最后,我想提一下Lua是编写脚本/逻辑/等的绝佳选择.在呼叫控制中.它简单,轻便,易于学习.在实验室中,我们在8核机器上看到了几千个并发Lua控制的呼叫.Lua甚至在一些非常苛刻的环境中工作.

欢迎加入irc.freenode.net上的#freeswitch,与FreeSWITCH社区讨论您的问题.