【问题标题】:Kannel: how to send multipart messages?Kannel:如何发送多部分消息?
【发布时间】:2012-02-04 00:16:06
【问题描述】:

是否需要发送任何特殊选项才能发送多部分消息?

我通过访问以下 URL 向 Kannel 提交 SMS。 http://myipaddress:13013/cgi-bin/sendsms?username=test&password=test&to=123456789&from=TEST&text=long_long_text

但我没有收到消息本身,而是在手机上看到一些奇怪的符号,类似于 4eX1-06I! …它还包含一些非拉丁符号。

如果我使文本更短(小于 160)而不更改任何其他内容,它可以正常工作,所以这只是多部分消息问题。 如果我设置编码和字符集(coding=1&charset=windows-1252),那么我的三星手机会收到消息,但诺基亚会说“不支持的消息类型” http://myipaddress:13013/cgi-bin/sendsms?coding=1&charset=windows-1252&username=test&password=test&to=123456789&from=TEST&text=long_long_text

我可以发送 unicode 消息 http://myipaddress:13013/cgi-bin/sendsms?coding=2&charset=utf-8&username=test&password=test&to=123456789&from=TEST&text=long_long_text 但在这种情况下,我发送 3 条消息而不是发送 2 条消息,它很昂贵,所以我不想这样。

Kannel smsbox 1.4.3 版

从我的角度来看,多部分消息应该由 kannel 自动处理,所以我没有为此做任何特别的事情。我在 kannel 配置中找不到与多部分消息相关的任何内容。我什至在 kannel 用户手册中都找不到关于多部分消息的任何内容。

这里是单消息和多部分的 PDU。我真的看不出有什么不同。

多部分消息的PDU(第一页)

2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP[vivacell2]: Manually forced source addr ton = 6, source add npi = 1
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP[vivacell2]: Manually forced dest addr ton = 1, dest add npi = 1
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP[vivacell2]: Sending PDU:
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP PDU 0x7efeec0008b0 dump:
2012-01-06 13:50:39 [26630] [7] DEBUG:   type_name: submit_sm
2012-01-06 13:50:39 [26630] [7] DEBUG:   command_id: 4 = 0x00000004
2012-01-06 13:50:39 [26630] [7] DEBUG:   command_status: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   sequence_number: 601 = 0x00000259
2012-01-06 13:50:39 [26630] [7] DEBUG:   service_type: NULL
2012-01-06 13:50:39 [26630] [7] DEBUG:   source_addr_ton: 5 = 0x00000005
2012-01-06 13:50:39 [26630] [7] DEBUG:   source_addr_npi: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   source_addr: "Tiko"
2012-01-06 13:50:39 [26630] [7] DEBUG:   dest_addr_ton: 1 = 0x00000001
2012-01-06 13:50:39 [26630] [7] DEBUG:   dest_addr_npi: 1 = 0x00000001
2012-01-06 13:50:39 [26630] [7] DEBUG:   destination_addr: "37493544831"
2012-01-06 13:50:39 [26630] [7] DEBUG:   esm_class: 3 = 0x00000003
2012-01-06 13:50:39 [26630] [7] DEBUG:   protocol_id: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   priority_flag: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   schedule_delivery_time: NULL
2012-01-06 13:50:39 [26630] [7] DEBUG:   validity_period: NULL
2012-01-06 13:50:39 [26630] [7] DEBUG:   registered_delivery: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   replace_if_present_flag: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   data_coding: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   sm_default_msg_id: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   sm_length: 17 = 0x00000011
2012-01-06 13:50:39 [26630] [7] DEBUG:   short_message: "lohellohellohello"
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP PDU dump ends.
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP[vivacell2]: Got PDU:
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP PDU 0x7efeec0008b0 dump:
2012-01-06 13:50:39 [26630] [7] DEBUG:   type_name: submit_sm_resp
2012-01-06 13:50:39 [26630] [7] DEBUG:   command_id: 2147483652 = 0x80000004
2012-01-06 13:50:39 [26630] [7] DEBUG:   command_status: 0 = 0x00000000
2012-01-06 13:50:39 [26630] [7] DEBUG:   sequence_number: 601 = 0x00000259
2012-01-06 13:50:39 [26630] [7] DEBUG:   message_id: "6030df9059c3c143"
2012-01-06 13:50:39 [26630] [7] DEBUG: SMPP PDU dump ends.

