Sms 在存在单独接收器和收发器绑定的情况下,Kannel中的DLR路由故障

Sms 在存在单独接收器和收发器绑定的情况下,Kannel中的DLR路由故障,sms,sms-gateway,smpp,kannel,Sms,Sms Gateway,Smpp,Kannel,我有一个带有多个SMPP绑定的Kannel网关(一个操作员需要单独的发射机和接收机绑定,而另一个操作员允许收发器绑定)。收发机绑定没有显示这个问题,因此我将不深入研究这些问题的更多细节 在单独的接收器/发送器绑定场景中,大多数(但不是全部)DLR会失败,并出现“获取DLR但无法找到消息或对其不感兴趣”的情况,如下面的日志文件摘录所示:(已完成一些轻微的匿名化) 我的背景调查显示了这些邮件列表信息: - - Kannel似乎在submit_sm之后立即保存DLR,并将smsc_id设置为tx_b

我有一个带有多个SMPP绑定的Kannel网关(一个操作员需要单独的发射机和接收机绑定,而另一个操作员允许收发器绑定)。收发机绑定没有显示这个问题,因此我将不深入研究这些问题的更多细节

在单独的接收器/发送器绑定场景中,大多数(但不是全部)DLR会失败,并出现“获取DLR但无法找到消息或对其不感兴趣”的情况,如下面的日志文件摘录所示:(已完成一些轻微的匿名化)

我的背景调查显示了这些邮件列表信息: - -

Kannel似乎在submit_sm之后立即保存DLR,并将smsc_id设置为tx_bind[发送方的smsc id]。然后,当接收到deliver_sm[对于该操作员,它通常通过rx_绑定[接收器绑定]进入]时,它尝试使用该smsc_id查找它


有人知道这方面的解决方法吗?

正如我从日志和配置文件中看到的,您使用不同的smsc部分来连接发射机和接收机

因此,当Kannel尝试查找原始邮件时,它会使用smsc邮件id参数。在您的情况下,smsc提交sm交付sm处理上会有不同的值

