如何将现有的Asterisk AGI脚本转换为FASTAGI脚本

时间:2015-04-07 09:01:56

标签: php asterisk fastagi

我的Asterisk服务器在支付环境中运行良好。现在,我需要将业务逻辑与Asterisk服务器分开以提高效率,并出于显而易见的原因保护AGI脚本。

问题是,如何将现有的工作AGI脚本转换为FASTAGI脚本,或者如何从FASTAGI服务器调用现有的AGI脚本?

我在这个平台上有一些红色的帖子,但没有人明确说明如何从头开始。很高兴能够清楚地了解如何使用PHP实现这一目标。

1 个答案:

答案 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来照常进行。