INTERNET_USER_ACTIVATE_DATE
Table of Contents |
---|
Диагностика соединения
По умолчанию в биллинге используется команда ping для диагностики соединения. Можно расширить инструменты диагностики за счет внешних программ или Perl-модулей при помощи опции INTERNET_EXTERNAL_DIAGNOSTIC
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='-' | Внешняя диагностика соединения. |
---|
Объявление для внешней программы:
Code Block | ||
---|---|---|
| ||
NAME:CMD ARGS ::QINDEX:MODAL_TPL |
NAME | Имя команды |
---|---|
CMD | Команда |
ARGS | Аргументы |
QINDEX | Параметр, указывающий, нужно ли отображать страницу с диагностикой через qindex. "qindex" - отображать через qindex, пустое поле - отображать через index |
MODAL_TPL | Название шаблона с формой. Если задано, при нажатии кнопки диагностики появится всплывающее окно с этой формой. Параметры, введенные пользователем в форме могут быть переданы как параметры программе для диагностики. |
Объявление для Perl-модуля:
Code Block | ||
---|---|---|
| ||
NAME:package:MODULE:QINDEX |
NAME | Имя команды |
---|---|
MODULE | Название Perl-модуля |
QINDEX | Параметр, указывающий, нужно ли отображать страницу с диагностикой через qindex. "qindex" - отображать через qindex, пустое поле - отображать через index. |
Для разделения диагностических команд используется точка с запятой (;)
Список возможных аргументов:
USER_NAME
SESSION_START
ACCT_SESSION_TIME
ACCT_INPUT_OCTETS
ACCT_OUTPUT_OCTETS
EX_INPUT_OCTETS
EX_OUTPUT_OCTETS
CONNECT_TERM_REASON
FRAMED_IP_ADDRESS
LAST_UPDATE
NAS_PORT
NAS_IP_ADDRESS
CALLING_STATION_ID
CONNECT_INFO
ACCT_SESSION_ID
NAS_ID
ACCT_SESSION_STARTED
ACCT_INPUT_GIGAWORDS
ACCT_OUTPUT_GIGAWORDS
FILTER_ID
Любые, введенные пользователем. См. MODAL_TPL.
Пример Использование ARP Ping
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='ARPPING:arping %CALLING_STATION_ID%'; |
Если нужно обьявить несколько внешних программ - это можно сделать через точку с запятой (;)
ARP Ping для mikrotik Anchor ARP Ping для mikrotik ARP Ping для mikrotik
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='/usr/abills/Abills/modules/Internet/arping.pl ACCT_SESSION_ID=%ACCT_SESSION_ID%'; |
Возможно включить расширенную диагностику:
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='/usr/abills/Abills/modules/Internet/arping.pl ACCT_SESSION_ID=%ACCT_SESSION_ID% EXTENDED=1'; |
Тогда будут дополнительно выводиться IP пользователя, должник ли он, address list на mikrotik, скорость шейпера, ARP-запись, будет проводиться и arping, и обычный ping.
Ping с возможностью задать размер пакета, количество пакетов Anchor Ping с возможностью задать размер пакета, количество пакетов Ping с возможностью задать размер пакета, количество пакетов
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC} = "Ping:ping -W 1 -c %PACKET_COUNT% -s %PACKET_SIZE% %FRAMED_IP_ADDRESS%:::internet_external_diagnostic_modal_ping"; |
TCPDUMP на Linux
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='TCPDUMP:/usr/bin/sudo /usr/sbin/tcpdump -c 3 -vv host %FRAMED_IP_ADDRESS%'; |
в файле /etc/sudoers пропишите
Code Block |
---|
www-data ALL = NOPASSWD: /usr/sbin/tcpdump |
Если нужно работать с удаленным хостом
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='TCPDUMP:/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.abills_admin abills_admin@%NAS_IP_ADDRESS% "/usr/bin/sudo /usr/sbin/tcpdump -c 3 -vv host %FRAMED_IP_ADDRESS%"'; |
На удаленном хосте откройте доступ по сертификату и пропишите /etc/sudoers
Code Block |
---|
www-data ALL = NOPASSWD: /usr/sbin/tcpdump |
Tcpdump в реальном времени Anchor Tcpdump в реальном времени Tcpdump в реальном времени
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='TCPDUMP:package:Tcpdump:qindex'; |
в файле /etc/sudoers пропишите
Работает на серверах доступа с типом accel-ipoe. Заходит на сервер доступа по ssh, запускает tcpdump на интерфейсе выбранного клиента и показывает вывод tcpdump в браузере.
На серверах доступа должна быть настроена аутентификация по ssh-ключу (/usr/abills/Certs/id_rsa.*имя_пользователя*).
Sudo должен быть настроен таким образом, чтобы этот пользователь мог запускать sudo tcpdump без пароля.
Запустите visudo, добавьте строку (в этом примере имя пользователя - abills_admin):
Code Block |
---|
abills_admin ALL = NOPASSWD: /usr/sbin/tcpdump |
Интерфейс абонента, на котором tcpdump должен слушать будет найден по SESSION_ID с помощью accel-cmd:
Code Block | ||
---|---|---|
| ||
accel-cmd show sessions ifname match sid %ACCT_SESSION_ID% |
Команде accel-cmd можно передать дополнительные параметры переменной конфигурационного файла $conf{INTERNET_EXTERNAL_DIAGNOSTIC_ACCEL_CMD_EXTRA_PARAMS}.
Например, если accel не слушает порт для работы с accel-cmd на localhost, и нужно указать указать хост явно, укажите $conf{INTERNET_EXTERNAL_DIAGNOSTIC_ACCEL_CMD_EXTRA_PARAMS} = '-H 10.10.10.10';
Тогда accel-cmd будет подключаться к 10.10.10.10:
Code Block | ||
---|---|---|
| ||
accel-cmd -H 10.10.10.10 show sessions ifname match sid %ACCT_SESSION_ID% |
Если задана переменная конфигурационного файла $conf{INTERNET_EXTERNAL_DIAGNOSTIC_TCPDUMP_SSH_PORT}, для подключения к серверу доступа по ssh будет использован порт из этой переменной, а не из настроек сервера доступа. Пример:
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_EXTERNAL_DIAGNOSTIC_TCPDUMP_SSH_PORT} = '2222'; |
Дополнительный пароль сервиса
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_PASSWORD}=1; |
При включении данной опции система будет использовать для подключения пароль сервиса интернет. Если пароль не заполнен - будет использоваться основной пароль абонента. Данный пароль можно изменить только с админ формы.
Дополнительный логин сервиса
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_LOGIN}=1; |
При включении данной опции система будет использовать для подключения логин сервиса интернет. Если логин не заполнен - будет использоваться основной логин абонента. Данный логин можно изменить только с админ формы.
Изменение даты активации при платеже
$conf{INTERNET_PAY_ACTIVATE}=1;
Изменение даты активации (если дата активации клиента выставлена). Дата активации клиента меняется если соблюдаются следующие условия:
На момент пополнения счета баланс клиента должен быть отрицательным (баланс=депозит+кредит).
После пополнения счета баланс абонента должен быть положительным.
- Поточная дата должна быть более чем на 3 дней старше даты активации сервиса
При соблюдении выше указанных условий дата активации изменяется на дату платежа.
Установка даты активации при первом подключении абонента
$conf{INTERNET_USER_ACTIVATE_DATE}=1;
Установка даты активации при первом подключении абонента со статусом «Не активировано». Абонент подключается, статус меняется на Активно и устанавливается текущая дата активации.
Активировать только при депозите не ниже полного месяца
$conf{INTERNET_FULL_MONTH}=1;
- Для тарифных планов с месячной распределённой абон. платой производить активацию только при наличии полной суммы абон. платы на месяц.
- Для тарифных планов с приостановкой услуги, снимать при активации со статуса лишком маленький депозит не за оставшиеся дни, а за весь период целяком. (Если абон. плата распределенная она продолжает сниматься по дням)
Внешний информатор услуги
В случае, если штатные сообщения системы не устраивают, можно их заменить собственными через опцию $conf{INTERNET_WARNING_EXPR} . Если указать в ней текст, он будет отображаться в информационной панели. Также можно запустить внешнюю программу, а вывод показать абоненту и администратору.
Code Block |
---|
$conf{INTERNET_WARNING_EXPR}='CMD:/usr/abills/Abills/modules/Internet/internet_warning.pl LOGIN=%LOGIN% LANGUAGE=%language% USER_PORTAL=%USER_PORTAL%'; |
LOGIN= | Логин абонента |
LANGUAGE= | язык интерфейса |
USER_PORTAL= | 0 - Запуск с админ. интерфейса 1 - Запуск с портала абонента |
Привязка MAC адреса в аккаунте пользователя
$conf{MAC_AUTO_ASSIGN}=1;
Заполнять поле CID при соединении, если оно не заполнено. Если при включённой опции не надо определённому пользователю присваивать CID, нужно поставить в поле слово ANY. Система анализирует RADIUS параметр Calling-Station-Id и если он в формате MAC xx:xx:xx:xx:xx:xx запоминает его.
Игнорировать параметр Calling-Station-Id
$conf{INTERNET_CID_SKIP}=1;
Не проводить дополнительную авторизацию по параметру Calling-Station-Id
Время хранения логов детализации
$conf{INTERNET_LOG_CLEAN_PERIOD}=90;
Время хранения логов детализации. Указывается в днях. Таблица s_detail
Контроль активности сессий
$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)
Разрешить дублирование CPE MAC
$conf{INTERNET_ALLOW_MAC_DUPS}=1;
Запретить дублирование параметров опции 82 (NAS, Порт) у абонентов
$conf{INTERNET_PROHIBIT_DUPLICATE_NAS_PORT} = 1;
При попытке прописать абоненту NAS и Порт, которые уже прописаны у другого абонента система не разрешит это сделать.
Внешний обработчик
$conf{INTERNET_EXTERNAL_CMD}='команда на выполнение';
Внешний обработчик. Запускает внешние программы обработки при изменении учётной записи абонента через веб интерфейс.
В качетсве аргументов передаются параметры сервиса абонента UID TP_ID LOGIN DEPOSIT CREDIT
Не снимать абонплату 1 числа перед месячным периодиком (экспериментальная)
$conf{MONTH_FEE_TIME}='01:00:00';
В параметре указывается время запуска месячного периодического процесса. Перед ним, при активации акаунта в поточном месяце, не снимать абонплату во избежании двойной абон. платы.
Группирование лога последнего подключения абонента
$conf{CONNECT_LOG}=1;
При включении данной опции система групирует однотипные ошибки подключения выводя счетчик повторений данной ошибки. На момент начала, система проверяет была ли такая ошибка прежде за текущие сутки, если находит совпадение дата обновляется до текущей, а счетчик попыток инкрементируется. Если попытка уникальна на поточный день создается новая запись в логе. При ведении данного лога система не чистит попытки подключения каждый день.
Не выдавать IPv6 адреса гостевым сессиям
$conf{AUTH_SKIP_GUEST_IPV6}=1;
Снимать снимать плату за активацию услуги при регистрации.
Снимать активизационный платеж при регистрации абонента и активировать услугу.
$conf{INTERNET_MANDATORY_FEE}=1;