Commit Graph

153 Commits

Author SHA1 Message Date
Eric Erfanian
dd2db2f5a3 Revert "Add the assisted dialing carrier config."
This reverts commit af7b8c0a67.

Reason for revert: we're cutting the feature from P

Change-Id: I1ccc2c36b480f64c3a8b3df7eee73f80b7863722
Bug: 73727182
2018-02-21 19:48:50 +00:00
Eric Erfanian
af7b8c0a67 Add the assisted dialing carrier config.
This is used to activate the feature and show the settings.

Remove @hide from the public APIS.

Design doc:
go/assisted-dialing-dd-v1

Test: manual
Bug: 63934304
Change-Id: I09ea52720bf2439537e2f4ad32afb14f5df25f71
2018-01-22 19:23:04 +00:00
Eric Erfanian
62706c510c Add assisted dialing properties to the framework.
This is a manual merge of the oc-mr1-dev change
I086e761ada9a57dca61c3a412561ee54255d6260

These properties allow the feature to be propogated from
the outgoing call broadcast, to the connection, to the call,
and finally to the call log as a feature.

Test: no existing unit tests found. could use some pointers
Bug: 35963245
Change-Id: I84343fb0cda16514c01997fd71d1e819b5b7eebb
2017-12-07 10:29:17 -08:00
Hall Liu
37dfdb0c24 Un-hide Connection-side RTT APIs for Dialer
Bug: 63934808
Test: builds
Change-Id: I59a892fb0e314810e92dd9ad7d0c2f4610055045
2017-12-04 14:19:30 -08:00
Pengquan Meng
7a14b31931 Merge "[Telecom] Improve hold capability signal" 2017-11-15 23:57:58 +00:00
Hall Liu
a98f58b5c1 Update Telecom APIs to include multi-hfp
* Add bluetooth devices to CallAudioState
* Add methods for specifying a bluetooth device to InCallService
* Add methods for specifying a bluetooth device to Connection (for
self-managed connections)

Bug: 64767509
Test: unit tests
Change-Id: I286b19b423dc2ee417dbc90eda7e8055b2da2444
2017-11-09 15:54:50 -08:00
Pengquan Meng
70c9885330 [Telecom] Improve hold capability signal
Add some method to the ConnectionService in order to notify the
connection changed.

Test: manually test and unit test
Bug: 66949982

Change-Id: I077902474f9af70e00a383aa269e1ae6ff9230a9
2017-10-20 16:02:04 -07:00
Brad Ebinger
f5a457244c Merge "Emergency redial implementation"
am: b3b09849bc

Change-Id: If7fe179da4eb4c639dad1e2957f091bbee9e54f9
2017-08-25 20:31:26 +00:00
Srikanth Chintala
fcb1501620 Emergency redial implementation
Define connection event to notify
Telecom/InCallUi about change in
account handle after redial and extra
for emergency phone handle.

Bug: 27059146
Change-Id: Ie72ab2901ec05d972204ed11f115a05b79173c1d
2017-08-25 10:08:56 -07:00
Brad Ebinger
12772485cc Merge "Emergency redial implementation" 2017-08-25 17:05:06 +00:00
Tyler Gunn
49042dc67c Merge "Track conference start in system elapsed time."
am: 3b166fba8a

Change-Id: I8b78aaa447adcc1bfce0fec8f50857daa37d0575
2017-08-24 22:58:02 +00:00
Srikanth Chintala
732b7fb249 Emergency redial implementation
Define connection event to notify
Telecom/InCallUi about change in
account handle after redial and extra
for emergency phone handle.

Test: Unit Tests
Bug: 27059146
Change-Id: Ie72ab2901ec05d972204ed11f115a05b79173c1d
2017-08-24 12:59:29 -07:00
Tyler Gunn
b2f875bc54 Track conference start in system elapsed time.
This is important so that Telecom can track the duration of the call,
which is tracked using wall clock time.

