dastapov: (Default)
Dmitry Astapov ([personal profile] dastapov) wrote2006-12-01 04:14 pm
Entry tags:

GSM: как работает "сохранение номера" (mobile number portability)

На днях Верховная Рада приняла (пока - в первом чтении) ряд поправок к закону о телекоммуникациях. В их числе - требование к операторам мобильной связи обеспечить сохранение телефонного номера за абонентом в случае перехода к другому оператору (т.н. mobile number protability или MNP).

Идея отнюдь не нова - с конца девяностых годов FCC в штатах, Комиссия по Связи в Евросоюзе и Ofcom в Англии выдвигают подобные требования к операторам, работающим на территории их юрисдикции. В принципе понятно, что это нововведение означает для абонента - исчезает "барьер" по смене оператора, и т.п.

А вот что это означает для операторов? Об этом я и попробую рассказать.

Проблемы, возникающие с введение MNP

Для начала, я постараюсь дать максимально упрощенное описание проблемной области, постаравшись, тем не менее, не упустить существенных деталей.

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

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

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

Правильный маршрут при этом определяется по статической таблице маршрутизации, в которой для каждой 10000-ой группы номеров (типа 50469xxxx) указан "адрес" HLR-а, в котором хранятся данные абонентов с такими номерами телефонов.

Понятно, что с введением MNP эта стройная картина разрушается. Если абонент с номером 5556677 перешел из сети оператора Orange в сеть оператора Vodafone, его информация будет находится в одном из HLR-ов Vodafone и именно туда должны маршрутизироваться сигнальные сообщения "request_current_location".

Но кто же их туда смаршрутизирует?

И тут на сцену выходит SRF ...

А давайте сделаем так - будет загонять весь (ну, или почти весь) сигнальный трафик в волшебный черный ящик, который будет его правильно маршрутизировать :)

Такой черный ящик называется SRF - сокращение от signalling relay function. Как можно догадаться из название, это функциональность, которая позволяет перенаправлять (relay) запросы, касающиеся номеров, "уехавших" в другую сеть.

SRF должен позволять:
1)Определять, для каких номеров делать перенаправление маршрутизации (для этого нужна база таких номеров)
2)Знать, в какую конкретно сеть надо делать перенаправление для такого-то номера телефона (для этого, опять же, нужна база).
3)Уметь "подменять" SCCP-адреса(*) в сигнальном трафике (что-то вроде NAT-а в TCP/IP, с или без connection tracking)
*)SCCP - Signalling Connection Control Part, часть стэка протоколов SS7.

Тот, кто читал книжки/документацию/стандарты по GSM, наверняка заметил, что вещи, называемые "blah-blah-blah function" - это концепции, детали реализации которых обычно остаются "за кадром".

Однако в данном случае нас интересуют именно детали: какой элемент сети выполняет функцию SRF, где находится пресловутая база "уехавших" номеров, когда происходит перенаправление сигнального трафика и т.п.

Поехали по порядку.

Прямая vs косвенная маршрутизация vs N-1 маршрутизация

Сначала немного терминологии. Сетью-донором (donor network) будем называть сеть, "отдающую" свой мобильный номер вмесе с уходящим абонентом. Соответственно, сеть-получатель (recipient network) - это сеть, в которую этот номер "пришел" вместе с абонентом.

Итак, где же расположить SRF и как его использовать (когда к нему обращаться)?

Поскольку номера могут перемещаться между сетями произвольным образом, очевидно, что все сети (в рамках страны) должны иметь реализацию SRF. Полагаться на Единый Центральный SRF - глупо, т.к. он лопнет от нагрузки и будет служить single point of failure, рискующей оставить без связи пол-страны :)

ОК, договорились. Допустим, у каждого оператора есть волшебный черный ящик с надписью SRF, в функции которого входит отловить сигнальный трафик вроде "request_current_location for MSISDN" и перенаправить его на нужный HLR в сети-получателе. Кто и когда будет к этму черному ящику обращаться?

Как всегда, пусть у нас абонент А (обслуживаемый опертором Life) звонит на номер B (8050*). Этот номер изначально принадлежал UMC, но абонент B перешел с ним в KyivStar (KS).

Возможны три варианта:

1)Коммутатор сети Life, обслуживающий A, обращается к SRF, который перенаправляет запрос на HLR KyivStar-а. Этот HLR возвращает коммутатору Life информацию о том, на какой именно коммутатор сети KS надо маршрутизировать звонок. Это так называемая "прямая маршрутизация", которая, если я не ошибаюсь, принята в Евросоюзе. При этом база, в которой хранится информация об "одолженых" номерах - централизована, и все операторы общаются с ней с помощью набора стандартизированых протоколов.

2)Коммутатор сети Life, обслуживающий А, видит, что номер B - из "национального кода" (NDC) 50, принадлежащего UMC, и отправляет звонок в UMC. Коммутатор UMC обращается к SRF, узнает, что номер уехал в KS, и перенаправляет звонок на нужный коммутатор сети KS. Это так называемая "косвенная маршрутизация", принятая в Англии. При этом UMC, в принципе, может иметь свою собственную базу SRF, следящую только за статусом номеров, принадлежащих UMC. На практике, в той же Англии используется централизованная база.

