Michele Liberi software

versione 1.04, giugno 2026

Michele Liberi
mail: mliberi@gmail.com
cell: +393485211456
telegram: @MicheleLiberi

liberix

sendSMS - SMS gateway background service

Un gateway SMS per Android: riceve messaggi da un web server e li consegna via SMS in modo automatico e silenzioso.

Versione 1.0.0
Autore Michele Liberi
Piattaforma Android 9+
API level 36

sendSMS trasforma uno smartphone Android in un gateway SMS: una volta avviata, si collega ad un web server e, non appena riceve un messaggio, lo spedisce via SMS al destinatario indicato. Subito dopo trasmette al web server l'esito dell'invio.

È pensata per essere eseguita in modo continuativo su un dispositivo dedicato, collegato alla rete e con una SIM attiva. Una volta installata, avviata e configurata lavora in autonomia.

Ascolto continuo
Rimane sempre connessa al server, pronta a ricevere nuovi messaggi senza polling periodico.
Invio automatico
Ogni messaggio ricevuto viene inviato via SMS immediatamente, senza interazione dell'utente.
Statistiche in tempo reale
La schermata mostra uptime, messaggi inviati, eventuali errori e l'identificativo del dispositivo.
Efficienza energetica
Nessun controllo periodico inutile: la connessione si riattiva solo quando c'è qualcosa da fare.

Architettura

La app comunica con un web server tramite una connessione internet (WiFi o dati mobili). Il server gestisce una coda di messaggi SMS da inviare; la app preleva un messaggio alla volta, lo invia e comunica al server l'esito dell'invio.

Il web server di riferimento è configurabile tramite il parametro BASE_URL (il valore di default è https://mliberi.top/cgi-bin).

Per un corretto funzionamento del sistema il web server deve mettere a disposizione due URL:

sms_pop è il programma che invia alla app un nuovo SMS da gestire. Riceve il parametro DEVICE_ID che identifica il device da cui proviene la richiesta.

La risposta deve essere in formato JSON e prevede tre attributi:

Esempio:

{ "id":"msg0001", "tel":"+39xxxxxxxxxx", "text":"messaggio di prova" }

La app richiama sms_pop con un timeout di 120s, per cui qualunque risposta inviata oltre questo termina andrà perduta, quindi è opportuno che sms_pop risponda entro questo termine. Se non ci sono SMS in coda da inviare può rispondere con un json vuoto, cioè {}.

sms_ack è il programma che registra sul server l'esito dell'invio. Riceve due parametri:

Come funziona

  1. Connessione al server: la app apre una connessione al web server e resta in attesa. Il server non risponde finché non c'è un messaggio da inviare.
  2. Ricezione del messaggio: quando il server ha un messaggio pronto, lo trasmette alla app con il numero di telefono del destinatario e il testo.
  3. Invio SMS: la app invia l'SMS tramite la SIM predefinita del dispositivo, in modo silenzioso e senza aprire alcuna applicazione di messaggistica.
  4. Conferma al server: la app notifica al server l'esito dell'invio e la descrizione dell'eventuale errore. Poi si rimette immediatamente in ascolto.

Nota sulla SIM: la app utilizza sempre la SIM impostata come predefinita per gli SMS nelle impostazioni del telefono. Su dispositivi dual-SIM è possibile scegliere quale SIM usare dalle impostazioni di sistema di Android.

La schermata principale

L'interfaccia è volutamente essenziale: mostra soltanto le informazioni necessarie per monitorare il funzionamento del gateway a colpo d'occhio:

Il log degli eventi

Sotto le statistiche è presente un riquadro di log che mostra in tempo reale gli eventi più recenti: ogni messaggio ricevuto, ogni SMS inviato, eventuali errori di rete e le riconnessioni automatiche al server. Il log è visibile solo mentre la app è aperta e non viene salvato in modo permanente.

Installazione e avvio

Download del file APK
Copia il file sendSMS.apk sul dispositivo.
Installazione del file APK
Apri il file sendSMS.apk. Se richiesto, abilita l'installazione da sorgenti sconosciute nelle impostazioni di Android.
Concessione del permesso SMS
Al primo avvio Android chiederà il permesso di inviare SMS. È indispensabile concederlo: senza di esso la app non può funzionare.
Comunicare il Device ID
Annota il Device ID mostrato nella schermata principale e comunicalo all'amministratore del sistema, che lo utilizzerà per configurare il server.
Pronto
Una volta configurato il server, la app inizierà a ricevere e inviare messaggi automaticamente. Non è necessaria alcuna altra azione.

Consiglio: per un funzionamento ottimale, disabilita l'ottimizzazione della batteria per sendSMS nelle impostazioni di Android (Impostazioni/App/sendSMS/Batteria/Non ottimizzare). Questo evita che il sistema operativo sospenda la connessione al server durante i periodi di inattività.

Nota importante! Per evitare che Android chiuda la app è opportuno disabilitare l'opzione Settings -> Battery -> Background usage limits -> Put unused apps to sleep.

FAQ

La app funziona con il telefono bloccato?

Sì. sendSMS continua a funzionare anche con lo schermo spento o il telefono bloccato, purché la connessione internet sia attiva e l'ottimizzazione della batteria sia disabilitata per la app.

Cosa succede se la connessione internet cade?

La app rileva automaticamente l'interruzione e riprova la connessione al server dopo 90 secondi. Non è necessario alcun intervento manuale.

Cosa succede se la app viene chiusa?

Se la app viene chiusa manualmente, il gateway si interrompe. Per riprendere il funzionamento è sufficiente riaprirla. I messaggi accodati sul server nel frattempo verranno elaborati non appena la connessione viene ristabilita.

Il Device ID cambia nel tempo?

No. Il Device ID è un identificativo assegnato da Android al dispositivo e rimane invariato anche dopo aggiornamenti della app. Cambia soltanto in caso di ripristino alle impostazioni di fabbrica del telefono.

La app consuma molti dati o batteria?

Il consumo di dati è minimo: la connessione al server trasmette solo piccoli pacchetti di testo. Il consumo di batteria è anch'esso contenuto, poiché la app non esegue operazioni continue ma rimane semplicemente in ascolto.

È possibile usare una SIM specifica su un dispositivo dual-SIM?

La app utilizza la SIM impostata come predefinita per gli SMS nelle impostazioni di sistema di Android. Per cambiare SIM, vai su Impostazioni/Gestione schede SIM/SMS e seleziona la SIM desiderata.

privacy policy

(c) M. Liberi, last updated: 2026-06-05