База данных перенесенных абонентских номеров

В соответствии с положениями ФЗ «О связи», вступившими в силу с 01.12.2013, и Постановления Правительства от 06.08.2013 № 672, создана база данных перенесенных номеров (БДПН), поддерживаемая оператором БДПН.
Распоряжением Правительства Российской Федерации от 9 октября 2013 года № 1832-р Оператором БДПН определен ФГУП ЦНИИС.

ФГУП ЦНИИС как оператор базы данных перенесенных абонентских номеров предоставляет:

Операторам подвижной радиотелефонной связи:

  • Услугу по внесению изменений в БДПН
  • Доступ к информации, содержащейся в БДПН

Иным пользователям

(ФОИВ, операторам фиксированной связи, участникам национальной платежной системы, поставщикам контента / Интернет услуг):

  • Доступ к информации, содержащейся в БДПН

Общая схема взаимодействия участников процесса переноса номеров

Перспективы развития БДПН

  • Предоставление информации о переносе номера в режиме транзакций (услуга предоставления API), т.е. в режиме on-line
  • Организация доступа к справочникам БДПН для получения информации о существующих в Российской Федерации операторах подвижной связи, нумерации, выделенной установленным порядком операторам подвижной связи
  • Внедрение процесса изменения маршрутных номеров внутри сети связи одного оператора подвижной радиотелефонной связи
  • Создание и обеспечение функционирования веб-портала для удалённой подачи заявления на перенос абонентских номеров
  • Импорт технического решения в страны, заинтересованные в реализации проекта MNP
  • Обеспечение гарантированного качества обслуживания. В целях обеспечения контроля высокого качества услуги предлагается подписание договора SLA и установка на стороне клиента измерительного зонда контроля качества
  • Передача опыта реализации проекта мировому сообществу через вклады в ITU

Новые проекты на базе инфраструктуры БДПН

ФГУП ЦНИИС в инициативном порядке проводит мероприятия по реализации целого ряда проектов на базе инфраструктуры БДПН в интересах различных коммерческих организаций и государственных ведомств.

Среди задач, решаемых в рамках данных активностей, можно отметить следующие:

  • Противодействие фроду в кредитно-финансовой сфере;
  • Организация взаимодействия с сервисами обмена мгновенными сообщениями в рамках исполнения Федерального закона от 29.07.2017 №241-ФЗ;
  • Проактивная защита от DDoS атак;
  • Защита от почтовых кибератак;
  • Организация контроля абонентских устройств по IMEI;
  • Внедрение более простых и надёжных способов идентификации абонентов на различных сервисах, в том числе в публичных сетях связи Wi Fi;
  • Ведение реестра маршрутной информации для организаций-субъектов Системы-112.

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

  • конкретных абонентах/группах абонентов;
  • социальном облике абонента региона;
  • динамике изменения востребованности услуг;
  • статистике мошеннических действий;
  • иных данных.

28 Июня 2022 14:07
28 Июн 2022 14:07

|

База данных перенесенных абонентских номеров перешла на отечественное ПО

С 28 июня 2022 г. база данных перенесенных абонентских номеров (БДПН) начала работать на отечественном программном обеспечении (ПО), сообщили в НИИ Радио, операторе базы данных. Теперь переход абонентов от одного мобильного оператора к другому будет происходить с помощью российского программно-аппаратного комплекса БДПН 2.0, разработчиком которого выступил сам институт.

В промышленную эксплуатацию новое ПО запущено 28 июня 2022 г. в 2:00. Переход прошел без сбоев. В настоящее время перенос абонентских номеров выполняется в штатном режиме.

С момента создания БДПН в 2013 г. работу системы обеспечивал подрядчик из Литвы. Идея перехода на отечественное ПО больше трех лет прорабатывалась в ЦНИИС (Центральном научно-исследовательском институте связи), бывшем операторе БДПН, который с 27 апреля 2022 г. присоединился к НИИ Радио. На основе сделанных наработок команда БДПН создала программное обеспечение БДПН 2.0, которое начали тестировать с ведущими операторами связи весной этого года. Выявленные в ходе тестирования замечания были устранены, и система подготовлена к вводу в эксплуатацию в сжатые сроки (изначально переход на отечественное ПО планировался в 2023 г).

