Skip to content

v2.4.41

Choose a tag to compare

@fildunsky fildunsky released this 02 Sep 11:18
· 9 commits to master since this release

SMS перестали заполнять память модема

Галочка «хранить сообщения в памяти роутера» стояла, а слоты не освобождались — три причины, и первая массовая:

  • Telegram держал слив вечно. Сообщение разрешалось удалить из модема только после подтверждения доставки ботом. Там, где Telegram недоступен без VPN, подтверждения нет никогда — не удалялось ни одно сообщение. Теперь ожидание с крайним сроком: час с момента попадания в архив, дальше слот освобождается. Сообщение не теряется — архив и есть источник правды, бот с командами читают его.
  • ModemManager. Считалось, что при MM удалять нечего. Но SMS приходят в то же хранилище (обычно на SIM), MM их оттуда не убирает — карта заполняется так же. Теперь чистим и там, при явно включённой галочке.
  • Неактивные модемы. Слив ходил только к активному; ящик второго модема забивался.

Появилась диагностика: smsbridge.sh archive-why печатает, что именно мешает освободить слоты; застрявшие сообщения раз в час уходят в журнал.

Модемом считается только модем

Раньше модем опознавался по факту наличия ttyUSB/cdc-wdm — вкладку, секцию в конфиге, место в приоритете интернета и опрос AT-командами получал любой переходник USB-UART, счётчик, плата или принтер.

Теперь решают признаки самого устройства: драйверы, привязанные ядром к интерфейсам, классы интерфейсов (MBIM, CDC ECM, NCM), вендор модуля и — страховкой — собственный профиль устройства с IMEI, чтобы проверка не спрятала работающий модем незнакомой модели. В настройках рядом с каждым устройством написано, почему оно считается тем, чем считается. Ручные списки в «Для экспертов» по-прежнему сильнее любой эвристики.

Команды по SMS

  • reboot больше не уводит роутер в петлю. Сообщение помечалось выполненным после запуска команды, а перезагрузка наступала раньше записи ключа — после загрузки та же SMS находилась снова. Теперь помечаем до запуска.
  • Две готовые команды из коробки: перезагрузка роутера и питание модема. Раздел больше не открывается пустой таблицей с одной кнопкой «+».
  • Защитный код — отдельная настройка: если задан, идёт первым словом сообщения (1234 reboot), без него роутер команду не выполнит. Раньше единственной защитой был список доверенных номеров, а номер отправителя подделывается.
  • Понятные подписи: «Слово в SMS» и «Что выполнить»; команда пишется ровно так, как в SSH.

Прочее

  • Карточка лечения подписывает ступени своей лестницы. На Wi-Fi-аплинке показывалось AT+CFUN=1,1 — команда, которая ему никогда не слалась (у Wi-Fi своя лестница: переподключение, REASSOCIATE, пересборка радио). Время попытки печатается с единицей измерения, а не голым числом секунд.
  • Скриптам в дереве выставлен бит исполнения — раскатка мимо пакета больше не оставляет их неисполняемыми.