首页 文章

如何在linux中接收传入的短信通知?

提问于
浏览
2

我已经在Windows机器上编程了一个D-Link GSM调制解调器来发送和接收SMS,用于测试我使用的是Hyperterminal .

在Windows中,连接管理器启动COMx端口,调制解调器使用一个未列出的COMx端口,我可以通过它发送短信,并通过列出的NMEA端口接收传入的短信,像CMTI这样的呼叫:“ME”,11或RING CLIP:XXXXXXXXXXXX

我成功地解释了这条消息并根据我在windows中的要求对其进行了编程 . 在linux(Fedora)中尝试相同的操作时,我看到调制解调器初始化/ dev / ttyUSB0和/ dev / ttyUSB1作为两个新识别的设备 . 我使用minicom来设置设备端口并将AT命令传递给它们 .

在两个设备(/ dev / ttyUSB0和/ dev / ttyUSB1)中,每当我期待新的SMS时,我都没有收到像CMTI指示那样的未经请求的AT结果代码 . 仅供参考我根据手册和其他几种组合设置了CNMI设置 .

奇怪的是我在调用但不是CLIP:<callerinfo> . 同样地,我没有得到PSBEARER:XX,Y或CMTI:"ME",XX

唯一的替代解决方案是定期轮询UNREAD消息,这通常是一个糟糕的设计 . 请告诉我,如果我在配置方面做错了什么,我应该改变一些除此之外的东西吗?

1 回答

  • 1

    RING 是唯一可以假设的UR代码,它总是没有任何特定的配置(只是因为这是一个古老的遗物,只是它的行为......) . 对于所有其他UR代码,您必须明确启用它们中的每一个,例如 AT+CLIP=1 等,否则将无法启用 . 并且启用那些是每个串行接口,例如,在/ dev / ttyUSB0上运行 AT+CLIP=1 将不会在/ dev / ttyUSB1上打印 +CPLIP: ... .

    因此,当你在Windows上获得连接管理器时,它必须是因为它包含在其中的init字符串 . Minicom我认为默认没有初始化字符串,或者可能只是像 ATS0=0 E1Q0V1 这样非常经典的字符串 .

相关问题