networkingtestandutils/networkingunittest/tdummyetel/dummyEtel.h
changeset 0 af10295192d8
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #if !defined(__ETEL_H__)
       
    17 #define __ETEL_H__      
       
    18 // Still define ETEL_H so we don't accidentally pick up the real etel.h
       
    19 
       
    20 #if !defined(__E32BASE_H__)
       
    21 #include <e32base.h>
       
    22 #endif
       
    23 
       
    24 #if !defined (__C32COMM_H__)
       
    25 #include <c32comm.h>
       
    26 #endif
       
    27 
       
    28 #if !defined(__D32COMM_H__)
       
    29 #include <d32comm.h>
       
    30 #endif
       
    31 
       
    32 #if !defined(__FAXDEFN_H)
       
    33 #include <faxdefn.h>
       
    34 #endif
       
    35 
       
    36 /**
       
    37 @internalTechnology
       
    38 */
       
    39 const TUint KEtelMajorVersionNumber=1;
       
    40 const TUint KEtelMinorVersionNumber=0;
       
    41 const TUint KEtelBuildVersionNumber=606;
       
    42 
       
    43 /**
       
    44 @internalComponent
       
    45 */
       
    46 IMPORT_C void PanicClient(TInt aFault);
       
    47 
       
    48 //
       
    49 // Etel Core Error Definitions
       
    50 //
       
    51 /**
       
    52 @internalTechnology
       
    53 */
       
    54 const TInt KErrEtelCoreBase = -2000;
       
    55 
       
    56 const TInt KErrEtelNotCallOwner=KErrEtelCoreBase;
       
    57 const TInt KErrEtelDuplicatePhoneName=KErrEtelCoreBase-1;
       
    58 const TInt KErrEtelAlreadyCallOwner=KErrEtelCoreBase-2;
       
    59 const TInt KErrEtelNoCarrier=KErrEtelCoreBase-3;
       
    60 const TInt KErrEtelBusyDetected=KErrEtelCoreBase-4;
       
    61 const TInt KErrEtelNoClientInterestedInThisCall=KErrEtelCoreBase-5;
       
    62 const TInt KErrEtelInitialisationFailure=KErrEtelCoreBase-6;
       
    63 const TInt KErrEtelCallNotActive=KErrEtelCoreBase-7;
       
    64 const TInt KErrEtelNoAnswer=KErrEtelCoreBase-8;
       
    65 const TInt KErrEtelNoDialTone=KErrEtelCoreBase-9;
       
    66 const TInt KErrEtelConfigPortFailure=KErrEtelCoreBase-10;
       
    67 const TInt KErrEtelFaxChunkNotCreated=KErrEtelCoreBase-11;
       
    68 const TInt KErrEtelNotFaxOwner=KErrEtelCoreBase-12;
       
    69 const TInt KErrEtelPortNotLoanedToClient=KErrEtelCoreBase-13;
       
    70 const TInt KErrEtelWrongModemType=KErrEtelCoreBase-14;
       
    71 const TInt KErrEtelUnknownModemCapability=KErrEtelCoreBase-15;
       
    72 const TInt KErrEtelAnswerAlreadyOutstanding=KErrEtelCoreBase-16;
       
    73 const TInt KErrEtelModemNotDetected=KErrEtelCoreBase-17;
       
    74 const TInt KErrEtelModemSettingsCorrupt=KErrEtelCoreBase-18;
       
    75 const TInt KErrEtelPortAlreadyLoaned=KErrEtelCoreBase-19;
       
    76 const TInt KErrEtelCallAlreadyActive=KErrEtelCoreBase-20;
       
    77 
       
    78 class CPtrHolder;
       
    79 class RTelSubSessionBase : public RSubSessionBase
       
    80 /**
       
    81 @internalComponent
       
    82 */
       
    83 	{
       
    84 public:
       
    85 	inline RSessionBase& SessionHandle() const;
       
    86 	inline void SetSessionHandle(RSessionBase& aSession);
       
    87 	inline TInt SubSessionHandle();
       
    88 
       
    89 	IMPORT_C void CancelAsyncRequest(TInt aReqToCancel) const;
       
    90 
       
    91 	enum TReqPriorityType
       
    92 		{
       
    93 		EIsNotaPriorityRequest,
       
    94 		EIsaPriorityRequest
       
    95 		};
       
    96 protected:
       
    97 
       
    98 	IMPORT_C RTelSubSessionBase();
       
    99 	IMPORT_C TInt Blank(const TInt aIpc,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   100 	IMPORT_C void Blank(const TInt aIpc,TRequestStatus& aStatus,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   101 
       
   102 	IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   103 	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   104 	IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   105 	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   106 
       
   107 	IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes1,const TDesC8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   108 	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes1,const TDesC8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   109 	IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes1,TDes8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   110 	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   111 	
       
   112 	IMPORT_C TInt Set(const TInt aIpc,const TDesC16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   113 	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   114 	IMPORT_C TInt Get(const TInt aIpc,TDes16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   115 	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   116 
       
   117 	IMPORT_C TInt Set(const TInt aIpc,const TDesC16& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   118 	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC16& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   119 	IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   120 	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   121 
       
   122 	IMPORT_C TInt Get(const TInt aIpc,TDes16& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   123 	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   124 	IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   125 	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   126 
       
   127 	IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC8& aDes1, TDes8& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   128 	IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, TDes8& aDes1, const TDesC16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const;
       
   129 
       
   130 	IMPORT_C TInt CancelReq(const TInt aIpc,const TInt aIpcToCancel) const;
       
   131 	IMPORT_C TInt CancelSubSession() const;
       
   132 
       
   133 private:
       
   134 	RTelSubSessionBase(const RTelSubSessionBase& aTelSubSessionBase);
       
   135 	RSessionBase* iTelSession;
       
   136 protected:
       
   137 	CPtrHolder* iPtrHolder;
       
   138 	};
       
   139 
       
   140 class RCall;
       
   141 class RFax : public RTelSubSessionBase
       
   142 /**
       
   143 RFax
       
   144 @internalComponent
       
   145 */
       
   146 	{
       
   147 public:
       
   148 	IMPORT_C RFax();
       
   149 	IMPORT_C TInt Open(RCall& aCall);
       
   150 	IMPORT_C void Close();
       
   151 
       
   152 //
       
   153 // Read,Write and Wait for Page End
       
   154 //
       
   155 	IMPORT_C void Read(TRequestStatus& aStatus,TDes8& aDes);
       
   156 	IMPORT_C void Write(TRequestStatus& aStatus,const TDesC8& aDes);
       
   157 	IMPORT_C void WaitForEndOfPage(TRequestStatus& aStatus) const;
       
   158 	IMPORT_C TInt TerminateFaxSession() const;
       
   159 //
       
   160 // Progress Information
       
   161 //
       
   162 	struct TProgress
       
   163 		{
       
   164 		TTime iLastUpdateTime;
       
   165 		TBuf<20> iAnswerback;
       
   166 
       
   167 		TFaxPhase iPhase;
       
   168 		TFaxResolution iResolution;
       
   169 		TFaxCompression iCompression;
       
   170 		TInt iECM;
       
   171 
       
   172 		TInt iPage;
       
   173 		TInt iLines;
       
   174 		TInt iSpeed;
       
   175 		};
       
   176 
       
   177 	IMPORT_C TInt GetProgress(TProgress& aProgress);
       
   178 private:
       
   179 	TProgress* iProgressPtr;
       
   180 	RChunk iChunk;
       
   181 protected:
       
   182 	IMPORT_C virtual void ConstructL();
       
   183 	IMPORT_C virtual void Destruct();
       
   184 	};
       
   185 
       
   186 class RTelServer;
       
   187 class RPhone;
       
   188 class RLine;
       
   189 class RCall : public RTelSubSessionBase
       
   190 /**
       
   191 RCall
       
   192 @internalComponent
       
   193 */
       
   194 	{
       
   195 public:
       
   196 	IMPORT_C RCall();
       
   197 	IMPORT_C TInt OpenNewCall(RTelServer& aServer,const TDesC& aName,TDes& aNewName);
       
   198 	IMPORT_C TInt OpenNewCall(RTelServer& aServer,const TDesC& aName);
       
   199 	IMPORT_C TInt OpenNewCall(RPhone& aPhone,const TDesC& aName,TDes& aNewName);
       
   200 	IMPORT_C TInt OpenNewCall(RPhone& aPhone,const TDesC& aName);
       
   201 	IMPORT_C TInt OpenNewCall(RLine& aLine,TDes& aNewName);
       
   202 	IMPORT_C TInt OpenNewCall(RLine& aLine);
       
   203 	IMPORT_C TInt OpenExistingCall(RTelServer& aServer,const TDesC& aName);
       
   204 	IMPORT_C TInt OpenExistingCall(RPhone& aPhone,const TDesC& aName);
       
   205 	IMPORT_C TInt OpenExistingCall(RLine& aLine,const TDesC& aName);
       
   206 	IMPORT_C void Close();
       
   207 
       
   208 //
       
   209 // Call Status
       
   210 //
       
   211 	enum TStatus
       
   212 		{
       
   213 		EStatusUnknown,
       
   214 		EStatusIdle,
       
   215 		EStatusDialling,
       
   216 		EStatusRinging,
       
   217 		EStatusAnswering,
       
   218 		EStatusConnecting,
       
   219 		EStatusConnected,
       
   220 		EStatusHangingUp
       
   221 		};
       
   222 
       
   223 	IMPORT_C TInt GetStatus(TStatus& aStatus) const;
       
   224 
       
   225 //
       
   226 // Call Caps
       
   227 //
       
   228 	enum TCapsEnum
       
   229 		{
       
   230 		KCapsData=0x00000001,
       
   231 		KCapsFax=0x00000002,
       
   232 		KCapsVoice=0x00000004,
       
   233 		KCapsDial=0x00000008,
       
   234 		KCapsConnect=0x00000010,
       
   235 		KCapsHangUp=0x00000020,
       
   236 		KCapsAnswer=0x00000040,
       
   237 		KCapsLoanDataPort=0x00000080,
       
   238 		KCapsRecoverDataPort=0x00000100
       
   239 		};
       
   240 
       
   241 	struct TCaps
       
   242 		{
       
   243 		TUint iFlags;
       
   244 		};
       
   245 
       
   246 	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
       
   247 	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
       
   248 	IMPORT_C void NotifyCapsChangeCancel() const;
       
   249 
       
   250 //
       
   251 // Bearer Service Information
       
   252 //
       
   253 	enum TBearerCaps
       
   254 		{
       
   255 		KBearerCapsCompressionV42bis=0x00000001,
       
   256 		KBearerCapsCompressionMNP5=0x00000002,
       
   257 		KBearerCapsCompressionNone=0x00000004,
       
   258 		KBearerCapsProtocolLAPM=0x00000008,
       
   259 		KBearerCapsProtocolALT_CELLULAR=0x00000010,
       
   260 		KBearerCapsProtocolALT=0x00000020,
       
   261 		KBearerCapsProtocolNone=0x00000040,
       
   262 		KBearerCapsCompressionUnknown=0x00000080,
       
   263 		KBearerCapsProtocolUnknown=0x00000100
       
   264 		};
       
   265 
       
   266 	enum TCallBearerSpeed
       
   267 		{
       
   268 		EBearerData57600,
       
   269 		EBearerData33600,
       
   270 		EBearerData31200,
       
   271 		EBearerData19200,
       
   272 		EBearerData14400,
       
   273 		EBearerData12000,
       
   274 		EBearerData9600,
       
   275 		EBearerData7200,
       
   276 		EBearerData4800,
       
   277 		EBearerData2400,
       
   278 		EBearerData1200,
       
   279 		EBearerData75_1200,
       
   280 		EBearerData1200_75,
       
   281 		EBearerData300,
       
   282 		EBearerDataUnknown
       
   283 		};
       
   284 
       
   285 	struct TBearerService
       
   286 		{
       
   287 		TUint32 iBearerCaps;
       
   288 		TCallBearerSpeed iBearerSpeed;
       
   289 		};
       
   290 
       
   291  	IMPORT_C TInt GetBearerServiceInfo(TBearerService& aBearerService) const;
       
   292 
       
   293 //
       
   294 // Notifications
       
   295 //
       
   296 	enum THookStatus
       
   297 		{
       
   298 		EHookStatusOff,
       
   299 		EHookStatusOn,
       
   300 		EHookStatusUnknown
       
   301 		};
       
   302 
       
   303 	class TCallInfo
       
   304 /**
       
   305 @internalComponent
       
   306 */
       
   307 		{
       
   308 	public:
       
   309 		IMPORT_C TCallInfo();
       
   310 		TName iCallName;
       
   311 		TName iLineName;
       
   312 		THookStatus iHookStatus;
       
   313 		TStatus iStatus;
       
   314 		TTimeIntervalSeconds iDuration;
       
   315 		};
       
   316 	
       
   317 	IMPORT_C TInt GetInfo(TCallInfo& aCallInfo) const;
       
   318 	IMPORT_C void NotifyHookChange(TRequestStatus& aStatus,THookStatus& aHookStatus);
       
   319 	IMPORT_C void NotifyHookChangeCancel() const;
       
   320 	IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,TStatus& aCallStatus);
       
   321 	IMPORT_C void NotifyStatusChangeCancel() const;
       
   322 	IMPORT_C void NotifyCallDurationChange(TRequestStatus& aStatus,TTimeIntervalSeconds& aTime);
       
   323 	IMPORT_C void NotifyCallDurationChangeCancel() const;
       
   324 
       
   325 //
       
   326 // Duration of call
       
   327 //
       
   328 	IMPORT_C TInt GetCallDuration(TTimeIntervalSeconds& aTime) const;
       
   329 //
       
   330 // Connecting and Disconnecting
       
   331 //
       
   332 	typedef TDesC TTelNumberC;
       
   333 	IMPORT_C TInt Dial(const TTelNumberC& aTelNumber) const;
       
   334 	IMPORT_C TInt Dial(const TDesC8& aCallParams,const TTelNumberC& aTelNumber) const;
       
   335 	IMPORT_C void Dial(TRequestStatus& aStatus,const TTelNumberC& aTelNumber);
       
   336 	IMPORT_C void Dial(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber);
       
   337 	IMPORT_C void DialCancel() const;
       
   338 	IMPORT_C TInt Connect() const;
       
   339 	IMPORT_C TInt Connect(const TDesC8& aCallParams) const;
       
   340 	IMPORT_C void Connect(TRequestStatus& aStatus);
       
   341 	IMPORT_C void Connect(TRequestStatus& aStatus,const TDesC8& aCallParams);
       
   342 	IMPORT_C void ConnectCancel() const;
       
   343 	IMPORT_C TInt AnswerIncomingCall() const;
       
   344 	IMPORT_C TInt AnswerIncomingCall(const TDesC8& aCallParams) const;
       
   345 	IMPORT_C void AnswerIncomingCall(TRequestStatus& aStatus);
       
   346 	IMPORT_C void AnswerIncomingCall(TRequestStatus& aStatus,const TDesC8& aCallParams);
       
   347 	IMPORT_C void AnswerIncomingCallCancel() const;
       
   348 	IMPORT_C TInt HangUp() const;
       
   349 	IMPORT_C void HangUp(TRequestStatus& aStatus) const;
       
   350 	IMPORT_C void HangUpCancel() const;
       
   351 
       
   352 //
       
   353 // Call Data Access
       
   354 //
       
   355 	struct  TCommPort
       
   356 		{
       
   357 		TFileName iCsy;
       
   358 		TName iPort;
       
   359 		};
       
   360 
       
   361 	IMPORT_C TInt LoanDataPort(TCommPort& aDataPort) const;
       
   362 	IMPORT_C void LoanDataPort(TRequestStatus& aStatus,TCommPort& aDataPort);
       
   363 	IMPORT_C void LoanDataPortCancel() const;
       
   364 	IMPORT_C TInt RecoverDataPort() const;
       
   365 
       
   366 //
       
   367 // Call Ownership manipulation
       
   368 //
       
   369 	enum TOwnershipStatus
       
   370 		{
       
   371 		EOwnershipUnowned,
       
   372 		EOwnershipOwnedByAnotherClient,		// not the priority client
       
   373 		EOwnershipOwnedByThisClient,
       
   374 		EOwnershipThisIsPriorityClient		// not owned by this (the priority) client
       
   375 		};
       
   376 
       
   377 	IMPORT_C TInt TransferOwnership() const;
       
   378 	IMPORT_C void AcquireOwnership(TRequestStatus& aStatus) const;
       
   379 	IMPORT_C void AcquireOwnershipCancel() const;
       
   380 	IMPORT_C TInt GetOwnershipStatus(TOwnershipStatus& aOwnershipStatus) const;
       
   381 	//
       
   382 //
       
   383 // Get and Set Call Parameters
       
   384 //
       
   385 	enum TMonitorSpeakerControl
       
   386 		{
       
   387 		EMonitorSpeakerControlAlwaysOff,
       
   388 		EMonitorSpeakerControlOnUntilCarrier,
       
   389 		EMonitorSpeakerControlAlwaysOn,
       
   390 		EMonitorSpeakerControlOnExceptDuringDialling,
       
   391 		EMonitorSpeakerControlUnknown
       
   392 		};
       
   393 
       
   394 	enum TMonitorSpeakerVolume
       
   395 		{
       
   396 		EMonitorSpeakerVolumeOff,
       
   397 		EMonitorSpeakerVolumeLow,
       
   398 		EMonitorSpeakerVolumeMedium,
       
   399 		EMonitorSpeakerVolumeHigh,
       
   400 		EMonitorSpeakerVolumeUnknown
       
   401 		};
       
   402 
       
   403 	enum TWaitForDialTone
       
   404 		{
       
   405 		EDialToneWait,
       
   406 		EDialToneNoWait
       
   407 		};
       
   408 
       
   409 	class TCallParams
       
   410 /**
       
   411 @internalComponent
       
   412 */
       
   413 		{
       
   414 	public:
       
   415 		IMPORT_C TCallParams();
       
   416 		IMPORT_C TCallParams(TMonitorSpeakerControl aSpeakerControl,
       
   417 							 TMonitorSpeakerVolume aSpeakerVolume,
       
   418 							 TUint aInterval,
       
   419 							 TWaitForDialTone aWaitForDialTone);
       
   420 		IMPORT_C TInt ExtensionId();
       
   421 		IMPORT_C TBool IsDefault();
       
   422 		TMonitorSpeakerControl iSpeakerControl;
       
   423 		TMonitorSpeakerVolume iSpeakerVolume;
       
   424 		TUint iInterval;
       
   425 		TWaitForDialTone iWaitForDialTone;
       
   426 	protected:
       
   427 		TBool iIsDefault;
       
   428 		TInt iExtensionId;
       
   429 		};
       
   430 
       
   431 	typedef TPckg<TCallParams> TCallParamsPckg;
       
   432 
       
   433 	IMPORT_C TInt GetCallParams(TDes8& aParams) const;
       
   434 
       
   435 //
       
   436 // Fax Settings
       
   437 //
       
   438 	enum TFaxMode
       
   439 		{
       
   440 		ETransmit,
       
   441 		EReceive
       
   442 		};
       
   443 
       
   444 	enum TFaxRetrieveType
       
   445 		{
       
   446 		EFaxOnDemand,
       
   447 		EFaxPoll
       
   448 		};
       
   449 
       
   450 	enum TConstants
       
   451 		{
       
   452 		KFaxIdUserNameMaxSize=20
       
   453 		};
       
   454 
       
   455 	struct TFaxSessionSettings
       
   456 		{
       
   457 		TFaxMode iMode;
       
   458 		TFaxRetrieveType iFaxRetrieveType;
       
   459 		TFaxClass iFaxClass;
       
   460 		TBuf<KFaxIdUserNameMaxSize> iFaxId;
       
   461 		TInt iMaxSpeed;
       
   462 		TInt iMinSpeed;
       
   463 		TInt iPreferredECM;
       
   464 		TInt iFaxOnDemandDelay;
       
   465 		// Tx Settings
       
   466 		TFaxResolution iTxResolution;
       
   467 		TFaxCompression iTxCompression;
       
   468 		TInt iTxPages;
       
   469 		// Rx Settings
       
   470 		TFaxResolution iRxResolution;
       
   471 		TFaxCompression iRxCompression;
       
   472 		};
       
   473 
       
   474 	IMPORT_C TInt GetFaxSettings(TFaxSessionSettings& aSettings) const;
       
   475 	IMPORT_C TInt SetFaxSettings(const TFaxSessionSettings& aSettings) const;
       
   476 //
       
   477 // Retrieval of call objects' reference count
       
   478 //
       
   479  	IMPORT_C TInt ReferenceCount() const;
       
   480 
       
   481 protected:
       
   482 	IMPORT_C virtual void ConstructL();
       
   483 	IMPORT_C virtual void Destruct();
       
   484 	};
       
   485 
       
   486 class RPhone;
       
   487 class RLine : public RTelSubSessionBase
       
   488 /**
       
   489 RLine
       
   490 @internalComponent
       
   491 */
       
   492 	{
       
   493 public:
       
   494 	IMPORT_C RLine();
       
   495 	IMPORT_C TInt Open(RPhone& aPhone,const TDesC& aName);
       
   496 	IMPORT_C TInt Open(RTelServer& aServer,const TDesC& aName);
       
   497 	IMPORT_C void Close();
       
   498 
       
   499 //
       
   500 // Caps
       
   501 //
       
   502 	enum TCapsFlags
       
   503 		{
       
   504 		KCapsData=0x00000001,
       
   505 		KCapsFax=0x00000002,
       
   506 		KCapsVoice=0x00000004,
       
   507 		KCapsEventIncomingCall=0x00010000
       
   508 		};
       
   509 
       
   510 	struct TCaps
       
   511 		{
       
   512 		TUint iFlags;
       
   513 		};
       
   514 
       
   515 	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
       
   516 	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
       
   517 	IMPORT_C void NotifyCapsChangeCancel() const;
       
   518 
       
   519 //
       
   520 // Line and Hook Status
       
   521 //
       
   522 	IMPORT_C TInt GetStatus(RCall::TStatus& aStatus) const;
       
   523 	IMPORT_C TInt GetHookStatus(RCall::THookStatus& aHookStatus) const;
       
   524 
       
   525 //
       
   526 // Call enumeration and Information
       
   527 //
       
   528 	struct TCallInfo
       
   529 		{
       
   530 		TName iCallName;
       
   531 		RCall::TStatus iStatus;
       
   532 		TUint32 iCallCapsFlags;
       
   533 		};
       
   534 
       
   535 	IMPORT_C TInt EnumerateCall(TInt& aCount) const;
       
   536 	IMPORT_C TInt GetCallInfo(TInt aIndex,TCallInfo& aCallInfo) const;
       
   537 
       
   538 	class TLineInfo
       
   539 /**
       
   540 General line notification information
       
   541 @internalComponent
       
   542 */
       
   543 		{
       
   544 	public:
       
   545 		IMPORT_C TLineInfo();
       
   546 		RCall::THookStatus iHookStatus;
       
   547 		RCall::TStatus iStatus;
       
   548 		TName iNameOfLastCallAdded;
       
   549 		TName iNameOfCallForAnswering;	// if an incoming call occurs, this contains the name
       
   550 										// of the call to answer it on.
       
   551 		};
       
   552 	
       
   553 //
       
   554 // Notifications
       
   555 //
       
   556 	IMPORT_C TInt GetInfo(TLineInfo& aLineInfo) const;
       
   557 	IMPORT_C void NotifyIncomingCall(TRequestStatus& aStatus, TName& aName);
       
   558 	IMPORT_C void NotifyIncomingCallCancel() const;
       
   559 	IMPORT_C void NotifyHookChange(TRequestStatus& aStatus,RCall::THookStatus& aHookStatus);
       
   560 	IMPORT_C void NotifyHookChangeCancel() const;
       
   561 	IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,RCall::TStatus& aLineStatus);
       
   562 	IMPORT_C void NotifyStatusChangeCancel() const;
       
   563 	IMPORT_C void NotifyCallAdded(TRequestStatus& aStatus,TName& aName);
       
   564 	IMPORT_C void NotifyCallAddedCancel() const;
       
   565 protected:
       
   566 	IMPORT_C virtual void ConstructL();
       
   567 	IMPORT_C virtual void Destruct();
       
   568 	};
       
   569 
       
   570 class RTelServer;
       
   571 class RPhone : public RTelSubSessionBase
       
   572 /**
       
   573 RPhone
       
   574 @internalComponent
       
   575 */
       
   576 	{
       
   577 public:
       
   578 	IMPORT_C RPhone();
       
   579 	IMPORT_C TInt Open(RTelServer& aSession,const TDesC& aName);
       
   580 	IMPORT_C void Close();
       
   581 
       
   582 //
       
   583 // Initialisation
       
   584 //
       
   585 	IMPORT_C TInt Initialise();
       
   586 	IMPORT_C void Initialise(TRequestStatus& aStatus);
       
   587 	IMPORT_C void InitialiseCancel();
       
   588 
       
   589 //
       
   590 // Caps
       
   591 //
       
   592 	enum TCapsFlags
       
   593 		{
       
   594 		KCapsUnknown=0x00000001,
       
   595 		KCapsData=0x00000002,
       
   596 		KCapsFaxClassOne=0x0000004,
       
   597 		KCapsFaxClassOnePointZero=0x0000008,
       
   598 		KCapsFaxClassTwo=0x00000010,
       
   599 		KCapsFaxClassTwoPointZero=0x00000020,
       
   600 		KCapsFaxClassTwoPointOne=0x00000040,
       
   601 		KCapsVoice=0x00000080,
       
   602 		KCapsEventModemDetection=0x00010000,
       
   603 		KCapsStealCommPort=0x00020000
       
   604 		};
       
   605 
       
   606 	struct TCaps
       
   607 		{
       
   608 		TUint iFlags;
       
   609 		};
       
   610 
       
   611 	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
       
   612 	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
       
   613 	IMPORT_C void NotifyCapsChangeCancel() const;
       
   614 
       
   615 //
       
   616 // Status
       
   617 //
       
   618 	enum TMode
       
   619 		{
       
   620 		EModeUnknown,
       
   621 		EModeIdle,
       
   622 		EModeEstablishingLink,
       
   623 		EModeOnlineData,
       
   624 		EModeOnlineCommand
       
   625 		};
       
   626 
       
   627 	enum TModemDetection
       
   628 		{
       
   629 		EDetectedPresent,
       
   630 		EDetectedNotPresent,
       
   631 		EDetectedUnknown
       
   632 		};
       
   633 
       
   634 	struct TStatus
       
   635 		{
       
   636 		TModemDetection iModemDetected;
       
   637 		TMode iMode;
       
   638 		};
       
   639 
       
   640 	IMPORT_C TInt GetStatus(TStatus& aStatus) const;
       
   641 
       
   642 //
       
   643 // Line Enumeration and Information
       
   644 //
       
   645 	struct TLineInfo
       
   646 		{
       
   647 		RCall::TStatus iStatus;
       
   648 		TUint32 iLineCapsFlags;
       
   649 		TName iName;
       
   650 		};
       
   651 
       
   652 	IMPORT_C TInt EnumerateLines(TInt& aCount) const;
       
   653 	IMPORT_C TInt GetLineInfo(const TInt aIndex,TLineInfo& aLineInfo) const;
       
   654 
       
   655 	class TPhoneInfo
       
   656 /**
       
   657 General phone notification information
       
   658 @internalComponent
       
   659 */
       
   660 		{
       
   661 	public:
       
   662 		IMPORT_C TPhoneInfo();
       
   663 		TModemDetection iDetection;
       
   664 		};
       
   665 
       
   666 	IMPORT_C TInt GetInfo(TPhoneInfo& aPhoneInfo) const;
       
   667 
       
   668 //
       
   669 // Notifications
       
   670 //
       
   671 	IMPORT_C void NotifyModemDetected(TRequestStatus& aStatus,TModemDetection& aDetection);
       
   672 	IMPORT_C void NotifyModemDetectedCancel() const;
       
   673 protected:
       
   674 	IMPORT_C virtual void ConstructL();
       
   675 	IMPORT_C virtual void Destruct();
       
   676 	};
       
   677 
       
   678 class RTelServer : public RSessionBase
       
   679 /**
       
   680 RTelServer
       
   681 @internalComponent
       
   682 */
       
   683 	{
       
   684 public:
       
   685 	enum { KDefaultMessageSlots=32 };
       
   686 
       
   687 	IMPORT_C RTelServer();
       
   688 	IMPORT_C TInt Connect(TInt aMessageSlots =KDefaultMessageSlots);
       
   689 	inline TVersion Version() const;
       
   690 
       
   691 //
       
   692 // Enumeration and Information
       
   693 //
       
   694 	enum TNetworkType
       
   695 		{
       
   696 		ENetworkTypeWiredAnalog,
       
   697 		ENetworkTypeWiredDigital,
       
   698 		ENetworkTypeMobileAnalog,
       
   699 		ENetworkTypeMobileDigital,
       
   700 		ENetworkTypeUnknown
       
   701 		};
       
   702 
       
   703 	struct  TPhoneInfo
       
   704 		{
       
   705 		TNetworkType iNetworkType;
       
   706 		TName iName;
       
   707 		TUint iNumberOfLines;
       
   708 		TUint iExtensions;
       
   709 		};
       
   710 
       
   711 	IMPORT_C TInt EnumeratePhones(TInt& aNoOfPhones) const;
       
   712 	IMPORT_C TInt GetPhoneInfo(const TInt aIndex,TPhoneInfo& aInfo) const;
       
   713 	IMPORT_C TInt GetTsyName(const TInt aIndexOfPhone, TDes& aTsyName) const;
       
   714 
       
   715 //
       
   716 // Load and Unload Phone modules
       
   717 //
       
   718 	IMPORT_C TInt LoadPhoneModule(const TDesC& aFileName) const;
       
   719 	IMPORT_C TInt UnloadPhoneModule(const TDesC& aFileName) const;
       
   720 
       
   721 //
       
   722 // Check whether specified Phone module (TSY) supports certain functionality
       
   723 //
       
   724 		
       
   725 	IMPORT_C TInt IsSupportedByModule(const TDesC& aTsyName, const TInt aMixin, TBool& aResult) const;
       
   726 	IMPORT_C TInt GetTsyVersionNumber(const TDesC& aTsyName,TVersion& aVersion) const;
       
   727 //
       
   728 // Set this session as Priority client
       
   729 //
       
   730 
       
   731 	IMPORT_C TInt SetPriorityClient() const;
       
   732 
       
   733 //
       
   734 // Set this session to receive detailed errors
       
   735 //
       
   736 
       
   737 	enum TErrorGranularity
       
   738 		{
       
   739 		EErrorBasic,
       
   740 		EErrorExtended
       
   741 		};
       
   742 
       
   743 	IMPORT_C TInt SetExtendedErrorGranularity(const TErrorGranularity aGranularity) const;
       
   744 
       
   745 //
       
   746 // Debug calls - stubbed in release builds
       
   747 //
       
   748 	IMPORT_C TInt __DbgMarkHeap();
       
   749 	IMPORT_C TInt __DbgCheckHeap(TInt aCount);
       
   750 	IMPORT_C TInt __DbgMarkEnd(TInt aCount);
       
   751 	IMPORT_C TInt __DbgFailNext(TInt aCount);
       
   752 
       
   753 	//=========================
       
   754 	// JGG additional functions for test code to drive the dummy etel
       
   755 	enum TMobilePhoneNetworkMode
       
   756 		{
       
   757 		ENetworkModeUnknown,
       
   758 		ENetworkModeUnregistered,
       
   759 		ENetworkModeGsm,
       
   760 		ENetworkModeAmps
       
   761 		};
       
   762 
       
   763 	IMPORT_C TInt SetTestNumber(const TInt aTestNumber);
       
   764 	IMPORT_C TInt TriggerContextConfigDrop();
       
   765 	IMPORT_C TInt TriggerContextConfigRestore();
       
   766 	IMPORT_C TInt TriggerContextStatusChange();
       
   767 	IMPORT_C TInt TriggerQoSConfigDrop();
       
   768 	IMPORT_C TInt TriggerQoSConfigRestore();
       
   769 	IMPORT_C TInt SetMode(const TMobilePhoneNetworkMode aMode);
       
   770 	//===========================
       
   771 	};
       
   772 
       
   773 
       
   774 #include "ETEL.INL"
       
   775 #endif