One possible solution is not to let Kannel handle multiple-part messages but do it yourself.
So instead of passing one long message to Kannel, you split the message up in multiple parts and send the different parts to Kannel (including UDH). Each with a different DLR url. This way, you will get a failure message per message part. == Rene From: users-boun...@kannel.org [mailto:users-boun...@kannel.org] On Behalf Of Alexander Malysh Sent: Wednesday, 07 March, 2012 13:51 To: Ashish Agarwal Cc: users@kannel.org Subject: Re: NACK reporting help Hi, this is not easy to fix because you send only one but long message and awaiting only one DLR. BUT kannel splits message into peaces for you and receive two DLRs. How would you put both reason codes into one DLR? In you case that would be easy because they both equal but what do you do if not? Thanks, Alex Am 06.03.2012 um 12:20 schrieb Ashish Agarwal: Hello All, Any update on the below query. On Wed, Feb 22, 2012 at 5:59 PM, Ashish Agarwal <ashisha...@gmail.com> wrote: Hello, I have been using kannel for over 2 years now and I am currently using the latest 1.5 version of kannel. I have come across an issue with NACK reports generated for messages that fails or are rejected by the smsc. I have the following problem:- As per the PDU user receives the command_status: 1153 = 0x00000481 from the smsc but the kannel esme does not interpret it correctly. e.g. 2012-02-22 17:24:31 FAILED Send SMS [SMSC:XXXX] [SVC:XXXX] [ACT:XXX] [BINF:] [FID:] [META:] [from:XXX] [to:XXXXXXX] [flags:-1:0:-1:-1:19] [msg:185:1..Create a basic account (Pictorial Representation)..Create a FREE basic account on kareeredge.com <http://kareeredge.com/> and start searching and applying for jobs through your personal dashboard right away.] [udh:0:] 2012-02-22 17:24:31 Receive DLR [SMSC:XXX] [SVC:XXXX] [ACT:] [BINF:] [FID:] [META:] [from:XXXX] [to:XXXXXXX] [flags:-1:-1:-1:-1:16] [msg:5:NACK/] [udh:0:] As you see NACK/ should contain NACK/0x00000481. I have tried this with multiple cases and have found out that when esme submits more than 160 characters of message and the message is rejected by the smppbox we do not receive the NACK report correctly whereas when message text is less than 160 characters esme receive the report correctly as below:- 2012-02-22 17:23:10 FAILED Send SMS [SMSC:XXXX] [SVC:XXXX] [ACT:XXX] [BINF:] [FID:] [META:] [from:XXXX] [to:XXXX] [flags:-1:0:-1:-1:19] [msg:75:Dear This is remind to u that,Please sms to 56767 to get more products Free] [udh:0:] 2012-02-22 17:23:10 Receive DLR [SMSC:SIP11] [SVC:smssip1] [ACT:] [BINF:] [FID:] [META:] [from:INFINI] [to:919900000147] [flags:-1:-1:-1:-1:16] [msg:73:NACK/0x00000481/Vendor-specific error, please refer to your SMPP provider] [udh:0:] Also %A value in dlr-url gives the same output as mentioned above, because of which we are not able to trace the exact reason for the sms failure in case of sms text more than 160 characters. For supporting also find the pdu dump of the message text of 185 characters:- 2012-02-22 17:24:31 [6329] [15] DEBUG: boxc_receiver: sms received 2012-02-22 17:24:31 [6329] [15] DEBUG: new split_parts created 0x2aaab4135f70 2012-02-22 17:24:31 [6329] [15] DEBUG: send_msg: sending msg to boxc: <sqlbox> 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (0.00,0.00) 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: Sending PDU: 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU 0x2aaab413ee00 dump: 2012-02-22 17:24:31 [6329] [8] DEBUG: type_name: submit_sm 2012-02-22 17:24:31 [6329] [8] DEBUG: command_id: 4 = 0x00000004 2012-02-22 17:24:31 [6329] [8] DEBUG: command_status: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: sequence_number: 192708 = 0x0002f0c4 2012-02-22 17:24:31 [6329] [8] DEBUG: service_type: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: source_addr_ton: 5 = 0x00000005 2012-02-22 17:24:31 [6329] [8] DEBUG: source_addr_npi: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: source_addr: "XXX" 2012-02-22 17:24:31 [6329] [8] DEBUG: dest_addr_ton: 2 = 0x00000002 2012-02-22 17:24:31 [6329] [8] DEBUG: dest_addr_npi: 1 = 0x00000001 2012-02-22 17:24:31 [6329] [8] DEBUG: destination_addr: "XXXXXXXXXX" 2012-02-22 17:24:31 [6329] [8] DEBUG: esm_class: 67 = 0x00000043 2012-02-22 17:24:31 [6329] [8] DEBUG: protocol_id: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: priority_flag: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: schedule_delivery_time: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: validity_period: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: registered_delivery: 1 = 0x00000001 2012-02-22 17:24:31 [6329] [8] DEBUG: replace_if_present_flag: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: data_coding: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: sm_default_msg_id: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: sm_length: 159 = 0x0000009f 2012-02-22 17:24:31 [6329] [8] DEBUG: short_message: 2012-02-22 17:24:31 [6329] [8] DEBUG: Octet string at 0x2aaab4172160: 2012-02-22 17:24:31 [6329] [8] DEBUG: len: 159 2012-02-22 17:24:31 [6329] [8] DEBUG: size: 1024 2012-02-22 17:24:31 [6329] [8] DEBUG: immutable: 0 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 05 00 03 90 02 01 31 2e 3f 43 72 65 61 74 65 20 ......1.?Create 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 61 20 62 61 73 69 63 20 61 63 63 6f 75 6e 74 20 a basic account 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 28 50 69 63 74 6f 72 69 61 6c 20 52 65 70 72 65 (Pictorial Repre 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 73 65 6e 74 61 74 69 6f 6e 29 0d 0a 43 72 65 61 sentation)..Crea 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 74 65 20 61 20 46 52 45 45 20 62 61 73 69 63 20 te a FREE basic 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 61 63 63 6f 75 6e 74 20 6f 6e 20 6b 61 72 65 65 account on karee 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 72 65 64 67 65 2e 63 6f 6d 20 61 6e 64 20 73 74 redge.com <http://redge.com/> and st 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 61 72 74 20 73 65 61 72 63 68 69 6e 67 20 61 6e art searching an 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 64 20 61 70 70 6c 79 69 6e 67 20 66 6f 72 20 6a d applying for j 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 6f 62 73 20 74 68 72 6f 75 67 68 20 79 6f 75 obs through you 2012-02-22 17:24:31 [6329] [8] DEBUG: Octet string dump ends. 2012-02-22 17:24:31 [6329] [8] DEBUG: more_messages_to_send: 1 = 0x00000001 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU dump ends. 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (1.00,0.00) 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: Sending PDU: 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU 0x2aaab413ee00 dump: 2012-02-22 17:24:31 [6329] [8] DEBUG: type_name: submit_sm 2012-02-22 17:24:31 [6329] [8] DEBUG: command_id: 4 = 0x00000004 2012-02-22 17:24:31 [6329] [8] DEBUG: command_status: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: sequence_number: 192709 = 0x0002f0c5 2012-02-22 17:24:31 [6329] [8] DEBUG: service_type: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: source_addr_ton: 5 = 0x00000005 2012-02-22 17:24:31 [6329] [8] DEBUG: source_addr_npi: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: source_addr: "XXX" 2012-02-22 17:24:31 [6329] [8] DEBUG: dest_addr_ton: 2 = 0x00000002 2012-02-22 17:24:31 [6329] [8] DEBUG: dest_addr_npi: 1 = 0x00000001 2012-02-22 17:24:31 [6329] [8] DEBUG: destination_addr: "XXXXXXXXXX" 2012-02-22 17:24:31 [6329] [8] DEBUG: esm_class: 67 = 0x00000043 2012-02-22 17:24:31 [6329] [8] DEBUG: protocol_id: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: priority_flag: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: schedule_delivery_time: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: validity_period: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: registered_delivery: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: replace_if_present_flag: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: data_coding: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: sm_default_msg_id: 0 = 0x00000000 2012-02-22 17:24:31 [6329] [8] DEBUG: sm_length: 38 = 0x00000026 2012-02-22 17:24:31 [6329] [8] DEBUG: short_message: 2012-02-22 17:24:31 [6329] [8] DEBUG: Octet string at 0x2aaab4139270: 2012-02-22 17:24:31 [6329] [8] DEBUG: len: 38 2012-02-22 17:24:31 [6329] [8] DEBUG: size: 1024 2012-02-22 17:24:31 [6329] [8] DEBUG: immutable: 0 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 05 00 03 90 02 02 72 20 70 65 72 73 6f 6e 61 6c ......r personal 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 20 64 61 73 68 62 6f 61 72 64 20 72 69 67 68 74 dashboard right 2012-02-22 17:24:31 [6329] [8] DEBUG: data: 20 61 77 61 79 2e away. 2012-02-22 17:24:31 [6329] [8] DEBUG: Octet string dump ends. 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU dump ends. 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (2.00,0.00) 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (2.00,0.00) 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: Got PDU: 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU 0x2aaab413ee00 dump: 2012-02-22 17:24:31 [6329] [8] DEBUG: type_name: submit_sm_resp 2012-02-22 17:24:31 [6329] [8] DEBUG: command_id: 2147483652 = 0x80000004 2012-02-22 17:24:31 [6329] [8] DEBUG: command_status: 1153 = 0x00000481 2012-02-22 17:24:31 [6329] [8] DEBUG: sequence_number: 192708 = 0x0002f0c4 2012-02-22 17:24:31 [6329] [8] DEBUG: message_id: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU dump ends. 2012-02-22 17:24:31 [6329] [8] ERROR: SMPP[XXXX]: SMSC returned error code 0x00000481 (Vendor-specific error, please refer to your SMPP provider) in response to submit_sm. 2012-02-22 17:24:31 [6329] [8] DEBUG: Set split msg status to 3 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (2.00,0.00) 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (2.00,0.00) 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: Got PDU: 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU 0x2aaab413ee00 dump: 2012-02-22 17:24:31 [6329] [8] DEBUG: type_name: submit_sm_resp 2012-02-22 17:24:31 [6329] [8] DEBUG: command_id: 2147483652 = 0x80000004 2012-02-22 17:24:31 [6329] [8] DEBUG: command_status: 1153 = 0x00000481 2012-02-22 17:24:31 [6329] [8] DEBUG: sequence_number: 192709 = 0x0002f0c5 2012-02-22 17:24:31 [6329] [8] DEBUG: message_id: NULL 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP PDU dump ends. 2012-02-22 17:24:31 [6329] [8] ERROR: SMPP[XXXX]: SMSC returned error code 0x00000481 (Vendor-specific error, please refer to your SMPP provider) in response to submit_sm. 2012-02-22 17:24:31 [6329] [8] DEBUG: Set split msg status to 3 2012-02-22 17:24:31 [6329] [8] DEBUG: Parts of concatenated message failed. 2012-02-22 17:24:31 [6329] [8] DEBUG: SMSC[XXXX]: creating DLR message 2012-02-22 17:24:31 [6329] [8] DEBUG: SMSC[XXXX]: DLR = http://XX.XX.XX.XX/apps/report1/dlr.php?status=%A <http://XX.XX.XX.XX/apps/report1/dlr.php?status=%25A&type=%25d&id=27-1&smsci d=%25i> &type=%d&id=27-1&smscid=%i 2012-02-22 17:24:31 [6329] [8] DEBUG: SMPP[XXXX]: throughput (2.00,0.00) 2012-02-22 17:24:31 [6329] [18] DEBUG: send_msg: sending msg to boxc: <smsbox> 2012-02-22 17:24:31 [6329] [18] DEBUG: boxc_sender: sent message to <127.0.0.1> 2012-02-22 17:24:31 [6329] [17] DEBUG: boxc_receiver: got ack 2012-02-22 17:24:34 [6329] [17] DEBUG: boxc_receiver: heartbeat with load value 0 received I think it is a bug with smsbox. Please help. -- Regards, Ashish -- Regards, Ashish Agarwal