I have to disagree with the view that an LDAP addressbook is not feasible.
Having spent some time on this, I think I've come up with a workable
solution.
First: An LDAP server. The only two options worth considering are OpenLDAP
and Sun JS Directory Server + JS Directory Proxy Server. Both are free of
charge, however OpenLDAP is Free Software, whereas Sun JSDS comes with a
nice GUI administration tool and editor and very comprehensive
documentation. OpenLDAP generally leads in features, while Sun JSDS has very
nice integration with Solaris and other Sun products.
Second: An editor. Editing from most mail clients is currently not possible,
so a good editor is essential. In particular, a generic LDAP editor isn't
going to pass muster with real users. Initially I was using LABE [1],
however I later came across ConTagged [2], which is a good looking and
nicely featured webapp. It's even got tagging, making it suitable for Web
2.0 companies ;-) The existing version (0.4) is good, but a bit
inconsistent, so I've made some improvements. My code isn't publically
available as yet, but that's just because I've been slack about contacting
upstream.
Third: A schema. LABE comes with a nice schema creating an officePerson
which contains some Outlook and Mozilla attributes. It also includes the
evolutionPerson schema, which was changed to be AUXILLARY more than two
years ago. The combination of the two seems to be quite sane and
comprehensive. Part of my modifications to ConTagged was to align its use to
the fields in this schema.
Fourth: Email clients. The three big ones are Outlook, Evolution and
Thunderbird.
Outlook's use of LDAP seems to be limited to manual searching (no
autocomplete) and you can't view the other attributes as you would a local
addressbook entry. The basic functionality is there, and it does have a
large install base.
Thunderbird is somewhat more flexible in that you can customize the search
filter quite easily, while fiddling with hidden prefs allows you to alter
the autocomplete [5], attribute mapping [6][7] and quick search [8].
Evolution alone has edit support, which makes it by far my preferred client,
however it doesn't work that well on Windows. Also, its attribute mapping is
slightly brainded (eg. no use of givenName), but another hack I made to
ConTagged works around that.
Fifth: Attribute mapping. Now we get to the magic. With use of OpenLDAP's
slapd-relay [9] or slapd-ldap modules and slapo-rwm [10] overlay, or
alternatively Sun JS Directory Proxy Server, we can present the same data in
several different attributes with attribute remapping. So if you are using
an app with stupid attribute names, you can just stick it behind one of the
above servers and remap them to your existing schema.
Side note: IMHO, if you an excellent grounding in the capabilities of a
modern LDAP server, you could do worse than to read the Sun documentation
[10][11]. If I wasn't aware of the features of Sun JS Directory Proxy Server
I wouldn't have gone looking for slapo-rwm and slapd-{relay}. It was only by
reading its docs that the setup of having a proxy server in front of
different LDAP servers and rewriting attribute names was made known to me.
And there's a lot more features in OpenLDAP that there just isn't good
documentation on how to use - the Admin guide is an good administration
reference, but there is no documentation on the new controls that are
supported, or examples on how to use them. RFC 4527 is an excellent example
of this - it seems like an awesome feature, but I really have no idea how to
properly use it. </rant>
Sixth: Asterisk integration. With the LDAPGet [13][14] and Click2Call [15],
names can be looked up from callerid, and phone numbers called directly from
ConTagged. I'm also going to add an interface so recent incoming calls that
don't have an entry in the address book can be used to create a new entry.
Anyway, the above is a bit long, but it is all quite feasible (I have points
1-4 and 6 working) even if there is still room for improvement.
--
James Andrewartha
[I just joined the list - apologies for no References: header]
[1] <http://sourceforge.net/projects/labe/>
[2] <http://www.cosmocode.de/en/leistungen/linux/ldapab/>
[3]
<http://labe.cvs.sourceforge.net/labe/labe/extension.schema?revision=1.2&view=markup>
[4]
<http://svn.gnome.org/viewcvs/evolution-data-server/trunk/addressbook/libedata-book/evolutionperson.schema?revision=3951&view=markup>
[5] <http://www.mozilla.org/projects/thunderbird/specs/ldap.html>
[6] <https://bugzilla.mozilla.org/show_bug.cgi?id=119291>
[7]
<http://www.cit.cornell.edu/computer/email/thunderbird/config-ldap.html#attributes>
[8] <http://www.mozilla.org/mailnews/arch/addrbook/hiddenprefs.html>
[9] <http://www.openldap.org/software/man.cgi?query=slapd-relay>
[10] <http://www.openldap.org/software/man.cgi?query=slapo-rwm>
[11] <http://docs.sun.com/app/docs/coll/1079.2>
[12] <http://docs.sun.com/app/docs/coll/S1_s1dirproxys52>
[13] <http://www.mezzo.net/asterisk/app_ldap.html>
[14] <http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+LDAPget>
[15]
<http://www.asteriskextras.com/index.php?option=com_content&task=view&id=12&Itemid=2>
---
You are currently subscribed to [email protected] as: [EMAIL PROTECTED]
To unsubscribe send email to [EMAIL PROTECTED] with the word UNSUBSCRIBE as the
SUBJECT of the message.