Specyfikacja SMS-ów

Sekcja jest podzielona na 2 części:

  1. Treść – jaka jest treść wiadomości ELS.
  2. Formaty – jak te wiadomości są wysyłane i jak je dekodować (w razie potrzeby).

Treść

ELS V1

Wiadomości ELS wysyłane SMS-ami są zgodne z najnowszą specyfikacją AML ETSI. Ten to ELS V1 – jest to najczęstsza metoda wybierana przez partnerów ELS. tutaj znajdziesz najważniejsze sekcje:

Nazwa klucza Wartość Jednostki Przykład
A"ML Wersja - 1
lt Szerokość geograficzna stopnie +37,42175
lg Długość geograficzna stopnie -48.23118891
top Sygnatura czasowa lokalizacji rrrrMMddGGmmss w czasie UTC 20150613010948
rd Dokładność lokalizacji m 20,0
lc Zaufanie lokalizacji Procentowy poziom ufności 68
pm Metoda pozycjonowania (Wi-Fi, GPS, komórkowe, null) „W”, „G”, „C”, „N” W
si IMSI (zawiera tylko 6 pierwszych cyfr oryginalnego numeru IMSI, pozostałe cyfry) zostaną zastąpione przez 0) - 123456000000000
ei IMEI - 355458061005220
mcc Sieć MCK - 310
mnc MNC (Sieć MNC) - 260
ml Długość wiadomości (w tym jej długość i nagłówek) - 123

Metoda pozycjonowania

Lokalizacja o wartości null

Przykłady

Brak lokalizacji:

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

Obliczona lokalizacja:

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 w wersji beta

Eksperymentalny format używany przez kilku partnerów to ELS Beta, które pozwalają partnerom wypróbować różne pola.

Oto najważniejsze sekcje:

Nazwa klucza Wartość Jednostki Przykład
A"ML Wersja - 2
en Numer alarmowy - 911
et Sygnatura czasowa połączenia alarmowego Czas epoki systemu UNIX w sekundach (liczba całkowita) 1593187189
lo Lokalizacja (szerokość i długość geograficzna, dokładność) – muszą mieć szerokość i długość geograficzną zostać obcięta do 5 miejsc po przecinku, dokładność do 1 miejsca po przecinku – dokładność 0 oznacza nieznaną Stopnie (liczba zmiennoprzecinkowa), stopnie (liczba zmiennoprzecinkowa), metry (liczba zmiennoprzecinkowa). 37,42175,-122,08461,20,1
lt Czas lokalizacji (w stosunku do czasu alarmowego) – to pole może zostać zignorowane. jeśli nie ma pola lokalizacji („lo”) lub nie ma pola sygnatury czasowej („et”) obecnie Sekundy (liczba całkowita) 5
lc Zaufanie lokalizacji Procentowy poziom ufności (liczba całkowita) 68
lz Lokalizacja w pionie (wysokość, dokładność w pionie) – to pole może być jest ignorowany, jeśli nie ma pola lokalizacji („lo”) — wszystkie pola są obcięte do 1 miejsca po przecinku; dokładność 0 oznacza niewiadomą Metry (liczba zmiennoprzecinkowa), metry (liczba zmiennoprzecinkowa) –10,1,10,1
ls Źródło lokalizacji (Wi-Fi, komórkowa, GPS, uśredniona, nieznana) – to pole może być jest ignorowany, jeśli nie ma pola lokalizacji („lo”) „W”, „G”, „C”, „F”, „U” W
ei IMEI - 355458061005220
nc Sieć MCK/MNC - 310260
hc Dom, MNC/MNC - 310260
lg Tagi języka IETF BCP 47 en-US

Poziom ufności

Wysokość (oś Z)

Narzędzie ELS podaje informacje o lokalizacji i dokładność danych w pionie w wiadomościach w wersji beta narzędzia ELS. Wysokość: lz jest podawany w metrach nad elipsoidem referencyjnym WGS84 (WGS jest punktem odniesienia Światowy System Geodetyczny używany przez GPS) i dokładność w metrach (wysokość, pionowo dokładność). Jeśli nie ma pola lokalizacji (lo), to pole może zostać zignorowane. Wszystkie obcięte do 1 miejsca po przecinku, a dokładność 0.0 reprezentuje unknown Dokładność w pionie jest zdefiniowana tak samo jak dokładność lokalizacji percentyl ufności jest ustawiany przez partnera. Wartość domyślna to 68%. pewność siebie. Więcej informacji znajdziesz w dokumentacji Androida na getVerticalAccuracyMeters().

Przykłady

Lokalizacja nie została jeszcze obliczona:

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

Lokalizacja została obliczona:

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

Formaty

