Как долго 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) или аналогичную команду.

Другие вопросы по тегам