3)Развитие предыдущих двух способов. Договоримся, что по умолчанию работает "прямая маршрутизация", но если коммутатор сети Life, из которой исходит звонок, по каким-то причинам не обратился к SRF (например, сеть в процессе модернизации), то запрос уедет в сеть-донор, которая осуществит "косвенную маршрутизацию". При этом сеть-донор (UMC) выставит счет сети Life за "нарушение протокола" и дополнительную сигнальную нагрузку. Такая схема принята в США и называется "N-1 маршрутизация"

На самом деле, все три схемы немного сложнее, чем я описал (в основном по причине того, что необходимо обеспечить корректную генерацию CDR-ов и учет денег во всех возможных случаях, включая роуминг). Для примера, можете почитать про "Direct routeing override" в Английских нормативных документах (см. Литературу).

Какой вариант лучше?

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

Как номера попадают в базу MNP, к которой обращается SRF?

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

А почему без картинок?

А я ленивый :)

Берите первые две ссылки из литературы - там полно картинок.

О чем я не рассказал?

Я не рассказал, как делается number portability между наземными и мобильными операторами, но существенных отличий там нет - так, мелкие технические детали.

Давайте вопросы и замечания :)

Литература

[identity profile] alexshubert.livejournal.com 2006-12-01 02:29 pm (UTC)(link)
*проникновенное* а к чему ты это?
kastaneda: (Default)

[personal profile] kastaneda 2006-12-01 02:34 pm (UTC)(link)
А нельзя ль ввести в действие MNP без указа ВР?

[identity profile] xoma-xoma.livejournal.com 2006-12-01 03:36 pm (UTC)(link)
"Красиво" будет в случае, если горе-пользователь будет 10 раз в год перебегать между операторами... ;)

[identity profile] zhuk-s.livejournal.com 2006-12-01 04:01 pm (UTC)(link)
Подозреваю, что глупый вопрос, но. А у UMC нету маленького такого, локального MNP для своих абонентов, которые мигрировали с Sim-Sim с сохранением номера ? Или там нет разделения абонентской базы ?

[identity profile] murkt.livejournal.com 2006-12-01 08:18 pm (UTC)(link)
Соответственно, сеть-получатель (recepient network)
recipient

[identity profile] tarantul.livejournal.com 2006-12-02 01:24 pm (UTC)(link)
Не совсем понятным для меня остался механизм пополнения этой мегабазы?
Достаточно ли пользователю проделать какие-то манипуляции с телефоном, что бы уйти со своим номером в чужую сеть, уведимов _один_ раз обоих, или надо каждый раз "просить" оператора ?

[identity profile] smirnoffs.livejournal.com 2006-12-02 04:21 pm (UTC)(link)
Дмитрий, а можно на будущее что-то про Push to Talk. Я так понял, что сервис может предоставлятся вне сети оператора, насколько это правда?

(Anonymous) 2006-12-03 04:41 pm (UTC)(link)
прокомментируете?
http://news.com.com/FBI+taps+cell+phone+mic+as+eavesdropping+tool/2100-1029_3-6140191.html

[identity profile] akshaal.livejournal.com 2006-12-05 04:49 pm (UTC)(link)
А правда что в UMC офис такой какой показан в рекламе?
Ну большие-светлые-помещения, тетеньки-в-белых-халатах, большие-показывающие-панели-на-всю-стену и прозрачные-мониторы?

:))

Тарификация

[identity profile] maxsan1.livejournal.com 2006-12-12 01:54 pm (UTC)(link)
В данный момент у меня звонки внутри сети стоят дешевле, чем на других сотовых операторов. Интересно, как изменится тарификация услуг при утверждении данных изменений в законе? После этого я уже не смогу знать по номеру абонента, подключен ли он к моей сети. Вдобавок, пострадает или изменится услуга "список любимых номеров". Или же понятие внутрисетевого траффика исчезнет вообще?

Статья с ошибками!

(Anonymous) 2009-11-09 06:49 am (UTC)(link)
Или я что-то не так понял, или статья написана с ошибками. К этому выводу я пришел, прочитав следующий опус :

"Коммутатор сети Life, обслуживающий A, обращается к SRF, который перенаправляет запрос на HLR KyivStar-а. Этот HLR возвращает коммутатору Life информацию о том, на какой именно коммутатор сети KS надо маршрутизировать звонок.".

Простите, описанная процедура смахивает на описание процедуры "HLR interrogation", но делается описанная процедура в ДОМАШНЕЙ сети ее гейтовым коммутатором, гейтовые коммутаторы посторонних сетей просто доводят вызов по ISUP до гейтового коммутатора домашней сети, а далее он сам внутри своей сети разбирается, где и кто находится. Речь в правильной транскрипции может идти о ПЕРЕАДРЕСАЦИИ либо о проключении вызова шлейфом, но это все делается по телефонной сигнализации ISUP без каких-то бы то ни было HLR!

[identity profile] diesell.livejournal.com 2014-02-13 05:15 am (UTC)(link)
Дмитрий, сорри за некропостинг, а вот такой вопрос есть (поскольку в России MNP вот-вот заработает в полную силу)

до настоящего времени у российских мобильных абонентов есть возможность посмотреть в справочнике кодов DEF, откуда был звонок
например тут - http://www.mtt.ru/mtt/def

а смогут ли реально продолжить корректную работу такие сервисы после начала масштабных переходов номеров от оператора к оператору? как это решено на Украине?