Инструкция по работе с SMS на роутерах iRZ
Отправка SMS
В роутерах iRZ есть несколько способов отправки смс для различных ситуаций. Рассмотрим три способа отправить SMS с помощью роутера.
Способ №1: отправка из пункта меню Send SMS
В данном способе необходимо перейти в раздел Tools → Send SMS и вписать в поле Recipient Phone Number номер телефона получателя SMS, а в поле Message – желаемый текст. После нажать кнопку Send.
Одновременно можно отправить SMS только на один номер телефона.
Способ №2: отправка по событию на GPIO порту
В разделе меню Tools → GPIO настроить цифровые порты ввода-вывода на реагирование изменения их состояния с отправкой смс на указанный номер.
Роутер может реагировать:
-
на появление напряжения на указанном порту
-
на пропажу напряжения
-
на оба этих события
Выбор регулируется в столбце Trigger.
Способ №3: отправка посредством web api роутера
Для отправки сообщения необходимо выполнить POST запрос по протоколу HTTP на адрес роутера к URI /api/sendsms и передать в теле запроса JSON объект вида:
"recipient": "+79991234567",
"message": "test\n"
где:
recipient - номер получателя,
message - текст сообщение.
| Данные необходимо передавать в кодировке utf-8. |
В ответ роутер сообщит об отправке сообщения JSON-объектом вида:
{
"result": "ok",
"_board": {
"platform": "irz_ra01",
"name": "RU11w"
}
}
где result - результат отправки: ok или fail
Пример работы через утилиту curl:
# curl -X POST http://root:root@192.168.1.1/api/sendsms -d '{"recipient": "+79991234567", "message": "test\n=)"}'
Ответ:
{"result": "ok", "_board": { "platform": "irz_ra01", "name": "RU11w" }}
Для операционных систем семейства WINDOWS так же есть утилита curl, но синтаксис команды выглядит по-другому:
curl -H "Content-Type: application/json" -X POST http://root:root@192.168.1.1/api/sendsms -d "{\"recipient\": \"+79111234567\", \"message\": \"test\"}"
| Данный метод тестировался на windows 10 и утилите curl с сайта curl.com ver.8. В других версиях windows с другими версиями утилиты curl синтаксис может не совпадать. |
Получение SMS
В роутерах iRZ нет возможности просмотра SMS-сообщений через веб-интерфейс. Читать входящие SMS можно в логе роутера, либо записывать SMS в файл.
Действия следует выполнять из консоли роутера по протоколу SSH или Telnet, подключившись с помощью утилит: putty, winscp (протокол scp).
-
Создать на роутере скрипт /etc/uagent.d/smsd/01-save-sms со следующим содержанием:
#!/bin/sh
# "$FROM" "$TEXT" "$MODEM" "$DEVICE"
DATE="$(date +%F_%T)"
FILE="/opt/sms/incoming-${FROM}-$DATE"
mkdir -p /opt/sms/
echo "From: $FROM" > $FILE
echo "Date: $DATE" >> $FILE
echo -en "Message: $TEXT" >> $FILE
echo "===END===" >> $FILE
Этот скрипт предназначен для сохранения входящих сообщений в нестираемый при обновлении и сбросе настроек раздел /opt
| Не забывайте иногда очищать этот раздел! |
-
Аналогичным образом добавить скрипт /www/api/sms для отображения входящих SMS в веб-интерфейсе:
#!/bin/sh
board=$(cat /tmp/sysinfo/board_name)
set_error(){
case "$1" in
404) code="404 Not Found" ;;
406) code="406 Not Acceptable" ;;
409) code="409 Conflict" ;;
*) code="400 Bad Request" ;;
esac
echo "Status: $code"
echo ""
echo -e "$2"
exit 1
}
set_header(){
echo "Content-type: text/plain; charset=utf-8"
echo ""
}
set_header
cat /opt/sms/incoming* 2>/dev/null
| Важно не забыть сделать скрипт исполняемым: |
chmod +x /www/api/sms
-
После перехода в браузере по адресу https://192.168.1.1/api/sms откроется страница, на которой будут доступны SMS, полученные роутером.