phoneengine/callhandling/inc/cpecallhandling.h
changeset 0 5f000ab63145
child 1 838b0a10d15b
child 45 6b911d05207e
equal deleted inserted replaced
-1:000000000000 0:5f000ab63145
       
     1 /*
       
     2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  This file contains the header file of the CPECallHandling class.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CPECALLHANDLING_H
       
    20 #define CPECALLHANDLING_H
       
    21 
       
    22 //INCLUDES
       
    23 #include <etel.h>
       
    24 #include <etelmm.h>
       
    25 #include <ccce.h>
       
    26 #include <pevirtualengine.h>
       
    27 #include <mpemessagesender.h>
       
    28 #include <mccedtmfinterface.h>
       
    29 #include "mpecallinitialiser.h"
       
    30 #include <mpecallhandling.h>
       
    31 
       
    32 // CONSTANTS
       
    33 // None.
       
    34 
       
    35 // MACROS
       
    36 // None.
       
    37 
       
    38 // DATA TYPES
       
    39 // None.
       
    40 
       
    41 // FUNCTION PROTOTYPES
       
    42 // None.
       
    43 
       
    44 // FORWARD DECLARATIONS
       
    45 class CPEVideoCallHandling;
       
    46 class MPEPhoneModelInternal;
       
    47 class CPELine;
       
    48 class CPEDtmfHandling;
       
    49 class CPESingleCall;
       
    50 class CPEConferenceCall;
       
    51 class CPESupplementaryServicesMonitor;
       
    52 class CPECallArrayOwner;
       
    53 class CPsetSAObserver;
       
    54 class CCCECallParameters;
       
    55 class CPECCEObserver;
       
    56 class CPESystemCallState;
       
    57 
       
    58 // CLASS DECLARATION
       
    59 
       
    60 /**
       
    61 * CPECallHandling Handles voice call related events from phone engine.
       
    62 *
       
    63 *  @lib callhandling.lib
       
    64 *  @since Series60_4.0
       
    65 */
       
    66 class CPECallHandling 
       
    67         : public CBase, 
       
    68           public MPEMessageSender,
       
    69           public MPECallHandling,
       
    70           public MPECallInitialiser
       
    71     {
       
    72     public: //Constructors and descructor
       
    73         /**
       
    74         * Two-phased constructor.
       
    75         */
       
    76         IMPORT_C static CPECallHandling* NewL( MPEPhoneModelInternal& aModel, 
       
    77             CCCE& aConvergedCallEngine,
       
    78             MCCEDtmfInterface& aDtmfInterface );
       
    79 
       
    80         /**
       
    81         * Destructor.
       
    82         */
       
    83         IMPORT_C virtual ~CPECallHandling();
       
    84 
       
    85     protected:  // Constructors and destructor
       
    86         /**
       
    87         * C++ default constructor.
       
    88         */
       
    89         CPECallHandling( MPEPhoneModelInternal& aModel,
       
    90             CCCE& aConvergedCallEngine,
       
    91             MCCEDtmfInterface& aDtmfInterface );
       
    92 
       
    93         /**
       
    94         * By default Symbian 2nd phase constructor is private.
       
    95         */
       
    96         void ConstructL();
       
    97 
       
    98     public: // From MPEMessageSender
       
    99     
       
   100         /**
       
   101         * Reroutes error message to Phone Engine, usable by call objects
       
   102         * @param aCallId Identification number of the call.
       
   103         * @param aErrorCode, the error code stored after previous unsuccessful request
       
   104         */
       
   105         void SendErrorMessage( 
       
   106             const TInt aCallId, 
       
   107             const TInt aErrorCode );
       
   108         
       
   109         /**
       
   110         * Reroutes messages to Phone Engine, usable by call objects
       
   111         * @param aMessage Message id.
       
   112         * @param aCallId Identification number of the call.
       
   113         */
       
   114         void SendMessage( 
       
   115             const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage, 
       
   116             const TInt aCallId );
       
   117             
       
   118         /**
       
   119         * Reroutes call messages
       
   120         * @param aMessage The message code of the message
       
   121         * @param aName Name of call fill be maped to call id
       
   122         */  
       
   123         void SendMessage( 
       
   124             const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage,
       
   125             const TName& aName );
       
   126         
       
   127         /**
       
   128          * Reroutes call messages.
       
   129          * @param aMessage specifies the event that has taken place
       
   130          */
       
   131         void HandleInternalMessage(
       
   132             TInt aMessage );
       
   133 
       
   134     public: // From MPEMonitorCommandOwner
       
   135         /**
       
   136         * Reroutes error messages to Phone Engine, usable by other than call objects
       
   137         * @param aErrorCode, the error code stored after previous unsuccessful request
       
   138         */
       
   139         void SendErrorMessage( 
       
   140             const TInt aErrorCode );
       
   141 
       
   142         /**
       
   143         * Reroutes messages to Phone Engine, usable by other than call objects
       
   144         * @param aMessage The message code of the message
       
   145         */    
       
   146         void SendMessage( 
       
   147             const MEngineMonitor::TPEMessagesFromPhoneEngine aMessage );
       
   148 
       
   149     public: // From MPECallHandling
       
   150         /**
       
   151         * Starts monitoring incoming calls for voice and data call.
       
   152         */
       
   153         IMPORT_C void StartUp();
       
   154 
       
   155         /**
       
   156         * Makes answer request to the Multimode ETel. 
       
   157         * @since Series60_4.0
       
   158         * @param None.
       
   159         * @return Error code.
       
   160         */
       
   161         IMPORT_C TInt AnswerCall();
       
   162 
       
   163         /**
       
   164         * Creates dialing request to the Multimode ETel. 
       
   165         * @since Series60_4.0
       
   166         * @param aNumber The telephone number to be called.
       
   167         * @param aCallId Identification number of the call.
       
   168         * @return Error (KErrNone is success).
       
   169         */
       
   170         IMPORT_C TInt DialCall( const TPEPhoneNumber& aNumber,TInt& aCallId );
       
   171 
       
   172         /**
       
   173         * Creates dialing request to the Multimode ETel. 
       
   174         * @since Series60_4.0
       
   175         * @param aNumber The telephone number to be called.
       
   176         * @param aCallId Identification number of the call.
       
   177         * @return Error (KErrNone is success).
       
   178         */
       
   179         IMPORT_C TInt DialMultimedia( const TPEPhoneNumber& aNumber,TInt& aCallId );
       
   180 
       
   181         /**
       
   182         * Returns call duration time.
       
   183         * @since Series60_4.0
       
   184         * @param aDuration Call duration.
       
   185         * @param aCallId Identification number of the call.
       
   186         * @return Error code (KErrNone or KErrNotFound).
       
   187         */    
       
   188         IMPORT_C TInt GetCallDuration( TTimeIntervalSeconds& aDuration, TInt aCallId );
       
   189 
       
   190         /**
       
   191         * Returns information of the call.
       
   192         * @since Series60_4.0
       
   193         * @param aCallInfo Current call information.
       
   194         * @param aCallId Identification number of the call.
       
   195         * @return Error code (KErrNone or KErrNotFound).
       
   196         */
       
   197         IMPORT_C  TInt GetCallInfo( 
       
   198             RMobileCall::TMobileCallInfoV3& aCallInfo, 
       
   199             TInt aCallId );
       
   200 
       
   201         /**
       
   202         * Returns state of the call.
       
   203         * @since Series60_4.0
       
   204         * @param aCallid Identification number of the call.
       
   205         * @return Call state ( EPEStateUnknown is error).
       
   206         */
       
   207         IMPORT_C TPEState GetCallState( TInt aCallId );
       
   208 
       
   209         /**
       
   210         * Returns the missed voice call indicator. 
       
   211         * @since Series60_4.0
       
   212         * @param  aMissedCall, missed call indicator.
       
   213         * @param aCallId, call idendificator.
       
   214         * @return KErrNone or KErrNotFound.
       
   215         */
       
   216         IMPORT_C TInt GetMissedCall( TBool& aMissedCall, TInt aCallId );
       
   217 
       
   218         /**
       
   219         * Returns number of non-idle calls
       
   220         * @since Series60_4.0
       
   221         * @param  None.
       
   222         * @return Number of current voice calls.
       
   223         */
       
   224         IMPORT_C TInt GetNumberOfCalls();
       
   225 
       
   226         /**
       
   227         * Returns remote alerting tone status (is it played by network or not).
       
   228         * @since Series60_4.0
       
   229         * @param aToneStatus Status of remote alerting tone play.
       
   230         * @return None.
       
   231         */
       
   232        /* IMPORT_C void GetRemoteAlertingToneStatus( 
       
   233             RMmCustomAPI::TRemoteAlertingToneStatus& aToneStatus );*/
       
   234         
       
   235         /**
       
   236         * Makes HangUp request to the CCE. 
       
   237         * @since Series60_4.0
       
   238         * @param aCallId Identification number of the call to be rejected.
       
   239         * @param aAutoResumeOption if options for autoresume.
       
   240         * @return Error (KErrNone is success).
       
   241         */
       
   242         IMPORT_C TInt HangUp( TInt aCallId, TPEHangUpOptions aAutoResumeOption );
       
   243 
       
   244         /**
       
   245         * Determines if there is a call in given state.
       
   246         * @since Series60_4.0
       
   247         * @param aState Call state search key.
       
   248         * @return TBool, ETrue is there is a call; otherwise EFalse.
       
   249         */
       
   250         IMPORT_C TBool IsCallInState( TPEState aState ) const;
       
   251         
       
   252         /**
       
   253         * Determines if there is a call in given state.
       
   254         * @since Series60_4.0
       
   255         * @param aState Call state search key.
       
   256         * @return callid is there is a call; otherwise KPECallIdNotUsed( -1 ).
       
   257         */
       
   258         IMPORT_C TInt GetCallIdByState( TPEState aState ) const;
       
   259 
       
   260         /**
       
   261         * Makes reject request to the Multimode ETel 
       
   262         * @return Return possible error code
       
   263         */
       
   264         IMPORT_C TInt RejectCall( );
       
   265 
       
   266         /**
       
   267         * Makes HangUp requests for all call to the Multimode ETel. 
       
   268         * @return Error (KErrNotFound if there is not a call and KErrNone if there one call at least).
       
   269         */
       
   270         IMPORT_C TInt ReleaseAll();
       
   271 
       
   272         /**
       
   273         * Set Dynamic Hscsd parameters.
       
   274         * @param const TInt aRxSlots, Hscsd data call received timeslots amount
       
   275                  const TInt aCallId, data call id.  
       
   276         * @return KErrNone or KErrNotFound.
       
   277         */
       
   278         IMPORT_C TInt SetDynamicHscsdParams( TInt aRxSlots, TInt aCallId );
       
   279 
       
   280         /**
       
   281         * Terminate all connection request. 
       
   282         */
       
   283         IMPORT_C TInt TerminateAllConnections();
       
   284         
       
   285         /**
       
   286         * Asks phone identity parameters from the mmetel.
       
   287         * @param aMessage Reply message to the phone application.
       
   288         * @return Error (KErrNone or KErrNotFound).
       
   289         */
       
   290         IMPORT_C TInt UpdatePhoneIdentity( 
       
   291             MEngineMonitor::TPEMessagesFromPhoneEngine aMessage );
       
   292 
       
   293         /**
       
   294         * Sets active line
       
   295         */
       
   296         IMPORT_C void SetActiveLine();
       
   297 
       
   298         /**
       
   299         * Makes transfer request to the Multimode ETel 
       
   300         * @param None.
       
   301         * @return Return possible error code
       
   302         */
       
   303         IMPORT_C TInt BuildConference();
       
   304         
       
   305         /**
       
   306         * Swaps connected and held calls
       
   307         * @since Series60_4.0
       
   308         * @param  None.
       
   309         * @return KErrNone or KErrNotFound.
       
   310         */
       
   311         IMPORT_C TInt SwapCalls();
       
   312         
       
   313         /**
       
   314         * Add conference member.
       
   315         * @return possible error code from the CallHandling subsystem.
       
   316         */
       
   317         IMPORT_C TInt AddConferenceMember();
       
   318 
       
   319         /**
       
   320         * Drops one member from the conference call
       
   321         * @since Series60_4.0
       
   322         * @param aCallid It is the Call Id of the call to be dropped
       
   323         * @return Return possible error code
       
   324         */
       
   325         IMPORT_C TInt DropMember( TInt aCallId );
       
   326 
       
   327         /**
       
   328         * Splits one member from the conference call. 
       
   329         * @since Series60_4.0
       
   330         * @param aCallid It is the index number of the call to be splited. 
       
   331         * @return Return possible error code
       
   332         */
       
   333         IMPORT_C TInt GoOneToOne( TInt aCallId );
       
   334 
       
   335         /**
       
   336         * Makes hold request for the connected call
       
   337         * @return KErrNone if request was sent successfully
       
   338         *         KErrGsmNotAllowed if no connected call was found
       
   339         */
       
   340         IMPORT_C TInt HoldCall();
       
   341 
       
   342         /**
       
   343         * Makes resume request for the held call
       
   344         * @return KErrNone if request was sent successfully
       
   345         *         KErrGsmNotAllowed if no held call was found
       
   346         */
       
   347         IMPORT_C TInt ResumeCall();
       
   348 
       
   349         /**
       
   350         * Makes transfer request to the Multimode ETel 
       
   351         * @since Series60_4.0
       
   352         * @param None. 
       
   353         * @return KErrNone or KErrNotFound.
       
   354         */
       
   355         IMPORT_C TInt TransferCalls();
       
   356 
       
   357         /**
       
   358         * Creates emergency call request to the Multimode ETel 
       
   359         * @since Series60_4.0
       
   360         * @param None. 
       
   361         * @return None.
       
   362         */
       
   363         IMPORT_C void DialEmergencyCall( const TPEPhoneNumber& aEmergencyNumber );
       
   364 
       
   365         /**
       
   366         * Returns call terminated diagnostics of a call
       
   367         * Info is valid only for Idle call
       
   368         * @since Series60_4.0
       
   369         * @param aCallName, TName information of a call
       
   370         * @return Return diagnostics info
       
   371         */
       
   372         IMPORT_C TInt GetCallTerminatedDiagnostics( 
       
   373             TName& aCallName ) const;
       
   374 
       
   375         /**
       
   376         * Returns call terminated error
       
   377         * @since Series60_4.0
       
   378         * @return Return errorCode
       
   379         */        
       
   380         IMPORT_C TInt CallTerminatedError( const TInt aCallId );
       
   381         
       
   382         /**
       
   383         * This method gets the lifetime of the MS. The lifetime information 
       
   384         * includes the manufacturing date of the MS and the total amount of airtime use.
       
   385         * @param aLifeTimeInfo Life time information
       
   386         * @return Get succeeded or not.
       
   387         */
       
   388         IMPORT_C TBool GetLifeTime( TDes8& aLifeTimeInfo );
       
   389         
       
   390         /**
       
   391         * Replace active call with waiting call. 
       
   392         * @since Series60_5.0
       
   393         * @return Error (KErrNone is success).
       
   394         */
       
   395         IMPORT_C TInt ReplaceActive();
       
   396         
       
   397         /**
       
   398         * This method gets the reference to MPECallOwner object.
       
   399         * @since Series60_4.0
       
   400         * @param  None.
       
   401         * @return None.
       
   402         */
       
   403         IMPORT_C MPECallOwner& CallOwner() const;
       
   404 
       
   405         /**
       
   406          * Accepts unattended transfer request. 
       
   407          * @since    Series 60 v5.1
       
   408          * @return   System wide error code.
       
   409          */
       
   410         IMPORT_C TInt AcceptUnattendedTransfer();
       
   411         
       
   412         /**
       
   413          * Rejects unattended transfer request. 
       
   414          * @since    Series 60 v5.1
       
   415          * @return   System wide error code.
       
   416          */
       
   417         IMPORT_C TInt RejectUnattendedTransfer();
       
   418 
       
   419         /**
       
   420         * Does unattended transfer to the connected VoIP call 
       
   421         * @since Series60_5.1
       
   422         * @param aTransferTarget Address of the transfer target
       
   423         * @return Error (KErrNone is success).
       
   424         */
       
   425         IMPORT_C TInt DoUnattendedTransfer( const TDesC& aTransferTarget );
       
   426 
       
   427         /**
       
   428         * Starts call forwarding. 
       
   429         * @since Series60_5.1
       
   430         * @param aIndex A array index for a selected address.
       
   431         * @return Error (KErrNone is success).
       
   432         */
       
   433         IMPORT_C TInt ForwardCallToAddress( TInt aIndex );
       
   434 
       
   435     public: // From MPECallHandling - DTMF related
       
   436         /**
       
   437         * Cancels Dtmf string sending.
       
   438         */
       
   439         IMPORT_C void CancelDtmfPlay();        
       
   440 
       
   441         /**
       
   442         * Allows a client to continue dtmf string sending when 
       
   443         * it was stopped by use of 'w' char in the string.
       
   444         */
       
   445         IMPORT_C void ContinueDtmfSending();
       
   446 
       
   447         /**
       
   448         * Sends dtmf string.
       
   449         * @param aDtmfString String to be sent.
       
   450         * @return Symbian OS error code
       
   451         */
       
   452         IMPORT_C TInt SendDtmf( const TPEDtmfString& aDtmfString );
       
   453 
       
   454         /**
       
   455         * Sends dtmf tone
       
   456         * @param aTone Tone to be sent.
       
   457         * @return Error (KErrNone or KErrNotFound).
       
   458         */
       
   459         IMPORT_C TInt StartDtmfTone( const TChar& aTone );
       
   460 
       
   461         /**
       
   462         * Allows a client to cancel the sending of a dtmf string when 
       
   463         * it was stopped by use of 'w' char in the string.
       
   464         */
       
   465         IMPORT_C void StopDtmfSending();
       
   466 
       
   467         /**
       
   468         * Stops sending dtmf tone.
       
   469         * @return Error (KErrNone or KErrNotFound).
       
   470         */
       
   471         IMPORT_C TInt StopDtmfTone();
       
   472 
       
   473     public: // From base class MPECallInitialiser
       
   474 
       
   475         /**
       
   476         * @see MPECallInitialiser::InitVoiceCall
       
   477         */
       
   478         void InitVoiceCall( MCCECall& aNewCall );
       
   479         
       
   480         /**
       
   481         * @see MPECallInitialiser::InitVideoCall
       
   482         */
       
   483         void InitVideoCall( MCCECall& aNewCall );
       
   484 
       
   485         /**
       
   486         * @see MPECallInitialiser::InitConferenceCall
       
   487         */
       
   488         void InitConferenceCall( MCCEConferenceCall& aConference );
       
   489 
       
   490     public:
       
   491         /**
       
   492         * Tells if there is any connected calls.
       
   493         * @return Indication of connected call(s) (EFalse is no calls, ETrue is connected call(s)).
       
   494         */
       
   495         TBool ConnectedCalls();
       
   496 
       
   497         /**
       
   498         * Returns voice call object by state.
       
   499         * @param aState Call state search key.
       
   500         * @param aIndex Index of the found call object (-1 is not found).
       
   501         * @param aGetCommandObject (if ETrue then find by command object state).
       
   502         * @return Call object (NULL is not found).
       
   503         */
       
   504         CPESingleCall* VoiceCallDataByState( 
       
   505             TPEState aState, 
       
   506             TInt& aIndex ) const;
       
   507         
       
   508         /**
       
   509         * SetCallParams.
       
   510         * @param None.
       
   511         * @return None.
       
   512         */
       
   513         void SetCallParams( TInt aCallId );
       
   514 
       
   515         /**
       
   516         * Creates CPECallData objects
       
   517         * @since Series60_4.0
       
   518         * @param None. 
       
   519         * @return None. 
       
   520         */
       
   521         void CreateCallDataArraysL();
       
   522 
       
   523         /**
       
   524         * Create conference call
       
   525         */
       
   526         void CreateConferenceCallL( CPESingleCall& aCall1, CPESingleCall& aCall2 );
       
   527         
       
   528         /**
       
   529         * Returns number of conference members
       
   530         * @since Series60_4.0
       
   531         * @param aCount It is variable, where number of participants is returned
       
   532         * @return Return possible error code
       
   533         */
       
   534         TInt GetNumberOfParticipants( TInt& aCount );
       
   535 
       
   536         /**
       
   537         * Returns added or removed members TName information and CallId
       
   538         * @since Series60_4.0
       
   539         * @param aCallId, Conference calls CallId
       
   540         * @param aCallName, TName information of dropped or added call
       
   541         * @param aMemberCallId, CallId of the added or dropped call
       
   542         * @return Return errorCode
       
   543         */
       
   544         TInt GetConferenceMemberNameAndId( TName& aCallName, TInt& aMemberCallId );
       
   545 
       
   546         /**
       
   547         * Get call control caps
       
   548         * @since Series60_4.0
       
   549         * @param aCallControlCaps, the call control caps.
       
   550         * @return KErrNone or KErrNotFound.
       
   551         */        
       
   552         TInt GetCallControlCaps( TPECallControlCaps& aCallControlCaps, TInt aCallId );
       
   553      
       
   554         /**
       
   555         * Returns Conference capabilities
       
   556         * @since Series60_4.0
       
   557         * @param aCallId, call identification number
       
   558         * @param aCaps, capabilities are returned in this variable
       
   559         * @return Return errorCode
       
   560         */
       
   561         TInt GetConferenceCallCaps( TUint32& aCaps );
       
   562         
       
   563         /**
       
   564         * Create new CPESingleCall object to CPECallArrayOwner and open new MCCECall ojcte to CCE.
       
   565         * @param None.
       
   566         * @return returns pointer to CPESingleCall objecte.
       
   567         */
       
   568         CPESingleCall* OpenNewCallL( const TPEPhoneNumber& aNumber );
       
   569 
       
   570         /**
       
   571         * Adds one member to the conference call ( TRAPPED METHOD )
       
   572         * @since Series60_4.0
       
   573         * @param aCallid It is the index number of the call to be added
       
   574         * @return Return possible error code
       
   575         */
       
   576         TInt AddMember( TInt aCallId );
       
   577     
       
   578         /**
       
   579         * Adds one member to the conference call
       
   580         * @since Series60_4.0
       
   581         * @param aCallid It is the index number of the call to be added
       
   582         */
       
   583         void AddMemberL( TInt aCallId );
       
   584         
       
   585         /**
       
   586         * Get call's secure status.
       
   587         * @param aCallid.
       
   588         * @return TBool ETrue if security is enabled, else EFalse.
       
   589         */
       
   590         TBool IsSecureCall( const TInt aCallId ) const;
       
   591         
       
   592         /** 
       
   593         * Update System Agent setting for call forward.
       
   594         * @since Series60_4.0
       
   595         */
       
   596         void UpdateSaSetting();
       
   597         
       
   598         /** 
       
   599         * Defines basic service code for divert notification.
       
   600         * @since Series60_4.0
       
   601         * @param aLineType used line type
       
   602         * @param call reference to call object
       
   603         * @return Returns the basuc service code. 
       
   604         */ 
       
   605         TInt DefineDivertBsc( CCCECallParameters::TCCELineType aLineType, 
       
   606                               CPESingleCall* call );
       
   607 
       
   608         /**
       
   609         * Check if dial allowed   
       
   610         * @param aMultimediaDial. Is new dial multimedia
       
   611         * @return ETrue if dial allowed
       
   612         */
       
   613         TBool IsDialAllowed( TBool aMultimediaDial );
       
   614 
       
   615         /**
       
   616         * Get call's secure specified status.
       
   617         * @param aCallid.
       
   618         * @return TBool ETrue if security is specified, else EFalse.
       
   619         */
       
   620         TBool SecureSpecified( const TInt aCallId ) const; 
       
   621         
       
   622         /**
       
   623         * Initialise conference call info.
       
   624         * @param call reference to call object
       
   625         * @param call reference to call object
       
   626         * @return None.
       
   627         */
       
   628         void InitialiseConferenceCallInfo( 
       
   629             MCCECall& aCall1, 
       
   630             MCCECall& aCall2 );
       
   631         
       
   632         /**
       
   633         * Handle auto resume.
       
   634         */
       
   635         void HandleAutoResume();
       
   636         
       
   637     private:
       
   638         
       
   639         /**
       
   640         * Delete's call object and reset's datastore.
       
   641         * @param aCallid.
       
   642         */
       
   643         TInt ReleaseCallObject( const TInt aCallId  ); 
       
   644         
       
   645         /**
       
   646          * Set call origin to datastore.
       
   647          * @param aCallid.
       
   648          * @param aCall reference to call object
       
   649          */
       
   650         void SetCallOrigin( const TInt aCallId, const MCCECall& aCall ) const;
       
   651 
       
   652     protected:
       
   653         // Phone model instance which owns this object.
       
   654         MPEPhoneModelInternal& iModel;
       
   655         // Handle to converged call engine (CCE) interface
       
   656         CCCE& iConvergedCallEngine;
       
   657         // Video call handling object handles video call operations.
       
   658         CPEVideoCallHandling* iVideoCallHandling;
       
   659         // CPEDtmfHandling object handles dtmf commands
       
   660         CPEDtmfHandling* iDtmfHandling;   
       
   661         // Member variable for CallHandling Errorcode
       
   662         TInt iErrorCode;
       
   663         // Call parameters for dialing
       
   664         CCCECallParameters* iCallOpenParams;
       
   665         
       
   666         
       
   667         //Create conference call CPEConferenceCall object
       
   668         CPEConferenceCall* iConferenceCall;
       
   669         // Supplementary Service Monitor
       
   670         CPESupplementaryServicesMonitor* iSupplementaryServicesMonitor;
       
   671         // Call array owner
       
   672         CPECallArrayOwner* iCallArrayOwner;
       
   673         // CCE dtmf interface
       
   674         MCCEDtmfInterface& iDtmfInterface;
       
   675         // Active line
       
   676         CCCECallParameters::TCCELineType iActiveLine;
       
   677         // Owned system agent observer. 
       
   678         CPsetSAObserver* iPsetSAObserver;
       
   679         // Emergency number
       
   680         TPEPhoneNumber iEmergencyNumber;
       
   681         // ReplaceActive       
       
   682         TBool iReplaceActive;
       
   683         // Status of dial, before dialing state
       
   684         TBool iDialRequest;
       
   685 
       
   686         /**
       
   687          * CCE observer.
       
   688          */
       
   689         CPECCEObserver* iCCEObserver;
       
   690         // System Call State
       
   691         CPESystemCallState* iSystemCallState;
       
   692     };
       
   693 
       
   694 #endif    // CPECALLHANDLING_H
       
   695             
       
   696 // End of File