«Перевод БДПН на российское ПО – важная задача в рамках программы импортозамещения. В настоящий момент также прорабатывается вопрос полной замены оборудования БДПН на отечественные аналоги», – сказал гендиректор НИИ Радио Олег Иванов.

По его словам, процесс организован таким образом, чтобы пользователи вообще не заметили перемен, а для НИИ Радио как оператора системы работа станет удобнее – комплекс можно будет оперативно дорабатывать собственными силами. Переход затронул программную оболочку, систему управления базой данных и операционную систему. Последнюю заменили с Windows Server от Microsoft на свободно распространяемую ОС Linux, что позволит НИИ Радио существенно расширить функционал системы.

«В планах НИИ Радио – создать мобильное приложение для физических лиц с регистрацией через портал госуслуг, где можно будет в режиме онлайн обеспечить переход к другому оператору. Кроме того, институт планирует усовершенствовать бизнес-процессы, за счет чего срок переноса номера сократится до одного дня (сейчас он составляет от восьми дней). В перспективе услуга полностью перейдет в онлайн», – сказал гендиректор института.

Анализ угроз и киберразведка: какие проблемы решает обновленная TIP Security Vision

Безопасность

Также в планах – обеспечить сохранение номера абонента при переезде в другой регион и возможность переходить от оператора к оператору владельцам eSIM. Чтобы эти возможности стали доступны, требуется доработка нормативно-правовой базы и усовершенствование самой БДПН.

***

БДПН в России работает с 2013 г. и позволяет абонентам сохранять свой телефонный номер при переходе от одного оператора связи к другому согласно закону «О связи». За эти годы почти 23 млн абонентов успешно сменили оператора связи с помощью БДПН. Сегодня к системе подключены все действующие на данный момент в России операторы подвижной радиотелефонной связи и почти 500 других организаций (банков, органов власти и т.д.). Оператором БДПН до 27 апреля 2022 г. выступало ФГУП ЦНИИС. После его присоединения к ФГУП НИИ Радио оператором является последний.

  • Почём сегодня объектное хранилище на 2 000 Гб? Предложения десятков поставщиков ― на ИТ-маркетплейсе Market.CNews

В связи с отменой мобильного рабства и появления возможности смены мобильного оператора (перехода к другому) с сохранением номера
(MNP) возникла проблема связанная с неизвестностью абоненту какой сети Вы собираетесь
звонить или отправлять СМС. Для определения какому оператору в России принадлежит абонент существует сервис ЦНИИС.
Если Вам нужно определить оператора мобильного телефона без ввода капчи или с помощью API, то воспользуйтесь нашим сервисом,
который позволяет определить перенесенные номера России,

Казахстана и других стран:

Форма определения оператора абонента (MNP)

Осталось 20 бесплатных запросов до 05:28:52 14.01.23

Для пакетной проверки, Вы можете загрузить файл формата Excel (xlsx, xls, ods, xml, csv, txt), любой столбец которого содержит телефон для проверки.
Файл может быть упакован zip или rar.
В очередной свободный столбец будет добавлен оператор и следующим столбцом регион местонахождения (привязки) абонента.
За каждый проверенный номер телефона с вас будет списан один запрос согласно тарифа.
Для ускорения обработки большие файлы разбивайте на несколько. Скорость обработки каждого файла до 1000 номеров в секунду.
Максимальный размер загружаемого файла 10Mb.
Идущие подряд одинаковые телефонные номера не тарифицируются. Телефон может быть указан в любом формате, например: +7(918)-123-44-55 или 8918-123-4455 и с любыми разделителями из ‘ ‘,'(‘,’)’,’-‘,’+’.
Правила преобразования телефонных номеров. Политика конфиденциальности.

💾 Файл:

Разделитель полей:
Разделитель строк:
Кодировка:

удалять строки, содержащие повторяющиеся значения
заменять номер на нормализованный

По каждому номеру запросить HLR информацию за 99 копеек. Подробнее про HLR

Для загрузки файла необходимо войти или зарегистрироваться! Результат будет продублирован на указанную в профиле почту.
По результатам анализа вы получите дополнительно статистическую информацию по регионам и операторам,
пример отчета.

Сводная информация:
Обработано строк — 4 036
Всего выделено телефонных номеров — 4 035
Уникальных телефонных номеров — 4 035

