我正在编写客户端 - 服务器应用程序 客户端使用不同的传输向服务器发送一些消息:SMS和Internet(VPN,TCP服务器) 在客户端的PC上,我有一个3G调制解调器,我用它们:发送短信和建立互联网连接 我通过ubuntu的网络管理器连接到互联网 对于发送短信我使用smstools3。实际上我用的是什么工具并不重要 我发现如果通过相同的调制解调器建立了有效的Internet连接,则无法发送SMS。
我尝试在没有网络管理器的情况下连接到Internet。我使用here中的手册手动设置pppd(没有锁定参数)。连接工作正常,但没有解决问题 然后我尝试使用不同的调制解调器的ttys发送短信和连接到互联网(我的调制解调器有2 ttys)。它也没有帮助。看起来只有1吨我的调制解调器可以用来完成这项工作。
现在我只有两个想法:
您对如何解决问题有任何其他想法吗?
答案 0 :(得分:3)
最后,我找到了解决方案。
无法使用华为E800。相反,我使用的是E369。该调制解调器有3个端口(/ dev /中有3个ttyUSB)。如果我使用第一个tty用于Internet而第二个tty用于发送/接收SMS,则问题将消失。 请注意,E800也有2个ttys,但它没有解决问题。
我想我知道如何弄清楚调制解调器是否可用于同步短信和互联网。需要将“AT + CMUX = 0”发送到调制解调器。如果它回答不支持该操作,则必须尝试不同的调制解调器。
此外,我在Ubuntu 13.04上遇到了另外一个问题。 如果我使用ubuntu的NetworkManager来建立Internet连接,那么它会阻止我的调制解调器。因此,调制解调器不能用于发送/接收SMS。 我找到了解决方案 - 没有使用NetworkManager。相反,我建立了与wvdial的Internet连接。它解决了这个问题。
答案 1 :(得分:0)
实际上你仍然可以使用AT命令输出获得短信,即使你得到AT + MUX = 0"未实现" 连接到调制解调器端口:
socat - /dev/ttyUSB2, crnl
然后按照输出,除非你得到+ CMT命令。输出可以是明文或PDU。明确的文字显然是可读的。 PDU可能如下所示:
+CMT: 0,32
07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E
如果你得到PDU - 你需要解码它。例如:PDU decoder