Перейти к содержимому

Примеры правил трансляции

Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию

На этой странице собраны правила трансляции, о которых операторы спрашивают чаще всего. Каждое правило проверено движком трансляции коммутатора на приведённом примере номера. Вставьте правило в поле CLD Translation Rule (правило трансляции CLD) или CLI Translation Rule (правило трансляции CLI) аккаунта, правила аутентификации или подключения и проверьте его на собственных номерах, прежде чем на него полагаться. Синтаксис объяснён в разделе Трансляция номеров.

Цель Правило Номер Результат
Удалить международный префикс 00 s/^00// 00442079460123 442079460123
Удалить 00 или 011 s/^(00|011)// 01138056123456 38056123456
Добавить префикс s/^/53872/ 123 53872123
Удалить + в начале s/^\+// +442079460123 442079460123
Добавить +, если его ещё нет s/^([0-9])/+\1/ 442079460123 +442079460123
Заменить +1 на 1 s/^\+1/1/ +123456789 123456789
Заменить +570 на 2222 s/^[+]570/2222/ +570123456789 2222123456789
Международный формат в национальный s/^44/0/ 442079460123 02079460123
Национальный формат в международный s/^0/44/ 02079460123 442079460123
Удалить 00, но не трогать 000 s/^00([1-9])/\1/ 00850532166 850532166
То же правило, номер с 000 s/^00([1-9])/\1/ 000850532166 000850532166
Убрать 90 после 4-символьного технического префикса, начинающегося с B s/^(B...)90/\1/ B0439012345678 B04312345678
Убрать первые пять цифр s/^[0-9]{5}// 666667 7
Цель Правило Номер Результат
Добавить 1 к 10-значным номерам s/^(\d{10})$/1\1/ 2125550123 12125550123
То же правило, 11-значный номер s/^(\d{10})$/1\1/ 12125550123 12125550123
Добавить 90312 к 10-значным номерам s/^(\d{10})$/90312\1/ 1234567890 903121234567890
0 и 10 цифр после него становятся 90 и этими цифрами s/^0(\d{10})$/90\1/ 01234567890 901234567890
Добавить 30 к 8-значным номерам s/^(\d{8})$/30\1/ 12345678 3012345678
Дополнить 1-значный номер до 303333333X s/^(\d)$/303333333\1/ 5 3033333335
Дополнить 2-значный номер до 30333333XX s/^(\d{2})$/30333333\1/ 52 3033333352
Развернуть 4-значный внутренний номер до полного s/^(\d{4})$/0164828\1/ 6016 01648286016
Дописать 0000 к 7-значным номерам s/^([0-9]{7})$/\g<1>0000/ 1234567 12345670000
Оставить только первые 7 цифр s/^([0-9]{7}).*/\1/ 1234567890 1234567
Убрать первую цифру 11-значных номеров s/^\d(\d{10})$/\1/ 01234567890 1234567890
Убрать 592 из 7-значных номеров s/^592(\d{4})$/\1/ 5929999 9999
Заменить CLI короче 10 символов фиксированным CLI s/^.{0,9}$/0123456789/ 601612345 0123456789
То же правило, 10-значный CLI s/^.{0,9}$/0123456789/ 6016123456 6016123456
Заменить что угодно длиной от 1 до 6 символов s/^.{1,6}$/test/ abcdeg test
Цель Правило Номер Результат
Дописать суффикс s/$/123/ 120264765 120264765123
Заменить суффикс 1110 на 1400 s/1110$/1400/ 1234561110 1234561400
Дописать 1122 к номерам вида 90XXX112 s/^(90\d{3}112)$/\g<1>1122/ 90666112 906661121122
Заменить CLI, который заканчивается на 1234 s/^.*1234$/unknown/ 60161231234 unknown
Заменить то, что стоит перед последними семью цифрами, на 90212 (первая из семи цифр — от 1 до 8) s/.*([1-8][0-9]{6})/90212\1/ 1234567890123 902127890123
Цель Правило Номер Результат
Убрать всё, что не является цифрой s/\D//g +1 (212) 555-0123 12125550123
Убрать точки s/\.//g 1.233.45 123345
Убрать пробелы s/ //g 1 2 3 123
Превратить +90 (310) 988 00 00 в цифры s/^[+]//;s/[() ]//g +90 (310) 988 00 00 903109880000

Слову вроде BLOCK не соответствует ни одна ставка, поэтому звонок с CLD, переписанным в него, отклоняется ещё до маршрутизации. Звонок завершается с 403 и ничего не стоит.

