1

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

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

我在这个平台上发布了一些带有答案的帖子,但没有人明确说明如何从头开始执行此操作。很高兴能清楚地了解如何使用 PHP 实现这一目标。

4

1 回答 1

0

你可以用xinetd这个。从每个星号框的拨号方案中,使用 fast 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 进行操作。

于 2015-04-08T12:51:52.823 回答