History log of /packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f48b1e1ae5ed55a4e6ff5342c1c93075990fa42a 22-Apr-2016 Wei Huang <wei.x.huang@sony.com> Support hiding manage IMS conference call button

Check carrier config in TelecomAccountRegistry when registering
PhoneAccounts. When creating new TelephonyConnections, set a propery
on the connection to indicate whether it supports managing IMS
conference call.
This is then used in the conference to determine whether the
conference can manage the children calls.

Test: manual - checked the manage ims conference call button
Bug: 28729600
Change-Id: I1000830a85814150658b62ea9add72bfb83bbba0
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.java
be89962c279f43a49fd66d8af8345767a9f23039 08-Sep-2016 Tyler Gunn <tgunn@google.com> Cleanup Connections in conference controllers on CDMA<-->GSM change.

When a call switches technology between CDMA and GSM, the
TelephonyConnectionService will end up re-adding it to the appropriate
conference controller due to the original connection change. This is
problematic, as it means that the connection will still be tracked by the
conference controller of its previous technology. Worse yet, if a call
makes a GSM-->CDMA-->GSM transition, it will be added again to the
GSM call tracker.

There is still an underlying issue in that the TelephonyConnection subclass
type doesn't change when the radio technology changes -- that is a larger
issue to solve and should be addressed at some point (ie not now).

To fix this, added code to ensure that connections are removed from other
conference controllers when added, and also to prevent adding duplicates.

Bug: 31288401
Change-Id: I5e95d4f72be6af473eeec1b92f47ad77a783c9b2
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.java
85ada827d35e75dfa1ea4834ca3a4869237d42ae 04-Aug-2016 Brad Ebinger <breadley@google.com> Fix incorrect conferenceableCalls update

Fix recalculateConferenceable() to not differentiate Connferenceables by
whether or not they are currently in the active/background, since it has
no bearing on whether or not a Conferenceable is mergeable with another
Conferenceable. This allows us to send less updates to the
InCallServices when swapping calls in IMS.

Bug: 30676004
Change-Id: I6190364e902941e2969cced7a66e52f00be57064
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.java
a449435441faf39559fce7719fee75c320c103fe 06-Jul-2016 Tyler Gunn <tgunn@google.com> Finalize Multiendpoint functionality.

1) Map the "maximum calls exceeded" disconnect cause.
2) Fix bug where ImsConferenceController would consider external calls as
potentially conferenceable.
3) Map through the PULLING state.

Change-Id: I2920ac067ad5be35f6a9158d0f0e514721a8b4f6
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.java
97a1bc89c86641fc1365624a78612873449bc804 16-Jun-2015 Anju Mathapati <anjucm@codeaurora.org> IMS: Merge calls option not seen when refer failed

Recalculate the conferenceable connections once conference call
is started. This will ensure conferenceable connections are updated
correctly even when refer failed for one of the calls.

Change-Id: I40355fbb6fb7d82edd48b5ebb3bdb6b6b09406bf
BUG=24537276
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.java
bd98ad4e1557124cf54edafc0035e47b114beeb4 16-Oct-2015 Tyler Gunn <tgunn@google.com> Merge "Ensure target phone account is set for all conference types."
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/ImsConferenceController.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/ImsConferenceController.java
64220bcfad27244b223f9c4377b85e1be95ca328 20-Aug-2015 Tyler Gunn <tgunn@google.com> Support connections which do not allow conferencing.

Check carrier config in TelecomAccountRegistry when registering
PhoneAccounts. When creating new TelephonyConnections, set a propery
on the connection to indicate whether it supports conferencing. This is
then used in the conference controllers to determine whether a particular
connection can be in a conference with another connection or not.

Bug: 22864941
Change-Id: I199cbc1c9ad575732c5601a9bb587c8bca4815da
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.java
33a9391ef71c94e6e6db94ffcaa2174fc537cc8f 23-Jan-2015 Uma Maheswari Ramalingam <umam@codeaurora.org> IMS Conference changes

Use conferencehostconnection to set the state
of conference

Bug: 20224516, 20232100
Change-Id: Id8c5e245d3e0b16199ef23e6ecdd60f75f548dd2
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.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/ImsConferenceController.java
0befc877e1e1ad8726f524835821509b7081825f 24-Apr-2015 Etan Cohen <etancohen@google.com> Merge commit '9c5c993' into merge2

Change-Id: I1fa7854d2bf6540d6ae139768f0c776925148e5f
2a2211f46c7b4814ee421fc592b6f542e5c62a3c 20-Apr-2015 Tyler Gunn <tgunn@google.com> Renaming IConferenceable to Conferenceable.

Bug: 20165255
Change-Id: I63918f8d3bb9be5dfc1db831669511dfc7348946
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.java
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/ImsConferenceController.java
2f25c1f47c80a37e8df7acd88e5bc3930d5afc82 29-Jan-2015 Tyler Gunn <tgunn@google.com> Fixing conference merge where only one party is added to conference.

- Adding check in TelephonyConnection to check for changes to the
multiparty bit and notifying listeners (in this case the conference
controller.
- In ImsConferenceController Responding to the onConferenceStarted
callback from the IMS layer by checking if a new ImsConference needs to
be created.

Bug: 18960042
Change-Id: I8dd2f32c442895fd6126b83f2d8ac889fd468fad
/packages/services/Telephony/src/com/android/services/telephony/ImsConferenceController.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
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/ImsConferenceController.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/ImsConferenceController.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/ImsConferenceController.java