Hi,
Who are these carriers?
I think before asking to make any changes to the spec in kannel, you should
contact them to see what they have to say for themselves.
BR,
Nikos
----- Original Message -----
From: "Michael Zervakis" <[email protected]>
To: <[email protected]>
Cc: <[email protected]>
Sent: Tuesday, September 29, 2009 2:14 PM
Subject: RE: RE: DLR parsing issue with SMPP
You are right that the values are appended without labels and spaces,
however I'm aware of two cases of carriers that use this format instead of
the standard one. I think the only solution to my issue is to use sscanf
with two format cases :
The standard one with labels and single spaces: "id:%64[^s] sub:%d
dlvrd:%d submit date:%14[0-9] done date:%14[0-9] stat:%15[^t^e]
err:%3[^t]" if payload starts with chars "id:"
And one without labels and spaces:
"%64[^s]%d%d%14[0-9]%14[0-9]%15[^t^e]%3[^t]"
From: Andreas Fink [mailto:[email protected]]
Sent: Monday, September 28, 2009 9:15 PM
To: Michael Zervakis
Cc: [email protected]
Subject: Re: DLR parsing issue with SMPP
the delivery report is ill formatted:
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 31 30 37 39 38 34 39 33 35 36
30 30 31 30 30 31 1079849356001001
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 30 39 30 39 32 38 31 37 34 35
30 39 30 39 32 38 0909281745090928
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 31 37 34 35 44 45 4c 49 56 52
44 30 30 30 54 45 1745DELIVRD000TE
See Appendix B of SMPP_v3_4_Issue_1_2.pdf
SMPP provides for return of an SMSC delivery receipt via the deliver_sm or
data_sm PDU, which indicates the delivery status of the message.
The informational content of an SMSC Delivery Receipt may be inserted into
the short_message parameter of the deliver_sm operation. The format for
this Delivery Receipt message is SMSC vendor specific but following is a
typical example of Delivery Receipt report.
"id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done
date:YYMMDDhhmm stat:DDDDDDD err:E Text: . . . . . . . . ."
in above text there are no "id:" , no "sub:" no "dlvrd:" no "submit date:"
no "done date:" so kannel can not parse it.
It looks more like the parameters are just appended after each other
without the labels.
On 28.09.2009, at 17:36, Michael Zervakis wrote:
Dear all,
We have an issue with a SMSC using SMPP and bearerbox cvs-20090921, where
bearerbox can't decode correctly DLR message and therefore can't find the
dlr report.
MT TCPDUMP
-----------------
17:45:19.128701 IP 172.20.20.20.59241 > 172.30.30.30.3700: P
3350057118:3350057172(54) ack 2867587379 win 142 <nop,nop,timestamp
153235712 108093610>
0x0000: 4500 006a 9d82 4000 4006 058c c129 e508 e.....@.@....)..
0x0010: 50f5 a058 e769 0e74 c7ad d09e aaeb e933 P..X.i.t.......3
0x0020: 8018 008e 97dc 0000 0101 080a 0922 3100 ............."1.
0x0030: 0671 60aa 0000 0036 0000 0004 0000 0000 .q`....6........
0x0040: 0000 87b3 0002 0139 3939 3939 0001 0139 .......99999...9
0x0050: 3939 3939 3939 3939 3939 3900 0300 0000 99999999999.....
0x0060: 0001 0000 0004 5445 5354 ......TEST
MT SMS BEARERBOX DEBUG
-----------------------------------
2009-09-28 17:45:19 [9399] [13] DEBUG: SMPP[SMSC]: Sending PDU:
2009-09-28 17:45:19 [9399] [13] DEBUG: SMPP PDU 0x821df38 dump:
2009-09-28 17:45:19 [9399] [13] DEBUG: type_name: submit_sm
2009-09-28 17:45:19 [9399] [13] DEBUG: command_id: 4 = 0x00000004
2009-09-28 17:45:19 [9399] [13] DEBUG: command_status: 0 = 0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: sequence_number: 34739 = 0x000087b3
2009-09-28 17:45:19 [9399] [13] DEBUG: service_type: NULL
2009-09-28 17:45:19 [9399] [13] DEBUG: source_addr_ton: 2 = 0x00000002
2009-09-28 17:45:19 [9399] [13] DEBUG: source_addr_npi: 1 = 0x00000001
2009-09-28 17:45:19 [9399] [13] DEBUG: source_addr: "99999"
2009-09-28 17:45:19 [9399] [13] DEBUG: dest_addr_ton: 1 = 0x00000001
2009-09-28 17:45:19 [9399] [13] DEBUG: dest_addr_npi: 1 = 0x00000001
2009-09-28 17:45:19 [9399] [13] DEBUG: destination_addr: "999999999999"
2009-09-28 17:45:19 [9399] [13] DEBUG: esm_class: 3 = 0x00000003
2009-09-28 17:45:19 [9399] [13] DEBUG: protocol_id: 0 = 0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: priority_flag: 0 = 0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: schedule_delivery_time: NULL
2009-09-28 17:45:19 [9399] [13] DEBUG: validity_period: NULL
2009-09-28 17:45:19 [9399] [13] DEBUG: registered_delivery: 1 = 0x00000001
2009-09-28 17:45:19 [9399] [13] DEBUG: replace_if_present_flag: 0 =
0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: data_coding: 0 = 0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: sm_default_msg_id: 0 = 0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: sm_length: 4 = 0x00000004
2009-09-28 17:45:19 [9399] [13] DEBUG: short_message: "TEST"
2009-09-28 17:45:19 [9399] [13] DEBUG: SMPP PDU dump ends.
2009-09-28 17:45:19 [9399] [13] DEBUG: SMPP[SMSC]: Got PDU:
2009-09-28 17:45:19 [9399] [13] DEBUG: SMPP PDU 0x821df38 dump:
2009-09-28 17:45:19 [9399] [13] DEBUG: type_name: submit_sm_resp
2009-09-28 17:45:19 [9399] [13] DEBUG: command_id: 2147483652 = 0x80000004
2009-09-28 17:45:19 [9399] [13] DEBUG: command_status: 0 = 0x00000000
2009-09-28 17:45:19 [9399] [13] DEBUG: sequence_number: 34739 = 0x000087b3
2009-09-28 17:45:19 [9399] [13] DEBUG: message_id: "405d318c"
2009-09-28 17:45:19 [9399] [13] DEBUG: SMPP PDU dump ends.
2009-09-28 17:45:19 [9399] [13] DEBUG: DLR[mysql]: Adding DLR smsc=SMSC,
ts=405d318c, src=99999, dst=+999999999999, mask=1, boxc=GR
2009-09-28 17:45:19 [9399] [13] DEBUG: adding DLR entry into database
2009-09-28 17:45:19 [9399] [13] DEBUG: sql: INSERT INTO dlr (smsc, ts,
source, destination, service, url, mask, boxcid, status) VALUES (?, ?, ?,
?, ?, ?, ?, ?, 0)
DLR TCPDUMP
------------------
17:45:23.627672 IP 172.30.30.30.3700 > 172.20.20.20.59242: P
38944887:38944987(100) ack 3343504612 win 5792 <nop,nop,timestamp
108094881 153233119>
0x0000: 4500 0098 3a24 0000 3c06 acbc 50f5 a058 E...:$..<...P..X
0x0010: c129 e508 0e74 e76a 0252 4077 c749 d4e4 .)[email protected]..
0x0020: 8018 16a0 26cd 0000 0101 080a 0671 65a1 ....&........qe.
0x0030: 0922 26df 0000 0064 0000 0005 0000 0000 ."&....d........
0x0040: 0042 c248 0001 0139 3939 3939 3939 3939 .B.H...999999999
0x0050: 3939 3900 0201 3939 3939 3900 0400 0000 999...99999.....
0x0060: 0000 0000 0032 3130 3739 3834 3933 3536 .....21079849356
0x0070: 3030 3130 3031 3039 3039 3238 3137 3435 0010010909281745
0x0080: 3039 3039 3238 3137 3435 4445 4c49 5652 0909281745DELIVR
0x0090: 4430 3030 5445 5354 D000TEST
DLR BEARERBOX DEBUG
-------------------------------
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP[SMSC]: Got PDU:
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP PDU 0x821df38 dump:
2009-09-28 17:45:23 [9399] [14] DEBUG: type_name: deliver_sm
2009-09-28 17:45:23 [9399] [14] DEBUG: command_id: 5 = 0x00000005
2009-09-28 17:45:23 [9399] [14] DEBUG: command_status: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: sequence_number: 4375112 =
0x0042c248
2009-09-28 17:45:23 [9399] [14] DEBUG: service_type: NULL
2009-09-28 17:45:23 [9399] [14] DEBUG: source_addr_ton: 1 = 0x00000001
2009-09-28 17:45:23 [9399] [14] DEBUG: source_addr_npi: 1 = 0x00000001
2009-09-28 17:45:23 [9399] [14] DEBUG: source_addr: "999999999999"
2009-09-28 17:45:23 [9399] [14] DEBUG: dest_addr_ton: 2 = 0x00000002
2009-09-28 17:45:23 [9399] [14] DEBUG: dest_addr_npi: 1 = 0x00000001
2009-09-28 17:45:23 [9399] [14] DEBUG: destination_addr: "99999"
2009-09-28 17:45:23 [9399] [14] DEBUG: esm_class: 4 = 0x00000004
2009-09-28 17:45:23 [9399] [14] DEBUG: protocol_id: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: priority_flag: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: schedule_delivery_time: NULL
2009-09-28 17:45:23 [9399] [14] DEBUG: validity_period: NULL
2009-09-28 17:45:23 [9399] [14] DEBUG: registered_delivery: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: replace_if_present_flag: 0 =
0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: data_coding: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: sm_default_msg_id: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: sm_length: 50 = 0x00000032
2009-09-28 17:45:23 [9399] [14] DEBUG: short_message:
2009-09-28 17:45:23 [9399] [14] DEBUG: Octet string at 0x821df08:
2009-09-28 17:45:23 [9399] [14] DEBUG: len: 50
2009-09-28 17:45:23 [9399] [14] DEBUG: size: 51
2009-09-28 17:45:23 [9399] [14] DEBUG: immutable: 0
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 31 30 37 39 38 34 39 33 35 36
30 30 31 30 30 31 1079849356001001
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 30 39 30 39 32 38 31 37 34 35
30 39 30 39 32 38 0909281745090928
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 31 37 34 35 44 45 4c 49 56 52
44 30 30 30 54 45 1745DELIVRD000TE
2009-09-28 17:45:23 [9399] [14] DEBUG: data: 53 54 ST
2009-09-28 17:45:23 [9399] [14] DEBUG: Octet string dump ends.
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP PDU dump ends.
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP[SMSC] handle_pdu, got DLR
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP[SMSC]: Couldnot parse DLR
string sscanf way,fallback to old way. Please report!
2009-09-28 17:45:23 [9399] [14] ERROR: SMPP[SMSC]: got DLR but could not
find message or was not interested in it id<> dst<999999999999>, type<2>
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP[SMSC]: Sending PDU:
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP PDU 0x821de00 dump:
2009-09-28 17:45:23 [9399] [14] DEBUG: type_name: deliver_sm_resp
2009-09-28 17:45:23 [9399] [14] DEBUG: command_id: 2147483653 = 0x80000005
2009-09-28 17:45:23 [9399] [14] DEBUG: command_status: 0 = 0x00000000
2009-09-28 17:45:23 [9399] [14] DEBUG: sequence_number: 4375112 =
0x0042c248
2009-09-28 17:45:23 [9399] [14] DEBUG: message_id: NULL
2009-09-28 17:45:23 [9399] [14] DEBUG: SMPP PDU dump ends.
Sincerely,
Michael Zervakis