Архив метки: regular expression

Mera MVTS: Регулярные выражения

Регулярные выражения применяются при конфигурировании следующих параметров:

dialpeer.cfg

  • dst_pattern=, src_pattern=
  • dst_translate=, src_translate=
  • dst_bill_translate=, src_bill_translate=
  • user_translate=

user.cfg, gateway.cfg

  • dst_pattern=, src_pattern=
  • dst_translate=, src_translate=
  • in_dst_translate=, in_src_translate=

Система проверяет регулярные выражения в сконфигурированных правилах трансляции на присутствие запрещенных символов и удаляет их. В правой части выражения трансляции можно использовать следующие символы: ^0123456789*#\&

Префиксы полей DST_PATTERN и SRC_PATTERN

Наиболее часто используемые конструкции:

dst_pattern=777[0-9]+
комментарий: номера, начинающиеся с 777 и состоящие далее из произвольных цифр
удачные примеры: 77711, 777922
неудачные примеры: 77811, 7771

dst_pattern=777[0-5].[0-9]+
комментарий: номера начинающиеся с 777, далее следует любая цифра в диапазоне от 0 до 5 и далее любые цифры
удачные примеры: 77711, 777422
неудачные примеры: 777, 77811, 77761, 7775,

dst_pattern=……
комментарий: любой шестизначный номер
удачные примеры: 123456, 976065 неудачные примеры: 1111111, 111

Трансляция номеров

При трансляции номеров наиболее часто используется добавление, отрезание и замена префикса.

Добавить префикс 78 к номеру 12345:
dst_translate = 12345/78&
результат: 12345 → 7812345

Добавить префикс 78312 к любому шестизначному номеру:
dst_pattern=……
dst_translate=.*/78312&
результат: 123456 → 78312 123456
результат: 654321 → 78312 654321

Добавить префикс 78312 к номеру, начинающемуся с 777:
dst_pattern=777……
dst_translate=[0-9]*/78312&
результат: 777123456 → 78312777123456
результат: 777121212 → 78312777121212

Отрезание префикса
dst_translate=095|.*/\2
комментарий: «отрезать» префикс 095, от последующей (второй) подстроки
результат: 09512345 → 095 | 123456 → 123456

dst_pattern=8182……
dst_translate=8182|[0-9]*/\2
комментарий: «отрезать» префикс 8182, т.е. подстроку 8182, предшествующую второй подстроке
результат: 8182123456 → 8182 | 123456 → 123456

Отрезать префикс и заменить его на другой:
dst_pattern=8182……
dst_translate=8182|[0-9]*/777\2
комментарий: «отрезать» префикс 8182 и вставить подстроку 777, перед второй подстрокой
результат: 8182123456 → 8182 | 123456 → 777 123456

bill_translate=1212|.*/1718\2
комментарий: «отрезать» префикс 1212 и заменить его на префикс 1718, перед второй подстрокой для целей биллинга
результат: 121212345 → 1212 | 12345 → 1718 | 12345 → 171812345

Убрать символ # из середины строки
src_translate=[0-9]*|#|[0-9]*/\1\3
комментарий:«вырезать» символ #, расположенный между 1-й и 3-й подстроками
результат: 123#45 → 123 | # | 45 → 12345

Отрезать символ #, завершающий строку:
dst_bill_translate=[0-9]*|#/\1
результат: 123456# → 123456 | # → 123456

Добавить символы в конец строки:
dst_translate=….|/\177
(комментарий: подставить 77 в конец первой подстроки)

Предварительная трансляция — выполняемая при поступлении звонка от этого шлюза,перед началом поиска обьекта набора
in_dst_translate=
in_src_translate=