解码短信头中的 SENDER ID

decoding the SENDER ID in sms header

我正在做一个小的 SMS 接收实用程序,我有一条 SMS 消息,我无法理解如何解码其发件人 ID,这里是在 PDU 模式下读取消息的输出:

+CMGL: 0,1,,86 0791021197003899440ED0657A7A1E6687E93408610192016390004205000365030106440642062F002006270633062A064706440643062A0020064306440020062706440648062D062F0627062A0020062706440645062C06270646064A

在文本模式下:

+CMGL: 0,"REC READ","1011161051159710897116",,"16/10/29,10:36:09+00" 06440642062F002006270633062A064706440643062A0020064306440020062706440648062D062F0627062A0020062706440645062C06270646064A

我通过手机阅读此消息 phone 我发现发件人字母数字代码“1011161051159710897116”等于 "etisalat" 这是服务提供商的名称,我想了解什么编码他们使用。以及如何解码它?

它被编码为十进制半八位字节的 ASCII:

1011161051159710897116 =

101 = &65 = e

116 = &74 = t

105 = &69 = 我

115 = &73 = s

97 = &61 = 一个

108 = &6C = l

97 = &61 = 一个

116 = &74 = t

要从 PDU 数据中读取这个,你必须交换半八位字节,如果长度是奇数,你必须添加一个额外的 'F' 以使其均匀以获得正确的八位字节字符串。

可在此处找到 SMS PDU 的规格:GSM 03.40