别人发来的短消息;
1.结构(字段顺序):
SMSC(来源短消息SMSC号码,1~20octs),
TP-DUH(TP-DU头部,1oct),
TP-OA(来源地址号码,2~12octs),
TP-PID(协议标志,1oct),
TP-DCS(编码标志,1oct),
TP-SCTS(SMSC时间戳,14octs),
TP-UDL(TP-UD字段的长度,1oct),
TP-UD(短消息内容,TP-UDL octs);
2.SMSC字段:
短消息服务中心号码。
第2oct表示SMSC号码类型,第3及之后的octs表示号码BCD码编码,第1oct个SMSC字段占用的oct数,但是第1个oct不算在内。
SMSC号码类型oct的bit7恒定为1,
bit6~bit4表示号码种类:
0 0 0 未知
0 0 1 国际号码
0 1 0 国内号码
0 1 1 网络特殊号码
1 0 0 Subscriber number
1 0 1 Alphanumeric, (coded according to GSM TS 03.38 7 bit default alphabet)
1 1 0 Abbreviated number
1 1 1 为扩展保留
bit3~bit0:表示拨号方案:
0 0 0 0 未知
0 0 0 1 ISDN/电话
0 0 1 1 数据号码
0 1 0 0 传真号码
1 0 0 0 国内号码
1 0 0 1 私有号码
1 0 1 0 ERMES numbering plan
1 1 1 1 保留
其他值保留。通常情况下,0x90~0x9F,在号码前加"+",否则不变。
号码octs:压缩BCD编码,每个数码占半个oct,若数码位数为奇数,最后一个oct的高4位用0xF补充,尊循前面的号码在低4位,后面的号码在高4位的原则。如号码:+8613800100050就成了683108100050F0,前面在加上0891,变为0891683108100050F0,就成了完整的SMSC字段。
3.TP-DUH字段
在SMS - Deliver结构中,TP-DUH字段只有以下字段有效,其他位取值忽略。他们是:
1)TP_MTI:
bit1 bit0 意指
0 0 SMS - Deliver
0 1 SMS - Submit - Report
1 0 SMS - Status - Report
1 1 保留
2)TP-MMS: bit2 值1/0 是否有更多的短消息需要接收(有的话暂不显示,有可能是长短消息);
3)TP-SRI: bit5 值1/0 发送方是否要求发送回执;
4)TP-UDHI: bit6 值1/0 TP-UD字段是否含有头部;
5)TP-RP : bit7 值1/0 是否可以使用回复路径功能(回复时可以使用SMSC字段里指明的短消息服务中心号码)。
4.TP-OA字段:
来源电话号码,指明这个短消息来自这个号码。
第一个oct:号码位数(国际号码不包括前面的“+”)的十六进制形式(此处与前述SMSC字段不同)。
第二个oct:号码类型。
剩下的号码octs:压缩BCD编码形式的号码。
号码类型、号码octs,参见前述SMSC字段相关介绍。
5.TP-PID字段:(协议标志,貌似我国几大移动运营商未使用,可忽略)
6.TP-DCS字段:
TP-UD字段的编码标志。
0x00~0x3F:一般短消息提示
bit5 值1/0 是否压缩 //GSM标准压缩算法,不明白。
bit4 值1/0 是否含有分类标志码
bit3 bit2 使用的字符集
0 0 默认字母表(与ASCII类似,7bits数据)
0 1 8bits数据
1 0 16bits数据(USC2)
1 1 保留
bit1 bit0 Message Class//还没弄明白
0 0 0类短消息
0 1 1类短消息 一般指关于手机的特殊短消息
1 0 2类短消息 关于SIM卡的特殊短消息
1 1 3类短消息 一般指关于短消息应用程序的特殊短消息
0x40~0xBF:保留
0xC0~0xCF:短消息等待提示,不存储。使用默认字母表(类似ASCII)编码。
bit3 值1/0 是否产生提示
bit2 保留,置0;
bit1 bit0 意指
0 0 语音信箱
0 1 传真
1 0 电子邮件
1 1 其他
0xD0~0xDF:短消息等待提示,存储。字符集同上,其他位的意义同上。
0xE0~0xEF:短消息等待提示,存储。TP-UD使用USC2编码,其他位的意义同上。
0xF0~0xFF:数据编码方式和Message Class。
bit3 保留,置0。
bit2 值1/0 表示8-bit编码/默认字母表。
bit1 bit0 意指同0x00~0x3F,同样没弄明白。
7.TP-SCTS:时间戳(短消息服务中心收到短消息发送请求的时间)
结构:年月日时分秒各2octs,时区2octs,共14octs,压缩BCD编码前面的字节在低4位。
其中,时区字段内存储的值是值,短消息服务中心所在地时间与标准时间(格林威治时间)之间1刻钟(15分钟,1/4小时)的数量。
时区字段数值的bit7 值1/0 表示东时区/西时区
比如,中国所用时区示为东8区,时区字段数值就是32,编码后为23。
8.TP-UDL:TP-UD字段字节数(十六进制)
9.TP-UD:短消息内容
1)TP-UD的头部,根据TP-DUH的TP-UDHI判断是否存在。
TP-UD的头部结构:
TP-UDHL(头部长度,不包含自身,1oct);
TP-UDE1I(头部元素1ID,1oct)
TP-UDE1L(头部元素1内容的长度,1oct)
TP-UDE1(头部元素1内容,TP-UDE1L个octs)
... ...
TP-UDEn
... ...
2)TP-UD:的内容编码。