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

{toc:maxLevel=3}
{include:CarbonBilling:Настройка IPTV. Общее}

h2. 24hTV

h3. Настройка NAS-сервера

В файле *main.ini* необходимо указать token, выданный 24hTV.
{code}
tmplt=tmplt/main.cfg.tmplt
enabled="1"
url=https://api.24h.tv/v2/
token=
{code}

!24hTV.png|border=0,width=400!

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

h3. [Интеграция за 48 часов с 24часаТВ|https://confluence.24h.tv/pages/viewpage.action?pageId=65647]
Реализован обработчик для обратных запросов - со стороны 24часаТВ к биллингу.
Он доступен по следующим адресам:
* Для HTTP
{code}http://169.254.14.44:1444/integration_iptv24htv.php/{code}
* Для HTTPS
{code}https://169.254.14.43:1443/integration_iptv24htv.php/
https://169.254.14.43:1443/integration_iptv24htv.php/{code}

Порты могут быть изменены по статье "[CarbonBilling:Основные настройки платежных систем]". Рекомендуется использовать "*Защищенный внешний порт платежных систем, без необходимости передачи сертификата*"

{info}* Адреса 169.254.14.44 и 169.254.14.43 в примере необходимо заменить на внешний адрес биллинга, по которому он доступен из сети интернет. Если биллинг не имеет белого адреса, используемые порты требуется [перенаправить на маршрутизаторе|https://ru.wikipedia.org/wiki/NAT]
* При регистрации из приложения, учетная запись в биллинге создаётся при смене тарифа или подключении первого дополнительного пакета{info}

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

# Путь к обработчику передайте специалистам 24часаТВ, обратите внимание на необходимость указания внешнего адреса биллинга, а так же перенаправления используемого порта в случае если биллинг находится за NAT
# Запросите у 24часаТВ IP-адреса с которых они планируют обращаться в биллинг и добавьте в список разрешенных по статье "[CarbonBilling:Настройка сети для платежных систем]"

h4. Запрос AUTH

При запросе AUTH, учётная запись в биллинге не создаётся; если нашли абонента по номеру телефона, возвращаем его ID.
Потом, когда абонент подключит первый пакет ТВ, учётная запись будет создана автоматический.

h4. Запрос PACKET

В сервисе 24часаТВ бывают два вида пакетов: базовые (основной) и дополнительные. Каждый базовый пакет имеет свой набор дополнительных пакетов для подключения (могут быть базовые пакеты и без дополнительных).
При переключении базовых пакетов, может возникнуть ситуация когда был подключен дополнительный пакет, и он входит в состав нового базового пакета. В таком случае мы отключаем дополнительный пакет автоматический.

Например, если у абонента был тариф "Базовый" и подключена дополнительная услуга "Амедиатека", при смене на тариф "Максимальный", доп. услуга отключится автоматически, так как она входит в состав более дорого тарифа.

При успешномвыполнении запроса, в ответе сервису возвращается параметр "status=1"

h4 Запрос CONT

При успешномвыполнении запроса, в ответе сервису возвращаются параметры "status=1" и "id=ID подключенного пакета в биллинге"

h3. Отладка
Отладить передачу данных со стороны сервиса телевидения к биллингу Вы можете по следующим файлам журналов:
{code}/app/asr_fiscal/var/log/httpd/error_log
/app/asr_fiscal/var/log/rest_api_v2.log
/app/asr_fiscal/var/log/IntegrationIptv24htv.log
/app/asr_billing/var/log/django/api_v2.log {code}
Из биллинга к сервису по этому логу:
{code}/app/asr_billing/var/log/nas_event_daemon/iptv24tv.log
/app/asr_billing/var/log/nas_event_daemon/24hTV_1.1.1.1.log
/app/asr_billing/var/log/oss.log{code}
{note}1.1.1.1 - это IP с которым NAS добавлен в биллинг.{note}

h4. Как делать отладку?
Анализируйте сообщения лога, обычно они довольнно говорящие и описывают совершаемое действие, например "Создаю учетную запись" или "Подключаю пакет телевидения".
Если возникает ошибка, как правило в тексте сообщения будет что-то вроде "ERROR" или "CRITICAL" и само сообщение ошибки.
Поняв текст сообщения об ошибке можно сделать вывод, следует ли обратиться к документаци, техподдержке Carbon Soft или техподдержке сервиса.
{info}События происходящие с абонентом удобно смотреть в реальном времени.
# Запустите монитор логов, например:
{code}tail -f /app/asr_billing/var/log/nas_event_daemon/iptv24tv.log /app/asr_fiscal/var/log/httpd/error_log{code}
# Сделайте какие=либо действия с абонентом - создайте учетную запись, подключите пакет ТВ и тд
# Посмотрите что происходит и не возникает ли ошибка
# По тексту ошибки попробуйте понять что случилось{info}

h4. Ошибка "User with this phone already exists"
{code:title=grep "User with this phone already exists" /app/asr_billing/var/log/nas_event_daemon/24hTV_*.log}
ValueError: Ошибка запроса к 24h.tv! message={'phone': [ErrorDetail(string='User with this phone already exists.', code='invalid')]{code}
Пользователь ранее регистрировался с этим номером телефона на сервисе 24часаТВ. Обратитесь в поддержку сервиса, попросите удалить абонента с других договоров.

После исправления ситуации на сервисе, удалите в биллинге услугу создания учетной записи и учетную запись. Подключите услугу заново.

h4. Подключаю услуги на приставке или в приложении - ничего не происходит

# Посмотрите в [администраторской панели 24h.tv|https://24h.tv/admin/utils_externals_logs_list/] логи отправленных команд к биллингу. Если там не отражены запросы на подключение услуги или регистрацию - обратитесь в поддержуц 24h,tv
# Если запросы есть и сервис отправлял команды на биллинг, их можно посмотреть в логе */app/asr_fiscal/var/log/IntegrationIptv24htv.log*, если там пусто - возможно адресов сервиса нет [в списке разрешенных|CarbonBilling:Настройка сети для платежных систем]. В любом случае, нужно проверить доходят ли запросы до биллинга:
{code}tcpdump -nni any port 1444 or port 1443 or port 2443{code}
Запустите мониторинг трафика по портам платежных систем в биллинге и попробуйте переключить услуги в приложении или на приставке, убедитесь что 24h.tv отправил запросы к биллингу по их администраторской панели и посмотрите будет ли это в снифере.
Если запросы есть, но логи пусты, еще раз проверьте корректно ли указаны адреса в списке разрешенных.
{info}На время теста в список разрешенных адресов можно добавить 0.0.0.0/0, то есть разрешить обращения со всех адресов, тем самым исключить возможные сетевые проблемы{info}



{include:CarbonBilling:Настройка услуг IPTV}