Об этом проекте

SMS Gateway for Android — это приложение для Android, превращающее смартфон в SMS-шлюз и позволяющее приложениям и сервисам программно отправлять и получать SMS-сообщения через API или CLI-инструмент. Распространяется под лицензией Apache-2.0 и построено на Kotlin, Ktor, Room и Firebase. Основные возможности - Отправка и получение SMS через API; регистрация не требуется, а в локальном режиме аккаунт вообще не нужен. - Поддержка Android 5.0 и выше. - Многочастные сообщения с автоматическим разбиением, а также отслеживание статуса сообщений. - Просмотр входящих сообщений для SMS, Data SMS и MMS с вкладками и статистикой. - Уведомления о входящих SMS и MMS в реальном времени через webhooks, включая чтение ранее полученных сообщений. - Поддержка MMS: уведомления о загрузке с телом и вложениями, а также отправка MMS с изображениями, аудио, видео или файлами, с опциональной темой и текстовым телом. - Пакетные события webhook, когда несколько сообщений приходят одновременно. - Отмена ожидающих сообщений, фильтрация сообщений по состоянию и типу, а также ограничение скорости отправки за период. - Поддержка Data SMS для бинарных полезных нагрузок (команды IoT, зашифрованные сообщения). - Планирование по рабочим часам, которое приостанавливает очередь вне заданных окон. - Экран диагностики очереди webhook с отображением ожидающих доставок и повторных попыток. Безопасность и приватность - Сквозное шифрование содержимого сообщений и номеров телефонов получателей до того, как они достигнут API, с расшифровкой на устройстве. - Поддержка приватного сервера, чтобы бэкенд мог работать в вашей собственной инфраструктуре. Расширенные возможности - Поддержка нескольких SIM-карт и нескольких устройств: устройства, подключённые к одному аккаунту с Cloud или Private server, получают сообщения, распределяемые между ними. Интеграция - Webhooks для таких событий, как sms:received, sms:batch:received, sms:sent, sms:delivered, sms:failed, sms:cancelled, sms:data-received, mms:received, mms:downloaded, app:started и system:ping. - Webhooks отправляются непосредственно с устройства, поэтому устройству требуется исходящее интернет-соединение. Режимы работы - Local Server: приложение запускает HTTP-сервер на устройстве, доступный в локальной сети, с учётными данными базовой аутентификации и интерактивной документацией Swagger по адресу /docs. Приведены примеры команд curl и CLI для отправки текстовых сообщений и MMS. - Cloud Server: подключается к api.sms-gate.app для устройств с динамическими или общими IP-адресами; полученные сообщения загружаются для централизованного доступа. Вместо этого можно развернуть приватный сервер. Установка - Готовые APK доступны на странице GitHub Releases: в безопасной release-сборке и небезопасной development-сборке (разрешён незашифрованный трафик, не для публичных сред). - Обязательное разрешение: SEND_SMS. Опциональные разрешения: READ_PHONE_STATE (выбор SIM), READ_SMS (чтение предыдущих сообщений), RECEIVE_SMS, RECEIVE_MMS и RECEIVE_WAP_PUSH (webhooks для входящих SMS/MMS). Предполагаемые сценарии использования включают двухфакторную аутентификацию на основе SMS, транзакционные сообщения, напоминания, уведомления и обратную связь от пользователей. В README отмечается, что пакетная отправка не рекомендуется из-за возможных ограничений мобильных операторов.