History log of /packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
57c362606bdc175152c210653a9d613c7572a59e 01-Jun-2017 Tyler Gunn <tgunn@google.com> Ensure WFC international call check only happens for outgoing calls.

Add TelephonyConnection isOutgoingCall property.
Use property when checking if the call is an international call.

Test: Manual
Bug: 62162029
Change-Id: Ibade505eef29ee6fa2d6881f2a6377a4e67d57c6
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
4a7629e31f24c4658746e072a5afb7c1cecbe0e0 09-May-2017 Tyler Gunn <tgunn@google.com> IMS conference merge improvements.

1. When adding a new child call in an ims conference, use new CS method
to add it and set the parent property at the same time. This helps
prevent jank in the InCall UI when unparented children are added.
2. When the original call get disconnected, setting the reason code to
IMS_MERGED_SUCCESSFULLY so that dialer will have a notion that the call
is being disconnected due to merging; this will allow better filtering.

Test: Manual
Bug: 37581781
Change-Id: I75e560837c258c1fa9c0fae71c73c2e29bceb1a6
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
1c072d2289b2203c6826fde941c411d738cdea52 07-Feb-2017 Tyler Gunn <tgunn@google.com> Merge "IMS-VT: Update pause video capabilities for conference call Update pause video capabilities for conference call if pausing outgoing video is supported on host connection" am: 34bd26d417 am: 51276a75c2 am: 66934e6e45
am: b90ee5fb7b

Change-Id: I445f563ea1a57fa75013788892c36373209b97d7
34bd26d41700bcc083486a217d4982f6e62d733b 07-Feb-2017 Tyler Gunn <tgunn@google.com> Merge "IMS-VT: Update pause video capabilities for conference call Update pause video capabilities for conference call if pausing outgoing video is supported on host connection"
49755c087f18c14c548e53de37c58a43fb0d28a4 06-Feb-2017 Ravi Paluri <rpaluri@codeaurora.org> IMS-VT: Update pause video capabilities for conference call
Update pause video capabilities for conference call if
pausing outgoing video is supported on host connection

Test: Manual
Bug: 35035756
Change-Id: I8fc5867831a5562cf8ddeeaee15e6f7954adb7f9
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
765ea6a4b71069ca23c4560fcaa40502d098cff8 18-Oct-2016 Tyler Gunn <tgunn@google.com> IMS Conference fixes related to RemoteConnectionServices.

1. In ImsConferenceController, adding the children of an IMSConference
to the list of conferencable connections. This is necessary because the
RemoteConnectionService API does not support specifying a list of
Conferenceables for a RemoteConnection. Where Conferenceables are either
Connections or Conferences. It only supports specifying a list of
conferenceable connections. This is problematic because for an IMS
conference call, a standlone Connection is technically conferenceable with
the ImsConference. As a result, the RemoteConnetionServices API is not
able to support conferencing a standalone Connection into a Conference.
To fix this temporarily, I'm adding the child ImsConference participant
connections to the list of conferenceables for the standalone Conference.

2. In ImsConference, there was an assumption made in "onMerge" that the
Connection merged into the conference was a TelephonyConnection. Because
of the issues in (1), we can't make this assumption. Since the cast
was only there to get at the phone, opted to just use the getPHone()
method in the conf host connetion instead.

Bug: 31464792
Change-Id: I5ee13dc71e566831c02d5ced18e0edb0f8b7ac4b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
05ce5e928264fc1232815a7b178e1c2c2e0c732b 15-Dec-2016 shuoq <shuoq@google.com> Adding unit test for ImsConferenceController

Changes for testing:
- modify some Mock/Proxy class for using/testing some final public api
- modify several parts to inject Proxy for testing

Test: Adding unit test for ImsConferenceControllerTest.java
Change-Id: I966ad707e47b98e4adf0e7e180b0ca6ee2a58a11
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
3d076a57c444f41e1061c9498c4256b9c6f4d7ea 02-Dec-2016 Tyler Gunn <tgunn@google.com> Enforce maximum IMS conference size defined in carrier config.

Using new carrier configuration options to enforce an (optional) maximum
conference size for IMS conferences. When a conference is considered full
the user will not be able to merge any more calls into the conference.

Test: Manual (will circle back and add unit tests)
Bug: 29548224
Change-Id: I139e309234028db440a3aa5ef1ae566a543149a0
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
5149f9cd57ed16f3e4560fc96a0b2b7d1d6095db 18-Oct-2016 Tyler Gunn <tgunn@google.com> IMS Conference fixes related to RemoteConnectionServices.

