物联网通讯与普通短信通讯的区别和要注意的地方
Posted DotNet笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物联网通讯与普通短信通讯的区别和要注意的地方相关的知识,希望对你有一定的参考价值。
CMPP3.0中号码字段增加到32位,还增加了号码类型字段,可能是为了扩展不同类型的卡。
Dest_terminal_Id |
32*DestUsr_tl |
Octet String |
接收短信的MSISDN号码。 |
Dest_terminal_type |
1 |
Unsigned Integer |
接收短信的用户的号码类型,0:真实号码;1:伪码。 |
可是用CMPP3.0协议,也就是说发送短信到物联网卡、从物联网卡回复短信回来,都可以直接用这套CMPP3.0协议。那么跟发手机短信有何不同之处呢,以下就是几点不同:
1.关于编码格式
目前物联网卡通讯,如果是英文内容,则只支持Ascii码,也就是Msg_Fmt必须设置成0
Msg_Fmt |
1 |
Unsigned Integer |
信息格式: 0:ASCII串; 3:短信写卡操作; 4:二进制信息; 8:UCS2编码; 15:含GB汉字。。。。。。 |
如果是发送中文内容,则只支持UCS2编码,即Msg_Fmt必须设置成8
另外有个特别费解的问题是,如果是发中文内容,短信网关会自动在短信后面加上一串尾巴,类似【签名内容】等。这个问题在开发的时候必须注意,以免发送的指令不能解析,需要做一些逻辑处理把尾巴去掉。
CMPP去签名技术可以联系我,或者购买我的物联网CMPP通讯模块源码获得。qq271963990
2.关于长短信
我们知道一条短信只能发140个字节的内容,如果实际要发的内容超过这个数,就必须拆成多条发送,这样会有一些影响。为了发长短信,我们的CMPP发送程序必须做一些改造,具体请参考我的另一篇博文CMPP3.0 长短信实现方案
而对于物联网卡来说,收发长短信必须使用 7 位的协议头格式:06 08 04 XX XX MM NN
这也是要注意的一点,否则解析发送都会出错。
3.关于用户号码类型
物联网的用户号码类型选择Dest_terminal_type=0即可。若选择1会报错。
其他
如遇到短信网关返回码,可查询以下网址看返回码解释
http://www.cnblogs.com/tuyile006/p/5849722.html
或 http://www.jsons.cn/smscode/
常见返回码:173 是物联网卡没开通短信功能造成的。
这就是开发物联网通讯过程中的经验。
提纲 1 物联网数据卡系统源码——前篇 2 物联网数据卡系统源码——通信模块 2.2 协议封装和实现 3 物联网数据卡系统源码——Windows服务模块 3.1 Windows服务模块概述 3.2 Windows服务模块实现 3.3 高并发回调处理 3.4 部署安装 |
以上是关于物联网通讯与普通短信通讯的区别和要注意的地方的主要内容,如果未能解决你的问题,请参考以下文章
《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项