summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/RemoteConnectionService.java
AgeCommit message (Collapse)Author
2021-08-30Fix issue when adding existing connections via remote connection services.Tyler Gunn
When an existing connection is added to represent an IMS conference participant, it is added with an associated parent conference specified. This was NOT passed along to the connection manager via the RemoteConnectionService API since there is no equivalent API present for that operation. To work around this, we stash the parent conference's ID into the connection extras. We will use that later so that Telecom can know which conference is the parent of this call. Also, removing restriction in RemoteConnectionService which would ignore conferences with no children. This assumption was incorrect for VOLTE conferences since they will start with no children. As a consequence we would ALWAYS skip adding IMS conferences to the connection manager, which would mean that it had no way of knowing about the conference that the existing connections are associated with. Test: Manual test with connection manager APIS on live network; make conference and verify that the correct objects are being created wrapped by the connection manager. Bug: 188420526 Change-Id: Ie58afed7a3b7eeaa7e329e80479d273e4c50ec82 Change-Id: I4250f9459c7a1b82936583a10e93d049fdfb4c5d (cherry picked from commit fdc4bff3198fcaedfa29f45d92525c0351acd583)
2020-08-13Merge "Add adhoc conference APIs to RemoteConnection and ↵Grace Jia
RemoteConnectionService."
2020-08-11Add adhoc conference APIs to RemoteConnection andGrace Jia
RemoteConnectionService. Plumb through the adhoc conference APIs via these new APIs. Bug: 159944852 Test: atest CtsTelecomTestCases:RemoteConnectionTest Change-Id: Icfa27e0616dd35ba350f7a491e5c95337a286b9d
2020-08-05Improve remote connection logging.Tyler Gunn
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. Bug: 154353494 Fixes: 155097158 Merged-In: I916750e0f558db1eb9e581bab7a9fbc71f781709 Change-Id: Iee1b5cfd3334a5de08d7b04022b7c6d5af6a4b04
2020-04-20Add new @hide API to pass call direction changes through TelecomBrad Ebinger
Bug: 153277327 Fixes: 154245581 Test: atest TelecomUnitTests Merged-In: Icad12c4144bf185c24ee80bcbdd1aec29550bf4e Change-Id: Icad12c4144bf185c24ee80bcbdd1aec29550bf4e
2020-01-22Ims: Add support for Adhoc Conference callsRavi Paluri
Add support for Adhoc Conference calls Test: Manual Bug: 62151032 Change-Id: Id50d235595d2133f867848ffdebdfe11e2f1c896
2019-05-17Make queryRemoteConnectionServices DSDS aware.Tyler Gunn
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-01-19Support for treating single party IMS conference as a standalone call.Tyler Gunn
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
2018-07-31Telecom: Reset the duration after the CDMA call is acceptedMengjun Leng
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
2018-02-13Ensure start of call properties are propagated to RemoteConnection.Tyler Gunn
Some properties were not being propagated to a RemoteConnection when a Connection is first created. This can cause problems where the Connection Manager is not aware of these property changes, especially if they never change again during the lifetime of a call. The extras set when a Connection is first created using the RemoteConnectionService API would not be propagated to the RemoteConnection. This means that Telephony RAT reporting would never happen if the radio technology never changes during a call. Bug: 72811636 Test: Manual Change-Id: I658aab10b1fb89ca29c39338febcc76e9f50d8f4
2018-01-09Add connection serivce focus api interfacePengquan Meng
This add new api interface to ConnectionService to support the connection service focus api. Bug: 69651192 Test: manually Change-Id: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5 Merged-In: Iea49d95b086d32a0ebaf8e9f34fe4556953a0fd5
2017-11-09Update Telecom APIs to include multi-hfpHall Liu
* 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-08-25Emergency redial implementationSrikanth Chintala
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-03-07Merge "API review cleanups/changes." am: 9324d6513b am: dd4bc7c69cTyler Gunn
am: c49b011151 Change-Id: Ib3d76474bef8c911b2ec6a61b916e38af0a3b861
2017-03-06API review cleanups/changes.Tyler Gunn
- 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-01Add further Connection-side APIs for RTT (part 2)Hall Liu
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-02-21Introduce APIs for RTT calls (part 1)Hall Liu
Add signaling methods and data pipes for handling real-time text during a call. Change-Id: I876827c448252c5f786d7a4919c47891acb03877 Test: manual, through telecom testapps
2017-02-06Perform camera permission and app ops check when setting camera for VT.Tyler Gunn
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-06Framework fixes to support VoLTE conf calls via RemoteConnectionServices.Tyler Gunn
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-01-18Adding self-managed connection service APIs.Tyler Gunn
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
2016-11-02Modify ConnectionServiceAdapter to include SessionBrad Ebinger
Modifies the ConnectionServiceAdapter to include Session Information in the AIDL interface so that external Sessions can be started in Telecom from Telephony. Test: Manual testing and Unit Tests pass Bug: 26571395 Change-Id: I31bbfe433dd062a50bd05083e1a639dd4cd03403
2016-10-28Modify AIDLs to include Session.InfoBrad Ebinger
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-08-15Add missing remote conference property set.Tyler Gunn
When creating a new remote conference, there was a missing call to "setConnectionProperties". This would prevent remote conferences from being created with the correct properties as defined in the actual conference. Bug: 30383741 Change-Id: I335e35c222ae18b0d6ea7e750b91bcc36aa40ece
2016-07-11Finalize MEP functionality.Tyler Gunn
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-03-24Add connection properties to Connections.Tyler Gunn
- Per suggestion of API council, moving properties of a Connection from CAPABILITIES_* to PROPERTIES_*. Bug: 27458894 Change-Id: Icce921b03cda514a991646ed39a26559c7e91230
2016-03-23Expand call/connection extras API.Tyler Gunn
Currently, connection extras are propagated up to Telecom as an entire bundle. This is not ideal, as any time a change is made to the extras, the bundle needs to be fetched, changed, and then re-set on the connection, where it is parceled to Telecom as a whole. Using how extras on an Intent as inspiration, this CL adds separate putExtras, putExtra, and removeExtra methods to allow manipulation of the extras bundle without operating on it in its entirety. This Cl also adds support for Calls modifying the extras bundle, with changes propagated back down to ConnectionServices. Bug: 27458894 Change-Id: I152340a3bca2dc03f170b06b172a6823410fb961
2016-03-14Add API support for multi-endpoint.Tyler Gunn
This CL includes changes required to support multi-endpoint (see the design doc linked off the bug). Main changes include: - support for indicating if a call/connection is "external" to the device. - support for indicating if an external call can be pulled from the remote device to the local device. - API used to initiate a pull of a call external to the current device to the current device. - Made the "connection event" API public (was previously @hide); this will be used to support passing some error events involving pulling calls to the incall ui. - Added new InCallService metadata which will be used to determine if an InCallService wants to be informed of external calls. - New disconnect causes which will be used to expose the fact that a multi-endpoint call was answered elsewhere and that a call ended because it was pulled to another device. - New call log call types to indicate if calls were answered elsewhere or pulled to another device. Bug: 27458894 Change-Id: I423f64ff965b5e50194635a51868c327782db2a1
2016-02-16Add new ConnectionEvent API (hide) to send a notification to TelecomTyler Gunn
Connection event used to inform Telecom that it should play or stop the on hold tone. This is used to play or stop a tone when the peer puts the current call on hold. BUG=25357778 Change-Id: I2669f8f5062449784a712b9dd28e576326fcc679
2015-05-28Add extras to Connections/Calls. (1/3)Santos Cordon
Two major changes: 1) Add the notion of extras to a Connection. These extras will be parceled through to InCallService as Call.getExtras() 2) The previously existing Call.getExtras() has been renamed to getIntentExtras(). This name better describes the fact that these particular extras are from the original CALL or INCOMING_CALL intents. Change-Id: I08c1baf4f08d54757f98012f0c08b423a707c53d
2015-05-01Merge commit '17455a3' into master_mergePrerepa Viswanadham
2015-04-28Add plumbing for merge failures and renable button. (3/4)Anthony Lee
The merge failure is not plumbed up through any layer that can trap the callback and act on it. The first part of this fix is to create that plumbing. Then we need to reenable the merge button. At this point in time, we leverage the fact that forcing the call to reassess its capabilities will poke the InCallUI to reenable the merge button. In the future, we should plumb the merge failure all the way to InCallUI and not only handle the button but display UI to the user. The UI is currently being displayed by CallNotifier which is the wrong place. See b/20530631 for more details. Bug: 20229905 Change-Id: I0355ada46b484c6db4bee656c77386dd61be5e1f
2015-04-16DO NOT MERGE Remove connection substateJay Shrauner
Bug:20300433 Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
2015-04-16Remove connection substateJay Shrauner
Bug:20300433 Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
2015-04-10Merge commit 'e593d0a' into merge_workPrerepa Viswanadham
Change-Id: I4f8ae40fc446cd9cda4d5c6ec99469a98dda595b
2015-04-01IMS-VT: Upgrade/Downgrade changeRekha Kumar
-Add isVideo API to VideoProfile.VideoState IMS-VT: Fix propagation of device orientation. Orientation received at VT Service is incorrect. Fixed propagation of device orientation to VT service. IMS-VT: Upgrade fix -Add session modify call timed out constant Notify listeners of video quality changed event - Propagate the video quality changed message to the UI. IMS: Add support for video quality - Add Config interface to get/set video quality IMS-VT: Multitasking feature -Support for video multitasking IMS-VT: Modification of data usage aidl Change data usage aidl interface to take parameter type long instead of int Change-Id: I7cda2a689edb86d025dfe8efc8f573918c4bd6bc Propagate the call substate changed message to the UI IMS-VT: Add call modifiable capability PhoneCapababilities call type modifiable constant added IMS-VT: Add a bit mask CALL_SUBSTATE_ALL with all call substate bits set IMS-VT: Enable Video conferencing. Enable Video conferencing. Change-Id: I4240aa6f32c75d6eea8a41da3c87bca651f0901b IMS-VT: Add hide for setVideoProvider API Observed compilation error for SDK generation due to setVideoProvider API. Marking setVideoProvider as hide inorder to resolve the compilation error. IMS-VT: Add persist.radio.ims.audio.output for VT calls -- Add persist.radio.ims.audio.output to set the default speaker for VT calls. -- Add required constants IMS-VT: Add additional error codes for upgrade downgrade -Add support to send additional error codes to UI during upgrade downgrade. Change-Id: Id452d225098fe3bccdcd37d242985c5c761144c1
2015-01-31Don't set address for failed remote connectionsSailesh Nepal
We created failed connections we no address attached. When the connection is sent to RemoteConnectionService the null address is translated to a setAddress() call. This causes all failed connections to show up as "unknown". Fix is to only call setAddress if creating the connection succeeded. BUG: 18830726 Change-Id: I680e2fa4c69157a9fdbfa348c6af1f2f87aafd48
2015-01-28Fix crash when making emergency callsSailesh Nepal
When making an emergency call the fallback connection manager would crash. The problem was that the connection manager would get a setVideoProvider() call even though it wasn't routing calls. The root cause of this crash is b/19185063. As a short term work around I'm adding a null check to avoid the crash. BUG: 19020123 Change-Id: Ibe4a791882c9b5e21ae629a63f8d89cd3deba828
2014-12-16Pass onPostDialChar call back from Telephony to Telecom.Nancy Chen
Add plumbing to alert Telecom every time a character is processed after the post dial wait state (the processing happens in Telephony). Bug: 18644688 Change-Id: I487d76aa9c959ca528c6377374aa35c2d0b4a803
2014-11-28Telecom API updates (1/6)Ihab Awad
Bug: 18292176 Change-Id: I060366234a5a60510c385dc837f2b7e79596eaf5
2014-10-30Creating connections for conference event package participants.Tyler Gunn
- Add "addExistingConnection" method to connection service which provides a way for a connection service to notify telecom of a pre-existing connection (connections are normally created through telecom). - Modify TelephonyConferenceController to retrieve its state from a multiparty connection in the conference (in the case of IMS calls, this would be the ImsCall that manages the conference) instead of just taking the first one. Bug: 18057361 Change-Id: I26993aec54ecb0ce90ae6983fd3eed9d8d0a5773
2014-10-09Fix hangouts conference calling regression.mike dooley
Check the connection-by-id hash table instead of conference-by-id hash table when setting conferenceable connections. Bug: 17919110 Change-Id: Ia8a5ab3fb96926e600d21eca7737a0044b233563
2014-10-06Add ability to add sim-initiated MO call to UI (2/4)Yorke Lee
Add supporting (hidden) APIs to TelecomManager to add the ability to add a previous unknown call to Telecom Bug: 17787391 Change-Id: Ibdfaee81a55e11451c146751cf970980dccad435
2014-09-30Refine implementation of GSM conferences (1/3)Ihab Awad
Bug: 17684223 Change-Id: I05d05b594803ea2c1da4247111b70ad5f870ac46
2014-09-20Pass disconnect reason for failed remote connectionsSailesh Nepal
If a remote connection fails to create call setDisconnected instead of setState. This allows us to pass the disconnect reason. Note, this CL is very low risk since it only impacts remote connections. Bug: 17594857 Change-Id: Id296f3f5a4bb9168b358d3bfda94e04623a6b99c
2014-09-16Add new DisconnectCause class to telecomm.Andrew Lee
+ Add a hidden "UNKNOWN" default type to ToneGenerator. - Hide the Telephony DisconnectCause from the public API. + Add a Telecomm DisconnectCause. This is parcelable, and contains information (code, user facing message, non-user facing reason, and tone) to help describe the disconnect state and what behaviors an application can implement for the user experience. This reduces the causes for a disconnect to a more generic set. + Lots of work to pipe this through. DisconnectCause replaces the code and message which were formerly passed around. Bug: 17241433 Bug: 17329632 Change-Id: I9d337e478a8784bcc0ade02267c2df52cac9bf17
2014-09-12Renaming Telecomm to Telecom.Tyler Gunn
- Changing package from android.telecomm to android.telecom - Changing package from com.android.telecomm to com.android.server.telecomm. - Renaming TelecommManager to TelecomManager. Bug: 17364651 Change-Id: I192cb5d189f55db012ea72ee82ccc5aedbc21638