ubuntuusers.de

Plugin-SyncML

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Achtung!

Aufgrund von Abhängigkeitsproblemen wurde das Plugin in Ubuntu 10.04 Lucid Lynx aus den Paketquellen gelöscht (s. 524938 🇬🇧).

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

SyncML ist ein Standard der Open Mobile Alliance 🇬🇧, der inzwischen von einer Vielzahl von Hardware-Anbietern unterstützt wird (u.a. Nokia, Palm, Motorola, Sony Ericsson und Samsung). Der Vorteil ist, dass SyncML weder auf eine bestimmte Plattform noch auf eine bestimmte Netzwerkarchitektur festgelegt ist - entsprechend bestehen auch in OpenSync [1] verschiedene Möglichkeiten, den Standard zu nutzen: Über einen http-Server, über einen OBEX-Client via USB-Kabel oder über einen OBEX-Client via Bluetooth. Alle Möglichkeiten greifen aber auf dasselbe Paket zurück[2]:

Paketliste zum Kopieren:

sudo apt-get install opensync-plugin-syncml 

Oder mit apturl installieren, Link: apt://opensync-plugin-syncml

Das Plugin lässt sich in KitchenSync [1] bereits über eine graphische Oberfläche einrichten; Benutzern von Multisync-GUI [1] steht bisher nur dasselbe Skript zur Verfügung, über das auch im Terminal die Konfiguration abläuft [3].

SyncML über einen http-Server

Die Synchronisation über einen http-Server ist die allgemeinste Form des Datenabgleichs über SyncML. Sie sollte mit allen Geräten möglich sein, die SyncML unterstützen; das gilt insbesondere für Nokia-Mobiltelefone. Als Plugin-Typ ist "SyncML over HTTP-Server" zu wählen, das Plugin selber heißt syncml-http-server.

Einrichtung mit KitchenSync

OpenSync/SyncMLhttpKitchenSyncConf.png Fügt man einer Gruppe ein SyncML-Plugin hinzu, so nennt KitchenSync das zugehörige Mitglied automatisch Mobile Phone. Es darf aber nach Belieben umbenannt werden. Wird das Mitglied im Editier-Fenster markiert, so erscheint nebenstehende Oberfläche:

Im Reiter "Connection" ist der Port zu wählen, der verwendet werden soll. Standard-Einstellung ist 8080. Dieser Port muss auch auf dem externen Gerät eingestellt werden.

Im Reiter "Databases" ist anzugeben, wie die abzugleichenden Datenbanken auf dem externen Gerät heißen. Manchmal beginnen diese Namen mit Großbuchstaben.

Im Reiter "Options" könnten ein beliebiger Benutzername und das zugehörige Passwort angegeben werden. Beides müsste auch im externen Gerät eingetragen werden; beides kann normalerweise aber leer gelassen werden. Falls WBXML verwendet wird, kann es sinnvoll sein, bei "Use String Table" ein Häkchen zu setzen; die Option "Only Replace Entries" bleibt aber normalerweise abgewählt. Zudem könnte hier eine URL angegeben werden, die auch im externen Gerät stehen müsste, auch dies ist aber nicht notwendig. Schließlich kann es vor allem bei älteren externen Geräten sein, dass deren Speicherkapazität eher gering ist, weshalb auch noch die Möglichkeit besteht, die maximale Größe eines Datensatzes und die maximale Größe aller zu transferierender Daten zusammen festzulegen. Stehen diese Werte auf Null (Standard-Wert), so werden alle Daten transferiert.

Einrichtung im Skript

Nach Aufruf des Konfigurations-Befehls im Terminal [2] bzw. nach Markierung des Plugins in Multisync-GUI [1] erscheint folgendes Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<?xml version="1.0"?> 
<config>
  <username></username>
  <password></password>
  <url></url>
  <port>8080</port>
  <usestringtable>0</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>contacts</contact_db>
  <calendar_db>calendar</calendar_db>
  <note_db>notes</note_db>
</config>

