phoneengine/engineinfo/inc/cpeengineinfoimpl.h
changeset 0 5f000ab63145
child 1 838b0a10d15b
equal deleted inserted replaced
-1:000000000000 0:5f000ab63145
       
     1 /*
       
     2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  This file contains the header file of the CPEEngineInfoImpl object.
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef CPEENGINEINFOIMPL_H
       
    19 #define CPEENGINEINFOIMPL_H
       
    20 
       
    21 //INCLUDES
       
    22 #include <e32base.h>
       
    23 #include <badesca.h>
       
    24 #include <ccpdefs.h>
       
    25 #include <pevirtualengine.h>
       
    26 #include "cperemoteinfo.h"
       
    27 #include "mpedatastore.h"
       
    28 #include "cpeengineinfo.h"
       
    29 
       
    30 // CONSTANTS
       
    31 // None.
       
    32 
       
    33 // MACROS
       
    34 // None.
       
    35 
       
    36 // DATA TYPES
       
    37 NONSHARABLE_STRUCT( TPECallCommandInfo )                  // For Mobile Originated Call Commands
       
    38     {
       
    39 	TChar iKeyCode;                         // pressed key code
       
    40 	TInt iAudioMute;                        // state of microphone ( 0 = false, 1 = true )
       
    41 	TInt iAudioVolume;                      // Audio volume
       
    42 	TPEAudioOutput iAudioOutput;            // audio output path
       
    43 	TBool iShowNote;                        // Status of call audio route info note.
       
    44 	TInt iCallId;                           // Calls ID
       
    45 	TPEDtmfString iDtmfString;              // Dtmf string to be sent.
       
    46 	TPEPhoneNumber iPhoneNumber;            // Dialed Phonenumber, set by client
       
    47 	TPECallType iCallType;                  // Type of the attempted call
       
    48 	TUint32 iServiceId;                     // ServiceId	
       
    49 	TPECallOrigin iCallOrigin;              // Origin of the attempted call (Phone, client or SAT)
       
    50 	RMobileCall::TMobileCallIdRestriction iIdRestrict; // Call Id restriction setting to be used for this call
       
    51 	TPEPhoneNumber iEmergencyNumber;        // For checking is this number emergency number.
       
    52 	TPEUserToUserInfo iUserToUserInfo;      // User to user information.
       
    53 	TPEPhoneNumber iSwitchToNumber;         // Dialed Phonenumber, set by client
       
    54 	TPEPhoneNumber iTransferToAddress;      // Unattended transfer target address	
       
    55     TInt iForwardToAddressIndex;            // Array index for a address to be forwarded
       
    56     };
       
    57 
       
    58 NONSHARABLE_STRUCT( TPEBasicInfo )                         // Contains information of the phone related variables 
       
    59     {
       
    60 	TBool iAudioMute;                       // state of microphone.					
       
    61 	TBool iTwoDigitSupportStatus;           // Two Digit support status
       
    62 	TBool iALSLineSupport;                  // ALS line support.				
       
    63 	TInt iAudioOutputPreference;            // Audio output preference (private/public) - TODO: change type to enum when available
       
    64 	TInt iAudioVolume;                      // Audio volume					
       
    65 	TInt iKeypadVolume;                     // Keypad volume					
       
    66 	TInt iLastCallDuration;                 // Call duration (seconds)					
       
    67 	TInt iPersonalToneStatus;               // Personal tone status					
       
    68 	TInt iProfileId;                        // the id number of the profile					
       
    69 	TInt iRingingVolume;                    // Current ringing volume					
       
    70 	TBool iTextToSpeech;                    // Current text-to-speech setting
       
    71 	TBool iPhoneNumberIsServiceCode;        // flag indicating if the phone number is a service code
       
    72 	TNWNetworkRegistrationStatus iNetworkRegistrationStatus;					
       
    73     CCCECallParameters::TCCELineType iALSLine;        // includes active als line.                  
       
    74 	TPEContactFileName iRingingToneName1;   // Current ringingtone name					
       
    75 	TPEContactFileName iRingingToneName2;
       
    76 	TPEContactFileName iVideoCallRingingTone; // Video call ringingtone name									
       
    77 	TPEDtmfString iDtmfString;              // Dtmf string.					
       
    78 	TPEErrorInfo iErrorInfo;                // possible error code					
       
    79 	TPELifeTimeData iLifeTimeData;					
       
    80 	TPEPhoneIdentityParameters iPhoneIdentityParameters; // the phone identity parameters					
       
    81 	TPEProfileName iProfileName;            // the name of the profile					
       
    82 	TProfileRingingType iRingingType;       // Includes current ringing type 					
       
    83 	TPEVoiceMailBoxNumberInfo iVMBXNumbers; // Voice mail box numbers
       
    84 	TPEPhoneAudioRouteParameters iPhoneAudioRouteParameters; // the phone audio route parameters
       
    85 	TCCPTone iInbandTone;                   // Inband tone needed to play in a call state transition or error
       
    86 	TPEActiveForwardInfo iActiveForward;    // active forward information.
       
    87 	TPEBarringInfo iBarringInfo;            // includes call barring information.
       
    88 	TPESimState iSimState;
       
    89 	TPESSCommandInfo iSSCommandInfo;        // Contains information of the Suplementary Services command.
       
    90     TBool iSecureSpecified;                 // Secure specified status
       
    91 	TName iDataPortName;                    // the name of data port currently on-loan
       
    92     TBool iSwitchToOngoing;                 // Switch to operation status
       
    93     };
       
    94 
       
    95 NONSHARABLE_STRUCT( TPEConferenceCallInfo ) // Contains conference call related variables 
       
    96     {
       
    97     TPEState iConferenceCallState;
       
    98     };
       
    99 
       
   100 class CPECallInfo;
       
   101 
       
   102 // CLASS DECLARATION
       
   103 
       
   104 /**
       
   105 *  Handles telephony related information structures.
       
   106 *  
       
   107 *
       
   108 *  @lib engineinfo.lib
       
   109 *  @since Series60_4.0
       
   110 */
       
   111 NONSHARABLE_CLASS( CPEEngineInfoImpl )
       
   112         : public CPEEngineInfo
       
   113 {
       
   114     public:     //Constructors and destructor
       
   115     
       
   116         /**
       
   117         * Two-phased constructor.
       
   118         */
       
   119         IMPORT_C static CPEEngineInfoImpl* NewL();
       
   120         
       
   121         /**
       
   122         * Destructor.
       
   123         */
       
   124         virtual ~CPEEngineInfoImpl();
       
   125         
       
   126     public:     //New functions
       
   127 
       
   128         // Functions from MPEEngineInfo
       
   129 
       
   130         /**
       
   131         * Gets active als line of the phone from TPEBasicInfo-structure
       
   132         * @return active als line of the phone
       
   133         */
       
   134         const CCCECallParameters::TCCELineType& ALSLine() const;
       
   135         
       
   136         /**
       
   137         * Gets ALS support of the phone from TPEBasicInfo-structure
       
   138         * @return ETrue if als is supported.
       
   139         */
       
   140         const TBool& ALSLineSupport() const;
       
   141 
       
   142         /**
       
   143         * Gets audio mute value
       
   144         * @return audio mute value
       
   145         */
       
   146         const TBool& AudioMute() const;
       
   147 
       
   148         /**
       
   149         * Gets current audio output path
       
   150         * @return audio output path
       
   151         */
       
   152         const TPEAudioOutput& AudioOutput() const;
       
   153         
       
   154         /**
       
   155         * Gets phone audio route parameters
       
   156         * @return phone audio route parameters. 
       
   157         */
       
   158         const TPEPhoneAudioRouteParameters& RouteParameters() const;
       
   159                 
       
   160         /**
       
   161         * Gets audio output path availability
       
   162         * @return audio output path availability status
       
   163         */
       
   164         TBool AudioOutputAvailable( 
       
   165             const TPEAudioOutput aOutput ) const;
       
   166 
       
   167         /**
       
   168         * Gets audio output preference
       
   169         * @return audio output preference
       
   170         */
       
   171         const TInt& AudioOutputPreference() const;
       
   172 
       
   173         /**
       
   174         * Gets audio volume value
       
   175         * @return audio volume value
       
   176         */
       
   177         const TInt& AudioVolume() const;
       
   178 
       
   179         /**
       
   180         * Gets call direction of the specified call
       
   181         * @param aCallId is the call identification number
       
   182         * @return call direction of the specified call
       
   183         */
       
   184         RMobileCall::TMobileCallDirection CallDirection( 
       
   185             const TInt aCallId ) const;
       
   186 
       
   187         /**
       
   188         * Gets duration of the last call to go idle
       
   189         * @return call duration of the last active call
       
   190         */
       
   191         const TInt& CallDuration() const;
       
   192 
       
   193         /**
       
   194         * Gets call duration of the ongoing or last active call with specified id
       
   195         * @param aCallId is the call identification number
       
   196         * @return call duration of the ongoing or last active call
       
   197         */
       
   198         TTimeIntervalSeconds CallDuration( const TInt aCallId ) const;
       
   199         
       
   200         /**
       
   201         * Gets line information for the specified call
       
   202         * @param aCallId is the call identification number
       
   203         * @return line information for the specified call
       
   204         */
       
   205         CCCECallParameters::TCCELineType CallALSLine( const TInt aCallId ) const;
       
   206 
       
   207         /**
       
   208         * Gets call origin for next call attempt
       
   209         * @return value indicates if the call is phone, client or SAT originated
       
   210         */
       
   211         const TPECallOrigin& CallOriginCommand() const;
       
   212 
       
   213         /**
       
   214         * Gets start time for the specified call
       
   215         * @param aCallId is the call identification number
       
   216         * @return time of the call
       
   217         */
       
   218         const TTime& CallStartTime( const TInt aCallId ) const;
       
   219 
       
   220         /**
       
   221         * Gets state of the specified call
       
   222         * @param aCallId is the call identification number.
       
   223         * @return call state of a specified call
       
   224         */
       
   225         TPEState CallState( const TInt aCallId ) const;
       
   226 
       
   227         /**
       
   228         * Gets type of the specified call
       
   229         * @param aCallId is the call identification number.
       
   230         * @return call state of a specified call
       
   231         */
       
   232         TPECallType CallType( const TInt aCallId ) const;
       
   233 
       
   234         /**
       
   235         * Gets call state of a conference call
       
   236         * @return call state
       
   237         */
       
   238         TPEState ConferenceCallState() const;
       
   239         
       
   240         /**
       
   241         * Gets the name of data port currently on-loan.
       
   242         * Data port loaning is handled by CSPlugin and happens when a data
       
   243         * call goes into connected state. The dataport is released when VT components
       
   244         * indicate it can be released, i.e. video call hangup.
       
   245         * @return data port name
       
   246         */
       
   247         const TName& DataPortName() const;
       
   248 
       
   249         /**
       
   250         * Gets secure status from call info
       
   251         * @param aCallId is the call identification number.
       
   252         * @return TBool the secure status (on/off)
       
   253         */
       
   254         TBool IsSecureCall( const TInt aCallId ) const;
       
   255 		
       
   256         /**
       
   257         * Gets dtmf postfix
       
   258         * @param aCallId is the call identification number.
       
   259         * @return dtmf postfix
       
   260         */
       
   261         const TPEDtmfString& DtmfPostFix( const TInt aCallId ) const;
       
   262         
       
   263         /**
       
   264         * Gets dtmf string
       
   265         * @return dtmf string
       
   266         */
       
   267         const TPEDtmfString& DtmfString() const;
       
   268 
       
   269         /**
       
   270         * Gets error code and cause values for the latest error
       
   271         * @return error code and cause values for the latest error
       
   272         */
       
   273         const TPEErrorInfo& ErrorInfo() const;
       
   274 
       
   275         /**
       
   276         * Gets correct inband tone for specific call state transition or error
       
   277         * @return the inband tone to be played
       
   278         */
       
   279         const TCCPTone& InbandTone() const;
       
   280 
       
   281         /**
       
   282         * Gets lifetimer data
       
   283         * @return lifetime data (TDes8&)
       
   284         */
       
   285         const TPELifeTimeData& LifeTimerData() const;
       
   286 
       
   287         /**
       
   288         * Gets network registration status
       
   289         * @return TNWNetworkRegistrationStatus Network registration status
       
   290         */
       
   291         const TNWNetworkRegistrationStatus& NetworkRegistrationStatus() const;
       
   292 
       
   293         /**
       
   294         * Gets phone identity parameters from TPEBasicInfo-structure
       
   295         * @param aPhoneIdentityParameters is the phone identity parameters. 
       
   296         */
       
   297         const TPEPhoneIdentityParameters& PhoneIdentityParameters() const;
       
   298 
       
   299         /**
       
   300         * Gets phone number
       
   301         * @return Reference to TPEPhoneNumber, containing the phone number of the remote party.
       
   302         */
       
   303         const TPEPhoneNumber& PhoneNumber() const;
       
   304 
       
   305         /**
       
   306         * Gets phone number parsing result
       
   307         * @return ETrue if phone number is a service code
       
   308         */
       
   309         const TBool& PhoneNumberIsServiceCode() const;
       
   310         
       
   311         /**
       
   312         * Gets profile id
       
   313         * @return profile id
       
   314         */
       
   315         const TInt& ProfileId() const;
       
   316 
       
   317         /**
       
   318         * Gets remote party identity 
       
   319         * @param aCallId is the Call identification number
       
   320         * @return remote party identity
       
   321         */
       
   322         RMobileCall::TMobileCallRemoteIdentityStatus RemoteIdentity( 
       
   323             const TInt aCallId ) const;
       
   324 
       
   325         /**
       
   326         * Gets ringing type
       
   327         * @return ringing type
       
   328         */
       
   329         const TProfileRingingType& RingingType() const;
       
   330         
       
   331         /**
       
   332         * Sets active als line value to the TPEGsmBasicInfo structure.
       
   333         * @param aALSLine is the active als line value.
       
   334         */
       
   335         void SetALSLine( const CCCECallParameters::TCCELineType& aALSLine );
       
   336         
       
   337         /**
       
   338         * Sets ALS support value to the TPEGsmBasicInfo structure.
       
   339         * @param aALSLineSupport is the ALS support value.
       
   340         */
       
   341         void SetALSLineSupport( const TBool& aALSLineSupport );
       
   342 
       
   343         /**
       
   344         * Sets audio mute command to TPEBasicInfo-structure
       
   345         * @param aAudioMute is audio mute
       
   346         */
       
   347         void SetAudioMuteCommand( const TInt& aAudioMute );
       
   348 
       
   349         /**
       
   350         * Sets audio output command to TPEBasicInfo-structure
       
   351         * @param aOutput is audio output path
       
   352         * @param aShowNote is audio note value 
       
   353         * @return None.
       
   354         */
       
   355         void SetAudioOutputCommand( const TPEAudioOutput& aOutput,
       
   356                                              const TBool aShowNote  );
       
   357 
       
   358         /**
       
   359         * Sets audio volume of the phone to TPEBasicInfo-structure
       
   360         * @param aAudioVolume is audio volume of the phone
       
   361         */
       
   362         void SetAudioVolumeCommand( const TInt& aAudioVolume );
       
   363 
       
   364         /**
       
   365         * Sets CallId value to TPECallCommandInfo-structure
       
   366         * @param aPhoneMumber is the phone number
       
   367         */ 
       
   368         void SetCallId( const TInt& aCallId );
       
   369         
       
   370         /**
       
   371         * Sets alsline value to TPEGsmCallInfo-structure
       
   372         * @param aALSLine informs which line is selected active
       
   373         * @param aCallId is the Call identification number.
       
   374         */
       
   375         void SetCallALSLine( const CCCECallParameters::TCCELineType& aALSLine, const TInt aCallId );
       
   376 
       
   377         /**
       
   378         * Sets call type information for the following command message
       
   379         * @param aCallType is call type value.
       
   380         * @param aCallId is the Call identification number.
       
   381         */
       
   382         void SetCallTypeCommand( const TPECallType& aCallType );
       
   383 
       
   384         /**
       
   385         * Sets the name of data port currently on-loan.
       
   386         * Data port loaning is handled by CSPlugin and happens when a data
       
   387         * call goes into connected state. The dataport is released when VT components
       
   388         * indicate it can be released, i.e. video call hangup.
       
   389         * @param aName is Data port name
       
   390         */
       
   391         void SetDataPortName( const TName& aDataPortName );
       
   392 
       
   393         /**
       
   394         * Sets dtmf string value to TPECommandInfo-structure
       
   395         * @param aDtmfString is the dtmf string to be sent. 
       
   396         */
       
   397         void SetDtmfStringCommand( const TPEDtmfString& aDtmfString );
       
   398 
       
   399         /**
       
   400         * Sets correct inband tone for specific call state transition or error
       
   401         * @param aTone is the inband tone to be played
       
   402         */
       
   403         void SetInbandTone( const TCCPTone aTone ) ;
       
   404 
       
   405         /**
       
   406         * Sets key code value to TPECallCommandInfo-structure
       
   407         * @param aKeyCode is the ascii coded key code.
       
   408         */
       
   409         void SetKeyCode( const TChar& aKeyCode );
       
   410 
       
   411         /**
       
   412         * Sets phone number to TPECallCommandInfo-structure
       
   413         * @param aPhoneNumber is the phone number
       
   414         */
       
   415         void SetPhoneNumber( const TPEPhoneNumber& aPhoneNumber );
       
   416 
       
   417         /**
       
   418         * Gets active forwarding information from TPEBasicInfo-structure
       
   419         * @return deflect information
       
   420         */
       
   421         const TPEActiveForwardInfo& ActiveForwardingInfo() const;
       
   422 
       
   423         /**
       
   424         * Gets barring information from TPEBasicInfo-structure
       
   425         * @return barring information
       
   426         */
       
   427         const TPEBarringInfo& BarringInfo() const;
       
   428 
       
   429         /**
       
   430         * Gets conference value from TPECallInfo-structure
       
   431         * @param aCallId is the call identification number
       
   432         * @return call conference value
       
   433         */
       
   434         TInt CallConference( const TInt aCallId ) const;
       
   435 
       
   436         /**
       
   437         * Gets call control caps from the TPECallInfo-structure
       
   438         * @param aCallId is the call identification number
       
   439         * @return call control capabilities
       
   440         */
       
   441         TPECallControlCaps CallControlCaps( const TInt aCallId ) const;
       
   442 
       
   443         /**
       
   444         * Gets forwarded value from TPECallInfo-structure
       
   445         * @param aCallId is the call identification number
       
   446         * @return is call forwarded or not
       
   447         */
       
   448         TBool CallForwarded( const TInt aCallId ) const;
       
   449 
       
   450         /**
       
   451         * Gets Service information from TPECallInfo-structure
       
   452         * @param aCallId is the call identification number.
       
   453         * @return mobile call service type
       
   454         */
       
   455         RMobilePhone::TMobileService CallService( const TInt aCallId ) const;
       
   456 
       
   457         /**
       
   458         * Gets Conference call capabilities
       
   459         * @param aCallId is the call identification number
       
   460         * @return conference call capabilities
       
   461         */
       
   462         TUint32 ConferenceCallCaps( const TInt aCallId ) const;
       
   463 
       
   464         /**
       
   465         * Gets Conference call capabilities
       
   466         * @param aCallId is the call identification number
       
   467         * @return conference call member name
       
   468         */
       
   469         const TName& ConferenceMemberName( const TInt aCallId ) const;
       
   470 
       
   471         /**
       
   472         * Gets Conference call capabilities
       
   473         * @param aCallId is the call identification number
       
   474         * @return conference call member id
       
   475         */
       
   476         TInt IsConferenceMemberId( const TInt aCallId ) const;
       
   477 
       
   478         /**
       
   479         * Gets number of the conference members
       
   480         * @param aCallId is the call identification number
       
   481         * @return number of conference members
       
   482         */
       
   483         TInt NumberOfConferenceMembers( const TInt aCallId ) const;
       
   484 
       
   485         /**
       
   486         * Gets Sim state
       
   487         * @return current Sim state
       
   488         */
       
   489         const TPESimState& SimState() const;
       
   490 
       
   491         /**
       
   492         * Gets secure specified status from call info
       
   493         * @return TBool the secure specified status (on/off)
       
   494         */
       
   495         TBool SecureSpecified( ) const;
       
   496         
       
   497         /**
       
   498         * Gets the last suplementary services string command information 
       
   499         * from TPESSCommandInfo-structure
       
   500         * @since Series90_1.1
       
   501         * @return Suplementary Services command information. 
       
   502         */
       
   503         const TPESSCommandInfo& SSCommandInfo() const;
       
   504     
       
   505         /**
       
   506         * Sets emergency numbers of the phone to TPEGsmBasicInfo-structure
       
   507         * @since Series90_1.1
       
   508         * @param aEmergencyNumber for emergency number checking.
       
   509         * @return None.
       
   510         */
       
   511         void SetEmergencyNumber( const TPEPhoneNumber& aEmergencyNumbers );
       
   512         
       
   513         /**
       
   514          * Gets remote party name. Contains possible CNAP name or received 
       
   515          * skype identification
       
   516          * @param aCallId Call identification number.
       
   517          * @return Name of the remote party detemined by network.
       
   518          */
       
   519         const TPEContactName& RemotePartyName( 
       
   520             const TInt aCallId ) const;
       
   521         
       
   522         /**
       
   523          * Gets error code from TPEBasicInfo-structure
       
   524          * @return Error code
       
   525          */
       
   526          TInt ErrorCode() const;
       
   527          
       
   528          /**
       
   529          * Sets switch to  number to TPECallCommandInfo-structure
       
   530          * @param aPhoneNumber is the phone number
       
   531          */
       
   532          void SetSwitchToNumberCommand( const TPEPhoneNumber& aPhoneNumber );
       
   533          
       
   534          /**
       
   535          * Gets switch to number
       
   536          * @return Reference to TPEPhoneNumber, containing the phone number.
       
   537          */
       
   538          const TPEPhoneNumber& SwitchToNumberCommand() const;
       
   539          
       
   540          /**
       
   541           * Returns transfer target from the last received unattended transfer 
       
   542           * request or KNullDesC if transfer target is not available.
       
   543           * 
       
   544           * @return  Transfer target.
       
   545           */
       
   546          const TPEPhoneNumber& UnattendedTransferTarget( TInt aCallId ) const;
       
   547          
       
   548          /**
       
   549           * Sets transfer target from the last received unattended transfer request.
       
   550           *
       
   551           * @param   aTarget     Transfer target to set.
       
   552           * @param   aCallId     Call identification number.
       
   553           */
       
   554          void SetUnattendedTransferTarget( const TPEPhoneNumber& aTarget, 
       
   555              TInt aCallId );
       
   556 
       
   557         /**
       
   558          * Returns address choices from received call forward request 
       
   559          * or NULL if addresses are not available.
       
   560          * 
       
   561          * @return  Address array.
       
   562          */
       
   563         const CDesC8Array* ForwardAddressChoices( TInt aCallId ) const;
       
   564         
       
   565         /**
       
   566          * Sets address choices from received call forward request.
       
   567          *
       
   568          * @param   aArray      Address array.
       
   569          * @param   aCallId     Call identification number.
       
   570          */
       
   571         void SetForwardAddressChoices( const CDesC8Array* aArray,
       
   572             TInt aCallId );
       
   573          
       
   574         /**
       
   575          * Sets array index for user selected address.
       
   576          *
       
   577          * @param   aIndex     Array index for selected address.
       
   578          */
       
   579         void SetForwardAddressIndex( TInt aIndex );
       
   580         
       
   581         /**
       
   582          * Returns array index for user selected address.
       
   583          *
       
   584          * @return Array index for selected address.
       
   585          */
       
   586         TInt ForwardAddressIndex();
       
   587         
       
   588          /**
       
   589          * Sets unattended transfer target address
       
   590          * @param aTransferTarget Transfer target address
       
   591          * @return None
       
   592          */
       
   593          void SetTransferTargetCommand( const TPEPhoneNumber& aTransferTarget );
       
   594          
       
   595          /**
       
   596          * Returns transfer target address
       
   597          * @return Transfer target address
       
   598          * address.
       
   599          */
       
   600          const TPEPhoneNumber& TransferTargetCommand() const;
       
   601          
       
   602          /**
       
   603          * Sets switch to operation status.
       
   604          * @param aValue switch to operation status.
       
   605          */
       
   606          void SetIsSwitchToOperationOngoing( const TBool aValue );
       
   607          
       
   608          /**
       
   609          * Returns switch to operation status.
       
   610          */
       
   611          TBool IsSwitchToOperationOngoing() const;         
       
   612          
       
   613          /**
       
   614           * From base class MPEEngineInfo
       
   615           * @see MPEEngineInfo::CallOrigin          
       
   616           */
       
   617          TPECallOrigin CallOrigin( const TInt aCallId ) const;
       
   618          
       
   619          /**
       
   620          * Checks if given state can be found.
       
   621 		 * @param aCallState state to be checked.
       
   622          */
       
   623           TBool CheckIfCallStateExists( const TPEState& aCallState );
       
   624 
       
   625     // Functions from MPEDataStore (reading values)
       
   626     public:
       
   627         /**
       
   628         * Gets group ids which are active to play ring tone
       
   629         * @return contact group id
       
   630         */
       
   631         const TArray< TContactItemId > AlertForGroup() const;
       
   632 
       
   633         /**
       
   634         * Gets audio mute command value
       
   635         * @return audio mute value for PhoneApplication commands
       
   636         */
       
   637         const TBool& AudioMuteCommand() const;
       
   638 
       
   639         /**
       
   640         * Gets audio output command value
       
   641         * @return audio output value for PhoneApplication commands
       
   642         */
       
   643         const TPEAudioOutput& AudioOutputCommand() const;
       
   644         
       
   645         /**
       
   646         * Gets audio note command value
       
   647         * @return audio output value for PhoneApplication commands
       
   648         */
       
   649         TBool ShowNoteCommand() const;
       
   650         
       
   651         /**
       
   652         * Gets audio volume command value
       
   653         * @return audio volume value for Phone Application commands
       
   654         */
       
   655         const TInt& AudioVolumeCommand() const;      
       
   656 
       
   657         /**
       
   658         * Gets phone client information of the specified call
       
   659         * @since Series60_2.7
       
   660         * @param aCallId is the call identification number
       
   661         * @return client information of the specified call
       
   662         */
       
   663         const MPEClientInformation& CallClientInformation( const TInt aCallId ) const;
       
   664 
       
   665         /**
       
   666         * Get caller image
       
   667         * @param aCallId is the call identification number.
       
   668         * @return caller image
       
   669         */
       
   670         const TPtrC CallerImage( const TInt aCallId ) const;
       
   671 
       
   672         /**
       
   673         * Get caller text
       
   674         * @param aCallId is the call identification number.
       
   675         * @return caller text
       
   676         */
       
   677         const TPtrC CallerText( const TInt aCallId ) const;
       
   678 
       
   679         /**
       
   680         * Get caller thumbnail
       
   681         * @param aCallId is the call identification number.
       
   682         * @return pointer to thumbnail data
       
   683         */
       
   684         CFbsBitmap* CallerThumbnail( const TInt aCallId ) const;
       
   685         
       
   686         /**
       
   687         * Get caller thumbnail status
       
   688         * @return ETrue if has thumbnail, otherwise EFalse.
       
   689         */
       
   690         TBool HasCallerThumbnail( const TInt aCallId ) const;
       
   691       
       
   692         /**
       
   693         * Gets identification number of a call
       
   694         *
       
   695         * This value is used for determining the target for a command message
       
   696         * that requires such information
       
   697         * @return identification number of a call
       
   698         */
       
   699         const TInt& CallId() const;
       
   700 
       
   701         /**
       
   702         * Gets call type information for the attempted call
       
   703         * @return call state of a specified call
       
   704         */
       
   705         const TPECallType& CallTypeCommand( ) const;
       
   706 
       
   707         /**
       
   708         * Get remote contact link or id
       
   709         * @param aCallId is the call identification number.
       
   710         * @return contact link or id
       
   711         */
       
   712         const CPhCntContactId& ContactId( const TInt aCallId ) const;
       
   713 
       
   714         /**
       
   715         * Get user group ids this contact is assigned to
       
   716         * @param aCallId is the call identification number.
       
   717         * @return array for group ids
       
   718         */
       
   719         const TArray< TContactItemId > ContactGroups(
       
   720             const TInt aCallId ) const;
       
   721 
       
   722         /**
       
   723          * Get contact link packet. See virtual phonebook API.
       
   724          * @param aCallId is the call identification number.
       
   725          * @return Virtual phonebook contact link. 
       
   726          */
       
   727         const TDesC8& ContactLink( const TInt aCallId ) const;
       
   728         
       
   729         /**
       
   730         * Gets dtmf string command value
       
   731         * @return dtmf string value for Phone Application commands
       
   732         */
       
   733         const TPEDtmfString& DtmfStringCommand() const;
       
   734         
       
   735         /**
       
   736         * Gets DTMFVoiceMailBoxNumber information for line 1
       
   737         * @return line 1 DTMFVoiceMailBoxNumber information
       
   738         * @return None.
       
   739         */
       
   740         const TPEPhoneNumber& DTMFVoiceMailBoxNumberLine1() const;
       
   741 
       
   742         /**
       
   743         * Gets DTMFVoiceMailBoxNumber for Line 2 information from TPEGsmBasicInfo-structure
       
   744         * @return line 2 DTMF VoiceMailBoxNumber information
       
   745         */
       
   746         const TPEPhoneNumber& DTMFVoiceMailBoxNumberLine2() const;
       
   747 
       
   748         /**
       
   749         * Gets key code of the last key press
       
   750         * @return key code of the last key press
       
   751         */
       
   752         const TChar& KeyCode() const;
       
   753         
       
   754         /**
       
   755         * Gets keypad volume value
       
   756         * @return keypad volume value
       
   757         */
       
   758         const TInt& KeypadVolume() const;
       
   759 
       
   760         /**
       
   761         * Gets a logging indicator
       
   762         * @param aCallId, call identification number     
       
   763         * @return continuous logging indicator
       
   764         */
       
   765         TBool LoggingIndicator( const TInt aCallId ) const;
       
   766         
       
   767         /**
       
   768         * Get missed call indicator
       
   769         * @param aCallId, call identification number
       
   770         * @return missed call indicator
       
   771         */
       
   772         TBool MissedCall( const TInt aCallId ) const;
       
   773 
       
   774         /**
       
   775         * Get ringing tone
       
   776         * Returns a ringing tone defined for one of the user groups
       
   777         * if personal tone is not found
       
   778         * @param aCallId, call identification number
       
   779         * @return ringing tone file path
       
   780         */
       
   781         const TPEContactFileName& PersonalRingingTone(
       
   782             const TInt aCallId ) const;
       
   783         
       
   784         /**
       
   785         * Gets personal tone status
       
   786         * @return personal tone status
       
   787         */
       
   788         const TBool& PersonalToneStatus() const;
       
   789 
       
   790         /**
       
   791         * Gets profile name
       
   792         * @return profile name.  
       
   793         */
       
   794         const TPEProfileName& ProfileName() const;
       
   795 
       
   796         /**
       
   797         * Get contact company name
       
   798         * @param aCallId, call identification number
       
   799         * @return company name
       
   800         */
       
   801         const TPEContactCompany& RemoteCompanyName(
       
   802             const TInt aCallId ) const;
       
   803 
       
   804         /**
       
   805         * Get contact name
       
   806         * Depending on user selected language may be in order:
       
   807         * first + last name OR last + first name
       
   808         * @param aCallId, call identification number
       
   809         * @return contact name
       
   810         */
       
   811         const TPEContactName& RemoteName( const TInt aCallId ) const;
       
   812 
       
   813         /**
       
   814         * Get remote end phone number
       
   815         * @param aCallId, call identification number
       
   816         * @return phone number
       
   817         */
       
   818         const TPEPhoneNumber& RemotePhoneNumber(
       
   819             const TInt aCallId ) const;
       
   820 
       
   821         /**
       
   822         * Get remote end phone number type
       
   823         * @param aCallId, call identification number
       
   824         * @return phone number type
       
   825         */
       
   826         const TPEPhoneNumberIdType& RemotePhoneNumberType(
       
   827             const TInt aCallId ) const;
       
   828 
       
   829         /**
       
   830         * Gets text to speech text for this contact. Used in
       
   831         * text to speech ringing tone.
       
   832         * @param aCallId, call identification number
       
   833         * @return descriptor, ownership passed.
       
   834         */
       
   835         const TPtrC RemoteTextToSpeechText(
       
   836             const TInt aCallId ) const;
       
   837 
       
   838         /**
       
   839         * Gets remote predefined dtmf strings
       
   840         * @param aCallId, call identification number
       
   841         * @return reference to string array
       
   842         */
       
   843         const  CDesCArray& RemotePredefinedDtmfStrings(
       
   844             const TInt aCallId ) const;
       
   845   
       
   846         /**
       
   847         * Get remote end connected phone number
       
   848         * @param aCallId, call identification number
       
   849         * @return phone number
       
   850         */
       
   851         const TPEPhoneNumber& RemoteColpNumber(
       
   852             const TInt aCallId ) const;
       
   853 
       
   854          /**
       
   855         * Gets ringing tone name
       
   856         * @param aCallId, call identification number 
       
   857         * @return name of the current ringing tone
       
   858         */
       
   859         virtual const TPEContactFileName& RingingTone( const TInt& aCallId ) const;
       
   860         
       
   861          /**
       
   862         * Gets current ringing volume
       
   863         * @return the current ringing volume
       
   864         */
       
   865         const TInt& RingingVolume() const;       
       
   866 
       
   867         /**
       
   868         * Gets text-to-speech preference setting value
       
   869         * @return text-to-speech status (EFalse/ETrue)
       
   870         */
       
   871         const TBool& TextToSpeech() const; 
       
   872         
       
   873         /**
       
   874          * @see MPEDataStore::UserToUserInformation.
       
   875          */
       
   876         const TPEUserToUserInfo& UserToUserInformation() const;
       
   877 
       
   878         /**
       
   879         * Gets two digit support status value
       
   880         * @return two digit support status (EFalse/ETrue)
       
   881         */
       
   882         const TBool& TwoDigitSupportStatus() const; 
       
   883   
       
   884         /**
       
   885         * Gets VoiceMailBoxNumber for Line 1 information from TPEBasicInfo-structure
       
   886         * @return line 1 VoiceMailBoxNumber information
       
   887         */
       
   888         const TPEPhoneNumber& VoiceMailBoxNumberLine1() const;
       
   889 
       
   890         /**
       
   891         * Gets VoiceMailBoxNumber for Line 2 information from TPEBasicInfo-structure
       
   892         * @return line 2 VoiceMailBoxNumber information
       
   893         */
       
   894         const TPEPhoneNumber& VoiceMailBoxNumberLine2() const;   
       
   895         
       
   896         /**
       
   897         * Get log forced completion indicator. 
       
   898         * @param TInt aCallId, call identification.
       
   899         * @return TBool&, log forced completion indicator.
       
   900         */
       
   901         TBool LogForcedCompletion( const TInt aCallId ) const;
       
   902 
       
   903         /**
       
   904         * Gets whole outgoing phone number
       
   905         * @param TInt aCallId, call identification.
       
   906         * @return TPEPhoneNumber&, remote party number including DTMF string.
       
   907         */
       
   908         const TPEPhoneNumber& WholeOutgoingPhoneNumber( const TInt aCallId ) const;
       
   909                              
       
   910         /**
       
   911         * Gets emergency numbers of the phone from TPEGsmBasicInfo-structure
       
   912         * @return emergency number to be checked for validity
       
   913         */
       
   914         const TPEPhoneNumber& EmergencyNumber() const;
       
   915 
       
   916         /**
       
   917         * ResumeHeldCall
       
   918         * @param aCallId is the call identification number.
       
   919         * @return TBool.
       
   920         */
       
   921         TBool ResumeHeldCall( const TInt aCallId ) const;
       
   922         
       
   923         /**
       
   924          * From base class MPEDataStore
       
   925          * @see MPEDataStore::CallIndex
       
   926          */
       
   927         TInt CallIndex( TInt aCallId ) const;
       
   928 
       
   929     // Functions from MPEDataStore (setting values)
       
   930     public:
       
   931         /**
       
   932         * Resets TPECallInfo parameters.
       
   933         * @param aCallId is the Call identification number.
       
   934         * @return None.
       
   935         */
       
   936         void ResetCallInfo( const TInt aCallId );              
       
   937 
       
   938         /**
       
   939         * Reset remote information
       
   940         * @param aCallId is the Call identification number.
       
   941         */
       
   942         void ResetRemoteInfo( const TInt aCallId );
       
   943 
       
   944         /**
       
   945         * Set the group id's which are active to play ring tone.
       
   946         * @param aAlertForGroup group id .
       
   947         */
       
   948         void SetAlertForGroup( const TArray< TContactItemId >& aAlertForGroup );
       
   949 
       
   950         /**
       
   951         * Sets audio mute state of the phone to TPEBasicInfo-structure
       
   952         * @param aAudioMute is audio mute state of the phone (ETrue = mute on)
       
   953         */
       
   954         void SetAudioMute( const TBool aAudioMute );
       
   955 
       
   956         /**
       
   957         * Sets audio output path
       
   958         * @param aOutput is the audio output path.
       
   959         * @param aPreviousOutput is the audio previous output path.
       
   960         * @param aShowNote is audio note value
       
   961         */
       
   962         void SetAudioOutput( const TPEAudioOutput aOutput,
       
   963                                       const TPEAudioOutput aPreviousOutput,
       
   964                                       const TBool aShowNote );
       
   965 
       
   966         /**
       
   967         * Sets hands free mode of the phone to TPEBasicInfo-structure
       
   968         * @param aHandsfreeMode is handsfree mode of the phone(on,off).
       
   969         */
       
   970         void SetAvailableAudioOutputs( 
       
   971             const TArray< TPEAudioOutput >& aAvailableOutputs );
       
   972 
       
   973         // TODO: change TInt param to enum type when it is available
       
   974         /**
       
   975         * Sets audio output preference to TPEBasicInfo-structure
       
   976         * @param aOutputPreference is audio output preference (public/private)
       
   977         */
       
   978         void SetAudioOutputPreference( const TInt aOutputPreference );
       
   979         
       
   980         /**
       
   981         * Sets audio volume of the phone to TPEBasicInfo-structure
       
   982         * @param aAudioVolume is audio volume of the phone.
       
   983         */
       
   984         void SetAudioVolume( const TInt aAudioVolume );
       
   985 
       
   986         /**
       
   987         * Sets phone client information to TPECallInfo-structure
       
   988         * @param aClientInformation includes phone client information.
       
   989         * @param aCallId is the Call identification number.
       
   990         */
       
   991         void SetCallClientInformation( 
       
   992             const MPEClientInformation& aClientInformation, 
       
   993             const TInt aCallId );
       
   994                        
       
   995         /**
       
   996         * Sets Call direction to TPECallInfo-structure
       
   997         * @param aCallDirection is the Call direction value (0=Unknown/1=MO/2=MT)
       
   998         * @param aCallId is the Call identification number.
       
   999         */
       
  1000         void SetCallDirection( 
       
  1001             const RMobileCall::TMobileCallDirection& aCallDirection, 
       
  1002             const TInt aCallId );
       
  1003 
       
  1004         /**
       
  1005         * Sets call duration of the last call to Idle to TPEBasicInfo-structure
       
  1006         * @param aCallDuration is the duration of the call.
       
  1007         */
       
  1008         void SetCallDuration( const TInt& aCallDuration ); 
       
  1009 
       
  1010         /**
       
  1011         * Sets duration of the call to TPECallInfo-structure
       
  1012         * @param aDuration is duration of the call. 
       
  1013         * @param aCallId is the Call identification number.
       
  1014         */
       
  1015         void SetCallDuration( 
       
  1016             const TTimeIntervalSeconds& aCallDuration, 
       
  1017             const TInt aCallId );
       
  1018 
       
  1019         /**
       
  1020         * Set caller image
       
  1021         * @param aCallerImage caller image
       
  1022         * @param aCallId is the call identification number
       
  1023         */
       
  1024         void SetCallerImage(
       
  1025             const TPtrC aCallerImage, 
       
  1026             const TInt aCallId );
       
  1027 
       
  1028         /**
       
  1029         * Set caller text
       
  1030         * @param aCallerText caller text
       
  1031         * @param aCallId is the call identification number
       
  1032         */
       
  1033         void SetCallerText(
       
  1034             const TPtrC aCallerText, 
       
  1035             const TInt aCallId );
       
  1036 
       
  1037         /**
       
  1038         * Set caller thumbnail
       
  1039         * @param aCallerThumbnail caller thumbnail
       
  1040         * @param aCallId is the call identification number
       
  1041         */
       
  1042         void SetCallerThumbnail(
       
  1043             CFbsBitmap* aCallerThumbnail, 
       
  1044             const TInt aCallId );
       
  1045         
       
  1046         /**
       
  1047         * Set caller thumbnail status
       
  1048         * @param aStatus caller thumbnail status
       
  1049         * @param aCallId is the call identification number
       
  1050         */
       
  1051         void SetHasCallerThumbnail(
       
  1052             TBool aStatus, 
       
  1053             const TInt aCallId );
       
  1054 
       
  1055         /**
       
  1056         * Sets call origin for the next call attempt
       
  1057         * @param aOrigin indicates if the call is phone, client or SAT originated
       
  1058         */
       
  1059         void SetCallOriginCommand( const TPECallOrigin& aOrigin );
       
  1060 
       
  1061         /**
       
  1062         * Sets predefined dtmf strings
       
  1063         * @param aArray, is reference to string array
       
  1064         * @param aCallId, is the call identification number
       
  1065         */
       
  1066         void SetPredefinedDtmfStrings( 
       
  1067             const CDesCArray& aArray, 
       
  1068             const TInt aCallId );
       
  1069  
       
  1070         /**
       
  1071         * Sets start time of the call to TPECallInfo-structure
       
  1072         * @param aStartTime is the start time of the call.
       
  1073         * @param aCallId is the Call identification number.
       
  1074         */
       
  1075         void SetCallStartTime( const TTime& aCallStartTime, const TInt aCallId );
       
  1076 
       
  1077         /**
       
  1078         * Sets Call State value to TPECallInfo-structure
       
  1079         * @param aCallState is call state value.
       
  1080         * @param aCallId is the Call identification number.
       
  1081         */
       
  1082         void SetCallState( const TPEState& aCallState, const TInt aCallId );
       
  1083 
       
  1084         /**
       
  1085         * Sets call type information
       
  1086         * @param aCallType is the call type.
       
  1087         * @param aCallId is the Call identification number.
       
  1088         */
       
  1089         void SetCallType( const TPECallType& aCallType, const TInt aCallId );
       
  1090 
       
  1091         /**
       
  1092         * Sets Secure status to call info
       
  1093         * @since Series60_4.0
       
  1094         * @param SecureStatus is the secure status (on/off)
       
  1095         * @param aCallId is the Call identification number.
       
  1096         */
       
  1097         void SetCallSecureStatus( const TBool aSecureStatus, const TInt aCallId );
       
  1098 
       
  1099         /**
       
  1100         * Sets call state of a conference call
       
  1101         * @param aCallState is call state value.
       
  1102         */
       
  1103         void SetConferenceCallState( const TPEState& aCallState );
       
  1104         
       
  1105         /**
       
  1106         * Sets Secure specified status to call info
       
  1107         * @since Series60_5.0
       
  1108         * @param SecureSpecifiedStatus is the secure status (on/off)
       
  1109         */
       
  1110         void SetSecureSpecified( const TBool aSecureSpecifiedStatus );        
       
  1111         
       
  1112         /**
       
  1113         * Set user group ids this contact is assigned to
       
  1114         * Array is reset if the operation fails.
       
  1115         * @param aGroupIdArray array of group ids
       
  1116         * @param aCallId is the Call identification number
       
  1117         */
       
  1118         void SetContactGroups(
       
  1119             TArray< TContactItemId >& aGroupIdArray,
       
  1120             const TInt aCallId );
       
  1121 
       
  1122         /**
       
  1123         * Set contact link or id
       
  1124         * @param aContactId pointer to contact id
       
  1125         * @param aCallId is the Call identification number
       
  1126         * @return 
       
  1127         */
       
  1128         void SetContactId(
       
  1129                 CPhCntContactId* aContactId,
       
  1130                 const TInt aCallId );
       
  1131 
       
  1132         /**
       
  1133         * Sets dtmf postfix value to TPEBasicInfo-structure
       
  1134         * @param aDtmfPostFix is persed dtmf postfix. 
       
  1135         * @param aCallId is the call identification number.
       
  1136         */
       
  1137         void SetDtmfPostFix( const TPEDtmfString& aDtmfPostFix, const TInt aCallId );
       
  1138                 
       
  1139         /**
       
  1140         * Sets dtmf string value to TPEBasicInfo-structure
       
  1141         * @param aDtmfString is the dtmf string to be sent. 
       
  1142         */
       
  1143         void SetDtmfString( const TPEDtmfString& aDtmfString );
       
  1144         
       
  1145         /**
       
  1146         * Sets DTMFVoiceMailBoxNumber for Line 1 information from TPEGsmBasicInfo-structure
       
  1147         * @param aDTMFVoiceMailBoxNumberLine1 includes line 1 DTMFVoiceMailBoxNumber information.  
       
  1148         */
       
  1149         void SetDTMFVoiceMailBoxNumberLine1( const  TDesC& aDTMFVoiceMailBoxNumberLine1 );
       
  1150 
       
  1151         /**
       
  1152         * Sets DTMFVoiceMailBoxNumber for Line 2 information from TPEGsmBasicInfo-structure
       
  1153         * @param aDTMFVoiceMailBoxNumberLine2 includes line 2 DTMFVoiceMailBoxNumber information.  
       
  1154         */
       
  1155         void SetDTMFVoiceMailBoxNumberLine2( const  TDesC& aDTMFVoiceMailBoxNumberLine2 );
       
  1156  
       
  1157         /**
       
  1158         * Sets error code of the phone to TPEBasicInfo-structure
       
  1159         * @param aErrorCode is error code value
       
  1160         */
       
  1161         void SetErrorCode( const TInt aErrorCode );
       
  1162 
       
  1163         /**
       
  1164         * Sets Keypad volume of the phone to TPEBasicInfo-structure
       
  1165         * @param aKeypadVolume is Keypad volume of the phone.
       
  1166         */
       
  1167         void SetKeypadVolume( const TInt aKeypadVolume );
       
  1168 
       
  1169         /**
       
  1170         * Sets lifetimer data of the phone to TPEBasicInfo-structure
       
  1171         * @param aLifeTimerData lifetime data (TDesc8&).
       
  1172         */
       
  1173         void SetLifeTimerData( TCCPLifeTimeDataPckg& aPckg );
       
  1174 
       
  1175         /**
       
  1176         * Sets a logging indicator to TPECallInfo-tructure
       
  1177         * @param aLoggingIndicator, Continuous logging indicator.
       
  1178         * @param aCallId, the call identification number.
       
  1179         */
       
  1180         void SetLoggingIndicator( const TBool aLoggingIndicator, const TInt aCallId );
       
  1181 
       
  1182         /**
       
  1183         * Set missed call indicator. 
       
  1184         * @param TBool& aMissedCall, missed call indicator.
       
  1185         * @param TInt aCallId, call identification.
       
  1186         */
       
  1187         void SetMissedCall( const TBool& aMissedCall, const TInt aCallId );
       
  1188 
       
  1189         /**
       
  1190         * Sets network information to TPEBasicInfo-structure
       
  1191         * @param aNetworkInfo is the current network information.
       
  1192         */
       
  1193         void SetNetworkRegistrationStatus( 
       
  1194             const TNWNetworkRegistrationStatus& aRegistrationStatus );
       
  1195 
       
  1196         /**
       
  1197         * Set personal ringing tone
       
  1198         * Used to set a ringing tone defined for one of the user groups
       
  1199         * if personal tone is not found
       
  1200         * @param aRingingTonepath, personal ringing tone
       
  1201         * @param aCallId, call identification number
       
  1202         */
       
  1203         void SetPersonalRingingTone(
       
  1204             const TPEContactFileName& aRingingTonepath,
       
  1205             const TInt aCallId );
       
  1206 
       
  1207         /**
       
  1208         * Sets personal tone status value to TPEBasicInfo-structure.
       
  1209         * @param aPersonalTone is personal tone status (EFalse/ETrue).
       
  1210         */
       
  1211         void SetPersonalToneStatus( const TInt& aPersonalToneStatus );
       
  1212 
       
  1213         /**
       
  1214         * Sets phone number to TPECallCommandInfo-structure
       
  1215         * @param aPhoneIdentityParameters is the phone identity parameters
       
  1216         */
       
  1217         void SetPhoneIdentityParameters( 
       
  1218             const TPEPhoneIdentityParameters& aPhoneIdentityParameters );
       
  1219         
       
  1220         /**
       
  1221         * Sets phone number parsing result
       
  1222         * @param aServiceCode indicates if phone number a service code
       
  1223         */
       
  1224         void SetPhoneNumberIsServiceCode( const TBool& aServiceCode );
       
  1225 
       
  1226         /**
       
  1227         * Sets profile id to TPEBasicInfo-structure
       
  1228         * @param aProfileId is the identification number of the profile
       
  1229         */
       
  1230         void SetProfileId( const TInt aProfileId );
       
  1231 
       
  1232         /**
       
  1233         * Sets profile name to TPEBasicInfo-structure
       
  1234         * @param aProfileName is the name of the profile
       
  1235         */
       
  1236         void SetProfileName( const TPEProfileName& aProfileName );
       
  1237 
       
  1238         /**
       
  1239         * Sets remote identity status
       
  1240         * @param aIdentity is the status of identity 
       
  1241         */
       
  1242         void SetRemoteIdentity( 
       
  1243             const RMobileCall::TMobileCallRemoteIdentityStatus& aIdentity, 
       
  1244             const TInt aCallId );
       
  1245 
       
  1246         /**
       
  1247         * Set contact company name
       
  1248         * @param aCompanyName company name
       
  1249         * @param aCallId, is the call identification number
       
  1250         */
       
  1251         void SetRemoteCompanyName(
       
  1252             const TPEContactName& aCompanyName, 
       
  1253             const TInt aCallId );
       
  1254 
       
  1255         /**
       
  1256         * Set remote end connected phone number
       
  1257         * @param aColpNumber phone number
       
  1258         * @param aCallId, is the call identification number.
       
  1259         */
       
  1260         void SetRemoteColpNumber(
       
  1261             TPEPhoneNumber& aColpNumber, 
       
  1262             const TInt aCallId );
       
  1263 
       
  1264         /**
       
  1265         * Set contact name
       
  1266         * Depending on user selected language may be in order:
       
  1267         * first + last name OR last + first name
       
  1268         * @param aContactName contact name
       
  1269         * @param aCallId, is the call identification number
       
  1270         */
       
  1271         void SetRemoteName(
       
  1272             const TPEContactName& aContactName, 
       
  1273             const TInt aCallId );
       
  1274 
       
  1275         /**
       
  1276         * Set remote end phone number
       
  1277         * @param aPhoneNumber phone number
       
  1278         * @param aCallId, is the call identification number
       
  1279         */
       
  1280         void SetRemotePhoneNumber(
       
  1281             const TPEPhoneNumber& aPhoneNumber, 
       
  1282             const TInt aCallId );
       
  1283 
       
  1284         /**
       
  1285         * Set remote end phone number type
       
  1286         * @param aPhoneNumberType phone number id
       
  1287         * @param aCallId, is the call identification number
       
  1288         */
       
  1289         void SetRemotePhoneNumberType(
       
  1290             TPEPhoneNumberIdType aPhoneNumberType, 
       
  1291             const TInt aCallId );
       
  1292 
       
  1293         /**
       
  1294         * Set remote end Text To Speech Text
       
  1295         * @param aText Text To Speech Text
       
  1296         * @param aCallId, is the call identification number
       
  1297         */
       
  1298         void SetRemoteTextToSpeechText(
       
  1299             HBufC* aText,
       
  1300             TInt aCallId );
       
  1301 
       
  1302         /**
       
  1303         * Sets ringing type to TPEBasicInfo-structure
       
  1304         * @param aRingingToneName is the current ringintone name for line 1. 
       
  1305         */
       
  1306         void SetRingingTone1( const TPEContactFileName& aRingingToneName );
       
  1307         
       
  1308         /**
       
  1309         * Sets ringing type to TPEBasicInfo-structure
       
  1310         * @param aRingingToneName is the current ringintone name for line 2.
       
  1311         */
       
  1312         void SetRingingTone2( const TPEContactFileName& aRingingToneName );
       
  1313 
       
  1314         /**
       
  1315         * Sets video call ringing tone name to TPEBasicInfo-structure
       
  1316         * @param aRingingToneName is the current ringintone name for video call.
       
  1317         */
       
  1318         void SetVideoCallRingingTone( 
       
  1319             const TPEContactFileName& aRingingToneName );
       
  1320         
       
  1321         /**
       
  1322         * Sets ringing type to TPEBasicInfo-structure
       
  1323         * @param aRinginType is the ringintype
       
  1324         */
       
  1325         void SetRingingType( const TProfileRingingType& aRingingType );
       
  1326                 
       
  1327         /**
       
  1328         * Sets ringing volume to TPEBasicInfo-structure
       
  1329         * @param aRingingVolume is the current ringingtone name. 
       
  1330         */
       
  1331         void SetRingingVolume( const TInt& aRingingVolume );
       
  1332 
       
  1333         /**
       
  1334         * Sets text-to-speech to TPEBasicInfo-structure
       
  1335         * @param aTextToSpeech is the current text-to-speech preference setting. 
       
  1336         */
       
  1337         void SetTextToSpeech( const TBool aTextToSpeech );
       
  1338 
       
  1339          /**
       
  1340         * Sets two digit support status of the phone to TPEBasicInfo-structure
       
  1341         * @param aTwoDigitSupportStatus is support status (EFalse/ETrue).
       
  1342         */
       
  1343         void SetTwoDigitSupportStatus( const TBool aTwoDigitSupportStatus );
       
  1344 
       
  1345         /**
       
  1346         * Gets VoiceMailBoxNumber for Line 1 information from TPEGsmBasicInfo-structure
       
  1347         * @param aVMBXL1 includes line 1 VoiceMailBoxNumber information.  
       
  1348         */
       
  1349         void SetVoiceMailBoxNumberLine1( const  TDesC& aVoiceMailBoxNumberLine1 );
       
  1350 
       
  1351         /**
       
  1352         * Gets VoiceMailBoxNumber for Line 2 information from TPEGsmBasicInfo-structure
       
  1353         * @param aVMBXL2 includes line 2 VoiceMailBoxNumber information.  
       
  1354         */
       
  1355         void SetVoiceMailBoxNumberLine2( const  TDesC& aVoiceMailBoxNumberLine2 );
       
  1356 
       
  1357         /**
       
  1358         * Set log forced completion indicator. 
       
  1359         * @param TBool aForcedCOmpletion, log forced completion indicator.
       
  1360         * @param TInt aCallId, call identification.
       
  1361         */
       
  1362         void SetLogForcedCompletion(  const TBool aForcedCompletion, const TInt aCallId );
       
  1363        
       
  1364         /**
       
  1365         * Sets whole outgoing phone number 
       
  1366         * @param aPhoneNumber is the phone number
       
  1367         * @param TInt aCallId, call identification.
       
  1368         */
       
  1369         void SetWholeOutgoingPhoneNumber( 
       
  1370             const TPEPhoneNumber& aPhoneNumber, 
       
  1371             const TInt aCallId );
       
  1372         
       
  1373         /**
       
  1374         * Returns the service-id used for the command.
       
  1375         * @since S60 3.2
       
  1376         * @param none
       
  1377         * @return TUint32 Service-id
       
  1378         */
       
  1379         TUint32 ServiceIdCommand() const;
       
  1380         
       
  1381         /**
       
  1382         * Set the service-id for the command.
       
  1383         * @since S60 3.2
       
  1384         * @param TUint32 Service-id
       
  1385         * @return none
       
  1386         */
       
  1387         void SetServiceIdCommand( TUint32 aServiceId );
       
  1388         
       
  1389         /**
       
  1390         * Returns the service-id used for the call.
       
  1391         * @since S60 3.2
       
  1392         * @param none
       
  1393         * @return TUint32 Service-id
       
  1394         */
       
  1395         TUint32 ServiceId( const TInt aCallId ) const;
       
  1396         
       
  1397         /**
       
  1398         * Set the service-id for the call.
       
  1399         * @since S60 3.2
       
  1400         * @param TUint32 Service-id
       
  1401         * @return none
       
  1402         */
       
  1403         void SetServiceId( const TInt aCallId, TUint32 aServiceId );
       
  1404         
       
  1405                 
       
  1406         /**
       
  1407         * Sets Barring information to TPEGsmBasicInfo-structure
       
  1408         * @param aBarringInfo includes call Barring information
       
  1409         * @return
       
  1410         */
       
  1411         void SetBarringInfo( const TPEBarringInfo& aBarringInfo );
       
  1412 
       
  1413         /**
       
  1414         * Sets Confrence value to TPEGsmCallInfo-structure
       
  1415         * @param aCallConference informs is the call a member of conference call. 
       
  1416         * -2 = normal call, -1 = conference master, >= 0 master id
       
  1417         * @param aCallId is the Call identification number.
       
  1418         * @return None.
       
  1419         */
       
  1420         void SetCallConference( const TInt aCallConference, const TInt aCallId );
       
  1421 
       
  1422         /**
       
  1423         * Sets Call control caps to TPEGsmCallInfo-structure
       
  1424         * @param aCallControlCaps the value of the call control caps
       
  1425         * @param aCallId is the Call identification number.
       
  1426         * @return None.
       
  1427         */
       
  1428         void SetCallControlCaps( const TPECallControlCaps& aCallControlCaps, const TInt aCallId );
       
  1429 
       
  1430         /**
       
  1431         * Sets forwarded value to TPEGsmCallInfo-structure
       
  1432         * @param aForwarded Indicates if incoming call was forwarded
       
  1433         * @param aCallId is the Call identification number.
       
  1434         * @return None.
       
  1435         */
       
  1436         void SetCallForwarded( const TBool aCallForwarded, const TInt aCallId );
       
  1437 
       
  1438         /**
       
  1439         * Sets Call service to TPEGsmCallInfo-structure
       
  1440         * @param aCallService is the Call service value
       
  1441         * @param aCallId is the Call identification number.
       
  1442         * @return None.
       
  1443         */
       
  1444         void SetCallService( 
       
  1445             const RMobilePhone::TMobileService& aCallService, 
       
  1446             const TInt aCallId );
       
  1447 
       
  1448        /**
       
  1449         * Sets Conference capabilities to TPEGsmCallInfo structure.
       
  1450         * @param aCaps, conference capabilities
       
  1451         * @param aCallId is the Call identification number.
       
  1452         * @return None.
       
  1453         */
       
  1454         void SetConferenceCallCaps( const TUint32 aCaps, const TInt aCallId );
       
  1455 
       
  1456         /**
       
  1457         * Sets added or removed members TName information to TPEGsmCallInfo structure
       
  1458         * @param aName is the TName information of added or removed member.
       
  1459         * @param aCallId is the Call identification number.
       
  1460         * @return None.
       
  1461         */
       
  1462         void SetConferenceMemberInfo( 
       
  1463             const TName& aConferenceMemberName, 
       
  1464             const TInt aConferenceMemberCallId, 
       
  1465             const TInt aCallId );
       
  1466 
       
  1467         /**
       
  1468         * Sets deflect information to the TPEGsmBasicInfo structure.
       
  1469         * @param aActiveForward is the active forward information.
       
  1470         * @return None.
       
  1471         */
       
  1472         void SetDeflectInfo( const TPEActiveForwardInfo& aActiveForward );           
       
  1473 
       
  1474         /**
       
  1475         * Set iResumeHeldCall value to TPEGsmCallInfo structure
       
  1476         * @param aResumeHeldCall
       
  1477         * @param aCallId is the Call identification number.
       
  1478         * @return None.
       
  1479         */
       
  1480         void SetResumeHeldCall( const TBool aResumeHeldCall, const TInt aCallId );
       
  1481 
       
  1482         /**
       
  1483         * Sets the number of conference members to TPEGsmCallInfo structure
       
  1484         * @param aNumberOfMembers, number of conference members
       
  1485         * @param aCallId is the Call identification number.
       
  1486         * @return None.
       
  1487         */
       
  1488         void SetNumberOfConferenceMembers( const TInt aNumberOfMembers, const TInt aCallId );
       
  1489 
       
  1490         /**
       
  1491         * Sets Sim state to TPEGsmBasicInfo-structure
       
  1492         * @param aSimState is the Sim state
       
  1493         * @return None.
       
  1494         */
       
  1495         void SetSimState( const TPESimState& aSimState );
       
  1496 
       
  1497         /**
       
  1498         * Sets Suplementary Services command information to TPESSCommandInfo-structure
       
  1499         * @param aSSCommandInfo includes Suplementary Services command information.  
       
  1500         * @return None.
       
  1501         */
       
  1502         void SetSSCommandInfo( const TPESSCommandInfo& aSSCommandInfo );
       
  1503 
       
  1504         /**
       
  1505          * @see MPEDataStore::UserToUserInformation
       
  1506          * @since S60 5.0
       
  1507          */
       
  1508 		void SetUserToUserInformation( const TPEUserToUserInfo& aUUI );
       
  1509 		
       
  1510         /**
       
  1511          * Sets remote party name given by network to TPECallInfo structure.
       
  1512          * @param aName Remote party name.
       
  1513          * @param aCallId Call identification number.
       
  1514          */
       
  1515         void SetRemotePartyName(    
       
  1516             const TPEContactName& aName, 
       
  1517             const TInt aCallId );
       
  1518 
       
  1519         CCCECallParameters& CallParameters();       
       
  1520         
       
  1521         /**
       
  1522          * From base class MPEDataStore
       
  1523          * @see MPEDataStore::SetCallIndex
       
  1524          */
       
  1525         void SetCallIndex( TInt aCallIndex, TInt aCallId );
       
  1526         
       
  1527         /**
       
  1528          * From base class MPEDataStore
       
  1529          * @see MPEDataStore::SetCallOrigin          
       
  1530          */
       
  1531         void SetCallOrigin( TPECallOrigin aOrigin, TInt aCallId );
       
  1532                 
       
  1533     private:
       
  1534           /**
       
  1535         * C++ default constructor.
       
  1536         */
       
  1537         CPEEngineInfoImpl();
       
  1538 
       
  1539         /**
       
  1540         * By default EPOC constructor is private.
       
  1541         */
       
  1542         void ConstructL();                      
       
  1543 
       
  1544     protected: // Data
       
  1545         // Contains information of the calls
       
  1546         RPointerArray<CPECallInfo> iCurrentCalls;
       
  1547 
       
  1548         // Contains information of the conference call
       
  1549         TPEConferenceCallInfo iConferenceCallInfo;
       
  1550         
       
  1551         // For Mobile Originated Call Commands information
       
  1552         TPECallCommandInfo iCallCommandInfo;
       
  1553 
       
  1554         // Contains information of the phone related variables 
       
  1555         TPEBasicInfo iBasicInfo;
       
  1556 
       
  1557         // Remote data array
       
  1558         RPointerArray< CPERemoteInfo >* iRemoteInfo;
       
  1559 
       
  1560         // Available audio outputs array
       
  1561         TFixedArray<TBool, KPEMaxAudioOutputs> iAvailableAudioOutputs;
       
  1562 
       
  1563         // Contains the group id's which are active for ringtone
       
  1564     	RArray< TContactItemId > iAlertForGroup;
       
  1565 
       
  1566         /**
       
  1567          * CCE call dial parameters
       
  1568          */
       
  1569         CCCECallParameters *iCallParams;
       
  1570 
       
  1571     };
       
  1572 
       
  1573 
       
  1574 #endif // CPEENGINEINFOIMPL_H   
       
  1575             
       
  1576 // End of File