SMPP (Short Message Peer-to-Peer) è il protocollo del settore telecom usato per scambiare SMS tra applicazioni, gateway SMS, aggregatori e SMSC degli operatori. Funziona su una connessione TCP persistente, chiamata bind, e trasporta messaggi, report di consegna e risposte in entrata in pacchetti binari compatti chiamati PDU. La versione 3.4 è quella usata dalla maggior parte delle rotte.
Cos'è SMPP?
Il protocollo SMPP è uno standard aperto, nato negli anni '90, per inviare e consegnare messaggi brevi al di fuori della segnalazione propria della rete mobile. Definisce due ruoli: l'ESME (External Short Messaging Entity), che è il client, come la tua piattaforma o il tuo gateway; e l'SMSC (Short Message Service Center), che è il server, come il centro messaggi di un operatore o di un aggregatore. Quasi ogni rotta SMS A2P wholesale viene consegnata via SMPP. La versione 3.4 è lo standard di fatto; la versione 5.0 esiste ma è molto meno diffusa.
Come funziona SMPP?
Il client apre una connessione TCP verso il server (la porta 2775 è il default comune), si autentica con system ID e password e tiene aperta la sessione. Messaggi, ricevute di consegna e pacchetti keep-alive passano poi nelle due direzioni su quel bind finché una delle due parti non lo chiude.
- Bind. Il client invia una richiesta di bind con le sue credenziali e il tipo di bind.
- Invio. Ogni messaggio parte come PDU
submit_smcon indirizzo di origine (sender ID), numero di destinazione, data coding e testo. Il server risponde consubmit_sm_resp, che contiene un ID del messaggio o un codice di errore. - Consegna. Ricevute di consegna e risposte originate dal mobile tornano come PDU
deliver_sm, che il client conferma. - Keep-alive. PDU
enquire_linkogni 30-60 secondi tengono sana la sessione e rilevano i collegamenti morti. - Unbind. Una delle due parti chiude la sessione in modo pulito con
unbind.
I codici di errore nelle risposte (per esempio destinazione non valida o throttling) sono elencati in codici di errore SMPP, e gli stati delle ricevute di consegna in codici di stato dei DLR SMS.
Quali sono i tipi di bind SMPP?
| Tipo di bind | Direzione | Uso tipico |
|---|---|---|
| Transmitter (TX) | Il client invia solo messaggi | Connessioni separate per l'invio |
| Receiver (RX) | Il client riceve solo DLR e risposte | Connessioni separate per la ricezione |
| Transceiver (TRX) | Entrambe le direzioni su una sola connessione | La configurazione più comune sulle rotte moderne |
I fornitori limitano il numero di bind per account e i messaggi al secondo (TPS) per bind. Vedi bind SMPP e TPS.
Cos'è un server SMPP?
Un server SMPP è il lato che accetta i bind: l'SMSC di un operatore, la piattaforma di un aggregatore o un gateway che rivende rotte ai propri clienti. Un rivenditore spesso ha entrambi i ruoli: un server SMPP per i suoi clienti e connessioni client SMPP verso le sue rotte a monte. Software gateway come Kannel e Jasmin possono svolgere questi ruoli. Gli strumenti per testare entrambi i lati sono trattati in strumenti client e server SMPP.
SMPP nelle telecomunicazioni: a cosa serve?
- Collegare piattaforme A2P e fornitori CPaaS ad aggregatori e operatori.
- Interconnessioni SMS tra carrier nel wholesale.
- Mittenti ad alto volume (banche, fornitori di OTP) che hanno bisogno di throughput e ricevute rapide.
- Ricevere SMS in entrata su short code e numeri lunghi.
Vedi cos'è un aggregatore SMS A2P per capire dove si colloca SMPP nella catena.
SMPP e HTTP API a confronto
SMPP tiene aperta una connessione e invia i messaggi in pipeline, quindi regge grandi volumi con poco overhead e restituisce le ricevute in tempo reale. Una HTTP API è più facile da integrare (una richiesta per messaggio, webhook per i report) e va bene per app con volumi moderati. Rivenditori e piattaforme scelgono di solito SMPP; i team di prodotto partono di solito con HTTP. Confronto completo: SMPP e HTTP per gli SMS e cos'è un'API SMS.
I parametri SMPP da impostare bene
- TON/NPI dell'indirizzo di origine: dice al server se il mittente è alfanumerico, internazionale o nazionale.
- data_coding: 0 per l'alfabeto GSM di default sulla maggior parte delle rotte, 8 per UCS-2 (Unicode). Vedi GSM-7 e Unicode.
- registered_delivery: va impostato per richiedere le ricevute di consegna.
- Messaggi lunghi: inviati con UDH o parametri SAR. Vedi SMS lunghi concatenati.
- Sicurezza: SMPP 3.4 non ha cifratura integrata, quindi le connessioni passano di solito da VPN, whitelist di IP o tunnel TLS.
Ottenere rotte SMPP
VoIPMatcher procura dai suoi carrier rotte SMS A2P via SMPP e le gestisce, con bind e TPS dimensionati sul tuo traffico. Richiedi una rotta SMPP.
Domande frequenti
Quale porta usa SMPP?
SMPP funziona su TCP, e la porta 2775 è il default più usato. In pratica ogni fornitore ti dà il suo host, porta, system ID e password, e la porta può essere diversa. Le connessioni sono di solito limitate con whitelist di IP, e dato che SMPP 3.4 non ha cifratura integrata, molti collegamenti passano da una VPN o da un tunnel TLS.
Che differenza c'è tra SMPP 3.4 e SMPP 5.0?
SMPP 3.4 è la versione che usa quasi ogni rotta SMS. SMPP 5.0 ha aggiunto funzioni come i messaggi broadcast, informazioni sul controllo della congestione e più parametri opzionali, ma la diffusione è rimasta limitata. Quando un fornitore dice SMPP senza versione, considera 3.4 e verifica dettagli come il supporto TLV e il formato delle ricevute prima di integrare.
SMPP è sicuro?
Non di per sé. SMPP 3.4 invia credenziali e contenuto dei messaggi senza cifratura, quindi dovrebbe passare da una VPN, un tunnel TLS o almeno una connessione privata con una whitelist di IP rigorosa. Usa password robuste e uniche per ogni bind e limita ogni account agli indirizzi di origine e alle destinazioni che gli servono.
Cos'è un ESME in SMPP?
ESME sta per External Short Messaging Entity: il lato client di una connessione SMPP. È l'applicazione, la piattaforma o il gateway che fa bind verso un SMSC o un server SMPP per inviare messaggi e ricevere ricevute di consegna. Una piattaforma di rivendita fa da SMSC verso i suoi clienti e da ESME verso le sue rotte a monte.
Mi serve SMPP per inviare SMS?
No. La maggior parte delle applicazioni invia SMS tramite una HTTP API, più semplice da integrare. SMPP è preferibile quando invii grandi volumi, ti servono ricevute a bassa latenza, rivendi rotte ad altri clienti o ti colleghi direttamente con carrier e aggregatori. Molti fornitori offrono entrambi, quindi puoi partire con HTTP e passare a SMPP in seguito.
Ti serve una rotta?
Mandaci destinazione, tipo di rotta e tariffa target. Ti rispondiamo con quello che possiamo offrirti.