Wiadomości ELS przez SMS mogą być wysyłane w tych formatach:

  • SMS-y: zwykły SMS. Ten format jest obsługiwany od Android P.
  • Dane SMS: treść wiadomości jest taka sama jak SMS, ale jest zakodowany (więcej informacji znajdziesz poniżej). Ten format jest obsługiwany przez Urządzenie z Androidem zgodne z usługą ELS.

SMS

Czytanie i analiza SMS-ów tekstowych jest stosunkowo proste. Wiele urządzeń mobilnych oferują tę usługę i mogą zapewnić interfejsy API typu push lub pull umożliwiające treść SMS-ów wysyłanych na standardowy numer telefonu.

SMS z transmisją danych

Format SMS-ów zwykłych jest obsługiwany od Androida P. Starsze urządzenia będą wysyłać do zdekodowania wiadomości ELS za pomocą SMS-ów z danymi. Dane ELS SMS-y są kodowane za pomocą domyślnego 7-bitowego zestawu znaków GSM 03.38, a następnie: ustawiony jako binarny ładunek SMS-a z danymi.

Dokładna definicja SMS-ów w ramach transmisji danych, w odróżnieniu od zwykłych SMS-ów, jest omówiona w dalszej części tego artykułu. Dokładną definicję kodowania 7-bitowego GSM 03.38 można znaleźć w 3GPP 23.038 (zob. artykuł 6.1.2.1.1).

Dekoduj SMS-y z danymi

Do celów związanych z korzystaniem przez Google z SMS-ów na potrzeby ELS usługa ELS dotyczy wyłącznie SMS z telefonu do centrum serwisowego (SMSC) – typ „SMS-PRZEŚLIJ” wiadomości. SMSC powinny bez problemu odbierać takie wiadomości, są częścią standardowego standardu SMS-ów (jednak w praktyce zaobserwowaliśmy, z wieloma organizacjami MNO, od ustawień i zasad infrastruktury po problemów z poprawnym dekodowaniem wiadomości SMS). W poniższym przykładzie ELS uwzględnia Wiadomość SMS-PRZEŚLIJ z telefonu do SMSC, która odbywa się zgodnie z zwykłym SMS-em. (GSM 3.40). ELS definiuje SMS-a z danymi jako podzbiór zwykłych SMS-ów, które:

  1. ma flagę User-Data-Header-Indicator ustawioną w nagłówku SMS (6 bit pierwszego oktetu komunikatu GSM 03.40 lub 3GPP 23.040)
  2. Zawiera nagłówek danych użytkownika w danych użytkownika SMS-a
  3. Pole User-Data-Header zawiera adres portu aplikacji Identyfikator elementu informacyjnego (IEI)

Usługa ELS musi wysłać SMS-a w taki sposób zamiast zwykłego SMS-a aby SMS-y z narzędzia ELS Data nie pojawiały się komunikator Przykład zakodowany SMS jest przedstawiony później, aby lepiej to wyjaśnić.

Pamiętaj, że nie określamy tu konkretnego schematu kodowania danych (DCS). DCS służy do identyfikacji kodowania w segmencie danych użytkownika. Natomiast w przypadku w możliwej przyszłości, schemat Data-Coding-Scheme będzie zawsze ustawiony na 8-bitowe dane, pozwalają na maksymalną elastyczność, a same dane będą kodowane za pomocą domyślny alfabet GSM 03.38, 7-bitowy. Każdy 7-bitowy element zajmują tylko 7 bitów, a nie 8 bitów.

Biorąc pod uwagę, że segment danych użytkownika ma maksymalnie 140 bajtów, a sekcja minimalny rozmiar nagłówka User-Data-Data, który zawiera informacje o porcie, to 7 bajtów; daje to maksymalnie 133 bajty (152 7-bitowe elementy zakodowane) do zakodowania komunikat alarmowy. Te bajty można zdekodować w celu wyświetlenia SMS-a z danymi ELS w trakcie przesyłania wiadomości.

Przykład

Dlatego po zdekodowaniu tego przykładowego SMS-a pozostawiamy plik binarny danych użytkownika. tego ciągu szesnastkowego:

415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A

Dekodowanie GSM 03.38

W poniższym przykładzie dekoduje się kilka pierwszych oktetów, a reszta zostaje zachowana jako dla czytelnika. Zalecamy powołanie się na kodeks 3GPP 23.038 i wykorzystanie wielu przydatnych narzędzi online (np. http://smstools3.kekekasvi.com/topic.php?id=288). W kolumnie Oktety sekcje wyróżnione na żółto oznaczają bity, które nie są używane przez obecny septet i pozostałe na następny septet. W serwisach , sekcje zaznaczone na żółto będą odpowiadać bitom oktet.

Kod szesnastkowy Oktety Sepety Znak (szesnastkowy)
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)

Efektem końcowym jest to, że poprzednia wiadomość może być zdekodowana do następujący ciąg:

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

Te SMS-y powinny być odszyfrowywane za pomocą większości dostępnych publicznie SMS-ów i oprogramowaniu.