Настройка модуля CerberCrypt

Предполагается, что у вас уже установлена и настроена система условного доступа, произведена настройка каналов и вам известны уникальные коды каналов/пакетов.

#активные статусы договора
contract.status.active.codes=0

#название пункта Web меню
web.menuItem1=Управление подпиской CerberCrypt
web.menuItem2=Виртуальный кинотеатр CerberCrypt
#Проверка наличия каналов на пакете при добавлении новых каналов
#0 - проверки нет
#1 - проверка только при действии Открыть пакеты
#2 - проверка при действии Открыть пакеты и при открытии пакета через веб-статистику
#3 - проверка при действии Открыть пакеты, открытии пакета через веб-статистику и при добавлении пакета через клиент биллинга
cerbercrypt.cardpacket.addcheck=1
#количество выводимых ошибок в периодических процессах
max.periodic.errors=30
#----------------------------------------
#выборочное отключение проверки закрытого периода
#Начисление
#closed.date.disabled.ActionRecalculate=1
#Изменение карты в закрытом периоде
#closed.date.disabled.ActionUpdateUserCard=1
#Изменение карт пакета в закрытом периоде
#closed.date.disabled.ActionUpdateCardPacket=1
#----------------------------------------

Настройка каналов/пакетов

Далее производится заведение каналов в биллинге, к каждому каналу должен быть привязан код канала системы УД.

Каналы

Пакет - это логическая единица, включающая в себя несколько каналов. Пакеты используются для более простого управления подпиской абонентов. Все пакеты необходимо завести в справочнике пакетов с указанием привязанных к ним каналов.

К каждому пакету должна быть указана услуга, на которую будет начислена наработка за пользование этим пакетом. Если необходима возможность включения/выключение пакета через Web, то следует установить флаги "Добавление через WEB" и "Закрытие через WEB". Если пакет должен быть всегда доступен пользователям ("социальный пакет"), то необходимо установить галочку "Не блокируемый". Такой пакет не будет блокироваться задачей "Блокировка CerberCrypt".

Пакеты

Также каждому пакету должен быть присвоен код, которым он нумеруется в системе УД, если используемый протокол предполагает пакетное управление.

Все используемые карты условного доступа должны быть загружены в модуль. Загрузка происходит в менеджере карт из файла формата:

<номер карты>\t<пароль карты>

Пароль карты - уникальная последовательность для активации карты через Интернет, что позволяет провайдеру организовывать продажу карт с приемниками вне офиса.

Менеджер карт

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

Загрузка карт

После загрузки карта должна быть передана дилеру. Дилер должен быть заведён на вкладке Дилеры. Для осуществления передачи в менеджере карт выбирается дилер и нажимается кнопка Передать дил.

Передача карты дилеру

Формат перечисления карт приведён под окошком. Формат "n+k" означает k карт начиная с номера n. Отбор карты у дилера производится аналогично. Дилеры представляют из себя как реальных агентов по продаже карт, так и фиктивные контейнеры для учёта повреждённых карт, утерянных и т.п.

Также менеджер карт позволяет производить простейший учёт карт. Так, можно определить количество свободных карт, либо количество карт, выданных определённому дилеру.

Тестовый

Тестовый активатор, просто выводит всё в лог с уровнем DEBUG:

sa=ru.avantis.abilling.modules.cerbercrypt.server.TestServiceActivator

CDCAS 3.0

Реализованный протокол: CDCAS3.0_SMS Interface Specification <V1.0>. Режим работы — с пакетами. Подразумевается один сервер; коннект берётся везде нулевой.

# активатор CDCAS3.0_SMS
sa=ru.avantis.abilling.modules.cerbercrypt.server.CDCAS30ServiceActivator
# настройки соединения
server.0.host=localhost
server.0.port=7364
server.0.timeout=5000
# параметры для содержимого пакетов: оператор ID, SMS ID
server.0.OPE_ID=666
server.0.SMS_ID=1
# rootkey сервера (16 или 24 байта)
#server.0.rootkey=ABCDEFGHIJKLMNOP
server.0.rootkey=ABCDEFGHIJKLMNOPABCDEFGH
# стиль OSD (1, 2)
server.0.osdStyle=2
# длительность OSD в секундах
server.0.osdDuration=60
# кодирование строк (можно переопределить через конфиг устройств)
server.0.emailCharset=utf-8
server.0.osdCharset=utf-8

