Commit Graph

115 Commits

Author SHA1 Message Date
Treehugger Robot
8882c55b21 Merge "API Documentation and Constant cleanup." 2018-03-07 19:33:52 +00:00
Tyler Gunn
9d12773b51 API Documentation and Constant cleanup.
1. Update handover API docs for clarity.
2. Added an unknown value per API review comments.
3. Renamed HANDOVER_FAILURE_DEST_USER_REJECTED to
HANDOVER_FAILURE_USER_REJECTED
3. Removed the HANDOVER_FAILURE_DEST_INVALID_PERM constant since it isn't
used (methods which deal with permissions throw security exceptions).

Test: Make doc and verify documentation.
Change-Id: Id21d6b4c83d5c773ab38d78eb6b1886a1ac4dadf
Fixes: 73751004
Fixes: 73750515
Fixes: 73750817
2018-03-02 15:45:51 -08:00
Hall Liu
e9041241de RTT bugfixes, part 5
* Add a new API to allow Telecom to inform ConnectionServices when the
RTT text stream changes
* No longer set the RTT property from ConnectionService. Client apps
should be setting properties themselves.
* Add Dialer-side RTT property in order to remove the dependence on
checking the RTT streams, which have a complex lifecycle

Bug: 72951201
Bug: 72648661
Test: manual, with real RTT calls and Dialer's SimulatorConnection, also
cts
Change-Id: Ic4c7d883d2dc6baf8e8c0eaa4df58d7de8762b9e
Merged-In: Ic4c7d883d2dc6baf8e8c0eaa4df58d7de8762b9e
2018-02-22 03:19:19 +00:00
Treehugger Robot
d1134525fc Merge "Rename Conference#setConnectionElapsedTime to clarity." 2018-02-13 23:27:33 +00:00
Tyler Gunn
175413959a Rename Conference#setConnectionElapsedTime to clarity.
Change name of conference connection elapsed time method to make it more
clear what it is for.  Updated documentation of this method and its
companion to make it more clear what they are for.

Test: Compile - this is a docs and naming change only.
Bug: 70639525
Change-Id: I02662cb0331cba0d1fe2d4353438a68f334f9192
2018-02-12 14:35:15 -08:00
Pooja Jain
d34698def5 IMS: Add support in frameworks for call deflection feature
Call deflection feature is useful to deflect MT call to another
number.

Test: Manual

Bug: 62170348
Change-Id: Idfbcc175a856aa0bb9476f8c73d7a614a3af0700
2018-02-07 12:29:16 +05:30
Tyler Gunn
858bfaf79c Add handover permission, fill in some missing API gaps.
Adding the ACCEPT_HANDOVER runtime permission which an app must have in
order to accept handovers (this is per design).

Adding missing onHandoverComplete method in the android.telecom.Connection
API (per design).

Finishing plumbing for android.telecom.Call#onHandoverComplete API.

Fix issue where the new handover API methods would never get called; the
legacy handover extra was being used in this case when it should not have
been.

Bug: 65415068
Test: Verified using new CTS tests
Change-Id: If1558f6a23911862c02ac5b18fb62d86911ed7e2
Merged-In: If1558f6a23911862c02ac5b18fb62d86911ed7e2
2018-01-25 16:20:03 -08:00
Pengquan Meng
63d25a5411 Add connection serivce focus api interface
This add new api interface to ConnectionService to support the
connection service focus api.

Bug: 69651192
Test: manually

Change-Id: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5
Merged-In: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5
2018-01-09 10:50:38 -08:00
Tyler Gunn
7661e81f85 Merge "Add logging and disconnect reason for null connections." 2017-12-21 19:39:32 +00:00
Sanket Padawe
02d8c276d9 Receiving side Call handover API implementation.
Bug: 65415068
Test: Manual

Design doc:
https://docs.google.com/document/d/1qY3oAzjff_4A1ttYb_CGrE_OwTRmXMG_KGsIuPT1ey8/edit#Bug:

Change-Id: Ic0c4af19098252389648007628affc19a44f89dd
Merged-in: Ic0c4af19098252389648007628affc19a44f89dd
2017-12-20 10:13:05 -08:00
Sanket Padawe
85291f63c9 Implement Call handover initiation side APIs.
Bug: 65415068
Test: Manual

Design doc:
https://docs.google.com/document/d/1qY3oAzjff_4A1ttYb_CGrE_OwTRmXMG_KGsIuPT1ey8/edit#

Change-Id: I692bb14fba66733154378c2dda525aa85c471a38
Merged-in: I692bb14fba66733154378c2dda525aa85c471a38
2017-12-19 16:32:24 -08:00
Tyler Gunn
fba1a8e61a Add logging and disconnect reason for null connections.
When a ConnectionService implementation returns a null connection, log this
and also set a unique disconnect reason to indicate in the telecom
dumpsys what happened.

Test: Manual
Bug: 70385625
Change-Id: Iff9846d434d400c4cf036e9ac46167cfb6f6b58c
2017-12-19 15:23:59 -08:00
Sanket Padawe
a8eddd48c4 API declarations for Call Handover.
Design doc:
https://docs.google.com/document/d/1qY3oAzjff_4A1ttYb_CGrE_OwTRmXMG_KGsIuPT1ey8/edit#

Bug: 65415068
Test: manual.
Change-Id: I0c2f561d92ad6504f858eadde09980fc1ce8727f
2017-11-15 13:41:05 -08: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
Tyler Gunn
0a88f2e21b Ensure CallId is not null when connection creation is complete.
When calling "get" on the mConnectoinById map, a null callId will result
in an NPE.

