У меня сервер Asterisk отлично работает в платежной среде. Теперь мне необходимо отделить бизнес-логику от Asterisk Server для эффективности и защиты сценариев AGI по очевидным причинам.
Вопрос в том, как преобразовать существующие рабочие сценарии AGI в сценарии FASTAGI или как вызвать существующие сценарии AGI с сервера FASTAGI?
У меня есть красный пост с ответами на этой платформе, но никто не указал четко, как это сделать с нуля. Будем рады четкому пониманию того, как этого добиться с помощью PHP.
Ты можешь использовать xinetd
за это. Из вашей абонентской группы на каждом поле звездочки вызовите agi с быстрым параметром agi, подставив ваш IP-адрес сервера fastagi:
AGI(agi://192.168.1.100/)
Убедитесь, что у вас есть в /etc/services
что-то вроде:
agi 4573/tcp # FAST AGI entry
На сервере FastAGI: в файле с именем /etc/xinetd.d/agi
(удостовериться /etc/xinetd.conf
загружает модули из /etc/xinetd.d/
) есть определение, которое вызывает ваш сценарий agi.
# description: agi service for PHP fastagi interaction
service agi
{
socket_type = stream
user = root
group = nobody
server = /path/to/agiLaunch.sh
wait = no
protocol = tcp
bind = 127.0.0.1
disable = no
per_source = UNLIMITED
instances = UNLIMITED
cps = 1000 0
}
В вашем AGI-скрипте вы теперь можете просто делать, как обычно, читая STDIN или STDOUT.
Других решений пока нет …