Это старая версия документа.
Файл конфигурации
abills/libexec/config.pl
Файл настроек существует для создания конфигурации системы. Он заполняется в формате синтаксиса Perl. Если переменной нет в файле настроек или она отключена (значение 0) система использует значение по умолчанию. Существует другой механизм конфигурации (через таблицу config, для управления через веб-интерфейс), значения указанные там имеют приоритет выше, но не всегда используются в дополнительных скриптах.
Переменные включения функций
Для включения нужно указать 1 (один) для выключения 0 (ноль) или комментировать переменную.
Настройки доступа к СУБД
$conf{dbhost}='localhost'; | Хост СУБД |
---|---|
$conf{dbname}='abills'; | Название базы |
$conf{dbuser}='abills'; | Пользователь для доступа к базе |
$conf{dbpasswd}='password'; | Пароль доступа к базе |
$conf{dbtype}='mysql'; | Тип СУБД |
$conf{dbcharset}='cp1251'; | Кодировка СУБД |
$conf{dbdebug}=0; | Режим отладки базы. 1. запись количества запросов $self→{dbo}→{queries_list} 2,3. Запись запросов в /tmp/sql_debug. 4. Запись полного дебага запросов в /tmp/sql_trace |
Настройки системных сообщений
$conf{ADMIN_MAIL}='admin@your.host'; | E-mail адрес администратора от имени которого будут производиться все системные E-mail рассылки. Если данный параметр не заполнен система не будет производить E-mail уведомлений |
---|---|
$conf{USERS_MAIL_DOMAIN}='your.domain'; | Домен пользователей. Данный параметр используется если нужно уведомлять пользователей используя логи@$conf{USERS_MAIL_DOMAIN} при отправке сообщений |
$conf{MAIL_CHARSET}='utf8'; | Кодировка для писем по умолчанию |
$conf{default_language}='ukraine'; | Язык сообщений по умолчанию |
$conf{default_charset}='utf8'; | Кодировка WEB интерфейса по умолчанию |
$conf{SYSTEM_ADMIN_ID}=1; | Номер администратора для системных операций. По умолчанию 2 (system) |
$conf{USERS_WEB_ADMIN_ID}=3; | Номер администратора для операций с портала пользователя По умолчанию 3 (users_web) |
$conf{AUTH_METHOD}=1; | Тип авторизации. 0 - Apache Basic Auth (по умолчанию) 1 - Cookie auth. При этом типе авторизации появляется кнопка выхода из административного интерфейса |
$conf{WEB_TITLE}='ABIllS'; | Название организации. Отображается в заголовке браузера |
Другие настройки
$conf{ADMINS_ALLOW_IP}='xx.xx.xx.xx'; | Список адресов с которых разрешён доступ в админ интерфейс. адреса указываются через запятую |
---|---|
$conf{DEFAULT_ADMIN_WEBCOLORS}='mycolors' | Название файла цветов загружаемого по умолчанию в админке. (По умолчанию: Bootstrap3). Файл цветов должен располагаться в каталоге /usr/abills/cgi-bin/styles/$self→{HTML_STYLE}/colors/ |
$conf{tech_works}='Technical works'; | Технические работы. Появляется оповещение в интерфейсе администратора и блокируется доступ пользователей к системе. |
$conf{WEB_DEBUG} | Включение отладки веб формы. Внизу страницы появляются данные с параметрами запроса передаваемые при помощи GET/POST методов |
$conf{secretkey}=«test12345678901234567890»; | Ключ для шифрования паролей в системе |
$conf{version}='0.50dev'; | Версия системы |
$conf{octets_direction}='server'; | Направление подсчёта трафика user - со стороны пользователя: входящий/исходящий server - со стороны сервера входящий/исходящий |
$conf{WEB_IMG_SCRIPT_PATH}='../'; | Местоположение картинок и ява скриптов. По умолчанию: '../' |
$conf{PASSWD_LENGTH}=6; | Минимальная длина пароля |
$conf{PASSWD_SYMBOLS}=«1234567890abcdefgh »; | Символы разрешённые в пароле |
$conf{MAX_USERNAME_LENGTH}=12; | Максимальная длина логина |
$conf{PHONE_FORMAT}='\d+'; | формат номера телефона. По умолчанию данная опция не включена. телефоны формата 380xxxxxxxxx - \d{10}$ Два телефона через пробел /\d{10}\s?\d{0,10}/ |
$conf{USERNAMEREGEXP}=«^[a-z0-9_][a-z0-9_-]*\$ »; | Символы разрешённый для использования в логине. По умолчанию система разрешает только только маленькие символы английского алфавита и цифры. Для разрешения больших букв в логине нужно включить следующее выражениe ^[A-Za-z0-9_][A-Za-z0-9_-]*\$ |
$conf{list_max_recs}=25; | Максимальное количество строк выводимых в отчётах WEB интерфейса |
$conf{HELP_EDIT}=1; | Разрешить администратору правку системы помощи. |
$conf{ERROR_ALIVE_COUNT}=3; | Количество периодов не пришедших Alive пакетов после которого сессия автоматом попадает в Zap таблицу. Время Alive периода выставляется в / System configuration/ NAS/ [Alive] Если сессия находится в Zap таблице больше двух $conf{ERROR_ALIVE_COUNT} (2 * $conf{ERROR_ALIVE_COUNT}) интервалов система автоматически её закрывает и рассчитывает время сессии и суму. Временем такой сессии считает время от старта до поучения последнего Alive пакета. (По умолчанию 3 периода) Перенос в Zap журнал: Nas Alive * $conf{ERROR_ALIVE_COUNT} Занесении сессии в статистику: Nas Alive * ($conf{ERROR_ALIVE_COUNT} * 2) |
$conf{payment_chg_activate}=1; | Изменение даты активизации на текущую при внесении денег на текущую. Дата изменяется только в случае если поле активизации не равно 0000-00-00. Дата закрытия акаунта (EXPIRE) устанавливается в 0000-00-00. Если установленно занчение 1 дата меняется всегда при поплнении. При значении 2 меняется только если дата активации меньше от текущей больше чем на 30 дней. |
@EX_PAYMENT_METHODS = ('Счёт н 453', 'Счет н 10'); | Дополнение типов оплаты собственными через опцию |
$conf{CROSS_MODULES_DEBUG}='/tmp/cross_modules'; | Вывод функций crossmodules в файл |
$conf{ADDRESS_REGISTER}=1; | Ведение журнала адресов / Система/ Журнал Адресов миграция базы на журнал адресов |
$conf{NON_PRIVILEGES_LOCATION_OPERATION}=1; | Работы с журналом адресов переносятся из раздела Система В раздел Другое |
$conf{START_PERIOD_DAY}=1; | Число снятия абон. платы. По умолчанию 1 число месяца. Распределение абон. платы или другие операции с месячной абон. платой делаются исходя из этого значения. Трафик или другие расчёты использованных ресурсов ведутся как обычно с 1 числа месяца. |
$conf{LANGS}='english:English;russian:Русский;ukraine:Українська'; | Указывает языки с которыми должна работать система. Языка разделяются точкой с запятой. В описании языка указывается файл языка без расширения .pl и через две точки название языка. Например: заводим новый словарь Новый русский $conf{LANGS}='new_russian:Новый русский;' При таком описании в меню выбора языка покажется только один этот язык. Сам файл соваря следует записать в каталог /usr/abills/language/ вот так /usr/abills/language/new_russian.pl |
$conf{MAX_STABLE_CREDIT}=0; | Значение кредита после процедуры обнуления по времени |
$conf{EXT_BILL_ACCOUNT}=1; | Дополнительный денежный счёт. |
$conf{SYSTEM_CURRENCY}=840; | Валюта системы. В качестве идентификатора используются коді валют стандарта ISO 4217 Данная переменная полезна если учет в биллинговой систему производится в одной валюте а документы отображаются в другой Таблица кодов http://index.minfin.com.ua/code/ |
$conf{PAYMENTS_NOT_CREATE_INVOICE}=1; | Не создавать счет при оплате, выбор только из списка счетов |
$conf{PAYMENTS_INNER_DESCRIBE_AUTOCOMPLETE}=1; | автоматическое заполнение поля внутреннего комментария |
$conf{USER_ALL_SERVICES}=1; | Отобразить все модули учётной записи в интерфейсе администратора |
$conf{FEES_PRIORITY}='bonus,main'; | Установка приоритета снятия денег с аккаунтов пользователей. Данная установка является глобальной и относится ко всем списаниям системы. Варианты настройки bonus,main - с начала сума списывается с дополнительного счета и если на дополнительном счету недостаточно средств то остаток списывается с основного счета main,bonus - с начала сума списывается с основного счета и если на нём недостаточно средств, а на дополнительном положительный баланс то сума недостающих средств списывается с дополнительного счета. Если ни на основном ни на дополнительном счете не достаточно средств для писания, тогда с дополнительного счета списывается вся сума баланса дополнительного счета а основного остаток сумы после вычитания списания с доп. счета |
$conf{FIXED_FEES_DAY}=1; | Фиксирования дата абон. платы. При включении данной опции модули системы будут снимать абон. плату всегда фиксированного числа месяца. Дата первой абон. плаьы указывается в поле «Активация» и после каждого снятия абон. платы переносится на 1 месяц вперёд. Если дата активации включает дни 29, 30, 31 дата активации устанавливается в 0000-00-00 и датой абон. платы считается первый день месяца. В некоторых модуля могут быть задействованы дополнительные опции тарифного плана. |
$conf{CUSTOM_START_PAGE}=1; | При включении данного параметра на стартовой странице интерфейса администратора будет отображаться альтернативная форма «CUSTOM_START_PAGE» которую можно модифицировать через редактор шаблонов |
$conf{WEB_AUTH_KEY}='LOGIN'; | Первичный параметр авторизации. По умолчанию LOGIN. Также можно использовать: CONTRACT_ID UID BILL_ID или любой другой персональный параметр абонента |
---|
$conf{CURRENCY_ICON}='currency hrn'; | Значок валюты. Варианты: manat , hrn , rouble , larri |
---|---|
$conf{DEPOSIT_FORMAT}='%.2f'; | Формат депозита |
$conf{DOCS_INVOICE_TERMO_PRINTER}=1; | Кнопка Печать чека для термо-принтера |
Перенос должников в другую группу
Автоматическое создание группы должников. В группу заносятся пользователи у которых депозит ниже указанного в конфигурации и последняя оплата старше определённого количества дней. При включении пользователя в эту группу система автоматически добавляет комментарии с указанием даты добавлении. Если указанная группа не существует система пытается её создать. При погашении долга пользователя автоматически удаляется из группы вместе с комментарием. Можно вносить несколько правил переноса разделяя их запятой.
GROUP_ID - Група в которую переносить должников
DEPOSIT - Депозит при достижении которого клиент попадает в групу должников
LAST_PAYNMENT_DAYS - Количество дней прошедших с дня последней оплаты
USER_GID - Поточная группа пользователя (Не обязательный параметр). Если указан система переносит только пользователей указанной группы.
LAST_FEES_DAYS - Вносить в группу пользователей с которых на протяжении LAST_FEES_DAYS дней не снималась абон. плата. При обявлении этой опции игнорируется опция LAST_PAYNMENT_DAYS
Пример:
$conf{DEBETORS_GROUP}='500:0:20'; # перенести всех должников оплативших 20 дней назад в группу 500)
$conf{DEBETORS_GROUP}='100:0:20:10,500:0:20'; # перенести всех должников из группы 10 в группу 100 и перенести всех должников без группы в группу 500
Включение модулей
Система является модульным решением что разрешает в зависимости от потребностей использовать сочетание тех или иных модулей. Список модулей задаётся в переменной @MODULES
@MODULES = (‘Dv’, ‘Mail’);
Показывает что к системе подключены следующие модули Dv (Модуль управления Dialup/VPN соединениями) и Mail (Модуль управления почтой).
Настройки авторизации
$conf{AUTH_ERROR_CMD}='EXRP:CMD' | Определение обработчика ошибок авторизации. EXPR - выражение CMD - команде которая запускается при попадении ошибки в выражение. Команде передаются следующие аргументы - USER_NAME=$user_name NAS_PORT=$RAD→{NAS_PORT} NAS_IP=$nas→{NAS_IP} ERROR=$message ПРИМЕР Отлавливание ошибки Login Not Exist or Expire и запуск программы /usr/abills/misc/error.sh $conf{AUTH_ERROR_CMD}=«Login Not Exist or Expire:/usr/abills/misc/error.sh» |
---|
Настройки административного интерфейса
$conf{p_admin_mails}=1; | Отправлять ежедневный и ежемесячный отчёт о работе пользователей администратору |
---|---|
$conf{p_users_mails}=1; | Оповещать пользователей о средствах на балансе. Лимит оповещения указывается в тарифном плане |
$conf{debugmods}='LOG_DEBUG LOG_NOTICE LOG_ALERT LOG_WARNING LOG_ERR LOG_INFO'; | Включение режима отладки |
$conf{BACKUP_DIR}='/usr/abills/backup'; | Каталог в который помещаются архивы базы. Если планируется делать архивирование базы из веб интерфейса администратора тогда нужно установить владельцем каталога пользователя под которым работает WEB сервер |
$base_dir='/usr/abills/'; | Базовый каталог системы |
$lang_path=$base_dir . 'language/'; | Каталог с словарями |
$lib_path=$base_dir .'libexec/'; | Каталог системных приложений |
$var_dir=$base_dir .'var/'; | Каталог файлов временных файлов и файлов журналов |
$conf{SPOOL_DIR}=$base_dir.'var/q'; | Спул незавершенных сессий. В него помещаются сессии которые завершились во время неработоспособности базы данных |
$conf{TPL_DIR}= $base_dir . 'Abills/templates/'; | Каталог размещения пользовательских шаблонов. Обязательно права на каталог должны соответвовать правам WEB сервера |
$conf{WEB_LOGFILE} = 'weblog.log'; | Лог некоторых действий в WEB интерфейсе администраторами |
$conf{CHART_ANIMATION} = 0; | Анимировать графики в веб интерфейсе |
$conf{LOGFILE} = $base_dir . 'var/log/abills.log'; | Размещение файла логов. |
$conf{ERROR2DB}=1; | Возможность складывать сообщения об ошибке прямо в базу. Опция разрешает использовать удалённые сервера доступа и несколько радиус серверов. Более гибкая система выборки логов. Файл abills.log используеться только для SQL ошибок. |
$conf{RADIUS_ID}=1; | Номер радиус сервера используется для идентификации RADIUS сервера в запросах авторизации. |
$conf{RADIUS2}=1; | При влючении этой опции параметр User-Password == «$password» меняется на Cleartext-Password := «$password». Влючать при использовании FreeRadius 2 |
$conf{extern_acct_dir}=$base_dir.'libexec/ext_acct/'; | Каталог для размещения файлов внешнего акаунтинга. |
$conf{MINIMUM_SESSION_TIME}=10; | Минимальное время (в секундах) для отправки сесии в базу |
$conf{MINIMUM_SESSION_TRAF}=0; | Минимальный трафик (в байтах) для отправки сесии в базу |
Регистрация клиентов через веб интерфейс
Некоторые модули имеют возможность авторегистрации. Авторегистрация подразумевает что пользователь может самостоятельно зарегистрироваться в системе. Для включения возможности авторегистрации нужно прописать в переменную @REGISTRATION название модулей. Если включить несколько модулей для регистрации пользователю будет предоставлен выбор для регистрации.
@REGISTRATION = ('Dv');
Также можно указать несколько модулей для регистрации:
@REGISTRATION = ('Dv', 'Msgs');
при регистрации пользователь увидит первый модуль регистрации и кнопки перехода для регистрации в других модулях
Страница регистрации: https://your.host:9443/registration.cgi
Для явного указания отображаемого модуля в строке запроса нужно добавить параметр module=название_модуля
https://your.host:9443/registration.cgi?modules=Dv
Для защиты от роботов авторегистрации можно включить отображения цифр (CAPTCHA) параметр конфигурационного файла:
$conf{REGISTRATION_CAPTCHA}=1;
Чтобы использовать эту функцию Вам также нужно установить Perl Authen::Captcha либо воспользоваться сервисом Google reCAPTCHA
Чтобы нужный тариф был в авторегистрации нужно его добавить в группу ТП и GID этой группы вписать в следующий параметр
$conf{DV_REGISTRATION_TP_GIDS}='1;2;35;' | Группы тарифных планов доступные при регистрации |
---|---|
$conf{DV_REGISTRATION_SEND_SMS}=1; | Отправлять смс при регистрации (если включён модуль SMS) |
$conf{DV_REGISTRATION_ADDRESS}=1; | Показывать форму адреса при регистрации |
Дополнительные параметры:
$conf{REGISTRATION_EXTERNAL}='…'; | Выполнения внешней консольной команды после регистрации. Команде передаются параметры введённые пользователем как аргументы программы. Например: yourprogram LOGIN=«LOGIN» FIO=«FIO» EMAIL='useremail' |
---|---|
$conf{REGISTRATION_SHOW_PASSWD}=1; | Показывать пользователю пароль после регистрации |
$conf{REGISTRATION_GID}='11'; | Вносить вновь зарегистрированных абонентов в группу |
$conf{REGISTRATION_PREFIX}='a_'; | добавляется данный префикс при регистрации логинов |
$conf{REGISTRATION_DEFAULT_TP}='111'; | Тарифный план по умолчанию при регистрации |
$conf{REGISTRATION_CHECK_PHONE}=1; | Обязательный телефон при регистрации |
$conf{REGISTRATION_REDIRECT} = 'http://google.com/'; | Перенаправлять пользоватля на указанный URL после регистрации |
Проверка адреса
На странице регистрации есть кнопка проверки адресов. При нажатии на нее, выскакивает модальное окно в котором абонент может выбрать свой адрес и проверить подключен ли его дом к вашей сети или только планируется к подключению.
Восстановления пароля
Страница восстановления пароля по E-mail или логину: https://your.host:9443/registration.cgi?FORGOT_PASSWD=1
События для внешних обработчиков
При возникновении определённых событий система может вызывать внешние программы
их обработки.
Для вызова таких программ, нужно прописать в конфигурационном файле
название файла обработки и путь к нему. При определении внешних обработчиков можно указывать дополнительные флаги.
При вызове внешних обработчиков, система передаёт им определенный параметры и ожидает ответа в формате:
флаг_успешного_выполнения:информационное_сообщение_для_системы
флаг_успешного_выполнения | 1 - Операция выполнена успешно 0 - Операция не выполнена |
---|---|
информационное_сообщение_для_системы | Набор пар НАЗВАНИЕ=ПАРАМЕТРЫ |
Пример ответа об успешном выполнении внешнего обработчика:
1:INFO=Операция выполнена
Пример программы . Возвращает код успешного выполнения
#!/bin/sh # External щзукфешщт example echo "1:INFO=Operation complite. Arguments: '$@'";
Система может обрабатывать следующие события:
$conf{external_useradd} | Создание пользователя. Вызывается после успешного заведения пользователя в системе Пример файла: abills/misc/external_adduser |
---|---|
$conf{external_userdel} | удаление пользователя. Вызывается поле выдаления пользователя из системы. |
$conf{external_userchange} | изменение учетных данных Параметры передаваемые команде DOMAIN_ID=0 ACTIVATE=0000-00-00 UID=1356 LOGIN=VarfolomeevaNG REDUCTION=1 CREDIT=0.00 ACTION_COMMENTS= REDUCTION_DATE=0000-00-00 CREDIT_DATE=0000-00-00 GID=0 EXPIRE=0000-00-00 DEPOSIT=208.930789 COMPANY_ID= |
$conf{external_payments} | изменение баланса внесение суммы Параметры передаваемые команде DOMAIN_ID=0 ORDER= ACCOUNT_ID=417 UID=3434 DATE=2010-09-21 14:01:55 LOGIN=casper ER= CREDIT=180.00 INNER_DESCRIBE= CUSTOMER=- GID=0 OP_SID=nUGgWkGQYUHhZ5bB SUM=12 DEPOSIT=273.004166 COMPANY_ID=0 DESCRIBE= CREATE_INVOICE=1 METHOD=0 EXT_ID= QUICK=1 |
$conf{external_fees} | изменение баланса списание суммы) |
$conf{external_userdisable} | блокировка пользователя. |
LDAP авторизация
Возможность авторизовать администраторов с LDAP сервера
Параметры
$conf{LDAP_IP}='xx.xx.xx.xx'; | IP адрес LDAP сервера |
---|---|
$conf{LDAP_BASE}='dc=your.domain'; | Базовый элемент дерева (dc domainComponent) |
dn: cn=abills_admin,ou=users,dc=your.domain objectClass: top objectClass: person #mail: pupkin@mail.com #homePhone: 3322334455 telephoneNumber: 38050774433 cn: abills_admin2 sn: Vasya Pupkin userPassword: {SSHA}wEFKat3VPBps4cAfcFsjZL4j7GOOA3N8
Дополнительные параметры
$ENV{CMD_EMULATE_MODE}=1; | Включение режима эмуляции команд. В данное режиме команды не выполняются а только записываются в файлы /usr/abills/var/log/cmd.log |
---|---|
$ENV{SENDMAIL_SAVE_ATTACH}=1; | Сохранение отправляемых аттачментов почты в каталоге /tmp |