Модуль организации Diulup и VPN доступа.
Деньги снимаются со счета пользователя в конце сессии.
Чтобы пользователь не зашёл в минус, перед началом сессии для exppp, mpd, mikrotik ppp (с патчем http://abills.asmodeus.com.ua/wiki/doku.php?id=abills:docs:mpd:ru ), linux pppd, Mikrotik OS ppp ставится лимит сессии по времени и по трафику. Для других NAS серверов только по времени. Чтобы пользователи для NAS серверов, не имеющие возможности устанавливать лимиты трафика на сессию, не уходили в минус или для того, чтобы постоянно контролировался расход денег, например снятие абон. платы и других отчислений, нужно включить запускать в кроне программу /usr/abills/libexec/billd
/etc/crontab
*/5 * * * * root /usr/abills/libexec/billd
abills/libexec/config.pl
@MODULES = (
'Dv'
);
| $conf{MAC_AUTO_ASSIGN}=1; | Заполнять поле CID при соединении, если оно не заполнено. Если при включённой опции не надо определённому пользователю присваивать CID, нужно поставить в поле 1 (цифру один) |
|---|---|
| $conf{DV_USER_CHG_TP}=1; | Разрешить пользователю менять тарифный план из пользовательского веб аккаунта. Пользователям отображаются только те тарифные планы на для перехода на какие им хватает средств. Меню в пользовательском аккаунте: Internet |
| $conf{DV_USER_CHG_TP_SHEDULE}=1; | Включить возможность задавать расписания изменения тарифного плана для пользователя. Тарифный план меняется в день указанный в расписании. |
| $conf{DV_USER_CHG_TP_NPERIOD}=1; | Разрешить пользователю менять тарифный план на следующий учётный период. По умолчанию на следующий месяц или на дату следующего учётного периода ДАТА Активизации + 30 дней. Имеет более высокий приоритет чем $conf{DV_USER_CHG_TP_SHEDULE} |
| $conf{periodic_check}=1; | Проверять депозит по текущим сессиям, при достижении 0 сбрасывать с линии |
| $conf{s_detalization}=1; | Более детальная статистика по сессиям |
| $conf{DV_EXPPP_NETFILES}='/usr/abills/cgi-bin/admin/nets/' | путь к файлам с заданными сетями (только для exppp) |
| $conf{DV_LOG_CLEAN_PERIOD}=90; | Время хранения логов детализации. Указывается в днях. |
| $conf{ERROR_ALIVE_COUNT}=3; | Количество периодов не пришедших Alive пакетов после которого сессия автоматом попадает в Zap таблицу. Время Alive периода выставляется в / System configuration/ NAS/ [Alive] Если сессия находится в Zap таблице больше 3 Alive интервалов система автоматически её закрывает и рассчитывает время сессии и суму. Временем такой сессии считает время от старта до поучения последнего Alive пакета. (По умолчанию 3 периода) |
| @START_FW = (3000, 2000, 1000); | Начальные номера правил для FreeBSD ipfw |
| $conf{PASSWORDLESS_ACCESS}=1; | Безпарольный вход в систему. Система проверяет IP адрес клиента если он совпадает с адресом в талице онлайн сессий клиенту предоставляется доступ к статистике без ввода пароля |
| $conf{DV_CALLBACK_PREFIX}='4' | подставлять префикс для Callback номера. При перезвоне клиенту добавлять префикс 4 |
| $conf{DV_CALLBACK_DENYNUMS}='800' | Регулярное выражения запрещающее перезванивать на определённые номера. Например «800» не перезванивать на номера которые начинаются с 800 |
| $conf{DV_MIN_USER_FULLPERIOD}=1 | Включение возможности снимать минимальную наработку не первого числа каждого месяца а через 30 дней с даты активации. |
| $conf{DV_IP_DISCOVERY}='1:129.168.0.0/24;NET_ID:ADDRESS_RANGE'; | Регистрация IP/MAC адреса клиента для последующей выдачи статического адреса данному клиенту в сети. Система автоматически ищет следующий свободный адрес и присваивает его клиенту прописывая в таблице адресов DHCP. NET_ID - в какую сеть регистрировать клиента. ADDRESS_RANGE - диапазон адресов куда должен попадать незарегистрированный клиент. Если не указать эту опцию все клиенты попадают в общую сеть указанную в первом параметре. Шаблоны сравнения указываются через точку с запятой. |
| $conf{DV_USER_SERVICE_HOLDUP}='min_period:max_period:holdup_period'; | Приостановка действия сервиса пользователя из личного кабинета. min_period - минимальный период блокировки max_period - максимальный период блокировки holdup_period - период в днях - за который можно приостановить услугу. Например не чаще чем раз в 60 дней |
Тарифные планы / System configuration/ Internet / Tarif plans/
| # | Идентификатор тарифного плана |
|---|---|
| Name: | Название |
| Alert: | Сумма, при которой будут отправляться сообщения о приближении окончания баланса. Предупреждение отправляется на E-mail пользователя указанный в поле E-mail персональных данных пользователя. |
| Simultaneously: | Количество пользователей, которые могут подключиться под одним логином в один промежуток времени. |
| Periodic payments | Абонплата |
| Day fee: | Дневная абонплата. Снимается каждый день скриптом /usr/abills/libexec/periodic daily |
| Month fee: | Месячная абонплата. Снимается 1 числа каждого месяца программой /usr/abills/libexec/periodic monthly. Если в поле Activisation указанное значение не равно 0000-00-00 то абонплата снимается через 30 дней после указанной даты и после снятия денег устанавливается в поточную дату.Абонплата снимается при положительном депозите или при типе оплаты послеоплата.Если сума депозита меньше сумы абонплаты, то абонплата снимается в минус. |
| Period Alignment: | При включённой опции система при переводе на данный тарифный план снимает с пользователя суму, рассчитанную с текущего дня до конца месяца. Таким образом происходит выравнивание по 1 числу следующего месяца. Если в поле активизация стоит дата, тогда система снимает деньги от даты активизации |
| Abon. Distribution: | Распределение месячной платы по дням. При указании опции месячная плата взывается каждый день с учётом её распределения по дням месяца |
| Reduction: | Учитывать пользовательскую скидку при снятии абонплаты |
| Postpaid: | Снимать абонплату без учёта депозита |
| Extra Bill Account | Снимать абон. плату с дополнительного счёта. Появляется при включении в конфигурационном файле опции $conf{EXTRA_BILL_ACCOUNT}=1; |
| Time limit (sec) | Лимиты времени. Указываются в секундах |
| Day | День |
| Week | Неделя |
| Month | Месяц |
| Traffic limit (Mb) | Лимиты трафика. Указываются в мегабайтах |
| Day | День |
| Week | Неделя |
| Month | Месяц |
| Octets direction | Подсчёт байт Received + Send - считать суммарно входной и выходной трафик Received - Считать входной трафик Send - считать выходной трафик |
| Activisation: | Сума, которую снимать при активизации аккаунта |
| Change: | Сума, которую снимать при переходе с одного тарифного плана на этот |
| Credit Tresshold: | Несъёмный минимум |
| Credit: | Кредитный лимит тарифного плана. Кредитный лимит тарифного плана имеет более низкий приоритет, чем кредитный лимит пользователя. |
| Max. session time (sec.): | Максимальная длина сессии |
| Filters: | Название фильтра |
| Age (Days): | Время жизни аккаунта. Отсчитывается со дня активизации. |
| Payment type: | Prepaid - Предоплата Postpaid - Оплата после использования |
| Min. session cost: | Минимальная цена сессии. Данная опция устанавливает минимальное количество использованных денег за учётный период. Обработка этой функции проходит первого числа каждого месяца. Если в конце учётного периода сумма наработки меньше указанной в данной опции, она доснимается как одноразовый платёж с указанием в комментариях. Сумма снимется в начале поточного периода за предыдущий. При съёме минимальной месячной наработки учитывается дата активизации, если дата активации не равна 0000-00-00, то система снимает деньги, учитывая количество рабочих дней клиента. После снятия денег система меняет дату активации на 0000-00-00. Для корректной работы данной опции обязательна опция тарифного плана или подмена абон. платы послеоплата |
| Traffic transfer period: | Период переноса неиспользованного трафика. Задаётся в месяцах. Неиспользованный трафик переносится с предыдущих периодов при условии, что в предыдущих периодах была отработана хоть одна сессия по данному тарифному плану. Если таких сессий нет - предыдущий период не учитывается. |
| Negative deposit filter ID: | Фильтр негативного депозита. При использовании данной опции система разрешает подключаться пользователей с негативным депозитом, но при этом оправляет на NAS RADIUS параметр фильтр (Filter-Id). Также возможно задавать радиус связки, передаваемые в параметре. Для задания передачи RADIUS пар вместо значения нужно указать RADIUS пары разделённые запятыми и начинающимися с префикса RAD:. Пример: RAD:Tunnel-Private-Group-Id=5,Tunnel-Type=VLAN,Tunnel-Medium-Type=IEEE-802. Также в фильтре негативного депозита можно передавать параметры логина и IP адреса клиента. %IP% - IP адрес %LOGIN% - Логин Пример: RAD:mpd-table += 1=%IP% |
| RADIUS Parameters (,) | Дополнительные радиус параметры для передачи клиенту |
| IP Pool | База IP адресов для выдачи пользователям работающим по данному тарифному плану. Можно использовать совместно один пул для нескольких тарифных планов. Пула адресов задаются через меню настройки серверов доступа (System Configuration / NAS / IP Pools) |
| Priority: | Приоритет тарифного плана. Если заполнено это поле и пользователь переходит с тарифного плана с большим приоритетом на ТП с меньшим приоритетом с него снимается сума указанная в поле «Сумма изменения тарифного плана». Если в обратном направлении сумма не снимается. Большим является большее числовое значение более приоритетным будет значение 10 чем значение 2. |
Интервалы тарифных планов. В периоды, не описанные в интервалах, система не авторизует пользователя.
Приоритет периодов:
Крайне нежелательно пересекать периоды с одинаковым приоритетом. Последствия не предсказуемы.
Не описывайте периоды с переходом через границу суток, например: 23:00:00 до 03:00:00.
Правильно:
Первый период: 00:00:00 до 03:00:00 Второй период: 23:00:00 до 24:00:00
Если не задано ни одного интервала пользователя авторизует в любое время.
Значения полей:
| Day: | День недели |
|---|---|
| Begin: | Начало периода |
| END: | Конец периода |
| Time tariff | Цена 1 часа в этом периоде |
| Traffic | настройки траффикации трафика и шейпера в этом периоде (появляется после создания интервала) |
Тарификация траффика.
| Intervals 1 | ID часового интервала |
|---|---|
| ID | ID класса трафика |
| Traffic tariff (1 Mb) IN / OUT | Тарификация траффика входящий / исходящий (По умолчанию считается со стороны пользователя). Указывается в мегабайтах. Чтобы изменить направление, опция в конфигурационном файле $conf{octets_direction}; |
| Prepaid (Mb) | Предоплаченный общий (Входящий + Исходящий) трафик если не указано обратного в опции тарифного плана Octets direction. При использовании этой опции сначала система смотрит за использованием предоплаченного траффика, а после превышения лимита считает по тарифу, указанному в интервале. Как предоплаченный считается суммарно весь траффик с учётного периода по всем часовым интервалам. Учётный период начинается с начала месяца, если в поле Activation аккаунта пользователя прописано 0000-00-00 или с даты прописанной в поле Activation. Неизрасходованный предоплаченный траффик система не переносит на следующий учётный период. В системе статистики цена траффика входящего в предоплаченный нулевая. |
| Speed (Kbits) IN / OUT | Скорость Входящая / Исходящая |
| Describe | Описание класса траффика |
| Expressions: | Формулы для более гибкой тарификации. |
| NETS | Список сетей. Используется при разделении трафика на классы: Интернет, пиринг и т д. Сете задаются в меню. / System Configuration / Internet / Traffic Class |
| EXPPP_NETFILES | Создать файл сетей для NAS exppp |
Только для продвинутых пользователей
Формулы для более гибкой тарификации траффика.
Формат формул:
[PARAMETER_TYPE EXPRESION PARAMETER_VALUE]=RESULT[PARAMETER_TYPE:PARAMETER_VALUE,…];
Формулы состоят из двух частей, разделенных знаком равенства '=', левой выражения и правой результата выражения.
Левая часть может состоять из нескольких результирующих параметров описанных через запятую ','. Если правая часть формулы возвращает верно то применяется левая часть выражения.
Система просматривает формулы с верху до низу и заканчивает просмотр на первом неверном выражении.
PARAMETER_TYPE (Костанты):
Трафик - Расчётная единица 1 мегабайт (1024 * 1024 байт)
TRAFFIC_SUM - Суммарный траффик
TRAFFIC_IN - Входящий траффик
TRAFFIC_OUT - Исходящий траффик
Дневные константы - используются для пересчёта цены трафика в зависимости от дневного его потребления. Использование этого выражения допускается только при использовании одного временного интервала на весь учётный период.
Понятия бонусных начислени за использование пропускной полосы разрешает пользователям попавшим под действия выражений насчитывать дополнительные суммы на счёт за использование или отдачу определённого класса трафика.
Пока данная функция только работает при использовании режима Dv + IPN
BONUS_TRAFFIC_IN - Входящий
BONUS_TRAFFIC_OUT - Исходящий
BONUS_TRAFFIC_SUM - Суммарный
Месячные константы - используются для пересчёта цены трафика в зависимости от месячного его потребления. Использование этого выражения допускается только при использовании одного временного интервала на весь учётный период.
MONTH_TRAFFIC_SUM - Суммарный траффик
MONTH_TRAFFIC_IN - Входящий траффик
MONTH_TRAFFIC_OUT - Исходящий траффик
Константы сессии - Траффик,полученный/отправленный на протяжении сессии. При использовании данных констант трафик учитывается только в конце сессии.
SESSION_TRAFFIC_SUM - Суммарный траффик
SESSION_TRAFFIC_IN - Входящий траффик
SESSION_TRAFFIC_OUT - Исходящий траффик
Скорость - Расчётная единица 1 кБит
SPEED_IN - Входящая приёма
SPEED_OUT - Скорость передачи
Цена за 1 мегабайт
PRICE - Общая цена трафика
PRICE_IN - Цена за входящий трафик
PRICE_OUT - Цена за исходящий трафик
Примеры
Если суммарные трафик за учётный период больше 1000 мегабайт, то скорость устанавливается в 64 кбита.
TRAFFIC_SUM>1000=SPEED:64;
Если суммарный траффик за учётный период больше 1000 мегабайт, то цена за 1 мб. 0.2 расчётных единицы
TRAFFIC_SUM>1000=PRICE:0.2;
Если пользователь за учётный период накачал: 300 метров - цена за 1 мб. 2 расчётных единицы; 600 - 1.5; больше 1000 - 1
TRAFFIC_SUM>300=PRICE:2; TRAFFIC_SUM>600=PRICE:1.5; TRAFFIC_SUM>1000=PRICE:1;
Подсчёт только привилегированного направления сессии.
SESSION_TRAFFIC_IN>SESSION_TRAFFIC_OUT=PRICE_IN:0.2,PRICE_OUT:0; SESSION_TRAFFIC_IN<SESSION_TRAFFIC_OUT=PRICE_IN:0,PRICE_OUT:0.2;
Начисление дополнительных донусов за входящий трафик
BONUS_TRAFFIC_IN>0=PRICE_IN:1;
В абонплату включено 500 Мб трафика.
Все, что выше нормы тарифицируется по 0.10 $ за 1 Мб.
Скорость 256 Kbit/s.
24 часа в сутки все дни недели.
^ Traffic tariff (1 Mb): IN: | 0.10 |
| OUT: | 0.10 |
|---|---|
| Prepaid (Mb): | 500 |
| Скорость (Kbit/s): IN: | 256 |
| OUT: | 256 |
Сервера доступа, к которым разрешено подключаться при использовании данного тарифного плана
Пользователи, которые работают по данному тарифному плану
/ Customers/ Logins/ Information/ Services/ Internet/
| Tarif plan | Тарифный план |
|---|---|
| Join Service: | Совместный сервис Данная функция доступна только пользователям привязанным к компании и разрешает использовать параметры одного тарифного плана несколькими пользователями. Для использования данного сервиса нужно назначить главного пользователя и прикреполять к его акаунту всех других суб пользователей |
| Simultaneously | Одновременных подключений. Имеет более высокий приоритет, чем этот же параметр в тарифном плане. |
| IP | Статический ИП адрес пользователя |
| Static IP Pool: | Автоматическое заполнение поля IP из указанного пула адресов |
| Netmask | Сетевая маска |
| Speed (kb) | Скорость подключения. Имеет более высокий приоритет чем скорость в тарифном плане. |
| Filters | Фильтр |
| CID | Идентификатор пользователя. Может быть: номер телефона, MAC, IP или любой другой параметр передаваемый в RADIUS атрибуте Calling-Station-Id. Если это поле не заполнено или значение ANY, тогда проверка по идентификатору не проводится. Также можно внести несколько CID параметров разделённых точкой с запятой ';' |
| Port | Используется для дополнительной привязки пользователя к порту NAS |
| Callback | Обратный вызов |
| Status | Заблокировать. Также можно указать дату блокировки аккаунта. |
| Periodic Payments | Дата следующего снятия абон. платы |
| TURBO: | Включить у пользователя возможность пользоваться турборежимом. Турборежим разрешает пользователю на определённое время поднять скорость интернета. При этом провайдер может снимать дополнительные деньги за использование такой услуги. |
Callback – это звонок с обратным вызовом, т.е. когда оператор связи устанавливает соединение с абонентом, таким образом исключив из расходов абонента стоимость за исходящее от абонента телефонное соединение. Подключение производится в два этапа:
Абонент устанавливает соединение с модемным пулом оператора, при этом указав в качестве логина следующую комбинацию: Номер абонента, на который необходимо перезвонить:логин
Пример:
209944:dialuplogin
Сервер биллинга разбирает данные пользователя и отправляет данные в Access-Accept пакете на NAS сервер,
который производит звонок на указанный номер.
Сначала нужно разрешить использовать эту услугу.
/ Customers/ Users/ Information/ Services/ Internet /
Форма компенсации.
Администратор указывает дату начала и завершения компенсации, исходя из этих данных система формирует суму компенсации клиенту и зачисляет её на счёт в виде бонусного платежа. Компенсация высчитывается рассчитывая сумму месячного платежа разделённую на 31 день и умноженную на количество дней простоя, если указана дневная абон. плата, она также умножается на количество дней простоя.
Данная возможность пока работает только при использовании серверов доступа на базе FreeBSD и Cisco ISG
Турбо режим разрешает пользователю на определённое время поднять скорость интернета. При этом провайдер может снимать дополнительные деньги за использование такой услуги.
Для включения этой функции нужно установить дополнение Turbomode.
После включения дополнения в пользовательском интерфейсе появляется меню турбо режим. В этом меню пользователь может выбрать скорость и время на которое предоставляется данный режим.
Например
2 мб/сек на один час.
Система сразу же открывает доступ пользователю на запрошенной скорости. По истечению времени система понижает скорость до скорости тарифного плана. Все эти действия происходят без разрыва соединения.
Режимы турбо скорости настраиваются в конфигурационном файле системы.
$conf{DV_TURBO_MODE}="1024:3600:0:Турбо режим 1Мб. на 1 час;1024:7200:2:Турбо режим 1Мб. на 2 часа;";
Описание турбо режима режима 1024:3600:Турбо режим 1Мб. на 1 час
| 1024 | Предоставляемая скорость. Скорость можно указывать фиксированную или в процентной ставки от скорости тарифного плана. Например: 200% - увеличит скорость вдвое |
|---|---|
| 3600 | Время доступа |
| 0 | Сума которую нужно нужно снять за предоставление данного режима |
| Турбо режим 1Мб. на 1 час | Описание сервиса |
/Reports/Internet /
Отчёты по работе пользователей
/ Monitoring/ Inetrnet /
Online - Система мониторинга активных сессий (подключённых) пользователей.
Для удобства система подсвечивает сессии.
Подозрительными являются сессии, от которых на протяжении 3 Alive периодов не пришло ни одного радиус Alive пакета или помеченные внешним контролером сессий (/usr/abills/libexec/billd). Количество неполученных Alive пакетов устанавливается в переменной конфигурации $conf{ERROR_ALIVE_COUNT}=3;. Время Alive периода устанавливается при настройке Nas Servers.
Zaped - временное хранилище подозрительных (незаконченных) сессий.
С правой стороны находятся кнопки действий над сессией.
ACCT_TERMINATE_CAUSE устанавливается в Lost-Service.
В системе предусмотрена регистрация пользователей через веб интерфейс.
Адрес регистратора: https://your.host:9443/registration.cgi
Для включения регистрации нужно заполнить переменную в конфигурационном файле.
@REGISTRATION = ('Dv');
После регистрации пользователь получает письмо с персональной информацией касающейся аккаунта, а админисратор уведомление о регистрации нового пользователя.
Ошибки авторизации и другие сообщения в журнале ошибок (/ Reports/ Internet / Error/)
Контролер Dv соединений. Програма следит за балансом пользователей и подвисшими сессиями.
Завершение сессии при отрицательном балансе
Перенос зависшей сессии в Zap.
В системе существует несколько типов снятия периодических снятий денег (абон. плата) они разделяются на месячные и дневные. Для дневной абон. платы используется скрипт
# /usr/abills/libexec/periodic daily
Для месячной
# /usr/abills/libexec/periodic monthly
дополнительные параметры передаваемые при запуске снятий
| TP_ID | Номер тарифного плана. Снятия производятся только для указанного тарифного плана. |
|---|---|
| LOGIN | Логин абонента. Снятия производятся только для определённого абонента. |
| DATE | Дата выполнения периодических процесов. Операции будут производиться с датой указанной в этом параметре |
| DEBUG | Режим отладки |