Permanentlink zu diesem Beitrag: http://thux.de/2010/06/17/ipv6-certified-sage/
IPv6 Privacy Extension auf OS X aktivieren
Ich frage mich wirklich warum auf Mac OS X die IPv6 Privacy Extension (RFC 4941) nicht per default aktiviert ist, das ist ja sogar unter Windows der Fall. Da ich auch auf Anhieb nicht bei Google das gefunden habe, wie man die IPv6 Privacy Extension Bootfest unter OS X konfiguriert, schreibe ich es einfach mal hier, vielleicht wird es dann bald in Google gelistet und der nächste muss weniger suchen.
Aktivieren tut man die Privacy Extension mit dem Befehl sysctl, so wie man es auch von anderen Unix´en und so gewohnt ist:
sudo sysctl -w net.inet6.ip6.use_tempaddr=1
Was mich nun stutzig gemacht hat ist, dass es unter OS X 10.5 keine /etc/sysctl.conf gibt, in der man sowas Eintragen kann, damit es beim nächsten booten auch angewendet wird. Dazu brauch man aber einfach nur die /etc/sysctl.conf erstellen, danach klappt es dann.
sudo vi /etc/sysctl.conf
und folgendes reinschreiben (Es dürfen keine leerzeichen um das = Zeichen verwendet werden)
net.inet6.ip6.use_tempaddr=1
Permanentlink zu diesem Beitrag: http://thux.de/2009/04/30/ipv6-privacy-extension-auf-os-x-aktivieren/
Permanentlink zu diesem Beitrag: http://thux.de/2009/04/24/gut-dass-hier-niemand-kommentiert-oder-won%c2%b4t-you-blog-about-this-song-part-ii/
Projekt: Fritzbox einmotten PART III
So, da nun die Konfiguration komplett ist, erzähle ich nun von den Problemen die ich habe und wie es ausschaut auch mein Projekt scheitern lässt.
Das Problem ist folgendes, beim abnehmen des Hörers ist der Wählton kein gleichmäßiger Piepton sondern eher ein rythmischer Beat (Eigentlich auch cool, leider nicht in diesem Fall), die Sprachqualität ist bei ausgehenden Anrufen auch komplett davon durchsetzt, was sich dann aber in ein dauerhaften Knacken äussert. Bei eingehenden Telefonaten ist die Qualität in Ordnung.
Ich habe einige Zeit gebraucht um die Ursache zu finden und wurde beim blick in den Syslog fündig. Dort fand ich tausende Zeilen von dieser Sorte hier:
zaphfc: bchan rx fifo not enough bytes to receive! (z1=1493, z2=1486, wanted 8 got 7), probably a buffer overrun.
Das Problem, welches hinter der Messages steckt ist folgendes, die HFC-S Karte kommuniziert sehr rege mit dem System, sprich mit Interrupts in einer frequenz von 8kHz, also 8000 mal in der Sekunde oder alle 125 useks und das system kann die nicht alle verarbeiten und verwirft dann welche, was nicht weiter schlimm ist, wenn es nur wenige sind. Es sollten für eine gute Sprachqualität aber mind. 99,97% aller Interrupts erfolgreich verarbeitet werden, sonst wird das Knacken in der Leitung wahrnehmbar und mindert so die Sprachqualität. Auf meinem System werden leider nur gut 92% aller Interrupts erfolgreich verarbeitet und somit ist das nicht mehr zu gebrauchen.
Um das Problem in den Griff zu bekommen, habe ich viel im Internet rumgesucht und gelesen und einige Ansätze gefunden, die ich alle Ausprobiert habe. Der erste und meist erwähnte ist der sogenannte Florz Patch (siehe PART II), der einige Funktionen im zaphfc Treiber erweitert und auch das interrupthandling verbessert. Leider brachte der Patch nicht den erhofften Erfolg.
Mein nächster Ansatz war der CentOS Kernel, den ich im verdacht hatte. Da ich auch nicht den typischen Kernel (32 Bit ohne Xen) verwende den man für eine Asterisk üblicherweise benutzt, sondern, da ich ein 64Bit System installiert habe und auch Xen VM´s nutze, den entsprechenden Kernel, in meinem Fall der 2.6.18-128.1.6.el5xen x86_64. Deshalb habe ich dann angefangen mir einen eigenen Kernel zu bauen, der anders als der Default Kernel eine Time frequency von 1000 Hz statt 250 Hz nutzt, aber auch dieser Kernel brachte nicht den gewünschten Erfolg.
Ein BIOS Update half auch nicht weiter.
Deshalb habe ich nun auf meinen ausgemusterten P4 den ich hier noch rumstehen habe, auch ein CentOS 5 64 Bit mit Xen installiert um herauszufinden, ob es sich um ein Hardware oder Software Problem handelt, bevor ich anfange noch 27 Kernels zu bauen. Ich habe also CentOS installiert, die 2. HFC-S Karte die ich hier noch rumliegen habe eingebaut und angefangen Asterisk Bristuff zu bauen. So konnte ich auch gleich noch das HowTo im PART II anpassen, da ich festgestellt habe, dass es so nicht ganz komplett war.
Nachdem ich alles fertig gebaut habe und den zaphfc Treiber geladen habe, kam der spannende Moment und siehe da, keine buffer overrun oder underrun Meldungen im Syslog. Also Konfig rüber kopiert, NTBA & Telefon angeschlossen und schauen ob es funktioniert. Nachdem ich Asterisk gestartet habe und den Hörer abgenommen habe, siehe da ein Wahlton so wie er sein sollte. Noch ein paar weitere Test mit ein- und ausgehenden Anrufen zeigten, dass alles Super funktioniert und die Sprachqualität war auch 1A, obwohl nun auch ein paar Buffer overrun Meldungen im Log auftauchten, aber immer blos 2 Stück im Abstand von jeweils 10 Minuten, was ich als vertetbar halte, da ja ansonsten alles Tutti war.
Mein Linux Homeserver auf dem die Asterisk laufen sollte, ist ein Atom PC zwecks geringem Energie verbrauch, was mir auch wichtig ist, wenn der schon 24/7 laufen soll. Deshalb kann ich jedem nur davon abraten das Intel Mainbaord mit Atom 330 D945GCLF2 für eine Asterisk installation zu nutzen, zumindest wenn man eine Lösung mit HFC-S Karten favorisiert.
Und so kann ich leider meine Fritzbox noch nicht in Rente schicken und muss nun hoffen, dass es vielleicht bald ein BIOS Update gibt, welches das Problem beseitigt.
Als nächstes werde ich es probieren einen SIP Proxy auf meinem OpenWRT Router zu installieren, um zumindest das Problem der Nichterreichbarkeit mit der Fritzbox in den Griff zu bekommen.
Stay tuned!!!11elf!
P.S. Falls hier mal ein Asterisk Profi oder jemand der vielleicht noch einen Tip für mich hat, zufällig auf diese Seite stößt, ich freue mich über jeden Kommentar.
Permanentlink zu diesem Beitrag: http://thux.de/2009/04/10/projekt-fritzbox-einmotten-part-iii/
Projekt: Fritzbox einmotten PART II
So nun kommen wir zum Praktischen Teil…
Ich habe einen Linux Rechner mit CentOS 5 in dem die HFC-S ISDN-Karte eingesteckt ist.
$ lspci |grep HFC
04:00.0 Network controller: Cologne Chip Designs GmbH ISDN network controller [HFC-PCI] (rev 02)
An die Karte wird dann das ISDN Cross-Kabel gesteckt und mit dem NTBA an deren S0-BUS Dose verbunden. Ein üblicher NTBA hat 2 S0-Bus Dosen, die auch gebraucht werden, da in die 2. das ISDN-Telefon eingesteckt werden muss. Der NTBA muss nun noch mit Strom versorgt werden. Das ist auch die Aufgabe des NTBA, den S0-Bus mit der nötigen Spannung zu versorgen, da ansonsten nur die ISDN-Karte und das Telefon am Bus hängen und beides passive Geräte sind.
(Internet)=—SIP—=(Netzwerkkarte ! Linux PC ! HFC-S Karte)=—ISDN S0—=(NTBA)=—=(ISDN Telefon)
So die Hardware ist nun komplett eingerichtet, nun folgt die Software:
Damit die Software erfolgreich kompiliert werden kann sind ein paar kleine Vorbereitungen von nöten.
Als erstes sollte sicher gestellt sein, dass die Entwicklerwerkzeuge installiert sind, wenn nicht, dann hilft ein einfaches:
$ yum groupinstall “Development Tools”
Und ein paar Zusätzliche Devel RPM´s sind ebenfalls noch erforderlich:
$ yum install libtermcap-devel ncurses-devel openssl-devel zlib-devel newt-devel
Ich bin mir nicht 100%ig sicher ob das reicht, wenn das bauen von Asterisk fehlschlägt sollten folgende RPM´s helfen:
- libtiff-devel
- postgresql-devel
- postgresql-server
- libogg-devel
- libvorbis-devel
- libtool-ltdl-devel
- sqlite-devel
- qt-devel
- kdelibs-devel
- gtk2-devel
- alsa-lib-devel
- unixODBC-devel
- curl-devel
Ausserdem muss SeLinux disabled sein, damit Asterisk erfolgreich gebaut werden kann, dazu einfach die Datei /etc/sysconfig/selinux editieren und die Zeile SELINUX=enforcing zu SELINUX=disabled ändern. Danach ist ein reboot erforderlich.
Zusätzlich werden die Kernel Quellen für den installierten Kernel benötigt
$ yum install kernel-devel kernel-xen-devel
Nun muss noch ein Link erstellt werden /usr/src/linux-2.6 der auf die richtigen Kernel Quellen zeigt
$ cd /usr/src
$ ln -s kernels/`uname -r `-`uname -m`/ linux-2.6
Jetzt wird es ernst, es geht nun ans bauen und installieren von Asterisk, dazu muss man sich das Bristuff Paket von http://www.junghanns.net/en/home.html herunterladen und installieren.
$ wget http://www.junghanns.net/downloads/bristuff-0.3.0-PRE-1y-u.tar.gz
$ tar xzvf bristuff-0.3.0-PRE-1y-u.tar.gz
$ cd bristuff-0.3.0-PRE-1y-u
$ ./install.sh
Bei dem ./install.sh wird alles was noch benötigt wird, wie die Asterisk Software selbst etc. automatisch mit heruntergeladen und kompiliert. Wenn am Ende folgende Meldung ausgegeben, war das alles Erfolgreich.
+—- Asterisk Installation Complete ——-+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ make samples +
+ +
+—————– or ———————+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+——————————————-+
****************************************************
ASTERISK installed.
BRIstuff Installation finished.
****************************************************
Wenn man das nun alles zum ersten mal gemacht hat, dann sollte man noch die Sample Konfigurations-Dateien installieren mit:
$ cd asterisk
$ make samples
Da nun alles installiert ist, geht´s ans konfigurieren. Als erstes kümmern wir uns um die /etc/zaptel.conf , in der Datei werden die Parameter für die HFC-S ISDN Karte definiert und sollte wie folgt aussehen:
# hfc-s pci a span definition
# most of the values should be bogus because we are not really zaptel
loadzone=nl
defaultzone=nl
span=1,1,3,ccs,ami
bchan=1-2
dchan=3
Nun kann man auch schon das Kernel Module für die Karte laden, welches auf den Namen zaphfc hört.
$ modprobe zaphfc modes=1
$ ztcfg -vvvv
Das modes=1 sagt dem Treiber, dass die Karte im NT Modus arbeiten soll, das ist der Modus um einen internen S0-Bus dadran zu betrieben und das ztcfg -vvvv zeigt die Konfiguration der Karte und ggf. Fehler an.
Jetzt geht es an die Konfiguration der Asterisk, dazu wechseln wir in das Verzeichnis /etc/asterisk . Da gibt es nun eine Menge an Konfigurations-Dateien, aber wir brauchen lediglich 3 davon anfassen, der Rest kann so bleiben wie er ist. Die 3 für uns Interesanten Dateien sind die zapata.conf, welches der Asterisk erzählt, wie mit der HFC-S ISDN Karte umzugehen ist. In der Datei sip.conf wird der SIP Zugang zu Sipgate konfiguriert und in der Datei extensions.conf werden die sogenannten Extensions konfiguriert, welches Asterisk sagt, wie alles zusammen spielen soll.
Fangen wir also erstmal mit der zapata.conf an, die wie folgt aussehen muss:
[channels]
;—————————————————————————-
;NT-Karte fuer ISDN-Telefonanlage im Mehrgeraete-Anschluss
;—————————————————————————-
;language=de
switchtype = euroisdn
signalling = bri_net_ptmp
pridialplan = dynamic
prilocaldialplan = local
nationalprefix = 0
internationalprefix = 00
echocancel = yes
echotraining=100
echocancelwhenbridged=yes
immediate = no
overlapdial=yes
group = 1
context = default
channel => 1-2
Und nun die sip.conf. Hier muss der String SIP-ID durch die Sipgate ID und der String SIPPASS durch dass Sipgate SIP Passwort erstetzt werden:
[general]
port = 5060
bindaddr = 0.0.0.0
; IP des externen Gateways, hier eintragen, wenn feste IP vorliegt
; externip = 0.0.0.0
; Netzadresse LAN
Localnet = 192.168.1.0/255.255.255.0
srvlookup = yes
context = default
disallow=all
allow=ulaw
allow=alaw
allow=gsm
register => SIP-ID:SIPPASS@sipgate.de/SIP-ID
; Das Leerzeichen zwischen ID: und SIPPASS kommt von der Blogging Software und muss weg
canreinvite=no
[sipgate]
type=friend
username=SIP-ID
secret=SIPPASS
host=sipgate.de
fromuser=SIP-ID
from=SIP-ID
context=default
canreinvite=no
insecure=very
nat=no
dtmfmode=info
Und zuguter letzt die extensions.conf, hier muss ebenfalls der String SIP-ID durch die Sipgate ID, welches ebenfalls die einkommende Telefonnummer ist, ausgetauscht werden.
[general]
static=yes
writeprotect=no
[globals]
IAXINFO=guest ; IAXtel username/password
[default]
exten => SIP-ID,1,Dial(Zap/g1/${EXTEN})
exten => SIP-ID,2,Hangup
exten => _X.,1,Dial(SIP/${EXTEN}@sipgate,60)
exten => _X.,2,Congestion
exten => _X.,3,Busy
exten => _X.,4,Hangup
Die Zeile
exten => SIP-ID,1,Dial(Zap/g1/${EXTEN})
sagt der Asterisk, dass alle eingehenden Anrufe auf der Nummer SIP-ID an die erste HFC-S ISDN Karte ausgegeben werden soll und die Zeile
exten => _X.,1,Dial(SIP/${EXTEN}@sipgate,60)
sagt, dass alle (_X) gewählten nummern, über sipgate rausgehen sollen.
So die Konfiguration ist nun Abgeschlossen und Asterisk kann gestartet werden, da wir beim ersten mal auch sehen wollen ob das alles klappt machen wir das wie folgt:
$ asterisk -vvvvc
Wenn nun Asterisk ohne Fehler gestartet wurde sind wir in der Console von Asterisk und können nun mit ein paar befehlen sehen ob alles funktioniert. So zeigt uns
CLI> sip show registry
ob die Anmeldung am Sipgate SIP Server geklappt hat. Ein
CLI> pri show span 1
zeigt den span 1, welches die HFC-S ISDN Karte ist.
Nun kann man einfach mal am Telefon probieren ob man raus telefonieren kann, wenn das klappt sollte man nochmal sein Handy zur Hand nehmen und testen ob das rein telefonieren ebenfalls funktioniert und ob die Sprachqualität gut ist.
Wenn das auch erfolgreich war, sind wir nun fertig und haben eine Lösung, welche die Firtzbox wunderbar ersetzt und unendlich erweiterbar ist.
TIP 1: Wenn das bauen von Asterisk bzw. bristuff mit ./install.sh fehlschlug, ist es ratsam den Ordner komplett zu löschen und neu zu entpacken, mir scheint so das die make clean Routinen nicht so wirklich sauber aufräumen.
TIP 2: Taucht beim Betrieb im Syslog oder im dmesg folgender Fehler auf:
zaphfc: bchan rx fifo not enough bytes to receive! (z1=1493, z2=1486, wanted 8 got 7), probably a buffer overrun.
Könnte der Florz Patch helfen, den gibt es hier: http://zaphfc.florz.dyndns.org/ . Beim patchen mittels
$ zcat zaphfc_0.3.0-PRE-1y-l_florz-12.1.diff.gz |patch -p1
muss man den Pfad zur zaphfc.c und zaphfc.h anpassen, da der Patch nicht auf die aktuellste Bristuff Version gelinkt ist, aber dann ist das patchen erfolgreich.
Im dritten Teil erzähle ich davon, was bei mir nicht funktioniert und warum ich mir die Haare raufe
Permanentlink zu diesem Beitrag: http://thux.de/2009/04/09/projekt-fritzbox-einmotten-part-ii/
Projekt: Fritzbox einmotten PART I
Es ist zum Haare raufen…. (Wo sind nun eigentlich meine Smilies hin? – Wohl weggelaufen – Egal)
Aber erstmal die Geschichte von Anfang an.
Ich habe seit einigen Jahren keinen Telefonanschluss mehr nur noch DSL, da ich aber gerne noch ein Festnetz Telefon haben möchte und das mit meinem Siemens Gigaset SX353 isdn habe ich seit einigen Jahren einen VOIP Account bei Sipgate. Ich konnte damals sogar meine Nummer dorthin portieren, soweit so gut. Um nun mein Siemens Gigaset SX353 via SIP zu nutzen, habe ich vor einigen Jahren günstig über ebay eine Fritzbox Fon 5012 erworben, das ist so ziemlich die kleinste Fritzbox die es gibt, ohne Analog Ausgänge nur mit einem ISDN S0 Bus. Das reichte ja auch vollkommen für meine Zwecke, denn als Router benutze ich die eh nicht, da mag ich meinem Linksys mit OpenWRT nicht missen. Darum steht die Fritzbox bei hinterm Router im internen Netzwerk und ist nur dazu da um SIP zu ISDN “umzuwandeln”.
Nur leider verabschiedet sich hin und wieder die Verbindung der Fritzbox zum Sipserver von Sipgate. Das kann man leider auch nicht wirklich überwachen und deswegen merkt man es erst, wenn man das nächste mal raustelefonieren möchte. Da ich aber recht selten Telefoniere mit dem Festnetztelefon kommt das schon mal vor, dass man dann auch einige Tage nicht erreichbar ist, was mich wirklich nervt.
Da das so ein recht unbefriedigender Zustand ist und ich auch gerne den Strom, den die Fritzbox verbraucht gerne mir Sparen würde und ich zuhause seit einiger Zeit wieder einen “richtigen” Linux Rechner habe der 24/7 läuft (Ich habe meine NSLU2 ausgemustert), dachte ich mir, baue ich mir mit Asterisk und einer HFC-S ISDN-Karte eine Software Lösung um die Fritzbox einmotten zu können.
Da ich sogut wie alles was man Hardware technisch für die Asterisk Lösung braucht rumliegen habe, ist die Lösung für mich auch noch kostenlos, was den Reiz dieser Lösung erhöht.
Die Zutaten:
- Eine HFC-S ISDN-Karte (Davon hab ich 2 Stück rumliegen)
- Einen NTBA (Davon hab ich sogar 3 Stück rumliegen – k.A. wo die alle herkommen)
- Ein ISDN-Crosskabel (Das habe ich mir aus einem CAT5 Kabel gebastelt)
- Eine Anleitung Z.B. diese hier und diese dort
Meine Lösung unterscheidet sich halt nur in dem Punkt von den oben verlinkten Anleitungen, dass ich auf den ISDN Anschluss verzichte und alle telefonate über SIP abwickeln möchte.
Ein HowTo, die Konfiguration und der Anfang meiner Leidensgeschichte folgt dann in PART II
Permanentlink zu diesem Beitrag: http://thux.de/2009/04/08/projekt-fritzbox-einmotten-part-i/
Fahrrad Checker
Die Berliner Polizei hat angekündigt zwischen dem 1. April und dem 13. April vermehrt Fahrradkontrollen durchzuführen. Das es in den 2 Wochen mehr Kontrollen gibt als sonst war ja abzusehen, aber die Jungs meinen es anscheinend wirklich ernst.
Auf meinen guten 5 Km Arbeitsweg gab es heute gleich 2 Kontrollen. Von mir wollten die aber zum Glück nichts, mal schauen ob die nun wirklich bis zum 13. so weitermachen und ob sie mir auch noch Ihre Kelle vors Fahrrad werfen.
Permanentlink zu diesem Beitrag: http://thux.de/2009/04/01/fahrrad-checker/
Herr Lehmann…
…fand Marcel Reich-Ranicki amüsant. Ich auch!
Empfehle ich gerne weiter, es hat mir viel spaß gemacht die Geschichte von Herrn Lehmann zu lesen und wenn man Kreuzberg kennt, macht es noch mehr spaß, da man alle Orte im Buch (wieder er)kennt.
Permanentlink zu diesem Beitrag: http://thux.de/2009/03/27/herr-lehmann/
Killer-Rennspiele
Ich fragte mich gerade so, nachdem ja nun wieder nachdem Amoklauf von Winnenden, die immer gleiche “Killerspiel”-Diskussion von jedem der sich was davon verspricht meist populistisch ausgeschlachtet wird, ob es eigentlich Statistiken gibt, die sich damit befassen, ob es zusammenhänge zwischen den Genuss von Rennspielen und Unfällen im Straßenverkehr gibt.
Ich kann mir vorstellen, dass jemand der zuvor 2 Stunden ein Rennspiel am Computer oder der Spielkonsole gespielt hat und sich direkt danach ans Steuer eines Fahrzeug setzt einen aggressiveren Fahrstil an den Tag legt als jemand der mit Rennspielen nichts am Hut hat. Das gleiche könnte man natürlich auch auf Filme ausweiten z.B. wenn man sich gerade “The Fast and the Furious” angeschaut hat und sich danach ans Steuer setzt.
Ich kann mir auch vorstellen, belegen kann ich sowas natürlich nicht, dass mehr Menschen in Deutschland im Straßenverkehr zu schaden kommen, durch Menschen die nachdem Genuss von Rennspielen oder Filmen mit ihren Wagen einen Unfall verursachen als durch Menschen, die nach dem Genuss von Ego-Shootern Amokläufe veranstalten.
Sollte man nun deswegen alle möglichen Medien verbieten oder den Zugang dazu einschränken, in den Sachen gezeigt werden, die im Realen leben anders laufen oder gar eine Gefahr für Leib und Leben der Konsumenten und unschuldiger dritter darstellen. Natürlich nicht, das wäre wohl auch schwer machbar.
Deshalb ist es einfach unverzichtbar, dass Medienkompetente Erziehung in Schulen und von Eltern mehr Aufmerksamkeit geschenkt wird, denn nur so lassen sich solche gefährlichen Situationen verhindern oder zumindest minimieren.
Permanentlink zu diesem Beitrag: http://thux.de/2009/03/23/killer-rennspiele/
Zurück
Nachdem nun über ein Jahr hier nichts mehr zum besten gegeben habe, habe ich mir nun mal vorgenommen, wieder hier öfter was zu schreiben.
Warum um gotteswillen will er nun hier wieder sein gesülze auf die Welt los lassen?
Ganz einfach, da mich das Gesülze anderer im Internet zur Zeit extrem langweilt, darum muss ja nun einer wieder etwas Gescheites Blödsinn unter die Menschen bringen. Okay viele werde ich damit nicht erreichen, da ich kaum erwarten kann, dass einer meiner 3 Leser nach über einem Jahr ruhe hier, noch irgendwann mal vorbei schauen wird… außer mir selbst.
Also schreibe ich hier nun regelmäßig was, betrinke mich danach und kann mich dann am nächsten Tag über neue Texte freuen, von denen ich mir niemals hätte träumen lassen, dass diese wirklich von mir stammen könnten… Jeden Tag eine Überraschung… Solange die Leber das mitmacht. Vielleicht lege ich mir auch eine gespaltene Persönlichkeit zu, dass ist dann besser für die Leber, aber wahrscheinlich leidet dann der Verstand – So ein mist. Dann muss ich mir doch ein paar Leute suchen, die ich vielleicht dafür Bezahle, hier regelmäßig was zu lesen.
Vielleicht kommt aber doch der ein oder andere freiwillig wieder und ich kann mein Geld so für meine Rente sparen, das wäre echt nett!
Danke
Permanentlink zu diesem Beitrag: http://thux.de/2009/03/17/zuruck/