Дополнительные опции позволяют изменить внешний вид и поведение приложения, и задаются в файле конфигурации /etc/microimpuls/portal/client.js
.
Обязательные опции
Client ID
Название опции: client_id
, тип данных: int.
В этой опции указывается ID оператора в Smarty (Client ID) и используется в запросах к API.
Пример:
var CLIENT_SETTINGS = { // … 'client_id': 1 };
API Key
Название опции: api_key
, тип данных: string.
В этой опции указывается API Key (именно TVMW API Key, не путать с Billing API Key) оператора в Smarty для данного Client ID. Используется в запросах к API.
Пример:
var CLIENT_SETTINGS = { // … 'api_key': 'dmt6rH0qbDeGacPnUDDkVb8jafcqewKl' };
API URL
Название опции: api_url
, тип данных: string.
Адрес сервера Smarty. Для обхода политики CORS (если в настройках веб-сервера Smarty не указаны разрешающие заголовки) адрес сервера может быть задан относительно домена портала, по которому он был загружен, например, /api
, если в настройках веб-сервера определен соответствующий location, перенаправляющий запросы к Smarty.
Пример:
var CLIENT_SETTINGS = { // … 'api_url': '/api' };
Используемый интерфейс (шаблон) портала по умолчанию
Название опции: template_name
, тип данных: string.
Название шаблона, используемого по умолчанию. Список доступных шаблонов можно посмотреть в папке портала templates. Данное значение может быть переопределено в настройках устройства в Smarty, а также в настройках аккаунта.
Пример:
var CLIENT_SETTINGS = { // … 'template_name': 'futuristic' };
Размеры экрана интерфейсов
Название опции: template_size
, тип данных: array.
Список доступных разрешений шаблонов. Необходимо указывать каждое отдельно сверстанное разрешение в том случае, если для шаблона есть соотвутствующий стиль в указанном разрешении. Например, шаблон classic имеет отдельную верстку для разрешений 1280х720 и 720х576. Для других шаблонов используется автоматический скейлинг, поэтому достаточно указать только стандартное разрешение 1280х720. Для некоторых устройств Samsung Tizen TV, LG Smart TV и Android TV указание этой опции является обязательным, иначе интерфейс может отображаться с неправильным масштабом.
Пример:
var CLIENT_SETTINGS = { // … 'template_size': { 'default': { 'default': [1280, 720] }, 'futuristic': { 'default': [1280, 720] }, 'impuls': { 'default': [1280, 720] }, 'infinitly': { 'default': [1280, 720] }, 'classic': { 'default': [1280, 720], '720x576': [720, 576] }, 'iridium': { 'default': [1280, 720] }, 'focus': { 'default': [1280, 720] } };
Список разрешенных интерфейсов
Название опции: available_templates
, тип данных: array.
Устанавливает список доступных шаблонов для переопределения с сервера. Шаблон, указанный в обязательном параметре template_name
, в список доступных шаблонов добавлять не обязательно. При попытке сервера определить для устройства и/или аккаунта шаблон, отсутствующий в данном списке, приложение это проигнорирует. По умолчанию [].
Пример:
var CLIENT_SETTINGS = { // … 'available_templates': ['impuls', 'futuristic', 'infinitly'] };
Имя файла настроек
Название опции: settings_filename
, тип данных: string.
Имя файла для сохранения локальных настроек на устройстве. Необходимо указывать уникальное имя (например, совпадающее с именем провайдера в транслите), т.к. в этом файле сохраняются в том числе логин и пароль аккаунта. Если для уже работающего сервиса в процессе эксплуатации (или переезда на другой сервер) поменять это имя, то при следующем включении устройства у абонентов произойдет логаут. Значение по умолчанию example.dat.
Пример:
var CLIENT_SETTINGS = { // … 'settings_filename': 'mytelecom.dat' };
Дополнительные опции
Адрес сайта оператора
Название опции: site_url
, тип данных: string.
Используется в служебных сообщениях портала для абонента, связанных с информированием о технических неполадках и вопросами получения дополнительной информации, а также в некоторых шаблонах отображается в блоке контактной информации. Значение по умолчанию www.example.com.
Пример:
var CLIENT_SETTINGS = { // … 'site_url': 'http://mytelecom.com' };
Периодичность запросов сохранения телесмотрения
Название опции: push_stat_interval
, тип данных: int.
Периодичность выполнения запросов к серверу Smarty для сохранения данных о телесмотрении, задается в миллисекундах. Не стоит использовать слишком маленькое значение, однако чем меньше это значение, тем точнее будут данные о сессиях просмотра и рейтинга контента. Значение по умолчанию 300000 (5 минут).
Пример:
var CLIENT_SETTINGS = { // … 'push_stat_interval': 300000 };
Периодичность запросов сохранения позиции просмотра
Название опции: content_position_set_interval
, тип данных: int.
Периодичность выполнения запросов к серверу Smarty для сохранения текущей позиции просмотра контента PVR и VOD для работы функции возвращения к последней сохраненной позиции просмотра. Задается в миллисекундах. Значение по умолчанию 30000 (30 секунд).
Пример:
var CLIENT_SETTINGS = { // … 'content_position_set_interval': 30000 };
Периодичность запросов статуса аккаунта
Название опции: account_status_interval
, тип данных: int.
Позволяет задать кастомное значение интервалов запроса AccountStatus в портале. При указании малого значения (<60000) проверка будет осуществляться с интервалом 1-2 минуты. Задается в миллисекундах. Значение по умолчанию 600000 (10 минут).
Пример:
var CLIENT_SETTINGS = { // … 'account_status_interval': 60000 };
Корректировочный часовой сдвиг по умолчанию
Название опции: default_timezone
, тип данных: int.
Отображаемое время в портале вычисляется по следующему алгоритму:
- С сервера Smarty портал принимает время в UTC+0. Это время используется для всех расчетов и для EPG.
- Определяется локальная часовая зона согласно настройкам времени на устройстве.
- Определяется корректировочный часовой сдвиг, указанный пользователем в настройках приложения. По умолчанию равен
default_timezone
. - Ко времени с сервера добавляется локальная часовая зона и корректировочный часовой сдвиг, таким образом рассчитывается локальное отображаемое время.
В качестве значения этой опции необходимо указать значение в диапазоне от 0 (что соответствует сдвигу -12) до 24 (+12). Это значение будет использовано по умолчанию для настройки «Часовой сдвиг», задаваемой пользователям в настройках приложения. По умолчанию 12 (соответствует +0). При корректной работе времени на устройстве и правильных настройках NTP корректировочный сдвиг использовать не нужно, однако с помощью него пользователь может скорректировать время в приложении самостоятельно.
Пример:
var CLIENT_SETTINGS = { // … 'default_timezone': 12 };
Отключение часового пояса устройства
Название опции: ignore_device_timezone
, тип данных: bool.
Опция имеет смысл и работает только при заданном значении default_timezone
. Если включить обе эти опции, то для отображения времени на устройстве часовой пояс считается как GMT+0 + default_timezone
. На само время опции не влияют, так как оно приходит с сервера. Значение опции по умолчанию — false.
Пример:
var CLIENT_SETTINGS = { // … 'ignore_device_timezone': true };
Размер буфера по умолчанию
Название опции: default_buffersize
, тип данных: int.
Значение настройки «Размер буфера» по умолчанию, задаваемой пользователем в настройках приложения. Возможные значения:
- 0 — автоматически (по умолчанию).
- 1 — нет буферизации.
- 2 — малый размер буфера.
- 3 — средний размер буфера.
- 4 — большой размер буфера.
- 5 — очень большой размер буфера.
Пример:
var CLIENT_SETTINGS = { // … 'default_buffersize': 0 };
Язык интерфейса по умолчанию
Название опции: default_lang
, тип данных: int.
Значение настройки «Язык интерфейса» по умолчанию, задаваемой пользователем в настройках приложения. Необходимо указать индекс (начиная с 0) языка из списка языков, которые поддерживаются конкретным шаблоном. По умолчанию 0 — первый язык в списке.
Пример:
var CLIENT_SETTINGS = { // … 'default_lang': 0 };
Отключение системного языка устройства
Название опции: ignore_system_lang
, тип данных: bool.
Опция позволяет отключить влияние системного языка на язык приложения по умолчанию. На текущий момент системный язык устанавливается для приложения только на телевизорах и STB под OS Android. Значение опции по умолчанию: false.
Пример:
var CLIENT_SETTINGS = { // … 'ignore_system_lang': true, };
Системная консоль отладки
Название опции: system_debug
, тип данных: bool.
Включает показ системной консоли портала, в которой отображается дополнительная служебная информация для отладки.
Возможные значения:
- true — консоль отображается.
- false — консоль не отображается (по умолчанию).
Пример:
var CLIENT_SETTINGS = { // … 'system_debug': true };
Показ служебных сообщений об ошибках
Название опции: user_debug
, тип данных: bool.
Включает показ сообщений абоненту о различных служебных ошибках, возникших в ходе работы портала (в том числе, например, ошибки связи с сервером Middleware). В настоящий момент поддерживается только в шаблоных futuristic и infinitly.
Возможные значения:
- true — ошибки отображаются.
- false — ошибки не отображаются (по умолчанию).
Пример:
var CLIENT_SETTINGS = { // … 'user_debug': false };
Режим обработки кнопки выключения приставки
Название опции: handle_key_power_by_device
, тип данных: bool.
Флаг для выбора обработки кнопки выключения приставки. Поддерживается только на приставках WRT.
Возможные значения:
- true — обработка на уровне приставки.
- false — обработка на уровне портала (по умолчанию).
var CLIENT_SETTINGS = { // … 'handle_key_power_by_device': false };
Идентификация устройства по модели
Название опции: send_device_model_in_request_parameters
, тип данных: bool.
Возможные значения:
- true — на сервер Middleware в качестве параметра device будет отправляться тип устройства и модель, соединенные нижним подчеркиванием, например: android_stb_redbox (по умолчанию).
- false — будет отправляться только тип устройства, например android_stb.
При значении true если серверу не удалось идентифицировать устройство, то происходит повторная попытка в режиме false.
Пример:
var CLIENT_SETTINGS = { // … 'send_device_model_in_request_parameters': true };
Нумерация каналов, начиная с 0
Название опции: begin_channel_numbers_from_zero
, тип данных: bool.
- true — номера каналов начинаются с 0.
- false — номера каналов начинаются с 1 (по умолчанию).
Пример:
var CLIENT_SETTINGS = { // … 'begin_channel_numbers_from_zero': false };
Solution для плеера MAG по умолчанию
Название опции: default_player_solution_for_mag
, тип данных: string.
Для приставки MAG устанавливается тип solution, который будет использоваться в случае, если формат потока не удалось определить. Значением должен быть тип формата контента (см. список http://soft.infomir.com/stbapi/JS/v343/tutorial-media-formats.html). По умолчанию auto.
Пример:
var CLIENT_SETTINGS = { // … 'default_player_solution_for_mag': 'ffrt2' };
Solution для плеера MAG для воспроизведения HLS по умолчанию
Название опции: hls_player_solution_for_mag
, тип данных: string.
Для приставки MAG устанавливается тип solution, который будет использоваться в случае, если формат потока — HLS (ссылка имеет разширение .m3u8). Значением должен быть тип формата контента (см. список http://soft.infomir.com/stbapi/JS/v343/tutorial-media-formats.html). По умолчанию ffrt2.
Пример:
var CLIENT_SETTINGS = { // … 'hls_player_solution_for_mag': 'ffrt2' };
Плеер для Android STB/TV по умолчанию
Название опции: default_player_solution
, тип данных: string.
Для приставок и телевизоров под OS Android/Android TV устанавливается тип плеера, который будет использоваться по умолчанию. При выставлении этой опции возможность выбора плеера из экрана «Настройки» будет недоступна. По умолчанию пустая строка.
Возможные значения:
- native — системный стандартный плеер устройства.
- exoplayer — Exoplayer.
- vlc_default — VLC-плеер.
- vlc_mediacodec — VLC-плеер с выставленным параметром
mediacodec
.
Пример:
var CLIENT_SETTINGS = { // … 'default_player_solution': 'exoplayer' };
Выбор плеера на устройствах под OS Android/Android TV доступен только в сборках версии 2.0 и выше.
Таймаут ожидания ответа от сервера Middleware
Название опции: requests_timeout_time
, тип данных: int.
Устанавливает для HTTP-запросов время ожидания ответа от сервера, после которого запрос будет прерван со стороны клиента. Задается в миллисекундах. По умолчанию 10000. Значение может быть увеличено при нестабильной работе сети связи между пользователем и сервером. Например, если какие-то данные в интерфейсе не загружаются в течение 10 секунд, то стоит попробовать увеличить этот параметр (и, конечно, постараться сначала устранить сетевые проблемы).
Пример:
var CLIENT_SETTINGS = { // … 'requests_timeout_time': 10000 };
Метод генерации UID на Android STB и Android TV
Название опции: android_uid_generation_method
, тип данных string.
Поле, позволяющее переопределить метод генерации UID для устройств под OS Android.
Возможные значения:
- default — используется стандарный метод генерации (по умолчанию).
- mac — в качестве UID всегда возвращается MAC-адрес.
- serial — в качестве UID всегда возвращается серийный номер.
- mac_serial — в качестве UID всегда возвращается комбинация MAC-адреса и серийного номера, разделенных нижним подчеркиванием.
Пример:
var CLIENT_SETTINGS = { // … 'android_uid_generation_method': 'default' };
Метод генерации UID на остальных устройствах (Tizen TV)
Название опции: uid_generation_method
, тип данных string.
Поле, позволяющее переопределить метод генерации UID для устройств (поддерживается пока только для Tizen TV).
Возможные значения:
- default — используется стандарный метод генерации (по умолчанию).
- mac — в качестве UID всегда возвращается MAC-адрес.
Пример:
var CLIENT_SETTINGS = { // … 'uid_generation_method': 'default' };
Замена https на http в URL потоков (Samsung)
Название опции: samsung_smart_tv_https_stream_url_replace
, тип данных: bool.
Рекомендуется для устройств Samsung Smart TV для воспроизведения потоков внешних кинотеатров.
Возможные значения:
- true — перед воспроизведением контента будет происходить замена https на http в URL потока.
- false — замена https на http в URL не происходит (по умолчанию).
Пример:
var CLIENT_SETTINGS = { // … 'samsung_smart_tv_https_stream_url_replace': false };
Длительность промо-периода после регистрации
Название опции: signup_auto_activation_period
, тип данных: int.
Позволяет установить количество дней, на которое будет выдан бесплатный доступ для первичного использования аккаунта после регистрации. По умолчанию 0.
Пример:
var CLIENT_SETTINGS = { // … 'signup_auto_activation_period': 7 };
Авторизация и регистрация напрямую через сторонний биллинг
Название опции: use_external_api_for_registration_and_login
, тип данных bool.
При установке данного поля в состояние true регистрация и авторизация происходит напрямую через внешний биллинг, это требуется для некоторых видов тесной интеграции. Не рекомендуем выставлять это поле самостоятельно без явной рекомендации от наших разработчиков. По умолчанию false.
Пример:
var CLIENT_SETTINGS = { // … 'use_external_api_for_registration_and_login': true };
Метод подтверждения номера телефона при регистрации
Название опции: phone_confirmation_type
, тип данных string.
Возможные значения:
- пустая строка — метод подтверждения не задан, подтверждение номера отключено (значение по умолчанию).
- sms — номер телефона подтверждается по SMS (необходима настройка SMS-шлюза).
- call — номер телефона подтверждается по звонку (необходима настройка соответствующего шлюза для звонков).
Пример:
var CLIENT_SETTINGS = {
// …
'phone_confirmation_type
': 'sms'
};
URL-адрес сервера с изображениями и статическими ресурсам
Название опции: media_base_url
, тип: string.
Полный URL, который используется в качестве базового пути к изображениям и статическим ресурсам, например для постеров программ из EPG. По умолчанию — пустая строка (в этом случае путь совпадает с адресом Smarty).
Пример:
var CLIENT_SETTINGS = { // … 'media_base_url': "" };
Интервал обновления программы передач в случае отсутствия ее на сервере
Название опции: channel_programs_update_interval_for_channels_with_empty_epg
, тип: string.
Приложение запрашивает актуальную программу передач для списка каналов по мере того, как заканчиваются текущие передачи на каналах. Но бывают ситуации, когда на сервере нет загруженной программы передач, и в этом случае приложение обращается за ней повторно гораздо реже (по умолчанию — каждые 90 минут). Данная опция позволяет сократить, либо увеличить период запроса программы передач для данного случая.
Пример:
var CLIENT_SETTINGS = { // … 'channel_programs_update_interval_for_channels_with_empty_epg': 5400, };
Флаг, включающий специальное поведение для Flussonic
Название опции: streamer_type
, тип: string.
В релизе 22.04 коллеги из Flussonic внесли некоторые изменения в формирование HLS плейлистов, в связи с чем некоторые плееры при работе с архивными ссылками формата https://pvr.example.com/$prefix/archive-$flpbt-$flpdur.m3u8
начали вести себя не совсем корректно при перемотке из Live — проигрывание стало начинаться с текущей Live-позиции, а не с той, на которую была осуществлена перемотка.
Для корректной обработки нового поведения данных плейлистов мы добавили эту новую опцию 'streamer_type': 'flussonic'
, которая при перемотке назад из Live принудительно осуществляет перемотку к первому сегменту потока.
Пример:
var CLIENT_SETTINGS = { // … 'streamer_type': "flussonic" };
Переопределение номеров каналов значениями LCN
Название опции: override_channel_list_number_by_lcn
, тип данных: bool.
Возможные значения:
- true — в интерфейсе вместо номеров каналов отображаются их значения LCN.
- false — в интерфейсе отображаются номера каналов (по умолчанию).
Пример:
var CLIENT_SETTINGS = { // … 'override_channel_list_number_by_lcn': false };
Запрос ввода ПИН-кода при попытке запуска фильма/сериала с возрастным рейтингом 18+
Название опции: set_parent_control_for_adult_rated_videos
, тип данных: bool.
Возможные значения:
- true — при попытке запуска фильма/сериала с возрастным рейтингом 18+ будет запрашиваться ПИН-код.
- false — функция отключена (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'set_parent_control_for_adult_rated_videos
': true
};
Отключение отправки логов об ошибках воспроизведения на сервер
Название опции send_portal_logs_to_server
, тип данных: bool.
Возможные значения:
- true — на сервер, в файл
/var/log/microimpuls/smarty/smarty_portal.log
будут отправляться ошибки воспроизведения потоков на устройствахandroid_stb
. - false — функция отключена (по умолчанию).
Пример:
var CLIENT_SETTINGS = {
// …
'send_portal_logs_to_server
': true
};
Максимальное время блокировки запроса после получения 500-й ошибки
Название опции max_retry_delay_for_internal_server_error
, тип данных: int.
Если приложение получило в ответ от сервера ошибку 500, то оно перестанет на какое-то время обращаться к нему по этому запросу (минимизация нагрузки на сервер в аварийных ситуациях). Данная опция устанавливает максимальное время ожидания приложения до следующей попытки обращения к серверу. Значение по умолчанию: 3600, задаётся в секундах.
Пример:
var CLIENT_SETTINGS = { // … 'max_retry_delay_for_internal_server_error': 3600 };
Список интервалов для повторного запроса после получения 500-й ошибки
Название опции retry_delay_sequence_for_internal_server_error
, тип данных: list.
Если приложение получило в ответ от сервера ошибку 500, то оно перестанет на какое-то время обращаться к нему по этому запросу (минимизация нагрузки на сервер в аварийных ситуациях). Данная опция устанавливает перечень интервалов в секундах, спустя которые приложение попробует заново обратиться к методу с ошибкой 500.
Пример:
var CLIENT_SETTINGS = { // … 'retry_delay_sequence_for_internal_server_error': [60, 120, 180, 300, 600, 900, 1800, 3600] };