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)

Ссылки[править | править код]