Wapd-plugin
(Hinweis auf gesperrte Ports, Testmöglichkeit mit Firefox) |
Wirbel (Diskussion | Beiträge) (→Links) |
||
Zeile 129: | Zeile 129: | ||
//Schedule->GetPresentEvent(channel->Number() == cDevice::CurrentChannel()); // Original | //Schedule->GetPresentEvent(channel->Number() == cDevice::CurrentChannel()); // Original | ||
Schedule->GetPresentEvent(); //Anpassungsversuch auf 1.4 | Schedule->GetPresentEvent(); //Anpassungsversuch auf 1.4 | ||
+ | ==Aktuelle Version== | ||
+ | [http://www.heiligenmann.de/vdr/download/vdr-wapd-0.9.tgz 0.0.9] | ||
==Links== | ==Links== | ||
# [http://www.heiligenmann.de/vdr/download Homepage des Plugin] | # [http://www.heiligenmann.de/vdr/download Homepage des Plugin] | ||
− | [[Kategorie:Plugins]] | + | [[Kategorie:Veraltete Plugins]] |
{{i18n|wapd-plugin}} | {{i18n|wapd-plugin}} |
Version vom 7. August 2013, 09:52 Uhr
Inhaltsverzeichnis |
Beschreibung
Autor: Thomas Heiligenmann
Das Plugin stellt einen WAP-Server bereit, der es ermöglicht, Timer mittels eines WAP-fähigen Mobiltelefons zu erzeugen und zu bearbeiten oder zu löschen. Damit das Plugin funktioniert, muss der Rechner aus dem Internet erreichbar sein.
Bilder
Konfiguration ohne Webserver
Da muß der VDR direkt aus dem Internet erreichbar sein. Meist braucht man ein Router der die Anfrage auf den Port des VDR weiterleitet.
Wichtig sind die wapaccess und waphosts im Plugin-Verzeichnis. Die Datei wapaccess erstellt man mit
wappasswd username password >> /video/plugins/wapaccess
wappasswd ist im Verzeichnis des Plugins.
Die zweite Datei waphosts ist genauso aufgebaut wie die Datei svdrphosts.conf.
Konfiguration mit vorgeschaltenem Webserver
Wichtig sind die beiden Dateien im Plugin-Verzeichnis. Die Datei wapaccess erstellt Ihr am besten auf dem Webserver, der das Proxying zum vdr-Rechner macht. Hierzu verwenden wir das htpasswd-utility des apache-webservers. Auf der Konsole:
htpasswd -c wapaccess USER
dann das Passwort eingeben.
Somit haben wir die Datei wapaccess. Kopiert die nun ins Plugins-Dir.
Die zweite Datei waphosts ist genauso aufgebaut wie die Datei svdrphosts.conf.
Konfiguration vom Apache-Webserver
Es wird davon ausgegangen, dass eine dyndns Domain besteht, bei der Wildcard aktiviert ist.
So nun schaut das so aus: Internet -> Linux-Server mit Apache (DYNDNSDOMAIN) -> Intranet -> VDR (vdr.DYNDNSDOMAIN)
Der Apache-Webserver muss das Modul mod_proxy geladen haben.
Nun in der Datei vhost.conf diese Zeilen hinzufügen:
<VirtualHost *:80> ServerName DYNDNSDOMAIN DocumentRoot /var/www/localhost/htdocs #(Bitte anpassen) </VirtualHost> <VirtualHost *:80> ServerName vdr.DYNDNSDOMAIN ServerAlias vdr # kann auch weggelassen werden ProxyPass / http://VDRIP:8888/ ProxyPassReverse / VDRIP:8888/ </VirtualHost>
DYNDNSDOMAIN ist z.b.
meinesuperlinuxmaschine.dyndns.org
VDRIP ist z.b.
192.168.0.187
Nach einem Neustart des Apache-Webservers kann wapd via vdr.DYNDNSDOMAIN von jedem Wap-Handy erreicht werden.
Parameter
Parameter (kurz) | Parameter (lang) | Beschreibung |
---|---|---|
-p <PORT> | --port=<PORT> | use PORT for WAP (default: 8888) |
Probleme
Manche Mobilfunk-Provider (z.B. E-Plus) lassen nicht alle Ports zu. Dadurch kann man auf z.B. Port 8888 nicht zugreifen. Man erhält aber dabei leider keine vernünftige Fehlermeldung.
Abhilfe: Als Port erstmal 80 einstellen (siehe Parameter). Wenn das geht, entweder dabei bleiben, weitere Ports ausprobieren oder beim Provider nachfragen. Man kann auch den Port belassen und am Router von Port 80 auf Port 8888 weiterleiten. Dann muss man den wapd nicht umstellen und bekommt trotzdem Zugang per Handy.
Tipps
Man kann die WAP-Ausgabe auch erstmal ohne Handy testen. Für den Web-Browser Firefox gibt es ein Add-On "wmlbrowser". Damit kann man dann testen ob wapd funktioniert.
Anpassung für VDR 1.4
Das Plugin braucht eine Anpassung für den VDR 1.4.
1. Problem mit der APIVERSION
sed -i -e s/VDRVERSION/APIVERSION/g Makefile
im Verzeichnis des Plugins
2. Änderung im Interface
In ca. Zeile 697 von server.c gehört der Inhalt der Klammer gelöscht
//Schedule->GetPresentEvent(channel->Number() == cDevice::CurrentChannel()); // Original Schedule->GetPresentEvent(); //Anpassungsversuch auf 1.4