Представляю новую биллинговую систему для учета работы Dial-Up и VPN пользователей. Система написана на Perl, используется совместно с MySQL и FreeRadius.Возможности:
- Учёт времени;
- Учёт трафика;
- Система скидок;
- Установка минимальной цены сессии;
- Работа с неограниченным количеством NAS серверов;
- Авторизация по SQL базе данных или по системной UNIX базе паролей;
- Авторизация по PAP или CHAP (CHAP при сохранении паролей в SQL базе);
- Авторизация PPPOE по MAC адресу;
- Разделение трафика на 3 вида (внутренний, внешний, бесплатный) (Только для VPN);
- Ограничение скорости в зависимости от вида трафика (Только для VPN);
- Создание месячных предоплаченных по трафику пакетов;
- Просмотр статистики за любой период времени;
- Генерация и отправка администратору месячных и годовых отчётов по работе системы;
- Лог действий администратора.URL: http://abills.sf.net/
Новость: http://www.opennet.me/opennews/art.shtml?num=4974
Интерфейсы кассира, директора (ну там, только статистика), администратора (этот есть, как я вижу), иных операторов есть?Корректировка Session-Octets-Limit и Octets-Direction или Session-Tiomeout по ходу сессии существует (для возможности внесения оплаты без отключения ppp или vpn-сессии)?
Возможность задать 15 числа месяца то, что с начала следующего пользователь работает по иному тарифу?
Предохранение от удаления тарифов, пользователей, информации о платежах (иначе ведь вся статистика побъется)?
Возможность работы с mpd и ограничение vpn-сессий по Drop-User (ибо Session-Octets-Limit и Octets-Direction он не понимает)?
1. Есть возможность разделения на группы но ещё до конца она не протестирована
2 Есть Session-Tiomeout, а для ВПН сесий есть Session-Octets-Limit при условии использования ppp входящего в комплект.
3 Вносить деньги можна в любой момент но пользователя разорвёт по истечению сумы которая была на момент подключения.
4 Такой возможности ещё нет
5 Только предупреждения, при удалении любых записей
6 В стандартном MPD нет Drop-User если появится внесу корективы в биллинг.
3. Вот по этому вопросу подробнее: это в принципе невозможно, или все-таки при Acct-Update можно NAS'у возвращать уточненные на текущий момент Session-Timeout, Session-Octets-Limit и Octets-Direction (сам бьюсь над этим, но не совсем еще разобрался, читаю RFC) возможно, но не реализовано?6. ftp://ftp.ufanet.ru/pub/boco/mpd/ - тут есть патчи, разрешающие Drop-User (там еще куча поправок). Собственно, проблем с наложением патча у меня не возникало. Описав дополнительно наложение патча в документации можно и фичу прикручивать.
В следующей верси постраюсь полную сделать поддержку MPD с возможностью ограничения времени, трафика и хенгапом с веб формы
>Корректировка Session-Octets-Limit и Octets-Direction или Session-Tiomeout по ходу сессии существует (для возможности внесения оплаты без отключения ppp или vpn-сессии)?
Это требует создания обратной связи. На уровне alive пакетов отдавать их нельзя (см rfc на RADIUS протокол). Необходимо внести в код RADIUS плагина, auth-request с переодичностью в n минут к примеру, а в reply возвращать лимиты. Это наиболее правильный вариант.
Да, совсем забыл...За проект - огромное спасибо.
PS. Выше - не наезд, просто уточнение. А то сидю вот, пытаюсь свое наваять...
Спасибо огромное!!! работа проделана просто сумащедшая! спасибо за проект! :-)
а exppp то старенький. В новых версиях есть несколько дополнительных вкусностей.
И кста - как Вы собираетесь в mpd разделять трафик на зоны ?
На сейте http://shs.sumy.ua последняя версия 0.2.4 её я взял и немного поправил там было пару багов. Мне более удобно когда как порт передаётся номер туна. Все эти новшества и другие непонятки я хотел донести до автора хотя мне с ним связаться так и не удалось, он не отвечал на письма и посты на форуме. Версия имеет суфикс asm для явного отличия от стандартного exppp.Извините но где я могу найти более новую версию патчей, щас на Вашем сайте вобще ничего нет. Если хотите их предложить я только за после тестирования внесу их в новый релиз.
Как написал возможно в следующем дисте будет реализирована максимально удобная работа с mpd.
Нащёт перехода на другие системы баз даных то скорее это будут модули для PostGreSQL, Interbase, Oracle. (Но это все в нескором будущем, щас развиваються другие не мене важные модули)
И вот ещё одно пожелание маленькое:
MySQL довольно избыточен. Не приходило ли мысли использовать какое либо другое хранилище ? SQLite например ? :)
А под линуксом как работает? Никак?
Всё ядро системы написано на Perl использует FreeRadius, Apache.
Есть свой веб сервер на перл правда ещё без авторизации.
Дополнительный софт может на линуксе не собраться но в линуксе есть аналоги.
Всё это можно портировать на линукс. Если ктото ещё напишет инструкцию я буду только за.
Выглядит неплохо...
Работает ли этот билинг под FreeBSD 5.2 ?
Будет ли билинг портирован ?
Возможно ли хранение базы в Oracle 8.0.5 или MS SQL ?
Работает нормально как на 5.хх так и на 4.хх.
Портирован на что ?
Если Вас интересует будет ли создан порт для более быстрой установки билинга и компонентов - да будет.
Большенство запросов и таблиц сделано с поддержкой SQL 92 но гарантии нет что оно будет работать.
В будущем планируется сделсть его совместимыv такими базами как PostrgeSQL, Interbase и вчасности Oracle.
PS особенно понравился вопрос про портирование - от души посмеялся :) Спасибо!
____________________1. Чем не нравится установка из портов ?
2. Понимать и думать - не проблема. но прежде чем пробовать что то устанавливать на работающую систему не лучше ли перестраховаться и уточнить ньюансы у автора програмы ?
Файл pppowho
#!/usr/bin/perl$gateway = '217.196.163.14';
open(IFCONFIG, "/sbin/ifconfig |") || die "Can't open ifconfig $!";
while(<IFCONFIG>) {
$ifconfig .= $_;
}
close(IFCONFIG);while($ifconfig =~ /tun(.+\n.+\n.+PID.+)/gi) {
push(@tuns, $1);
}
Живые IP это так надо для работы?
Нет.Это тестовый файл он практически не нужен.
Хочу посмотреть, как ограничили количество сессий - подскажите, пжалста, где копнуть. С первого наскоку не нашёл ;(
Есть 2 варианта
1 Ограничение на количество сесий предусмотреное в тарифном плане. Например если падключаетесь по тарифному плану номер 9 в нем предусмотрено 1 сесия то можете подключиться с этим логином только 1 раз, второй раз не пустит.
2 Ограничение количества сесий для определёного пользователя, эта настройка более приоритетна. Если она 0 то учитываеться количество сесий предусмотреных тарифным планом.
не не %)
Хочется посмотреть, как это сделано в скриптах. Я так понимаю, за авторизацию отвечает /usr/abills/libexec/rauth.pl, именно он посылает Reject если понимает, что сессия с таким логином уже есть.
В моей ситуации на radacct (на сессии с нулевым стоп-таймом) полагаться нельзя - поэтому я сейчас пишу проверку из скрипта ip-up, куда exppp шлёт логин и прочее.
205 строка там есть коменты
если устанавливать софт с портов
надо подгонять кое-что
Отличаются пути от тех которые приводятся в документации
Господа! кто поставил и поюзал - не пожадничайте! поделитесь отзывами! будем признательны, тк предстоит скоро нечно подобное в офисах внедрять.. Заранее спасибо ответившим!
туповатый вопрос, но всё же
web_serv../billing/
логин и пасс , что вводить то?
тупо
сорри)
Отрылся форум все интересующие Вас вопросы сможете задать там.
Поддерживается ли лимитирование траффика т.е 50мб поставил и больше этого не скачается.
да для VPN соединений
does this billing system has php interface?
>да для VPN соединений
Для этого нужно патч mpd установить на pptpd?
А как на счет масштабируемости? Если каждый запрос запускать внешний перл-скрипт я думаю будет гораздо больше накладных расходов, чем если радиус через уже устаноыленное соединение с БД пошлет запрос. А необходимую логику можно реализовать в виде триггеров.