CerberCrypt

Для системы CerberCrypt указажите адрес, порт и логин с паролем для обращения к серверу CerberCrypt:

sa=ru.avantis.abilling.modules.cerbercrypt.server.CerbercryptServiceActivator
server.0.host=192.168.168.10
server.0.port=8100
server.0.login=admin
server.0.pswd=xxxxx

Поддерживается всё железо аналогичное: CerberCrypt, DVCrypt, Teleview и прочие, в том числе настраивающиеся согласно документации CerberCrypt. Обратите внимание на права пользователя CerberCrypt, под которым происходит авторизация на удалённом сервере CerberCrypt (в примере выше — admin), ему нужно дать необходимые права для того, чтобы использовать все функции протокола (установление, чтение подписки и прочие).

CTI CAS 4.0

# активатор CTI CAS 4.0
sa=ru.avantis.abilling.modules.cerbercrypt.server.CtiCas4ServiceActivator
server.0.host=localhost
server.0.port=7000
server.0.timeout=5000
server.0.smsNumber=1
server.0.emailDay=1
server.0.emailFrom=Письмо от
server.0.osdDay=1
server.0.osdAccount=1
server.0.osdFrom=Сообщение от
server.0.emailEnable=1
server.0.osdEnable=1
# используется при активации
# Region No (CCA Number)
server.0.regionID=1
# Control District (GCA Number)
server.0.gcano=1
# Control CUSTWD
server.0.ctrcustwd=1

# кодирование строк (можно переопределить через конфиг устройств)
server.0.emailCharset=utf-8
server.0.osdCharset=utf-8
# отправлять только UA из всего номера карты
server.0.sendUAonly=1

# отправлять команду активации автоматически, как только приходит ошибка 19 "Smart Card not Exist"
server.0.autoActivate=1

Управление ведётся пакетами.

Протокол игнорирует начальную дату открытия пакета. Использование gradually.subscription бесполезно, т.к. в протоколе не используется дат (сейчас для подписки используется команда 15, а не 103).

Параметры типа "CCA Number (Region ID)" может быть удобно задавать через конфиг пользовательских устройств.

Conax

Система conax (beta-версия) требует подобную конфигурацию:

sa=ru.avantis.abilling.modules.cerbercrypt.server.ConaxServiceActivator
# Параметры сервера (т.е. ftp-аккаунт)
server.0.host=localhost
server.0.port=21
# Параметры аккаунта логин/пароль
server.0.username=anonymous
server.0.password=
# Корневой каталог относительно текущего-каталога-сразу-после-входа,
# относительно него уже ищутся каталоги autreq/req, autreq/ok, autreq/err
# (они тоже должны существовать)
# по умолчанию "." (точка, текущий каталог, т.е. никуда не делаем переход)
server.0.pwdroot=pub/conax

Conax 4.0

Система Conax Contego 4.0, протокол с веб-сервисами (Conax Contego Web Services итд)

# активатор Conax 4.0
sa=ru.avantis.abilling.modules.cerbercrypt.server.Conax4ServiceActivator
# аккаунт для auth-авторизации
server.0.user=***
server.0.password=***
# урлы соответствующих веб-сервисов
server.0.subscription=https://***:44302/ca-server/webservices/caclient/subscription
server.0.messaging=https://***:44302/ca-server/webservices/caclient/user-text-messaging
server.0.administration=https://***:44302/ca-server/webservices/caclient/ca-client-administration
server.0.pairing=https://***:44302/ca-server/webservices/caclient/pairing
# длительность osd(bark) сообщений в секундах
server.0.osdDuration=58
# метод доставки: OVER_AIR, SYNCHRONOUS_RETURN
server.0.emmDeliveryMethod=OVER_AIR

Gospell

Система Gospell. Режим работы — с пакетами. Везде подразумевается один сервер; коннект берётся везде нулевой.

# активатор Gospell
sa=ru.avantis.abilling.modules.cerbercrypt.server.GospellServiceActivator

# настройки соединения
server.0.host=localhost
server.0.port=2888
server.0.timeout=5000

# заголовок email
server.0.emailTitle=email

# параметры osd (см. протокол)
server.0.osdShowTimeLength=30
server.0.osdShowTimes=0
server.0.osdPriority=0
# expired time, в секундах (1 день = 24*60*60)
server.0.osdExpiredTimeSecond=86400

Griffin

