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

时间:2015-06-30 17:01:29

标签: c++ smpp

我正在尝试创建一个Windows桌面smpp客户端,并且它连接并发送良好,除了一个错误,在我的手机上收到的消息内容的末尾添加了一个额外的字符(¿)

所以我发送“测试”,但我的手机收到“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服务器上使用不同的帐户进行了测试,他们的测试添加了@符号。

任何可能导致这种情况的想法?谢谢!

1 个答案:

答案 0 :(得分:0)

最终发现问题,原因是smpp库中的一个选项默认为true,名为nullTerminateOctetStrings

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

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