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

{toc:maxLevel=3}
{include:CarbonBilling:Добавление NAS IPTV}

h2. LifeStream

Для LifeStream в файле main.ini необходимо указать \*url\* в формате:

{panel}
XXXXXX.proxy.lfstrm.tv
{panel}

{info}
Т.к. на стороне биллинга указывается только url без логина и пароля, необходимо добавить ip адрес биллинга в список разрешенных ip адресов на стороне Lifestream.
Для этого обратитесь в техподдержку Lifestream и сообщите им ip адрес биллинга с которого будут приходить запросы на Lifestream
{info}


!LifeStream.png|border=1!

После этого обязательно нужно нажать кнопку "Сохранить" сразу под полем, в которое вносились изменения.

{note}

h3. Должен быть e-mail

# Синхронизация абонента происходит по e-mail адресу абонента, который должен быть задан на вкладке "Информация" в разделе "Контактная информация"
# Если e-mail адрес абонента не заполнен, то в личном кабинете при подключении абонентом услуги, которая относится к Смотрешке, будет отображаться сообщение "Услуга не подключена, необходимо заполнить email." и услуга не подключится.
# У Смотрешки единая база учетных записей, поэтому если абонент ранее подключал Смотрешку у другого оператора связи, может возникнуть ошибка создания абонента
\\
\\ !email.png|border=1!\\
\\

h3. Обратитесь в Cмотрешку

Обратитесь в Смотрешку с просьбой разрешить работу с абонентами по логину, как правило такая схема работает более корректно
{note}

h2. Ограничение запросов к API поставщика услуг

В файле *main.ini* необходимо добавить параметр *sync_minutes* (по умолчанию значение параметра равно 60, единица измерения - 1 минута). Данный параметр задает период ожидания между синхронизациями IPTV OSS, другими словами, регулирует частоту отправки API-запросов на портал поставщика. У некоторых поставщиков услуг IPTV есть ограничение на кол-во API-запросов к их серверу. Чтобы не выходить за рамки данных ограничений, рекомендуется увеличить параметр sync_minutes таким образом, чтобы период ожидания увеличился с 60 минут до 24 часов или 7 суток. После этого необходимо перезапустить обработчик синхронизаций:
{code}
chroot /app/asr_billing
service oss restart
{code}

{note}
Параметр *sync_minutes* работает только в схеме Lifestream v2
{note}

h2. Lifestream v2

Актуальная версия для настройки взаимодействия биллинга и сервиса IPTV является схема Lifestream v2. По ней проводятся доработки и, в случае необходимости, могут быть добавлены исправления.

При работе схемы Lifestream v2 управление пакетами услуг абонентов со стороны биллинга осуществляется только по username.

На текущий момент переход на вторую версию схемы взаимодействия необходимо выполнять по следующему алгоритму:

