SMS-Spezifikation

Dieser Abschnitt ist in zwei Teile gegliedert:

  1. Inhalt: was der Inhalt der ELS-Nachrichten ist.
  2. Formate – wie diese Nachrichten gesendet und wie sie entschlüsselt werden (falls erforderlich)

Inhalt

Notfall-Standortdienst V1

Über SMS gesendete ELS-Nachrichten entsprechen der aktuellen ETSI AML-Spezifikation. Dieses wird als „ELS V1“ bezeichnet. Dies ist der gängigste Ansatz, den unsere Partner verwenden. Die sind die folgenden Abschnitte:

Schlüsselname Wert Einheiten Beispiel
A"ML Version - 1
lt Breitengrad Grad +37 42175
lg Längengrad Grad -122,08461
top Zeitstempel des Standorts jjjjMMttHHmmss in UTC-Zeit 20150613010948
rd Standortgenauigkeit Meter 20.0
lc Standortzuverlässigkeit Prozentuale Konfidenz 68
pm Positionierungsmethode (Wi-Fi, GPS, Cell, Null) 'W', 'G', 'C', 'N' W
si IMSI (enthält nur die ersten 6 Ziffern der ursprünglichen IMSI, die restlichen Ziffern durch 0 ersetzt werden) - 123456000000000
ei IMEI - 355458061005220
mcc Netzwerk-Kundencenter - 310
mnc Netzwerk-MNC - 260
ml Länge der Nachricht (einschließlich Nachrichtenlänge und Header) - 123

Positionierungsmethode

Null-Standort

Beispiele

Kein Standort:

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

Berechneter Standort:

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

ELS-Beta

Ein experimentelles Format, das von einigen Partnern verwendet wird, ist ELS Beta, mit denen Partner verschiedene Felder ausprobieren können.

Die folgenden Abschnitte sind die relevantesten Abschnitte:

Schlüsselname Wert Einheiten Beispiel
A"ML Version - 2
en Notrufnummer - 911
et Zeitstempel des Notrufs UNIX-Epochenzeit in Sekunden (Ganzzahl) 1593187189
lo Standort (Breiten- und Längengrad, Genauigkeit) – Breiten- und Längengrad müssen auf 5 Dezimalstellen gekürzt werden, Genauigkeit auf 1 Dezimalstelle – eine Genauigkeit von 0 ist unbekannt Grad (Gleitkommazahl), Grad (Gleitkommazahl), Meter (Gleitkommazahl) 37.42175,-122.08461,20.1
lt Ortszeit (relativ zur Notfallzeit) – dieses Feld wird möglicherweise ignoriert wenn kein Feld „location“ ('lo') oder kein Feld für den Zeitstempel ('et') vorhanden ist heute Sekunden (Ganzzahl) 5
lc Standortzuverlässigkeit Prozentuale Konfidenz (Ganzzahl) 68
lz Vertikaler Standort (Höhe, vertikale Genauigkeit): Dieses Feld kann ignoriert, wenn kein location ('lo')-Feld vorhanden ist - alle Felder sind auf 1 Dezimalpunkt gekürzt - eine Genauigkeit von 0 steht für unbekannt. Meter (Gleitkommazahl), Meter (Gleitkommazahl) -10,1 und 10,1
ls Standortquelle (WLAN, Mobilfunk, GPS, Kombiniert, Unbekannt) – dieses Feld kann sein: wird ignoriert, wenn kein location ('lo') vorhanden ist. „W“, „G“, „C“, „F“, „U“ W
ei IMEI - 355458061005220
nc Kundencenter/MNC des Netzwerks - 310260
hc Heim-MNC/MNC - 310260
lg Sprach-Tags IETF BCP 47 en-US

Zuverlässigkeit

Höhenhöhe (Z-Achse)

Der Notfall-Standortdienst meldet den vertikalen Standort und die Genauigkeit in Nachrichten der Betaversion. Höhe: lz wird in Metern über der WGS84-Referenzellipsoid angegeben (WGS ist die Referenz World Geodetic System, das von GPS verwendet wird, und Genauigkeit in Metern (Höhe, vertikal). Genauigkeit). Dieses Feld wird möglicherweise ignoriert, wenn kein Standortfeld (lo) vorhanden ist. Alle Felder, die auf 1 Dezimalpunkt gekürzt sind, und eine Genauigkeit von 0.0 bedeutet unknown. Die vertikale Genauigkeit ist dasselbe wie die Standortgenauigkeit und das Das Konfidenzperzentil wird vom Partner festgelegt. Die Standardeinstellung ist 68 %. Selbstvertrauen. Weitere Informationen finden Sie in der Android-Dokumentation für getVerticalAccuracyMeters() auf.

Beispiele

Standort wurde noch nicht berechnet:

A"ML=2;en=911;et=1643816841;ei=123456789012345;nc=23415;hc=23415

Standort wurde erfolgreich berechnet:

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

Formate

