关于移动长短信(CMPP协议对长短信的支持)

本文介绍了移动长短信的背景、原理及实现方式,重点解析了CMPP协议中长短信的TP_udhi协议头,包括6字节和7字节两种形式,以及在实际操作中遇到的问题和解决方案。通过设置TP_udhi、MsgFmt和正确的分包信息,确保长短信能在手机终端正确合并显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1、背景
  通过CMPP协议和移动网关连接,通过sumbit包进行提交短信(SP->ISMG),Submit包的对消息内容长度(Msg_Length)的规定为一个字节,当消息格式(Msg_FMT)为0时,<=160 ,其它时为<=140,发送包含汉字的短信基本上就是超过140字节(甚至更少)就切分,然后分几条发给客户,而且也不能保证顺序,用户体验不好,于是长短信的支持就成为必须的事情了。

2、原理


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


2.1.1   TP_udhi=1
  在Msg_content中加入6个字节或者7个字节的udhi头做为前缀,当6字节时,每条短信最多67字,7时为66字。

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, 这个值表示剩下短信标识的长度
byte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很 重要。
byte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。
byte 6 : NN, 这批短信的数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值