public static boolean canECT(CallManager cm) { boolean retval = false; final boolean hasActiveFgCall = cm.hasActiveFgCall(); final boolean hasActiveBgCall = cm.hasActiveBgCall(); final boolean hasActiveRingingCall = cm.hasActiveRingingCall(); Call fgCall = null; Call bgCall = null; DualTalkUtils dt = DualTalkUtils.getInstance(); if (DualTalkUtils.isSupportDualTalk() && dt != null && dt.isDualTalkMultipleHoldCase()) { fgCall = dt.getActiveFgCall(); bgCall = dt.getFirstActiveBgCall(); } else { fgCall = cm.getActiveFgCall(); bgCall = cm.getFirstActiveBgCall(); } if (hasActiveRingingCall) { retval = false; return retval; } if (hasActiveFgCall && hasActiveBgCall) { final boolean isFgSipPhone = fgCall.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_SIP; final boolean isBgSipPhone = bgCall.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_SIP; if (!isFgSipPhone && !isBgSipPhone && (fgCall.getPhone() == bgCall.getPhone())) { retval = true; } } return retval; }