Цель Правило Номер Результат
Заменить любой номер фиксированным 123456 999 123456
Задать CLI, когда звонящий его не передал s/^$/123456/ 123456
Убрать CLI s/^.*// 12345
Заменить CLI, содержащий буквы s/^.*[a-zA-Z].*$/1909/ anonymous 1909
Заменить CLI, содержащий что-либо, кроме цифр s/.*[^0-9].*/44444/ anonymous 44444
Добавить префикс к CLI, содержащему буквы s/^(.*[a-zA-Z].*)$/123\1/ anonymous 123anonymous
Повторить номер дважды s/^(.*)$/\1\1/ 34565 3456534565
Заменить CLI, содержащий #91 s/^.*#91.*/3444/ 124a8#9112555615 3444
Убрать буквы; если ничего не осталось, использовать Blank s/[a-zA-Z]//g;s/^$/Blank/ hello Blank
То же правило, остаются цифры s/[a-zA-Z]//g;s/^$/Blank/ hello123 123
Блокировать номера, содержащие буквы s/^.*[a-zA-Z].*$/BLOCK/ B1231231236016 BLOCK
Блокировать номера, длина которых не 12 символов s/^(?!.{12}$).*$/BLOCK/ 12345 BLOCK
Блокировать номера, которые не начинаются с 14 s/^(?!14).*$/BLOCK/ 15 BLOCK
Убрать каждый CLI, который не начинается с 78565 s/^(?!78565).*// 1785650000
То же правило, разрешённый CLI s/^(?!78565).*// 785650000 785650000

Пропускать три разрешённых CLI, а каждый другой CLI заменять первым из них:

s/^(?!90312(1111111|2222222|3333333)$).*$/903121111111/

903122222222 остаётся без изменений; 903129999999 становится 903121111111.

Замены одного правила выполняются одна за другой, каждая над результатом предыдущей. Это позволяет строить условия, но также означает, что более поздняя замена может отменить более раннюю. Пометьте промежуточный результат символом, которого никогда не бывает в номерах, например # или несколькими буквами, и уберите пометку в конце.

Цель Правило Номер Результат
Заменить 44 на 222, затем 2222 на 55 s/^44/222/;s/^2222/55/ 442333222111 55333222111
Поменять местами 111 и 222 s/^111$/#222/;s/^222$/111/;s/^#// 111 222
То же правило, другой номер s/^111$/#222/;s/^222$/111/;s/^#// 222 111
Оставить CLI, начинающиеся с 962, заменить все остальные s/^962/ZYX962/;s/^[0-9].*/96268009996/;s/^ZYX// 44123 96268009996
То же правило, CLI с 962 s/^962/ZYX962/;s/^[0-9].*/96268009996/;s/^ZYX// 962123 962123
Добавить 011, если номер не начинается с +1 s/^/011/;s/^011\+1/+1/ 13058946105 01113058946105
То же правило, номер с +1 s/^/011/;s/^011\+1/+1/ +13058946105 +13058946105
Удалить 011; оставить 1 в начале; иначе добавить 1 s/^/a1/;s/^a1011//;s/^a11/1/;s/^a// 0112011555 2011555
То же правило, номер с 1 s/^/a1/;s/^a1011//;s/^a11/1/;s/^a// 12125550123 12125550123
То же правило, любой другой номер s/^/a1/;s/^a1011//;s/^a11/1/;s/^a// 2125550123 12125550123

В правиле обмена #222 не совпадает с ^222$, поэтому вторая замена его не трогает; третья убирает пометку. Без пометки 111 стал бы 222, а затем снова 111.

Правила с ${R:…} дают другой результат при каждом звонке. Результаты ниже — только примеры.

Цель Правило Возможный результат
Пять случайных символов из 0, 1, 2, 3 и 6 s/.*/${R:[0-3,6]5}/ 16020
Фиксированный префикс +17266 и восемь случайных цифр s/.*/+17266${R:[0-9]8}/ +1726677763170
Убрать 1 в начале, оставить следующие четыре цифры, добавить шесть случайных цифр s/^1//;s/^(\d{4}).*$/\1/;s/$/${R:[1-9]1[0-9]4[1-9]1}/ 2026600081

Выбрать случайно один из шести фиксированных CLI: сначала случайная буква, затем по одной замене на каждую букву.

s/.*/${R:[a-f]}/;s/^a/+919995346432/;s/^b/+919995000100/;s/^c/+919846000012/;s/^d/+919746532512/;s/^e/+919783252017/;s/^f/+919230456789/

Собрать CLI из 57, блока 300–305, 310–319 или 320–322 и семи случайных цифр. Буквы a, b, c выбирают блок, поэтому замена одного блока никогда не совпадает с результатом другого:

s/.*/${R:[a-c]}/;s/^a$/5730${R:[0-5]}/;s/^b$/5731${R:[0-9]}/;s/^c$/5732${R:[0-2]}/;s/$/${R:[0-9]7}/

Возможный результат — 573202031518.