--- 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