Обработка входящих звонков/SMS Мегафон модем CentOS

Начало
Centos EMail to SMS мегафон модем E1550

[root@mng ~]# cat /etc/smsd.conf
devices = GSM1
incoming=/var/spool/sms/incoming
outgoing=/var/spool/sms/outgoing
checked=/var/spool/sms/checked
sent=/var/spool/sms/sent
logfile = /var/log/smsd/smsd.log
loglevel = 7 #debug = 7
smart_logging = yes

[GSM1]
device = /dev/ttyUSB1
baudrate = 115200
rtscts = no
init = at+cpms="sm","sm",""
incoming = yes
incoming = high
eventhandler = /usr/local/sbin/smshandler
eventhandler_ussd = /usr/local/sbin/smshandler
[root@mng ~]#


[root@mng ~]# touch /usr/local/sbin/smshandler
[root@mng ~]# chmod 755 /usr/local/sbin/smshandler
[root@mng ~]# /etc/init.d/sms3 restart
Starting SMS Daemon: smsd.
[root@mng ~]# echo "Проверка" | sendsms +7965XXXXXXX

[root@mng ~]# cat  /usr/local/sbin/smshandler
#!/bin/bash

# Зададим глобальные переменные.
ADMINPHONE="7965XXXXXXX"
ADMINMAIL="admin@iamroot.ru"

# Обработаем только входящие звонки и SMS-сообщения.
# Разделим данные на заголовок и тело сообщения.
if [[ "$1" =~ (CALL|RECEIVED) ]]; then
    MESSAGE=$(cat "$2")
    FROM=$(echo "${MESSAGE}"|grep -e '^From\:'|cut -d' ' -f2)
    DATE=$(echo "${MESSAGE}"|grep -e '^Received\:'|cut -d' ' -f2,3)
    BODY=$(echo "${MESSAGE}"|sed -e '1,/^$/d')
fi

case "$1" in
# События при входящем звонке.
CALL)
    # Проверка номера входящего звонка.
    if [ "${FROM}" == "${ADMINPHONE}" ]; then
        # Действие при звонке
        cat 111 >> /var/log/smsd/zvonki.log
    fi
;;

# События при получении ответа на USSD-запрос.
USSD)
;;

# События при поступлении SMS-сообщения.
RECEIVED)
    # Проверка номера и тела входящего SMS-сообщения.
    # Если номер совпадает с содержанием переменной ADMINPHONE и тело
    # SMS-сообщения совпадает со словом "REBOOT", то выполняется перезагрузка.
    if [[ "${FROM}" == "${ADMINPHONE}" && "$BODY" == "REBOOT" ]]; then
        # Не забудьте задать следующую строку в файле /etc/sudoers
        #
        # sms ALL= NOPASSWD: /sbin/reboot
        #
        sudo /sbin/reboot
        exit
    fi
    # Перенаправление остальных SMS-сообщений на почтовый ящик.
    echo -e "From: ${FROM}\nDate: ${DATE}\n\n${BODY}" | \
    /usr/bin/mail -s "SMS Received" ${ADMINMAIL} >/dev/null
;;

# События при отправке SMS-сообщения.
SENT)
;;

# Прочие события, не определенные выше.
*)
    echo "$*" >>/var/log/smsd/others.log
;;
esac
[root@mng ~]#

С изменениями и дополнениями взято http://mrcat.ru/sms-send-receive

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Time limit is exhausted. Please reload the CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.