--- a/voipplugins/sipconnectionprovider/src/scpservicehandlerbase.cpp Tue May 11 16:04:22 2010 +0300
+++ b/voipplugins/sipconnectionprovider/src/scpservicehandlerbase.cpp Tue May 25 12:31:20 2010 +0300
@@ -160,6 +160,18 @@
}
// -----------------------------------------------------------------------------
+// CScpServiceHandlerBase::PerformInstantForceSipProfileDisable
+// -----------------------------------------------------------------------------
+//
+void CScpServiceHandlerBase::PerformInstantForceSipProfileDisable()
+ {
+ SCPLOGSTRING2(
+ "CScpServiceHandlerBase[0x%x]::PerformInstantForceSipProfileDisable",
+ this );
+ HandleSipProfileForcedDisable( ETrue );
+ }
+
+// -----------------------------------------------------------------------------
// CScpServiceHandlerBase::StartForcedDisableTimer
// -----------------------------------------------------------------------------
//
@@ -195,11 +207,25 @@
// CScpServiceHandlerBase::HandleSipProfileForcedDisable
// -----------------------------------------------------------------------------
//
-void CScpServiceHandlerBase::HandleSipProfileForcedDisable()
+void CScpServiceHandlerBase::HandleSipProfileForcedDisable(
+ TBool aForceDisableSipProfile )
{
SCPLOGSTRING2(
"CScpServiceHandlerBase[0x%x]::HandleSipProfileForcedDisable", this );
+ if ( aForceDisableSipProfile )
+ {
+ CScpProfileHandler& profileHandler = iSubService.ProfileHandler();
+
+ CScpSipConnection* sipConnection =
+ profileHandler.GetSipConnection( iSubService.SipProfileId() );
+
+ if ( sipConnection )
+ {
+ sipConnection->ForceDisable();
+ }
+ }
+
HandleSipConnectionEvent( iSubService.SipProfileId(), EScpDeregistered );
}
@@ -214,7 +240,7 @@
CScpServiceHandlerBase* self = static_cast<CScpServiceHandlerBase*>( aSelf );
self->CancelDisableTimer();
- self->HandleSipProfileForcedDisable();
+ self->HandleSipProfileForcedDisable( EFalse );
return 1;
}