Статистика по операторам:

  • ООО «Т2 Мобайл» — 3 302
  • ОАО «Вымпел-Коммуникации» — 2
  • ООО «ЕКАТЕРИНБУРГ-2000» — 281
  • ПО «МегаФон» — 292

Статистика по странам и регионам:

  • Соединенное Королевство (GB) — 1
  • Россия (RU)
    • Ростовская область — 856
    • Московская область — 1321
    • Республика Кабардино-Балкария — 13
  • Украина (UA) — 1

Для получения информации о базовой привязке телефонного номера на основании распределения
DEF-кодов между телефонными операторами используйте форму
узнать регион по номеру телефона.

Статистика по базе данных перенесенных номеров (БДПН)

Данная информация отражает актуальное кол-во перенесенных номеров на 13.01.2023 без учета тех, кто вернулся обратно к своему оператору.

По другим странам статистика не ведется, но информация предоставляется.

IMSI, MCC, MNP, PLMN

IMSI (International Mobile Subscriber Identity — международный идентификационный номер подписчика)
Последние три цифры Вашего номера IMSI одинаковы с последними тремя цифрами серийного номера, напечатанного на Вашей SIM карте.
IMSI — соответствует конкретному абоненту. IMSI 25099… соответствует Российскому(250) оператору Билайн(99).

MCC (Mobile Country Code) — код, определяющий страну,в которой находится оператор мобильной связи, состоит из 3х десятичных цифр.
Например, для России он равен 250, США — 310, Венгрия — 216, Китай — 460, Украина — 255, Белоруссия — 257.

MNC (Mobile Network Code) — код мобильной сети (оператора). Он идёт после MCC. Состоит из 2х или 3х десятичных цифр и для каждого оператора он уникален.
Используется для сетей GSM, UMTS, CDMA, Tetra.
Таблица кодов MCC и MNC для операторов по всему миру.

Коды MCC и MNP и соответствующие им названия страны и оператора доступны с помощью API запросов.
Список МСС кодов.

PLMN это код страны + код оператора, т.е. MCC + MNP.

MSIN опознавательный номер абонентской станции — 10 десятичных знаков (для идентификации абонентской станции в пределах сети подвижной связи, к которой она подключена).

LAC (Location Area Code) — код локальной зоны. В двух словах LAC — это объединение некоторого количества базовых станций,
которые обслуживаются одним контроллером базовых станций (BSC). Этот параметр может быть представлен как в десятичном, так и в шестнадцатеричном виде.

CellID (CID) — «идентификатор соты». Тот самый сектор базовой станции. Этот параметр также может быть представлен в десятичном,
и шестнадцатеричном виде.

Route (Routing Number, RN) — «Маршрутный номер». Служебный буквенно-цифровой телефонный номер, содержаний код оператора связи, код региона обслуживания, код станции в сети оператора (необязательно).
Формат RN определен как: DYYXXZ, где
D – буквенный символ, за счет которого обеспечивается невозможность набора данного префикса абонентом;
YY – идентификатор субъектаРФ, в который следует маршрутизировать вызов, порядковый номер региона в ст. 65 Конституции РФ;
ХХ = mobile network code (MNC) оператора;
Z — цифра от 1 до 9, идентификатор Home Location Register (HLR) в сети оператора.

MNP API

Для получения информации об операторе абонента мобильной связи с учетом MNP-переноса используйте следующий API-запрос:

http://htmlweb.ru/api/mnp/phone/ТЕЛЕФОН?api_key=API_KEY_из_профиля

В ответ Вы получите структуру формата html или xml или json содержащую следующие поля:
Если ошибка, то:
error=текст ошибки

Если успешно, то возвращается объект содержащий следующие поля:
phone — номер телефона,
region — Информация о регионе абонента: строка(‘Неизвестен’) или массив [‘id’,’name’, …],
mnc — mnc код оператора
country — страна, например RU
oper — Информация об операторе [‘id’,’name’,’brand’,’mnc’,

  • url — сайт оператора
  • mvno — id код оператора на оборудовании которого данный оператор работает. Указан, если это абонент виртуального оператора
  • deleted — оператор больше не работает. Указана дата когда оператор перестал работать.
  • ]

