Работа с IPN абонентами и тарифными планами.

Материал из ExpertBilling
Перейти к: навигация, поиск

ExpertBilling позволяет обслуживать как коммутируемые(PPTP/PPPOE/HoSpot), так и некоммутируемые соединения. В случае работы с IPN(IP Network, IPoE) тарифными планами, или PPPOE/PPTP тарифными планами с дублированием IPN действий схема работы системы выглядит следующим образом.

Ipn alg.png


Схема работы с IPN тарифными планами

Биллинг-система ExpertBilling 1.4 спроектирована таким образом, чтобы иметь возможность выполнять IPN действия для аккаунта и для субаккаунтов. Начиная с версии 1.4 возможность назначать аккаунтам IP/MAC была перенесена в субаккаунты. Таким образом выполнение IPN действий для аккаунта актуально только в случае выполнения групповых действий над всеми субаккаунтами или самим аккаунтом. К примеру блокирование всех правил на сервере доступа с комментарием, равным ID аккаунта. Данный подход может так же применяться в случае продажи услуг, доступ к которым может осуществляться по логину/логину паролю без назначения IP/mac адресов и других сетевых атрибутов аккаунта (хостинг, веб-почта, шаринг и д.р.).

Выполнение IPN действий происходит методом парсинга комманд сервера доступа(вторая закладка настроек сервера доступа) и их отправки на сервер доступа по протоколу SSH. В случае использования опции ssh_backend в конфиг-файле, транспортом между биллингом и сервером доступа может быть любой сетевой протокол, который будет реализовать бэкенд. Это может быть ssh/telnet/routeros api или любой другой. В команды сервера доступа могут быть подставлены переменные из аккаунта, субаккаунта, сервера доступа и настройки скорости. Подробнее читайте об этом в разделе о серверах доступа.

Команды управления по-умолчанию позволяют полноценно выполнять необходимые действия на сервере доступа, однако вы их можете изменять по своему усмотрению.

Управление аккаунтом

При создании абонента система посылает на сервер доступа команду "Добавить абонента" из настроек сервера доступа в интерфейсе администратора. Команда "Добавить абонента" является шаблоном, в котором служебные слова заменяются соответствующими значениями. Резальтатом работы команды должны стать добавленные, но неактивированные записи.

Для использования в шаблоне команды могут быть использованы следующие переменные аккаунта:

$account_id
$ballance
$credit
$datetime
$tarif_id
$access_parameters_id
$time_access_service_id
$traffic_transmit_service_id
$cost
$reset_tarif_cost
$settlement_period_id
$tarif_active
$acctf_id
$account_created
$disabled_by_limit
$balance_blocked
$nas_id
$ipn_status
$ipn_speed
$vpn_speed
$ipn_added
$allow_express_pay
$account_status
$username
$password
$current_acctf
$allow_ipn_with_null
$allow_ipn_with_minus
$allow_ipn_with_block
$userblock_max_days

Так же могут быть использованы переменные сервера доступа:

$id
$type
$name
$ipaddress
$secret
$login
$password
$allow_pptp
$allow_pppoe
$allow_ipn
$user_add_action
$user_enable_action
$user_disable_action
$user_delete_action
$vpn_speed_action
$ipn_speed_action
$reset_action
$speed_vendor_1
$speed_vendor_2
$speed_attr_id1
$speed_attr_id2
$speed_value1
$speed_value2
$identify
$subacc_add_action
$subacc_enable_action
$subacc_disable_action
$subacc_del_action
$subacc_ipn_speed_action
$acct_interim_interval

Активация абонента должна приводить к активации добавленных на сервер доступа записей. Активация происходит в том случае, если абонент не активен и у него нет блокировок или ограничений по размеру баланса. Для активации используется соответствующий NAS Actions из параметров сервера доступа. В данной команде можно использовать те же подстановочные символы, что и для добавления абонента.

Деактивация абонента должна приводить к деактивации добавленных на сервер доступа записей. Деактивация происходит в том случае, если абонент активен и у него появилась одна или несколько блокировок.

Удаление абонента происходит при его удалении из системы. Используемые подстановочные символы аналогичны команде добавления. Обратите внимание, что команда удаления с сервера доступа так же выставляет в системе статус "Не активен на сервере доступа" для аккаунта.

