您的位置:首页 > 编程语言 > PHP开发

GSM TP_UD 结构分析

2014-05-06 12:19 127 查看
参考GSM 0304 9.2.3.24

TP_UD 结构如下:



UDL:整个User Data 长度

UDHL: User Data 中 Header 长度

User Data 中Header的结构:



此Header结构可由多个Head Element 组成,每个Head Element 的结构为


IEIa:Element a 的命名id

IEIDLa:Element a 的长度

IEDa: Element a 的数据内容(字节长度即为IEIDLa)

其中IEI:的命名id为以下定义的值:



其中常用的一个值为 "00",这个值可以实现多条短信的连接功能

concatenated short message:标签的具体结构如下



说明:第一个字节为信息的序号不可超过256,第二个字节为总共有几条信息要合并(0·255),第三个字节为这条信息是第几条需要合并的信息

举例:一条短信比较长,第一部分有67个汉字,第二部分有30个汉字,如何将两部分信息连接到一起,在手机上显示是一条呢,具体格式如下

第一条信息: 0x8C0500030a0201XXXXXXXX.....,UDL= 0x 8c=140,计算方式:(UDL占位符长度 1) + (UDHL长度 =5 ) + 67汉字*2 = 1 + 5+ 67*2 = 140,

其中的00030a0201:IEI=00,连接信息标志,IEIDL=03 后续的0a0201的字节长度,IED = 0a0201, 序列号+信息共2条+当前第1条,XXX...即为信息的ucs2编码内容,长度67*2

第二条信息: 0x420500030b0202XXXXXXXX.....,同理UDL=0x 42=66,计算方式:(UDL占位符长度 1) + (UDHL长度 =5 ) + 30汉字*2 = 1 + 5+ 30*2 = 66

其中的00030b0202:IEI=00,连接信息标志,IEIDL=03 后续的0b0202的字节长度,IED = 0b020b, 序列号+信息共2条+当前第2条,XXX...即为信息的ucs2编码内容,长度30*2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: