Commit Graph

58 Commits

Author SHA1 Message Date
Tyler Gunn
00d737bd17 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
2019-11-11 08:28:38 -08:00
Chen Xu
f85cf993d3 telephony annotations part 2
adding missing annotations

Bug: 140908357
Test: Build
Change-Id: I6de632ef7ef01a939971b7d1bacb227ec5ff4048
2019-10-02 13:48:50 -07: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
Hall Liu
c9bc1c6639 Make connection events work for conferences
Pipe through the onConnectionEvent call between the conference host
connection and the android.telecom.Conference object.

Fixes: 130404376
Test: manual
Change-Id: Ifad3e59dc9764aa2efb2b9766271e18853bf1c76
2019-04-16 15:06:13 -07:00
Tyler Gunn
6c14a699e9 Expose some APIs as test APIs to facilitate CTS
Test: added new cts tests
Bug: 123896388
Change-Id: I742f23be57e731307338591d816f7888e198b333
2019-02-04 15:12:24 -08:00
Tyler Gunn
68a73a4d0d Support for treating single party IMS conference as a standalone call.
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
2019-01-19 10:27:23 -08:00
Wei Huang
7f7f72e451 Propagates voice call radio technology to connection
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
2018-09-19 18:51:52 +09: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
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
Brad Ebinger
8c6f0cab33 Remove Conferenceable update squelching
In an effort to remove redundant updates to Telecom,
conferenceable connection updates for a conference
were being removed if the list of connections hasn't
changed.

For GSM, when a new outgoing call was placed, it was
added to the conference controller before being added
to the list of connections. The conference controller
was updating the conferenceable connections for that
conference with a connection that wasn't being tracked
yet, so it was not notifying telecom of the connection.
It was still added to the list of conferenceable
connections in the conference, however, so later
conferenceable updates were being disregarded before
being sent to Telecom.

This change removes conferenceable update squelching
so that we always update telecom with the correct
conferencable connections for a conference.

Bug: 37989809
Test: Manual, Procedure in Bug, unit tests
Change-Id: I62960df9db27f0b303431aef99e73ef87498d374
2017-08-01 15:23:26 -07:00
Tyler Gunn
ec5b6e3232 Add carrier configuration options to allow enforcing max conference size.
Adding carrier config options to to allow enforcing a maxmimum size for
IMS conferences.
Also adding small performance enhancement to setConferenceables so that
if the list of conferenceable connections does not change it does not
send an update to listeners.

Test: Manual
Bug: 29548224
Change-Id: I109c91c4147814547bb75003d312d81d41a52c13
2016-12-07 14:12:33 -08:00
Tyler Gunn
9c0eb0bd46 API cleanups per API review.
1. removing deprecation for setExtras on Connection/Conference as these
have legitimate use-cases going forward.
2. Expanded documentation on Call.Callback class to clarify how it is
expected to be used.
3. Updated Callback#onConnectionEvent callback docs to clarify its usage.
4. Expanded Call#sendCallEvent docs to clarify expected namespacing of
call event keys and extras keys, as well as clarification about backwards
compatibility and expectations of ConnectionServices.
5. Standardized the "invoked" vs "notifies" language in the Conference
docs.
6. Clarified how Connection callbacks from Telecom should be implemented.
7. Added Bundle parameter expectations for pre-defined connection events.
8. Documented capabilities and properties toString methods.
9. Documented expectations for onCallEvent method.
10. Expanded documentation for sendConnectionEvent method to clarify
namespacing, use cases, etc.

Bug: 29759275
Bug: 29759954
Bug: 29759773
Change-Id: Ib8c983af4dbbfee68edb60937b268e2c1a9b5e64
2016-06-29 11:46:40 -07:00
Brad Ebinger
e93c91edc2 Merge \"Handle Concurrency issues in Connection\" into nyc-dev
am: df41725e53

Change-Id: I0332df9dc96086a3094dc4ab53573b5cf57f8730
2016-06-15 22:48:06 +00:00
Brad Ebinger
4fa6a01898 Handle Concurrency issues in Connection
Currently, there is a possibility of concurrent thread operations to the
Extras bundle in Conference/Connection. This can cause unexpected
behavior. We have added a lock on the Extras to prevent that from
occuring.

Bug: 29330310
Change-Id: Id63a9797c2f748120a3df8e3ce06c4ce3891c651
2016-06-15 20:53:25 +00:00
Tyler Gunn
071be6f42b Add removeExtras(String...) prototype per API review.
Per API review, adding a convenience prototype of the removeExtras method.

