OSDN Git Service

Enhancements to conference for non-conference host scenarios.
authorTyler Gunn <tgunn@google.com>
Fri, 31 May 2019 14:23:16 +0000 (07:23 -0700)
committerTyler Gunn <tgunn@google.com>
Fri, 31 May 2019 19:45:19 +0000 (12:45 -0700)
commitac60f9554e19d28a2f801a7b991925194545dabe
tree8180df9ee0acad30f59eca74ed3e6f1c51f3080a
parent731490a14297c11a0adadfbf9df2196d14db5cbf
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
telecomm/java/android/telecom/Conference.java
telecomm/java/android/telecom/Connection.java
telecomm/java/android/telecom/ConnectionService.java
telecomm/java/android/telecom/ParcelableConference.java