Michal Čihař - Synchronizace s mobilem - konečně

Synchronizace s mobilem - konečně

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ů :-).