Скрипт чтения СМС на 3G модеме (ussd)
Короткая предистория. Все началось с желтого мигающего огонька на модеме, который означал, что пришла СМС и жутко раздражал. А надо сказать, что Skylink шлет СМС после каждого захода на страницу статистики. Чтобы его убрать, надо было запустить родной софт и стирать СМС.
Начал разбираться и пришла мысль, а почему бы не наладить аварийное управление роутером через СМС. Например для следующих ситуаций:
- надо срочно перезагрузить роутер недоступный по сетевым интерфейсам и вне прямой досигаемости
- роутер работает с соединением с интернетом по требованию и надо поднять его интерфейс
- при использовании роутера для управления системами умного дома
и т.д и т.п
Надо сказать, что модем у меня Anydata ADU-300A (сразу оговорюсь, что скорее всего это заработает и для 100-й и 500-й серии). У этого модема есть управление по второму последовательному порту, который поднимается и в роутере при подключении модема через USB.
К сожалению внятной документации найти не удалось, только обрывки и сообщения людей которые тоже с ним работают. Но в результате нужная информация была добыта из сети и перехвате трафика фирменной программы.
Вторая проблема это работа с портом из скрипта. Но и тут удалось обойтись возможностями программы chat.
В результате получился скрипт который делает следующее:
- читает СМС из модема
- записывает их в файл с ограниченным объемом (более старые удаляются)
- удаляет прочитанные СМС из модема
- выполняет внешний командный скрипт с параметрами переданными в СМС, при получении СМС с номера хозяина.
- настройки можно задать в файле конфигурации
Если кому то это интересно, пробуйте и пишите комментарии.
sms.rar
P.S. Я неважно пишу на шелле, поэтому с радостью приму все коструктивные замечания по коду и идеи по оптимизации.
P.S.S Скорее всего не будет работать с драйвером option. По крайней мере у меня не получилось.