2009-07-27 2 views
0

Я использую функцию WML «providelocalinfo», чтобы поместить информацию о местоположении в сообщения коротких сообщений через меню WIB на телефоне GSM.Внедрение ячеек GSM в коротких сообщениях

Я использую WIG WML v.4 Spec от SmartTrust. Соответствующий раздел «9.4 provelocalinfo Element»

Я использую код как в примере, а затем передаю переменную с помощью 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> 

То, что я вижу в моих полученных сообщений является «LOC =», а затем 7 байт (октетов) или двоичных данных. Я попытался найти документацию, объясняющую, как декодировать эти данные, но ничего не нашел, объясняет это ясно.

декодированных 7 октетов, первых 3 октета всегда одинаков, Следующие 2 октета, как правило, варьируется от трех уникальных значений, последних 2 октета по всей видимости, будет CellID.

Итак, я закодировал приемник, чтобы вытащить последние два октета и построить 16-битную ячейку сотовой связи. Большую часть времени он соответствует известным клеткам из сети. Но довольно часто значение не соответствует.

Так что я пытаюсь найти информацию о следующих:

  1. Как правильно передавать информацию о местоположении в безопасной манере (кодировок, бросает и т.д.)
  2. Как декодировать информацию правильно
  3. Как настроить Каннель чтить двоичные данные о местоположении

Я рассмотрел следующие документы в моей напрасной поиске, но не нашли соответствующие данные: 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) и идентификатор ячейки кодируются, как в TS GSM 04.08 [8].

Из личного опыта, первый октет, упомянутый здесь, обычно опускается, поэтому ваши первые три неизменных байта - это длина и страна. Следующие 2 являются кодом оператора сети.

+0

Это было полезно для меня: Наивный захват последних двух октетов пропустил разные значения LAC для той же или соседних ячеек. Информация, отправляемая различными платформами WIB, по-видимому, немного отличается от этой спецификации (по крайней мере, SmartTrust), но это шаг в правильном направлении и указывает на решение некоторых проблем, которые мы наблюдаем. –

0

Не слишком много укусов по этому вопросу! Я хотел бы резюмировать свои выводы в случае, если других может найти их полезными:

  1. нужно отправить сообщение с РСОМ установки не равен 0. д.х.н. = «0» отправляет данные упаковываются (почитание нижнего 7-бита каждый октет, это позволяет 160 символов SMS-сообщений, когда максимальный размер сообщения на самом деле составляет 140 октетов)

  2. Нужно анализировать данные двоично-безопасным способом: выражения регулярных выражений, которые прекращают поиск при обнаружении 0x0A, будут терпеть неудачу, если двоичные данные сама по себе может быть той ценностью.

  3. Мне не нужно было менять конфигурацию Kannel по умолчанию.

Приветствие

Отказ от ответственности: Безопасная передача 16-битного GSM Cell идентификаторов требует решения нескольких параметров, которые я понимаю только потому, что они не были настроены по умолчанию. Вероятно, есть другие значения по умолчанию, от которых я зависел, но я не знаю, что они могут меняться.

 Смежные вопросы

  • Нет связанных вопросов^_^