python - 如何通过连接到 Linux 计算机的 GSM/GPRS 调制解调器发送彩信?

标签 python linux gsm mms cellular-network

<分区>

我有一个目录,其中包含 50 个图像文件 (.jpg),每个文件小于 300kb。此文件应作为 MMS 附件并使用 GSM/GPRS 调制解调器从 Linux 计算机发送。我需要弄清楚如何打包彩信并能够将其发送到手机或从 Linux 计算机发送电子邮件。另请注意,我希望能够使用我的 GSM/GPRS 调制解调器发送 MMS 消息 - 而不是通过 clickatell 或其他一些网络服务。我也不想使用完整的 MMSC 网关,例如 NowSMS(无论如何都是 Windows)或 MBuni。请帮助我找到任何可以通过命令行工作的 Linux 工具/任何编译源代码/任何易于使用的方法。

提前感谢您的专业知识

最佳答案

你为什么要这样做?这是一个过于复杂的过程,并且有可用的 MMSC 网关是有原因的。您只需使用 GPRS 部分来建立 PPP 连接,然后其余部分通过 IP 进行。

强烈建议您为此使用网关,并且不要手动执行此操作

为了建立 PPP 连接:

  1. AT+CGDCONT? 这应该响应您所在的上下文。这意味着您已准备好附加/连接。
  2. AT+CGATT=1(连接调制解调器)
  3. AT+CGDATA=?(查看数据模式是什么)
  4. AT+CGACT=1(激活连接)

现在您使用的是 PPP,然后您可以使用您的提供商使用的任何调制解调器进行通话。它可以是从直接 HTTP 到 MMSE 协议(protocol)的任何东西。

例如,这里是一个完整的 HTTP 脚本。首先,我们需要设置调制解调器和连接信息。所有这些命令都应该从调制解调器得到 OK 的响应。

AT+CMMSINIT # Initialize the MMS method
AT+CMMSCURL="some.url.com" # the MMS center URL
AT+CMMSCID=1 # Set bearer
AT+CMMSPROTO="1.1.1.1",8080 # MMS Proxy information
AT+SAPBR=3,1,"Contype","GPRS" # How you are sending
AT+SAPBR=3,1,"APN","foobar" # Set the APN
AT+SAPBR=1,1 # Activate the bearer context

接下来,我们准备消息:

> AT+CMMSEDIT=1  # Enter edit mode
OK
> AT+CMMSDOWN="PIC",54321,30000 # Download a pic that is 54321 bytes
                                # and set the latency
                                # for the download to 30000 ms
CONNECT                         # This means, ready to receive data
                                # so send your file
OK                              # Data received
> AT+CMMSRECP="123456789"       # Set the recipient
OK
> AT+CMMSVIEW                   # View your message
(your message)
OK
> AT+CMMSSEND                   # Send the message
OK                              # Message sent
> AT+CMMSEDIT=0                 # Exit edit mode, and clear the buffer
OK

当然,这特定于我使用的调制解调器。您的结果可能会有所不同。我可以告诉你,这是徒劳的。如果您想真正发送彩信,请选择合适的提供商。

关于python - 如何通过连接到 Linux 计算机的 GSM/GPRS 调制解调器发送彩信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16397116/

相关文章:

python - pandas中map函数的使用

linux - 脚本检查文件是否存在

linux - 如何将以下日期更改为 2 个特定表格? (Linux 终端/shell )

com - 哪些 AT 命令有助于获取 SIM 卡数据?

php - 为 SMS 实现 GSM 调制解调器

python - 将两个使用 C++ 流的共享库导入 python 会导致输出损坏

python - 如何通过复制/跳过每 N 个项目来重新采样数组?

python - 子进程调用的重定向输出丢失了吗?

linux - bash: BASH_XTRACEFD: 5: 跟踪文件描述符的值无效

linux - ^BOOT命令在华为E220上是什么意思?