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:25]
– [Настройка nginx] root
software:ssdpd:config [2022/02/04 18:43] (current)
– ↷ Links adapted because of a move operation 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 ==
 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 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 170: 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.1414013118.txt.gz · Last modified: 2014/10/22 21:25 by root