In findConnectionForAction, defaulting to returning the "null" connection
which is the same behavior as if it isn't found.
In notifyCreateConnectionComplete, specifically checking if the callId
is null and skipping the onCreateConnectionComplete callback.
This scenario is possible if the connection is remove from the
ConnectionService before the connection complete callback comes back from
Telecom.

Test: Manual
Fixes: 62588734
Merged-In: I1de7a0a4cc9c630019e38b8154bfc1d470f56ae3
Change-Id: Ie610c51155ed417e0f916000fe20e4484bdb6603
2017-10-27 10:55:05 -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
Tyler Gunn
49042dc67c Merge "Track conference start in system elapsed time."
am: 3b166fba8a

Change-Id: I8b78aaa447adcc1bfce0fec8f50857daa37d0575
2017-08-24 22:58:02 +00: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
95f4f14e0b Merge "Add ability to add existing connection AND set parent at the same time." into oc-dev 2017-05-25 19:34:02 +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
041a1fe3c6 Add ConnectionService callback invoked when connection creation complete.
Adding a new @hide callback in ConnectionService which a CS implementation
can implement.  A callback from Telecom is responsible for invoking this
method.

Test: Manual
Bug: 33272455
Change-Id: Id17cf0fd8fd491b7677f9b7a7b52c76270b1c8c9
(cherry picked from commit d104a4f7f6)
2017-05-24 15:23:03 +00:00
Tyler Gunn
fa9293b183 Merge "Add ConnectionService callback invoked when connection creation complete." into oc-dev
am: 71d051ad2c

Change-Id: I901377bda1364f0cb7b28bcb699a647627f775a9
2017-05-24 14:14:47 +00:00
Tyler Gunn
d104a4f7f6 Add ConnectionService callback invoked when connection creation complete.
Adding a new @hide callback in ConnectionService which a CS implementation
can implement.  A callback from Telecom is responsible for invoking this
method.

Test: Manual
Bug: 33272455
Change-Id: Id17cf0fd8fd491b7677f9b7a7b52c76270b1c8c9
2017-05-15 11:38:18 -07:00
Tyler Gunn
727c6bd755 Remove handover token.
Removing handover token and cleaning up the references to it in the docs.
This was supposed to go into the original CL but it looks like the upload
failed.

Test: Manual
Bug: 37102939
Change-Id: I98f392119258d059669ca68b50184b8bdadbcf0f
2017-04-11 09:51:40 -07:00
Tyler Gunn
8bf7657357 Add connection handover APIs.
Add new call/connection event keys for handover.
Add TelecomManager extra keys used for handover.
Add PhoneAccount extra keys used to control availability of handover.

Test: Test app/harness.
Bug: 37102939
Change-Id: Icc5db7209362f04c4e3be397fee692bbf4a6a473
2017-04-10 22:12:45 +00: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
Tyler Gunn
d736a6b2c2 Merge "Self managed CS implementation." 2017-02-06 22:32:14 +00: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
44e019140e Self managed CS implementation.
Add required AIDL changes to pass along connection fails.

Test: Manual
Bug: 34159263
Merged-In: I0a24ff786b2867aa4e19ac79959df54a04983251
Change-Id: I0a24ff786b2867aa4e19ac79959df54a04983251
2017-02-06 16:20:12 +00:00
Tyler Gunn
3edafc16ac Self managed CS implementation.
Add required AIDL changes to pass along connection fails.

Test: Manual
Bug: 34159263
Change-Id: I0a24ff786b2867aa4e19ac79959df54a04983251
2017-02-03 13:08:17 -08:00
Tyler Gunn
d70e5d9317 Merge "Adding self-managed connection service APIs." am: 3a7253a09d
am: 2155be0218

Change-Id: I75319e09f352905ffa45194086b11711f9070c70
2017-01-19 18:34:53 +00: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
Christine Hallstrom
9161228e31 Add ability to set supported audio routes on phone accounts and connection
am: 4e22d6dc45

Change-Id: I5144f403e9dcdc7934fa56e045e2f95703af7ad6
2016-12-02 03:45:29 +00:00
Christine Hallstrom
4e22d6dc45 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-01 17:18:35 -08:00
Brad Ebinger
3ae84b6efe Merge "Readability improvements in Logging" am: d51df736f6
am: 90b6e78657

Change-Id: I51e87f2a8146e1e60d3610bbdc791b40fc8ba972
2016-11-17 19:35:08 +00:00
Brad Ebinger
90b6e78657 Merge "Readability improvements in Logging"
am: d51df736f6

Change-Id: If7bb6955d615b8369ac41d3bb8ba96aa0cc752d2
2016-11-17 19:29:17 +00:00
Brad Ebinger
0c3541be65 Readability improvements in Logging
We now truncate Session method paths and IDs based on the Logging level
to improve Session Logging readability in logcat. If another external
session is started off of an existing external Session, the preceding
histories are replaced with "..." so that the Session information is not
overwhelming.

Bug: 26571395
Test: Unit Tests and manual tests pass
Change-Id: I9ffda3d64f1072fa6228a82a86116a5e47d18c96
2016-11-16 11:05:15 -08:00
Brad Ebinger
668a6fa227 Modify AIDLs to include Session.Info
am: b32d4f8b5c

Change-Id: Ibbac4c74b5a0c4fcd5524c97acef5fc078d80cb7
2016-10-28 20:17:03 +00:00
Brad Ebinger
b32d4f8b5c Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-28 12:14:24 -07:00
Brad Ebinger
3445f82907 Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-27 16:11:18 -07:00
Tyler Gunn
d55bf0fa1b Framework fixes to support VoLTE conf calls via RemoteConnectionServices. am: 2282bb97e7
am: 7f4abb2a05

Change-Id: I2320cc580dba98b40a4ed630ad52d1c6b55a6349
2016-10-20 01:13:52 +00:00