多部分消息的 PDU(第 2 页)

2012-01-06 13:44:02 [26630] [7] DEBUG: SMPP[mts]: Manually forced source addr ton = 6, source add npi = 1
2012-01-06 13:44:02 [26630] [7] DEBUG: SMPP[mts]: Manually forced dest addr ton = 1, dest add npi = 1
2012-01-06 13:44:02 [26630] [7] DEBUG: SMPP[mts]: Sending PDU:
2012-01-06 13:44:02 [26630] [7] DEBUG: SMPP PDU 0x7efeec0012c0 dump:
2012-01-06 13:44:02 [26630] [7] DEBUG:   type_name: submit_sm
2012-01-06 13:44:02 [26630] [7] DEBUG:   command_id: 4 = 0x00000004
2012-01-06 13:44:02 [26630] [7] DEBUG:   command_status: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   sequence_number: 585 = 0x00000249
2012-01-06 13:44:02 [26630] [7] DEBUG:   service_type: NULL
2012-01-06 13:44:02 [26630] [7] DEBUG:   source_addr_ton: 5 = 0x00000005
2012-01-06 13:44:02 [26630] [7] DEBUG:   source_addr_npi: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   source_addr: "SenderName"
2012-01-06 13:44:02 [26630] [7] DEBUG:   dest_addr_ton: 1 = 0x00000001
2012-01-06 13:44:02 [26630] [7] DEBUG:   dest_addr_npi: 1 = 0x00000001
2012-01-06 13:44:02 [26630] [7] DEBUG:   destination_addr: "123456789"
2012-01-06 13:44:02 [26630] [7] DEBUG:   esm_class: 67 = 0x00000043
2012-01-06 13:44:02 [26630] [7] DEBUG:   protocol_id: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   priority_flag: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   schedule_delivery_time: NULL
2012-01-06 13:44:02 [26630] [7] DEBUG:   validity_period: NULL
2012-01-06 13:44:02 [26630] [7] DEBUG:   registered_delivery: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   replace_if_present_flag: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   data_coding: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   sm_default_msg_id: 0 = 0x00000000
2012-01-06 13:44:02 [26630] [7] DEBUG:   sm_length: 23 = 0x00000017
2012-01-06 13:44:02 [26630] [7] DEBUG:   short_message:
2012-01-06 13:44:02 [26630] [7] DEBUG:    Octet string at 0x7efeec001860:
2012-01-06 13:44:02 [26630] [7] DEBUG:      len:  23
2012-01-06 13:44:02 [26630] [7] DEBUG:      size: 1024
2012-01-06 13:44:02 [26630] [7] DEBUG:      immutable: 0
2012-01-06 13:44:02 [26630] [7] DEBUG:      data: 05 00 03 0b 02 02 6c 6f 68 65 6c 6c 6f 68 65 6c   ......lohellohel
2012-01-06 13:44:02 [26630] [7] DEBUG:      data: 6c 6f 68 65 6c 6c 6f                              lohello
2012-01-06 13:44:02 [26630] [7] DEBUG:    Octet string dump ends.
2012-01-06 13:44:02 [26630] [7] DEBUG: SMPP PDU dump ends.

此消息已传递并连接,但无法读取。

单条消息(这个很好用)