Система CAS Griffin. Режим работы — с пакетами. Везде подразумевается один сервер; коннект берётся везде нулевой.

sa=ru.avantis.abilling.modules.cerbercrypt.server.GriffinServiceActivator
# Параметры сервера (т.е. ftp-аккаунт)
server.0.host=10.10.10.16
server.0.port=21
server.0.username=anonymous
server.0.password=sms@sms
# Корневой каталог относительно текущего-каталога-сразу-после-входа
# по умолчанию "." (точка, текущий каталог, т.е. никуда не делаем переход)
server.0.pwdroot=sms
# Максимальное количество карт в системе
server.0.cardcount=666

В редакторе пакетов используются коды серверов для пакетов и коды самих пакетов (от 1 до 16). Их надо корректно прописать.

При наличии файла new_db на ftp (сервер занят? не работает?) он сначала удаляется, чтобы сервер не стал внезапно обрабатывать новую базу. После этого в обычном порядке перетираются grif0-sub16.dat итд, затем снова кладётся new_db. Не нужна в любом случае старая подписка, всё равно новая должна её полностью перетирать при каждом обновлении.

NordE/CTI

Для системы NordE/CTI примерная конфигурация такова:

Код
sa=ru.avantis.abilling.modules.cerbercrypt.server.NordE2ServiceActivator

server.0.host=localhost
server.0.port=7000
server.0.timeout=5000

server.0.smsNumber=1
server.0.providerId=1
server.0.charset=ISO8859-1
server.0.providerName=Test Provider

server.0.emailEnable=1
server.0.emailDurationTime=1
server.0.emailInterval=1
server.0.emailTitle=Заголовок письма
server.0.emailFrom=Письмо от

server.0.osdEnable=1
server.0.osdTimes=1
server.0.osdInterval=1
server.0.osdTitle=Заголовок сообщения
server.0.osdFrom=Сообщение от

# период в днях, на сколько каждый раз продлевается активация (при подписке пакета на открытый период).
# для активаторов, которые (опционально) продлеваются постепенно: NordE2, .
# чтобы продлять на "бесконечно", ставится либо 100500 дней, либо параметр вообще не прописывается (по дефолту возьмётся опять же какое-то большое кол-во дней).
# если стоит небесконечный период, то обязательно запускать задачу "Постепенное продление подписки", которая будет сдвигать период по исходу этого кол-ва дней.
period.gradually.subscription=30

В данном случае режим работы с пакетами: заводим в биллинге пакеты и управляем пакетами (из удалённой системы), каналы настраиваем извне. Т.е. каналы не синхронизируются из биллинга. Параметры типа "emailEnable" или "charset" больше относятся к оборудованию и, возможно, будет удобнее помимо размещения их в конфигурации модуля разместить их в конфигурации устройств (см. ниже), которые затем привяжутся к картам пользователей (в карточке договора). Также здесь удобно использование возможности "автопродление подписки" (см. ниже и см. настройку в днях кол-ва дней продления активации).

Вкладка «каналы» остаётся на месте, всеми игнорируется, при обмене с сервером, учёте и т. д. не используется. Обмен идёт только через пакеты, для этого используются коды пакетов, которые задаются на соответствующей вкладке.

Номера пакета — вводится вручную при добавлении или редактировании пакета в поле «Номер пакета (код)».

Пример конфигурации оборудования, с которым тестировался данный протокол: сремблеры двух компаний родные Compunicate, и компании Gospell, любые современные железки от них совместимы с CAS. Oracle можно использовать любой. Версии модулей софта Conditional Access System : CAS Encryption Control System V2.02, CAS ECMG V2.545, CAS EMMG V2.5.4, CA Manager V2.0.2, SMS Console V2.00 2007.09. Для обмена данными между системами биллига различных разработчиков служит ПО SMS Console, версия консоли зависит от версии системы кодирования.

Для OSD сообщений задаётся количество повторов (сколько раз пробежит строчка) и интервал в минутах (хотя в описании протокола сказано про секунды). В данный момент реализовано только из конфигурации.

Pisys Irdeto

Для Pisys Irdeto укажите адрес, порт и код оператора:

sa=ru.avantis.abilling.modules.cerbercrypt.server.PisysServiceActivator
server.0.host=192.168.168.10
server.0.port=80
server.0.operatorTag=
server.0.nationality=RUS
#регион (MO, BA, SA)
server.0.regionTag=