1) Зайти в контейнер биллинга с помощью команды chroot /app/asr_billing/
2) Сохранить содержимое файла /var/oss/core/LifeStream/main.ini в блокнот или в каталог с временным файлами
3) Удалить файлы из папки /var/oss/core/LifeStream/
4) В настроках NAS, в поле "Версия OSS схемы" указать 2
5) Выполнить шаг 3, шаг 4, шаг 5 [инструкции,|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=53313591#ИнтеграциясLifeStream(Смотрёшка%2CСмотрешка)-Заведениеоборудования] (данные для заполнения файла main.ini возьмите из файла, сохраненного в пункте 2)


h2. Решение проблем

h3. Проверка взаимодействия со Смотрёшкой по логину учётной записи
Для того, чтобы проверить работает ли сейчас взаимодействие с Lifestream по логину, Вы можете выполнить следующие действия на стороне Carbon BIlling 5, где *XXXX.proxy.lfstrm.tv* - Ваш url а *login_test* - логин одного из абонентов на стороне Lifestream :
{code}
chroot /app/asr_billing/
curl -X GET -H 'Content-Type: application/json' --url 'https://XXXX.proxy.lfstrm.tv/v2/accounts/login_test'
{code}
Если взаимодействие по логину действительно влючено - Вы получите примерно следующий ответ:
{code}
{"info": {}, "id": "5670XXXXXXXXXX000070", "city": "", "email": "test@gmail.com", "username": "login_test", "created": "2015-12-16 01:46:35.019000+03:00", "updated": "2016-09-02 13:05:35.902000+03:00", "is_blocked": false, "subscriptions": []}
{code}
Если абонента найти не получается, значит взаимодействие сейчас настроено не по логину и Вы получите следующее сообщение:
{code}
{"error": "HTTP 404: Not Found"}
{code}
Если при обращении Вы получаете ошибку 403, значит, скорее всего на стороне Lifestream не разрешен доступ с ip адреса Вашего биллинга:
{code}
{"error": "HTTP 403: Forbidden"}
{code}

h3. Ошибки при синхронизации

h6. Ошибка в конфигурационном файле
Текст ошибки из лога отправки команд по учётной записи абонета:
{code}
ConfigParser.ParsingError: File contains parsing errors: <???>
[line 5]: 'ignore_username_difference'
Sentry is attempting to send 1 pending error messages
{code}
В данном случае неверно указан параметр *ignore_username_difference* в конфигурационном NAS при тюнинге схемы. Для решения проблемы обратитесь к соответствующему [разделу статьи|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=53313591#ИнтеграциясLifeStream(Смотрёшка%2CСмотрешка)-ТюнингсхемыLifestream].

h2. Тюнинг схемы Lifestream

В зависимости от настроек указанных в *main.ini* в API-запросы отправляемые на портал по конкретной учетной записи могут подставляется её *ID* или *username* \- в первом случае это может не работать если на стороне Смотрешки включена работа с API по username, во втором могут возникать определённые ошибки если логин в Lifestream и биллинге отличаются. Для того чтобы исключить какие-либо проблемы синхронизации, можно попробовать использовать следующие настройки:

* *use_login_as_api_id* \- отправка команд по *login* (биллинг): логины в биллинге и на Lifestream должны совпадать, иначе не будет происходить актуализация данных абонента на портале, а так же не будут управляться подписки ТВ.
* *use_username_as_api_id* \- синхронизация по *username* (Lifestream): для синхронизации используется логин учетной записи в Lifestream (username), получаемый через загрузку полного списка учетных записей на Lifestream, сопоставление пользователей в биллинге и Lifestream происходит по "*Email для оповещений*" контактной информации в карточке абонента
* *ignore_username_difference* \- при синхронизации, которая выполняется раз в 10 минут, не проверять совпадение логина в биллинге и логина в Lifestream (username), и не пытаться изменить его на портале IPTV если в биллинге и портале логины не сопадают

Если все они не заданы или установлены в "0", то для отправки команд на Lifestream используется ID (например, 5b067984eea9ae0c00898XXX), сопоставление абонентов в биллинге и на портале так же происходит по "*Email для оповещений*"

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


h3. Пример 1.


Логин в учетной записи Carbon BIlling и логин в учетной записи Lifestream совпадают у всех абонентов. Необходимо синхронизировать абонентов по логину в биллинге.

Для этого необходимо зайти в файл main.ini в настройках IPTV NAS'a и добавить строку
{code}
use_login_as_api_id=1
{code}

h3. Пример 2.


Логин в учетной записи Carbon BIlling и логин в учетной записи Lifestream *НЕ* совпадают у всех или у части абонентов. Необходимо синхронизировать абонентов по логину учетной записи в Lifestream (username). При этом сопоставление логинов будет проходить по email адресу.(При такой настройке биллинг будет отправлять сообщение на почту администратора о том, что есть учетные записи с несовпадением логинов, так же будет создаваться автоматическая заявка).

Для этого необходимо зайти в файл main.ini в настройках IPTV NAS'a и добавить строку
{code}
use_username_as_api_id=1
{code}

h3. Пример 3.


Логин в учетной записи Carbon BIlling и логин в учетной записи Lifestream *НЕ* совпадают у всех или у части абонентов. Необходимо синхронизировать абонентов по логину учетной записи в Lifestream (username). При этом сопоставление логинов будет проходить по email адресу. (При такой настройке *НЕ* будет отправлять сообщение на почту администратора о том, что есть учетные записи с несовпадением логинов, автоматическая заявка создаваться не будет).

Для этого необходимо зайти в файл main.ini в настройках IPTV NAS'a и добавить строки
{code}
use_username_as_api_id=1
ignore_username_difference=1
{code}
{include:CarbonBilling:Настройка услуг IPTV}