1. In ImsConferenceController, adding the children of an IMSConference
to the list of conferencable connections. This is necessary because the
RemoteConnectionService API does not support specifying a list of
Conferenceables for a RemoteConnection. Where Conferenceables are either
Connections or Conferences. It only supports specifying a list of
conferenceable connections. This is problematic because for an IMS
conference call, a standlone Connection is technically conferenceable with
the ImsConference. As a result, the RemoteConnetionServices API is not
able to support conferencing a standalone Connection into a Conference.
To fix this temporarily, I'm adding the child ImsConference participant
connections to the list of conferenceables for the standalone Conference.

2. In ImsConference, there was an assumption made in "onMerge" that the
Connection merged into the conference was a TelephonyConnection. Because
of the issues in (1), we can't make this assumption. Since the cast
was only there to get at the phone, opted to just use the getPHone()
method in the conf host connetion instead.

Bug: 31464792
Change-Id: I5ee13dc71e566831c02d5ced18e0edb0f8b7ac4b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
547c90d833a8e905474848d933ab1427d6ffabe1 17-Aug-2016 Tyler Gunn <tgunn@google.com> Ensure hold capability is removed from ImsConference if hold not supported.

Bug: 30918742
Change-Id: I7dd76754e52157a140c5a1467ef7221341eea655
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
fd10d8e29d22c473f32efbc9298cfb50b2c032e0 10-Aug-2016 Brad Ebinger <breadley@google.com> Key Conference Participants by User and Endpoint Uris

The original assumption that a participant's endpoint is unique is
invalid. Instead, we now key on a Pair containing both the User and
Endpoint Uris of a conference participant.

Bug: 30777779
Change-Id: I2bc7b1a694ddbdb18284e28bbf31dacff5c0d679
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
bfd94d19dd2bfa5df94f4455d4f5736173316fba 20-Jul-2016 Amit Mahajan <amitmahajan@google.com> In IMS conference, use participants' Handle to check if it's host.

Earlier the check was done on Endpoint which was not correct.

Bug: 24613146
Change-Id: Iaefa1a59b9e762805e2ca342162a51170621f2b2
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
a1e498b06bcae2f273c67e371e8a3909581c04f5 20-Jul-2016 Amit Mahajan <amitmahajan@google.com> Use correct conversion for ArrayList to array.

Bug: 24613146
Change-Id: I165e7cf0e788789be523858f839e4085fde5de2b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
348d251c47385b4efc94621104e1715eded53058 18-Jul-2016 Amit Mahajan <amitmahajan@google.com> Use selfIdentityUris from IMS if line1Number is not available.

It is to identify host in an IMS conference call.

Bug: 24613146
Change-Id: I5e615bbce75f837f2a88718bb18c73f213eb470d
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
309a758b73a978bf38447ca997f70d23355d3564 12-Jul-2016 Tyler Gunn <tgunn@google.com> Adding enhanced conference event package logging.

To enable better debugging of CEP issues, adding enhanced logging.
Adding better logging to SRVCC.

Bug: 30086285
Change-Id: I92622f1e0357742427b578160a3b2d2f807b52c9
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
d74916ea4b3919da404e36ff04d49838d7762442 18-Jul-2016 Brad Ebinger <breadley@google.com> Merge "Key the conference participants using the Endpoint" into nyc-mr1-dev
9f0c6f6137e2eda1fd6a0e85893b0835216c2dcf 18-Jul-2016 Hall Liu <hallliu@google.com> Merge "Add properties and capabilities to GsmConnection after SRVCC" into nyc-mr1-dev
d31bc417dd6427bc3a68924326ba53c651224eea 12-Jul-2016 Brad Ebinger <breadley@google.com> Key the conference participants using the Endpoint

We currently keep track of the conference participants using the address
from the Conference Event Package. This can potentially be the same if
two or more of the participants include connections to the same
device. We will now use the endpoint as the unique identifier to be sure
that there are no possible duplicates.

Change-Id: Ice7d7b09cdb5fdcc844e1ab89cf255dffeca2b9e
Fixes: 30089057
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
a1e95e75fa9b189ea81ce5b27d74a0904c5e94cf 15-Jul-2016 Hall Liu <hallliu@google.com> Add properties and capabilities to GsmConnection after SRVCC

Add CAPABILITY_CONFERENCE_HAS_NO_CHILDREN and
PROPERTY_IS_DOWNGRADED_CONFERENCE to the connection created after an
SRVCC.

