Site Tools


software:ssdpd:index

This is an old revision of the document!


FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

SSDP announcer for UPnP/DLNA

- это программа для анонсирования в сеть UPnP/DLNA устройств.
Анонсы передаются с помощью IPv4 и IPv6 на специальные multicast адреса.

SSDP announcer позволяет проанонсировать в своей локальной сети любой UPnP/DLNA сервер, расположенный в интернете, другом сегменте сети или написанный с помощью скриптов.

UPnP - базируется на SSDP анонсах для автоматического обнаружения доступных устройств в локальной сети и HTTP для взаимодействия с найденными устройствами.
В HTTP данные передаются по средствам XML-SOAP.

Вместе с SSDP announcer находится UPnP/DLNA сервер на nginx и PHP.
Nginx берёт на себя работу с http, php скрипт обрабатывает XML-SOAP запросы от клиентских устройств.
Скрипт обеспечивает браузинг по файловой системе и доступ к мультимедиа которая найдётся.

Благодаря SSDP announcer можно написать свой собственный UPnP/DLNA сервер на любом скриптовом языке, с которым умеет работать nginx.

Поддерживаемые OS

  • FreeBSD
  • Linux

Принцип работы

UPnP клиенты (например AnDLNA под андройд, VLC под линукс и тп), слушают в сети мультикаст анонсы и периодически сами шлют запросы для получения анонсов.
Анонсы представляют из себя IPv4/IPv6 мультикаст UDP пакеты с HTTP форматом содержимого. Запросы обычно юникастовые, уже к конкретным анонсерам.
Анонс содержит в себе:

  • UUID (уникальный идентификатор) устройства;
  • тип анонсируемого устройства;
  • сервисы, которые предоставляет устройство;
  • URL для получения по HTTP-GET XML файла с подробным описанием устройства и ссылками на XML файлы-описания его сервисов.

SSDPd требует указания на каких интерфейсах работать, какие URL анонсировать и сам XML файл с описанием устройства.
На этом работа SSDPd заканчивается. Всё остальное общение клиента происходит с сервером по HTTP.

Клиент, после получения анонсов, если его заинтересовал тип UPnP устройства, по HTTP-GET забирает XML файл с указанного в анонсе URL, разбирает его, далее так же забирает XML файлы с описанием сервисов.
XLM файлы статичные, примеры приложены в дистрибутиве.

После разбора XML файлов клиент обращается к сервисам на URL указанных в XML файлах по HTTP, используя методы: POST, SUBSCRIBE, UNSUBSCRIBE.
В простом случае (для минимального функционала) обработка HTTP request методов SUBSCRIBE, UNSUBSCRIBE сводится к выдаче 200 + пара доп заголовков, с этим без труда справляется nginx.

Установка

wget http://www.netlab.linkpc.net/download/software/ssdpd/ssdpd-1.01.tar.gz
tar -xf ssdpd-1.01.tar.gz
cd ./ssdpd-1.01
./configure
make install

В директории: ssdpd-1.01/rc.d - скрипт rc.d для FreeBSD
ssdpd-1.01/upnp/ - положить/сделать симлинк в wwwroot веб сервера.
ssdpd-1.01/upnp/descr - содержит xml и wsdl файлы для описания UPnP устройства MediaServer версии 3 и нескольких сервисов для него.
ssdpd-1.01/ssdpd.conf - пример конфиг файла.

Настройка

Скачать

Поддержка

software/ssdpd/index.1414022288.txt.gz · Last modified: 2014/10/22 23:58 by root