diff -r 000000000000 -r ff3b6d0fd310 phonesrv_plat/converged_call_engine_api/inc/mccetransferinterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonesrv_plat/converged_call_engine_api/inc/mccetransferinterface.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,100 @@ +/* +* 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: CCE call transfer interface +* +*/ + + +#ifndef MCCETRANSFERINTERFACE_H +#define MCCETRANSFERINTERFACE_H + +// INCLUDES +#include // TDesC + +/** +* Call transfer methods. +* MCCECallObserver is used for errors, statuses, notifications etc +* +* @since S60 3.2 +*/ +class MCCETransferInterface + { +protected: + + /** + * Protected destructor. Object cannot be deleted from client. + * @since S60 3.2 + */ + virtual ~MCCETransferInterface() {}; + +public: + + /** + * Attended transfer to given address. + * Actual result like status, events and errors come via MCCECallObserver class. + * Afterwards both calls will be disconnected from CCE side. + * @param aTransferTarget Transfer target address. Always takes active call, address is not used + * at the moment! + * @return KErrArgument transfer address was illegal. + * @return KErrNotFound existing active call was not found with given address. + * @return KErrNotReady if this call is not on-hold state and the other in connected state + * @return KErrNotSupported Current plug-in does not support transfer functionality. + * @pre Two calls exist. This call is in state MCCECallObserver::ECCEStateHold and the other in + * MCCECallObserver::ECCEStateConnected + * @since S60 3.2 + */ + virtual TInt AttendedTransfer( const TDesC& aTransferTarget ) = 0; + + /** + * Unattended transfer to given address. Call is requested to be transferred to given address. + * Afterwards call will be disconnected from CCE side. If transfer fails a new incoming call + * will be received to reconnect to recipient. Reconnected call is initiated from recipient end. + * Actual result like status, events and errors come via MCCECallObserver class. + * This is not used for CS. + * @since S60 3.2 + * @param aTransferTarget Address of the target + * @return KErrNone if request was started succesfully. + * @return KErrNotSupported Current plug-in does not support transfer functionality. + * @return KErrNotReady if call is not in connected or on-hold state. + * @return KErrArgument transfer address was illegal. + * @pre Call state is MCCECallObserver::ECCPStateConnected or MCCECallObserver::ECCEStateHold + */ + virtual TInt UnattendedTransfer( const TDesC& aTransferTarget ) = 0; + + /** + * Accept incoming unattended transfer request from the call remote party. + * @since Series 60 3.2 + * @param aAccept Boolean value is transfer accepted or not. + * @return KErrNotSupported Current plug-in does not support transfer functionality. + * @return KErrNone if request was started succesfully. + * @return KErrNotReady if call is not in transferring state. + * @pre Call state is MCCECallObserver::ECCEStateTransferring + */ + virtual TInt AcceptTransfer( const TBool aAccept ) = 0; + + /** + * NOTE: Will be removed! MCCECallObserver::HandleTransfer contains remote party already. + * CCE will map the recipient in openNewCallL to pre-existing one + * CCECallCall::EventOccurred(ECCERemoteTransferring). + * The new recipient of the call can be fetched via this method. + * @since Series 60 3.2 + * @param none + * @return New recipient for the call after transfer + */ + virtual const TDesC& TransferTarget() const = 0; + + }; + +#endif // MCCETRANSFERINTERFACE_H +