=====Файл конфигурации===== **abills/libexec/config.pl** Файл настроек существует для создания конфигурации системы. Он заполняется в формате синтаксиса Perl. Если переменной нет в файле настроек или она отключена (значение 0) система использует значение по умолчанию.\\ [[abills:docs:modules:config:ru|Существует другой механизм конфигурации (через таблицу 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' | (Не используется в AdminLTE интерфейсе)Название файла цветов загружаемого по умолчанию в админке. (По умолчанию: 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';| Версия системы (в 0.7x вынесена в файл /usr/abills/VERSION) | ^$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; | Ведение журнала адресов \\ ''/ Система/ Журнал Адресов'' \\ [[abills:docs:manual:misc_soft#konvertacija_adresov_v_zhurnal_adresov |миграция базы на журнал адресов]] | ^ $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; | Кнопка Печать чека для термо-принтера | ^ $conf{CLIENT_INTERFACE_URL} = 'https://demo.abills.net.ua:9443/' | Позволяет указывать в внешних документах ссылку пользовательського интерфейса | ^ $conf{DEFAULT_LIVE_SEARCH_TYPE} = '10' | Задаёт тип быстрого поиска (в верхней панели) по умолчанию | ====Перенос должников в другую группу==== ^$conf{DEBETORS_GROUP}= \\ "GROUP_ID:DEPOSIT:LAST_PAYNMENT_DAYS:USER_GID:LAST_FEES_DAYS"; Автоматическое создание группы должников. В группу заносятся пользователи у которых депозит ниже указанного в конфигурации и последняя оплата старше определённого количества дней. При включении пользователя в эту группу система автоматически добавляет комментарии с указанием даты добавлении. Если указанная группа не существует система пытается её создать. При погашении долга пользователя автоматически удаляется из группы вместе с комментарием. Можно вносить несколько правил переноса разделяя их запятой. \\ **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; Чтобы использовать эту функцию Вам также нужно установить [[abills:docs:manual:soft:authen:captcha|Perl Authen::Captcha]] либо воспользоваться сервисом [[abills:docs:manual:other:recaptcha:ru|Google reCAPTCHA]] Чтобы нужный тариф был в авторегистрации нужно его добавить в группу ТП и GID этой группы вписать в следующий параметр ^ $conf{DV_REGISTRATION_TP_GIDS}='1;2;35;' | Группы тарифных планов доступные при регистрации | ^ $conf{DV_REGISTRATION_SEND_SMS}=1; | Отправлять смс при регистрации (если включён модуль [[abills:docs:modules:sms:ru|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 после регистрации| ^ $conf{REGISTRATION_PORTAL_SKIP}=1 | Не отображать в портале кнопку регистрации | ==== Проверка адреса ==== На странице регистрации есть кнопка проверки адресов. При нажатии на нее, выскакивает модальное окно в котором абонент может выбрать свой адрес и проверить подключен ли его дом к вашей сети или только планируется к подключению. {{:abills:docs:manual:config:check_address.png?800|}} =====События для внешних обработчиков ===== При возникновении определённых событий система может вызывать внешние программы их обработки. \\ Для вызова таких программ, нужно прописать в конфигурационном файле название файла обработки и путь к нему. При определении внешних обработчиков можно указывать дополнительные флаги. \\ При вызове внешних обработчиков, система передаёт им определенный параметры и ожидает ответа в формате: \\ **флаг_успешного_выполнения:информационное_сообщение_для_системы**\\ ^флаг_успешного_выполнения| 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 |