+ //check if either of the caller is same or present in conf call.
+ IListT<AppCallInfo>* pActiveCallList = GetCallListN();
+ if ( pActiveCallList != null && pActiveCallList->GetCount() == IDI_MAX_ACTIVE_CALLS)
+ {
+ AppCallInfo firstCall;
+ AppCallInfo secondCall;
+ pActiveCallList->GetAt(0, firstCall);
+ pActiveCallList->GetAt(1, secondCall);
+
+ if (firstCall.IsConferenceCall() == true)
+ {
+ IListT<AppCallInfo>* pConfMemberList = firstCall.GetCallerList();
+ for (int index = 0; index < pConfMemberList->GetCount(); index++)
+ {
+ AppCallInfo singleConfMember;
+ pConfMemberList->GetAt(index, singleConfMember);
+ if (secondCall.GetContactNumber().IsEmpty() == false && secondCall.GetContactNumber().Equals(singleConfMember.GetContactNumber()) == true)
+ {
+ return false;
+ }
+ }
+ }
+ else if (secondCall.IsConferenceCall() == true)
+ {
+ IListT<AppCallInfo>* pConfMemberList = secondCall.GetCallerList();
+ for (int index = 0; index < pConfMemberList->GetCount(); index++)
+ {
+ AppCallInfo singleConfMember;
+ pConfMemberList->GetAt(index, singleConfMember);
+ if (firstCall.GetContactNumber().IsEmpty() == false && firstCall.GetContactNumber().Equals(singleConfMember.GetContactNumber()) == true)
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ //Now, we definitely know that both are single active calls.
+ if (firstCall.GetContactNumber().IsEmpty() == false && firstCall.GetContactNumber().Equals(secondCall.GetContactNumber()) == true)
+ {
+ return false;
+ }
+ }
+ }
+ delete pConfCallInfo;
+ pConfCallInfo = null;
+ return true;