Questa sezione è divisa in due parti:
- Contenuti: i contenuti dei messaggi di ELS.
- Formati: modalità di invio dei messaggi e modalità di decodifica (se necessario).
Contenuti
ELS V1
I messaggi ELS inviati tramite SMS sono conformi alle specifiche AML ETSI più recenti. Questo è noto come ELS V1 ed è l'approccio più comune scelto dai partner di ELS. La di seguito sono riportate le sezioni più pertinenti:
Nome chiave | Valore | Unità | Esempio |
A"ML |
Versione | - | 1 |
lt |
Latitudine | gradi | +37,42175 |
lg |
Longitudine | gradi | -122,08461 |
top |
Timestamp della posizione | aaaaMMggHHmmss nel fuso orario UTC | 20150613010948 |
rd |
Precisione della localizzazione | metri | 20,0 |
lc |
Affidabilità della posizione | Percentuale di confidenza | 68 |
pm |
Metodo di posizionamento (Wi-Fi, GPS, cellulare, null) | "W", "G", "C", "N" | M |
si |
IMSI (contiene solo le prime 6 cifre dell'IMSI originale, le cifre rimanenti sono sostituiti con 0) | - | 123456000000000 |
ei |
IMEI | - | 355458061005220 |
mcc |
Centro clienti di rete | - | 310 |
mnc |
MNC rete | - | 260 |
ml |
Lunghezza del messaggio (compresa lunghezza e intestazione del messaggio) | - | 123 |
Metodo di posizionamento
Posizione nulla
Esempi
Nessuna posizione:
A"ML=1;lt=+00.00000;lg=+000.00000;rd=N;top=20220131173734;lc=0;pm=N;si=234159000000000;ei=123456789012345;mcc=234;mnc=15;ml=127
Località calcolata:
A"ML=1;lt=+51.53321;lg=-0.12601;rd=14;top=20220131171748;lc=68;pm=W;si=234159000000000;ei=123456789012345;mcc=234;mnc=15;ml=126
Versione beta di ELS
Un formato sperimentale utilizzato da alcuni partner è ELS beta, il nostro che offrono ai partner l'opportunità di provare campi diversi.
Di seguito sono riportate le sezioni più pertinenti:
Nome chiave | Valore | Unità | Esempio |
A"ML |
Versione | - | 2 |
en |
Numero di emergenza | - | 911 |
et |
Timestamp della chiamata di emergenza | Tempo dell'epoca UNIX in secondi (numero intero) | 1593187189 |
lo |
Posizione (latitudine, longitudine, precisione): latitudine e longitudine devono essere essere troncato a 5 cifre decimali, precisione a 1 punto decimale - una precisione pari a 0 rappresenta sconosciuta | Gradi (in virgola mobile), Gradi (in virgola mobile), Metri (in virgola mobile) | 37.42175,-122.08461,20.1 |
lt |
Ora della posizione (relativa all'ora di emergenza). Questo campo potrebbe essere ignorato se non è presente alcun campo della posizione ("lo") o se non è presente un campo del timestamp ("et") oggi | Secondi (numero intero) | 5 |
lc |
Affidabilità della posizione | Percentuale di confidenza (numero intero) | 68 |
lz |
Posizione verticale (altitudine, precisione verticale): questo campo può essere ignorato se non è presente alcun campo relativo alla località ("lo"). Tutti i campi sono troncati a una virgola decimale: una precisione pari a 0 rappresenta una posizione sconosciuta | Metri (in virgola mobile), Metri (in virgola mobile) | -10,1, 10,1 |
ls |
Origine posizione (Wi-Fi, Cella, GPS, Fused, Sconosciuto): questo campo potrebbe essere ignorato se non è presente alcun campo della località ("lo") | "W", "G", "C", "F", "U" | M |
ei |
IMEI | - | 355458061005220 |
nc |
Centro clienti/MNC di rete | - | 310260 |
hc |
MNC/MNC di casa | - | 310260 |
lg |
Tag lingua | BCP 47 della IETF | en-US |
Livello di confidenza
Elevazione altitudine (asse Z)
ELS segnala la posizione verticale e la precisione nei messaggi beta di ELS. Altitudine lz
è riportato in metri al di sopra dell'ellissoide di riferimento WGS84 (WGS è il
World Geodetic System utilizzato dal GPS) e precisione in metri (altitudine, verticale
precisione). Questo campo può essere ignorato se non è presente alcun campo relativo alla località (lo
). Tutti
campi troncati a una virgola decimale e la precisione 0.0
rappresenta
unknown
. Per precisione verticale si intende la stessa precisione della posizione e
il percentile di confidenza è impostato dal partner. L'impostazione predefinita è 68%.
sicurezza. Ulteriori informazioni sono disponibili nella documentazione di Android per
getVerticalAccuracyMeters().
Esempi
Caso posizione non ancora calcolato:
A"ML=2;en=911;et=1643816841;ei=123456789012345;nc=23415;hc=23415
Località calcolata correttamente:
A"ML=2;en=911;et=1643816929;lo=51.53321,-0.12601,14.7;lt=6;lc=68;lz=77.6,1.0;ls=W;ei=123456789012345;nc=23415;hc=23415
Formati
I messaggi ELS tramite SMS possono essere inviati nei seguenti formati:
- SMS: SMS normale. Questo formato è supportato a partire da Android P.
- SMS di dati: i contenuti del messaggio sono esattamente gli stessi dell'SMS di testo, ma questa è codificata (maggiori dettagli di seguito). Questo formato è supportato da qualsiasi Dispositivo Android compatibile con ELS.
SMS
La lettura e l'analisi del testo SMS è relativamente semplice. Molti dispositivi mobili che offrono questo servizio e possono fornirti API push o pull per i contenuti dei messaggi inviati a un numero di telefono standard.
SMS di dati
Il formato SMS di testo normale è stato supportato a partire da Android P. Meno recenti i dispositivi invieranno messaggi ELS tramite SMS di dati che devono essere decodificati. Dati di ELS I messaggi SMS vengono codificati con il set di caratteri predefinito GSM 03.38 a 7 bit e quindi impostato come payload binario di un SMS di dati.
La definizione esatta di SMS di dati rispetto a un normale SMS verrà trattata più avanti. La definizione esatta della codifica GSM 03.38 a 7 bit si trova in 3GPP 23.038 (consulta in particolare la sezione 6.1.2.1.1).
Decodifica SMS di dati
Ai fini dell'utilizzo degli SMS da parte di Google per ELS, ELS riguarda solo SMS dal telefono al centro servizi mobile (SMSC) - tipo SMS-SUBMIT messaggi. Gli SMSC devono essere in grado di ricevere questi messaggi senza problemi, fanno parte del normale standard degli SMS (tuttavia, in pratica abbiamo osservato problemi con diversi MNO, che vanno dalle impostazioni e dai criteri dell'infrastruttura ha difficoltà a decodificare correttamente gli SMS di dati). Nel seguente modo, ELS considera Messaggio di invio tramite SMS dal ricevitore all'SMSC, che segue il normale sistema SMS standard (GSM 3.40). ELS definisce un SMS di dati come un sottoinsieme di SMS normali che:
- Ha il flag User-Data-Header-Indicator impostato nell'intestazione SMS (6° bit di il primo ottetto di un messaggio GSM 03.40 o 3GPP 23.040)
- Contiene un'intestazione dati-utente all'interno dei dati-utente dell'SMS
- User-Data-Header (Dati utente) contiene l'indirizzo di una porta dell'applicazione Identificatore di elementi di informazione (IEI, Information-Element-Identifier)
È necessario che ELS invii un SMS in questo modo anziché un normale SMS. per assicurarti che i messaggi SMS di dati di ELS non vengano visualizzati nel app di messaggistica. Più avanti viene presentato un esempio di SMS codificato per meglio spiegare questo aspetto.
Tieni presente che in questo caso non è specificato uno schema di codifica dei dati (DCS) particolare. Il DCS viene utilizzato per identificare la codifica all'interno del segmento Dati utente. Tuttavia, per futuro, lo schema di codifica dei dati sarà sempre impostato su dati a 8 bit su offrono la massima flessibilità. I dati effettivi vengono codificati con l'alfabeto predefinito a 7 bit GSM 03.38. Ogni elemento codificato a 7 bit occupano solo 7 bit, non 8 bit.
Dato che il segmento Dati utente ha un massimo di 140 byte e che la dimensione minima di un'intestazione Dati utente che include informazioni sulla porta è di 7 byte, questo lascia un massimo di 133 byte (152 elementi codificati a 7 bit) per codificare un vero messaggio di emergenza. Questi byte possono essere decodificati per rivelare l'SMS di dati ELS un messaggio che viene trasmesso.
Esempio
Dopo la decodifica di questo esempio di SMS di dati, rimane il file binario dell'utente, di questa stringa esadecimale:
415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A
Decodifica GSM 03.38
L'esempio seguente decodifica le prime coppie di ottetti, il resto viene lasciato come da esercitare per il lettore. Suggeriamo di fare riferimento al 3GPP 23.038 e di usare molti dei strumenti online molto utili (ad esempio, http://smstools3.kekekasvi.com/topic.php?id=288). Nella colonna Ottetti, le sezioni evidenziate in giallo rappresentano i bit che non vengono utilizzati per setetto attuale e sono rimasti per il prossimo. Tra i settetti le sezioni evidenziate in giallo rappresentano i bit della precedente ottetto.
Esadecimale | Ottetti | Setti | Carattere (esadecimale) |
41 |
01000001 |
1000001 |
A (41) |
51 |
01010001 |
0100010 |
" (22) |
93 |
10010011 |
1001101 |
M (4D) |
D9 |
11011001 |
1001100 |
L (4C) |
8B |
10001011 |
0111101 |
= (3D) |
ED |
11101101 |
0110001 |
1 (31) |
D8 |
11011000 |
0111011 |
; (3B) |
|
|
1101100 |
l (6C) |
F4 |
11110100 |
1110100 |
t (74) |
DE |
11011110 |
0111101 |
= (3D) |
Il risultato finale è che il messaggio precedente può essere decodificato nel la seguente stringa:
A"ML=1;lt=37.42175;lg=-122.08461;rd=20;top=20150613010948;lc=68;pm=G;si=987654231;ei=358239059042542;mcc=310;mnc=260;ml=123
Questi SMS devono poter essere decodificati con la maggior parte degli SMS disponibili pubblicamente software.