Интеграция с платформой CAS Griffin

CAS Griffin — система условного доступа для цифрового телевидения. Модуль интеграции lbcore-griffin позволяет передавать из LANBilling информацию о том, какие пакеты каналов CAS Griffin доступны абонентам, а какие нет.

Модуль отслеживает изменения учётных записей и услуг в LANBilling: например, когда абоненту подключают новую услугу (пакет каналов) или когда учётная запись блокируется из-за неоплаты — и выгружает актуальные сведения на ваш сервер. Также можно настроить выгрузки по расписанию.

Полный порядок действий для настройки интеграции и принцип работы выгрузки описаны ниже.

Как настроить

Настройка интеграции

  1. Убедитесь, что вам доступен модуль «Интеграция с CAS Griffin».

  2. Подготовьте сервер, на который будут выгружаться файлы:

    • учётной записи на сервере выгрузки нужны права на создание каталога по указанному пути, просмотр его содержимого, удаление и создание файлов в нём,
    • подготовьте адрес и порт сервера выгрузки, данные учётной записи (логин и пароль), путь к каталогу,
    • подготовьте маски пакетов Griffin — их нужно будет указать в идентификаторах услуг в LANBilling.
  3. Установите модуль lbcore-griffin.

  4. Создайте в LANBilling агент типа «Услуги» с типом ЦТВ — «CAS Griffin».

  5. Задайте параметры модуля в административном интерфейсе LANBilling.

  6. Настройте профиль менеджера LANBilling, от имени которого модуль будет обращаться к LBcore. Логин и пароль этого менеджера нужно будет указать в файле конфигурации lbcore-griffin.

    Вы можете настроить права для одного из существующих профилей или создать новый.

    В настройках роли, назначенной этому менеджеру, задайте права доступа, необходимые для работы с модулем:

    • Агенты — правило доступа к настройкам агентов — чтение,
    • Опции — правило доступа к настройкам внешних модулей — чтение и изменение,
    • Пользователи — правило доступа к учётным записям — чтение,
    • Услуги — правило доступа к функционалу услуг — чтение.
  7. Задайте параметры в файле конфигурации модуля.

  8. Запустите модуль lbcore-griffin.

  9. Создайте в LANBilling каталог, тариф и услуги Griffin.

Создание учётных записей и назначение услуг

Cоздавайте учётные записи с услугами Griffin:

  • указывайте в них номера карт CAS Griffin,
  • назначайте:
    • агент услуг ЦТВ CAS Griffin,
    • тариф услуг, содержащий услуги Griffin,
    • периодические услуги, которые соотвествуют пакетам Griffin.

Модуль интеграции будет проверять изменения учётных записей и услуг — и выгружать на FTP-сервер данные о доступных пакетах:

  • регулярно — если это настроено в параметрах модуля,
  • по событиям — изменение учётных записей и услуг.

Как работает выгрузка

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

Выгрузка по событиям

Какие события учитываются

  • Изменился статус блокировки учётной записи — например, активная учётная запись перешла в финансовую блокировку.
  • Изменилось состояние услуги Griffin в учётной записи:
    • новая услуга начала действовать в учётной записи,
    • услуга отключена,
    • изменился статус блокировки услуги,
    • изменилась услуга,
    • услуга удалена.

Изменение должно влиять на активность учётной записи/услуги. Если статус меняется, но при этом учётная запись или услуга остаётся неактивной (например, при переходе из финансовой блокировки в административную) — выгрузка не выполняется.

Как происходит выгрузка по событиям

  1. Модуль проверяет, соответствует ли условиям выгрузки учётная запись, в которой произошло событие: указан ли номер карты CAS Griffin, подходит ли тип агента, какой префикс указан во внешних идентификаторах услуг.

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

  2. Модуль проверяет, актуален ли кеш.

    • Кеш актуален — модуль проверяет префиксы услуг только в той учётной записи, в которой произошло событие:

      • если учётная запись заблокирована или в ней нет услуг с нужным префиксом, присваивается нулевая маска (два нулевых байта),
      • если есть услуги с нужным префиксом:
        • все hex-маски услуг (указаны после префикса во внешнем идентификаторе) складываются в общую маску учётной записи (два байта).
        • полученная маска перезаписывается в кеше на актуальную в нужной позиции. Позиция определяется по номеру карты CAS Griffin, указанному в учётной записи,
        • выгружается кеш с одной обновлённой маской. Время последнего обновления кеша при этом не меняется.
    • Кеш неактуален/его нет :

      • модуль собирает информацию обо всех учётных записях (в том числе удалённых), в которых:
        • указан номер карты CAS Griffin,
        • и назначен агент услуг ЦТВ CAS Griffin, связанный с модулем,
      • выбирает наибольший номер карты — это определяет количество выгружаемых масок. Если какие-то номера карт пропущены, то для них выгружаются нулевые маски,
      • проверяет все действующие услуги в найденных учётных записях (по префиксу),
      • для каждой активной учётной записи формируется маска: все hex-маски услуг услуг (указаны после префикса во внешнем идентификаторе) складываются в общую маску учётной записи (два байта),
      • если учётная запись заблокирована или в ней нет услуг с нужным префиксом, присваивается нулевая маска (два нулевых байта),
      • из всех полученных масок формируются выгружаемые данные. Записи располагаются в порядке возрастания номера карты.
      • обновляется кеш, и в течение следующей минуты он считается актуальным.
  3. Сформированные данные выгружаются на сервер, указанный в настройках модуля.

    • Модуль сохраняет данные в директорию, указанную в настройках модуля. Если её нет на сервере — создаёт её.
    • из директории удаляются все файлы с расширением .dat, а также файл с названием _new_db_ (если он есть).
    • Создаются файлы с названием вида griff<N>-sub16.dat, где N — номер файла (начиная с 0). В каждый файл записывается не более 8000 байт (т.е. 4000 масок абонентов). Например:
      • если в выгрузке 3000 масок, они будут записаны в один файл griff0-sub16.dat,
      • если 7600 масок — они будут разбиты на griff0-sub16.dat (первые 4000) и griff1-sub16.dat (оставшиеся 3600).
    • Создаётся файл-маркер с названием _new_db_, в котором записана строка “1”.

Регулярная выгрузка

  1. Периодичность задаётся в настройках модуля.

  2. Порядок действий при регулярной выгрузке такой же, как для выгрузки по событию, но кеш предыдущей выгрузки не учитывается — данные собираются заново для всех учётных записей. После регулярной выгрузки кеш актуализируется.