Asterisk Gateway Interface

Статья на основе материалов из Википедии

AGI (от англ. Asterisk Gateway Interface — «шлюзовой интерфейс Asterisk») — это инструментарий для запуска программ, написанных практически на любом языке программирования, из плана нумерации сервера IP-телефонной станции Asterisk. Связь между программой и сервером Asterisk осуществляется стандартными потоками ввода и вывода. Как правило, сценарии AGI используются для реализации расширенной логики, соединения с реляционными базами данных и доступа к другим внешним ресурсам. Передача управления внешнему сценарию AGI позволяет Asterisk без труда реализовать задачи, выполнение которых в противном случае было бы сложным или невозможным. Наиболее часто AGI используется для написания сложных систем IVR.

Программные интерфесы

Существует множество библиотек, значительно упрощающих процесс написания сценариев AGI. Наиболее интересные из которых:

  1. phpagi
  2. Perl AGI Library
  3. CAGI
  4. NanoAGI
  5. PyST

Пример использования

Пример для NanoAGI

#include "src/agi.H"

int main() { AGI agi;

if( agi.cmd("stream file hello-world 0") < 0) { // cerr << agi.err; return -1; } agi.cmd("hangup");

return 0; }

Скомпилированый бинарный файл необходимо поместить в каталог ${astagidir}. Затем добавить в ${astetcdir}/extensions.conf следующую строку и перезагрузить план нумерации:

exten => _100,1,AGI(script)

Ссылки