There is a set of modems Huawei e1550 connected to Asterisk.
The challenge - Set up a balance notification on the sim car modems by letter to the post office.
The system is configured with Debian Squeeze and Asterisk according to or according to
Huawei E1550 modems connected and configured to Asterisk in Debian Squeeze according to(will be a little later) with help. dongle
The solution will work on any NIX* system that runs Asterisk with modems connected via Dongle.
We use a console mail to send mail. mutt c smtp Authorization on the Google mailbox.
Install the console mailer mutt:
aptitude install mutt
We configure smtp authorization in mutt through the Google mailbox, for this we create in the user's home directory under which the mail will be sent, in our case - asterisk configuration file of the mailer:
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 - Write the name of your mailbox.
you_pass_mail Write a password from your mailbox.
The script will be executed under the user Asterisk.
We're making logs.
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
We change the rights to Asterisk users:
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
Create a folder where the balance script will be stored
mkdir -p /home/asterisk/scripts/
Create a balance script in the folder:
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
Go to the asterisk user.su astrisk) and add to cron script launch:
crontab -e 30 8 * * * sh /home/asterisk/scripts/balans_modems.sh
Every morning at 8:30 you will receive a balance from the modems.
An example of what will come to the post office:
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#




comment