Version 3 (modified by 6 years ago) ( diff ) | ,
---|
Регулярные выражения
В плате VE-01 в качестве шаблонов на совпадение с которыми проверяются телефонные номера применяются perl-совместимые регулярные выражения (PCRE). Регулярные выражения (англ. regular expressions) - это широко используемый способ описания шаблонов для поиска текста и проверки соответствия текста шаблону. Регулярные выражения - формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. Для поиска используется строка-образец (шаблон), состоящая из символов и метасимволов и задающая правило поиска.
В настройках платы VE-01 регулярные выражения применяются в следующих настройках:
- Настройка "Рег. выражение вызова". Настройка коммутации вызовов в данное окончание. При обслуживаниии вызова, после проверки совпадений вызываемого номера с номерами канальных окончаний, если совпадений обнаружено не было, выполняется второй проход, на котором к номеру(username) вызываемого абонента применяется регулярное выражение. Вызов будет передан для обслуживания первому незанятому канальному окончанию, у которого задано регулярное выражение вызова, под которое подпадает вызываемый номер.
- Настройка "Рег. выражение набора/номера" - окончаний FxS, 1ИНД, АДАСЭ, R2. Настройка "быстрого набора" номеров без ожидания таймаута. Номер, набираемый абонентом соответствующего окончания проверяется на совпадение с регулярным выражением указанным в настройке. При совпадении с регулярным выражением немедленно отправляется вызов в IP-сеть без ожидания таймаута набора.
- Функция "Маршрутизация SIP" Перенаправление вызовов. Каждый маршрут состоит из двух основных частей - регулярного выражения, на совпадение с которым проверяется цель (target) запроса SIP, и строки, которой заменяется цель в случае совпадения.
Примеры регулярных выражений:
.
- любой 1 символ (при задании такого выражения в качестве "Рег. выражение вызова", окончание будет принимать любые вызовы);.{4}
- 4 любых символа, например123#
;^5
- номер начинается с пятёрки;^537
- номер начинается с 537;^537$
- только номер 537;^2\d{6}$
- номер длиной 7 цифр и начинается с цифры 2, например2123456
;^2\d{6}
- номер длиной не менее 7 цифр и начинается с цифры 2, например2123456#789
;^[2,3,5]\d{2}
- номер начинается с одной из цифр 2, 3 или 5, затем две любые цифры, например374
;^[^6,8]
- номер начинается с любой цифры кроме 6 или 8;^8(?!10)\d{10}$
- междугородние номера длиной 11 цифр, начинающиеся с 8, исключая международные, начинающиеся с 810;^+?7\d{10}
- в начале номера необязательный символ+
, затем цифра 7, затем 10 любых цифр+73422241205
или73422241205
;(^7\d{4})|(^6\d{2})
- 5 цифр начинающиеся с 7 или 3 цифры начинающиеся с 6, например71234
,612
;-
/^2(\d{6})/83422\1
- регулярное выражение с заменой: номер из 7 цифр, начинающийся с цифры 2, после совпадения к номеру добавляется префикс '8342'. Т.е. если в окончании FxS задать такое выражение в качестве "Рег. выражение номера", то при наборе абонентом на телефоне номера 2241205 вызов будет отправлен на номер 83422241205;
Познакомиться подробней с регулярными выражениями можно по следующим ссылкам:
- Описание синтаксиса на русском: http://www.shtogrin.com/library/web/pcre/doc/pcre/
- Шпаргалка на русском: https://www.exlab.net/tools/sheets/regexp.html
- Онлайн калькулятор, где можно проверить свои рег. выражения: https://regex101.com/
- Полезный сайт на английском http://www.rexegg.com/
Attachments (2)
- 1.png (19.7 KB ) - added by 5 years ago.
- 2.png (23.6 KB ) - added by 5 years ago.
Download all attachments as: .zip