Просмотр Исходного

{toc:maxLevel=3}

h2. Как это работает?

При изменении состояний услуг абонента или изменении его данных ядро отправляет команды на оборудование доступа к услугам (NAS, BRAS) через механизм OSS системы.
OSS система вызывает функции скрипта управления оборудованием при тех или иных событиях: подключилась услуга, абонента заблокировало или разблокировало, изменились параметры его учетной записи и тд.
При вызове функций скрипта, в него передаются некие "переменные": данные конкретного абонента, услуги, его учетной записи, параметры NAS-сервера и тд - все что может быть важно для управления состоянием сервиса и удаленного управления.

В зависимости от текущего события за раз может быть отправлено несколько команд. Например, при удалении в корзину отправляются команды деактивации услуг и удаления абонентской "сессии".


h2. Таблица Состояний абонента (subscriber) для услуг трафика

|| Состояние пользователя в БД \\ || Описание \\ || Состояние на оборудовании \\ || OSS команда синхронизации ||
| Создан \\
deleted=0 \\ | Учетка существует в биллинге. \\
\\ | Используется редко. \\
На оборудовании должны быть созданы нужные постоянные \\
 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 \\ | Пользователь авторизован, через радиус или веб-авторизацию \\ | Редко используется. \\
Если веб авторизация, то убрать правило редиректа noauth \\ | user_auth \\ |
| Не авторизован \\
logged=0 \\ | Пользователь не авторизован \\ | Редко используется. \\
Обычно user_disconnect \\ | user_disconnect \\ |
| Активирована добровольная блокировка | Абонент активировал добровольную блокировку, вызывается при любом стостоянии авторизации и прочих блокировках | | own_disabled \\ |
| Снята добровольное блокировка | Абонент снял добровольную блокировку, вызывается при любом стостоянии авторизации и прочих блокировках | | own_disabled_cancel \\ |

{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* с новыми.