SMPP 客户端在消息末尾添加一个 ¿

SMPP client is adding an ¿ to the end of the message

我正在尝试制作一个 Windows 桌面 smpp 客户端,它的连接和发送都很好,除了一个错误,我在消息内容的末尾添加了一个额外的字符 (¿)在我的 phone.

上收到

所以我发送 "test" 但我的 phone 收到 "test¿"。这是 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

我必须进行一些细微的更改才能使其在 windows 上运行,但我认为没有任何可能影响此功能的更改。

其他人 运行 在 smpp 服务器上使用不同的帐户进行测试,他们的测试添加了一个 @ 符号。

知道是什么原因造成的吗?谢谢!

最后发现问题,是因为smpp库中有个选项默认为true,叫nullTerminateOctetStrings

它在消息末尾添加了 00,听起来这是 SMPP 3.4 标准所要求的,但我们的 smsc 不喜欢它。我想理想情况下我会修复 smsc,但这是由第 3 方提供的,所以我只是关闭了空终止。

有类似问题的人和更多信息在这里:https://www.mail-archive.com/devel@kannel.3glab.org/msg06765.html