1.27.2011

Home Rerouting

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

Стандарт GSM определяет сеть отправителя SMS ответственной за за доставку сообщения получателю.Это означает, что SMSC (SMS-центр) в сети отправителя обязан "найти" местоположение получателя сообщения (фактически найти коммутатор, на котором зарегистрирован получатель) и доставить сообщение на этот коммутатор.


Получатель сообщения при этом может находиться либо в своей домашней сети (наиболее вероятное событие), либо в сети оператора-партнёра в той же стране (если между сетями разрешён национальный роуминг) или же в любой другой сети, с которой подписано роуминг-соглашение.
Для того, чтобы определить адрес коммутатора получателя сообщения, SMSC использует протокол MAP, а конкретно операцию sendRoutingInfoForSM (opCode 45). Операция представляет собой запрос от SMSC к домашнему HLR получателя SMS. В общем случае, SMSC не знает адрес HLR-а абонента, поэтому запрос посылается с использованием MSISDN получателя, в качестве адреса. Сеть получателя обязана транслировать MSISDN в адрес соответствующего HLR. В ответ на запрос, HLR обязан вернуть адрес текущего коммутатора абонента (MSC) и IMSI. Возможны варианты, когда HLR ответит, что такого абонента не существует, либо он не зарегистрирован в сети.
Следующий этап это отправка сообщения на коммутатор используя операцию mt-ForwardSM/mo-ForwardSM (opCode 44/46).
В чём проблема такого подхода? Во-первых, любая сеть, с которой есть соглашение об обмене SMS, может запросто получить данные о местоположении абонентов (с точностью до MSC). Информация о местоположении может быть использована при организации массовых санкционированных и несанкционированных рассылок. Поскольку каждый коммутатор отвечает за определённый географический регион, у организатора рассылки появляется возможность отправлять различные варианты рекламного текста в зависимости от местоположения абонента.
Также, если внимательно взглянуть на рисунок выше, то можно заметить, что абонент получит SMS даже в том случае, если mt-ForwardSM Ack (подтверждение о доставке SMS) не будет доставлен к SMSC. Это позволяет организовывать мошенничества, в которых адреса отправителя и SMSC заменяются на чужие и таким образом счёт за терминацию SMS будет выставлен совсем другому оператору.
Чтобы решить эти, а также ряд других проблем, организация 3GPP разработала спецификацию TR 23.840.
Основная идея этого документа состоит в том, чтобы именно домашняя сеть отвечала за доставку смс на текущий MSC абонента. Для минимизации изменений в существующих сетях, домашняя сеть должна отвечать адресом виртуального MSC на все запросы sendRoutingInfoForSM из других сетей. Таким образом все входящие сообщения будут поступать на этот виртуальный коммутатор, а с него уже на настоящий.

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

P.S. Хотя документ написан и утверждён довольно давно, мне не доводилось встречать его практических реализаций. Если Вы используете такие системы или есть сведения об их использовании другими операторами – оставляйте комментарии.


Статьи по теме:
Call forwarding
Основы переадресации вызовов в GSM
SMS Forwarding