message — если есть доп. информация
oper_from — id код оператора от кого перенесен, если номер перенесен от другого
mobile=true — если данный абонент мобильной связи
free=true — если это бесплатный номер типа 8-800
sputnik=true — спутниковые телефоны, очень высокая оплата за звонок
sip=true — данный номер работает по технологии IP-телефонии
payment=true — высокая дополнительная стоимость

Если длина переданного для проверки номера телефона больше допустимой для страны, то будет сообщение(message),
но проверка все равно будет производиться, если меньше, то будет ошибка(error):
"Префикс номера NNN соответствует стране CC, длина номера телефона должна быть LLL цифр".
Сколько цифр в телефонном номере?.

Телефон может быть указан в любом формате, например: +7(918)-123-44-55 или 8918-123-4455 и с любыми разделителями из ‘ ‘,'(‘,’)’,’-‘,’+’.
Если телефон содержит только 10 цифр и начинается с 9 или 495, 496, 499, ему будет в начале добавлен +7.
Если телефон начинается на 8 и содержит 11 цифр, то 8 будет заменено на +7.
Если телефон начинается на 007 и содержит 13 цифр, то 007 будет заменено на +7.

Например:

https://htmlweb.ru/json/mnp/phone/79185558000

{«status»:200,
«phone»:79185558000,
«region»:{«id»:49,
«name»:»Ростовская область»,
«okrug»:»Южный федеральный округ»,
«autocod»:61.161,
«capital»:1711,
«english»:»Rostov oblast»,
«iso»:»ROS»,
«country»:»RU»,
«vid»:0},
«oper»:{«id»:3491,
«name»:»МТС»,
«country»:»RU»,
«mnc»:1,
«brand»:»»},
«upd»:»2018-12-12 08:58:16″,
«mobile»:true,
«limit»:18}

Пример с перенесенным абонентом:

https://htmlweb.ru/json/mnp/phone/79153472570

{«status»:200,
«phone»:79153472570,
«oper»:{«id»:4055,
«name»:»ОАО «МегаФон»»,
«country»:»RU»,
«mnc»:2,»brand»:»МегаФон»,
«url»:»megafon.ru»},
«country»:»RU»,
«mnc»:2,
«region»:{«id»:1,
«name»:»Московская область»,
«okrug»:»Центральный федеральный округ»,
«autocod»:»50,90,150,190,177,199″,
«capital»:1,
«english»:»Moscow oblast»,
«iso»:»MOS»,
«country»:»RU»,
«vid»:0},
«oper_from»:1605,
«mobile»:true,
«limit»:79122
}

Для получения оператора, от кого перешел (поле oper_from), по его коду используйте запрос:

https://htmlweb.ru/json/mnp/oper/1605

{«status»:200,
«item»:{«id»:1605,
«name»:»МобильныеТелеСистемы»,
«mobile»:1,
«mvno»:0,
«country»:»RU»,
«mnc»:1,
«brand»:»MTC»,
«url»:»mts.ru»,
«deleted»:null
},
«limit»:79121}

Для получения города(областного центра) по его коду из поля regon->capital используйте запрос:

https://htmlweb.ru/json/geo/city/1

{
«status»: 200,
«country»: {
«name»: «Россия»,
«fullname»: «Российская Федерация»,
«english»: «Russia»,
«id»: «RU»,
«country_code3»: «RUS»,
«iso»: 643,
«telcod»: 7,
«telcod_len»: 11,
«location»: «Европа»,
«capital»: 1,
«mcc»: 250,
«lang»: «русский»,
«langcod»: «ru»
},
«region»: {
«id»: 1,
«name»: «Московская область»,
«okrug»: «Центральный федеральный округ»,
«autocod»: «50,90,150,190,177,199»,
«capital»: 1,
«english»: «Moscow oblast»,
«iso»: «MOS»,
«country»: «RU»
},
«okrug»: «Центральный федеральный округ»,
«city_id»: 1,
«city»: «Москва»,
«city_english»: «Moscow»,
«city_telcod»: «495,496,498,499»,
«city_iso»: «MOW»,
«latitude»: 55.7558,
«longitude»: 37.6176,
«autocod»: «50,90,150,190,177,199»,
«fullname»: «Российская Федерация»,
«english»: «Russia»,
«iso»: 643,
«level»: 1,
«country_telcod»: 7,
«location»: «Европа»,
«capital»: {
«id»: 1,
«name»: «Москва»,
«area»: 1,
«telcod»: «495,496,498,499»,
«latitude»: 55.7558,
«longitude»: 37.6176,
«time_zone»: 3,
«english»: «Moscow»,
«country»: «RU»,
«sound»: «M210»,
«level»: 1,
«iso»: «MOW»,
«vid»: 1,
«post»: 119019,
«wiki»: «ru.wikipedia.org/wiki/%D0%9A%D0%BE%D1%80%D0%BE%D0%BB%D1%91%D0%B2_(%D0%B3%D0%BE%D1%80%D0%BE%D0%B4)»
},
«time_zone»: 3,
«post»: 119019,
«ImgFlag»: «<img src=’https://htmlweb.ru/geo/flags/ru.png’>»,
«vid_id»: 1,
«vid»: «город»,
«limit»: 598516,
«balans»: 26880.46
}

