SMS Gateway for Android

Écran d'accueil de l'application : adresses et identifiants des serveurs local et cloud, trois interrupteurs activés, bouton Online.

Une API HTTP devant la carte SIM d'un téléphone Android

SMS Gateway for Android fait d'un smartphone Android une passerelle SMS. Votre application envoie une requête HTTP authentifiée, le téléphone expédie le SMS par sa propre carte SIM, et les messages reçus repartent vers vos serveurs en webhooks. L'API se joint sur le téléphone (serveur local, port 8080 par défaut, sans compte) ou, quand il n'a pas d'adresse joignable, par un relais : le serveur gratuit des mainteneurs, dont l'inscription ne demande pas d'e-mail, ou un serveur privé.

Chiffrement par la clé du téléphone et rotation des SIM

  • Chiffrement de bout en bout, en option : le client chiffre le texte et les numéros avec la clé publique RSA-2048 du téléphone. La clé privée reste dans le Keystore Android, et le relais ne lit ni le message ni les destinataires.
  • Quatorze événements de webhook : SMS reçu, envoyé, livré, en échec ou annulé, MMS téléchargé, SMS binaire reçu, et un system:ping périodique qui signale que le téléphone répond.
  • Plusieurs SIM, plusieurs téléphones : la SIM se choisit par message ou tourne automatiquement. En mode cloud ou privé, un compte répartit ses envois entre ses appareils.
  • Réglages contre le filtrage des opérateurs : plafond d'envois par minute, heure ou jour, délai aléatoire entre deux messages, plages horaires hors desquelles la file se met en pause.

Repli Twilio, pont e-mail et commandes IoT par SMS

  • Codes de vérification et SMS transactionnels. La documentation déconseille alors le plafond d'envois, qui retarde les messages.
  • Renvoi par le téléphone des SMS que Twilio n'a pas livrés, avec le service twilio-fallback du projet, sans toucher au code qui appelle Twilio.
  • Envoi de SMS depuis un outil qui ne sait produire que des e-mails, par le pont SMTP du projet.
  • Commandes transmises à des équipements IoT en SMS binaires.

Hors Play Store, réveillé par Firebase, limité par l'opérateur

L'application s'installe hors de Google Play. L'APK se télécharge sur la page des releases GitHub. Sur Android 15 et plus, Play Protect peut bloquer l'installation, et la permission d'envoi de SMS reste grisée tant qu'elle n'est pas accordée à la main.

Le mode cloud repose sur Firebase Cloud Messaging. Le serveur réveille le téléphone par notification push ; au repos, l'appareil peut ne le contacter qu'une fois toutes les 15 minutes. Un serveur privé garde les messages sur votre infrastructure, mais ses notifications passent encore par api.sms-gate.app puis FCM, sauf si le téléphone utilise SSE. Son installation demande un VPS Linux, Docker, une base MySQL ou MariaDB et un reverse proxy avec certificat TLS valide.

Les SMS partent sous le numéro de la SIM. L'application ne propose ni nom d'expéditeur alphanumérique (à négocier avec l'opérateur) ni RCS.

Le README déconseille l'envoi en masse, à cause des restrictions des opérateurs. Le cloud public est gratuit et n'affiche pas de quota, mais la page des tarifs demande de prévenir le support au-delà de 10 000 messages par jour et n'exclut pas des offres payantes pour les nouveaux utilisateurs. Sur ce cloud, la seule limite de file porte sur l'âge : passé 24 heures d'attente d'un message, l'API refuse les nouveaux envois (HTTP 503).

Dix versions entre le 3 septembre et le 27 octobre 2026, dont la 1.77.5 du 21 octobre et la 1.78.0, encore en préversion. La documentation parle d'un développement actif et indique que certains projets l'utilisent déjà en production. L'application et le serveur sont sous licence Apache-2.0.