В роутерах и контроллерах RTU присутствует возможность отсылать и принимать СМС.

Данная возможность обеспечивается с помощью пакета SmsTools3

Основной сайт:

http://smstools3.kekekasvi.com/

Формат и заголовки для SMS:

http://smstools3.kekekasvi.com/index.php?p=fileformat


Для прошивок версии ниже 1.5.1S / 1.5.1Q необходимо привести файл smsd.conf к нужному виду вручную.

Также необходимо создать файл внешнего обработчика с кодом и дать ему права на исполнение(chmod 755)

Или просто обновить роутер на актуальную прошивку.


Вся работа с СМС в роутере RTU осуществляется с помощью консоли.

В WEB нет инструментов для работы с СМС!!!


1. Для отправки СМС необходимо запустить сервис. Редактируем файл настроек.


Конфигурация SmsTools3:

nano /etc/smsd.conf


Структура файла:

devices = NONE
logfile = /var/log/ehs5_sms.log
loglevel = 5
incoming = /var/spool/sms/incoming
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
sent = /var/spool/sms/sent
receive_before_send = no
autosplit = 3
checkhandler = /sbin/ucsconvert

[EHS5]
init = AT+CPMS="ME","ME","ME"
device = /dev/ttyACM4
incoming = yes
baudrate = 115200


Меняем пункт

devices = NONE

на

devices = EHS5


И запускаем сервис:

/etc/init.d/smstools3 start


2. Отправка смс с русским текстом(кириллица):

Для отправки сообщений в русской символике, все исходящие сообщения преобразуются 


Конвертер кодировки:

cat /sbin/ucsconvert


В файле smsd.conf он подключается как внешний обработчик:

checkhandler = /sbin/ucsconvert


Структура файла:

#!/bin/sh
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
if [ $# -lt 1 ]; then
        echo "Give me a file!"
        exit 10
fi
if [ ! -f "$1" ]; then
        echo "$1: No such file or it's not a regular file!"
        exit 20
fi
if ! which iconv > /dev/null 2>&1; then
        echo "There is no iconv(1) here! Please, install it."
        exit 40
fi
HEADER=`sed -e '/^$/ q' $1`
BODY=`sed -e '1,/^$/ d' $1`
ALPHABET=""
# Is body in english?
if ! echo -n "$BODY" | iconv -t ISO-8859-15 > /dev/null 2>&1; then
        ALPHABET="Alphabet: UCS"
fi
FILE=`mktemp /tmp/smsd_XXXXXX`
echo "$HEADER" >> $FILE
# If body isn't in english tell it to smsd
[ -n "$ALPHABET" ] && echo "$ALPHABET" >> $FILE
echo "" >> $FILE
# Convert body if it's needed.
if [ -n "$ALPHABET" ]; then
        echo -n "$BODY" | iconv -f UTF-8 -t UCS-2 >> $FILE
else
        echo -n "$BODY" >> $FILE
fi
mv $FILE $1


3. Отправка СМС

Для отправки СМС необходимо создать или переместить файл, с текстом СМС, в папку /var/spool/sms/outgoing


Создаем СМС:

nano /var/spool/sms/outgoing/sms1.sms


Текст СМС:

To: 79991234567           

                          

Hello, from router RTU968!


Пустая строка между заголовком и телом сообщения обязателена!!


СМС с кириллицей отправляются аналогично, все действия по преобразованию кодировки берет на себя внешний обработчик /sbin/ucsconvert

Если русские символы отображаются, как нечто странное, в этом нет ничего страшного. При отправке они определятся правильно.


4. Мониторинг отсылки и получения СМС.

Для отслеживания получения или отправки СМС можно подключиться параллельной сессией по SSH и ввести команду:

tail -f /var/log/smsd.log


Информация будет отображаться в реальном времени.


В дальнейшем можно расширить функционал, подключать внешние обработчики и многое другое.


Сопутствующие статьи:

Как подключиться к роутеру RTU?


Дополнительная информация:

Wiki на GITHUB

Страница роутера на сайте Teleofis

Контроллеры на платформе роутера RTU