Sobre el proyecto

SMS Gateway for Android es una aplicación de Android que convierte un smartphone en una pasarela SMS, lo que permite que aplicaciones y servicios envíen y reciban mensajes SMS de forma programática a través de una API o una herramienta CLI. Se distribuye bajo la licencia Apache-2.0 y está construida con Kotlin, Ktor, Room y Firebase. Capacidades principales - Enviar y recibir SMS mediante API; no se requiere registro y el modo local no necesita ninguna cuenta. - Compatible con Android 5.0 y versiones posteriores. - Mensajes multipart con particionado automático, además de seguimiento del estado de los mensajes. - Visor de mensajes entrantes para SMS, Data SMS y MMS con pestañas y estadísticas. - Notificaciones en tiempo real de SMS y MMS entrantes mediante webhooks, incluida la lectura de mensajes recibidos previamente. - Compatibilidad con MMS: notificaciones de descarga con cuerpo y archivos adjuntos, y envío de MMS con imágenes, audio, vídeo o archivos, con asunto y cuerpo de texto opcionales. - Eventos de webhook por lotes cuando llegan varios mensajes a la vez. - Cancelar mensajes pendientes, filtrar mensajes por estado y tipo, y aplicar limitación de la tasa de envío por periodo. - Compatibilidad con Data SMS para cargas útiles binarias (comandos IoT, mensajes cifrados). - Programación por horario laboral que pausa la cola fuera de las ventanas configuradas. - Pantalla de diagnóstico de la cola de webhooks que muestra entregas pendientes y reintentos. Seguridad y privacidad - Cifrado de extremo a extremo del contenido de los mensajes y de los números de teléfono de los destinatarios antes de que lleguen a la API, descifrados en el dispositivo. - Compatibilidad con servidor privado para que un backend pueda ejecutarse en tu propia infraestructura. Funciones avanzadas - Compatibilidad con varias tarjetas SIM y varios dispositivos: los dispositivos conectados a la misma cuenta con Cloud o Private server reciben mensajes distribuidos entre ellos. Integración - Webhooks para eventos como sms:received, sms:batch:received, sms:sent, sms:delivered, sms:failed, sms:cancelled, sms:data-received, mms:received, mms:downloaded, app:started y system:ping. - Los webhooks se envían directamente desde el dispositivo, por lo que el dispositivo necesita una conexión a internet saliente. Modos de funcionamiento - Local Server: la aplicación ejecuta un servidor HTTP en el dispositivo, accesible en la red local, con credenciales de autenticación básica y documentación Swagger interactiva en /docs. Se proporcionan ejemplos de comandos curl y CLI para enviar mensajes de texto y MMS. - Cloud Server: se conecta a api.sms-gate.app para dispositivos con direcciones IP dinámicas o compartidas; los mensajes recibidos se suben para acceso centralizado. En su lugar, se puede desplegar un servidor privado. Instalación - Hay APK precompilados disponibles en la página de GitHub Releases, en una compilación de versión segura y una compilación de desarrollo insegura (tráfico en texto claro permitido, no para entornos públicos). - Permiso obligatorio: SEND_SMS. Permisos opcionales: READ_PHONE_STATE (selección de SIM), READ_SMS (lectura de mensajes anteriores), RECEIVE_SMS, RECEIVE_MMS y RECEIVE_WAP_PUSH (webhooks para SMS/MMS entrantes). Los casos de uso previstos incluyen autenticación de dos factores basada en SMS, mensajes transaccionales, recordatorios, notificaciones y comentarios de usuarios. El README señala que no se recomienda el envío por lotes debido a posibles restricciones de los operadores móviles.