Cette section se compose de deux parties:
- Contenu : contenu des messages SLU.
- Formats : comment ces messages sont envoyés et comment les décoder (si nécessaire)
Contenu
SLU V1
Les messages SLU envoyés par SMS sont conformes à la dernière spécification ETSI AML. Ce est appelée ELS V1. Il s'agit de l'approche la plus couramment choisie par les partenaires ELS. La les sections les plus pertinentes sont les suivantes:
Nom de la clé | Valeur | Unités | Exemple |
A"ML |
Version | - | 1 |
lt |
Latitude | degrés | +37,42175 |
lg |
Longitude | degrés | -122,08461 |
top |
Horodatage du lieu | aaaaMMjjHHmmss dans l'heure UTC | 20150613010948 |
rd |
Précision de la localisation | mètres | 20.0 |
lc |
Fiabilité de l'emplacement | Confiance en pourcentage | 68 |
pm |
Méthode de positionnement (Wi-Fi, GPS, cellulaire, valeur nulle) | "W", "G", "C", "N" | W |
si |
IMSI (ne contient que les 6 premiers chiffres de l'IMSI d'origine, les autres chiffres) sont remplacés par 0). | - | 123456000000000 |
ei |
Code IMEI | - | 355458061005220 |
mcc |
CM du réseau | - | 310 |
mnc |
Network MNC | - | 260 |
ml |
Longueur du message (y compris la longueur et l'en-tête du message) | - | 123 |
Méthode de positionnement
Emplacement nul
Exemples
Aucun emplacement:
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
Position calculée:
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
SLU (bêta)
Un format expérimental utilisé par quelques partenaires est le format ELS bêta, offrant aux partenaires la possibilité d'essayer différents domaines.
Les sections les plus pertinentes sont les suivantes:
Nom de la clé | Valeur | Unités | Exemple |
A"ML |
Version | - | 2 |
en |
Numéro d'urgence | - | 911 |
et |
Horodatage de l'appel d'urgence | Heure de l'epoch UNIX en secondes (entier) | 1593187189 |
lo |
Localisation (latitude, longitude, précision) : la latitude et la longitude doivent obligatoirement être tronqué à 5 chiffres après la virgule, la justesse à 1 chiffre après la virgule : une précision de 0 représente une valeur inconnue | Degrés (flottant), degrés (flottant), mètres (flottant) | 37.42175,-122.08461,20.1 |
lt |
Heure de localisation (par rapport à l'heure d'urgence) : ce champ peut être ignoré. Si aucun champ de localisation ("lo") n'est présent ou si aucun champ d'horodatage ("et") n'est actuellement | Secondes (entier) | 5 |
lc |
Fiabilité de l'emplacement | Niveau de confiance en pourcentage (entier) | 68 |
lz |
Emplacement vertical (altitude, précision verticale) : ce champ peut être ignoré si aucun champ de localisation ("lo") n'est présent ; tous les champs sont tronqués à 1 chiffre après la virgule. Une précision de 0 représente une valeur inconnue. | Mètres (flottant), Mètres (flottant) | -10,1,10,1 |
ls |
Source de la localisation (Wi-Fi, cellulaire, GPS, Fused, Inconnu) : ce champ peut être ignoré si aucun champ de localisation ("lo") n'est présent. | "W", "G", "C", "F", "U" | W |
ei |
Code IMEI | - | 355458061005220 |
nc |
MCC/MNC du réseau | - | 310260 |
hc |
Domicile MNC/MNC | - | 310260 |
lg |
Tags de langue | IETF BCP 47 | en-US |
Niveau de confiance
Altitude (axe Z)
L'ELS indique la position verticale et la précision dans les messages ELS bêta. Altitude : lz
est exprimée en mètres au-dessus de l'ellipsoïde de référence WGS84 (WGS est la référence
système géodésique mondial utilisé par le GPS) et précision en mètres (altitude, verticale)
précision). Ce champ peut être ignoré si aucun champ de localisation (lo
) n'est présent. Tout
champs tronqués à 1 chiffre après la virgule et une justesse de 0.0
représente
unknown
La précision verticale est définie de la même manière que la précision de la position.
le centile de confiance est défini par le partenaire. La valeur par défaut est de 68%
la confiance en soi. Vous trouverez plus d'informations dans la documentation Android
getVerticalAccuracyMeters().
Exemples
Cas de localisation pas encore calculé:
A"ML=2;en=911;et=1643816841;ei=123456789012345;nc=23415;hc=23415
Le cas de la position a bien été calculé:
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
Formats
Les messages dans le journal des e-mails par SMS peuvent être envoyés dans les formats suivants:
- SMS: SMS standard standard. Ce format est accepté à partir de Android P.
- Data SMS: le contenu du message est identique à celui des SMS, mais il est encodé (plus de détails ci-dessous). Ce format est compatible avec Appareil Android compatible avec le SLU
Envoyer un SMS par SMS
La lecture et l'analyse d'un texte SMS est relativement simple. De nombreux appareils mobiles proposent ce service et peuvent vous fournir des API push ou pull le contenu des messages envoyés à un numéro de téléphone standard.
SMS de données
Le format SMS standard est pris en charge à partir d'Android P. Plus anciens les appareils envoient des messages SLU à l'aide de SMS de données qui doivent être décodés. Données SLU Les SMS sont codés avec le jeu de caractères GSM 03.38 7 bits par défaut, puis définie comme charge utile binaire d'un SMS de données.
Nous verrons plus tard la définition exacte d'un SMS de données plutôt que d'un SMS normal. La définition exacte de l'encodage GSM 03.38 7 bits est disponible dans le document 3GPP 23.038 (voir spécifiquement la section 6.1.2.1.1).
SMS de décodage de données
En ce qui concerne l'utilisation par Google des SMS pour le SLU, celui-ci ne concerne que SMS depuis le téléphone vers le centre de service mobile (SMSC) - Type SMS-ENVOYER messages. Les SMSC devraient pouvoir recevoir ces messages sans problème, elles font partie de la norme SMS normale (nous avons cependant observé les problèmes liés à plusieurs MNO, des paramètres et règles d'infrastructure, difficultés à décoder correctement les données SMS). Dans l'exemple suivant, l'ELS considère qu'une Envoyer un SMS au SMSC depuis le téléphone, qui suit le SMS standard (GSM 3.40). Le SLU définit un SMS de données comme un sous-ensemble de SMS standards qui:
- possède l'indicateur User-Data-Header-Indicator défini dans l'en-tête du SMS (6e bit du sur le premier octet d'un message GSM 03.40 ou 3GPP 23.040)
- Contient un en-tête de données utilisateur dans les données utilisateur du SMS
- User-Data-Header contient une adresse de port d'application Identifiant d'élément d'information (IEI)
Le SLU est nécessaire pour envoyer un SMS de cette manière plutôt qu'un SMS standard. pour vous assurer que les SMS de données SLU n'apparaissent pas dans le menu application de chat. Un exemple de SMS codé est présenté plus loin pour mieux l'expliquer.
Notez que nous ne spécifions pas de schéma de codage de données (DCS, Data-Coding-Scheme) particulier ici. La DCS est utilisé pour identifier le codage dans le segment User-Data. Toutefois, pour le champ dans un futur proche, le Data-Coding-Scheme sera toujours défini sur des données de 8 bits pour pour une flexibilité maximale. Les données elles-mêmes sont encodées l’alphabet par défaut GSM 03.38 7 bits. Chaque élément encodé sur 7 bits n'occupent que 7 bits, et non 8 bits.
Étant donné que le segment User-Data a un maximum de 140 octets et que le la taille minimale d'un en-tête de données utilisateur qui inclut les informations de port est de 7 octets, cela laisse un maximum de 133 octets (152 éléments encodés en 7 bits) pour encoder le message d'urgence réel. Ces octets peuvent être décodés pour révéler le SMS de données ELS le message en cours de transmission.
Exemple
Ainsi, après avoir décodé cet exemple Data SMS, nous nous trouvons avec le code binaire de l'utilisateur de cette chaîne hexadécimale:
415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A
Decode GSM 03.38
L'exemple suivant décode les premiers octets, le reste est conservé sous forme de au lecteur. Nous vous suggérons de vous référer à la norme 3GPP 23.038 et d'utiliser un grand nombre des des outils en ligne utiles (par exemple, http://smstools3.kekekasvi.com/topic.php?id=288). Dans la colonne Octets, les sections surlignées en jaune représentent les bits qui ne sont pas utilisés pour le septet actuel, et sont laissés pour le septet suivant. Au sein des septets les sections surlignées en jaune représentent les bits du code octet.
Hex | Octets | Septet | Caractère (hex) |
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) |
Au final, le message précédent peut être décodé la chaîne suivante:
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
Ces SMS devraient pouvoir être décodés avec la plupart des SMS disponibles publiquement logiciels.