Sekcja jest podzielona na 2 części:
- Treść – jaka jest treść wiadomości ELS.
- 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:
- ma flagę User-Data-Header-Indicator ustawioną w nagłówku SMS (6 bit pierwszego oktetu komunikatu GSM 03.40 lub 3GPP 23.040)
- Zawiera nagłówek danych użytkownika w danych użytkownika SMS-a
- 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.