2015-04-28 52 views
0

我嘗試讀取PDU模式下的多部分短信。 的信息是在3份使用Wavecom調制解調器閱讀帶有AT + CMGL的多部分短信

下面是PDU的我AT + CMGF = 0和AT + CMGL = 4

第一部分得到了通過使用命令:07914150740250F7440B917130263521F600005140723295528AA005 C01B5B0301 B2E53C194D46A3C96834196D169BD16833DA8C368BCD62B3D82C368BCD62B3586C169BC566B1596C169BC562B3D82C368BCD62B3D82C368BCD62B3DBEC769BDD66B7D90D328B41663768DC0699DD66B7D96D769BDD66B7D96D76BBCD6EB3DBEC36BBCD6EB3DBEC36BBCD6EF7D96D769BDD67F7D96D769FDD67B7FBEC3EBBCFEEB3DB7D769FDD

第二部分:07912160130320F8440B917130263521F600005140723295528AA005 C01B5B0302 CE6EB3DBEC56AB41D9729E8C26A3D164349A8C368BCD68B4196D469BC566B1596C169BC566B1592C368BCD62B3D82C368BCD62B1596C169BC566B1596C169BC566B1D96D76BBCD6EB3DBEC0699C520B31B346E83CC6EB3DBEC36BBCD6EB3DBEC36BBDD66B7D96D769BDD66B7D96D769BDD66B7FBEC36BBCDEEB3FBEC36BBCFEEB3DB7D769FDD

第3部分:07914140540500F9440B917130263521F600005140723295528A1805 C01B5B0303 CEEEB3DB7D769FDD67B7D96D76ABD5

*據我的瞭解,以確定它是否是一個多部分消息我要檢查,如果TP-UDHI設置在那裏它在第一個字節的第六位。在這種情況下,它沒有設置。

*的PDU中的加粗部分是數據頭

* I以便指示這是它有一個串連消息是00,而不是C0認爲?

請糾正我,如果我做錯了..

問題1:爲什麼TP-UDHI在此情況下,第一個字節是07集?

問題2:爲什麼UDH中的第一個八位字節不是00而不是C0?

回答

0

確定回答問題1)您錯過了在PDU的起始處發現有正確的SMSC地址。所以實際上你的PDU頭八位字節是44.這表明PDU中有一個UDH。

這是SMSC地址:

07914150740250F7 

其後是直接PDU頭部44

對於問題2)事情變得更加複雜。現在我沒有發現UDH包含任何連接SMS的指示。不要忘記,UDH不僅僅用於連接消息。它可以包含許多基於3GPP ETSI規範03.40的其他信息。

經過仔細觀察,它看起來像是發送端的短消息編碼奇怪,或者移動運營商與UDH混淆了。您正確隔離UDH爲:

C01B5B0302 

根據先前的字節,UDH長度應爲5個字節。但第一個IEI(信息元素)是誤導性的。 C0將IEI定義爲SC特定的IEI而不是級聯的IEI。然後下一個1B表示IEI數據應該是27個字節長,這與5的UDH長度相矛盾。

因此,從我的角度來看,UDH(這可能發生在移動運營商,短信集合商,甚至是糟糕的編碼器)都會發生一些事情。

如果你想玩弄你已經刪除C01B與0003更換,以確保8位CONCAT參考什麼:

00035b0301 
00035B0302 
00035B0303 

,那麼你會最終有一個UDH告訴你的是,MR爲91和正確指定的部分。

+0

非常感謝您的回覆!該消息直接從我的電話發送,並從我的GSM調制解調器中讀取。這可能是什麼原因?調制解調器還是我的手機?我用AT讀取消息的命令行嗎? –

+0

正常情況下,手機會得到正確的編碼,因此它可能是中間的移動運營商,或者是您的調制解調器(假設我的手部解碼正確)。電話和調制解調器是否有相同的移動運營商?你使用什麼調制解調器? – aldridmc

+0

不,我的手機運營商是AT&T,而調制解調器運行的是T-Mobile SIM卡。我正在使用wavecom調制解調器。 –

相關問題