CMPP3.0实现物联网卡发短信遇到的问题
2017-07-14 11:54
197 查看
当下物联网发展迅猛,物联网卡可以接受短信指令,实现千里之外尽可掌控。本人做过一个这类项目,把相关经验记录下来,分享给需要的人。
物联网卡通讯其实跟电话卡一样,可以使用CMPP协议。不过由于物联网卡位数为13位,未测试CMPP2.0是否支持,直接保险一点用的CMPP3.0协议。
因为CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡。
关于编码格式,一开始尝试了5种常用的编码,短信接收到中文还是乱码,解决方法如下:
*目前物联网卡通讯,如果是英文内容,则只支持Ascii码,也就是Msg_Fmt必须设置成0
如果是发送中文内容,则只支持UCS2编码,即Msg_Fmt必须设置成8
另外有个特别费解的问题是,如果是发中文内容,短信网关会自动在短信后面加上一串尾巴,类似【ayf】等。这个问题在开发的时候必须注意,以免发送的指令不能解析,需要做一些逻辑处理把尾巴去掉。*
关于号码选择类型:
物联网的用户号码类型选择Dest_terminal_type=0即可。若选择1会报错。
其他:
如遇到短信网关返回码,可查询以下网址看返回码解释
http://www.cnblogs.com/tuyile006/p/5849722.html
常见返回码:173 是物联网卡没开通短信功能造成的。
物联网卡通讯其实跟电话卡一样,可以使用CMPP协议。不过由于物联网卡位数为13位,未测试CMPP2.0是否支持,直接保险一点用的CMPP3.0协议。
因为CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡。
Dest_terminal_Id | 32*DestUsr_tl | Octet String | 接收短信的MSISDN号码 |
---|---|---|---|
Dest_terminal_type | 1 | Unsigned Integer | 接收短信的用户的号码类型,0:真实号码;1:伪码。 |
*目前物联网卡通讯,如果是英文内容,则只支持Ascii码,也就是Msg_Fmt必须设置成0
如果是发送中文内容,则只支持UCS2编码,即Msg_Fmt必须设置成8
另外有个特别费解的问题是,如果是发中文内容,短信网关会自动在短信后面加上一串尾巴,类似【ayf】等。这个问题在开发的时候必须注意,以免发送的指令不能解析,需要做一些逻辑处理把尾巴去掉。*
关于号码选择类型:
物联网的用户号码类型选择Dest_terminal_type=0即可。若选择1会报错。
其他:
如遇到短信网关返回码,可查询以下网址看返回码解释
http://www.cnblogs.com/tuyile006/p/5849722.html
常见返回码:173 是物联网卡没开通短信功能造成的。
相关文章推荐
- 开发键盘过滤驱动实现模拟按键过程中遇到的问题___续
- 处理JSP中文跨页面间传参乱码的问题有两种方法实现方法(每个搞JSP的最常遇到的问题之一) 实例版:)
- 我遇到的问题JspSmartUpload组件实现表单和文件同时上传
- Multibin 实现遇到的两个问题
- java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
- 完全实现 各种变态路径的解压缩,支持在 Web 上运行(在数字签名中遇到的问题,想到了用这种写法)
- 遇到一个问题,网站可以实现让客户不能加入收藏夹吗?
- 遇到的一个设计问题,两种方法的实现
- 关于在windows2003下面实现mrtg监控所遇到的问题
- .NET : 在实现WCF的双工服务时可能遇到的问题
- linux遇到的网卡问题以及解决办法
- 我遇到的Myeclipse 实现Jena推理时出现的问题及解决办法
- Touch001项目实现过程中遇到的一个技术问题
- java实现插入mysql二进制文件,blob类型,遇到问题及解决办法
- 最近遇到一个非常棘手的需求是关于邮件转发的问题,请大家来帮忙给出出主意如何实现。
- 实现鼠标钩子遇到的一个问题
- 通过类库来实现多窗体windows程序遇到了些问题,请大家有空帮忙看一下,谢谢
- 使用WINHEX脚本实现DOC批量提取遇到的问题
- 11.29 电驴设置对话框形式的实现中遇到的问题
- (转)c# 用sendkeys类 实现ctrl+C遇到的问题