aboutsummaryrefslogtreecommitdiff
path: root/en/devices/tech/admin/enterprise-telephony.html
blob: b1b7abe08ff3cff80de12f105d159a796969ce99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<html devsite>
  <head>
    <title>Implementing Enterprise Telephony</title>
    <meta name="project_path" value="/_project.yaml" />
    <meta name="book_path" value="/_book.yaml" />
  </head>
  <body>
  <!--
      Copyright 2017 The Android Open Source Project

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
  -->



<p>
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.
</p>

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

<ul>
<li>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.</li>
<li>Cross profile contact badging - Allows work contacts to be clearly
distinguished from personal contacts.</li>
<li>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</li>
</ul>

<p>
Android 5.0 supported the following enterprise telephony feature:
</p>

<ul>
<li>Work contact name lookup for telephone numbers using
<a
  class="external"
  href="https://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup#ENTERPRISE_CONTENT_FILTER_URI">
<code>ENTERPRISE_CONTENT_FILTER_URI</code></a>
</li>
</ul>

<h2 id="examples-and-source">Examples and source</h2>

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

<p>
Examples:
</p><ul>
<li><strong>Adding badge to work contacts</strong>: see
<code>packages/apps/ContactsCommon</code> <em>f3eb5a207bfe0ff3b4ed2350ae5865ed8bc59798</em>
<li><strong>Cross profile search</strong>: see <code>packages/apps/ContactsCommon</code> <em>cd0b29ddbf3648e48f048196c62245d545bc6122</em></li>
</ul>

<h2 id="implementation">Implementation</h2>

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

<h3 id="cross-profile-contact-search">Cross-profile contact search</h3>

<p>
Cross profile contact search should be implemented using the Enterprise Contacts
API (<code>ContactsContract.Contacts.ENTERPRISE_CONTENT_FILTER_URI</code> etc.), which can be found
in the
<a class="external" href="https://developer.android.com/work/contacts">Work
profile contacts</a> guide on the Android Developers site.
</p>

<h3 id="work-profile-contact-badging">Work profile contact badging</h3>

<p>
Work profile contact badging can be implemented by checking
<code>ContactsContract.Directory.isEntepriseDirectoryId()</code> if available or
<a
    class="external"
    href="http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#isEnterpriseContactId(long)">
<code>isEnterpriseContactId()</code></a>. To learn more, see
<a class="external" href="https://developer.android.com/work/contacts">Work profile contacts</a>.
</p>

<h3 id="managed-profile-aware-connectionservice">Managed Profile Aware
ConnectionService</h3>

<p>
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.
</p>

<h2 id="validation">Validation</h2>

<p>
The cross profile contact search and badging feature can be validated by:
</p>

<ol>
<li>Setting up a managed profile on a test device using <a
href="https://github.com/googlesamples/android-testdpc"
class="external">TestDPC</a>.
<li>Enabling cross profile contact search.
<li>Adding a local work contact within the managed profile.
<li>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.</li>
</ol>

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

  </body>
</html>