|
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 ? --
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. | ||||||||||||||||||||
No message_state TLV, what descripes the state then ?
Mads N. Vestergaard - CoolSMS Wed, 12 Dec 2007 13:50:52 -0800

