Резервный SMPP-канал через 4G-модем помогает продолжить отправку SMS, если основной проводной интернет временно недоступен. Для этого нужен модем с SIM-картой, устройство или сервер с программой SMS-шлюза и логика переключения маршрута. В статье разберём схему подключения, проверку SMPP-сессии, контроль доставки и возврат на основной канал. Такой вариант подходит малому бизнесу, который отправляет коды, статусы заказов или служебные уведомления из собственного приложения.
Как устроен SMPP-failover через 4G-модем?
SMPP сам по себе не подключает компьютер к мобильной сети. Это открытый телекоммуникационный протокол одноранговой передачи коротких сообщений, по которому приложение обменивается сообщениями с SMS-центром или шлюзом. 4G-модем здесь даёт сетевой доступ либо принимает SMS через AT-команды, а отдельная программа связывает этот канал с SMPP.
Для небольшого проекта встречаются две схемы. В первой приложение подключается по SMPP к внешнему провайдеру, а 4G-маршрутизатор становится резервным интернет-выходом. При обрыве проводной линии маршрутизатор переводит трафик через мобильную сеть, и SMPP-соединение устанавливается заново.
Во второй схеме модем подключён непосредственно к серверу. Программа отправляет SMS через SIM-карту, а приложение обращается к локальному SMPP-шлюзу. Такой вариант требует больше настройки: нужно следить за AT-портом, состоянием SIM-карты, очередью сообщений и форматом отчётов о доставке.
| Схема | Что меняется при сбое | Что проверить заранее |
|---|---|---|
| 4G как резервный интернет | Маршрут до SMPP-провайдера переходит на мобильную сеть | Автоматическое переключение, внешний адрес или туннель, повторное подключение |
| Модем как локальный SMS-шлюз | Приложение продолжает работать через другой SMPP endpoint | AT-команды, очередь, DLR, кодировка и лимиты SIM-карты |
Перед выбором схемы проверьте, что именно считается резервом. Если при отключении проводного интернета модем только получает IP-адрес, но приложение продолжает использовать старый маршрут, SMS не уйдут. Для соединения через сеть с динамическим адресом пригодится отдельная проверка параметров SMPP при динамическом IP: подключение SMPP при динамическом IP.
Как подготовить 4G-модем и сервер?
Начните с отдельной SIM-карты для резервного канала. На ней должна работать передача данных, если модем используется как интернет-шлюз. Если SMS отправляет сам модем, проверьте поддержку исходящих сообщений, доступность AT-команд и возможность читать ответ устройства после каждой операции.
Подключите модем к маршрутизатору или серверу, затем проверьте четыре состояния:
- устройство определяется операционной системой и не исчезает после переподключения;
- модем регистрируется в мобильной сети;
- появляется мобильный IP-маршрут или доступен локальный последовательный порт;
- тестовое SMS проходит через тот же программный путь, который будет использовать бизнес-приложение.
Не смешивайте в одной проверке доступность интернета и доступность SMPP. Команда ping показывает только маршрут до узла. Она не подтверждает, что сервер принимает bind-запрос, разрешает отправку и возвращает delivery receipt.
Если 4G используется как резервный интернет, задайте приоритеты маршрутов: проводной интерфейс должен быть основным, мобильный — резервным. После смены маршрута старая TCP-сессия SMPP обычно уже непригодна. Программа должна закрыть её, очистить зависшее состояние и открыть новую сессию через 4G.
Если провайдер разрешает подключения только с определённого IP-адреса, мобильная сеть может потребовать отдельной настройки. В таком случае применяют VPN, постоянный туннель или другой согласованный способ доступа. Эти параметры лучше уточнить до аварийного теста, пока основной канал работает.
Как настроить переподключение SMPP после сбоя?
Логика failover должна реагировать не только на отключение кабеля. Сессия может остаться формально открытой, хотя сеть уже не передаёт данные. Поэтому приложение проверяет TCP-соединение, ответы на SMPP-команды и тайм-аут ожидания.
Практическая последовательность выглядит так:
- Приложение фиксирует сетевую ошибку, тайм-аут или отсутствие ответа от SMPP-сервера.
- Текущая сессия закрывается, а сообщения с неясным статусом переходят в контролируемую очередь.
- Система проверяет основной маршрут и пробует установить SMPP-сессию через него.
- Если основной маршрут недоступен, активируется 4G-интерфейс или локальный модемный шлюз.
- Программа выполняет bind с теми параметрами, которые разрешены для резервного подключения.
- После успешной авторизации очередь отправляет сообщения с защитой от повторной передачи.
Повторная отправка требует аккуратности. Если приложение не знает, принял ли шлюз сообщение до разрыва соединения, без идентификатора операции оно может отправить SMS дважды. Храните внутренний ID сообщения, SMPP message_id и состояние обработки. Отчёт о доставке анализируйте отдельно от факта принятия сообщения шлюзом.
Для обработки ошибок и delivery receipt полезно заранее определить таблицу статусов: временный сбой, отклонённый запрос, истёкший срок, доставлено, не доставлено. Подход к автоматической обработке ошибок SMPP и DLR разобран в материале как обрабатывать ошибки SMPP и DLR.
Не делайте бесконечные попытки подключения. Установите паузу между повторами и увеличивайте её при продолжительном сбое. Иначе приложение создаст лишнюю нагрузку, а журнал заполнится одинаковыми ошибками. После восстановления основного интернета верните трафик на него только после успешной проверки SMPP-сессии, а не сразу после появления сетевого интерфейса.
Что проверить в SMS и DLR на резервном канале?
Проверка должна проходить в тестовой среде или на ограниченном наборе номеров, которые принадлежат вашей компании. Сначала отправьте короткое сообщение, затем текст с национальными символами, после этого проверьте длинное сообщение, если система использует сегментацию. Убедитесь, что приложение правильно собирает части и не меняет кодировку при переходе на другой маршрут.
Для каждого теста зафиксируйте:
- время постановки сообщения в очередь;
- идентификатор, который вернул SMPP-шлюз;
- статус submit_sm или эквивалентной операции;
- время получения DLR;
- финальный статус доставки;
- маршрут, через который ушло сообщение.
Отдельно испытайте обрыв во время отправки. Отключите проводной канал после постановки сообщения в очередь и проверьте, не появилось ли две одинаковые SMS. Затем включите основной интернет и убедитесь, что система возвращается на него без ручного запуска сервиса.
Перед рабочим запуском удобно использовать SMPP-песочницу: в ней можно проверить SMS, DLR и конкатенацию без риска отправить тестовое сообщение реальному клиенту. Важен сам сценарий переключения, поэтому тестируйте его теми же настройками тайм-аутов и повторов, которые будут использоваться в рабочей системе.
Какие ошибки чаще всего ломают 4G-failover?
- Резервный маршрут включают вручную. При сбое приложение продолжает ждать старую SMPP-сессию. Переключение должно быть частью сетевой или прикладной логики.
- Проверяют только наличие мобильного интернета. Доступ к сети ещё не означает, что порт SMPP открыт и bind разрешён.
- Используют один и тот же порт модема для разных программ. Драйвер, SMS-шлюз и диагностический скрипт начинают конкурировать за AT-интерфейс.
- Повторяют SMS после любого тайм-аута. Сначала определите, получил ли шлюз сообщение. Иначе после обрыва появятся дубликаты.
- Не контролируют баланс и состояние SIM-карты. Модем может быть зарегистрирован в сети, но отправка окажется недоступной.
- Возвращают трафик на проводной канал сразу. Если линия ещё нестабильна, система начнёт постоянно переключаться между двумя маршрутами.
Надёжность резервного канала проверяют не обещаниями, а журналом событий: какой маршрут был активен, когда оборвалась сессия, сколько сообщений попало в очередь и какой DLR пришёл после восстановления. Для малого бизнеса достаточно начать с одного контролируемого сценария, затем добавить тест отключения и автоматический возврат на основной канал.
3 шага, которые можно сделать на этой неделе:
- Описать текущую SMPP-схему и выбрать роль 4G-модема: резервный интернет или локальный SMS-шлюз.
- Настроить очередь, повторное подключение и сохранение ID сообщений до получения финального статуса.
- Провести тест с отключением проводного интернета, проверить дубликаты, DLR и возврат на основной маршрут.



