您可以使用xinetd
。从每一个星号框中输入您的拨号方案,调用AGI具有快速AGI参数,取代fastagi服务器的IP地址:
AGI(agi://192.168.1.100/)
请确保您有在/etc/services
类似:
agi 4573/tcp # FAST AGI entry
在FastAGI服务器:在一个名为/etc/xinetd.d/agi
的文件中(确保/etc/xinetd.conf
正在从/etc/xinetd.d/
加载模块)有一个调用您的agi脚本的定义。
# description: agi service for PHP fastagi interaction
service agi
{
socket_type = stream
user = root
group = nobody
server = /path/to/agiLaunch.sh
wait = no
protocol = tcp
bind = 127.0.0.1
disable = no
per_source = UNLIMITED
instances = UNLIMITED
cps = 1000 0
}
在你的AGI脚本,现在你可以只是做像往常一样,通过读取STDIN或STDOUT。
好的,谢谢你的回应。在这个平台上的某个地方有红色,并尝试过它。所以,如果我已经说过10个AGI脚本已经工作了,那么我该如何使用这种方法来使用这种方法调用所有的AGI脚本? – CEDOC
您可以使用xinetd为每个端口创建一个不同的端口。但!我可能会使用“网络脚本”功能,例如如果你调用'AGI(agi:// hostname [:port] [/ script],args)'你放入'/ script'部分的内容将作为一个通道变量'agi_network_script'传递给脚本。因此,使用网络脚本来编写一个处理10的哪个AGI脚本的脚本来处理它。另外,这本书“星号:电话的未来”使用xinetd和他们的fastagi例子来说明它的价值。 – dougBTV
非常感谢dougBTV,你一直很乐于助人。您是否有任何想法可以进行身份验证,以允许经过身份验证的人员或用户从他们的拨号计划中调用FASTAGI脚本?我计划将服务扩展到任何愿意在其dialplan中使用AGI脚本的人。 – CEDOC