Команда: AGI()


Назначение:

Выполняет скрипт, совместимый с Asterisk AGI приложением

Описание:

[E|Dead] AGI(command|args)

Выполняет программу, совместимую с Asterisk Gateway Interface , на канале Asterisk. Команда AGI позволяет в Asterisk запускать внешние программы, написанные на любом языке, для управления каналом связи. Например, для проигрывания звуков, считывания сигналов DTMF, и т. д. Для интерфейса со скриптом используются стандартные потоки ввода вывода stdin и stdout.

Коды возврата:

Возвращает -1 при разрыве связи или если приложение требует разрыва связи, 0 - в остальных случаях.

Требование к выполняемой программе:

  • Должна иметь флаг исполняемого файла
  • Должна находиться в директории /var/lib/asterisk/agi-bin
  • Должна быть описана в плане набора вместе с екстеншеном

Функция EAGI дает Вам возможность использовать звуковой канал

Используя 'EAGI', Вы получаете расширенную версию команды AGI,с поддержкой звукового out of band канала, с номером файлового дескриптора - 3

Используйте функцию DeadAGI, когда Вам надо выполнить приложение на разъединенном канале

Например, если Вам необходимо выполнить AGI скрипт в контексте для екстеншена 'h' (hangup) , используйте команду DEADAGI() вместо функции agi().

Ссылки по теме:

  • FastAGI: Запуск удаленного AGI приложения, через TCP сокет: agi://
  • OrderlyCalls (successor to JAGIServer) offers full support for FastAGI and Manager in an easy-to-use Named Service environment. Includes Web Deployer for developing integrated VOIP-HTML applications.
  • Еще один Java framework для FastAGI: http://tanesha.net/Wiki/JastAgi.html
  • Asterisk-java теперь с поддержкой FastAGI, в дополнение к Manager API
  • DeadAGI
  • EAGI
  • Asterisk AGI
  • libagi
  • res_php, res_perl, res_python (PyAsterisk) if you don't want to load the interpreter with every AGI call