Плагин предназначен для мониторинга и управления OLT-устройствами (Optical Line Terminal) и ONU абонентов. Выполняет Telnet-опрос OLT-оборудования, хранит данные в локальной БД BGERP и интегрируется с BGBilling для маппинга MAC→абонент.
Возможности:
Встроенный Telnet-опрос OLT-устройств (BdCom, GateRay, CData) с автоопределением vendor
Отображение данных ONU на вкладке процесса и вкладке договора BGBilling
Страница управления OLT — CRUD, массовый/выборочный опрос, просмотр портов/ONU
Импорт OLT из биллинга и автоматический маппинг MAC→абонент
Фильтрация OLT по биллингу, статусу, вендору + текстовый поиск (MAC/договор/ФИО/адрес)
Цветовая подсветка проблемных RX-сигналов (пересвет, средний, плохой)
Перезагрузка ONU с cooldown-защитой (5 мин)
Активация/замена ONU — обновление MAC-адреса в биллинге
Автоматическое создание записок в процессе при выполнении действий
Опрос по расписанию (scheduler task) с защитой от зависания статуса UPDATING
| Vendor | Класс | Описание |
|---|---|---|
|
BDCOM |
|
BdCom GP3600-08B и аналоги |
|
GATERAY |
|
GateRay EPON до 2020 |
|
GATERAY2020 |
|
GateRay EPON 2020+ |
|
CDATA |
|
CData EPON |
|
CDATA_GPON |
|
CData GPON |
|
CDATA_FD1608 |
|
CData FD1608S-B1 |
|
CDATA_FD1208 |
|
CData FD1208S-B1 |
В каталоге динамического кода dyn создать подкаталоги ru/rock/getolt и поместить в самый нижний файл сервиса.
Динамический сервис должен быть указан в конфигурации биллинга:
dynservice:ru.getolt.GetOltServiceInterface=ru.getolt.GetOltService
Дополнительная настройка для случая, когда MAC в конфигурации сервиса вместо стандартного поля:
# ключ доп. параметра сервиса с MAC ONU server.getolt.mac.config.key=onu_mac_param
Создать включающую плагин конфигурацию, в которую добавить:
# Параметр процесса "Оператор" (param_list)
getolt:operator.paramId=68
getolt:operator.default=РТЦ
# Маппинг значений параметра на операторов
getolt:operator.mapping.1=Омиплат
getolt:operator.mapping.2=Омикрон
getolt:operator.mapping.3=Рокет
getolt:operator.mapping.4=РТЦ
getolt:operator.mapping.5=Флеш
# Маппинг billingId → имя оператора (для ссылок на договоры)
getolt:operator.billing.omicron=ЮТК
getolt:operator.billing.rocket=Рокет
# общие логин с паролем для обращения к сервису биллинга (auto-discovery режим)
getolt:webhook.user=YOUR_WEBHOOK_USER
getolt:webhook.password=YOUR_WEBHOOK_PASSWORD
# опционально отдельные логин с паролем
# getolt:inetmac.rocket.user=special_user
# getolt:inetmac.rocket.password=special_pass
URL для обращений к биллингам получается из конфигурации плагина BGBilling.
Пороги сигнала настраиваются в конфигурации следующим образом:
# RX пороги (dBm)
getolt:signal.rx.overexposed=-15
getolt:signal.rx.good=-25
getolt:signal.rx.medium=-27
# TX пороги (dBm)
getolt:signal.tx.overexposed=5
getolt:signal.tx.good=0.5
getolt:signal.tx.medium=-1
Логика: значение выше overexposed — засвет, от overexposed до good — норма, от good до medium — средний, ниже medium — плохой.
Плагин определяет оператора в следующем порядке:
Параметр процесса "Оператор" (param_list)
ID параметра: getolt:operator.paramId
Маппинг значений: getolt:operator.mapping.{valueId}
Billing ID из contract link
Формат link: contract:{billingId}
Маппинг: getolt:operator.billing.{billingId}
Значение по умолчанию
getolt:operator.default
Проверка формата: XX:XX:XX:XX:XX:XX
Нормализация различных форматов (дефисы, точки, пробелы, без разделителей)
Защита от кириллических символов (А, В, С, Е похожи на латинские)
Преобразование в верхний регистр
# Telnet-опрос
grep "OltPollingService\|OltPollingTask" log/bgerp.log
# Действия пользователя
grep "GetOltAction\|OltManageAction" log/bgerp.log
# Billing webhooks
grep "InetMacApiClient" log/bgerp.log
| Проблема | Причина | Решение |
|---|---|---|
|
Вкладка процесса не появляется |
Плагин не включён или нет прав |
Проверить |
|
"Нет привязанных договоров" |
У процесса нет contract link |
Привязать договор к процессу |
|
"ONU не найдена" |
OLT не опрошен или маппинг не выполнен |
Запустить опрос OLT + маппинг на странице управления |
|
OLT завис в UPDATING |
Ошибка при опросе (перезапуск сервера сбросит) |
Перезапустить BGERP или подождать следующий цикл scheduler |
|
500 при фильтрах OLT |
Отсутствует синоним |
Проверить |
|
Пустой vendor после импорта |
Vendor определяется отдельным циклом |
Подождать следующий цикл scheduler или запустить опрос вручную |
|
Кнопка перезагрузки заблокирована |
Cooldown 5 мин после предыдущей перезагрузки |
Подождать 5 минут или очистить localStorage |
-- Проверить, что плагин включён
SELECT * FROM config_global WHERE config LIKE '%getolt:enable%';
-- Проверить настройки типа процесса
SELECT id, title, config FROM process_type
WHERE config LIKE '%getolt:processShowTab%';
-- Проверить права
SELECT pp.permset_id, pt.title, pp.action
FROM user_permset_permission pp
JOIN user_permset_title pt ON pp.permset_id = pt.id
WHERE pp.action LIKE '%getolt%';
-- Проверить OLT в БД
SELECT id, ip, vendor, billing, status, last_update FROM getolt_olt ORDER BY ip;
-- Количество ONU
SELECT o.ip, COUNT(onu.id) AS onu_count
FROM getolt_olt o LEFT JOIN getolt_olt_onu onu ON o.id = onu.olt_id
GROUP BY o.id ORDER BY o.ip;
Вкладка отображается на странице процесса при выполнении условий:
Плагин включён (getolt:enable=1)
Тип процесса имеет настройку getolt:processShowTab=1
У пользователя есть право getolt:null
К процессу привязан договор (contract link)
Вкладка появляется на карточке договора BGBilling при:
Плагин включён (getolt:enable=1)
У пользователя есть право getolt:contractOnu
Данные ONU ищутся напрямую по operator + contractId/numDogovor — без привязки к процессу.
Карточка отображает:
Заголовок: MAC-адрес, статус (ONLINE/OFFLINE), время последнего обновления
Кнопки: Обновить порт, Перезагрузить ONU (при наличии прав)
Данные:
OLT IP
Порт / ONU ID
Сигнал RX/TX (с цветовой индикацией качества)
Дистанция (м)
Температура (°C)
Напряжение (V)
MAC за ONU (список)
Соседи по порту (таблица)
Таблица соседей отображает все ONU на том же порту OLT. Текущая ONU абонента выделена жёлтым цветом. Качество сигнала (RX) подсвечивается цветом.
Подсвечиваются только проблемные значения RX. Нормальный сигнал — без подсветки. TX и температура не подсвечиваются. Значения порогов по-умолчанию, могут быть изменены в конфигурации.
Страница доступна через меню "OLT" (право manage:null).
Функции:
Таблица OLT — IP, vendor, billing, порты, ONU (active/total), статус, last update
Фильтры — биллинг, статус, vendor (combo-check) + текстовый поиск
CRUD — создание, редактирование, удаление OLT
Опрос — ручной опрос одного OLT или массовый (чекбоксы + кнопка "Обновить все/N")
Порты/ONU — expandable rows с детальной информацией
Импорт — загрузка списка OLT из биллинга
Маппинг — ручной запуск сопоставления MAC→абонент
При наличии права activateOnu отображается форма:
Поле ввода MAC: автоформатирование, валидация, защита от кириллицы
Кнопка "Активировать": отправляет запрос на обновление MAC в биллинге
Если у договора несколько интернет-услуг, появляется модальное окно выбора услуги.
После успешной перезагрузки ONU кнопка блокируется на 5 минут. Состояние сохраняется в localStorage браузера.