--- a/callcontinuity/vcc/src/tvccstatefailing.cpp Wed Sep 15 12:01:56 2010 +0300
+++ b/callcontinuity/vcc/src/tvccstatefailing.cpp Wed Oct 13 14:20:32 2010 +0300
@@ -136,6 +136,16 @@
RUBY_DEBUG0( "Secondary call not exist - setting state to init");
aContext.SetState(*iInit);
}
+
+ else if ( aCall == aContext.SecondaryCall() )
+ {
+ if( aState == MCCPCallObserver::ECCPStateDisconnecting ||
+ aState == MCCPCallObserver::ECCPStateIdle )
+ {
+ RUBY_DEBUG0( "Secondary call is disconnecting or idle - setting state to init");
+ aContext.SetState(*iInit);
+ }
+ }
}
// -----------------------------------------------------------------------------
@@ -154,8 +164,8 @@
RUBY_DEBUG1("call state is: %d", aState);
// Remote party has disconnected the call during the handover
- if((aState == MCCPCallObserver::ECCPStateDisconnecting ||
- aState == MCCPCallObserver::ECCPStateIdle) && aCall == aContext.SecondaryCall() )
+ if( aState == MCCPCallObserver::ECCPStateDisconnecting &&
+ aCall == aContext.SecondaryCall() )
{
ReleaseCall(aContext, *aContext.SecondaryCall(), *iInit, KVccHoNok );
}