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

{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." и услуга не подключится. Для отображения данного сообщения в личном кабинете необходимо, чтобы в настройках услуги был указан Вид сервиса: IPTV.
# У Смотрешки единая база учетных записей, поэтому если абонент ранее подключал Смотрешку у другого оператора связи, может возникнуть ошибка создания абонента
\\
\\ !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. По ней проводятся доработки и, в случае необходимости, могут быть добавлены исправления.
{note}
При работе схемы Lifestream v2 управление пакетами услуг абонентов со стороны биллинга осуществляется только по username.
{note}
На текущий момент переход на вторую версию схемы взаимодействия необходимо выполнять по следующему алгоритму:

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].

h6. Ошибка при синхронизации абонентов по ID при использовании в работе схемы v1.

{code}
2020-11-05 11:13:14,949 - worker - commands - INFO - В изначальной выборке из портала не было пользователя с email=хххххххххх@gmail.com
2020-11-05 11:13:14,956 - worker - lifestream_sync - ERROR - Произошла ошибка
Traceback (most recent call last):
File "/mnt/var/oss/core/Smotreshka/init.d/lifestream_sync", line 162, in <module>
iptv_portal.compare_users()
........................................
File "/mnt/var/oss/core/Smotreshka/lib/lifestream_package/commands.py", line 79, in _get_uniq_id
self.logger.debug(u'_get_uniq_id portal_id={}'.format(portal_user['id']))
TypeError: 'NoneType' object has no attribute '__getitem__'
{code}
Для решения данной проблемы, рекомендуем выполнить смену схемы взаимодействия биллинга и портала на [версию v2|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=53313591#ИнтеграциясLifeStream(Смотрёшка%2CСмотрешка)-Lifestreamv2]
И выполнить повторную синхронизацию.


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

В зависимости от настроек указанных в *main.ini* в API-запросы отправляемые на портал по конкретной учетной записи могут подставляться (Для версии v1) *ID* или *username* (для версии v2) \- в первом случае это может не работать если на стороне Смотрешки включена работа с 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}