Миграция из биллинга UTM 5 делается через промежуточный набор таблиц в формате DBF . Таблицы выгружаются из UTM с помощью специального скрипта на Python или Perl . Далее с помощью специального инструмента DBF-файлы загружаются в АСР «Гидра», где происходит сопоставление справочников и выполняется собственно миграция данных.
Упрощения и допущения
- Юрлица и физлица находятся в одной таблице и отличаются только специальным признаком.
- Из реквизитов юрлица выгружается только его название, остальное требует ручного ввода.
- У абонента максимум 1 IP-адрес и максимум 1 MAC-адрес.
- У абонента максимум 1 абонентский телефонный номер.
- Текущий объём потреблённых услуг (трафик, минуты) никак не мигрирует, поэтому трафика включенным абонентам в момент миграции придётся накинуть как будто начался новый учётный период, соответственно нужно будет переместить и дату начала периода.
Проблемы
- Что делать с датой начала учётного периода? Если ставить всем один день, то все будут ломиться каждый месяц в этот день платить деньги, а если ставить её не в один день, то как?
- В UTM абонент может одновременно находиться в нескольких группах, тогда как в АСР «Гидра» — только в одной. Кроме того, в UTM с помощью групп сделаны многие настройки (разделение на физических и юридических лиц, привязка к файрволам и другому оборудованию). У нас это реализовано по-другому, нужно найти правильный подход.
- Нужно разобраться, откуда лучше брать данные для привязки абонента к DHCP-серверу и файрволам. Можно, например, смотреть прямо по группе, к которой принадлежит абонент, а можно включить в привязки.
Таблицы, выгружаемые из UTM
Звёздочкой помечены идентификаторы, по которым связываются таблицы. Выделены исключительно для наглядности.
Справочник состояний абонента
- ID состояния*
- Наименование состояния
Справочник валют
- ID валюты*
- Название валюты
Справочник сетевых служб
- ID сетевой службы
- Название сетевой службы
Справочник групп абонентов
- ID группы*
- Название группы
Справочник услуг и тарифных планов
- ID тарифного плана*
- Название тарифного плана
Справочник лицевых счетов
- ID лицевого счёта*
- Номер лицевого счёта
- ID валюты*
- Баланс счёта
- Кредитный лимит
Привязки абонента к сетевым службам
- ID привязки*
- ID абонента*
- ID сетевой службы*
- Логин
- Пароль
В эту таблицу выгружаются логины и пароли на VPN, на личный кабинет и на другие ресурсы, которые контролирует биллинг. Кроме того
Участие абонентов в группах
- ID записи об участии*
- ID абонента*
- ID группы*
Подписка абонентов на услуги
- ID подписки*
- ID лицевого счёта*
- ID услуги (тарифного плана)*
Справочник абонентов
- ID абонента*
- ID состояния абонента*
- Физическое или юридическое лицо
- Номер договора
- ФИО (физлица) / Наименование (юрлица)
- Домашний адрес
- Номер паспорта
- Контактный телефон
- Контактный email
- IP-адрес
- MAC-адрес
- Абонентский телефонный номер
- Комментарий
Список атрибутов для личных данных абонента может быть расширен по необходимости.