Versions Compared

Key

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

Table of Contents

Диагностика соединения

По умолчанию в биллинге используется команда ping для диагностики соединения. Можно расширить инструменты диагностики за счет внешних программ или Perl-модулей при помощи опции INTERNET_EXTERNAL_DIAGNOSTIC

$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='-'Внешняя диагностика соединения.

Объявление для внешней программы:

Code Block
languagebash
NAME:CMD ARGS 


NAMEИмя команды
CMDКоманда
ARGSАргументы

Объявление для Perl-модуля:

Code Block
languagebash
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

Пример Использование ARP Ping

Code Block
languagebash
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='ARPPING:arping %CALLING_STATION_ID%';


Если нужно обьявить несколько внешних программ - это можно сделать через точку с запятой (;) 

ARP Ping для mikrotik

Code Block
languagebash
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='/usr/abills/Abills/modules/Internet/arping.pl ACCT_SESSION_ID=%ACCT_SESSION_ID%';

Возможно включить расширенную диагностику:

Code Block
languagebash
$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.

TCPDUMP на Linux

Code Block
languagebash
$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
languagebash
$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 в реальном времени

Code Block
languagebash
$conf{INTERNET_EXTERNAL_DIAGNOSTIC}='TCPDUMP:package:Tcpdump:qindex';

в файле /etc/sudoers  пропишите

Code Block
www-data   ALL = NOPASSWD: /usr/sbin/tcpdump


Дополнительный пароль сервиса

Code Block
languagebash
$conf{INTERNET_PASSWORD}=1; 

При включении данной опции система будет использовать для подключения пароль сервиса интернет. Если пароль не заполнен - будет использоваться основной пароль абонента. Данный пароль можно изменить только с админ формы.

Дополнительный логин сервиса

Code Block
languagebash
$conf{INTERNET_LOGIN}=1; 

При включении данной опции система будет использовать для подключения логин сервиса интернет. Если логин не заполнен - будет использоваться основной логин абонента. Данный логин можно изменить только с админ формы.

Изменение даты активации при платеже

$conf{INTERNET_PAY_ACTIVATE}=1;

Изменение даты активации (если дата активации клиента выставлена). Дата активации клиента меняется если соблюдаются следующие условия:

  1. На момент пополнения счета баланс клиента должен быть отрицательным (баланс=депозит+кредит).

  2. После пополнения счета баланс абонента должен быть положительным.

При соблюдении выше указанных условий дата активации изменяется на дату платежа.

Установка даты активации при первом подключении абонента

$conf{INTERNET_USER_ACTIVATE_DATE}

Установка даты активации при первом подключении абонента со статусом «Не активировано». Абонент подключается, статус меняется на Активно и устанавливается текущая дата активации.

Активировать только при депозите не ниже полного месяца

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