diff -r be41ab7b952f -r 43658d24f35d voipplugins/sipconnectionprovider/src/scpservicehandlerbase.cpp --- 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( aSelf ); self->CancelDisableTimer(); - self->HandleSipProfileForcedDisable(); + self->HandleSipProfileForcedDisable( EFalse ); return 1; }