依時間順序有三種模式:Block Mode、Text Mode(AT 指令)、PDU Mode(AT 指令)。Text Mode 較簡單,NOKIA 多支援;西門子多僅支援 PDU。PDU 將簡訊內文以十六進位編碼傳送,已取代 Block Mode。本文以西門子 3508 為例說明 PDU 發送。
依 ETSI 規範(GSM 03.40、03.38):
本文採 UCS2 編碼,中英皆上限 70 字元。
發送「你好,Hello!」給 13715342642,簡訊中心號 8613800755000(SIM 卡歸屬地決定,非當前所在地)。
編碼後 PDU 字串:
0891683108705500F011000D91683117352446F2000800124F60597DFF0C00480065006C006C006F0021
| PDU 片段 | 含義 | 實際值/說明 |
|---|---|---|
| 08 | 簡訊中心號長度 | 含 91 + 號碼 |
| 91 | TON/NPI 類型 | International/E.164,號碼前需加 + |
| 683108705500F0 | 簡訊中心號(位移後) | 實際 8613800731500,F 表長度-1 |
| 11 | 檔頭位元組 | 固定 |
| 00 | TP-Message-Reference | 訊息參考號 |
| 0D | 被叫號碼長度 | 13 位元組 |
| 91 | 被叫號碼類型 | International |
| 683117352446F2 | 被叫號碼(位移後) | 實際 8613715342642 |
| 00 | TP-PID 協定識別 | 通常 00 |
| 08 | TP-DCS 資料編碼 | UCS2 (16-bit) |
| 00 | TP-VP 有效期 | 相對格式 |
| 12 | TP-UDL 使用者資料長度 | 18 位元組 → 0x12 |
| 4F60597DFF0C00480065006C006C006F0021 | 簡訊內容 | "你好,Hello!" UCS2 編碼 |
程式實作請參考隨附 PDUdecoding.cs。
| 指令 | 功能 |
|---|---|
| AT+CMGC | 發送簡訊命令 |
| AT+CMGD | 刪除 SIM 簡訊 |
| AT+CMGF | 選擇格式:0=PDU, 1=Text |
| AT+CMGL | 列出簡訊(未讀/已讀/待發/已發/全部) |
| AT+CMGR | 讀取簡訊 |
| AT+CMGS | 發送簡訊 |
| AT+CMGW | 寫入待發簡訊至記憶體 |
| AT+CMSS | 從記憶體發送 |
| AT+CNMI | 新簡訊指示 |
| AT+CPMS | 選擇儲存體 |
| AT+CSCA | 設定/查詢簡訊中心號 |
| AT+CSCB | 選擇小區廣播 |
| AT+CSMP | 設定 Text 模式參數 |
| AT+CSMS | 選擇簡訊服務 |