This CL improves traceability of calls initiated via a remote connection
service.
For regular incoming/outgoing calls, when initiating a request to create
a remote connection in RemoteConnectionService, we set
EXTRA_REQUESTING_PACKAGE_NAME in the parcelled request to the package name
of the connection manager. In ConnectionService this serves as an
indicator that the incoming request is via a connection manager and is
used to trigger setting of EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE with the
phone account handle the remote connection service uses to place the call.
For conferences and existing connections, the initial request is from
the remote connection service to the connection manager so we can
just set the EXTRA_REMOTE_PHONE_ACCOUNT handle there directly.
Also cleaned up logging in the telecom session logging to remove the
assumption that the ownerInfo is an incall service.
Test: Manual testing with connection manager to verify logging.
Fixes: 154353494
Change-Id: Iee1b5cfd3334a5de08d7b04022b7c6d5af6a4b04
A recent Telephony change was made to support missed calls reported
over SMS; this change made FailureSignalingConnection fully mutable
which failed some CTS.
Given that its only the setAddress method which would fail the mutability
check, re-added immutability in the FailureSignalingConnection since
ultimately we do want to protect these from state changes, but removed
the mutability check in the setAddress method since its reasonable to
want to report an address in this case.
Test: cts-tradefed run cts-dev -m CtsTelecomTestCases -t android.telecom.cts.ConnectionTest
Fixes: 150811816
Change-Id: I7f37daf9ac65ff70eec7692410fa299cb30fdc38
Provided a way for carrier to notify their users
about missed incoming call via special SMS.
Bug: 144068181
Test: MissedIncomingCallSmsFilterTest
Merged-In: Iacf1ce5b2a79761536e2b31a0ea5644622b4913c
Change-Id: Iacf1ce5b2a79761536e2b31a0ea5644622b4913c
(cherry picked from commit 0630b6c358)
- New @SystemApis on Conference and PhoneAccount were missing the required
permissions annotations.
- Rename PROPERTY_ASSISTED_DIALING_USED to PROPERTY_ASSISTED_DIALING
- Standardize get/setConnectionStartElapsedRealtimeMillis method naming
across Connection and Conference classes.
- Clarify Conference#sendConferenceEvent API documentation to match the
docs present for similar method in Connection; include some examples of
valid event/extras combinations.
- Update TelecomManager#getDefaultdialerPackage to use UserHandle instead
of userId.
- Move Conference#getConnectionStartElapsedRealtimeMillis to public API
since the setter is already part of the public API.
Test: Run Telecom and Telephony CTS tests.
Test: Run Telephony unit tests.
Test: Perform manual single-party-conference regression test to confirm
that conference behavior does not regress.
Bug: 147301297
Bug: 148286830
Bug: 148284863
Bug: 148284843
Bug: 148287068
Bug: 148285484
Bug: 148285560
Change-Id: I1f446d81859fa109d74af3661a42a0bd224de5aa
Merged-In: I1f446d81859fa109d74af3661a42a0bd224de5aa
Supports initiation of a conference call
by directly adding participants to existing call
Test: Manual
Bug: 62151032
Change-Id: I4e60efafab4761ae65a460fdc6c4cacc3e233220
Adding a new Call API which supports passing a user-specified call
rejection reason down to the lower layers for reporting to the network.
Part of the VERSTAT spec involves support for this type of signaling, so
it makes sense to also support it here as well.
There are two potential types of reject reason:
declined - user declined the call because they want it to go to voicemail
or don't want to talk to the caller right now.
unwanted - this is a nuisance call and the user never wanted to receive it.
Bug: 135929421
Test: Added new CTS test to validate API pathways.
Test: Ran existing telecom and telephony unit tests.
Test: Modified test dialer app to use the new reject API and verified that
the reject reason signals down to the modem and translates to the correct
reject cause.
Change-Id: I6f25fafa2b2620e2839e5d3a9fb986f1130fa165
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.
Bug: 145132366
Test: m && diff unsupportedappusage_index.csv \
git diff HEAD^ HEAD | grep '^[+-][^+-]' | grep -v '.import'
Merged-In: I853372f3c6fef905553bb31be4f1bb48df735f7a
Change-Id: I853372f3c6fef905553bb31be4f1bb48df735f7a
- Cleanup the API docs for the audio codec constants.
- Add an IntDef for the constants
- Refer to IntDef in the EXTRA_AUDIO_CODEC definition.
- Cleanup API docs for EXTRA_AUDIO_CODEC to make it more clear that
the codecs mentioned are not the only ones supported.
Fixes: 146563762
Test: Compile/make update-api
Change-Id: If837c640033c76f32dfa25dcf9c7d1d6cb344d7b
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.
Bug: 145132366
Test: m && diff unsupportedappusage_index.csv \
git diff HEAD^ HEAD | grep '^[+-][^+-]' | grep -v '.import'
Change-Id: I087bb1cecbe59f1cf0c2e770c735d7a433722c6f
Add new connection event to indicate switch failure.
Test: Manual - Verify that incoming call can be rejected after switch
call is failed.
Bug: 143918738
Change-Id: Ib38ceb3cb72ce946c071a8ec9748a1c81ca58808
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
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
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
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
- RTT Voice information will be passed to the UI via
media profile changed message
- The RTT voice information - SPEECH/SILENCE, will be conveyed
via the ImsStreamMediaProfile.hasRttAudioSpeech
- A connection event will be sent from frameworks to the UI -
EVENT_RTT_AUDIO_INDICATION_CHANGED
- Add listeners, connection event and extras to propagate
media profile changed to the UI
Test: Manual
Bug: 110976450
Change-Id: I34d2dd612915d65f5047986dabece968c78f0abe
These fields can be used for Spoof call detection in the Dialer
Bug: 115537553
Test: compile and test on device
Change-Id: Ib92043536e0fc43e40efc53189a28c4e58064ddc
This CL includes a number of cleanups related to unsupported app usage
tags.
TelecomManager#EXTRA_IS_HANDOVER - public APIS exist for this usecase;
updated docs and limit to P with maxtarget sdk.
TelecomManager#getSimCallManager(int userId) - marked as max target P;
there is a public API available which can be used to accomplish the same
thing. Nobody should be calling this.
TelecomManager#getCallCapablePhoneAccounts(boolean) - marked as max
target P; callers should use the version without the boolean parameter.
Deprecate CAPABILITY_CAN_UPGRADE_TO_VIDEO; its redundant.
New public API:
Promote TelecomManager#getSystemDialerPackage() to public API; its a
benign API and doesn't expose anything which can't be inferred other ways.
New system APIs:
TelecomManager#getCurrentTtyMode() - used by settings app.
TelecomManager#setDefaultDialer() - used by useful for settings app.
TelecomManager#TTY_MODE* constants - used by getCurrentTtyMode API.
Test: Compile / run unit tests
Bug: 119305590
Change-Id: I67d6213e6c689fb545fc9ceae4a359831f97c32f
Add support for the IMS call profile to indicate that a call is an
emergency call.
Add supporting connection and call properties so that this can be
propagated to Telecom and ultimately the Dialer app.
Add System API to determine if the device is in a network IDed or dialed
emergency call (used in Telephony).
Test: Manual test using test intents and ecclist property.
Test: Added new telecom unit tests.
Bug: 77565333
Change-Id: I769e7b5000b10662c08fe53c91ef99edc685d2b1
This patch mainly takes below changes:
1) Add new extra to indicates the call network technology.
2) Provides basic function to set/get call radio technology.
Bug: 67856372
Test: Manual
Change-Id: I1a12382fdb589ce823fe7af025832db4cdc152c2
With the introduction of supported APIs in P, these event-based prototype
constants are no longer needed.
Test: Manual testing with test app
Bug: 110846969
Change-Id: Ic453923f57eb30d9ae7e1ee3c8ff07420e79f597