Implementing Enterprise Telephony

This document outlines the telephony-related parts of the Android framework that support enterprise use cases. This document is targeted at manufacturers and focuses entirely on framework-related telephony changes. In addition, this document outlines the changes that OEMs will need to make to their preloaded applications that handle telephony-related functions.

Android 7.0 introduced several new features to support enterprise telephony use cases, in particular:

  • Cross profile contact search - Allows applications in the personal profile to search for contacts that are supplied by the managed profile contacts provider, which can be backed by any datastore, for example local to the device or perhaps within an enterprise directory.
  • Cross profile contact badging - Allows work contacts to be clearly distinguished from personal contacts.
  • Making Connection Service managed profile aware - Allows applications within the Managed Profile to offer telephony features, such as to provide a separate work dialer and work ConnectionService

Android 5.0 supported the following enterprise telephony feature:

Examples and source

The Android Open Source Project (AOSP) implementations of Dialer, Contacts, and Messaging apps have integrated the cross profile contact search and badging capability.

Examples:

  • Adding badge to work contacts: see packages/apps/ContactsCommon f3eb5a207bfe0ff3b4ed2350ae5865ed8bc59798
  • Cross profile search: see packages/apps/ContactsCommon cd0b29ddbf3648e48f048196c62245d545bc6122

Implementation

Device implementers must implement cross-profile, search, lookup and badging for contacts in their Dialer Contacts and SMS/MMS Messaging apps.

Cross profile contact search should be implemented using the Enterprise Contacts API (ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI etc.), which can be found in the Work profile contacts guide on the Android Developers site.

Work profile contact badging

Work profile contact badging can be implemented by checking ContactsContract.Directory.isEntepriseDirectoryId() if available or isEnterpriseContactId(). To learn more, see Work profile contacts.

Managed Profile Aware ConnectionService

Manufacturers should not need to modify the framework code to support this functionality, but should be aware of it’s impact on the Telecomm service and other telephony features.

Validation

The cross profile contact search and badging feature can be validated by:

  1. Setting up a managed profile on a test device using TestDPC.
  2. Enabling cross profile contact search.
  3. Adding a local work contact within the managed profile.
  4. Searching for that contact within the system Dialer Contacts and SMS/MMS Messaging Apps within the personal profile, checking that this contact is found and it is correctly badged.

CTS tests have been added to ensure the underlying cross profile contact search API has been implemented in com/android/cts/managedprofile/ContactsTest.java.