SMPP-клиент добавляет end в конец сообщения

Я пытаюсь создать Windows-клиент для настольных ПК, и он хорошо подключается и отправляется, за исключением ошибки, когда добавляется дополнительный символ (¿) в конец содержимого сообщения, которое я получаю на своем телефоне.

Итак, я отправляю «тест», но мой телефон получает «тест». Вот содержимое объекта pdu перед его отправкой:

size      :58
sequence  :2
cmd id    :0x4
cmd status:0x0 : No Error
00000000  00 00 00 3a 00 00 00 04  00 00 00 00 00 00 00 02  |...:............|
00000010  00 05 00 74 65 73 74 66  72 6f 6d 00 01 01 34 34  |...testfrom...44|
00000020  37 37 37 37 37 37 37 37  37 37 00 00 00 00 00 00  |7777777777......|
00000030  00 00 00 00 05 74 65 73  74 00                    |.....test.|
0000003a

Я использую эту библиотеку c ++ smpp в качестве основы:

https://github.com/onlinecity/cpp-smpp

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

Кто-то еще выполнил тест, используя другую учетную запись на сервере smpp, и вместо этого в тест добавили символ @.

Есть идеи, что может быть причиной этого? Спасибо!

1

Решение

Нашел проблему в конце, это было связано с опцией в библиотеке smpp, которая по умолчанию имеет значение true, называемой nullTerminateOctetStrings

Он добавлял 00 в конец сообщения, похоже, этого требовали стандарты SMPP 3.4, но нашему smsc это не понравилось. Я полагаю, что в идеале я бы исправил smsc, но он предоставлен третьей стороной, поэтому я просто отключил нулевое завершение.

Кто-то с подобной проблемой и больше информации здесь: https://www.mail-archive.com/[email protected]/msg06765.html

0

Другие решения


По вопросам рекламы [email protected]