The following list of attribute classes are synchronized. Missing attributes can be deleted or stay as set on the device always untouched. Please be aware that images and ringtones are considered as device specific and are not synchronized yet. A more sophisticated solution is necessary. (Manually it is possible to get all attributes on another device with the Export/Import function of the Android contact app.) Out of sync are also custom attributes which are in fact typeless for the application since the name can have an arbitrary value. Per contact three addresses are supported one for private, work, and other type (see below).
For the number of attributes or contacts which can be synchronized, it is difficult to give a reliable number over all network setups and devices. To have a reliable timeout the network http client is configured to break the connection after 10 minutes. Some tests show that about 100 contacts can be synchronized by far less than one minute using a WiFi home router. But some devices fail by processing about 500 contacts and allocating 2.5 Mbytes data.
The attributes are synchronized directly between your clients and the server in a binary format, no third party connections are opened. Please protect your WiFi/WLAN by a secure protocol and do not use the internet for secret data since http (not https) is used.
(Https can be achieved in principle by a local http to https converter app and https to http converter on the server or router, but currently with the major disadvantage of involving a far more complex environment: maintaining keystores, keys, trust-relationships, and key-lifetime.)
Contacts are identified by FAMILY_NAME and GIVEN_NAME. There is an automatic removal of duplicate contacts according to this identification. If one duplicate is preferred, the other(s) should be removed before starting the sync.
Attribute values (inclusive notes) are truncated automatically to 4000 characters.
Structured Name
8 attributes
GIVEN_NAME
MIDDLE_NAME
FAMILY_NAME
PREFIX
SUFFIX
PHONETIC_GIVEN_NAME
PHONETIC_MIDDLE_NAME
PHONETIC_FAMILY_NAME
Sometimes it might be useful to create family contacts like
Family Name: FM1/FM2
Given Name: GN1, GN2
Middle Name: GNKid1, GNKid2, ...
Organization
2 attributes, these can be set by the phone app, but there are more fields in the Android contact database.
COMPANY
TITLE
Phone
11 attributes
HOME
MOBILE
WORK
WORK_MOBILE
MAIN
COMPANY_MAIN
FAX_HOME
FAX_WORK
PAGER
WORK_PAGER
OTHER
4 attributes
HOME
WORK
MOBILE
OTHER
Website
7 attributes
HOME
WORK
BLOG
FTP
OTHER
HOMEPAGE
PROFILE
Sip Address
3 attributes
HOME
WORK
OTHER
Event
3 attributes, start date with the types
ANNIVERSARY
BIRTHDAY
OTHER
Structured Postal
3 * 7 attributes, one for home, work, other
(If more are used, attributes can be shifted to the previous postal in case of empty fields!)
CITY
COUNTRY
NEIGHBORHOOD
POBOX
POSTCODE
REGION
STREET
Remark: after changing these fields the Android phone contact app stores all values in the street attribute. The sync process tries to undo this problem. Please provide POBOX or POSTCODE in case of ambiguity.
The following street content will be processed:
STREET WITH NUMBER
POBOX
[NEIGHBORHOOD,] CITY, REGION POSTCODE or [NEIGHBORHOOD,] CITY POSTCODE
COUNTRY
(Better use CITY/NEIGHBORHOOD as city since the contact app stores in newer versions NEIGHBORHOOD in a separate line.)
See also with Google Search: "Android combining all address fields into one"
Note
1 attribute, the contact provider database allows several notes, but currently with the phone app only one can be created.
NOTE
For more details on Android contacts provider
http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.html