[horde] Extra ActiveSync attributes from iOS
Spyros Tsiolis
stsiol at yahoo.co.uk
Wed Jul 20 17:01:38 UTC 2011
--- On Wed, 20/7/11, Spyros Tsiolis <stsiol at yahoo.co.uk> wrote:
> From: Spyros Tsiolis <stsiol at yahoo.co.uk>
> Subject: Re: [horde] Extra ActiveSync attributes from iOS
> To: "Michael J Rubinsky" <mrubinsk at horde.org>
> Cc: "Horde Mailing List" <horde at lists.horde.org>
> Date: Wednesday, 20 July, 2011, 19:56
> --- On Wed, 20/7/11, Michael J
> Rubinsky <mrubinsk at horde.org>
> wrote:
>
> > From: Michael J Rubinsky <mrubinsk at horde.org>
> > Subject: Re: [horde] Extra ActiveSync attributes from
> iOS
> > To: "Spyros Tsiolis" <stsiol at yahoo.co.uk>
> > Cc: "Horde Mailing List" <horde at lists.horde.org>
> > Date: Wednesday, 20 July, 2011, 19:52
> >
> > Quoting Spyros Tsiolis <stsiol at yahoo.co.uk>:
> >
> > > --- On Wed, 20/7/11, Michael J Rubinsky <mrubinsk at horde.org>
> > wrote:
> > >
> > >> From: Michael J Rubinsky <mrubinsk at horde.org>
> > >> Subject: Re: [horde] Extra ActiveSync
> attributes
> > from iOS
> > >> To: horde at lists.horde.org
> > >> Date: Wednesday, 20 July, 2011, 17:01
> > >>
> > >> Quoting Simon Wilson <simon at simonandkate.net>:
> > >>
> > >> > Now that I have ActiveSync working
> nicely,
> > I'm in the
> > >> process of switching my wife's huge set of
> > contacts into
> > >> Horde for ActiveSync. She has a very broad
> usage
> > of contacts
> > >> - many phone numbers, addresses, postal
> addresses,
> > etc.
> > >> Natively It's not going to work. Sooooo....
> > >> >
> > >> > When an iOS device connects contacts to
> > Activesync it
> > >> announces a set of capabilities (fields).
> > >> >
> > >> > From what I can see an Activesync field
> needs
> > to be
> > >> mapped in turba/lib/Driver.php to a valid
> and
> > defined Turba
> > >> attribute (turba/config/attributes.php).
> Turba
> > then needs to
> > >> have a defined place to put the data (e.g. an
> SQL
> > database
> > >> with a field defined in
> > turba/config/backends.local.php).
> > >> >
> > >> > Am I correct so far?
> > >>
> > >> Sounds right.
> > >>
> > >>
> > >> > From digging through I get the
> following
> > default
> > >> mappings:
> > >> >
> > >> > iOS Field =>
> > >> Turba attribute => mySQL
> > >> >
> > >>
> >
> -------------------------------------------------------------
> > >> > Anniversary =>
> > >> anniversary => NONE
> > >> > Birthday =>
> > >> birthday =>
> > >> object_bday
> > >> > Body
> > >> => notes
> > >> => object_notes
> > >> > WebPage
> > >> => website
> > >> => object_url
> > >> > BusinessCountry =>
> > >> workcountry =>
> > >> object_workcountry
> > >> > Department =>
> > >> department => NONE
> > >> > Email1Address =>
> > >> email =>
> > >> object_email
> > >> > Email2Address =>
> > >> homeEmail => NONE
> > >> > Email3Address =>
> > >> workEmail => NONE
> > >> > BusinessFaxNumber => fax
> > >> => object_fax
> > >> > FileAs =>
> > >> name
> > >> => array
> > >> > FirstName =>
> > >> firstname =>
> > >> object_firstname
> > >> > HomeCity =>
> > >> homeCity =>
> > >> object_homecity
> > >> > HomeCountry =>
> > >> homeCountry =>
> > >> object_homecountry
> > >> > HomeFaxNumber => NONE
> > >> =>
> > >> NONE
> > >> > HomePhoneNumber => homePhone
> > >> => object_homephone
> > >> > Home2PhoneNumber => NONE
> > >> => NONE
> > >> > HomePostalCode =>
> homePostalCode
> > >> => object_homepostalcode
> > >> > HomeState =>
> > >> homeProvince =>
> > >> object_homeprovince
> > >> > HomeStreet =>
> > >> homeStreet =>
> > >> object_homestreet
> > >> > BusinessCity => workCity
> > >> =>
> > >> object_workcity
> > >> > MiddleName =>
> > >> middlenames =>
> > >> object_middlenames
> > >> > MobilePhoneNumber => cellPhone
>
> > >> => object_cellphone
> > >> > Suffix =>
> > >> nameSuffix =>
> > >> object_namesuffix
> > >> > CompanyName =>
> > >> company =>
> > >> object_company
> > >> > OtherCity =>
> > >> NONE
> > >> => NONE
> > >> > OtherCountry => NONE
> > >> =>
> > >> NONE
> > >> > CarPhoneNumber => NONE
> > >> => NONE
> > >> > OtherPostalCode => NONE
> > >> =>
> > >> NONE
> > >> > OtherState => NONE
> > >> =>
> > >> NONE
> > >> > OtherStreet =>
> > >> NONE
> > >> => NONE
> > >> > PagerNumber =>
> > >> pager =>
> > >> object_pager
> > >> > Picture
> > >> => photo
> > >> => object_photo
> > >> > Title
> > >> => namePrefix
> > >> => object_nameprefix
> > >> > BusinessPostalCode =>
> workPostalCode
> > >> => objectworkpostalcode
> > >> > AssistantName =>
> > >> assistant => NONE
> > >> > AssistnamePhoneNumber => NONE
>
> > >> => NONE
> > >> > LastName =>
> > >> lastname =>
> > >> object_lastname
> > >> > Spouse =>
> > >> spouse
> > >> => NONE This one is
> > >> advertised by iOS, but there's nowhere to
> enter /
> > view
> > >> > BusinessState =>
> > >> workProvince =>
> > >> object_workprovince
> > >> > BusinessStreet => workStreet
> > >> => workstreet
> > >> > BusinessPhoneNumber => workPhone
>
> > >> => object_workphone
> > >> > Business2PhoneNumber => NONE
> > >> => NONE
> > >> > JobTitle =>
> > >> title =>
> > >> object_title
> > >> > YomiFirstName => NONE
> > >> =>
> > >> NONE
> > >> > YomiLastName => NONE
> > >> =>
> > >> NONE
> > >> > RadioPhoneNumber => NONE
> > >> => NONE
> > >> > IMAddress =>
> > >> NONE
> > >> => NONE
> > >> > IMAddress2 => NONE
> > >> =>
> > >> NONE
> > >> > IMAddress3 => NONE
> > >> =>
> > >> NONE
> > >> > ManagerName =>
> > >> NONE
> > >> => NONE
> > >> > CompanyMainPhone => NONE
> > >> => NONE
> > >> > NickName =>
> > >> should be alias => object_alias, but not
> mapped
> > in
> > >> Driver.php.
> > >> >
> > >> > Where there is a Turba attribute but no
> SQL
> > mapping
> > >> it's an easy fix, just create the field in
> SQL and
> > go for
> > >> it, but where it is not mapped in Driver.php
> it's
> > a bit more
> > >> complex.
> > >> >
> > >> > What I would like to do is add some
> support
> > for some
> > >> of the missing pieces into Driver.php,
> > particularly the
> > >> third address group (other), and some extra
> phone
> > numbers.
> > >> Is this just a case of adding both direction
> > mappings to the
> > >> ActiveSync Contact message sections of
> Driver.php
> > (Convert
> > >> contact to an AS contact message; and convert
> an
> > AS contact
> > >> message into a hash for import)? Or are
> there
> > other places
> > >> that will need work?
> > >>
> > >> That should work, assuming you add the
> > appropriate
> > >> attribtues to turba/config/attributes.php and
> have
> > a field
> > >> to store the values in. Also, you should
> read
> > through the
> > >> mapping code in Turba_Driver::, there are
> already
> > some cases
> > >> where the mappings don't neccessarily work as
> you
> > would
> > >> expect, I don't have the code in front of me
> at
> > the moment,
> > >> but IIRC, the email mappings are not a 1:1
> mapping
> > as you
> > >> show above. If the work/home email fields
> are
> > presented,
> > >> then *only* those are used ... otherwise the
> > "plain" email
> > >> field is used.
> > >>
> > >> Finally, I'd have to verify that all of
> those
> > fields are
> > >> supported by the version of AS that is
> supported
> > by Horde
> > >> (some AS fields were introduced in later
> > versions). I assume
> > >> they are since the device should know what
> version
> > it's
> > >> using, but I'd have to check the wbxml
> codepages
> > to be
> > >> sure.
> > >>
> > >> > If I make those changes to Drivers.php
> I
> > assume it's
> > >> not a "Drivers.local.php" version, which
> means
> > next upgrade
> > >> will break my changes - is it worth me doing
> those
> > and
> > >> submitting a patch file back to Horde?
> > >>
> > >> The bottom line is, if the changes you
> introduce
> > do not
> > >> conflict with any existing mappings and make
> > sense, then
> > >> they can be included in future releases.
> > >>
> > >> Thanks!
> > >>
> > >> --mike
> > >>
> > >> The Horde Project (www.horde.org)
> > >> mrubinsk at horde.org
> > >>
> > >> --Horde mailing list
> > >> Frequently Asked Questions: http://horde.org/faq/
> > >> To unsubscribe, mail: horde-unsubscribe at lists.horde.org
> > >
> > >
> > >
> > > Could this be adapted not for MySQL but for LDAP
> ?
> > > I have a similar scenario with
> Dovecot/Horde/LDAP
> >
> > There is nothing here that is *really* specific to
> mySQL.
> > For LDAP the
> > process would be basically the same...you just need
> to
> > ensure that
> > your storage backend can accept the data and in
> > backends.local.php you
> > properly map the turba attributes to the fields in
> your
> > storage backend.
> >
> > --
> > mike
> >
> > The Horde Project (www.horde.org)
> > mrubinsk at horde.org
>
>
>
> Or "/var/www/horde/turba/config/drivers.php" for Horde v3.x
> right ?
>
> :-)
>
> s.
>
>
> ----
> "I merely function as a channel that filters
> music through the chaos of noise"
> - Vangelis
>
> --
> Horde mailing list
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: horde-unsubscribe at lists.horde.org
Sorry , Sorry I meant :
"turba/config/sources.php"
Right ?
s.
----
"I merely function as a channel that filters
music through the chaos of noise"
- Vangelis
More information about the horde
mailing list