IMS Conference Callback Handling

Adding logic to handle intermediate
and conference callbacks while creating
a conference session as well as adding
a call to an existing conference.

Change-Id: Ib53a8f9408f807a6ce1be6005e1fc911b87598d4
diff --git a/src/java/com/android/ims/ImsCall.java b/src/java/com/android/ims/ImsCall.java
index 3ecf1b3..82adfc3 100644
--- a/src/java/com/android/ims/ImsCall.java
+++ b/src/java/com/android/ims/ImsCall.java
@@ -1501,8 +1501,6 @@
                     }
                 }
             }
-        } else if (!mCallGroup.isReferrer(ImsCall.this)) {
-            return;
         }
 
         listener = mListener;
@@ -1677,6 +1675,9 @@
                 return;
             }
 
+            // If this condition is satisfied, this call is either a part of
+            // a conference call or a call that is about to be merged into an
+            // existing conference call.
             if (mCallGroup != null) {
                 notifyConferenceSessionTerminated(reasonInfo);
             } else {
@@ -1940,9 +1941,8 @@
 
         @Override
         public void callSessionTerminated(ImsCallSession session, ImsReasonInfo reasonInfo) {
-            if (isTransientConferenceSession(session)) {
-                log("callSessionTerminated :: not supported for transient conference session=" +
-                        session);
+            if (mSession != session) {
+                log("callSessionTerminated :: not supported for conference session=" + session);
                 return;
             }