Если Вам нужно получить информацию о базовом распределении номера без учета MNP переноса, используйте другое API.

Общие параметры для всех API сервисов
Другие сервисы, доступные по API
Стоимость API запроса и тарифы

Получить номер телефона в любой из 150 стран

Если Вы планируете интернациональную компанию, вам понадобятся местные, в том числе бесплатные (8-800), номера.
Для объединения всех местных номеров в единный call-центр Вы можете использовать SIP-телефонию

В каких ещё странах доступен перенос номера от одного оператора к другому

Страна стационарные мобильные Toll-free национальные
Австралия
Австрия
Бельгия
Болгария
Бразилия
Великобритания
Виргинские Острова США
Германия
Греция
Дания
Израиль
Ирландия
Испания
Италия
Канада
Кипр
Латвия
Литва
Люксембург
Мексика
Нидерланды
Новая Зеландия
Норвегия
Панама
Перу
Польша
Португалия
Пуэрто Рико
Республика Корея
Румыния
Словакия
Словения
США
Турция
Финляндия
Франция
Хорватия
Чехия
Чили
Швейцария
Швеция
Эстония
Южная Африка

Скачать базу MNP-переносов и базу телефонных номеров

У нас Вы можете приобрести базу телефонных операторов, присвоения телефонных диапазонов номеров, MNP-переносов,
а также подписаться на обновления.

Файлы представлены в двух форматах: исходном и в виде SQL-команд. Список файлов для обновления:

Файлы можно скачать по API, передав ваш API_key:
https://htmlweb.ru/api/mnp/download/ИМЯ_ФАЙЛА?api_key=API_key_из_профиля
Приобрести подписку можно здесь.

Ещё почитать про MNP можно здесь:
  • Русская Википедия: Переносимость_телефонных_номеров
  • Wiki English: Mobile_number_portability
  • Коды MNC Российских операторов
  • Коды MNC мировых операторов
  • ФГУП «ЦНИИС» — Официальный оператор Базы Данных Переносимых Номеров (БДПН) на территории Российской Федерации
Вам может быть интересно:
  • Информация о телефонном номере ( страна, регион, оператор )
  • Список телефонных операторов и их MNC-коды Россия, другие страны
  • Список телефонных операторов и их MNC-коды Россия, другие страны
  • Проверка Email на валидность и существование
  • Чтение почты и отработки отписки
  • API для получения def кодов операторов. Скачать базу телефонных кодов.
  • Бесплатное API проверки корректности номера телефона.
    Вы сможете проверить формальную корректность номера телефона и получить страну абонента.

С 28 июня база данных перенесенных абонентских номеров (БДПН) начала работать на отечественном программном обеспечении (ПО), сообщили в НИИ Радио, операторе базы данных. Теперь переход абонентов от одного мобильного оператора к другому будет происходить с помощью российского программно-аппаратного комплекса БДПН 2.0, разработчиком которого выступил сам институт.

В промышленную эксплуатацию новое ПО запущено сегодня в 2:00. Переход прошел без сбоев. В настоящее время перенос абонентских номеров выполняется в штатном режиме.

С момента создания БДПН в 2013 году работу системы обеспечивал подрядчик из Литвы. Идея перехода на отечественное ПО больше 3-х лет прорабатывалась в ЦНИИС (Центральном научно-исследовательском институте связи), бывшем операторе БДПН, который с 27 апреля 2022 г. присоединился к НИИ Радио. На основе сделанных наработок команда БДПН создала программное обеспечение БДПН 2.0, которое начали тестировать с ведущими операторами связи весной этого года. Выявленные в ходе тестирования замечания были устранены, и система подготовлена к вводу в эксплуатацию в сжатые сроки (изначально переход на отечественное ПО планировался в 2023 году).

