10.1. [DKSF 707.3 IU] Управление GSM-модемом

Интерфейс URL-encoded-команд в устройстве может быть использован для интеграции с web-приложениями без использования протокола SNMP.

Отправка SMS

http://192.168.0.100/sendsms.cgi?utf8

URL вызывается методом POST. Данные POST представляют из себя текст SMS в кодировке UTF-8. Более подробно об отправке произвольных SMS-сообщений можно прочитать в разделе «5.1. [DKSF 707.3 IU] Как отправлять произвольные SMS-сообщения?».

Возвращаемые значения

Успешное выполнение команды:

sendsms_result('ok',3217763174,2);

Первый аргумент: результат постановки в очередь, должно быть 'ok'.

Второй аргумент: id для проверки статуса, начинается со случайного числа и наращивается на 1 при каждой отправке SMS-сообщения на каждый номер. При переполнении 32 бит id сбрасывается на нуль.

Третий аргумент: число адресатов, поставленных в очередь отправки.

Запрос баланса

http://192.168.0.100/ussdstart.cgi?кодзапроса

где:

код запроса — a[код]x. Например, a100x, что означает *100#. В коде USSD запроса «*» заменяется на «a», «#» заменяется на «x» (латинские символы).

Возвращаемые значения

Успешное выполнение команды:

ussdsend_result('ok');

Получение ответа на запрос баланса

http://192.168.0.100/ussdread.cgi

Вызывать через 20 секунд после запроса баланса SIM-карты.

Возвращаемые значения

ussdsend_result("ответ_gsm_оператора");


Проверка статуса отправки SMS

http://192.168.0.100/sms_status.cgi?id=3217763174&n=2

где:

id — взят из ответа на sendsms.cgi. 

n — указывает число последовательных id, для которых проверяется статус. Таким образом, можно проверить отдельных адресатов или всю групповую посылку сразу.

Возвращаемые значения

sms_status_result('success',3);

Первый аргумент:

  • error — ошибочные аргументы в запросе или внутренняя ошибка;
  • unknown — информация хотя бы по одному из проверяемых id уже недоступна, или использован id «из будущего»;
  • waiting — хотя бы один id еще ждет в очереди;
  • fail — ошибка отправки (хотя бы один id из группы);
  • success — успешная отправка для всей опрашиваемой группы id.

Второй аргумент: битовая маска, имеет смысл только для ответов 'success' и 'fail'. Левый (старший) бит соответствует первому из проверяемых id, правый (младший) бит соответствует последнему из группы id. Ширина маски соответствует аргументу n в вызове. Бит = 1, если для данного id отправка SMS выполнена успешна.

Пример

При отправке SMS-сообщений двум адресатам возвращается, например, следующий ответ:

sendsms_result('ok',3217763178,2);

Для проверки отправки SMS-сообщения второму адресату вызвать:

http://192.168.0.100/sms_status.cgi?id=3217763179&n=1

В итоге возвращается ответ:

sms_status_result('success',1);

Авторизация

Для добавления в структуру URL-encoded-команды логина и пароля можно воспользоваться следующей схемой:

  • http://<имя_пользователя>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>

где:

<имя_пользователя>:<пароль> — учетные данные для авторизации в web-интерфейсе устройства;

<хост>  IP-адрес устройства;

<порт>  порт HTTP-сервера;

<URL‐путь>?<параметры>  URL-encoded-команда.