Change-Id: Ie429010efa9f8c6f48e48df9ecb85ca55efd63bc
Fix: 29806833
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
6c9760c521fb1990c88ff97031fc300eafe90ae4 12-Jul-2016 Tyler Gunn <tgunn@google.com> Ensure conference doesn't support video if video conf not supported.

If the carrier config indicates that video conferencing is not supported
ensure that the ImsConference cannot be set to support video from the
remote end or upgrade to video. There are cases where the network
signaling may indicate that video is supported for a conference call.

Bug: 30067920
Change-Id: I6803d2679cf83b9b577038ea53f3ea957c7aa407
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
b00433a0a8e0fb556467821a3e5de1b9c2d1d691 02-Jul-2016 Tyler Gunn <tgunn@google.com> Ensure conference capabilities and properties are set on conf start.

We already handle changes to the capabilities and properties, just not
setting them initially.
This fixes a bug where at the start of a conference, there would be no
HD icon on the conference. You all know conferences need to be HD.

Bug: 29582320
Change-Id: I24cec94499f3bc0d09177d1d190ef9540331fbb6
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
9eaef23d17fda6f1cd25c80df93a58e4baa4bcfa 27-Jun-2016 Tyler Gunn <tgunn@google.com> A few conference calling fixes:

1. b/28325313 - When an SRVCC occurs, ensure that a phone account handle is set on
the GsmConnection which is added to Telecom. Also ensure that the
PROPERTY_CONFERENCE bit is set on the connection to ensure that the
InCall UI can display the correct label.
2. b/29059073 - Handle case where a video call is downgraded to an audio
only call, and thus should be able to be merged into a conference.

Bug: 29059073
Bug: 28325313
Change-Id: I56d3f89e4f07d8ad5edc5793fe6094e5887ff786
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
bf31ee144528524c57e97c4156d8d5acfd10d1b8 17-Mar-2016 Tyler Gunn <tgunn@google.com> Add connection properties to Connections.

- Per suggestion of API council, moving properties of a Connection from
CAPABILITIES_* to PROPERTIES_*.

Bug: 27458894
Change-Id: Id9c040c9baf3fae675c55d221b598cd250bd7b3b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
77550fec9e488eb8a76fcb3b4b38e7bf902af5a1 22-Mar-2016 Tyler Gunn <tgunn@google.com> Update Telephony to use new Extras APIs.

- Given the new extras APIs, updating Telephony to make use of these new
extras apis in place of the existing "setExtras".
- Updating ImsConference to handle transferring extras from host to
conference.

Bug: 27458894
Change-Id: I4a120ba17e8617d8821ba5b124a6e1354efc7d0a
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
4f8dc822102a8b138d980cabff35ad3ac28ebb96 22-Mar-2016 Shriram Ganesh <sganesh@codeaurora.org> Merge "Fix merge after a conference call goes through SRVCC." into mm-wireless-dev
am: 1d3879b

* commit '1d3879b00a5135802abaf9187d99577745d41c49':
Fix merge after a conference call goes through SRVCC.
079fd03db77bddee01e8da5f129d62b9bf451076 12-Feb-2016 Shriram Ganesh <sganesh@codeaurora.org> Fix merge after a conference call goes through SRVCC.

When conference call goes through SRVCC, a new TelephonyConnection
is created. This connection does not have the field for
conference support set to true (by default the field is not set).
As a result the conference call cannot be merged to another call
after SRVCC. The fix is to set the field to true.

Change-Id: I3e27a4e7c154c70086bfc61735fd0162292ffa1e
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
66edd5830b614a2445ae0c58575f71ee20ccf495 10-Feb-2016 Omkar Kolangade <omkark@codeaurora.org> IMS-VT: Conf: Propagate call extras to UI.
am: f776162da7

* commit 'f776162da774207ee21aaa65d0e4ac61b694029f':
IMS-VT: Conf: Propagate call extras to UI.
f776162da774207ee21aaa65d0e4ac61b694029f 18-Nov-2015 Omkar Kolangade <omkark@codeaurora.org> IMS-VT: Conf: Propagate call extras to UI.

Call extras of a conference call are not getting
propagating to UI because the ImsConference class
doesn't listen to the onCallExtras notifcations
of the original connection.

Bug: 27105172

Change-Id: I6f5499e3b18f9de87869cb5c9a0191cd59a70f89
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
5646f8093938778e9ab108e235a4b9f398fd71b8 25-Jan-2016 Tyler Gunn <tgunn@google.com> DO NOT MERGE Add support for CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO capability.

