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


Reply via email to