- La tua applicazioneInviato tramite REST API o SMPP
- Piattaforma BroadNetValida, instrada e fattura ogni messaggio
- SMSC dell’operatoreConnessione diretta con l'operatore
- Dispositivo dell'abbonatoIl messaggio viene consegnato
L'anatomia di un SMS
L'SMS — Short Message Service — è stato standardizzato come parte del GSM e trasporta un payload di 140 byte. Quella dimensione fissa è l'origine di ogni limite di caratteri che incontrerà: tutto ciò che riguarda la lunghezza dell'SMS consiste in realtà nell'entrare in 140 byte.
Un messaggio viaggia come MO (mobile-originated — inviato da un telefono) oppure come MT (mobile-terminated — consegnato a un telefono). Il traffico da applicazione a persona è quasi interamente MT: la sua piattaforma invia il messaggio e la rete lo consegna all'abbonato.
Tra l'invio e il telefono si trova l'SMSC (Short Message Service Centre), che memorizza il messaggio e lo inoltra quando il destinatario è raggiungibile. Se il telefono è spento, l'SMSC trattiene il messaggio finché non scade il periodo di validità.
Codifica: GSM a 7 bit rispetto a UCS-2
Il testo latino semplice utilizza l'alfabeto predefinito GSM a 7 bit definito in GSM 03.38. Poiché ogni carattere occupa 7 bit, 140 byte contengono 160 caratteri — il noto limite di un singolo segmento.
Una manciata di simboli comuni (come { } [ ] ~ ^ | \ e il simbolo dell'euro) risiede in una tabella di estensione e costa due caratteri ciascuno. È facile superare il limite di un segmento senza accorgersene quando il testo contiene uno di questi.
Nel momento in cui un messaggio contiene un carattere al di fuori di quell'alfabeto — arabo, cirillico, cinese o un'emoji — l'intero messaggio passa a UCS-2, una codifica Unicode a 16 bit. Ora ogni carattere occupa 2 byte, quindi un singolo segmento contiene solo 70 caratteri.
Segmentazione e concatenazione
Quando il testo supera un segmento, viene suddiviso e riassemblato sul telefono. A tale scopo, a ciascuna parte viene aggiunto un piccolo User Data Header (UDH), che consuma spazio del payload. Ecco perché i segmenti concatenati contengono meno caratteri di uno autonomo.
Nel GSM a 7 bit, i segmenti concatenati contengono 153 caratteri ciascuno invece di 160; in UCS-2 ne contengono 67 invece di 70. Un messaggio di 300 caratteri in latino corrisponde a tre segmenti; la stessa lunghezza in arabo corrisponde a cinque. Si paga per segmento, quindi la codifica determina direttamente il costo.
Un errore comune ed evitabile è un messaggio che supera di poco un limite — 161 caratteri diventano due segmenti e raddoppiano il prezzo di ogni invio. Ridurre poche parole, o rimuovere un simbolo della tabella di estensione, può dimezzare la fattura su larga scala.
Ricevute di consegna e stato
Una ricevuta di consegna (DLR) è la conferma della rete su ciò che è accaduto a un messaggio. Riporta uno stato finale come consegnato, non consegnato, scaduto o respinto, e spesso un codice di errore specifico dell'operatore che ne spiega il motivo.
I DLR sono essenziali per la riconciliazione e la misurazione della qualità. Richiederli solo dove vengono effettivamente utilizzati mantiene il traffico pulito; una ricevuta di consegnato conferma che il telefono ha ricevuto il messaggio, mentre una ricevuta di scaduto significa che non è mai stato raggiungibile entro il periodo di validità.
Poiché i codici di errore degli operatori variano da rotta a rotta, i mittenti più maturi li normalizzano in una tassonomia coerente — abbonato assente, numero non valido, bloccato come spam — così da poter confrontare la qualità tra destinazioni diverse.
A2P rispetto a P2P
Il P2P (da persona a persona) è l'SMS conversazionale che una persona invia a un'altra. L'A2P (da applicazione a persona) è traffico programmatico generato da un software: avvisi, OTP, notifiche e marketing. Appaiono identici sul telefono, ma sono commercialmente e tecnicamente distinti.
Gli operatori tariffano e instradano l'A2P in modo diverso e si aspettano che arrivi tramite canali ufficiali e fatturati. L'A2P consegnato attraverso rotte P2P per evitare le tariffe di terminazione è una rotta grigia — più economica in partenza, ma soggetta a filtraggio, scarsa capacità di consegna ed esposizione a rischi di conformità.
Comprendere questa distinzione è la base di tutto ciò che segue: la qualità dell'instradamento, le regole sul sender ID e i firewall esistono perché gli operatori devono distinguere il traffico A2P legittimo e pagato dall'elusione.
- Il payload di un SMS è di 140 byte; ecco perché il GSM a 7 bit contiene 160 caratteri e l'UCS-2 solo 70.
- Qualsiasi carattere non GSM (arabo, emoji) fa passare l'intero messaggio a UCS-2 e riduce il limite.
- I segmenti concatenati costano spazio d'intestazione (153 / 67 caratteri) e si paga per segmento.
- I DLR chiudono il circuito sulla consegna; A2P e P2P si assomigliano ma sono instradati e tariffati in modo diverso.