Миграция из биллинга UTM 5 делается через промежуточный набор таблиц в формате DBF . Таблицы выгружаются из UTM с помощью специального скрипта на Python или Perl . Далее с помощью специального инструмента DBF-файлы загружаются в АСР «Гидра», где происходит сопоставление справочников и выполняется собственно миграция данных.
Упрощения и допущения
- Юрлица и физлица находятся в одной таблице и отличаются только специальным признаком.
- Из реквизитов юрлица выгружается только его название, остальное требует ручного ввода.
- Текущий объём потреблённых услуг (трафик, минуты) никак не мигрирует, поэтому трафика включенным абонентам в момент миграции придётся накинуть как будто начался новый учётный период, но дата окончания текущего периода смигрирует, поэтому весь остаток трафика нужно будет потратить за время, оставшееся до этой даты.
- Подробности тарифов (периодичность, пороги, единицы измерения, стоимость и т.д.) не мигрируют, а перебиваются вручную и затем сопоставляются. Системы тарификации в UTM и АСР «Гидра» отличаются слишком сильно, и автоматическая миграция при небольшом числе тарифных планов приведёт к бОльшим трудозатратам, нежели полуавтоматическая. То же касается и других небольших справочников, таких как классы трафика, валюты и т.д.
Проблемы
- В UTM абонент может одновременно находиться в нескольких группах, тогда как в АСР «Гидра» — только в одной. Кроме того, в UTM с помощью групп сделаны многие настройки (разделение на физических и юридических лиц, привязка к файрволам и другому оборудованию). У нас это реализовано по-другому, нужно найти правильный подход.
- Нужно разобраться, откуда лучше брать данные для привязки абонента к DHCP-серверу и файрволам. Можно, например, смотреть прямо по группе, к которой принадлежит абонент, а можно включить в привязки.
Таблицы, выгружаемые из UTM
Звёздочкой помечены идентификаторы, по которым связываются таблицы. Выделены исключительно для наглядности. Если необходимо, то к каждой таблице можно добавить поле для комментария, в которое будут выгружаться полезные текстовые данные.
Справочник состояний абонента
STATUS
- ID состояния ID
- Наименование состояния NAME
Если используется всего два состояния (включен, отключен), то смысла в справочнике нет. В таблицах, которые на него ссылаются, можно использовать просто отдельный столбец с признаком активности.
Справочник сетевых служб
NS_LIST
- ID сетевой службы ID
- Название сетевой службы NAME
Примечание: Этот справочник формируется вручную и состоит из перечня сетевых служб, для доступа к которым абоненту нужен логин и пароль: RADIUS, личный кабинет, телефония.
Справочник групп абонентов
GROUPS
- ID группы* ID
- Название группы NAME
Справочник услуг и тарифных планов
SERVICES
- ID услуги (тарифного плана)* ID
- Наименование услуги (ТП) NAME
- Признак тарифного плана (если Y, то ТП; если N, то услуга) TYPE
Примечание: В этот справочник выгружаются все ТП, а из услуг только те, которые не входят в ТП, например, услуга "Реальный IP-адрес"
Справочник лицевых счетов
ACCOUNTS
- ID лицевого счёта* ID
- ID абонента USER_ID
- Номер лицевого счёта ACCT_NUM
- ID валюты* CUR_ID
- Баланс счёта BALANCE
- Кредитный лимит CREDIT
Привязки абонента к сетевым службам
NETSERV
- ID привязки ID
- ID абонента USER_ID
- ID сетевой службы NS_ID
- Логин LOGIN
- Пароль PASSWORD
Примечание: В эту таблицу выгружаются логины и пароли на VPN, на личный кабинет, SIP-аккаунт и на другие ресурсы, которые контролирует биллинг. При этом в целях безопасности пароли при тестовых выгрузках нужно заменять на звёздочки или случайные строки. Настоящие пароли будут выгружаться всего один раз, при окончательной миграции.
Участие абонентов в группах
GROUPLINK
- ID записи об участии* ID
- ID абонента* USER_ID
- ID группы* GROUP_ID
Подписка абонентов на услуги
SUBSCR
- ID подписки* ID
- ID лицевого счёта* ACCT_ID
- ID услуги (тарифного плана)* TARIFF_ID
- Дата окончания текушего учётного периода D_END
- Дата начала текущего учётного периода D_START
Оконечное оборудование абонентов
EQUIP
- ID оборудования* ID
- ID лицевого счёта* ACCT_ID
- Физический адрес (MAC) MAC
- IP-адрес IP
- Маска IP-адреса MASK
- Абонентский телефонный номер PHONE
Справочник абонентов
USERS
- ID абонента* ID
- ID состояния абонента* STATUS_ID
- Физическое или юридическое лицо JUR = 1 для юрлиц
- Номер договора NUM
- ФИО (физлица) / Наименование (юрлица) NAME
- Домашний адрес ADDR
- Номер паспорта PASSPORT
- Контактный телефон W_PHONE, H_PHONE, M_PHONE
- Контактный email EMAIL
Примечание: Список атрибутов для личных данных абонента может быть расширен по необходимости.