Роутер не выполняет команды, отправленные через SMS

#роутеры #mobile #20.x

Проблема:

После установки SIM-карты в роутер на нее могут приходить различные служебные SMS от оператора. За время эксплуатации большое количество таких SMS заполняет память на устройстве, так как до тех пор, пока не включена обработка команд через SMS, роутер не будет очищать от них память.

Решение:

Для удаления "старых" SMS нужно выполнить несколько действий:

  1. Настроить роутер для выхода в интернет.

  2. Зайти на роутер через telnet / ssh, подключив его к компьютеру.

  3. Выполнить поочередно следующие команды:

     talk -t /dev/ttyMODEM1_AUX -c +cmgf=1
    
     talk -t /dev/ttyMODEM1_AUX -c +cmgd=1,4
  4. Чтобы убедиться, что память очищена, нужно проверить наличие SMS:

    В зависимости от сотового модуля, установленного в устройстве, команды на этом этапе будут различаться. Информацию об установленном сотовом модуле можно узнать в веб-интерфейсе роутера, раздел Network → Mobile Interfaces или в консоли командой cat /tmp/sysinfo/modem
    • SIMCOM

      talk -t /dev/ttyMODEM1_AUX -c +cmgl=all
    • Quectel EC25Е

      talk -t /dev/ttyMODEM1_AUX -c +cmgl all
    • Quectel EC200A

      Оба варианта:

      talk -t /dev/ttyMODEM1_AUX -c +cmgl=all
      
      или
      
      talk -t /dev/ttyMODEM1_AUX -c +cmgl all

Если после выполнения команды в терминале ничего не отобразится - память очищена. В противном случае повторить пп.1-4.

Проверка

Чтобы проверить, как роутер отрабатывает SMS команды, необходимо:

  1. Зайти в веб-интерфейс роутера в раздел Service → SMS → Command over SMS.

  2. Включить галочку Enable.

  3. В поле Message написать текст входящей SMS-команды.

  4. В поле Command указать полный путь до служебной команды: /sbin/reboot.

  5. Указать номер телефона.

  6. Сохранить.

В данном случае роутер должен будет перезагрузиться, после получения соответствующей SMS.

При включении этой опции демон smrd проверяет наличие входящего SMS сообщения раз в минуту.

Скрипт обработки SMS будет автоматически удалять ее перед выполнением.