«Перевод БДПН на российское ПО – важная задача в рамках программы импортозамещения. В настоящий момент также прорабатывается вопрос полной замены оборудования БДПН на отечественные аналоги», — рассказал гендиректор НИИ Радио Олег Иванов.

По его словам, процесс организован таким образом, чтобы пользователи вообще не заметили перемен, а для НИИ Радио как оператора системы работа станет удобнее – комплекс можно будет оперативно дорабатывать собственными силами. Переход затронул программную оболочку, систему управления базой данных и операционную систему. Последнюю заменили с Windows Server от Microsoft на свободно распространяемую ОС Linux, что позволит НИИ Радио существенно расширить функционал системы.

«В планах НИИ Радио – создать мобильное приложение для физических лиц с регистрацией через портал госуслуг, где можно будет в режиме онлайн обеспечить переход к другому оператору. Кроме того, институт планирует усовершенствовать бизнес-процессы, за счет чего срок переноса номера сократится до 1 дня (сейчас он составляет от 8 дней). В перспективе услуга полностью перейдет в онлайн», — поделился гендиректор института.

Также в планах – обеспечить сохранение номера абонента при переезде в другой регион и возможность переходить от оператора к оператору владельцам eSim. Чтобы эти возможности стали доступны, требуется доработка нормативно-правовой базы и усовершенствование самой БДПН.


28 июня 2022, 13:22
28 июня 2022, 14:22
28 июня 2022, 15:22
28 июня 2022, 16:22
28 июня 2022, 17:22
28 июня 2022, 18:22
28 июня 2022, 19:22
28 июня 2022, 20:22
28 июня 2022, 21:22
28 июня 2022, 22:22
28 июня 2022, 23:22

База данных перенесенных номеров перешла на отечественное ПО

  • База данных перенесенных номеров перешла на отечественное ПО

База данных перенесенных абонентских номеров теперь будет работать на отечественном ПО. Переход был осуществлен без сбоев.

База данных перенесенных абонентских номеров (БДПН) с сегодня, 28 июня, перешла на отечественное программное обеспечение. Об этом сообщает ТАСС со ссылкой на пресс-службу оператора базы данных НИИ «Радио».

«Перевод БДПН на российское ПО – важная задача в рамках программы импортозамещения. В настоящий момент также прорабатывается вопрос полной замены оборудования БДПН на отечественные аналоги», – цитирует агентство гендиректора НИИ «Радио» Олега Иванова.

По данным ведомства, переход на новое ПО прошел без сбоев. Отметим, что ранее работу системы обеспечивал литовский подрядчик. Теперь смена абонентом мобильного оператора будет осуществляться при помощи отечественного программно-аппаратного комплекса БДПН 2.0. Новое ПО разработал сам институт.

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

«Также в планах – обеспечить сохранение номера абонента при переезде в другой регион и возможность переходить от оператора к оператору владельцам eSim. Чтобы эти возможности стали доступны, требуется доработка нормативно-правовой базы и усовершенствование самой БДПН», – указали в ведомстве.

БДПН функционирует с 2013 года в РФ и позволяет абонентам сохранять номер телефона при переходе от одного оператора связи к другому согласно закону «О связи».

Как определить мобильного оператора и домашний регион по номеру телефона

Когда мы пытаемся определить какому оператору принадлежит номер телефона, то обычно смотрим на его DEF код. Например, если номер начинается на 916, то это МТС, на 968 – Билайн, 926 – Мегафон (все зависит от вашего региона). Но этот метод очень условный и совершенно не подходит когда нужны точные данные. В реальности все сложнее: DEF коды часто делят между собой несколько операторов, и совсем необязательно, что искомый номер относится к операторам большой четверки. Ну и наконец, номер можно просто портировать.

В статье я расскажу о том, как по номеру телефона достоверно определить мобильного оператора который его обслуживает, а также получить дополнительную, «бесплатную» информацию – домашний регион абонента. Использовать эти данные можно как угодно, начиная от предзаполнения адреса в анкете пользователя и перенаправления на региональную версию вашего сервиса, до использования этих данных в процессинге и статистике. В конце статьи будет ссылка на github с исходниками.

