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
Last revisionBoth sides next revision
software:ssdpd:config [2014/10/22 21:22]
root
software:ssdpd:config [2022/02/04 18:43]
– ↷ Page moved from ru:software:ssdpd:config to software:ssdpd:config root
Line 3: Line 3:
 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 ==
Line 110: Line 140:
 URL должен указывать на файл с XML описанием UPnP устройства и его сервисов, это должен быть тот же самый файл что и [[ru:software:ssdpd:config#xmlDevDescr|xmlDevDescr]] только доступный все по протоколу HTTP. URL должен указывать на файл с XML описанием UPnP устройства и его сервисов, это должен быть тот же самый файл что и [[ru:software:ssdpd:config#xmlDevDescr|xmlDevDescr]] только доступный все по протоколу HTTP.
  
 +== DevDescrURL6 == 
 +Аналогично DevDescrURL4.\\ 
 +Адрес "[::]" автоматически заменяется на IPv6 адрес на данном интерфейсе.\\
  
 ---- ----
Line 130: Line 162:
 } }
 </code> </code>
 +Дополнительные заголовки часто требуются UPnP/DLNA клиентам для работы.
  
 Поддержка UPnP SUBSCRIBE/UNSUBSCRIBE (они нужны для VLC и WMP) Поддержка UPnP SUBSCRIBE/UNSUBSCRIBE (они нужны для VLC и WMP)
Line 146: Line 179:
  }  }
 }</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 скриптов:
Line 154: Line 187:
  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;
Line 163: Line 196:
  #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>
  
Line 169: Line 203:
  
 ====== Расширенная настройка и кастомизация под себя ====== ====== Расширенная настройка и кастомизация под себя ======
-В файле [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.txt · Last modified: 2022/02/04 18:43 by root