Table of Contents |
---|
Файл конфигурации
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{tech_works}='Technical works'; | Технические работы. Появляется оповещение в интерфейсе администратора и блокируется доступ пользователей к системе |
$conf{WEB_DEBUG} | Включение отладки веб формы. Внизу страницы появляются данные с параметрами запроса передаваемые при помощи GET/POST методов |
$conf{secretkey}=«test12345678901234567890»; | Ключ для шифрования паролей в системе |
$conf{version}='0.50dev'; | Версия системы (в 0.7x вынесена в файл /usr/abills/VERSION) |
$conf{octets_direction}='server'; | Направление подсчёта трафика user - со стороны пользователя: входящий/исходящий server - со стороны сервера входящий/исходящий |
$conf{WEB_IMG_SCRIPT_PATH}='../'; | Местоположение картинок и Java скриптов. По умолчанию: '../' |
$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{CELL_PHONE_FORMAT}='\d{12}'; | Формат номера мобильного телефона. По умолчанию данная опция не включена. Номера мобильных телефонов формата 380xxxxxxxxx - \d{12}$ |
$conf{USERNAMEREGEXP}=«^[a-z0-9_][a-z0-9_-]*\$ »; | Символы, разрешённые для использования в логине. По умолчанию, система разрешает только маленькие символы английского алфавита и цифры. |
$conf{list_max_recs}=25; | Максимальное количество строк выводимых в отчётах WEB интерфейса |
$conf{HELP_EDIT}=1; | Разрешить администратору правку системы помощи |
$conf{ERROR_ALIVE_COUNT}=3; | Количество периодов не пришедших Alive пакетов после которого сессия автоматом попадает в Zap таблицу. Время Alive периода выставляется в Настройка>Сервер доступа>Сервер доступа> [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, glyphicon glyphicon-usd |
$conf{DEPOSIT_FORMAT}='%.2f'; | Формат депозита |
$conf{DOCS_INVOICE_TERMO_PRINTER}=1; | Кнопка Печать чека для термо-принтера |
$conf{CLIENT_INTERFACE_URL} = 'https://demo.abills.net.ua:9443/' | Позволяет указывать во внешних документах ссылку пользовательского интерфейса |
$conf{DEFAULT_LIVE_SEARCH_TYPE} = '10' | Задаёт тип быстрого поиска (в верхней панели) по умолчанию |
$conf{USERNAME_CREATE_FN}='login_create'; | Функция создания уникальных случайных логинов в системе по формуле UID + суфикс |
$conf{EVENTS_REFRESH_INTERVAL}='60000'; | Время в милисекундах, для настройки интервала проверки новых сообщений. Если не указан, то обновление происходит каждые 30 сек. |
$conf{ADMIN_PASSWORD_RECOVERY}=1; | Включить функцию востановления пароля для администраторов. |
$conf{PASSWORD_RECOVERY}=1; | Включить функцию востановления пароля для пользователей. |
$conf{PUBLIC_MODE}=1; | Режим публичной демонстрации системы. Блокирует потенциально опасные действия. |
$conf{AUTOSIZE_JS}=1; | Подгружать скрипт авторесайза полей textarea (https://www.jacklmoore.com/autosize/) |
Перенос должников в другую группу
Автоматическое создание группы должников. В группу заносятся пользователи, у которых депозит ниже указанного в конфигурации, и последняя оплата старше определённого количества дней. При включении пользователя в эту группу, система автоматически добавляет комментарии с указанием даты добавлении. Если указанная группа не существует, система пытается её создать. При погашении долга пользователь автоматически удаляется из группы вместе с комментарием. Можно вносить несколько правил переноса разделяя их запятой.
Пример | $conf{DEBETORS_GROUP}='GROUP_ID:DEPOSIT_MIN:DEPOSIT_MAX:LAST_PAYNMENT_DAYS:USER_GID:LAST_FEES_DAYS'; |
---|---|
GROUP_ID | Группа, в которую переносить должников |
DEPOSIT_MIN | Депозит минимальный, при достижении которого клиент попадает в группу должников |
DEPOSIT_MAX | Депозит максимальный, при достижении которого клиент попадает в группу должников |
LAST_PAYNMENT_DAYS | Количество дней, прошедших с дня последней оплаты |
USER_GID | Текущая группа пользователя (Обязательный параметр). Система переносит только пользователей указанной группы. |
LAST_FEES_DAYS | Вносить в группу пользователей, с которых на протяжении LAST_FEES_DAYS дней не снималась абон. плата. При объявлении этой опции игнорируется опция LAST_PAYNMENT_DAYS |
Warning | ||
---|---|---|
| ||
После перенесения должников из их группы в группу для должников, нужно сделать настройку для этой группы в модуле Paysys. Без настройки оплаты с терминала будут проходить с настройками по умолчанию, а с клиентского кабинета не будут доступны! Вариант_1: Можно сделать настройку для группы Должники, что бы они оплачивали по одной схеме. Вариант_2: Создать правила переноса так, чтоб для каждой группы была своя группа должников и тогда сделать одинаковые настройки для основной группы и соответственной группы должников. |
Пример:
$conf{DEBETORS_GROUP}='500:0::20::'; # перенести всех должников оплативших 20 дней в группу 500.
$conf{DEBETORS_GROUP}='10:0:-500::5:'; # перенести всех должников у которых депозит в пределах от 0 до -500 в группу 10 из группы 5.
Перенести всех должников у которых депозит в пределах от 0 до -500 в группу 10 из группы 5.
Перенести всех должников у которых депозит в пределах от -500 до -1000 в группу 11 из группы 5.
Перенести всех должников у которых депозит в пределах от -1000 и больше в группу 12 из группы 5.
$conf{DEBETORS_GROUP}='10:0:-500::5:,11:-500:-1000::5:,12:-1000:::5:';
Такие правила можно создать для каждой группы.
Протестировать
Code Block | ||
---|---|---|
| ||
/usr/abills/libexec/periodic daily FN=debetors_group_create DEBUG=2 |
Включение модулей
Система является модульным решением, что разрешает, в зависимости от потребностей, использовать сочетание тех или иных модулей. Список модулей задаётся в переменной @MODULES.
Code Block | ||
---|---|---|
| ||
@MODULES = ('Internet+', 'Mail'); |
Показывает что к системе подключены следующие модули Internet+ (Модуль управления услугами Internet) и 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'; | Spool незавершенных сессий. В него помещаются сессии, которые завершились во время неработоспособности базы данных |
$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 ошибок, если не доступен 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; | Минимальный трафик (в байтах) для отправки сессии в базу |