2015-04-28 50 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调制解调器。 –

相关问题