Отправка wap push - PullRequest
       35

Отправка wap push

2 голосов
/ 23 декабря 2011

Я пытаюсь отправить wap push сообщение.Я устанавливаю кодировку данных 0xf5 и отправляю сообщение sm со следующим сообщением:

Данные пользователя службы коротких сообщений GSM

    udh length: 6
    16-bit address 05 04
    Destination port 08b4
    Source port 23f0

Протокол беспроводного сеанса, метод: Push (0x06), Content-Type: application /vnd.wap.sic

    Transaction Id: 0x25
    PDU Type: Push (0x06)
    Header length: 1
    Content type: application/vnd.wap.sic

WAP Binary XML, версия: 1.2, открытый идентификатор: "- // WAPFORUM // DTD SI 1.0 // EN (служебная индикация 1 .0)"

    Version: 1.2 (0x02)
    Public Identifier: (known): -//WAPFORUM//DTD SI 1.0//EN (Service Indication 1 .0)
    Character Set: utf-8 (0x000006a) 
    String table: 0 bytes

Представление данных:

    45 <si>
    c6 <indication
    0c href='http://'
    03 69 2e 69 6d 67 75 72 2e 63 6f 6d 2f 66 6a 49 44 4e 2e 6a 70 67 00  i.imgur.com/fjIDN.jpg'
    07 action='signal-medium'
    01 >
    03 69 6d 67 75 72 00 'imgur'
    01 </indication>
    01 </si>

Байты сообщения:

    06 05 04 0b 84 23 f0 25 06 01 ae 02 05 6a 00 45
    c6 0c 03 69 2e 69 6d 67 75 72 2e 63 6f 6d 2f 66
    6a 49 44 4e 2e 6a 70 67 00 07 01 03 69 6d 67 75
    72 00 01 01

Возврат SMSC: Submit_sm - соответственно: "OK".Но телефон ничего не показывал.Есть идеи?Извините за мой уродливый английский:)

1 Ответ

3 голосов
/ 17 января 2012

Я не могу полностью объяснить, почему эти изменения работают, но после обширного тестирования, проведенного несколько лет назад, казалось, что следующее работало надежно в британских сетях и на ряде различных телефонов. Он используется в производственном коде, и с тех пор мы не видели никаких проблем.

06 - UDHL
05 - EI (Send to Ports 16bit addr)
04 - EIDL
0B - src port
84 - src port
23 - dest port
F0 - dest port (End of UDH)

01 - trans id
06 - Push
04 - Header Length
03 - Length
AE - Content type (application/vnd.wap.sic)
81 - Character Set (01 once removed high bit)
EA - UTF 8 (6A once removed high bit)

02 - Binary XML Version 1.2 
05 - SI Identifier
6A - UTF-8
00 - End Data

45 - SI Binary XML Tag
C6 - Indication Tag
0B - href
03 - Open Text 
    (URL bytes go here...)
00 - End Data
0A - Created (date)
C3 - Data Follows
07 - Data Length
20 - date yy (century)
08 - date yy (year)
03 - date mm
26 - date dd
16 - date HH
09 - date MM
12 - date ss
01 - Close Attribute
03 - Open Text (Text Goes in here...)
00 - End Data
01 - Close Indication Tag
01 - Close SI Tag

В отправке есть несколько отличий:

  1. Набор символов UTF-8, указанный в заголовке протокола беспроводного сеанса
  2. http: // записан полностью в байтах, я не думаю, что это что-то изменило, но это требовалось остальной частью нашего приложения.
  3. Никаких действий над индикатором тега
  4. Добавлен атрибут созданной даты - казалось, что это имеет большое значение для поддержки телефона (я не совсем уверен, почему).
...