À propos du projet

SMS Gateway for Android est une application Android qui transforme un smartphone en passerelle SMS, permettant à des applications et services d'envoyer et de recevoir des SMS par programmation via une API ou un outil CLI. Elle est distribuée sous licence Apache-2.0 et développée avec Kotlin, Ktor, Room et Firebase. Fonctionnalités principales - Envoi et réception de SMS via API ; aucune inscription n'est requise, et le mode local ne nécessite aucun compte. - Compatible avec Android 5.0 et versions ultérieures. - Messages multiparties avec partitionnement automatique, ainsi que suivi de l'état des messages. - Visionneuse de messages entrants pour SMS, SMS de données et MMS avec onglets et statistiques. - Notifications en temps réel des SMS et MMS entrants via webhooks, y compris la lecture des messages précédemment reçus. - Prise en charge des MMS : notifications de téléchargement avec corps et pièces jointes, et envoi de MMS avec images, audio, vidéo ou fichiers, avec objet et corps de texte optionnels. - Événements webhook par lots lorsque plusieurs messages arrivent en même temps. - Annulation des messages en attente, filtrage des messages par état et type, et limitation du débit d'envoi par période. - Prise en charge des SMS de données pour les charges utiles binaires (commandes IoT, messages chiffrés). - Planification des heures de travail qui met la file d'attente en pause en dehors des fenêtres configurées. - Écran de diagnostic de la file d'attente des webhooks montrant les livraisons en attente et les nouvelles tentatives. Sécurité et confidentialité - Chiffrement de bout en bout du contenu des messages et des numéros de téléphone des destinataires avant qu'ils n'atteignent l'API, déchiffrés sur l'appareil. - Prise en charge d'un serveur privé afin qu'un backend puisse fonctionner dans votre propre infrastructure. Fonctionnalités avancées - Prise en charge de plusieurs cartes SIM et de plusieurs appareils : les appareils connectés au même compte avec un serveur Cloud ou privé reçoivent les messages répartis entre eux. Intégration - Webhooks pour des événements tels que sms:received, sms:batch:received, sms:sent, sms:delivered, sms:failed, sms:cancelled, sms:data-received, mms:received, mms:downloaded, app:started et system:ping. - Les webhooks sont envoyés directement depuis l'appareil, qui doit donc disposer d'une connexion Internet sortante. Modes de fonctionnement - Serveur local : l'application exécute un serveur HTTP sur l'appareil, accessible sur le réseau local, avec des identifiants d'authentification de base et une documentation Swagger interactive sur /docs. Des exemples de commandes curl et CLI sont fournis pour l'envoi de SMS et de MMS. - Serveur Cloud : se connecte à api.sms-gate.app pour les appareils avec des adresses IP dynamiques ou partagées ; les messages reçus sont téléversés pour un accès centralisé. Un serveur privé peut être déployé à la place. Installation - Des APK précompilés sont disponibles sur la page GitHub Releases, dans une version release sécurisée et une version de développement non sécurisée (trafic en clair autorisé, à ne pas utiliser dans des environnements publics). - Permission requise : SEND_SMS. Permissions optionnelles : READ_PHONE_STATE (sélection de la SIM), READ_SMS (lecture des messages précédents), RECEIVE_SMS, RECEIVE_MMS et RECEIVE_WAP_PUSH (webhooks pour les SMS/MMS entrants). Les cas d'utilisation prévus incluent l'authentification à deux facteurs par SMS, les messages transactionnels, les rappels, les notifications et les retours utilisateurs. Le README indique que l'envoi en masse n'est pas recommandé en raison des éventuelles restrictions des opérateurs mobiles.