# Схема доставки MT-SMS через SS7, шаг за шагом

> Доставка SMS на абонента через SS7 занимает два шага MAP. Сначала SMSC отправляет SendRoutingInfoForSM к HLR получателя, который возвращает IMSI и адрес обслуживающего MSC/SGSN. Затем SMSC отправляет MT-ForwardSM этому MSC, который выполняет пейджинг аппарата и доставляет сообщение, возвращая результат SMSC.

- Канонический URL: https://www.broadnet.me/ru/reference/ss7-mt-sms-delivery-flow
- Язык: ru
- Последнее обновление: 2026-07-18
- Издатель: BroadNet (https://www.broadnet.me)

Полный путь SMS на абонента через SS7: SMSC к HLR SendRoutingInfoForSM, HLR возвращает IMSI + обслуживающий MSC, SMSC к MSC MT-ForwardSM, пейджинг и доставка, а также повтор для отсутствующего абонента через MWD и AlertServiceCentre.

## Шаг 1 — поиск маршрута (SRI-SM)

SMSC начинает, имея только MSISDN получателя. Он отправляет MAP SendRoutingInfoForSM к HLR, которому принадлежит этот номер, адресуя HLR по global title (SSN 6). HLR ищет абонента и, если тот достижим, отвечает IMSI плюс locationInfoWithLMSI — адресом MSC (или SGSN), обслуживающего абонента в данный момент. Это и есть информация о маршруте, нужная SMSC для доставки сообщения.

## Шаг 2 — доставка (MT-ForwardSM)

Имея адрес обслуживающего MSC, SMSC отправляет MAP MT-ForwardSM этому MSC (SSN 8), неся TPDU SMS-DELIVER — собственно содержимое сообщения, адрес отправителя и data_coding — внутри параметра MAP. MSC выполняет пейджинг аппарата и при контакте доставляет короткое сообщение по радиоинтерфейсу. Успешный ReturnResult возвращается через MSC к SMSC.

*Двухфазная доставка MT-SMS*

```text
1  SMSC → HLR   MAP sendRoutingInfoForSM { MSISDN, SC address }
2  HLR  → SMSC MAP result { IMSI, servingMSC address }
3  SMSC → MSC  MAP mt-ForwardSM { IMSI, SMS-DELIVER TPDU }
4  MSC  → MS   paging + radio delivery of the short message
5  MSC  → SMSC MAP result (delivered)  →  SMSC generates delivery report
```

## Когда абонент недостижим

Если аппарат выключен или вне зоны покрытия, MSC возвращает ошибку MAP, такую как absentSubscriber, или HLR сообщает о недостижимости абонента на шаге 1. Тогда SMSC сохраняет сообщение и просит HLR установить флаги Message Waiting Data (MWD) — флаги Mobile-station-Not-Reachable и Memory-Capacity-Exceeded — через ReportSM-DeliveryStatus. Сообщение остаётся в очереди на SMSC, пока абонент не станет достижим, вплоть до истечения периода действия.

*Распространённые ошибки MAP при MT-SMS*

| Ошибка | Значение |
|---|---|
| absentSubscriber(SM) | Телефон выключен/вне зоны покрытия — установите MWD, попробуйте позже |
| subscriberBusyForMT-SMS | Абонент занят обработкой другого MT-SMS — повторите попытку |
| sm-DeliveryFailure | Доставка не удалась (память заполнена, ошибка протокола оборудования…) |
| unknownSubscriber | MSISDN не зарегистрирован в HLR — окончательный отказ |
| callBarred | Запрет со стороны оператора/абонента препятствует доставке |

## Повтор — Alert и ReadyForSM

Когда абонент снова появляется — включается, возвращается в покрытие или освобождает память аппарата — обслуживающий MSC/SGSN сигнализирует ReadyForSM к HLR, который сверяется со списком MWD и отправляет AlertServiceCentre каждому ожидающему SMSC. Каждый SMSC затем повторяет последовательность SRI-SM/MT-ForwardSM для доставки сообщения из очереди. Именно этот механизм оповещения объясняет, почему SMS, отправленное на выключенный телефон, приходит через мгновения после его включения.

## Почему эта схема важна для безопасности

Каждый шаг раскрывает информацию или доверие, которыми можно злоупотребить. SRI-SM, отправленный из чужой сети, может извлечь IMSI абонента и адрес обслуживающего MSC — сырьё для отслеживания местоположения и последующих атак — без всякой доставки сообщения. Поддельный адрес обслуживающего MSC может перенаправить MT-SMS, включая одноразовые пароли, злоумышленнику. Поэтому сигнальные межсетевые экраны проверяют SRI-SM и MT-ForwardSM по источнику, правдоподобию и скорости.

## Частые вопросы

### Каковы два основных шага доставки SMS через SS7?

Первый, SendRoutingInfoForSM: SMSC просит у HLR получателя IMSI и адрес MSC, обслуживающего абонента в данный момент. Второй, MT-ForwardSM: SMSC отправляет сообщение этому MSC, который выполняет пейджинг аппарата и доставляет его.

### Что HLR возвращает в ответе SRI-SM?

Для достижимого абонента HLR возвращает IMSI и locationInfoWithLMSI — адрес обслуживающего MSC или SGSN. SMSC использует этот адрес, чтобы нацелить последующий MT-ForwardSM. Если абонент недостижим, HLR вместо этого возвращает ошибку.

### Что происходит, когда я пишу на выключенный телефон?

Доставка не удаётся с absentSubscriber, и SMSC ставит сообщение в очередь, прося HLR установить флаги Message Waiting Data. Когда телефон снова выходит в сеть, MSC отправляет ReadyForSM, HLR выдаёт AlertServiceCentre, а SMSC повторяет попытку доставки.

### Что такое Message Waiting Data (MWD)?

MWD — это список, который HLR ведёт по SMSC с сообщениями, ожидающими для недостижимого абонента, вместе с флагами MNRF и MCEF. Он управляет уведомлениями AlertServiceCentre, запускающими повтор, когда абонент снова становится достижим.

### Как этой схемой можно злоупотребить для перехвата OTP?

Злоумышленник, подделывающий UpdateLocation или поставляющий ложный адрес обслуживающего MSC, может заставить сеть маршрутизировать MT-SMS — включая одноразовые пароли — узлу, который он контролирует. Проверка источника SRI-SM/MT-ForwardSM и применение проверок скорости — стандартная защита.

## Источники

- [3GPP TS 23.040 — SMS technical realization](https://www.3gpp.org/dynareport/23040.htm)
- [3GPP TS 29.002 — MAP (SRI-SM, MT-ForwardSM)](https://www.3gpp.org/dynareport/29002.htm)

## См. также

- [Справочник по операциям MAP](https://www.broadnet.me/ru/reference/map-operations)
- [Транзакции и компоненты TCAP](https://www.broadnet.me/ru/reference/tcap-transactions)
- [Угрозы безопасности SS7 и GSMA FS.11](https://www.broadnet.me/ru/reference/ss7-security-threats-fs11)
- [Межсетевой экран SS7 (операторам)](https://www.broadnet.me/ru/operators/ss7-firewall)
- [SMSC-шлюз (операторам)](https://www.broadnet.me/ru/operators/smsc-gateway)
