- База знаний
 - Пример файла конфигурации 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'
