@brucie_rodriguez

Как получить и обработать POST events/call по API Mango Office?

Может быть кто сталкивался ранее с интеграцией с Mango Office по API. Для выполнения команд вроде /hangup (завершение вызова) или recording/start (запись вызова) нужно знать идентификатор разговора call_id. Его можно получить в так называемом "уведомлении" о звонке (/events/call), которое направляется в формате POST-запроса с Mango Office на адрес сайта. Но если перейти по ссылке АдресCайта/events/call, то будет просто пустая страница.

Судя по Access.log входящие POST запросы от Mango выгледят так:
81.88.80.133 - - [23/Jul/2020:13:34:43 +0300] "POST /events/call HTTP/1.1" 301 330 "-" "PHP-Curl-Class/3.5.5 (+https://github.com/php-curl-class/php-curl-class) PHP/7.0.26 curl/7.29.0" 2864 0:0
  • Вопрос задан
  • 1847 просмотров
Решения вопроса 1
@brucie_rodriguez Автор вопроса
Чтобы обработать POST events/call и получить из него call_id нужно:
1. В настройках API личного кабинета указать адрес внешней системы (вашего сайта) с адресом папки для хранения скриптов-обработчиков поступающих от Mango Office данных.
2. На сервере, в эту папку добавить папку events, а в нее папку call
3. В папку /call добавить файл скрипта-обработчика. Необходимые данные будут лежать в массиве JSON, приходящем в POST. Данные нельзя будет увидеть на активной странице в браузере, так что их нужно логировать, записывать в БД или файл или сразу обрабатывать.
4. В папке /call необходимо разместить файл .htaccess с RewriteRule на имя файла скрипта-обработчика, т.к. Mango Office не перешлет их дальше .../events/call
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Пользуйтесь на здоровье
https://github.com/Sharoff45/mango-office-api

Для получения данных из входящего POST-запроса + проверка подписи
$data = MangoHelper::getMethodData();

Обработчики и роутинг для приёма запросов на урл вида https://external-system.com/vpbx/api/v1/events/call естественно надо делать самому.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы