当 test.php 脚本从 Asterisk 拨号计划运行时,一切正常,直到执行达到
$agi->get_data('xxx', 1000, 1); statement.
Asterisk cli 显示此日志:
AGI Script test.php completed, returning 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);
最佳答案
很可能你有错误。
不幸的是不能说它是什么。
人们只是忘了提到(在书中也是如此), Asterisk 不会向 CLI 发送 agi 错误。
要获得错误,您应该检查主控制台(需要知道哪个,在大多数情况下是 tty9)或在当前 session 中使用控制台启动 Asterisk 。
asterisk -rx "core stop now"
asterisk -vvvgc
agi set debug on
之后,您将看到脚本错误。
关于php - $agi->get_data 导致 php 脚本立即返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56419005/