Как сравнить и настроить резервный SMS-канал через двух провайдеров

Как сравнить и настроить резервный SMS-канал через двух провайдеров

Резервный SMS-канал — это второе подключение к независимому провайдеру, которое подхватывает отправку, когда основной перестаёт доставлять сообщения. Статья покажет, как выбрать схему резервирования под масштаб вашего бизнеса, на что смотреть при сравнении провайдеров и как запустить переключение без дублей и потерь. Всё описано для тех, кто работает без штатного разработчика и выделенной CRM.

Зачем вообще держать второго провайдера?

SMS-провайдер зависит от цепочки, которую не контролирует ни он, ни вы: SMPP-сессии, маршруты к операторам, биллинг, репутация имени отправителя. Сбой в любом звене приводит к одной из трёх ситуаций. Первая — сессия разорвалась, отправка не проходит, ошибку видно сразу. Вторая — сообщения уходят, а отчёты о доставке молчат: снаружи всё чисто, но клиент ничего не получает. Третья — один оператор принимает трафик, другой нет.

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

Какие схемы резервирования подходят малому бизнесу?

СхемаСутьКогда подходит
Активный + пассивныйПервый провайдер отправляет всё, второй держит сессию и ждёт командыНебольшие объёмы, нет дежурного инженера
Разделение по операторамКаждый провайдер обслуживает тех операторов, на которых у него лучше маршрутБаза от нескольких тысяч номеров, важна цена за сообщение
Единый шлюз-роутерВсе системы отправляют через один шлюз, он распределяет трафик между провайдерамиОтправка идёт из нескольких точек: сайт, склад, учётная система
Ручное переключениеСотрудник меняет настройки вручную при проблемеЕдиничные рассылки, до 200 сообщений в месяц

Для микробизнеса на старте хватает первой схемы. Два договора, тестовая отправка раз в месяц, инструкция переключения на одну страницу. Подробный разбор каждого варианта с параметрами сессий и примерами логики переключения есть в статье на smpp.by.

На что смотреть при сравнении двух провайдеров?

Сравнивать провайдеров по одному тарифу — мало. Вот пять параметров, которые определят, сработает ли ваш резерв в нужный момент.

  1. Протокол подключения. Оба провайдера должны поддерживать один и тот же способ — SMPP 3.4 или HTTP API. Иначе придётся писать два разных интеграционных модуля.
  2. Имя отправителя. Согласуйте одинаковое имя у обоих. Разные подписи путают клиента и делают статистику по каналам несопоставимой.
  3. Отчёты о доставке (DLR). Провайдер, который не возвращает DLR-статусы, не подходит на роль резерва: вы не узнаете, дошло ли сообщение. Сравнивайте DLR-статусы обоих каналов с поведением пользователей — сколько кодов ввели, сколько ссылок открыли (sostav.ru).
  4. Лимит скорости. Резервный канал обычно слабее основного. Узнайте его потолок заранее, чтобы не упереться в ограничение при аварии.
  5. Шифрование сессии. TLS снижает число обрывов на промежуточном оборудовании. Если провайдер поддерживает — включайте сразу.

Сервисы-агрегаторы рейтингов помогают не тратить неделю на ручной обзвон. На странице сравнения SMS-провайдеров для микробизнеса параметры собраны в единую таблицу — проще увидеть, кто подходит на роль основного, а кто на роль резерва.

Как настроить переключение и не задвоить отправки?

Дубли — главная цена за резерв. Клиент получает два одинаковых SMS, раздражается и отписывается. Защита строится на одном принципе: каждое сообщение получает внутренний ID в вашей базе ещё до отправки. ID связывает попытки через обоих провайдеров и не даёт повторить то, что уже принято.

Сообщение считается отправленным, когда провайдер подтвердил приём. Добралось ли оно до абонента — вопрос DLR. Если подтверждения приёма нет, можно повторить попытку, но строго один раз и через другой канал. Перед повтором — пауза и проверка журнала по внутреннему ID.

Отдельно определите, что считаете сбоем. Переключение при первой ошибке приведёт к лишним скачкам: одна ошибка на тысячу сообщений ничего не значит. Практичнее отслеживать долю ошибок за короткое окно — скажем, за последние пять минут — и наличие финальных DLR-статусов. Если промежуточные статусы приходят, а финальных нет дольше порога, пора переключаться.

После восстановления основного канала не возвращайте на него весь поток сразу. Пустите сначала небольшой тестовый объём и понаблюдайте за DLR хотя бы день.

Типичные ошибки при резервировании

  • Резервный канал записан в договоре, сессия не поднята, тестовых отправок не было. В момент аварии настраиваете всё с нуля — и теряете те самые минуты, ради которых затевали резерв.
  • Разные имена отправителя у двух провайдеров. Клиент видит две подписи от одной компании и подозревает фишинг.
  • Переключение только после жалоб клиентов. Пока жалоба дойдёт до менеджера, часть аудитории получит сообщение с опозданием на часы.
  • Повтор без проверки журнала. Два одинаковых SMS раздражают сильнее, чем задержка на минуту.
  • Логирование только успешных отправок. Ошибки и таймауты остаются незамеченными ровно тогда, когда нужны.

Что отслеживать после запуска?

Резервирование без аналитики — просто два счёта за SMS. Минимальный набор метрик: доля доставленных по каждому провайдеру и оператору, число переключений с причинами, среднее время от отправки до DLR и количество дублей за период. Рост времени до DLR сигнализирует о деградации маршрута задолго до полного отказа.

Если вы уже работаете с каскадами Viber + SMS, резервный канал встраивается в ту же цепочку: Viber не доставлен — SMS через основного провайдера — SMS через резервного. Стоимость сообщения в Viber ниже операторского SMS (isms.by), поэтому резерв задействуется для малой доли аудитории и не раздувает бюджет.

Раз в месяц отключайте основной канал вручную и отправляйте тестовое сообщение на контрольный номер, чтобы убедиться, что резервный провайдер подхватывает трафик без задержек (sostav.ru). Настройте уведомления о сбоях основного канала — хотя бы в почту, чтобы узнавать о проблеме сразу.

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

3 шага, которые можно сделать на этой неделе:

  1. Поднимите тестовую сессию ко второму провайдеру и отправьте через неё десяток сообщений на свои номера — 30 минут.
  2. Добавьте в базу поле с внутренним ID сообщения и начните сохранять message_id обоих провайдеров в одном журнале — около часа.
  3. Запишите правило переключения одним абзацем: что считаете сбоем, через сколько минут переключаетесь, как проверяете журнал перед повтором — 15 минут.