Регулярные выражения применяются при конфигурировании следующих параметров:
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=