10.11. [DKSF 544.2 IU] Как отправлять произвольные SMS?
Работа с SMS-сообщениями и встроенным GSM-модемом доступна только для устройств NetPing 4/PWR-220 v6.1/GSM3G и NetPing 4/PWR-220 v6.2/GSM3G
Отправка SMS-сообщений посредством протокола SNMP
Максимальная длина произвольных SMS-сообщений не может превышать 70 символов для латиницы и 70 символов для кириллицы (кодировка UTF-8).
Для отправки SMS при помощи протокола SNMP нужно воспользоваться переменной «npGsmSendSms», в которую записывается телефонный номер адресата и текст SMS-сообщения. Для этого см. MIB-файл, который можно скачать на странице описания устройства, раздел «Документация и файлы».
OID | Имя | Тип | Доступ |
.1.3.6.1.4.1.25728.3800.1.9.0 | npGsmSendSMS | DisplayString | READ/WRITE |
Формат произвольного SMS-сообщения:
[phone_number1,phone_number2,phone_number3,phone_number4] Message
где:
phone_number — номер адресата в квадратных скобках, указывается в формате: Код_страныКод_оператораНомер_абонента (можно отправить SMS до четырех адресатов, указав их в квадратных скобках через запятую, без пробелов. Если не указывать адресатов вообще, SMS уйдет на номера, заданные в настройках на странице «SMS» веб-интерфейса устройства);
Message — текст сообщения (пишется через пробел от номера адресата)
Пример последовательности команд для отправки произвольных SMS через SNMP при помощи пакета NET-SNMP
1. Для отправки произвольной SMS можно воспользоваться специальным пакетом NET-SNMP. Для этого нужно загрузить дистрибутив пакета NET-SNMP из раздела Download сайта: http://net-snmp.sourceforge.net/download.html
2. После установки пакета NET-SNMP запустить утилиту snmpset.exe в командной строке. Для запуска командной строки воспользоваться сочетанием клавиш «Windows+L». После открытия окна «Выполнить» ввести команду «cmd» и нажать клавишу Enter. Далее в командной строке перейти в директорию установки утилиты snmpset.exe:
3. Запустить утилиту snmpset.exe со следующими параметрами командной строки:
snmpset.exe -v 1 -c COMMUNITY IP OID TYPE VALUE
где:
COMMUNITY — специальное кодовое слово, устанавливаемое на странице «НАСТРОЙКИ» веб-интерфейса устройства. В устройствах NetPing по умолчанию community=SWITCH;
IP — IP-адрес устройства NetPing, через которое будет отправлено произвольное SMS-сообщение;
OID — SNMP-идентификатор переменной «npGsmSendSms», который используется для отправки произвольного SMS-сообщения;
TYPE — тип записываемого значения SNMP-идентификатора переменной. Условное обозначение типов приведено на рисунке:
VALUE — записываемое значение, то есть номер/номера абонентов и текст SMS-сообщения.
Исходя из вышеизложенного описания, команда для отправки произвольной SMS при помощи утилиты snmpset.exe:
C:\Program Files (x86)\net-snmp\usr\bin>snmpset.exe -v 1 -c SWITCH 192.168.0.100 .1.3.6.1.4.1.25728.3800.1.9.0 s "[+79130000000] Hello! Test SMS!"
4. После успешного выполнения команды должен прийти следующий ответ:
SNMPv2-SMI::enterprises.25728.3800.1.9.0 = STRING: "[+79130000000] Hello! Test SMS!"
Отправка SMS-сообщений через сторонние веб-приложения (HTTP API)
Максимальная длина произвольных SMS-сообщений не может превышать 70 символов для латиницы и 70 символов для кириллицы (кодировка UTF-8).
Пример отправки произвольных SMS при помощи JavaScript-кода
Для отправки SMS через сторонние веб-приложения можно воспользоваться следующим JavaScript-кодом:
var r = new XMLHttpRequest();
r.open('POST', 'http://192.168.0.100/sendsms.cgi?utf8', true, 'visor', 'ping'); // visor:ping — имя пользователя и пароль
r.withCredentials = true;
r.send('[+79130000001,+79130000002,+79130000003,+79130000004] Houston, we have a problem!');
где:
192.168.0.100 — IP-адрес устройства NetPing по умолчанию;
visor — имя пользователя по умолчанию для подключения к веб-интерфейсу устройства NetPing;
ping — пароль по умолчанию для подключения к веб-интерфейсу устройства NetPing.
Можно отправить SMS до четырех адресатов, указав их в квадратных скобках через запятую, без пробелов. Если не указывать адресатов вообще, SMS уйдет на номера, заданные в настройках на странице «SMS» веб-интерфейса устройства.
Если формат данных правильный, в качестве результата возвращается JavaScript-код:
sendsms_result('ok');
Результат посылки сообщения не влияет на возвращаемый CGI (Common Gateway Interface) ответ. CGI только инициирует посылку сообщения.
Пример отправки произвольных SMS при помощи скрипта PowerShell
Для отправки SMS через сторонние веб-приложения можно воспользоваться следующим скриптом PowerShell:
$url = "http://192.168.137.100/sendsms.cgi?utf8"
$username = "visor"
$password = "ping"
$reqBody = "[+79130000001,+79130000002,+79130000003,+79130000004] Тестовое сообщение"
$req = [System.Net.вебRequest]::Create($url)
$req.Method = "POST";
$req.Credentials = new-object System.Net.NetworkCredential($username, $password)
$Body = [System.Text.Encoding]::UTF8.GetBytes($reqBody);
$stream = $req.GetRequestStream();
$stream.Write($Body, 0, $Body.Length);
$stream.Flush();
$stream.Close();
$resp = $req.GetResponse().GetResponseStream()
$resp.Close()
где:
$url — переменная, в которую задается URL-адрес устройства NetPing со скриптом для отправки произвольных SMS-сообщений;
$username — переменная, в которую задается имя пользователя для авторизации на устройстве NetPing;
$password — переменная, в которую задается пароль для авторизации на устройстве NetPing;
$reqBody — переменная, в которую задается номер адресата в квадратных скобках, указывается в формате: Код_страныКод_оператораНомер_абонента и текст SMS-сообщения (пишется через пробел от номера адресата). Можно отправить SMS до четырех адресатов, указав их в квадратных скобках через запятую, без пробелов. Если не указывать адресатов вообще, SMS уйдет на номера, заданные в настройках на странице «SMS» веб-интерфейса устройства.