diff -r 000000000000 -r 5f000ab63145 phoneengine/callhandling/inc/mpecallhandling.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/callhandling/inc/mpecallhandling.h Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,389 @@ +/* +* Copyright (c) 2005-2008 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: This file contains the header file of the MPECallHandling class. +* +*/ + + + +#ifndef MPECALLHANDLING_H +#define MPECALLHANDLING_H + +//INCLUDES +#include +#include +#include + +// CONSTANTS +enum TPEHangUpOptions + { + ETPEHangUpDefault = 0, // Normal hangup + ETPEHangUpResumeHeldCall, // 1 + Send + ETPEHangUpNotResumeHeldCall, // 1x + Send + }; + +// CLASS DECLARATION + +/** +* Virtual interface of call handling subsystem +* +* @lib CallHandling.lib +* @since Series60_4.0 +*/ +class MPECallHandling + { + public: + /** + * destructor + */ + virtual ~MPECallHandling( ) + { + // empty destructor + }; + + public: + /** + * Starts monitoring incoming calls for voice and data call. + */ + virtual void StartUp() = 0; + + /** + * Makes answer request to the Multimode ETel. + * @since Series60_4.0 + * @param None. + * @return Error code. + */ + virtual TInt AnswerCall() = 0; + + /** + * Creates dialing request to the Multimode ETel. + * @since Series60_4.0 + * @param aNumber The telephone number to be called. + * @param aCallId Identification number of the call. + * @return Error (KErrNone is success). + */ + virtual TInt DialCall( const TPEPhoneNumber& aNumber,TInt& aCallId ) = 0; + + /** + * Creates dialing request to the Multimode ETel. + * @since Series60_4.0 + * @param aNumber The telephone number to be called. + * @param aCallId Identification number of the call. + * @return Error (KErrNone is success). + */ + virtual TInt DialMultimedia( const TPEPhoneNumber& aNumber,TInt& aCallId ) = 0; + + /** + * Makes HangUp request to the CCE. + * @since Series60_4.0 + * @param aCallId Identification number of the call to be rejected. + * @param aAutoResumeOption if options for autoresume. + * @return Error (KErrNone is success). + */ + virtual TInt HangUp( TInt aCallId, TPEHangUpOptions aAutoResumeOption ) = 0; + + /** + * Put all the calls to idle and make an MMEtel request to + * end the connection + * @return KErrNotFound if there is not a call + * KErrNone if there is one call at least + */ + virtual TInt ReleaseAll() = 0; + + /** + * Makes terminate all connection request to Custom Api. + * @since Series60_4.0 + * @param None. + * @return KErrNone. + */ + virtual TInt TerminateAllConnections() = 0; + + /** + * Asks phone identity parameters from the mmetel. + * @since Series60_4.0 + * @param aMessage Reply message to the phone application. + * @return Error (KErrNone or KErrNotFound). + */ + virtual TInt UpdatePhoneIdentity( + MEngineMonitor::TPEMessagesFromPhoneEngine aMessage ) = 0; + + /** + * Determines if there is a call in given state. + * @since Series60_4.0 + * @param aState Call state search key. + * @return TBool, ETrue is there is a call; otherwise EFalse. + */ + virtual TBool IsCallInState( TPEState aState ) const = 0; + + /** + * Determines if there is a call in given state. + * @since Series60_4.0 + * @param aState Call state search key. + * @return callid is there is a call; otherwise KPECallIdNotUsed( -1 ). + */ + virtual TInt GetCallIdByState( TPEState aState ) const = 0; + + /** + * Returns the missed voice call indicator. + * @since Series60_4.0 + * @param aMissedCall, missed call indicator. + * @param aCallId, call idendificator. + * @return KErrNone or KErrNotFound. + */ + virtual TInt GetMissedCall( TBool& aMissedCall, TInt aCallId ) = 0; + + /** + * Returns information of the call. + * @since Series60_4.0 + * @param aCallInfo Current call information. + * @param aCallId Identification number of the call. + * @return Error code (KErrNone or KErrNotFound). + */ + virtual TInt GetCallInfo( RMobileCall::TMobileCallInfoV3& aCallInfo, TInt aCallId ) = 0; + + /** + * Get the call state + * + * @param a call ID. + * @return the call state. + */ + virtual TPEState GetCallState ( TInt aCallId ) = 0; + + /** + * Get the number of calls (voice + call waiting) + * + * @return Number of calls. + */ + virtual TInt GetNumberOfCalls ( ) = 0; + + /** + * Returns call duration time. + * @since Series60_4.0 + * @param aDuration Call duration. + * @param aCallId Identification number of the call. + * @return Error code (KErrNone or KErrNotFound). + */ + virtual TInt GetCallDuration( TTimeIntervalSeconds& aDuration, TInt aCallId ) = 0; + + /** + * Makes reject request to the Multimode ETel + * @since Series60_4.0 + * @return Return possible error code + */ + virtual TInt RejectCall( ) = 0; + + /** + * Reroutes error codes to the Phone Model. + * @since Series60_4.0 + * @param aCallId Identification number of the call. + * @param aErrorCode Error code. + * @return None. + */ + virtual void SendErrorMessage( TInt aCallId, TInt aErrorCode ) = 0; + + /** + * Sets active line + */ + virtual void SetActiveLine() = 0; + + /** + * Makes transfer request to the Multimode ETel + * @since Series60_4.0 + * @param None. + * @return Return possible error code + */ + virtual TInt BuildConference() = 0; + + /** + * Swaps connected and held calls + * @since Series60_4.0 + * @param None. + * @return KErrNone or KErrNotFound. + */ + virtual TInt SwapCalls() = 0; + + /** + * Checks that can add conference member. + * @return possible error code from the CallHandling subsystem. + */ + virtual TInt AddConferenceMember() = 0; + + /** + * Drops one member from the conference call + * @since Series60_4.0 + * @param aCallid It is the Call Id of the call to be dropped + * @return Return possible error code + */ + virtual TInt DropMember( TInt aCallId ) = 0; + + /** + * Splits one member from the conference call. + * @since Series60_4.0 + * @param aCallid It is the index number of the call to be splited. + * @return Return possible error code + */ + virtual TInt GoOneToOne( TInt aCallId ) = 0; + + /** + * Makes hold request for the connected call + * @return KErrNone if request was sent successfully + * KErrGsmNotAllowed if no connected call was found + */ + virtual TInt HoldCall( ) = 0; + + /** + * Makes resume request for the held call + * @return KErrNone if request was sent successfully + * KErrGsmNotAllowed if no held call was found + */ + virtual TInt ResumeCall( ) = 0; + + /** + * Makes transfer request to the Multimode ETel + * @since Series60_4.0 + * @param None. + * @return KErrNone or KErrNotFound. + */ + virtual TInt TransferCalls() = 0; + + /** + * Creates emergency call request to the Multimode ETel + * @since Series60_4.0 + * @param None. + * @return None. + */ + virtual void DialEmergencyCall( const TPEPhoneNumber& aEmergencyNumber ) = 0; + + /** + * Returns call terminated diagnostics of a call + * Info is valid only for Idle call + * @since Series60_4.0 + * @param aCallName, TName information of a call + * @return diagnostics info of a call + */ + virtual TInt GetCallTerminatedDiagnostics( + TName& aCallName ) const = 0; + + /** + * Returns call terminated error + * @since Series60_4.0 + * @return Return errorCode + */ + virtual TInt CallTerminatedError( const TInt aCallId ) = 0; + + /** + * Replace active call with waiting call. + * @since Series60_5.0 + * @return Error (KErrNone is success). + */ + virtual TInt ReplaceActive() = 0; + + /** + * Accepts unattended transfer request. + * @since Series 60 v5.1 + * @return System wide error code. + */ + virtual TInt AcceptUnattendedTransfer() = 0; + + /** + * Rejects unattended transfer request. + * @since Series 60 v5.1 + * @return System wide error code. + */ + virtual TInt RejectUnattendedTransfer() = 0; + + /** + * Does unattended transfer to the connected VoIP call + * @since Series60_5.1 + * @return Error (KErrNone is success). + */ + virtual TInt DoUnattendedTransfer( const TDesC& aTransferTarget ) = 0; + + /** + * Starts call forwarding to selected address. + * @since Series60_5.1 + * @param aIndex A array index for a selected address. + * @return Error (KErrNone is success). + */ + virtual TInt ForwardCallToAddress( TInt aIndex ) = 0; + + public: // DTMF related + /** + * Sends dtmf string. + * @since Series60_4.0 + * @param aDtmfString TPEDtmfString to be sent. + * @return KErrNone. + */ + virtual TInt SendDtmf( const TPEDtmfString& aDtmfString ) = 0; + + /** + * Allows a client to continue dtmf string sending when + * it was stopped by use of 'w' char in the string. + * @since Series60_4.0 + * @param None. + * @return None. + */ + virtual void ContinueDtmfSending() = 0; + + /** + * Sends dtmf tone + * @since Series60_4.0 + * @param aTone Tone to be sent. + * @return Error (KErrNone or KErrNotFound). + */ + virtual TInt StartDtmfTone( const TChar& aTone ) = 0; + + /** + * Allows a client to cancel the sending of a dtmf string when + * it was stopped by use of 'w' char in the string. + * @since Series60_4.0 + * @param None. + * @return None. + */ + virtual void StopDtmfSending() = 0; + + /** + * Stops sending dtmf tone. + * @since Series60_4.0 + * @param None. + * @return Error (KErrNone or KErrNotFound). + */ + virtual TInt StopDtmfTone() = 0; + + /** + * Cancels Dtmf string sending. + * @since Series60_4.0 + * @param None. + * @return None. + */ + virtual void CancelDtmfPlay() = 0; + + /** + * This method gets the lifetime of the MS. The lifetime information + * includes the manufacturing date of the MS and the total amount of airtime use. + * @param aLifeTimeInfo Life time information + * @return Get succeeded or not. + */ + virtual TBool GetLifeTime( TDes8& aLifeTimeInfo ) = 0; + + /** + * This method gets the reference to MPECallOwner object. + * @return None. + */ + virtual MPECallOwner& CallOwner() const = 0; + }; + +#endif // MPECALLHANDLING_H + +//End of file