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

- a program for announcing the network UPnP/DLNA devices.
Announcements are sent using IPv4 and IPv6 on the special multicast address.

SSDP announcer allows you announce on your LAN any UPnP / DLNA server located on the Internet, another network segment.

UPnP - based on the SSDP announcements for automatic detection of available devices on the local network, and HTTP to communicate with devices it has found.
In HTTP, the data is transmitted using XML-SOAP.

Archive with SSDP announcer contains implementation UPnP / DLNA server on nginx and PHP.
Nginx takes on work with http, php script processes the XML-SOAP requests from client devices.
The script allows browsing through the file system and access to the media which is to be found.

Thanks SSDP announcer can write your own UPnP / DLNA server on any scripting language, which is able to work nginx.

Supported 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 - пример конфиг файла.

Настройка

Скачать

Support

software/ssdpd/index.1414023062.txt.gz · Last modified: 2014/10/23 00:11 by root