短信部分——PDU簡介及其格式

 (九) 短信部分——PDU簡介及其格式
  PDU是大多數手機短信通信的核心,僅有少數手機只支持Text模式(例如筆者的MOTO C330)。PDU模式比起Text模式能夠提供能爲強大的功能,但其編碼較Text模式困難。不管哪一種模式,咱們均可以經過AT指令控制終端實現短信的發送、接收、刪除等管理。下面主要介紹PDU的構成及編碼解碼。
  PDU的構成
  PDU是由一串由「0-9」及「A-F」組成。表面上看起來就是一組16進制的數所組成的。
  下面舉一個發送和接收的例子。
  一、 手機發送的一個PDU串:
  0891683108200805F011190D91683188902848F40008FF108FD9662F4E0067616D4B8BD577ED4FE
  對比3GPP協議獲得:(二進制代碼從左到右依次爲高位->低位)
  短信中心地址字段
  08 地址長度:8個字節,包括其後的91
  91 地址類型:10010001
   Bit7:1。始終爲1
   Bits 6,5,4:Type-of-Number(號碼類型):001,表明Internation Number。也便是號碼前加「+」。注意:對某些比較特殊的號碼,例如手機與小靈通的互通時,這裏不能設置爲001,而要設置成000,表明號碼前沒有「+」,不然沒法接收。
   Bits 3,2,1:Numbering-plan-identification:通常默認爲0001,表示電話號碼類型的。
  683108200805F0 短信中心號碼:一個字節內反轉,8613800280500,若是長度爲奇數則須要加「F」補齊
   FirstOctet字段
  11 包含TP-MTI(2bit),TP-RD(1bit),TP-VPF(2bit),TP-RP(1bit),TP-UDHI(1bit),TP-SRR(1bit)
  二進制表示形式:0 0 0 10 0 01
  TP-MTI:01
   TP-Message-Type-Indicator(消息類型指示符)
  Bit1,0:01 指示爲SMS-SUBMIT類型
  TP-RD:0
  TP-Reject-Duplicates(是否拒絕相同重複消息)
  Bit2:0 指示短消息中心接受未轉發的具備相同TP-MR的消息。
  TP-VPF:10
   TP-Validity-Period-Format(有效期格式)
   Bit4,3:10 指示使用相對格式。
  TP-SRR:0
   TP-Status-Report-Request
   Bit5:0 指示不使用狀態報告。
  TP-UDHI:0
   TP-User-Data-Header-Indicator(用戶數據頭標示)
   Bit6:0 指示這是一個SMS消息,沒有用戶數據頭。EMS消息須要設置。
  TP-RP:0
   TP-Reply-Path(回覆路徑)
   Bit7:0 指示沒有設置回覆路徑。
  消息參考值TP-MR
  19 TP-Message-Reference
   對方號碼字段
   0D91683188902848F4
   其結構與短信中心號碼字段部分相似,再也不贅述。
   協議標識TP-PID
   00 TP-Protocol-Identifier(上層協議指示),通常設置爲00,表示普通GSM,點對點
   編碼方法TP-DCS
   08 TP-Data-Coding-Scheme(數據編碼設置),指示TP-UD的編碼方式。08表明Unicode方式。00爲7Bit編碼
   有效期TP-VP
  FF TP-Validity-Period(有效期)。FF表示最大。
   用戶數據長度TP-UDL
  10 TP-User-Data-Length(用戶數據長度)
   0x10長度。注意不一樣編碼下用戶長度定義不一樣。
   用戶數據TP-UD
  8FD9662F4E0067616D4B8BD577ED4FE TP-User-Data
   中文「這是一條測試短信」的Unicode編碼
  二、 手機接收的PDU串
  0891683108200805F0040D91683188902848F4000850208151754500108FD9662F4E0067616D4B8BD577ED4FE1
  短信中心地址字段
   0891683108200805F0:+861380280500
  FirstOctet
   04
   其二進制代碼:00000100
   TP-MTI:00
   TP-MMS(TP-More-Message-to-Send):1 短信中心沒有更多的消息發送
   TP-SRI:0
   TP-UDHI:0
   TP-RP:0
  發送方號碼
   0D91683188902848F4:+8613880982844
  協議標識
   00 TP-DCS 點對點
  編碼方式
   08 TP-DCS Unicode編碼
  短信中心時間戳
   50208151754500 TP-SCTS 字節反轉05/02/18 15:57:45 最後的00表明時區,這裏爲0
  用戶數據長度
   10 TP-DHL
  用戶數據
   8FD9662F4E0067616D4B8BD577ED4FE1 TP-UD
   中文「這是一條測試短信」的Unicode編碼html

http://www.wangchao.net.cn/bbsdetail_61534.htmlide

相關文章
相關標籤/搜索