--- a/phoneplugins/csplugin/inc/cspcall.h Fri May 14 15:51:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,779 +0,0 @@
-/*
-* Copyright (c) 2007-2009 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: CSPCall for CS Call Plug-in
-*
-*/
-
-
-
-#ifndef CSPCALL_H
-#define CSPCALL_H
-
-#include <mccpcscall.h>
-#include <mccpcallobserver.h>
-#include <mccptransferobserver.h>
-#include <mccpforwardobserver.h>
-#include <etel.h>
-#include <etelmm.h>
-#include <cccecallparameters.h>
-
-#include "cspconsts.h"
-#include "cspetelcallrequester.h" // For the requester and TRequestType
-#include "mcspcallobserver.h"
-#include "mcspcallerrorobserver.h"
-#include "mcspuusmessageobserver.h"
-#include "mcspcallcommandhandling.h"
-
-
-class MCCPForwardProvider;
-class CSPForwardProvider;
-class CSPTransferProvider;
-class RMobileCall;
-class CSPEtelCallStatusMonitor;
-class CSPEtelCallEventMonitor;
-class CSPCallInfoMonitor;
-class CSPEtelCallCapsMonitor;
-class CSPTransferProvider;
-class CSPEtelCallCapsMonitor;
-class CSPAudioHandler;
-class MCSPCommonInfo;
-class CSPUUIMonitor;
-class CSPUUIMessageSender;
-
-
-/**
-* Call class for CS Call Plug-in. Implements the API defined by CCP in classes
-* MCCPCall and MCCPCSCall
-*
-* @lib csplugin.dll
-*/
-class CSPCall : public CBase,
- public MCCPCSCall,
- public MCSPCallObserver,
- public MCSPCallErrorObserver,
- public MCSPUUSMessageObserver,
- public MCCPCallCommandHandling
- {
- public:
- /*
- * C++ default destructor
- */
- virtual ~CSPCall( );
-
- /**
- * ETel call name accessor.
- * @return system wide error code
- */
- void CallName( TName& aCallName );
-
- /**
- * Sets the audio handler for the call.
- * @param aHandler audio handler
- */
- void SetAudioHandler( CSPAudioHandler* aHandler );
-
- /**
- * Security setting change notification.
- * @param aValue new value
- */
- void SecuritySettingChanged( TInt aValue );
-
- /**
- * Remote alerting tone status changed notification.
- * @param aNewStatus New remote alerting tone status.
- */
- void RemoteAlertingToneStatusChanged(
- RMmCustomAPI::TRemoteAlertingToneStatus aNewStatus );
-
- /**
- * Set iDontReportTerm flag value to ETrue.
- */
- void DontReportTerminationError();
-
-// from base class MCSPCallObserver
-
- /**
- * Updates the call event for observers.
- * @param aEvent the event to be notified
- */
- virtual void NotifyForwardEventOccurred(
- MCCPForwardObserver::TCCPForwardEvent aEvent );
-
- /**
- * Updates the state change and forwards the state for observer.
- * @param aState new state (ETel) of the call
- */
- virtual void NotifyCallStateChangedETel(
- RMobileCall::TMobileCallStatus aState );
-
- /**
- * Updates the call event for observers.
- * @param aEvent the event to be notified
- */
- virtual void NotifyCallEventOccurred(
- MCCPCallObserver::TCCPCallEvent aEvent );
-
- /**
- * Updates the transfer event for observers.
- * @param aEvent the event to be notified
- */
- virtual void NotifyTransferCallEventOccurred(
- MCCPTransferObserver::TCCPTransferEvent aEvent );
-
- /**
- * Notifies changed call capabilities.
- * @param aCapsFlags new capability flags
- */
-
- virtual void CallCapsChanged( const TUint32 aCapsFlags );
-
-// from base class MCSPCallErrorObserver
-
- /**
- * From MCSPCallErrorObserver
- * Dial request failed notification.
- * @param aErrorCode request failing error code
- */
- void DialRequestFailed( TInt aErrorCode );
-
- /**
- * From MCSPCallErrorObserver
- * Emergency dial request failed notification.
- * @param aErrorCode request failing error code
- */
- void EmergencyDialRequestFailed( TInt aErrorCode );
-
- /**
- * From MCSPCallErrorObserver
- * Notifies about error situation for CCE.
- */
- virtual void NotifyErrorOccurred( TCCPError aError );
-
-// from base class MCSPUUSMessageObserver
-
- /**
- * From MCSPUUSMessageObserver
- * UUS message received notification.
- */
- void UUSMessageReceived( TDesC& aMessage );
-
-// from base class MCCPCSCall
-
- /**
- * From MCCPCSCall
- * Returns call information
- * @param aCallInfo TMobileCallInfoV3
- * @return KErrNone if succesfull
- * otherwise another system wide error code
- */
- virtual TInt GetMobileCallInfo( TDes8& aCallInfo ) const;
-
- /**
- * From MCCPCSCall
- * Gets the calls data call capabilities
- * @param aCaps TMobileCallDataCapsV1
- * @return KErrNone if the function member was successful,
- * KErrNotSupported if call doesn't support circuit switched data
- * KErrNotFound if this call is not a data call
- */
- virtual TInt GetMobileDataCallCaps( TDes8& aCaps ) const;
-
-// from base class MCCPCall
-
- /**
- * From MCCPCall
- * Answers to an incoming call.
- * @return system wide error code
- */
- virtual TInt Answer();
-
- /**
- * From MCCPCall
- * Rejects an incoming call.
- * @return system wide error code
- */
- virtual TInt Reject();
-
- /**
- * From MCCPCall
- * Reguests plug-in to queue the call.
- * @return system wide error code
- */
- virtual TInt Queue();
-
- /**
- * From MCCPCall
- * Starts dialing to remote party
- * @return system wide error code
- */
- virtual TInt Dial();
-
- /**
- * From MCCPCSCall
- * Starts dialing to recipient
- * @param aCallParams Call parameters used
- * by the TSY (TCallParamsPckg)
- * @return system wide error code
- */
- TInt Dial( const TDesC8& aCallParams );
-
- /**
- * From MCCPCall
- * Call is ringning
- * @return system wide error code
- */
- virtual TInt Ringing();
-
- /**
- * From MCCPCall
- * Ends an ongoing call.
- * @return system wide error code
- */
- virtual TInt HangUp();
-
- /**
- * From MCCPCall
- * Cancels the ongoing request
- * @return system wide error code
- */
- virtual TInt Cancel();
-
- /**
- * From MCCPCall
- * Puts the specified call on hold.
- * @return system wide error code
- */
- virtual TInt Hold();
-
- /**
- * From MCCPCall
- * Resumes the call.
- * @return system wide error code
- */
- virtual TInt Resume();
-
- /**
- * From MCCPCall
- * Swaps a connected call to its opposite state either active or on hold
- * @return system wide error code
- */
- virtual TInt Swap();
-
- /**
- * From MCCPCall
- * Returns the remote party of the call.
- * @return remote party address,
- */
- const TDesC& RemoteParty() const;
-
- /**
- * From MCCPCall
- * Returns the remote party name of the call.
- * @return remote party name
- */
- const TDesC& RemotePartyName();
-
- /**
- * From MCCPCall
- * Dialled party.
- * @return dialled party name
- */
- const TDesC& DialledParty() const;
-
- /**
- * From MCCPCall
- * Return boolean value if the incoming call is forwarded or not.
- * @return ETrue if call is forwarded, else EFalse
- */
- virtual TBool IsCallForwarded() const;
-
- /**
- * From MCCPCall
- * Returns boolean value if the call is mobile originated or not.
- * @return ETrue if call is mobile originated, otherwise EFalse
- */
- virtual TBool IsMobileOriginated() const;
-
- /**
- * From MCCPCall
- * Returns the state of the call.
- * @return TCCPCallState The current state of the call
- */
- virtual MCCPCallObserver::TCCPCallState State() const;
-
- /**
- * From MCCPCall
- * Returns TUid of the plug-in used for this call
- * @return TUid Implementation UID of the Plug-In
- */
- virtual TUid Uid() const;
-
- /**
- * From MCCPCall
- * Returns call control caps for this call
- * @return call capability information
- */
- virtual MCCPCallObserver::TCCPCallControlCaps Caps( ) const;
-
- /**
- * From MCCPCall
- * Get call's secure status.
- * @return TBool ETrue if security is enabled, else EFalse.
- */
- virtual TBool IsSecured() const;
-
- /**
- * From MCCPCall
- * Get call's secure specified status.
- * @return TBool ETrue if secure specified
- */
- virtual TBool SecureSpecified() const;
-
- /**
- * From MCCPCall
- * Set call parameters.
- * @param aNewParams New call paramater information.
- */
- virtual void SetParameters( const CCCPCallParameters& aNewParams );
-
- /**
- * From MCCPCall
- * Cet call parameters.
- * @return Current call paramater information.
- */
- virtual const CCCPCallParameters& Parameters() const;
-
- /**
- * From MCCPCall
- * Get Forward provider
- * @param aObserver - observer class for forward events
- * @return Pointer to MCCPForwardProvider if succesfull, NULL if not available
- * @leave on error case system error code
- */
- virtual MCCPForwardProvider* ForwardProviderL( const MCCPForwardObserver& aObserver );
-
- /**
- * From MCCPCall
- * Get Call transfer provider
- * @param aObserver - observer class for transfer events
- * @return Pointer to MCCPTransferProvider if succesfull, NULL if not available
- * @leave on error case system error code
- */
- virtual MCCPTransferProvider* TransferProviderL( const MCCPTransferObserver& aObserver );
-
- /**
- * From MCCPCall
- * Adds a new observer for MCCECall object. Called in MT call case. In MO
- * case observer will be given at call construction.
- * Plug-in dependent feature if duplicates or more than one observers
- * are allowed or not. Currently CCE will set only one observer.
- * @param aObserver Observer
- * @leave system error if observer adding fails
- */
- virtual void AddObserverL( const MCCPCallObserver& aObserver );
-
- /**
- * From MCCPCall
- * Remove an observer.
- * @param aObserver Observer
- * @return KErrNone if removed succesfully. KErrNotFound if observer was not found.
- * Any other system error depending on the error.
- */
- virtual TInt RemoveObserver( const MCCPCallObserver& aObserver );
-
- /**
- * From MCCPCall
- * Returns the inband tone associated to an error condition or a state transition of a call.
- * See defenition for TCCPTone.
- * @since S60 3.2
- * @param None.
- * @return TCCPTone Used tone.
- */
- TCCPTone Tone() const;
-
-// from base class MCCPCSCall
-
- /**
- * From MCCPCSCall
- * Indicates that FDN check is not used for dial.
- */
- virtual void NoFDNCheck( );
-
- /**
- * From MCCPCSCall
- * Log dialed number. SAT related, check if dialed number is to be logged or not.
- * @since S60 5.0
- * @param None
- * @return Log dialed number or not.
- */
- virtual TBool LogDialedNumber() const;
-
-// from base class MCCPCallCommandHandling
-
- /**
- * Perform answer command.
- * @return system wide error code
- */
- TInt PerformAnswerRequest();
-
- /**
- * Perform dial command.
- * @return system wide error code
- */
- TInt PerformDialRequest();
-
- protected:
-
- /**
- * Starts dialing to recipient.
- * Bypasses FDN check according to aFdnCheck.
- * @param aFdnCheck True if FDN checking is used
- * @return system wide error code
- */
- virtual TInt DialFdnCond( TBool aFdnCheck ) = 0;
-
- protected:
-
- /**
- * C++ default constructor.
- *
- * @param aLine line of the call
- * @param aMobileOriginated is call mobile originated
- * @param aName contains call name (mobile terminated) or phone number (mobile originated)
- * @param aCommonInfo reference to common info interface
- * @param aIsEmergencyCall is emergency call
- */
- CSPCall( RMobileLine& aLine,
- TBool aMobileOriginated,
- const TDesC& aName,
- MCSPCommonInfo& aCommonInfo,
- TBool aIsEmergencyCall );
-
- /*
- * Constructing 2nd phase.
- * @param aParams call parameters
- */
- virtual void ConstructL( const CCCECallParameters& aParams );
-
- /*
- * Notifies the ringing state to observers.
- */
- virtual void NotifyRingingState();
-
- /**
- * Mapping ETel state to CCP state.
- * @param aEtelState an ETel state
- * @return corresponding CCP state
- */
- MCCPCallObserver::TCCPCallState
- CSPCall::CCPStateFromETelState(
- RMobileCall::TMobileCallStatus aEtelState );
-
- /**
- * From MCSPCallObserver
- * Updates the state change including inband tones
- * played by network and forwards the state for observer.
- * @param aState new state of the call
- */
- virtual void NotifyCallStateChangedWithInband(
- MCCPCallObserver::TCCPCallState aState );
-
- /**
- * Updates the state change
- * and forwards the state for observer.
- * @param aState new state of the call
- */
- virtual void NotifyCallStateChanged(
- MCCPCallObserver::TCCPCallState aState );
-
- /**
- * From MCSPCallObserver
- * Notify that remote party info has changed.
- * @param aRemoteParty new remote party information
- */
- virtual void NotifyRemotePartyInfoChanged(
- const TDesC& aRemoteParty);
-
- /**
- * Open call handle.
- * Opens a new call handle for MO call
- * and an existing handle for MT call.
- */
- virtual void OpenCallHandleL();
-
- /**
- * Update call info data including call name,
- * remote name and number data.
- */
- virtual void UpdateCallInfo();
-
- /**
- * Implementation for UpdateCallInfo().
- */
- virtual void UpdateCallInfoImpl( RMobileCall::TMobileCallInfoV7 aCallInfo );
-
- /**
- * Set call origin to CCCECallParameters.
- */
- virtual void UpdateCallOrigin( RMobileCall::TMobileCallInfoV7 aCallInfo );
-
- /**
- * Reads information from cenrep.
- * @param aUid CR Uid
- * @param aKey CR key
- * @param aVal value of key, output
- */
- void ReadRepositoryL( TUid aUid, TUint aKey, TInt& aVal);
-
- /**
- * Check and notify call termination error.
- */
- void CheckAndNotifyTerminationError();
-
- /**
- * Error from iExitCode.
- */
- TInt ExitCodeError() const;
-
- /**
- * Update call name number info.
- * @param aCallInfo RMobileCall::TMobileCallInfoV3
- * @param aCallCreatedByMonitor, set:
- * EFalse for calls added by plugin owner
- * ETrue for calls added by ETel status monitor
- */
- void UpdateCallNameNumberInfo(
- RMobileCall::TMobileCallInfoV3& aCallInfo,
- TBool aCallAddedByMonitor );
-
- /**
- * Open new call.
- * New call is opened when the plugin owner adds the new
- * call (compare to OpenExistingCall where call is added by
- * ETel monitor).
- */
- void OpenNewCall();
-
- /**
- * Open existing call.
- * Existing call is opened if one of the ETel
- * monitors (incoming call monitor or line status monitor)
- * has added the call and no new call needs to be
- * opened.
- * @param aName name of the existing call
- */
- void OpenExistingCallL( const TDesC& aName );
-
- private:
-
- /**
- * Create call handlers for call requests and for
- * monitoring call events.
- */
- void CreateCallHandlersL();
-
- /**
- * Update call state from ETel
- * @return system wide error code
- */
- int UpdateCallState();
-
- private:
-
- enum TCSPCallAudioStatus {
- ECSPCallAudioStatusInactive,
- ECSPCallAudioStatusActive
- };
-
- protected:
-
- /**
- * CCP Call Observer array.
- */
- RPointerArray<MCCPCallObserver> iObservers;
-
- /**
- * Actual ETel call handle.
- */
- RMobileCall iCall;
-
- /**
- * ETel line
- */
- RMobileLine& iLine;
-
- /**
- * Determines if the call direction is either MO (ETrue) or MT (EFalse)
- */
- TBool iMobileOriginated;
-
- /**
- * Name information of the call.
- *
- * Name information is stored during CSPCall construction
- * and assigned to iCallName (MT or client call) or
- * iRemotePartyNumber (MO call) afterwards.
- */
- TBuf<KCSPPhoneNumberMaxLength> iName;
-
- /**
- * Remote party name of the call.
- */
- TBuf<KCSPPhoneNumberMaxLength> iRemotePartyNumber;
-
- /**
- * Remote party name of the call.
- */
- TBuf<KCSPCallingNameMaxLength> iRemotePartyName;
-
- /**
- * Dialled party of the call.
- */
- TBuf<KCSPPhoneNumberMaxLength> iDialledParty;
-
- /**
- * Call name for MT call.
- */
- TName iCallName;
-
- /**
- * Call parameters.
- */
- CCCECallParameters* iParams;
-
- /**
- * Call state in CCP format
- */
- MCCPCallObserver::TCCPCallState iCallState;
-
- /**
- * Capability flags.
- */
- TUint32 iCapsFlags;
-
- /**
- * Call status monitor
- */
- CSPEtelCallStatusMonitor* iCallStatusMonitor;
-
- /**
- * Call event monitor
- */
- CSPEtelCallEventMonitor* iCallEventMonitor;
-
- /**
- * Call info monitor
- */
- CSPCallInfoMonitor* iCallInfoMonitor;
-
- /**
- * Makes the asynchronic requests for various purposes.
- */
- CSPEtelCallRequester* iRequester;
-
- /**
- * Dial completion code.
- */
- TInt iDialCompletionCode;
-
- /**
- * Common information for calls.
- */
- MCSPCommonInfo& iCommonInfo;
-
- /**
- * Call termination error notification has been sent.
- */
- TBool iTerminationErrorNotified;
-
- /**
- * Emergency call.
- */
- TBool iIsEmergencyCall;
-
- private:
-
- /**
- * Transfer provider.
- * Own.
- */
- CSPTransferProvider* iTransferProvider;
-
- /**
- * Forward provider. No actual implementation.
- * Own.
- */
- CSPForwardProvider* iForwardProvider;
-
- /**
- * Audio dev sound handler.
- * Not own.
- */
- CSPAudioHandler* iAudioHandler;
-
- /**
- * FDN check usage status. Default is on. (ETrue)
- */
- TBool iFdnCheck;
-
- /**
- * Monitors call capabilities from ETel.
- * Own.
- */
- CSPEtelCallCapsMonitor* iCallCapsMonitor;
-
- /*
- * UUS monitor
- */
- CSPUUIMonitor* iUUIMonitor;
-
- /*
- * UUS sender
- */
- CSPUUIMessageSender* iUUIMessageSender;
-
- /**
- * Data for parsed skype id.
- * Own.
- */
- HBufC* iSkypeId;
-
- /**
- * Audio stop requested status. The flag prevents double audio stop.
- * Stop is executed in Disconnecting state and Idle state
- * if previous state has been DisconnectingWithInband.
- * Audio start status.
- */
- TCSPCallAudioStatus iAudioStatus;
-
- /**
- * Defines whether to report KErrGsmCCNormalUnspecified
- * and KErrGsmCCCallRejected.
- */
- TBool iDontReportTerm;
-
- /**
- * User to user information. Sended to network before dial.
- * Own.
- */
- HBufC* iUserToUserInformation;
-
- friend class UT_CSPCall;
- friend class MT_CConvergedCallProvider;
-
-
- };
-
-
-#endif // CSPCALL_H