convergedcallengine/csplugin/inc/cspcall.h
branchRCL_3
changeset 20 987c9837762f
parent 0 ff3b6d0fd310
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
       
     1 /*
       
     2 * Copyright (c) 2007-2009 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:  CSPCall for CS Call Plug-in
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CSPCALL_H
       
    21 #define CSPCALL_H
       
    22 
       
    23 #include <mccpcscall.h>
       
    24 #include <mccpcallobserver.h>
       
    25 #include <mccptransferobserver.h>
       
    26 #include <mccpforwardobserver.h>
       
    27 #include <etel.h>
       
    28 #include <etelmm.h>
       
    29 #include <cccecallparameters.h>
       
    30 
       
    31 #include "cspconsts.h"
       
    32 #include "cspetelcallrequester.h" // For the requester and TRequestType
       
    33 #include "mcspcallobserver.h"
       
    34 #include "mcspcallerrorobserver.h"
       
    35 #include "mcspuusmessageobserver.h"
       
    36 #include "mcspcallcommandhandling.h"
       
    37 
       
    38 
       
    39 class MCCPForwardProvider;
       
    40 class CSPForwardProvider;
       
    41 class CSPTransferProvider;
       
    42 class RMobileCall;
       
    43 class CSPEtelCallStatusMonitor;
       
    44 class CSPEtelCallEventMonitor;
       
    45 class CSPCallInfoMonitor;
       
    46 class CSPEtelCallCapsMonitor;
       
    47 class CSPTransferProvider;
       
    48 class CSPEtelCallCapsMonitor;
       
    49 class CSPAudioHandler;
       
    50 class MCSPCommonInfo;
       
    51 class CSPUUIMonitor;
       
    52 class CSPUUIMessageSender;
       
    53 
       
    54 
       
    55 /**
       
    56 * Call class for CS Call Plug-in. Implements the API defined by CCP in classes
       
    57 * MCCPCall and MCCPCSCall
       
    58 *
       
    59 *  @lib csplugin.dll
       
    60 */
       
    61 class CSPCall : public CBase,
       
    62                 public MCCPCSCall,
       
    63                 public MCSPCallObserver,
       
    64                 public MCSPCallErrorObserver,
       
    65                 public MCSPUUSMessageObserver,
       
    66                 public MCCPCallCommandHandling
       
    67     {
       
    68     public:
       
    69         /*
       
    70         * C++ default destructor
       
    71         */
       
    72         virtual ~CSPCall( );
       
    73        
       
    74         /** 
       
    75         * ETel call name accessor.
       
    76         * @return system wide error code
       
    77         */
       
    78         void CallName( TName& aCallName );
       
    79         
       
    80         /**
       
    81         * Sets the audio handler for the call.
       
    82         * @param aHandler audio handler
       
    83         */
       
    84         void SetAudioHandler( CSPAudioHandler* aHandler );
       
    85         
       
    86         /**
       
    87          * Security setting change notification.
       
    88          * @param aValue new value
       
    89          */
       
    90         void SecuritySettingChanged( TInt aValue );
       
    91         
       
    92         /**
       
    93          * Remote alerting tone status changed notification.
       
    94          * @param aNewStatus New remote alerting tone status.
       
    95          */
       
    96         void RemoteAlertingToneStatusChanged(
       
    97             RMmCustomAPI::TRemoteAlertingToneStatus aNewStatus );
       
    98 
       
    99         /**
       
   100          * Set iDontReportTerm flag value to ETrue.
       
   101          */
       
   102         void DontReportTerminationError();
       
   103         
       
   104 // from base class MCSPCallObserver
       
   105 
       
   106         /**
       
   107         * Updates the call event for observers.
       
   108         * @param aEvent the event to be notified
       
   109         */
       
   110         virtual void NotifyForwardEventOccurred( 
       
   111                         MCCPForwardObserver::TCCPForwardEvent aEvent );
       
   112 
       
   113         /**
       
   114         * Updates the state change and forwards the state for observer.
       
   115         * @param aState new state (ETel) of the call 
       
   116         */
       
   117         virtual void NotifyCallStateChangedETel( 
       
   118             RMobileCall::TMobileCallStatus aState );
       
   119 
       
   120         /**
       
   121         * Updates the call event for observers.
       
   122         * @param aEvent the event to be notified
       
   123         */
       
   124         virtual void NotifyCallEventOccurred( 
       
   125             MCCPCallObserver::TCCPCallEvent aEvent );
       
   126 
       
   127         /**
       
   128         * Updates the transfer event for observers.
       
   129         * @param aEvent the event to be notified
       
   130         */
       
   131         virtual void NotifyTransferCallEventOccurred( 
       
   132                         MCCPTransferObserver::TCCPTransferEvent aEvent );
       
   133         
       
   134         /**
       
   135         * Notifies changed call capabilities.
       
   136         * @param aCapsFlags new capability flags
       
   137         */
       
   138 
       
   139         virtual void CallCapsChanged( const TUint32 aCapsFlags );
       
   140         
       
   141 // from base class MCSPCallErrorObserver        
       
   142     
       
   143         /**
       
   144         * From MCSPCallErrorObserver
       
   145         * Dial request failed notification.
       
   146         * @param aErrorCode request failing error code
       
   147         */
       
   148         void DialRequestFailed( TInt aErrorCode );
       
   149 
       
   150         /**
       
   151         * From MCSPCallErrorObserver
       
   152         * Emergency dial request failed notification.
       
   153         * @param aErrorCode request failing error code
       
   154         */
       
   155         void EmergencyDialRequestFailed( TInt aErrorCode );
       
   156         
       
   157         /**
       
   158         * From MCSPCallErrorObserver
       
   159         * Notifies about error situation for CCE.
       
   160         */
       
   161         virtual void NotifyErrorOccurred( TCCPError aError );
       
   162 
       
   163 // from base class MCSPUUSMessageObserver
       
   164         
       
   165         /**
       
   166         * From MCSPUUSMessageObserver
       
   167         * UUS message received notification. 
       
   168         */
       
   169         void UUSMessageReceived( TDesC& aMessage );        
       
   170         
       
   171 // from base class MCCPCSCall
       
   172 
       
   173         /**
       
   174         * From MCCPCSCall
       
   175         * Returns call information
       
   176         * @param aCallInfo TMobileCallInfoV3
       
   177         * @return KErrNone if succesfull
       
   178         *         otherwise another system wide error code
       
   179         */
       
   180         virtual TInt GetMobileCallInfo( TDes8& aCallInfo ) const;
       
   181 
       
   182         /**
       
   183         * From MCCPCSCall
       
   184         * Gets the calls data call capabilities
       
   185         * @param aCaps TMobileCallDataCapsV1
       
   186         * @return KErrNone if the function member was successful, 
       
   187         *        KErrNotSupported if call doesn't support circuit switched data
       
   188         *        KErrNotFound if this call is not a data call
       
   189         */
       
   190         virtual TInt GetMobileDataCallCaps( TDes8& aCaps ) const;
       
   191 
       
   192 // from base class MCCPCall
       
   193         
       
   194         /**
       
   195         * From MCCPCall
       
   196         * Answers to an incoming call.
       
   197         * @return system wide error code
       
   198         */
       
   199         virtual TInt Answer();
       
   200 
       
   201         /**
       
   202         * From MCCPCall
       
   203         * Rejects an incoming call.
       
   204         * @return system wide error code
       
   205         */
       
   206         virtual TInt Reject();
       
   207 
       
   208         /**
       
   209         * From MCCPCall
       
   210         * Reguests plug-in to queue the call.     
       
   211         * @return system wide error code    
       
   212         */
       
   213         virtual TInt Queue();
       
   214 
       
   215         /**
       
   216         * From MCCPCall
       
   217         * Starts dialing to remote party
       
   218         * @return system wide error code
       
   219         */
       
   220         virtual TInt Dial();
       
   221         
       
   222         /**
       
   223         * From MCCPCSCall
       
   224         * Starts dialing to recipient
       
   225         * @param aCallParams Call parameters used 
       
   226         *   by the TSY (TCallParamsPckg)
       
   227         * @return system wide error code
       
   228         */
       
   229         TInt Dial( const TDesC8& aCallParams );
       
   230 
       
   231         /**
       
   232         * From MCCPCall
       
   233         * Call is ringning
       
   234         * @return system wide error code
       
   235         */
       
   236         virtual TInt Ringing();
       
   237 
       
   238         /**
       
   239         * From MCCPCall
       
   240         * Ends an ongoing call.
       
   241         * @return system wide error code
       
   242         */
       
   243         virtual TInt HangUp();
       
   244 
       
   245         /**
       
   246         * From MCCPCall
       
   247         * Cancels the ongoing request
       
   248         * @return system wide error code
       
   249         */
       
   250         virtual TInt Cancel();
       
   251 
       
   252         /**
       
   253         * From MCCPCall
       
   254         * Puts the specified call on hold.
       
   255         * @return system wide error code
       
   256         */
       
   257         virtual TInt Hold();
       
   258 
       
   259         /**
       
   260         * From MCCPCall
       
   261         * Resumes the call.
       
   262         * @return system wide error code
       
   263         */
       
   264         virtual TInt Resume();
       
   265 
       
   266         /**
       
   267         * From MCCPCall
       
   268         * Swaps a connected call to its opposite state either active or on hold
       
   269         * @return system wide error code
       
   270         */
       
   271         virtual TInt Swap();
       
   272 
       
   273         /**
       
   274         * From MCCPCall
       
   275         * Returns the remote party of the call.
       
   276         * @return remote party address,
       
   277         */
       
   278         const TDesC& RemoteParty() const;
       
   279 
       
   280         /**
       
   281         * From MCCPCall
       
   282         * Returns the remote party name of the call.
       
   283         * @return remote party name
       
   284         */
       
   285         const TDesC& RemotePartyName();
       
   286 
       
   287         /**
       
   288         * From MCCPCall
       
   289         * Dialled party.
       
   290         * @return dialled party name
       
   291         */
       
   292         const TDesC& DialledParty() const;
       
   293 
       
   294         /**
       
   295         * From MCCPCall
       
   296         * Return boolean value if the incoming call is forwarded or not.
       
   297         * @return ETrue if call is forwarded, else EFalse
       
   298         */
       
   299         virtual TBool IsCallForwarded() const;
       
   300 
       
   301         /**
       
   302         * From MCCPCall
       
   303         * Returns boolean value if the call is mobile originated or not.
       
   304         * @return ETrue if call is mobile originated, otherwise EFalse
       
   305         */
       
   306         virtual TBool IsMobileOriginated() const;
       
   307 
       
   308         /**
       
   309         * From MCCPCall
       
   310         * Returns the state of the call.
       
   311         * @return TCCPCallState The current state of the call
       
   312         */
       
   313         virtual MCCPCallObserver::TCCPCallState State() const;
       
   314 
       
   315         /**
       
   316         * From MCCPCall
       
   317         * Returns TUid of the plug-in used for this call
       
   318         * @return TUid Implementation UID of the Plug-In
       
   319         */
       
   320         virtual TUid Uid() const;
       
   321 
       
   322         /**
       
   323         * From MCCPCall
       
   324         * Returns call control caps for this call
       
   325         * @return call capability information
       
   326         */
       
   327         virtual MCCPCallObserver::TCCPCallControlCaps Caps( ) const;
       
   328 
       
   329         /**
       
   330         * From MCCPCall
       
   331         * Get call's secure status.
       
   332         * @return TBool ETrue if security is enabled, else EFalse.
       
   333         */
       
   334         virtual TBool IsSecured() const;
       
   335 
       
   336         /**
       
   337         * From MCCPCall 
       
   338         * Get call's secure specified status.
       
   339         * @return TBool ETrue if secure specified 
       
   340         */
       
   341         virtual TBool SecureSpecified() const;
       
   342 
       
   343         /**
       
   344         * From MCCPCall  
       
   345         * Set call parameters.
       
   346         * @param aNewParams New call paramater information.
       
   347         */
       
   348         virtual void SetParameters( const CCCPCallParameters& aNewParams );
       
   349         
       
   350         /**
       
   351         * From MCCPCall 
       
   352         * Cet call parameters.
       
   353         * @return Current call paramater information.
       
   354         */
       
   355         virtual const CCCPCallParameters& Parameters() const;
       
   356 
       
   357         /**
       
   358         * From MCCPCall 
       
   359         * Get Forward provider
       
   360         * @param aObserver - observer class for forward events
       
   361         * @return Pointer to MCCPForwardProvider if succesfull, NULL if not available
       
   362         * @leave on error case system error code
       
   363         */
       
   364         virtual MCCPForwardProvider* ForwardProviderL( const MCCPForwardObserver& aObserver );
       
   365 
       
   366         /**
       
   367         * From MCCPCall 
       
   368         * Get Call transfer provider
       
   369         * @param aObserver - observer class for transfer events
       
   370         * @return Pointer to MCCPTransferProvider if succesfull, NULL if not available
       
   371         * @leave on error case system error code
       
   372         */
       
   373         virtual MCCPTransferProvider* TransferProviderL( const MCCPTransferObserver& aObserver );
       
   374           
       
   375         /**
       
   376         * From MCCPCall  
       
   377         * Adds a new observer for MCCECall object. Called in MT call case. In MO 
       
   378         * case observer will be given at call construction.
       
   379         * Plug-in dependent feature if duplicates or more than one observers 
       
   380         * are allowed or not. Currently CCE will set only one observer.
       
   381         * @param aObserver Observer
       
   382         * @leave system error if observer adding fails
       
   383         */
       
   384         virtual void AddObserverL( const MCCPCallObserver& aObserver );
       
   385 
       
   386         /**
       
   387         * From MCCPCall  
       
   388         * Remove an observer.
       
   389         * @param aObserver Observer
       
   390         * @return KErrNone if removed succesfully. KErrNotFound if observer was not found.
       
   391         * Any other system error depending on the error.
       
   392         */
       
   393         virtual TInt RemoveObserver( const MCCPCallObserver& aObserver );
       
   394         
       
   395         /**
       
   396         * From MCCPCall 
       
   397         * Returns the inband tone associated to an error condition or a state transition of a call.
       
   398         * See defenition for TCCPTone.
       
   399         * @since S60 3.2
       
   400         * @param None.
       
   401         * @return TCCPTone Used tone.
       
   402         */
       
   403         TCCPTone Tone() const;
       
   404 
       
   405 // from base class MCCPCSCall
       
   406         
       
   407         /**
       
   408         * From MCCPCSCall
       
   409         * Indicates that FDN check is not used for dial.
       
   410         */
       
   411         virtual void NoFDNCheck( );
       
   412         
       
   413         /**
       
   414         * From MCCPCSCall 
       
   415         * Log dialed  number. SAT related, check if dialed number is to be logged or not.
       
   416         * @since S60 5.0
       
   417         * @param None
       
   418         * @return Log dialed number or not.
       
   419         */
       
   420         virtual TBool LogDialedNumber() const;
       
   421     
       
   422 // from base class MCCPCallCommandHandling
       
   423         
       
   424         /**
       
   425         * Perform answer command.
       
   426         * @return system wide error code
       
   427         */
       
   428         TInt PerformAnswerRequest();
       
   429         
       
   430         /**
       
   431         * Perform dial command.
       
   432         * @return system wide error code
       
   433         */
       
   434         TInt PerformDialRequest();
       
   435         
       
   436     protected:
       
   437             
       
   438         /**
       
   439         * Starts dialing to recipient.
       
   440         * Bypasses FDN check according to aFdnCheck.
       
   441         * @param aFdnCheck True if FDN checking is used
       
   442         * @return system wide error code
       
   443         */
       
   444         virtual TInt DialFdnCond( TBool aFdnCheck ) = 0;
       
   445                 
       
   446     protected:
       
   447     
       
   448         /**
       
   449         * C++ default constructor.  
       
   450         * 
       
   451         * @param aLine line of the call 
       
   452         * @param aMobileOriginated is call mobile originated 
       
   453         * @param aName contains call name (mobile terminated) or phone number (mobile originated)
       
   454         * @param aCommonInfo reference to common info interface 
       
   455         * @param aIsEmergencyCall is emergency call 
       
   456         */
       
   457         CSPCall(  RMobileLine& aLine, 
       
   458                   TBool aMobileOriginated,
       
   459                   const TDesC& aName,
       
   460                   MCSPCommonInfo& aCommonInfo,
       
   461                   TBool aIsEmergencyCall );
       
   462                   
       
   463         /*
       
   464         * Constructing 2nd phase.
       
   465         * @param aParams call parameters  
       
   466         */
       
   467         virtual void ConstructL( const CCCECallParameters& aParams );
       
   468         
       
   469         /*
       
   470         * Notifies the ringing state to observers.
       
   471         */
       
   472         virtual void NotifyRingingState();
       
   473         
       
   474         /**
       
   475         * Mapping ETel state to CCP state.
       
   476         * @param aEtelState an ETel state
       
   477         * @return corresponding CCP state
       
   478         */
       
   479         MCCPCallObserver::TCCPCallState 
       
   480             CSPCall::CCPStateFromETelState(
       
   481                 RMobileCall::TMobileCallStatus aEtelState );
       
   482                 
       
   483         /**
       
   484         * From MCSPCallObserver 
       
   485         * Updates the state change including inband tones 
       
   486         * played by network and forwards the state for observer.
       
   487         * @param aState new state of the call
       
   488         */
       
   489         virtual void NotifyCallStateChangedWithInband( 
       
   490             MCCPCallObserver::TCCPCallState aState );
       
   491 
       
   492         /**
       
   493         * Updates the state change 
       
   494         * and forwards the state for observer.
       
   495         * @param aState new state of the call
       
   496         */
       
   497         virtual void NotifyCallStateChanged( 
       
   498             MCCPCallObserver::TCCPCallState aState );
       
   499             
       
   500         /**
       
   501         * From MCSPCallObserver
       
   502         * Notify that remote party info has changed.        
       
   503         * @param aRemotePartyName new remote party name
       
   504         * @param aRemotePartyNumber new remote party number
       
   505         */
       
   506         virtual void NotifyRemotePartyInfoChanged(                
       
   507             const TDesC& aRemotePartyName,
       
   508             const TDesC& aRemotePartyNumber );
       
   509 
       
   510         /**
       
   511         * Open call handle.  
       
   512         * Opens a new call handle for MO call  
       
   513         * and an existing handle for MT call.    
       
   514         */
       
   515         virtual void OpenCallHandleL();
       
   516 
       
   517         /**
       
   518         * Update call info data including call name,  
       
   519         * remote name and number data.  
       
   520         */
       
   521         virtual void UpdateCallInfo();
       
   522         
       
   523         /**
       
   524          * Implementation for UpdateCallInfo().       
       
   525          */
       
   526         virtual void UpdateCallInfoImpl( RMobileCall::TMobileCallInfoV7 aCallInfo );
       
   527         
       
   528         /**
       
   529          * Set call origin to CCCECallParameters.       
       
   530          */
       
   531         virtual void UpdateCallOrigin( RMobileCall::TMobileCallInfoV7 aCallInfo );
       
   532         
       
   533         /**
       
   534         * Reads information from cenrep.
       
   535         * @param aUid CR Uid
       
   536         * @param aKey CR key
       
   537         * @param aVal value of key, output
       
   538         */
       
   539         void ReadRepositoryL( TUid aUid, TUint aKey, TInt& aVal);
       
   540 
       
   541         /**
       
   542         * Check and notify call termination error.
       
   543         */
       
   544         void CheckAndNotifyTerminationError();
       
   545         
       
   546         /**
       
   547         * Error from iExitCode.
       
   548         */
       
   549         TInt ExitCodeError() const;
       
   550         
       
   551         /**
       
   552         * Update call name number info.   
       
   553         * @param aCallInfo RMobileCall::TMobileCallInfoV3
       
   554         * @param aCallCreatedByMonitor, set:  
       
   555         *       EFalse for calls added by plugin owner
       
   556         *       ETrue for calls added by ETel status monitor  
       
   557         */
       
   558         void UpdateCallNameNumberInfo(
       
   559                 RMobileCall::TMobileCallInfoV3& aCallInfo, 
       
   560                 TBool aCallAddedByMonitor ); 
       
   561 
       
   562         /**
       
   563         * Open new call.
       
   564         * New call is opened when the plugin owner adds the new 
       
   565         * call (compare to OpenExistingCall where call is added by 
       
   566         * ETel monitor).  
       
   567         */
       
   568         void OpenNewCall(); 
       
   569 
       
   570         /**
       
   571         * Open existing call.
       
   572         * Existing call is opened if one of the ETel
       
   573         * monitors (incoming call monitor or line status monitor) 
       
   574         * has added the call and no new call needs to be 
       
   575         * opened.    
       
   576         * @param aName name of the existing call   
       
   577         */
       
   578         void OpenExistingCallL( const TDesC& aName ); 
       
   579         
       
   580     private:
       
   581 
       
   582         /**
       
   583         * Create call handlers for call requests and for 
       
   584         * monitoring call events.   
       
   585         */
       
   586         void CreateCallHandlersL();
       
   587         
       
   588         /**
       
   589         * Update call state from ETel
       
   590         * @return system wide error code 
       
   591         */
       
   592         int UpdateCallState();
       
   593         
       
   594         /**
       
   595          * Sends a remote party info changed notification
       
   596          * if the remote party number has changed. 
       
   597          */
       
   598         void NotifyRemotePartyNumberChanged();
       
   599 
       
   600 	private: 
       
   601 
       
   602         enum TCSPCallAudioStatus {
       
   603             ECSPCallAudioStatusInactive,
       
   604             ECSPCallAudioStatusActive
       
   605             };
       
   606 
       
   607     protected:
       
   608 
       
   609           /**
       
   610           * CCP Call Observer array.
       
   611           */
       
   612           RPointerArray<MCCPCallObserver> iObservers;
       
   613           
       
   614           /**
       
   615           * Actual ETel call handle.
       
   616           */
       
   617           RMobileCall iCall;
       
   618 
       
   619           /**
       
   620           * ETel line
       
   621           */
       
   622           RMobileLine& iLine;
       
   623 
       
   624           /**
       
   625           * Determines if the call direction is either MO (ETrue) or MT (EFalse)
       
   626           */
       
   627           TBool iMobileOriginated;  
       
   628 
       
   629           /**
       
   630           * Name information of the call.
       
   631           * 
       
   632           * Name information is stored during CSPCall construction
       
   633           * and assigned to iCallName (MT or client call) or 
       
   634           * iRemotePartyNumber (MO call) afterwards.    
       
   635           */
       
   636           TBuf<KCSPPhoneNumberMaxLength> iName;
       
   637           
       
   638           /**
       
   639           * Remote party name of the call.
       
   640           */
       
   641           TBuf<KCSPPhoneNumberMaxLength> iRemotePartyNumber;
       
   642           
       
   643           /**
       
   644           * Remote party name of the call.
       
   645           */
       
   646           TBuf<KCSPCallingNameMaxLength> iRemotePartyName;
       
   647 
       
   648           /**
       
   649           * Dialled party of the call.
       
   650           */
       
   651           TBuf<KCSPPhoneNumberMaxLength> iDialledParty;
       
   652           
       
   653           /**
       
   654           * Call name for MT call.
       
   655           */
       
   656           TName iCallName;
       
   657 
       
   658           /**
       
   659           * Call parameters.
       
   660           */      
       
   661           CCCECallParameters* iParams; 
       
   662          
       
   663           /**
       
   664           * Call state in CCP format
       
   665           */
       
   666           MCCPCallObserver::TCCPCallState iCallState;
       
   667           
       
   668           /**
       
   669           * Capability flags.
       
   670           */
       
   671           TUint32 iCapsFlags;
       
   672 
       
   673           /**
       
   674           * Call status monitor
       
   675           */
       
   676           CSPEtelCallStatusMonitor* iCallStatusMonitor;
       
   677             
       
   678           /**
       
   679           * Call event monitor
       
   680           */
       
   681           CSPEtelCallEventMonitor* iCallEventMonitor;
       
   682           
       
   683           /**
       
   684           * Call info monitor
       
   685           */
       
   686           CSPCallInfoMonitor* iCallInfoMonitor;
       
   687           
       
   688           /**
       
   689           * Makes the asynchronic requests for various purposes.
       
   690           */
       
   691           CSPEtelCallRequester* iRequester;
       
   692 
       
   693           /**
       
   694           * Dial completion code.
       
   695           */
       
   696           TInt iDialCompletionCode;
       
   697 
       
   698           /**
       
   699            * Common information for calls.
       
   700            */
       
   701            MCSPCommonInfo& iCommonInfo;
       
   702 
       
   703           /**
       
   704           * Call termination error notification has been sent.
       
   705           */
       
   706           TBool iTerminationErrorNotified;
       
   707           
       
   708           /**
       
   709           * Emergency call.
       
   710           */
       
   711           TBool iIsEmergencyCall;
       
   712     
       
   713     private:
       
   714         
       
   715           /**
       
   716           * Transfer provider.
       
   717           * Own.
       
   718           */
       
   719           CSPTransferProvider* iTransferProvider;
       
   720           
       
   721           /**
       
   722           * Forward provider. No actual implementation.
       
   723           * Own.
       
   724           */          
       
   725           CSPForwardProvider* iForwardProvider;
       
   726           
       
   727           /**
       
   728           * Audio dev sound handler.
       
   729           * Not own.
       
   730           */
       
   731           CSPAudioHandler* iAudioHandler;
       
   732           
       
   733           /**
       
   734           * FDN check usage status. Default is on. (ETrue)
       
   735           */
       
   736           TBool iFdnCheck;          
       
   737           
       
   738           /**
       
   739           * Monitors call capabilities from ETel.
       
   740           * Own.
       
   741           */
       
   742           CSPEtelCallCapsMonitor* iCallCapsMonitor;
       
   743                     
       
   744           /*  
       
   745           * UUS monitor
       
   746           */          
       
   747           CSPUUIMonitor* iUUIMonitor;
       
   748           
       
   749           /*  
       
   750           * UUS sender
       
   751           */
       
   752           CSPUUIMessageSender* iUUIMessageSender;
       
   753           
       
   754           /**
       
   755           * Data for parsed skype id.
       
   756           * Own.
       
   757           */
       
   758           HBufC* iSkypeId;
       
   759           
       
   760           /**
       
   761           * Audio stop requested status. The flag prevents double audio stop.
       
   762           * Stop is executed in Disconnecting state and Idle state 
       
   763           * if previous state has been DisconnectingWithInband.
       
   764           * Audio start status.
       
   765           */
       
   766           TCSPCallAudioStatus iAudioStatus;
       
   767           
       
   768           /**
       
   769           * Defines whether to report KErrGsmCCNormalUnspecified
       
   770           * and KErrGsmCCCallRejected.
       
   771           */
       
   772           TBool iDontReportTerm;
       
   773           
       
   774           /**
       
   775            * User to user information. Sended to network before dial.
       
   776            * Own.
       
   777            */
       
   778           HBufC* iUserToUserInformation;
       
   779           
       
   780           friend class UT_CSPCall;
       
   781           friend class MT_CConvergedCallProvider;
       
   782           
       
   783           
       
   784     };
       
   785 
       
   786 
       
   787 #endif // CSPCALL_H