Маски и модификации

Правила работы с масками

Маскирование используется в Oktell Studio для возможности меньшим количеством правил описать необходимое поведение системы. Маска выделяет значимые символы анализируемых полей для сравнения и принятия решения. В основном используется при обработке звонков.

При создании правил используется механизм базовых символьных правил, основанный на фиксированном местоположении анализируемых символов.

Базовые символьные правила маскирования

При создании маски используются следующие символы:

* - любое количество символов
? - любой символ кроме точки
$ - любое количество символов до ближайшей точки
X - один символ
[ ] - перечисление возможных значений. Примеры:
   [138] - 1 или 3 или 8
   [4-7] - 4 или 5 или 6 или 7
   [+15] - + или 1 или 5
   [1-46-8] - 1 или 2 или 3 или 4 или 6 или 7 или 8
   [*] - символ *
{} - спецсимволы
   {E} - пустое
   {F} - значение from (номер источника)
   {T} - значение to (номер назначения)

Примеры масок:

Маска Описание

ХХХ789*

подходит для любых номеров, где 4~6 символы равны 789

*789*

правило описывает, что в номере есть подряд символы 789, начиная со второй позиции

[+]*

любой номер, который начинается на

[*]9810*

любой номер, который начинается на *9810

+790[356]*

любые номера, начинающиеся на +7903, +7905, +7906

Правила работы с модификаторами

Модификации предназначены для изменения значение поля перед дальнейшей обработкой. На вход подается первоначальное значение, на выходе получаем значение после его обработки.

Использование правил модификации позволяет сократить количество правил, необходимых для обработки полного набора значений входных параметров.

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

  • базовые посимвольные правила, основанные на подмене

  • RegEx выражения

Базовые символьные правила модификаций

Правило выполняется над всеми символами входного значения слева направо.

Х - перенести один символ в результат
* - любые оставшиеся символы в результат
/X/ - исключение одного символа, можно указать несколько символов (например, /XX/ исключает два символа)
0-9 - добавляет символ в текущую позицию
[символ] - добавляет один символ между [] в результат. Символ может быть любым, например, * или T
T - повторение первоначального номера
{} - спецсимволы
  {E} - пустое
  {F} - значение from (номер источника)
  {T} - значение to (номер назначения)

Примеры модификаций

Первоначальное значение Правило Результирующее значение

71234

T

71234

+71234

/X/*

71234

81234

7/X/*

71234

1234

7T

71234

534

712/X/*

71234

9123

/X/XX0

120

9123

120

120

123

*99

12399

1005

[*]99

*99

RegEx выражения модификации

Используется php RegEx ядро.

К исходному значению применяется шаблон pattern с опциями opts, и обнаруженный(-ые) блок(-и) заменяется(-ются) на шаблон replace. Результат может снова быть подан на следующую операцию RegEx-модификации, и так далее конечное число раз.

Общая структура записи RegEx-модификатора:

/reg/pattern1/substitution1/opts1 /reg/pattern2/sub2/opts2
  • reg - константа

  • pattern - выражение

  • substitution - правило выборки

  • options - опции из (могут не указываться)

    • g - global

    • i - case-insensitive

Примеры

значение: qwerty,qwerty
модификатор: /reg/t/E/g /reg/qwer/a/
результат: aEy,qwerEy
Для выделения номера назначения при получении INVITE пакета от IP-АТС Meridian / Avaya
/reg/([0-9]+).*/\1/
При формировании шаблонов Pattern и Replace могут применяться все стандартные правила регулярных выражений, включая группы захвата, поиск назад, подстановку именованных групп и т.д.