Hi There,

We have a provider who doesn't sent the message_state tlv back, with a dlr.

A PDU dump looks like this:

2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP[imez]: Got PDU:
2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP PDU 0xabe08310 dump:
2007-12-12 22:14:45 [11935] [29] DEBUG:   type_name: deliver_sm
2007-12-12 22:14:45 [11935] [29] DEBUG:   command_id: 5 = 0x00000005
2007-12-12 22:14:45 [11935] [29] DEBUG:   command_status: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   sequence_number: 14 = 0x0000000e
2007-12-12 22:14:45 [11935] [29] DEBUG:   service_type: "EX-OU"
2007-12-12 22:14:45 [11935] [29] DEBUG:   source_addr_ton: 1 = 0x00000001
2007-12-12 22:14:45 [11935] [29] DEBUG:   source_addr_npi: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   source_addr: "4524475228"
2007-12-12 22:14:45 [11935] [29] DEBUG:   dest_addr_ton: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   dest_addr_npi: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   destination_addr: NULL
2007-12-12 22:14:45 [11935] [29] DEBUG:   esm_class: 4 = 0x00000004
2007-12-12 22:14:45 [11935] [29] DEBUG:   protocol_id: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   priority_flag: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   schedule_delivery_time: NULL
2007-12-12 22:14:45 [11935] [29] DEBUG:   validity_period: NULL
2007-12-12 22:14:45 [11935] [29] DEBUG:   registered_delivery: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   replace_if_present_flag: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   data_coding: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   sm_default_msg_id: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   sm_length: 100 = 0x00000064
2007-12-12 22:14:45 [11935] [29] DEBUG:   short_message:
2007-12-12 22:14:45 [11935] [29] DEBUG:    Octet string at 0xabe06048:
2007-12-12 22:14:45 [11935] [29] DEBUG:      len:  100
2007-12-12 22:14:45 [11935] [29] DEBUG:      size: 101
2007-12-12 22:14:45 [11935] [29] DEBUG:      immutable: 0
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 69 64 3a 31 39 32 38 37 35 33 34 30 20 73 75 62   id:192875340 sub
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 3a 30 30 31 20 64 6c 76 72 64 3a 30 30 31 20 73   :001 dlvrd:001 s
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 75 62 6d 69 74 20 64 61 74 65 3a 30 37 31 32 31   ubmit date:07121
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 32 32 32 31 34 20 64 6f 6e 65 20 64 61 74 65 3a   22214 done date:
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 30 37 31 32 31 32 32 32 31 34 20 73 74 61 74 3a   0712122214 stat:
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 50 45 4e 44 49 4e 47 20 65 72 72 3a 33 32 20 54   PENDING err:32 T
2007-12-12 22:14:45 [11935] [29] DEBUG:      data: 65 78 74 3a                                       ext:
2007-12-12 22:14:45 [11935] [29] DEBUG:    Octet string dump ends.
2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP PDU dump ends.
2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP[provider] handle_pdu, got DLR
2007-12-12 22:14:45 [11935] [29] DEBUG: DLR[mysql]: Looking for DLR smsc=provider, ts=192875340, dst=4524475228, type=2
2007-12-12 22:14:45 [11935] [29] DEBUG: sql: SELECT mask, service, url, `from`, `to`, boxc FROM kannel_dlr WHERE smsc='provider' AND ts='192875340';
2007-12-12 22:14:45 [11935] [29] DEBUG: Found entry, row[0]=23, row[1]=coolsmsc, row[2]=http://domain.tld/kannel_result.php?state=%d&reason=%A, row[3]=+4542701272, row[4]=+45xxxxxx row[5]=smsbox
2007-12-12 22:14:45 [11935] [29] DEBUG: DLR[mysql]: created DLR message for URL <http://domain.tld:8080/kannel_result.php?state=%d&reason=%A>
2007-12-12 22:14:45 [11935] [29] DEBUG: removing DLR from database
2007-12-12 22:14:45 [11935] [29] DEBUG: sql: DELETE FROM kannel_dlr WHERE smsc='provider' AND ts='192875340' LIMIT 1;
2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP[provider]: Sending PDU:
2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP PDU 0xabe08828 dump:
2007-12-12 22:14:45 [11935] [29] DEBUG:   type_name: deliver_sm_resp
2007-12-12 22:14:45 [11935] [29] DEBUG:   command_id: 2147483653 = 0x80000005
2007-12-12 22:14:45 [11935] [29] DEBUG:   command_status: 0 = 0x00000000
2007-12-12 22:14:45 [11935] [29] DEBUG:   sequence_number: 14 = 0x0000000e
2007-12-12 22:14:45 [11935] [29] DEBUG:   message_id: NULL
2007-12-12 22:14:45 [11935] [29] DEBUG: SMPP PDU dump ends.


Kannel treats the above as a rejection, and sends back the state as 2.

As far as I can see kannel is defining the message state in smsc_smpp.c, but I see there is a part in line 1236, giving individual states, wouldn't it work if I add the following there:

octstr_compare(stat, octstr_imm("PENDING")) == 0 ||

And should this be made as a patch as a general contribution to the kannel project ?

--

......................................
Med venlig hilsen / Best Regards
 
Mads N. Vestergaard
Teknisk ansvarlig / CTO CoolSMS
www.coolsms.com
Phone: +45 7026 1272
Fax: +45 7630 1046
Mobile: +45 4270 1272

This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. If you are not the intended recipient you are notified that disclosing, copying, distributing or taking any action in reliance on the contents of this information is strictly prohibited.

Reply via email to