BroadNet
Fondamenti Principiante

Fondamenti dell'SMS

Come viene costruito, codificato e segmentato un SMS — dal limite di 160 caratteri e GSM 03.38 alle ricevute di consegna e all'A2P rispetto al P2P.

5 lezioni4 min di letturaBasato su standard · a ritmo personalizzato
DiagrammaCome un messaggio A2P raggiunge il telefono
  1. La tua applicazioneInviato tramite REST API o SMPP
  2. Piattaforma BroadNetValida, instrada e fattura ogni messaggio
  3. SMSC dell’operatoreConnessione diretta con l'operatore
  4. Dispositivo dell'abbonatoIl messaggio viene consegnato
La ricevuta di consegna (DLR) torna lungo lo stesso percorso verso il tuo webhook
Lezione 01

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à.

Lezione 02

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.

Lezione 03

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.

Lezione 04

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.

Lezione 05

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.

Punti chiave
  • 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.
Mettilo in pratica

Metti in pratica ciò che hai appena imparato.

Parla con un vero ingegnere del tuo caso d'uso, oppure apri la documentazione per sviluppatori e invia un messaggio attraverso i canali descritti in questo corso.

Perché imparare da BroadNet
  • Da2003
  • Paesi200+
  • Collegamenti dell'operatore1,000+