Commit Graph

1510 Commits

Author SHA1 Message Date
Tyler Gunn
4efe689e4c Merge "Add Verstat fields to Telecom call/connection classes." 2019-12-05 23:58:45 +00:00
Allen Su
d154c93041 Merge "Define EXTRA_AUDIO_CODEC_TYPE in Connection" 2019-12-05 01:32:21 +00:00
allenwtsu
2aca989255 Define EXTRA_AUDIO_CODEC_TYPE in Connection
Bug: 143576354
Test: By manual
Change-Id: Ib8e701632676cfbe9993f1de2b58546f59ba580f
2019-12-04 15:21:19 +08:00
Hall Liu
cebf791676 Merge "Change name of setShouldScreenCallFurther" 2019-12-04 00:28:48 +00:00
Tyler Gunn
d57d76c371 Add Verstat fields to Telecom call/connection classes.
Test: Added new CTS tests to verify operation.
Bug: 135929421
Change-Id: I42360dad677060e03ecec865f31145b1760cf46a
2019-12-02 13:59:17 -08:00
Hall Liu
fd191d895e Merge "Expose new Telecom APIs for use by Telephony" 2019-12-02 21:43:02 +00:00
Chen Xu
b6d1319d1a telephony annotations part 2
adding missing annotations

Bug: 140908357
Test: Build

Merged-In: I6de632ef7ef01a939971b7d1bacb227ec5ff4048
Change-Id: I6de632ef7ef01a939971b7d1bacb227ec5ff4048
(cherry picked from commit f85cf993d3)
2019-11-20 14:09:16 -08:00
Treehugger Robot
252fcc7b27 Merge "Add support for disconnecting outgoing calls for emergency calls" 2019-11-19 22:44:18 +00:00
Brad Ebinger
6271387650 Add support for disconnecting outgoing calls for emergency calls
1) Add CarrierConfig to allow/disallow holding calls for emergency
calls.
2) If holding an ongoing call for an emergency call is disallowed,
define a new DisconnectCause reason to notify telecom/dialer of this
disconnect reason.

Bug: 138741228
Test: atest CtsTelecomTestCases; atest CtsTelephonyTestCases
Change-Id: I7c6a1d0f648c598111ed047fbb9c609843c6aba9
2019-11-18 18:57:54 -08:00
Hall Liu
b230624a42 Expose new Telecom APIs for use by Telephony
Expose TelecomManager#getCallCapablePhoneAccounts(boolean) and
ConnectionRequest#getTelecomCallId

Bug: 141576153
Test: CTS
Change-Id: Ie0214fc93682229a3e5781f62743f00f68472702
2019-11-16 14:30:31 -08:00
Brad Ebinger
c4044355eb Fix infinite recursion due to error log message
Bug: 144446106
Test: atest TelecomUnitTests:SessionTest
Change-Id: I382f90ad6f91262b06ac8816ecf1ecabfa9f6bb6
2019-11-13 16:51:16 -08:00
Tyler Gunn
398794c0a6 Merge "Cleanup video provider binder code." 2019-11-12 20:47:38 +00:00
Treehugger Robot
46758be25c Merge "Add response to notify that an outgoing call is screened." 2019-11-12 20:44:43 +00:00
Tyler Gunn
d1fdf3a85b Cleanup video provider binder code.
1. Ensure we always unlink for death from the VideoCallImpl.
2. Ensure we compare the binders in the Call instance properly so that
we are not always replacing the VideoCallImpl used.
3. Ensure we cleanup the VideoCallImpl when its being removed.

Test: Manual testing of video calls for regressions.
Bug: 121156974
Change-Id: I440e8fb4ab9a5051ee02358933c495de736e2bd0
2019-11-12 10:43:09 -08:00
Tyler Gunn
5be8504888 Merge "More telephony updates for mainline." 2019-11-12 03:24:01 +00:00
Hall Liu
69554cff8d Change name of setShouldScreenCallFurther
Change the name of the method to setShouldScreenCallViaAudioProcessing
Also remove some commented out lines

Fixes: 143564665
Test: CTS
Change-Id: Ib163e3dad49ad2301238256339be9bb3ba5fec3a
2019-11-11 17:44:09 -08:00
Hall Liu
fc2be9c0d2 Fix double-add of calls
In the api compatibility logic for the new call states, we might end up
adding a call by accident in internalUpdateCall if a call was updated in
the NEW state, and it'd then get added again when internalAddCall gets
called.

To fix this, restrict the call states that would result in an add from
internalUpdateCall, and also don't add the call again in internalAddCall
if it's already present.

