phoneengine/engineinfo/inc/cpecallinfo.h
changeset 0 5f000ab63145
child 19 544e34b3255a
child 46 bc5a64e5bc3c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneengine/engineinfo/inc/cpecallinfo.h	Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,639 @@
+/*
+* Copyright (c) 2008-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:  Information container for a single call
+*
+*/
+
+
+#ifndef C_CPECALLINFO_H
+#define C_CPECALLINFO_H
+
+#include <pevirtualengine.h>
+
+class CPEClientInformation;
+
+/**
+ * Information container for a single call.
+ */
+NONSHARABLE_CLASS( CPECallInfo ) : public CBase
+    {
+
+public:
+    
+    /**
+     * Two-phased constructor.
+     * 
+     * @return      The newly created object. Ownership is transferred to the caller.
+     */
+    static CPECallInfo* NewL();
+
+    /**
+     * Destructor.
+     */
+    ~CPECallInfo();
+
+    /**
+     * Resets all call information to their initial values.
+     * 
+     * @param   aIsConference   Flag indicating if the call is a conference call.
+     */
+    void Reset( TBool aIsConference );
+    
+    /**
+     * Returns the client information of the call.
+     * 
+     * @return  Client information of the call.
+     */ 
+    CPEClientInformation& ClientInformation();
+    
+    /**
+     * Sets the state of the call.
+     * 
+     * @param   aState          New state of the call.
+     */
+    void SetCallState( TPEState aState );
+    
+    /**
+     * Returns the state of the call.
+     * 
+     * @return  State of the call.
+     */
+    TPEState CallState() const;
+    
+    /**
+     * Sets the type of the call.
+     * 
+     * @param   aType           New type of the call.
+     */
+    void SetCallType( TPECallType aType );
+    
+    /**
+     * Returns the type of the call.
+     * 
+     * @return  Type of the call.
+     */
+    TPECallType CallType() const;
+    
+    /**
+     * Sets the call control capabilites.
+     * 
+     * @param   aCaps           Call control capabilites to set.
+     */
+    void SetCallControlCaps( TPECallControlCaps aCaps );
+    
+    /**
+     * Returns the call control capabilities.
+     * 
+     * @return  Call control capabilities.
+     */
+    TPECallControlCaps CallControlCaps() const;
+
+    /**
+     * Sets the remote party name of the call as given by the network.
+     * 
+     * @param   aName           Remote party name of the call.
+     */
+    void SetRemotePartyName( const TPEContactName& aName );
+    
+    /**
+     * Returns the remote party name of the call as given by the network.
+     * 
+     * @return  Remote party name of the call.
+     */
+    const TPEContactName& RemotePartyName() const;
+    
+    /**
+     * Sets the whole outgoing phone number (invalid characters removed).
+     * 
+     * @param   aNumber         Phone number to set.
+     */
+    void SetWholeOutgoingPhoneNumber( const TPEPhoneNumber& aNumber );
+    
+    /**
+     * Returns the whole outgoing phone number (invalid characters removed).
+     * 
+     * @return  Whole outgoing phone number.
+     */
+    const TPEPhoneNumber& WholeOutgoingPhoneNumber() const;
+
+    /**
+     * Sets the ALS line type of the call.
+     * 
+     * @param   aAlsLine        ALS line type to set.
+     */
+    void SetAlsLine( CCCECallParameters::TCCELineType aAlsLine );
+    
+    /**
+     * Returns the ALS line type of the call.
+     * 
+     * @return  ALS line type of the call.
+     */
+    CCCECallParameters::TCCELineType AlsLine() const;
+    
+    /**
+     * Sets the remote identity status of the call.
+     * 
+     * @param   aIdentity       Remote identity status to set.
+     */
+    void SetRemoteIdentity( RMobileCall::TMobileCallRemoteIdentityStatus aIdentity );
+    
+    /**
+     * Returns the remote identity status of the call.
+     * 
+     * @return  Remote identity status of the call.
+     */
+    RMobileCall::TMobileCallRemoteIdentityStatus RemoteIdentity() const;
+    
+    /**
+     * Sets the direction of the call.
+     * 
+     * @param   aDirection      Direction to set.
+     */
+    void SetCallDirection( RMobileCall::TMobileCallDirection aDirection );
+    
+    /**
+     * Returns the direction of the call.
+     * 
+     * @return  Direction of the call.
+     */
+    RMobileCall::TMobileCallDirection CallDirection() const;
+
+    /**
+     * Sets the mobile call service type of the call.
+     *  
+     * @param   aService        Mobile call service type to set.
+     */
+    void SetService( RMobilePhone::TMobileService aService );
+    
+    /**
+     * Returns the mobile call service type of the call.
+     * 
+     * @return  Mobile call service type of the call.
+     */
+    RMobilePhone::TMobileService Service() const;
+    
+    /**
+     * Sets the conference member name of the call.
+     * 
+     * @param   aName           Conference member name of the call.
+     */
+    void SetConferenceMemberName( const TName& aName );
+    
+    /**
+     * Returns the conference member name of the call.
+     * 
+     * @return  Conference member name of the call.
+     */
+    const TName& ConferenceMemberName() const;
+    
+    /**
+     * Sets the call start time.
+     * 
+     * @param   aTime           Start time of the call.
+     */
+    void SetStartTime( const TTime& aTime );
+    
+    /**
+     * Returns the start time of the call.
+     * 
+     * @return  Start time of the call.
+     */
+    const TTime& StartTime() const;
+    
+    /**
+     * Sets the duration of the call.
+     * 
+     * @param   aDuration       Duration of the call in seconds.
+     */
+    void SetDuration( TTimeIntervalSeconds aDuration );
+    
+    /**
+     * Returns the duration of the call.
+     * 
+     * @return  Duration of the call in seconds.
+     */
+    TTimeIntervalSeconds Duration() const;
+    
+    /**
+     * Sets the service identifier of the call.
+     * 
+     * @param   aId             Service identifier to set.
+     */
+    void SetCallServiceId( TUint32 aId );
+    
+    /**
+     * Returns the service identifier of the call.
+     * 
+     * @return  Service identifier of the call.
+     */
+    TUint32 CallServiceId() const;
+    
+    /**
+     * Sets conference capabilities of the call.
+     * 
+     * @param   aCaps           Conference capabilities to set.
+     */
+    void SetConferenceCaps( TUint32 aCaps );
+    
+    /**
+     * Returns the conference capabilities of the call.
+     * 
+     * @return  Conference capabilities of the call.
+     */
+    TUint32 ConferenceCaps() const;
+    
+    /**
+     * Sets the identification number of the conference master.
+     * 
+     * @param   aConference     Identification number of the conference master to set.
+     */
+    void SetConference( TInt aConference );
+    
+    /**
+     * Returns the identification number of the conference master.
+     * 
+     * @return  Identification number of the conference master.
+     */
+    TInt Conference() const;
+    
+    /**
+     * Sets the identifier of the conference member call.
+     * 
+     * @param   aId             Identifier of the conference member call to set.
+     */
+    void SetConferenceMemberId( TInt aId );
+    
+    /**
+     * Returns the identifier of the conference member call.
+     * 
+     * @return  Identifier of the conference member call.
+     */
+    TInt ConferenceMemberId();
+    
+    /**
+     * Sets the number of conference members.
+     * 
+     * @param   aNumberOfConferenceMembers      Number of conference members.
+     */
+    void SetNumberOfConferenceMembers( TInt aNumberOfConferenceMembers );
+    
+    /**
+     * Returns the number of conference members.
+     * 
+     * @return  Number of conference members.
+     */
+    TInt NumberOfConferenceMembers() const;
+    
+    /**
+     * Sets the forced completion indicator for logging.
+     * 
+     * @param   aLog            Flag indicating if forced completion should be set.
+     */
+    void SetLogForcedCompletion( TBool aLog );
+    
+    /**
+     * Returns the flag indicating if forced completion indicator for logging is used.
+     * 
+     * @return  Flag indicating if forced completion indicator for logging is used.
+     */
+    TBool LogForcedCompletion();
+    
+    /**
+     * Enables or disables logging for the call.
+     * 
+     * @param   aEnabled        Flag enabling or disabling logging for the call.
+     */
+    void SetLoggingEnabled( TBool aEnabled );
+    
+    /**
+     * Returns if logging is enabled for the call.
+     * 
+     * @return  Flag indicating if logging is enabled for the call.
+     */
+    TBool LoggingEnabled() const;
+    
+    /**
+     * Sets the missed call status for the call.
+     * 
+     * @param   aMissedCall     Missed call status to set.
+     */
+    void SetMissedCall( TBool aMissedCall );
+    
+    /**
+     * Returns the missed call status for the call.
+     * 
+     * @return  Missed call status for the call.
+     */
+    TBool MissedCall() const;
+    
+    /**
+     * Sets the secure status for the call.
+     * 
+     * @param   aSecureStatus   Secure status to set.
+     */
+    void SetSecureStatus( TBool aSecureStatus );
+    
+    /**
+     * Returns the secure status of the call.
+     * 
+     * @return  Secure status of the call.
+     */
+    TBool SecureStatus() const;
+    
+    /**
+     * Sets the forwarded status for the call.
+     * 
+     * @param   aForwarded      Forwarded status to set.
+     */
+    void SetForwarded( TBool aForwarded );
+    
+    /**
+     * Returns the forwarded status of the call.
+     * 
+     * @return  Forwarded status of the call.
+     */
+    TBool Forwarded() const;
+    
+    /**
+     * Sets the resume held call status for the call.
+     * 
+     * @param   aResume         Resume held call status to set.
+     */
+    void SetResumeHeldCall( TBool aResume );
+    
+    /**
+     * Returns the resume held call status of the call.
+     * 
+     * @return  Resume held call status of the call.
+     */
+    TBool ResumeHeldCall() const;
+
+    /**
+     * Returns the dtmf postfix of the call.
+     * 
+     * @return  dtmf postfix of the call.
+     */
+    const TPEDtmfString& DtmfPostFix() const;
+    
+    /**
+     * Sets the dtmf postfix of the call.
+     * 
+     * @param aDtmfPostFix dtmf postfix to set.
+     */
+    void SetDtmfPostFix( const TPEDtmfString& aDtmfPostFix );
+
+    /**
+     * Sets the secure specified status for the call.
+     * 
+     * @param aSecureSpecified Secure specified status to set.
+     */
+    void SetSecureSpecified( TBool aSecureSpecified );
+
+    /**
+     * Returns the secure specified status of the call.
+     * 
+     * @return Secure specified status of the call.
+     */
+    TBool SecureSpecified() const;
+    
+    /**
+     * Returns transfer target from the received unattended transfer 
+     * request or KNullDesC if transfer target is not available.
+     * 
+     * @return  Transfer target.
+     */
+    const TPEPhoneNumber& UnattendedTransferTarget() const;
+    
+    /**
+     * Sets transfer target from received unattended transfer request.
+     *
+     * @param   aTarget     Transfer target to set.
+     */
+    void SetUnattendedTransferTarget( const TPEPhoneNumber& aTarget );
+
+    /**
+     * Returns address choices from received call forward request 
+     * or NULL if addresses are not available.
+     * 
+     * @return  New address.
+     */
+    const CDesC8Array* ForwardAddressChoices() const;
+    
+    /**
+     * Sets address choices from received call forward request.
+     *
+     * @param   aArray     Address array.
+     */
+    void SetForwardAddressChoices( const CDesC8Array* aArray );
+    
+    /**
+     * Sets array index for user selected address.
+     *
+     * @param   aIndex     Array index for selected address.
+     */
+    void SetForwardAddressIndex( TInt aIndex );
+    
+    /**
+     * Sets the call index of a call. Note this is not a call id.
+     */
+    void SetCallIndex( TInt aCallIndex );
+    
+    /**
+     * Gets the call index of a call. Note this is not the same as
+     * call id.
+     */
+    TInt CallIndex() const;
+    
+    /**
+     * Sets the origin of a call.
+     */
+    void SetCallOrigin( TPECallOrigin aOrigin );
+    
+    /**
+     * Gets the origin of a call.
+     */
+    TPECallOrigin CallOrigin() const;
+    
+private:
+    
+    /**
+     * Constructor.
+     */
+    CPECallInfo();
+    
+    /**
+     * Second-phase constructor.
+     */
+    void ConstructL();
+
+private:
+    
+    /**
+     * Client information of the call.
+     * Owned.
+     */
+    CPEClientInformation* iClientInformation;
+    
+    /**
+     * State of the call.
+     */
+    TPEState iCallState;
+    
+    /**
+     * Type of the call.
+     */
+    TPECallType iCallType;
+    
+    /**
+     * Call control capabilities.
+     */
+    TPECallControlCaps iCallControlCaps;
+
+    /**
+     * Name of the remote party as given by the network (SkypeID).
+     */
+    TPEContactName iRemotePartyName;
+    
+    /**
+     * Whole outgoing phone number (invalid characters removed).
+     */
+    TPEPhoneNumber iWholeOutgoingPhoneNumber;
+
+    /**
+     * ALS line of the call.
+     */
+    CCCECallParameters::TCCELineType iALSLine;
+    
+    /**
+     * Remote identity status.
+     */
+    RMobileCall::TMobileCallRemoteIdentityStatus iRemoteIdentity;
+    
+    /**
+     * Direction of the call.
+     */
+    RMobileCall::TMobileCallDirection iCallDirection;
+
+    /**
+     * Mobile call service type.
+     */
+    RMobilePhone::TMobileService iService;
+
+    /**
+     * Conference member name.
+     */
+    TName iConferenceMemberName; 
+    
+    /**
+     * Start time of the call.
+     */
+    TTime iStartTime;
+    
+    /**
+     * Duration of the call in seconds.
+     */
+    TTimeIntervalSeconds iDuration;
+
+    /**
+     * Service identifier.
+     */
+    TUint32 iCallServiceId;
+    
+    /**
+     * Conference capabilities.
+     */
+    TUint32 iConferenceCaps;
+    
+    /**
+     * Identification number of the conference master.
+     */
+    TInt iConference;
+    
+    /**
+     * Conference member call identifier.
+     */
+    TInt iConferenceMemberId;
+    
+    /**
+     * Number of conference members.
+     */
+    TInt iNumberOfConferenceMembers;
+
+    /**
+     * Flag to indicate forced completion indicator for log handling.
+     */
+    TBool iLogForcedCompletion;
+    
+    /**
+     * Flag to indicate logging enabled status.
+     */
+    TBool iLoggingEnabled;
+    
+    /**
+     * Flag to indicate missed call status.
+     */
+    TBool iMissedCall;
+    
+    /**
+     * Flag to indicate secure status.
+     */
+    TBool iSecureStatus;
+    
+    /**
+     * Flag to indicate forwarded status of the incoming call.
+     */
+    TBool iForwarded;
+    
+    /**
+     * Flag to indicate resume held call status.
+     */
+    TBool iResumeHeldCall;
+
+    /**
+     * Flag to indicate secure specified status.
+     */    
+    TBool iSecureSpecified;
+    
+    /**
+     * Unattended transfer target.
+     */
+    TPEPhoneNumber iTransferTarget;
+    
+    /**
+     * Dtmf postfix.
+     */
+    TPEDtmfString iDtmfPostFix;
+
+    /**
+     * Call forward address choices.
+     */
+    const CDesC8Array* iForwardAddressChoices;
+    
+    /**
+     * User selected array index for call forward.
+     */
+    TInt iForwardAddressArrayIndex;
+    
+    /**
+     * Call index of a call. Note this is not call id. 
+     */
+    TInt iCallIndex;
+    
+    /**
+     * Origin of the call. 
+     */
+    TPECallOrigin iCallOrigin;
+    };
+
+#endif // C_CPECALLINFO_H