我的Asterisk服务器在支付环境中运行良好。现在,我需要将业务逻辑与Asterisk服务器分开以提高效率,并出于显而易见的原因保护AGI脚本。
问题是,如何将现有的工作AGI脚本转换为FASTAGI脚本,或者如何从FASTAGI服务器调用现有的AGI脚本?
我在这个平台上有一些红色的帖子,但没有人明确说明如何从头开始。很高兴能够清楚地了解如何使用PHP实现这一目标。
答案 0 :(得分:0)
您可以使用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来照常进行。