Свой SMS-шлюз: уведомления клиентам с SIM-карт ваших телефонов

Провайдер отправляет SMS каждый день: код для подписи договора, напоминание о долге, «монтажник приедет завтра с 10 до 13», ответ поддержки. Обычно всё это идёт через сервис рассылок — договор, подпись отправителя, плата за каждое сообщение. А в ящике стола у того же провайдера лежит пара старых Android-телефонов и SIM-карты с пакетами SMS, которые почти не тратятся. Мы сделали так, чтобы эти телефоны работали на биллинг.
Сколько стоит SMS у сервиса рассылок
Одна часть SMS у сервиса рассылок в октябре 2026 года стоит от 9 до 11 рублей в зависимости от оператора получателя: мы взяли медиану прайсов SMSC.ru, SMS Aero и SMS.ru.
| Оператор получателя | Цена одной части SMS |
|---|---|
| МТС | 9,69 ₽ |
| Билайн | 9,80 ₽ |
| МегаФон | 11,10 ₽ |
| Т2 | 9,49 ₽ |
| Другие | 9,25 ₽ |
Сообщение на кириллице длиннее 70 знаков — это уже две части. Напоминание о долге со ссылкой на оплату обходится в 20 рублей. Тысяча таких в месяц — двадцать тысяч.
Своя SIM-карта платит по своему тарифу: пакет SMS или фиксированная цена оператора. Договор с агрегатором не нужен, а сообщение клиенту приходит с обычного номера, на который можно ответить.
Телефон становится шлюзом
Android-телефон с одной или двумя SIM-картами превращается в SMS-шлюз биллинга. На него ставится приложение «СмИТ SMS Gateway», телефон кладётся на зарядку, подключается к интернету — и дальше живёт сам.
flowchart TB
subgraph R1 [" "]
direction LR
B["Биллинг:<br/>уведомление, код,<br/>ответ поддержки"] --> S["SMS-сервер СмИТ:<br/>выбор SIM"]
S --> T["Телефон на зарядке:<br/>SIM 1 · SIM 2"]
end
subgraph R2 [" "]
direction LR
O["Оператор связи"] --> C["Клиент"]
C -.-> R["Отчёт о доставке:<br/>телефон → сервер → биллинг"]
end
R1 --> R2
style R1 fill:none,stroke:none
style R2 fill:none,stroke:noneБиллинг отдаёт сообщение нашему SMS-серверу. Сервер выбирает, с какой SIM его отправить, и передаёт задание телефону. Телефон отправляет SMS, сообщает «отправлено», а когда оператор пришлёт отчёт — «доставлено». Раз в минуту он рассказывает о себе: заряд, сигнал, тип сети, разрешения. Всё это возвращается в биллинг, подписанное ключом лицензии.
Подключение — без адресов серверов, ключей и вебхуков. В приложении нажимают «Подключить к биллингу», вводят адрес своего биллинга, логин и пароль администратора. Пароль на телефоне не сохраняется.
С какой SIM уйдёт сообщение
Телефонов может быть несколько, у каждого — одна или две SIM. Если у провайдера несколько компаний, каждую SIM закрепляют за своей: клиент получает SMS с номера той компании, у которой у него договор. Чужой организации сообщение не уйдёт никогда.
flowchart TD
S["SMS клиенту<br/>организации N"] --> A{"Есть SIM организации<br/>на связи и с запасом<br/>по лимиту?"}
A -- "да" --> M["Основная SIM<br/>или любая её SIM"]
A -- "нет" --> F{"Можно с общих<br/>номеров?"}
F -- "да" --> G["Общая SIM"]
F -- "нет" --> W["Ждёт в очереди<br/>до 24 часов"]
M -. "3 ошибки подряд" .-> N["Другая SIM<br/>той же организации"]Три защиты от того, чтобы оператор заблокировал SIM за массовую рассылку: пауза между сообщениями (по умолчанию 3–6 секунд), суточный лимит на каждую SIM и переход на соседнюю SIM той же организации после трёх ошибок подряд. Первая же удачная отправка возвращает SIM в строй.
Деньги на SIM и пропавший телефон
SIM-карта без денег — самая частая причина, по которой «SMS перестали ходить». Поэтому телефон сам спрашивает у оператора баланс и остаток пакета USSD-запросом — по умолчанию раз в 6 часов. Ответ разбирает сервер: находит сумму и число SMS, отрезает рекламу, которую оператор дописывает к ответу. Коды для МТС, Билайна, МегаФона, Т2 и Yota уже заданы, свои можно поменять у каждой SIM.
В Telegram приходят три вида тревог:
- мало денег — сумма или остаток пакета ниже порога (по умолчанию 100 ₽ и 50 SMS), не чаще раза в сутки на SIM;
- телефон пропал — молчит дольше 10 минут: кто-то выдернул зарядку или выключил Wi-Fi;
- телефон вернулся — снова на связи.
«Отправлено» — ещё не «доставлено»
Это главное, что стоит понимать про любые SMS. «Отправлено» значит, что телефон передал сообщение оператору. «Доставлено» — что оператор прислал отчёт: SMS дошло до телефона клиента. Биллинг показывает оба статуса отдельно и никогда не откатывает статус назад.
sequenceDiagram participant B as Биллинг participant S as SMS-сервер participant T as Телефон B->>S: SMS клиенту Note over B: в очереди S->>T: задание T->>S: отправлено S-->>B: отправлено T->>S: доставлено (отчёт оператора) S-->>B: доставлено
Если телефон не смог отправить из-за временной беды — пропала сеть, сбой радиомодуля, режим полёта, — сервер сам повторит через 30 секунд, 2 и 10 минут, каждый раз заново выбирая SIM. Не вышло за три повтора — статус «ошибка» с причиной словами: «на SIM нет сети», «сбой радиомодуля или SIM». Постоянные ошибки (номер запрещён настройками SIM, короткий номер) не повторяются: повтор там ничего не изменит.
Какие сообщения идут через шлюз
Способ отправки выбирается по организации клиента одинаково везде, где биллинг шлёт SMS:
- уведомления по шаблонам — платёж, низкий баланс, блокировка, обещанный платёж, долг со ссылкой на оплату;
- коды подтверждения — подпись договора на телефоне монтажника, получение оборудования;
- CRM — «монтажник приедет завтра с 10 до 13», перенос визита;
- ответы поддержки — в том числе клиенту, оставившему сообщение на голосовой почте;
- гостевой Wi-Fi — код входа на портал.
Рассылки по расписанию тоже умеют уходить SMS. С обычных номеров здесь особенно важны лимиты и паузы: оператор следит за массовыми отправками.
Клиент может ответить
У агрегатора SMS уходят от буквенного имени, и ответить на них нельзя. С обычной SIM — можно, и биллинг этим пользуется. Он читает входящие SMS на номерах шлюза и понимает короткие команды: «Баланс» — пришлёт баланс и тариф, «Оп» — обещанный платёж, «Да» — согласие с его условиями, «Блок» и «Вкл» — добровольная блокировка и её снятие. Всё остальное становится обращением в Поддержке, в ящике той организации, чей это номер.
Оповещения МЧС, сообщения оператора и рекламные рассылки с буквенных имён в журнал как SMS клиента не попадают. Ответ оператора о балансе SIM по-прежнему разбирается.
Что важно знать заранее
- Телефону нужны зарядка и сеть. Это не облако, а реальное устройство. Поэтому тревога «телефон пропал» стоит по умолчанию.
- Android 13 и новее при установке из файла молча отклоняет запрос доступа к SMS. Приложение подскажет: в настройках телефона нужно «Разрешить ограниченные настройки», затем выдать разрешения на SMS, телефон и звонки.
- Ошибку оператора биллинг не исправит. Если SIM заблокирована, кончились деньги или оператор отказал, биллинг покажет причину, но отправить за SIM не сможет.
- Сообщения на сервере хранятся 30 дней и удаляются — так записано в политике конфиденциальности приложения.
- Агрегаторы никуда не делись. SMSAero, SMSC.ru и SMS.ru подключаются в том же разделе. С несколькими организациями одна может отправлять со своих SIM, другая — через агрегатора.
Как это работает в СмИТ Биллинге
Всё про SMS — в «Настройках» → «Сообщения» → «SMS». В поле «Чем отправлять» выбирают «Телефоны СмИТ — свои SIM-карты» или одного из агрегаторов. С модулем «Мультиорганизация» ниже есть таблица «Для организаций»: у каждой компании свой способ.
Кнопка «Подключить телефон» показывает, где скачать приложение и какой адрес ввести, — телефон появляется в списке «Телефоны и номера» сам. Там же SIM назначают организации, задают лимит в день и смотрят баланс. На главной странице есть блок «SMS»: сколько отправлено, доставлено и ждёт за 30 дней и состояние каждой SIM. Тестовая отправка уходит по сохранённым настройкам, поэтому сначала сохраните, потом проверяйте.
Попробуйте шлюз сами
Чтобы понять, подойдёт ли вам свой SMS-шлюз, хватит одного телефона на Android с SIM-картой и десяти минут.
- Получите доступ к демо-стенду. Бот в Telegram попросит подтвердить номер телефона и пришлёт логин и пароль. Демо-стенд — полноценный биллинг с обезличенными данными.
- Скачайте приложение «СмИТ SMS Gateway» на телефон с SIM-картой и подключите его: адрес demo.billing.smit34.ru, логин и пароль из бота.
- Отправьте тестовое SMS. В биллинге откройте «Настройки» → «Сообщения» → «SMS» и нажмите «Тестовая отправка». Сообщение уйдёт с SIM вашего телефона, а статус «доставлено» вернётся в журнал «Последние SMS».
На демо-стенде тестовые SMS уходят только на номер из вашего профиля — тот, что вы подтвердили в боте. Приложение работает на Android 5 и новее.
Посмотреть на своих данных
Покажем платформу на живом стенде и разберём ваш случай. Или спросите ассистента прямо сейчас — он отвечает по документации и настройкам.


