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

на главную - закладки

Жанры

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

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

BLACKLIST

LookupCIDName

Выполняет поиск имени Caller ID в AstDB

LookupCIDName

Это приложение было признано устаревшим и заменено приложением Set(CALLERID(имя)=${DB(cidname/${CALLERID(номер)})}).

Использует номер Caller ID активного канала для извлечения имени Caller ID из AstDB (семейство cidname).

Это приложение не делает ничего, если по каналу не получен Caller ID. Это полезно, если вы не подписаны на доставку имени Caller ID или хотите менять имена Caller ID для некоторых входящих вызовов.

; ищем информацию Caller ID в AstDB и передаем ее ; на телефон Джейн exten => 123,1,Answer

exten => 123,2,LookupCIDName exten => 123,3,Dial(SIP/Jane)

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

DB

Macro

Вызывает заранее определенный макрос диалплана

Macro( имямакроса, arg1, arg2...)

Выполняет макрос, определенный в контексте macro- имямакроса, переходя в добавочный номер s этого контекста и выполняя каждый шаг. Возвращается после того, как все шаги были выполнены. Вызывающий добавочный номер, контекст и приоритет хранятся в переменных ${MACRO_EXTEN}, ${MACRO_CONTEXT} и ${MACRO_PRIORITY} соответственно. Аргументы arg1, arg2 и т. д. становятся в контексте макроса переменными ${ARG1}, ${ARG2} и т. д.

Macro завершается аварийно, если на любом из шагов макроса возник сбой или выявлен разрыв соединения. Если по завершении работы макроса задана переменная ${MACRO_OFFSET}, это приложение попытается продолжить выполнение с приоритета MACRO_OFFSET + n + 1, если таковой существует, или с n + 1 в противном случае. (В обоих случаях n означает текущий приоритет.)

Если внутри макроса вызывается приложение Goto для перехода в контекст вне выполняющегося в настоящий момент макроса, макрос будет завершен, а управление передано в точку, указанную в параметрах Goto.

; определяем макрос для обратного счета

; от заданного значения

[macro-countdown]

exten => s,1,Set(COUNT=${ARG1})

exten => s,2,While($[ ${COUNT} > 0])

exten => s,3,SayNumber(${COUNT})

exten => s,4,Set(COUNT=$[ ${COUNT} - 1 ])

exten => s,5,EndWhile

; вызываем наш макрос с двумя разными значениями [example]

exten => 123,1,Macro(countdown,10) exten => 124,1,Macro(countdown,5)

На время выполнения макрос становится текущим контекстом. Это означает, что в случае разрыва соединения, например, поиск добавочного номера h будет выполняться в макросе, а не в контексте, из которого этот макрос был вызван. Поэтому в макросе должны быть обязательно описаны все соответствующие добавочные номера (в AEL можно использовать catch).

Из-за способа реализации Macro (оно выполняет содержащиеся в нем приоритеты через вспомогательный механизм) и выделения фиксированного стека памяти на каждый поток макрос ограничен семью уровнями

вложенности (макрос, вызывающий макрос, вызывающий макрос и т. д.). Приложения, интенсивно использующие стек, в глубоко вложенном макросе могут привести к сбою в работе Asterisk раньше достижения этого предельного уровня вложенности.

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

MacroExit, Goto, Gosub, главу 6

MacroExclusive

Выполняет макрос исключительно для одного канала

MacroExclusive(имямакроса[,аргументы])

Выполняет заданный макрос, гарантируя, что одновременно этот макрос выполняется только одним каналом. Если другой канал уже выполняет этот макрос, MacroExclusive приостановит выполнение данного канала до тех пор, пока тот канал не выйдет из макроса.

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

Macro

MacroExit

Явный выход из макроса

MacroExit

Выполняет явный выход из макроса. Обычно Macro автоматически завершается, выполнив все приоритеты. MacroExit обеспечивает возможность завершить макрос раньше.

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

Macro

MacroIf

Вызывает заранее определенный макрос по условию

MacroIf(условие?макросеслиистинно, аргументы:макросеслиложно, аргументы)

Вычисляет условие, а затем выполняет макросеслиистинно или макросеслиложно. Во всем остальном, кроме вычисления условия, MacroIf ведет себя идентично Macro.

; определяем макрос для обратного счета ; от заданного значения [macro-countdown]

exten => s,1,Set(COUNT=${ARG1})

exten => s,2,While($[ ${COUNT} > 0])

exten => s,3,SayNumber(${COUNT})

exten => s,4,Set(COUNT=$[ ${COUNT} - 1])

exten => s,5,EndWhile

; определяем макрос для прямого счета

; от заданного значения

[macro-countup]

exten => s,1,Set(COUNT=1)

exten => s,2,While($[ ${COUNT} < ${ARG1}])

exten => s,3,SayNumber(${COUNT})

exten => s,4,Set(COUNT=$[ ${COUNT} + 1])

exten => s,5,EndWhile

; вызываем наш макрос с двумя разными значениями [example]

exten => 123,1,MacroIf($[ ${foo} < 5 ]?countup,${foo}:countdown,${foo})

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

GotoIf, GosubIf, IF, глава 6

MailboxExists

Выполняет переходы по условию,

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

MailboxExists(почтовыйящик[@контекст[, опции]])

Проверяет, существует ли в системе голосовой почты Asterisk почтовый ящик, определенный аргументом почтовыйящик. Если почтовый ящик находится не в контексте голосовой почты default, можно передать контекст для голосовой почты.

Поделиться:
Популярные книги

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Попаданка

Ахминеева Нина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попаданка

Возлюби болезнь свою

Синельников Валерий Владимирович
Научно-образовательная:
психология
7.71
рейтинг книги
Возлюби болезнь свою

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Жребий некроманта 3

Решетов Евгений Валерьевич
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Жребий некроманта 3

Город драконов

Звездная Елена
1. Город драконов
Фантастика:
фэнтези
6.80
рейтинг книги
Город драконов

Убивать, чтобы жить

Бор Жорж
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать, чтобы жить

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец