【发布时间】:2020-05-30 15:34:47
【问题描述】:
我是 GSM AT 命令的新手,我正在使用带有Modem Nodejs Module 的 ZTE MF190S USB 3G USB 调制解调器,也尝试使用 MS 超级终端。
我面临的问题是,当我使用来自 Whatsapp 的 AT+CMGL="ALL" 接收短信时(例如),我进入了发件人号码字段 81084326797126204,这是一个无效的电话号码,尽管制造商的软件应该是“Whatsapp”正在正常显示来自 Whatsapp 的消息。
注意:我尝试将其解码为十六进制字符串,但未完成。
> AT+CSCS="GSM"
> AT+CPMS="ME"
> AT+CMGL="ALL"
//Result
+CMGL: 0,"REC UNREAD","81084326797126204",,"20/05/30,14:53:55+08"
FEFF000000000000000000000000000000000000020
如link中所述
+CMGL: 索引,message_status,address,[address_text],[service_center_time_stamp][,address_type,sms_message_body_length]sms_message_body[+CMGL: ...]
地址字段
+CMGL AT 命令的信息响应的第三个字段, 地址,是一个字符串,其中包含存储的地址/电话号码 SMS 消息头。如果读取的 SMS 消息是传入的 SMS 消息,地址字段包含始发者地址。如果短信 message read 是一条外发 SMS 消息,地址字段包含 收件人地址。通常地址字段值是电话 使用典型 ISDN/电话编号方案格式化的号码 (国际电联 E.164/E.163)。例如,“+85291234567”。
address_text 字段
+CMGL AT 命令的信息响应的第四个字段, address_text,是一个字符串,包含与地址关联的文本 在电话簿中。例如,如果文本“Alice”与 电话簿中的电话号码“91234567”,address_text 将是 “爱丽丝”。 AT指令+CSCS(文本中的指令名:选择TE Character Set) 可用于指定显示的字符集 地址文本。请注意,address_text 是一个可选字段。一些 GSM/GPRS 调制解调器和手机(例如:大多数诺基亚产品, 包括我的诺基亚 6021)将此字段留空。
我如何识别消息来自 Whatsapp 或任何其他服务提供商的名称?
【问题讨论】:
-
让我明白。您只想在
AT+CGML的第四个参数中包含“WhatsApp”字符串吗?您是否有理由不能通过从列表中显示的每条消息中解析特定数字来识别这些消息?您是否尝试在电话簿中插入该号码? -
You would just like to have The "WhatsApp" string in the fourth parameter of AT+CGML?是的,我不知道为什么它不能像制造商的软件一样显示,我想可能缺少显示更多关于 SMS 的详细信息的命令,我试过了AT+CSDH=1获取短信标头也尝试使用文本和 PDU 模式。 -
我试着写一个答案。我不能 100% 确定它会解决您的问题,但无论如何它可能对遇到类似问题的人有所帮助。
标签: node.js serial-port sms at-command sms-gateway