Applying Contacts

CORTAG
New Contributor

I have been getting requests to provide all managed phones with a contact list. The config page allows me to access a CARDDAV server. I would like some suggestions on how to best set one up, perhaps a cloud solution. Thanks

12 REPLIES 12

psd_martinb
New Contributor III

Hello!

This is very poorly documented, but I was able to figure it out using a Gmail account.

6f7b0a79b9f34fa8a8b3d368a18b461f

The Account hostname as follows:
https://google.com/carddav/v1/principals/psdcontactmgmt@gmail.com/
Replace the email address with the email containing your contacts. Port 443

NOTE: This does not work with SSO enabled on Google. I had to create a fresh gmail account specifically for this because SSO throws the error: CardDAV could not verify account
This error has been reported to Google and I have an active case open.

Once configured and deployed using a configuration profile, updating contacts happens within 2 minutes.

johnklimeck
Contributor II

psd_martinb,

Thx, been racking our head to figure something out here for 500 iPhones. Maybe using Radicale server, but a closer look, it looks like a bunch of work, and probably does not work in the end, (a kludge).

Is this a corporate google / gmail account?

And is there a limit as to how many devices?

We were doing this in JAMF with an Active Sync Config Profile setting, using an Office 365 account.

It works, but there is a limit to 100 devices to per account on O365 / Exchange. (A MS Exchange thing apparently).

Thx in advance, John K

johnklimeck
Contributor II

I have it working, which is nice.... But, the iPhone asks for a damn password, even thought the password, has been entered in the CP correctly, in both fields.

Any ideas?

Thx, John K

johnklimeck
Contributor II

I got it.... working now... removed any / all other Config Profiles, except for one...

pacciok
New Contributor

This seems to work well. Is there any way to prevent users from later editing or deleting the managed contacts? Any changes by end users are pushed to all scoped devices.

benb
New Contributor II

Is this still working for everyone? All of a sudden today the contact list is empty. I re-pushed the policy and I get prompted for the account password (which never happened before). I verified the password in the policy is correct. If I enter the password at the prompt the contacts return.

EDIT: This was caused by distributing the list to a device that already had the configuration profile. Removing the devices from the profile deployment and re adding them corrected the issue.

Anonymous
Not applicable

I am also interested in knowing how to prevent users from editing or deleting the managed contacts. The changes is not only synchronized to all the devices in scope, but also update the change on Google Contacts. Looking for a way to make the contacts Read-Only. Thank you.

dtekum
New Contributor III

How do I make the contacts read-only so users cannot edit the list and add their Girlfriend phone number to the contact list of the entire company? smh

user-ERTMEcMsNL
New Contributor

We've been using the app "BusyContacts" as a CARDDAV server.  It works well, and is read-only on the device end.

 

This is exactly what we're after!! I've downloaded BusyContacts and setup syncing with the Google account containing all the contacts, however I can't see any way to actually share these contacts to iPhones??

As far as I can see Busy Contacts is a glorified MacOS Contacts app?

 

Please can you share how you achieved read-only contact sharing on iOS devices using BusyContacts :)

jeff_canada
New Contributor

To get around this limitation I decided to create a Google Sheets contact list, and then run a Google App Script every 30-minutes during our business hours to check for changes. If there were changes or deletions, then the script would modify those records (otherwise, it would leave them alone). Once a night I would run through all the contacts and remove any that were not suppose to be there (added by users).
If there were changes or deletions the script would revert them (overwriting the changes, adding back the deletions).
On the spreadsheet I also put in a menu item to force a sync (for example, if you added new contacts and didn't want to wait until the next execution).

jeff_canada
New Contributor

To get around this limitation I decided to create a Google Sheets contact list, and then run a Google App Script every 30-minutes during our business hours to check for changes. If there were changes or deletions, then the script modifies those records (otherwise, it leaves them alone). Once a night I run through all the contacts and remove any that were not suppose to be there (added by users).
On the spreadsheet I also put in a menu item to force a sync (for example, if you added new contacts and didn't want to wait until the next execution).