Dear All Things seem to work fine, except that the Timestamp in the dlr table is never found as it seems to be different. Please have a look at this snippet of the log file:
2012-11-13 13:44:01 [30951] [16] DEBUG: boxc_receiver: sms received 2012-11-13 13:44:01 [30951] [16] DEBUG: send_msg: sending msg to box: <127.0.0.1> 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: throughput (0.00,0.00) 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: Manually forced source addr ton = 0, source add npi = 1 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: Manually forced dest addr ton = 1, dest add npi = 1 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: Sending PDU: 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP PDU 0x7f3bcc000a10 dump: 2012-11-13 13:44:01 [30951] [12] DEBUG: type_name: submit_sm 2012-11-13 13:44:01 [30951] [12] DEBUG: command_id: 4 = 0x00000004 2012-11-13 13:44:01 [30951] [12] DEBUG: command_status: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: sequence_number: 14 = 0x0000000e 2012-11-13 13:44:01 [30951] [12] DEBUG: service_type: "5978" 2012-11-13 13:44:01 [30951] [12] DEBUG: source_addr_ton: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: source_addr_npi: 1 = 0x00000001 2012-11-13 13:44:01 [30951] [12] DEBUG: source_addr: "5978" 2012-11-13 13:44:01 [30951] [12] DEBUG: dest_addr_ton: 1 = 0x00000001 2012-11-13 13:44:01 [30951] [12] DEBUG: dest_addr_npi: 1 = 0x00000001 2012-11-13 13:44:01 [30951] [12] DEBUG: destination_addr: "123456789012" 2012-11-13 13:44:01 [30951] [12] DEBUG: esm_class: 3 = 0x00000003 2012-11-13 13:44:01 [30951] [12] DEBUG: protocol_id: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: priority_flag: 2 = 0x00000002 2012-11-13 13:44:01 [30951] [12] DEBUG: schedule_delivery_time: NULL 2012-11-13 13:44:01 [30951] [12] DEBUG: validity_period: NULL 2012-11-13 13:44:01 [30951] [12] DEBUG: registered_delivery: 1 = 0x00000001 2012-11-13 13:44:01 [30951] [12] DEBUG: replace_if_present_flag: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: data_coding: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: sm_default_msg_id: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: sm_length: 8 = 0x00000008 2012-11-13 13:44:01 [30951] [12] DEBUG: short_message: "TEST DLR" 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP PDU dump ends. 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: throughput (1.00,0.00) 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: throughput (1.00,0.00) 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: Got PDU: 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP PDU 0x7f3bcc000a10 dump: 2012-11-13 13:44:01 [30951] [12] DEBUG: type_name: submit_sm_resp 2012-11-13 13:44:01 [30951] [12] DEBUG: command_id: 2147483652 = 0x80000004 2012-11-13 13:44:01 [30951] [12] DEBUG: command_status: 0 = 0x00000000 2012-11-13 13:44:01 [30951] [12] DEBUG: sequence_number: 14 = 0x0000000e 2012-11-13 13:44:01 [30951] [12] DEBUG: message_id: "1686190692" 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP PDU dump ends. 2012-11-13 13:44:01 [30951] [12] DEBUG: DLR[mysql]: Adding DLR smsc=smsc_sender01, ts=1686190692, src=5978, dst=123456789012, mask=31, boxc= 2012-11-13 13:44:01 [30951] [12] DEBUG: adding DLR entry into database 2012-11-13 13:44:01 [30951] [12] DEBUG: sql: INSERT INTO `dlr` (`smsc`, `ts`, `source`, `destination`, `service`, `url`, `mask`, `boxc`, `status`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0) 2012-11-13 13:44:01 [30951] [12] DEBUG: SMSC[smsc_sender01]: creating DLR message 2012-11-13 13:44:01 [30951] [12] DEBUG: SMSC[smsc_sender01]: DLR = http://127.0.0.1:80/h2/dlr.php?type=%d&msg_id=401150 2012-11-13 13:44:01 [30951] [12] DEBUG: SMPP[smsc_sender01]: throughput (1.00,0.00) 2012-11-13 13:44:01 [30951] [17] DEBUG: send_msg: sending msg to box: <127.0.0.1> 2012-11-13 13:44:01 [30951] [17] DEBUG: boxc_sender: sent message to <127.0.0.1> 2012-11-13 13:44:06 [30951] [16] DEBUG: boxc_receiver: heartbeat with load value 0 received 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter tag (0x001e) 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter length read as 11 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter tag (0x0427) 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter length read as 1 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter tag (0x0606) 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter length read as 1 2012-11-13 13:44:07 [30951] [6] WARNING: SMPP: Unknown TLV(0x0606,0x0001,00) for PDU type (deliver_sm) received! 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter tag (0x1501) 2012-11-13 13:44:07 [30951] [6] DEBUG: Optional parameter length read as 13 2012-11-13 13:44:07 [30951] [6] WARNING: SMPP: Unknown TLV(0x1501,0x000d,32353437323235303036313200) for PDU type (deliver_sm) received! 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP[smsc_receiver01]: Got PDU: 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP PDU 0x7f3be0001520 dump: 2012-11-13 13:44:07 [30951] [6] DEBUG: type_name: deliver_sm 2012-11-13 13:44:07 [30951] [6] DEBUG: command_id: 5 = 0x00000005 2012-11-13 13:44:07 [30951] [6] DEBUG: command_status: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: sequence_number: 64 = 0x00000040 2012-11-13 13:44:07 [30951] [6] DEBUG: service_type: "5978" 2012-11-13 13:44:07 [30951] [6] DEBUG: source_addr_ton: 1 = 0x00000001 2012-11-13 13:44:07 [30951] [6] DEBUG: source_addr_npi: 1 = 0x00000001 2012-11-13 13:44:07 [30951] [6] DEBUG: source_addr: "123456789012" 2012-11-13 13:44:07 [30951] [6] DEBUG: dest_addr_ton: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: dest_addr_npi: 1 = 0x00000001 2012-11-13 13:44:07 [30951] [6] DEBUG: destination_addr: "5978" 2012-11-13 13:44:07 [30951] [6] DEBUG: esm_class: 4 = 0x00000004 2012-11-13 13:44:07 [30951] [6] DEBUG: protocol_id: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: priority_flag: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: schedule_delivery_time: NULL 2012-11-13 13:44:07 [30951] [6] DEBUG: validity_period: NULL 2012-11-13 13:44:07 [30951] [6] DEBUG: registered_delivery: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: replace_if_present_flag: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: data_coding: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: sm_default_msg_id: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: sm_length: 110 = 0x0000006e 2012-11-13 13:44:07 [30951] [6] DEBUG: short_message: 2012-11-13 13:44:07 [30951] [6] DEBUG: Octet string at 0x7f3be0000b60: 2012-11-13 13:44:07 [30951] [6] DEBUG: len: 110 2012-11-13 13:44:07 [30951] [6] DEBUG: size: 111 2012-11-13 13:44:07 [30951] [6] DEBUG: immutable: 0 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 69 64 3a 31 36 38 36 31 39 30 36 39 32 20 73 75 id:1686190692 su 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 62 3a 30 30 31 20 64 6c 76 72 64 3a 30 30 31 20 b:001 dlvrd:001 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 73 75 62 6d 69 74 20 64 61 74 65 3a 31 32 31 31 submit date:1211 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 31 33 31 33 34 33 20 64 6f 6e 65 20 64 61 74 65 131343 done date 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 3a 31 32 31 31 31 33 31 33 34 33 20 73 74 61 74 :1211131343 stat 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 3a 44 45 4c 49 56 52 44 20 65 72 72 3a 30 30 30 :DELIVRD err:000 2012-11-13 13:44:07 [30951] [6] DEBUG: data: 20 74 65 78 74 3a 54 45 53 54 20 44 4c 52 text:TEST DLR 2012-11-13 13:44:07 [30951] [6] DEBUG: Octet string dump ends. 2012-11-13 13:44:07 [30951] [6] DEBUG: message_state: 2 = 0x00000002 2012-11-13 13:44:07 [30951] [6] DEBUG: receipted_message_id: "1686190692" 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP PDU dump ends. 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP[smsc_receiver01] handle_pdu, got DLR 2012-11-13 13:44:07 [30951] [6] DEBUG: DLR[mysql]: Looking for DLR smsc=smsc_receiver01, ts=96739067538, dst=123456789012, type=1 2012-11-13 13:44:07 [30951] [6] DEBUG: sql: SELECT `mask`, `service`, `url`, `source`, `destination`, `boxc` FROM `dlr` WHERE `smsc`=? AND `ts`=? LIMIT 1 2012-11-13 13:44:07 [30951] [6] DEBUG: column=mask buffer_type=3 max_length=0 length=10 2012-11-13 13:44:07 [30951] [6] DEBUG: column=service buffer_type=253 max_length=0 length=40 2012-11-13 13:44:07 [30951] [6] DEBUG: column=url buffer_type=253 max_length=0 length=255 2012-11-13 13:44:07 [30951] [6] DEBUG: column=source buffer_type=253 max_length=0 length=40 2012-11-13 13:44:07 [30951] [6] DEBUG: column=destination buffer_type=253 max_length=0 length=40 2012-11-13 13:44:07 [30951] [6] DEBUG: column=boxc buffer_type=253 max_length=0 length=40 2012-11-13 13:44:07 [30951] [6] WARNING: DLR[mysql]: DLR from SMSC<smsc_receiver01> for DST<123456789012> not found. 2012-11-13 13:44:07 [30951] [6] ERROR: SMPP[smsc_receiver01]: got DLR but could not find message or was not interested in it id<96739067538> dst<123456789012>, type<1> 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP[smsc_receiver01]: Sending PDU: 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP PDU 0x7f3be0001790 dump: 2012-11-13 13:44:07 [30951] [6] DEBUG: type_name: deliver_sm_resp 2012-11-13 13:44:07 [30951] [6] DEBUG: command_id: 2147483653 = 0x80000005 2012-11-13 13:44:07 [30951] [6] DEBUG: command_status: 0 = 0x00000000 2012-11-13 13:44:07 [30951] [6] DEBUG: sequence_number: 64 = 0x00000040 2012-11-13 13:44:07 [30951] [6] DEBUG: message_id: NULL 2012-11-13 13:44:07 [30951] [6] DEBUG: SMPP PDU dump ends. The SQL query: SELECT smsc, ts, destination, source from dlr.dlr WHERE destination = '123456789012'; yields this: +-----------------+------------+--------------+------------+ | smsc | ts | destination | source | +-----------------+------------+--------------+------------+ | smsc_receiver01 | 1686190692 | 123456789012 | 5978 | +-----------------+------------+--------------+------------+ Why is Kannel looking for message id <96739067538> and not <1686190692> Some background information: a) I have 10Tx Short Codes, 1Rx connection (all incoming connections come in via one Rx) and 1 special Rx for Bulk Messaging. b) All the 10 Tx Short Codes have the same login credentials which are different from those of the Rx and Bulk connections. Each short code is configured as a separate SMSC. We use mysql dlr. c) Because the incoming connection is different incoming from the outgoing, DLRs are always mismatched. As a workaround we have created a trigger that alters the smsc (converts all outgoing smsc to the Rx smsc): DELIMITER $$ CREATE TRIGGER dlr_replace_smscid BEFORE INSERT ON dlr.dlr FOR EACH ROW BEGIN IF NEW.smsc LIKE 'smsc_sender%' THEN SET NEW.smsc = 'smsc_receiver01'; END IF; END $$ DELIMITER
