Задать вопрос
qpPeW
@qpPeW
Не люблю рутинную работу...

Как получить ответ USSD в Asterisk?

Доброго времени суток, для работы с Asterisk использую библиотеку PHPAGI, но никак не могу понять как получить ответ который поступает через пару секунда, а не сразу.

Имею вот такой код, который отправляет ussd запрос.
include('phpagi.php');
$manager = new AGI_AsteriskManager();
$manager->connect();
$manager->Command('dongle ussd dongle0 *111#');
$manager->disconnect();

Пробовал записывать ответ в переменную, но там сохраняется только то что сразу приходит в ответ.
include('phpagi.php');
$manager = new AGI_AsteriskManager();
$manager->connect();
$result = $manager->Command('dongle ussd dongle0 *111#');
$manager->disconnect();
print_r($result);

В таком случаи получаю ответ.
Array
(
[data] => Privilege: Command
[dongle0] USSD queued for send with id 0x7f5754001a80

[Response] => Follows
)

Ну и через 2-3 секунды в консоле появляется нужный мне ответ, вот только как его получить, не могу понять.
Раньше использовал библиотеку phpSerial, но т.к. она работает напрямую с портами, не совсем подходит, хотя по функциям самое то что нужно. Собственно по функциям, там есть функция readPort() которая сохраняет все входящие и выходящие данные, что-то подобное я ищу в PHPAGI.
Буду благодарен тому кто подскажет или тыкнет носом, возможно что-то упустил, потому и не могу найти решение, заранее благодарен.
  • Вопрос задан
  • 1087 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
У вас ведь возвращается [Response] => Follows. Попробуйте так:
include('phpagi.php');
$manager = new AGI_AsteriskManager();
$manager->connect();
$manager->Command('dongle ussd dongle0 *111#');
$result = $manager->wait_response();
$manager->disconnect();
print_r($result);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