Как долго Asterisk будет ждать звонка AGI?
У меня есть простой диалплан в Asterisk 13
exten => 800,1,Answer()
;AGI do something and return AUDIO_FILE tobe played
same => n,Agi(agi://localhost:1000/doAlotOfThing.agi)
same => n,Playback(${AUDIO_FILE}
same => n,Hangup()
Я ожидал, что Asterisk будет ждать AGI, пока не закончит обработку команды, а затем вернет переменную AUDIO_FILE (около 20 секунд). Но на самом деле это Asterisk, просто подождите около нескольких секунд, и даже Agi еще не закончил, он все еще передает его и играет AUDIO_FILE (который не будет инициализирован). Итак, вопрос: как я могу изменить настройку тайм-аута AGI в Asterisk?
1 ответ
Интерфейс AGI прост.
Если вы делаете вместо файла agi что-то вроде
while(1){
sleep(1)
}
тогда он будет ждать до зависания вызывающего абонента (на самом деле даже через некоторое время после зависания, но это не предоставлено, поэтому у вас ИЗБЕГАЕТСЯ такая аги).
Если звездочка идет через план набора к следующему пункту назначения, это означает, что ваш agi закрыл входной поток или выполнил команду exit(0) или аналогичную команду.