Il protocollo SMPP spiegato
SMPP (Short Message Peer-to-Peer) è il protocollo TCP aperto che trasporta gli SMS A2P tra un'applicazione — l'ESME — e l'SMSC di un operatore mobile. L'ESME apre un bind persistente, invia messaggi come submit_sm PDUs binari e riceve le ricevute di consegna tramite lo stesso socket.
Sintesi tratta da Come funziona il protocollo SMPP?
Come funziona
- 1
Bind
L'ESME apre una connessione TCP (idealmente TLS) e invia bind_transceiver con un system_id e una password. Può effettuare il bind come Transmitter, Receiver o Transceiver; un bind Transceiver su SMPP 3.4 è lo standard moderno.
Leggi la risposta completa - 2
Submit
Ogni messaggio viene inviato come un PDU submit_sm e l'SMSC conferma con un submit_sm_resp che contiene un message_id. La window — ovvero quanti PDUs possono essere in transito senza conferma — è l'elemento che più spesso limita il throughput reale.
Leggi la risposta completa - 3
Ricevere ricevute di consegna
Le ricevute di consegna arrivano in modo asincrono come PDUs deliver_sm sullo stesso socket e vengono ricondotte al messaggio originale tramite message_id.
Leggi la risposta completa - 4
Mantenere attiva la sessione
Un heartbeat enquire_link ogni 30 secondi mantiene attivo il bind; il client si riconnette con un backoff esponenziale e l'unbind chiude la sessione in modo pulito. Un submit fallito restituisce un command_status numerico da decodificare.
Leggi la risposta completa
Termini chiave
Ogni termine dispone di una propria pagina di approfondimento con la spiegazione completa.
- Che cos'è SMPP?SMPP (Short Message Peer-to-Peer) è lo standard di protocollo aperto per lo scambio di SMS tra SMSC, ESME (External Short Message Entities) e aggregatori.
- Come funziona il protocollo SMPP?SMPP (Short Message Peer-to-Peer) è il protocollo TCP aperto che trasporta SMS A2P tra un'applicazione — l'ESME — e l'SMSC di un operatore di telefonia mobile.
- Che cos'è un ESME?ESME (External Short Messaging Entity) è il termine SMPP che indica qualsiasi applicazione esterna all'SMSC che invia o riceve SMS.
- Che cos'è un SMSC?Un SMSC (Short Message Service Center) è il componente infrastrutturale fondamentale di una rete mobile che memorizza, inoltra e consegna i messaggi SMS tra dispositivi mobili e applicazioni esterne.
- Qual è la dimensione della finestra SMPP ?La finestra rappresenta il numero di PDU SMPP che un ESME può avere in transito (inviate ma non ancora confermate) su una singola connessione in un dato momento.
- SMPP 3.4 vs SMPP 5.0: cosa è cambiato e quale versione utilizzareSMPP 3.4 (1999) è ancora il protocollo di interconnessione SMS utilizzato oggi in quasi tutte le connessioni A2P in produzione.
- Che cos'è una DLR (ricevuta di consegna)?Un DLR è la conferma asincrona dell'avvenuta consegna (o mancata consegna) di un SMS al dispositivo del destinatario.
- Che cos'è il TPS (Transazioni al secondo)?Il TPS (transazioni al secondo), chiamato anche MPS o velocità di invio, rappresenta il limite massimo di throughput di un collegamento o account di messaggistica: indica quanti PDU SMS submit_sm l'SMSC accetta al…
- TLS 1.3 nella messaggistica: cosa è cambiato e perché è importante per SMPPTLS 1.3 (RFC 8446, 2018) ha sostituito TLS 1.2 con un handshake più veloce, ha rimosso tutti gli algoritmi che erano stati compromessi nel decennio precedente e ha reso obbligatoria la forward secrecy.
Guide e approfondimenti
- RiferimentoPanoramica del protocollo SMPP
- RiferimentoOperazioni di bind e stati della sessione SMPP
- RiferimentoSMPP submit_sm: ogni campo obbligatorio
- RiferimentoCodici di errore command_status di SMPP
- GuidaChecklist per l'integrazione SMPP
- ArticoloIl costo operativo di un'integrazione SMS: bind, webhook e modalità di guasto
- ArticoloPianificazione del throughput SMS e TPS: dimensionamento dei binding SMPP per campagne ad alto volume
- ConfrontoSMS API vs SMPP
- Documentazione per sviluppatoriIntegrazione SMPP
- StrumentoRicerca codici errore SMPP
Domande frequenti
Quando è preferibile scegliere SMPP rispetto a REST?
Scegli SMPP se invii in modo continuativo diverse centinaia di messaggi al secondo o ti servono bind persistenti (la capacità per bind è concordata con il tuo account team), se esegui OTP a bassa latenza in cui ogni millisecondo conta, o se ti integri in un ecosistema di operatori/aggregatori che già utilizza SMPP ovunque. Altrimenti un'API REST per SMS (nessun limite di velocità fisso per account su BroadNet) è più semplice da gestire e utilizza gli stessi percorsi.
Leggi la risposta completaDovrei utilizzare SMPP 5.0 per una nuova integrazione?
Quasi mai. Utilizza SMPP 3.4 su TLS a meno che una controparte specifica non richieda la versione 5.0. La base installata, gli strumenti e il supporto degli operatori si basano tutti sulla versione 3.4, e la 5.0 non offre alcun vantaggio in termini di deliverability sulle rotte A2P commerciali.
Leggi la risposta completaIl protocollo SMPP 5.0 garantisce una migliore trasmissione dei messaggi rispetto alla versione 3.4?
No. La deliverability dipende dal percorso dell'operatore, non dalla versione SMPP. Le funzionalità migliorate dalla versione 5.0 (intestazioni Unicode, TLV di fatturazione) sono generalmente gestite a livello applicativo, al di sopra della versione 3.4.
Leggi la risposta completaCome faccio a inviare messaggi in arabo o emoji tramite SMPP 3.4?
Imposta data_coding su UCS-2 (0x08) oppure trasporta il corpo in un TLV message_payload. La versione 3.4 gestisce correttamente i contenuti Unicode; non è necessaria la versione 5.0.
Leggi la risposta completaQuale tipo di binding e quale porta devo utilizzare?
Il binding del transceiver su TLS è lo standard per A2P: invia submit_sm e riceve DLR su un unico socket. BroadNet offre connessioni SMPP 3.4; host, porta e credenziali sono forniti con l'accesso di prova.
Leggi la risposta completa