On 08/04/2020 19:14, James Courtier-Dutton wrote:
On Thu, 20 Feb 2020 at 10:57, Marco van Beek via GLLUG
<gllug@mailman.lug.org.uk> wrote:
Basically we currently have an LDAP address book which is used by our
desktop phones and our scanner. We also have started to use CardDAV as
support is slowly extended into Thunderbird and Outlook (via a plug-in)
but the VOIP phones and MFD do not understand CardDAV, so we need
something to allow CardDAV to answer LDAP queries. After much
unsuccessful searching (found one bit of bespoke code but the author
never got back to me) I have figured out that OpenLDAP can use a Perl
backend, and there is a Perl module that does CardDAV. We do not need a
full two way conversation between the two, but as a project this does
have the potential for a much bigger scope.
It seems a bit confused to me.
Do you have an LDAP server or a CardDAV server or both?
I would have thought having a single server that can handle both query
types is the way to go, because I expect the data model behind CardDAV
and LDAP is different.
One would probably need to design the data model from the start with
both protocols in mind, to get this working well.

Hi,

Essentially it is a LDAP to CardDav / CardDAV to LDAP gateway, but rather than design something from the ground up, OpenLDAP has the ability to have custom backends, so my idea is simply to have a CardDAV backend to an OpenLDAP server. The CardDAV server could be anywhere.

Yes, the data model is different, but our requirements are very simple, since all we are doing is serving telephone and mobile numbers up to desktop handsets and email addresses and fax numbers to multifunction printers.

OpenLDAP supports both Bash and Perl for custom backends. All that is needed for full two way interactivity is 9 functions (https://linux.die.net/man/5/slapd-perl). I think we only need three of them for what we need, as we don't need two way traffic.

Every LDAP / CardDAV project I have seen on the Internet fails because it tries to do too much, and be too many things to too many people. All I need is a standards compliant way of linking the two services. The moment you try to access the address book database you limit your choices. For example, Davical, which we use for CardDAV, using Postgresql, and OpenLDAP does support an SQL backend, but now both services really does need to be on the same server, and you cannot use a CardDAV collection on another system, and you cannot use another LDAP system on the primary server without worrying about bindings, so this really is a proxy system that could live on a VM and only do this small task. I could even see this running on a Raspberry Pi serving up an iCloud address book collection to a local MFP scanner in an office.

So while I may not have explained myself, I was, in my defence, looking for a programmer to pay to do the work, not for a critique of my approach. I am very happy to explain my requirements and approach in more detail to someone who is interested in doing the work, but I did not want to fill the list with pages of details.

Cheers,

Marco



--
GLLUG mailing list
GLLUG@mailman.lug.org.uk
https://mailman.lug.org.uk/mailman/listinfo/gllug

Reply via email to