Тарифные планы

Концепция тарифных планов

/ Настройка / Internet / Тарифные планы

# Идентификатор тарифного плана. Старайтесь не создавать тарифные планы с ID ноль (0). Неправильное использование тарифных планов с ID 0 может привести к непредсказуемым последствиям
Name: Название тарифного плана
Alert: Сумма, при которой будут отправляться сообщения о приближении окончания баланса. Предупреждение отправляется на E-mail пользователя указанный в поле E-mail персональных данных пользователя. Данное сообщение отправляется если значение этого поля больше нуля и сума на счету клиента также больше нуля (credit+deposit>0)
Simultaneously: Количество пользователей, которые могут подключиться под одним логином в один промежуток времени.
Если абонент подключается повторно с тем же MAC адресом адресом, система считает что это новое подключение абонента, а сессия в журнале мониторинга устарела но по какой то причине не пришёл стоп пакет. Разрешает подключиться абоненту и присваивает ему IP адрес старой сессии, а старую сессию отправляет в zap. Данный подход используется для минимизации времени простоя при сбросе сессии абонента без оповещения биллинга.
Иногда неправильно настроенное оборудование (домашние маршрутизаторы) поднимают несколько сессий с одним мак адресом. Чтобы система строго следила за двойными сессиями без режима лояльного подключения нужно включить опцию $conf{hard_simultaneously_control}=1;

Абонплата

снимается только в том случае если у сервиса (Услуги интернет) статус «Активно»


Дневная

Дневная абонплата: Дневная абон. плата. Снимается каждый день скриптом /usr/abills/libexec/periodic daily, при наличии соответствующей суммы на депозите абонента. Абон. плата снимается только у абонентов с статусом услуги активно.
При недостаточном депозите, учётная запись не блокируется.
Active day fees: Абон. плата снимается только за активные дни. Плата снимается текщим числом за прошедший день
Day fee Postpaid: Снимать дневную плату не учитывая состояние баланса абонента

Месячная

  • Снимать первого числа месяца
  • Снимать всем абонку не первого, а любого другого числа месяца
  • Снимать абон. плату с даты активации на 31 день. После начисления абонплаты дата активации устанавливается в текущую.
  • Снимать абон. плату кажого месяца определенного числа указанного в поле активации. После начисления абонплаты дата активации устанавливается в текущую.
Month fee: Месячная абонплата. Снимается 1 числа каждого месяца программой /usr/abills/libexec/periodic monthly. Если в поле Activisation указанное значение не равно 0000-00-00 то абонплата снимается через 30 дней после указанной даты и после снятия денег устанавливается в поточную дату.
Абонплата снимается при положительном депозите или при типе оплаты послеоплата.
Если сума депозита меньше сумы абон. платы, то абоню плата снимается в минус.
Основные правила абон. платы
- Абон. плата снимается в начале учётного периода (в начале месяца или в начале дня при месячной распределённой)
- Снимается только с положительного финансового счета (кредит плюс депозит больше 0) или при условии типа снятия послеоплата (При снятии денег не учитывается депозит и начисления могут производить при отрицательном балансе)
Period Alignment: При включённой опции система при переводе на данный тарифный план снимает с пользователя суму, рассчитанную с текущего дня до конца месяца. Таким образом происходит выравнивание по 1 числу следующего месяца. Если в поле активизация стоит дата, тогда система снимает деньги от даты активизации до первого числа следующего месяца. Если между датой активации и поточным месяцем период больше одного месяца то за все промежуточные месяцы система снимает деньги от даты активации до последующего месяца с выравниванием и полную абон. плату за все промежуточные месяцы до поточного месяца включая поточный месяц
Fixed fees day Фиксированная дата абон. платы. Абон. плата всегда снимается одного и того же числа. Дата для определения числа снятия абон. платы система берёт из даты активации абонента и при каждом начислении устанавливает эту дату в текущую на момент начисления. Если не указанна дата активации абон. плата начисляется первого числа месяца. Если абонент был заведён после 28 числа следующая абон. плата у него начислиться через месяц первого числа после даты активации.
Abon. Distribution: Распределение месячной платы по дням. При указании опции месячная плата взымается каждый день с учётом её распределения по дням месяца. Расчёт суммы дневного снятия рассчитывается от количества дней месяца (месячная абон. плата разделить на количество дней месяца)
If deposit small then abon. payments Действие при недостаточном депозите:
- блокировать аккаунт (устанавливает статус сервиса «Слишком маленький депозит»)
- перевести на другой ТП.
Имеет более высокий приоритет чем после оплата. Данное действие выполняется если у абонента не достаточно для оплаты тарифного плана на следующий месяц использования. Данный статус устанавливается в следующие периоды ночным периодиком:
- Начало учётного периода для абонентов с абон. платой в начале месяца (активация акаунта 0000-00-00).
- Для абонентов с установленной активацией аккаунта (активация не 0000-00-00). Через 30 или больше дней с начала активации.
- Для абонентов с с месячной распределённой платой в любой день, если сумы на счету не достаточно для абон. платы.
После погашения долга и оплаты услуги система автоматически включает услугу сразу же после внесения средств.

