Я использую функцию WML «providelocalinfo», чтобы помещать информацию о местоположении в короткие сообщения, отправляемые через меню WIB на телефоне GSM.
Я использую спецификацию WIG WML v.4 от SmartTrust. Соответствующий раздел — «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>
То, что я вижу в своих полученных сообщениях, это «loc =», за которым следуют 7 байтов (октетов) или двоичные данные. Я попытался найти документацию, объясняющую, как декодировать эти данные, но ничего не нашел, что бы это четко объяснялось.
Из декодированных 7 октетов первые 3 октета всегда одни и те же. Следующие 2 октета имеют тенденцию варьироваться между тремя уникальными значениями, последние 2 октета представляют собой ячейку.
Поэтому я закодировал приемник так, чтобы он извлекал последние два октета и создавал 16-битный идентификатор ячейки GSM. В большинстве случаев он совпадает с известными целлидами из сети. Но довольно часто значение не совпадает.
Итак, я пытаюсь найти информацию о следующем:
- Как правильно передать информацию о местоположении безопасным способом (кодирование, приведение и т. д.)
- Как правильно расшифровать информацию
- Как настроить Kannel для учета двоичных данных о местоположении
В тщетных поисках я изучил следующие документы, но не нашел соответствующих данных: GSM 03.38, GSM 04.07, GSM 04.08, GSM 11.15, а также WIG WML Spec V.4.
Буду признателен за любое понимание того, что я могу делать неправильно!