Propagate capability from internal telephony connection.

Bug: 22728624
Change-Id: I86caaf71880137db73ee20244d29524bffd63bc0
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
3ccf660bcb0b7bcb0e8cd387e1ae619e8326b7bb 25-Jan-2016 Tyler Gunn <tgunn@google.com> Add support for CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO capability.

Propagate capability from internal telephony connection.

Bug: 22728624
Change-Id: I86caaf71880137db73ee20244d29524bffd63bc0
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
034aa20d7a44b08af8dc11a7be10a396d64fb688 16-Dec-2015 Amit Mahajan <amitmahajan@google.com> Added null checks to avoid NPEs.

Bug: 25793157
Change-Id: I1fec5855e59e8ef1986d6d0125953ca199c6476f
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
80e5718cf33451905408956838a98835e3e2441f 16-Dec-2015 Amit Mahajan <amitmahajan@google.com> Added null checks to avoid NPEs.

Bug: 25793157
Change-Id: I1fec5855e59e8ef1986d6d0125953ca199c6476f
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
0d3f7fa783846a6c10728bd4e3081685a887d422 14-Dec-2015 Amit Mahajan <amitmahajan@google.com> Code cleanup including removing direct references to IMS classes.

Also removing code in PstnIncomingCallNotifier to unregister and
re-register on phone type switch as that is not required now.

Bug: 25793157
Change-Id: Ic0c0fd5067d65b950a2a0ddb2bec528c22b694d4
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
6d83e5eb90ee8b4551d61c4789bb8f124c4c12d2 14-Dec-2015 Amit Mahajan <amitmahajan@google.com> Code cleanup including removing direct references to IMS classes.

Also removing code in PstnIncomingCallNotifier to unregister and
re-register on phone type switch as that is not required now.

Bug: 25793157
Change-Id: Ic0c0fd5067d65b950a2a0ddb2bec528c22b694d4
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
e7939d87e0758327ebed3f433326aef75b887331 11-Dec-2015 Jack Yu <jackyu@google.com> Merge from master

Change-Id: I20c8bb451376e78b306ac231cf3d6a239a72267e
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
bd98ad4e1557124cf54edafc0035e47b114beeb4 16-Oct-2015 Tyler Gunn <tgunn@google.com> Merge "Ensure target phone account is set for all conference types."
6c7c0161effb37c69bb89aebf6df4cec30af3d69 12-Oct-2015 Shriram Ganesh <sganesh@codeaurora.org> am cda54ae6: am e43dfab7: am 398fdcfc: am a23daed8: IMS: Disconnect children before ending conference call

* commit 'cda54ae63c517ff0995ce8f71b92fb837fbd9556':
IMS: Disconnect children before ending conference call
a23daed8ac8c2f8f36ae0392d1e3cd749f3d592d 30-Sep-2015 Shriram Ganesh <sganesh@codeaurora.org> IMS: Disconnect children before ending conference call

Disconnect the children of conference call before
ending the conferece call itself.

Bug: 24677801
Change-Id: Ia168360926b87a2482c607b6fe7c314faae9c184
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
12979bd81e68fe5b4e6b8ae9c889ec7ad63f2110 17-Sep-2015 Tyler Gunn <tgunn@google.com> Merge "Propagate telecom call ID to Telephony classes."
696e618d6684ceed1b5f4a26fc493a7e4db7ab65 15-Sep-2015 Tyler Gunn <tgunn@google.com> Ensure target phone account is set for all conference types.

- Fixed issue where ImsConference based the phone account handle on the
ImsPhone, rather than the base Gsm/Cdma phone.
- CDMA and GSM conferences were setting phone account handle as null.

Bug: 23035408
Change-Id: Iba4b674b3fe73a8cc8e43da4af7e36f653e3772e
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
26727ce8fff531e6f8f10bfb5a8bc949a30f25cf 01-Sep-2015 Tyler Gunn <tgunn@google.com> Fix issue where host shows up as a conference participant.

- Added verbose debug logs to have better visibility as to what is
being compared (in case this fix doesn't work).
- Changed to using PhoneNumberUtils.compare, which will strip out any
special characters such as +, -, etc when performing the number comparison.

Bug: 23691306
Change-Id: I68ed5cea5a65c44e8f8bc2518dd02c29a9149540
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
1cf18c55c3764faa21a6690cebe6d09470ed1200 01-Sep-2015 Tyler Gunn <tgunn@google.com> Propagate telecom call ID to Telephony classes.

Propagate the telecom call ID to the Telephony Connection and Conference
classes.
Modify debug toString statements to output the telecom call ID.
Propagate the telecom call ID to the internal telephony Connection
classes.

Bug: 23357902
Change-Id: I7e78c69673084a4a3d39d1e8d7a6cd7f1bc7177e
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
06842b5b3177f04bdd4498c12d1e42ea11c5ea98 25-Aug-2015 Anthony Lee <anthonylee@google.com> Merge "Propagate the HD indicator to the IMS Conference." into mnc-dr-dev
2a424a6b9a341b15442a35894fce31ce862c3b04 25-Aug-2015 Tyler Gunn <tgunn@google.com> Propagate the HD indicator to the IMS Conference.

Previously only the video capabilities were being transferred from the
conference host connection to the IMS conference. This change also
transfers the HD indicator to the IMS conference.

Bug: 23263670
Change-Id: I41da617fd4d59d43b36acea8bcba8757a7ddd0a6
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
495cf68d2426766bba0016db975925f898e23cf2 24-Aug-2015 Tyler Gunn <tgunn@google.com> Fix concurrency issue when processing conference event packages.

In ImsConference, the "handleConferenceParticipantsUpdate" method is
called in response to the "onConferenceParticipantsChanged" callback from
the IMS stack. Although ImsConference stores the participants in a
thread-safe collection, the code which accesses this collection when
performing the update could result in duplicates in multithreading
scenarios.

The change looks big about, but really it's just wrapping the body of
"handleConferenceParticipantsUpdate" in a synchronized block.

Bug: 23482867
Change-Id: I44317277f3cccff786f1c696b4f441a52dbd1b89
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
833d7a050f645b23ce01c40827a63f1700158efa 22-Aug-2015 Tyler Gunn <tgunn@google.com> Support filtering out conference originator from manage conference list.

Some carriers will include the conference originator in the conference
event package data. This means that my own phone number can show up in
the "manage conference" screen.

Added a method in TelecomAccountRegistry to get the device phone number
given a phone account.

In ImsConference, when adding new participants add a check to see if the
participant # is the same as the conference host's number.

Also, caching and reusing the phone account handle instead of re-creating
it each time.

Bug: 22629231
Change-Id: I76067f330482c1fa2562bd89dfad659850da428f
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
ec97142c01d14b9b3d0d50ba3285fb2942d2ac6a 21-Aug-2015 Roshan Pius <rpius@google.com> Merge "Copy the connect time on SRVCC to new connection" into mnc-dr-dev
410dd122d5656db5cff0d35cdbbcbe09b5fd00d6 21-Aug-2015 Roshan Pius <rpius@google.com> Copy the connect time on SRVCC to new connection

On SRVCC fallback to GSM connection, we need to copy the connect time
set on the existing IMSConnection to the new GSM connection created so
that we can keep track of the call time across the SRVCC event.

BUG: 21918593
Change-Id: I38253e66cee5474d93bd461128f62ee39a6cc96c
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
f789e6e1f9e67e26d13305c494f00254b92f63f3 20-Aug-2015 Tyler Gunn <tgunn@google.com> Fix issue where conference timer resets to 0 when CEP enabled.

The problem was due to the fact that when we have children for a conference,
Telecom uses the oldest child's start time. In the case of the CEP
participants all had no defined start time so they defaulted to using
the time when the conference was started.

Changed so that the child connections get the ImsConference's start time
(which is the start time of the oldest original call merged to form
the conference).

Bug: 23381612
Change-Id: I95766c113e7cfe2fa3b80a616bdfd9417b744dc3
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
a39a1cb528615afd17f6e6e44d9690886903e4c7 28-Jul-2015 Shriram Ganesh <sganesh@codeaurora.org> Fix bug in conference call SRVCC.

1. Compare the state of original connection before handover with
the newly reported post-handover connection's state in order
to map the two connections as a result of SRVCC based on state.

2. Disconnect the IMS conference participants after SRVCC as the
new participants come via GsmCallTracker.

Bug: 22850703
Change-Id: I313e12d53ff9c096c0d2300e01b8733a3abe2776
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
b7e749cfd763db446bfd744554279254aa5a900a 17-Jul-2015 Roshan Pius <rpius@google.com> am 8d9d3b92: Merge "Maintain call time across SRVCC (3/3)." into mnc-dev

* commit '8d9d3b92602d4a133534116588823ede92e9df88':
Maintain call time across SRVCC (3/3).
2910db1d80f73cc070064329d29ffab8a72812f0 15-Jul-2015 Roshan Pius <rpius@google.com> Maintain call time across SRVCC (3/3).

When an IMS conference call encounters an SRVCC event requiring a
fallback to GSM/CDMA, we need to maintain the call time for the
conference host across this fallback. So, adding a connectTime attribute
in the underlying conference host's connection object which can be used
to account for the call time from the now inactive conference call into
the new call created.

BUG: 21918593
Change-Id: Ief866d95a547cb37b70eeff10b8fad05a3021ff0
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
cd3b79cc1d3fbb5f77ab17fc2756c75fe7ff9ef7 20-Nov-2014 Shriram Ganesh <sganesh@codeaurora.org> SRVCC Conference call scenarios with mid-call enabled.

1. Disconnect all IMS conference participants on Handover. Create a
telephony connection out of the original connection part of
IMS conference host and add that to Connection Service as an
existing connection. Add the new Telephony connection to the
conference controller.

Telephony Conference controller delays the attempt to add the
conference to the connection service, until all the participants
are already part of the ConnectionService.

Retrigger the conference recalculation of conference controller
after a Unknown connection is added to ConnectionService.

2. Add support for SRVCC conference with greater than 3 participants

After the Gsm Conference object is created with the first two
participants, delay adding the subsequent unknown connections to
the conference until the connections are added to connection
service.

3. Add support for using the CS connection address during SRVCC

The check for pre-handover state is only applicable to IMS
connection. Compare the state of new handover connection with
pre-handover state of Ims Connection to process the correct update
corresponding to the TelephonyConnection.

Change-Id: I2ab2ee02a83bf8555856ccdba3de0aae75041f9b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
4733c0888b676189aee2cdf1ec44674264a32682 27-Jun-2015 Tyler Gunn <tgunn@google.com> Set "has no children" capability on IMS conferences.

- By default setting "has no childen" capability on ims conferences.
- Handling case where conference event package data arrives (setting on
the conference capabilities).
- Fixed a bug where a change in the conference capabilities due to arrival
of a conference event package were not actually being communicated to
Telecom. Previously the addCapability and removeCapability methods were
used; those do not call the callback to notify listeners of the change.
Calling setConnectionCapabilities does, however, notify
listeners.

Bug: 21085329
Change-Id: Id4a65a048cea81c836868d948e2aa1ce2639439e
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
c6514358fdf6060233141140a5cc08579c55b8ea 03-Jun-2015 Tyler Gunn <tgunn@google.com> API Cleanup: Remove use of VideoState class.

Bug: 21573551
Change-Id: Iac8f9f7010a6b04f25c92ea6c2eeb38033f95c34
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
af7f8126ef3c6dea3caa453a9564183fea0f2a42 01-Jun-2015 Tyler Gunn <tgunn@google.com> IMS: IMS fixes for conference

- Set phoneaccount in IMS conference object
- Add support conferencing connections after SRVCC
- Use user entity to remove participant
- IMS Conference Creation update
- Fix NPE in conference participants update
- Properly disconnect conf participants missing from list
- Use UserEntity to display Conf Participants
- Set the participants to disconnected state before
removing
- Handle conference call in DIALING state

Change-Id: Iac8ef26022ee8bbe95541e1a63509b1934e2965f
Bug: 21376607
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
ab16dd8821b1c6bd7d90b7d54321806f33ee6906 13-May-2015 Ihab Awad <ihab@google.com> Refactor StatusHints (2/3)

Refactor StatusHints to use the new Icon class.

Bug: 21040387

Change-Id: I8435b428ef28fc6133f7ffb6ceb981592bb37c76
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
4e1f02f6a7536b2c415d907582abe523234ab57b 12-May-2015 Tyler Gunn <tgunn@google.com> Fix logic error in disconnectConferenceParticipants method in ImsConference.

- In disconnectConferenceParticipants, there is a call to
removeConferenceParticipant. This is problematic as the remove is called
in the middle of a for loop which loops through the
mConferenceParticipantConnections. It is also redundant as
disconnectConferenceParticipants calls mConferenceParticipantConnections.clear()
when it is done.
- There is also an orphaned "participant.getEndPoint()" call.

Change-Id: Ia43d2df699d3287856c1dcad7c7aae452db86c0d
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
de7f451a652f480937dc0c30bb6c8bdd9cc79dd8 14-Apr-2015 Andrew Lee <anwlee@google.com> Add WFC StatusHints for Conferences.

Bug: 20160799
Change-Id: Ica8b91364a3ad2402e2afc959d8ce258ce4b0cd7
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
ddc0ecf988bde187c206a1150249d9dbc6df1910 15-Apr-2015 Andrew Lee <anwlee@google.com> DO NOT MERGE Suffix VT_LOCAL/REMOTE with BIDIRECTIONAL.

Bug: 20160395
Change-Id: I598f8c72041d4f514f1d5373e302194e3240ec37
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
655fae309204d5b94ae623b042957d06146c283f 15-Apr-2015 Jay Shrauner <shrauner@google.com> DO NOT MERGE Don't use deprecated APIs

Use setConnectionCapabilities() instead of setCapabilities()

Bug:
Change-Id: Iaad45656dd6bad9a305e02d1068f5bb694a56eb5
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
2c109707defa66aad2ee0960e09d659b111b6354 15-Apr-2015 Jay Shrauner <shrauner@google.com> DO NOT MERGE Backport fixes from master

Don't directly set parent class fields. Don't use deprecated APIs.

Bug:
Change-Id: Ida4f4f7b9ef024e114f84556c4850548c3d134ab
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
9c5c993082207a3c81a7a28fdb9fdb9a197deae3 14-Apr-2015 Tyler Gunn <tgunn@google.com> resolve merge conflicts of 5735ed5 to m-wireless-dev.

Change-Id: Icc3f15c9de86eaf2a7bcb25aa274ca1d6f69a1a6
f3245fd2f9fb95491ad390144e303cbf209992e8 02-Apr-2015 Tyler Gunn <tgunn@google.com> Prevent merging conference calls hosted on peer device.

With IMS, the "multiparty" bit on an ImsCall is set to "true" when a call
is merged into a conference. This not only occurs on the device hosting
the conference call, but also on the devices of the callers merged into
the conference.

This CL changes the TelephonyConnection to listen to multipart state
changes reported by the ImsPhoneConnection. It uses this to notify the
ImsConferenceController when a conference has started. Note: the handler
is re-used to ensure the conference creation happens on the correct thread.
PhoneBase#checkCorrectThread would error out during creation of the
conference otherwise.

Modified ImsConferenceController to check for conferences which are not
conference hosts and to exclude them from the list of conferenceables.
We also exclude connections marked as multiparty which are not a conference
host (it is possible we have not yet turned these into a conference yet).

Bug: 19478784
Change-Id: I15c39e9c922c8a71e30f210f212e0ec779f5f939
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
3d8ea0e60c00436c4c3596d83fa164640f10b098 18-Mar-2015 Rekha Kumar <rekhak@codeaurora.org> IMS-VT: Update phone account's capabilities.
Updates phone account's video capabilities based on
the event received from Phone object.

IMS: Add support for video quality
- Add UI for adding IMS settings
- Add video call quality preference
Enable user to control video call quality from UI

Change-Id: I308e6d106d853d8242b2e324467edc7ce739850f

IMS-VT: Do not allow changing the TTY mode during a Video call
When the device is already in a video call, the user SHOULD NOT
be allowed to change the TTY mode. If the user tries to change,
then an UI alert message will be displayed explaining it cannot
be changed during video calls.

Propagate the call substate changed message to the UI

Enhance log message in handleVideoCapabilitesChanged
- Add the video capability value to the log message

IMS-VT: Call Modify capability
-Add modify call capability only if call is in active or holding
state

Change-Id: I8d75f65ce4ddb4b684478260995ec6cad74d46c0

IMS-VT: Enable Video conferencing.
Enable Video conferencing.

Ims: Update conferenceHostConnection state for a conference call
TelephonyConnection that backed the original connection is
cleaned up after making a clone this TelephonyConnection that
is eventually treated as conferenceHostConnection. Update
conferenceHostConnection state too

Change-Id: I962d11068d136a39527dd0720200c42fbd49681b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
fba8553cc6e449d80b52b2ea74d9779888ed779b 12-Jan-2015 Tyler Gunn <tgunn@google.com> Fix for call timer resetting when starting IMS conference call. 3/4

- Pass the connect time of the connection representing the conference
to the conference itself. This ensures when we notify telecom of the
conference, its connect time will reflect the earliest call.

Bug: 18959443
Change-Id: I96b6ba2e862f45b5ae0d624b483d3278afa67516
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
02539fd2cc054c322d7d26152e6455a373ba913c 16-Dec-2014 Anju Mathapati <anjucm@quicinc.com> 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: I1f66927a9b7905e005196365f3b318ef5b49dd3e
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
d5165b05c851ecd47d330b600ed2768e0db8b9d1 06-Dec-2014 Andrew Lee <anwlee@google.com> Tidy up visuals/behaviors for MSIM notifications.

+ If MSIM device, show subscription display name on voicemail
or call forwarding notifications instead of some of the normal
title/summary text.
+ Use subscription colors to tint notification backgrounds.
+ Use PhoneAccountHandle to specify SIM to call with for voicemail
notifications.
+ Move code for getting PhoneAccountHandle from Phone into PhoneUtils
and update references throughout telephony. This assumes we only need
to do the conversion for PSTN phones; this seems to be a safe
assumption given how the notification manager previously got the
default Phone from the phone factory.

Bug: 18232725
Change-Id: I62574643de1d61ef716e06fb733467ce2f607586
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
dbbce96742af8a4b3cbdc20fe5fe4b4a92d83a33 01-Dec-2014 Tyler Gunn <tgunn@google.com> Merge "Fixing issue where DTMF tones were not issued through to the IMS framework once a conference is established." into lmp-mr1-dev
3cc8121590b5b05af65a9aeaa8948834e4983adc 12-Nov-2014 Ihab Awad <ihab@google.com> Telecom API updates (5/6)

Bug: 18292176
Change-Id: I706c5a120e8a136d084d4b7f9f0fbc2653a5b86b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
ad99fb798fa6932784360b5210a81d284db947f2 20-Nov-2014 Tyler Gunn <tgunn@google.com> IMS SRVCC handling and call log cleanup.

1. Added TelephonyConnectionListener instance to ImsConference to capture
onOriginalConnectionConfigured events. When SRVCC happens, the original
connection on the conference host TelephonyConnection is changed to a
GsmConnection; this triggers the onOriginalConnectionConfigured callback.
In response, we add the conference host connection to Telecom (as it is
not already in telecom) and unlink it from the ImsConference. At this
point the ImsConference is disconnected, leaving just the
TelephonyConnection with the new GsmConnection active.
2. Since in (1) we are unlinking the mConferenceHost, added null checks to
ensure that any other calls to conference methods during SRVCC don't cause
a NPE.
3. In ImsConferenceController when the new conference is being created,
we disconnect the original foreground TelephonyConnection and move its
radio connection to be a new TelephonyConnection which is the ImsConference
host. When the original foreground connection is disconnected, changed
the disconnect cause to "OTHER" to ensure that the call is logged to the
call log, and no disconnect tone is heard.

Bug: 18433280
Bug: 18323703
Change-Id: I77a57d895e43c81e14b012409e2de0be7eeb48db
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
33464599cc0083dba146db75cecea3ee354888c9 20-Nov-2014 Tyler Gunn <tgunn@google.com> Fixing issue where DTMF tones were not issued through to the IMS framework
once a conference is established.

The problem was the "ConferenceHostConnection" which wrapped the radio
connection. As an extension of TelephonyConnection, it did not provide
the required "onPlayDtmfTone" and "onStopDtmfTone" overrides the CDMA
and GSM TelephonyConnections do.

Refactored to get rid of the ConferenceHostConnection and just clone the
original telephony connection instead. This ensures the correct DTMF
overrides are present.

Bug: 18200934
Change-Id: Iff8d404ff494be39ef68ba10b23c3a38b74e520d
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java
2c248f38ac4c7fefc50fb9c595b6cbf2798c0632 19-Nov-2014 Tyler Gunn <tgunn@google.com> Create IMSConference to represent IMS conference calls.

- ImsConference contains a "host" connection which is the radio connection
to the IMS conference server.
When a new ImsConference is created, we wrap the radio connection in a
new TelephonyConnection which is not added to Telecom; this is stored in
the ImsConference and provides a means for the conference to be notified
of disconnect/hold of the conference connection.
Next, the original TelephonyConnection is disconnected and the conference
is added to Telecom.
- The ImsConference manages its own conference participants directly
rather than through the ImsConference controller.
- Added a new ImsConferenceController since it is sufficiently different
from how the generic TelephonyConferenceController works.

Bug: 18200934
Change-Id: Ia32c2111173c69be7b05ed76a038fb571c2e726b
/packages/services/Telephony/src/com/android/services/telephony/ImsConference.java