Я таки начал разработку системы централизованного управления сервисами IPTV. Пока что реализован лишь небольшой функционал из задуманного, но даже с этим небольшим функционалом процесс управления сервисами IPTV стал гораздо приятнее.

Что сделано:

  1. Создана БД, в которой собраны все параметры вещаемых телеканалов: Название, ссылка на поток, параметры EPG и т.п.
  2. Написан скрипт, генерирующий плейлист для пользователей. Теперь не нужно править руками несколько плейлистов для разных категорий пользователей. Плейлист генерируется PHP-скриптом, на основании данных БД. Пользователь получает список только из тех каналов, которые доступны на его тарифе.
  3. Написан скрипт отвечающий за конфигурацию UDP-HTTP прокси. Скрипт реализован на BASH’e по аналогии со скриптом для генерации плейлиста. Данные выбираются из БД, генерируется конфигурационный файл, после чего он кладется взамен старого и происходит перезапуск прокси.
  4. Сделана репликация (с помощью MySQL-триггеров) списка телеканалов на сайте. Это решило старую проблему — CMS используемая на сайте не представляла удобного интерфейса для редактирования списка каналов, а лазить в MySQL напрямую — было лень. В итоге список каналов на сайте не обновлялся годами, что не очень хорошо. Теперь это в прошлом. Отныне список каналов на сайте полностью соответствует списку каналов в центральной БД.

Что делается:  

  1. Синхронизация данных между центральной базой данных и middleware. Мы используем Stalker от компании Infomir. В общих чертах — ничего сложного, но слегка занудно. BASH-скрипт выбирает данные из центральной БД, после чего заносит их в БД Stalker’а. Нужно разобраться со структурой базы и описать получение всех данных, которые нужны для правильного внесения телеканала. Узнать ID тарифа, правильно указать его для телеканала и т.д. Сложного ничего нет, надо просто сделать.
  2. Получение данных от DVB-IP стримеров. Статус сервера и основные его параметры — какие DVB-карты в нём есть, какие спутники они принимают, параметры сигнала (SNR, BER, UNC). Здесь происходит некоторое пересечение функционала с традиционными системами мониторинга вроде Zabbix, но чем дальше — тем сильнее я прихожу к выводу, что для мониторинга DVB-IP стримеров он избыточен. Лучше привязать всё к системе управления, а Zabbix (или аналогичную систему) натравить уже на данные в центральной БД.

Что в планах:

  1. Занести в БД всё, что касается конфигурации DVB-IP стримеров. 
  2. Написать скрипт генератор конфигов для Астры и DVBlast.
  3. Сделать интеграцию с системой CAS от A.R.E.S.
  4. Передача команд на DVB-IP стримеры. Хотя бы базовые команды вроде обновления конфигурации, перезапуска вещания.
  5. Сделать мониторинг исходящих потоков с DVB-IP стримера на предмет наличия\отсутствия потока и присутствия ошибок. Пока не ясно, как это реализовать лучше. То ли на самом DVB-IP стримере, то ли на центральном. Скорее всего на самом DVB-IP стримере — в этом случае получается определенная независимость от центрального сервера. Каждая нода (DVB-IP стример) будет работать сама по себе, контролировать все процессы внутри себя самостоятельно, лишь сообщая о том, что всё впорядке центральному серверу и проверяя наличие новых заданий для себя.
  6. Начать ваять веб-интерфейс для всего этого счастья. 

И это далеко не всё, а только то, что нужно в первую очередь.

Система централизованного управления сервисами IPTV

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *