Mobiltelefone werden immer mehr zum ständigen Begleiter der Menschen, sie haben sich von der tragbaren Telefonzelle längst zu hochintegrierten Multimediageräten entwickelt. Dies eröffnet jedoch auch neue Anforderungen beim Dateiaustausch: Die Bilder der Handy-Kamera müssen aufgrund der beschränkten Speichermedien langfristig auf dem heimischen PC archiviert werden. Auch der MP3-Player des Mobiltelefons benötigt hin und wieder frische Titel.
Herkömmliche Synchronisationsprogramme wie Kitchensync oder Multisync können diese Aufgaben nicht erfüllen. Sie gleichen lediglich Termine und Kontakte ab. Eine einfache Lösung zum individuellen Datenaustausch stellt daher ein einfaches Bash-Skript dar. Den Austausch der Dateien zwischen Handy und Notebook via Bluetooth, Infrarot oder USB übernimmt dabei das Kommandozeilenprogramm obexftp [1]. Da sich ObexFTP komplett über Parameter steuern lässt und keine interaktiven Eingaben erwartet, eignet es sich ideal für Skripte.
Bluetooth individuell
ObexFTP kann nicht nur mit Bluetooth-Geräten umgehen, es kommuniziert auch mit per Infrarot oder seriellem Kabel angeschlossenen Handys und Organizern. Während man bei Infrarot-Verbindungen lediglich den Parameter -i angegeben muss, benötigt ObexFTP für den Datenaustausch per Bluetooth neben dem Parameter -b die Bluetooth-ID der Gegenstelle. Die ermitteln Sie mit dem Aufruf hcitool scan, wobei Sie keine Root-Rechte benötigen:
$ hcitool scan Scanning … 00:01:E3:53:29:68 SK65 00:16:20:63:1C:40 W300i
Die Bluetooth-ID der ersten Spalte ist genau wie die MAC-Adresse einer Netzwerkkarte für jedes Gerät einmalig und identifiziert das Handy zuverlässig. Indem Sie den Synchronisationsvorgang stets davon abhängig machen, dass das angebundene Gerät genau diese Bluetooth-ID besitzt, können Sie vermeiden, dass Ihr Rechner plötzlich mit dem Handy eines zufällig anwesenden Besuchers Daten austauscht.
Für aktuelle Mobiltelefone sollten sie unbedingt die neueste Version von ObexFTP übersetzen und installieren, da die in den meisten aktuellen Distributionen enthaltene Version 0.10.7 etwa mit dem Sony-Ericsson W300i und dem W700i nicht funktioniert (siehe Artikel S. 42). Mit der der bei Redaktionsschluss aktuellen Version 0.20 gibt es hingegen keine Probleme.
Datenaustausch per FTP
Die wichtigsten Funktionen von ObexFTP sind ls, get und put. Die passenden Parameter auf der Kommandozeile lauten -l, -g und -p, jeweils gefolgt vom Verzeichnispfad oder den Dateinamen. Während ObexFTP get- und put-Anfragen selbst bearbeitet, indem es die Dateien direkt auf die Festplatte schreibt oder von dort auf das Handy überträgt, schreibt die ls-Funktion die vom Handy übertragene XML-Datei mit den Verzeichnisinformationen unverändert auf die Standardausgabe. Listing 1 zeigt die Verzeichnisstruktur des Memorysticks auf einem Sony-Ericsson W300i.
Listing 1
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"> <!-- XML Coder, Apr 30 2006, 18:51:19, (C) 2001 Sony Ericsson Mobile Communications AB --> <folder-listing version="1.0"><parent-folder/> <file name="MEMSTICK.IND" size="0"/> <file name="MSTK_PRO.IND" size="0"/> <folder name="DCIM"/> <folder name="MP3"/> <folder name="MSSEMC"/> </folder-listing>
Ein Manko des Obex-Protokolls ist, dass es keine Wildcards kennt. Das macht das Herunterladen etwa aller Fotos der im Handy eingebauten Kamera aufwändig: Sie müssen zunächst das betreffende Verzeichnis nach den Dateien durchsuchen und sie dann für ObexFTP auflisten. In Listing 1 sehen Sie neben den Dateien MEMSTICK.IND und MSTK_PRO.IND (Zeile 7 und 8) die Verzeichnisse DCIM mit den Bildern der Kamera, MP3 für die Musik sowie MSSEMC für Videos und andere Multimedia-Dateien (Zeile 9 bis 11), Sie müssen also die XML-Datei analysieren, um an die Datei- und Verzeichnisnamen heranzukommen.



