Используя пакет трафика на МТС, у меня остается много неиспользованных СМС, которые ежемесячно сгорают. Жалко. Подумал, что информирование по СМС гораздо надежнее и эффективнее. Что-то, а смс-ка всегда долетит, даже если на телефоне закончился интернет-трафик.
Чтобы отправлять СМС через модем (в моём случае это Huawei e3372h), требуется установить прошивку Stick. Stick нужна, чтобы роутер (или комп) видел интерфейс /dev/ttyUSB0 модема, через который собственно и будут передаваться AT-команды.
Из софта, нужен smstools3. Готовый пакет можно поставить на Ubuntu или OpenWRT.
Для установки пакета smstools3 на роутер Keenetic Giga (KN-1010), сперва понадобится установить менеджер пакетов opkg. Как это сделать, хорошо описано в официальном мануале. В роли флэш-носителя, я установил micro-sd карту в слот модема, чтобы не занимать лишний USB-порт роутера.
Установка не вызвала никаких проблем
Создадим исполняемый файл /opt/send-to.sh, который поможет отправлять СМС на кириллице.
sendsms +79211231234 "Я есть Грутъ!"
Смотрим логи
Материал взят отсюда
Чтобы отправлять СМС через модем (в моём случае это Huawei e3372h), требуется установить прошивку Stick. Stick нужна, чтобы роутер (или комп) видел интерфейс /dev/ttyUSB0 модема, через который собственно и будут передаваться AT-команды.
Из софта, нужен smstools3. Готовый пакет можно поставить на Ubuntu или OpenWRT.
Для установки пакета smstools3 на роутер Keenetic Giga (KN-1010), сперва понадобится установить менеджер пакетов opkg. Как это сделать, хорошо описано в официальном мануале. В роли флэш-носителя, я установил micro-sd карту в слот модема, чтобы не занимать лишний USB-порт роутера.
Установка не вызвала никаких проблем
opkg update
opkg install smstools3 nano
После установки, сразу лезем в файл конфигурации демонаnano /opt/etc/smsd.conf
# Description: Main configuration file for the smsd
devices = GSM1
incoming = /opt/var/spool/sms/incoming
outgoing = /opt/var/spool/sms/outgoing
checked = /opt/var/spool/sms/checked
failed = /opt/var/spool/sms/failed
sent = /opt/var/spool/sms/sent
receive_before_send = no
autosplit = 3
checkhandler = /opt/sms-to.sh
eventhandler = /opt/sms-from.sh
logfile = /var/log/smsd.log
loglevel = 7
# Uncomment (and edit) this section to allow smsd to start:
[GSM1]
init = AT+CPMS="ME","ME","ME"
device = /dev/ttyUSB1
incoming = yes
#pin = 0000
baudrate = 115200
Создадим все пути, указанные в конфигеcd /opt/var/
mkdir spool && cd spool
mkdrit sms && cd sms
mkdir incoming
mkdir outgoing
mkdir checked
mkdir failed
mkdir sent
cd /var/run/ && mkdir smsd
Ну, и пропишем свой путь для лог-файлаlogfile = /var/log/smsd.log
Далее снимаем комменты с секции [GSM1] и запустим демонаsmsd -c /opt/etc/smsd.conf
Готово! Отправить СМС можно командойsendsms +79211231234 "test"
Вы наверное обратили внимание на две строки checkhandler = /opt/sms-to.sh
eventhandler = /opt/sms-from.sh
Эти параметры указывают путь к исполняемому скрипту, который будет выполняться при получении, или при отправке смс.Создадим исполняемый файл /opt/send-to.sh, который поможет отправлять СМС на кириллице.
nano /opt/sms-to.sh
#!/bin/sh
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin
FROM_FILE="$1"
[ ! -r "$FROM_FILE" ] && exit 1
if grep -q '[а-яА-Я]' $FROM_FILE; then
TMPFILE=$(mktemp /tmp/smsd_XXXXXX)
sed -e '/^$/ q' < "$FROM_FILE" > $TMPFILE
echo 'Alphabet: Unicode' >> $TMPFILE
sed -e '1,/^$/ d' < "$FROM_FILE" | iconv -f UTF-8 -t UNICODEBIG >>$TMPFILE
mv $TMPFILE "$FROM_FILE"
fi
На всякий случай, установим программу iconv, которая используется в скриптеopkg update
opkg install iconv
Отправляем тестовую СМС на русском языкеsendsms +79211231234 "Я есть Грутъ!"
Смотрим логи
cat /var/log/smsd.log
2019-01-14 16:20:41,5, GSM1: SMS sent, Message_id: 19, To: 79211231234, sending time 1 sec.
2019-01-14 16:20:42,6, GSM1: SMS To: 79211231234. Moved file /opt/var/spool/sms/checked/send_8Py8QQ to /opt/var/spool/sms/sent/send_8Py8QQ
2019-01-14 16:20:42,7, GSM1: Running eventhandler: /opt/sms-from.sh SENT /opt/var/spool/sms/sent/send_8Py8QQ 19
2019-01-14 16:20:42,3, GSM1: Done: eventhandler, execution time 0 sec., status: 32512 (127)
Материал взят отсюда
Интересное - давай продолжение, как сделать API для сайта чтоб SMS отправлять с сайта и понять отправлено или еще нет.
ОтветитьУдалить