Test: Manual, unit test
Bug: 64068300
Change-Id: If642d282cd8134060acf6ffe8d81215c394d800c
2017-08-23 14:47:31 -07:00
Tyler Gunn
3fa819c2f3 Track conference start in system elapsed time.
This is important so that Telecom can track the duration of the call,
which is tracked using wall clock time.

Test: Manual, unit test
Bug: 64068300
Change-Id: If642d282cd8134060acf6ffe8d81215c394d800c
2017-08-22 13:39:31 -07:00
Tyler Gunn
a39fefc2fc Merge "Add ability to add existing connection AND set parent at the same time." into oc-dev am: 95f4f14e0b
am: 0aea0d2c53

Change-Id: I76805ba85bfac39cdaa3ddd2b8340423e4c7ffbe
2017-05-25 19:55:00 +00:00
Tyler Gunn
0aea0d2c53 Merge "Add ability to add existing connection AND set parent at the same time." into oc-dev
am: 95f4f14e0b

Change-Id: If762616920b266064cd1ee5520d5778ebb1475a7
2017-05-25 19:44:32 +00:00
Tyler Gunn
78da7816da Add ability to add existing connection AND set parent at the same time.
This is useful for IMS conferences where we want to add a connection and
set it as a child of a conference at the same time.

Test: Manual
Bug: 37581781
Change-Id: Id09c8296ffe18893c5642d403c6a69ad6c9765e2
2017-05-24 15:15:44 -07:00
Tyler Gunn
24067aceff Merge "Further handover support changes." 2017-04-27 16:26:23 +00:00
Tyler Gunn
9f6f04733e Further handover support changes.
Add handover extras key used when initiating handover.
Add handover complete / fail connection events which are sent to the
initiating IncallService when a handover is complete or fails.
Adding PhoneAccount extra to indicate that a self-managed CS should have
its calls logged to the call log.

Test: Manual
Bug: 37102939
Change-Id: Icbb6f1addf913de841a9c48089a7d8311668f3bc
2017-04-26 21:32:01 +00:00
Hall Liu
6103002143 Remove default public ctor from RttModifyStatus
Test: builds
Bug: 37515063
Change-Id: I1e573d945b48e28d12621078cc8f37eb076d9ee3
2017-04-24 14:42:51 -07:00
Hall Liu
8dd4908e4d Remove default public ctor from RttModifyStatus
Test: builds
Bug: 37515063
Change-Id: I1e573d945b48e28d12621078cc8f37eb076d9ee3
2017-04-21 14:33:12 -07:00
Hall Liu
f6f3c16dfb Merge "Add @TestApi annotations to CS-side RTT APIs for CTS" 2017-04-04 23:31:38 +00:00
Tyler Gunn
dd8756d514 Self Managed CS Implementation
- Add API guide for developers giving an overview of what they need
to implement.
- Add @hide setLabel method in PhoneAccount; used when registering a
self-managed CS's phone account; we override it with their app label to
ensure they don't try to give themselves another name.

Test: Unit
Bug: 34159263
Merged-In: I0c890dc2feeb3ee438a80ed425db2aaf1f4c1fdd
Change-Id: I0c890dc2feeb3ee438a80ed425db2aaf1f4c1fdd
2017-03-30 21:28:19 -07:00
Tyler Gunn
3765356699 Self Managed CS Implementation
- Add API guide for developers giving an overview of what they need
to implement.
- Add @hide setLabel method in PhoneAccount; used when registering a
self-managed CS's phone account; we override it with their app label to
ensure they don't try to give themselves another name.

Test: Unit
Bug: 34159263
Change-Id: I0c890dc2feeb3ee438a80ed425db2aaf1f4c1fdd
2017-03-30 19:00:41 -07:00
Hall Liu
ffa4a812f8 Add @TestApi annotations to CS-side RTT APIs for CTS
CTS tests need both the in-call and connection service sides of the APIs
to test Telecom functionality properly, so annotating the hidden-for-now
connection service APIs with TestApi.