ELS-Nachrichten über SMS können in den folgenden Formaten gesendet werden:

  • SMS: normale SMS. Dieses Format wird ab dem Android P.
  • Daten-SMS: Der Inhalt der Nachricht ist derselbe wie der Text-SMS, jedoch codiert wird. Weitere Informationen hierzu finden Sie weiter unten. Dieses Format wird von allen Mit Notfall-Standortdienst kompatibles Android-Gerät.

SMS senden

Das Lesen und Parsen von SMS-Texten ist relativ einfach. Viele Mobilgeräte und können Push- oder Pull-APIs bereitstellen, Inhalt von Nachrichten, die an eine normale Telefonnummer gesendet werden

Daten-SMS

Das Format „Normale SMS“ wird ab Android P unterstützt. Älter -Geräte senden über Data SMS Nachrichten mit der E-Mail-Logsuche, die decodiert werden müssen. ELS-Daten SMS-Nachrichten werden mit dem 7-Bit-Standardzeichensatz GSM 03.38 codiert und als binäre Nutzlast einer Daten-SMS festgelegt.

Die genaue Definition von Daten-SMS im Gegensatz zu einer normalen SMS wird später behandelt. Die genaue Definition der 7-Bit-Codierung von GSM 03.38 finden Sie unter 3GPP. 23.038 (siehe Abschnitt 6.1.2.1.1).

Daten decodieren – SMS

Im Zusammenhang mit der Nutzung von SMS für den Notfall-Standortdienst durch Google betrifft der Notfall-Standortdienst nur SMS vom Mobiltelefon an das Mobile Service Center (SMSC) – Typ SMS-SUBMIT Nachrichten. SMSCs sollten diese Nachrichten problemlos empfangen können, da sie gehören zum normalen SMS-Standard. In der Praxis haben wir jedoch Probleme mit verschiedenen MNOs, von Infrastruktureinstellungen und Richtlinien bis hin zu Schwierigkeiten bei der ordnungsgemäßen Decodierung von Daten-SMS). Im Folgenden betrachtet der ELS-Algorithmus „SMS SENDEN“-Nachricht vom Mobilgerät an das SMSC, das der normalen SMS folgt (GSM 3.40). Der Notfall-Standortdienst definiert eine Daten-SMS als Teilmenge normaler SMS, die:

  1. Hat das Flag User-Data-Header-Indicator im SMS-Header (6. Bit von das erste Oktett einer GSM 03.40- oder 3GPP 23.040-Nachricht)
  2. Enthält einen User-Data-Header in den User-Data-Daten der SMS
  3. Der User-Data-Header enthält eine Anwendungsportadresse Information-Element-Identifier (Information-Element-Identifier, IEI)

Der Notfall-Standortdienst muss eine SMS auf diese Weise und nicht auf diese Weise senden. um sicherzustellen, dass ELS-Daten-SMS nicht auf dem Messaging-App. Zur besseren Erklärung wird später ein Beispiel für eine codierte SMS vorgestellt.

Beachten Sie, dass wir hier kein bestimmtes Datencodierungsschema (Data-Coding-Scheme, DCS) angeben. Das DCS wird die Codierung im Segment mit Nutzerdaten ermittelt. Für die und absehbar ist, wird das Datencodierungsschema immer auf 8-Bit-Daten eingestellt, ermöglichen maximale Flexibilität und die tatsächlichen Daten selbst werden mit GSM 03.38 7-Bit-Standardalphabet. Jedes 7-Bit-codierte Element wird somit nur 7 Bit, nicht 8 Bit.

Da das Segment mit Nutzerdaten maximal 140 Byte umfasst und das Segment Die Mindestgröße eines Headers für Nutzerdaten mit Portinformationen beträgt 7 Byte. bleiben maximal 133 Byte (152 7-Bit-codierte Elemente) für die Codierung des eine echte Notfallnachricht. Diese Byte können decodiert werden, um die ELS-Daten-SMS zu erhalten. die übertragene Nachricht.

Beispiel

Nach der Decodierung dieses Beispiels für Daten-SMS bleiben die binären Nutzerdaten dieser hexadezimalen Zeichenfolge:

415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A

GSM 03.38 decodieren

Im folgenden Beispiel werden die ersten paar Oktette decodiert, der Rest bleibt als Übung an die Lesenden. Wir empfehlen, auf 3GPP 23.038 zu verweisen und viele der hilfreiche Online-Tools (z. B. http://smstools3.kekekasvi.com/topic.php?id=288). In der Spalte „Oktette“ Die gelb markierten Abschnitte stellen die Bits dar, die nicht für den und für das nächste Septet übrig bleiben. Innerhalb der Septette Spalte stehen die gelb hervorgehobenen Abschnitte für die Bits aus der vorherigen Oktett hinzu.

Hex Oktette Septette Zeichen (Hex)
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)

Das Endergebnis ist, dass die vorherige Nachricht möglicherweise in den folgenden String:

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

Diese SMS sollten mit den meisten öffentlich verfügbaren SMS decodiert werden können. Software.