CTI TVEngine
Интеграция с CTI TVEngine представлена в виде отрытого кода (динамические классы).
При интеграции с данной системой продукты модуля являются подключаемыми сервисами TVEngine.
После установки TVAccess и TVAccounting скопируйте папку BGBillingServer/lib/endorsed в TVAccess/lib и TVAccounting/lib, если она там отсутствует. Скопируйте BGBillingServer/lib/ext/serializer.jar в TVAccess/lib/ext и TVAccounting/lib/ext. Удостоверьтесь, что в access.sh и accounting.sh есть строка -Djava.endorsed.dirs=${APP_HOME}/lib/endorsed:${JAVA_HOME}/lib/endorsed" именно в таком виде. После этого необходимо перезапустить TVAccess и TVAccounting.
Добавьте конфигурацию модуля, укажите в ней веб-сервисы, к которым будет обращаться TVEngine и установите конфигурацию активной:
# Активные и приостановленные статусы договора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=# Веб-сервисы биллинга, к которым обращается TVEnginetv.ws.billing.class=ru.bitel.bgbilling.modules.tv.dyn.cti.tve.ws.billing.impl.BillingServiceWSImpltv.ws.pricing.class=ru.bitel.bgbilling.modules.tv.dyn.cti.tve.ws.pricing.impl.PricingServiceWSImpltv.ws.order.class=ru.bitel.bgbilling.modules.tv.dyn.cti.tve.ws.order.impl.OrderManagementServiceWSImplОбратите внимание, что для этих сервисов нет авторизации, т.е. они должны быть закрыты от внешнего доступа (контекст tv-ws, т.е. http://billing:8080/tv-ws/...).
В конфигурации TVEngine iptvmw-config.properties должны быть указаны пути к этим веб-сервисам биллинга (10 - это код модуля, значение нужно будет заменить):
#--------------------------------------------------------------------------------------------------------# 1.2 PUSH (EXTERNAL) MODE#--------------------------------------------------------------------------------------------------------# type of billing system:# db - internal billing# ws - external billing through web-services# cti - CTI-BILLING# fastcom - FASTCOM-billingtve.billing.type=ws# getting customer status from billing during stb authentication process (default - FALSE)tve.billing.needGetDataFromBillingDuringStbAuthentication=false# allows to select OrderManagementService implementation type (available values: db , ws, cti, fastcom)tve.billing.external.orderManagementService.type=ws# allows to select BillingManagementService implementation type for 'queryCustomerAccountInfo' method only (available values: db , ws, cti, fastcom)tve.billing.external.billingManagementService.queryCustomerAccountInfo.type=ws# external billing realization for "askPermissionToActivateOnBilling" method# (using during set top box registration operation)tve.billing.external.customerManagementService.askPermissionToActivateOnBilling.type=wstve.billing.external.billingManagementService.type=dbtve.billing.external.billingManagementService.queryCustomerAccountInfo.type=wstve.billing.external.billingManagementService.queryBillingEntries.type=wstve.billing.external.billingManagementService.querySummByService.type=ws#--------------------------------------------------------------------------------------------------------# 1.3.1.1 SINGLE BILLING SYSTEM - setting for single billing PULL mode#--------------------------------------------------------------------------------------------------------billadapter.pull.pricingservice=http://billing:8080/bgbilling/tv-ws/ru.bitel.bgbilling.modules.tv.dyn.cti.tve.ws.pricing/10/PricingServiceWS?wsdlbilladapter.pull.orderservice=http://billing:8080/bgbilling/tv-ws/ru.bitel.bgbilling.modules.tv.dyn.cti.tve.ws.order/10/OrderManagementServiceWS?wsdlbilladapter.pull.billingservice=http://billing:8080/bgbilling/tv-ws/ru.bitel.bgbilling.modules.tv.dyn.cti.tve.ws.billing/10/BillingServiceWS?wsdlПосле изменения конфигурации TVEngine необходимо его перезапустить (service jetty restart).
Необходимо создать новый тип устройства, назвать его, например, Access+Accounting - данный тип устройства будет отражать приложения TvAccess и TvAccounting.
Далее создайте новый тип устройства, назовите его, например, TVEngine и добавьте конфигурацию:
# Коды параметров договора для заполнения полей в CTI TVEngine# код параметра договора ФИО или Фамилия (если фамилия указывается отдельно)customer.lastName.pid=# код параметра Имя (если он указан отдельно)#customer.firstName.pid=# код параметра Отчество (если он указан отдельно)#customer.middleName.pid=# код параметра - названия компании (для юр. лиц)customer.company.pid=# код параметра - пол#customer.gender.pid=# код параметра - дата рожденияcustomer.birthDate.pid=Укажите в нем OrderManager - ru.bitel.bgbilling.modules.tv.dyn.cti.tve.TveOrderManager.
Создайте устройство типа 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=30# кол-во попыток с ошибкой перед тем как отложить задачуom.error.redelivery.count=5# кол-во попыток с ошибкой после которого отправить оповещениеom.error.alarm.count=20# таймаут задания, выполняющегося с ошибкойom.error.redelivery.timeout=86400Данное устройство будет отражать приложения TVAccess и TVAccounting.
Создайте дочернее к предыдущему устройству устройство типа TVEngine, указажите хост подключения, логин и пароль.
Добавьте тип аккаунта Аккаунт, установите галочки на "логин" и "пароль", укажите конфигурацию:
# ID устройства TVEngineconst.device.id=# Шаблон имени аккаунтаtitle.pattern=Аккаунт: (${login})
Добавьте тип аккаунта для приставки. Конфигурацию укажите в зависимости от типа приставки:
# Шаблон имениtitle.pattern=SagemHD85: (${identifier}) ([${macAddress}])# Тип приставки в MW CTI TVEnginestb.type=sagemHD85В поле Родительские типы поставьте галочку на типе "Аккаунт", который создали только что. В договоре он будет дочерним по отношению к аккаунту типа "Аккаунт".