Frage

Ich verwende die WML -Funktion "ProvidelocalInfo", um Standortinformationen in Kurznachrichten zu setzen, die über ein WIB -Menü auf einem GSM -Mobilteil gesendet werden.

Ich verwende die Perücken WML V.4 -Spezifikation von SmartTrust. Der entsprechende Abschnitt ist "9.4 ProvidelocalInfo -Element"

Ich verwende den Code wie im Beispiel und übermittele dann die Variable über SMS und verwende Kannel, um die Nachricht aus dem SMSC abzurufen.

Hier ist der Code, den ich verwende, mit Ausnahme von [MyServicecentre], das mein tatsächliches Servicezentrum ist:

<?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>

Was ich in meinen empfangenen Nachrichten sehe, ist "loc =", gefolgt von 7 Bytes (Oktetten) oder Binärdaten. Ich habe versucht, eine Dokumentation zu finden, in der erklärt wird, wie diese Daten dekodiert werden können, fand aber nichts, was dies klar erklärt.

Von den dekodierten 7 -Oktetten sind die ersten 3 Oktetten immer gleich, die nächsten 2 Oktetten variieren dazu, zwischen drei eindeutigen Werten zu variieren, die letzten 2 Oktetten scheinen die Cellid zu sein.

Deshalb habe ich den Empfänger codiert, um die letzten beiden Oktetten zu ziehen und eine 16-Bit-GSM-CellID zu konstruieren. Meistens stimmt es bekannte Cellids aus dem Netzwerk überein. Aber ziemlich oft stimmt der Wert nicht überein.

Ich versuche also, Informationen über Folgendes zu finden:

  1. So übertragen Sie die Standortinformationen sicher auf sichere Weise (Codierungen, Abgüsse usw.).
  2. So dekodieren Sie die Informationen richtig
  3. So konfigurieren Sie Kannel, um binäre Standortdaten zu ehren

Ich habe die folgenden Dokumente in meiner vergeblichen Suche untersucht, aber nicht die relevanten Daten gefunden: GSM 03.38, GSM 04.07, GSM 04.08, GSM 11.15 sowie die Perücken -WML -Spezifikation v .4

Jeder Einblick in das, was ich falsch mache, wäre geschätzt!

War es hilfreich?

Lösung

Um die Standortinformationen zu dekodieren, müssen Sie sich in GSM 11.14 Seite 48 ansehen

1.19 Standortinformationen

          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

Der Mobile Country Code (MCC), der Mobilfunknetzcode (MNC), der Standortvorwahl (LAC) und die Zell -ID werden wie in TS GSM 04.08 codiert [8].

Aus persönlicher Erfahrung wird das erste hier erwähnte Oktett normalerweise aufgehört, sodass Ihre ersten drei unveränderlichen Bytes die Länge und das Land sind. Die nächsten 2 sind der Netzwerkbetreibercode.

Andere Tipps

Nicht zu viele Bisse in dieser Frage! Ich wollte meine Ergebnisse zusammenfassen, falls andere sie nützlich finden können:

  1. Müssen Nachrichten mit einer DCS-Einstellung nicht gleich 0 senden. DCS = "0" sendet Daten verpackt (Ehren der unteren 7-Bit-jedes Oktetts; dies ermöglicht 160 Zeichen-SMS-Nachrichten, wenn die maximale Nachrichtengröße tatsächlich 140 Oktetten beträgt).

  2. Müssen die Daten auf binäre sichere Weise analysieren: Regex -Ausdrücke, die aufhören zu suchen, wenn 0x0a angetroffen wird, fällt fehl, wenn die Binärdaten selbst dieser Wert sein können.

  3. Ich fand keine Notwendigkeit, die Standardkonfiguration von Kannels zu ändern.

Prost

Haftungsausschluss: Eine sichere Übertragung von 16-Bit-GSM-Zell-IDs erfordert den Umgang mit einigen Einstellungen, die ich nur verstehe, weil sie standardmäßig nicht konfiguriert wurden. Es gibt wahrscheinlich andere Standardeinstellungen, von denen ich abhängig bin, aber ich bin mir nicht bewusst, dass sie variieren können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top