Пример работы:
У абонента на счету 99 юнитов тарифный план 100 юнитов при начислении абон. плат абонента заблокирует до внесения им 1 юнита
Reduction: Учитывать пользовательскую скидку при снятии абон. платы
Postpaid: Снимать абон. плату без учёта депозита.
Разрешает снимать абон. плату при отрицательном депозите и без ограничения по задолженности. абон. плата снимается в начале учётного периода
Extra Bill Account Снимать абон. плату с дополнительного счёта. Появляется при включении в конфигурационном файле опции $conf{EXT_BILL_ACCOUNT}=1;

Другие параметры Лимиты времени. Указываются в секундах

Day День
Week Неделя
Month Месяц
Total Общее количество доступного времени с момента создания аккаунта

Лимиты трафика. Указываются в мегабайтах

Day День
Week Неделя
Month Месяц
Total общее количество трафика с момента создания аккаунта

Другие параметры

Направление трафика Подсчёт байт
Received + Send - считать суммарно входной и выходной трафик
Received - Считать входной трафик
Send - считать выходной трафик
Активация: Сума, которую снимать при активизации аккаунта.
Данная сума снимается если на акаунте еще не было активизировано услугу или при переходе с статуса не активизировано в активно
Изменение: Сума, которую снимать при переходе с одного тарифного плана на этот
Credit Tresshold: Несъёмный минимум
Кредит: Кредитный лимит тарифного плана. Кредитный лимит тарифного плана имеет более низкий приоритет, чем кредитный лимит пользователя.
Max. session time (sec.): Максимальная длина сессии
Filters: Название фильтра.
Пример фильтра для freebsd mpd. Заносит IP адрес абонента в 100 таблицу
RAD:mpd-table+=100=%IP%
Вид оплаты: Prepaid - Предоплата. Абонент может работать только при положительном депозите
Postpaid - Оплата после использования. абонент может работать при любом депозите так как сума депозите не учитывается.
Min. session cost: Минимальная цена сессии.
Minimal money use: Минимальная сума месячной наработки. Данная опция устанавливает минимальное количество использованных денег за учётный период. Обработка этой функции проходит первого числа каждого месяца. Если в конце учётного периода сумма наработки меньше указанной в данной опции, она доснимается как одноразовый платёж с указанием в комментариях. Сумма снимется в начале поточного периода за предыдущий. При съёме минимальной месячной наработки учитывается дата активизации, если дата активации не равна 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%

При подключении абонента с негативным депозитом в биллинге поднимается сессия с флагом гостевой доступ, после пополнения счета на суму превосходящую долг система сбрасывает абонента с линии и он может уже подключиться в рабочем режиме.
Negative deposit IP Pool Пул адресов негативного депозита. Выдаётся абонентам с отрицательным балансом. Данный параметр применяется только в случае использования его с фильтром негативного депозита. Пулы негативного депозита нельзя отмечать на серверах доступа в противном случае они будут выдаваться при позитивном депозите
Fine Пеня. Пеня изымается с аккаунтов в которых установлен статус Слишком маленький депозит и баланс превышает ноль единиц на счету. Пеня стягивается ежедневно периодическим месячным процессом. Поле скидка не распространяется на взимаемую пеню. Пеня снимается без учёта лимита (может сниматься при отрицательном депозите). Для установки лимита используется переменная $conf{DV_FINE_LIMIT}
RADIUS Parameters (,) Дополнительные радиус параметры для передачи клиенту
IP Pool База IP адресов для выдачи пользователям работающим по данному тарифному плану. Можно использовать совместно один пул для нескольких тарифных планов. Пула адресов задаются через меню настройки серверов доступа (/ Система/ Сервер доступа/ IP POOLs/). Если заканчиваются адреса выбранного пула система использует свободные адреса сервера доступа. Обязательно нужно отмечать данные пул адресов на серверах доступа к которым подключается клиенты в противном случае не будет идти контроль выданных IP.
Priority: Приоритет тарифного плана. Если заполнено это поле и пользователь переходит с тарифного плана с большим приоритетом на ТП с меньшим приоритетом с него снимается сума указанная в поле «Сумма изменения тарифного плана». Если в обратном направлении сумма не снимается. Большим является большее числовое значение более приоритетным будет значение 10 чем значение 2.
Port Reserv: Резерв порта. Данная сума снимается с абонента если у абонента стоит статус услуги «слишком маленький депозит»
Время жизни (Дни): Время жизни аккаунта. Отсчитывается со дня активизации.
При первом подключении абонента устанавливается дата завершения по формуле текущая дата + количество дней в параметре.
Тарифный план Следующий учётный период: Устанавливается указанный тарифный план по завершению учетного периода тариного плана или при наступлении даты завершения услуги. При переходе на следующий тарифный план ориентируясь на дату истечения услуги, система автоматически устаналивает дату завершения услуги соответсвенно с параметром Время жизни услуги нового тарифного плана. Если в новом тарифном плане нет параметра завершения услуги дата обнуляется. При использовании параметра «действи при недостаточном депозите » система блокирует услугу до пополнения счета. При пополнении система разблокирует услугу и снимает суму указанную в поле активация тарифного плана.

