AGI()

Выполняет совместимое с AGI приложение.

[E]AGI(программа[,аргументы])

Выполняет для текущего канала совместимую с Asterisk Gateway Interface
программу. AGI-программы обеспечивают возможность внешним программам
(которые могут быть написаны практически на любом языке программирования)
управлять каналом связи путём воспроизведения аудиофайлов, чиения
DTMF-сигналов и т.д. Asterisk обменивается информацией с AGI-программой
с помощью стандартных потоков ввода вывода STDIN и STDOUT. Заданные
аргумены передаются в AGI-программу.

В качестве программы должен быть задан исполняемый файл из базовой
файловой системы. Путь к программе должен вести в папку AGI Asterisk, по
умолчанию это /var/lib/asterisk/agi-bin/.

Если необходимо выполнить AGI, когда не существует ни одного канала (как
для добавочного номера "h"), используйте приложение DeadAGI(). Если
требуется выполнять AGI удалённо, используйте приложение FastAGI().

Если вы хотите выполнять доступ к входящему аудиопотоку из своей AGI-
прграммы, вместо AGI() используйте приложение EAGI(). Тогда входящий
аудиопоток будет читаться в дескриптор файла 3.

Если происходит преждевременный разрыв соединения, процессу, запущенному
командой AGI(), будет послан сигнал HUP, извещающий о завершении соединения.
Если ваша программа не перехватит этот сигнал, она будет завершена. Это
поведение можно переопределить, задав для переменной канала ${AGISIGHUP}
значение 0:
; вызываем демонстрационную AGI-программу exten => 123, 1, AGI(agi-test) exten => 123, n, EAGI(eagi-test)