Подключение класса phpagi к AGI интерфейсу Asterisk

Используя в работе голый Asterisk, рано или поздно становится недостаточно стандартных инструментов, для решения нужных задач. В этом случае нам поможет интерфейс AGI, который позволяет Asterisk взаимодействовать со сторонними приложениями, к примеру с приложением написанным на PHP.

 

Рассмотрим как настроить взаимодействие Asterisk с классом phpagi, посредством интерфейса AGI (Asterisk Gateway Interface).

 

Все ниже действия будут производится на Asterisk 13, используемая версия PHP — 5.6. 

 

Настройка Asterisk

Для подключения класса phpagi, в конфигурационный файл (/etc/asterisk/manager.conf), добавляем параметры подключения его (прим. astphp):

[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
webenabled = no

[astphp]
secret = password
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
displayconnects = yes
read = system,call,log,verbose,command,agent,user,originate
write = system,call,log,verbose,command,agent,user,originate
Для безопасности в секции [general], в параметре bindaddr, можно задать IP-адрес с которого будет разрешено подключатся к интерфейсу AGI. В секции профиля подключения ([astphp]), можно так же указать разрешенные\запрещенные (deny\permit) адреса для подключения к профилю.

 

Настройка класса phpagi

Скачиваем последнюю версию phpagi с официального сайта, распаковываем ее и выполняем настройку связи phpagi с Asterisk.

 

Копируем распакованные файлы phpagi в каталоги Asterisk:

cd phpagi-2.20
cp /docs/phpagi.example.conf /etc/asterisk/phpagi.conf
cp phpagi-asmanager.php /etc/lib/asterisk/api-bin/phpagi-asmanager.php
cp phpagi-fastagi.php /etc/lib/asterisk/api-bin/phpagi-fastagi.php
cp phpagi.php /etc/lib/asterisk/api-bin/phpagi.php

 

В файле конфигурации phpagi (/etc/asterisk/phpagi.conf), в секции ([asmanager]) указываем данные для соединения с Asterisk:

[asmanager]
server=localhost
port=5038
username=astphp
secret=password

 

На этом конфигурация связи закончена. Теперь можно использовать PHP-скрипты в диалплане Asterisk.

 

Подключение класса phpagi в PHP-скрипт

Каждый PHP-скрипт должен начинаться со строк объявления использования класса phpagi:

#!/usr/bin/php -q
<?php
require('phpagi.php');

$agi = new AGI();

...
...

?>

 

Вызов PHP-скрипта из диалплана Asterisk (прим. с вызовом PHP-скрипта и передачи в него переменных из диалплана):

exten => _XXXX,1,AGI(myphpscrypt.php,${EXTEN},${CALLERID(num)})

 

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

14 + 17 =