--- a/sipvoipprovider/svptransfer/inc/svptransfercontroller.h Tue Feb 02 00:05:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,300 +0,0 @@
-/*
-* Copyright (c) 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: Transfer controller class for blind and attended transfers
-*
-*/
-
-
-
-#ifndef SVPTRANSFERCONTROLLER_H
-#define SVPTRANSFERCONTROLLER_H
-
-#include <e32base.h>
-#include <mccpcall.h> // MCCPCall
-#include <mccptransferprovider.h> // MCCPTransferProvider
-#include <mccptransferobserver.h> // MCCPTransferObserver
-#include "svputdefs.h"
-
-class CSVPController;
-class CSVPSessionBase;
-class CMceSession;
-class TMceTransactionDataContainer;
-class CMceRefer;
-class CMceInRefer;
-class CMceEvent;
-class CSVPTransferStateContext;
-class MSVPTransferObserver;
-
-/**
- * Transfer controller
- *
- * Handles blind and attended transfers
- *
- * @lib svp.dll
- * @since S60 3.2
- */
-class CSVPTransferController : public CBase,
- public MCCPTransferProvider
- {
-
-public: // New methods
-
- /**
- * Two-phased constructor.
- */
- static CSVPTransferController* NewL(
- CMceSession* aMceSession,
- CSVPSessionBase* aSVPSession,
- TMceTransactionDataContainer& aContainer,
- MSVPTransferObserver& aObserver );
-
- static CSVPTransferController* NewLC(
- CMceSession* aMceSession,
- CSVPSessionBase* aSVPSession,
- TMceTransactionDataContainer& aContainer,
- MSVPTransferObserver& aObserver );
-
- /**
- * Destructor.
- */
- virtual ~CSVPTransferController();
-
- /**
- * Handle mce event state changes.
- * The state of the event has changed.
- * @since S60 3.2
- * @param aEvent, event which state changed.
- * @param aStatusCode, status code.
- */
- void HandleEventStateChangedL( CMceEvent& aEvent,
- TInt aStatusCode );
-
- /**
- * Handle mce event observer notify events.
- * The state of the event has changed.
- * @since S60 3.2
- * @param aEvent, event received notification.
- * @param aContainer, if present, holds details of
- * transaction causing state change.
- */
- void NotifyReceivedL( CMceEvent& aEvent,
- TMceTransactionDataContainer* aContainer );
-
- /**
- * Handle the refer state change events.
- * @since S60 3.2
- * @param aRefer, the refer that has changed.
- * @param aStatusCode, status code
- */
- void HandleReferStateChangeL( CMceRefer& aRefer,
- TInt aStatusCode );
-
- /**
- * New incoming refer received.
- * @since S60 3.2
- * @param aRefer, the new inbound refer. Ownership is
- * transferred.
- * @param aReferTo SIP specific Refer-to header
- */
- void IncomingReferL( CMceInRefer* aRefer,
- const TDesC8& aReferTo,
- TMceTransactionDataContainer* aContainer );
-
-
- /**
- * Checks the MCE refer object.
- * @since S60 3.2
- * @param aRefer - refer to check
- * @return TBool true if same MCE refer object
- */
- TBool IsMceRefer( CMceRefer& aRefer );
-
- /**
- * Checks if transfer is attended or unattended.
- * @since S60 3.2
- * @return TBool true if attended case
- */
- TBool IsAttended( );
-
- /**
- * Set transfer data. Add Replaces and Referred-By headers.
- * Update transfer target url to sips: if secure status 1 or 2,
- * otherwise url updated to sip:
- * @since S60 3.2
- * @param aUserAgentHeaders On completion contains collected transfer headers.
- * @param aSecureStatus secure status
- */
- void SetTransferDataL( CDesC8Array* aUserAgentHeaders, TInt aSecureStatus );
-
- /**
- * Sets the reference to the sip (mce) session object
- * @since S60 3.2
- * @param aSession The session object
- * @return None
- */
- void SetMceSessionObject( CMceSession* aSession );
-
- /**
- * Send notify using the MCE event object
- * @since S60 3.2
- * @param aStatusCode code came from mce
- */
- void SendNotifyL( TInt aStatusCode );
-
- /**
- * Check if ingoming transfer is ongoing
- * @since S60 3.2
- * @return TBool true if incoming transfer case
- */
- TBool IsIncomingTransfer();
-
- /**
- * Terminate transfer due refer timer timeout
- * @since S60 3.2
- */
- void TerminateTransfer();
-
- /**
- * The Leaving version of TerminateTransfer
- * @since S60 3.2
- */
- void TerminateTransferL();
-
-public: // From MCCPTransferProvider
-
- /**
- * Attended transfer to given call recipient.
- * There exist a call between A-B and A-C. A wants to transfer the call to B-C.
- * A itself will not be inline in case the transfer is made succesfully.
- * In above case C will be the aTransferTargetCall. B is the recipient of the
- * current call between A-B - called on A's call object transfer provider.
- * The A-B call is on hold.
- * @since S60 3.2
- * @param aTransferTargetCall - target receiver of the transferred call.
- * In this case there exist a call
- * @return In case of an immediate error returns system error code,
- * if request has been started returns KErrNone.
- */
- TInt AttendedTransfer( MCCPCall& aTransferTargetCall );
-
- /**
- * Attended transfer to given address. There does not need to be
- * a current call between the given transfer target.
- * @since S60 3.2
- * @param aTransferTarget - transfer target address
- * @return In case of an immediate error returns system error code,
- * if request has been started returns KErrNone.
- */
- TInt AttendedTransfer( const TDesC& aTransferTarget );
-
- /**
- * Unattended transfer. Call is requested to be transferred to given address.
- * @since S60 3.2
- * @param aTarget Address of the target
- * @return In case of an immediate error returns system error code,
- * if request has been started returns KErrNone.
- */
- TInt UnattendedTransfer( const TDesC& aTransferTarget );
-
- /**
- * Notifies call about transfer status.
- * @since S60 3.2
- * @param aAccept Boolean value is transfer accepted or not.
- * @return In case of an immediate error returns system error code,
- * if request has been started returns KErrNone.
- */
- TInt AcceptTransfer( const TBool aAccept );
-
- /**
- * When the other end of the call has requested call transfer to third party it is notified to
- * CCPCallCall::EventOccurred(ECCPRemoteTransferring).
- * The new recipient of the call can be fetched via this method.
- * @since S60 3.2
- * @param none
- * @return New recipient for the call after transfer
- */
- const TDesC& TransferTarget() const;
-
- /**
- * Add an observer for transfer related events.
- * Plug-in dependent feature if duplicates or more than one observers
- * are allowed or not. Currently CCE will set only one observer.
- * @since S60 v3.2
- * @param aObserver Observer
- * @return none
- * @leave system error if observer adding fails
- */
- void AddObserverL( const MCCPTransferObserver& aObserver );
-
- /**
- * Remove an observer.
- * @since S60 v3.2
- * @param aObserver Observer
- * @return KErrNone if removed succesfully. KErrNotFound if observer was not found.
- */
- TInt RemoveObserver( const MCCPTransferObserver& aObserver );
-
-
-private:
-
- /**
- * C++ default constructor.
- */
- CSVPTransferController();
-
- /**
- * Second-phase constructor.
- */
- void ConstructL( CMceSession* aMceSession,
- CSVPSessionBase* aSVPSession,
- TMceTransactionDataContainer& aContainer,
- MSVPTransferObserver& aObserver );
-
- /**
- * Private transfer functionality.
- * @since S60 3.2
- * @param aAccept Boolean value is transfer accepted or not.
- */
- void TransferL( MCCPCall* aCall,
- const TDesC& aTarget,
- const TBool aAttendedTransfer );
-
-
-private: // data
-
- /**
- * Transfer state context.
- * Own.
- */
- CSVPTransferStateContext* iTransferContext;
-
- /**
- * Transfer observer
- */
- MCCPTransferObserver* iCCPTransferObserver;
-
- /**
- * 202 Accepted to the refer received, waiting still the notify
- */
- TBool iAccepted;
-
-
-private:
-
- // For testing
- SVP_UT_DEFS
-
- };
-
-#endif // CSVPTRANSFERCONTROLLER_H