Имеется комплект модемов Huawei e1550 подключенных к Asterisk.
Задача - настроить уведомление о балансе на sim карах модемов письмом на почту.
Система настроена на Debian Squeeze и Asterisk по этой инструкции или по этой инструкции
Модемы Huawei E1550 подключены и настроены к Asterisk в Debian Squeeze по этой инструкции (будет чуть позже) с помощью dongle
Решение будет работать на любой NIX* системе, где работает Asterisk c модемами подключенными через Dongle.
Используем для отправки почты консольный почтовик mutt c smtp авторизацией на почтовом ящике Google.
Устанавливаем консольный почтовик mutt:
aptitude install mutt
Настраиваем smtp авторизацию в mutt через почтовый ящик Google, для этого создаем в домашней директории пользователя под которім будет отправлятся почта, в нашем случае - asterisk конфигурационный файл почтовика:
vi /home/asterisk/.muttrc set imap_user = "[email protected]" set imap_pass = "you_pass_mail" set smtp_url = "smtp://[email protected]:587/" set smtp_pass = "you_pass_mail" set from = "[email protected]" set realname = "Почтовик" set folder = "imaps://imap.gmail.com:993" set spoolfile = "+INBOX" set postponed="/Drafts" set header_cache=~/.mutt/cache/headers set message_cachedir=~/.mutt/cache/bodies set certificate_file=~/.mutt/certificates set move = no
you_name_mail - пишем имя своего почтового ящика
you_pass_mail - пишем пароль от своего почтового ящика
Скрипт будем выполнятся под пользователем Asterisk.
Cоздаем логи:
touch /var/log/asterisk/ussd_modem1.txt touch /var/log/asterisk/ussd_modem2.txt touch /var/log/asterisk/ussd_modem3.txt touch /var/log/asterisk/ussd_modem4.txt touch /var/log/asterisk/balans.txt
Изменяем права на пользователя Asterisk:
chown asterisk:asterisk /var/log/asterisk/ussd_modem1.txt chown asterisk:asterisk /var/log/asterisk/ussd_modem2.txt chown asterisk:asterisk /var/log/asterisk/ussd_modem3.txt chown asterisk:asterisk /var/log/asterisk/ussd_modem4.txt chown asterisk:asterisk /var/log/asterisk/balans.txt
Создаем папку где будет хранится скрипт баланса
mkdir -p /home/asterisk/scripts/
Создаем в папке сам скрипт баланса:
vi /home/asterisk/scripts/balans_modems.sh #!/bin/sh # Очищаем логи: cat /dev/null > /var/log/asterisk/ussd_modem1.txt cat /dev/null > /var/log/asterisk/ussd_modem2.txt cat /dev/null > /var/log/asterisk/ussd_modem3.txt cat /dev/null > /var/log/asterisk/ussd_modem4.txt cat /dev/null > /var/log/asterisk/balans.txt # Делаем запрос на получение баланса и после каждого запроса ждем 10 секунд, # чтобы модем успел получить данные и записать в лог файл /usr/sbin/asterisk -rx "dongle ussd modem1 *111#" sleep 10 /usr/sbin/asterisk -rx "dongle ussd modem2 *111#" sleep 10 /usr/sbin/asterisk -rx "dongle ussd modem3 *111#" sleep 10 /usr/sbin/asterisk -rx "dongle ussd modem4 *111#" sleep 10 #Формируем общий файл с балансом: cat /var/log/asterisk/ussd_modem1.txt > /var/log/asterisk/balans.txt cat /var/log/asterisk/ussd_modem2.txt >> /var/log/asterisk/balans.txt cat /var/log/asterisk/ussd_modem3.txt >> /var/log/asterisk/balans.txt cat /var/log/asterisk/ussd_modem4.txt >> /var/log/asterisk/balans.txt #Отправляем содержимое файла письмом на адреса: mutt -s "Баланс на модемах..." [email protected] < /var/log/asterisk/balans.txt mutt -s "Баланс на модемах..." [email protected] < /var/log/asterisk/balans.txt mutt -s "Баланс на модемах..." [email protected] < /var/log/asterisk/balans.txt
Заходим под пользователем asterisk (su astrisk) и добавляем в cron запуск скрипта:
crontab -e 30 8 * * * sh /home/asterisk/scripts/balans_modems.sh
Каждое утро в 8-30 будете получать на почту баланс с модемов.
Пример того, что придет на почту:
modem1 (067-XXX-XX-XX) - 2012-07-05 12:03:33 - Na Vashomu rahunku 120.83 grn.
modem2 (067-XXX-XX-XX) - 2012-07-05 12:03:43 - Na Vashomu rahunku 53.22 grn.
modem3 (063-XXX-XX-XX) - 2012-07-05 12:03:54 - Balans 21.23hrn, bonus 0.00hrn. Bazhaete pryhovaty svii nomer pry dzvinkah? Nabyraite *123*2547#
modem4 (063-XXX-XX-XX) - 2012-07-05 12:04:5 - Balans 0.98hrn, bonus 0.00hrn. Bazhaete pryhovaty svii nomer pry dzvinkah? Nabyraite *123*2547#
Добавить комментарий