PDU格式

1.简单介绍 
SMS是由Etsi所制定的一个规范(GSM 03.40 和 GSM 03.38)。它可以发送最多160个字符,当使用7- bits编码的时候。8-bit编码(最多140个字符)通常无法直接通过手机显示;通常被用来作为数据消息,例如:smart messaging中的图片和铃声)和OTA WAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。一个以class 0 开头的16-bit的文本信息将在某些手机上作为Flash SMS显示(闪烁的SMS和警告SMS)。  
有两种方式来发送和接收SMS信息:使用文本模式或者使用PDU(protocol description unit) 模式。文本模式(可能某些手机不支持)实际上也是一种PDU编码的一种表现形式。在显示SMS信息,可能使用不同的字符集和不同的编码方式。最常见的选择是"PCCP437", "PCDN",  "8859-1", "IRA" 和 "GSM". 这些都通过读取应用程序的at-command中的AT+CSCS指定。如果你想阅读手机上的信息,手机会为你选择一种合适的编码。那么一个可以阅读SMS消息的应用要么使用test模式,要么是PDU模式。如果使用text模式,那么应用将绑定(或限制在)一些可能的编码选择中。在某些情况下是不够的,如果使用PDU模式,那么就可以使用任何编码方式。  
2.接收  
PDU串不仅仅 包含了消息,而且还有很多发送者的元信息,他的SMS服务中心,时间标志等等。这些都是以8位字节的16进制数,或者半8位字节的十进制数。以下的字符书我从Nokia 6110 收到的信息,当从www.mtn.co.za发送的串是"hellohello"的时候。  07 917238010010F5 040BC87238880900F100009930925161958003C16010 ,这个八位串包含了三个部分:第一个8位表示SMSC信息的长度("07"),SMSC的信息 ("917238010010F5"),和SMS_DELIVER部分 (GSM 03.40中指定)。  
注意: 有些手机(例如:Ericssson 888?)头三个部分(被着色)在PDU模式下被省略。  
8位 描述  
07 SMSC信息的长度。(在这个例子里是7个八位)  
91 SMSC的地址类型 (91意味着国际格式的电话号码)  
72 38 01 00 10 F5 服务中心号码(半八位的十进制数)电话号码是一个奇数(11),因此加入F来保证8位。这个服务中心的号码是"+27381000015"  
04 SMS_DELIVER的第一个8位。  
0B 地址长度。发送号码的长度(0B hex = 11 dec)  
C8 发送号码的地址类型  
72 38 88 09 00 F1 发送号码(半八位的十进制数),有一个F结尾。  
00 TP-PID.协议标识  
00 TP-DCS 编码方式  
99 30 92 51 61 95 80 TP-SCTS.时间邮戳(半8位)  
0A TP-UDL.用户数据长度,信息的长度。TP-DCS域表明是7-bit格式的数据。因此长度在这里是一个10个7-bits。如果TP-DCS被设置成8-bit或者Unicode,那么长度就应该是9个八位长度。  
E8329BFD4697D9EC37 TP-UD. 7-bit编码的信息。  
所有的8位都是16进制编码,除了服务中心号码,发送号码和时间邮戳;他们都是十进制的半8位编码。在PDU串的结尾部分包含了一些16进制的8-bits数据,但他们实际7-bits数据。  
十进制的半8位只需要将高位和地位交换就可以得到实际的数值。例如:"72 38 88 09 00 F1" 到  "27 83 88 90 00 1F"。因为电话号码是一个奇数,没有办法组成8位编码,所以使用F来补齐。在解析时间邮戳的时候("99 03 29 15 16 59 08"),前6位代表日期,后6位代表时间,最后2位是时区。  
3.Flash SMS  
在某些手机上(所有的Nokias,某些Siemens, Ericsson, Motorola 等等..)class 0信息将被显示为一种 flash SMS信息。这些信息只要一到达,将立即显示在屏幕上,而不需要按任何按钮。如果数据的编码方式是设置成16-bit unicode  (ucs2), 而且信息以"0001"开头,那么它将作为一个闪烁的flash message显示。  
 
Octet Value Description  
TP-DCS 18 16 bits (UCS2), message class 0 
TP-VP AA Validity period  
TP-UDL 0C User Data Length, 12 octets  
TP-UD 00 01 00 41 00 6C 00 65 00 72 00 74 User Data, message "Alert"  
这个表显示了Flash SMS中的相关信息。  
第一个unicode字符("00 01")使能闪烁。这样的消息最长就是69个unicode字符。  
4.Nokia ICON  
这是一个OTA (On The Air) bitmap.  
这个文件是从Nokia论坛下载而来。在"Smart Messaging"连接中。 
PDU  
type 44  
RP:0 (no reply path)  
UDHI:1 (UD begins with a header)  
SRI:0 (no status report will be returned)  
MMS:1 (no more messages)  
MTI:00 (SMS-deliver)  
OA 0B  
91  
6302752852F1  
length:11 digit  
type: international,E.164/E.163  
number: 36 20 5782251  
PID 00  
PDU content: short message  
DCS F5  
data coding: 8 bit  
message class: 1  
SCTS 991012  
114343  
40  
date: 99/01/21  
time: 11:34:34  
timezone: GMT+1  
UDL 89  
137 octets  
UD UDH 06  
05  
04  
1583  
1583  
length of header: 6 octets  
information element type: NBS port addressing  
information element length: 4 octets  
destination port: CLI icon  
source port: CLI icon  
OTA bitmap 
hdr 00  
48  
0E  
01  
infofield: last octet, no compression,  
no palette, 8 bit, 0 animated icons  
width: 72 pixel  
height: 14 pixel  
depth: 1 ?  
image  
 
data 
3FF00110005B0001E8  
7FF802A801A500021C  
3FF80C470101000408  
7FF808010081001C04  
3FF008150081001304  
7E10183F0058803A84  
7DF030490064802C9C  
7E501855002D80473C  
3AD0082A8058404218  
39B005010060C04930  
105005BE0042203220  
1A1007620046600C40  
09E001BB003B900840  
04200096000
posted @ 2006-10-24 15:13  Rookie.Zhang  阅读(929)  评论(0编辑  收藏  举报