Asterisk. Команда RetryDial.

RetryDial() - Делает попытку позвонить и повторяет ее в случае неудачи.

RetryDial(объявление,ожидание,циклы,технология/ресурс[&технология2/ресурс2...][,времяожидания][,опции][,URL])

Делает попытку совершить звонок. Если нет доступного канала, воспроизводится файл, определенный аргументом объявление, а затем приложение ожидает заданное аргументом ожидание количество секунд и повторяет вызов. Если количество выполненных попыток равно значению, заданному аргументом циклы, обработка вызова продолжится в следующем приоритете диалплана. Если аргументу циклы задано значение 0, попытки дозвониться будут выполняться бесконечно.
В ходе ожидания может быть введен одноразрядный добавочный номер. Если этот номер существует в любом из контекстов, определенных в переменной ${EXITCONTEXT} (если она определена), или в текущем, вызов немедленно будет переадресован на этот добавочный номер.
Все аргументы после аргумента циклы передаются непосредственно в приложение Dial().

Пример:

; трижды пытаемся дозвониться на номер через IAX, повторяя попытку каждые пять секунд
exten => 123,1,RetryDial(priv-trying,5,3,IAX2/VOIP/8885551212,30)
; если вызывающий абонент в процессе ожидания нажимает 9, звоним по этому номеру по каналу Dahdi/3
exten => 9,1,RetryDial(priv-trying,5,3,Dahdi/3/78652333333,30)

 

 

См. также: Dial()