Site Tools


software:ssdpd:config

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
software:ssdpd:config [2014/10/22 21:19]
root
software:ssdpd:config [2022/02/04 18:43] (current)
– ↷ Links adapted because of a move operation root
Line 1: Line 1:
-В ssdpd.conf указываем полный путь до /upnp/descr/root.xml, указываем интерфейсы для анонса.\\+В ssdpd.conf - файл конфигурации, подробнее ниже.\\
  
 ssdpd и веб сервер могут быть запущены на разных серверах, можно запускать ssdpd на нескольких серверах (резервирование), важно чтобы root.xml был везде одинаковый.\\ ssdpd и веб сервер могут быть запущены на разных серверах, можно запускать ssdpd на нескольких серверах (резервирование), важно чтобы root.xml был везде одинаковый.\\
  
 +SSDPd и nginx должны отдавать клиентам одинаковый XML файл с описанием UPnP устройства и его сервисов, далее везде root.xml\\
 /upnp/ - положить/сделать симлинк в wwwroot веб сервера.\\ /upnp/ - положить/сделать симлинк в wwwroot веб сервера.\\
 /upnp/control/ContentDirectory.php - отредактировать в начале файла переменные с путями и разрешить выполнение.\\ /upnp/control/ContentDirectory.php - отредактировать в начале файла переменные с путями и разрешить выполнение.\\
 Нужен PHP с поддержкой SOAP.\\ Нужен PHP с поддержкой SOAP.\\
  
 +Если потребуется изменить пути то нужно редактировать следующие файлы:
 +  * ssdpd.conf
 +  * nginx.conf
 +  * /upnp/descr/root.xml
 +  * /upnp/control/ContentDirectory.php
  
-====== ssdpd.conf ====== 
  
 +====== Настройка сети ======
 +
 +===== IPv4 =====
 +  * разрешить IGMP с опциями на вход и на выход с адресом назначения: 224.0.0.0/4
 +  * разрешить UDP на вход с адресом назначения: 224.0.0.0/4, на выход с любым адресом
 +
 +<code>pass out quick inet proto udp to 224.0.0.0/4 no state allow-opts
 +pass out quick inet proto igmp to 224.0.0.0/4 no state allow-opts
 +pass in quick inet proto udp to 224.0.0.0/4 no state # Allow receive multicast
 +pass in quick inet proto igmp to 224.0.0.0/4 no state allow-opts
 +</code>
 +
 +===== IPv6 =====
 +  * разрешить icmp6 с опциями на вход и на выход
 +  * разрешить UDP на вход с адресом назначения: ff00::/8, на выход с любым адресом
 +
 +<code>pass out quick inet6 proto udp to ff00::/8 no state allow-opts # Allow send multicast
 +pass out quick inet6 proto icmp6 no state allow-opts # mld (igmp6) also here
 +pass in quick inet6 proto udp to ff00::/8 no state # Allow receive multicast
 +pass in quick inet6 proto icmp6 no state allow-opts # mld (igmp6) also here
 +</code>
 +
 +
 +
 +====== ssdpd.conf ======
  
 ===== log ===== ===== log =====
Line 103: Line 133:
  
 == ifName == == ifName ==
-Имя сетевого интерфейса для отсылки анонсов.\\+Имя сетевого интерфейса для отсылки анонсов, так как его выдает ifconfig, например: eth0, re0, em1.\\
  
 == DevDescrURL4 == == DevDescrURL4 ==
 URL для IPv4 анонсов.\\ URL для IPv4 анонсов.\\
 Адрес "0.0.0.0" автоматически заменяется на IPv4 адрес на данном интерфейсе.\\ Адрес "0.0.0.0" автоматически заменяется на IPv4 адрес на данном интерфейсе.\\
