2009-07-27 10 views
0

Ich verwende die WML-Funktion "shorelocalinfo", um Ortsinformationen in Kurznachrichten zu stellen, die über ein WIB-Menü auf einem GSM-Handgerät gesendet werden.Einbetten von GSM-Zellen in Kurznachrichten

Ich verwende die WIG WML v.4 Spec von SmartTrust. Der entsprechende Abschnitt lautet "9.4 providelocalinfo Element"

Ich verwende den Code wie in dem Beispiel, und übertragen Sie die Variable dann per SMS, und verwenden Sie Kannel, um die Nachricht von der SMSC abzurufen.

Hier ist der Code, den ich verwende, mit Ausnahme von [myservicecentre] Zentrum meiner eigentlichen Dienst zu sein:

<?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 meiner empfangenen Nachrichten zu sehen ist „loc =“ von 7 Byte gefolgt (Oktette) oder Binärdaten. Ich habe versucht, eine Dokumentation zu finden, die erklärt, wie man diese Daten entschlüsselt, aber nichts gefunden hat, was das klar erklärt.

Von den 7 Oktette dekodiert, die ersten 3 Bytes sind immer die gleichen, Die nächsten 2 Bytes neigen, zwischen drei eindeutige Werte, die letzten 2 Bytes zu variieren scheinen die Zellen-ID zu sein.

Also habe ich den Empfänger codiert, um die letzten beiden Oktette zu ziehen und eine 16-Bit-GSM-Cellid aufzubauen. Meistens entspricht es bekannten Celliden aus dem Netzwerk. Aber oft stimmt der Wert nicht überein.

So versuche ich Informationen zu dem folgenden zu finden:

  1. Wie man richtig die Standortinformationen auf sichere Weise übertragen (Codierungen, wirft, usw.)
  2. Wie die Informationen richtig
  3. zu dekodieren
  4. Wie Kannel konfigurieren binäre Standortdaten

ich die folgenden Dokumente in meiner vergeblichen Suche sucht habe zu ehren, aber nicht die relevanten Daten gefunden: GSM 03.38, GSM 04.07, GSM 04.08, GSM 11.15, sowie die WIG WML Spec. V

Jeder Einblick, was ich falsch machen könnte würde geschätzt werden!

Antwort

2

die Informationen über den Standort zu entschlüsseln, müssen Sie 48 in GSM 11.14 Seite sehen

1,19 LAGE Informationen

  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 

Das Mobilländercode (MCC), die der mobilen Netzwerkcode (MNC) Location Area Code (LAC) und die Zellen-ID sind wie in TS GSM 04.08 [8] codiert.

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

+0

Das war hilfreich für mich: Naiv greifen die letzten zwei Oktette hat verschiedene LAC-Werte für die gleichen oder nahe gelegenen Zellen verpasst. Die Informationen, die von verschiedenen WIB-Plattformen gesendet werden, scheinen geringfügig von dieser Spezifikation abzuweichen (zumindest SmartTrust), aber es ist ein Schritt in die richtige Richtung und zeigt eine Lösung für einige Probleme an, die wir gesehen haben. –

0

Nicht zu viele Bisse zu dieser Frage! Ich wollte meine Erkenntnisse bei anderen zusammenfassen können sie nützlich finden:

  1. Need senden Nachrichten mit einem dcs Einstellung ungleich 0 dcs = „0“ sendet Daten gepackt (zu Ehren der unteren 7-Bits jedes Oktett; dies ermöglicht 160 Zeichen SMS-Nachrichten, wenn die maximale Nachrichtengröße tatsächlich 140 Oktetts ist)

  2. Sie müssen die Daten in einer binären sicheren Weise analysieren: Regex-Ausdrücke, die die Suche beenden, wenn 0x0A gefunden wird, werden fehlschlagen, wenn die Binärdaten selbst kann dieser Wert sein.

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

Prost

Haftungsausschluss: Sichere Übertragung von 16-Bit-GSM-Handy-Ids mit wenigen Einstellungen erfordert tun haben, die ich nur verstehen, weil sie standardmäßig nicht konfiguriert wurden. Es gibt wahrscheinlich andere Standards, auf die ich angewiesen bin, aber ich bin mir nicht bewusst, dass sie variieren können.