發送方PDU 格式SMS-SUBMIT-PDU (Mobile Originated)
元素 名稱 長度 描述
SCA Service Center Address 1-12 短消息服務中心號碼
PDU-Type Protocol Data Unit 1 協議數據單元類型
MR Message Reference 1 所有成功的短信發送參考數目(0..255)
OA Originator Address 2-12 發送方地址(手機號碼)
DA Destination Address 2-12 接收方地址(手機號碼)
PID Protocol Identifer 1 參數顯示消息中心以何種方式處理消息內容(比如FAX,Voice)
DCS Data Coding Scheme 1 參數顯示用戶數據編碼方案
SCTS Service Center Time Stamp 7 消息中心收到消息時的時間戳
VP Validity Period 0,1,7 參數顯示消息有效期
UDL User Data Lenghth 1 用戶數據長度
UD User Data 0-140 用戶數據
前幾天對接收方的數據格式進行了分析,現在代碼基本上可以處理收到的各種類型短信息。可是發短信給10086時卻總是失敗,google之,網上有遇到類似問題,但貌似沒有具體的解決方案。
開始時懷疑是手機號碼類型問題,嘗試了沒有成功。然后懷疑是字符編碼格式問題,嘗試了也沒有成功。直至將PDU的發送方格式仔仔細細的看了好幾遍,最后懷疑是短信中心號碼處理問題,處理后終於發送成功,倍感欣慰。此章主要仔細介紹發送方PDU格式,下章解決發送10086短信失敗問題。
示例:0011000D91685170873576F40008A7044E2D56FD
號碼:15077853674
內容:中國
下面來逐段分析:
1、SCA:00
同接收方SCA格式,可見我另外一篇文章 SMS-DELIVER-PDU (Mobile Terminated)中的 SCA 格式。
當SCA中的Len 被設置為0x00,並不提供后面的部分,那么終端設備將讀取SIM 中設置的SCA 填充到SMS-PUD中,通過“AT+CSCA=xxxxx”指令可以設置SIM 卡中存儲的SCA 值。此處的Len為0,所以不用設置短信中心號碼。
2、PDU Type:11
有效期格式以整型形式提供(相對的),SMS-SUBMIT
3、MR:00
設為 00 即可
4、DA 接收方地址 :0D91685170873576F4
DA的格式與OA的格式是一樣的,同樣可見我的文章: SMS-DELIVER-PDU (Mobile Terminated) 中 OA 的格式
5、PID協議標識 (Protocol-Identifier):00
對於標准情況下的下 MS-to-SC 短消息傳送,只需設置 PID 為 00
6、DCS 數據編碼方案:08
同樣可見我的文章: SMS-DELIVER-PDU (Mobile Terminated) 中 DCS 的格式
7、VP 信息有效期:A7
此處時間為24小時,具體計算方法請看最后的附件文檔。
8、UDL 用 戶 數 據 長 度:04
此處顯示為4個字節,且采用的為USC2(16bit), 傳送雙字節字符集格式:
9、UD 用 戶 數 據 :4E2D56FD
由於采用的為USC2(16bit),所以實際Unicode編碼為:0x4E,0x2D.0x56,0xFD
參考: