v2.4.41
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, пересборка радио). Время попытки печатается с единицей измерения, а не голым числом секунд. - Скриптам в дереве выставлен бит исполнения — раскатка мимо пакета больше не оставляет их неисполняемыми.