[sync] [horde] Sync with Funambol

Jan Schneider jan at horde.org
Sat Nov 8 17:46:03 UTC 2008


Zitat von Paul Faure <paul.faure at agr.gc.ca>:

>> > An example of a failed sync map entry (when I created a new contact on
>> > the client and tried to sync it to the server):
>> >
>> > syncml_syncpartner = fol-T05PVFRBNDc2NTA2OmZhdXJlcA==
>> > syncml_db = contacts
>> > syncml_uid = paul
>> > syncml_cuid =
>> >  
>> 0000000080686E075BD4C7488AD4D1CFE7CA75700700AC094F4F121FB74DAB99B50F115983F900000132119F00005F1403857813194AACFA1F3F566A159400000188CBFD0000
>> > syncml_suid = 3e37b9140457c0f37039de9227cb4915
>> > syncml_timestamp = 0
>>
>> That's a huge client id. Why the heck does it generate such a long id?
>> Anyway, one thing to check would be that there is no overflow
>> somewhere. The columns once used to be smaller IIRC, so make sure that
>> this is the complete client id and that it doesn't get truncated in
>> the database.
>
> About 6 months ago when I started syncing I had to increase the database
> field to a varchar of 256. Im running Outlook which stores its contacts
> in an exchange environment.
>
>> > Also, I can't find a matching entry in turba_objects where object_uid =
>> > 3e37b9140457c0f37039de9227cb4915.
>>
>> Yeah, UIDs look different anyway. I sill have no idea where this id is
>> coming from. This rather looks like a contact ID.
>
> My thought was that its a hash of an empty string or simple string.
>
>> > How is the contact ID generated? And with a new contact, who (client or
>> > server) is responsible to generate it.
>>
>> Both, the contact ID and the UID are generated by Horde when a contact
>> is added from a client. Only the UID is used for synchronization, the
>> ID shouldn't show up anywhere.
>>
>> > Im more than willing to debug this one myself, I just need a little bit
>> > of background info.
>> > In order to setup an LDAP front end to the Horde contact table, I had to
>> > create a new field in the turba_objects table called "id" which is
>> > simply a unique auto_inc 32 bit integer. OpenLDAP with a DB backend
>> > requires this integer field as a unique entry instead of a varchar
>> > unique field.
>> > This could be the cause of my troubles.
>>
>> You didn't mention so far, or I missed that, that you are using LDAP.
>> This might have some influence, though I can't think of one out of my
>> head. But I don't understand from you discription anway, how your
>> setup looks like.
>
> My setup is simple.
> Client (Outlook or iPhone) <-> Server (Horde) <-> DB (mysql)

Is this the setup when doing the synchronization, i.e. with a SyncML client?

> I would imagine this is the most popular setup out there.
>
> In order to make my contacts more accessible, I installed OpenLDAP with
> the DB backend. This is a read only LDAP setup, so you can't modify
> contacts or add them through LDAP. OpenLDAP simply uses the horde DB to
> display the contacts.
>
> Client (Outlook) <- Server (OpenLDAP) <- DB (mysql)

But how is Turba accessing the address book? Through SQL or LDAP?

> The one change I had to do to the horde env/setup is the addition of the
> "id" column in the turba table. This is because the SQL backend for
> OpenLDAP requires an INT as the unique key.
> I implemented this setup about 6 months ago and it all worked fine until
> the recent upgrade.

And how did you map the column in Turba? To which attribute?

> Could you point me in the direction of where in Horde the UID is
> generated? I will add all kinds of debug output and track this one down.

In Turba_Driver::add(), the call to generateUID().

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the sync mailing list