Asterisk app: RetryDial
Краткий обзор
Пытается совершить вызов, в случае неудачи повторяет попытку.
Описание
Это приложение будет пытаться совершить вызов используя приложение Команда Asterisk Dial(). Если канал недоступен, будет воспроизведен файл <announce>. Затем, приложение будет ожидать указанное в <sleep> количество секунд, прежде чем повторить вызов. После количества попыток указанного в <retries>, вызывающийся канал продолжит выполнение со следующего приоритета диалплана. Если для параметра <retries> установлено значение '0', попытки совершить вызов будут повторяться бесконечно. В ожидании повторного вызова может быть набран экстеншн состоящий из одной цифры. Если этот экстеншн существует в контексте указанном в ${EXITCONTEXT} или в текущем контексте, вызов перейдет к этому экстеншену немедленно. <dialargs> указываются в том же формате, что и аргументы использующиеся в приложении Dial.
Синтаксис
RetryDial(announce,sleep,retries,dialargs)
Аргументы
announce - Имя аудиофайла, который будет воспроизводиться при отсутствии доступа к каналу.
sleep - Количество секунд ожидания после неудачной попытки набора номера, которое должно пройти перед новой попыткой.
retries - Количество попыток вызова которые будут совершены. По достижению заданного количества попыток, выполнение продолжится со следующего приоритета диалплана.
dialargs - Аргументы вызова, соответствуют аргументам использующимся в приложении Dial.
Пример
В данном примере мы пытаемся вызвать sip/100, если канал недоступен то воспроизведется звуковой сигнал и пойдет 5 секундное ожидание после которого попытка повторится еще два раза (общее количество попыток - 3). Если во время ожидания мы наберем '5' то будем переадресованы на соответствующий экстеншн и аналогично попытаемся вызвать sip/123.
exten => 111,1,Answer() exten => 111,n,RetryDial(beep,5,3,sip/100) exten => 5,1,RetryDial(beep,5,3,sip/123)
Смотри также