|
 |
Applicazioni Software |
SMS in PDU - Analisi e Decodifica 15/23
[364 di 403] |
|
Informazioni
legate al Mittente del messaggio SMS |
 |
Il terzo settore della
stringa PDU contiene informazioni sul
Mittente (OA,
Originator Address)
del messaggio SMS ed è strutturalmente simile al primo. |
 |
La prima coppia
di caratteri, la stringa "0E", va interpretata come
numero binario a 8 bit espresso in
esadecimale: il valore ad essa corrispondente (0EH
= 14 decimale) indica il
numero di cifre (semi-ottetti)
da cui sarà formato il numero
telefonico del Mittente (escluse
quindi le 2 destinate a documentare il formato); in questo
differisce dalla struttura che descrive le informazioni del
Centro Servizi, nella quale il valore
della prima coppia indicava la quantità di
ottetti (coppie di caratteri, compresa
quella del formato) destinata a documentare quel numero
telefonico. |
 |
La seconda coppia
di caratteri, la stringa "85",
rappresenta essa pure un
numero binario a 8 bit in
esadecimale, il cui valore (85H) indica il
formato del numero telefonico del
Mittente; la struttura di questo byte è la
seguente:
| bit7 |
bit6 |
bit5 |
bit4 |
bit3 |
bit2 |
bit1 |
bit0 |
|
sempre
1 |
Tipo di Numero |
Categoria del Numero |
 | le possibili combinazioni per il
Tipo di numero telefonico del
Mittente sono elencate di seguito: |
|
bit7 |
bit6 |
bit5 |
bit4 |
Tipo di Numero |
Formato |
|
1 |
0 |
0 |
0 |
sconosciuto |
8xH
|
|
1 |
0 |
0 |
1 |
internazionale |
9xH
|
|
1 |
0 |
1 |
0 |
nazionale |
AxH
|
|
1 |
0 |
1 |
1 |
amministratore di rete |
BxH
|
|
1 |
1 |
0 |
0 |
utente specifico |
CxH
|
|
1 |
1 |
0 |
1 |
codificato a 7 bit |
DxH
|
|
1 |
1 |
1 |
0 |
abbreviato |
ExH
|
|
1 |
1 |
1 |
1 |
riservato |
FxH
|
 | la specifica sulla Categoria del
Numero non è sempre
disponibile o decodificabile: numerose codifiche tra quelle possibili sono
riservate (o non documentate); tra quelle più comuni: |
| bit3 |
bit2 |
bit1 |
bit0 |
Categoria |
Formato |
|
0 |
0 |
0 |
0 |
sconosciuta |
x0H
|
|
0 |
0 |
0 |
1 |
ISDN/telefonica |
x1H
|
|
0 |
0 |
1 |
1 |
data |
x3H
|
|
0 |
1 |
0 |
0 |
telex |
x4H
|
|
1 |
0 |
0 |
0 |
nazionale |
x8H
|
|
1 |
0 |
0 |
1 |
privata |
x9H
|
|
 | In conclusione il
formato (85H) del numero telefonico del
nostro
Mittente indica che il suo
Tipo (8xH) è
sconosciuto e la sua Categoria (x5H)
è non documentata; in casi come questi il numero può
ammette la presenza del prefisso internazionale, come
effettivamente rileveremo tra poco. |
 | Il valore più comune per questa
stringa, "91" (91H),
indica che il
numero telefonico è espresso in
formato internazionale, cioè conterrà il prefisso della Nazione a cui
appartiene, per esempio 39 (da intendere
+39) per Italia;
se si fosse trovata la stringa "81"
(81H) il
numero telefonico (di Tipo
sconosciuto) sarebbe stato espresso in
formato nazionale, cioè senza il prefisso della Nazione. |
 | Può succedere che questo byte sia trovato con i
bit6, bit5
e bit4 al valore
101 (la
stringa "D0" (D0H)
ne è un esempio); in questo caso il
numero telefonico è espresso da numeri
binari a 8 bit (bytes=ottetti)
espressi in
esadecimale, però codificati utilizzando un alfabeto
a 7 bit, come il testo vero e proprio
del messaggio, contenuto nell'ultimo settore; in casi come questo ho ritenuto opportuno
sostituire l'atteso
numero telefonico con il messaggio "non
decodificato", per evitare di anticipare le tecniche di decodifica,
descritte con dettaglio tra qualche pagina... |
 |
La parte finale del settore si riferisce ai 14 semi-ottetti
annunciati dalla prima coppia, la stringa "0E";
ciascuna delle 7 coppie
di caratteri, la stringa "00 93 40 16 89 67 54", va interpretata
come coppia di
numeri decimali da utilizzare però scambiandone la
posizione rispetto a quella occupata nella stringa di riferimento,
è
rappresenta il numero telefonico del
Mittente che, interpretato in accordo
con le regole appena esposte, sarà: 00 39 04 61 98 76 45 cioè
+0039 0461 987645 . |
 | La stringa analizzata
non contiene (nella sua parte finale) il carattere "F",
essendo il numero telefonico
del Mittente espresso da un numero
pari di cifre (appunto 14 semi-ottetti),
ma potrebbe anche non essere così; per esempio la stringa "00
39 04 61 98 76 F0"
sarà interpretata come 00 39 04 61 98 76
0F
cioè +0039 0461 98760,
un numero a 13 cifre; in questo caso la stringa
affifata alla prima coppia sarebbe stata "0D".
|
 | Il codice generato per tener conto di questo settore
organizza la visualizzazione del numero telefonico
del Mittente assumendo la quantità di
cifre attesa dai primi 2 caratteri e saltando i secondi 2, ritenuti non
necessari; al termine il puntatore è pronto per localizzare il
primo carattere del prossimo settore; ecco il dettaglio nella seguente
casella di testo: |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|