Specifiche tecniche di SMPP
Scopri le specifiche tecniche della soluzione SMPP di OVHcloud
Obiettivo
Scopri le specifiche tecniche dell'offerta SMPP di OVHcloud.
Glossario
- PDU: Protocol Data Unit è l'oggetto/entità che permette di scambiare richieste e risposte
- SMPP: Short Message Peer to Peer Protocol
- SMSC: Short Message Service Center (server)
- ESME: External Short Message Entity (client)
- UDH: User Data Header
- SM: Short Message
- DLR: Delivery Receipt
- PTT: Premium Tracking Technical è un codice di errore comunicato nel messaggio di un DLR
- MT: Mobile Terminated
- MO: Mobile Originated
Per ulteriori spiegazioni sulle abbreviazioni, consulta pagina 10 delle specifiche SMPP di smpp.org.
Presentazione
A cosa serve l'SMPP?
SMPP (Short Message Peer-to-Peer) è un protocollo che permette di scambiare SMS con gli operatori telefonici e da parte dei fornitori di contenuti. Generalmente utilizza due connessioni TCP/IP, una per l'invio e una per la ricezione dei dati.
Quali sono i vantaggi dell'SMPP rispetto all'offerta SMS standard?
- Il protocollo è standardizzato e permette di integrarsi con numerosi strumenti del mercato
- Permette di ottenere una velocità di trasmissione elevata con bassa latenza
Qual è l'utilizzo tipico dell'invio di un SMS tramite SMPP?
L'applicazione di invio SMS del cliente (ESME) dispone di tre mezzi di comunicazione con l'SMSC:
- Transmitter: invio di un messaggio
- Receiver: ricezione di un messaggio
- Transceiver: invio e ricezione di un messaggio
Trova ulteriori informazioni sui mezzi di comunicazione nel capitolo Elenco dei PDU.
Una volta stabilita la connessione tra l'ESME e un SMSC di OVHcloud, è possibile effettuare l'invio e/o la ricezione di un messaggio.
L'autenticazione della connessione all'SMSC avviene con il system_id (identificativo), la password e l'indirizzo IP della tua applicazione.
L'offerta SMPP di OVHcloud permette:
- L'invio di SMS con (o senza) avviso di ricezione (DLR)
- La ricezione di un messaggio inviato da un cellulare
Numero virtuale*: canale transazionale unicamente
Specifiche tecniche
Descrizione dei protocolli
Bind Request
Un ESME può connettersi in una delle tre modalità seguenti: Transmitter, Receiver, Transceiver.
Queste richieste di connessione sono gestite conformemente alla specifica del protocollo SMPP v3.4.
Bind Response
Durante il processo di connessione, l'ESME effettua una richiesta di Bind fornendo il system_id (identificativo) e la sua password.
Queste informazioni, insieme all'IP della tua applicazione, vengono utilizzate per autenticare la richiesta di connessione.
Successivamente, l'SMSC invia una risposta con uno stato che definisce se l'autenticazione è andata a buon fine o meno.
Elenco dei PDU
bind_transceiver e bind_transceiver_resp
Questo tipo di bind viene utilizzato per avviare una connessione che permette la comunicazione bidirezionale tra l'SMSC e l'ESME (è la fusione delle modalità transmitter e receiver).
bind_transmitter e bind_transmitter_resp
Questo tipo di bind viene utilizzato per avviare una connessione che permette unicamente la comunicazione dall'ESME verso l'SMSC (invio di SMS a un cellulare). L'SMSC invia le risposte associate ai PDU di richiesta sulla stessa connessione.
bind_receiver e bind_receiver_resp
Questo tipo di bind viene utilizzato per avviare una connessione che permette unicamente la comunicazione dall'SMSC verso l'ESME (invio di avviso di ricezione (DLR) o di messaggi inviati da un cellulare). L'ESME invia le risposte associate ai PDU di richiesta sulla stessa connessione.
unbind e unbind_resp
Richiesta di chiusura di una connessione avviata dall'SMSC o dall'ESME. La parte che riceve la richiesta invia una risposta quando è pronta a interrompere la connessione.
L'SMSC di OVHcloud chiude (unbind) le connessioni ogni 24 h; l'ESME deve riconnettersi automaticamente.
outbind
Non supportato
submit_sm e submit_sm_resp
Il submit_sm viene utilizzato da un ESME per inviare un SMS all'SMSC per la trasmissione a un numero di telefono cellulare.
Parametri obbligatori:
source_addrpuò essere un numero internazionale, un numero alfanumerico o un numero shortcode:- alfanumerico: questi numeri di telefono sono composti da lettere e cifre (es.: ovh123).
source_addr_ton= 5source_addr_npi= 0
- shortcode: questi numeri di telefono contengono tra 3 e 8 cifre (es.: 38069). Lo shortcode serve solo ad avvisare il nostro servizio che dovremo utilizzarne uno. Lo shortcode reale utilizzato per inviare l'SMS sarà definito dall'operatore di telecomunicazioni.
source_addr_ton= 3source_addr_npi= 1
- internazionale: questi numeri di telefono sono composti dall'identificativo del paese e dal numero abituale senza il primo 0 (per esempio 33601020304).
source_addr_ton= 1source_addr_npi= 1
- alfanumerico: questi numeri di telefono sono composti da lettere e cifre (es.: ovh123).
destination_addrdeve essere un numero internazionale (es.: 33600000001)dest_addr_ton= 1dest_addr_npi= 1
Parametri opzionali:
Il submit_sm_resp è la conferma della corretta ricezione del submit_sm da parte dell'SMSC.
Contiene un message_id, che è l'identificativo del messaggio dell'SMSC e permette di collegarlo all'avviso di ricezione (DLR) inviato in seguito quando il cellulare ha ricevuto l'SMS (a condizione che la richiesta di un DLR sia stata specificata nel submit_sm).
deliver_sm e deliver_sm_resp
Il deliver_sm viene emesso dall'SMSC per inviare un avviso di ricezione (DLR) all'ESME se quest'ultimo lo ha richiesto nel submit_sm, oppure quando viene ricevuto un SMS in entrata (risposta a uno shortcode o un SMS inviato verso un numero virtuale).
Parametri obbligatori:
Parametri opzionali:
Parametri specifici di OVHcloud:
Il nostro servizio tenta di inviare i deliver_sm all'ESME per un massimo di 7 giorni.
Codici di errore degli avvisi di ricezione (DLR)
enquire_link e enquire_link_resp
PDU utilizzato dall'SMSC e dall'ESME per verificare se una connessione è ancora attiva.
Si consiglia di rispettare un intervallo di 30 secondi tra ogni richiesta.
generic_nack
PDU restituito dall'SMSC quando un PDU non è supportato o è danneggiato.
query_sm e query_sm_resp
Non supportati.
cancel_sm e cancel_sm_resp
Non supportati.
replace_sm e replace_sm_resp
Non supportati.
alert_notification
Non supportato.
submit_multi e submit_multi_resp
Non supportati.
data_sm e data_sm_resp
Non supportati.
Stati dei PDU di risposta
Ogni PDU di risposta (quelli che terminano con _resp) ha uno stato. La specifica SMPP fornisce un elenco di stati generici (SMPP 3.4, 5.1.3 command_status) comuni a tutti gli SMSC.
Un intervallo specifico di stati è riservato agli SMSC. Ecco quelli utilizzati da OVHcloud:
Data Coding Scheme
Il data coding viene utilizzato dal submit_sm e dal deliver_sm per codificare il messaggio.
Elenco dei data coding supportati:
- GSM 03.38 (GSM 7 bits)*
- UCS2
GSM 03.38*: questa codifica rappresenta ogni carattere su un settetto, ma alcuni client SMPP lo rappresentano su un ottetto. Poiché il formato ottetto è il più utilizzato, il tuo account SMPP è configurato su questo formato per impostazione predefinita. Se riscontri problemi di codifica con il tuo client SMPP, contatta il supporto OVHcloud per far modificare il formato.
TLV
Un TLV (Tag, Length, Value) permette di arricchire un PDU aggiungendovi informazioni opzionali. Alcuni sono comuni e utilizzati da diversi SMSC, mentre altri possono essere più specifici di OVHcloud.
Sistema di identificazione
System ID
Il system_id è l'identificativo di connessione SMPP; viene generato sotto forma di una stringa di caratteri casuali.
Password
La password viene generata e fornita a ogni creazione di un account SMPP.
Elenco degli IP autorizzati
È necessario un elenco di IP per autorizzare la o le macchine a connettersi all'SMSC.
Tipo di connessione
- Connessione sicura: connessione crittografata con TLS 1.3 minimo.
- Connessione non sicura: connessione che non beneficia della crittografia TLS per esigenze di retrocompatibilità (tutti gli scambi sono in chiaro e quindi visibili a terzi).
Limiti di invio
Connessione per zona
Per impostazione predefinita, un account SMPP può avere solo una coppia Transmitter/Receiver o un Transceiver per zona.
Windowing
Per impostazione predefinita, un account SMPP può elaborare fino a un massimo di 10 messaggi simultaneamente.
Velocità di trasmissione autorizzata
Per impostazione predefinita, un account SMPP può elaborare fino a un massimo di 20 messaggi al secondo per connessione.
Versione del protocollo
La versione del protocollo è la 3.4.
Elenco dei client SMPP testati da OVHcloud
- Kannel 1.4.5
Per saperne di più
Gestione di un account SMS SMPP
Contatta la nostra Community di utenti.