Fixes: 143049799
Test: CTS
Change-Id: I2a6b646a5200fedf9e02029a7120595210a24c76
2019-11-08 18:31:24 -08:00
Tyler Gunn
5567d7408c More telephony updates for mainline.
Add new TelecomManager#getDefaultDialerPackage which is multiuse aware;
this is used when showing the voicemail notification.
Remove some @hide methods from Conference; push these inline.
Move ConferenceParticipantConnection into frameworks/opt/net/ims since
it is just an IMS implementation detail.

Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: I39b6955cb14cc1ca68b05c620c3d09a2cdfe30c9
Merged-In: I39b6955cb14cc1ca68b05c620c3d09a2cdfe30c9
2019-11-08 21:27:32 +00:00
Treehugger Robot
f363f3549e Merge "Add new SystemApi methods for mainline" 2019-11-08 15:46:53 +00:00
Hall Liu
d2f962a6db Add new SystemApi methods for mainline
Add new SystemApi methods for Telecom to call in lieu of the old @hide
methods. Also moved CallerInfo and CallerInfoAsyncQuery to Telecom
because there are no more users in Telephony.

Bug: 141576016
Test: CTS
Change-Id: I458ba6bcfc03db72c0419b0cab2f0d0adfa971d4
Merged-In: I458ba6bcfc03db72c0419b0cab2f0d0adfa971d4
2019-11-07 17:22:28 -08:00
Grace Jia
90b38041e8 Add response to notify that an outgoing call is screened.
Test: CTS
Bug: 135929421
Change-Id: Ied5076e1ac0dc4aca2e5709b2e817f6a6895c58b
2019-11-06 14:17:50 -08:00
Chen Xu
7631ff7c48 new telephony annotation class
This is a preparatory work for mainline. since Intdef is hidden, so we
have to move some annotations (applied in SDK/system API) to a separate
annotation class and having other module statically link to it.

TODO: include telephony annotation in framework-non-updatable-sources

Bug: 140908357
Test: Build
Change-Id: I37f8a0624bbf27f264870ee9dbf03d3aaa5cadc1
(cherry picked from commit c9d4ee112e)
Merged-in: I37f8a0624bbf27f264870ee9dbf03d3aaa5cadc1
(cherry picked from commit 4712711d3d91621083bf92f5a1647b92c20a8b81)
2019-11-04 21:26:50 +00:00
Tyler Gunn
9c3abc4692 Merge "Make Connection.Listener methods package private." 2019-10-31 18:10:16 +00:00
Tyler Gunn
633e4c3f19 Make Connection.Listener methods package private.
To prevent using these outside of the API surface, making package private
so we don't get tempted to use in the framework.

Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: Ife3a82371b018b74efbe10e11015526d7aaeb7a9
2019-10-25 07:24:17 -07:00
Hall Liu
e87b7156c9 Merge "Add logging values for new call states" 2019-10-22 23:10:58 +00:00
Tyler Gunn
c63f9082a6 Telecom API updates for mainline support.
Moving some Telecom APIs into public since they are harmless to expose.
Moving some other Telecom APIs into the System API space since they're
API details specific to the TelephonyConnectionService so don't need to
be exposed in the public API.

Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: Iaf75b9d671712d791f501c11536e73436908f7de
Merged-In: Iaf75b9d671712d791f501c11536e73436908f7de
2019-10-17 10:05:44 -07:00
Hall Liu
4e35b64bc3 Add logging values for new call states
Add the string values for the new call states so we don't get warnings
about unknown states in the logs.

Bug: 140317205
Test: manual
Change-Id: Ia6a27179639748287436a0785a03201985d8ab50
2019-10-14 17:50:45 -07:00
Hall Liu
31de23da21 Add SDK compatibility code for new call states
Add code that translates the new call states to old call states for
in-call UIs that don't yet support background call screening.

Test: CTS
Bug: 140317205
Change-Id: I104f5f7ab3e3dc075e1d9ed5c64fcd924f9a977b
2019-10-11 17:59:42 -07:00
Hall Liu
360428c44a Merge "Add APIs to support background call screening" 2019-10-02 18:34:54 +00:00
Hall Liu
6dfa249c88 Add APIs to support background call screening
Add Telecom APIs and AIDL code.

Test: CTS
Bug: 140317205
Change-Id: I99970f5ce12442f307a656db76cb26f5101e6c7f
2019-10-01 17:40:32 -07:00
Brad Ebinger
a9a33e1d68 Add Telecom command for setting connectionservice filter
For testing we need the emergency call to go through the CTS
ConnectionService. This is achieved by passing in a package
name filter for testing, which restricts which ConnectionServices
are available for emergency calling.

For safety this filter will be bypassed if the user calls an
actual emergency number (instead of a test number).

