Specifica SMS

Questa sezione è divisa in due parti:

  1. Contenuti: i contenuti dei messaggi di ELS.
  2. 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:

  1. 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)
  2. Contiene un'intestazione dati-utente all'interno dei dati-utente dell'SMS
  3. 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.