Skip to content

Strumenti SMPP client e server per i test

Librerie client SMPP open source, server e simulatori per i test, e un metodo passo per passo per testare una connessione SMPP.

Aggiornata il 20 ottobre 2026

Per testare una connessione SMPP ti servono un client SMPP (per fare il bind verso un provider e inviare messaggi) e, in fase di sviluppo, un server o simulatore SMPP (per accettare bind senza inviare SMS reali). Tra le soluzioni open source più note ci sono Jasmin e Kannel come gateway completi, e librerie come jSMPP, Cloudhopper SMPP, python-smpplib, node-smpp e gosmpp per script e strumenti su misura.

Cos'è un client SMPP?

Un client SMPP (l'ESME nel linguaggio SMPP) apre una connessione TCP verso un server SMPP, fa il bind con system ID e password, invia messaggi con submit_sm e riceve le conferme di consegna come deliver_sm. La tua piattaforma SMS è un client verso ogni rotta a monte. Un client di test è la stessa cosa in forma piccola e controllabile: lo usi per verificare credenziali, tipi di bind, limiti TPS, codifica e DLR prima di collegare il traffico di produzione. Le basi: cos'è SMPP.

Cos'è un simulatore di server SMPP?

Un simulatore di server SMPP accetta bind come un SMSC, conferma i messaggi inviati e può restituire DLR finti, ma non consegna nulla a telefoni reali. Permette agli sviluppatori di testare il proprio client, la logica dei tentativi e la gestione dei DLR senza spendere soldi né toccare reti reali. Non confondere mai i DLR del simulatore con quelli veri: solo la rotta reale può mostrare la consegna effettiva. Vedi fake DLR per capire perché conta in produzione.

Strumenti SMPP open source

Questi progetti esistono davvero e sono usati attivamente (controlla licenza e stato di manutenzione di ciascuno prima di farci affidamento):

StrumentoLinguaggioClientServerAdatto per
JasminPythonSìSìGateway SMS open source completo con SMPP e HTTP, instradamento e un'immagine Docker. Utile come server SMPP locale per i test.
KannelCSìTramite add-onStorico gateway SMS e WAP open source che si collega agli SMSC tramite SMPP e altri protocolli.
jSMPPJavaSìSìLibreria che supporta SMPP 3.3, 3.4 e 5.0; usata anche dal componente SMPP di Apache Camel.
Cloudhopper SMPPJavaSìSìLibreria per client e server; il repository principale non viene aggiornato da diversi anni.
python-smpplibPythonSìNoScript di test rapidi: bind, invio, lettura dei DLR.
node-smppNode.jsSìSìPiccoli server e client di test in JavaScript.
gosmppGoSìNoLibreria client SMPP 3.4 per servizi in Go.

Per catturare il traffico, Wireshark decodifica le PDU SMPP, utile quando devi vedere esattamente cosa è stato inviato in un bind o in un submit_sm. Esistono anche client desktop commerciali e simulatori di SMSC in hosting; valutali allo stesso modo.

Come testo una connessione SMPP?

Testa in questo ordine: rete, bind, invio, DLR, throughput. La maggior parte delle configurazioni fallite si ferma ai primi due passi per colpa della whitelist degli IP, della porta sbagliata o del tipo di bind sbagliato.

  1. Rete. Verifica che il tuo IP sia in whitelist e che host e porta siano raggiungibili (basta un semplice test di connessione TCP).
  2. Bind. Fai il bind con system ID, password, system type (spesso vuoto) e il tipo di bind indicato dal provider (TX, RX o TRX). Un bind fallito restituisce un errore come password non valida o system ID non valido.
  3. Invio. Invia un messaggio al tuo telefono con il sender ID, TON/NPI e data_coding concordati, con registered_delivery impostato per chiedere il DLR.
  4. DLR. Verifica che la conferma di consegna arrivi con lo stesso message ID e uno stato finale. Confrontala con il telefono.
  5. Keep-alive. Lascia il bind inattivo e verifica che enquire_link lo tenga aperto.
  6. Throughput. Invia al TPS previsto dal contratto e osserva gli errori di throttling.

Il significato degli errori è in codici di errore SMPP; i limiti di bind e TPS in bind SMPP e TPS.

Server SMPP gratuito per i test: quali opzioni ci sono?

L'opzione gratuita più semplice è far girare in locale un gateway open source come Jasmin (distribuito come immagine Docker) e puntarci il tuo client, oppure scrivere un piccolo server con node-smpp o jSMPP che accetta bind e restituisce DLR. Questo copre i test di protocollo. Per i test di consegna non c'è alternativa a una rotta reale e a telefoni reali su ogni operatore: vedi come testare una rotta SMS.

Scegliere tra SMPP e HTTP per la tua integrazione

Se il tuo volume è piccolo, una HTTP API può essere più semplice che gestire bind SMPP. Se rivendi o invii volumi alti, SMPP è la norma. Confronta in SMPP vs HTTP per gli SMS e cos'è un SMS gateway.

Ottenere una rotta SMPP reale

Quando il tuo client funziona con un simulatore, ti serve un collegamento reale a monte. VoIPMatcher procura rotte SMS A2P su SMPP dai suoi carrier e le gestisce. Richiedi una rotta SMPP per test e produzione.

Domande frequenti

Esiste un client SMPP online che posso usare?

Alcuni vendor offrono client SMPP di test via web e simulatori di SMSC in hosting. Fai attenzione a inserire credenziali di produzione su siti di terzi, perché chiunque le possieda può inviare traffico fatturato a te. Per i bind reali, un client locale costruito con una libreria open source, o il tuo gateway, tiene le credenziali sotto il tuo controllo.

Posso far girare un server SMPP in Docker?

Sì. Jasmin, un gateway SMS open source con server SMPP, pubblica un'immagine Docker, e piccoli server di test costruiti con librerie come node-smpp o jSMPP sono facili da containerizzare. È utile per lo sviluppo e i test automatici, ma un server del genere non consegna a telefoni reali se non è collegato a rotte reali.

Perché il mio bind SMPP fallisce?

Le cause comuni sono un indirizzo IP non in whitelist presso il provider, host o porta sbagliati, system ID o password errati, tipo di bind sbagliato, oppure troppi bind già aperti sull'account. Il codice di errore della risposta al bind indica la causa. Controlla prima la raggiungibilità di rete, poi credenziali e limiti di bind.

Cos'è enquire_link in SMPP?

Enquire_link è la PDU di keep-alive di SMPP. Entrambe le parti la inviano periodicamente, spesso ogni 30-60 secondi, e l'altra parte deve rispondere. Mantiene aperte attraverso i firewall le connessioni inattive e permette a ciascuna parte di accorgersi in fretta di un collegamento caduto, così può riconnettersi invece di perdere messaggi.

Come testo il throughput SMPP?

Dopo un bind riuscito e il test di un singolo messaggio, invia una raffica controllata ai messaggi al secondo previsti dal contratto verso un intervallo di numeri di test concordato con il provider, e osserva errori di throttling e tempi di risposta in crescita. Aumenta gradualmente. Testa tutti i tuoi bind insieme, perché i limiti possono valere per account oltre che per bind.

Ti serve una rotta?

Mandaci destinazione, tipo di rotta e tariffa target. Ti rispondiamo con quello che possiamo offrirti.

Altre guide

Tutte le guide
SMS A2P Rotte SMS dirette: cosa sono e come verificarle Cos'è una rotta SMS diretta, perché consegna meglio delle rotte indirette o grey, quando serve per gli OTP e come verificare se un fornitore è davvero diretto. SMS A2P Elenco MCC MNC: codici di Paese e di rete mobile Cosa sono i codici MCC e MNC, esempi dall'elenco MCC MNC, come identificano le reti mobili e come li usano i fornitori SMS per prezzi e routing. SMS A2P API di validazione numeri di telefono: HLR, MNP e tipo di linea Cosa restituisce un'API di validazione dei numeri di telefono: formato, tipo di linea, MNP e HLR lookup, le differenze e come scegliere un fornitore. SMS A2P Cos'è SMPP? Il protocollo SMPP spiegato Cos'è il protocollo SMPP, come funzionano bind e PDU SMPP, cos'è un server SMPP e quando usare SMPP invece di una HTTP API per gli SMS. SMS A2P RCS vs SMS: differenze per la messaggistica aziendale RCS vs SMS per le aziende: funzioni, copertura su Android e iPhone nel 2026, modelli di prezzo, confronto con MMS e quando tenere l'SMS come fallback. SMS A2P Tasso di consegna SMS: benchmark, latenza e monitoraggio Come calcolare tasso di consegna e latenza degli SMS, quale tasso di consegna è normale, le cause comuni di risultati scarsi e come monitorare le rotte. SMS A2P Verifica con flash call: come funziona e confronto con SMS Come funziona la verifica con flash call, come si confronta con l'OTP via SMS e quali rischi di operatori, frodi e piattaforme valutare prima di usarla. SMS A2P HLR lookup: cos'è e come funziona Cosa restituisce un HLR lookup, differenze con l'MNP lookup, se mostra la posizione e come lo usa chi invia SMS per instradamento, pulizia liste e antifrode.