3

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

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

星号 cli 显示此日志:

AGI 脚本 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);
4

3 回答 3

1

很可能你有错误。

不幸的是,不能说它是什么。

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

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

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

之后,您将看到脚本错误。

于 2019-06-02T23:21:06.703 回答
0

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

于 2019-09-21T17:19:03.317 回答
0

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

于 2019-06-03T11:35:00.410 回答