首页 > 解决方案 > $agi->get_data 导致 php 脚本立即返回

问题描述

当 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);

标签: phpasteriskelastixphpagi

解决方案


很可能你有错误。

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

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

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

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

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


推荐阅读