Import Contacts to ldap using kopano schema

Hey Guys,

I was wondering if there is a way to import contacts from another ldap server.

As far as I know when you want to add a contact in kopano you need to add the record to the kopano-ldap and the dn should have the following root: ou=Contacts,dc=cern,dc=ch.
The example you provide in the documentation is the one about Mary Poppins:

# Mary Poppins, Contacts, cern.ch
dn: cn=Mary Poppins,ou=Contacts,dc=cern,dc=ch
objectClass: inetOrgPerson
objectClass: top
objectClass: kopano-contact
uidNumber: 1001
sn: Poppins
cn: Mary Poppins
mail: mary@cern.ch

Now I have some contacts stored in another ldap server that I would like to add to the kopano-ldap.
The only idea that I had is create an ldif file with the contacts that I want to import and add them to the kopano-ldap.

Is there a way to simplify this procedure and import contacts from another ldap server even though they are implementing a different schema?

Is there any workaround that I can use to do that?

Thanks in advance

Riccardo

Hi @genz ,

kopano-server is only able to query one ldap server at a time, so when managing contacts in an ldap you have to make sure that this ldap also contains your users.

as for

@genz said in Import Contacts to ldap using kopano schema:

even though they are implementing a different schema?

you can quite freely configure the ldap attributes and object classes used by kopano, so it might be worth adapting your ldap.cfg to fit these external contacts.

Hey Guys,
I converted my contacts records and I added them to the OpenLDAP connected to the kopano-server.
Everything seems to work but when I search in the address book every search is very slow and if I do not type some characters I receive an error like this one: HTTP 500 Internal Server Error

I added 50’000 ish records and in the OpenLDAP I have defined the indexes for cn,sn and mail attributes with the clauses eq ,sub and pres.

I pretty sure that I am missing something here. But I am not able to understand what.
From the logs, every time I do a query using the web app it seems that kopano first does this:

my-host: SRCH base="dc=cern,dc=ch" scope=2 deref=0 filter="(|(|(objectClass=posixAccount)(objectClass=kopano-contact))(objectClass=kopano-contact)(|(objectClass=posixGroup)(objectClass=kopano-dynamicgroup))
my-host: SRCH attr=objectClass kopanoSharedStoreOnly kopanoResourceType kopanoSecurityGroup uidNumber gidNumber ou cn cn modifyTimestamp
my-host: SEARCH RESULT tag=101 err=0 nentries=1000 text=
my-host: SRCH base="dc=cern,dc=ch" scope=2 deref=0 filter="(|(|(objectClass=posixAccount)(objectClass=kopano-contact))(objectClass=kopano-contact)(|(objectClass=posixGroup)(objectClass=kopano-dynamicgroup))
my-host: SRCH attr=objectClass kopanoSharedStoreOnly kopanoResourceType kopanoSecurityGroup uidNumber gidNumber ou cn cn modifyTimestamp
my-host: SEARCH RESULT tag=101 err=0 nentries=1000 text=
my-host: SRCH base="dc=cern,dc=ch" scope=2 deref=0 filter="(|(|(objectClass=posixAccount)(objectClass=kopano-contact))(objectClass=kopano-contact)(|(objectClass=posixGroup)(objectClass=kopano-dynamicgroup))
my-host: SRCH attr=objectClass kopanoSharedStoreOnly kopanoResourceType kopanoSecurityGroup uidNumber gidNumber ou cn cn modifyTimestamp
my-host: SEARCH RESULT tag=101 err=0 nentries=1000 text=
[...]

and after it starts to search record using the UIDs:

my-host: SRCH base="dc=cern,dc=ch" scope=2 deref=0 filter="(|(&(objectClass=kopano-contact)(|(uidNumber=29815))))"
my-host: SRCH attr=objectClass uidNumber text cn uid userPassword mail kopanoAliases kopanoAdmin kopanoSharedStoreOnly kopanoResourceType kopanoResourceCapacity userCertificate;binary kopanoSendAsPrivilege 
my-host: SEARCH RESULT tag=101 err=0 nentries=0 text=
my-host: SRCH base="dc=cern,dc=ch" scope=2 deref=0 filter="(|(&(objectClass=kopano-contact)(|(uidNumber=29816))))"
my-host: SRCH attr=objectClass uidNumber text cn uid userPassword mail kopanoAliases kopanoAdmin kopanoSharedStoreOnly kopanoResourceType kopanoResourceCapacity userCertificate;binary kopanoSendAsPrivilege 
my-host: SEARCH RESULT tag=101 err=0 nentries=0 text=
my-host: SRCH base="dc=cern,dc=ch" scope=2 deref=0 filter="(|(&(objectClass=kopano-contact)(|(uidNumber=29817))))"
my-host: SRCH attr=objectClass uidNumber text cn uid userPassword mail kopanoAliases kopanoAdmin kopanoSharedStoreOnly kopanoResourceType kopanoResourceCapacity userCertificate;binary kopanoSendAsPrivilege 
my-host: SEARCH RESULT tag=101 err=0 nentries=0 text=

No matter which word I type the behaviour it’s always the same.

Thanks,
Riccardo

This post is deleted!

I found a solution:

I had to add this in the /etc/kopano/server.cfg in order to avoid the full sync for every query.

sync_gab_realtime = no