Test: part of CTS
Change-Id: I3711729d7e8c8aff2735f4da9fbd04bcca6b4942
2017-03-30 13:49:12 -07:00
Hall Liu
6bb5110f2c Merge "Add further Connection-side APIs for RTT (part 2)" 2017-03-07 21:44:43 +00:00
Tyler Gunn
356322fb1e Merge "API review cleanups/changes." am: 9324d6513b am: dd4bc7c69c
am: c49b011151

Change-Id: Ib3d76474bef8c911b2ec6a61b916e38af0a3b861
2017-03-07 03:05:23 +00:00
Hall Liu
b64ac4c57a Add further Connection-side APIs for RTT (part 2)
Add methods and callbacks to facilitate local and remote RTT initiation
and termination in the middle of a call. Adds @hide Connection-side APIs
to communicate with the ConnectionService, as well as plumbing for
RemoteConnections.

Test: manual, through telecom testapps
Merged-In: Ia80604b7dff8586ff222dbccdbe55e91aab02178
Change-Id: Ia80604b7dff8586ff222dbccdbe55e91aab02178
2017-03-06 16:48:24 -08:00
Tyler Gunn
159f35c8e4 API review cleanups/changes.
- Change onCreateIncomingConnectionFailed/onCreateOutgoingConnectionFailed
to accept the connection mgr phone account as the first parameter.
- For the video APIs, pass the target SDK of the caller into along so
that the Telecom permission check can have fallback behavior for older API
versions.
- Add guidance for how UX should be shown in onShowIncomingCallUi API.
API guidance follows how the Dialer app shows its notification and full
screen UX.

Test: Manual, CTS.
Bug: 35767711
Bug: 35767096
Change-Id: Ib343f0eda1a4d067a38c553f33f140b4efcf3e48
2017-03-06 11:04:55 -08:00
Hall Liu
57006aa82a Add further Connection-side APIs for RTT (part 2)
Add methods and callbacks to facilitate local and remote RTT initiation
and termination in the middle of a call. Adds @hide Connection-side APIs
to communicate with the ConnectionService, as well as plumbing for
RemoteConnections.

Test: manual, through telecom testapps
Change-Id: Ia80604b7dff8586ff222dbccdbe55e91aab02178
2017-03-01 14:45:15 -08:00
Hall Liu
95d5587d0a Introduce APIs for RTT calls (part 1)
Add signaling methods and data pipes for handling real-time text during
a call.

Change-Id: I876827c448252c5f786d7a4919c47891acb03877
Test: manual, through telecom testapps
2017-02-21 15:27:25 -08:00
Tyler Gunn
bf9c6fdb43 Perform camera permission and app ops check when setting camera for VT.
When a calling InCallService attempts to use the setCamera API on the
VideoCall, Telecom will perform a permission check to ensure that the
caller has the correct camera permission and passes the app-ops camera
check.  A failure to set the camera will result in a callback via the
call session event API.

This got a little messy as the app ops package name needs to come from the
InCallService, and handler usage in the VideoProvider API means we had to
pass around the uid/pid of the caller, obtained before we trampoline onto
the handler.

Test: Unit tests added, manual testing performed.
Bug: 32747443
Change-Id: I555a04f9c3fb45e60bb811f64ba855ccf2e3b0e2
2017-02-06 14:49:03 -08:00
Tyler Gunn
cd6ccfd23c Framework fixes to support VoLTE conf calls via RemoteConnectionServices.
Fixing some issues with the addExistingConnection and addConference APIs
on ConnectionService.  When a connection manager relays the addition of
an existing connection or a conference to Telecom, it will assign a new
ID to the new connection/conference.  Due to how RemoteCSes work, the
Connection/Conf will be added directly via TelephonyConnectionService and
also via the connection manager's connection service.  Because the ID
changes, we ended up adding these twice. Conferences weren't a problem in
the GSM conference case because the TElephonyConnectionService's
ConnectionServiceWrapper didn't know of the IDs for the children of the
conference.  However, due to how the existing connections work its not the
case for VoLTE conferences.  To mitigate this, I'm passing the original
connection/conference ID to the connection manager via extras (ugh) and
using this to ensure that when the new existing connection/conference is
added to telecom that the same ID is used.  This ensures that we can
properly de-dupe the requests from TelephonyConnectionService and the
connection manager.

