Команда: 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