[Kroupware] LDAP address book schema suggestion
Tobias Koenig
kroupware@mail.kde.org
Sun, 29 Sep 2002 13:26:52 +0200
Hi,
I'm the current maintainer of kaddressbook and I'm reading this list
since 2 weeks. In this time there weren't discussed any details concerning
the communication between kaddressbook and the kolab server.
At first I wan't to mentioned, that accessing vCards over SMTP/IMAP is a
ugly way, because these protocols aren't flexible enough for easy accessing
the contacts. I know it's too late for the release, but IMHO using webdav
or ftp the right way [tm] to work with vCards and vCal/iCal files.
The other problem is the missing ldap schema. The kdepim guys have developed
a flexible addressbook library (libkabc) that supports all informations
of a vCard. I'd like to see a ldap schema that also supports all informations
of a vCard, so libkabc can use a ldap server without loosing informations.
The following suggestion isn't in a proper format, but it covers all vCard
entities:
objectclass vCard
requires
objectClass
uid
cn
allows
givenName
additionalName
familyName
displayName
namePrefix
nameSuffix
nickName
birthday // iso date format
mailer
title
role
organization
note
productId
sortString
url
revision // iso date format
timeZone // offset in minutes relative to UTC
geoPosition // string in "(x:y)" format, x = latitude, y = langitude
secrecy
logo
photo
sound
agent
mail
mailalias
category
custom // string in "app;name;value" format
objectclass vCardPhoneNumber
requires
objectClass
uid
allows
number
type // string: the types defined in RFC2426
objectclass vCardAddresses
requires
objectClass
uid
allows
type // string: the types defined in RFC2426
postOfficeBox
extended
street
locality
region
postalCode
country
label
A sample ldapsearch output would look like the following:
vCard=<uid>, $basedn
uid=<uid>
cn=Test Person
givenName=Test
additionalName=Willi
familyName=Person
namePrefix=Sir
nameSuffix=Jr.
displayName=Person, Test
nickName=testi
birthday=2002-09-22T17:01:45Z
timeZone=123
geoPosition=(123.44:-118.23)
secrecy=PRIVATE
logo=http://www.testhost.org/mypic.png
photo=<base64 encoded stuff>
mail=contact@testhost.org
mailalias=foo@testhost.org
mailalias=bar@testhost.org
category=Friends
category=Linux-User-Group
custom=KADDRESSBOOK;X-Anniversary;2002-08-11
custom=KADDRESSBOOK;X-Department;foobar Station
vCardPhoneNumber=123321,vCard=Sir Test Willi Person Jr., $basedn
uid=23eRRt2
type=Home
type=Pref
vCardPhoneNumber=<phone-uid>,vCard=<uid>, $basedn
uid=<phone-uid>
number=127536453
type=Work
type=Fax
vCardAddressee=<address-uid>,vCard=<uid>, $basedn
uid=<address-uid>
type=Work
street=TestStreet
location=TestLocation
region=TestResgion
country=TestCountry
<uid>, <address-uid> and <phone-uid> are unique identifiers that consist
of a random string with a length of 9 characters.
(e.g. that is returned by KApplication::randomString())
That is only a suggestion, but such a schema is easy extensible and doesn't
bound addresses or phonenumbers to a special number.
Ciao,
Tobias
--
In a world without walls and fences who
needs Windows and Gates???