2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP[mts]: Manually forced source addr ton = 6, source add npi = 1
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP[mts]: Manually forced dest addr ton = 1, dest add npi = 1
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP[mts]: Sending PDU:
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP PDU 0x7efeec0008b0 dump:
2012-01-06 13:44:22 [26630] [7] DEBUG:   type_name: submit_sm
2012-01-06 13:44:22 [26630] [7] DEBUG:   command_id: 4 = 0x00000004
2012-01-06 13:44:22 [26630] [7] DEBUG:   command_status: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   sequence_number: 587 = 0x0000024b
2012-01-06 13:44:22 [26630] [7] DEBUG:   service_type: NULL
2012-01-06 13:44:22 [26630] [7] DEBUG:   source_addr_ton: 5 = 0x00000005
2012-01-06 13:44:22 [26630] [7] DEBUG:   source_addr_npi: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   source_addr: "SenderName"
2012-01-06 13:44:22 [26630] [7] DEBUG:   dest_addr_ton: 1 = 0x00000001
2012-01-06 13:44:22 [26630] [7] DEBUG:   dest_addr_npi: 1 = 0x00000001
2012-01-06 13:44:22 [26630] [7] DEBUG:   destination_addr: "123456789"
2012-01-06 13:44:22 [26630] [7] DEBUG:   esm_class: 3 = 0x00000003
2012-01-06 13:44:22 [26630] [7] DEBUG:   protocol_id: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   priority_flag: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   schedule_delivery_time: NULL
2012-01-06 13:44:22 [26630] [7] DEBUG:   validity_period: NULL
2012-01-06 13:44:22 [26630] [7] DEBUG:   registered_delivery: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   replace_if_present_flag: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   data_coding: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   sm_default_msg_id: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   sm_length: 30 = 0x0000001e
2012-01-06 13:44:22 [26630] [7] DEBUG:   short_message:
2012-01-06 13:44:22 [26630] [7] DEBUG:    Octet string at 0x7efeec000a80:
2012-01-06 13:44:22 [26630] [7] DEBUG:      len:  30
2012-01-06 13:44:22 [26630] [7] DEBUG:      size: 31
2012-01-06 13:44:22 [26630] [7] DEBUG:      immutable: 0
2012-01-06 13:44:22 [26630] [7] DEBUG:      data: 68 65 6c 6c 6f 68 65 6c 6c 6f 68 65 6c 6c 6f 68   hellohellohelloh
2012-01-06 13:44:22 [26630] [7] DEBUG:      data: 65 6c 6c 6f 68 65 6c 6c 6f 68 65 6c 6c 6f         ellohellohello
2012-01-06 13:44:22 [26630] [7] DEBUG:    Octet string dump ends.
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP PDU dump ends.
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP[mts]: Got PDU:
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP PDU 0x7efeec0008b0 dump:
2012-01-06 13:44:22 [26630] [7] DEBUG:   type_name: submit_sm_resp
2012-01-06 13:44:22 [26630] [7] DEBUG:   command_id: 2147483652 = 0x80000004
2012-01-06 13:44:22 [26630] [7] DEBUG:   command_status: 0 = 0x00000000
2012-01-06 13:44:22 [26630] [7] DEBUG:   sequence_number: 587 = 0x0000024b
2012-01-06 13:44:22 [26630] [7] DEBUG:   message_id: "6030df305bc3c1c2"
2012-01-06 13:44:22 [26630] [7] DEBUG: SMPP PDU dump ends.

这里是短信配置。

group = smsc
smsc-id = mts
smsc = smpp
host = ipaddress
port = 2775
#receive-port = 2775
smsc-username = "********"
smsc-password = "********"
transceiver-mode = true
source-addr-ton = 6
source-addr-npi = 1
dest-addr-ton = 1
dest-addr-npi = 1
interface-version = "34"
system-type = "ESME"
log-file = "/var/log/kannel/smsc.log"
log-level = 4
#alt-addr-charset = GSM
alt-charset = GSM
msg-id-type=0x03
reconnect-delay = 1
keepalive = 60
connection-timeout = 600
#max-pending-submits=10
log-file = "/var/log/kannel/mts.log"
log-level = 0

如何解决? 如果您需要任何其他信息,请告诉我。

提前致谢。

【问题讨论】:

  • 能贴一下相关配置部分吗?
  • 这似乎是 SMSC 实现错误。如果使用编码 0,此 SMSC 需要 7 位打包数据,而不是具有 7 位字符的字符串。

标签: sms sms-gateway kannel


【解决方案1】:

您可以设置以下参数以避免重复消息

sms-resend-retry = 0
max-messages =0 

【讨论】:

    【解决方案2】:

    在 Kannel 用户指南中有一个 max-messages 设置,

    如果要发送的消息长于 SMS 的最大长度,则 将分成几个部分。 max-messages 让您指定一个 可以使用的单个 SMS 消息的最大数量。如果 max-messages 设置为 0,不发送回复,除了错误消息。

    我会尝试更改该设置,因为我似乎在任何地方都找不到默认设置

    http://www.kannel.org/download/1.4.3/userguide-1.4.3/userguide.html

    【讨论】:

    • 这看起来像是一个编码问题。我将编码设置为0,但我真的不明白为什么它不起作用? kannel 应该自动打包数据还是我应该手动打包?为什么同样适用于短消息(
    • 忘了说,max-messages 设置为 4,这没有多大帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多