要解决此问题,只需通过以下方式设置单个smsc组:

  • 内部端口和接收端口
  • 收发器模式=0参数(平均发射机/接收机模式)
  • 注意:此端口可能相同,并且在SMSC上通常相同

    示例(配置的一部分):


    这是可行的。但是-对于其中一个运营商,Rx和Tx绑定必须不同,因为它们具有不同的凭据。对于不同的凭据,可以使用具有相同smsc id和不同端口和接收端口设置的smsc组。
    2011-10-28 08:41:24 [6182] [9] DEBUG: SMPP[tx_bind]: Sending PDU:
    2011-10-28 08:41:24 [6182] [9] DEBUG: SMPP PDU 0x12d76c0 dump:
    2011-10-28 08:41:24 [6182] [9] DEBUG:   type_name: submit_sm
    2011-10-28 08:41:24 [6182] [9] DEBUG:   command_id: 4 = 0x00000004
    2011-10-28 08:41:24 [6182] [9] DEBUG:   command_status: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   sequence_number: 108 = 0x0000006c
    2011-10-28 08:41:24 [6182] [9] DEBUG:   service_type: "SHORT_CODE_REMOVED"
    2011-10-28 08:41:24 [6182] [9] DEBUG:   source_addr_ton: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   source_addr_npi: 1 = 0x00000001
    2011-10-28 08:41:24 [6182] [9] DEBUG:   source_addr: "SHORT_CODE_REMOVED"
    2011-10-28 08:41:24 [6182] [9] DEBUG:   dest_addr_ton: 1 = 0x00000001
    2011-10-28 08:41:24 [6182] [9] DEBUG:   dest_addr_npi: 1 = 0x00000001
    2011-10-28 08:41:24 [6182] [9] DEBUG:   destination_addr: "PHONE_NUMBER_REMOVED"
    2011-10-28 08:41:24 [6182] [9] DEBUG:   esm_class: 3 = 0x00000003
    2011-10-28 08:41:24 [6182] [9] DEBUG:   protocol_id: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   priority_flag: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   schedule_delivery_time: NULL
    2011-10-28 08:41:24 [6182] [9] DEBUG:   validity_period: NULL
    2011-10-28 08:41:24 [6182] [9] DEBUG:   registered_delivery: 1 = 0x00000001
    2011-10-28 08:41:24 [6182] [9] DEBUG:   replace_if_present_flag: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   data_coding: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   sm_default_msg_id: 0 = 0x00000000
    2011-10-28 08:41:24 [6182] [9] DEBUG:   sm_length: 9 = 0x00000009
    2011-10-28 08:41:24 [6182] [9] DEBUG:   short_message: "test test"
    2011-10-28 08:41:24 [6182] [9] DEBUG: SMPP PDU dump ends.
    2011-10-28 08:41:26 [6182] [19] DEBUG: Dumping 47 messages to store
    2011-10-28 08:41:28 [6182] [9] DEBUG: SMPP[tx_bind]: Got PDU:
    2011-10-28 08:41:28 [6182] [9] DEBUG: SMPP PDU 0x12a6590 dump:
    2011-10-28 08:41:28 [6182] [9] DEBUG:   type_name: submit_sm_resp
    2011-10-28 08:41:28 [6182] [9] DEBUG:   command_id: 2147483652 = 0x80000004
    2011-10-28 08:41:28 [6182] [9] DEBUG:   command_status: 0 = 0x00000000
    2011-10-28 08:41:28 [6182] [9] DEBUG:   sequence_number: 108 = 0x0000006c
    2011-10-28 08:41:28 [6182] [9] DEBUG:   message_id: "1673716701"
    2011-10-28 08:41:28 [6182] [9] DEBUG: SMPP PDU dump ends.
    2011-10-28 08:41:28 [6182] [9] DEBUG: DLR[mysql]: Adding DLR smsc=tx_bind, ts=1673716701, src=SHORT_CODE_REMOVED, dst=PHONE_NUMBER_REMOVED, mask=1, boxc=
    2011-10-28 08:41:28 [6182] [9] DEBUG: sql: INSERT INTO dlr (smsc, ts, source, destination, service, url, mask, boxc, status) VALUES ('tx_bind', '1673716701', 'SHORT_CODE_REMOVED', 'PHONE_NUMBER_REMOVED', 'SHORT_CODE_REMOVED', 'DLR_CALLBACK_URL_REMOVED', '1', '', '0');
    2011-10-28 08:41:30 [6182] [19] DEBUG: Dumping 46 messages to store
    2011-10-28 08:41:30 [6182] [6] DEBUG: SMPP[saf_7777]: Sending enquire link:
    2011-10-28 08:41:33 [6182] [16] DEBUG: Optional parameter tag (0x001e)
    2011-10-28 08:41:33 [6182] [16] DEBUG: Optional parameter length read as 11
    2011-10-28 08:41:33 [6182] [16] DEBUG: Optional parameter tag (0x0427)
    2011-10-28 08:41:33 [6182] [16] DEBUG: Optional parameter length read as 1
    2011-10-28 08:41:33 [6182] [16] DEBUG: Optional parameter tag (0x1501)
    2011-10-28 08:41:33 [6182] [16] DEBUG: Optional parameter length read as 13
    2011-10-28 08:41:33 [6182] [16] WARNING: SMPP: Unknown TLV(0x1501,0x000d,32353437323235303036303900) for PDU type (deliver_sm) received!
    2011-10-28 08:41:33 [6182] [16] DEBUG: SMPP[saf_receiver]: Got PDU:
    2011-10-28 08:41:33 [6182] [16] DEBUG: SMPP PDU 0x1275cc0 dump:
    2011-10-28 08:41:33 [6182] [16] DEBUG:   type_name: deliver_sm
    2011-10-28 08:41:33 [6182] [16] DEBUG:   command_id: 5 = 0x00000005
    2011-10-28 08:41:33 [6182] [16] DEBUG:   command_status: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   sequence_number: 49 = 0x00000031
    2011-10-28 08:41:33 [6182] [16] DEBUG:   service_type: "SHORT_CODE_REMOVED"
    2011-10-28 08:41:33 [6182] [16] DEBUG:   source_addr_ton: 1 = 0x00000001
    2011-10-28 08:41:33 [6182] [16] DEBUG:   source_addr_npi: 1 = 0x00000001
    2011-10-28 08:41:33 [6182] [16] DEBUG:   source_addr: "PHONE_NUMBER_REMOVED"
    2011-10-28 08:41:33 [6182] [16] DEBUG:   dest_addr_ton: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   dest_addr_npi: 1 = 0x00000001
    2011-10-28 08:41:33 [6182] [16] DEBUG:   destination_addr: "SHORT_CODE_REMOVED"
    2011-10-28 08:41:33 [6182] [16] DEBUG:   esm_class: 4 = 0x00000004
    2011-10-28 08:41:33 [6182] [16] DEBUG:   protocol_id: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   priority_flag: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   schedule_delivery_time: NULL
    2011-10-28 08:41:33 [6182] [16] DEBUG:   validity_period: NULL
    2011-10-28 08:41:33 [6182] [16] DEBUG:   registered_delivery: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   replace_if_present_flag: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   data_coding: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   sm_default_msg_id: 0 = 0x00000000
    2011-10-28 08:41:33 [6182] [16] DEBUG:   sm_length: 111 = 0x0000006f
    2011-10-28 08:41:33 [6182] [16] DEBUG:   short_message:
    2011-10-28 08:41:33 [6182] [16] DEBUG:    Octet string at 0x12e2da0:
    2011-10-28 08:41:33 [6182] [16] DEBUG:      len:  111
    2011-10-28 08:41:33 [6182] [16] DEBUG:      size: 112
    2011-10-28 08:41:33 [6182] [16] DEBUG:      immutable: 0
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 69 64 3a 31 36 37 33 37 31 36 37 30 31 20 73 75   id:1673716701 su
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 62 3a 30 30 31 20 64 6c 76 72 64 3a 30 30 31 20   b:001 dlvrd:001
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 73 75 62 6d 69 74 20 64 61 74 65 3a 31 31 31 30   submit date:1110
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 32 38 30 38 34 31 20 64 6f 6e 65 20 64 61 74 65   280841 done date
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 3a 31 31 31 30 32 38 30 38 34 31 20 73 74 61 74   :1110280841 stat
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 3a 44 45 4c 49 56 52 44 20 65 72 72 3a 30 30 30   :DELIVRD err:000
    2011-10-28 08:41:33 [6182] [16] DEBUG:      data: 20 74 65 78 74 3a 74 65 73 74 20 74 65 73 74       text:test test
    2011-10-28 08:41:33 [6182] [16] DEBUG:    Octet string dump ends.
    2011-10-28 08:41:33 [6182] [16] DEBUG:   message_state: 2 = 0x00000002
    2011-10-28 08:41:33 [6182] [16] DEBUG:   receipted_message_id: "1673716701"
    2011-10-28 08:41:33 [6182] [16] DEBUG: SMPP PDU dump ends.
    2011-10-28 08:41:33 [6182] [16] DEBUG: SMPP[rx_bind] handle_pdu, got DLR
    2011-10-28 08:41:33 [6182] [16] DEBUG: DLR[mysql]: Looking for DLR smsc=tx_bind, ts=1673716701, dst=PHONE_NUMBER_REMOVED, type=1
    2011-10-28 08:41:33 [6182] [16] DEBUG: sql: SELECT mask, service, url, source, destination, boxc FROM dlr WHERE smsc='rx_bind' AND ts='1673716701';
    2011-10-28 08:41:33 [6182] [16] DEBUG: no rows found
    2011-10-28 08:41:33 [6182] [16] WARNING: DLR[mysql]: DLR from SMSC<rx_bind> for DST<PHONE_NUMBER_REMOVED> not found.
    2011-10-28 08:41:33 [6182] [16] ERROR: SMPP[rx_bind]: got DLR but could not find message or was not interested in it id<1673716701> dst<PHONE_NUMBER_REMOVED>, type<1>
    
    # The sender
    group=smsc
    smsc=smpp
    smsc-id=tx_bind
    allowed-smsc-id=tx_bind
    preferred-smsc-id=SHORT_CODE_REMOVED
    interface-version=34
    host=SMSC_HOST_REMOVED
    port=SMSC_PORT_REMOVED
    system-id=SHORT_CODE_REMOVED
    system-type=
    service-type=SHORT_CODE_REMOVED
    source-addr-ton=0
    source-addr-npi=1
    dest-addr-ton=1
    dest-addr-npi=1
    smsc-username=USERNAME_REMOVED
    smsc-password=PASSWORD_REMOVED
    log-level=0
    
    # The receiver
    group=smsc
    smsc=smpp
    smsc-id=rx_bind
    interface-version=34
    host=HOST_REMOVED
    receive-port=PORT_REMOVED
    system-type=
    smsc-username=USERNAME_REMOVED
    smsc-password=PASSWORD_REMOVED
    log-level=0
    
    group=smsc
    smsc=smpp
    smsc-id=rx_tx_bind
    interface-version=34
    transceiver-mode = 0
    host=smsc.host.was.here
    port=TX_PORT
    receive-port=RX_PORT
    # other parameters here