Von iFrames auf Parent-Window zugreifen (cross-domain)

Will man eine Funktion im Elternfenster eines iFrame aufrufen, so ist das normalerweise kein Problem.

1
window.parent.functionname();

und fertig ist die Kiste. Ganz anders sieht es aber aus, wenn der iFrame nicht in der gleichen Domain liegt. Cross-Domain-Zugriff auf Funktionen (und Eigenschaften) ist nämlich verboten.

Hierfür gibt es seit einiger Zeit eine Lösung, die inzwischen viele Browser implementieren: postMessage. Wenn man nicht gerade IE6/7 unterstützen muss, kann man diese Funktion nutzen, um sich das Leben einfacher zu machen.

Im iFrame sendet man dabei eine Nachricht an das Hauptfenster:

1
window.parent.postMessage('close', '*');

und im Hauptfenster empfängt man die Nachricht und wertet sie aus:

1
2
3
4
window.addEventListener("message", function(event) {
    if(event.data === 'close'){
	doSomething();
    }

Unterstützt wird diese praktische Funktion von Firefox 3+, IE 8+, Chrome 4+, Safari 4+, Opera 10+ und allen derzeit gängigen Mobilbrowsern.

caniuse
(Bild von caniuse.com)

VoIP mit Nokia 5800 XPress Music und Fritz!Box

Den neueren Symbian-Phones der Xpress-Serie (und vielen anderen auch) fehlt vor allem eines: ein SIP-Client. Während viele der älteren Phones und auch die meisten Geäte der N-Serie einen haben, gibt es im 5800 z.B. zwar SIP-Einstellungen aber keinen Client. Warum das so ist kann man nur spekulieren, vermutlich haben die Netzbetreiber ein Abkommen mit Nokia geschlossen, um sinkende Einnahmen durch die Verwendung von VoIP zu verhindern.

Um nun das 5800 doch noch in mein Richtfunk-WLAN-Prohjekt einbinden zu können benutze ich die (zurzeit noch kostenlos erhältliche) Software Tivi. Die hat – im Gegensatz zu den 4 oder 5 anderen Alternativen, die ich ausprobiert habe – den Vorteil, dass sie sich mit jedem SIP-Provider, also auch dem der Fritzbox, verbinden kann. Nimbuzz, Fring & Co. funktionieren nur mit echten Internet-SIP-Anbietern wie 1&1, voip-sip.de oder Sipgate.

Zunächst muss ein Registrierschlüssel für die Software erzeugt werden. Den gibt es momentan noch kostenlos bei tivi.com nach Eingabe der IMEI (nötig, damit tivi.com die App signieren kann). Die IMEI findet man bei allen Symbian-Handies übrigens via *#06# heraus. Im nächsten Schritt erhält man seinen Lizenzschlüssel.

Mit dem Handy navigiert man dann zu http://m.tivi.com und lädt sich die Software herunter. Die Installation startet nach dem Download selbstständig. Wichtig: ich musste die Software auf der SD-Karte (E:) installieren und die Warnung zur Inkompatibilität bestätigen. Eine Installation auf dem Telefon (C:) schlägt komischerweise – trotz ausreichend Speicherplatz – fehl. Nach der Installation steht die Software im Menü unter Programme zur Verfügung. Von wird sie jetzt auch gestartet und als Erstes werden die Einstellungen vorgenommen. Dabei gehe ich davon aus, dass wie im Artikel Projekt Richtfunk: Internet + Telefon beschrieben bereits ein zusätzlicher SIP-Account in der FritzBox (für das Handy) angelegt wurde. Folgende Einstellungen sind vorzunehmen (bei Lizenzschlüssel muss natürlich der soeben erhaltene Key eingetragen werden ;)):

 

Nach einem Klick auf OK sollte sich Tivi nun mit dem SIP-Server der Fritzbox verbinden und man kann in WLAN-Reichweite kostenlos telefonieren und auch unter seiner Festnetz-Nummer erreicht werden. Etwas gewöhnungsbedürftig ist nur die Bedienung: man ist immer versucht, mit der grünen Taste abzuheben… was allerdings nicht funktioniert. Stattdessen muss man den Touchscreen bemühen. Davon abgesehen ist Tivi der wohl ausgereifteste SIP-Client für Symbian-Phones ohne eigene SIP-Funktionalität.