--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vmbx/vmbxengine/src/vmbxvoipengine.cpp Tue Aug 31 15:45:17 2010 +0300
@@ -0,0 +1,325 @@
+/*
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implementation of the CVmbxVoIpEngine class
+*
+*/
+
+// INCLUDE FILES
+#include <fbs.h>
+#include <cvoicemailboxentry.h>
+
+#include "vmbxenginebase.h"
+#include "vmbxlogger.h"
+#include "vmbxuiutilities.h"
+#include "vmbxutilities.h"
+#include "vmspshandler.h"
+#include "vmbshandler.h"
+#include "voicemailboxdefsinternal.h"
+#include "vmbxvoipengine.h"
+
+// ============================ MEMBER FUNCTIONS =============================
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::CVmbxVoIpEngine
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------
+//
+CVmbxVoIpEngine::CVmbxVoIpEngine( MVmbxResourceProvider& aProvider )
+ : CVmbxEngineBase( aProvider )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::CVmbxVoIpEngine =>" );
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::CVmbxVoIpEngine <=" );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::~CVmbxVoIpEngine
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CVmbxVoIpEngine::~CVmbxVoIpEngine()
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::~CVmbxVoIpEngine =>" );
+ delete iVmSpsHandler;
+ delete iVmBsHandler;
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::~CVmbxVoIpEngine <=" );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::NewL
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CVmbxVoIpEngine* CVmbxVoIpEngine::NewL( MVmbxResourceProvider& aProvider)
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::NewL =>" );
+ if ( !VmbxUtilities::VoIPSupported() )
+ {
+ User::Leave( KErrNotSupported );
+ }
+
+ CVmbxVoIpEngine* self = new( ELeave ) CVmbxVoIpEngine( aProvider );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::NewL <=" );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::ConstructL
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::ConstructL()
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::ConstructL =>" );
+ if ( VmbxUtilities::VoIPSupported() )
+ {
+ iVmSpsHandler = CVmSPSHandler::NewL();
+ }
+
+ iVmBsHandler = CVmBSHandler::NewL();
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::ConstructL <=" );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::GetL
+// Gets voice mailbox number
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::GetL( CVoiceMailboxEntry*& aEntry )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetL =>" );
+ TInt result( KErrNone );
+ CVoiceMailboxEntry* vmbxEntry = CVoiceMailboxEntry::NewLC();
+
+ vmbxEntry->SetVoiceMailboxType( EVmbxVoip );
+ vmbxEntry->SetServiceId( iVmbxServiceId );
+
+ HBufC8* brandId = HBufC8::NewLC( KSPMaxDesLength );
+ TPtr8 ptr( brandId->Des() );
+ BrandIdL( iVmbxServiceId, ptr );
+ // set brand id
+ result = vmbxEntry->SetBrandId( ptr );
+ CleanupStack::PopAndDestroy( brandId );
+ if ( KErrNone == result )
+ {
+ TVmbxServiceInfo serviceInfo;
+ serviceInfo.iServiceId = iVmbxServiceId;
+ result = GetServiceInfo( serviceInfo );
+ if ( KErrNone == result )
+ {
+ // set voip name
+ result = vmbxEntry->SetVmbxName( serviceInfo.iName );
+ if ( KErrNone == result )
+ {
+ // set voip address
+ result = vmbxEntry->SetVmbxNumber( serviceInfo.iAddress );
+ }
+ }
+ }
+ VMBLOGSTRING2( "VMBX: CVmbxVoIpEngine::GetL: result=%I", result );
+ User::LeaveIfError( result );
+ CleanupStack::Pop( vmbxEntry );
+ aEntry = vmbxEntry;
+ vmbxEntry = NULL;
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetL <=" );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::SaveL
+// Saves voice mailbox number
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::SaveL( const CVoiceMailboxEntry& /*aEntry*/,
+ TBool /*aShowNotesAllowed*/ )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::SaveL <=>" );
+ User::Leave( KErrNotSupported );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::SaveProvisionedEntryL
+// Saves Provisioned voice mailbox number
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::SaveProvisionedEntryL(
+ const CVoiceMailboxEntry& /*aEntry*/ )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::SaveProvisionedEntryL <=>" );
+ User::Leave( KErrNotSupported );
+ }
+
+// ----------------------------------------------------------------------------
+// CVmbxVoIpEngine::CheckConfiguration()
+// ----------------------------------------------------------------------------
+//
+TBool CVmbxVoIpEngine::CheckConfiguration(
+ const TVoiceMailboxParams& aParams, const TInt aFlags )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::CheckConfiguration: =>" );
+ TBool result( EFalse );
+ result = CVmbxEngineBase::CheckConfiguration(aParams, aFlags);
+ VMBLOGSTRING2( "VMBX: CVmbxVoIpEngine::CheckConfiguration: result%I <=",
+ result );
+ return result;
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::QueryDefineNumberL
+//
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::QueryDefineNumberL( CVoiceMailboxEntry& /*aEntry*/ )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::QueryDefineNumberL <=>" );
+ User::Leave( KErrNotSupported );
+ }
+
+// ----------------------------------------------------------------------------
+// CVmbxEngineBase::QueryChangeNumberL
+//
+// ----------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::QueryChangeNumberL( CVoiceMailboxEntry& /*aEntry*/ )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::QueryChangeNumberL <=>" );
+ User::Leave( KErrNotSupported );
+ }
+
+// Commented out because branding is not supported yet.
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::GetVmbxImageL
+//
+// ---------------------------------------------------------------------------
+//
+/* CGulIcon* CVmbxVoIpEngine::GetVmbxImageL( const TVoiceMailboxParams& aParams )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetVmbxImageL =>" );
+ CGulIcon* guiIcon( NULL );
+ if ( IsVoIPProfilesFound() )
+ {
+ TBuf8<KSPMaxDesLength> brandId( KNullDesC8 );
+ BrandIdL(aParams.iServiceId, brandId );
+
+ CFbsBitmap* brandedBitmap( NULL );
+ CFbsBitmap* brandedBitmapMask( NULL );
+ TRAPD( err, GetBrandedIconL(
+ brandId, brandedBitmap, brandedBitmapMask ) );
+
+ if ( KErrNotFound == err )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetVmbxImageL: \
+ no found profiles<= " );
+ guiIcon = iProvider.VmbxUiUtilities().GetVmbxImageL( aParams );
+ }
+ else if ( KErrNone == err )
+ {
+ guiIcon =
+ CGulIcon::NewL( brandedBitmap, brandedBitmapMask );
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetVmbxImageL: \
+ found profiles" );
+ }
+ }
+ else
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetVmbxImageL: use default " );
+ guiIcon = iProvider.VmbxUiUtilities().GetVmbxImageL( aParams );
+ }
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetVmbxImageL <=" );
+ return guiIcon;
+ } */
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::IsVoIPProfilesFound
+//
+// ---------------------------------------------------------------------------
+//
+TBool CVmbxVoIpEngine::IsVoIPProfilesFound()
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::IsVoIPProfilesFound <=>" );
+ return iVmSpsHandler->IsVoIPProfilesFound();
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::GetServiceIds
+//
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::GetServiceIdsL( RIdArray& aProfileIds )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetServiceIds: =>" );
+ if ( VmbxUtilities::VoIPSupported() && IsVoIPProfilesFound() )
+ {
+ iVmSpsHandler->GetServiceIdsL( aProfileIds );
+ }
+ else
+ {
+ User::Leave( KErrNotFound );
+ }
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetServiceIds: <=" );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::GetBrandedIconL
+//
+// ---------------------------------------------------------------------------
+//
+/* void CVmbxVoIpEngine::GetBrandedIconL( const TDesC8& aBrandingId,
+ CFbsBitmap*& aBrandedBitmap, CFbsBitmap*& aBrandedBitmapMask )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetBrandedIconL: =>" );
+
+ iVmBsHandler->GetBrandedIconL(
+ aBrandingId, aBrandedBitmap, aBrandedBitmapMask );
+
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetBrandedIconL: <=" );
+ }
+ */
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::BrandIdL
+//
+// ---------------------------------------------------------------------------
+//
+void CVmbxVoIpEngine::BrandIdL( TInt aServiceId, TDes8& aBrandId )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::BrandIdL: =>" );
+
+ if ( VmbxUtilities::VoIPSupported() )
+ {
+ iVmSpsHandler->BrandIdL( aServiceId, aBrandId );
+ }
+
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::BrandIdL: <=" );
+ }
+
+// ---------------------------------------------------------------------------
+// CVmbxVoIpEngine::GetServiceInfo
+//
+// ---------------------------------------------------------------------------
+//
+TInt CVmbxVoIpEngine::GetServiceInfo( TVmbxServiceInfo& aServiceInfo )
+ {
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetServiceInfo: =>" );
+ TInt ret( KErrNotFound );
+ if ( VmbxUtilities::VoIPSupported() )
+ {
+ ret = iVmSpsHandler->GetServiceInfo( aServiceInfo );
+ }
+ VMBLOGSTRING( "VMBX: CVmbxVoIpEngine::GetServiceInfo: <=" );
+ return ret;
+ }
+
+// End of file