diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmvoicecalltsy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmvoicecalltsy.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,479 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#ifndef CMMVOICECALLTSY_H +#define CMMVOICECALLTSY_H + +// INCLUDES +#include "cmmcalltsy.h" +#include + +#include "ctsysystemstatepluginhandler.h" + +// FORWARD DECLARATIONS +class CMmVoiceLineTsy; +class MTelephonyAudioControl; + +// CLASS DECLARATION + +/** + * CMmVoiceCallTsy contains extended voice call functionality that + * is mode-dependent. + */ +NONSHARABLE_CLASS( CMmVoiceCallTsy ) : public CMmCallTsy, + public MCtsySsmPluginCallback + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aMmPhone Pointer to the Phone object + * @param aMmLine Pointer to the Line from which this call object has + * been created. + * @param aMode Call mode + * @param aName Name of this call + * @param aMessageManager Pointer to the Message Manager object + * @param aTelephonyAudioControl Pointer Telephony Audio Control + * @return Created call object + */ + static CMmVoiceCallTsy* NewL( CMmPhoneTsy* aMmPhone, + CMmVoiceLineTsy* aMmLine, + RMobilePhone::TMobileService aMode, + TDes& aName, + CMmMessageManagerBase* aMessageManager, + MTelephonyAudioControl* aTelephonyAudioControl ); + + /** + * Destructor. + */ + ~CMmVoiceCallTsy(); + + // New functions + + /** + * Complete emergency call + * + * + * @param aResult Result of the request + */ + void CompleteDialEmergencyCall( TInt aResult ); + + /** + * Complete hang up + * + * + * @param aResult Result of the request + */ + void CompleteHangUp( TInt aResult ); + + /** + * Complete hold request + * + * + * @param aResult Result of the request + */ + void CompleteHold( TInt aResult ); + + /** + * Complete resume request + * + * + * @param aResult Result of the request + */ + void CompleteResume( TInt aResult ); + + /** + * Complete swap request + * + * + * @param aResult Result of the request + */ + void CompleteSwap( TInt aResult ); + + /** + * Completes GoOneToOne request + * + * + * @param aErrorCode error code + */ + void CompleteGoOneToOne( TInt aErrorCode ); + + /** + * Complete status change notification + * + * + * @param aResult Result of the request + * @param aDataPackage: new call status value + */ + void CompleteNotifyStatusChange( TInt aResult, + CMmDataPackage* aDataPackage ); + + /** + * Fills current parameters of mobile call info + * + * + * @param aInfo Pointer to mobile call information + * @return Return value to ETel server + */ + TInt FillMobileCallInfo( TDes8* aInfo ); + +#ifdef REQHANDLE_TIMER + /** + * Calls the appropriate complete method due timer expiration + * + * + * @param aReqHandleType TSY request handle type. + * @param aError Error value for completion + */ + void Complete( TInt aReqHandleType, TInt aError ); +#endif + /** + * Completes emergency nbr check for 3rd party clients + * + * @param aIsEmergencyNbr boolean indicating check result + */ + void Complete3rdPartyCallNbrCheck( TBool aIsEmergencyNbr ); + + public: // Functions from base classes + + /** + * Returns request mode for given IPC number + * + * + * @param aIpc IPC number of the request + * @return Request mode + */ + CTelObject::TReqMode ReqModeL( const TInt aIpc ); + + /** + * Returns number of slots to be used for a given IPC + * + * + * @param aIpc IPC number of the request + * @return Number of slots for this request + */ + TInt NumberOfSlotsL( const TInt aIpc ); + + /** + * Cancels request that's IPC number and request handle are given as + * parameters + * + * + * @param aIpc IPC number of the request + * @param aTsyReqHandle Request handle from ETel server + * @return KErrNone/KErrNotSupported + */ + TInt CancelService( const TInt aIpc, + const TTsyReqHandle aTsyReqHandle ); + + /** + * Register given notification + * + * + * @param aIpc IPC number of the request + * @return TInt Result of the request + */ + TInt RegisterNotification( const TInt aIpc ); + + /** + * Deregister given notification + * + * + * @param aIpc IPC number of the request + * @return Result of the request + */ + TInt DeregisterNotification( const TInt aIpc ); + + /** + * Dials a call. + * + * + * @param aTsyReqHandle Tsy request handle + * @param aCallParams Call parameters + * @param aTelNumber Phone number to be called + * @return KErrNone or KErrNotSupported + */ + TInt Dial( const TTsyReqHandle aTsyReqHandle, + const TDesC8* aCallParams, TDesC* aTelNumber ); + + /** + * Answers to an incoming call + * + * + * @param aTsyReqHandle Request handle from the ETel server + * @param aCallParams Call parameters + * @return KErrNone/KErrNotSupported + */ + TInt AnswerIncomingCall( const TTsyReqHandle aTsyReqHandle, + const TDesC8* /*aCallParams*/ ); + + /** + * Hangs up the call + * + * + * @param aTsyReqHandle Request handle from ETel server + * @return KErrNone/KErrNotSupported + */ + TInt HangUp( const TTsyReqHandle aTsyReqHandle ); + + /** + * Returns bearer service information to the client. + * + * + * @param aTsyReqHandle TSY request handle + * @param aBearerService Contains Bearer service info on return + * @return KErrNotSupported + */ + TInt GetBearerServiceInfo( const TTsyReqHandle /*aTsyReqHandle*/, + RCall::TBearerService* /*aBearerService*/ ); + + /** + * Connects to an existing call (data calls). + * + * + * @param aTsyReqHandle Tsy request handle + * @param aCallParams Call parameters + * @return KErrNotSupported + */ + TInt Connect( const TTsyReqHandle /*aTsyReqHandle*/, + const TDesC8* /*aCallParams*/ ); + + /** + * Cancels connecting of a (data) call + * + * + * @param aTsyReqHandle Tsy request handle + * @return KErrNotSupported + */ + TInt ConnectCancel( const TTsyReqHandle /*aTsyReqHandle*/ ); + + /** + * Loans the dataport to the client. + * + * + * @param aTsyReqHandle TSY request handle + * @param aCommPort Comm port + * @return KErrNotSupported + */ + TInt LoanDataPort( const TTsyReqHandle /*aTsyReqHandle*/, + RCall::TCommPort* /*aCommPort*/ ); + + /** + * Cancels dataport loaning. + * + * + * @param aTsyReqHandle Tsy request handle + * @return KErrNotSupported + */ + TInt LoanDataPortCancel( const TTsyReqHandle /*aTsyReqHandle*/ ); + + /** + * Recovers the dataport from the client. + * + * + * @param aTsyReqHandle + * @return KErrNotSupported + */ + TInt RecoverDataPort( const TTsyReqHandle /*aTsyReqHandle*/ ); + + /** + * Recovers the dataport from the client and relinquishes ownership. + * + * + * @return KErrNotSupported + */ + TInt RecoverDataPortAndRelinquishOwnership(); + + /** + * Dial a call with NoFdn check + * + * + * @param aTsyReqHandle Tsy request handle + * @param aCallParams Call parameters + * @param aTelNumber Phone number to be called + * @return Symbian error value + */ + TInt DialNoFdnCheck( const TTsyReqHandle aTsyReqHandle, + const TDesC8* aCallParams, TDesC* aTelNumber ); + + public: // Functions from MCtsySsmPluginCallback + /** + * This method is called from CMmCallGsmWcdmaExt, after + * sendinig request to LTSY + * + * @param aResult -- result, returned either from SSM or from LTSY + */ + void SsmPluginCallback(TInt aResult, TCtsySsmCallbackData& aCallbackData); + + protected: // New functions + + /** + * This method requests a private communication to the remote party of + * one call within a conference call. + * + * + * @param aTsyReqHandle Request handle from ETel server + * @return KErrNone/KErrNotSupported + */ + TInt GoOneToOneL( const TTsyReqHandle aTsyReqHandle ); + + /** + * Is this call an emergency call + * + * + * @return TRUE if emergency call, otherwise FALSE + */ + TBool IsEmergencyCall() const; + + /** + * Change emergency call mode + * + * @param aIsEmergency is call emergency call or normal call + */ + void SetEmergencyMode( TBool aIsEmergency ); + + private: // Constructors and destructor + + /** + * C++ default constructor. + */ + CMmVoiceCallTsy(); + + // new functions + + /** + * Establishes call routing control and updates its state. + * + * @param aCallName Call name + * @param aMobileCallStatus Call status + */ + void UpdateCallRoutingControl( const TName& aCallName, + RMobileCall::TMobileCallStatus aMobileCallStatus ); + + private: // Functions from base classes + + /** + * Initialises miscellaneous internal attributes + * + * + */ + void InitInternalAttributes(); + + /** + * DoExtFuncL is called by the server when it has a "extended", + * i.e. non-core ETel request for the TSY. To process a request handle, + * request type and request data are passed to the TSY. + * + * + * @param aTsyReqHandle Request handle from ETel server + * @param aIpc IPC number of the request + * @param aPackage Reference to the input parameters. + * @return KErrNone/KErrNotSupported + */ + TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle, + const TInt aIpc, const TDataPackage& aPackage ); + + /** + * Sets the call on hold + * + * + * @param aTsyReqHandle TSY request handle + * @return Return value to the ETel Server + */ + TInt HoldL( const TTsyReqHandle aTsyReqHandle ); + + /** + * Resumes a held call + * + * + * @param aTsyReqHandle TSY request handle + * @return Return value to the ETel Server + */ + TInt ResumeL( const TTsyReqHandle aTsyReqHandle ); + + /** + * Swaps between the active and held call + * + * + * @param aTsyReqHandle TSY request handle + * @return Return value to the ETel Server + */ + TInt SwapL( const TTsyReqHandle aTsyReqHandle ); + + /** + * Creates an emergency call + * + * + * @param aTsyReqHandle TSY request handle + * @param aNumber Emergency number + * @return Return value to the ETel Server + */ + TInt DialEmergencyCall( const TTsyReqHandle aTsyReqHandle, + const TDataPackage& aNumber); + + /** + * Cancels creation of an emergency call + * + * + * @param aTsyReqHandle TSY request handle + * @return Return value to the ETel Server + */ + TInt DialEmergencyCallCancel( const TTsyReqHandle aTsyReqHandle ); + +#ifdef REQHANDLE_TIMER + /** + * Chooses the type of response, automatic or common + * + * + * @param aReqHandleType TSY request handle type. + * @param aTsyReqHandle TSY request handle to be stored. + */ + void SetTypeOfResponse( const TInt aReqHandleType, + const TTsyReqHandle aTsyReqHandle ); +#endif + + public: //Data + + /** + * Boolean indicating number check state for 3rd party clients + */ + TBool i3rdPartyEmergencyNumberCheckDone; + + /** + * Emergency number check mode + */ + RMmCustomAPI::TEmerNumberCheckMode iNumberCheckMode; + + private: //Data + + /** + * Temporary store for call params + */ + const TDesC8* iISVCallParams; + + /** + * Dial made by 3rd Party client + */ + TBool iIsDialISV; + + }; + +#endif // CMMVOICECALLTSY_H + +// End of File