wiki:Mc04regexp

Version 12 (modified by san, 11 months ago) ( diff )

--

Вики MC04

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

В плате VE-01 в качестве шаблонов номеров применяются perl-совместимые регулярные выражения (PCRE). Регулярные выражения (англ. regular expressions) - это широко используемый способ описания шаблонов для поиска текста и проверки соответствия текста шаблону. Регулярные выражения - формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. Для поиска используется строка-образец (шаблон), состоящая из символов и метасимволов и задающая правило поиска.

В плате VE-01 регулярные выражения применяются в следующих настройках:

  • Настройка "Рег. выражение вызова". Настройка коммутации вызовов в данное окончание. При обслуживаниии вызова, после проверки совпадений вызываемого номера с номерами канальных окончаний, если совпадений обнаружено не было, выполняется второй проход, на котором к номеру(username) вызываемого абонента применяется регулярное выражение. Вызов будет передан для обслуживания первому незанятому канальному окончанию, у которого задано регулярное выражение вызова, под которое подпадает вызываемый номер. Примеры:
    • . - номер содержит хотя-бы 1 символ, любой (при задании такого выражения в качестве "Рег. выражение вызова", окончание будет принимать любые вызовы);
    • 555 - окончание будет принимать вызовы на любой номер содержащий 555, например: 83455567, 555123, 123555.
    • ^5 - номер начинается с пятёрки, окончание будет принимать вызовы только на номера начинающиеся с цифры 5 (символ ^ в выражении обозначает начало номера);
    • ^537 - номер начинается с 537;
    • ^537$ - только номер 537;
    • .{4} - 4 любых символа, например 123#;
    • ^2\d{6}$ - номер длиной ровно 7 цифр и начинается с цифры 2, например 2123456(символ $ в выражении обозначает конец номера);
    • ^2\d{6} - номер, начинающийся с цифры 2, за которой следуют 6 любых цифр, за которыми могут следовать любые другие символы, например 2123456#789;
    • ^(?![34]0\d{2}) - принимает вызовы на все номера, кроме начинающихся с 30 или 40, за которыми следуют две любые цифры. Например не будут приниматься вызовы номеров '3014', '4099';
    • ^[34]0\d{2}$ - принимает только вызовы номеров, начинающихся с последовательности цифр 30 или 40, за которым следует ровно две любые цифры. Например '3074', '4081';
    • ^8(?!10)\d{10}$ - междугородние номера длиной 11 цифр, начинающиеся с 8, исключая международные, начинающиеся с 810;
    • /^5(\d{3})/6\1 - регулярное выражение с заменой - имеет формат /<выражение>/<замена>, где 'выражение' - регулярное выражение, 'замена' - строка, на которую заменяется вызываемый номер в случае его совпадения с регулярным выражением. 'Замена' может содержать подстановки фрагментов регулярного выражения '\1', '\2' и т.д. В данном примере 'выражение'- ^5(\d{3}), а 'замена' - 6\1. В случае совпадения номера с выражением ^5(\d{3})(цифра 5, затем три цифры за которыми следуют любые символы), окончание принимает вызов, и из номера удаляются все символы кроме трёх цифр следовавших за префиксом '5', затем к номеру добавляется новый префикс '6'. Т.е. вызов на номер 5205 будет принят окончанием и отправлен в сторону TDM на номер 6205;
  • Настройка "Рег. выражение набора/номера" - применяется в абонентских окончаний FxS, 1ИНД, АДАСЭ, R2. Настройка "быстрого набора" номеров без ожидания таймаута: номер, набираемый абонентом соответствующего окончания проверяется на совпадение с регулярным выражением указанным в настройке. При совпадении с регулярным выражением немедленно отправляется вызов в IP-сеть без ожидания таймаута набора. Если же совпадения с регулярным выражением не произошло, вызов будет отправлен по истечению таймаута набора очередной цифры. Примеры:
    • ^2\d{6} - вызов будет немедленно отправлен, как только абонент наберёт цифру 2 и ещё 6 любых цифр, например 2123456;
    • ^[235]\d{2} - номер начинается с одной из цифр 2, 3 или 5, затем две любые цифры, например 374;
    • ^+?7\d{10} - в начале номера необязательный символ +, затем цифра 7, затем 10 любых цифр, например +73422241205 или 73422241205;
    • ^[^68] - номер начинается с любого символа кроме 6 или 8;
    • (^7\d{4})|(^6\d{2}) - 5 цифр начинающиеся с 7 или 3 цифры начинающиеся с 6, например 71234, 612;
    • /^2(\d{6})/83422\1 - регулярное выражение с заменой: номер из 7 цифр, начинающийся с цифры 2, в случае совпадения набранного номера с выражением ^2(\d{6}), вызов будет отправлен на номер с префиксом '8342'. Т.е. если в окончании FxS задать такое выражение в качестве "Рег. выражение номера", то при наборе абонентом на телефоне номера 2241205 вызов будет отправлен на номер 83422241205;
  • Функция "Маршрутизация SIP" Перенаправление вызовов. Каждый маршрут состоит из двух основных частей - регулярного выражения, на совпадение с которым проверяется цель (target) запроса SIP, и строки, которой заменяется цель в случае совпадения. Примеры настройки маршрутизации можно увидеть в описании этой функции.

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



Вики MC04

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.