Interested Article - Asterisk Gateway Interface

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

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

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

  1. Perl AGI Library

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

Пример для

  #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)

Ссылки

Источник —

Same as Asterisk Gateway Interface