Bug: 138741228
Test: atest CtsTelecomTestCases
Change-Id: I656533e4a36a7bba48625bf6f763731991695aed
2019-09-30 17:46:36 -07:00
Grace Jia
2d21e95e61 CallScreeningService API changed.
Test: manual
Merged-In: Idf44886158dcebf96e8bdffd98be3621f496deaa
Change-Id: Idf44886158dcebf96e8bdffd98be3621f496deaa
2019-09-26 14:37:19 -07:00
Brad Ebinger
99f17ced8f Expose ConnectionService Handler to remove flaky tests
Test: atest TelecomUnitTests
Change-Id: Ibb80b5739083ad9f85ee06f4d9f0017f4cb605bd
2019-09-17 10:44:11 -07:00
Aurimas Liutikas
00be951a08 Add missing nullability annotations.
To prepare for enabling MissingNullability Metalava check this CL
works on adding missing nullability issues that metalava flags if
we tell it to flag new things since API 29.

This is not a complete CL, mostly addresses public api and
toString/equals for @SystemApi

Exempt-From-Owner-Approval: Large scale nullability clean up
Bug: 124515653
Test: make -j checkapi
Merged-In: I109260842cfc25f06e40694997fcbb4afa02c867
Change-Id: I109260842cfc25f06e40694997fcbb4afa02c867
2019-08-30 00:14:44 +00:00
Brad Ebinger
4bccabef90 Merge "Prevent Infinite Recursion in Telecom Sessions"
am: 8dec6de25a

Change-Id: I779c9424dc7a1f9f14f7907bba76a24b9026ec5a
2019-08-13 10:25:44 -07:00
Brad Ebinger
839bfaf7d0 Prevent Infinite Recursion in Telecom Sessions
There looks to be a case where infinite recursion
is occuring when printing information about
Telecom Sessions. Set a reasonable limit of
iterations and throw a warning when this condition
occurs to better track down a root cause.

Bug: 139045282
Test: atest TelecomUnitTests:SessionTest
Merged-In: Iae69c5db070c5e58ae5d37c12d1c4df027138611
Change-Id: Iae69c5db070c5e58ae5d37c12d1c4df027138611
2019-08-13 00:39:44 +00:00
Brad Ebinger
0e93d73053 Add CAPABILITY_EMERGENCY_PREFERRED in PhoneAccount
Allow Telephony to mark a SIM PhoneAccount as
emergency preferred, meaning that Telecom will
override a user's PhoneAccount preference for
emergency calls if the PhoneAccount has the
CAPABILITY_EMERGENCY_PREFERRED capability.

Bug: 131203278
Test: Manual testing, Telecom/Telephony unit testing
Merged-In: If70d917cfb3d825f375d282012b8788d69a2f144
Change-Id: I88b8bbfa444f5445b2f0d6a1542c6406a19b240f
2019-07-11 17:55:37 -07:00
Tyler Gunn
6986a63325 Support indicating call direction on existing connections.
This is important for ensuring the original call direction for existing
connections added from Conference Event Packages matches the call direction
of the original calls merged into the conference.

Also moved a utility function into ConferenceParticipant from
ConferenceParticipantConnection to make it generically usable inside
Telephony.

Test: Run all unit tests.
Test: Manual testing using VoLTE conference calls with mix of MO and MT
calls; verify call logging is appropriate.
Bug: 134471046

Change-Id: Iab09397b811782ab0f876aac02070e3447d81f09
2019-06-25 13:48:29 -07:00
Brad Ebinger
a8abb52707 Merge "Make getSimCallManager msim aware" 2019-06-04 20:40:42 +00:00
Usman Abdullah
b0dc29a875 Add silence support to CallScreeningService/Call API
Test: CTS
Test: Unit Tests
Test: Manual
Bug: 126590377
Bug: 122671585

Change-Id: I4e7c67784198678eef1926759ec1d8afb98438f4
Merged-In: I4e7c67784198678eef1926759ec1d8afb98438f4
2019-06-04 15:38:07 +00:00
Tyler Gunn
7fceb2018e Merge "Fix bugs with Remote Connection Services." into qt-dev 2019-06-01 23:52:16 +00:00
Tyler Gunn
156a33b9a8 Fix bugs with Remote Connection Services.
1. A previous change was made in ConnectionServiceAdapterServant to add
another parameter, requiring the user of SomeArgs.  I think this fix is
pretty self-explanatory.  (facepalm)
2. queryRemoteConnectionServices in ConnectionServiceAdapter had an issue
where the callback would not get called if there was more than one
IConnectionServiceAdapter instances.  This isn't an error condition, but
a condition where we don't query telecom for the list of valid remote
connection services.  We ensure a callback with an empty list is made
(this is similar to what Telecom already does).
This seems to be an issue inherent with DSDS because there can be multiple
SIM ConnectionServices where before there was only one.