Die Optionen lassen sich wie folgt konfigurieren:

  • username und password: Nur angeben, falls ein Benutzername und ein Passwort verwendet werden sollen. Das kann aber problemlos leer gelassen werden.

  • url und port: Die zu verwendende URL und der zu verwendende Port, beides muss auch auf dem externen Gerät eingestellt werden. Meist reicht für die URL ein '/', Standard für den Port ist '8080'.

  • usestringtable: Entweder '1' oder '0', eine Einstellung für wbxml.

  • onlyreplace und onlyLocaltime: Beides kann normalerweise auf '0' belassen werden.

  • recvLimit und maxObjSize: Manchmal muss hier die Datengröße, die hochgeladen werden darf, beschränkt werden. Normalerweise braucht hier aber nichts zu stehen.

  • contact_db, calendar_db und note_db: Die Namen der zu synchronisierenden Datenbanken, und zwar so, wie sie von jenem Gerät benannt werden, das mit SyncML erreicht werden soll (also das Mobiltelefon). Die Voreinstellung kann aber versuchsweise so stehen gelassen werden; manchmal wird anstelle von contacts der Eintrag addressbooks verwendet und anstelle von calendar agenda; zudem beginnen die Datenbanknamen manchmal mit Großbuchstaben.

Beispiel-Konfiguration

Beispiel einer funktionierenden Konfiguration (zu einem Nokia 6680, das Beispiel stammt von opensync-Wiki 🇬🇧).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<config> 
  <username></username>
  <password></password>
  <url>/</url>
  <port>8080</port>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <recvLimit>10000</recvLimit>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

SyncML über einen OBEX-Client

Ob über ein USB-Kabel oder via Bluetooth, als Plugin-Typ ist SyncML over OBEX Client zu wählen, das Plugin selber heißt syncml-obex-client.

Einrichtung mit KitchenSync

OpenSync/SyncMLobexKitchenSyncConf.png Fügt man einer Gruppe ein SyncML-Plugin hinzu, so nennt KitchenSync [1] das zugehörige Mitglied automatisch Mobile Phone. Es darf aber nach Belieben umbenannt werden. Wird das Mitglied im Editier-Fenster markiert, so erscheint nebenstehende Oberfläche:

Im Reiter "Connection" ist zuerst zu wählen, ob die Verbindung via USB oder via Bluetooth laufen soll. Bei einer USB-Verbindung ist danach anzugeben, an welchem Interface das Verbindungskabel eingesteckt ist. Wie sich dies allenfalls im Terminal ermitteln lässt, ist weiter unten, bei der Skript-basierten Einrichtung erklärt. Bei einer Verbindung via Bluetooth ist einerseits die 12-stellige MAC-Adresse des externen Geräts, andererseits der Kanal anzugeben, über den die Verbindung laufen soll. Dies ist normalerweise Kanal 11; wie dies und wie die MAC-Adresse im Terminal herausgefunden werden kann, steht ebenfalls weiter unten bei der Skript-basierten Einrichtung und im Artikel zur Bluetooth-Einrichtung.

Im Reiter "Databases" ist anzugeben, wie die abzugleichenden Datenbanken auf dem externen Gerät heißen. Manchmal beginnen diese Namen mit Großbuchstaben.

Im Reiter "Options" könnten ein allfälliger Benutzername und das zugehörige Passwort angegeben werden. Entsprechendes müsste auch im externen Gerät eingetragen werden, dies kann normalerweise aber leer gelassen werden. Falls WAP Binary XML verwendet wird, sollte dort ein Häkchen gesetzt werden, hierzu kann es sinnvoll sein, auch "Use String Table" anzuwählen; die Option "Only Repalce Entries" bleibt aber normalerweise abgewählt. Zudem muss hier angegeben werden, welche Version von SyncML verwendet wird (Standard ist momentan 1.1). Unter "Identifier" ist ein Ausdruck einzutragen, den manche Geräte verlangen, um sich zu identifizieren. Wenn der Geräte-Hersteller eine eigene Synchronisations-Software anbietet, sollte deren Identifier verwendet werden (meist der Name der Software). Schließlich kann es vor allem bei älteren externen Geräten sein, dass deren Speicherkapazität eher gering ist, weshalb auch noch die Möglichkeit besteht, die maximale Größe eines Datensatzes und die maximale Größe aller zu transferierender Daten zusammen festzulegen. Steht dieser Wert auf Null (Standard-Wert), so werden alle Daten transferiert.

Einrichtung im Skript

Die Konfiguration des OBEX-Plugins läuft im Terminal [2] und in Multisync-GUI [1] für die USB- und die Bluetooth-Variante über dasselbe Script. Diese liegt in /home/benutzername/.opensync/ und dann, je nach dem wie viele Gruppen man hat, unter group1/ und dann entweder unter 1/ oder 2/ Das Skript sieh dann folgendermaßen aus:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0"?> 
<config>
  <bluetooth_address></bluetooth_address>
  <bluetooth_channel></bluetooth_channel>
  <interface>0</interface>
  <identifier></identifier>
  <version>1</version>
  <wbxml>0</wbxml>
  <username></username>
  <password></password>
  <type>5</type>
  <usestringtable>0</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>contacts</contact_db>
  <calendar_db>calendar</calendar_db>
  <note_db>notes</note_db>
