Tutto ciò che vale la pena sapere, niente di superfluo.
Come funziona SMPP, passo dopo passo
L'ESME apre una connessione TCP (idealmente TLS) e invia un messaggio bind_transceiver con un system_id e una password. Una volta stabilita la connessione, invia ogni messaggio come PDU submit_sm; l'SMSC risponde con un messaggio submit_sm_resp contenente un message_id. Le conferme di ricezione arrivano in modo asincrono come PDU deliver_sm sullo stesso socket, abbinate tramite message_id. Un heartbeat enquire_link ogni 30 secondi mantiene attiva la sessione, mentre unbind la chiude correttamente. Vedi /answers/what-is-smpp e /answers/what-is-esme.
Tipi e versioni di binding
Un ESME si associa come trasmettitore (solo invio), ricevitore (solo ricezione) o ricetrasmettitore (entrambi su una singola connessione). Il ricetrasmettitore su SMPP 3.4 è l'impostazione predefinita moderna. SMPP 5.0 ha aggiunto intestazioni Unicode-clean e supporto per la trasmissione cellulare, ma quasi nessuno l'ha implementato: la base di installazione è prevalentemente 3.4. BroadNet supporta le connessioni SMPP 3.4; host, porta e credenziali sono forniti con l'accesso di prova. Vedi /answers/smpp-3-4-vs-5-0.
Vantaggi rispetto a un'API REST
Una connessione persistente non ha costi per messaggio una volta stabilita, quindi a volumi sostenuti SMPP utilizza circa un decimo della CPU e un quarto della larghezza di banda di HTTPS per richiesta. È l'unico modo per raggiungere una latenza p99 inferiore a 100 ms verso un SMSC (non è previsto alcun handshake HTTP sul percorso critico) e trasmette i DLR in tempo reale. Vedi /compare/sms-api-vs-smpp.
Limitazioni e insidie
SMPP è un protocollo binario che devi gestire: la gestione del binding, la riconnessione con backoff esponenziale, il tracciamento del numero di sequenza e la corrispondenza DLR tramite message_id (restituito in formato esadecimale su alcuni SMSC, decimale su altri) sono tutte responsabilità tua. La gestione degli errori è concisa: un invio non riuscito restituisce un command_status numerico che devi decodificare. Utilizza la funzione di ricerca /tools/smpp-error-codes per trasformare questi codici in un'azione. Un client SMPP di livello produttivo è un codebase di migliaia di righe; è meglio acquistarne uno piuttosto che svilupparlo.
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. Consulta /developers/smpp e /products/sms-api.
Quale porta utilizza SMPP e viene ancora utilizzata nel 2026?
SMPP non ha una porta riservata specifica; la 2775 è la porta predefinita storica per il testo in chiaro e gli operatori solitamente espongono il TLS su una porta dedicata (BroadNet fornisce la sua porta TLS con il tuo account). E sì, SMPP è assolutamente attuale: è il protocollo specificato in cima a praticamente ogni contratto di interconnessione A2P e BroadNet gestisce oltre 1.000 connessioni attive dietro 1.000+ connessioni operatore, trasportando oltre 300 milioni di messaggi al giorno con un uptime del 99,99% dal 2003.