Ubuntu 3G调制解调器:同时发送短信并具有主动互联网连接

Ubuntu 3G调制解调器:同时发送短信并具有主动互联网连接,ubuntu,sms,gsm,3g,modem,Ubuntu,Sms,Gsm,3g,Modem,我正在编写客户机-服务器应用程序。 客户端使用不同的传输方式向服务器发送一些消息:SMS和Internet(VPN、TCP服务器)。 在客户端的PC上,我有一个3G调制解调器,用于发送短信和建立互联网连接。 我通过ubuntu的网络管理器连接到互联网。 对于发送短信,我使用smstools3。实际上,我使用什么工具并不重要。 我发现,如果通过同一个调制解调器建立了活动的互联网连接,就不可能发送短信 我尝试在没有网络管理器的情况下连接到Internet。我使用中的手册手动设置pppd(无锁定参数)

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

我尝试在没有网络管理器的情况下连接到Internet。我使用中的手册手动设置pppd(无锁定参数)。连接工作正常,但没有解决问题。
然后我尝试使用不同的调制解调器的TTY发送短信和连接到互联网(我的调制解调器有2个TTY)。这也无济于事。看起来只有1 tty的调制解调器可以用来做这项工作

现在我只有两个想法:

  • 不要同时做这些事情。及时将它们分开:启动smstool守护程序、发送SMS、停止守护程序、建立Internet连接、发送msg、停止连接
  • 尝试使用GSM多路复用,如这里所述,我不确定结果,因为所提到的项目(GSM mux)看起来已经死了
    你对如何解决这个问题还有其他想法吗?

    最后,我找到了解决办法

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

    我想我知道如何判断调制解调器是否可以同时用于短信和互联网。需要向调制解调器发送“AT+CMUX=0”。如果回答不支持该操作,则您必须尝试不同的调制解调器

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

    最后,我找到了解决办法

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

    我想我知道如何判断调制解调器是否可以同时用于短信和互联网。需要向调制解调器发送“AT+CMUX=0”。如果回答不支持该操作,则您必须尝试不同的调制解调器

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

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

    socat - /dev/ttyUSB2, crnl
    
    然后跟随输出,除非获得+CMT命令。输出可以是明文或PDU。明文显然是可读的。PDU可能看起来像:

    +CMT: 0,32
    07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E
    

    如果你得到PDU-你需要解码它。例如:

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

    socat - /dev/ttyUSB2, crnl
    
    然后跟随输出,除非获得+CMT命令。输出可以是明文或PDU。明文显然是可读的。PDU可能看起来像:

    +CMT: 0,32
    07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E
    

    如果你得到PDU-你需要解码它。例如这里:

    BTW,我使用以下东西:OS:Ubuntu12.04 LTS Smsd:3.1.14调制解调器:华为E800 ExpressCardBTW,我使用以下东西:OS:Ubuntu12.04 LTS Smsd:3.1.14调制解调器:华为E800 ExpressCard可能是因为我有3个ttyUSB,但当我尝试使用USB1/0时,什么都没有发生,如何配置internet将通过USB1而不是USB2?我有3个ttyUSB,但当我尝试使用USB1/0时,什么都没有发生,如何配置internet将通过USB1而不是USB2?