Как превратить старый Android в полноценный SMS-шлюз

15 мар 2026
5,729
1,005
45
3 недели

Представьте ситуацию: вам нужно прикрутить двухфакторную аутентификацию к небольшому внутреннему сервису или настроить уведомления о падениях сервера в SMS. Идти к крупным агрегаторам вроде Twilio или InfoBip — это сразу бюрократия, договоры, проверка имени отправителя и, конечно, счета в валюте. А если сообщений всего десяток в день? В ящике стола наверняка валяется старый Android-смартфон, который еще вполне бодр, но уже не нужен. Проект android-sms-gateway позволяет вдохнуть в него жизнь, превратив в персональный шлюз с API.

Что это такое

По сути, это связка из мобильного приложения и серверной части. Приложение ставится на телефон, получает доступ к отправке и чтению сообщений, а затем выставляет наружу API. Вы отправляете HTTP-запрос на этот API, а телефон пересылает его как обычную SMS через вставленную сим-карту.

Проект подкупает своей автономностью. Автор предусмотрел несколько режимов работы, включая полностью локальный, когда данные вообще не покидают вашу сеть. Это критично, если вы параноидально относитесь к приватности или работаете в закрытом контуре.

Как это работает на практике

У приложения есть два основных сценария использования.

Локальный сервер

Самый простой вариант для домашних серверов или офисной локалки. Вы включаете тумблер Local Server в приложении, и телефон начинает слушать порт 8080. Теперь можно отправить сообщение обычным curl запросом:

Реклама
curl -X POST -u user:password \
  -H "Content-Type: application/json" \
  -d '{ "textMessage": { "text": "Сервер упал, иди чини!" }, "phoneNumbers": ["+79991234567"] }' \
  http://192.168.1.50:8080/message

Никаких внешних регистраций, никаких облаков. Главное, чтобы ваш скрипт и телефон находились в одной Wi-Fi сети.

Облачный или приватный сервер

Если телефон подключен к мобильному интернету и не имеет белого IP, на помощь приходит Cloud-режим. Сообщения идут через промежуточный сервер-ретранслятор. Можно использовать готовый сервис от автора или развернуть свой собственный бэкенд (исходники сервера тоже открыты).

Интересная фишка: в облачном режиме можно подключить сразу несколько телефонов к одному аккаунту. Система сама распределит нагрузку между ними. Это полезно, если у вас большой поток сообщений и вы боитесь, что оператор заблокирует одну симку за подозрительную активность.

Пять возможностей, которые упрощают жизнь

  1. Сквозное шифрование. В облачном режиме содержимое сообщений и номера телефонов шифруются на стороне отправителя и расшифровываются только на самом устройстве. Промежуточный сервер видит только зашифрованные байты.
  2. Поддержка двух симок. Если в телефоне два слота, в API можно указать, с какой именно карты отправить сообщение. Удобно для разделения личных и рабочих уведомлений.
  3. Входящие через Webhooks. Это киллер-фича. Вы можете настроить URL, на который телефон будет пересылать все входящие SMS. Так можно делать ботов, которые управляются через сообщения, или автоматически подтверждать транзакции.
  4. Data SMS. Редкая штука, которая позволяет отправлять бинарные данные. Может пригодиться для каких-нибудь специфических IoT-устройств или своих протоколов поверх SMS.
  5. Работа со старыми устройствами. Приложение заводится на Android 5.0. Это значит, что даже какой-нибудь древний Galaxy S4 или бюджетный "китаец" десятилетней давности справятся с задачей.

Техническая изнанка

Проект написан на Kotlin с использованием Ktor для сетевого взаимодействия и Room для локальной базы данных. Архитектура выглядит чистой, без лишнего нагромождения фреймворков.

Интерфейс приложения

Для тех, кто не любит писать curl руками, автор подготовил CLI-утилиту. С ней отправка выглядит еще проще:

smsgate send --phones '+79991234567' 'Привет из консоли!'

Кому это пригодится

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

Также это отличный вариант для прототипирования. Пока бизнес еще не решил, нужны ли ему SMS-рассылки, вы можете за 15 минут собрать рабочий прототип на старом телефоне.

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

Проект живой, активно обновляется (судя по коммитам) и имеет внятную документацию. Если у вас есть потребность в дешевом и контролируемом SMS-шлюзе, android-sms-gateway — это то, с чего стоит начать. Минимум настройки, максимум пользы от "железа", которое иначе просто собирало бы пыль.

Инструкции по сборке и готовые APK лежат в репозитории проекта.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.