Я использовал эту библиотеку PHP Pagi создать приложение IVR с помощью Asterisk.
Для каждого звонка мне нужно сделать некоторые очистки и записать что-то в базу данных. Поэтому мне нужен какой-нибудь обратный вызов / обработчик после того, как пользователь повесил трубку
ASAIK, эта библиотека предоставляет некоторый способ обнаружения зависания от пользователя:
pcntl_signal(SIGHUP, $signalHandler);
Однако это не сработает после того, как я поднял трубку, отправив команду ANSWER
, Если он используется без ANSWER
вышеупомянутый обратный вызов работает после того, как вызов положен!
Итак, я хотел бы знать, как обойти эту ситуацию?
На самом деле у меня есть сервер с установленными Asterisk, картой Digium (FSX KS Signaling) и стационарными телефонами. Клиенты могут позвонить на наш общедоступный номер телефона, который подключен к моему серверу, чтобы получить услугу IVR.
Я обнаружил, что когда пользователь вешает трубку, звездочка не отправляется SIGHUP
к моему сценарию AGI. Это делает работать, когда IVR вызывается из внутренней сети.
Я наконец решил это, настроив некоторые конфигурации в chan_dahdi.conf
busydetect=yes
busycount=3
Надеюсь, это поможет, если у вас похожая ситуация со мной!
Других решений пока нет …