Also, there was some missing code in RemoteConnectionService which would
cause it to not properly track existing connections.

Bug: 31464792
Change-Id: I436f4438fd000ea48ebea7ceb75105bd3f456e46
2017-02-06 12:31:53 -08:00
Tyler Gunn
f50354363c Adding self-managed connection service APIs.
1. Adding new APIs for self-managed connection services.
2. Adding Telecom package-level documentation.

Test: Manual (unit, cts pending; this is just scaffolding for now)
Bug: 34159263
Change-Id: Ic226ec8bfcb2fbcc02fe802b47499e47aab17d0a
2017-01-18 14:44:43 -08:00
Christine Hallstrom
2830ce9a09 Add ability to set supported audio routes on phone accounts and connection
The set audio routes are used by Telecom to restrict where the audio may
be routed to. For example, an account can specify that calls may not be
routed over bluetooth headsets, which will prevent a new call from being
routed to this source.

This is a cherry-pick of abandoned ag/1521009.

Bug: 32958838
Change-Id: Idd5e4d38b157f11454f3d991385644f2f384596e
2016-12-13 17:48:50 -08:00
Tyler Gunn
6f657ee021 Add toString method for session event codes.
Used to get a human readable version of a call session event for logging.

Bug: 31199425
Change-Id: Idf024ec405f1d18ff2cfab7f814b2651d7d8f0a0
2016-09-02 09:55:25 -07:00
Hall Liu
25c7c4d100 Rename PROPERTY_SHOW_CALLBACK_NUMBER
This property actually indicates emergency callback mode.

Change-Id: I334cb5a702040768b879ca6189a9ab25237dd49d
Fix: 30005987
2016-08-30 13:41:02 -07:00
Tyler Gunn
b5ed860de7 Add connection events for indicated when a connection is remotely held.
Note: This is different than the existing EVENT_ON_HOLD_TONE_START
and EVENT_ON_HOLD_TONE_END events, which trigger playing a hold tone for
remotely held calls.  Those events also take into account whether the call
is foreground/background; it is left as a future exercise to clean that
up.

Bug: 30349182
Change-Id: I919365d243ae3b9fe56454c7a2b9d5805b2c03a2
2016-08-17 13:48:27 -07:00
Santos Cordon
1a7493008f Add short string methods for capabilities and properties.
Bug: 30411195
Change-Id: I3aa81da23b75986fab8570b8b36e56a36a660045
2016-07-26 17:42:38 -07:00
Hall Liu
9f332c7ffc Add PROPERTY_IS_DOWNGRADED_CONFERENCE
Change-Id: I490876b45dcfb0b0efa9604c9d666db485923391
Fix: 29806833
2016-07-14 15:37:37 -07:00
Tyler Gunn
c96b5e0873 Finalize MEP functionality.
1) Finish plumbing of PULLING_CALL state.
2) Add new disconnect cause used when maximum number of calls across
all devices has been reached.
3) Add PII mask for toString of ImsExternalCallState.

Bug: 29522023
Change-Id: I78a0a9f3c3d846cfc58a1c5bcc6f105027602cbc
2016-07-11 10:33:37 -07:00
Hall Liu
ee6e86b2bc Rename disable add call extra
Used to be DISABLE_ADD_CALL_DURING_VIDEO_CALL, now just
DISABLE_ADD_CALL. The meaning has also changed -- having the extra set
means that adding calls should be disabled no matter what.

