Asterisk. Команда FastAGI.

FastAGI() - Удаленно выполняет совместимый с AGI сценарий.

FastAGI(agi://имяхоста[:порт][/сценарий],аргументы)

Выполняет совместимую с AGI программу по сети. Эта команда очень похожа на AGI(), за исключением того что вызывает специально написанный сценарий FastAGI по сетевому соединению. FastAGI используется для того чтобы перенести требующие интенсивной работы ЦП AGI-сценарии на удаленные серверы и сократить время запуска AGI-сценария (программа FastAGI выполняется уже до того, как Asterisk соединится с ней).

FastAGI() пытается подключиться прямо к выполняющейся программе FastAGI, которая должна слушать соединения по заданному порту сервера, заданного параметром имяхоста. Если порт не задан, по умолчанию используется порт 4573. Если сценарий задан, он передается в программу FastAGI как переменная agi_network_script (сетевой agi-сценарий). Параметр аргументы передается в программу.

Пример сценария FastAGI находится в папке исходного кода Asterisk agi/fastagi-test.  Возвращает –1, если приложение запросило разорвать соединение, или 0 при выходе без разрыва соединения.

Пример:

Cоединяемся с программой fastagi-test, которая уже должна выполняться на локальном компьютере
exten => 123,1,Answer()
exten => 123,2,FastAGI(agi://localhost)

Cоединяемся со сценарием FastAGI на хосте testhost через порт 8000 и передаем имя сценария test с аргументом 12345678
exten => 124,1,Answer()
exten => 124,2,FastAGI(agi://testhost:8000/test,12345678)

 

См. также: AGI(), DeadAGI()