Using the 'test_ppg' program, I have the PPG forwarding a response to an SI PUSH
request to an SMSC. I'm trying to understand the details of the response forwarded by
Kannel to the SMSC. I have parsed most of the content of the message, but there are
several response bytes I've been unable to identify. I've used several WAP
PUSH-related standards documents and read through some Kannel source to try and find
how/where the bytes are packed. To be more specific, I've parsed the complete SI
portion of the response. Does anyone have any suggestions on how I can determine the
meaning of the values of the remaining fields? I've replicated some of the data below
with some details removed such as portions of text strings such as URI-related
information and other text strings. I've also removed portions of the IP header fields.
The POS column is the byte number in the output (including TCP/IP header information).
HEX is the hex value of the output character. CHAR is the character representation
('.' shows where the hex value is a non-displayable character), Description is
provided where I've been able to identify a byte meaning.
POS HEX CHAR DESCRIPTION
71 00 . Operation = submit_sm (1 of 4).
74 04 . Operation = submit_sm (4 of 4).
75 00 .
76 00 .
77 00 .
78 00 .
79 00 . Sequence (1 of 4).
82 03 . Sequence (4 of 4).
83 00 .
84 01 . Number Type (Origin) = International
85 01 . Number Plan Indicator (Origin) = ISDN
86 37 7 Origin Phone (1 of 7).
93 00 . Origin Phone Terminator
94 01 . Number Type (Dest) = International
95 01 . Number Plan Indicator (Dest) = ISDN
96 37 7 Dest Phone (1 of 7).
103 00 . Dest Phone Terminator.
104 43 C (0100 0011) Low 2 bits: msg mode (store/fwd); middle 4 bits: Default
msg type; 2 high bits: UDHI.
105 00 . Protocol ID
106 00 . Priority Level
107 00 . mclass (?)
108 00 . mwi(?)
109 00 . (0000 0000) Low 2 bits (bits 0 and 1): No SMSC delivery Receipt
requested; Bits 2-3: Msg Type (no recipient SME ack requested); Bit 4 (intermediate
notification): not requested
110 00 . Low bit (bit 0): Don't replace
111 08 . Data coding: UCS2 (ISO/IEC-10646)
112 00 . Pre-defined message
113 88 . Message Length (136).
114 06 . Version Number (XBXML 1.2)
115 05 . SI 1.0 Identifier.
116 04 .
117 0b .
118 84 .
119 23 #
120 f0 .
121 00 .
122 06 .
123 22 "
124 ae .
125 96 .
126 64 d PPG Port on Kannel (1 of 25).
151 00 . Terminator for PPG Port on Kannel.
152 af .
153 80 .
154 8d .
155 dc .
156 b4 .
157 80 .
158 02 . WBXML Version 1.2
159 05 . Begin SI section
160 6a j UTF-8 charset (1 of 2).
161 00 . UTF-8 charset (2 of 2).
162 45 E Charlist with content & attributes (1 of 2).
163 c6 . Charlist with content & attributes (2 of 2).
164 0d . href (http://www.)
165 03 . Inline string follows
166 63 c URL for request (1 of 7).
173 00 . Terminator for URL for request.
174 85 . URL Type (.com).
175 03 . Inline string follows
176 7e ~ Path for request (1 of 29).
205 00 . Terminator for PATH for request.
206 07 . Action = signal-medium.
207 0a . "Created ="
208 c3 . OPAQUE data follows:
209 07 . Length of data
210 19 . Begin creation time (hex).
217 10 . SI-expires =
218 c3 . OPAQUE data follows:
219 04 . Length of data
220 20 Begin expiration time (hex).
221 02 . Continue expiration time.
224 01 . End Indication attribute list.
225 03 . Inline string follows
226 57 W Begin text message for phone (1 of 21).
247 00 . Terminator for text message for phone.
248 01 . End Indication Element
249 01 . End SI Document.
Since I was able to identify all the fields in the SI document, I thought the
unidentified fields would relate to the push control document, but I've been unable to
make these connections using WAP standards documents and Kannel source/headers,
primarily in the gw and gwlib directories. I think byte numbers 116 through 125 and
152 through 157 will contain the most important information. In particular, I wonder
if these positions represent the values in the "quality-of-service" portion of the
Push Control Document. The SI and Push Control documents I've used are provided below:
SI DOCUMENT
<?xml version="1.0"?>
<!DOCTYPE si PUBLIC "-//WAPFORUM//DTD SI 1.0//EN"
"http://www.wapforum.org/DTD/si.dtd">
<si>
<indication href="http://URL_AND_PATH.wml"
action="signal-medium"
created="1999-06-25T15:23:15Z"
si-expires="2002-07-30T00:00:00Z">
Want to test a fetch?
</indication>
</si>
PUSH CONTROL DOCUMENT
<?xml version="1.0"?>
<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP//EN"
"http://www.wapforum.org/DTD/pap_1.0.dtd">
<pap>
<push-message push-id="[EMAIL PROTECTED]"
deliver-before-timestamp="2002-12-31T06:45:00Z"
deliver-after-timestamp="2001-02-28T06:45:00Z"
progress-notes-requested="false">
<address address-value="[EMAIL PROTECTED]">
</address>
<quality-of-service
priority="low"
delivery-method="unconfirmed"
network-required="true"
network="GSM"
bearer-required="true"
bearer="SMS">
</quality-of-service>
</push-message>
</pap>
Thank you for your help.
Ira Rosen
Motorola Message Register
847-632-2533
[EMAIL PROTECTED]
Skytel PIN: 8776438720