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

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

Жанры

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

Функция CUT аналогична инструменту командной строки UNIX cut(1) и, кстати, разработана на базе этого инструмента.

В диалплане можно задавать смещения в символах для выбора подстроки из переменной исключительно на основании постоянной длины символов (а именно 1). Функция CUT создана, чтобы помочь при работе с данными, которые могут иметь несколько секций переменной длины с одинаковым разделителем.

Самый распространенный вариант - имя канала, которое состоит из двух частей: базового имени и уникального идентификатора (например, SIP/tom-abcd1234 или SIP/bert-1a2b3c4d). Функция CUT может

использоваться для обрезки уникального идентификатора независимо от длины базового имени:

; Вырезаем уникальный идентификатор

; из имени текущего канала

exten => 123,1,Set(chan=$<CUT(CHANNEL,-,1)})

имяпеременной– это имя обрабатываемой переменной. Обратите внимание, что функция CUT работает с именем переменной, а не ее значением. CUT уникальна с этой точки зрения.

символ-разделитель– символ, который будет выступать в роли разделителя (по умолчанию '-').

диапазон позволяет определить, какие поля будут возвращены. В качестве параметра диапазон с помощью символа - может быть задан диапазон (например, 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 содержит только цифры

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

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

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

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Ведьма Вильхельма

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
8.67
рейтинг книги
Ведьма Вильхельма

Запрети любить

Джейн Анна
1. Навсегда в моем сердце
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Запрети любить

Экспансия: Прибытие. Том 1

Белов Артем
1. Планетарный десант
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Экспансия: Прибытие. Том 1

Очкарик 3

Афанасьев Семён
3. Очкарик
Фантастика:
фэнтези
5.75
рейтинг книги
Очкарик 3

Наномашины, "Шива"! Том 7

Новиков Николай Васильевич
7. Первый среди карапузов
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наномашины, Шива! Том 7

Настроение – Песец

Видум Инди
7. Под знаком Песца
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Настроение – Песец

Хозяйка старой усадьбы

Скор Элен
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
Хозяйка старой усадьбы

Служанка. Второй шанс для дракона

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Служанка. Второй шанс для дракона

Специалист по нечисти

Билик Дмитрий Александрович
2. Бедовый
Фантастика:
юмористическая фантастика
городское фэнтези
мистика
5.00
рейтинг книги
Специалист по нечисти

Барон Дубов 2

Карелин Сергей Витальевич
2. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов 2

Экспансия: Контакт. Том 6

Белов Артем
6. Планетарный десант
Фантастика:
боевая фантастика
космическая фантастика
аниме
5.00
рейтинг книги
Экспансия: Контакт. Том 6

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая