Ministra TV platform (ex Stalker Middleware)

Интеграция с Ministra TV platform (Middleware Stalker) от Infomir LLC представлена в виде отрытого кода (динамические классы).

При интеграции с данной системой продукты модуля (или, в зависимости от конфигурации, сервисы модуля) являются подключаемыми пакетами MW.

Добавьте конфигурацию модуля и установите ее активной:

Конфигурация
# Активные и приостановленные статусы договора
contract.status.active.codes=0
contract.status.suspend.codes=3,4
 
# Id сущностей (Справочники - Атрибуты) для продукта, сервиса и канала,
# для привязки атрибутов к продуктам, сервисам и каналам
#productSpec.entitySpecId=
#serviceSpec.entitySpecId=
#tvChannelSpec.entitySpecId=
 
#Пункты Web - меню
web.menuItem1=TV подписки
 
# Параметры автоматической генерации логина для аккаунта. Можно указать в конфигурации модуля, конфигурации устройства, конфигурации типа сервиса
# (в последнем случае значения будут главнее):
# минимальное значение логина при генерации логина
account.login.min=10000001
# максимальное значение логина при генерации логина (т.е. если в базе присутствуют логины 1,2,3 и 10000000,
# то при генерации создастся логин 4, а не 10000001)
account.login.max=99999999
# форматирование генерируемого логина
#account.login.format=0000000
 
# Парамерты пароля для аккаунта. Можно указать в конфигурации модуля, конфигурации устройства, конфигурации типа сервиса
# (в последнем случае значения будут главнее):
# минимальная длина пароля
account.password.length.min=4
# Максимальная длина пароля
account.password.length.max=8
# Разрешенные символы (используются также при генерации пароля)
account.password.chars=1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
# Описание разрешенных символов, если пользователь ввел другие
account.password.chars.description=В пароле допустимы только цифры и латинские буквы.
# Длина для автоматически генерируемого пароля
account.password.length.auto=6
# Используемые символы для автоматически генерируемого пароля (по умолчанию значение берется из параметра account.password.chars)
#account.password.chars.auto=

Необходимо создать новый тип устройства, назвать его, например, Access+Accounting - данный тип устройства будет отражать приложения TvAccess и TvAccounting.

images/download/attachments/43386433/access-accounting.png

Далее создайте новый тип устройства, назовите его, например, Ministra и добавьте конфигурацию:

# В качестве account_number используется:
# 0 - поле Логин корневого аккаунта; если не указано, то ID корневого аккаунта,
# отформатированный с помощью om.accountNumber.format
# 1 - ID корневого аккаунта, отформатированный с помощью om.accountNumber.format
# 2 - поле Идентификатор корневого аккаунта; если не указано, то ID корневого аккаунта,
# отформатированный с помощью om.accountNumber.format
om.accountNumber.mode=2
 
# Формат account_number, если в качестве него используется ID корневого аккаунта
#om.accountNumber.format=
 
# Формат логина, если в качестве него используется ID аккаунта
#om.account.loginFormat=
 
# Тариф по умолчанию
om.tariff.default=1
 
# ID продукта-папки, содержащей в себе папки-тарифы
om.tariff.product.parentIds=
 
# Режим синхронизации продуктов (0 - по событию, 1 - по событию, полная)
om.product.syncMode=1

В качестве OrderManager выберите MinistraOrderManager.

images/download/attachments/43386433/ministra.png

images/download/attachments/43386433/device_types.png

Создайте устройство типа Access+Accounting и укажите конфигурацию:

Конфигурация
# Обработка/обсчет
# кол-во потоков в обработчике
accounting.worker.1.thread.count=1
# пауза перед следующим выполнением
accounting.worker.1.tracking.account.1.delay=60
# максимальное кол-во обработанных аккаунтов в одном выполнении
accounting.worker.1.tracking.account.1.batchSize=500
# пауза перед следующим выполнением
accounting.worker.1.tracking.event.1.delay=10
# максимальное кол-во обработанных аккаунтов в одном выполнении
accounting.worker.1.tracking.event.1.batchSize=100
 
 
# Синхронизация
# кол-во выполняемых задач в одном блоке
om.batch.size=20
# время ожидания завершения future задач
om.batch.pause=0
# время ожидания завершения future задач
om.batch.wait=5
# время ожидания следующей задачи перед закрытием соединения
om.batch.waitNext=5
 
