Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

CELL_PHONE_FORMAT

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{TECH_WORKS}  отображается только в кабинете абонента


если используется режим портала для кабинета абонента ($conf{PORTAL_START_PAGE}=1; )  информация о тех работах не отображается

$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 - ^380\d{9}$
$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 периода выставляется в
Настройка>Сервер доступа>Сервер доступа> [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}='fas fa-hryvnia';

Значок валюты.

Варианты:

fas fa-hryvnia       -
fas fa-ruble-sign  
fas fa-dollar-sign
fas fa-euro-sign
fas fa-btc

$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'

Задаёт тип быстрого поиска (в верхней панели) по умолчанию.


10 => Универсальный
11 => По пользовавтедям (По умолчанию)
2  => Поиск по оплатам,
3  => Поиск по начислениям,
13 => Поискпо компаниям,
999=> Глобальный поиск

$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{BUILD_DELIMITER} = ', ';Разделитель при отображении адреса (вставляется между улицей и домом, между домом и квартирой, ...). Значение по умолчанию - ', '.


Перенос должников в другую группу

Автоматическое создание группы должников. В группу заносятся пользователи, у которых депозит ниже указанного в конфигурации, и последняя оплата старше определённого количества дней. При включении пользователя в эту группу, система автоматически добавляет комментарии с указанием даты добавлении. Если указанная группа не существует, система пытается её создать. При погашении долга пользователь автоматически удаляется из группы вместе с комментарием. Можно вносить несколько правил переноса разделяя их запятой. 

Пример$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
titleВАЖНО!!!

После перенесения должников из их группы в группу для должников, нужно сделать настройку для этой группы в модуле 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
titleПротестировать только функционал переноса
/usr/abills/libexec/periodic daily FN=debetors_group_create DEBUG=2


Включение модулей

Система является модульным решением, что разрешает, в зависимости от потребностей, использовать сочетание тех или иных модулей. Список модулей задаётся в переменной @MODULES.

Code Block
languagebash
@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;Минимальный трафик (в байтах) для отправки сессии в базу