telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmcalltsy.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
child 42 3adadc800673
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 /*
       
     2 * Copyright (c) 2006-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:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CMMCALLTSY_H
       
    21 #define CMMCALLTSY_H
       
    22 
       
    23 //INCLUDES
       
    24 #include <et_phone.h>
       
    25 #include <etelmm.h>
       
    26 #include "MmTsy_timeoutdefs.h"
       
    27 #include <ctsy/tflogger.h>
       
    28 
       
    29 // FORWARD DECLARATIONS
       
    30 class CMmPhoneTsy;
       
    31 class CMmLineTsy;
       
    32 class CMmCallExtInterface;
       
    33 class CAcquireOwnerList;
       
    34 class CHeartbeatRunner;
       
    35 class CMmTsyReqHandleStore;
       
    36 class CMmMessageManagerBase;
       
    37 class CMmDataPackage;
       
    38 class MTelephonyAudioControl;
       
    39 
       
    40 // CLASS DECLARATION
       
    41 
       
    42 /**
       
    43  *  CMmCallTsy contains extended call functionality that is not mode-dependent
       
    44  */
       
    45 NONSHARABLE_CLASS( CMmCallTsy ) : public CCallBase
       
    46     {
       
    47     public: // Enumerations
       
    48     
       
    49         /**Enumeration for TSY request handle types*/
       
    50         enum TCallRequestTypes
       
    51             {
       
    52             EMultimodeCallReqHandleUnknown, //0
       
    53             EMultimodeCallNotifyStatusChange, 
       
    54             EMultimodeCallNotifyDurationChange,
       
    55             EMultimodeCallCapsChangeNotification,
       
    56             EMultimodeCallDial, 
       
    57             EMultimodeCallAnswer, //5
       
    58             EMultimodeCallHangUp,
       
    59             EMultimodeMobileCallHold,
       
    60             EMultimodeMobileCallResume,
       
    61             EMultimodeMobileCallSwap,
       
    62             EMultimodeCallNotifyMobileCallStatusChange, //10
       
    63             EMultimodeCallNotifyCallEvent,
       
    64             EMultimodeCallNotifyRemotePartyInfoChange,
       
    65             EMultimodeMobileCallDialEmergencyCall,
       
    66             EMultimodeMobileCallDeflectCall,
       
    67             EMultimodeCallNotifyMobileCallCapsChange, //15
       
    68             EMultimodeCallTransfer, 
       
    69             EMultimodeCallGoOneToOne,
       
    70             EMultimodeCallNotifyDataCallCapsChange,
       
    71             EMultimodeCallSetDynamicHscsdParams,  
       
    72             EMultimodeCallNotifyHscsdInfoChange, //20
       
    73             EMultimodeCallNotifyPrivacyConfirmation, //21
       
    74             EMultimodeCallDialISV,
       
    75             EMultimodeCallAnswerISV,
       
    76             EMultimodeCallActiveUUS,
       
    77             EMultimodeCallReceiveUUI,//25
       
    78             EMultimodeCallDialNoFdnCheck, //26
       
    79             // NOTE!: Declare constant for those requests that need
       
    80             // own request handle record in iTsyReqHandleStore above the
       
    81             // following!
       
    82             EMultimodeCallMaxNumOfRequests       
       
    83             };
       
    84 
       
    85         /**Enumeration for Dial Cancel*/
       
    86         enum TDialCancelStatus
       
    87             {
       
    88             EDialCancelNotCalled,
       
    89             EDialCancelCallCalled,
       
    90             EDialCancelCustomCalled
       
    91             };
       
    92 
       
    93     public:  // Constructors and destructor
       
    94         
       
    95         /**
       
    96          * Destructor.
       
    97          */
       
    98         virtual ~CMmCallTsy();
       
    99 
       
   100     public: // New functions
       
   101 
       
   102         /**
       
   103          * Returns pointer to the Phone object
       
   104          *          
       
   105          *
       
   106          * @return Pointer to the Phone object
       
   107          */
       
   108         CMmPhoneTsy* Phone();
       
   109 
       
   110         /**
       
   111          * Returns Line object from which this call was opened.
       
   112          *          
       
   113          *
       
   114          * @return Pointer to the Line object
       
   115          */
       
   116         CMmLineTsy* Line();
       
   117 
       
   118         /**
       
   119          * Returns currently active call extension
       
   120          *          
       
   121          *
       
   122          * @return CMmCallExtInterface* Pointer to the call extension
       
   123          */
       
   124         CMmCallExtInterface* ActiveCallExtension();
       
   125 
       
   126         /**
       
   127          * Complete dial request
       
   128          *          
       
   129          *
       
   130          * @param aResult Result of the request
       
   131          */
       
   132         virtual void CompleteDial( TInt aResult );
       
   133 
       
   134         /**
       
   135          * Complete hang up
       
   136          *          
       
   137          *
       
   138          * @param aResult Result of the request
       
   139          */
       
   140         virtual void CompleteHangUp( TInt aResult );
       
   141 
       
   142         /**
       
   143          * Complete answering to the incoming call
       
   144          *          
       
   145          *
       
   146          * @param aResult Result of the request
       
   147          */
       
   148         virtual void CompleteAnswerIncomingCall( TInt aResult );
       
   149 
       
   150         /**
       
   151          * Complete status change notification
       
   152          *          
       
   153          *
       
   154          * @param aResult Result of the request
       
   155          * @param aDataPackage: new call status value
       
   156          */
       
   157         virtual void CompleteNotifyStatusChange( TInt aResult, 
       
   158             CMmDataPackage* aDataPackage ) = 0;
       
   159 
       
   160         /**
       
   161          * Complete mobile call information change notification
       
   162          *          
       
   163          *
       
   164          * @param aDataPackage: new call information
       
   165          */
       
   166         void CompleteNotifyMobileCallInfoChange( 
       
   167             CMmDataPackage* aDataPackage );
       
   168 
       
   169         /**
       
   170          * This method completes NotifyRemotePartyInfoChange notification
       
   171          *          
       
   172          *
       
   173          */
       
   174         void CompleteNotifyRemotePartyInfoChange();
       
   175 
       
   176         /**
       
   177          * This method completes call event initiated by remote party
       
   178          *          
       
   179          *
       
   180          * @param aDataPackage: remote event
       
   181          */
       
   182         void CompleteNotifyRemoteCallEvent( 
       
   183             const CMmDataPackage* aPackage );
       
   184 
       
   185         /**
       
   186          * Complete a NotifyMobileCallCapsChange method
       
   187          *          
       
   188          *
       
   189          * @param aErrorCode Error code
       
   190          */
       
   191         void CompleteNotifyMobileCallCapsChange( TInt aErrorCode );
       
   192 
       
   193         /**
       
   194          * Complete call duration change notification
       
   195          *          
       
   196          *
       
   197          */
       
   198         void CompleteNotifyCallDurationChange();
       
   199 
       
   200         /**
       
   201          * This method completes privacy confirmation notification
       
   202          *          
       
   203          *
       
   204          * @param aStatus privacy value
       
   205          */
       
   206         void CompleteNotifyPrivacyConfirmation( 
       
   207             RMobilePhone::TMobilePhonePrivacy aStatus );
       
   208 
       
   209         /**
       
   210          * Completes call transfering
       
   211          *          
       
   212          *
       
   213          * @param aErrorCode Error code
       
   214          */
       
   215         void CompleteTransfer( TInt aErrorCode );
       
   216 
       
   217         /**
       
   218          * Fills current parameters of mobile call info 
       
   219          *          
       
   220          *
       
   221          * @param aInfo Pointer to mobile call information
       
   222          * @return TInt Return value to ETel server
       
   223          */
       
   224         virtual TInt FillMobileCallInfo( TDes8* aInfo );
       
   225         
       
   226         /**
       
   227          * Fills current parameters of mobile call info 
       
   228          *          
       
   229          *
       
   230          * @param aInfo Pointer to mobile call information
       
   231          * @return TInt Return value to ETel server
       
   232          */
       
   233         TInt FillMobileCallInfoDefaults( RMobileCall::TMobileCallInfoV1* aInfo );
       
   234 
       
   235 
       
   236         /**
       
   237          * Get call name
       
   238          *          
       
   239          *
       
   240          * return Call name
       
   241          */
       
   242         const TDesC& CallName() const;
       
   243 
       
   244         /**
       
   245          * Get call ID
       
   246          *          
       
   247          *
       
   248          * @return Call Id 
       
   249          */
       
   250         TInt CallId() const;
       
   251         
       
   252         /**
       
   253          * Set call ID
       
   254          *          
       
   255          *
       
   256          * @param aCallId Call ID
       
   257          * @return Success/failure value.
       
   258          */
       
   259         TInt SetCallId( TInt aCallId );
       
   260 
       
   261         /**
       
   262          * Set call Status
       
   263          *          
       
   264          *
       
   265          * @param aCallStatus: Core call status
       
   266          * @param aMobileCallStatus: Call status
       
   267          */
       
   268         void SetCallStatus(
       
   269             RCall::TStatus aCallStatus,
       
   270             RMobileCall::TMobileCallStatus aMobileCallStatus );
       
   271 
       
   272         /**
       
   273          * Returns call ID of the previous active call
       
   274          *          
       
   275          *
       
   276          * @return Call Id of the previous active call
       
   277          */
       
   278         TInt PreviousCallId() const;
       
   279 
       
   280         /**
       
   281          * Resets call ID of the previous active call
       
   282          *          
       
   283          *
       
   284          */
       
   285         void ResetPreviousCallId();
       
   286 
       
   287         /**
       
   288          * Get call mode
       
   289          *          
       
   290          *
       
   291          * return  Call mode
       
   292          */
       
   293         RMobilePhone::TMobileService CallMode() const;
       
   294 
       
   295         /**
       
   296          * Returns call status. For use inside the TSY
       
   297          *          
       
   298          *
       
   299          * return Call core status
       
   300          */        
       
   301         RCall::TStatus Status() const;
       
   302 
       
   303         /**
       
   304          * Returns mobile call status. For use inside the TSY
       
   305          *          
       
   306          *
       
   307          * @return Current mobile call status
       
   308          */
       
   309         RMobileCall::TMobileCallStatus MobileCallStatus() const;
       
   310 
       
   311         /** 
       
   312          * Returns call direction 
       
   313          *          
       
   314          *
       
   315          * return Call direction (MO/MT call)
       
   316          */ 
       
   317         RMobileCall::TMobileCallDirection CallDirection() const; 
       
   318 
       
   319         /**
       
   320          * Sets call direction
       
   321          *          
       
   322          *
       
   323          * @param aCallDirection Call direction (MO/MT call)
       
   324          * @return Success/failure value
       
   325          */
       
   326         TInt SetCallDirection( 
       
   327             RMobileCall::TMobileCallDirection aCallDirection );
       
   328 
       
   329         /**
       
   330          * Returns call capabilities
       
   331          *          
       
   332          *
       
   333          * @return Call capabilities
       
   334          */
       
   335         TUint32 CallCaps() const;
       
   336 
       
   337         /**
       
   338          * Sets call capabilities
       
   339          *          
       
   340          *
       
   341          * @param Call capabilities
       
   342          */
       
   343         void SetCallCaps( TUint32 aCallCaps );
       
   344 
       
   345         /**
       
   346          * Returns value or internal attribute iGhostCall
       
   347          *          
       
   348          *
       
   349          * @return Value of iGhostCall
       
   350          */
       
   351         TBool GetGhostCall() const;
       
   352 
       
   353         /**
       
   354          * Returns ETrue if this service is pending on this call object
       
   355          *
       
   356          *          
       
   357          * @param aReqType Type of request
       
   358          * @return requested or not from this call object.
       
   359          */
       
   360         TBool ServiceRequested( CMmCallTsy::TCallRequestTypes aReqType );
       
   361 
       
   362         /**
       
   363          * Sets a flag that indicates if this call is not created through ETel
       
   364          *          
       
   365          *
       
   366          * @param aValue Ghost call or not
       
   367          */
       
   368         void SetGhostCall( TBool aValue );
       
   369 
       
   370         /**
       
   371          * Handles call status change indications of ghost calls
       
   372          *          
       
   373          *
       
   374          * @param aResult Result value of the status change
       
   375          * @param aDataPackage Package containing new call status
       
   376          */
       
   377         void HandleGhostCallStatusChange (
       
   378             TInt aResult,
       
   379             CMmDataPackage* aDataPackage );
       
   380 
       
   381         /**
       
   382          * Sets the value of the attribute iDiagnosticOctet
       
   383          *          
       
   384          *
       
   385          * @param aDiagnosticOctect SS diagnostic octet value
       
   386          */
       
   387         void SetDiagnostics ( TUint8 aDiagnosticOctet );
       
   388 
       
   389         /**
       
   390          * Returns value or internal attribute iDiagnosticOctect
       
   391          *          
       
   392          *         
       
   393          * @return Value of iDiagnosticOctect
       
   394          */
       
   395         TUint8 GetDiagnostics () const;
       
   396 
       
   397         /**
       
   398          * Return ETrue if this type of request is requested by any of TSY's 
       
   399          * client
       
   400          *          
       
   401          *
       
   402          * @param aReqType Type of request
       
   403          * @return Locally requested or not.
       
   404          */
       
   405         TBool IsServiceLocallyRequested( CMmCallTsy::TCallRequestTypes aReqType );
       
   406 
       
   407         /**
       
   408          * Set flag that indicates if client has opened existing call object 
       
   409          * for incoming call or ghost call that is created using AT-commands.
       
   410          *          
       
   411          *
       
   412          * @param aIsUnownedGhostCall Is this unowned ghost call object
       
   413          */
       
   414         void SetUnownedCallObjectFlag( TBool aIsUnownedCallObject );
       
   415 
       
   416         /**
       
   417          * Returns iUnownedCallObject boolean that indicates if client has  
       
   418          * opened existing call object for incoming call or ghost call that 
       
   419          * is created using AT-commands.
       
   420          *          
       
   421          *
       
   422          * @return Value of iUnownedGhostCall boolean
       
   423          */
       
   424         TBool IsUnownedCallObject() const;
       
   425 
       
   426         /**
       
   427          * Returns ETrue if this call was originated through ETel API
       
   428          *          
       
   429          *
       
   430          * @return Value of iEtelOriginated boolean
       
   431          */
       
   432         TBool ETelOriginated() const;
       
   433 
       
   434         /** 
       
   435          * Returns ETrue if this call is part of a MO conference
       
   436          * (does not apply to an externally controlled conference call)
       
   437          *          
       
   438          *
       
   439          * @return Value of iIsPartOfConference boolean
       
   440          */
       
   441         TBool IsPartOfConference() const;
       
   442 
       
   443         /** 
       
   444          * Sets the flag indicating that this call is part of a MO conference
       
   445          * (does not apply to an externally controlled conference call)
       
   446          *          
       
   447          *
       
   448          * @param Is call part of conference
       
   449          */
       
   450         void SetPartOfConference( TBool aPartOfConference );
       
   451 
       
   452         /**
       
   453          * Completes DialNoFdnCheck request
       
   454          *          
       
   455          *
       
   456          * @param aResult Result of the request
       
   457          */
       
   458         virtual void CompleteDialNoFdn( TInt aResult );
       
   459 
       
   460         /** 
       
   461          * Sets Dialflag value indicating if call is in dialling state
       
   462          *          
       
   463          *
       
   464          * @param TBool is dial ongoing
       
   465          */
       
   466 		virtual void SetDialFlag( TBool aDialFlag );
       
   467 		
       
   468 		/** 
       
   469          * Returns Dialflag value indicating if call is in dialling state
       
   470          *          
       
   471          *
       
   472          * @return is dial ongoing
       
   473          */
       
   474         virtual	TBool GetDialFlag();
       
   475 		
       
   476 #ifdef REQHANDLE_TIMER
       
   477         /**
       
   478          * Calls the appropriate complete method due timer expiration
       
   479          *          
       
   480          *
       
   481          * @param aReqHandleType TSY request handle type.
       
   482          * @param aError Error value for completion
       
   483          */
       
   484         virtual void Complete( TInt aReqHandleType, TInt aError );
       
   485 #endif
       
   486        
       
   487         /**
       
   488          * UUI message received from the remote user, complete req
       
   489          *          
       
   490          * @param aDataPackage Includes received UUI information
       
   491          * @param aResult Result code
       
   492          */
       
   493         void CompleteReceiveUUI( CMmDataPackage* aDataPackage, TInt aResult );    
       
   494 
       
   495     public: // Functions from base classes
       
   496 
       
   497         /**
       
   498          * Opens a call object using given name
       
   499          *          
       
   500          * @param aName Object name that should be opened
       
   501          * @return Opened object 
       
   502          */
       
   503         virtual CTelObject* OpenNewObjectByNameL( const TDesC& /*aName*/ );
       
   504  
       
   505         /**
       
   506          * Opens a call object and gives it a name 
       
   507          *          
       
   508          *
       
   509          * @param aName On return contains the name of opened object
       
   510          * @return Opened object 
       
   511          */
       
   512         CTelObject* OpenNewObjectL( TDes& /*aNewName*/ );
       
   513         
       
   514         /**
       
   515          * TRAP's all CMmCallTsy related MM API requests in case that
       
   516          * they fail. This method functions only as a centralized TRAP for the
       
   517          * DoExtFuncL method that does the actual mapping of IPC number to
       
   518          * TSY method call.
       
   519          *          
       
   520          *
       
   521          * @param aTsyReqHandle TSY request handle from ETel server
       
   522          * @param aIpc IPC number of the request
       
   523          * @param aPackage Reference to the input parameters.
       
   524          * @return KErrNone/KErrNotSupported
       
   525          */
       
   526         TInt ExtFunc( const TTsyReqHandle aTsyReqHandle, 
       
   527             const TInt aIpc, const TDataPackage& aPackage );
       
   528 
       
   529         /**
       
   530          * Returns request mode for given IPC number
       
   531          *          
       
   532          *
       
   533          * @param aIpc IPC number of the request
       
   534          * @return Request mode
       
   535          */
       
   536         virtual CTelObject::TReqMode ReqModeL( const TInt aIpc ) = 0;
       
   537 
       
   538         /**
       
   539          * Returns number of slots to be used for a given IPC
       
   540          *          
       
   541          *
       
   542          * @param aIpc IPC number of the request
       
   543          * @return Number of slots for this request
       
   544          */
       
   545         virtual TInt NumberOfSlotsL( const TInt aIpc ) = 0;
       
   546 
       
   547         /**
       
   548          * Cancels request that's IPC number and request handle are given as
       
   549          * parameters
       
   550          *          
       
   551          *
       
   552          * @param aIpc: IPC number of the request
       
   553          * @param aTsyReqHandle Request handle from ETel server
       
   554          * @return KErrNone/KErrNotSupported
       
   555          */
       
   556         virtual TInt CancelService( const TInt aIpc, 
       
   557             const TTsyReqHandle aTsyReqHandle ) = 0;
       
   558 
       
   559         /**
       
   560          * Register given notification
       
   561          *          
       
   562          *
       
   563          * @param aIpc IPC number of the request
       
   564          * @return Result of the request
       
   565          */
       
   566         virtual TInt RegisterNotification( const TInt aIpc ) = 0;
       
   567 
       
   568         /**
       
   569          * Deregister given notification
       
   570          *          
       
   571          *
       
   572          * @param aIpc IPC number of the request
       
   573          * @return Result of the request
       
   574          */
       
   575         virtual TInt DeregisterNotification( const TInt aIpc ) = 0;
       
   576 
       
   577         /**
       
   578          * Transfers call ownership.
       
   579          *          
       
   580          *
       
   581          * @param aTsyReqHandle TSY request handle
       
   582          * @return KErrNone
       
   583          */
       
   584         virtual TInt TransferOwnership(
       
   585             const TTsyReqHandle /*aTsyReqHandle*/ );
       
   586 
       
   587         /**
       
   588          * Acquires ownership.
       
   589          *          
       
   590          *
       
   591          * @param aTsyReqHandle TSY request handle
       
   592          * @return KErrNone
       
   593          */
       
   594         virtual TInt AcquireOwnership(
       
   595             const TTsyReqHandle /*aTsyReqHandle*/ );
       
   596         
       
   597         /**
       
   598          * Cancels method for AcquireOwnership.
       
   599          *          
       
   600          *
       
   601          * @param aTsyReqHandle TSY request handle
       
   602          * @return KErrNone
       
   603          */
       
   604         virtual TInt AcquireOwnershipCancel(
       
   605             const TTsyReqHandle /*aTsyReqHandle*/ );
       
   606         
       
   607         /**
       
   608          * Relinquishes ownership.
       
   609          *          
       
   610          *
       
   611          * @return KErrNone
       
   612          */
       
   613         virtual TInt RelinquishOwnership();
       
   614 
       
   615         /**
       
   616          * Get call ownership status.
       
   617          *          
       
   618          *
       
   619          * @param aTsyReqHandle TSY request handle
       
   620          * @param aOwnershipStatus Ownership status
       
   621          * @return KErrNone
       
   622          */
       
   623         virtual TInt GetOwnershipStatus(
       
   624             const TTsyReqHandle /*aTsyReqHandle*/,
       
   625             RCall::TOwnershipStatus* /*aOwnershipStatus*/ );
       
   626 
       
   627         /**
       
   628          * Notify when hook status has changed
       
   629          *          
       
   630          *
       
   631          * @param aTsyReqHandle TSY request handle
       
   632          * @param aHookStatus Hook status
       
   633          * @return Return value to the ETel Server
       
   634          */
       
   635         TInt NotifyHookChange( const TTsyReqHandle aTsyReqHandle, 
       
   636 			     RCall::THookStatus* /*aHookStatus*/ );
       
   637 
       
   638         /**
       
   639          * Cancels hook status change notifications
       
   640          *          
       
   641          *
       
   642          * @param aTsyReqHandle TSY request handle
       
   643          * @return Return value to the ETel Server
       
   644          */
       
   645         TInt NotifyHookChangeCancel( const TTsyReqHandle aTsyReqHandle );
       
   646 
       
   647         /**
       
   648          * Returns the call status to the client
       
   649          *          
       
   650          *
       
   651          * @param aTsyReqHandle TSY request handle
       
   652          * @param aStatus Current call status
       
   653          * @return Return value to the ETel Server
       
   654          */        
       
   655         TInt GetStatus( const TTsyReqHandle aTsyReqHandle,
       
   656             RCall::TStatus *aStatus );
       
   657 
       
   658         /**
       
   659          * Notify when the status of the call has changed
       
   660          *          
       
   661          *
       
   662          * @param aTsyReqHandle TSY request handle
       
   663          * @param aStatus Contains Core call status on return
       
   664          * @return Return value to the ETel Server
       
   665          */
       
   666         TInt NotifyStatusChange( const TTsyReqHandle aTsyReqHandle,
       
   667             RCall::TStatus* aStatus );
       
   668 
       
   669         /**
       
   670          * Cancels status change notifications
       
   671          *          
       
   672          *
       
   673          * @param aTsyReqHandle TSY request handle
       
   674          * @return Return value to the ETel Server
       
   675          */
       
   676         TInt NotifyStatusChangeCancel( 
       
   677             const TTsyReqHandle aTsyReqHandle );
       
   678 
       
   679         /**
       
   680          * Returns the call capabilities to the client
       
   681          *          
       
   682          *
       
   683          * @param aTsyReqHandle TSY request handle
       
   684          * @param aCaps Contains call capabilities on return
       
   685          * @return Return value to the ETel Server
       
   686          */        
       
   687         TInt GetCaps( const TTsyReqHandle aTsyReqHandle, 
       
   688             RCall::TCaps* aCaps );
       
   689 
       
   690         /**
       
   691          * Request for core caps change notifications
       
   692          *          
       
   693          *
       
   694          * @param aTsyReqHandle TSY request handle
       
   695          * @param aCaps Contains core call caps on return
       
   696          * @return Return value to the ETel Server
       
   697          */        
       
   698         TInt NotifyCapsChange( const TTsyReqHandle aTsyReqHandle, 
       
   699             RCall::TCaps* aCaps );
       
   700 
       
   701         /**
       
   702          * Cancels core caps change notifications
       
   703          *          
       
   704          *
       
   705          * @param aTsyReqHandle TSY request handle
       
   706          * @return Return value to the ETel Server
       
   707          */        
       
   708         TInt NotifyCapsChangeCancel(
       
   709             const TTsyReqHandle aTsyReqHandle );
       
   710 
       
   711         /**
       
   712          * Returns call duration information to the client
       
   713          *          
       
   714          *
       
   715          * @param aTsyReqHandle TSY request handle
       
   716          * @param aTime Current duration
       
   717          * @return Return value to the ETel Server
       
   718          */
       
   719         TInt GetCallDuration( const TTsyReqHandle aTsyReqHandle, 
       
   720             TTimeIntervalSeconds* aTime );
       
   721 
       
   722         /**
       
   723          * Notifies about changes in call duration
       
   724          *          
       
   725          *
       
   726          * @param aTsyReqHandle TSY request handle
       
   727          * @param aTime On return contains current call duration
       
   728          * @return Return value to the ETel Server
       
   729          */
       
   730         TInt NotifyDurationChange( const TTsyReqHandle aTsyReqHandle, 
       
   731             TTimeIntervalSeconds* aTime );
       
   732 
       
   733         /**
       
   734          * Cancels duration change notifications
       
   735          *          
       
   736          *
       
   737          * @param aTsyReqHandle TSY request handle
       
   738          * @return Return value to the ETel Server
       
   739          */
       
   740         TInt NotifyDurationChangeCancel( 
       
   741             const TTsyReqHandle aTsyReqHandle );
       
   742 
       
   743         /**
       
   744          * Returns call parameters to the client
       
   745          *          
       
   746          *
       
   747          * @param aTsyReqHandle TSY request handle
       
   748          * @param aParams Contains call parameters on return 
       
   749          * @return Return value to the ETel Server
       
   750          */
       
   751         TInt GetCallParams( const TTsyReqHandle aTsyReqHandle, 
       
   752             TDes8* aParams );
       
   753 
       
   754         /**
       
   755          * Returns call information (core) to the client
       
   756          *          
       
   757          *
       
   758          * @param aTsyReqHandle TSY request handle
       
   759          * @param aCallInfo Contains core call information on return
       
   760          * @return Return value to the ETel Server
       
   761          */        
       
   762         TInt GetInfo( const TTsyReqHandle aTsyReqHandle, 
       
   763             RCall::TCallInfo* aCallInfo );
       
   764 
       
   765         /**
       
   766          * Dials a call.
       
   767          *          
       
   768          *
       
   769          * @param aTsyReqHandle Tsy request handle
       
   770          * @param aCallParams Call parameters
       
   771          * @param aTelNumber Phone number to be called
       
   772          * @return KErrNone or KErrNotSupported
       
   773          */
       
   774         virtual TInt Dial( const TTsyReqHandle aTsyReqHandle, 
       
   775             const TDesC8* aCallParams, TDesC* aTelNumber ) = 0;
       
   776 
       
   777         /**
       
   778          * Cancels dialling.
       
   779          *          
       
   780          *
       
   781          * @param aTsyReqHandle Tsy request handle
       
   782          * @return KErrNone, KErrNotSupported, KErrInUse or KErrGeneral
       
   783          */
       
   784         virtual TInt DialCancel( const TTsyReqHandle aTsyReqHandle );
       
   785 
       
   786         /**
       
   787          * Answers to an incoming call
       
   788          *          
       
   789          *
       
   790          * @param aTsyReqHandle Request handle from the ETel server
       
   791          * @param aCallParams Call parameters
       
   792          * @return KErrNone/KErrNotSupported
       
   793          */
       
   794         virtual TInt AnswerIncomingCall( const TTsyReqHandle aTsyReqHandle,
       
   795             const TDesC8* aCallParams ) = 0;
       
   796 
       
   797         /**
       
   798          * Cancels answering to an incoming call
       
   799          *          
       
   800          *
       
   801          * @param aTsyReqHandle Request handle from the ETel server
       
   802          * @return KErrNone/KErrNotSupported
       
   803          */
       
   804         virtual TInt AnswerIncomingCallCancel( 
       
   805             const TTsyReqHandle aTsyReqHandle );
       
   806 
       
   807         /**
       
   808          * Hangs up the call
       
   809          *          
       
   810          *
       
   811          * @param aTsyReqHandle Request handle from ETel server
       
   812          * @return KErrNone/KErrNotSupported
       
   813          */
       
   814         virtual TInt HangUp( const TTsyReqHandle aTsyReqHandle ) = 0;
       
   815 
       
   816         /**
       
   817          * Cancels the hangup
       
   818          *          
       
   819          *
       
   820          * @param aTsyReqHandle Request handle from ETel server
       
   821          * @return KErrNone/KErrNotSupported
       
   822          */
       
   823         TInt HangUpCancel( const TTsyReqHandle aTsyReqHandle );
       
   824         
       
   825         /** 
       
   826          * Returns ETrue if this call is part of a MO conference and MT released
       
   827          * (does not apply to an externally controlled conference call)
       
   828          *          
       
   829          *
       
   830          * @return Value of iIsRemoteReleasedCall boolean
       
   831          */
       
   832         TBool IsRemoteReleasedCall() const;
       
   833 
       
   834 #ifdef TF_LOGGING_ENABLED       
       
   835         /**
       
   836          * Overloads original ReqCompleted for logging purposes
       
   837          *          
       
   838          *
       
   839          * @param aTsyReqHandle TSY request handle
       
   840          * @param aError error value
       
   841          */
       
   842         virtual void ReqCompleted( const TTsyReqHandle aTsyReqHandle,
       
   843             const TInt aError );
       
   844 #endif
       
   845 
       
   846         /**
       
   847          * Returns fax settings to the client
       
   848          *          
       
   849          *
       
   850          * @param aTsyReqHandle TSY req handle
       
   851          * @param TFaxSessionSettings Fax settings
       
   852          * @return KErrNotSupported
       
   853          */
       
   854         virtual TInt GetFaxSettings(
       
   855             const TTsyReqHandle /*aTsyReqHandle*/,
       
   856             RCall::TFaxSessionSettings* /*aSettings*/ );
       
   857 
       
   858         /**
       
   859          * Sets new fax settings
       
   860          *          
       
   861          *
       
   862          * @param aTsyReqHandle TSY req handle
       
   863          * @param TFaxSessionSettings Fax settings
       
   864          * @return KErrNotSupported
       
   865          */
       
   866         virtual TInt SetFaxSettings(
       
   867             const TTsyReqHandle /*aTsyReqHandle*/,
       
   868             const RCall::TFaxSessionSettings* /*aSettings*/ );
       
   869             
       
   870         /**
       
   871          * Sets iExtensionId
       
   872          * @param aExtensionId 
       
   873          */ 
       
   874         virtual void SetExtensionId( TInt aExtensionId );
       
   875 		
       
   876         /**
       
   877          * Gets iExtensionId
       
   878          *          
       
   879          *         
       
   880          * @return ExtensionId
       
   881          */ 
       
   882         virtual TInt GetExtensionId();
       
   883 
       
   884         /**
       
   885          * Sets iDialTypeId
       
   886          *
       
   887          * @param aDialType
       
   888          *
       
   889          */ 
       
   890         virtual void SetDialTypeId( TUint8 aDialType );
       
   891         
       
   892         /**
       
   893          * Gets iDialTypeId
       
   894          *          
       
   895          *        
       
   896          * @return iDialTypeId
       
   897          */ 
       
   898         virtual TUint8 GetDialTypeId();	
       
   899         
       
   900     protected:  // Constructors and destructor
       
   901 
       
   902         /**
       
   903          * C++ default constructor.
       
   904          */
       
   905         CMmCallTsy();
       
   906 
       
   907         /**
       
   908          * By default Symbian 2nd phase constructor is private.
       
   909          *          
       
   910          *
       
   911          * @param RMobilePhone::TMobileService aMode Call mode
       
   912          */
       
   913         virtual void ConstructL( RMobilePhone::TMobileService aMode );
       
   914 
       
   915     protected:  // New functions
       
   916 
       
   917         /**
       
   918          * Initialises extension modules
       
   919          *          
       
   920          *
       
   921          * @param RMobilePhone::TMobileService Call mode
       
   922          */
       
   923         virtual void InitExtensionModulesL( RMobilePhone::TMobileService aMode );
       
   924 
       
   925         /**
       
   926          * Initialises miscellaneous internal attributes
       
   927          *          
       
   928          *
       
   929          */
       
   930         virtual void InitInternalAttributes();
       
   931 
       
   932         /**
       
   933          * DoExtFuncL is called by the server when it has a "extended", 
       
   934          * i.e. non-core ETel request for the TSY. To process a request handle,
       
   935          * request type and request data are passed to the TSY.
       
   936          *           
       
   937          *
       
   938          * @param aTsyReqHandle Request handle from ETel server
       
   939          * @param aIpc IPC number of the request
       
   940          * @param aPackage Reference to the input parameters.
       
   941          * @return KErrNone/KErrNotSupported
       
   942          */
       
   943         virtual TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle, const TInt aIpc, 
       
   944             const TDataPackage& aPackage ) = 0;
       
   945 
       
   946         /**
       
   947          * Returns pointer to iTsyReqHandleStore
       
   948          *          
       
   949          *
       
   950          * @return CMmTsyReqHandleStore* Pointer to the TsyReqHandleStore
       
   951          */
       
   952         CMmTsyReqHandleStore* GetCallReqHandleStore();
       
   953 
       
   954         /**
       
   955          * Completes caps change notification
       
   956          *          
       
   957          *
       
   958          */
       
   959         void CompleteNotifyCapsChange();
       
   960 
       
   961         /**
       
   962          * Complete call event notification
       
   963          *          
       
   964          *
       
   965          * @param event that has occurred
       
   966          */
       
   967         void CompleteNotifyCallEvent( RMobileCall::TMobileCallEvent aEvent );
       
   968 
       
   969         /**
       
   970          * Returns the call control and call event capabilities
       
   971          *          
       
   972          *
       
   973          * @param aTsyReqHandle TSY request handle
       
   974          * @param aCaps Contains mobile call capabilities on return
       
   975          * @return Return value to the ETel Server
       
   976          */
       
   977         TInt GetMobileCallCaps( const TTsyReqHandle aTsyReqHandle,
       
   978             TDes8* aCaps );
       
   979         
       
   980         /**
       
   981          * Notifies change of mobile call capabilities 
       
   982          *          
       
   983          *
       
   984          * @param aCaps Contains mobile call capabilities on return
       
   985          * @return Return value to the ETel Server
       
   986          */
       
   987         TInt NotifyMobileCallCapsChange( TDes8* aCaps );
       
   988 
       
   989         /**
       
   990          * Cancels NotifyMobileCallCapsChange method
       
   991          *          
       
   992          *
       
   993          * @param aTsyReqHandle TSY request handle
       
   994          * @return Return value to the ETel Server
       
   995          */
       
   996         TInt NotifyMobileCallCapsChangeCancel( 
       
   997             const TTsyReqHandle aTsyReqHandle );
       
   998 
       
   999         /**
       
  1000          * Transfer a call to a remote party with out answering the call
       
  1001          *          
       
  1002          *
       
  1003          * @param aTsyReqHandle TSY request handle
       
  1004          * @return KErrNone
       
  1005          */
       
  1006         TInt TransferL( const TTsyReqHandle aTsyReqHandle );
       
  1007 
       
  1008         /**
       
  1009          * Set call name
       
  1010          *          
       
  1011          *
       
  1012          * @param aCallName New call name
       
  1013          */
       
  1014         void SetCallName( const TName& aCallName );
       
  1015 
       
  1016         /**
       
  1017          * Requests notifications of privacy status changes
       
  1018          *           
       
  1019          *
       
  1020          * @param aPrivacyStatus* Current privacy status
       
  1021          * @return Return value to ETel server
       
  1022          */
       
  1023         TInt NotifyPrivacyConfirmation ( 
       
  1024             RMobilePhone::TMobilePhonePrivacy* aPrivacyStatus );
       
  1025 
       
  1026         /**
       
  1027          * Cancels privacy status change notifications 
       
  1028          *          
       
  1029          *
       
  1030          * @param aTsyReqHandle TSY request handle
       
  1031          * @return Return value to ETel server
       
  1032          */
       
  1033         TInt NotifyPrivacyConfirmationCancel (  
       
  1034             const TTsyReqHandle aTsyReqHandle );
       
  1035 
       
  1036         /**
       
  1037          * Returns the current status of the call through the aStatus argument
       
  1038          *          
       
  1039          *
       
  1040          * @param aTsyReqHandle TSY request handle
       
  1041          * @param aStatus Contains mobile call status on return
       
  1042          * @return Return value to the ETel Server
       
  1043          */        
       
  1044         TInt GetMobileCallStatus( const TTsyReqHandle aTsyReqHandle, 
       
  1045             RMobileCall::TMobileCallStatus* aStatus );
       
  1046 
       
  1047         /**
       
  1048          * Allows a client to be notified when the mobile call changes state.
       
  1049          *          
       
  1050          *
       
  1051          * @param aStatus Contains mobile call status on return
       
  1052          * @return Return value to the ETel Server
       
  1053          */        
       
  1054         TInt NotifyMobileCallStatusChange( 
       
  1055             RMobileCall::TMobileCallStatus* aStatus );
       
  1056 
       
  1057         /**
       
  1058          * Cancels an outstanding asynchronous NotifyMobileCallStatusChange 
       
  1059          * request.
       
  1060          *          
       
  1061          *
       
  1062          * @param aTsyReqHandle TSY request handle
       
  1063          * @return Return value to the ETel Server
       
  1064          */        
       
  1065         TInt NotifyMobileCallStatusChangeCancel( 
       
  1066             const TTsyReqHandle aTsyReqHandle );
       
  1067 
       
  1068         /**
       
  1069          * Allows clients to be notified when various call events occur.
       
  1070          *          
       
  1071          *
       
  1072          * @param aEvent Contains call event on return
       
  1073          * @return Return value to the ETel Server
       
  1074          */        
       
  1075         TInt NotifyCallEvent( RMobileCall::TMobileCallEvent* aEvent );
       
  1076 
       
  1077         /**
       
  1078          * This method cancels an outstanding asynchronous NotifyCallEvent 
       
  1079          * request.
       
  1080          *
       
  1081          *          
       
  1082          * @param aTsyReqHandle TSY request handle
       
  1083          * @return Return value to the ETel Server
       
  1084          */        
       
  1085         TInt NotifyCallEventCancel( const TTsyReqHandle aTsyReqHandle );
       
  1086 
       
  1087         /**
       
  1088          * The method returns current values of the call information
       
  1089          *          
       
  1090          *
       
  1091          * @param aTsyReqHandle TSY request handle
       
  1092          * @param aInfo Contains mobile call info on return
       
  1093          * @return Return value to the ETel Server
       
  1094          */
       
  1095         TInt GetMobileCallInfo( const TTsyReqHandle aTsyReqHandle, 
       
  1096             TDes8* aInfo );
       
  1097 
       
  1098         /**
       
  1099          * Allows the client to be notified of any change in the remote party 
       
  1100          * information.
       
  1101          *          
       
  1102          *
       
  1103          * @param aRemotePartyInfo Contains remote party information on return
       
  1104          * @return Return value to the ETel Server
       
  1105          */
       
  1106         TInt NotifyRemotePartyInfoChange( TDes8* aRemotePartyInfo );
       
  1107 
       
  1108         /**
       
  1109          * This method cancels an outstanding asynchronous 
       
  1110          * NotifyRemotePartyInfoChange request.
       
  1111          *          
       
  1112          *
       
  1113          * @param aTsyReqHandle TSY request handle
       
  1114          * @return Return value to the ETel Server
       
  1115          */
       
  1116         TInt NotifyRemotePartyInfoChangeCancel( 
       
  1117             const TTsyReqHandle aTsyReqHandle );
       
  1118 
       
  1119         /**
       
  1120          * Resets the status of the call
       
  1121          *          
       
  1122          *
       
  1123          */
       
  1124         virtual void ClearCallStatus();
       
  1125 
       
  1126         /**
       
  1127          * Set previous active call ID
       
  1128          *          
       
  1129          *
       
  1130          * @param TInt Call id of the previous active call 
       
  1131          */
       
  1132         void SetPreviousCallId( TInt aCurrentId );
       
  1133 
       
  1134         /**
       
  1135          * Returns call duration in seconds
       
  1136          *          
       
  1137          *
       
  1138          * @return Call duration in seconds
       
  1139          */
       
  1140         TTimeIntervalSeconds GetCallDurationInSeconds();
       
  1141 
       
  1142 #ifdef REQHANDLE_TIMER
       
  1143         /**
       
  1144          * Chooses the type of response, automatic or common
       
  1145          *          
       
  1146          *
       
  1147          * @param aReqHandleType TSY request handle type.
       
  1148          * @param aTsyReqHandle TSY request handle to be stored.
       
  1149          */
       
  1150         virtual void SetTypeOfResponse( const TInt aReqHandleType, 
       
  1151             const TTsyReqHandle aTsyReqHandle ) = 0;
       
  1152 #endif
       
  1153 
       
  1154         /**
       
  1155          * Specifies which User-To-User Signalling service(s) 
       
  1156          * the phone should request to activate.
       
  1157          *          
       
  1158          * @param aUUSRequest Pointer to client side data 
       
  1159          * @return Return value to the ETel Server
       
  1160          */
       
  1161         TInt ActivateUUS( const TTsyReqHandle aTsyReqHandle,
       
  1162             RMobileCall::TMobileCallUUSRequestV1Pckg* aUUSRequest );
       
  1163                
       
  1164         /**
       
  1165          * Enables the client to receive the next incoming 
       
  1166          * UUI message from the remote user.
       
  1167          *          
       
  1168          * @param aTsyReqHandle TSY request handle,
       
  1169          * @param aUUI Pointer to client side data 
       
  1170          * @return Return value to the ETel Server
       
  1171          */
       
  1172         TInt ReceiveUUI( const TTsyReqHandle aTsyReqHandle,
       
  1173             RMobileCall::TMobileCallUUI* aUUI );
       
  1174         
       
  1175         /**
       
  1176          * Cancels an outstanding EMobileCallReceiveUUI request 
       
  1177          *          
       
  1178          * @param aTsyReqHandle TSY request handle, complete with KErrCancel
       
  1179          * @return KErrNone
       
  1180          */
       
  1181         TInt ReceiveUUICancel( const TTsyReqHandle aTsyReqHandle );
       
  1182         
       
  1183         /**
       
  1184          * Updates life time call duration with remaining call duration 
       
  1185          *          
       
  1186          */
       
  1187         void UpdateLifeTimer();                                         
       
  1188 
       
  1189     private:
       
  1190         /**
       
  1191          * Checks wether or not a ETel request can be performed while 
       
  1192          * offline mode is enabled
       
  1193          *          
       
  1194          *         
       
  1195          * @param aIpc Ipc number of the request
       
  1196          * @return Is request possible in offline mode
       
  1197          */
       
  1198         TBool IsRequestPossibleInOffline( TInt aIpc ) const;
       
  1199     
       
  1200     protected:  // Data
       
  1201 
       
  1202         /**
       
  1203          * A pointer to the multimode line object
       
  1204          * Own.         
       
  1205          */         
       
  1206         CMmLineTsy* iMmLine;
       
  1207 
       
  1208         /** 
       
  1209          * A pointer to external call interface object
       
  1210          * Own.         
       
  1211          */          
       
  1212         CMmCallExtInterface* iMmCallExtInterface;
       
  1213 
       
  1214         /** 
       
  1215          * A pointer to multimode phone object
       
  1216          * Own.         
       
  1217          */ 
       
  1218         CMmPhoneTsy* iMmPhone;
       
  1219  
       
  1220         /** 
       
  1221          * Pointer to request handle store
       
  1222          * Own.         
       
  1223          */ 
       
  1224         CMmTsyReqHandleStore* iTsyReqHandleStore;
       
  1225 
       
  1226         /** 
       
  1227          * A table for call request handles   
       
  1228          */ 
       
  1229         TTsyReqHandle iCallReqHandles[EMultimodeCallMaxNumOfRequests];
       
  1230     
       
  1231         /** 
       
  1232          * Call mode    
       
  1233          */ 
       
  1234         RMobilePhone::TMobileService iCallMode;
       
  1235  
       
  1236         /** 
       
  1237          * Pointer to the message manager
       
  1238          * Own.         
       
  1239          */ 
       
  1240         CMmMessageManagerBase* iMessageManager;
       
  1241         
       
  1242         /** 
       
  1243          * Call status        
       
  1244          */ 
       
  1245         RCall::TStatus iCallStatus;
       
  1246 
       
  1247         /** 
       
  1248          * Call ID, used for communication between TSY and call server       
       
  1249          */         
       
  1250         TInt iCallId;
       
  1251 
       
  1252         /** 
       
  1253          * Last active Call ID, the call id is reset when call goes
       
  1254          * to idle state               
       
  1255          */
       
  1256         TInt iPreviousCallId;
       
  1257 
       
  1258         /** 
       
  1259          * Dynamic Call caps               
       
  1260          */
       
  1261         RCall::TCaps iCallCaps;
       
  1262 
       
  1263         /** 
       
  1264          * Call name               
       
  1265          */
       
  1266         TName iCallName;
       
  1267 
       
  1268         /** 
       
  1269          * Mobile call parameters              
       
  1270          */
       
  1271         RMobileCall::TMobileCallParamsV7 iCallParams;
       
  1272 
       
  1273         /** 
       
  1274          * Mobile call parameters package              
       
  1275          */
       
  1276         RMobileCall::TMobileCallParamsV1Pckg iCallParamsPckg;
       
  1277 
       
  1278         /** 
       
  1279          * Contains the reason for the call termination              
       
  1280          */
       
  1281         TInt iLastExitCode;
       
  1282 
       
  1283         /** 
       
  1284          * Duration change notifier              
       
  1285          */
       
  1286         CHeartbeatRunner* iCallTimer;
       
  1287 
       
  1288         /** 
       
  1289          * Current Mobile Call status              
       
  1290          */
       
  1291         RMobileCall::TMobileCallStatus iMobileCallStatus;
       
  1292 
       
  1293         /** 
       
  1294          * Call direction              
       
  1295          */
       
  1296         RMobileCall::TMobileCallDirection iCallDirection;
       
  1297 
       
  1298         /** 
       
  1299          * Status of dialCancel              
       
  1300          */
       
  1301         TDialCancelStatus iDialCancelFlag;
       
  1302 
       
  1303         /** 
       
  1304          * Status of AnswerIncomingCallCancel              
       
  1305          */
       
  1306         TBool iAnswerCancelFlag;
       
  1307 
       
  1308         /** 
       
  1309          * Request handle type              
       
  1310          */
       
  1311         TCallRequestTypes iReqHandleType;
       
  1312 
       
  1313         /** 
       
  1314          * diagnostic Octets              
       
  1315          */
       
  1316         TUint8 iDiagnosticOctet;
       
  1317 
       
  1318         /** 
       
  1319          * Boolean that indicates is this unowned call object             
       
  1320          */
       
  1321         TBool iUnownedCallObject;
       
  1322 
       
  1323         /** 
       
  1324          * Boolean that indicates is this ghost call 
       
  1325          * (created using AT-commands)             
       
  1326          */
       
  1327         TBool iGhostCall;
       
  1328 
       
  1329         /** 
       
  1330          * Previous call capabilities. Used to determine if notification 
       
  1331          * about capabilities change should be sent            
       
  1332          */
       
  1333         RCall::TCaps iPreviousCaps;
       
  1334 
       
  1335         /** 
       
  1336          * Previous call control capabilities.             
       
  1337          */
       
  1338         TUint32 iPreviousCallControlCaps;
       
  1339 
       
  1340         /** 
       
  1341          * Pointer to Notify Mobile Call capabilities (pointing to ETel
       
  1342          * server's address space) 
       
  1343          * Own.                  
       
  1344          */
       
  1345         TDes8* iRetNotifyMobileCallCaps;
       
  1346 
       
  1347         /** 
       
  1348          * Pointer to the core call capabilities (pointing to ETel server's
       
  1349          * address space)
       
  1350          * Own.                  
       
  1351          */
       
  1352         RCall::TCaps* iRetCaps;
       
  1353         
       
  1354         /** 
       
  1355          * Pointer to the core call status (pointing to ETel server's address 
       
  1356          * space)
       
  1357          */
       
  1358         RCall::TStatus* iRetStatus;
       
  1359 
       
  1360         /** 
       
  1361          * Pointer to the mobile call status (pointing to ETel server's address
       
  1362          * space)
       
  1363          * Own.                  
       
  1364          */
       
  1365         RMobileCall::TMobileCallStatus* iRetMobileCallStatus;
       
  1366 
       
  1367         /** 
       
  1368          * Pointer to the mobile remote party info (pointing to ETel server's
       
  1369          * address space)
       
  1370          * Own.                  
       
  1371          */
       
  1372         TDes8* iRetRemotePartyInfo;
       
  1373 
       
  1374         /** 
       
  1375          * Pointer to the call duration (pointing to ETel server's address
       
  1376          * space)
       
  1377          * Own.                  
       
  1378          */
       
  1379         TTimeIntervalSeconds* iRetTimeIntervalSeconds;
       
  1380 
       
  1381         /** 
       
  1382          * Pointer to the mobile call event (pointing to ETel server's address
       
  1383          * space)
       
  1384          * Own.                  
       
  1385          */
       
  1386         RMobileCall::TMobileCallEvent* iRetCallEvent;
       
  1387 
       
  1388         /** 
       
  1389          * Pointer to privacy confirmation status (pointing to ETel server's
       
  1390          * address space)
       
  1391          * Own.                  
       
  1392          */
       
  1393         RMobilePhone::TMobilePhonePrivacy* iRetPrivacyStatus;
       
  1394 
       
  1395         /** 
       
  1396          * Call ownership list
       
  1397          * Own.                  
       
  1398          */
       
  1399         CAcquireOwnerList* iList;
       
  1400 
       
  1401         /** 
       
  1402          * Is this an emergency call                  
       
  1403          */
       
  1404         TBool iEmergencyCall;
       
  1405 
       
  1406         /** 
       
  1407          * Is this call originated through ETel API                  
       
  1408          */
       
  1409         TBool iEtelOriginated;
       
  1410 
       
  1411         /** 
       
  1412          * Boolean that indicates if this call is part of a MO conference call
       
  1413          * (false if part of an externally controlled conference call)                         
       
  1414          */
       
  1415         TBool iIsPartOfConference;
       
  1416  
       
  1417         /** 
       
  1418          * Specify the ExtensionId                         
       
  1419          */      
       
  1420         TInt iExtensionId;
       
  1421 
       
  1422         /** 
       
  1423          * Boolean indicating if dial is ongoing                         
       
  1424          */ 
       
  1425         TBool iDialFlag;
       
  1426 
       
  1427         /** 
       
  1428          * Boolean that indicates if this call is MT released
       
  1429          * and part of internally controlled conference call                                 
       
  1430          */
       
  1431         TBool iIsRemoteReleasedCall;
       
  1432         
       
  1433         /** 
       
  1434          * Boolean indicating if the hangUp is ongoing                         
       
  1435          */
       
  1436         TBool iHangUpFlag;
       
  1437 
       
  1438         /** 
       
  1439          * Pointer to the UUI message (pointing to ETel server's address
       
  1440          * space)
       
  1441          * Not own.                  
       
  1442          */
       
  1443         RMobileCall::TMobileCallUUI* iRetUUI; 
       
  1444         
       
  1445         /** 
       
  1446          * Buffer the incoming UUI information. This is only used with the
       
  1447          * UUS1 case, to be able to get the first complete data from LTSY.
       
  1448          */
       
  1449         RMobileCall::TMobileCallUUI iReceivedUUI; 
       
  1450         
       
  1451         /** 
       
  1452          * Buffer the ActivateUUS request, 
       
  1453          * send the infromation to LTSY during the dial (UUS1). 
       
  1454          */
       
  1455         RMobileCall::TMobileCallUUSRequestV1 iUUSRequest; 
       
  1456        	
       
  1457        	/** 
       
  1458          * Specify the dial type                         
       
  1459          */      
       
  1460         TUint8 iDialTypeId;
       
  1461         
       
  1462         /**
       
  1463          * Pointer to the telephony audio control
       
  1464          */ 
       
  1465         MTelephonyAudioControl* iTelephonyAudioControl;
       
  1466   		
       
  1467         /** 
       
  1468          * Boolean that indicates if TelephonyAudioControl is set up or not.
       
  1469          * True if call routing control has been set up for the call.
       
  1470          * False when call is not set up (idle).
       
  1471          */
       
  1472         TBool iTelephonyAudioControlSetup;
       
  1473   
       
  1474     };
       
  1475 
       
  1476 #endif      // CMMCALLTSY_H   
       
  1477             
       
  1478 // End of File
       
  1479