Я использую функцию 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-битную ячейку сотовой связи. Большую часть времени он соответствует известным клеткам из сети. Но довольно часто значение не соответствует.
Так что я пытаюсь найти информацию о следующих:
- Как правильно передавать информацию о местоположении в безопасной манере (кодировок, бросает и т.д.)
- Как декодировать информацию правильно
- Как настроить Каннель чтить двоичные данные о местоположении
Я рассмотрел следующие документы в моей напрасной поиске, но не нашли соответствующие данные: GSM 03.38, GSM 04.07, GSM 04.08, GSM 11.15, а также WIG WML Spec V .4
Любое понимание того, что я могу делать неправильно, будет оценено!
Это было полезно для меня: Наивный захват последних двух октетов пропустил разные значения LAC для той же или соседних ячеек. Информация, отправляемая различными платформами WIB, по-видимому, немного отличается от этой спецификации (по крайней мере, SmartTrust), но это шаг в правильном направлении и указывает на решение некоторых проблем, которые мы наблюдаем. –