Il formato a sette bit degli SMS

I messaggi SMS sono brevi messaggi di testo (160 caratteri al massimo); la loro codifica è documentata dagli standard GSM 03.40 e GSM 03.38 pubblicati dall’Etsi (European Telecommunications Standards Institute); la caratteristica più dolorosa di questa codifica è il fatto che ciascun carattere del messaggio è rappresentato  da sette bit. Esistono altre due modalità di trasmissione, a 8 bit (non visualizzabile come testo, normalmente utilizzata per trasmissione di dati) e a 16 bit unicode (un set di caratteri esteso, che però limita la lunghezza massima del messaggio a 70 caratteri). Ma la codifica più usata resta quella a 7 bit.

La conversione da caratteri ascii di sette bit a byte (da inserire nella stringa di trasmissione per esempio) è lievemente macchinosa.

Per esempio, per il testo “Mario”:

scrivo i valori ascii dei singoli caratteri: 4D 61 72 69 6F
in ascii binario: 01001101 01100001 01110010 01101001 01101111
in ascii in settetti (elimino lo zero msb): 1001101 1100001 1110010 1101001 1101111

Per completare i byte aggiungo in testa a ciascuno il numero necessario di bit estratti dagli lsb del byte successivo:

prima: 1001101 – 1100001 – 1110010 – 1101001 – 1101111
dopo: 11001101 – 10110000 – 00111100 – 11111101 – 00000110 (aggiungo zeri di padding)
in hex: CD B0 3C FD 06

I byte sopra elencati saranno dunque i valori da inserire per trasmettere il testo “Mario”.

Gli sms vengono normalmente inviati all’interno di una PDU (protocol description unit). Una stringa PDU contiene il testo del messaggio in codifica a 7 bit più una serie di informazioni accessorie come il mittente, il destinatario, in numero del centro messaggi, il timestamp e così via, sempre seguendo le linee guida delle specifiche etsi. Per una descrizione con esempi di tale standard vi rimando a questa pagina.

Questa voce è stata pubblicata in Uncategorized e contrassegnata con , . Contrassegna il permalink.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...