# Как работает SMS API: Архитектура, протоколы и маршрутизация

- Опубликовано: 2026-05-14T11:49:33+00:00
- Обновлено: 2026-05-14T12:58:12+00:00
- Автор: Алла Богатырёва
- Канонический URL: https://smsblog.ru/mobilnyj-marketing/kak-rabotaet-sms-api-arkhitektura-protokoly-i-marshrutizatsiya/

## 1. Архитектура SMS‑мессенджер‑подключения

- **Клиентский слой** – библиотеки SDK, REST‑клиенты, SDK‑встроенные модули в CRM и CMS.
- **Промежуточный шлюз** – контейнерized‑сервис, который преобразует запросы в допустимый формат для оператора (SMPP, HTTP, FHEM).
- **Оптимизатор маршрутизации** – сервис, который выбирает лучший оператор, учитывая покрытие, цены и SLA.
- **Операторский шлюз** – 100 % доступный SMPP‑сервер оператора, обычно в репликации.
- **Платформа оповещений** – сбор статистики, аналитика и логирование.

### Технологичную цепочку можно представить так:

| Степень | Описание |
| --- | --- |
| 1 | REST‑POST /sms/send |
| 2 | Проверка срока User‑Tier |
| 3 | Оптимизация маршрута |
| 4 | Преобразование в SMPP: |
| 5 | Пакетный диалог submit_sm |
| 6 | Ответ оператором – submit_sm_resp |

## 2. Протоколы работы с оператором

### 2.1 SMPP (Short Message Peer‑to‑Peer)

СMPP – основной протокол обмена SMS, стандартный RFC 4006. Он работает над TCP‑соединением, поддерживает двусвязный режим `bind_transmitter` и `bind_receiver`. Завершается подключение, а далее сообщения проходят в виде пакетов `submit_sm` с полями `destination_addr` и `short_message`. Пример вызова в PHP:

```
require_once "Smpp.php";
$session = new Smpp('smpp.operator.ru', 2775, 'system_id', 'password');
$session->bindTransmitter();
$msg_id = $session->submit('4111111111', '0308829381', 'Test message');
$session->unbind();
```

### 2.2 HTTP‑API

Многие поставщики предоставляют REST‑или GraphQL‑API для отправки SMS. Запрос выглядит так:

```
POST /v1/sms HTTP/1.1
Host: api.smsprovider.ru
Authorization: Bearer <token>
Content-Type: application/json

{
  "to": "+79111234567",
  "message": "Hello, world!"
}
```

### 2.3 FTPS / SMTP‑прокси

Иногда SMS‑шлюзы открывают FTP‑запросы с файлом `messages.txt` для пакетной загрузки, либо SMTP‑процедуру с подписанными SOAP‑сообщениями. Это редкое, но проверенное решение для больших лотов.

## 3. Маршрутизация и балансировка

Когда API получает запрос, сервис-коллектор **распределяет** исходя из:

- городского покрытия – Российские города с большим количеством небольших операторов.
- ценовой модели – pay‑per‑message, краткосрочная подписка, bundling.
- требований SLA – гарантированная доставка (GDL) vs. best‑effort.
- нейтральности – GDPR и местные законы.

Алгоритм выбора обычно выглядит так:

- Получить список доступных операторов.
- Проверить их `availability` и `latency`.
- Пакетировать сообщение в сегменты, рассчитать стоимость.
- Результат упаковывать в ответ, ставя `delivery_report_url`.
- Отправлять, регистрировать ID для уведомлений.

### Балансировка нагрузки и fail‑over

Для высокой доступности платформы используют `k8s` с `Helm`-копилями, репликацию SMPP‑соединений и `cron`-периодический чек статуса CGI.

## 4. Логи и аналитика

- **Web‑hooks** – callback на `report_url`.
- **Статистика в реальном времени** – throughput, MTTR, % доставлено/отказ.
- SQL запросы `SELECT * FROM messages WHERE status='DELIVERED'` используют для Business Intelligence.
- Интеграция с [Google Analytics](https://analytics.google.com/analytics/web/) через измерения.

### Example: пользователь видит реальную статистику в размере 95 % доставлено за последний месяц с отклонением 0,02 %.

## 5. Безопасность и соответствие

- Криптография – TLS 1.3 для HTTP‑API, делегированные ключи для SMPP‑соединений.
- Аудит – возможности Proactive SIEM‑сложения.
- GDPR – 2‑факторная аутентификация, хранение только 256‑бит плавайных ключей.

### Алгоритм подтверждения отправки:

```
POST /v1/sms/confirm
{ "id": "12345", "status": "ok" }
```

## 6. Лучшие практики интеграции

- Проверка `phone‑number` через `phonenumber‑validation`.
- Кадрирование длинного сообщения в 160 символов – `concat` с уникальным `message_ref`.
- Включить `delivery_reports` в каждом запросе.
- Проверить `api‑status` каждые 30 сек.
- Использовать `webhooks` для уведомлений.

## Заключение

Понимание внутренней схемы работы SMS‑API, правильного выбора протокола и грамотной маршрутизации выигрывает в эффективности доставки, соблюдении SLA и экономии средств. Интегрируйте свой сервис согласно рекомендациям выше, и вы построите надёжную платформу для масштабируемых SMS‑рассылок.

## FAQ

- **Что такое SMPP?** Основной протокол для массовой доставки SMS от операторов.
- **Как выбрать SMS‑прокачка?** Сравните цены, покрытие и SLA, проверив [полное руководство](https://smsblog.ru/sms-rassylki/polnoe-rukovodstvo-po-sms-api-kak-rabotaet-kak-podklyuchit-i-kak-ispol/) – 2026.
- **Какие метрики важны?** % доставлено, задержка, бюджет на 1 мес.

## Определения

- **SMS (Short Message Service)** – текстовое сообщение до 160 символов, передаётся через сети операторов.
- **SMPP (Short Message Peer‑to‑Peer)** – сетевой протокол для обмена короткими сообщениями.
- **MSISDN** – номер телефона абонента, формируемый в международном формате.
- **GDL (Guaranteed Delivery Level)** – гарантированная доставка сообщений.

## Сравнительная таблица протоколов

| Протокол | Трафик | Скорость | Стоимость |
| --- | --- | --- | --- |
| SMPP | Высокая | До 200 /сек | Низкая |
| REST‑HTTP | Средняя | До 50 /сек | Средняя |
| FTPS/SOAP | Низкая | До 5 /сек | Высокая |

## Источники

- [Google Analytics](https://analytics.google.com/analytics/web/)
