diff -r ed1e38b404e5 -r 6134b5029079 callcontinuity/vcchotrigger/src/vcchotrigger.cpp --- 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