callcontinuity/vcchotrigger/src/vcchotrigger.cpp
branchRCL_3
changeset 16 6134b5029079
parent 15 ed1e38b404e5
--- a/callcontinuity/vcchotrigger/src/vcchotrigger.cpp	Wed Mar 31 21:20:05 2010 +0300
+++ b/callcontinuity/vcchotrigger/src/vcchotrigger.cpp	Wed Apr 14 15:49:55 2010 +0300
@@ -349,9 +349,10 @@
     TVccHoStatus hoStatus( EVccHoStateUnknown );
     iEngPsProperty->GetCurrentHoStatus( hoStatus );
     
-    if( hoStatus != EVccCsToPsHoStarted || hoStatus != EVccCsToPsHoInprogress )
+    if( hoStatus != EVccCsToPsHoStarted || hoStatus != EVccCsToPsHoInprogress 
+        || hoStatus != EVccPsToCsHoStarted || hoStatus != EVccPsToCsHoInprogress )
         {
-        RUBY_DEBUG0( "CS to PS HO in progress, not updating keys" );
+        RUBY_DEBUG0( "HO not in progress,  updating keys" );
         TRAP_IGNORE( UpdatePsKeysL() );
         }
     
@@ -562,6 +563,8 @@
 void CVccHoTrigger::TriggerHo()
 	{
 	RUBY_DEBUG_BLOCK( "CVccHoTrigger::TriggerHo" );
+	
+	RUBY_DEBUG1("Current domain is: %d", iDomainType);
 	//Check if manual ho is already made during this call and the 
 	//service availability.
 	if( iManualHoDone || !ServicesAvailable() || iHoNotAllowed )
@@ -582,7 +585,7 @@
 	
 	if ( ( iWlanClass == ESignalClassWeak || iCchServiceStatus == EServiceUnavailable )&&
 	        iGsmClass == ESignalClassNormal && 
-	     ( iPolicy.AllowedDirection() & EPsToCsAllowed  ))
+	     ( iPolicy.AllowedDirection() & EPsToCsAllowed  ) && iDomainType == ECallDomainTypePS )
 	    {
 	    RUBY_DEBUG0( "VccHoTrigger::WlanSignalChanged - NotifySubscriberL" );
 	        
@@ -668,7 +671,7 @@
 	
 	else if ( (iPolicy.PreferredDomain() == EPsPreferred)  &&
 	      iWlanClass == ESignalClassNormal && iCchServiceStatus != EServiceUnavailable &&
-	      ( iPolicy.AllowedDirection() & ECsToPsAllowed  ) )
+	      ( iPolicy.AllowedDirection() & ECsToPsAllowed  ) && iDomainType != ECallDomainTypePS )
         {
         // Current call is CS, PS signal is ok, preferred domain is PS and 
 	    // immediate HO is requested -> HANDOVER to PS