networkingtestandutils/networkingunittest/tdummyetel/dummyEtel.h
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkingtestandutils/networkingunittest/tdummyetel/dummyEtel.h	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,775 @@
+// Copyright (c) 1997-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:
+//
+
+#if !defined(__ETEL_H__)
+#define __ETEL_H__      
+// Still define ETEL_H so we don't accidentally pick up the real etel.h
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined (__C32COMM_H__)
+#include <c32comm.h>
+#endif
+
+#if !defined(__D32COMM_H__)
+#include <d32comm.h>
+#endif
+
+#if !defined(__FAXDEFN_H)
+#include <faxdefn.h>
+#endif
+
+/**
+@internalTechnology
+*/
+const TUint KEtelMajorVersionNumber=1;
+const TUint KEtelMinorVersionNumber=0;
+const TUint KEtelBuildVersionNumber=606;
+
+/**
+@internalComponent
+*/
+IMPORT_C void PanicClient(TInt aFault);
+
+//
+// Etel Core Error Definitions
+//
+/**
+@internalTechnology
+*/
+const TInt KErrEtelCoreBase = -2000;
+
+const TInt KErrEtelNotCallOwner=KErrEtelCoreBase;
+const TInt KErrEtelDuplicatePhoneName=KErrEtelCoreBase-1;
+const TInt KErrEtelAlreadyCallOwner=KErrEtelCoreBase-2;
+const TInt KErrEtelNoCarrier=KErrEtelCoreBase-3;
+const TInt KErrEtelBusyDetected=KErrEtelCoreBase-4;
+const TInt KErrEtelNoClientInterestedInThisCall=KErrEtelCoreBase-5;
+const TInt KErrEtelInitialisationFailure=KErrEtelCoreBase-6;
+const TInt KErrEtelCallNotActive=KErrEtelCoreBase-7;
+const TInt KErrEtelNoAnswer=KErrEtelCoreBase-8;
+const TInt KErrEtelNoDialTone=KErrEtelCoreBase-9;
+const TInt KErrEtelConfigPortFailure=KErrEtelCoreBase-10;
+const TInt KErrEtelFaxChunkNotCreated=KErrEtelCoreBase-11;
+const TInt KErrEtelNotFaxOwner=KErrEtelCoreBase-12;
+const TInt KErrEtelPortNotLoanedToClient=KErrEtelCoreBase-13;
+const TInt KErrEtelWrongModemType=KErrEtelCoreBase-14;
+const TInt KErrEtelUnknownModemCapability=KErrEtelCoreBase-15;
+const TInt KErrEtelAnswerAlreadyOutstanding=KErrEtelCoreBase-16;
+const TInt KErrEtelModemNotDetected=KErrEtelCoreBase-17;
+const TInt KErrEtelModemSettingsCorrupt=KErrEtelCoreBase-18;
+const TInt KErrEtelPortAlreadyLoaned=KErrEtelCoreBase-19;
+const TInt KErrEtelCallAlreadyActive=KErrEtelCoreBase-20;
+
+class CPtrHolder;
+class RTelSubSessionBase : public RSubSessionBase
+/**
+@internalComponent
+*/
+	{
+public:
+	inline RSessionBase& SessionHandle() const;
+	inline void SetSessionHandle(RSessionBase& aSession);
+	inline TInt SubSessionHandle();
+
+	IMPORT_C void CancelAsyncRequest(TInt aReqToCancel) const;
+
+	enum TReqPriorityType
+		{
+		EIsNotaPriorityRequest,
+		EIsaPriorityRequest
+		};
+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 TInt CancelReq(const TInt aIpc,const TInt aIpcToCancel) const;
+	IMPORT_C TInt CancelSubSession() const;
+
+private:
+	RTelSubSessionBase(const RTelSubSessionBase& aTelSubSessionBase);
+	RSessionBase* iTelSession;
+protected:
+	CPtrHolder* iPtrHolder;
+	};
+
+class RCall;
+class RFax : public RTelSubSessionBase
+/**
+RFax
+@internalComponent
+*/
+	{
+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
+		{
+		TTime iLastUpdateTime;
+		TBuf<20> iAnswerback;
+
+		TFaxPhase iPhase;
+		TFaxResolution iResolution;
+		TFaxCompression iCompression;
+		TInt iECM;
+
+		TInt iPage;
+		TInt iLines;
+		TInt iSpeed;
+		};
+
+	IMPORT_C TInt GetProgress(TProgress& aProgress);
+private:
+	TProgress* iProgressPtr;
+	RChunk iChunk;
+protected:
+	IMPORT_C virtual void ConstructL();
+	IMPORT_C virtual void Destruct();
+	};
+
+class RTelServer;
+class RPhone;
+class RLine;
+class RCall : public RTelSubSessionBase
+/**
+RCall
+@internalComponent
+*/
+	{
+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
+//
+	enum TStatus
+		{
+		EStatusUnknown,
+		EStatusIdle,
+		EStatusDialling,
+		EStatusRinging,
+		EStatusAnswering,
+		EStatusConnecting,
+		EStatusConnected,
+		EStatusHangingUp
+		};
+
+	IMPORT_C TInt GetStatus(TStatus& aStatus) const;
+
+//
+// Call Caps
+//
+	enum TCapsEnum
+		{
+		KCapsData=0x00000001,
+		KCapsFax=0x00000002,
+		KCapsVoice=0x00000004,
+		KCapsDial=0x00000008,
+		KCapsConnect=0x00000010,
+		KCapsHangUp=0x00000020,
+		KCapsAnswer=0x00000040,
+		KCapsLoanDataPort=0x00000080,
+		KCapsRecoverDataPort=0x00000100
+		};
+
+	struct TCaps
+		{
+		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
+//
+	enum TBearerCaps
+		{
+		KBearerCapsCompressionV42bis=0x00000001,
+		KBearerCapsCompressionMNP5=0x00000002,
+		KBearerCapsCompressionNone=0x00000004,
+		KBearerCapsProtocolLAPM=0x00000008,
+		KBearerCapsProtocolALT_CELLULAR=0x00000010,
+		KBearerCapsProtocolALT=0x00000020,
+		KBearerCapsProtocolNone=0x00000040,
+		KBearerCapsCompressionUnknown=0x00000080,
+		KBearerCapsProtocolUnknown=0x00000100
+		};
+
+	enum TCallBearerSpeed
+		{
+		EBearerData57600,
+		EBearerData33600,
+		EBearerData31200,
+		EBearerData19200,
+		EBearerData14400,
+		EBearerData12000,
+		EBearerData9600,
+		EBearerData7200,
+		EBearerData4800,
+		EBearerData2400,
+		EBearerData1200,
+		EBearerData75_1200,
+		EBearerData1200_75,
+		EBearerData300,
+		EBearerDataUnknown
+		};
+
+	struct TBearerService
+		{
+		TUint32 iBearerCaps;
+		TCallBearerSpeed iBearerSpeed;
+		};
+
+ 	IMPORT_C TInt GetBearerServiceInfo(TBearerService& aBearerService) const;
+
+//
+// Notifications
+//
+	enum THookStatus
+		{
+		EHookStatusOff,
+		EHookStatusOn,
+		EHookStatusUnknown
+		};
+
+	class TCallInfo
+/**
+@internalComponent
+*/
+		{
+	public:
+		IMPORT_C TCallInfo();
+		TName iCallName;
+		TName iLineName;
+		THookStatus iHookStatus;
+		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
+//
+	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
+		{
+		TFileName iCsy;
+		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
+//
+	enum TOwnershipStatus
+		{
+		EOwnershipUnowned,
+		EOwnershipOwnedByAnotherClient,		// not the priority client
+		EOwnershipOwnedByThisClient,
+		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
+//
+	enum TMonitorSpeakerControl
+		{
+		EMonitorSpeakerControlAlwaysOff,
+		EMonitorSpeakerControlOnUntilCarrier,
+		EMonitorSpeakerControlAlwaysOn,
+		EMonitorSpeakerControlOnExceptDuringDialling,
+		EMonitorSpeakerControlUnknown
+		};
+
+	enum TMonitorSpeakerVolume
+		{
+		EMonitorSpeakerVolumeOff,
+		EMonitorSpeakerVolumeLow,
+		EMonitorSpeakerVolumeMedium,
+		EMonitorSpeakerVolumeHigh,
+		EMonitorSpeakerVolumeUnknown
+		};
+
+	enum TWaitForDialTone
+		{
+		EDialToneWait,
+		EDialToneNoWait
+		};
+
+	class TCallParams
+/**
+@internalComponent
+*/
+		{
+	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;
+		};
+
+	typedef TPckg<TCallParams> TCallParamsPckg;
+
+	IMPORT_C TInt GetCallParams(TDes8& aParams) const;
+
+//
+// Fax Settings
+//
+	enum TFaxMode
+		{
+		ETransmit,
+		EReceive
+		};
+
+	enum TFaxRetrieveType
+		{
+		EFaxOnDemand,
+		EFaxPoll
+		};
+
+	enum TConstants
+		{
+		KFaxIdUserNameMaxSize=20
+		};
+
+	struct TFaxSessionSettings
+		{
+		TFaxMode iMode;
+		TFaxRetrieveType iFaxRetrieveType;
+		TFaxClass iFaxClass;
+		TBuf<KFaxIdUserNameMaxSize> iFaxId;
+		TInt iMaxSpeed;
+		TInt iMinSpeed;
+		TInt iPreferredECM;
+		TInt iFaxOnDemandDelay;
+		// Tx Settings
+		TFaxResolution iTxResolution;
+		TFaxCompression iTxCompression;
+		TInt iTxPages;
+		// Rx Settings
+		TFaxResolution iRxResolution;
+		TFaxCompression iRxCompression;
+		};
+
+	IMPORT_C TInt GetFaxSettings(TFaxSessionSettings& aSettings) const;
+	IMPORT_C TInt SetFaxSettings(const TFaxSessionSettings& aSettings) const;
+//
+// Retrieval of call objects' reference count
+//
+ 	IMPORT_C TInt ReferenceCount() const;
+
+protected:
+	IMPORT_C virtual void ConstructL();
+	IMPORT_C virtual void Destruct();
+	};
+
+class RPhone;
+class RLine : public RTelSubSessionBase
+/**
+RLine
+@internalComponent
+*/
+	{
+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
+//
+	enum TCapsFlags
+		{
+		KCapsData=0x00000001,
+		KCapsFax=0x00000002,
+		KCapsVoice=0x00000004,
+		KCapsEventIncomingCall=0x00010000
+		};
+
+	struct TCaps
+		{
+		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
+		{
+		TName iCallName;
+		RCall::TStatus iStatus;
+		TUint32 iCallCapsFlags;
+		};
+
+	IMPORT_C TInt EnumerateCall(TInt& aCount) const;
+	IMPORT_C TInt GetCallInfo(TInt aIndex,TCallInfo& aCallInfo) const;
+
+	class TLineInfo
+/**
+General line notification information
+@internalComponent
+*/
+		{
+	public:
+		IMPORT_C TLineInfo();
+		RCall::THookStatus iHookStatus;
+		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();
+	};
+
+class RTelServer;
+class RPhone : public RTelSubSessionBase
+/**
+RPhone
+@internalComponent
+*/
+	{
+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
+//
+	enum TCapsFlags
+		{
+		KCapsUnknown=0x00000001,
+		KCapsData=0x00000002,
+		KCapsFaxClassOne=0x0000004,
+		KCapsFaxClassOnePointZero=0x0000008,
+		KCapsFaxClassTwo=0x00000010,
+		KCapsFaxClassTwoPointZero=0x00000020,
+		KCapsFaxClassTwoPointOne=0x00000040,
+		KCapsVoice=0x00000080,
+		KCapsEventModemDetection=0x00010000,
+		KCapsStealCommPort=0x00020000
+		};
+
+	struct TCaps
+		{
+		TUint iFlags;
+		};
+
+	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
+	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
+	IMPORT_C void NotifyCapsChangeCancel() const;
+
+//
+// Status
+//
+	enum TMode
+		{
+		EModeUnknown,
+		EModeIdle,
+		EModeEstablishingLink,
+		EModeOnlineData,
+		EModeOnlineCommand
+		};
+
+	enum TModemDetection
+		{
+		EDetectedPresent,
+		EDetectedNotPresent,
+		EDetectedUnknown
+		};
+
+	struct TStatus
+		{
+		TModemDetection iModemDetected;
+		TMode iMode;
+		};
+
+	IMPORT_C TInt GetStatus(TStatus& aStatus) const;
+
+//
+// Line Enumeration and Information
+//
+	struct TLineInfo
+		{
+		RCall::TStatus iStatus;
+		TUint32 iLineCapsFlags;
+		TName iName;
+		};
+
+	IMPORT_C TInt EnumerateLines(TInt& aCount) const;
+	IMPORT_C TInt GetLineInfo(const TInt aIndex,TLineInfo& aLineInfo) const;
+
+	class TPhoneInfo
+/**
+General phone notification information
+@internalComponent
+*/
+		{
+	public:
+		IMPORT_C TPhoneInfo();
+		TModemDetection iDetection;
+		};
+
+	IMPORT_C TInt GetInfo(TPhoneInfo& aPhoneInfo) const;
+
+//
+// Notifications
+//
+	IMPORT_C void NotifyModemDetected(TRequestStatus& aStatus,TModemDetection& aDetection);
+	IMPORT_C void NotifyModemDetectedCancel() const;
+protected:
+	IMPORT_C virtual void ConstructL();
+	IMPORT_C virtual void Destruct();
+	};
+
+class RTelServer : public RSessionBase
+/**
+RTelServer
+@internalComponent
+*/
+	{
+public:
+	enum { KDefaultMessageSlots=32 };
+
+	IMPORT_C RTelServer();
+	IMPORT_C TInt Connect(TInt aMessageSlots =KDefaultMessageSlots);
+	inline TVersion Version() const;
+
+//
+// Enumeration and Information
+//
+	enum TNetworkType
+		{
+		ENetworkTypeWiredAnalog,
+		ENetworkTypeWiredDigital,
+		ENetworkTypeMobileAnalog,
+		ENetworkTypeMobileDigital,
+		ENetworkTypeUnknown
+		};
+
+	struct  TPhoneInfo
+		{
+		TNetworkType iNetworkType;
+		TName iName;
+		TUint iNumberOfLines;
+		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
+//
+
+	IMPORT_C TInt SetPriorityClient() const;
+
+//
+// Set this session to receive detailed errors
+//
+
+	enum TErrorGranularity
+		{
+		EErrorBasic,
+		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);
+
+	//=========================
+	// JGG additional functions for test code to drive the dummy etel
+	enum TMobilePhoneNetworkMode
+		{
+		ENetworkModeUnknown,
+		ENetworkModeUnregistered,
+		ENetworkModeGsm,
+		ENetworkModeAmps
+		};
+
+	IMPORT_C TInt SetTestNumber(const TInt aTestNumber);
+	IMPORT_C TInt TriggerContextConfigDrop();
+	IMPORT_C TInt TriggerContextConfigRestore();
+	IMPORT_C TInt TriggerContextStatusChange();
+	IMPORT_C TInt TriggerQoSConfigDrop();
+	IMPORT_C TInt TriggerQoSConfigRestore();
+	IMPORT_C TInt SetMode(const TMobilePhoneNetworkMode aMode);
+	//===========================
+	};
+
+
+#include "ETEL.INL"
+#endif