Esta seção é dividida em duas partes:
- Conteúdo: o conteúdo das mensagens da Pesquisa de registro de e-mail.
- Formatos - como essas mensagens são enviadas e como decodificá-las (se necessário).
Conteúdo
ELS V1
As mensagens da Pesquisa de registro de e-mail enviadas por SMS seguem a especificação AML do ETSI mais recente. Isso é conhecida como ELS V1 e é a abordagem mais comum escolhida pelos parceiros de ELS. A estas são as seções mais relevantes:
Nome da chave | Valor | Unidades | Exemplo |
A"ML |
Versão | - | 1 |
lt |
Latitude | graus | +37,42175 |
lg |
Longitude | graus | -122.08461 |
top |
Carimbo de data/hora do local | aaaaMMddHHmmss na hora UTC | 20150613010948 |
rd |
Precisão de local | quadrados | 20.0 |
lc |
Confiança do local | Percentual de confiança | 68 |
pm |
Método de posicionamento (Wi-Fi, GPS, celular, Nulo) | "W", "G", "C" e "N" | W |
si |
IMSI (contém apenas os seis primeiros dígitos do IMSI original, os dígitos restantes são substituídos por 0) | - | 123456000000000 |
ei |
IMEI | - | 355458061005220 |
mcc |
MCC de rede | - | 310 |
mnc |
MNC de rede | - | 260 |
ml |
Tamanho da mensagem (incluindo o tamanho e o cabeçalho) | - | 123 |
Método de posicionamento
Local nulo
Exemplos
Nenhum local:
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
Localização calculada:
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
Pesquisa de registro de e-mail Beta
Um formato experimental usado por alguns parceiros é a Pesquisa de registro de e-mail Beta, nossa tecnologia conteúdo que dá aos parceiros a oportunidade de experimentar campos diferentes.
Estas são as seções mais relevantes:
Nome da chave | Valor | Unidades | Exemplo |
A"ML |
Versão | - | 2 |
en |
Número de emergência | - | 911 |
et |
Carimbo de data/hora da chamada de emergência | Tempo de época do UNIX em segundos (número inteiro) | 1593187189 |
lo |
Localização (latitude, longitude, precisão): a latitude e a longitude devem ser truncado para 5 pontos decimais, a precisão para 1 casa decimal; uma precisão de 0 representa desconhecido | Graus (flutuante), graus (flutuação), metros (flutuação) | 37.42175,-122.08461,20.1 |
lt |
Horário do local (relativo ao horário de emergência): este campo pode ser ignorado se nenhum campo de local ("lo") estiver presente ou se nenhum campo de carimbo de data/hora ("et") for presente | Segundos (número inteiro) | 5 |
lc |
Confiança do local | Porcentagem de confiança (número inteiro) | 68 |
lz |
Localização vertical (altitude, precisão vertical) - este campo pode ser Ignorado se nenhum campo de localização ("lo") estiver presente - todos os campos truncados para 1 ponto decimal - uma precisão de 0 representa desconhecido | Metros (flutuantes), Metros (flutuantes) | -10,1,10,1 |
ls |
Origem da localização (Wi-Fi, celular, GPS, combinada, desconhecida) - este campo pode ser ignorado se nenhum campo de localização ("lo") estiver presente | "W", "G", "C", "F" e "U" | W |
ei |
IMEI | - | 355458061005220 |
nc |
MCC/MNC de rede | - | 310260 |
hc |
MNC/MNC doméstico | - | 310260 |
lg |
Tags de idioma | IETF BCP 47 | en-US |
Nível de confiança
Elevação de altitude (eixo Z)
A Pesquisa de registro de e-mail informa a localização vertical e a precisão nas mensagens da versão Beta. Altitude: lz
é apresentado em metros acima do elipsoide de referência WGS84 (WGS é a referência
Sistema Geodésico Mundial utilizado pelo GPS) e precisão em metros (altitude, vertical
precisão). Este campo pode ser ignorado se nenhum campo de local (lo
) estiver presente. Todos
campos truncados para 1 ponto decimal e uma precisão de 0.0
representa
unknown
. A precisão vertical é definida o mesmo que a precisão de local, e a
e o percentual de confiança
é definido pelo parceiro. O padrão é definido como 68%.
confiança. Mais informações estão disponíveis na documentação do Android para
getVerticalAccuracyMeters().
Exemplos
Caso de local ainda não calculado:
A"ML=2;en=911;et=1643816841;ei=123456789012345;nc=23415;hc=23415
Caso calculado com sucesso:
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
Formatos
As mensagens da Pesquisa de registro de e-mail por SMS podem ser enviadas usando os seguintes formatos:
- SMS de texto: SMS simples normal. Esse formato tem suporte a partir de O Android P.
- Data SMS: o conteúdo da mensagem é exatamente igual ao SMS, mas ela é codificada (mais detalhes abaixo). Esse formato é compatível com qualquer Dispositivo Android compatível com ELS.
SMS
A leitura e análise de SMS de texto é relativamente simples. Muitos dispositivos móveis operadores oferecem esse serviço e podem fornecer APIs push ou pull para obter o conteúdo das mensagens enviadas para um número de telefone padrão.
SMS de dados
O formato SMS de texto normal é compatível a partir do Android P. Antigos dispositivos vão enviar mensagens ELS usando SMS de dados que precisam ser decodificadas. Dados da Pesquisa de registro de e-mail As mensagens SMS são codificadas com o conjunto de caracteres padrão de 7 bits GSM 03.38 e definido como a carga binária de um SMS de dados.
A definição exata de um SMS de dados em comparação com um SMS normal será abordada posteriormente. A definição exata da codificação GSM 03.38 de 7 bits pode ser encontrada em 3GPP 23.038 (consulte especificamente a seção 6.1.2.1.1).
Decodificar SMS para dados
Para que o Google use o SMS para a Pesquisa de registro de e-mail, a Pesquisa de registro de e-mail só se preocupa com SMS do aparelho para a central de serviço móvel (SMSC) - tipo SMS-SUBMIT e envio de mensagens. SMSCs devem ser capazes de receber essas mensagens sem problemas, pois mas fazem parte do padrão normal de SMS. No entanto, observamos na prática problemas com várias MNOs, desde configurações e políticas de infraestrutura até dificuldade em decodificar adequadamente o SMS). A seguir, a ELS considera SMS-ENVIAR mensagem do celular para o SMSC, que segue o SMS normal padrão (GSM 3.40). A Pesquisa de registro de e-mail define um SMS de dados como um subconjunto do SMS normal que:
- Tem o sinalizador User-Data-Header-Indicator definido no cabeçalho SMS (6o bit do o primeiro octeto de uma mensagem GSM 03.40 ou 3GPP 23.040)
- Contém um cabeçalho de dados do usuário dentro dos dados do usuário do SMS
- O cabeçalho de dados do usuário contém um endereço de porta do aplicativo Identificador do elemento de informação (IEI)
É necessário que a Pesquisa de registro de e-mail envie um SMS dessa forma em vez de um SMS normal para garantir que as mensagens SMS do ELS Data não apareçam nos app de mensagens. Um exemplo de SMS codificado é apresentado posteriormente para explicar melhor.
Observe que não especificamos um esquema de codificação de dados (DCS, na sigla em inglês) específico aqui. O DCS é usada para identificar a codificação no segmento de dados do usuário. No entanto, para o no futuro, o esquema de codificação de dados será sempre definido para dados de 8 bits para o máximo de flexibilidade, e os próprios dados serão codificados do alfabeto padrão de 7 bits GSM 03,38. Cada elemento codificado de 7 bits ocupam apenas 7 bits, e não 8 bits.
Considerando que o segmento de dados do usuário tem um máximo de 140 bytes e que o o tamanho mínimo do cabeçalho de dados do usuário que inclui informações da porta é 7 bytes; Isso deixa um máximo de 133 bytes (152 elementos codificados de 7 bits) para codificar o mensagem de emergência real. Esses bytes podem ser decodificados para revelar o SMS do ELS Data SMS que está sendo transmitida.
Exemplo
Assim, após decodificarmos este exemplo de SMS, temos os dados binários do usuário desta string hexadecimal:
415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A
Decodificar GSM 03,38
O exemplo a seguir decodifica os primeiros octetos, o restante é deixado como uma exercício ao leitor. Sugerimos referenciar 3GPP 23.038 e usar muitos dos ferramentas online úteis (por exemplo, http://smstools3.kekekasvi.com/topic.php?id=288). Na coluna Octetos, as seções destacadas em amarelo representam os bits que não são usados para o de setembro atual e são deixadas para a próxima. Dentro dos setetos as seções destacadas em amarelo representam os bits da atividade anterior octeto simples.
Hex | Octetos | Sete | Personagem (hexadecimal) |
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) |
O resultado final aqui é que a mensagem anterior pode ser decodificada no seguinte 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
Esses SMSs devem poder ser decodificados com a maioria dos SMS disponíveis publicamente de software.