Подключение класса phpagi к AGI интерфейсу Asterisk (FreePBX)
Используя в работе голый Asterisk, рано или поздно становится недостаточно стандартных инструментов, для решения нужных задач. В этом случае нам поможет интерфейс AGI, который позволяет Asterisk взаимодействовать со сторонними приложениями, к примеру с приложением написанным на PHP.
Рассмотрим как настроить взаимодействие asterisk с классом phpagi
, посредством интерфейса AGI (Asterisk Gateway Interface).
Настройка Asterisk
Для подключения класса phpagi
, в конфигурационный файл /etc/asterisk/manager.conf
, добавляем параметры подключения его (прим. astphp
):
[general]
ZW5hYmxlZCUyMCUzRCUyMHllcw==
port = 5038
bindaddr = 0.0.0.0
d2ViZW5hYmxlZCUyMCUzRCUyMG5v
[astphp]
c2VjcmV0JTIwJTNEJTIwcGFzc3dvcmQ=
ZGVueSUzRDAuMC4wLjAlMkYwLjAuMC4w
cGVybWl0JTNEMC4wLjAuMCUyRjAuMC4wLjA=
ZGlzcGxheWNvbm5lY3RzJTIwJTNEJTIweWVz
read = system,call,log,verbose,command,agent,user,originate
write = system,call,log,verbose,command,agent,user,originate
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUIxJUQwJUI1JUQwJUI3JUQwJUJFJUQwJUJGJUQwJUIwJUQxJTgxJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQwJUIyJTIwJUQxJTgxJUQwJUI1JUQwJUJBJUQxJTg2JUQwJUI4JUQwJUI4JTIwJTVCZ2VuZXJhbCU1RCUyQyUyMCVEMCVCMiUyMCVEMCVCRiVEMCVCMCVEMSU4MCVEMCVCMCVEMCVCQyVEMCVCNSVEMSU4MiVEMSU4MCVEMCVCNSUyMGJpbmRhZGRyJTJDJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQxJTgyJUQxJThDJTIwSVAtJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJTIwJUQxJTgxJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQxJTgwJUQwJUI1JUQxJTg4JUQwJUI1JUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQxJTgyJUQxJTgxJUQxJThGJTIwJUQwJUJBJTIwJUQwJUI4JUQwJUJEJUQxJTgyJUQwJUI1JUQxJTgwJUQxJTg0JUQwJUI1JUQwJUI5JUQxJTgxJUQxJTgzJTIwQUdJLiUyMCVEMCU5MiUyMCVEMSU4MSVEMCVCNSVEMCVCQSVEMSU4NiVEMCVCOCVEMCVCOCUyMCVEMCVCRiVEMSU4MCVEMCVCRSVEMSU4NCVEMCVCOCVEMCVCQiVEMSU4RiUyMCVEMCVCRiVEMCVCRSVEMCVCNCVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyMCU1QmFzdHBocCU1RCUyQyUyMCVEMCVCQyVEMCVCRSVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMSU4MiVEMCVCMCVEMCVCQSUyMCVEMCVCNiVEMCVCNSUyMCVEMSU4MyVEMCVCQSVEMCVCMCVEMCVCNyVEMCVCMCVEMSU4MiVEMSU4QyUyMGRlbnklNUNwZXJtaXQlMjAlRDAlQjAlRDAlQjQlRDElODAlRDAlQjUlRDElODElRDAlQjAlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQkYlRDAlQkUlRDAlQjQlRDAlQkElRDAlQkIlRDElOEUlRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlMjAlRDAlQkElMjAlRDAlQkYlRDElODAlRDAlQkUlRDElODQlRDAlQjglRDAlQkIlRDElOEUu
[astphp]
необходимо указывать в файле конфигурации /etc/asterisk/manager_custom.conf
Настройка класса phpagi
Скачиваем последнюю версию phpagi с официального сайта, распаковываем ее и копируем распакованные файлы phpagi в каталоги asterisk:
Y2QlMjBwaHBhZ2ktMi4yMA==
Y3AlMjAlMkZkb2NzJTJGcGhwYWdpLmV4YW1wbGUuY29uZiUyMCUyRmV0YyUyRmFzdGVyaXNrJTJGcGhwYWdpLmNvbmY=
Y3AlMjBwaHBhZ2ktYXNtYW5hZ2VyLnBocCUyMCUyRnZhciUyRmxpYiUyRmFzdGVyaXNrJTJGYXBpLWJpbiUyRnBocGFnaS1hc21hbmFnZXIucGhw
Y3AlMjBwaHBhZ2ktZmFzdGFnaS5waHAlMjAlMkZ2YXIlMkZsaWIlMkZhc3RlcmlzayUyRmFwaS1iaW4lMkZwaHBhZ2ktZmFzdGFnaS5waHA=
Y3AlMjBwaHBhZ2kucGhwJTIwJTJGdmFyJTJGbGliJTJGYXN0ZXJpc2slMkZhcGktYmluJTJGcGhwYWdpLnBocA==
В файле конфигурации /etc/asterisk/phpagi.conf
, в секции [asmanager]
указываем данные для соединения с asterisk:
[asmanager]
c2VydmVyJTNEbG9jYWxob3N0
port=5038
dXNlcm5hbWUlM0Rhc3RwaHA=
secret=password
На этом конфигурация связи закончена. Теперь можно использовать PHP-скрипты в диалплане Asterisk.
Подключение класса phpagi в PHP-скрипт
Каждый PHP-скрипт должен начинаться со строк объявления использования класса phpagi:
/var/lib/asterisk/agi-bin
.Вызов PHP-скрипта из диалплана asterisk (прим. с вызовом PHP-скрипта и передачи в него переменных из диалплана):
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.