--- a/sipplugins/sippsipsettingsui/src/gssipmodel.cpp Wed Mar 31 22:10:27 2010 +0300
+++ b/sipplugins/sippsipsettingsui/src/gssipmodel.cpp Wed Apr 14 16:19:40 2010 +0300
@@ -47,6 +47,7 @@
{
__GSLOGSTRING("CGSSIPModel::CGSSIPModel" )
iQuitAfterSave = EFalse;
+ iIsRegistering = EFalse;
}
// -----------------------------------------------------------------------------
@@ -123,7 +124,7 @@
CSIPManagedProfile* profile =
static_cast<CSIPManagedProfile*>( iProfiles->At( aIndex ) );
- if ( iEngine->IsInUseL( *profile ) )
+ if ( iEngine->IsInUseL( *profile ) || iIsRegistering )
{
HBufC* errorTxt = StringLoader::LoadLC( R_QTN_SIP_ERROR_PROFILE_USED );
CAknErrorNote* note = new ( ELeave ) CAknErrorNote( ETrue );
@@ -432,6 +433,12 @@
{
__GSLOGSTRING("CGSSIPModel::ErrorInRegistration" )
__GSLOGSTRING1("CGSSIPModel::ErrorInRegistration aIndex: %d", aIndex)
+
+ if(iEngine->LastRegistrationError(
+ *( iProfiles->At( aIndex ) ) ) != KErrNone)
+ {
+ iIsRegistering = EFalse;
+ }
return ( iEngine->LastRegistrationError(
*( iProfiles->At( aIndex ) ) ) != KErrNone );
}
@@ -457,8 +464,11 @@
break;
case EProfileRegistered:
case EProfileDeregistered:
+ {
+ iIsRegistering = EFalse;
ProfileRegistrationStatusChanged( aSIPProfileId );
break;
+ }
case EProfileDestroyed:
ProfileDestroyed( aSIPProfileId );
break;
@@ -750,6 +760,8 @@
{
CSIPManagedProfile* profile =
static_cast<CSIPManagedProfile*>( profilePointerArray[j] );
+ iIsRegistering = EFalse;
+
iProfiles->AppendL( profile );
profilePointerArray.Remove( j );
}
@@ -942,6 +954,10 @@
}
GSSIPProfileUtil::CopyProfileAttributesL( profile, iProfileData );
+ if(iProfileData.iRegistrationMode == EGSAlwaysOn)
+ {
+ iIsRegistering = ETrue;
+ }
GSSIPProfileUtil::CopyServerAttributesL(
profile, KSIPOutboundProxy, iProfileData.iProxy );
GSSIPProfileUtil::CopyServerAttributesL(