python - 如何通过 python-gsmmodem 接收短信

标签 python linux sms gsm

我是Python新手。我已经安装了python-gsmmodem在 Ubuntu 14.04 中通过 GSM 适配器发送和接收短信。然后在我的 /usr/local/bin 文件夹中有 3 个名为

的脚本
  1. gsmterm.py
  2. identify-modem.py
  3. sendsms.py

我成功地使用这些脚本发送短信、识别调制解调器,正如它们的名称所暗示的那样。

但是问题是我想通过加密狗接收短信,但不知道如何操作。当我将整个包下载为 zip 文件时,有一些脚本显示正在发送短信。

除了 python-gsmmodem 的文档外,它还具有处理 GSM 调制解调器中的大部分功能的功能,包括发送短信。

需要帮助我使用同一调制解调器接收短信。怎么解决这个问题呢?

最佳答案

您可以在 python-gsmmodemtools/examples/ 中找到一些示例。 repo 。有一个脚本 examples/sms_handler_demo.py,用于监听传入的 SMS 消息并通过说“谢谢”来回复 SMS。

我已经尝试过该脚本,它无限地等待短信 - 调制解调器在后台接收短信并将其放入选定的存储中,但该脚本没有捕获来自调制解调器的任何短信通知,并且不会执行回复回调。我的华为调制解调器似乎需要不同的 AT+CNMI 命令设置,或者需要一组专有的命令。

编辑:我发现了这个问题。我有一个华为 E372 调制解调器,它创建 3 个串口

  • /dev/ttyUSB0 - 完整 AT 命令集,仅查询/响应终端,无通知
  • /dev/ttyUSB1 - ? (反正不需要)
  • /dev/ttyUSB2 - 完整的 AT 命令集、查询/响应控制台,包括接收状态消息,例如 ^BOOT^RSSI^CSNR、来电通知 (^RING)、短信通知 (^CMTI^CDSI) 和 USSD 通知 (^CUSD)

一开始,我无法使用 python 连接到 /dev/ttyUSB1/dev/ttyUSB2,所以我使用了 /dev/ttyUSB0。该脚本无限等待,因为 /dev/ttyUSB0 端口上没有通知。 我发现由于 pyserial 3.0.1 中的错误,我无法使用 python“BrokenPipeError: [Errno 32] Broken pipeline”连接到 /dev/ttyUSB2,因此请确保您已从 git 安装了最新的 3.1a0 版本。

现在它对我来说开箱即用。

<小时/>

确保

  • 您正在使用固定的 pyserial 模块(v2.7 或 v3.1a0+)
  • 您使用的是正确的串行端口
  • 通过串行控制台(screen/dev/ttyUSB2 115200python tools/gsmterm.py -b 115200/dev/ttyUSB2)可以看到通知

关于python - 如何通过 python-gsmmodem 接收短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880221/

相关文章:

python - 将 3d 场景加载到 Silverlight

python - 使用 dask 多线程模块

linux - 以权限运行tomcat6 webapp

windows-mobile - 在 Windows Mobile 6 中发送和接收(拦截)短信

python - odoo 中继承模型的相关字段

python - 如何使 pandas 分类堆积条形图比例达到 100%

linux - 在 bash 脚本中使用 mv 丢失文件

c++ - 执行结束时出现段错误(核心转储)

sms - 在部署之前设置 USSD 开发环境以测试和开发基于 USSD 的服务

android - 如何在 Android 中使用 Delphi XE5 发送短信