Detecção de dispositivo upnp

2

Estou seguindo este e outros posts semelhantes, a fim de detectar meu alto-falante compatível com dlna com protocolos upnp. Meu telefone (android) detecta e controla o alto-falante; mas gostaria de fazê-lo no meu computador e conectá-lo como DLNA.

Primeiro terminal:

$ cat test.txt
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: ssdp:discover
MX: 10
ST: ssdp:all

Segundo terminal:

$ nc -buvv 239.255.255.250 1900 < test.txt
Connection to 239.255.255.250 1900 port [udp/ssdp] succeeded!

Terceiro terminal:

$ sudo tcpdump -vv -A -s 0 -i wlan0 udp port 1900 and host 239.255.255.250
15:56:10.949878 IP (tos 0x0, ttl 1, id 41655, offset 0, flags [DF], proto UDP (17), length 29)
    alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1
E.....@...$....~.......l.   ..X
15:56:10.950707 IP (tos 0x0, ttl 1, id 41656, offset 0, flags [DF], proto UDP (17), length 29)
    alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1
E.....@...$....~.......l.   ..X
15:56:11.951350 IP (tos 0x0, ttl 1, id 41732, offset 0, flags [DF], proto UDP (17), length 29)
    alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1
E.....@...$....~.......l.   ..X
15:56:12.951929 IP (tos 0x0, ttl 1, id 41748, offset 0, flags [DF], proto UDP (17), length 29)
    alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1
E.....@...$....~.......l.   ..X
15:56:13.952504 IP (tos 0x0, ttl 1, id 41788, offset 0, flags [DF], proto UDP (17), length 29)
    alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 1
E....<@...$s...~.......l.   ..X
15:56:13.960469 IP (tos 0x0, ttl 1, id 41789, offset 0, flags [DF], proto UDP (17), length 114)
    alarmpi.55492 > 239.255.255.250.ssdp: [udp sum ok] UDP, length 86
E..r.=@...$....~.......l.^..M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: ssdp:discover
MX: 10
ST: ssdp:all

Parece que está funcionando, mas nada foi detectado.

Alguém tem uma ideia do que estou fazendo de errado?

obrigado

jibe
fonte
Não sei por que sua descoberta de baixo nível não está funcionando, mas posso recomendar o pulseaudio-dlna (disponível como pacote em muitas distribuições) se você deseja transmitir som para dispositivos compatíveis com DLNA. Isso também deve lidar com a descoberta para você, sem a necessidade de sujar as mãos nos próprios protocolos.
dirkt
Obrigado. Tentei fazê-lo funcionar o dia inteiro, mas sem sucesso. Consegui instalar o pulseaudio e o pulseaudio-dlna (não é tão fácil no RPI com o archlinux). Consegui fazer barulho com o pulseaudio quando meu computador está conectado pelo conector do alto-falante, mas impossível enviar o áudio via dlna ... acho que pode ser uma maneira mais simples. Qualquer ideia ?
jibe
Hã. pulseaudio-dlnafuncionou imediatamente para mim. Portanto, pode ser um problema em algum outro nível. Você tem alguma equivalente a Debian gupnp-toolsem Archlinux, para que possa fazer gssdp-discover -i wlan0 --timeout=3ou gupnp-universal-cp?
dirkt
Não é possível postar a resposta completa (restrição de links!) Mas, basicamente, funcionou:
jibe
Não é possível postar a resposta completa em gssdp-dicover (restrição de links!) Mas, basicamente, funcionou e me deu: (......) recurso disponível USN: uuid: 5f9ec1b3-ed59-1900-4530-b8ee6552cc9b Localização: 192.168.1.125:8080/description.xml (.....). Isso me deu o suficiente para - aparentemente - alcançar meu objetivo!
jibe

Respostas:

1

Usando o comentário dirkt, consegui detectar meu dispositivo DLNA com

gssdp-discover -i wlan0 --timeout = 3

Em seguida, adaptei o conteúdo desse post: http://djoepnpoep.blogspot.co.za/2015/07/command-line-dlnaupnp-av-with-curl.html . Sinto muito, não posso postar minha solução devido a restrições de reputação / link ... Mas, tendo cuidado com "e final de linhas, é bastante fácil.

Agora estou procurando uma documentação mais ampla sobre os controles DLNA (reproduzir, parar, pausar, retomar, controle de som)

Instalar pulseaudio e pulseaudio-dlna não parece ser a solução mais sábia para minhas necessidades muito restritas.

Obrigado novamente.

EDIT: depois de olhar nessa direção, encontrei algumas bibliotecas .js que parecem fazer o trabalho: https://github.com/rexboy7/plug.play.js

jibe
fonte