KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программное обеспечение » Джим Меггелен - Asterisk™: будущее телефонии Второе издание

Джим Меггелен - Asterisk™: будущее телефонии Второе издание

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Джим Меггелен, "Asterisk™: будущее телефонии Второе издание" бесплатно, без регистрации.
Перейти на страницу:

Можно (необязательно) использовать приложение для перехода в именованный приоритет, заданный аргументом именованный_приоритет. Применение именованных приоритетов возможно только в рамках текущего добавочного номера.

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)

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

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

Линия перегружена.

exten => 123,1,Answer()

exten => 123,2,Playback(im-sorry)

exten => 123,3,Hangup()

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

Answer(), Busy(),Congestion()

HasNewVokemail()

Проводит проверку на наличие нового сообщения голосовой почты в указанном ящике голосовой почты

HasNewVoicemail(утящик[@контекст][:папка][, имяпеременной[, опции]])

Приложение было признано устаревшим и заменено функцией VMC0NNK ).

Л ^

Аналогично приложению HasVoicemail(). Это приложение задает для VMSTATUS значение 1 или 0, чтобы обозначить наличие нового (непрослу- шанного) сообщения в ящике голосовой почты, заданном аргументом утящик. Аргумент контекст соответствует контексту голосовой почты, а папка соответствует папке голосовой почты. Если папка голосовой почты не задана, используется папка по умолчанию, INBOX. Если присутствует аргумент имяпеременной, HasNewVoicemail() сохраняет в заданную переменную количество сообщений в заданной папке.

Если для аргумента опции задано значение j, Asterisk в случае наличия нового сообщения голосовой почты будет направлять вызов в приоритет n + 101.

; проверяем наличие непрослушанного сообщения ; голосовой почты в INBOX почтового ящика 123 ; в контексте голосовой почты по умолчанию

exten =>=> 123,1,Answer() exten => 123,n,HasNewVoicemail( [email protected]) exten => 123,n,GotoIf($[${HASVMSTATUS} > 0]?newvm) exten => 123,n,Playback(vm-youhave) exten => 123,n,Playback(vm-no) exten => 123,n,Playback(vm-messages) exten => 123,n,Goto(done) exten => 123,n(newvm),Playback(vm-youhave) exten => 123,n,SayNumber(${HASVMSTATUS}) exten => 123,n,Playback(vm-INBOX) exten => 123,n,Playback(vm-messages) exten => 123,n(done),NoOp()

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

HasVoicemail(), MailboxExists(), VMCOUNT

HasVoicemail()

Показывает, имеются ли сообщения голосовой почты в указанном ящике голосовой почты

HasVoicemail(vmящик[@контекст][:папка][|имяпеременной[, опции]])

Задает значение переменной канала HASVMSTATUS, чтобы информировать о наличии сообщений в ящике голосовой почты утящик. Аргумент контекст соответствует контексту голосовой почты, а папка - папке голосовой почты. Если папка не задана, используется папка по умолчанию, INBOX. Если передается аргумент имяпеременной, приложение сохраняет в этой переменной количество сообщений в указанной папке. Если для аргумента опции задано значение j, Asterisk в случае наличия голосовой почты в заданной папке будет направлять вызов в приоритет n + 101.

; проверяем, есть ли хотя бы одно сообщение ; голосовой почты в INBOX почтового ящика 123 ; в контексте голосовой почты по умолчанию exten => 123,1,Answer()

exten => 123,2,HasVoicemail( [email protected],COUNT) exten => 123,3,GotoIf(${VMSTATUS}?1000) exten => 123,4,Playback(vm-youhave) exten => 123,5,Playback(vm-no) exten => 123,6,Playback(vm-messages) exten => 123,1000,Playback(vm-youhave) exten => 123,10O1,SayNumber($COUNT) exten => 123,1002,Playback(vm-messages)

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

HasNewVoicemail(), MailboxExists()

IAX2Provision()

Выполняет подготовку вызывающего IAXy-устройства

IAX2Provlslon([шаблон])

Выполняет подготовку к работе вызывающего устройства IAXy (предполагая, что вызывающий субъект - это IAXy) с использованием заданного шаблона. Если шаблон не задан, используется шаблон по умолчанию. Шаблоны подготовки IAXy описаны в конфигурационном файле iaxprov.conf.

; выполняем подготовку IAXy-устройств с использованием ; шаблона по умолчанию, когда они набирают этот ; добавочный номер

exten => 123,1,IAX2ProviSion(default)

ICES()

Выполняет потоковую передачу аудиоданных на сервер Icecast

ICES([конфигурация])

Выполняет потоковую передачу аудиоданных на сервер Icecast (или

совместимый) с помощью приложения ices.

См. файл-образец config в contrib/asterisk-ices.xml.

exten => 123,1,Answer()

exten => 123,n,ICES(/tmp/my-ices-config.xml)

ImportVar()

Задает переменную на основании переменной канала, полученной от другого канала

ImportVar(новаяпеременная=канал, .значение)

Задает переменной новаяпеременная значение, вычисленное для заданного канала (не текущего канала). Если новаяпеременная начинается с символа _, предполагается простое наследование. Если она начинается с символов _ _, предполагается множественное наследование. ; читаем информацию Caller ID из канала Zap/1 exten => 123,1,Answer()

exten => 123,n,ImportVar(cidinfo=Zap/1,CALLERID(all))

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

Set()

Log()

Протоколирует специальное сообщение из диалплана

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*