【问题标题】:$agi->get_data causes php script to return immediately$agi->get_data 导致 php 脚本立即返回
【发布时间】:2019-06-02 21:16:39
【问题描述】:

当 test.php 脚本从星号拨号计划运行时,一切正常,直到执行到达

$agi->get_data('xxx', 1000, 1); statement.

星号 cli 显示此日志:

AGI Script test.php 完成,返回 0

并且脚本在不播放请求的声音或获取任何 DTMF 数字的情况下完成其执行。

我用类似的声音文件测试了 stream_file 函数,它工作正常。所以文件存在并且声音播放模块没问题

#!/usr/bin/php -q
<?
require('phpagi.php');

$agi = new AGI();
$ch = $agi->request["agi_channel"];
$callerid = $agi->request["agi_callerid"];

$agi->answer();


$agi->verbose($callerid);

$menu = $agi->get_data('welcome', 1000, 1);
$menu = $agi->get_data('MainMenu', 5000, 1);

【问题讨论】:

  • 您找到解决此问题的方法了吗?如果是的话,可以分享一下吗?

标签: php asterisk phpagi


【解决方案1】:

你可能有错误。

可惜没办法说它是什么。

人们只是忘记提及(在书中也提及),星号不会向 CLI 发送 agi 错误。

要出现错误,您应该检查主控制台(需要知道哪一个,在大多数情况下为 tty9)或在当前会话中使用控制台启动星号。

asterisk -rx "core stop now"
asterisk -vvvgc
agi set debug on

之后你会看到脚本错误。

【讨论】:

    【解决方案2】:

    phpagi.php 库“get_data”方法有问题,我下载了库,用新文件替换了当前文件,一切正常。

    【讨论】:

      【解决方案3】:

      问题出在phpagi.php,get_data函数被人操纵了!我下载了库并用旧的替换了它,一切正常

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-08
        • 2010-10-14
        • 1970-01-01
        • 2012-07-13
        • 1970-01-01
        相关资源
        最近更新 更多