пятница, июля 29, 2016

Траблшутинг: как модем перестал, а потом снова начал слать СМС


Жил-был в одной пиццерии модем, выполнявший единственную функцию: при оформлении онлайн-заказа слал на номер клиента число из диапазона 1000-9999. Слал-слал, да и перестал.

В error-логе Apache обнаружилось, что gsmsendsms заканчивается неудачей с ошибкой: неожиданный ответ: ^RSSI: 9.

RSSI - показатель силы сигнала. Чо к чему?

Полез к модему через minicom. Увидел, что модем регулярно шлёт RSSI: <цифра> и тип соединения. Очевидно, это и есть "неожиданный ответ". gsmsendsms ожидала на свою сентенцию что-то типа ОК, а получила, натурально, уровень сигнала зачем-то.

Выключил эти сообщения (есть такая АТ команда). Теперь gsmsendsms заканчивалась с ошибкой 500.

500 - это ошибка типа "ХЗ". Что-то не так, не технически, а вообще. Непорядок во внешней вселенной.

Вынул SIM-карту из модема, поставил в телефон. Она оказалась заполненной. Хранилище на 15 сообщений было полно предупреждениями МЧС о грядущих ненастьях.

Удалил сообщения и поставил карту назад в модем. Она стала отправлять сообщения.

Проблема была решена, но в ближайшей перспективе. МЧС ведь не остановится. Ненастья грядут.

Изучение AT команд открыло, что AT+CMGD=X удалит из хранилища сообщение номер X. А AT+CMGD=X,4 удалит всё, игнорируя значение X.

Также оказалось, что AT команды можно тупо слать в /dev/ttyUSBx, например, через echo -n.

Осталось вставить это в crontab рута.

Оставил на завтра: слишком много свершений за один день.

2 комментария:

Troublemaker комментирует...

Спасибо, тёзка, будем иметь в виду - не в моём подчинении, но в нашей конторе есть примерно до фига специализированных устройств с симкартами, вдруг пригодится.

Troublemaker комментирует...

Прошу прощения, в предыдущем комменте забыл указать, что хочу получать уведомления об ответах, буде такие появятся

Поиск по этому блогу