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