Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

路漫漫,长修远,我们不能没有钱
随笔 - 172, 文章 - 0, 评论 - 257, 引用 - 0
数据加载中……

基于cmpp协议的超长短信格式

//当短信超过70个汉字时短信的第一部分
E0 00 00 00               //4byte 数据总长度
05 00 00 00               //4byte 命令号
3F 38 0B 01               //4byte 流水号
31 3B 6E 0B A2 84 61 F0   //8byte msg_id
30 35 37 37 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  //21byte Dest_Id
00 00 00 00 00 00 00 00 00 00  //10byte  Service_Id
00                        //1byte TP_pid
01                        //1byte TP_udhi
08                        //1byte Msg_Fmt
38 36 31 33 37 35 30 32 34 33 33 30 33 00 00 00 00 00 00 00 00  //21byte Src_terminal_Id
00                        //Registered_Delivery
8B                        //Msg_Length

06                        //表示超长短信头信息的长度
08                        //表示以两个字节的数字mod 65536 作为一条超长短信的标识
00 2A                     //定义了一条超长短信的标识号

02                        //超长短信总条数
01                        //序号
00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 4E 00 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 00 61 00 61 00 61 00 61 00 61 00 61  //短信内容
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00   //8byte Reserved


//当短信超过70个汉字时短信的第二部分
78 00 00 00
05 00 00 00
49 38 0B 01
31 3B 74 8B A2 84 62 0D
30 35 37 37 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00
01
08
38 36 31 33 37 35 30 32 34 33 33 30 33 00 00 00 00 00 00 00 00
00
23

06 08 04 00 2A           //06表示短信正文内容从6+2的位置开始读取
02                       //超长短信总条数
02                       //序号
00 61 00 61 00 61 00 61 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62  //短信内容
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 //8byte Reserved

posted on 2006-02-20 09:36 Khan 阅读(7393) 评论(17)  编辑 收藏 引用 所属分类: 周边技术

评论

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

请问怎么判断是超长短信呢?
06 08 04 00 2A //06表示短信正文内容从6+2的位置开始读取《-这部分不是固定的
有时候也有5 0 3 13 开头的
2006-02-22 10:02 | cmpp3

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

是啊,不同品牌的终端 这段也不相同,多测试几个就知道了,我当时只测试了nokia的,好象siemens的这段数据有些不同
2006-02-22 10:05 | Khan's Notebook

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

楼主,有时候收到msgfrm=8 信息中有00 A0这个两字,但转换完后就变成乱码?,楼主有没有遇到这种情况??
2006-02-23 11:34 | CMPP3

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

msgfrm=8?
我没有太注意
2006-02-23 11:39 | Khan's Notebook

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

msgfrm=8 就是UCS2啊
2006-02-23 12:02 | cmpp3

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

没有注意过
2006-02-23 12:33 | Khan's Notebook

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

# re: 基于cmpp协议的超长短信格式
msgfrm=8 就是UCS2啊
cmpp3


刚刚才发现你说d 应该是msg_fmt=8 这个才是ucs2编码
你自己看过上面的数据包就应该发现,这个数据包的msg_fmt也同样=8
所以我不确定你负责解码部分代码的正确性
2006-03-10 15:30 | Khan's Notebook

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

如果用cmpp协议的话,怎么设置内容呢?
byte[] flagByte = new byte[7];
flagByte[0] = (byte)6;
flagByte[1] = (byte)8;
flagByte[2] = (byte)4;
flagByte[3] = (byte)0;
flagByte[4] = (byte)42;
flagByte[5] = (byte)2;
flagByte[6] = (byte)1;
将这个数组的内容加在协议的msgContent前面嘛?

不过这样做了,好像不行
2006-03-16 18:13 | 游客

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

非常感谢!
你是从什么地方知道叫做cmpp协议的???
2006-06-08 08:08 | 刘昱

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

楼主现在说的是从移动网关发过来的超长短信,能讲一下,SP和ISMG之间发送超长短信的过程吗?谢谢
2006-07-06 11:45 | summerchow

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

。。。。。。。。。。。。。。。。这笔记好象是我的
2006-09-11 18:50 | hb

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

# re: 基于cmpp协议的超长短信格式
非常感谢!
你是从什么地方知道叫做cmpp协议的???

我本来就是从cmpp的数据包中解析出来的
2006-09-11 19:03 | 思春贴调查员(Khan)

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

如果用cmpp协议的话,怎么设置内容呢?

这里是接收部分的数据包解析,
发送部分你对照cmpp协议的submit数据包就可以了
2006-09-11 19:05 | 思春贴调查员(Khan)

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

楼主现在说的是从移动网关发过来的超长短信,能讲一下,SP和ISMG之间发送超长短信的过程吗?谢谢

过程部分参阅移动的cmpp协议, 相当详细,网上很多下载
2006-09-11 19:06 | 思春贴调查员(Khan)

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

06 08 04 00 2A //06表示短信正文内容从6+2的位置开始读取
说明楼主的一个错误
06表示超长短信头信息的长度
08表示以两个字节的数字mod 65536 作为一条超长短信的标识
002a定义了一条超长短信的标识号
2007-04-24 16:58 | 小和尚

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

受教了受教了..这几个字节找不到资料..有没有办法分析..所以自己瞎猜的..谢谢楼上了
2007-04-24 17:24 | Khan's Notebook

# re: 基于cmpp协议的超长短信格式  回复  更多评论   

GG,能否给我一份代码,跪谢!chrc@163.com
2009-06-15 11:33 | 小陈

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理