您的位置:首页 > 大数据 > 物联网

CMPP3.0实现物联网卡发短信遇到的问题

2017-07-14 11:54 197 查看
当下物联网发展迅猛,物联网卡可以接受短信指令,实现千里之外尽可掌控。本人做过一个这类项目,把相关经验记录下来,分享给需要的人。

物联网卡通讯其实跟电话卡一样,可以使用CMPP协议。不过由于物联网卡位数为13位,未测试CMPP2.0是否支持,直接保险一点用的CMPP3.0协议。

因为CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡。

Dest_terminal_Id32*DestUsr_tlOctet String接收短信的MSISDN号码
Dest_terminal_type1Unsigned Integer接收短信的用户的号码类型,0:真实号码;1:伪码。
关于编码格式,一开始尝试了5种常用的编码,短信接收到中文还是乱码,解决方法如下:

*目前物联网卡通讯,如果是英文内容,则只支持Ascii码,也就是Msg_Fmt必须设置成0

如果是发送中文内容,则只支持UCS2编码,即Msg_Fmt必须设置成8

另外有个特别费解的问题是,如果是发中文内容,短信网关会自动在短信后面加上一串尾巴,类似【ayf】等。这个问题在开发的时候必须注意,以免发送的指令不能解析,需要做一些逻辑处理把尾巴去掉。*

关于号码选择类型:

物联网的用户号码类型选择Dest_terminal_type=0即可。若选择1会报错。

其他:

如遇到短信网关返回码,可查询以下网址看返回码解释

http://www.cnblogs.com/tuyile006/p/5849722.html

常见返回码:173 是物联网卡没开通短信功能造成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: