diff -r 73a1feb507fb -r bc78a40cd63c tsrc/musenginestub/src/mussipprofilehandler.cpp --- a/tsrc/musenginestub/src/mussipprofilehandler.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,448 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Utilities to get and set profile used with SWIS. -* Part of : Mus For S60 v3.2 -* Description : Utilities to get and set profile used with SWIS. -* Version : %version: 1 % << Don't touch! Updated by Synergy at check-out. -* -*/ - - -// USER -#include "mussipprofilehandler.h" -#include "musuid.hrh" -#include "muslogger.h" -#include "mussipprofileuser.h" - -// SYSTEM -#include -#include -#include -#include -#include -#include -#include - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSipProfileHandler* CMusSipProfileHandler::NewL( MMusSipProfileUser& aUser ) - { - CMusSipProfileHandler* self = - new (ELeave) CMusSipProfileHandler( aUser ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self); - return self; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSipProfileHandler::CMusSipProfileHandler( MMusSipProfileUser& aUser ) - : iUser( aUser ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ConstructL() - { - MUS_LOG( "mus: [ENGINE] -> CMusSipProfileHandler::ConstructL()" ) - - // Use NULL Uid since we do not want to receive any requests. - // All requests should be handled by MCE. - iSip = CSIP::NewL( TUid::Null(), *this ); - iProfileRegistry = CSIPProfileRegistry::NewL( *iSip, *this ); - iProfileAlrController = - CSipProfileAlrController::NewL( *iProfileRegistry , *this ); - - MUS_LOG( "mus: [ENGINE] <- CMusSipProfileHandler::ConstructL()" ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusSipProfileHandler::~CMusSipProfileHandler() - { - delete iProfileAlrController; - delete iSipProfile; - delete iProfileRegistry; - delete iSip; - MUS_LOG( "mus: [ENGINE] CMusSipProfileHandler::~CMusSipProfileHandler()" ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::CreateProfileL( TUint32 aSipProfileId ) - { - CSIPProfile* profile( NULL ); - if ( aSipProfileId != 0 ) - { - profile = iProfileRegistry->ProfileL( aSipProfileId ); - } - else - { - profile = iProfileRegistry->DefaultProfileL(); - } - - delete iSipProfile; - iSipProfile = profile; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CSIPProfile* CMusSipProfileHandler::Profile() - { - return iSipProfile; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CUri8* CMusSipProfileHandler::UserFromProfileLC() - { - MUS_LOG( "mus: [ENGINE] -> CMusSipProfileHandler::UserFromProfileLC()" ); - - __ASSERT_ALWAYS( iSipProfile != NULL, User::Leave( KErrNotReady ) ); - - const MDesC8Array* aors = NULL; - User::LeaveIfError( iSipProfile->GetParameter( KSIPRegisteredAors, aors ) ); - __ASSERT_ALWAYS( aors && aors->MdcaCount() > 0, - User::Leave( KErrArgument ) ); - - TUriParser8 parser; - User::LeaveIfError( parser.Parse( aors->MdcaPoint( 0 ) ) ); - MUS_LOG( "mus: [ENGINE] <- CMusSipProfileHandler::UserFromProfileLC()" ) - - return CUri8::NewLC( parser ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::RefreshIapAvailabilities() - { - TRAP_IGNORE( iProfileAlrController->RefreshIapAvailabilityL( ProfileId() ) ) - } - - -// ----------------------------------------------------------------------------- -// This function should never be called before creating a profile, but such -// a situation will be considered as pending registration. -// ----------------------------------------------------------------------------- -// -TBool CMusSipProfileHandler::IsRegistered() - { - MUS_LOG( "mus: [ENGINE] -> CMusSipProfileHandler::IsRegistered()" ) - - TBool profileRegistered = EFalse; - if ( iSipProfile ) - { - iSipProfile->GetParameter( KSIPProfileRegistered, profileRegistered ); - } - - MUS_LOG1( "mus: [ENGINE] <- CMusSipProfileHandler::IsRegistered( %d )", - profileRegistered ) - - return profileRegistered; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ProfileRegistryEventOccurred( - TUint32 aProfileId, - MSIPProfileRegistryObserver::TEvent aEvent ) - { - if ( iSipProfile && aProfileId == ProfileId() ) - { - switch ( aEvent ) - { - case MSIPProfileRegistryObserver::EProfileRegistered: - { - iUser.ProfileRegistered(); - break; - } - default: - { - break; - } - } - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ProfileRegistryErrorOccurred( - TUint32 /*aProfileId*/, - TInt /*aError*/) - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingRequest( - TUint32 /*aIapId*/, - CSIPServerTransaction* aTransaction ) - { - // Ownership transferred, should not ever be called by SIP though - delete aTransaction; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::TimedOut( - CSIPServerTransaction& /*aTransaction*/ ) - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingRequest( - CSIPServerTransaction* aTransaction ) - { - // Ownership transferred, should not ever be called by SIP though - delete aTransaction; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingRequest( - CSIPServerTransaction* aTransaction, - CSIPDialog& /*aDialog*/) - { - // Ownership transferred, should not ever be called by SIP though - delete aTransaction; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingResponse( - CSIPClientTransaction& /*aTransaction*/) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingResponse( - CSIPClientTransaction& /*aTransaction*/, - CSIPDialogAssocBase& /*aDialogAssoc*/) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingResponse( - CSIPClientTransaction& /*aTransaction*/, - CSIPInviteDialogAssoc* aDialogAssoc) - { - // Ownership transferred, should not ever be called by SIP though - delete aDialogAssoc; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::IncomingResponse( - CSIPClientTransaction& /*aTransaction*/, - CSIPRegistrationBinding& /*aRegistration*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ErrorOccured( - TInt /*aError*/, - CSIPTransactionBase& /*aTransaction*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ErrorOccured( - TInt /*aError*/, - CSIPClientTransaction& /*aTransaction*/, - CSIPRegistrationBinding& /*aRegistration*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ErrorOccured( - TInt /*aError*/, - CSIPTransactionBase& /*aTransaction*/, - CSIPDialogAssocBase& /*aDialogAssoc*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ErrorOccured( - TInt /*aError*/, - CSIPRefresh& /*aSIPRefresh*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ErrorOccured( - TInt /*aError*/, - CSIPRegistrationBinding& /*aRegistration*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ErrorOccured( - TInt /*aError*/, - CSIPDialogAssocBase& /*aDialogAssoc*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::InviteCompleted( - CSIPClientTransaction& /*aTransaction*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::InviteCanceled( - CSIPServerTransaction& /*aTransaction*/ ) - { - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::ConnectionStateChanged( - CSIPConnection::TState /*aState*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CMusSipProfileHandler::AlrEvent -// From MSipProfileAlrObserver -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::AlrEvent( - MSipProfileAlrObserver::TEvent aEvent, - TUint32 aProfileId, - TUint32 /*aSnapId*/, - TUint32 aIapId ) - { - if ( aEvent == MSipProfileAlrObserver::EIapAvailable ) - { - if ( iSipProfile && - aProfileId == ProfileId() && - !iUser.IsRoamingBetweenAPsAllowed() ) - { - // Disallow roaming only if the profile is used by MuS and - // the MuS has an ongoing session - TRAP_IGNORE( - iProfileAlrController->DisallowMigrationL( aProfileId, aIapId ) ) - } - else - { - // In all other cases allow roaming - TRAP_IGNORE( - iProfileAlrController->AllowMigrationL( aProfileId, aIapId ) ) - } - } - } - -// ----------------------------------------------------------------------------- -// CMusSipProfileHandler::AlrError -// From MSipProfileAlrObserver -// ----------------------------------------------------------------------------- -// -void CMusSipProfileHandler::AlrError( - TInt /*aError*/, - TUint32 /*aProfileId*/, - TUint32 /*aSnapId*/, - TUint32 /*aIapId*/ ) - { - // Ignore ALR related errors as they should not happen - // as migration is not allowed when - // the instance of CMusSipProfileHandler exists - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TUint32 CMusSipProfileHandler::ProfileId() const - { - TUint32 sipProfileId( 0 ); - if ( iSipProfile ) - { - iSipProfile->GetParameter( KSIPProfileId, sipProfileId ); - } - return sipProfileId; - }