Состояние каждого аккаунта и его субаккаунтов вы можете контроллировать через EBS Admin в списке абонентов.

Account ipn status.png

Управление субаккаунтами

Управление субаккаунтами осуществляется аналогично управлению аккаунтами, за тем исключением что становится доступно 3 дополнительные команды: установить IPN скорость, установить VPN скорость, сбросить VPN сессию.

Добавление/удаление субаккаунта происходит при соответствующих действиях в системе. При этом доступны следующие переменные:

$id
$account_id
$username
$password
$vpn_ip_address
$ipn_ip_address
$ipn_mac_address
$nas_id
$ipn_added
$ipn_enabled
$need_resync
$speed
$switch_id
$switch_port
$allow_dhcp
$allow_dhcp_with_null
$allow_dhcp_with_minus
$allow_dhcp_with_block
$allow_vpn_with_null
$allow_vpn_with_minus
$allow_vpn_with_block
$associate_pptp_ipn_ip
$associate_pppoe_ipn_mac
$ipn_speed
$vpn_speed
$allow_addonservice
$allow_ipn_with_null
$allow_ipn_with_minus
$allow_ipn_with_block
$vlan
$vpn_ipv6_ip_address
$ipv4_ipn_pool_id
$ipv4_vpn_pool_id

Так же могут быть использованы переменные сервера доступа:

$id
$type
$name
$ipaddress
$secret
$login
$password
$allow_pptp
$allow_pppoe
$allow_ipn
$user_add_action
$user_enable_action
$user_disable_action
$user_delete_action
$vpn_speed_action
$ipn_speed_action
$reset_action
$speed_vendor_1
$speed_vendor_2
$speed_attr_id1
$speed_attr_id2
$speed_value1
$speed_value2
$identify
$subacc_add_action
$subacc_enable_action
$subacc_disable_action
$subacc_del_action
$subacc_ipn_speed_action
$acct_interim_interval

и переменные аккаунта

$account_id
$ballance
$credit
$datetime
$tarif_id
$access_parameters_id
$time_access_service_id
$traffic_transmit_service_id
$cost
$reset_tarif_cost
$settlement_period_id
$tarif_active
$acctf_id
$account_created
$disabled_by_limit
$balance_blocked
$nas_id
$ipn_status
$ipn_speed
$vpn_speed
$ipn_added
$allow_express_pay
$account_status
$username
$password
$current_acctf
$allow_ipn_with_null
$allow_ipn_with_minus
$allow_ipn_with_block
$userblock_max_days

Активация/деактивация аккаунта выполняется аналогичным способом с использованием тех же переменных.

Установка скорости производится аналогичным способом через NAS Actions. В дополнение к подстановочным символам из команды на добавление абонента здесь используются $access_type, $session, $max_limit_tx, $max_limit_rx, $burst_limit_tx, $burst_limit_rx, $burst_treshold_tx, $burst_treshold_rx, $burst_time_tx, $burst_time_rx, $priority, $min_limit_tx, $min_limit_rx. Следуюет обратить внимание, но то, что перед добавлением записи, система должна перестраховаться и удалить уже возможно существующую с таким же идентификатором. Биллинг посылает команду на установку/изменение скорости в случае если скорость ещё не установлена или изменилась.

Состояние каждого субаккаунта вы можете видеть в его карточке.


Статус аккаунта

Пять иконок напротив каждого абонента означают (слева-направо) "У клиента достаточно средств на лицевом счету для работы в текущем расчётном периоде", "У клиента нет блокировок по лимитам", "Пользователь неактивен на NAS", "Пользователь не добавлен на NAS", "У пользователя есть активные RADIUS сессии".

IPN действия для VPN тарифов

ExpertBilling позволяет использовать IPN действия и для PPTP/PPPOE тарифных планов.

Схема использования IPN действий для PPTP/PPPOE тарифных планов.

IPN действия для PPTP/PPPOE тарифных планов отличаются от работы с IPN тарифными планами лиш тем, что настройки скорости для абонентов устанавливаются после каждой RADIUS авторизации.

Использование IPN действий целесообразно тогда, когда вы не хотите запрещать PPTP/PPPOE абонентам авторизацию при их блокировке, однако хотите закрыть доступ к определённым ресурсам или перенаправлять всех таких абонентов на какие-то ресурсы.