</config>

Die Optionen lassen sich wie folgt konfigurieren:

  • bluetooth_address: (Nur beachten, wenn via Bluetooth synchronisiert werden soll!) Hier ist die MAC-Adresse des externen Gerätes anzugeben, sie lässt sich, so das Gerät in Reichweite ist, herausfinden mit

hcitool scan 
  • bluetooth_channel: (Nur beachten, wenn via Bluetooth synchronisiert werden soll!) Hier ist anzugeben, über welchen Kanal SyncML laufen soll. Das lässt sich herausfinden mit

sdptool browse BLUETOOTH_ADRESSE 

Die Ausgabe ist recht lang, gegen Ende sollte ein Block 'Service Name: SyncML Client' kommen, dort steht in der 6. Zeile der verwendete Kanal (normalerweise Channel 11).

  • interface: (Nur beachten, wenn via USB-Kabel synchronisiert werden soll!) Die Nummer des USB-Interface, das das Ziel-Gerät verwendet. Diese kann, bei angeschlossenem Gerät, herausgefunden werden mit

syncml-obex-client -u 
  • identifier: Ein Ausdruck, den das Plugin bei gewissen Geräten braucht, um sich zu identifizieren. Wenn der Geräte-Hersteller eine eigene Synchronisations-Software anbietet, sollte deren Identifier verwendet werden (meist der Name der Software).

  • version: Die zu verwendende Version von SyncML. Mögliche Angaben sind 0 für SyncML 1.0, 1 für SyncML 1.1 oder 2 für SyncML 1.2. Standard-Wert ist 1.

  • wbxml: '1' wenn das Plugin wbxml verwenden soll, '0' wenn nicht. Bei Unischerheit ausprobieren.

  • username und password: Beides muss nur angeben werden, falls ein Benutzername und ein Passwort wirklich verwendet werden sollen. Das kann man aber problemlos bleiben lassen, dieselben Angaben müssten aber auch im externen Gerät eingetragen werden.

  • type: Zwingendes Argument! Wenn das USB-Kabel verwendet wird, auf '5' stellen, bei Bluetooth unbedingt auf '2'.

  • usestringtable: Wenn wbxml verwendet wird, ist hier gewöhnlich auf '1' zu stellen, ansonsten '0'.

  • onlyreplace und onlyLocaltime: Beides kann normalerweise auf '0' belassen werden.

  • recvLimit und maxObjSize: Manchmal muss hier die Datengröße, die hochgeladen werden darf, beschränkt werden. Normalerweise braucht hier aber nichts zu stehen.

  • contact_db, calendar_db und note_db: Die Namen der zu synchronisierenden Datenbanken, und zwar so, wie sie von jenem Gerät benannt werden, das mit SyncML erreicht werden soll (also das Mobiltelefon). Die Voreinstellung kann aber versuchsweise so stehen gelassen werden; manchmal wird anstelle von contacts der Eintrag addressbooks verwendet und anstelle von calendar agenda; zudem beginnen die Datenbanknamen manchmal mit Großbuchstaben.

Die Einstellungen bei USB-Geräten, ob WBXML unterstützt, wird man so testen:

sudo syncml-obex-client -u 0 --wbxml --slow-sync text/x-vcard contact 

Es sollte eine Ausgabe etwa in folgender Form erscheinen

Codeconnection with device succeeded
Received an Alert for the DS Server at contact: Type: 200, Last 1501, Next 1501
Slowsyncing
Just received a new session with ID 1
Received the DevInf
Session 1 reported final. flushing
Received an reply to our Alert
Going to receive 0 changes
Received a modified entry 677 of size 217 and type text/x-vcard
                Data: BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:abh=C3=B6ren;Mailbox
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:abh=C3=B6ren, Mailbox
TEL;CELL:+49145643000333
X-IRMC-LUID:0002000002A5
END:VCARD

Received a modified entry 633 of size 289 and type text/x-vcard
                Data: BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8:Nachname;Vorname
FN;CHARSET=UTF-8:Nachname, Vorname
ORG;CHARSET=UTF-8:Firma
TEL;CELL:+49163689843611

Synchronisierung über USB

Für den usbraw-Zugriff sind Root-Rechte[4] notwendig, eine Synchronisierung mit Evolution ist allerdings mit sudo sehr unschön. Beheben lässt sich dieser Umstand durch das Anlegen einer udev-Regel. Zunächst für das angeschlossene USB-Gerät Hersteller (idVendor) und Produkt-ID (idProduct) ermitteln

