php - $agi->get_data 导致 php 脚本立即返回

标签 php asterisk elastix

当 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/

相关文章:

PHP cURL 表示不支持 https

php - 未找到 Zend Framework 2 类 'PDO'

amazon-web-services - python中的AWS polly示例示例?

networking - Asterisk 12.6//TURN//WebRTC//无音频

linux - 在 Asterisk 中同时播放和录制

php - mysqli fetch_assoc() 将所有字段作为字符串返回

php - 有效日期或时间戳

c# - 如何使用 pjsip 重定向已接听的来电?

asterisk - Asterisk 被叫 channel 挂断后继续调用 channel

挂机后的 Asterisk IVR