多部分SMS消息解码

时间:2017-07-30 12:21:40

标签: c# sms

我已成功执行AT命令,以便从usb调制解调器以文本模式列出所有消息。我用过;

“AT + CMGF = 1”

“AT + CMGL = \” ALL \ “”

返回

AT+CMGL="ALL"

+CMGL: 1,"REC READ","53030303","","2017/07/10 13:04:37+24"
050003FF0301A66FB93C0FCABFEB72103AEC26CFCB7410F95D9E83DC6FBA625E87C3DF723A285     
CA7BFDB617A7A0C9A97E9F4B4FB3C7781B2EF3AC85D2E9341F43788FC06D1D165D0BC4CA7A7DD
E739A81D76D7C36C76DEA530BEE5A0A4935A943A8B549D022A7F9BD3EC32C8196E977520D1110    
A4A3AA945A9B34815298250A70E243AC3D36E7A59EE2ED345

+CMGL: 2,"REC READ","53030303","","2017/07/10 13:04:37+24"
050003FF030214C6B71CD46C4E750AA8FC6D4EB3CB2067B85DD681444728A8D99C8A1450F91B9
FD781DC75365B017DCBE93A90BBCE662BAA52A60E2442D3E970DDEBD56ECFC7AEB33CDC2E97DD
70F4DB5D768DDFEDD7BC2CB7B3CBF4F9ABDD9E8B1441A85307129DE1EDF65CA480B2CBE179196   
44FCFD37450FE5D9783DCE5B0BC3CA7838ED021C8FC9683D0

+CMGL: 3,"REC READ","53030303","","2017/07/10 13:04:37+24"
050003FF0303CA6C38

+CMGL: 4,"REC READ","740502437424","","2017/07/12 13:08:17+24"
Enjoy 4GB Internet Pack at only 179 Taka (Validity 7 days) To START dial     
*121*3084#. For details visit www.grameenphone.com

+CMGL: 5,"REC READ","740502","","2017/07/12 20:28:21+24"
We are sorry to inform you that your current balance is not sufficient to  
avail the offer. Please recharge and try again.

OK

这里1,2,3个数字消息是多部分的。我试图在在线转换器https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/上对此进行解码 但它没有被解码。所以,当然它不是PDU格式。我想知道,这种格式是什么以及如何解码它,任何链接或其他,请...

1 个答案:

答案 0 :(得分:0)

它似乎是PDU数据包的tp_ud(用户数据)部分的十六进制表示。这些内容在第9.2.3.24节的this document中进行了解释。在您的示例中,我可以识别所谓的用户数据标头。对于第一部分,它是“050003FF0301”,其中第一个八位字节(0x05)表示用户数据头的长度,第二个(0x00)告诉我们有关多部分的消息,第三个(0x03)给出了剩余八位字节的数量,第四个( 0xFF)表示最大值。可能的部件数量,第五个(0x03)此消息的部件数量和第六个(0x01)为您提供当前消息部件的编号。之后,消息数据可以是以下格式(7位,8位,UCS-2或压缩格式(第5节中解释为here)。不幸的是我们看不到所有其他标志集在pdu数据包中可能会告诉我们使用了什么编码。