lsusb 

danach in einem Editor[5] mit Root-Rechten eine Datei /etc/udev/rules.d/99-symbian-usb.rules mit folgendem Inhalt anlegen:

BUS=="usb", SYSFS{idVendor}=="????", SYSFS{idProduct}=="????", MODE="0660", GROUP="plugdev"

zuletzt udev aktualisieren

sudo reload udev 

Beispiel-Konfigurationen

Beispiel einer funktionierenden Konfiguration via Bluetooth (zu einem Nokia 6103)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?xml version="1.0"?> 
<config>
  <bluetooth_address>XX:XX:XX:XX:XX:XX</bluetooth_address>
  <bluetooth_channel>11</bluetooth_channel>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <type>2</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>contacts</contact_db>
  <calendar_db>calendar</calendar_db>
  <note_db>notes</note_db>
</config>

Beispiel einer funktionierenden Konfiguration via Bluetooth (zu einem Nokia 5800 XpressMusic. Achtung: Channel kann sich von selbst ändern! (Siehe 376845))

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0"?>
<config>
  <bluetooth_address>XX:XX:XX:XX:XX:XX</bluetooth_address>
  <bluetooth_channel>4</bluetooth_channel>
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>50000</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

Beispiel einer funktionierenden Konfiguration via Bluetooth (zu einem Nokia Communicator 9500)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?xml version="1.0"?> 
<config>
  <bluetooth_address>XX:XX:XX:XX:XX:XX</bluetooth_address>
  <bluetooth_channel>10</bluetooth_channel>
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <type>2</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>RcntTask</note_db>
</config>

Beispiel einer funktionierenden Konfiguration via USB-Kabel zu einem Nokia 6680, das Beispiel stammt von hier.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<config> 
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>5</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <recvLimit>10000</recvLimit>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

Beispiel einer funktionierenden Konfiguration via USB-Kabel zu einem Nokia 5320 XpressMusic, das Beispiel stammt von hier.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<config> 
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>5</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <recvLimit>0</recvLimit>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

Beispiel einer funktioniierenden Konfiguration des Nokia N97 mini via Bluetooth

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<config>
    <bluetooth_address>'Bluetooth-Adresse'</bluetooth_address>
  <bluetooth_channel>7</bluetooth_channel>
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>2</type>
  <usestringtable>0</usestringtable>
  <onlyreplace>0</onlyreplace>
  <onlyLocaltime>0</onlyLocaltime>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db>
</config>

Beispiel einer funktionierenden Konfiguration des Nokia X6 via USB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<config>
  <bluetooth_address></bluetooth_address>
  <bluetooth_channel></bluetooth_channel>
  <interface>0</interface>
  <identifier>PC Suite</identifier>
  <version>1</version>
  <wbxml>1</wbxml>
  <username></username>
  <password></password>
  <type>5</type>
  <usestringtable>1</usestringtable>
  <onlyreplace>0</onlyreplace>
  <recvLimit>0</recvLimit>
  <maxObjSize>0</maxObjSize>
  <contact_db>Contacts</contact_db>
  <calendar_db>Calendar</calendar_db>
  <note_db>Notes</note_db> 
 </config>

Erfolgreich getestete Geräte

via http-Server

  • Nokia 6680

  • Sony Ericson K610i

via OBEX-Client und USB

  • Nokia 5320 XpressMusic

  • Nokia 5800 XpressMusic

  • Nokia 6680

  • Nokia 7390

  • Nokia N73

  • Nokia X6

  • Sony Ericsson D750i (Kalender, Kontakte)

  • Sony Ericsson K770i (Kontakte u. Kalender)

via OBEX-Client und Bluetooth

  • Nokia 6103

  • Nokia Communicator 9500

  • Nokia 9300i mit Einstellung wie 9500

  • Nokia E50

  • Nokia E51

  • Nokia E71

  • Nokia 7610

  • Nokia 6110 Navigator (Nur v1.1 und Adressbuch)

  • Nokia 6300 (Kalender, Kontakte)

  • Nokia 5220 XpressMusic (Nur wenn man vorher Benutzername und Passwort anlegt, dann aber ohne Probleme)

  • Nokia 5800 XpressMusic (getestet: Kalender, Notizen)

  • Nokia N97 mini (getestet: Kalender, Kontakte)

Diese Revision wurde am 2. April 2012 07:53 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Kommunikation, Hardware