Проект учета пользовательских счетов для интернет-провайдеров на базе OS FreeBSD с применением программы "Billing ISP" — страница 10

  • Просмотров 3635
  • Скачиваний 168
  • Размер файла 27
    Кб

"следит" за пользователем на протяжении всего сеанса связи. Информация о начислениях на лицевой счет пользователя и снятия с лицевого счета за фактически отработанное "он-лайновое" время (так называемая "биллинговая информация") хранится в домашних каталогах пользователей в обычных текстовых файлах. Т.е. для каждого пользователя создается свой набор файлов с биллинговой информацией. Соответственно, вычисление

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

используется исключительно для генерации статистической информации предоставляемой системному администратору.             Алгоритм вычисления лицевого счета при входе пользователя в систему Данный алгоритм должна реализовывать программа, выполняющая аутентификацию пользователя (TACACS+ или pppd) на этапе подключения его к Интернету. В этот случае основную роль должен играть файл .current, который содержит

уже вычисленное значение размера лицевого счета, т.к. в данный момент размер лицевого счета должен быть получен практически мгновенно. 1.     Если файл .refused присутствует в домашнем каталоге пользователя, то текущий размер лицевого счета принимается отрицательным. Переход к пункту 5; 2.     Если файл .time присутствует в домашнем каталоге пользователя, то текущий размер лицевого счета принимается положительным.

Переход к пункту 5; 3.     Если файл .current присутствует в домашнем каталоге пользователя, то из него берется текущий размер лицевого счета (файл .current обновляется каждый раз после завершения работы демона). Переход к пункту 5; 4.     Текущий размер лицевого счета вычисляется по формуле : "общая сумма начислений из файла .pay минус общая сумма отчислений из файла .work минус общая сумма отчислений из файла .weekly";

5.     Если текущий размер лицевого счета положителен, доступ в систему пользователю разрешатеся, в противном случае - запрещается. Алгоритм выбора прайс-листа (тарифной схемы) для пользователя при старте демона Если в домашнем каталоге пользователя находится файл .account.conf, то прайс-лист для данного пользователя читается из этого файла; Если в домашнем каталоге пользователя присутсвует файл .account, то из него читается