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
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
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
Pipe through the onConnectionEvent call between the conference host
connection and the android.telecom.Conference object.
Fixes: 130404376
Test: manual
Change-Id: Ifad3e59dc9764aa2efb2b9766271e18853bf1c76
Adding @hide APIs which Telephony can use to make a conference call with
a single participant look like its a standalone call.
Test: Manual testing
Bug: 75975913
Change-Id: Id8532234ab295785fc749b120898f43911e12637
In android original design, the duration of CDMA MO call is started from
the dial command sent, so it is not the real duration of the active time.
In this patch, a new message is registered to listen the event of the call
accepted, and then reset the duration when the event happens.
Change-Id: Icc447012030ae243f200ec2c83b7d5210af9b31c
Although Telecom ensures that new calls use voip audio mode, the default
value from a Connection would override the Telecom default.
Bug: 76362663
Test: Modify test app to ensure it does not set voip audio mode, ensure
Telecom uses voip audio mode for new calls.
Change-Id: Ie6477659cf6dabd08f371d4958ece1d258cd3106
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.
Fixes: 73751004
Fixes: 73750515
Fixes: 73750817
Merged-In: I7860fcd813f25adaaccf632f2c61dd4138a0a889
Change-Id: I7860fcd813f25adaaccf632f2c61dd4138a0a889
(cherry picked from commit c7a86b14a8)
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
* 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
* 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
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
Call deflection feature is useful to deflect MT call to another
number.
Test: Manual
Bug: 62170348
Change-Id: Idfbcc175a856aa0bb9476f8c73d7a614a3af0700
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
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
This add new api interface to ConnectionService to support the
connection service focus api.
Bug: 69651192
Test: manually
Change-Id: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5
Merged-In: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5
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
This add new api interface to ConnectionService to support the
connection service focus api.
Bug: 69651192
Test: manually
Change-Id: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5
* 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
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
Add some method to the ConnectionService in order to notify the
connection changed.
Test: manually test and unit test
Bug: 66949982
Change-Id: I077902474f9af70e00a383aa269e1ae6ff9230a9
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