-URL должен указывать на файл с XML описанием UPnP устройства и его сервисов, это должен быть тот же самый файл что и [[ru:software:ssdpd:config#xmlDevDescr|xmlDevDescr]] только доступный все по протоколу HTTP. +URL должен указывать на файл с XML описанием UPnP устройства и его сервисов, это должен быть тот же самый файл что и [[software:ssdpd:config#xmlDevDescr|xmlDevDescr]] только доступный все по протоколу HTTP.
  
 +== DevDescrURL6 ==
 +Аналогично DevDescrURL4.\\
 +Адрес "[::]" автоматически заменяется на IPv6 адрес на данном интерфейсе.\\
  
 ---- ----
Line 122: Line 154:
  
 Расшариваем папку с контентом: Расшариваем папку с контентом:
-[code] +<code> 
- # allow files listing: DataStore +# allow files listing: DataStore 
- location ^~ /DataStore/ { +location ^~ /DataStore/ { 
- root /usr/; + root /usr/; 
- + add_header TransferMode.DLNA.ORG 'Streaming'; 
- add_header TransferMode.DLNA.ORG 'Streaming'; + add_header ContentFeatures.DLNA.ORG 'DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000'; 
- add_header ContentFeatures.DLNA.ORG 'DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000'; +
- +</code
-[/code]+Дополнительные заголовки часто требуются UPnP/DLNA клиентам для работы.
  
 Поддержка UPnP SUBSCRIBE/UNSUBSCRIBE (они нужны для VLC и WMP) Поддержка UPnP SUBSCRIBE/UNSUBSCRIBE (они нужны для VLC и WMP)
-[code] +<code> 
- # UPnP SUBSCRIBE/UNSUBSCRIBE handle +# UPnP SUBSCRIBE/UNSUBSCRIBE handle 
- location ^~ /upnp/subscribe/+location ^~ /upnp/subscribe/
- if ($request_method = SUBSCRIBE) { + if ($request_method = SUBSCRIBE) { 
- add_header Pragma "no-cache"; + add_header Pragma "no-cache"; 
- add_header SID "uuid:7CF21CB0-2266-47BE-A608-3CC1F5210BB4"; + add_header SID "uuid:7CF21CB0-2266-47BE-A608-3CC1F5210BB4"; 
- add_header Timeout "Second-1800"; + add_header Timeout "Second-1800"; 
- return 200; + return 200; 
- +
- if ($request_method = UNSUBSCRIBE) { + if ($request_method = UNSUBSCRIBE) { 
- add_header Pragma "no-cache"; + add_header Pragma "no-cache"; 
- return 200; + return 200; 
- +
- } +}</code> 
-[/code] +Если потребуется обрабатывать эти запросы в скриптах, то можно превратить их в POST с дополнительным заголовком и передать в скрипт, пример описан здесь: http://serverfault.com/questions/347663/nginx-convert-head-to-get-requests\\
-Далее можно будет превратить их в POST с доп заголовком и передать в скрипт, пример описан здесь: http://serverfault.com/questions/347663/nginx-convert-head-to-get-requests+
  
 Разрешаем PHP для UPnP скриптов: Разрешаем PHP для UPnP скриптов:
-[code] +<code> 
- # php for: UPnP +# php for: UPnP 
- location ^~ /upnp/control/+location ^~ /upnp/control/
- root /usr/local/www/;+ root /usr/local/www/;
  
- include fastcgi_params+ try_files $fastcgi_script_name = 404
- #fastcgi_pass 127.0.0.1:54475; + #fastcgi_pass 127.0.0.1:54475; 
- fastcgi_pass unix:/var/run/spawn-fcgi.sock; + fastcgi_pass unix:/var/run/spawn-fcgi.sock; 
- fastcgi_connect_timeout 30; + fastcgi_connect_timeout 30; 
- fastcgi_read_timeout 600; + fastcgi_read_timeout 600; 
- fastcgi_send_timeout 600; + fastcgi_send_timeout 600; 
- fastcgi_ignore_client_abort off; + fastcgi_ignore_client_abort off; 
- #fastcgi_cache_valid any 10s; + #fastcgi_cache_valid any 10s; 
- fastcgi_intercept_errors off; + fastcgi_intercept_errors off; 
- fastcgi_param SCRIPT_FILENAME  /usr/local/www$fastcgi_script_name; + include fastcgi_params; 
- } + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
-[/code]+}</code>
  
  
  
 ====== Расширенная настройка и кастомизация под себя ====== ====== Расширенная настройка и кастомизация под себя ======
-В файле [b]root.xml[/b] +В файле root.xml\\ 
-[b]root/device:[/b] +**root/device**\\ 
-friendlyName - отображаемое имя UPnP устройства; +friendlyName - отображаемое имя UPnP устройства;\\ 
-UDN - UUID идетификатор устройства, его нужно изменять только если хотим больше одного устройства (или кто то уже его занял), длинна обязательно 36 символов; +UDN - UUID идетификатор устройства, его нужно изменять только если хотим больше одного устройства (или кто то уже его занял), длинна обязательно 36 символов;\\ 
-presentationURL - можно указать там страничку с описанием или админкой +presentationURL - можно указать там страничку с описанием или админкой.\\
- +
-[b]root/device/iconList/icon:[/b] +
-url - URL на png иконку 48х48;+
  
-[b]root/device/serviceList/service:[/b] +**root/device/iconList/icon**\\ 
-SCPDURL - URL до хмл файла с описанием; +url - URL на png иконку 48х48;\\
-controlURL - URL куда будут прилетать HTTP POST запросы к сервисам; +
-eventSubURL - URL куда будут идти HTTP SUBSCRIBE/UNSUBSCRIBE, можно оставить пустым. +
-[b]root.xml описано ТРИ сервиса, нужно править для всех трёх![/b]+
  
 +**root/device/serviceList/service**\\
 +SCPDURL - URL до хмл файла с описанием;\\
 +controlURL - URL куда будут прилетать HTTP POST запросы к сервисам;\\
 +eventSubURL - URL куда будут идти HTTP SUBSCRIBE/UNSUBSCRIBE, можно оставить пустым.\\
  
 +**root.xml описано ТРИ сервиса, нужно править для всех трёх!**\\
  
software/ssdpd/config.1414012742.txt.gz · Last modified: 2014/10/22 21:19 by root