Настройка правил конвертации номеров

При настройке SIP-аккаунтов от некоторых операторов связи или регистрации с АТС, чьих настроек нет у нас в списке Шаблонов серверов может потребоваться вручную настроить правила конвертации номеров для исходящих звонков.

Перед отправкой телефона SIP-оператору, может потребоваться преобразование номера в его формат. Например, в телефоне номера часто записаны через 8, со скобками и пробелами. Такие номера для совместимости лучше привести к стандартному формату:

8 (926) 123-45-67 → 79261234567

Суть необходимого преобразования номера: удалить пробелы, скобки и дефисы. Цифру 8 в начале номера нужно преобразовать в код страны, например, для России это 7.

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

  • Имеется 2 типа правил: содержащие знак = (равенство) и не содержащие его
  • Все правила применяются по очереди
  • Рекомендуем использовать символ ` (одинарная кавычка) в начале и в конце правил, чтобы отключить возможное преобразование части правила в смайлики.

Первый тип правила (со знаком равенства =)

Такие правила заменяют левую от = часть на правую. Обе части правила — это регулярные выражения. Если левая часть правила не найдена в номере телефона, правило пропускается.
[^+*#\w]= ^8=7
Пример 1: Преобразование содержит 2 правила. Первое удаляет из набранного номера все символы кроме цифр, букв и знаков +, *, # и _. Второе правило заменяет первую цифру 8 в номере на 7.
^(8|\+7)([0−9]{10})$=7\2
^(8|\+7)(?=\d{10})=7.
Пример 2: Два эквивалентных правила, заменяют 8 и +7 в начале номера телефона на 7 (точка в конце правила важна).
.*=
Пример 3: Преобразует любой номер в пустое значение. Такое значение, например, стоит по умолчанию для линий Шлюза (SIP-аккаунтов), чтобы возможные текстовые сообщения от пользователя по умолчанию не обрабатывались как номера и вызов по линии происходил только на явно установленный номер (Номер на АТС).

Второй тип правил (без знака равенства =)

Такие регулярные выражения задают маску для ограничения использования оператора. Если регулярное выражение не соответствует номеру телефона, данный оператор исключается и последующие правила не рассматриваются. В случае соответствия просматривается следующее правило.
^7\d{10}$
Пример 4: ограничивает использование SIP аккаунта только на российские телефонные номера (начинаются на 7 и имеют далее 10 цифр)
^79\d{9}$
Пример 5: российские мобильные номера
^\d{3}$
Пример 6: трёхзначные (обычно внутренние) номера

Смотрите также


Способы оплаты шлюза SIP.TG для переброски звонков между Telegram и SIP-телефонией

Частые проблемы и решения при настройке шлюза для звонков между Telegram и SIP-телефонией

Настройка кодеков для SIP-аккаунтов при настройке шлюза SIP.TG для голосовых звонков в Telegram

Настройки и использование DTMF-клавиатуры при Telegram-звонках

Коды ошибок и их расшифровка, которые могут возникнуть при настройке шлюза для звонков из Telegram

Функции Группы пользователей для задания ограничений и гибкого управления ресурсами выделяемыми пользователям SIP.TG

Способы передачи управления тарифом другому пользователю, передача права администрирования тарифом, а также передача права собственности на тариф

Запрос управления аккаунтом SIP.TG для помощи пользователям, категории пользователей которым доступна функция

Операторы ip-телефонии для разных географических зон, проверенные нашей командой

Назначение, преимущества, порядок установки и настройки собственных Worker-серверов для SIP.TG

Назначение, преимущества, порядок установки и настройки собственного Хранилища сессий Telegram для SIP.TG