Especificación de SMS

Esta sección se divide en dos partes:

  1. Contenido: cuál es el contenido de los mensajes de ELS
  2. 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:

  1. 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)
  2. Contiene un encabezado de datos de usuario dentro de los datos de usuario del SMS
  3. 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.