diff -r b31261fd4e04 -r ccd8e69b5392 tsrc/etelstub/inc/etel.h --- a/tsrc/etelstub/inc/etel.h Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1190 +0,0 @@ -/* -* Copyright (c) 1997-2007 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: -* -*/ - -/** -@file -@publishedAll -@released -*/ - -#if !defined(__ETEL_H__) -/** @internalComponent */ -#define __ETEL_H__ - -#if !defined(__E32BASE_H__) -#include -#endif - -#if !defined (__C32COMM_H__) -#include -#endif - -#if !defined(__D32COMM_H__) -#include -#endif - -#if !defined(__FAXDEFN_H) -#include -#endif -/** Major version number.*/ -const TUint KEtelMajorVersionNumber=1; -/** Minor version number. */ -const TUint KEtelMinorVersionNumber=0; -/** Build number. */ -const TUint KEtelBuildVersionNumber=606; -/** -@internalComponent -*/ -IMPORT_C void PanicClient(TInt aFault); - -// -// Etel Core Error Definitions -// - -const TInt KErrEtelCoreBase = -2000; - -/** The client is not the call owner and has attempted to perform an operation -that requires ownership.*/ -const TInt KErrEtelNotCallOwner=KErrEtelCoreBase; -/** An attempt has been made to load an ETel (TSY) module which contains a phone -with the same name as one already loaded. */ -const TInt KErrEtelDuplicatePhoneName=KErrEtelCoreBase-1; -/** An attempt has been made to acquire call ownership when the requesting client -is already the call owner. */ -const TInt KErrEtelAlreadyCallOwner=KErrEtelCoreBase-2; -/** A connection has been terminated because the carrier has been lost. */ -const TInt KErrEtelNoCarrier=KErrEtelCoreBase-3; -/** An attempt to establish a connection with the RCall::Dial() function has failed -because the remote party's line was busy. */ -const TInt KErrEtelBusyDetected=KErrEtelCoreBase-4; -/** An attempt has been made to transfer call ownership, but no other clients are -interested in acquiring ownership. */ -const TInt KErrEtelNoClientInterestedInThisCall=KErrEtelCoreBase-5; -/** The TSY has failed to initialise the modem. This may be occur if the modem -is disconnected during initialisation, or if an attempt is made to initialise -an unsupported modem. */ -const TInt KErrEtelInitialisationFailure=KErrEtelCoreBase-6; -/** An attempt has been made to perform an operation which requires the call to -be connected - when the call is not connected. E.g. RCall:LoanDataPort(). */ -const TInt KErrEtelCallNotActive=KErrEtelCoreBase-7; -/** A connection request has failed because there is no answer. */ -const TInt KErrEtelNoAnswer=KErrEtelCoreBase-8; -/** A connection request has failed because there is no dial tone. For example, -if there is no connection between the modem and the network. */ -const TInt KErrEtelNoDialTone=KErrEtelCoreBase-9; -/** An attempt to configure the port has failed because the hardware cannot match -the desired configuration. For example, if an attempt is made to configure -the comms port to a baud rate it cannot support. */ -const TInt KErrEtelConfigPortFailure=KErrEtelCoreBase-10; -/** Out of memory error - global chunk cannot be created. */ -const TInt KErrEtelFaxChunkNotCreated=KErrEtelCoreBase-11; -/** The client is not the fax owner and has attempted to perform an operation that -requires fax ownership. - -The fax client should be used to access fax functionality. Consequently, client -code should not return this error. */ -const TInt KErrEtelNotFaxOwner=KErrEtelCoreBase-12; -/** An attempt has been made to perform an operation which requires port ownership. -However, the client does not own the port. */ -const TInt KErrEtelPortNotLoanedToClient=KErrEtelCoreBase-13; -/** An operation has failed because the modem has been incorrectly configured. */ -const TInt KErrEtelWrongModemType=KErrEtelCoreBase-14; -/** An operation has failed because the modem does not understand the request - -possible bug in modem. */ -const TInt KErrEtelUnknownModemCapability=KErrEtelCoreBase-15; -/** The call has already placed an 'answer incoming call' request. Only 1 request -of a type (e.g. fax, voice, data) can be outstanding on the server at a time. */ -const TInt KErrEtelAnswerAlreadyOutstanding=KErrEtelCoreBase-16; -/** An attempt to establish a connection with the modem has failed because the -modem cannot be detected. */ -const TInt KErrEtelModemNotDetected=KErrEtelCoreBase-17; -/** Operation failed because the modem settings are corrupt. */ -const TInt KErrEtelModemSettingsCorrupt=KErrEtelCoreBase-18; -/** The Data port is in use by another call or application. */ -const TInt KErrEtelPortAlreadyLoaned=KErrEtelCoreBase-19; -/** Another call active. Close it before opening a new one. */ -const TInt KErrEtelCallAlreadyActive=KErrEtelCoreBase-20; - -// -// -// RTelSubSessionBase -// -// -class CPtrHolder; -class RFile; -/** -A base class used in the derivation of RCall, RLine, and RPhone. It has no user -accessible functions. - -@publishedPartner -@released -*/ -class RTelSubSessionBase : public RSubSessionBase - { -public: // Some stub stuff - enum TCalledFunction - { - ENone, - ECancelAsyncRequest - }; - -public: - inline RSessionBase& SessionHandle() const; - inline void SetSessionHandle(RSessionBase& aSession); - inline TInt SubSessionHandle(); - - IMPORT_C void CancelAsyncRequest(TInt aReqToCancel) const; - - enum TReqPriorityType - { - EIsNotaPriorityRequest, - EIsaPriorityRequest, - EIsaEmergencyRequest - }; - -protected: - - IMPORT_C RTelSubSessionBase(); - IMPORT_C TInt Blank(const TInt aIpc,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Blank(const TInt aIpc,TRequestStatus& aStatus,TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes1,const TDesC8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes1,const TDesC8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes1,TDes8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt Set(const TInt aIpc,const TDesC16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C TInt Get(const TInt aIpc,TDes16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt Set(const TInt aIpc,const TDesC16& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC16& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt Get(const TInt aIpc,TDes16& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC8& aDes1, TDes8& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, TDes8& aDes1, const TDesC16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC8&, TDes16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const; - IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC16& aDes1, TDes16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt Set(const TInt aIpc, const RFile& aFile, TReqPriorityType aType = EIsNotaPriorityRequest) const; - - IMPORT_C TInt CancelReq(const TInt aIpc,const TInt aIpcToCancel) const; - IMPORT_C TInt CancelSubSession() const; - -private: - RTelSubSessionBase(const RTelSubSessionBase& aTelSubSessionBase); - RSessionBase* iTelSession; -protected: - CPtrHolder* iPtrHolder; - mutable TRequestStatus* iReqStatus; - mutable TRequestStatus* iReqStatus2; - - }; - -// -// -// RFax -// -// -class RCall; -/** -ETel fax subsession. - -Contains the fax client progress information structure. - -ETel does include server-side RFax objects, however the -associated APIs are intended solely for use by ETel's own -fax client. Consequently, only the TProgress structure is -considered part of the public API. - -@publishedPartner -@released -*/ -class RFax : public RTelSubSessionBase - { -public: - IMPORT_C RFax(); - IMPORT_C TInt Open(RCall& aCall); - IMPORT_C void Close(); - -// -// Read,Write and Wait for Page End -// - IMPORT_C void Read(TRequestStatus& aStatus,TDes8& aDes); - IMPORT_C void Write(TRequestStatus& aStatus,const TDesC8& aDes); - IMPORT_C void WaitForEndOfPage(TRequestStatus& aStatus) const; - IMPORT_C TInt TerminateFaxSession() const; -// -// Progress Information -// - struct TProgress - /** Contains fax progress information.*/ - { - /** Time of last progress update.*/ - TTime iLastUpdateTime; - /** ID of remote fax - filled in after connection.*/ - TBuf<20> iAnswerback; - - /** Phase of session.*/ - TFaxPhase iPhase; - /** Resolution of document.*/ - TFaxResolution iResolution; - /** Compression method in use.*/ - TFaxCompression iCompression; - /** Error correction mode. Reserved for future releases.*/ - TInt iECM; - - /** Last or current page being transferred.*/ - TInt iPage; - /** Last or current line on page.*/ - TInt iLines; - /** Speed of fax session.*/ - TInt iSpeed; - }; - - IMPORT_C TInt GetProgress(TProgress& aProgress); -private: - TProgress* iProgressPtr; - RChunk iChunk; -protected: - IMPORT_C virtual void ConstructL(); - IMPORT_C virtual void Destruct(); - }; - -// -// -// RCall -// -// -class RTelServer; -class RPhone; -class RLine; -/** -Call sub-session. - -Provides access to the functionality associated with a specific call. - -This class is not intended for user derivation. - -@publishedPartner -@released -*/ -class RCall : public RTelSubSessionBase - { -public: - IMPORT_C RCall(); - IMPORT_C TInt OpenNewCall(RTelServer& aServer,const TDesC& aName,TDes& aNewName); - IMPORT_C TInt OpenNewCall(RTelServer& aServer,const TDesC& aName); - IMPORT_C TInt OpenNewCall(RPhone& aPhone,const TDesC& aName,TDes& aNewName); - IMPORT_C TInt OpenNewCall(RPhone& aPhone,const TDesC& aName); - IMPORT_C TInt OpenNewCall(RLine& aLine,TDes& aNewName); - IMPORT_C TInt OpenNewCall(RLine& aLine); - IMPORT_C TInt OpenExistingCall(RTelServer& aServer,const TDesC& aName); - IMPORT_C TInt OpenExistingCall(RPhone& aPhone,const TDesC& aName); - IMPORT_C TInt OpenExistingCall(RLine& aLine,const TDesC& aName); - IMPORT_C void Close(); - -// -// Call Status -// -/** Call status flags. */ - enum TStatus - { - /** The call status is not known. */ - EStatusUnknown, - /** The call is idle. */ - EStatusIdle, - /** The call is dialling. */ - EStatusDialling, - /** The call is ringing (an incoming, unanswered call). */ - EStatusRinging, - /** The call is being answered. */ - EStatusAnswering, - /** The call is connecting (immediate call establishment, without dialling). */ - EStatusConnecting, - /** The call is connected and active. */ - EStatusConnected, - /** The call is being terminated. */ - EStatusHangingUp - }; - - IMPORT_C TInt GetStatus(TStatus& aStatus) const; - -// -// Call Caps -// -/** Call capability flags. */ - enum TCapsEnum - { - /** The call supports data calls. */ - KCapsData=0x00000001, - /** The call supports fax calls. */ - KCapsFax=0x00000002, - /** The call supports voice calls. */ - KCapsVoice=0x00000004, - /** The Dial request is currently a valid action. */ - KCapsDial=0x00000008, - /** The Connect request is currently a valid action. */ - KCapsConnect=0x00000010, - /** The Hang Up request is currently a valid action. */ - KCapsHangUp=0x00000020, - /** The Answer request is currently a valid action. */ - KCapsAnswer=0x00000040, - /** The Loan Data Port request is currently a valid action. */ - KCapsLoanDataPort=0x00000080, - /** The Recover Data Port request is currently a valid action. */ - KCapsRecoverDataPort=0x00000100 - }; - - struct TCaps -/** Call capability information. */ - { - /** Call capability flag. Contains a bitmask of values defined in the TCapsEnum - enumeration.*/ - TUint iFlags; - }; - - IMPORT_C TInt GetCaps(TCaps& aCaps) const; - IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps); - IMPORT_C void NotifyCapsChangeCancel() const; - -// -// Bearer Service Information -// -/** Bearer capability flags. */ - enum TBearerCaps - { - /** V42bis modem compression protocol. */ - KBearerCapsCompressionV42bis=0x00000001, - /** MNP5 modem compression protocol. */ - KBearerCapsCompressionMNP5=0x00000002, - /** No compression supported. */ - KBearerCapsCompressionNone=0x00000004, - /** LAPM error correction protocol. */ - KBearerCapsProtocolLAPM=0x00000008, - /** MNP10 mode. */ - KBearerCapsProtocolALT_CELLULAR=0x00000010, - /** MNP error correction. */ - KBearerCapsProtocolALT=0x00000020, - /** No protocol information provided. */ - KBearerCapsProtocolNone=0x00000040, - /** Compression protocol unknown. */ - KBearerCapsCompressionUnknown=0x00000080, - /** Unable to establish protocol. */ - KBearerCapsProtocolUnknown=0x00000100 - }; - -/** Bearer speed flags. */ - enum TCallBearerSpeed - { - /** Transfer rate of 57600 bps. */ - EBearerData57600, - /** Transfer rate of 33600 bps. */ - EBearerData33600, - /** Transfer rate of 31200 bps. */ - EBearerData31200, - /** Transfer rate of 9200 bps. */ - EBearerData19200, - /** Transfer rate of 4400 bps. */ - EBearerData14400, - /** Transfer rate of 12000 bps. */ - EBearerData12000, - /** Transfer rate of 9600 bps. */ - EBearerData9600, - /** Transfer rate of 7200 bps. */ - EBearerData7200, - /** Transfer rate of 4800 bps. */ - EBearerData4800, - /** Transfer rate of 2400 bps. */ - EBearerData2400, - /** Transfer rate of 200 bps. */ - EBearerData1200, - /** V.23 75 bps forward, 1200 bps back */ - EBearerData75_1200, - /** V.23 1200 bps forward, 75 bps back */ - EBearerData1200_75, - /** Transfer rate of 300 bps. */ - EBearerData300, - /** Transfer rate is unknown. */ - EBearerDataUnknown - }; - - struct TBearerService -/** Call bearer information. - -@see TCallBearerSpeed */ - { - /** The bearer capabilities. */ - TUint32 iBearerCaps; - /** The bearer's speed. - - @see TCallBearerSpeed */ - TCallBearerSpeed iBearerSpeed; - }; - - IMPORT_C TInt GetBearerServiceInfo(TBearerService& aBearerService) const; - -// -// Notifications -// -/** Hook status flags. */ - enum THookStatus - { - /** The line is currently off hook. */ - EHookStatusOff, - /** The line is currently on hook. */ - EHookStatusOn, - /** The status of the line's hook is currently unknown */ - EHookStatusUnknown - }; - - class TCallInfo -/** Line call capability information. - -@see TName -@publishedAll -@released -*/ - { - public: - IMPORT_C TCallInfo(); - /** The name of a call. - - @see TName */ - TName iCallName; - TName iLineName; - THookStatus iHookStatus; - /** The call status. - - @see RCall::TStatus */ - TStatus iStatus; - TTimeIntervalSeconds iDuration; - }; - - IMPORT_C TInt GetInfo(TCallInfo& aCallInfo) const; - IMPORT_C void NotifyHookChange(TRequestStatus& aStatus,THookStatus& aHookStatus); - IMPORT_C void NotifyHookChangeCancel() const; - IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,TStatus& aCallStatus); - IMPORT_C void NotifyStatusChangeCancel() const; - IMPORT_C void NotifyCallDurationChange(TRequestStatus& aStatus,TTimeIntervalSeconds& aTime); - IMPORT_C void NotifyCallDurationChangeCancel() const; - -// -// Duration of call -// - IMPORT_C TInt GetCallDuration(TTimeIntervalSeconds& aTime) const; -// -// Connecting and Disconnecting -// -/** Passes telephone numbers into Dial functions. */ - typedef TDesC TTelNumberC; - IMPORT_C TInt Dial(const TTelNumberC& aTelNumber) const; - IMPORT_C TInt Dial(const TDesC8& aCallParams,const TTelNumberC& aTelNumber) const; - IMPORT_C void Dial(TRequestStatus& aStatus,const TTelNumberC& aTelNumber); - IMPORT_C void Dial(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber); - IMPORT_C void DialCancel() const; - IMPORT_C TInt Connect() const; - IMPORT_C TInt Connect(const TDesC8& aCallParams) const; - IMPORT_C void Connect(TRequestStatus& aStatus); - IMPORT_C void Connect(TRequestStatus& aStatus,const TDesC8& aCallParams); - IMPORT_C void ConnectCancel() const; - IMPORT_C TInt AnswerIncomingCall() const; - IMPORT_C TInt AnswerIncomingCall(const TDesC8& aCallParams) const; - IMPORT_C void AnswerIncomingCall(TRequestStatus& aStatus); - IMPORT_C void AnswerIncomingCall(TRequestStatus& aStatus,const TDesC8& aCallParams); - IMPORT_C void AnswerIncomingCallCancel() const; - IMPORT_C TInt HangUp() const; - IMPORT_C void HangUp(TRequestStatus& aStatus) const; - IMPORT_C void HangUpCancel() const; - -// -// Call Data Access -// - struct TCommPort -/** Communications port information. - -@see TFileName */ - { - /** The CSY module used by the C32 Communications Server to talk to the serial - device. - @deprecated This has been deprecated as all the information that is needed by the - lower layers is now being passed in iPort. - - @see TFileName */ - TFileName iCsy; - /** The port used by the C32 Communications Server to talk to the serial device. - It holds both the Csy name and the Port name. - - @see TName */ - TName iPort; - }; - - IMPORT_C TInt LoanDataPort(TCommPort& aDataPort) const; - IMPORT_C void LoanDataPort(TRequestStatus& aStatus,TCommPort& aDataPort); - IMPORT_C void LoanDataPortCancel() const; - IMPORT_C TInt RecoverDataPort() const; - -// -// Call Ownership manipulation -// -/** Call ownership status flags. */ - enum TOwnershipStatus - { - /** The call is not owned. */ - EOwnershipUnowned, - /** The call is owned, but not by this RCall instance. */ - EOwnershipOwnedByAnotherClient, // not the priority client - /** The call is owned by this RCall instance. */ - EOwnershipOwnedByThisClient, - /** The call is owned, but not by the priority client */ - EOwnershipThisIsPriorityClient // not owned by this (the priority) client - }; - - IMPORT_C TInt TransferOwnership() const; - IMPORT_C void AcquireOwnership(TRequestStatus& aStatus) const; - IMPORT_C void AcquireOwnershipCancel() const; - IMPORT_C TInt GetOwnershipStatus(TOwnershipStatus& aOwnershipStatus) const; - // -// -// Get and Set Call Parameters -// -/** Monitor speaker control setting flags. */ - enum TMonitorSpeakerControl - { - /** Speaker control is always off */ - EMonitorSpeakerControlAlwaysOff, - /** Speaker control is on until the carrier is detected */ - EMonitorSpeakerControlOnUntilCarrier, - /** Speaker control is always active. */ - EMonitorSpeakerControlAlwaysOn, - /** Speaker control is on, except while dialling */ - EMonitorSpeakerControlOnExceptDuringDialling, - /** Speaker control is unknown. */ - EMonitorSpeakerControlUnknown - }; - -/** Monitor speaker volume control setting flags. */ - enum TMonitorSpeakerVolume - { - /** Speaker volume is off. */ - EMonitorSpeakerVolumeOff, - /** Speaker volume is low. */ - EMonitorSpeakerVolumeLow, - /** Speaker volume is medium. */ - EMonitorSpeakerVolumeMedium, - /** Speaker volume is high. */ - EMonitorSpeakerVolumeHigh, - /** Speaker volume is unknown. */ - EMonitorSpeakerVolumeUnknown - }; - -/** Wait for dial tone flags. */ - enum TWaitForDialTone - { - /** Waiting for dial tone. */ - EDialToneWait, - /** Not waiting for dial tone. */ - EDialToneNoWait - }; - - class TCallParams - /** - @publishedAll - @released - */ - { - public: - IMPORT_C TCallParams(); - IMPORT_C TCallParams(TMonitorSpeakerControl aSpeakerControl, - TMonitorSpeakerVolume aSpeakerVolume, - TUint aInterval, - TWaitForDialTone aWaitForDialTone); - IMPORT_C TInt ExtensionId(); - IMPORT_C TBool IsDefault(); - TMonitorSpeakerControl iSpeakerControl; - TMonitorSpeakerVolume iSpeakerVolume; - TUint iInterval; - TWaitForDialTone iWaitForDialTone; - protected: - TBool iIsDefault; - TInt iExtensionId; - }; - -/** Call parameters package - -The call parameters to be associated with a call may be passed into functions -using this type. - -@see TCallParams */ - typedef TPckg TCallParamsPckg; - - IMPORT_C TInt GetCallParams(TDes8& aParams) const; - -// -// Fax Settings -// -/** Fax mode flags. */ - enum TFaxMode - { - /** Fax is transmitting */ - ETransmit, - /** Fax is receiving. */ - EReceive - }; - -/** Fax retrieval type flags. */ - enum TFaxRetrieveType - { - /** Retrieving a fax opened from voice call (not currently supported by GSM networks). */ - EFaxOnDemand, - /** Retrieve a fax opened from fax call. */ - EFaxPoll - }; - -/** Fax identifier size flags. */ - enum TConstants - { - /** 20 */ - KFaxIdUserNameMaxSize=20 - }; - - struct TFaxSessionSettings -/** Fax session settings information. - -@see TFaxMode */ - { - /** The fax mode. - - @see TFaxMode */ - TFaxMode iMode; - /** The mode of retrieving faxes. - - @see TFaxRetrieveType */ - TFaxRetrieveType iFaxRetrieveType; - /** The class of fax - - @see TFaxClass */ - TFaxClass iFaxClass; - /** The fax identifier string displayed at the top of the fax. - - @see KFaxIdUserNameMaxSize */ - TBuf iFaxId; - /** The maximum transfer speed that can be negotiated. */ - TInt iMaxSpeed; - /** The minimum transfer speed that should be negotiated. */ - TInt iMinSpeed; - /** The preferred compression mode used for negotiation. This may take one of the - following values: EModifiedHuffman, EModifiedRead, EUncompressedModifiedRead, - EModifiedModifiedRead. */ - TInt iPreferredECM; - /** The delay used for Fax on Demand services. Measured in seconds. */ - TInt iFaxOnDemandDelay; - // Tx Settings - /** The preferred transmit resolution. This may take one of the following values: - EFaxNormal EFaxFine - - @see TFaxResolution */ - TFaxResolution iTxResolution; - /** Compression mode for transmitting faxes. - - @see TFaxCompression */ - TFaxCompression iTxCompression; - /** The number of pages to be transmitted. */ - TInt iTxPages; - // Rx Settings - /** The preferred receive resolution. This may take one of the following values: - EFaxNormal EFaxFine. - - @see TFaxResolution */ - TFaxResolution iRxResolution; - /** Compression mode for receiving faxes. - - @see TFaxCompression */ - TFaxCompression iRxCompression; - }; - - IMPORT_C TInt GetFaxSettings(TFaxSessionSettings& aSettings) const; - IMPORT_C TInt SetFaxSettings(const TFaxSessionSettings& aSettings) const; - IMPORT_C TInt AdoptFaxSharedHeaderFile(const RFile& aSharedFile) const; -// -// Retrieval of call objects' reference count -// - IMPORT_C TInt ReferenceCount() const; - -protected: - IMPORT_C virtual void ConstructL(); - IMPORT_C virtual void Destruct(); - }; - -// -// -// RLine -// -// -class RPhone; -/** -Provides access to the functionality associated with a specific line. - -This class is not intended for user derivation. - -@publishedPartner -@released -*/ -class RLine : public RTelSubSessionBase - { -public: - IMPORT_C RLine(); - IMPORT_C TInt Open(RPhone& aPhone,const TDesC& aName); - IMPORT_C TInt Open(RTelServer& aServer,const TDesC& aName); - IMPORT_C void Close(); - -// -// Caps -// -/** Line capability flags. */ - enum TCapsFlags - { - /** The line supports data connections.*/ - KCapsData=0x00000001, - /** The line supports fax connections. */ - KCapsFax=0x00000002, - /** The line supports voice connections.*/ - KCapsVoice=0x00000004, - /** The line supports incoming call notification requests. */ - KCapsEventIncomingCall=0x00010000, - }; - - struct TCaps -/** Line capability information. */ - { - /** Line capability flag. Contains a bitmask of the values defined in the TCapsFlags - enumeration.*/ - TUint iFlags; - }; - - IMPORT_C TInt GetCaps(TCaps& aCaps) const; - IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps); - IMPORT_C void NotifyCapsChangeCancel() const; - -// -// Line and Hook Status -// - IMPORT_C TInt GetStatus(RCall::TStatus& aStatus) const; - IMPORT_C TInt GetHookStatus(RCall::THookStatus& aHookStatus) const; - -// -// Call enumeration and Information -// - struct TCallInfo -/** Line call capability information. - -@see TName */ - { - /** The name of a call. - - @see TName */ - TName iCallName; - /** The call status. - - @see RCall::TStatus */ - RCall::TStatus iStatus; - /** The call capabilities flag. - - @see RCall::TCapsEnum*/ - TUint32 iCallCapsFlags; - }; - - IMPORT_C TInt EnumerateCall(TInt& aCount) const; - IMPORT_C TInt GetCallInfo(TInt aIndex,TCallInfo& aCallInfo) const; -// -// General line notification information -// - class TLineInfo -/** Line information. - -@see RCall::TStatus -@publishedAll -@released -*/ - { - public: - IMPORT_C TLineInfo(); - RCall::THookStatus iHookStatus; - /** The current line status. - - @see RCall::TStatus */ - RCall::TStatus iStatus; - TName iNameOfLastCallAdded; - TName iNameOfCallForAnswering; // if an incoming call occurs, this contains the name - // of the call to answer it on. - }; - -// -// Notifications -// - IMPORT_C TInt GetInfo(TLineInfo& aLineInfo) const; - IMPORT_C void NotifyIncomingCall(TRequestStatus& aStatus, TName& aName); - IMPORT_C void NotifyIncomingCallCancel() const; - IMPORT_C void NotifyHookChange(TRequestStatus& aStatus,RCall::THookStatus& aHookStatus); - IMPORT_C void NotifyHookChangeCancel() const; - IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,RCall::TStatus& aLineStatus); - IMPORT_C void NotifyStatusChangeCancel() const; - IMPORT_C void NotifyCallAdded(TRequestStatus& aStatus,TName& aName); - IMPORT_C void NotifyCallAddedCancel() const; -protected: - IMPORT_C virtual void ConstructL(); - IMPORT_C virtual void Destruct(); - }; - -// -// -// RPhone -// -// -class RTelServer; -/** -Phone sub-session. - -Provides access to the functionality associated with a specific phone. - -This class is not intended for user derivation. - -@publishedPartner -@released -*/ -class RPhone : public RTelSubSessionBase - { -public: - IMPORT_C RPhone(); - IMPORT_C TInt Open(RTelServer& aSession,const TDesC& aName); - IMPORT_C void Close(); - -// -// Initialisation -// - IMPORT_C TInt Initialise(); - IMPORT_C void Initialise(TRequestStatus& aStatus); - IMPORT_C void InitialiseCancel(); - -// -// Caps -// -/** Phone capability flags. */ - enum TCapsFlags - { - /** The capabilities of the phone are not known. */ - KCapsUnknown=0x00000001, - /** The phone supports data calls. */ - KCapsData=0x00000002, - /** The phone supports the fax class 1 interface. */ - KCapsFaxClassOne=0x0000004, - /** The phone supports the fax class 1.0 interface. */ - KCapsFaxClassOnePointZero=0x0000008, - /** The phone supports the fax class 2 interface. */ - KCapsFaxClassTwo=0x00000010, - /** The phone supports the fax class 2.0 interface. */ - KCapsFaxClassTwoPointZero=0x00000020, - /** The phone supports the fax class 2.1 interface. */ - KCapsFaxClassTwoPointOne=0x00000040, - /** The phone supports voice calls. */ - KCapsVoice=0x00000080, - /** The phone supports modem detection events, i.e. it can notify clients when - the modem can be or can no longer be detected. */ - KCapsEventModemDetection=0x00010000, - /** The phone supports the ability to take the communications port from whatever - component is currently using it. */ - KCapsStealCommPort=0x00020000 - }; - - struct TCaps -/** Phone capability information. */ - { - /** Phone capability flag. Contains bitmask of values defined in the TCapsFlags - enumeration. */ - TUint iFlags; - }; - - IMPORT_C TInt GetCaps(TCaps& aCaps) const; - IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps); - IMPORT_C void NotifyCapsChangeCancel() const; - -// -// Status -// -/** Phone mode status flags. */ - enum TMode - { - /** Phone (modem) status unknown. */ - EModeUnknown, - /** Phone is idle. */ - EModeIdle, - /** Phone is establishing link. */ - EModeEstablishingLink, - /** Modem is in data mode. */ - EModeOnlineData, - /** Modem is in command mode and the line is active. */ - EModeOnlineCommand - }; - -/** Modem connection status flags. */ - enum TModemDetection - { - /** Modem present. */ - EDetectedPresent, - /** Modem is not present. */ - EDetectedNotPresent, - /** Modem connection status is unknown. */ - EDetectedUnknown - }; - - struct TStatus -/** Current phone status. - -@see TModemDetection */ - { - /** The current modem connection status. - - @see TModemDetection */ - TModemDetection iModemDetected; - /** The current mode of the phone. - - @see TMode */ - TMode iMode; - }; - - IMPORT_C TInt GetStatus(TStatus& aStatus) const; - -// -// Line Enumeration and Information -// - struct TLineInfo -/** Line information. - -@see RCall::TStatus */ - { - /** The current line status. - - @see RCall::TStatus */ - RCall::TStatus iStatus; - /** The line capabilities flag. - - @see RLine::TCapsFlags */ - TUint32 iLineCapsFlags; - /** The name of the line. - - @see TName */ - TName iName; - }; - - IMPORT_C TInt EnumerateLines(TInt& aCount) const; - IMPORT_C TInt GetLineInfo(const TInt aIndex,TLineInfo& aLineInfo) const; - -// -// General phone notification information -// - class TPhoneInfo -/** Phone notification information. - -Collects all the information associated with an instance of the core API phone -class is collected together into a single, directly accessible, structure. -This increases the efficiency of applications that require access to the majority -of the phone's data. - -This class is not intended for user derivation. - -@see TNetworkType -@publishedAll -@released -*/ - { - public: - IMPORT_C TPhoneInfo(); - /** The current modem detection state (is it present or not). - - @see TModemDetection */ - TModemDetection iDetection; - }; - - IMPORT_C TInt GetInfo(TPhoneInfo& aPhoneInfo) const; - -// -// Notifications -// - IMPORT_C void NotifyModemDetected(TRequestStatus& aStatus,TModemDetection& aDetection); - IMPORT_C void NotifyModemDetectedCancel() const; - -// -// TEmergencyRequest is a bit-mask where each bit-flag represents -// the emergency request type that the client wishes to handle -// - enum TEmergencyRequest - { - /** Location Based Services Emergency Request */ - EEmergencyLCSRequest = 0x00000001, - /** Circuit Switch Voice Call Emergency Request */ - EEmergencyCSVoiceCallRequest = 0x00000002, - }; - - IMPORT_C TInt SetEmergencyClient(const TUint32 aEmergencyRequest) const; - -protected: - IMPORT_C virtual void ConstructL(); - IMPORT_C virtual void Destruct(); - }; - -// -// -// RTelServer -// -// -/** -Root telephony server session. - -Provides access to general telephony information and functionality. Clients -wishing to use the ETel Server must open a connection with the root server -using the functions defined in this class. They may then obtain information -about loaded TSY modules, and the phones that they support. To access functionality -associated with a specific phone, the client must open a sub-session for that -phone. - -This class is not intended for user derivation. - -@publishedPartner -@released -*/ -class RTelServer : public RSessionBase - { -public: - enum { KDefaultMessageSlots=32 }; - - IMPORT_C RTelServer(); - IMPORT_C TInt Connect(TInt aMessageSlots =KDefaultMessageSlots); - inline TVersion Version() const; - -// -// Enumeration and Information -// -/** Types of telephony connection flags. */ - enum TNetworkType - { - /** Wired analog network. */ - ENetworkTypeWiredAnalog, - /** Wired digital network (not supported by ETel). */ - ENetworkTypeWiredDigital, - /** Mobile analog network (not supported by ETel). */ - ENetworkTypeMobileAnalog, - /** Mobile digital network. */ - ENetworkTypeMobileDigital, - /** Unknown network type. */ - ENetworkTypeUnknown - }; - - struct TPhoneInfo -/** Phone notification information. - -Collects all the information associated with an instance of the core API phone -class is collected together into a single, directly accessible, structure. -This increases the efficiency of applications that require access to the majority -of the phone's data. - -This class is not intended for user derivation. - -@see TNetworkType */ - { - /** The type of telephony connection supported by the phone. - - @see TNetworkType */ - TNetworkType iNetworkType; - /** The name of the phone. - - @see TName */ - TName iName; - /** The number of lines supported by the phone. */ - TUint iNumberOfLines; - /** The extensions that the TSY module supports. */ - TUint iExtensions; - }; - - IMPORT_C TInt EnumeratePhones(TInt& aNoOfPhones) const; - IMPORT_C TInt GetPhoneInfo(const TInt aIndex,TPhoneInfo& aInfo) const; - IMPORT_C TInt GetTsyName(const TInt aIndexOfPhone, TDes& aTsyName) const; - -// -// Load and Unload Phone modules -// - - IMPORT_C TInt LoadPhoneModule(const TDesC& aFileName) const; - IMPORT_C TInt UnloadPhoneModule(const TDesC& aFileName) const; - -// -// Check whether specified Phone module (TSY) supports certain functionality -// - - IMPORT_C TInt IsSupportedByModule(const TDesC& aTsyName, const TInt aMixin, TBool& aResult) const; - IMPORT_C TInt GetTsyVersionNumber(const TDesC& aTsyName,TVersion& aVersion) const; -// -// Set this session as Priority client -// - /** @deprecated This function has been deprecated. Use RTelServer::SetPriorityClientV2 followed by - RPhone::SetEmergencyClient(EEmergencyCSVoiceCallRequest) */ - IMPORT_C TInt SetPriorityClient() const; - -// -// Set this session to receive detailed errors -// - -/** Error granularity flags. */ - enum TErrorGranularity - { - /** Client is only interested in core errors */ - EErrorBasic, - /** Client is interested in extended errors */ - EErrorExtended - }; - - IMPORT_C TInt SetExtendedErrorGranularity(const TErrorGranularity aGranularity) const; - -// -// Debug calls - stubbed in release builds -// - IMPORT_C TInt __DbgMarkHeap(); - IMPORT_C TInt __DbgCheckHeap(TInt aCount); - IMPORT_C TInt __DbgMarkEnd(TInt aCount); - IMPORT_C TInt __DbgFailNext(TInt aCount); - IMPORT_C TInt __DbgFailNextAvailable(TBool& aResult); - -// -// Set this session as Priority client -// - IMPORT_C TInt SetPriorityClientV2() const; - - }; - -//#include "etel.inl" -#endif