I can now, reasonably reliably, synchronise between my company exchange
account and KDE for calendar and contacts. The only code change I have made
is the activesyncd patch in
https://bugs.freedesktop.org/show_bug.cgi?id=59265
It works mostly, although sometimes the server insists on a FolderSync. I am
currently working on trying to reproduce that reliably so I can implement a
fix in activesyncd to do the FolderSync if the server complains. At the
moment I haven't worked out what causes the error. Note that if the error
occurs, I can force a folder sync using:
dbus-send --print-reply \
--dest=org.meego.activesyncd /EasCommon \
org.meego.activesyncd.EasCommon.get_folders \
string:'user@company.com' boolean:true
I haven't yet added code to handle folder names so folders have to be set up
using folder IDs (determined by looking in activesyncd's cache). I was going
to add a Wiki page showing the configuration commands I use, but before doing
that I thought I would post them here for comment. Is anything here wrong or
unnecessary?
# Activesynd setup
gconftool --type string -s \
/apps/activesyncd/accounts/user(a)work.com/username workdomain\username
gconftool --type string --set \
/apps/activesyncd/accounts/user(a)work.com/serverUri \
https://activesync.work.com/Microsoft-Server-ActiveSync
# Contacts folder
syncevolution --configure --template none keyring=KDE backend=kde-contacts \
database=akonadi:?collection=17 @KDE-test contacts
syncevolution --configure syncURL= username=user(a)work.com \
backend=eas-contacts database=2 dumpData=0 printChanges=0 \
target-config@work-test contacts
syncevolution --configure --template none peerIsClient=1 \
syncURL=local://@work-test username= sync=two-way \
work-test@KDE-test contacts
# Personal contacts folder
syncevolution --configure --template none keyring=KDE backend=kde-contacts \
database=akonadi:?collection=21 @KDE-test personal
syncevolution --configure syncURL= username=user(a)work.com \
backend=eas-contacts database=25 dumpData=0 printChanges=0 \
target-config@work-test personal
syncevolution --configure --template none peerIsClient=1 \
syncURL=local://@work-test username= sync=two-way \
work-test@KDE-test personal
# Calendar folder
syncevolution --configure --template none keyring=KDE backend=kde-calendar \
database=akonadi:?collection=19 @KDE-test calendar
syncevolution --configure syncURL= username=user(a)work.com \
backend=eas-events database=1 dumpData=0 printChanges=0 \
target-config@work-test calendar
syncevolution --configure --template none peerIsClient=1 \
syncURL=local://@work-test username= sync=two-way \
work-test@KDE-test calendar
# Sync all three folders
syncevolution work-test@KDE-test