Bug: 28295516
Change-Id: Icc0e040516c06205540c5683bde16882a73a89d6
2016-05-10 14:52:33 -07:00
Tyler Gunn
2cbe2b5816 Un-@hide multi-endpoint APIs.
Bug: 28621640
This reverts commit 1bf206b766.
Change-Id: If8c85e4adeb017eec2b7e8199010deae2a920c6a
2016-05-06 03:07:45 +00:00
Tyler Gunn
1bf206b766 Hide multi-endpoint APIs.
Per feature council decision, the multi-endpoint APIs will be @hide for
the N release.

Bug: 28196918
Change-Id: Ia80b089bc754ce87ca208382eb79442b5265844d
2016-04-15 11:28:44 -07:00
Tyler Gunn
53befa2e0b Merge "Add missing null checks on Conference and Connection." into nyc-dev 2016-03-29 19:02:08 +00:00
Tyler Gunn
a8fb8aba7c Add missing null checks on Conference and Connection.
Also add missing bundle passing for Connection Events.

Bug: 27850430
Change-Id: I0f79635929cbe5da18b528b6c1119c7ce4d8e32b
2016-03-29 10:24:22 -07:00
Tyler Gunn
720c664401 Add connection properties to Connections.
- Per suggestion of API council, moving properties of a Connection from
CAPABILITIES_* to PROPERTIES_*.

Bug: 27458894
Change-Id: Icce921b03cda514a991646ed39a26559c7e91230
2016-03-24 20:20:11 -07:00
Tyler Gunn
dee56a8a79 Expand call/connection extras API.
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-23 16:06:34 -07:00
Omkar Kolangade
a0f46a9e7d IMS Connection Capabilities Update
IMS connection capabilities were not getting
propagated to the upper layers whenever a
capability was added or removed. Adding the
same.

Change-Id: Ic67d76df05c8b2a1b8abaf27f266fe9693764e52
2016-01-25 09:51:56 -08:00
Jack Yu
6714030083 merge from master
Change-Id: Ic03669db3f4595336a7dbc13ffc77d055d11acf9
2015-12-10 12:27:58 -08:00
Tyler Gunn
87b73f370e API Cleanup: Remove VideoState class.
- Remove VideoState class.
- Replace references to VideoState constants with VideoProfile equivalent.
- Push VideoState static methods into VideoProfile.

Bug: 21573551
Change-Id: I1bca02772b5b7d86643f612824b07faef7618725
2015-06-03 10:09:59 -07:00
Tyler Gunn
d46595a673 IMS: Conference fixes
- Set phoneaccount to Conference
- Handle conference call in DIALING state

Change-Id: I549bf664724473f0d5d4450cbc8d96f7b534f43a
Bug: 21376607
2015-06-01 14:53:55 -07:00
Santos Cordon
6b7f955c2d Add extras to Connections/Calls. (1/3)
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-28 09:43:00 -07:00
Yorke Lee
abfcfdc044 Make Conferenceable an abstract class
Bug: 21066017
Change-Id: Ibcbccfc7b1380e417b464aed9b968cbc0a6a1cc2
2015-05-13 20:48:19 -07:00
Yorke Lee
4af5935c71 Rename AudioState to CallAudioState
Deprecate AudioState class and make methods @SystemApi where
necessary to minimize impact to SystemApi
Replace usages of AudioState inside Telecom sub-systems
Fire both onCallAudioStateChanged and onAudioStateChanged callbacks
for backward compatibility
Support both setAudioState and setCallAudioState for all classes

Bug: 21040387
Bug: 21088300
Change-Id: I3ec7b3afdaa344c6d639d1c421f1842d67f7d0f7
2015-05-13 14:58:15 -07:00
Yorke Lee
32f2473160 More video related API fixes
android.telecom.Connection.VideoProvider
* onSetPauseImage takes Uri instead of String
* changeCallDataUsage -> setCallDataUsage
* add quality constants to changeVideoQuality() docs

android.telecom.InCallService.VideoCall
* setPauseImage takes Uri instea dof String

android.telecom.VideoProfile.VideoState
* Move constants to VideoProfile, prefix with STATE_

