you can do only your local hack in kannel source code but there is not such handler in mainline.
Thanks, Alex > Am 26.03.2018 um 15:05 schrieb Сергей Сергеевич Батманов > <[email protected]>: > > Ah, I understand you now. > > Can I make my own specific handler to deliver_sm PDU's (or reroute to my > handler), that have reserved esm_class? For example send the decode > deliver_sm PDU with esm_class = 0x1c to php script ? > > > Понедельник, 26 марта 2018, 16:52 +05:00 от [email protected]: > > This is the same as I answered to you. > > bit 2 and bit 3 are set (this indicates delivery report) and even worse bits > 4 and 3 and 2 are set (that means reserved!). > Reserved doesn’t mean reserved for _buggy_ smsc but means reserved for any > usage not specified in the spec. > > Thanks, > Alex > > >> Am 26.03.2018 um 12:15 schrieb Сергей Сергеевич Батманов >> <[email protected] >> <x-msg://e.mail.ru/compose/?mailto=mailto%[email protected]>>: >> >> thank you for your answer. >> >> But esm_class in the first example is esm_class= 0x1c, or in binary (00 0111 >> 00). >> >> the deliver_sm PDU is sent by SMSC to ESME and the esm_class parameter is >> encoded as follows in a deliver_sm (see attachment). >> >> I undestand that the esm_class=0x1c means: >> >> x x 0 1 1 1 x x reserved >> >> Am I right? >> >> >> <image.png> >> >> >> Понедельник, 26 марта 2018, 14:57 +05:00 от [email protected] >> <x-msg://e.mail.ru/compose/?mailto=mailto%[email protected]>: >> >> Hi, >> >> you provider sent wrong esm_class in the first example. His esm_class = 0x1c >> , bits 1 and 2 set and this means >> - Short Message contains MC Delivery Receipt >> - Short Message contains Delivery Acknowledgement >> >> But none of this is true, because this is regular MO and not delivery >> receipt for any MT message sent. >> >> See attachment for the esm_class bits. >> >> Kannel can do nothing in this situation. Please contact your _buggy_ smsc >> provider and let them fix it. >> >> Thanks, >> Alex >> <Bildschirmfoto 2018-03-26 um 11.52.15.png> >> >>> Am 26.03.2018 um 07:15 schrieb Сергей Сергеевич Батманов >>> <[email protected] <>>: >>> >>> Hi, there. >>> >>> I have a problem with incoming deliver_sm. >>> >>> Kannel can't parse DLR and gives error. The problem is that i don't send >>> submit_sm, this pdu deliver_sm is special notification from provider with >>> next short_message: >>> 20180325102847+PayDay+0+20180326103303+2.5+28766 >>> >>> Deliver_sm is not a delivery report and doesn't have message_id. >>> >>> 1. What I can do with this erorr and how can i save this deliver_sm to db? >>> >>> 2. I have another deliver_sm, that doesn't give same error, but kannel >>> can't decode short_message. >>> >>> I try change msg-id-type, alt-charset and it doesn't work. >>> >>> Any ideas? >>> >>> >>> It's the first deliver_sm. >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP[smstele2]: Got PDU: >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP PDU 0x7f23c80025b0 dump: >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: type_name: deliver_sm >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: command_id: 5 = 0x00000005 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: command_status: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: sequence_number: 1435116073 = >>> 0x558a2229 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: service_type: NULL >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: source_addr_ton: 1 = 0x00000001 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: source_addr_npi: 1 = 0x00000001 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: source_addr: "79519881890" >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: dest_addr_ton: 1 = 0x00000001 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: dest_addr_npi: 1 = 0x00000001 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: destination_addr: "683" >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: esm_class: 28 = 0x0000001c >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: protocol_id: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: priority_flag: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: schedule_delivery_time: NULL >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: validity_period: NULL >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: registered_delivery: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: replace_if_present_flag: 0 = >>> 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: data_coding: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: sm_default_msg_id: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: sm_length: 51 = 0x00000033 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: short_message: >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: Octet string at 0x7f23c8000b60: >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: len: 51 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: size: 52 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: immutable: 0 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: data: 32 30 31 38 30 33 32 35 31 30 >>> 32 38 34 37 2b 50 20180325102847+P >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: data: 61 79 44 61 79 2b 30 2b 32 30 >>> 31 38 30 33 32 36 ayDay+0+20180326 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: data: 31 30 33 33 30 33 2b 32 2e 35 >>> 2b 32 38 37 36 36 103303+2.5+28766 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: data: 31 33 32 132 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: Octet string dump ends. >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP PDU dump ends. >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP[smstele2] handle_pdu, got DLR >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP[smstele2]: Couldnot parse DLR >>> string sscanf way,fallback to old way. Please report! >>> 2018-03-25 15:02:26 [2579] [6] ERROR: SMPP[smstele2]: got DLR but could not >>> find message or was not interested in it id<> dst<79519881890>, type<2> >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP[smstele2]: Sending PDU: >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP PDU 0x7f23c8006890 dump: >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: type_name: deliver_sm_resp >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: command_id: 2147483653 = 0x80000005 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: command_status: 0 = 0x00000000 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: sequence_number: 1435116073 = >>> 0x558a2229 >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: message_id: NULL >>> 2018-03-25 15:02:26 [2579] [6] DEBUG: SMPP PDU dump ends. >>> >>> ____________________________________________________ >>> >>> And it's the second deliver_sm: >>> >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Optional parameter tag (0x0202) >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Optional parameter length read as 12 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Optional parameter tag (0x0204) >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Optional parameter length read as 2 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: SMPP[smstele2]: Got PDU: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: SMPP PDU 0x7f103c000a60 dump: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: type_name: deliver_sm >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: command_id: 5 = 0x00000005 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: command_status: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: sequence_number: 1232498810 = >>> 0x4976707a >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: service_type: NULL >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: source_addr_ton: 1 = 0x00000001 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: source_addr_npi: 1 = 0x00000001 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: source_addr: "79524022709" >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: dest_addr_ton: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: dest_addr_npi: 1 = 0x00000001 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: destination_addr: "683#6920813" >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: esm_class: 3 = 0x00000003 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: protocol_id: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: priority_flag: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: schedule_delivery_time: NULL >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: validity_period: NULL >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: registered_delivery: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: replace_if_present_flag: 0 = >>> 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: data_coding: 8 = 0x00000008 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: sm_default_msg_id: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: sm_length: 6 = 0x00000006 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: short_message: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Octet string at 0x7f103c006680: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: len: 6 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: size: 7 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: immutable: 0 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: data: 04 35 04 49 04 35 .5.I.5 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Octet string dump ends. >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: user_message_reference: 84 = >>> 0x00000054 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: source_subaddress: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Octet string at 0x7f103c0066d0: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: len: 12 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: size: 13 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: immutable: 0 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: data: a0 37 39 30 34 33 34 39 30 30 >>> 30 30 .79043490000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: Octet string dump ends. >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: SMPP PDU dump ends. >>> 2018-03-25 05:35:04 [9914] [6] WARNING: smsbox_list empty! >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: SMPP[smstele2]: Sending PDU: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: SMPP PDU 0x7f103c006850 dump: >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: type_name: deliver_sm_resp >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: command_id: 2147483653 = 0x80000005 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: command_status: 0 = 0x00000000 >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: sequence_number: 1232498810 = >>> 0x4976707a >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: message_id: NULL >>> 2018-03-25 05:35:04 [9914] [6] DEBUG: SMPP PDU dump ends. >>> >>> ________________________ >>> >>> My config: >>> >>> group = core >>> admin-port = 13000 >>> smsbox-port = 13001 >>> admin-password = pass >>> admin-deny-ip = "*.*.*.*" >>> admin-allow-ip = "127.0.0.1;192.168.*.*" >>> log-file = "/var/log/kannel/bearerbox.log" >>> log-level = 0 >>> access-log = "/var/log/kannel/access.log" >>> box-allow-ip = "127.0.0.1;*.*.*.*" >>> dlr-storage = mysql >>> >>> group = smsc >>> smsc = smpp >>> smsc-id = smstele2 >>> system-type = VMA >>> host = <ip> >>> port = <port> >>> transceiver-mode = true >>> #interface-version = 34 >>> smsc-username = <id> >>> smsc-password = <pass> >>> enquire-link-interval = 270 >>> alt-charset = UTF-8 >>> log-file = "/var/log/kannel/smstele2.log" >>> log-level = 0 >>> >>> # ------ SQLBOX GROUP ------ >>> group = sqlbox >>> id = sqlbox-db >>> smsbox-id = sqlbox >>> bearerbox-port = 13001 >>> smsbox-port = 13005 >>> smsbox-port-ssl = false >>> sql-log-table = sent_sms >>> sql-insert-table = send_sms >>> log-file = "/var/log/kannel/sqlbox.log" >>> log-level = 0 >>> >>> # ------ MYSQL CONNECTION ------ >>> group = mysql-connection >>> id = "sqlbox-db" >>> host = localhost >>> username = <name> >>> password = <pass> >>> database = smssqlbox >>> max-connections = 25 >>> >>> # ------ SMSBOX GROUP ------ >>> group = smsbox >>> smsbox-id = sqlbox-db >>> bearerbox-host = 127.0.0.1 >>> bearerbox-port = 13005 >>> sendsms-port = 13013 >>> log-file = "/var/log/kannel/smsbox.log" >>> log-level = 0 >>> access-log = "/var/log/kannel/sms-access.log" >>> >>> # ------ MYSQL CONNECTION ------ >>> group = mysql-connection >>> id = bearerbox-dlr >>> host = localhost >>> username = <name> >>> password = <pass> >>> database = smsbearerbox >>> max-connections = 10 >>> >>> # ------ DLR STORAGE CONFIGURATION ------ >>> group = dlr-db >>> id = bearerbox-dlr >>> table = dlr_sms_kannel >>> field-smsc = smsc >>> field-timestamp = ts >>> field-destination = destination >>> field-source = source >>> field-service = service >>> field-url = url >>> field-mask = mask >>> field-status = status >>> field-boxc-id = boxc >>> >>> >>> Regards, >>> -- >>> Sergey Batmanov >> >> >> >> -- >> Сергей Сергеевич Батманов > > > > -- > Сергей Сергеевич Батманов
