Приветствую Вас, Гость! Регистрация RSS

Linux Free

Пятница, 29.03.2024
Главная » Статьи » Сети

Узнать баланс модема


Модем в Ubuntu

Посмотрим, как получить баланс и вывести его стандартным уведомлением убунту (а еще было бы неплохо хранить историю расходов). Этот пост использует информацию с Хабра.

1. Поехали!

Устанавливаем gnokii и средство посылки уведомлений (если еще не установлено):

sudo apt-get install gnokii libnotify-bin

Затем создаем файл config по пути: ~/.config/gnokii (хотя на Хабре написано, что нужно создать .gnokiirc в домашнем каталоге, у меня это не сработало).

Заполняем созданный конфигурационный файл таким содержимым:

[global]
port = /dev/ttyUSB1
model = AT-HW
initlength = default
connection = serial
use_locking = yes
serial_baudrate = 115200
handshake = hardware

После этого создаем основной файл скрипта, который будем использовать для получения баланса (например, ~/balance.sh) с таким содержимым:

#!/bin/bash
# PIN-код
PIN=1234

notify-send "Модем" "Запрос баланса..."
echo "$PIN" | gnokii --entersecuritycode PIN
gnokii --deletesms SM 0 end
echo "0" | gnokii --sendsms 000100
sleep 2
gnokii --getsms SM 0 5 -F ~/.3g-balance.txt
sed -ie 's/^M/\n/g' ~/.3g-balance.txt

#^M скопировать не получится, для красоты сообщений желательно ее ввести с помощью <ctrl-v><ctrl-m>
notify-send "Модем" "`grep 'Баланс.*руб\.' .3g-balance.txt`"

Вместо переменной PIN необходимо вставить свой PIN-код. Важно заметить, что данный скрипт работает с модемами фирмы "Мегафон”. Для других операторов нужны свои данные: СМС с каким текстом и на какой номер отсылать (в примере посылается СМС с текстом "0″ на номер 000100). Для моего яичного оператора нужно отсылать "11″ на номер 111. Вся информация должна быть на сайте оператора.

Кроме того, у каждого оператора своя строка вывода баланса. У моего это "Ваш баланс:”, поэтому вместо grep 'Баланс.*руб\.' я установил значение grep 'баланс:'

2. Сохраняем значение баланса

Если нам важно знать расходы, то можно добавить несколько строк в конец скрипта, которые будут сохранять текущий баланс и время запроса:

date +%d.%m.%Y-%H:%M >> balance-history
grep 'баланс:' .3g-balance.txt >> balance-history
echo >> balance-history
tail balance-history

История запросов будет храниться в файле balance-history в формате Дата-время, перенос строки, результат запроса, пустая строка-разделитель.

3. Добавляем на панель

Не забудьте придать скрипту прав на исполнение. Уже сейчас все должно работать: после запуска файла должно появиться первое уведомление о запросе, еще через несколько секунд должно появиться второе уведомление с самим балансом.

Ваш баланс

Чтобы было удобно получать информацию и без терминала, можно добавить небольшую кнопку на панель: перетягиваем значок скрипта на панель, добавляем название и иконку.

Настройка кнопки

P.S. Если подумать, то авторский скрипт оставляет временный файл с данными последнего запроса. Таким образом, даже если модем уже отключен, то в файле есть какая-то информация и тогда при нажатии на кнопку на панели появится уведомление со старыми данными. Если файл очистить, то ложной информации не будет (хотя уведомление все равно выскочит), но это должно будет вас насторожить.

Категория: Сети | Добавил: Alexandrlin (02.04.2011)
Просмотров: 3083 | Комментарии: 2 | Теги: Узнать баланс модема Ubuntu | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]