Автоматична робота із SMS на модеміZTE-MF823

Цей модем не є модемом, як таким. Це роутер із процесором arm v7 на базі Linux, в системі відображається у вигляді мережевої карти, без проблем заводиться в Лінуксі (мережевий інтерфейс usb0, мережа 192.168.0.0).

До пристрою можна підключатися telnet (ip: 192.168.0.1, login: root, password: zte9x15), далі впроваджувати свої iptables, вішати скрипти в crontab і багато іншого, навіть встановлювати власне, але сьогодні мова не про це.

goform >notCallback=trueNumber=номер абонентаsms_time=дата у форматі y;m;d;h;i;sMessageBody=текст повідомлення>encode_type=UNICODE

У відповідь ми отримаємо масив усіх SMS у форматі JSON.

З видаленням sms все просто, а ось з отриманням і відправкою наступне лихо - кожен символ кодується HEX-кодом UTF, отримуємо код символу функцією ord(), переводимо те, що вийшло в 16-річну систему числення і добиваємо нулями до 4х сивол, для зворотної розкодування повідомлень ділимо текст по 4 символи, переводимо в 10-річну систему числення і отримуємо символ за номером функцією chr(). Здавалося б, все так просто, та ось тільки php не особливо добре працює з юнікодів, тому довелося винаходити якісь велосипеди і бидлокодить, в результаті 3х годинних дослідів вийшов PHP клас для роботи з sms на даному модемі.

Передбачається, що скрипти на php будуть отримувати всі повідомлення, а потім робити зачистку пам'яті модему. Цей модем підключений до Raspberry Pi, в кронтабі висітимуть різні обробники sms та бот, який реагуватиме на команди, відправлені з довірених номерів та приймати певні рішення.

Хардкорна конфа за С++. Ми запрошуємо лише профі.