$ agi-> get_data заставляет скрипт php немедленно возвращаться - PullRequest
1 голос
/ 03 июня 2019

когда скрипт test.php запускается из абонентской группы звездочки, все работает нормально до тех пор, пока выполнение не достигнет

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

звездочка cli показывает этот журнал:

AGI Script 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 ]

1 голос
/ 03 июня 2019

Скорее всего, у вас есть ошибка.

К сожалению, не сказать, что это такое.

Люди просто забыли упомянуть (и в книге тоже), что звездочка НЕ ​​посылает ошибку agi в CLI.

Чтобы получить ошибку, вы должны проверить основную консоль (нужно знать, какая именно, в большинстве случаев tty9) или просто запустить звездочку с консолью в текущем сеансе.

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

После этого вы увидите ошибку скриптов.

0 голосов
/ 03 июня 2019

У phpagi.php в методе get_data возникли некоторые проблемы, я скачал библиотеку, заменил текущие файлы новыми, и все работало нормально.

...