diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshavailability/src/musavainviteresponder.cpp --- a/mmsharing/mmshavailability/src/musavainviteresponder.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +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: Provide interface for the client requestin availability class. -* -*/ - - - -#include "musavainviteresponder.h" -#include "musavainviteresponderobserver.h" -#include "muslogger.h" - -#include -#include -#include -#include -#include -#include -#include - -const TUint KMUSAVA486 = 486; // Busy -const TUint KMUSAVA603 = 603; // Decline/Reject - -_LIT8( KMusAvaStatusBusy, "Busy Here" ); -_LIT8( KMusAvaStatusDecline, "Decline" ); - - -// ------------------------------------------------------------------------- -// Two-phased constructor. -// ------------------------------------------------------------------------- -// -CMusAvaInviteResponder* CMusAvaInviteResponder::NewL( - CSIPServerTransaction* aTransaction, - MMusAvaInviteResponderObserver& aObserver ) - { - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::NewL()" ) - - CMusAvaInviteResponder* self = CMusAvaInviteResponder::NewLC( - aTransaction, - aObserver ); - CleanupStack::Pop( self ); - - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::NewL()" ) - return self; - } - - -// ------------------------------------------------------------------------- -// Destructor. -// ------------------------------------------------------------------------- -// -CMusAvaInviteResponder::~CMusAvaInviteResponder() - { - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::~CMusAvaInviteResponder()" ) - delete iTransaction; - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::~CMusAvaInviteResponder()" ) - } - -// ------------------------------------------------------------------------- -// Two-phased constructor. -// ------------------------------------------------------------------------- -// -CMusAvaInviteResponder* CMusAvaInviteResponder::NewLC( - CSIPServerTransaction* aTransaction, - MMusAvaInviteResponderObserver& aObserver ) - { - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::NewLC()" ) - CMusAvaInviteResponder* self = new( ELeave ) CMusAvaInviteResponder( - aTransaction, - aObserver ); - CleanupStack::PushL( self ); - - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::NewLC()" ) - return self; - } - -// ------------------------------------------------------------------------- -// Constructor. -// ------------------------------------------------------------------------- -// -CMusAvaInviteResponder::CMusAvaInviteResponder( - CSIPServerTransaction* aTransAction, - MMusAvaInviteResponderObserver& aObserver ) - : iObserver( aObserver ), iTransaction( aTransAction ) - { - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::CMusAvaInviteResponder()" ) - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::CMusAvaInviteResponder()" ) - } - -// ------------------------------------------------------------------------- -// -// ------------------------------------------------------------------------- -// -void CMusAvaInviteResponder::AnswerL() - { - if( iObserver.ApplicationState() == - MMusAvaSettingsObserver::EApplicationIsRunning ) - { - SendResponseL( KMUSAVA486, KMusAvaStatusBusy ); - } - else - { - SendResponseL( KMUSAVA603, KMusAvaStatusDecline ); - } - } - -// ------------------------------------------------------------------------ -// Send response to request. -// ------------------------------------------------------------------------ -void CMusAvaInviteResponder::SendResponseL( TUint aStatusCode, - const TDesC8& aReasonPhrase ) - { - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::SendResponseL()" ) - MUS_LOG1( "mus: [MUSAVA] aStatusCode == <%d>", aStatusCode ) - - RStringF responseString = SIPStrings::Pool().OpenFStringL( aReasonPhrase ); - CleanupClosePushL( responseString ); - CSIPResponseElements* respElem = - CSIPResponseElements::NewL( aStatusCode, responseString ); - CleanupStack::PopAndDestroy(); //responseString - CleanupStack::PushL( respElem ); - - ResponseL( respElem ); - CleanupStack::Pop( respElem ); - - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::SendResponseL()" ) - } - - -// ------------------------------------------------------------------------ -// Returns response status. -// ------------------------------------------------------------------------ -TBool CMusAvaInviteResponder::ResponseComplete() - { - - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::ResponseComplete()" ) - TBool res = EFalse; - - CSIPTransactionBase::TState state = CSIPTransactionBase::ETerminated; - TRAPD( err, state = iTransaction->StateL() ); - - if( err != KErrNone ) - { - MUS_LOG1( "mus: [MUSAVA] serverTran.StateL, err #%d", err ) - return res; - } - - if ( state == CSIPTransactionBase::ECompleted || - state == CSIPTransactionBase::EConfirmed || - state == CSIPTransactionBase::ETerminated && - iTransaction->ResponseAllowed() ) - { - res = ETrue; - } - - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::ResponseComplete()" ) - return res; - } - -// ------------------------------------------------------------------------ -// Send Response to reques. -// ------------------------------------------------------------------------ -void CMusAvaInviteResponder::ResponseL( - CSIPResponseElements* aResponseElements ) - { - MUS_LOG( "mus: [MUSAVA] -> CMusAvaInviteResponder::ResponseL" ) - CSIPServerTransaction& serverTran = - static_cast( *iTransaction ); - - if ( iTransaction->IsSIPClientTransaction() ) - { - User::Leave( KErrNotReady ); - } - - else if ( ( serverTran.StateL() == CSIPTransactionBase::ETrying || - serverTran.StateL() == CSIPTransactionBase::EProceeding ) && - serverTran.ResponseAllowed() ) - { - MUS_LOG( " Send response" ) - serverTran.SendResponseL( aResponseElements ); - } - else - { - User::Leave( KErrNotReady ); - MUS_LOG( "mus: [MUSAVA] Not allow to sent response " ) - MUS_LOG( "mus: [MUSAVA] <- CMusAvaInviteResponder::ResponseL" ) - } - } - -