3G модем: едновременно изпращане на SMS и активна интернет връзка

Пиша клиент-сървър приложение.
Клиентът изпраща някои съобщения до сървъра чрез различни транспорти: SMS и интернет (VPN, TCP сървър).
На компютъра на клиента имам 1 3G модем, който използвам за и двете: изпращане на SMS и установяване на интернет връзка.
Свързвам се с интернет чрез мрежовия мениджър на ubuntu.
За изпращане на SMS използвам smstools3. Всъщност няма значение какви инструменти съм използвал.
Открих, че е било невъзможно да изпратя SMS, ако е имало активна интернет връзка, установена през същия модем.

Опитах се да се свържа с интернет без Network Manager. Настроих pppd ръчно (без параметър за заключване), използвайки ръководството от тук. Връзката работи добре, но не реши проблема.
След това се опитах да използвам различни ttys на модема за изпращане на SMS и свързване с интернет (моят модем има 2 ttys). Това също не помогна. Изглежда, че само 1 tty от моя модем може да се използва за работа.

Сега имам само 2 идеи:

  1. Не правете нещата едновременно. Разделете ги навреме: стартирайте smstool демон, изпратете SMS, спрете демона, установете интернет връзка, изпратете съобщение, спрете връзката.
  2. Опитайте да използвате GSM мултиплексиране, както е описано тук gsm mux Не съм сигурен за резултата защото споменатият проект (gsm mux) изглежда мъртъв.

Имате ли други идеи как да решите проблема?


person Zakhar    schedule 03.10.2013    source източник
comment
Между другото, използвам следните неща: ОС: Ubuntu 12.04 LTS Smsd: 3.1.14 Модем: Huawei E800 ExpressCard   -  person Zakhar    schedule 03.10.2013


Отговори (2)


Най-накрая намерих решението.

Huawei E800 не може да се използва. Вместо това използвах E369. Този модем има 3 порта (3 ttyUSB в /dev/). Ако използвам първия tty за интернет, а втория за изпращане/получаване на SMS, тогава проблемът изчезва. Имайте предвид, че E800 също има 2 ttys, но това не решава проблема.

Мисля, че знаех как да разбера дали модемът може да се използва за едновременни SMS и интернет. Трябва да изпратите "AT+CMUX=0" към модема. Ако отговорът е, че операцията не се поддържа, тогава трябва да опитате друг модем.

Също така срещнах още 1 проблем на Ubuntu 13.04. Ако използвах NetworkManager на ubuntu, за да настроя интернет връзка, той блокира модема ми. Така че модемът не може да се използва за изпращане/приемане на SMS. Намерих решението - не използвах NetworkManager. Вместо това настроих интернет връзка с wvdial. Това реши проблема.

person Zakhar    schedule 14.10.2013
comment
Имам 3 ttyUSB, но когато се опитам да използвам USB1/0, нищо не се случва, как мога да конфигурирам интернет да минава през USB1 вместо USB2? - person Matan Tubul; 07.06.2017

Всъщност все още може да получите SMS с помощта на AT команден изход, дори ако получите AT+MUX=0 "not implemented" Свържете се с модемен порт:

socat - /dev/ttyUSB2, crnl

След това следвайте изхода, освен ако не получите +CMT команда. Изходът може да бъде или чист текст, или PDU. Ясният текст очевидно се чете. PDU може да изглежда така:

+CMT: 0,32
07915892000000F001000B915892214365F7000021493A283D0795C3F33C88FE06CDCB6E32885EC6D341EDF27C1E3E97E72E

Ако получите PDU - трябва да го декодирате. Например тук: PDU декодер

person Vadim    schedule 09.03.2016