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)
- это программа для анонсирования в сеть 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.
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