Bug: 21040387
Bug: 21066505
Change-Id: I764e72aced9d1e2d30d6d0cf0862100860d47c79
2015-05-12 16:45:14 -07:00
Santos Cordon
4055d64899 Fix build break.
Change-Id: Icca3603d3f4a38146fb9bc04a384a22ece4014f4
2015-05-12 14:19:24 -07:00
Santos Cordon
5d2e4f20fe Rename Connection time APIs for Conference.java
Bug: 21072487
Change-Id: I7bed9957770639f2adf3c7bd31a4821c0ff0f0dd
2015-05-12 12:47:45 -07:00
Tyler Gunn
6b3714939f Un-@hiding some missed VT APIs.
Bug: 20947116
Change-Id: Idda9b7c7debafbea8c42eaadb75c3375b2c8ddb2
2015-05-08 11:35:55 -07:00
Etan Cohen
94f2c27aca Merge commit '7f61051' into merge2 2015-04-24 14:02:07 -07:00
Tyler Gunn
df2cbc8989 API Cleanup - rename IConferenceable to Conferenceable.
Bug: 20165255
Change-Id: If4cb323749b6ef9e8657506434d760d07c34167f
2015-04-20 09:13:01 -07:00
Andrew Lee
0f51da328d resolve merge conflicts of edc625f to m-wireless-dev.
Change-Id: Ibbcd764505ccc38f9f61c96993d979a099f1cc6b
2015-04-16 13:11:55 -07:00
Jay Shrauner
1cf9b6bec1 DO NOT MERGE Make Telecom/InCallUI APIs public
Bug:20260870
Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
2015-04-15 14:42:24 -07:00
Jay Shrauner
55b97525f0 Make Telecom/InCallUI APIs public
Bug:20260870
Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
2015-04-15 12:03:48 -07:00
Jay Shrauner
193de667ed DO NOT MERGE Remove deprecated telecom APIs. Mark others final.
Bug:
Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
2015-04-15 11:05:50 -07:00
Andrew Lee
edc625f52e Add StatusHints to Conference object.
+ Consolidated ParcelableConference constructors; only one is used.

Bug: 20181703
Change-Id: Iad49f10404e1c1eedc4ef68525bde0f10a8dfc97
2015-04-15 11:05:19 -07:00
Jay Shrauner
164a0acf53 Remove deprecated telecom APIs. Mark others final.
Bug:
Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
2015-04-14 22:57:30 -07:00
Rekha Kumar
07366813cd IMS-VT: Upgrade/Downgrade change
-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-04-01 21:40:45 +00:00
Tyler Gunn
cd5d33c89f Fix for call timer resetting when starting IMS conference call. 1/4
- Added support in Conference for specifying the connect time when the
conference is created.

Bug: 18959443
Change-Id: I501edde3b62f6bf021eb7455089e80626013da12
2015-01-12 09:02:01 -08:00
Anju Mathapati
f9c4d84ea9 IMS: Set phone account in IMS Conference object
Get phone account from conference host connection and set
it to ImsConference while constructing

Bug: 18690773
Change-Id: I018a84512eb6ce001a8021d148895bf87dddc2ef
2014-12-17 13:06:46 -08:00
Ihab Awad
5c9c86ec0f Telecom API updates (1/6)
Bug: 18292176

Change-Id: I060366234a5a60510c385dc837f2b7e79596eaf5
2014-11-28 15:54:35 -08:00
Tyler Gunn
6d76ca0438 Change Connections to allow setting conferenceable with conferences.
- Added IConferenceable interface used so that connections and conferences
can both be considered candidates as "conferenceable" with a connection.
- Fixed ConnectionService#conference to support cases where either call 1
or call 2 is a conference and the other is a connection.  Previously did
not support cases where call 2 is a conference.

Bug: 18200934
Change-Id: I32a8dd30a154d6280f2ae89fd147817235998465
2014-11-17 15:49:51 -08:00
Evan Charlton
0e094d926c Apply @hide / @SystemApi to android.telecom.*
Move the android.telecom.* namespace back to @hide, and also mark it
with @SystemApi so that system-privileged apps can use them.

Bug: 18302450
Change-Id: I33ae1b9b0dfdb1c5eff51ca3c829196bcfc9411c
2014-11-10 11:52:31 -08:00
Andrew Lee
46f7f5dce4 Replace onConferenceChanged with onConnectionAdded.
This change is motivated by a desire to be able to adjust the
phone capabilities of a conference depending on its connections.

Turns out Connection is not a good place to do this, because when
the conference is set, this code is only fired if the connection
service already contains the conference. Conference makes more
sense to do this anyways, at the end of the day.

+ Add onConnectionAdded function to Conference.java.
- Remove onConferenceChanged function from Connection.java.

Bug: 18241753
Change-Id: Ib9212a8483a7a7b542618697399bbab8b2701b04
2014-11-06 17:19:51 -08:00
mike dooley
1cf14ac5dc Adding method to get disconnect cause from conference
Bug: 17842499
Change-Id: Ifb6e61d50d66aa8e8299e7024b2ab6d1d0f9d878
2014-11-04 11:21:21 -08:00
Tyler Gunn
4a57b9b59b Creating connections for conference event package participants.
- 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-30 14:27:48 -07:00