Asterisk™: будущее телефонии Второе издание
Шрифт:
exten => 123,4,Hangup
Смотрите также
Функция CDR, NoCDR, ResetCDR
GetCPEID
Получает CPE ID от телефона, поддерживающего ADSI
GetCPEID
Получает CPE ID и другую информацию и отображает ее в консоли Asterisk. Эта информация часто нужна, чтобы правильно настроить в файле zapata.conf операции при неподнятой трубке для телефонов, поддерживающих ADSI.
Возвращает -1 только в случае разрыва связи.
; используем этот добавочный
Смотрите также
ADSIProg, adsi.conf, zapata.conf
Gosub
Переходит в новую точку, сохраняя адрес возврата
Gosub( контекст, добввочныйномер, приоритет) Gosub(добввочныйномер, приоритет) Gosub(приоритет)
Переходит в заданную точку, аналогично Goto, за исключением того что Gosub сохраняет адрес возврата, чтобы вернуться в него позже посредством вызова Return.
Смотрите также
GosubIf, Macro, Goto, Return, StackPop
GosubIf
Переходит в новую точку по условию, сохраняя адрес возврата
GosubIf(условие?меткаеслиистинно:меткаеслиложно)
На основании вычисленного условия Gosub будет передавать выполнение или в меткаеслиистинно, или в меткаеслиложно. Вернуться в эту точку диалплана можно, вызвав позднее Return.
Слово метка (label) часто используется, чтобы обозначить возможность задать приоритет; добавочный номер и приоритет или контекст, добавочный номер и приоритет. Мы используем слово метка, чтобы не повторять каждый раз все возможные варианты.
; Задаем исходящий Caller*ID по умолчанию, ; если он не задан конкретным каналом.
exten => _NXXXXXX,1,GosubIf($["${CALLERID(num)}" = ""]?setcallerid,1) exten => _NXXXXXX,n,Dial(Zap/g1/${EXTEN})
exten => _1NXXNXXXXXX,1,GosubIf($[„${CALLERID(num)}" = „"]?setcallerid,1)
exten => _1NXXNXXXXXX,n,Dial(Zap/g1/${EXTEN})
exten => setcallerid,1,Set(CALLERID(num)=6152345678)
exten => setcallerid,n,Return
Смотрите также
Gosub, Return, MacroIf, IF, GotoIf,
Goto
Направляет вызов в заданный приоритет, добавочный номер и контекст
Goto([[к.онтек.ст)]добaвочныйномер)]приоритет) Goto( именованный_приоритет)
Передает управление текущим
каналом в заданный приоритет, при этом могут быть заданы (необязательно) вызываемый добавочныйномер и контекст.Можно (необязательно) использовать приложение для перехода в именованный приоритет, заданный аргументом именованный_приоритет. Применение именованных приоритетов возможно только в рамках текущего добавочного номера.
exten => 123,1,Answer
exten => 123,2,Set(COUNT=1)
exten => 123,3,SayNumber(${COUNT})
exten => 123,4,Set(COUNT=$[ ${COUNT} + 1 ])
exten => 123,5,Goto(3)
; то же самое, но с использованием именованного приоритета
exten => 124,1,Answer
exten => 124,2,Set(COUNT=1)
exten => 124,3(repeat),SayNumber(${COUNT})
exten => 124,4,Set(COUNT=$[ ${COUNT} + 1 ])
exten => 124,5,Goto(repeat)
Смотрите также
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)