Канал: как отправлять многочастные сообщения? - PullRequest
0 голосов
/ 06 января 2012

Есть ли какие-либо специальные опции, которые мне нужно отправить, чтобы иметь возможность отправлять многочастные сообщения?

Я отправляю SMS в Kannel по следующему URL. 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), то мой телефон Samsung получит сообщение, но Nokia ответит «Неподдерживаемый тип сообщения». http://myipaddress:13013/cgi-bin/sendsms?coding=1&charset=windows-1252&username=test&password=test&to=123456789&from=TEST&text=long_long_text

Я могу отправлять сообщения в Юникоде с http://myipaddress:13013/cgi-bin/sendsms?coding=2&charset=utf-8&username=test&password=test&to=123456789&from=TEST&text=long_long_text но в данном случае вместо отправки 2 сообщений я отправляю 3, это дорого, поэтому я бы не хотел идти по этому пути.

Kannel smsbox версия 1.4.3

С моей точки зрения, многочастные сообщения должны обрабатываться автоматически kannel, поэтому я специально ничего для этого не сделал. Я не смог найти ничего связанного с составными сообщениями в конфигурации kannel. Я даже не смог найти ничего о многочастных сообщениях в руководстве пользователя kannel.

Здесь PDU для одного сообщения и нескольких частей. Я не вижу никакой разницы.

PDU для составного сообщения (1-я страница)

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.

Вот конфигурация smsc.

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

Как это решить? Пожалуйста, дайте мне знать, если вам нужна другая информация.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 апреля 2013

Вы можете установить ниже параметр, чтобы избежать дублирования сообщения

sms-resend-retry = 0
max-messages =0 
0 голосов
/ 06 января 2012

В руководстве пользователя Kannel есть настройка max-messages,

Если отправляемое сообщение длиннее максимальной длины SMS, оно будет разделен на несколько частей. max-messages позволяет вам указать максимальное количество отдельных SMS-сообщений, которые можно использовать. Если Для max-messages установлено значение 0, ответ не отправляется, за исключением сообщений об ошибках.

Я бы попробовал изменить эту настройку, потому что, похоже, нигде не нашел значения по умолчанию

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

...