我正在尝试创建一个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服务器上使用不同的帐户进行了测试,他们的测试添加了@符号。
任何可能导致这种情况的想法?谢谢!
答案 0 :(得分:0)
最终发现问题,原因是smpp库中的一个选项默认为true,名为nullTerminateOctetStrings
它在消息的末尾添加了00,听起来这是SMPP 3.4标准所要求的,但是我们的smsc并不喜欢它。我想理想情况下我会修复smsc,但这是由第三方提供的,所以我只是关闭了null终止。
有类似问题和更多信息的人:https://www.mail-archive.com/devel@kannel.3glab.org/msg06765.html