Сразу оговорюсь, что домашний регион абонента, по большому счету, никак не связан с текущим месторасположением пользователя, т.е. определяемый регион отвечает на вопрос «Откуда номер?», а не «Где пользователь?».

Источники данных

Россвязь

Свой номер телефона мы получаем когда заключаем договор на обслуживание с оператором связи. В свою очередь, распределением диапазонов номеров между операторами связи, а также стандартизацией и общим контролем за услугами связи занимаются соответствующие государственные и международные организации. В России такой организацией является Федеральное агентство связи (Россвязь).

Таким образом, самым надежным источником информации кто обслуживает российский номер телефона является Россвязь, причем это открытые данные, которые агентство публикует у себя на сайте: www.rossvyaz.ru/opendata. Свежий список диапазонов мобильных номеров находится в CSV по ссылке. Каждая строка в файле выглядит как:

DEF-код, начало диапазона, конец диапазона, название оператора, название региона

Однако, с 2013 года появилась возможность переносить номер от оператора к оператору. Значит, руководствуясь только реестрами Россвязи, нельзя однозначно сказать, что номер обслуживается определенным оператором. Зато это вполне можно сказать про регион, ведь переносимость номера работает только в рамках домашнего региона и перенести номер из МТС Новосибирск в Tele2 Санкт-Петербург не получится в принципе.

Таким образом, если по задаче нужно определить только регион пользователя, то реестров Россвязи будет достаточно.

База Данных Перенесенных Номеров

Если нужно точно определять оператора, тогда не обойтись без Базы Данных Перенесенных Номеров, оператором которой является ЦНИИC. Процедуру подключения к базе можно найти у них на сайте: zniis.ru. Но, к сожалению, насколько я знаю, напрямую подключиться к ним не просто, а получив подключение, делиться базой ни с кем нельзя.

Структура этой базы крайне проста: это три CSV файла в которых в формате «номер, название оператора» перечислены:

  • все перенесенные номера на текущий день (обновляется раз в день);
  • все перенесенные номера за последний час (обновляется раз в час);
  • все номера возращенные родному оператору обратно за последний час (обновляется раз в час).

На момент написания статьи, в БДПН находится около 6 миллионов записей.

Суммируя: у нас есть некие диапазоны номеров, которые соответствуют определенным операторам и регионам (Россвязь), и список номеров-исключений из этих диапазонов (БДПН), который распространяется только на название оператора.

Как определять абонентов

Самое очевидное решение этой задачи: посмотреть на слово «диапазон» и использовать перечисленные емкости буквально. Т.е. для определения номера, сортируем всех операторов по их диапазонам и ищем запись, которая относится к минимальному диапазону, в который попадает конкретный номер. Сложность этого алгоритма будет как у бинарного поиска, что довольно неплохо.

Но есть более оригинальный и универсальный способ реализации, сложность которого – константа, независимо от размера данных. Этот метод предполагает использование масок номеров.

Маска номера

Маска номера – это строка состоящая из цифр и спецсимвола со значением «wildcard одиночного символа» («?»), который говорит, что на его месте может быть любая цифра. Причем после знака вопроса может стоять только знак вопроса.

Таким образом, один из диапазонов Билайн в Москве «79031000000 – 79031999999», в виде маски будет записан как «79031??????».

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

Хеш-таблица

Например, один из таких алгоритмов это хранение соответствий «маска-оператор» в хеш-таблице (или любом другом key-value хранилище). Суть алгоритма в следующем: все подобные маски складываются в хеш-таблицу, где они являются ключами. Значениями в таблице являются объекты-операторы с регионами.

Работу поиска нагляднее всего объяснить на примере. Скажем, мы ищем информацию по номеру: 7(903)100-1234, и у нас есть маска 79031?????? – Билайн, Москва.

Сперва ищем в таблице запись по ключу в точности как исходный номер: 79031001234.
Если не найдено, то меняем последнюю цифру номера на «?» и ищем по ключу 7903100123?.

Если опять ничего не нашли, то снова меняем последнюю цифру на «?» и ищем по 790310012??, и так далее.

