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]:
opensync-plugin-syncml
Befehl zum Installieren der Pakete:
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¶
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
undpassword
: Nur angeben, falls ein Benutzername und ein Passwort verwendet werden sollen. Das kann aber problemlos leer gelassen werden.url
undport
: 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
undonlyLocaltime
: Beides kann normalerweise auf '0' belassen werden.recvLimit
undmaxObjSize
: Manchmal muss hier die Datengröße, die hochgeladen werden darf, beschränkt werden. Normalerweise braucht hier aber nichts zu stehen.contact_db
,calendar_db
undnote_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 voncontacts
der Eintragaddressbooks
verwendet und anstelle voncalendar
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¶
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
undpassword
: 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
undonlyLocaltime
: Beides kann normalerweise auf '0' belassen werden.recvLimit
undmaxObjSize
: Manchmal muss hier die Datengröße, die hochgeladen werden darf, beschränkt werden. Normalerweise braucht hier aber nichts zu stehen.contact_db
,calendar_db
undnote_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 voncontacts
der Eintragaddressbooks
verwendet und anstelle voncalendar
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¶
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)