2009-07-27 15 views
0

私はWML機能「providelocalinfo」を使用して、GSMハンドセットのWIBメニューを介してショートメッセージに位置情報を送信しています。ショートメッセージにGSMセルを埋め込む

私はSmartTrustのWIG WML v.4仕様を使用しています。関連するセクションは「9.4 providelocalinfo要素」

この例のようにコードを使用し、SMS経由で変数を送信し、Kannelを使用してSMSCからメッセージを取得します。

ここで[myservicecentre]私の実際のサービスセンターであることを除いて、私が使用しているコード、です:

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

私は私の受信したメッセージに参照すると、7バイト(続く「LOC =」であるが、オクテット)またはバイナリデータ。私はこのデータを解読する方法を説明する文書を見つけようとしましたが、これを明確に説明するものは何も見つかりませんでした。デコード7つのオクテットの

、 最初の3つのオクテットは常に同じで、 次の2つのオクテットは3つのユニークな値の間で変化する傾向があり、 最後の2つのオクテットはセルIDであるように見えます。

私は最後の2オクテットをプルし、16ビットのGSMセルIDを構築するために受信機をコーディングしました。ほとんどの場合、ネットワークからの既知の細胞と一致します。しかし、しばしば、値は一致しません。

だから私は、次の情報を検索しようとしています:

  1. 適切な情報を復号化するためにどのようにどのように適切に安全な方法で位置情報を送信する(エンコーディング、キャスト、など)
  2. バイナリ位置データ私は無駄の検索に次の書類を調べたが、該当するデータを発見していませんでした

称えるためにKannelを設定する方法:をGSM 03.38、GSM 04.07、GSM 04.08、GSM 11.15、およびWIG WML Spec V .4

何が間違っているのかについての洞察があれば幸いです。

答えて

2

、あなたは、GSM 11.14ページに48

1.19位置情報

  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 

移動国コード(MCC)、モバイルネットワークコード(MNC)、検討する必要がありロケーションエリアコード(LAC)および セルIDは、TS GSM 04.08 [8]のようにコーディングされます。

個人的な経験から、ここで言及されている最初のオクテットは通常オフのままなので、最初の3つの変わらないバイトは長さと国です。次の2つは、ネットワークオペレータコードです。

+0

これは私のために役立ちました:最後の2オクテットを無駄に奪っても、同じまたは近くのセルのLAC値が異なっていました。さまざまなWIBプラットフォームによって送信される情報は、この仕様(SmartTrustは少なくとも)とわずかに異なるようですが、それは正しい方向への一歩であり、我々が見ているいくつかの問題の解決策を示しています。 –

0

この質問であまりにも多くのお尻!私はそれらを有用見つけることができる場合の他に私の調査結果を要約したかった:

  1. は=「0」0 DCSと等しくない設定DCSとのメッセージを送信する必要があるの下位7ビットを称える(パックされたデータを送信します各オクテット;最大メッセージサイズが実際に140オクテットの場合、160文字のSMSメッセージが可能)

  2. バイナリデータを安全に解析する必要があります。0x0Aに遭遇したときに検索を停止する正規表現は、それ自体がその価値になり得る。

  3. Kannelのデフォルト設定を変更する必要はありません。

乾杯

免責事項:16ビットのGSMセルIDの安全な伝送は、それらがデフォルトで設定されていなかったので、私は理解していくつかの設定を扱う必要があります。私が依存している他のデフォルトがあるかもしれませんが、それらが変わる可能性があることに気づいていません。位置情報を復号化するために