<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<channel>
	<title>pberndt.com: UPnP relay daemon</title>
	<link>http://www.pberndt.com/_Newsdata/upnp_relay.html</link>
	<description>Summary of upnp_relay.html</description>
	<pubDate>Wed, 30 Oct 2013 17:36:30 +0000</pubDate>
	<language>de</language>
	<ttl>2880</ttl>
	<item>
	<title>UPnP relay daemon </title>
	<link>http://www.pberndt.com/_Newsdata/upnp_relay.html</link>
	<comments>http://www.pberndt.com/_Newsdata/upnp_relay.html</comments>
	<description><![CDATA[ 
		<p>
			<img src="upnp.jpg?ct=raw" alt="UPnP Logo" class="float" />
			Meine Eltern haben einen <a
			href="http://www.philips.de/c/fernsehgeraete/4000-series-81-cm-32-zoll-full-hd-1080p-dvb-t-c-s2-32pfl4007k_12/prd/">Philips
			Fernseher</a>, der über einen OpenWRT-WLAN-Router in das eigentliche LAN
			eingebunden ist. Ich hatte mir - eigentlich schon über Weihnachten -
			vorgenommen, herauszufinden, warum der Computer den Fernseher nicht via
			UPnP als Ausgabegerät findet. Am Netzwerk lag es nicht, Multicast-Routing
			hatte ich eingerichtet und in die andere Richtung hat auch alles
			funktioniert.
		</p>
		<p>
			Jetzt an Ostern war ich wieder einmal zu Hause und hatte Gelegenheit,
			noch einmal herumzuexperimentieren: Anscheinend hat der Fernseher einen Bug.
			In der UPnP-Spezifikation tauschen Geräte über UDP/Port 1900 per Multicast
			HTTP-Nachrichten aus, um einander zu finden. Über eine weitere URL, die
			dann per TCP aufgerufen wird, lädt sich jedes interessierte Gerät dann
			nähere Informationen herunter. Es gibt nun zwei verschiede Mechanismen: Zum
			einen senden alle Geräte ab und zu ein "NOTIFY"-Request, in dem sie ihre
			Präsenz ankündigen. Der andere Mechanismus ist eine aktive Suche, bei der
			ein Gerät ein "M-SEARCH" an dieselbe Adresse schickt und alle Geräte eine
			HTTP-Antwort speziell an den Fragenden zurücksenden.
		</p>
		<p>
			Letzterer Mechanismus funktioniert auf dem Fernseher offenbar nicht. Und auch bei
			dem Notify gibt es Probleme, denn im laufenden Betrieb sendet er bisweilen eine
			Nachricht ins Netz, in der er sich aus dem Verbund abmeldet. Und danach ist
			dann Funkstille.
		</p>
		<p>
			Ich habe einen kleinen Dämon geschrieben, den man auf seinem Router laufen lassen
			kann, der das Problem angeht. Er cached die NOTIFY-Nachrichten und antwortet
			auf M-SEARCH Anfragen mit Antworten aus diesem Cache. Dabei halte ich mich nicht gänzlich
			an die Spezifikation und erzeuge einigen unnötigen Traffic, aber dafür finden alle Geräte
			jetzt den Fernseher und ich kann endlich von meinem Handy aus Videos vom PC auf dem
			Fernseher starten. Schick.
		</p>
		<p>
			Außerdem kann man den Dämon auf einen Router zwischen zwei gerouteten
			Netzwerken setzen und kann sich auf die Weise Multicast-Routing komplett
			sparen. Auch nützlich.
		</p>
		<p>
			Wer will: Auf <a href="https://github.com/phillipberndt/upnprd/">Github
			gibt es ein Repository</a>.
		</p>
		
	 ]]></description>
	<pubDate>Sun, 31 Mar 2013 22:00:00 +0000</pubDate>
	</item>
</channel>
</rss>
