Чтение онлайн

ЖАНРЫ

Asterisk™: будущее телефонии Второе издание
Шрифт:

exten => 123,4,Hangup

Смотрите также

Функция CDR, NoCDR, ResetCDR

GetCPEID

Получает CPE ID от телефона, поддерживающего ADSI

GetCPEID

Получает CPE ID и другую информацию и отображает ее в консоли Asterisk. Эта информация часто нужна, чтобы правильно настроить в файле zapata.conf операции при неподнятой трубке для телефонов, поддерживающих ADSI.

Возвращает -1 только в случае разрыва связи.

; используем этот добавочный

номер, чтобы получить ; необходимую информацию для настройки ADSI-телефонов exten => 123,1,GetCPEID

Смотрите также

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)

Поделиться с друзьями: