Memotoo
Server with very good support for SyncEvolution, see http://www.memotoo.com/index.php?rub=infoSyncML. It is part of SyncEvolution’s nightly testing and included in the list of configuration templates that come with SyncEvolution.
Server with very good support for SyncEvolution, see http://www.memotoo.com/index.php?rub=infoSyncML. It is part of SyncEvolution’s nightly testing and included in the list of configuration templates that come with SyncEvolution.
| Key | Value |
|——|—–|
| Phone manufacturer | SonyEricsson|
| Phone model | P1i|
| Phone firmware version |CXC162108 R6G04 |
| Data that can be synchronized | none |
| Data that has problems | contacts,events,tasks,memos |
| SyncEvolution version | 1.0 beta 3 |
| SyncEvolution platform | Gentoo linux |
| SyncEvolution backend | Evolution/as plain files/ |
| Configuration template included in SyncEvolution: | no, syncevo-phone-config.py could not create one neither |
| Tested by | George Schreiber |
Comments:
Failed to get this phone syncing with the 1.0 beta 2 as well, it seemed like the phone bluetooth got broken (needed bluetooth restart on the phone) when tried to sync according to the wiki description, there was one similar bluetooth problem during running syncevo-phone-config, around the 1100th test (was not watching carefully as this process was running for several hours).
If trying to sync using the config that was created according to the 1.0 beta 2 wiki, it fails with these messages:
[ERROR] ObexTransport: Transport Exception in sdp_source_cb
[ERROR] ObexTransport: Transport Exception in sdp_source_cb
[ERROR] ObexTransprotAgent: Underlying transport error
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | LOCAL | REMOTE | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| addressbook | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| calendar | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| memo | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| todo | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Fri Apr 23 22:17:19 2010, duration 0:10min |
| external transport failure (local, status 20043) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
First ERROR encountered: ObexTransport: Transport Exception in sdp_source_cb
the logfile (for details) ends like this (apparently where things go wrong):
[2010-04-23 22:17:19.241] 0: integer ITEMLIMIT
[2010-04-23 22:17:19.241] 1: integer NEEDFILTER
[2010-04-23 22:17:19.241] 2: integer PASSES
[2010-04-23 22:17:19.241] Resolving - processitemscript,
ctx=0xCA8FCD8, VarDefs:
[2010-04-23 22:17:19.241] 0: integer ITEMLIMIT
[2010-04-23 22:17:19.241] 1: integer NEEDFILTER
[2010-04-23 22:17:19.241] 2: integer PASSES
[2010-04-23 22:17:19.241] 3: integer n
[2010-04-23 22:17:19.242] SyncML server account:
[2010-04-23 22:17:19.242] client: SyncEvolution 1.0beta3 for
workstation
[2010-04-23 22:17:19.242] device ID:
syncevolution-44d23b69-c550-444f-b60f-2d453269e597
[2010-04-23 22:17:24.398] ObexTransport: Transport Exception in
sdp_source_cb
[2010-04-23 22:17:24.398] Server Alerted Sync init with SANFormat 12
failed, trying with legacy format
[2010-04-23 22:17:29.537] ObexTransport: Transport Exception in
sdp_source_cb
[2010-04-23 22:17:29.538] TransportException thrown at
ObexTransportAgent.cpp:376
[2010-04-23 22:17:29.538] ObexTransprotAgent: Underlying transport
error
Configuration template:
=== srejbi_p1i/config.ini ===
syncURL = obex-bt://00:1E:45:E2:71:E0
username =
password =
loglevel = 6
clientAuthType = md5
#remoteIdentifier = Sony Ericsson PC Suite for Smartphones
remoteIdentifier = mRouter SockComm
PeerIsClient = 1
enableWBXML = 0
WebURL = http://www.scheduleworld.com
ConsumerReady = 0
=== srejbi_p1i/.internal.ini ===
HashCode = 3690260817
ConfigDate = 20100423T131201Z
sync = two-way
type = addressbook:text/x-vcard
uri = addressbook
=== srejbi_p1i/sources/addressbook/.internal.ini ===
sync = two-way
type = calendar:text/x-vcalendar
uri = calendar
=== srejbi_p1i/sources/calendar/.internal.ini ===
sync = two-way
type = memo
uri = memo
=== srejbi_p1i/sources/memo/.internal.ini ===
sync = two-way
type = calendar:text/x-vcalendar
uri = todo
=== srejbi_p1i/sources/todo/.internal.ini ===
# used by the Synthesis library internally; do not modify
# adminData =
# unique integer ID, necessary for libsynthesis
# synthesisID = 0
will try to generate another config with 1.0 beta 3 and update the wiki when there are some more results…
UPDATE:
regenerated the config files using the beta 2 howto. my best guess is that the phone syncml client is buggy, the same thing happens as before:
check that phone is ok for sync:
sdptool search --bdaddr 00:1E:45:E2:71:E0 SYNCML
Searching for SYNCML on 00:1E:45:E2:71:E0 ...
Service Name: SyncMLClient
Service Description: SyncML BT client
Service RecHandle: 0x10045
Service Class ID List:
UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
"OBEX" (0x0008)run sync:
syncevolution srejbi_p1i
[INFO] calendar: inactive
[INFO] memo: inactive
[INFO] todo: inactive
[INFO] Server sending SAN
[ERROR] OBEX Request 3 got a failed response Forbidden
[ERROR] ObexTransprotAgent: Underlying transport error
Synchronization failed, see /home/george/.cache/syncevolution/srejbi__p1i-2010-04-24-10-53/syncevolution-log.html for details.
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | LOCAL | REMOTE | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| addressbook | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Sat Apr 24 10:53:19 2010, duration 0:03min |
| external transport failure (local, status 20043) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
First ERROR encountered: OBEX Request 3 got a failed response Forbidden
log file:
Start of log - Synthesis SyncML Engine 3.4.0.6
[-- collapse all --][++ expand all ++]
[2010-04-24 10:53:19.458] CreateContext SyncEvolution// => 0
[2010-04-24 10:53:19.458] Module_Capabilities:
PLATFORM:Linux
DLL:true
MINVERSION:V1.0.6.0
MANUFACTURER:SyncEvolution
DESCRIPTION:SyncEvolution Synthesis DB Plugin
plugin_datastore_str:no
plugin_datastore_key:yes
ITEM_AS_KEY:yes
plugin_datablob:no
[2010-04-24 10:53:19.460] Module_PluginParams
Engine=01070000
[2010-04-24 10:53:19.462] SyncML server account:
[2010-04-24 10:53:19.462] client: SyncEvolution 1.0beta3 for
workstation
[2010-04-24 10:53:19.462] device ID:
syncevolution-44d23b69-c550-444f-b60f-2d453269e597
[2010-04-24 10:53:19.465] calendar: inactive
[2010-04-24 10:53:19.467] memo: inactive
[2010-04-24 10:53:19.469] todo: inactive
[2010-04-24 10:53:19.478] D-Bus client :1.17332 has disconnected
[2010-04-24 10:53:19.478] D-Bus client :1.17332 is destructing
[2010-04-24 10:53:21.197] Connecting Bluetooth device with address
00:1E:45:E2:71:E0 and channel 3
[2010-04-24 10:53:21.760] OBEX progress
[2010-04-24 10:53:21.819] OBEX Transport: get header who from connect
response with value SYNCML-SYNC
[2010-04-24 10:53:21.819] Server sending SAN
[2010-04-24 10:53:21.819] ObexTransport send is called
[2010-04-24 10:53:21.819] OBEX progress
[2010-04-24 10:53:21.938] OBEX progress
[2010-04-24 10:53:22.642] OBEX Request 3 got a failed response
Forbidden
[2010-04-24 10:53:22.643] TransportException thrown at
ObexTransportAgent.cpp:408
[2010-04-24 10:53:22.643] ObexTransprotAgent: Underlying transport
error
and some “fun” (phone needs a bluetooth restart to get back to normal):
sdptool search --bdaddr 00:1E:45:E2:71:E0 SYNCML
Searching for SYNCML on 00:1E:45:E2:71:E0 ...until a BT restart is done on the phone, further sync attempts end up like this:
[INFO] calendar: inactive
[INFO] memo: inactive
[INFO] todo: inactive
[ERROR] ObexTransport: Transport Exception in sdp_callback_impl
[ERROR] ObexTransportAgent: Bluetooth service search failed
[ERROR] ObexTransprotAgent: Underlying transport error
Synchronization failed, see /home/george/.cache/syncevolution/srejbi__p1i-2010-04-24-10-56/syncevolution-log.html for details.
Changes applied during synchronization:
+---------------|-----------------------|-----------------------|-CON-+
| | LOCAL | REMOTE | FLI |
| Source | NEW | MOD | DEL | ERR | NEW | MOD | DEL | ERR | CTS |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| addressbook | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| start Sat Apr 24 10:56:24 2010, duration 0:02min |
| external transport failure (local, status 20043) |
+---------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+
First ERROR encountered: ObexTransport: Transport Exception in sdp_callback_impl
log:
Start of log - Synthesis SyncML Engine 3.4.0.6
[-- collapse all --][++ expand all ++]
[2010-04-24 10:56:24.184] CreateContext SyncEvolution// => 0
[2010-04-24 10:56:24.184] Module_Capabilities:
PLATFORM:Linux
DLL:true
MINVERSION:V1.0.6.0
MANUFACTURER:SyncEvolution
DESCRIPTION:SyncEvolution Synthesis DB Plugin
plugin_datastore_str:no
plugin_datastore_key:yes
ITEM_AS_KEY:yes
plugin_datablob:no
[2010-04-24 10:56:24.185] Module_PluginParams
Engine=01070000
[2010-04-24 10:56:24.187] SyncML server account:
[2010-04-24 10:56:24.187] client: SyncEvolution 1.0beta3 for
workstation
[2010-04-24 10:56:24.187] device ID:
syncevolution-44d23b69-c550-444f-b60f-2d453269e597
[2010-04-24 10:56:24.191] calendar: inactive
[2010-04-24 10:56:24.193] memo: inactive
[2010-04-24 10:56:24.193] todo: inactive
[2010-04-24 10:56:24.203] D-Bus client :1.18023 has disconnected
[2010-04-24 10:56:24.203] D-Bus client :1.18023 is destructing
[2010-04-24 10:56:26.394] ObexTransport: Transport Exception in
sdp_callback_impl
[2010-04-24 10:56:26.394] ObexTransportAgent: Bluetooth service
search failed
[2010-04-24 10:56:26.395] TransportException thrown at
ObexTransportAgent.cpp:376
[2010-04-24 10:56:26.396] ObexTransprotAgent: Underlying transport
error
(that looks fair enough as apparently the BT-syncml component must be crashed on the phone)
config (simplified, addressbook only, same results if playing with WBXML or remoteIdentifier):
===config.ini===
syncURL = obex-bt://00:1E:45:E2:71:E0
remoteIdentifier = PC Suite
PeerIsClient = 1
SyncMLVersion = 1.2
enableWBXML = 1
WebURL = http://www.scheduleworld.com
ConsumerReady = 1
===sources/addressbook/config.ini===
sync = two-way
type = addressbook:text/x-vcard
uri = Contact
===| Key | Value |
|---|---|
| Phone manufacturer | Sony Ericsson |
| Phone model | K750i |
| Phone firmware version | ? |
| Data that can be synchronized | contacts, events, tasks, memos |
| Data that has problems | |
| SyncEvolution version | 1.0 beta 3 |
| SyncEvolution platform | Linux desktop |
| SyncEvolution backend | plain files in syncevo-phone-config |
| Configuration template included in SyncEvolution: | no |
| Tested by | Patrick Ohly |
Comments:
Only tested with “syncevo-phone-config –advanced”. In other words, at least simple items could be copied to and from the phone.
Configuration template:
=== template.ini ===
fingerprint = <Model> <Manufacturer>
=== config.ini ===
SyncMLVersion = 1.1
peerIsClient = 1
remoteIdentifier = PC Suite
=== sources/addressbook/config.ini ===
type = addressbook:text/vcard
sync = two-way
uri = Contact
=== sources/calendar/config.ini ===
type = calendar:text/x-vcalendar
sync = two-way
uri = Calendar
=== sources/todo/config.ini ===
type = todo:text/x-vcalendar
sync = two-way
uri = Task
=== sources/memo/config.ini ===
type = memo:text/plain
sync = two-way
uri = MemoContributed on 10.09.2006 by Mathias Weyland, who also graciously provided access to a server for testing for a while. Not currently tested.
SyncEvolution can handle synchronization with eGroupware (eGW), starting with 0.4-pre2 plus one patch, which was included in 0.4.
Make sure eGW fits the needs for correct operation with syncML, in particular php5 and Pear::Log. See here for information about requirements and settings.
The SyncEvolution setup is rather straightforward. Although the SyncML code of eGW is based on horde (see above), there’s no need to restrict authentication to auth-basic.
Set syncURL to http://<host>/<egw-base>/rpc.php. Set “type = text/calendar” and “uri = ./calendar” for the calendar and “type = text/x-vcard” and “uri = ./contacts”, respectively for the address book.
Warning: “uri = ./calendar” apparently is the official uri, but several users reported that with that setting events created in eGW were not copied into Evolution while “uri = calendar” worked alright. Until this is clarified, the recommendation is to use “uri = calendar”.
All in all, synchronization is working well, but I’d like to mention some things I noticed not to work:
“A known issue of old Evolution versions.” — Patrick
“eGW seems to rely on storing the remaining instances of an event, but does not include this information in the data it sends to SyncEvolution. On the other hand, SyncEvolution also does not yet support this either. Exceptions defined in Evolution’s dialog are stored as simple properties and are sent to the server, but eGW does not seem to use that information.”
“Could not reproduce. If it still occurs, please submit a bug report.”
Contributed on 08.05.2006 by Todd Pytel based on an early 0.4 CVS snapshot.
The Horde framework includes a SyncML component compatible with SyncEvolution and other SyncML clients. This component is built in to the core framework and does not need to be separately installed. For synchronization to work, you need to do a few things….
clientAuthType = syncml:auth-basic serverAuthType = syncml:auth-basicto the ~/.sync4j/evolution/horde/spds/syncml/config.txt file (see below).
syncURL = https://your.horde.site.com/horde/rpc.phpAdjust http/https appropriately and make sure the address matches the webroot configuration on the server.
deviceId = sc-api-nat-<identifier>Each computer/username combo that syncs should have a different identifier, for example, using an identifier like “home-myusername” makes sense. The username and password lines should match your Horde username and password. Add the AuthType lines from #2, if you don’t want md5 authentication. Next, decide which Evolution databases you want to synchronize. I use only the addressbook, but the others should be similar. In ~/.sync4j/evolution/horde/spds/sources/addressbook_1/config.txt set
uri = contactsThat’s it. The other components use “calendar” (Kronolith), “notes” (Mnemo), and “tasks” (Nag). If you don’t want to synchronize a particular database, be sure to set “sync = none” in its config file.
syncevolution hordeIf you get errors, check out the Horde Sync wiki for more information on debugging. The sync@lists.horde.org mailing list is also very useful. Check the archives there, to see if there’s any info about your problem.
Enhancement (Note: This may be unnecessary when Turba 3 is released.)
The default configuration for Turba (Horde’s address book component) is less than ideal for SyncML, because the turba_objects database table is somewhat oversimplified (for example, all components of an address are combined in a single field). This leads to vcards that are missing some fields when they’re synced between Horde and Evolution. Fortunately, Turba is very clever, when it comes to reading its database, and can automagically adjust to many nondefault configurations. If you’re creating a fresh Turba installation, you can improve its SyncML capabilities greatly by using this custom sources.php file. If you do this, then you’ll also need to make sure the appropriate fields are available in the turba_objects table in your database. Using this postgres script, instead of the one included with Horde, will create an appropriate turba_objects from scratch. For MySQL, there is no such script available, so make the changes manually. Nothing else needs to be done with Turba, apart from using the custom sources.php and creating an appropriate turba_objects table. The Turba code will automatically recognize the new fields and use them correctly in SyncML transactions. Thanks to Karsten Fourmont for providing this solution.
The Synthesis server is a very configurable server which stores its data in a database. Contact data can be exchanged in vCard 2.1 and 3.0 format when using the default configuration, but due to how it is stored, several attributes used by Evolution get lost or modified. It might be possible to protect against loss of those attributes, by tuning the Synthesis server setup. More work would also be required to exchange calendar entries and tasks, because in the default configuration they are not accepted in the iCalendar 2.0 format of Evolution.
OVI.com is Nokia’s set of web services, including among them complete PIM data handling and synchronization with phones via SyncML. Formal interoperability testing has not been done yet, but a user of SyncEvolution 0.9.1 reports that it works for him. Getting the necessary setting information for SyncEvolution is a bit tricky, so check out his nice report for a step-by-step guide.
Since SyncEvolution 0.9 with calendar and task support. Funambol supports iCalendar 2.0 in the current server, so this is enabled in the configuration template. Not all iCalendar 2.0 features are supported by the server, most notably support for meetings (drops attendees), meeting invitations (drops UID), detached recurrences (drops RECURRENCE-ID). See README.funambol for details.
Interoperability with the Funambol server was improved in SyncEvolution 0.9 by adding support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY, #2418). Lost ACTION property has a work around (#2422).
To enable the full support for all data in a configuration created with SyncEvolution < 0.9, so that it exchanges items in the more suitable iCalendar 2.0 format, use:
syncevolution --configure \
--source-property sync=two-way \
funambol calendar todo
syncevolution --configure \
--source-property type='calendar:text/calendar!' \
funambol calendar
syncevolution --configure \
--source-property type='todo:text/calendar!' \
funambol todoWithout the exclamation mark, format auto-negotiation would pick the less capable vCalendar 1.0 format because that is marked as preferred by the server.
Google follows the vCard 2.1 specification, and thus does not support some of the vCard 3.0 additions, nor some of the common extensions. As a result, several properties are not synchronized (nickname, birthday, spouse/manager, URLs, …). Only one top-level organization seems to be supported. For details, see README.google.
Regarding Google’s SyncML support, refresh-from-client and one-way-from-client sync modes are not supported. Deleting contacts moves them out of the main address without deleting them permanently. When adding such a contact again, the server discards the data sent by the client and recreates the contact with the data that it remembered.
Because SSL certificate checking for Google works only with libsoup if the platform has a patched libsoup (http://bugzilla.gnome.org/show_bug.cgi?id=589323) or libsoup >= 2.28, certificate checking remains turned off by default for Google. If your platform has a suitable libsoup (like Moblin 2.0), then enable checking with:
syncevolution --configure \
--sync-property SSLVerifyServer=true \
--sync-property SSLVerifyHost=true \
googleOnly supported indirectly through other SyncML services, like ScheduleWorld and GooSync, because Google itself does not provide access via SyncML.
ScheduleWorld preserves almost all Evolution contact and calendar data. The exceptions are: