В данном разделе:
Смотрите также: |
Управление субъектами и объектами учета в АСР «Гидра» производится с помощью механизма событий. События бывают различных типов, определяющих причину их возникновения: это может быть изменение состояния объекта или субъекта, изменение его атрибутов, адресов, привязок, состояния лицевого счета и т. п.
Возникновение события приводит к выполнению связанных с ним действий — наборов команд, которые ядро АСР «Гидра» посредством специального задания по протоколу XML-RPC передает менеджеру активного оборудования hamd (Hydra Active Management Daemon). Hamd — это специализированное приложение, непосредственно взаимодействующее с сетевыми службами и оборудованием и возвращающее в АСР «Гидра» информацию о результатах выполнения команд.
Все возникающие в системе события помещаются в очередь, которая обрабатывается периодическими заданиями, связанными с тем или иным менеджером hamd.
Тип события |
Причина возникновения |
Примеры использования |
Блокировка за неуплату |
Актуализация инвойса, содержащего услугу с типом Блокировка за неуплату. |
Информирование абонента о том, что его учетная запись заблокирована и он не может пользоваться услугами. |
Временная блокировка |
Актуализация инвойса, содержащего услугу с типом Временная блокировка. |
Информирование абонента о том, что у него включена временная блокировка. |
Выставлен счет |
Актуализация счета, получателем в котором выступает абонент. |
Информирование абонента о выставлении счета на его имя. |
Наличие рекомендуемого платежа |
Наличие у абонента рекомендуемого платежа по одному или нескольким лицевым счетам. Вызывается при выполнении задания по обработке рекомендуемых платежей. |
Напоминание абоненту о необходимости осуществить очередной платеж. |
Поступление на лицевой счет |
Актуализация платежного поручения с получателем-абонентом. |
Информирование абонента о поступлении на его лицевой счет платежа. |
При изменении состояния абонента |
Изменение состояния абонента. |
Информирование абонента о его подключении (активации) или блокировке. |
При изменении состояния зависимого объекта |
Изменение состояния объекта учета (абонентского оборудования и т. п.). |
Добавление/удаление MAC-адреса на коммутаторе при активации/отключении абонентского оборудования. |
При нехватке средств |
Невозможность выставить инвойс по периодическим услугам из-за отсутствия средств на лицевом счете. Вызывается при выполнении задания по предвыставлению инвойсов. |
Информирование абонента о том, что на его счете недостаточно средств для дальнейшего оказания услуг. |
При подключении/отключении услуги |
Изменение состояния инвойса, содержащего услугу, добавление услуги в инвойс. (Как правило, в качестве услуги выступает услуга доступа.) |
Разрешение или запрет доступа абонента к услугам связи (управление файрволом, разрыв PPP-сессий и т. д.); включение/отключение ограничения исходящей или входящей скорости на шейпере (iptables, ipfw, Cisco); включение/отключение подписки на услуги сторонних поставщиков. |
Произвольное |
Вызов через API специальной процедуры, генерирующей событие. |
Любое пользовательское событие, например, поздравление абонента с днем рождения или выражение благодарности за длительное пользование услугами. |
Расторжение договора |
Перевод договора на оказание услуг в состояние Расторгнут. |
Информирование клиента о том, что договор с ним был расторгнут. |
Типы событий можно разделить на две группы — события для объектов и субъектов учета. К первой группе относятся события, возникающие на абонентском оборудовании: подключение и отключение услуг, привязанных к оборудованию, изменение его состояния. Во вторую группу входят события, происходящие с абонентом, например, наличие рекомендуемого платежа, поступление на лицевой счет и т. п.
Действие — это набор шаблонов команд в текстовом виде. В шаблонах используются специальные подстановки, которые при обработке команды агентом заменяются на конкретные значения атрибутов, идентификаторов и других параметров объектов или субъектов (например, подстановка $TERM_PHYS_ADDR может быть заменена на значение 00-1A-B1-DF-24-A4).
Часть подстановок, используемых в АСР «Гидра», являются параметризованными, например, значение дополнительного параметра объекта учета можно получить с помощью подстановки $TERM_OBJ_ADD_PARAM[add_param_id], передав в add_param_id идентификатор нужного дополнительного параметра. В некоторых подстановках могут указываться сразу несколько параметров в формате "Тип_параметра":"Значение". Так, подстановка TERM_IP_ADDR["ADDR_BIND_TYPE":"BIND_ADDR_TYPE_Actual","IP_TYPE":"ADDR_TYPE_IP6"] вернет фактический IPv6-адрес оборудования (BIND_ADDR_TYPE_Actual — это код значения Фактический адрес из базового справочника Виды адресов, а ADDR_TYPE_IP6 — код типа адреса из справочника Типы адресов).
Действия, связанные с событием, делятся на две группы — прямые и обратные. Для каждого прямого действия может быть задано обратное, отменяющее сделанные им изменения, однако обратные действия требуются не всегда. Например, действие, разрывающее текущую PPP-сессию абонента с помощью SNMP-команды или CoA-запроса по протоколу RADIUS, не может иметь обратного, поскольку разорванная сессия не может быть восстановлена со стороны сервера. Другой пример действия, не имеющего обратного, — отправка уведомления о поступлении платежа на лицевой счет абонента.
Обратные действия могут быть полезны, когда управляемое оборудование обладает собственной памятью, в которой сохраняются состояния выполненных на нем команд. В этом случае при изменении параметров абонента выданные оборудованию команды нужно корректно отменять. Например, если на шейпере абонент идентифицируется по статическому IP-адресу его оборудования, и по какой-то причине этот IP-адрес изменился, система, обнаружив, что значение подстановки $TERM_IP_ADDRESS стало другим, автоматически выполнит обратное действие, которое удалит правило шейпера для старого IP-адреса, после чего будет выполнено прямое действие с новым значением IP-адреса.