On 09/15/2011 05:16 PM, Lukas Zeller wrote:
Hello Andris,
On Sep 12, 2011, at 11:59 , Andris Pavenis wrote:
There are following problems synchronizing contacts between libsynthesis
based server (our own implementation) and S60 3rd edition mobile phones
(I used Nokia E65 and E50 for testing). I'm giving an example to illustrate
the problem:
- let us assume that contact on both server and in mobile phone address book
contain one or several phone numbers of the same type (for example
TEL_FLAGS[xx]:8):
TEL[0]:11111111
TEL_FLAGS[0]:8
TEL[1]:22222222
TEL_FLAGS[1]:8
TEL[2]:33333333
TEL_FLAGS[2]:8
TEL[3]:44444444
TEL_FLAGS[3]:8
- a part of phone numbers are deleted on server side (not from the end):
TEL[0]:33333333
TEL_FLAGS[0]:8
TEL[1]:44444444
TEL_FLAGS[1]:8
- An attempt to synchronize device causes SyncML Replace command
to be generated for updating contact on client side. First 2 numbers
on client device are replaced with 2 numbers send from server
but 3rd and 4th number remains unchanged
TEL[0]:33333333
TEL_FLAGS[0]:8
TEL[1]:44444444
TEL_FLAGS[1]:8
TEL[2]:33333333
TEL_FLAGS[2]:8
TEL[3]:44444444
TEL_FLAGS[3]:8
The same problem appears also when there is only one number of each type
present and some of them are deleted on server side. After synchronization
it is still present on client side (none replaced, so the first remains where
it was)
As far as I checked Funambol server tries to workaround this problem by sending
empty phone number after I remove phone number using Funambol WebGui demo
version (it supports however only one number of each type so test possibilities
are
rather limited)
There is a config option for libsynthesis for repeating properties. You can set the
"minshow" attribute on<position> (see SySync_config_reference 10.3.7, approx
page 84) to force the engine to produce empty fields in excess of the number of stored values.
The problem is that the handling of empty properties is highly client specific
(from crashing, to ignoring them, to interpreting them to actually wipe
existing fields).
Note that the "suppressempty" attribute of<property> as well as the<noemptyproperties>
in<remoterule> can both overrule a "minshow" specification.
Attempted to use attribute minshow but it did not help even if empty
phone number of the same type (TEL_FLAGS:8) was present. Funambol server
is somehow able to remove the phone number from contact on device only
when contact is edited from Web Demo UI. All happened in the same way as
described above when I used 2 phones in the tests (SyncML replace from
server only replace provided number of phones and do not touch any
others when present).
It seems to happen so with S60 3rd edition phones
(http://en.wikipedia.org/wiki/S60_%28software_platform%29).
Tried also Nokia E90 Communicator (S60 3rd Edition, Feature Pack 1): it
behave even worse as replace removes all phone numbers of the same type
from contact and put the last one from the replacement in place of old
ones. It should not however cause problems when user has no more than
one phone number of each type in contact.
Andris
_______________________________________________
os-libsynthesis mailing list
[email protected]
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis