
如何发送PDU短信.docx
11页如何发送 PDU 短信1、 PDU 简介及其格式PDU 是大多数终端通讯的核心,只有少数终端只支持 TEXT 短信PDU 模式比起 TEXT模式可以提供更为强大的功能,但其编码较 TEXT 模式困难无论哪种模式,我们都可以通过 AT 命令控制终端实现短信的发送,接收,查询等操作下面先介绍 PDU 的构成及编码解码PDU 的构成:PDU 是一串由 ”0-9””A-F”,”a-f”的字符组成表面上看起来是由一组 16 进制的数组成,每 2 字符组成一个 Octet (例如: ’23’=0x23,’2a’=0x2a,均为 16 进制)举例说明:2、 发送 PDU 短信格式解析例如发送的 PDU 短信内容如下:0891683110808805F031000B813135287338F600080B08828265E55FEB4E50对比 3GPP 协议如下: []TPDU08 91 683110808805F0 31000B813135287338F600080B08828265E55FEB4E50分析如下:SCA 结构部分:08: ,SCA 短信中心号码长度,16 进制数表示,指示后面的和内容的长度。
这里指示后面的 91(type_addr)和 683110808805F0(number),共 8 个字节91: ,地址类型十六进制 91 对应二进制 10010001对照如下结构,91 表示号码类型为国际号码,NPI 为 ISDN/telephone numbering plan结构如下:bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit01 Type-of-number Numbering-plan-identification1 0 0 1 0 0 0 1Type-of-number(bit6-bit4),取值如下:0 0 0 用户不了解目标地址号码信息时填写,此时地址号码由网络侧组织0 0 1 国际号码或者用户认为是国内范围也可以填写此值0 1 0 国内号码,不允许加前缀或后缀0 1 1 本地网络的特定号码,用于管理或者服务,用户不能选用此值1 0 1 号码类型为 GSM 的缺省编码方式1 1 0 短小号码1 1 1 扩展保留Numbering-plan-identification(bit3-bit0 ),取值如下:(注:当 bit6-bit4 取值为 000,001,010 时才有效,其他情况 bit3-bit0 无效)0 0 0 0 号码由网络侧的号码方案确定。
0 0 0 1 ISDN/telephone numbering plan0 0 1 1 Data number plan0 1 0 0 Telex number plan1 0 0 0 National number plan1 0 0 1 Private number plan1 0 1 0 ERMES number plan683110808805F0:,短信中心号码这里表示的是深圳联通的短信中心号码:8613010888500这里对短信中心号码以每两个号码为一组进行反转,然后形成 的值,如果短信中心号码为奇数,则最后一位补 F 后,再进行反转如果为偶数,则不需要补 F.TPDU 结构部分:31000B813135287338F600080B08828265E55FEB4E50 : TPDU分解后与 TPDU 的数据结构对应如下:1 Octet 1 Octet2-12 Octet 1 Octet1 Octet1 Octet1 OctetRP UDHI SRR VPF RD MTI MR DA PID DCS VP UDL UDBit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit00 0 1 1 0 0 0 1 00 0B813135287338F600 08 0B 08 828265E55FEB4E50具体分解如下:31:对应 8bit 二进制 00110001 ,与上图的对应说明如下:指示该条短信需要短信状态报告,VP(有效期)段有效,格式为 absolute,短信发送方向为 MS to SC,更多对应说明见如下紫色部分:00: MR 短信标识符,这里取值为 0。
0B813135287338F6:DA:目标地址,与 SCA 的定义一样0B 表示长度是 11 这里按照号码阿拉伯数字统计,81 表示短信类型为未知号码类型,SIM 卡号码为 1353823783600: PID 协议指示,表示点对点协议08 : DCS,用户数据的编码方式, 08 对应 8bit 二进制 00001000,对应 UCS2 编码规则,见对应紫色部分0B :VP,短信在 SC 中保留的有效期这里对应 (VP+1) * 5 minutes,为 60 分钟08: UDL,用户数据长度,这里为 8 字节828265E55FEB4E50: UD,用户数据,这里是 UCS2 编码,对应的汉字是“节日快乐” 如上所有的对应关系,均可以下面找到:---------------------------------------------------------------------------------------------------------------------------------RP Bit7 回复短信路径的设置指示,取值如下:0: 没有设置1: 设置,指示回复短信与发送时具有相同的 SC 号码设置,返回路径相同。
UDHI Bit6 用户数据头的指示,取值如下:0: 用户数据段只有短消息的内容1: 用户数据段出了短消息外,还包含有一个数据头SRR Bit5 状态报告请求指示0: 不需要一个短信发送成功的状态报告消息1: 需要一个短信发送成功的状态报告消息Bit4VPFBit3指示 VPF 字段的有效性,格式指示,取值如下:Bit4 bit30 0 VP 段无效1 0 VP 段有效,格式为 relative,现在只提供此格式0 1 VP 段有效,格式为 enhanced1 1 VP 段有效,格式为 absoluteRD Bit2 指示 SC 是否需要接受一个仍保存在 SC 中,与以前同一 OA 发出具有相同的 MR 和 DA 的短消息,取值如下:0: 接受1: 不接受Bit11 OctetMTIBit0短消息类型,取值如下:bit1 bit00 0 SMS-DELIVER (in the direction SC to MS)0 0 SMS-DELIVER REPORT (in the direction MS to SC)1 0 SMS-STATUS-REPORT (in the direction SC to MS)1 0 SMS-COMMAND (in the direction MS to SC)0 1 SMS-SUBMIT (in the direction MS to SC)0 1 SMS-SUBMIT-REPORT (in the direction SC to MS)1 1 Reserved 1 Octet MR 短信标识符,取值 0-2552-12 OctetDA 目的地址,与 SCA 的定义一样。
总共是 2-12 Octets故 DA 段最长的地址号码个数是 201 Octet PID 0bit-7bit bit7 bit6 (此处我们取 bit7=0,bit6=0)0 0 分配 bits0-bit5,取值定义如下1 0 分配 bits0-bit5,取值定义如下0 1 保留1 1 分配 bits0-bit5,为 SC 的特殊用途bit5 ,取值如下:0: no networking ,but SME-TO-SME protocol1: telematics interworking (此情况下, bit4-bit0 的取值有效)Bit4-bit0 ,telematic devices 类型指示:若取值为 1 0 0 1 0,则表示 Email,其他取值暂不支持DCS,用户数据的编码方式,具体编码规则如下:Bit7 Bit6 Bit5 Bit4 Bit3-Bit00 0 0: 短消息没有压缩1: 短消息被压缩0: 指示bit1,bit0 保留1: bit1,bit0为短消息类型指示Bit3 Bit2 短消息编码指示0 0:GSM 7bit 缺省编码0 1:8bit 数据1 0:UCS2 编码方式1 1:保留值Bit1 Bit0 短消息类型指示0 0: Class0,提供显示并回复 SC 已收到,但不存储0 1: Class1,存储到 NV 中(当 NV 满时存储到SIM 卡中)1 0: Class2,SIM 专用,存储后将存储状态回复给SC;若 SIM 卡满则上报给 SC 失败并带原因1 1: Class3,存储到 TE.但 MS 接收到短信还没有传递到 TE 就给 SC 回复。
0100-1011 保留1100 丢弃短信内容,出现消息等待提示,用户数据采用 GSM 7bit 编码Bit3-bit0 设置与 bit7-bit4=1101 时的设置一样1101 存储短信,出现消息等待提示,用户数据采用 GSM 7bit 编码Bit3 提示指示,取值如下:0:消息等待提示功能无效1:激活消息等待提示功能Bit2 保留,取值为 0Bit1 bit0 短消息类型指示0 0 :有语音留言等待0 1 :有消息等待1 0 :有 E-mail 消息等待1 1 : 其他未知类型的消息等待1110 存储短信,出现消息等待提示,用户数据采用无压缩的 UCS2 编码Bit3-bit0 设置与 bit7-bit4=1101 时的设置一样1111 Data coding/message class Bit3 保留,取值为 0Bit2 短消息的编码方式,取值如下:0 :GSM 7bit 缺省编码1 : 8bit 数据Bit1-bit0 短消息类型指示0 0:Class0, 提供显示并回复 SC 已收到,但不存储0 1: Class1,存储到 NV 中(当 NV 满时存储到 SIM卡中)1 0:Class2,SIM 专用,存储后将存储状态回复给SC;若 SIM 卡满则上报给 SC 失败并带原因1 1:Class3, 存储到 TE.但 MS 接收到短信还没有传递到 TE 就给 SC 回复。
表示有效期,时间从短消息被 SC 接收到开始计算如果 VPF=00,则该字段缺失,时间表示如下:VP 取值 说明0 to 143 (VP+1) * 5 minutes144 to 167 12 hours + ((VP-143) * 30 minutes)168 to 196 (VP-166) * 1 day197 to 255 (VP-192) * 1 week: 用户数据长度, UDL 的取值取决于具体的编码方式:若是 7bit 缺省编码,则表示共有多少个 septets若是 8bit 编码,则表示共有多少个 octets若是 UCS2 编码,则 UDL 表示共有多少个 octets若是有压缩的 7-bit or 8bit or UCS2 编码,则 UDL 表示压缩后共有多少个 octets对于压缩的短信编码,的数据长度不超过 160 septets;对无压缩编码的短信,长度不超过140 octets用户数据,其有效数据由参数 UDL 决定知道了 PDU 短信结构,我们就可以自己手工构造 PDU 短信,根据需要设计出各种类型的短信(如果网络侧也支持的话) 。
