Просмотр Исходного

{toc:maxlevel=2}

h1. Техническая сторона

С сервисом сделана двусторонняя интеграция:
* Мы шлём запросы в их API управляя доступом к камерам
* Сервис отправляет запросы на обработчик биллинга: 1) запросы авторизации абонентов 2) оповещение биллинга о появлении в сети новой камера

h2. Настройка NAS

Создайте [мастером NAS-сервер|CarbonBilling:Этап 1. Мастер Стандартной схемы NAS] по схеме *Flussonic*, [инициализируйте и заполните конфигурационные файлы|CarbonBilling:Этап 2. Генерация конфигурации и upload на оборудование].

Зайдите в *Управление* -> *Настройка*, нажмите *Обновить* и откройте файл _main.ini_ на редактирование, заполните следующее:
* *watcher_url* - ссыла на URL обработчика на стороне Flussonic
* *watcher_api_key* - ключ API Flussonic

h2. Обратная интеграция

Интеграция по протоколу *https* подойдёт, если у вас есть сертификат для домена, на котором расположен биллинг. Обработчики находятся в модуле платежных систем, укажите IP-адреса Flussonic по статье "[CarbonBilling:Настройка сети для платежных систем]", порт лучше использовать [без передачи сертификата|CarbonBilling:Основные настройки платежных систем], по-умолчанию это 2443 .

Flussonic не поддерживает самоподписанные сертификаты. При обращении со стороны Flussonic возникает ошибка:
{code}
2019-11-01 06:26:47.781 <watcher> [w-o6319r3x|watcher] user.py:561 HTTP auth backend request failed: HTTPSConnectionPool(host='test.ru', port=2443): Max retries exceeded with url: /auth_flussonic.php?login=test&password=test (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))
{code}

Если сервер биллинга и Flussonic находятся в локальной сети, то можно использовать протокол [http|CarbonBilling:Основные настройки платежных систем] по-умолчанию порт 1444 .

h2. Настройка на стороне Flussonic

На стороне сервиса нужно указать пути до наших обработчиков:

* https://169.254.14.43:2443/integration_flussonic.php - на него мы получаем информацию о появившихся в сети камерах
* https://169.254.14.43:2443/auth_flussonic.php - к этому мы ожидаем запросы авторизации

{note}Замените +169.254.14.43+ на адрес биллинга по которому он доступен с сервера Flussonic.{note}

h1. Настройка услуг и камер

h2. Добавление камер

Заведите камеры по статье "[CarbonBilling:Учет оборудования абонентов]". Обязательно укажите +серийный номер+
URL потока вещания и Ключ авторизации на оборудовании заполнятся когда камеру подключат к сети.

h2. Настройка услуг

[Добавьте услуги|CarbonBilling:Услуги] для тарификации:
* *Основные* -> *Тип* - "Стандартный"
* *Дополнительно* -> *NAS* - Flussonic, добавленный ранее
* *Дополнительно* -> "*Создавать учетную запись при подключении*" - включите

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

h1. Подключение абонента

# Абонент обратился в абонентский отдел
# Добавьте ему услугу, созданную на предыдущем шаге
# При подключении услуги укажите камеру в поле "*Аренда оборудования*"
# Подключите камеру к сети
# Flussonic через _integration_flussonic.php_ уведомляет биллинг что появилась новая камера
# Биллинг прописывает в камере "URL потока вещания" и "Ключ авторизации"
# Для доступа к сервису дайте абоненту логин и пароль учетной записи созданной услугой.

h1. Отладка

Лог регистрации новых камер
{code}/app/asr_fiscal/var/log/IntegrationFlussonic.log{code}
Лог авторизации
{code}/app/asr_fiscal/var/log/AuthFlussonic.log{code}

Если подключить камеру не указанную ни в одной users_usluga, биллинг напишет в лог, что не найден абонент с такой камерой

h2. Логи пусты

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

h3. Проверьте настройки со стороны Flussonic
Проверьте со стороны Flussonic что интеграция настроена, что указаны обработчики регистрации камер и авторизации абонентов.

h3. Если выше все проверили и настроено/отправляется, но логи все равно пустые
Запусите снифер пакетов по портам платежных систем:
{code}tcpdump --nnei any port 1444 or port 1443 or port 2443{code}
Посмотрите доходят ли запросы по сети с IP сервиса.
{info}Если запросов слишком много с разных ресурсов, можно ограничить его выбранными хостами и подсетями, например:
{code}tcpdump -nnei any 'port 1444 or port 1443 or port 2443' and 'net 0.0.0.0/0 or host 169.254.80.82'{code}{info}