Question

J'utilise la fonction WML "ProvidelocalInfo" pour placer les informations de localisation dans les messages courts envoyés via un menu WIB sur un combiné GSM.

J'utilise la spécification WIG WML V.4 de SmartTrust. La section pertinente est "l'élément 9.4 ProvidelocalInfo"

J'utilise le code comme dans l'exemple, puis je transmet la variable via SMS, et j'utilise Kannel pour récupérer le message du SMSC.

Voici le code que j'utilise, à l'exception de [MyServiceCentre] étant mon centre de service réel:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE wml PUBLIC "-//SmartTrust//DTD WIG-WML 4.0//EN"
  "http://www.smarttrust.com/DTD/WIG-WML4.0.dtd">
<wml wibletenc="UCS2">  

  <card id="s">
    <p>
      <providelocalinfo cmdqualifier="location" destvar="LOC"/>
      <setvar name="X" value="loc=" class="binary"/>
      <sendsm>
          <destaddress value="367"/>
          <userdata docudenc="hex-binary" dcs="245">
              $(X)$(LOC)
          </userdata>
          <servicecentreaddress value="[myservicecentre]"/>
      </sendsm>
    </p>
  </card>
</wml>

Ce que je vois dans mes messages reçus, c'est "loc =" suivi de 7 octets (octets) ou de données binaires. J'ai essayé de trouver une documentation expliquant comment décoder ces données, mais je n'ai rien trouvé explique clairement cela.

Parmi les 7 octets décodés, les 3 premiers octets sont toujours les mêmes, les 2 octets suivants ont tendance à varier entre trois valeurs uniques, les 2 derniers octets semblent être le Cellid.

J'ai donc codé le récepteur pour tirer les deux derniers octets et construire un cellulid GSM 16 bits. La plupart du temps, il correspond aux cellulides connues du réseau. Mais assez souvent, la valeur ne correspond pas.

J'essaie donc de trouver des informations sur ce qui suit:

  1. Comment transmettre correctement les informations de localisation de manière sûre (encodages, moulages, etc.)
  2. Comment décoder correctement les informations
  3. Comment configurer Kannel pour honorer les données de localisation binaire

J'ai examiné les documents suivants dans ma vaine recherche, mais je n'ai pas trouvé les données pertinentes: GSM 03.38, GSM 04.07, GSM 04.08, GSM 11.15, ainsi que la Wig WML Spec V.4

Tout aperçu de ce que je pourrais faire de mal serait apprécié!

Était-ce utile?

La solution

Pour décoder les informations de localisation, vous devez regarder dans GSM 11.14 Page 48

1.19 Informations de localisation

          Byte(s)    Description                                           Length
            1         Location Information tag                               1
            2         Length (X) of bytes following                          1
           3-5        Mobile Country & Network Codes (MCC & MNC)             3
           6-7        Location Area Code (LAC)                               2
           8-9        Cell Identity Value (Cell ID)                          2

Le code de pays mobile (MCC), le code réseau mobile (MNC), le code de la zone de localisation (LAC) et l'ID de cellule sont codés comme dans TS GSM 04.08 [8].

D'après l'expérience personnelle, le premier octet mentionné ici est généralement laissé, donc vos trois premiers octets immuables sont la longueur et le pays. Les 2 suivants sont le code de l'opérateur réseau.

Autres conseils

Pas trop de piqûres sur cette question! Je voulais résumer mes résultats au cas où d'autres pourraient les trouver utiles:

  1. Besoin d'envoyer des messages avec un paramètre DCS non égal à 0. DCS = "0" envoie des données emballées (honorant les 7 bits inférieurs de chaque octet; cela permet à 160 messages SMS de caractère lorsque la taille du message maximum est en fait de 140 octets)

  2. Besoin d'analyser les données de manière sûre binaire: les expressions regex qui cessent de rechercher lorsque 0x0a est rencontrée échouera lorsque les données binaires elle-même pourront être cette valeur.

  3. Je n'ai trouvé pas le besoin de modifier la configuration par défaut de Kannel.

Acclamations

Avis de non-responsabilité: la transmission sûre de GSM Cell-ID 16 bits nécessite de traiter quelques paramètres que je comprends uniquement parce qu'ils n'ont pas été configurés par défaut. Il y a probablement d'autres valeurs par défaut sur lesquelles je dépendent, mais je ne sais pas qu'ils peuvent varier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top