Už dlouho na mém seznamu úkolů hnije synchronizace mezi telefonem (Sony-Ericsson K750i) a nějakou rozumnou PIM aplikací v Linuxu (protože používám GNOME, tak jako cesta nejmenšího odporu se jeví Evolution). Už jsem se o to pokoušel několikrát, ale zatím to nikdy nefungovalo. Dneska (když už bylo venku tak jak bylo) jsem tomu věnoval opět nějaký čas a tentokrát jsem uspěl na první pokus :-).
Než jsem s čímkoliv začal, zazálohoval jsem si všechno z telefonu. Gammu to zvládne v pohodě a čemu jinému bych měl věřit než nástroji, který jsem si sám napsal?
gammu backup /tmp/phonebook.vcf gammu backup /tmp/calendar.vcs
A teď už je na čase si hrát s OpenSyncem . Pro tyto účely se může hodit setup guide a SyncML guide . Protože jsem dřív míval problémy s oběmi konci synchronizace - jak telefon tak Evolution končily s nějakou chybou, rozhodl jsem se na to jít tentokrát pomalu a začít se synchronizací z telefonu do souborů:
msynctool --addgroup file2phone msynctool --addmember file2phone file-sync msynctool --addmember file2phone syncml-obex-client
Teď už jenom nastavit ukládání souborů:
msynctool --configure file2phone 1
A nastavit cestu, kam se mají data ukládat:
<?xml version="1.0"?> <config> <!-- directory path for file-sync --> <path>/home/foo/phone-backup/</path> <!-- should care of subdirectories (TRUE or FALSE) --> <recursive>FALSE</recursive> </config>
Tím máme jednoduchou část za sebou a potřebujeme nastavit připojení k telefonu:
msynctool --configure file2phone 2
Naštěstí můžeme použít příklad z
SyncML guide
, jen stačí přidat Bluetooth adresu (dá se zjistit pomocí
hcitool scan
) a kanál (
sdptool browse
00:b0:0b:fa:ce:00
):
<?xml version="1.0"?> <config> <bluetooth_address>00:b0:0b:fa:ce:00</bluetooth_address> <bluetooth_channel>7</bluetooth_channel> <identifier>Sony Ericss</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>Agenda</calendar_db> <note_db>Notes</note_db> </config>
A teď už by měla fungovat synchronizace kontaktů z telefonu do vybraného adresáře:
msynctool --sync file2phone
Když už toto funguje, stačí přidat Evolution a mělo by být hotovo. Vytváření synchronizační skupiny je stejné, jen se použije jiný plugin. Synchronizaci s Evolution většinou není potřeba nijak nastavovat, výchozí hodnoty jsou rozumné (použije se jediná databáze, kterou Evolution automaticky vytvořila):
msynctool --addgroup phone2evo msynctool --addmember phone2evo evo2-sync msynctool --addmember phone2evo syncml-obex-client msynctool --configure phone2evo 1 msynctool --configure phone2evo 2
Ale ještě pořád není vyhráno - telefony Sony-Ericsson phones většinou mají rozbité cosi v synchronizaci poznámek (nebo to je možná rozbité v OpenSync, ale vyjde to nastejno, prostě bez tohoto kroku synchronizace neprojde) a je potřeba vypnout jejich synchronizaci. To můžeme udělat změněním filtrů ve vytvořené synchronizační skupině (filtr je v souboru
~/.opensync-0.22/group2/filter.conf
):
<?xml version="1.0"?> <filter> <note/> </filter>
A teď už konečně můžeme zkusit synchronizaci a mělo by to fungovat:
msynctool --sync phone2evo
Pokud chcete o trochu víc klikat, dá se to samé udělat pomocí GUI
multisync0.90
, ale stejně nakonec skončíte u editování XML souborů :-).