Test: Run CTS tests.
Bug: 133639062
Change-Id: I1c508e97d1f0ea1bc72ad7ebd026c1ad66a52de3
2019-05-31 17:53:48 -07:00
TreeHugger Robot
d28f0c8c78 Merge "Enhancements to conference for non-conference host scenarios." into qt-dev 2019-05-31 22:42:43 +00:00
Tyler Gunn
ac60f9554e Enhancements to conference for non-conference host scenarios.
When a device A creates a conference call containing device B and C, both
B and C can receive IMS signaling to indicate that they are in a conference
call.  This occurs on most domestic carriers; the Telephony framework
uses the "multiparty" indicator on the IMS call to switch the call to a
conference call.

We made some changes to how conference calls are logged in Q which improves
the accuracy of the call durations.  We used to log calls as they're merged
into a conference.  In the case of a participant in a remotely hosted
conference call, we'd log the call as soon as they are remotely added
to the conference.  This is unfortunate as the call durations are grossly
under-reported.

The conference call logging changes now assume we'll log the conference
event package children in the conference instead of the participants which
merge into the conference itself.  On domestic carriers, since the
call on B (or C) becomes a conference, we would then no longer log the
call.

This is FURTHER complicated because on some carriers, B and C will ALSO
receive a conference event package from the network showing all the
participants in the conference.  So if B hangs up on the conference, they
will have entries in their call log for A and C, which is really strange
because a call to C was never originated on their device.

In Telecom we need to ensure we do not log remotely hosted conference
participants, and we need to ensure that we DO log a remotely hosted
conference as if its just a single party call.

To accomplish this we need:
1. the address and name display information associated with the call from
A-B / A-C prior to the call turning into a remotely hosted conference.
We need this to log to the call log
2. the remotely hosted conference and participants need to be marked in a
manner that Telecom can identify them.

Test: Manual test.
Test: Add unit test to cover this logging scenario.
Bug: 132325382
Change-Id: I65e713f68d1695a48d96dacbf7faa4476cd8d815
2019-05-31 12:45:19 -07:00
Brad Ebinger
3636d74ead Add CAPABILITY_EMERGENCY_PREFERRED in PhoneAccount
Allow Telephony to mark a SIM PhoneAccount as
emergency preferred, meaning that Telecom will
override a user's PhoneAccount preference for
emergency calls if the PhoneAccount has the
CAPABILITY_EMERGENCY_PREFERRED capability.

Bug: 131203278
Test: Manual testing, Telecom/Telephony unit testing
Change-Id: I88b8bbfa444f5445b2f0d6a1542c6406a19b240f
2019-05-22 19:52:01 +00:00
Brad Ebinger
5d22b5c5fe Make getSimCallManager msim aware
When there are multiple subscriptions available,
the SIM call manager is currently resolved based
on what the default voice subscription is. Add the
ability for TelecomManager to get the SIM call
manager for a Telephony subscription ID.

Test: Manual; atest TelecomUnitTests
Bug: 131627085
Merged-In: I77fecbad6bc8f2c39a755ae0d2d2343d7a0b5db9
Change-Id: I748fcebb44f07fbc9deef0c6a07d2f15a44b22d3
2019-05-22 00:23:51 +00:00
Tyler Gunn
ac9d572269 Merge "Make queryRemoteConnectionServices DSDS aware." into qt-dev 2019-05-21 15:18:59 +00:00
Tyler Gunn
4c69fb3d7b Make queryRemoteConnectionServices DSDS aware.
The method queryRemoteConnectionServices had the issue that it assumes
there is a single connection manager for the device.  This assumption does
not work on a multisim device.  Since the ConnectionManager is associated
with a particular carrier, this means that the connection mgr for one
carrier could try to impact calls destined for another carrier.

This change ensures that the calling package is passed into Telecom so
that we can determine which RemoteConnectionServices which are available to
the calling connection manager.

Test: Manual test on DSDS with a connection mgr carrier and another carrier.
Bug: 131856987
Change-Id: I46d80dc68adaab7fd4374f023d7ba4242804c253
2019-05-17 10:49:38 -07:00
Ian Pedowitz
3bd719b534 Merge "Revert "Revert "Remove deprecated System APIs added in Q.""" into qt-dev 2019-05-15 16:28:54 +00:00
Tyler Gunn
f18ee4c9b8 Update API docs for TelecomManager#endCall.
Make it clear that ending an emergency call is not possible with this
method.

Test: Compile; this is a docs change.
Bug: 132438333
Change-Id: I736b90e31723ee2055cedf16142c4d0f494bf49b
2019-05-14 11:08:06 -07:00