Esta sección se divide en dos partes:
- Contenido: cuál es el contenido de los mensajes de ELS
- Formatos: cómo se envían esos mensajes y cómo decodificarlos (si es necesario)
Contenido
ELS V1
Los mensajes de ELS enviados por SMS siguen la especificación de ETI AML más reciente. Esta se conoce como ELS V1 y es el enfoque más común que eligen los socios de ELS. El Estas son las secciones más relevantes:
Nombre de la clave | Valor | Unidades | Ejemplo |
A"ML |
Versión | - | 1 |
lt |
Latitud | grados | +37.42175 |
lg |
Longitud | grados | −122.08461 |
top |
Marca de tiempo de la ubicación | aaaaMMddHMmmss en hora UTC | 20150613010948 |
rd |
Precisión de la ubicación | metros | 20.0 |
lc |
Confianza de la ubicación | Porcentaje de confianza | 68 |
pm |
Método de posicionamiento (Wi-Fi, GPS, celular, nulo) | "W", "G", "C", "N" | W |
si |
IMSI (solo contiene los primeros 6 dígitos del IMSI original y los dígitos restantes) se reemplazan por 0) | - | 123456000000000 |
ei |
IMEI | - | 355458061005220 |
mcc |
MCC de la red | - | 310 |
mnc |
MNC de red | - | 260 |
ml |
Longitud del mensaje (incluidos el encabezado y la longitud del mensaje) | - | 123 |
Método de posicionamiento
Ubicación nula
Ejemplos
Sin ubicación:
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
Ubicación 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
Versión beta de ELS
Algunos socios usan el formato experimental ELS Beta, contenido que les da a los socios la oportunidad de probar diferentes campos.
Estas son las secciones más relevantes:
Nombre de la clave | Valor | Unidades | Ejemplo |
A"ML |
Versión | - | 2 |
en |
Número de emergencia | - | 911 |
et |
Marca de tiempo de la llamada de emergencia | Tiempo de época UNIX en segundos (número entero) | 1593187189 |
lo |
Ubicación (latitud, longitud, precisión): valores de latitud y longitud Se truncará a 5 puntos decimales, con una exactitud de 1 decimal; una precisión de 0 representa un valor desconocido. | grados (flotante), grados (flotante), metros (flotante) | 37.42175,-122.08461,20.1 |
lt |
Hora de la ubicación (relativa al tiempo de emergencia): este campo se puede ignorar si no hay un campo de ubicación (“lo”) o no hay un campo de marca de tiempo (“et”) actual | Segundos (número entero) | 5 |
lc |
Confianza de la ubicación | Porcentaje de confianza (número entero) | 68 |
lz |
Ubicación vertical (altitud, precisión vertical): este campo puede se ignora si no hay un campo de ubicación ("lo") presente; todos los campos se truncan a 1 punto decimal; una precisión de 0 representa un valor desconocido. | Metros (flotante), Metros (flotante) | -10.1,10.1 |
ls |
Fuente de ubicación (Wi-Fi, celular, GPS, combinada, desconocida): este campo puede ser se ignora si no hay un campo de ubicación (“lo”) | "W", "G", "C", "F", "U" | W |
ei |
IMEI | - | 355458061005220 |
nc |
MCC/MNC de red | - | 310260 |
hc |
MNC/MNC particular | - | 310260 |
lg |
Etiquetas de idioma | IETF BCP 47 | en-US |
Nivel de confianza
Elevación de altitud (eje Z)
El ELS informa la ubicación vertical y la precisión de los mensajes beta de ELS. Altitud: lz
se informa en metros por encima del elipsoide de referencia WGS84 (WGS es la referencia
Sistema geodésico mundial utilizado por el GPS) y precisión en metros (altitud, vertical).
exactitud). Se puede ignorar este campo si no hay ningún campo de ubicación (lo
). Todo
campos truncados a 1 punto decimal y una precisión de 0.0
representa
unknown
La precisión vertical se define igual que la precisión de la ubicación.
y el percentil de confianza
establecido por el socio. El valor predeterminado es 68%.
confianza. Hay más información disponible en la documentación de Android para
getVerticalAccuracyMeters().
Ejemplos
Caso de ubicación aún sin procesar:
A"ML=2;en=911;et=1643816841;ei=123456789012345;nc=23415;hc=23415
Ubicación procesada correctamente:
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
Los mensajes de ELS por SMS se pueden enviar con los siguientes formatos:
- SMS de texto: SMS sin formato normal Este formato es compatible a partir de Android P
- Data SMS: El contenido del mensaje es exactamente el mismo que el de los SMS de texto, pero está codificado (más detalles a continuación). Este formato es compatible con cualquier Dispositivo con Android y compatible con ELS
Enviar SMS a SMS
Leer y analizar texto SMS es relativamente sencillo. Muchos dispositivos móviles los operadores ofrecen este servicio y pueden brindarte APIs de envío o extracción para obtener el contenido de mensajes enviados a un número de teléfono estándar.
SMS de datos
A partir de Android P, se admite el formato de texto normal de SMS. Más antigua los dispositivos enviarán mensajes de ELS con SMS de datos que deben decodificarse. Datos de ELS Los mensajes SMS se codifican con el grupo de caracteres predeterminado GSM 03.38 de 7 bits y, luego, configurada como la carga útil binaria de un SMS de datos.
Más adelante, analizaremos la definición exacta de un SMS de datos en comparación con un SMS normal. La definición exacta de la codificación GSM 03.38 de 7 bits se encuentra en 3GPP. 23.038 (consulta la sección 6.1.2.1.1 específicamente).
Decodificar SMS de datos
En cuanto al uso de SMS por parte de Google para el ELS, este último solo se relaciona con SMS desde el teléfono celular al centro de servicios móviles (SMSC): tipo SMS-SUBMIT mensajes nuevos. Los SMSC deberían poder recibir estos mensajes sin problemas, ya que son parte del estándar normal de SMS (sin embargo, en la práctica hemos observado problemas con varios MNO, que van desde la configuración y las políticas de la infraestructura hasta dificultades para decodificar correctamente los SMS de datos). A continuación, el ELS considera SMS-SUBMIT mensaje del teléfono al SMSC, que sigue los SMS normales estándares (GSM 3.40). El ELS define un SMS de datos como un subconjunto de SMS normal que:
- Tiene establecida la marca User-Data-Header-Indicator en el encabezado del SMS (sexto bit de el primer octeto de un mensaje GSM 03.40 o 3GPP 23.040)
- Contiene un encabezado de datos de usuario dentro de los datos de usuario del SMS
- El encabezado de datos del usuario contiene una dirección de puerto de la aplicación Identificador de elemento de información (IEI)
Es necesario que el ELS envíe un SMS de esta manera en lugar de un SMS común. para asegurarte de que los mensajes SMS de datos de ELS no aparezcan en la configuración app de mensajería. Más adelante, se presenta un ejemplo de SMS codificado para explicar mejor esto.
Ten en cuenta que no especificamos un esquema de codificación de datos (DCS) específico aquí. El DCS se utiliza para identificar la codificación dentro del segmento Datos del usuario. Sin embargo, para la en un futuro próximo, el esquema de codificación de datos siempre tendrá datos de 8 bits permiten una flexibilidad máxima, y los datos reales se codificarán con el alfabeto predeterminado GSM 03.38 de 7 bits. De este modo, cada elemento con codificación de 7 bits ocupan solo 7 bits, no 8 bits.
Dado que el segmento Datos del usuario tiene un máximo de 140 bytes y que el tamaño mínimo de un encabezado de datos de usuario que incluye información de puerto es de 7 bytes Esto deja un máximo de 133 bytes (152 elementos codificados en 7 bits) para codificar mensaje de emergencia real. Estos bytes se pueden decodificar para revelar el SMS de datos de ELS. que se está transmitiendo.
Ejemplo
Por lo tanto, después de decodificar este ejemplo de SMS de datos, queda el objeto binario de datos del usuario. de esta cadena hexadecimal:
415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A
Decodificación GSM 03.38
En el siguiente ejemplo, se decodifican los primeros dos octetos; el resto queda como un ejercicio al lector. Te sugerimos hacer referencia a 3GPP 23.038 y usar muchos de los herramientas en línea útiles (por ejemplo, http://smstools3.kekekasvi.com/topic.php?id=288). Dentro de la columna Octetos, las secciones resaltadas en amarillo representan los bits que no se utilizan para el septet actual y quedarán para el siguiente. Dentro de los Septets las secciones destacadas en amarillo representan los bits del historial octeto.
Hexadecimal | Octetos | Septtetos | Personaje (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) |
El resultado final es que el mensaje anterior se puede decodificar en el siguiente cadena:
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
Estos SMS se deberían poder decodificar con la mayoría de los SMS disponibles para el público software.