- База знаний
- Пример файла конфигурации XML для Cisco 8851 phone
- Пример файла конфигурации XML для Cisco 7970 phone
- Пример файла конфигурации XML для Cisco 9971
- Отладка VoIP звонка с Wireshark
- Книги
- Использование поля Diversion в SIP пакете
- Астериск и Н.323
- ISDN release cause codes
- Пример файла конфигурации голосового шлюза Cisco
- Пример конфигурации интерфейса E1 PRI в голосовом шлюзе Cisco
- Аналоговое зло
- Интернациональные телефонные коды стран
- Практикум по интеграции Астериск в комплексе с OpenBSC/Osmocom
- Факс по IP
Функция CUT()
Назначение:
Обработка строки, на основе символов разделителей.Описание:
CUT(varname,delimiter,fieldspec)- varname: переменная, которую Вы хотите разделить.
- delimiter: Разделитель, по умолчанию, символ '-'.
- fieldspec: Количество, необходимых Вам, полей (начиная с единицы), значение также может быть определено как интервал (с помощью символа '-') или как группа интервалов и полей (с помощью символа '&').
Замечания
- В ветке 1.2, начиная с asterisk версии 1.2.8, параметры должны отделяться друг от друга символом "|", а не ","
- Разделителем должен быть одиночный символ. Если задано несколько символов, то будет использоваться только первый из них.
- Чтобы задать в качестве разделителя - запятую, экранируйте ее с помощью символа обратно косой черты: CUT(foo,\,,1).
- Если задано использовать несколько полей из исходной переменной, то, в результате, получиться строка собранная из этих фрагментов, которые будут разделены заданным для функции разделителем.
- Опуская значения одного из ограничителя при использовании интервалов, то мы получим все поля переменной до или после не указанного ограничителя. Например:
- Используя "CUT(somevar,,3-)", в результате, мы получим третье поле и все остальные поля после него.
- Используя "CUT(somevar,,-2)", в результате, мы получим все поля с начала переменной до второго поля, включая его самого.
- Это команда очень часто используется для выделения фрагментов строк переменных, с значением переменной длинны. Для работы со строками фиксированной длинны, используйте встроенные механизмы работы со строками.
- Команда CUT часто используется для отделения секции с уникальным идентификатором от имени канала. Например, имя канала может быть таким: SIP/somehost-f387, а нам нужно получить из этой строки только часть: SIP/somehost .
- Эта функция заменяет приложение Cut, которое объявлено устаревшим.
Параметр varname должен быть именем переменной, а НЕ текстовой строкой. Это довольно редкий случай синтаксиса функции. Итак:
exten => s,1,Set(foo=${CUT(bar,,2)}) ; Это правильный синтаксис.
exten => s,1,Set(foo=${CUT(${bar},,2)}) ; Это не правильный синтаксис
; (исключая случай, когда bar содержит имя другой переменной).
Возвращаемые значения
Возвращает строку с результатом.Примеры
exten => s,1,Set(foo=1-2-3-4-5)
exten => s,2,Set(foo=${CUT(foo,,1-3&5)})
В результате, переменная foo будет иметь значение: 1-2-3-5
Извлечения значения из списка, где значения разделены запятыми:
exten => s,1,Set(myVar="one,two,three")
exten => s,2,Set(cutVar=${CUT(myVar|\,|1)})
Переменная cutVar примет значение 'one'