Шрифт:
Смотрите также
GotoIf, GotoIfTime, Gosub, Macro
GotoIf
Выполняет переход по условию в заданный приоритет
GotoIf(условие? метка1:метка2)
Направляет вызов в метка1, если условие истинно, или в метка2, если условие ложно. Параметры метка1 и метка2 могут быть опущены (в этом случае просто не выполняется переход при том или ином условии), но не оба одновременно.
В качестве метки может использоваться одно из нижеперечисленного:
• Приоритет, например 10.
• Добавочный номер и приоритет, например 123,10.
• Контекст, добавочный номер и приоритет, например incoming,
123,10.
• Именованный приоритет в рамках того же добавочного номера, например passed.
Все типы меток описаны в данном примере:
[globals]
; присвоим TEST какое-то значение, кроме 101, чтобы ; увидеть, что делает GotoIf, когда условие ложно TEST=101
[incoming] ; задаем переменную
; переходим в приоритет 10, если ${TEST} равна 101, ; в противном случае переходим в приоритет 20 exten => 123,1,GotoIf($[ ${TEST} = 101 ]?10:20) exten => 123,10,Playback(the-monkeys-twice) exten => 123,20,Playback(tt-somethingwrong)
; то же самое, что было сделано выше, но на этот раз ; зададим добавочный номер и приоритет для каждой метки exten => 124,1,GotoIf($[ ${TEST} = 101 ]?123,10:123,20)
; то же самое, что было сделано выше, но эти метки имеют ; контекст, добавочный номер и приоритет
exten => 125,1,GotoIf($[ ${TEST} = 101 ]?incoming,123,10:incoming,123,20)
; то же самое, что было сделано выше, но на этот раз ; будем переходить в именованные приоритеты exten => 126,1,GotoIf($[ ${TEST} = 101 ]?passed:failed) exten => 126,15(passed),Playback(the-monkeys-twice) exten => 126,25(failed),Playback(the-monkeys-twice)
Смотрите также
Goto,GotoIfTime, GosubIf, MacroIf
GotoIfTime
Выполняет переход по условию на основании времени и дня
GotoIfTime(время,дни_недели,дни_месяца,месяцы?метка)
Выполняет переход в заданный добавочный номер, если текущее время соответствует заданному. Каждый элемент может быть определен или как * (для всех случаев), или как диапазон. Аргументы приложения: время
Диапазоны времени в 24-часовом формате.
дни_недели
Дни недели (mon, tue, wed, thu, fri, sat, sun).
дни_месяца
Дни месяца (1-31).
месяцы
Месяцы (jan, feb, mar, apr и т. д.).
; Если мы открыты, переходим в контекст open ; Мы открыты с 9 утра до 6 вечера ; с понедельника по пятницу
exten => s,1,GotoIfTime(09:00-17:59,mon-fri,*,*?open,s,1)
; Также мы задерживаемся по вторникам и четвергам
exten => s,n,GotoIfTime(09:00-19:59,tue&thru,*,*?open,s,1)
; Также мы открыты с 9 утра до полудня по субботам exten => s,n,GotoIfTime(09:00-11:59,sat,*,*?open,s,1)
; Во все остальное время мы закрыты exten => s,n,Goto(closed,s,1)
Смотрите также
GotoIf, IFTIME
Hangup
Безусловный разрыв связи по текущему каналу
Hangup( код-причина)
Безусловно разъединяет текущий канал. Для удаленного конца соединения будет задан параметр код-причина как причина завершения вызова, если он поддерживается каналом. По умолчанию параметр код-причина принимает значение 16 (нормальное завершение вызова). Допустимые значения параметра код-причина: 16
Нормальное завершение вызова.
17
Занято.
19
Нет ответа.
21
Вызов отклонен.
34