void CIPSecDialogNotifier::StartL( const TDesC8& aBuffer, TInt aReturnValue, const RMessagePtr2& aMessage )
	{
    __ASSERT_DEBUG( aBuffer.Length() >= 4, _L( "Buffer is empty" ) );
    TPckgBuf<TVpnDialogInfo> operationBuf;

    aMessage.ReadL( 1, operationBuf );
    TVpnDialogInfo& dialogInput = operationBuf();
 
	TInt aDialog = dialogInput.NoteDialogId();

	TInt operation = dialogInput.DialogId();    
    // This records whether the dialog was cancelled or not
    TInt dialogStatus = KErrNone;
    switch ( operation )
    {
	case TPkiDialog::EEnterPwd:
	    dialogStatus = EnterPwdL( aBuffer, aReturnValue, aMessage );
     	break;
	case TPkiDialog::EChangePwd:
		dialogStatus = ChangePwdL( aBuffer, aReturnValue, aMessage );
		break;
	case TPkiDialog::EDefinePwd:
		dialogStatus = DefinePwdL( aBuffer, aReturnValue, aMessage );
		break;
	case TPkiDialog::EEnterImportPwd:
		dialogStatus = EnterImportPwdL( aBuffer, aReturnValue, aMessage );
		break;
	case TNoteDialog::EInfo:
	case TNoteDialog::EWarning:
	case TNoteDialog::EError:
		ShowNoteDlgL(aDialog);
		break;
		//Fall through			
		default:
	__ASSERT_DEBUG( EFalse, _L( "Illegal IPSEC UI operation type" ) );
    }

    aMessage.Complete( dialogStatus );
	}