2

我正在编写客户端-服务器应用程序。
客户端通过使用不同的传输方式向服务器发送一些消息:SMS 和 Internet(VPN、TCP 服务器)。
在客户的 PC 上,我有 1 个 3G 调制解调器,我同时使用它:发送 SMS 和建立 Internet 连接。
我通过 ubuntu 的网络管理器连接到 Internet。
为了发送短信,我使用 smstools3。实际上,我使用什么工具并不重要。
我发现如果通过同一个调制解调器建立了活动的 Internet 连接,就不可能发送 SMS。

我试图在没有网络管理器的情况下连接到 Internet。我使用此处的手册手动设置 pppd(没有锁定参数) 。连接工作正常,但没有解决问题。
然后我尝试使用不同调制解调器的 ttys 发送 SMS 和连接到 Internet(我的调制解调器有 2 个 ttys)。它也没有帮助。看起来我的调制解调器只有 1 个 tty 可以用来完成这项工作。

现在我只有两个想法:

  1. 不要同时做这些事情。及时将它们分开:启动smstool daemon,发送SMS,停止daemon,建立Internet 连接,发送msg,停止连接。
  2. 尝试使用此处描述的GSM 多路复用 gsm mux我不确定结果,因为提到的项目(gsm mux)看起来已经死了。

你有任何其他想法如何解决这个问题吗?

4

2 回答 2

4

最后,我找到了解决方案。

华为E800无法使用。相反,我使用了 E369。该调制解调器有 3 个端口(/dev/ 中的 3 个 ttyUSB)。如果我将第一个 tty 用于 Internet,第二个用于发送/接收 SMS,那么问题就消失了。请注意,E800 也有 2 个 tty,但这并不能解决问题。

我想我知道如何确定调制解调器是否可以同时用于 SMS 和 Internet。需要向调制解调器发送“AT+CMUX=0”。如果它回答不支持该操作,那么您必须尝试不同的调制解调器。

我还在 Ubuntu 13.04 上遇到了另外 1 个问题。如果我使用 ubuntu 的 NetworkManager 设置 Internet 连接,那么它会阻止我的调制解调器。因此,调制解调器不能用于发送/接收 SMS。我找到了解决方案 - 没有使用 NetworkManager。相反,我使用 wvdial 设置 Internet 连接。它解决了这个问题。

于 2013-10-14T09:12:09.553 回答
0

实际上,即使您得到 AT+MUX=0 "未实现",您仍然可以使用 AT 命令输出收到 SMS 连接到调制解调器端口:

socat - /dev/ttyUSB2, crnl

然后按照输出,除非你得到 +CMT 命令。输出可以是明文或 PDU。明文显然是可读的。PDU 可能如下所示:

+CMT: 0,32
07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E

如果您获得 PDU - 您需要对其进行解码。例如这里:PDU解码器

于 2016-03-09T17:39:02.297 回答