IPTV Портал (iptvportal.ru)

Интеграция с Middleware "IPTV Портал" представлена в виде отрытого кода (динамические классы).

При интеграции с данной системой продукты модуля (или, в зависимости от конфигурации, сервисы модуля) являются подключаемыми пакетами 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=
 
# тип устройства - IPTVPortal (для синхронизации терминалов из MW)
om.deviceTypeIds=2

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

images/download/attachments/43386415/tv-iptvportal-1.png

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

# Коды параметров договора для заполнения полей в MW-системе (если не указано - используется комментарий договора)
# код параметра договора ФИО или Фамилия (если фамилия указывается отдельно)
#customer.lastName.pid=
# код параметра Имя (если он указан отдельно)
#customer.firstName.pid=
# код параметра - названия компании (для юр. лиц)
#customer.company.pid=
 
 
# Режим синхронизации продуктов (0 - по событию, 1 - по событию, полная)
om.product.syncMode=1
# уровень интеграции, 0 - интеграция на уровне продуктов модуля, 1 - интеграция на уровне сервисов модуля
om.product.serviceMode=0
 
 
 
# Идентификаторы пакетов, включенные всегда, если аккаунт/терминал включен
om.defaultPackages=
 
# При добавлении терминала через биллинг он будет помечен как зарегистрированный
om.terminal.registered=1
 
 
# ID типа аккаунта - терминала (STB)
# При подгрузке новых терминалов с IPTVPortal будет создаваться дочерний аккаунт данного типа
om.terminal.tvAccountSpecId=

images/download/attachments/43386415/tv-iptvportal-2.png

images/download/attachments/43386415/tv-iptvportal-3.png

Заметьте, что у типа устройства IPTVPortal ID получился равным 2. Именно это значение и прописано в конфигурации модуля, в параметре om.deviceTypeIds.

Создайте устройство типа 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/43386415/tv-iptvportal-4.png

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

images/download/attachments/43386415/tv-iptvportal-5.png

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

images/download/attachments/43386415/tv-iptvportal-6.png

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

images/download/attachments/43386415/tv-iptvportal-7.png

А также тип устройства - Терминал. В поле Родительские типы поставьте галочку на типе "Аккаунт", который создали только что. Установите галочку на "MAC-адрес". Также при необходимости можно установить галочку на поле "идентификатор", но следует учитывать, что в текущей версии поле Идентификатор сохраняется в поле inet_addr IPTVPortal'а, и потому должно быть либо пустым, либо правильным IP-адресом.

images/download/attachments/43386415/tv-iptvportal-8.png

Теперь необходимо создать Продукты - они будут отражать пакеты системы IPTVPortal. Поле Название - это название, с которым данный продукт будет отображаться в биллинге. Поле Идентификатор - идентификатор пакета системы IPTVPortal (по умолчанию обычно free, pkg0, pkg1, pkg2...).

images/download/attachments/43386415/tv-iptvportal-9.png

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

images/download/attachments/43386415/tv-iptvportal-10.png

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

images/download/attachments/43386415/tv-iptvportal-11.png

Далее нужно создать тарифный план с веткой модуля. Пример тарифа:

images/download/attachments/43386415/tv-iptvportal-12.png

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

images/download/attachments/43386415/tv-iptvportal-13.png

Можно (не обязательно) добавить терминал, как дочерний к аккаунту.

images/download/attachments/43386415/tv-iptvportal-14.png

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

images/download/attachments/43386415/tv-iptvportal-15.png

При регистрации терминала в системе IPTVPortal не приходит какое-либо уведомление в биллинг. Поэтому для синхронизации информации о терминалах нужно создать отдельную задачу. Для этого сначала нужно добавить глобальный скрипт поведения:

images/download/attachments/43386415/tv-iptvportal-16.png

Далее добавить задачу в планировщик "Выполнение глобальных скриптов по таймеру". Для корректной работы не забудьте указать правильный ID типа аккаунта-терминала в поле om.terminal.tvAccountSpecId (чтобы добавленные дочерние аккаунты-терминалы были указанного типа) в конфигурации типа устройства IPTVPortal:

# ID типа аккаунта - терминала (STB)
# При подгрузке новых терминалов с IPTVPortal будет создаваться дочерний аккаунт данного типа
om.terminal.tvAccountSpecId=