В конце концов мы сделаем поиск по ключу 79031?????? и обнаружим, что номер относится к оператору Билайн, Москва.

Видно, что в данном случае сложность алгоритма равна сложности нескольких взятий из хеш-таблицы, что при правильной реализации обычно равно константе. Сложность поиска в таком дереве зависит от длины телефонных номеров, которая по рекомендации ITU-T E.164 не превышает 15 символов.

Этот же алгоритм можно применить и к портированным номерам – их можно просто добавить в ту же самую хеш-таблицу.

Префиксное дерево

Гораздо более эффективный по производительности метод – построение префиксного дерева из масок, который будет опираться на то, что номера состоят из цифр. Каждая нода этого дерева сможет иметь до 10 цифровых нод-потомков (0-9) и одной wildcard-ноды. Wildcard-нода может иметь только wildcard-потомков. При добавлении очередной маски в дерево, каждый символ маски последовательно превратится в ноду. Таким образом, фактически мы представляем все имеющиеся у нас маски в виде одного дерева.

Например, дерево состоящее из масок:
7913? – Mno1
791?? – Mno3
7952 – Mno2
7953 – Mno3
795? – Mno1
будет иметь вид, как на картинке (перечисленные маски в дереве идут слева направо).

Алгоритм поиска в дереве, думаю, уже понятен: берем по порядку каждую цифру из искомого номера и последовательно спускаемся по дереву начиная с корня. В первую очередь спускаемся по цифровым нодам, если цифровых нод нет, то смотрим есть ли «?»-нода. Если есть, то в конечном итоге проверяем длину маски, и если она соответствует номеру, то оператор найден.

Заключение

В зависимости от ограничений, можно комбинировать эти подходы и разделять хранилища перенесенных номеров и масок Россвязи. Например, по памяти выгоднее для портированных номеров использовать подход с хеш-таблицей, а для реестров Россвязи всегда выгоднее использовать дерево масок. При поиске сначала смотреть в таблице, а если в ней ничего не найдено, то искать в дереве. Разделение хранилищ в первую очередь удобно для их автообновления, т.е. если изменилась БДПН (а она меняется постоянно), то совсем необязательно перечитывать диапазоны Россвязи.

Для максимальной производительности можно хранить всю информацию прямо в оперативной памяти. В моей реализации на Java, дерево масок Россвязи занимает не более 20-30Мб, хеш-таблица с масками портированных номеров: около 500-600 Мб. Если же портированные номера хранить в префиксном дереве, то из-за того, что ноды дерева получаются очень разреженные, памяти потребуется примерно в 1.5 раза больше. Но зато, это дает достаточно весомый прирост производительности.

Спасибо за внимание!

→ Весь исходный код доступен на github.

28 июня 2022
14:22

База данных перенесенных номеров перешла на отечественное ПО

База данных перенесенных абонентских номеров теперь будет работать на отечественном ПО. Переход был осуществлен без сбоев.

База данных перенесенных абонентских номеров (БДПН) с сегодня, 28 июня, перешла на отечественное программное обеспечение. Об этом сообщает ТАСС со ссылкой на пресс-службу оператора базы данных НИИ «Радио».

«Перевод БДПН на российское ПО – важная задача в рамках программы импортозамещения. В настоящий момент также прорабатывается вопрос полной замены оборудования БДПН на отечественные аналоги», – цитирует агентство гендиректора НИИ «Радио» Олега Иванова.

По данным ведомства, переход на новое ПО прошел без сбоев. Отметим, что ранее работу системы обеспечивал литовский подрядчик. Теперь смена абонентом мобильного оператора будет осуществляться при помощи отечественного программно-аппаратного комплекса БДПН 2.0. Новое ПО разработал сам институт.

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

«Также в планах – обеспечить сохранение номера абонента при переезде в другой регион и возможность переходить от оператора к оператору владельцам eSim. Чтобы эти возможности стали доступны, требуется доработка нормативно-правовой базы и усовершенствование самой БДПН», – указали в ведомстве.

БДПН функционирует с 2013 года в РФ и позволяет абонентам сохранять номер телефона при переходе от одного оператора связи к другому согласно закону «О связи».

  • База данных мобильных телефонов по фамилии
  • База омс полисов узнать номер
  • База общепита павлово телефон
  • База номеров телефонов с данными
  • База номеров телефонов для рассылки