IPTV Портал (iptvportal.ru)
Интеграция с Middleware "IPTV Портал" представлена в виде отрытого кода (динамические классы).
При интеграции с данной системой продукты модуля (или, в зависимости от конфигурации, сервисы модуля) являются подключаемыми пакетами MW.
Добавьте конфигурацию модуля и установите ее активной:
# Активные и приостановленные статусы договораcontract.status.active.codes=0contract.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.
Далее создайте новый тип устройства, назовите его, например, 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=
Заметьте, что у типа устройства 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.
Создайте дочернее к предыдущему устройству устройство типа IPTVPortal, указажите хост подключения, логин и пароль.
Получившееся дерево устройств:
Добавьте тип аккаунта Аккаунт.
А также тип устройства - Терминал. В поле Родительские типы поставьте галочку на типе "Аккаунт", который создали только что. Установите галочку на "MAC-адрес". Также при необходимости можно установить галочку на поле "идентификатор", но следует учитывать, что в текущей версии поле Идентификатор сохраняется в поле inet_addr IPTVPortal'а, и потому должно быть либо пустым, либо правильным IP-адресом.
Теперь необходимо создать Продукты - они будут отражать пакеты системы IPTVPortal. Поле Название - это название, с которым данный продукт будет отображаться в биллинге. Поле Идентификатор - идентификатор пакета системы IPTVPortal (по умолчанию обычно free, pkg0, pkg1, pkg2...).
Чтобы абонент мог активировать Продукт (тем самым активируя подписку в IPTVPortal) необходимо, чтобы в продукте был задан хотя бы один режим активации. Далее от выбранного режима активации может зависеть режим тарификации.
Получившееся дерево Продуктов:
Далее нужно создать тарифный план с веткой модуля. Пример тарифа:
На договоре нужно добавить модуль TV и создать аккаунт, который будет связан с аккаунтом из системы IPTVPortal
Можно (не обязательно) добавить терминал, как дочерний к аккаунту.
Получившееся дерево аккаунтов:
При регистрации терминала в системе IPTVPortal не приходит какое-либо уведомление в биллинг. Поэтому для синхронизации информации о терминалах нужно создать отдельную задачу. Для этого сначала нужно добавить глобальный скрипт поведения:
Далее добавить задачу в планировщик "Выполнение глобальных скриптов по таймеру". Для корректной работы не забудьте указать правильный ID типа аккаунта-терминала в поле om.terminal.tvAccountSpecId (чтобы добавленные дочерние аккаунты-терминалы были указанного типа) в конфигурации типа устройства IPTVPortal:
# ID типа аккаунта - терминала (STB)# При подгрузке новых терминалов с IPTVPortal будет создаваться дочерний аккаунт данного типаom.terminal.tvAccountSpecId=