"Документация NetAMS" - читать интересную книгу автора[service billing]NeTAMS разрабатывался изначально не как система биллинга, а как система учета трафика. Вследствие этого основными учетными единицами являются юниты. К сожалению, концепции юнитов, имеющих основным свойством статический IP–адрес, не достаточно для реализации полноценного биллинга. Для решения проблемы был организован новый сервис, service billing, основной целью которого стала «правильная» поддержка других типов учетных единиц — пользовательских аккаунтов. Как сервис биллинга интегрируется в ядро NeTAMS: 1. Создается и поддерживается структура аккаунтов, где каждый аккаунт представляет собой учетную запись пользователя, имеющую следующие параметры: а) имя, идентификатор, описание б) индекс текущего тарифного плана, и того который вступит в действие со след. месяца в) баланс г) даты создания, модификации и прочее д) список ассоциированных юнитов е) емаил, пароль ж) статус 2. При создании аккаунта необходимо привязать к нему один или несколько юнитов, по которым будет осуществлен учет трафика (юниты имеют IP–адрес и список политик учета трафика). При необходимости юниты создаются автоматически через веб–интерфейс. 3. Каждый аккаунт, если не включена его добровольная блокировка, имеет активный тарифный план (и план «на будущее»). Тарифный план характеризуется именем, описанием и списком «подпланов». Этим достигается возможность создания «гибких» планов. 4. Каждый подплан характеризуется: а) политикой учета трафика. Она автоматически выставится для каждого юнита, который принадлежит соответствию «юнит–аккаунт–план–подплан» б) количеством включенного в абонентскую плату трафика (раздельно входящий/исходящий, значение в мегабайтах или без лимита) в) месячная абонентская плата: правило съема этой платы (единовременно/ежедневно и др.) г) плата за превышение трафика, включенного в аб. плату, в у.е. за мегабайт (раздельно входящий/исходящий; «бесплатно») Набор скриншотов с веб–интерфейса управления биллингом: • Сведения об аккаунте • Настройки тарифного подплана • Настройки тарифного плана • Список юнитов • Политики учета • Лог–файл действий с аккаунтом • Управление отдельным аккаунтом • Карточка пользовательских сведений об аккаунте; задается шаблоном subplan N fee NNN spread { monthly | daily | hourly } included { XXX | unlimited } sum | [ { XXX | unlimited } in ] [ { XXX | unlimited } out ] } policy MMM overdraft [ AA in ] [ BB out ] [ CC sum ] adjust–included {yes|no} adjust–fee {yes|no} Команда subplan формирует тарифный подплан, из которого потом можно будет создать сложный тарифный план. Номер подплана N есть короткое число (это НЕ oid). • fee NNN — определяет количество денег «абонентской платы», снимаемых за месяц, по данному подплану. • spread { monthly | daily | hourly } - определяет, как будут сниматься эта «абонентская плата» — раз в месяц, раз в неделю или раз в час (в последних двух случаях снимается доля, пропорциональная указанному периоду) • included { { XXX | unlimited } sum } | [ { XXX | unlimited } in ] [ { XXX | unlimited } out ] } - определяет, сколько (кило-, мега-, гига-)байт трафика включено в абонентскую плату. Величина XXX указывает на точное значение (возможны спецификаторы K, M и G после цифры). unlimited показывает, что включен весь трафик (нет ограничения). Задается ИЛИ раздельно для входящего и выходящего трафика, ИЛИ одно значение для суммы. • policy MMM — задает заранее описанную политику acct–policy сервиса processor, которая будет применена для учета трафика для юнитов, принадлежащих клиенту. • overdraft [ AA in ] [ BB out ] - определяет, сколько будет стоить превышение трафика (ИЛИ раздельно входящего и исходящего, ИЛИ суммы) в случае, если скачано больше, чем описано в параметре included • adjust–included {yes|no} - определяет, будет ли проводиться перерасчет включенного в субплан абонентского трафика, если клиент подключился в середине месяца. Если значение равно «yes» (по умолчанию), то включенный трафик пересчитается пропроционально количеству дней, оставшихся до конца месяца. В противном случае клиент получит возможность бесплатно скачать весь предвключенный трафик. • adjust–fee {yes|no} - определяет, будет ли проводиться перерасчет масячной абонентской платы, если клиент подключился в середине месяца. Если значение равно «no» (по умолчанию), то абонентская плата спишется полностью независмо от дня подключения, иначе — пропорционально числу оставшихся до конца месяца дней. Команда subplan не умеет обрабатывать сразу все параметры, поэтому при конфигурировании придётся давать эту команду несколько раз с разными параметрами. Параметры этой команды группируются следующим образом: subplan N fee NNN spread { monthly | daily | hourly } subplan N included [ { XXX | unlimited } in ] [ { XXX | unlimited } out ] subplan N policy MMM subplan N overdraft [ AA in ] [ BB out ] plan N name AAA description BBB [no] subplan N1 N2 N3 … Команда plan формирует тарифный план, составляя его из подпланов. Номер плана N есть короткое число (это НЕ oid). • name AAA — задает «короткое» имя для тарифного плана (до 8 символов) • description BBB — задает «длинное имя», или описание, для плана. Значение BBB можно указывать в кавычках. • [no] subplan N1 N2 N3 — задает список из ранее определенных тарифных подпланов, формирующих этот план. Каждый тарифный подплан может участвовать одновременно в нескольких тарифных планах. Если указана опция no, то указанный список подпланов будет удален из плана. Так же как и предыдущая команда, команда plan при конфигурировании должна быть разделена на следующие подкоманды: plan N name AAA plan N description BBB plan N subplan N1 N2 N3 … account NNN name AAA [description BBB] password CCC plan MM1 nextplan MM2 [beblock | block | unblock] balance {add|remove|set} ZZ [credit–limit ZZ] unit {name AAA | oid NN} {add | delete } Команда account создает аккаунт, или запись о клиенте, в базе NeTAMS. Эта информация хранится в SQL, не в конфигурационном файле. Число NNN представляет собой объект OID, являющийся ключом в базе данных. • name AAA — задает короткое имя аккаунту • description BBB — задает описание аккаунта • password CCC — задает пароль на доступ аккаунта с своей статистике • plan MM1 — задает текущий тарифный план (номер MM1 должен соответствовать описанному выше плану) • nextplan MM2 — задает тарифный план на следующий месяц — таким образом реализуется смена плана клиентом • [ beblock | block | unblock ] - задает текущее состояние аккаунта: добровольно_блокирован, блокирован_администратором и разблокирован (активен) • balance { add | remove | set } ZZ — позволяет добавлять, вычитать заданную сумму с баланса (лицевого счета) клиента, или выставлять баланс в указанное значение. • [credit–limit ZZ] - указывает минимально допустимый баланс клиента, когда он еще не отключается (отрицательное число или 0, т.е. нет кредита). • unit {name AAA | oid NN} {add | delete } - добавляет или отнимает заранее созданные в service processor юниты, делая их принадлежащими текущему аккаунту. Подобно командам subplan и plan, команда account конфигурирует параметры аккаунта по одному параметру за команду: account NNN description BBB account NNN password CCC account NNN plan MM1 account NNN nextplan MM2 account NNN [beblock | block | unblock] account NNN balance {add|remove|set} ZZ account NNN unit {name AAA | oid NN} {add | delete } delay NN Устанавливает интервал времени ( в секундах), который будет использоваться между циклами проверки аккаунтов. default–credit–limit XX Устанавливает кредитный лимит для всех вновь создаваемых аккаунтов, т.е. порог баланса при котором будет производиться отключение. По умолчанию значение равно нулю, т.е. кредит пользователю не выдается. Величина кредитного лимита XX должна быть отрицательной. Действует только на вновь создаваемые аккаунты. Для каждого аккаунта индивидуально в дальнейшем можно изменить этот лимит при помощи команды credit–limit. storage MM {all | plans | subplans} Указывает, в каком хранилище (storage) будет сохраняться биллинговая информация, и какая именно. show plan [N [account|list]] Выдает информацию о тарифном плане (планах): fedora:~#netamsctl show plan Plan ID 000001 Name «aaa» Desc. «super–puper tarifny plan» Subplan ID 000001 Fee 10.000000, spread: 'M', policy ip(0B23C6) Incl. 0 in 0 out, Over. 0.000000/M in 0.000000/M out Plan ID 000002 Name «bbb» Desc. «plan dlya aktivnyh» Subplan ID 000001 Fee 10.000000, spread: 'M', policy ip(0B23C6) Incl. 0 in 0 out, Over. 0.000000/M in 0.000000/M out Subplan ID 000002 Fee 15.000000, spread: 'M', policy www(0C9869) Incl. 0 in 0 out, Over. 10.000000/M in 0.000000/M out show account {XXX [full][bdata] |list} Выдает информацию о аккаунте (аккаунтах): fedora:~#netamsctl show account client1 full Name a1 (01BFEF) BLOCKED SYNC bal: 100.00 cred_lim: — 5.00 plan: aaa Plan aaa 000001 1107234000 Nextplan aaa 000001 1107234000 Changed 1108397456 Blocked 1108397423 Created 1108397423 Email — Password — Units: client1 08944A |
||
|