【问题标题】:Reading Multipart SMS with AT+CMGL using Wavecom modem使用 Wavecom 调制解调器通过 AT+CMGL 读取 Multipart SMS
【发布时间】:2015-04-28 07:55:38
【问题描述】:

我尝试在 PDU 模式下读取多部分短信。 消息分为 3 部分

以下是我使用命令 AT+CMGF=0 和 AT+CMGL=4 得到的 PDU

1部分:07914150740250F7440B917130263521F600005140723295528AA005的 C01B5B0301 强> B2E53C194D46A3C96834196D169BD16833DA8C368BCD62B3D82C368BCD62B3586C169BC566B1596C169BC562B3D82C368BCD62B3D82C368BCD62B3DBEC769BDD66B7D90D328B41663768DC0699DD66B7D96D769BDD66B7D96D76BBCD6EB3DBEC36BBCD6EB3DBEC36BBCD6EF7D96D769BDD67F7D96D769FDD67B7FBEC3EBBCFEEB3DB7D769FDD P>

2部分:07912160130320F8440B917130263521F600005140723295528AA005的 C01B5B0302 强> CE6EB3DBEC56AB41D9729E8C26A3D164349A8C368BCD68B4196D469BC566B1596C169BC566B1592C368BCD62B3D82C368BCD62B1596C169BC566B1596C169BC566B1D96D76BBCD6EB3DBEC0699C520B31B346E83CC6EB3DBEC36BBCD6EB3DBEC36BBDD66B7D96D769BDD66B7D96D769BDD66B7FBEC36BBCDEEB3FBEC36BBCFEEB3DB7D769FDD P>

第 3 部分:07914140540500F9440B917130263521F600005140723295528A1805C01B5B0303CEEEB3DB7D769FDD67B7D96D76ABD5

*根据我的理解,为了确定它是否是多部分消息,我必须检查 TP-UDHI 是否设置在第一个八位字节的第六位。在这种情况下,它没有设置。

*PDU 的粗体部分是数据头

*我认为为了表明这是一个连接消息,它必须是 00 而不是 C0?

如果我错了,请纠正我..

问题1:为什么在这种情况下没有设置TP-UDHI第一个八位位组是07?

问题2:为什么UDH的第一个八位字节不是00而是C0?

【问题讨论】:

    标签: gsm at-command pdu


    【解决方案1】:

    好的,回答问题 1) 您错过了在 PDU 的开头发现 SMSC 地址。所以实际上你的 PDU 标头八位字节是 44。这表明 PDU 中存在 UDH。

    这是 SMSC 地址:

    07914150740250F7
    

    紧随其后的是 PDU 标头 44。

    关于问题 2) 事情变得有点复杂。现在我没有发现 UDH 包含任何连接 SMS 的指示。不要忘记 UDH 不仅仅用于连接消息。它可以包含许多基于 3GPP ETSI 规范 03.40 的其他信息。

    仔细查看后,似乎 SMS 在发送端被奇怪地编码,或者移动运营商弄乱了 UDH。您正确地将 UDH 隔离为:

    C01B5B0302
    

    根据前面的字节,UDH 长度应为 5 个字节。但是第一个 IEI(信息元素)具有误导性。 C0 将 IEI 定义为 SC 特定的 IEI,而不是串联的 IEI。然后下一个 1B 说 IEI 数据应该是 27 字节长,这与 UDH 长度 5 相矛盾。

    所以从我的角度来看,UDH 受到了一些破坏(移动运营商、短信聚合器甚至是糟糕的编码器都可能发生这种情况)。

    如果您想尝试删除 C01B 并替换为 0003 以确保 8 位连接引用:

    00035b0301
    00035B0302
    00035B0303
    

    然后你会得到一个 UDH,告诉你 MR 是 91 并且正确指定了部件。

    【讨论】:

    • 非常感谢您的回复!该消息是直接从我的手机发送的,并从我的 GSM 调制解调器中读取。这可能是什么原因?调制解调器还是我的手机?我用来读取消息的AT指令可以吗?
    • 通常手机的编码是正确的,所以要么是移动运营商在中间,要么是你的调制解调器(假设我的手动解码是正确的)。电话和调制解调器是否具有相同的移动运营商?你用的是什么调制解调器?
    • 不,我手机的运营商是 AT&T,而调制解调器运行的是 T-Mobile SIM 卡。我正在使用 wavecom 调制解调器。
    • 我将 SIM 卡从调制解调器插入手机并重新发送消息。该消息在手机中很好地显示为一个整体。也许这与调制解调器有关?在阅读收件箱之前我必须发出任何 AT 命令?
    • 我之前处理过 Wavecom 的,但没有遇到这个问题。虽然我通过 AT+CNMI=2,2,0,1,0 使用了 PDU 的主动显示。要获得 PDU,您必须观察调制解调器的终端输出。在执行该 CNMI 命令之前,请确保您使用 AT+CNMI 获取旧设置?建议尝试一下,看看当您收到 SMS 时会发生什么,以排除 Wavecomm 将 concat 错误地存储在内存中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多