Ministra: Эмуляция STB-интерфейса браузера¶
Краткое руководство по запуску Ministra в обычном браузере (без реальной телевизионной приставки MAG) и диагностике ошибки your device is not active.
Когда использовать¶
- Вам нужно проверить загрузку
index.htmlи вызовыportal.phpс помощью пути к токену. - Вам нужно быстро отладить handshake/get_profile в браузере.
- Вам нужно понять, почему устройство получает статус неактивного.
Поток сообщений на портале (рукопожатие → профиль)¶
Модуль (или эмулятор) управляет порталом в фиксированной последовательности; понимание этого позволяет контрольный список шагов 4-5 по бетону:
- рукопожатие —
GET portal.php?type=stb&action=handshake&mac=…&prehash=…→ сервер возвращает a знак.prehash- это вычисляемый клиентом хэш подтверждения связи (полученный модулем/эмулятором из его идентификатор + MAC); вы задаете значение нет в URL—адресе - клиент генерирует его по запросу. - 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указывает, авторизован ли этот ящик. - Последующие вызовы (список каналов, 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
При необходимости добавьте:
Для настройки профиля STB Emulator укажите только URL-адрес портала, например:
Что означает 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.)
Общие причины:
- MAC не найден в
mag_devices. sn,device_id,device_id2,hw_versionне совпадают приlock_device = 1.- Модель STB не попадает в белый список
allowed_stb_types. - Токен подтверждения связи недействителен или отклонен при
get_profile.
Краткий контрольный список¶
- Откройте портал с правильным префиксом (
/ACCESS_CODE/или/c/). - В эмуляторе STB не используйте URL с
action=handshakeв качестве URL портала. - Заполните все обязательные поля (
mac,sn,stb_type,device_id,device_id2,hw_version). - Подтверждающее подтверждение возвращает токен, а следующий
get_profileотправляет предъявителю авторизации. - Если авторизация не достигает PHP, временно включите
auth_via_query=1. - Если применяются ограничения по типу STB, добавьте
debug_key=1. - Если проблема не устранена, проверьте устройство на странице панель администратора: МАГНИТНЫЕ устройства (строка
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 |
Обработчик запросов портала |