长短信实现系列之移动CMPP2.0(转)

本文介绍了长短信的实现原理,包括2.1.1) TP_udhi=1的6个字节和7个字节协议头的详细解释,以及在CMPP2.0协议下的短信网关如何处理长短信。通过实验发现,设置TP_udhi为1,添加特定的协议头,并使用Msg_Fmt为ucs2是成功发送长短信的关键。在实际操作中,7字节协议头可能更有优势,因为它可以降低批次冲突的概率。
摘要由CSDN通过智能技术生成

原文链接:http://blog.csdn.net/pwlazy/archive/2010/03/05/5349625.aspx

1)背景
目前我们的短信发送基本上就是超过140字节(甚至更少)就切分(移动普通短信超过140个字节甚至都发送不了,联通倒是可以),然后分几条发给客户,而且也不能保证顺序,用户体验不好,
运营这边抱怨说精简再精简还是超过了字数,于是长短信的支持就成为必须的事情了。

2)原理


2.1)长短信的协议和普通短信的协议稍有不同


2.1.1) TP_udhi=1
在Msg_content中加入6个字节或者7个字节的udhi头做为前缀

2.1.2)6个字节的TP_udhi协议头
05 00 03 XX MM NN
byte 1 : 05, 表示剩余协议头的长度
byte 2 : 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。
byte 3 : 03, 这个值表示剩下短信标识的长度<

java cmpp2.0 3.0 无jar纯源码demo(含服务端测试工具)[20171205] 找了挺多资料,CMPP的资源很多,但可以参考可用的不多, 特此开源cmpp的DEMO程序,无jar插件,纯源码实现。 语言为:java 工具为:Intellij IDEA 2017 附带第三方CMPP服务器测试工具,便于调试。 注解详细如: private long Msg_Id=0x00;//信息标识,由SP接入的短信网关本身产生,本处填空。 private byte Pk_total=0x01;//相同Msg_Id的信息总条数,从1开始 private byte Pk_number=0x01;//相同Msg_Id的信息序号,从1开始 private byte Registered_Delivery=0x01;//是否要求返回状态确认报告:0:不需要 1:需要 private byte Msg_level=0x01;//信息级别 private String Service_Id="";//业务类型,是数字、字母和符号的组合。 private byte Fee_UserType=0x00;//计费用户类型字段 0:对目的终端MSISDN计费; 1:对源终端MSISDN计费;2:对SP计费 private String Fee_terminal_Id="";//被计费用户的号码 private byte TP_pId=0x00;//GSM协议类型 private byte TP_udhi=0x00;//GSM协议类型。详细是解释请参考 private byte Msg_Fmt=0x0f;//信息格式0:ASCII串 3:短信写卡操作 4:二进制信息 8:UCS2编码 (0f)15:含GB汉字 private String Msg_src="";//信息内容来源(SP_Id) private String FeeType="01";//资费类别 01:对“计费用户号码”免费 02:对“计费用户号码”按条计信息费 03:对“计费用户号码”按包月收取信息费 04:对“计费用户号码”的信息费封顶 05:对“计费用户号码”的收费是由SP实现 private String FeeCode="000000";//资费代码(以分为单位) private String ValId_Time="";//存活有效期 private String At_Time="";//定时发送时间 private String Src_Id="";//源号码 SP的服务代码或前缀为服务代码的号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码 private byte DestUsr_tl=0x01;//接收信息的用户数量(小于100个用户) private String Dest_terminal_Id="";//接收短信的MSISDN号码 private byte Msg_Length;//信息度(Msg_Fmt值为0时:<160个字节;其它<=140个字节) private byte[] Msg_Content;//信息内容 private String Reserve="";//保留
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值