Fix to handle duplicate call id for conference call

When one of the participant drops remotely soon after
initiating a conference, lower layers will re-use the callId
of terminated participant to the newly formed conference call.
As lower layers ensures that callIds assigned to the calls are
unique, remove the callId checks and invoke <callSessionMergeComplete>
callback with the newly formed conference call.

Test: Manual
Bug: 117393458
Change-Id: I6f1a5719a1dff946723c35fde7159ef37fb9cdf7
This commit is contained in:
Ravi Paluri
2019-11-14 16:50:24 +05:30
parent b3866aeee2
commit ce4be27745

View File

@@ -1173,18 +1173,8 @@ public class ImsCallSession {
public void callSessionMergeComplete(IImsCallSession newSession) {
if (mListener != null) {
if (newSession != null) {
// Check if the active session is the same session that was
// active before the merge request was sent.
ImsCallSession validActiveSession = ImsCallSession.this;
try {
if (!Objects.equals(miSession.getCallId(), newSession.getCallId())) {
// New session created after conference
validActiveSession = new ImsCallSession(newSession);
}
} catch (RemoteException rex) {
Log.e(TAG, "callSessionMergeComplete: exception for getCallId!");
}
mListener.callSessionMergeComplete(validActiveSession);
// New session created after conference
mListener.callSessionMergeComplete(new ImsCallSession(newSession));
} else {
// Session already exists. Hence no need to pass
mListener.callSessionMergeComplete(null);