This is an old revision of the document!
This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)
- 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.
UPnP клиенты (например AnDLNA под андройд, VLC под линукс и тп), слушают в сети мультикаст анонсы и периодически сами шлют запросы для получения анонсов.
Анонсы представляют из себя IPv4/IPv6 мультикаст UDP пакеты с HTTP форматом содержимого. Запросы обычно юникастовые, уже к конкретным анонсерам.
Анонс содержит в себе:
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 - пример конфиг файла.
Лицензия: BSD
ssdpd-1.01.tar.gz
Документация по UPnP