Джим Меггелен - Asterisk™: будущее телефонии Второе издание
символ-разделитель - символ, который будет выступать в роли разделителя (по умолчанию '-').
диапазон позволяет определить, какие поля будут возвращены. В качестве параметра диапазон с помощью символа - может быть задан диапазон (например, 1-3), а с помощью символа & - группа диапазонов и номеров полей (например, 1&3-4). Заметьте, что, если задано несколько номеров полей, поля результирующего значения будут иметь те же разделители.
Параметр диапазон использует смещение, начиная с 1. То есть первое поле - это поле номер 1 (в противоположность смещению с 0, при котором первое поле шло бы под номером 0).
Смотрите также
FIELDQTY()
DB
Выполняет чтение или запись в AstDB
DB(семейство/ключ)
Будет возвращать значение записи базы данных (или пустую строку, если записи не существует) или записывать значение в базу данных.
Смотрите также
DBdel(), DB_DELETE(), DBdeltree(), DB_EXISTS()
DB DELETE
Удаляет ключ или семейство ключей из базы данных AstDB
DB_DELETE(семейство/ключ)
Возвращает значение из базы данных и удаляет его.
Смотрите также
DBdel(), DB(), DBdeltree()
DB EXISTS
Проверяет, существует ли в AstDB указанный ключ
DB_EXISTS(семейство/ключ)
Проверяет, существует ли ключ в базе данных Asterisk.
Смотрите также
DB()
DUNDILOOKUP
Запрашивает у равноправных участников системы DUNDi определенный номер
DUNDILOOKUP(номер[|контекст[|опция)
ENUMLOOKUP
Запрашивает в базе данных ENUM определенный номер
ENUMiOOKUP(номер[|Тип-методa[|опции[|зaпись#[|суффик.с-зоны]]]])
Позволяет получать основные или специальные NAPTR-записи или счетчики типов NAPTR для ENUM или ENUM-подобных DNS-указателей.
ENV
Работает с переменными окружения
ENV(имяпеременнойокружения)
Возвращает или устанавливает значение переменной окружения, заданной параметром имяпеременнойокружения.
EVAL
Вычисляет хранящиеся переменные
EVAL(переменная)
EVAL() - одна из наиболее мощных функций диалплана. Она позволяет сохранять переменные выражения не только в файле extensions.conf, а, например, и в базе данных и при этом вычислять их в диалплане так же, как если бы они были просто включены в него. Можно смело утверждать, что EVAL() - основной элемент в обеспечении истинной динамичности диалплана.
; Мы можем сохранить в записи базы данных для ; extension/123, например, следующее: ; "SIP/${DB(ext2chan/123)}". Это направит нас к другой ; записи базы данных.
exten => _XXX,1,Set(dialline=${DB(extension/${EXTEN})}) exten => _XXX,n,Dial(${EVAL(${dialline})})
; Реальный пример (взят из кода, используемого ; в производственной эксплуатации)
exten => _1NXXNXXXXXX,n(generic),Set(provider=${DB(rt2provider/${route})}-nanp) exten => _ 1NXXNXXXXXX, n(provider), Dial(${EVAL(${DB(provider/${provider})})})
exten => _1NXXNXXXXXX,n,Goto(nextroute)
Смотрите также
Exec()
EXISTS
Проводит проверку, является ли значение не пустым
EXISTS(данные)
Тест на существование значения: возвращает 1, если оно не пустое; 0 в противном случае.
FIELDQTY
Выполняет подсчет полей
FIELDQTY(имяпеременной|разделитель)
Подсчитывает поля с использованием произвольно заданного разделителя.
Смотрите также
CUT()
FILTER
Удаляет из строки запрещенные символы
FILTER(разрешеные-символы|строка)
Выполняет фильтрацию содержимого параметра строка и включает в результат только значение разрешенные-символы:
; Гарантируем, что номер Caller*ID содержит только цифры
exten => Set(CALLERID(num)=${FILTER(0123456789,${CALLERID(num)})})
Эта функция только возвращает значение, не принимает.
Смотрите также
QUOTE()
GLOBAL
Указывает глобальное пространство имен
GLOBAL(имяпеременной)
Возвращает или устанавливает значение заданной глобальной переменной.
GROUP
Включает канал в заданную группу
GROUP([категория])
Возвращает или устанавливает группу каналов.
; Разрешаем одновременно выполнять доступ к системе ; оповещения только одному пользователю. exten => 8000,1,Set(GROUP()=pager)
exten => 8000,n,GotoIf($[${GROUP_COUNT(pager)} > 1]?hangup) exten => 8000,n,Page(SIP/101&SIP/102&SIP/103&SIP/104) exten => 8000,n(hangup),Hangup
Смотрите также
GROUP_COUNT
Подсчитывает количество каналов в заданной группе
GROUP_COUNT([имягруппы][@кaтегория])
Подсчитывает количество каналов в заданной группе. Возвратит количество каналов в группе текущего канала, если значение имягруппы не задано.
Смотрите также
GROUP(), GROUP_LIST(), GROUP_MATCH_COUNT()
GROUP_LIST
Возвращает список групп каналов
GROUP_LIST()([имягруппы][@кaтегория])
Возвращает список групп, заданных для канала.
Смотрите также
GROUP(), GROUP_COUNT(), GROUP_MATCH_COUNT()
GROUP_MATCH_COUNT
Подсчитывает количество каналов в группах, имена которых соответствуют заданному шаблону
GROUP_MATCH_COUNT(шaблонименигруппы [@категория ])
Подсчитывает количество каналов в группах, соответствующих заданному шаблону.
Смотрите также
GROUP(),GROUP_COUNT(), GROUP_LIST()
IAXPEER
Получает информацию о IAX-канале
IAXPEER(имярaвнопрaвногоучaстникa[| элемент]) IAXPEER(CURRENTCHANNEL[|элемент])
Получает информацию о равноправном участнике IAX. Если имя равноправного участника задано, действительными значениями параметра элемент являются:
ip
IP-адрес этого равноправного участника. Если параметр элемент не задан, IP-адрес будет предоставлен.
mailbox
Заданный для равноправного участника почтовый ящик.
context
Заданный для равноправного участника контекст.
expire
Время следующего истечения регистрации этого равноправного участника.
dynamic
Этот равноправный участник зарегистрирован в Asterisk? (yes/no)
callerid_name
Заданное для этого равноправного участника имя Caller ID.
callerid_num
Заданный для этого равноправного участника номер Caller ID.
codecs
Заданные для этого равноправного участника кодеки.
codec[x]
Индекс x предпочтительного кодека (начиная с нуля).
Смотрите также
SIPPEER()
IF
Выбор значения по условию
^(выражение?[Ггие][: false])
Условный оператор: возвращает данные, следующие за символом ?, в случае истинности условия, в противном случае возвращает данные, следующие за символом :.
; Возвращается foo
exten => 123,1,Set(something=${IF($[2 > 1]?foo:bar)}) ; Возвращается bar
exten => 123,n,Set(something=${IF($[2 < 1]?foo:bar)})
Смотрите также
GotoIf()
IFTIME
Сравнивает текущее системное время с заданным
IFTIME(время,дни_недели, дни_месяца,месяцы?[true][: false])
Условный оператор: возвращает данные, следующие за символом ?, в случае истинности условия, в противном случае возвращает данные, следующие за символом : .
время
Диапазоны времени в 24-часовом формате.
дни_недели
Дни недели (mon, tue, wed, thu, fri, sat, sun). дни_месяца
Дни месяца (1-31).
месяцы
Месяцы (jan, feb, mar, apr и т. д.).
Смотрите также
GotoIfTime()
ISNULL
Проверяет, является ли значение пустым
ISNULL(дaнные)
Возвращает 1, если значение данные пустое, или 0 в противном случае.
Смотрите также
LEN(), EXISTS()
KEYPADHASH
Выполняет преобразование букв в числа
KEYPADHASH(строка)
Преобразует буквы в параметре строка в эквивалентные цифры номеронабирателя.
; Вычислим хеши фамилий авторов. Итак, ; соответствующими значениями будут ; 623736, 76484 и 82663443536.
exten => 123,1,Set(lastname1=${KEYPADHASH(Madsen)}) exten => 123,n,Set(lastname2=${KEYPADHASH(Smith)}) exten => 123,n,Set(lastname3=${KEYPADHASH(VanMeggelen)})
Смотрите также
Directory()
LANGUAGE
Определяет язык канала
LANGUAGE()
Возвращает или устанавливает язык канала.
Эта функция признана устаревшей и была заменена функцией
CHANNEL(язык).