... {toc:maxLevel=3} h2. Как это работает? При изменении состояний услуг абонента или изменении его данных ядро отправляет команды на оборудование доступа к услугам (NAS, BRAS) через механизм OSS системы. OSS система вызывает функции скрипта управления оборудованием при тех или иных событиях: подключилась услуга, абонента заблокировало или разблокировало, изменились параметры его учетной записи и тд. При вызове функций скрипта, в него передаются некие "переменные": данные конкретного абонента, услуги, его учетной записи, параметры NAS-сервера и тд - все что может быть важно для управления состоянием сервиса и удаленного управления. В зависимости от текущего события за раз может быть отправлено несколько команд. Например, при удалении в корзину отправляются команды деактивации услуг и удаления абонентской "сессии". h2. Таблица Состояний абонента (subscriber) для услуг трафика || Состояние пользователя в БД \\ || Описание \\ || Состояние на оборудовании \\ || OSS команда синхронизации ||
|
| Создан \\ deleted=0 \\ | Учетка существует в биллинге. \\
|
\\ | Используется редко. \\
|
\\ | Используется в схемах со статическим IP и без RADIUS. \\
|
На оборудовании должны быть созданы нужные постоянные \\ VLAN, ACL, static clips и т.п. | user_add |
|
... | Удален \\ deleted=1 \\ | Учетка удалена в корзину в биллинге. Изменен *ключевой параметр* учетной записи \\ | На оборудовании должны быть удалены все записи о пользователе. \\ Часто достаточно просто disconnect. \\ | user_del | | Не заблокирован администратором \\ accept=1 \\ | Есть хоть одна услуга трафика без флага блокировки администратором. \\ | На оборудовании должна быть сессия(subscriber) пользователя. \\ Не должно быть redirect на страницу блокировки администратором. \\ Если оборудование без сессий, то добавлено правило в acl_accept | user_accept | | Заблокирован администратором \\ accept=0 \\ | Все услуги трафика заблокированы администратором \\ или самоблокировкой абонента. \\ \\ | Означает, что пользователю(subscriber) нужно создать redirect на страницу блокировки администратором. \\ \*Не рекомендуется при этом просто запрещать трафик, тк это снижает лояльность абонента. \\ | user_drop | | Баланс исчерпан \\ redirect=1 \\ | Все услуги трафика исчерпали свой баланс. \\ | Означает, что пользователю(subscriber) нужно создать redirect на страницу превышен лимит. | user_redirect | | Баланс не исчерпан \\
|
redirect=0 \\ | Есть хоть одна оплаченная услуга трафика или услуга трафика с постоплатой. \\ | Означает, что пользователю(subscriber) должен быть на оборудовании и у него нет редиректа на превышен лимит. | user_redirect_cancel | | Авторизован \\
|
logged=1 \\ | Пользователь авторизован, через радиус или веб-авторизацию \\ | Редко используется. \\
|
logged=1 \\ | Пользователь авторизован, через радиус или веб-авторизацию \\ | Если веб авторизация, то для веб-авторизации, чтобы убрать правило редиректа noauth \\ | user_auth \\ |
|
| Не авторизован \\
|
logged=0 \\ | Пользователь не авторизован \\ | Редко используется. \\ Используется в двух случаях:
|
Обычно user_disconnect \\ | user_disconnect \\ |
|
* для сброса авторизации - кнопка "Отключить" в карточке абонента; \\ * чтобы убедиться, что сессия сброшена: когда RADIUS-сервер получил от NAS Accounting-Stop (это можно отключить, включив в настройках NAS опцию "Не посылать user_disconnect при получении Radius Stop") | user_disconnect \\ |
|
| Активирована добровольная блокировка | Абонент активировал добровольную блокировку, вызывается при любом стостоянии авторизации и прочих блокировках | | own_disabled \\ | | Снята добровольное блокировка | Абонент снял добровольную блокировку, вызывается при любом стостоянии авторизации и прочих блокировках | | own_disabled_cancel \\ |
|
| Изменилась скорость доступа к сети | Изменилась скорость доступа к сети интернет: например, поменяли тариф или включили турбокнопку. | | user_rate_set |
|
| Услуга активирована | Одна из [услуг подключенных абоненту|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=49087043#Выбортарифногопланаиуслуг.Добавлениеуслугабоненту-Добавлениеуслуги] была активирована. \\
|
Если одновременно было активировано несколько услуг, по каждой будет создано отдельно событие. \\
|
Используется для всех схем [интеграции IPTV|CarbonBilling:Интеграция сервисов интернет-телевидения]. | Зависит от схемы интеграции с телевидением. Для IPTV это управление дополнительными пакетами, в [стандартных схемах|CarbonBilling:Стандартные схемы] интеграции с NAS интернет не используется. | usluga_activated \\ |
|
| Услуга деактивирована | Одна из [услуг подключенных абоненту|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=49087043#Выбортарифногопланаиуслуг.Добавлениеуслугабоненту-Добавлениеуслуги] была деактивирована. \\
|
Если одновременно было деактивировано несколько услуг, по каждой будет создано отдельно событие \\
|
Используется для всех схем [интеграции IPTV|CarbonBilling:Интеграция сервисов интернет-телевидения]. | Зависит от схемы интеграции с телевидением. Для IPTV это управление дополнительными пакетами, в [стандартных схемах|CarbonBilling:Стандартные схемы] интеграции с NAS интернет не используется. | usluga_deactivated \\ |
|
|
... {INFO} При изменении любых ключевых параметров учетной записи будет вызвано событие *user_del* 2 раза: Сначала со старыми данными учетной записи а после с измененными. {INFO} h2. Список ключевых параметров учетной записи 'ip', 'login', 'mac', 'server' - Опция "У пользователя белый ip" 'snatip', 'deleted' - Флаг, который появляется у учетной записи при удалении в корзину. 'auth_type' - Тип авторизации 'nas_ip', 'router_ip' - IP маршрутизатора 'opt82' - 'switch_port', 'switch_vlan', 'switch_ip', 'nas_id' - ID NAS'a 'psw' - Пароль 'gpon_modem_port' - GPON-порт на приставке h2. Какие "состояния" должны быть у абонента чтобы интернет работал или наоборот не работал? *Полноценный Интернет будет у пользователя при наборе состояний:* "Создан","Не заблокирован администратором","Баланс не исчерпан", "Авторизован". *Редирект на соответствующие страницы будет при наборе состояний:* "Создан","Заблокирован администратором" или "Баланс исчерпан". *Физическое отключение, не будет работать Ping, PPPoE, VPN, DHCP, при наборе состояний:* "Удален" h2. Какие команды будут отправлены в разных случаях h3. Смена тарифа h4. user_rate_set При смене тарифа интернет отключается активная услуга интернет и подключается/активируется новая. При этом скорость доступа реально изменится только при поступлении в биллинг трафика по новой услуге или при переавторизации в сети (если используется подключение с использованием протокола RADIUS) Таким образом, user_rate_set будет вызвана три раза: * Первая отправка со _старой_ скоростью при _деактивации старой_ услуги * Вторая отправка со _старой скоростью_ при _активации новой_ услуги * Третья отправка с _новой скоростью_ при поступлении трафика Здесь нужно обратить внимание еще на один момент: ID услуги будет передан только в первой и второй отправке. При третьей отправке переменная *usluga_id* будет пустой. h3. Изменение учетной записи h4. user_edit При редактировании любых полей в учетной записи отправляется событие *user_edit*. h4. user_del и user_add В случае когда меняется IP либо NAS обязательно будет уходить *user_del* со старыми параметрами и *user_add* с новыми.
|
h3. Удаление абонента или учетной записи
|
При удалении в биллинге абонента или учетной записи на NAS передается команда *user_del*, описанная в файле _session_, который находится внутри управляющего каталога каждого NAS в биллинге, по адресу _chroot_ _/app/asr_billing /var/oss/core/__[Название NAS]__/bin(ubin)._
|
В команде перечислены действия, которые необходимо выполнить NAS с сессией абонента. {code:title=Пример команды user_del из скрипта session схемы mikrotik-simple}
|
|
user_del(){ if [ "$auth_type" == "0" -o "$auth_type" == "6" ]; then
|
... while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /ip firewall address-list remove numbers=[find address =${ip}]; do :; done echo "User-Name=\"${login}\"" | radclient -x ${nas_ip}:${coa_port} disconnect "${radius_secret}" else while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /ip firewall address-list remove numbers=${ip}_crb_auth; do :; done while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /ip firewall address-list remove numbers=${ip}_crb_negbal; do :; done while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /ip firewall address-list remove numbers=${ip}_crb_blocked; do :; done fi while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /queue simple remove numbers=crb_${ip}; do :; done }
|
{code}
|
Необходимо обязательно описать команду *user_del*,если самостоятельно внедряете пользовательскую схему, или, если используете подключения по *RADIUS* - \- убедитесь, что оборудование отправляет биллингу *Accounting-Stop* пакеты. Удаление сессии с оборудования важно для правильной работы подсистем биллинга - это необходимо для того чтобы биллинг мог освободить занятый абонентом IP-адрес, а так же закрыть период, если абонент был удалён.
|