— Управление КВ-пейджером через SMS

В виндовом КВП в стоке функция управления через СМС отсутствует. Предлагаю исправить это недоразумение. Для этого воспользуемся встроенными функциями взаимодействия программы HFPager с внешними приложениями.

Нам понадобится исправный USB-модем с сим-картой и движок Gammu. Посредником между ними и HFPager станет простенький скрипт на php.

Предлагаемый скрипт умеет разбирать входящие смс-ки и формировать файл на отправку через КВП. Файл кладется в папку API, прописанную в программе HFPager как MessageToSend. В начало каждого эфирного сообщения добавляется позывной абонента. Позывной хранится в текстовом файле рядом со скриптом. Формат записи там простой, строчка номера телефона с +, ниже строчка с позывным. Следующий абонент — еще две строчки. Сообщения от неизвестных номеров игнорятся.

Настройка папок для взаимодействия с внешними приложениями в программе HFPager

Также скрипт рассылает по списку получателей эфирные сообщения, адресованные нашему ID. Эти сообщения скрипт берет из другой папки API, которая называется MessageReceived.

Для отправки сообщения эфирному абоненту, напишите смс с текстом «>id Bla-bla-bla». Пробел между ID и текстом сообщения должен быть хотя бы один.

Скрипт не умеет присылать квитанции о доставке. Делать это через костыли не хочется, а API КВП этого пока не умеет.

Итак, подразумевается, что php уже установлен и настроен. И usb-модем тоже в системе определился и не отваливается после перезагрузки компьютера. Качаем Gammu с Гитхаба.

Запускаем Gammu-1.43.2-Windows-Minimal.exe

Gammu умеет работать с модемом через файлы или через базу данных. Для небольших и несложных задач первый режим подходит вполне себе нормально. Его и применим в этом проекте.

После установки идем по адресу:
C:\Program Files\Gammu 1.43.2\share\doc\gammu\examples\config
и копируем оттуда файл smsdrc в папку
C:\Program Files\Gammu 1.43.2\bin

Открываем файл smsdrc и правим в нем номер СОМ-порта и тип соединения. Указываем свой СОМ-порт, в моем случае 8.

В секции [gammu]
device = com8
connection = at

В секции [smsd]
service = files
PIN = 0000
inboxpath = c:\sms\inbox\
outboxpath = c:\sms\outbox\
transmitformat = unicode

В командной строке, запущенной от имени администратора, идем в директорию расположения Gammu. Даем команду gammu identify.
Если модем исправен и файл настроек корректный, получаем от модема такой ответ. Видим модель модема, IMEI и что сим-карта на месте и номер IMSI у нее присутствует.

Дальше надо инсталлировать демона SMSD командой gammu-smsd -c gammurc -i

Проверим, что демон точно прописался.

Скрипт возьмем с гитхаба, ссылка внизу. Для отладки удобно запускать его из командной строки. Показана обработка разных вариантов эфирных сообщений и входящих смс.

Дальше вешаем выполнение задачи в Task Scheduler с нужной периодичностью и не забываем следить за балансом сим-карты.

Дополнительные материалы:

https://stephenmonro.wordpress.com/2015/06/26/gammu-on-a-windows-computer-for-sms-database/ — Очень полезная статья для вдохновения

https://github.com/RA0UEK/HFPager-SMS-Connector — Материалы проекта на GitHub;

https://github.com/gammu/gammu/releases/tag/1.43.2 — Движок Gammu на GitHub

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *