Примеры правил трансляции
Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию
На этой странице собраны правила трансляции, о которых операторы спрашивают чаще всего. Каждое правило проверено движком трансляции коммутатора на приведённом примере номера. Вставьте правило в поле 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.
Связанные страницы
Заголовок раздела «Связанные страницы»- Трансляция номеров: где применяются правила, и полный синтаксис
- Маршрутизация и тарификация звонков по CLI или CLD
- Блокировка входящих звонков с определённого CLI
- Проверка правила трансляции (API)