$agi->get_data causes php script to return immediately
Когда скрипт 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);
2 ответа
Скорее всего, у вас есть ошибка.
К сожалению, не сказать, что это такое.
Люди просто забыли упомянуть (и в книге тоже), что звездочка НЕ посылает ошибку agi в CLI.
Чтобы получить ошибку, вы должны проверить основную консоль (нужно знать, какая именно, в большинстве случаев tty9) или просто запустить звездочку с консолью в текущем сеансе.
asterisk -rx "core stop now"
asterisk -vvvgc
agi set debug on
После этого вы увидите ошибку скриптов.
Проблема была в phpagi.php, функцией get_data кто-то манипулировал! я загрузил библиотеку и заменил ее на старую, и все работало нормально
В методе get_data библиотеки phpagi.php возникла проблема: я скачал библиотеку, заменил текущие файлы новыми, и все работало нормально.