按照以前的老套路见(长短信系列之联通sgip1.2
和长短信系列之移动cmpp2.0
)
1)第一阶段
首先上来就是下面的条件
- 在MsgContent前加入7个字节的TP_udhi头(和此前开发的移动、联通一样)
- 在整个消息末尾即(Reserve)之后加入可选参数 TP_udhi 即 0x00 0x02 0x00 0x01 0x01(这和移动联通不同)
测试结果
那一台海尔的手机做的测试,共收到2条,收到第一条,正常,收到第二条乱码,这和我们预期差的太远,我们希望是一条
2)第二阶段
我猜想是不是要加上可选参数Pktotal 和Pknumber(这两个东东在移动里是出现过的,联通没有这概念)
于是我在消息末尾加上
0x00 0x09 0x00 0x01 MM 0x00 0x0a 0x00 0x01 NN
MM 表示消息条数
NN 表示第几条
测试结果
只收到1条半截消息还是乱码
3)第三阶段
我下的一个模拟网关给我些启示,在开发环境中我仔细对比字节码都是对的,问题在哪?
我突然想到可能换个6字节的TP_udhi头试试,居然ok
此时的条件
- 在MsgContent前加入6个字节的TP_udhi头
- 在整个消息末尾即(Reserve)之后加入可选参数 TP_udhi 、Pktotal 和Pknumber
4)结论
- 电信和联通、移动还是有些差别的,特别是对7字节TP_udhi头不支持
- 要不要加上Pktotal 和Pknumber,我感觉不一定,我懒的试了,你可以试下
- 使用模拟网关可以帮你分析一些问题,增加成功率,最起码我后来发现,当我使用7字节7字节TP_udhi头,模拟网关分析的内容也是乱码,但使用6字节就正确了
- 在测试失败的情况下,从短信中心回馈的消息都是正确的,我怀疑是装在手机终端的那个卡不支持,导致失败
分享到:
相关推荐
基于电信smgp3.0协议的短信接口!简单测试通过
电信SMGP开发完整包,含电信SMGP3.0协议文档,smgpapi20100113.jar及源码,SMGP3.0服务端模拟器
电信SMGP3.0协议文档,对于sp运用接入实现开发有很大帮助,如果不理解或者开发有问题可以qq我 731394253
最新的SMGP3.0协议,区别于以往的SMGP2.0,主要增加了TLV字段,更便于鉴权
中国电信[2005]240号SMGP3.0
smgp 3.0 java版本的api,附件中含源代码。 程序封装了tlv字段的,并对长短信的封装。 最新的代码可以在:http://code.google.com/p/smgp/ 下载
中国电信电信smgp3.0协议, 适用范围 引用标准 缩略语 smgp协议概要smgp协议 参数定义 基于smgp协议的api函数 基于smgp协议的api函数说明
smgp3.0 source,中国电信短信网关协议开发
给公司做的SMGP电信接口,运行正常。丢包少可配置窗体数量。
{Authonr: LUOXINXI {Datetime: 2004/03/18 {单元描述:电信网关平台2.0协议应用程序主界面
电信SMGP3.0版本协议的封装实现,完整的项目工程,参考价值大。
SMGP3.0协议
使用C#开发的基于华为SMEIDll.dll库的SMGP 2.0、SMGP 3.0协议的短信上行、... 该程序代码在中国电信CDMA短信网关测试通过,实现了C网短信的上行和下行,下行分配采用SMGP 2.0和SMGP 3.0实现,程序直接与短信网关链接。
华为短信网关平台、中兴短信网关平台,根据两大主流...以上java文件就是实现移动、联通、电信的短信网关连接、提交短信、短信网关返回代码等相关信息。如有疑问可以加我qq(1718797180)联系,加时请注明来源和意图。
中国电信SMGP3协议 中国电信短消息网关协议(SMGP)3.0。本标准是在SMGP协议V2.0的基础上
中国电信集团公司企业标准(SMGP协议)(v3.0) (20050412)
电信smgp3.0java_api源码已经文档,连接短信网关收发短信的demo里面已经有
中国电信小灵通短信发送源代码.使用SMGP协议,Java开发环境