Что такое формат E.164
Рекомендация ITU-T E.164 — это международный план нумерации, который задаёт каждому телефонному номеру в мире уникальную форму. Номер E.164 состоит из кода страны (от 1 до 3 цифр) и национального значимого номера, всего не более 15 цифр. В машиночитаемом виде он начинается со знака плюс и больше не содержит ничего лишнего: ни пробелов, ни скобок, ни дефисов, ни внутреннего префикса 0, который набирают при звонке внутри страны.
Один и тот же мобильный номер ОАЭ в выгрузке из CRM может выглядеть как 050 123 4567, +971 50 123 4567, 00971501234567 или 971-50-1234567. Только один из этих вариантов соответствует E.164: +971501234567. Если хранить все номера в таком виде, их можно сравнивать, находить дубликаты, и их примет любой API для SMS, WhatsApp или голосовых вызовов.
- Коды стран: +971 ОАЭ, +966 Саудовская Аравия, +974 Катар, +965 Кувейт, +973 Бахрейн, +968 Оман, +20 Египет, +44 Великобритания, +1 США и Канада.
- Уберите внутренний префикс: 050 в ОАЭ превращается в 50 после +971, а 07400 в Великобритании — в 7400 после +44.
- Замените префикс международного вызова (00 в большинстве стран, 011 в США и Канаде) на +.
- Максимальная длина — 15 цифр, не считая знака плюс.
Форматы телефонных номеров в странах GCC и MENA
Планы нумерации стран Персидского залива похожи, но различаются длиной номера и тем, используется ли внутренний префикс 0. Поэтому список с локальными форматами из нескольких стран нельзя очистить без страны по умолчанию и полных данных о планах нумерации.
- ОАЭ (+971): мобильные номера состоят из 9 цифр и начинаются с 5 (50, 52, 54, 55, 56, 58); локально набираются как 05X XXX XXXX. Стационарные номера состоят из 8 цифр, например 04 для Дубая и 02 для Абу-Даби.
- Саудовская Аравия (+966): мобильные номера состоят из 9 цифр и начинаются с 5; локально записываются как 05X XXX XXXX. Формат E.164: +966 50 123 4567.
- Катар (+974), Кувейт (+965), Бахрейн (+973) и Оман (+968): 8-значные номера без внутреннего префикса 0, поэтому локальный номер совпадает с национальным. В Катаре мобильные начинаются с 3, 5, 6 или 7, в Кувейте — с 5, 6 или 9, в Бахрейне — с 3, в Омане — с 7 или 9.
- Египет (+20): мобильные номера состоят из 10 цифр и начинаются с 10, 11, 12 или 15; локально записываются как 01X XXXX XXXX.
- Арабо-индийские цифры (٠١٢٣٤٥٦٧٨٩) и персидские цифры (۰۱۲۳۴۵۶۷۸۹) часто встречаются в формах, заполненных на арабской клавиатуре. Это те же номера, и перед отправкой в любой API их нужно преобразовать в ASCII-цифры.
Почему чистые списки важны для доставляемости и бюджета
Каждый неверный номер, дубликат или стационарный номер в списке кампании — это потраченные впустую деньги или сообщение. Многие SMS-маршруты тарифицируют каждое отправленное сообщение, поэтому номер с недостающей цифрой всё равно оплачивается. Дубликат означает, что один и тот же клиент дважды получит ваше предложение, а это ведёт к отпискам и жалобам на спам. Большая доля недоставленных сообщений вредит репутации вашего имени отправителя, или альфа-имени, у операторов.
В WhatsApp номер с неверным форматом просто не сработает: Cloud API ожидает полный международный номер, а локальный номер вида 050… без кода страны будет либо отклонён, либо отправлен в другую страну. Очистка списка перед импортом также делает осмысленными отчёты о доставке (DLR): ошибки тогда указывают на реальные проблемы, например неактивные номера, а не на опечатки.
- Удаляйте дубликаты после нормализации, а не до неё: 0501234567 и +971501234567 — это один и тот же человек.
- Исключайте стационарные номера из отправки SMS и WhatsApp; направляйте их на голосовые вызовы.
- Сохраняйте неверные строки с пометкой в отдельном файле, чтобы исправить исходную систему.
- Проверка формата доказывает лишь, что номер может существовать, но не что он активен. Для этого используйте HLR-запрос или отчёты о доставке.
Как работает этот форматировщик
Инструмент использует libphonenumber-js с полными метаданными Google libphonenumber — теми же данными о планах нумерации, которые применяются в Android и большинстве платформ для обмена сообщениями. Он проверяет каждый номер по диапазонам, выделенным в его стране, и возвращает тип линии там, где его определяет план нумерации: мобильный, стационарный, бесплатный, VoIP, премиальный или с разделением стоимости. В США и Канаде мобильные и стационарные номера используют одни и те же диапазоны, поэтому тип отображается как стационарный или мобильный.
Перед разбором инструмент преобразует арабо-индийские, персидские и полноширинные цифры, удаляет невидимые символы направления текста, которые часто содержит арабский текст, убирает префиксы tel: и wa.me и заменяет 00 на +. Номера, которые уже начинаются с кода страны, но без плюса, например 971501234567, тоже распознаются. Всё работает в вашем браузере: списки до 50 000 строк обрабатываются небольшими частями на вашем устройстве и никуда не загружаются.
E.164 или только цифры: какой формат выбрать
Используйте E.164 с плюсом (+971501234567) для хранения номеров в CRM или базе данных, в ссылках tel: и для большинства API SMS и голосовых вызовов. Используйте запись только цифрами (971501234567) там, где плюс недопустим: в ссылках wa.me для перехода в чат, в wa_id WhatsApp Cloud API и в API для SMS, которые принимают номер получателя как простое число, например в SMS API OmniChannels.ai.
Какой бы формат вы ни выбрали, используйте его единообразно во всех системах. Смешение форматов — самая частая причина того, что один и тот же контакт появляется дважды, а импортируемые списки не проходят проверку.