# пауза после ошибки
om.error.pause=60
# кол-во попыток с ошибкой перед тем как отложить задачу
om.error.redelivery.count=5
# кол-во попыток с ошибкой после которого отправить оповещение
om.error.alarm.count=20
# таймаут задания, выполняющегося с ошибкой
om.error.redelivery.timeout=86400

Данное устройство будет отражать приложения TVAccess и TVAccounting.

images/download/attachments/43386433/root_device.png

Создайте дочернее к предыдущему устройству устройство типа Ministra, указажите хост подключения, логин и пароль.

images/download/attachments/43386433/ministra_device.png

Получившееся дерево устройств:

images/download/attachments/43386433/device_tree.png

Добавьте тип аккаунта Аккаунт.

images/download/attachments/43386433/account.png

# Автоматически привязываем к устройству 2 (Ministra)
const.device.id=2
# Шаблон названия
title.pattern=Аккаунт: (${id})
# Аккаунты данного типа являются пользователями в Ministra
user=1

А также тип аккаунта - Пользователь. В поле Родительские типы поставьте галочку на типе Аккаунт, который создали только что. Установите галочку на полях "логин", "пароль" и "MAC-адрес".

images/download/attachments/43386433/terminal.png

Укажите в конфигурации типа аккаунта:

# Автоматически привязываем к устройству 2 (Ministra)
const.device.id=2
# Шаблон названия
title.pattern=Пользователь: (${login})(/${macAddress})
# Аккаунты данного типа являются пользователями в Ministra
user=1

Аккаунт биллинга (дочерний или нет) считается пользователем в Ministra, если в нем (в аккаунте) указано не пустое значение в поле Логин, а также в конфигурации типа аккаунта указано user=1 или stb_type=<тип STB>.

В таком виде на договор нужно будет добавлять сначала Аккаунт ("лицевой счет" в Ministra), а затем дочерний к нему Пользователь, и уже в нем указывать логин, пароль и при необходимости MAC-адрес. Однако в типе аккаунта Аккаунт можно указать галочки в полях "логин", "пароль" и "MAC-адрес", тогда к этому аккаунту будет сразу привязываться не только "лицевой счет", но и "пользователь" Ministra, а дочерний аккаунт Пользователь использовать для добавления дополнительных пользователей этого лицевого счета.

Теперь необходимо создать Продукты - они будут отражать тарифы или пакеты системы Ministra. Для разделения тарифов от пакетов создайте две продукты-папки с названиями Тарифы и Продукты без режимов активации. Далее создайте продукты-тарифы и продукты-пакеты. Поле Название - это название, с которым данный продукт будет отображаться в биллинге. Поле Идентификатор - идентификатор пакета системы Ministra (поле "Внешний ID" в Ministra).

images/download/attachments/43386433/product.png

Чтобы абонент мог активировать Продукт (тем самым активируя подписку в Ministra) необходимо, чтобы в продукте был задан хотя бы один режим активации. Далее от выбранного режима активации может зависеть режим тарификации.

images/download/attachments/43386433/product_activation_mode.png

В продуктах-тарифах на вкладке Зависимость укажите, что они не совместимы с другими продуктами-тарифами (чтобы нельзя было активировать два продукта-тарифа одновременно).

Получившееся дерево Продуктов:

images/download/attachments/43386433/product_tree.png

Обратите внимание, что у продукта-папки Тарифы ID равен 1 - именно это значение указано в параметре конфигурации типа устройства Ministra в параметре om.tariff.product.parentIds.

На договоре нужно добавить модуль TV, настроенный тариф и создать аккаунт, который будет связан с аккаунтом из системы Ministra.