Перейти к содержанию

Ministra: Эмуляция STB-интерфейса браузера

Краткое руководство по запуску Ministra в обычном браузере (без реальной телевизионной приставки MAG) и диагностике ошибки your device is not active.


Когда использовать

  • Вам нужно проверить загрузку index.html и вызовы portal.php с помощью пути к токену.
  • Вам нужно быстро отладить handshake/get_profile в браузере.
  • Вам нужно понять, почему устройство получает статус неактивного.

Поток сообщений на портале (рукопожатие → профиль)

Модуль (или эмулятор) управляет порталом в фиксированной последовательности; понимание этого позволяет контрольный список шагов 4-5 по бетону:

  1. рукопожатиеGET portal.php?type=stb&action=handshake&mac=…&prehash=… → сервер возвращает a знак. prehash - это вычисляемый клиентом хэш подтверждения связи (полученный модулем/эмулятором из его идентификатор + MAC); вы задаете значение нет в URL—адресе - клиент генерирует его по запросу.
  2. get_profile получить_профильGET portal.php?type=stb&action=get_profile с Authorization: Bearer <token> и идентификаторы устройств (mac, sn, stb_type, device_id…). Сервер проверяет подлинность устройство (строка MAC, lock_device поля, allowed_stb_types) и возвращает значение профиль, которое status указывает, авторизован ли этот ящик.
  3. Последующие вызовы (список каналов, EPG, create_link) повторно используют один и тот же токен-носитель.

На стороне сервера PortalHandler.php управляет квитированием/получением_профиля и portal.php запускает устройство проверки. (В некоторых сборках поле сначала нажимает /server/load.php для подтверждения балансировки нагрузки, прежде чем портал звонит — это нормально.)


Поддерживаемые URL-адреса

Обычно используются два варианта (в зависимости от конфигурации nginx).:

  • http://HOST/ACCESS_CODE/
  • http://HOST/c/

Для эмуляции браузера важно, чтобы открывался index.html, а шаги API переходили к portal.php внутри того же префикса.

/ACCESS_CODE/ - это путь к панели для каждой установки код доступа (код из URL-адреса панели).; /c/ - это короткий псевдоним, который nginx переписывает на тот же обработчик портала. Любой из них работает — используйте любой из них ваша настройка nginx/эмулятора ожидаема; они достигают одинакового значения portal.php.

Для эмулятора STB точкой входа также должен быть базовый префикс (или portal.php без параметров запроса), а не предварительно созданный запрос action=handshake.


Черный экран в Эмуляторе STB

Если эмулятор настроен с использованием URL-адреса, подобного:

http://HOST/ACCESS_CODE/portal.php?type=stb&action=handshake&mac=...&token=&prehash=...&JsHttpRequest=1-xml

это ошибка конфигурации. Такой URL-адрес возвращает JSON-файл для подтверждения связи и не является экраном портала, поэтому эмулятор обычно показывает черный экран.

Используйте один из этих вариантов:

  • http://HOST/ACCESS_CODE/
  • http://HOST/c/
  • http://HOST/ACCESS_CODE/portal.php (только если эмулятору требуется прямой путь portal.php, но без указания type/action/token/prehash в URL)

Параметры type, action, JsHttpRequest, token, и prehash должны генерироваться самим клиентом (эмулятором) на каждом шаге API.


Необходимые параметры ПОЛУЧЕНИЯ

Если включена проверка устройств, явно передавайте идентификаторы:

Параметр Цель
mac Устройство MAC для установления связи
sn Серийный номер устройства
stb_type Модель STB (например, MAG250)
device_id Первый идентификатор устройства
device_id2 Второй идентификатор устройства
hw_version Версия оборудования

Без этих значений сервер может отклонить get_profile как недопустимое устройство.


Полезные параметры ПОЛУЧЕНИЯ

Параметр Когда Это Необходимо
debug_key Обойти ограничение allowed_stb_types на стороне клиента
ver Если включена блокировка изображения/версии
image_version Если включено сравнение версий изображений
access_token Чтобы протестировать повторный вход в систему с помощью предварительно созданного токена
auth_via_query Режим отладки: дублирование токена в запросе, если заголовок авторизации удален прокси-сервером/nginx
debug Режим отладки клиента (включен по умолчанию в текущей сборке)

Пример URL-адреса

http://192.168.110.251/HgBjUjSI/?mac=00:1A:79:11:22:33&sn=062014N000001&stb_type=MAG250&device_id=ABC123&device_id2=DEF456&hw_version=1.7-BD-00&debug_key=1

При необходимости добавьте:

&ver=ImageDescription%3Aemu&image_version=218&auth_via_query=1

Для настройки профиля STB Emulator укажите только URL-адрес портала, например:

http://192.168.110.251/HgBjUjSI/

Что означает your device is not active

The profile status field reports the outcome: status = 0 — device authorized/active (normal); status = 1 — device failed authentication/verification, which surfaces as your device is not active. (Only 0/1 are used for this gate.)

Общие причины:

  1. MAC не найден в mag_devices.
  2. sn, device_id, device_id2, hw_version не совпадают при lock_device = 1.
  3. Модель STB не попадает в белый список allowed_stb_types.
  4. Токен подтверждения связи недействителен или отклонен при get_profile.

Краткий контрольный список

  1. Откройте портал с правильным префиксом (/ACCESS_CODE/ или /c/).
  2. В эмуляторе STB не используйте URL с action=handshake в качестве URL портала.
  3. Заполните все обязательные поля (mac, sn, stb_type, device_id, device_id2, hw_version).
  4. Подтверждающее подтверждение возвращает токен, а следующий get_profile отправляет предъявителю авторизации.
  5. Если авторизация не достигает PHP, временно включите auth_via_query=1.
  6. Если применяются ограничения по типу STB, добавьте debug_key=1.
  7. Если проблема не устранена, проверьте устройство на странице панель администратора: МАГНИТНЫЕ устройства (строка mag_devices, переключатель MAC + lock_device) и в списке Ministra настроек разрешенные типы STB-файлов (allowed_stb_types).

Рекомендации по внедрению

  • Client parameters and API calls: src/Ministra/xpcom.common.js
  • Инициализация параметра Debug/get: src/Ministra/index.html
  • Server-side device checks and profile: src/Ministra/portal.php
  • Handshake/get_profile orchestration: src/Ministra/PortalHandler.php

Связанные файлы

Файл Роль
src/Ministra/portal.php Ministra точка входа в портал
src/Ministra/index.html Эмулированная страница браузера STB
src/Ministra/PortalHandler.php Обработчик запросов портала