Перевод этой страницы:
ru

Инструменты пользователя

Инструменты сайта


ru:software:ssdpd:index

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 файлы с описанием сервисов.
XML файлы статичны, примеры приложены в дистрибутиве.

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

Мультикаст адреса

  • 239.255.255.250:1900
  • [FF02::C]:1900 - link local scope
  • [FF05::C]:1900 - site local scope

Установка

wget http://www.netlab.linkpc.net/download/software/ssdpd/ssdpd-1.03.tar.gz
tar -xf ssdpd-1.03.tar.gz
cd ./ssdpd-1.03
./configure
make install
Если configure выдал ошибки то выполнить: autoreconf -fvi

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

Настройка

Скачать

Лицензия: BSD
ssdpd-1.03.tar.gz
Документация по UPnP




Пожертвования можно также отправить через Bitcoin на следующий адрес:
19SJ1CE8bDqUc8xgd1eNE5bNkjBKG3Gu38
Пожертвовать через Bitcoin

Поддержка

ru/software/ssdpd/index.txt · Последние изменения: 2016/02/09 22:36 — root