Страница 1 из 1

Ограничить время исполнения AGI из dialplan'а?

Добавлено: 11 май 2016, 18:59
booBot
Можно ли средствами dialplan'а установить временной лимит работы сценария AGI?
Как сделать, чтобы не уложившийся в отведённое время процесс обработки некоего запроса принудительно обрывался?
Речь идёт об интервалах порядка 3~5 секунд.

(в моей ОС утилита wget, используемая в сценарии, не имеет ключей -t и -T, иначе я обошёлся бы ими)

Re: Ограничить время исполнения AGI из dialplan'а?

Добавлено: 11 май 2016, 21:14
ded

Re: Ограничить время исполнения AGI из dialplan'а?

Добавлено: 11 май 2016, 21:38
booBot
Спасибо, но не то.
Мне надо попытаться дождаться успешного выполнения сценария в AGI, и - если он не уложился в ~3~5 секунд - продолжить выполнение dialplan'а.

Пока в мыслях воспользоваться таймаутом приложения Dial().

Какую глубину вложенности вызовов допускает asterisk v1.8? Можно ли в конструкции Dial(SIP/${EXTEN},5) вместо EXTEN'а задать строку, вызывающую AGI со всеми необходимыми параметрами?

Re: Ограничить время исполнения AGI из dialplan'а?

Добавлено: 11 май 2016, 21:59
andyk74
Не стоит делать неправильные вещи и костыли в астериске. Потом чревато проблемами.
Обрыв работы процедуры по таймауту есть в любом языке, соответственно эта функция должна быть в AGI скрипте.

Re: Ограничить время исполнения AGI из dialplan'а?

Добавлено: 12 май 2016, 21:01
booBot
Спасибо за предостережение.

(мне надо это всё сделать на сильно урезанной реализации bash-сценария, вот и понадеялся на возможности dialplan'а...)

Re: Ограничить время исполнения AGI из dialplan'а?

Добавлено: 16 май 2016, 13:52
booBot
Перенастроил BusyBox так, что у wget появился ключ -T.
Тайм-аут теперь обеспечивается именно этим ключом.