Intervals

Интервалы тарифных планов. В периоды, не описанные в интервалах, система не авторизует пользователя.

Приоритет периодов:

  1. Праздники - Дни отмеченные в календаре
  2. Дни недели - Понедельник, вторник и т д.
  3. Остальные - Подразумевает все дни недели

Крайне нежелательно пересекать периоды с одинаковым приоритетом. Последствия не предсказуемы.
Не описывайте периоды с переходом через границу суток, например: 23:00:00 до 03:00:00.

Правильно:

Первый период:
  00:00:00 до 03:00:00
Второй период:
  03:00:00 до 08:00:00
Третий период
  23:00:00 до 24:00:00

С 8 до 23 абоненты не смогут работать по этому ТП плану так как не описан интервал времени


Если не задано ни одного интервала пользователя авторизует в любое время. Значения полей:

Day: День недели
Begin: Начало периода
END: Конец периода
Time tariff Цена 1 часа в этом периоде
Traffic настройки траффикации трафика и шейпера в этом периоде (появляется после создания интервала)

Traffic

Тарификация трафика.

После изменения скорости в тарифном плане обязательно инициализируйте шейпер shaper_start.sh

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

Параметры Burst Режима

Burst limit, kbps
Burst threshold, kbps
Burst time, Секунды

перезагрузка шейперов автоматически

$conf{SHAPER_RESTART_CMD}='shaper_start.sh'; Программа перезагрузки шейперов. Применяется после изменения правил управления скоростью

Формулы (Expressions)

Только для продвинутых пользователей
Формулы для более гибкой тарификации траффика.

Формат формул:
[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 - Суммарный


Месячные константы - используются для пересчёта цены трафика в зависимости от месячного его потребления. Использование этого выражения допускается только при использовании одного временного интервала на весь учётный период.
Внимание!
Данную константу нельзя использовать для управления скоростью, так какд ля управления скоростью есть константы TRAFFIC_SUM, TRAFFIC_IN, TRAFFIC_OUT в которых как раз учитывается месячный трафик или трафик интервала подсчёта

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;

Примеры заведения тарифных планов

  • Помегабайтный тарифный план с фиксированной ценой на 1 Мб, 24 часа в сутки все дни недели.
  1. Переходим в меню / System configuration/ Internet / Tarif plans/
  2. вводите номер и название тарифного плана
  3. после создания нажимаете на Intervals (интервалы)
  4. создаёте интервал с временным интервалом на все дни 00:00:00 по 24:00:00
  5. После создания интервала выбираем Traffic и вводим данные по цене трафика

Видео пример:


  • 10 $ абонплата в месяц.

В абонплату включено 500 Мб трафика.
Все, что выше нормы тарифицируется по 0.10 $ за 1 Мб.
Скорость 256 Kbit/s.
24 часа в сутки все дни недели.

  1. Переходим в меню / System configuration/ Internet / Tarif plans/
  2. вводите номер и название тарифного плана и суму месячной абон. платы
  3. после создания нажимаете на Intervals (интервалы)
  4. создаёте интервал с временным интервалом на все дни 00:00:00 по 24:00:00
  5. После создания интервала выбираем Traffic и вводим данные.
Traffic tariff (1 Mb): IN: 0.10
OUT: 0.10
Prepaid (Mb): 500
Скорость (Kbit/s): IN: 256
OUT: 256

Видео пример:

Тариф с разной скоростью день/ночь

Видео пример

При использовании тарифных планов с разной скоростью нужно включать переконфигурацию шейпера на границе интервалов

/usr/abills/libexec/billd checkspeed NAS_ID=xx

Users

Пользователи, которые работают по данному тарифному плану

Рейтинг

Система рейтинга заключается в предоставлении исправны плательщикам доступ к тарифным планам с больше скоростью за те же деньги.Также имеется возможность повысить свой рейтинг оплатив пропущенные снятия.

  • Изменение рейтинга и тарифного плана осуществляется перед периодическими платежами по сервису
  • При изменении тарифного плана сума за изменение не снимается
$conf{DV_RATING_SYSTEM}=1; Включить возможность ведения рейтинга

Добавление поля рейтинга в форму информации о пользователе MySQL:

INSERT INTO config (param,value) VALUES ('ifu_rating', '1:0:$_RATING:1');
ALTER TABLE `users_pi` ADD COLUMN `_rating` int(11) unsigned NOT NULL default 0;

После включение данного функционала:

  • У пользователя появляется поле «Рейтинг»
  • Появляется меню управление режимами рейтинга в настройках тарифного плана

/ Настройка/ Internet/ Тарифные планы/ Бонус/ .

NAS

Сервера доступа, к которым разрешено подключаться при использовании данного тарифного плана. Если галочки не стоят то разрешено подключатся ко всем серверам доступа.

Дополнительно