Bug: 29047863
Change-Id: Icd8966492b264a9c64dc4880080a706032f0759c
2016-07-08 15:14:42 -07:00
Tyler Gunn
089e99ee4d Merge "Add missing setPulling() method in Connection." into nyc-mr1-dev 2016-06-30 06:20:42 +00:00
Tyler Gunn
c242ceb406 Add missing setPulling() method in Connection.
Change-Id: I89c720b2fa3d3e1304766ba3779410b233a04c6a
2016-06-29 22:35:45 -07:00
Tyler Gunn
9c0eb0bd46 API cleanups per API review.
1. removing deprecation for setExtras on Connection/Conference as these
have legitimate use-cases going forward.
2. Expanded documentation on Call.Callback class to clarify how it is
expected to be used.
3. Updated Callback#onConnectionEvent callback docs to clarify its usage.
4. Expanded Call#sendCallEvent docs to clarify expected namespacing of
call event keys and extras keys, as well as clarification about backwards
compatibility and expectations of ConnectionServices.
5. Standardized the "invoked" vs "notifies" language in the Conference
docs.
6. Clarified how Connection callbacks from Telecom should be implemented.
7. Added Bundle parameter expectations for pre-defined connection events.
8. Documented capabilities and properties toString methods.
9. Documented expectations for onCallEvent method.
10. Expanded documentation for sendConnectionEvent method to clarify
namespacing, use cases, etc.

Bug: 29759275
Bug: 29759954
Bug: 29759773
Change-Id: Ib8c983af4dbbfee68edb60937b268e2c1a9b5e64
2016-06-29 11:46:40 -07:00
Hall Liu
10208661cd Add disable add call during video call extra and carrier config key
Bug: 29047863

Change-Id: I977041ec72968bdccc69a706e27dd4b5ec336ba7
2016-06-27 17:19:59 -07:00
Tyler Gunn
7d633d3337 Add onConferenceSupportedChanged callback, carrier config.
Used to inform listeners when a connection can or cannot be part of a
conference.  Used to inform the conference controller so that it can
recalculate the conferencable connections.

Adding carrier config for carrier requirement.

Bug: 29059073
Change-Id: Iab028fd44d87c8dc2bbbe8bba7ba9ccdc223fe51
2016-06-27 10:49:04 -07:00
Tyler Gunn
4b6614e576 Add support for dropping fg video call on answer of audio call.
Adding two new carrier config options:
1. treat_downgraded_video_calls_as_video_calls_bool - when there is an ongoing
call which was previously a video call (or is currently video call), some
carriers require that this is treated as if it is a video call for
telephony logic such as in (2).
2. drop_video_call_when_answering_audio_call_bool - if the user is in an
active video call (see (1)) over wifi, and an incoming audio call comes in,
when this carrier config option is "TRUE", the video call will be dropped
when the audio call is answered.

Adding new connection extra to indicate to the dialer app that answering
a ringing call will cause the current active video call to drop.

Bug: 29275420
Change-Id: Ied5dbabc8ff09045ba41c5eba2136adad10db80e
2016-06-23 12:48:43 -07:00
Brad Ebinger
e93c91edc2 Merge \"Handle Concurrency issues in Connection\" into nyc-dev
am: df41725e53

Change-Id: I0332df9dc96086a3094dc4ab53573b5cf57f8730
2016-06-15 22:48:06 +00:00
Brad Ebinger
4fa6a01898 Handle Concurrency issues in Connection
Currently, there is a possibility of concurrent thread operations to the
Extras bundle in Conference/Connection. This can cause unexpected
behavior. We have added a lock on the Extras to prevent that from
occuring.

Bug: 29330310
Change-Id: Id63a9797c2f748120a3df8e3ce06c4ce3891c651
2016-06-15 20:53:25 +00:00