epoc32/include/etel.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
     1.1 --- a/epoc32/include/etel.h	Wed Mar 31 12:27:01 2010 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,1182 +0,0 @@
     1.4 -// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 -// All rights reserved.
     1.6 -// This component and the accompanying materials are made available
     1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.8 -// which accompanies this distribution, and is available
     1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.10 -//
    1.11 -// Initial Contributors:
    1.12 -// Nokia Corporation - initial contribution.
    1.13 -//
    1.14 -// Contributors:
    1.15 -//
    1.16 -// Description:
    1.17 -//
    1.18 -
    1.19 -
    1.20 -
    1.21 -/**
    1.22 - @file
    1.23 - @publishedAll
    1.24 - @released
    1.25 -*/
    1.26 -
    1.27 -#if !defined(__ETEL_H__)
    1.28 -/** @internalComponent */
    1.29 -#define __ETEL_H__
    1.30 -
    1.31 -#if !defined(__E32BASE_H__)
    1.32 -#include <e32base.h>
    1.33 -#endif
    1.34 -
    1.35 -#if !defined (__C32COMM_H__)
    1.36 -#include <c32comm.h>
    1.37 -#endif
    1.38 -
    1.39 -#if !defined(__D32COMM_H__)
    1.40 -#include <d32comm.h>
    1.41 -#endif
    1.42 -
    1.43 -#if !defined(__FAXDEFN_H)
    1.44 -#include <faxdefn.h>
    1.45 -#endif
    1.46 -/** Major version number.*/
    1.47 -const TUint KEtelMajorVersionNumber=1;
    1.48 -/** Minor version number. */
    1.49 -const TUint KEtelMinorVersionNumber=0;
    1.50 -/** Build number. */
    1.51 -const TUint KEtelBuildVersionNumber=606;
    1.52 -/**
    1.53 -@internalComponent
    1.54 -*/
    1.55 -IMPORT_C void PanicClient(TInt aFault);
    1.56 -
    1.57 -//
    1.58 -// Etel Core Error Definitions
    1.59 -//
    1.60 -
    1.61 -const TInt KErrEtelCoreBase = -2000;
    1.62 -
    1.63 -/** The client is not the call owner and has attempted to perform an operation 
    1.64 -that requires ownership.*/
    1.65 -const TInt KErrEtelNotCallOwner=KErrEtelCoreBase;
    1.66 -/** An attempt has been made to load an ETel (TSY) module which contains a phone 
    1.67 -with the same name as one already loaded. */
    1.68 -const TInt KErrEtelDuplicatePhoneName=KErrEtelCoreBase-1;
    1.69 -/** An attempt has been made to acquire call ownership when the requesting client 
    1.70 -is already the call owner. */
    1.71 -const TInt KErrEtelAlreadyCallOwner=KErrEtelCoreBase-2;
    1.72 -/** A connection has been terminated because the carrier has been lost. */
    1.73 -const TInt KErrEtelNoCarrier=KErrEtelCoreBase-3;
    1.74 -/** An attempt to establish a connection with the RCall::Dial() function has failed 
    1.75 -because the remote party's line was busy. */
    1.76 -const TInt KErrEtelBusyDetected=KErrEtelCoreBase-4;
    1.77 -/** An attempt has been made to transfer call ownership, but no other clients are 
    1.78 -interested in acquiring ownership. */
    1.79 -const TInt KErrEtelNoClientInterestedInThisCall=KErrEtelCoreBase-5;
    1.80 -/** The TSY has failed to initialise the modem. This may be occur if the modem 
    1.81 -is disconnected during initialisation, or if an attempt is made to initialise 
    1.82 -an unsupported modem. */
    1.83 -const TInt KErrEtelInitialisationFailure=KErrEtelCoreBase-6;
    1.84 -/** An attempt has been made to perform an operation which requires the call to 
    1.85 -be connected - when the call is not connected. E.g. RCall:LoanDataPort(). */
    1.86 -const TInt KErrEtelCallNotActive=KErrEtelCoreBase-7;
    1.87 -/** A connection request has failed because there is no answer. */
    1.88 -const TInt KErrEtelNoAnswer=KErrEtelCoreBase-8;
    1.89 -/** A connection request has failed because there is no dial tone. For example, 
    1.90 -if there is no connection between the modem and the network. */
    1.91 -const TInt KErrEtelNoDialTone=KErrEtelCoreBase-9;
    1.92 -/** An attempt to configure the port has failed because the hardware cannot match 
    1.93 -the desired configuration. For example, if an attempt is made to configure 
    1.94 -the comms port to a baud rate it cannot support. */
    1.95 -const TInt KErrEtelConfigPortFailure=KErrEtelCoreBase-10;
    1.96 -/** Out of memory error - global chunk cannot be created. */
    1.97 -const TInt KErrEtelFaxChunkNotCreated=KErrEtelCoreBase-11;
    1.98 -/** The client is not the fax owner and has attempted to perform an operation that 
    1.99 -requires fax ownership.
   1.100 -
   1.101 -The fax client should be used to access fax functionality. Consequently, client 
   1.102 -code should not return this error. */
   1.103 -const TInt KErrEtelNotFaxOwner=KErrEtelCoreBase-12;
   1.104 -/** An attempt has been made to perform an operation which requires port ownership. 
   1.105 -However, the client does not own the port. */
   1.106 -const TInt KErrEtelPortNotLoanedToClient=KErrEtelCoreBase-13;
   1.107 -/** An operation has failed because the modem has been incorrectly configured. */
   1.108 -const TInt KErrEtelWrongModemType=KErrEtelCoreBase-14;
   1.109 -/** An operation has failed because the modem does not understand the request - 
   1.110 -possible bug in modem. */
   1.111 -const TInt KErrEtelUnknownModemCapability=KErrEtelCoreBase-15;
   1.112 -/** The call has already placed an 'answer incoming call' request. Only 1 request 
   1.113 -of a type (e.g. fax, voice, data) can be outstanding on the server at a time. */
   1.114 -const TInt KErrEtelAnswerAlreadyOutstanding=KErrEtelCoreBase-16;
   1.115 -/** An attempt to establish a connection with the modem has failed because the 
   1.116 -modem cannot be detected. */
   1.117 -const TInt KErrEtelModemNotDetected=KErrEtelCoreBase-17;
   1.118 -/** Operation failed because the modem settings are corrupt. */
   1.119 -const TInt KErrEtelModemSettingsCorrupt=KErrEtelCoreBase-18;
   1.120 -/** The Data port is in use by another call or application. */
   1.121 -const TInt KErrEtelPortAlreadyLoaned=KErrEtelCoreBase-19;
   1.122 -/** Another call active. Close it before opening a new one. */
   1.123 -const TInt KErrEtelCallAlreadyActive=KErrEtelCoreBase-20;
   1.124 -
   1.125 -//
   1.126 -//
   1.127 -// RTelSubSessionBase
   1.128 -//
   1.129 -//
   1.130 -class CPtrHolder;
   1.131 -class RFile;
   1.132 -/**
   1.133 -A base class used in the derivation of RCall, RLine, and RPhone. It has no user
   1.134 -accessible functions. 
   1.135 -
   1.136 -@publishedPartner
   1.137 -@released
   1.138 -*/
   1.139 -class RTelSubSessionBase : public RSubSessionBase
   1.140 -	{
   1.141 -public:
   1.142 -	inline RSessionBase& SessionHandle() const;
   1.143 -	inline void SetSessionHandle(RSessionBase& aSession);
   1.144 -	inline void ResetSessionHandle();
   1.145 -	inline TInt SubSessionHandle();
   1.146 -
   1.147 -	IMPORT_C void CancelAsyncRequest(TInt aReqToCancel) const;
   1.148 -
   1.149 -	enum TReqPriorityType
   1.150 -		{
   1.151 -		EIsNotaPriorityRequest,
   1.152 -		EIsaPriorityRequest,
   1.153 -		EIsaEmergencyRequest
   1.154 -		};
   1.155 -	
   1.156 -protected:
   1.157 -
   1.158 -	IMPORT_C RTelSubSessionBase();
   1.159 -	IMPORT_C TInt Blank(const TInt aIpc,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.160 -	IMPORT_C void Blank(const TInt aIpc,TRequestStatus& aStatus,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.161 -
   1.162 -	IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.163 -	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.164 -	IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.165 -	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.166 -
   1.167 -	IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes1,const TDesC8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.168 -	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes1,const TDesC8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.169 -	IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes1,TDes8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.170 -	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes8& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.171 -	
   1.172 -	IMPORT_C TInt Set(const TInt aIpc,const TDesC16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.173 -	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.174 -	IMPORT_C TInt Get(const TInt aIpc,TDes16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.175 -	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.176 -
   1.177 -	IMPORT_C TInt Set(const TInt aIpc,const TDesC16& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.178 -	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC16& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.179 -	IMPORT_C TInt Set(const TInt aIpc,const TDesC8& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.180 -	IMPORT_C void Set(const TInt aIpc,TRequestStatus& aStatus,const TDesC8& aDes1,const TDesC16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.181 -
   1.182 -	IMPORT_C TInt Get(const TInt aIpc,TDes16& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.183 -	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes16& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.184 -	IMPORT_C TInt Get(const TInt aIpc,TDes8& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.185 -	IMPORT_C void Get(const TInt aIpc,TRequestStatus& aStatus,TDes8& aDes1,TDes16& aDes2,TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.186 -
   1.187 -	IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC8& aDes1, TDes8& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.188 -	IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, TDes8& aDes1, const TDesC16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.189 -	IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC8&, TDes16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.190 -	IMPORT_C void SetAndGet(const TInt aIpc, TRequestStatus& aStatus, const TDesC16& aDes1, TDes16& aDes2, TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.191 -
   1.192 -	IMPORT_C TInt Set(const TInt aIpc, const RFile& aFile, TReqPriorityType aType = EIsNotaPriorityRequest) const;
   1.193 -
   1.194 -	IMPORT_C TInt CancelReq(const TInt aIpc,const TInt aIpcToCancel) const;
   1.195 -	IMPORT_C TInt CancelSubSession() const;
   1.196 -
   1.197 -private:
   1.198 -	RTelSubSessionBase(const RTelSubSessionBase& aTelSubSessionBase);
   1.199 -	RSessionBase* iTelSession;
   1.200 -protected:	
   1.201 -	CPtrHolder* iPtrHolder;
   1.202 -	};
   1.203 -
   1.204 -//
   1.205 -//
   1.206 -// RFax
   1.207 -//
   1.208 -//
   1.209 -class RCall;
   1.210 -/**
   1.211 -ETel fax subsession.
   1.212 -
   1.213 -Contains the fax client progress information structure.
   1.214 -
   1.215 -ETel does include server-side RFax objects, however the 
   1.216 -associated APIs are intended solely for use by ETel's own 
   1.217 -fax client. Consequently, only the TProgress structure is 
   1.218 -considered part of the public API.
   1.219 -
   1.220 -@publishedPartner
   1.221 -@released
   1.222 -*/
   1.223 -class RFax : public RTelSubSessionBase
   1.224 -	{
   1.225 -public:
   1.226 -	IMPORT_C RFax();
   1.227 -	IMPORT_C TInt Open(RCall& aCall);
   1.228 -	IMPORT_C void Close();
   1.229 -
   1.230 -//
   1.231 -// Read,Write and Wait for Page End
   1.232 -//
   1.233 -	IMPORT_C void Read(TRequestStatus& aStatus,TDes8& aDes);
   1.234 -	IMPORT_C void Write(TRequestStatus& aStatus,const TDesC8& aDes);
   1.235 -	IMPORT_C void WaitForEndOfPage(TRequestStatus& aStatus) const;
   1.236 -	IMPORT_C TInt TerminateFaxSession() const;
   1.237 -//
   1.238 -// Progress Information
   1.239 -//
   1.240 -	struct TProgress
   1.241 -	/** Contains fax progress information.*/
   1.242 -		{
   1.243 -		/** Time of last progress update.*/
   1.244 -		TTime iLastUpdateTime;
   1.245 -		/** ID of remote fax - filled in after connection.*/
   1.246 -		TBuf<20> iAnswerback;
   1.247 -
   1.248 -		/** Phase of session.*/
   1.249 -		TFaxPhase iPhase;
   1.250 -		/** Resolution of document.*/
   1.251 -		TFaxResolution iResolution;
   1.252 -		/** Compression method in use.*/
   1.253 -		TFaxCompression iCompression;
   1.254 -		/** Error correction mode. Reserved for future releases.*/
   1.255 -		TInt iECM;
   1.256 -		
   1.257 -		/** Last or current page being transferred.*/
   1.258 -		TInt iPage;
   1.259 -		/** Last or current line on page.*/
   1.260 -		TInt iLines;
   1.261 -		/** Speed of fax session.*/
   1.262 -		TInt iSpeed;
   1.263 -		};
   1.264 -
   1.265 -	IMPORT_C TInt GetProgress(TProgress& aProgress);
   1.266 -private:
   1.267 -	TProgress* iProgressPtr;
   1.268 -	RChunk iChunk;
   1.269 -protected:
   1.270 -	IMPORT_C virtual void ConstructL();
   1.271 -	IMPORT_C virtual void Destruct();
   1.272 -	};
   1.273 -
   1.274 -//
   1.275 -//
   1.276 -// RCall
   1.277 -//
   1.278 -//
   1.279 -class RTelServer;
   1.280 -class RPhone;
   1.281 -class RLine;
   1.282 -/**
   1.283 -Call sub-session.
   1.284 -
   1.285 -Provides access to the functionality associated with a specific call.
   1.286 -
   1.287 -This class is not intended for user derivation. 
   1.288 -
   1.289 -@publishedPartner
   1.290 -@released
   1.291 -*/
   1.292 -class RCall : public RTelSubSessionBase
   1.293 -	{
   1.294 -public:
   1.295 -	IMPORT_C RCall();
   1.296 -	IMPORT_C TInt OpenNewCall(RTelServer& aServer,const TDesC& aName,TDes& aNewName);
   1.297 -	IMPORT_C TInt OpenNewCall(RTelServer& aServer,const TDesC& aName);
   1.298 -	IMPORT_C TInt OpenNewCall(RPhone& aPhone,const TDesC& aName,TDes& aNewName);
   1.299 -	IMPORT_C TInt OpenNewCall(RPhone& aPhone,const TDesC& aName);
   1.300 -	IMPORT_C TInt OpenNewCall(RLine& aLine,TDes& aNewName);
   1.301 -	IMPORT_C TInt OpenNewCall(RLine& aLine);
   1.302 -	IMPORT_C TInt OpenExistingCall(RTelServer& aServer,const TDesC& aName);
   1.303 -	IMPORT_C TInt OpenExistingCall(RPhone& aPhone,const TDesC& aName);
   1.304 -	IMPORT_C TInt OpenExistingCall(RLine& aLine,const TDesC& aName);
   1.305 -	IMPORT_C void Close();
   1.306 -
   1.307 -//
   1.308 -// Call Status
   1.309 -//
   1.310 -/** Call status flags. */
   1.311 -	enum TStatus
   1.312 -		{
   1.313 -	/** The call status is not known. */
   1.314 -		EStatusUnknown,
   1.315 -	/** The call is idle. */
   1.316 -		EStatusIdle,
   1.317 -	/** The call is dialling. */
   1.318 -		EStatusDialling,
   1.319 -	/** The call is ringing (an incoming, unanswered call). */
   1.320 -		EStatusRinging,
   1.321 -	/** The call is being answered. */
   1.322 -		EStatusAnswering,
   1.323 -	/** The call is connecting (immediate call establishment, without dialling). */
   1.324 -		EStatusConnecting,
   1.325 -	/** The call is connected and active. */
   1.326 -		EStatusConnected,
   1.327 -	/** The call is being terminated. */
   1.328 -		EStatusHangingUp
   1.329 -		};
   1.330 -
   1.331 -	IMPORT_C TInt GetStatus(TStatus& aStatus) const;
   1.332 -
   1.333 -//
   1.334 -// Call Caps
   1.335 -//
   1.336 -/** Call capability flags. */
   1.337 -	enum TCapsEnum
   1.338 -		{
   1.339 -	/** The call supports data calls. */
   1.340 -		KCapsData=0x00000001,
   1.341 -	/** The call supports fax calls. */
   1.342 -		KCapsFax=0x00000002,
   1.343 -	/** The call supports voice calls. */
   1.344 -		KCapsVoice=0x00000004,
   1.345 -	/** The Dial request is currently a valid action. */
   1.346 -		KCapsDial=0x00000008,
   1.347 -	/** The Connect request is currently a valid action. */
   1.348 -		KCapsConnect=0x00000010,
   1.349 -	/** The Hang Up request is currently a valid action. */
   1.350 -		KCapsHangUp=0x00000020,
   1.351 -	/** The Answer request is currently a valid action. */
   1.352 -		KCapsAnswer=0x00000040,
   1.353 -	/** The Loan Data Port request is currently a valid action. */
   1.354 -		KCapsLoanDataPort=0x00000080,
   1.355 -	/** The Recover Data Port request is currently a valid action. */
   1.356 -		KCapsRecoverDataPort=0x00000100
   1.357 -		};
   1.358 -
   1.359 -	struct TCaps
   1.360 -/** Call capability information. */
   1.361 -		{
   1.362 -	/** Call capability flag. Contains a bitmask of values defined in the TCapsEnum 
   1.363 -	enumeration.*/
   1.364 -		TUint iFlags;
   1.365 -		};
   1.366 -
   1.367 -	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
   1.368 -	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
   1.369 -	IMPORT_C void NotifyCapsChangeCancel() const;
   1.370 -
   1.371 -//
   1.372 -// Bearer Service Information
   1.373 -//
   1.374 -/** Bearer capability flags. */
   1.375 -	enum TBearerCaps
   1.376 -		{
   1.377 -	/** V42bis modem compression protocol. */
   1.378 -		KBearerCapsCompressionV42bis=0x00000001,
   1.379 -	/** MNP5 modem compression protocol. */
   1.380 -		KBearerCapsCompressionMNP5=0x00000002,
   1.381 -	/** No compression supported. */
   1.382 -		KBearerCapsCompressionNone=0x00000004,
   1.383 -	/** LAPM error correction protocol. */
   1.384 -		KBearerCapsProtocolLAPM=0x00000008,
   1.385 -	/** MNP10 mode. */
   1.386 -		KBearerCapsProtocolALT_CELLULAR=0x00000010,
   1.387 -	/** MNP error correction. */
   1.388 -		KBearerCapsProtocolALT=0x00000020,
   1.389 -	/** No protocol information provided. */
   1.390 -		KBearerCapsProtocolNone=0x00000040,
   1.391 -	/** Compression protocol unknown. */
   1.392 -		KBearerCapsCompressionUnknown=0x00000080,
   1.393 -	/** Unable to establish protocol. */
   1.394 -		KBearerCapsProtocolUnknown=0x00000100
   1.395 -		};
   1.396 -
   1.397 -/** Bearer speed flags. */
   1.398 -	enum TCallBearerSpeed
   1.399 -		{
   1.400 -	/** Transfer rate of 57600 bps. */
   1.401 -		EBearerData57600,
   1.402 -	/** Transfer rate of 33600 bps. */
   1.403 -		EBearerData33600,
   1.404 -	/** Transfer rate of 31200 bps. */
   1.405 -		EBearerData31200,
   1.406 -	/** Transfer rate of 9200 bps. */
   1.407 -		EBearerData19200,
   1.408 -	/** Transfer rate of 4400 bps. */
   1.409 -		EBearerData14400,
   1.410 -	/** Transfer rate of 12000 bps. */
   1.411 -		EBearerData12000,
   1.412 -	/** Transfer rate of 9600 bps. */
   1.413 -		EBearerData9600,
   1.414 -	/** Transfer rate of 7200 bps. */
   1.415 -		EBearerData7200,
   1.416 -	/** Transfer rate of 4800 bps. */
   1.417 -		EBearerData4800,
   1.418 -	/** Transfer rate of 2400 bps. */
   1.419 -		EBearerData2400,
   1.420 -	/** Transfer rate of 200 bps. */
   1.421 -		EBearerData1200,
   1.422 -	/** V.23 75 bps forward, 1200 bps back */
   1.423 -		EBearerData75_1200,
   1.424 -	/** V.23 1200 bps forward, 75 bps back */
   1.425 -		EBearerData1200_75,
   1.426 -	/** Transfer rate of 300 bps. */
   1.427 -		EBearerData300,
   1.428 -	/** Transfer rate is unknown. */
   1.429 -		EBearerDataUnknown
   1.430 -		};
   1.431 -
   1.432 -	struct TBearerService
   1.433 -/** Call bearer information.
   1.434 -
   1.435 -@see TCallBearerSpeed */
   1.436 -		{
   1.437 -	/** The bearer capabilities. */
   1.438 -		TUint32 iBearerCaps;
   1.439 -	/** The bearer's speed.
   1.440 -	
   1.441 -	@see TCallBearerSpeed */
   1.442 -		TCallBearerSpeed iBearerSpeed;
   1.443 -		};
   1.444 -
   1.445 - 	IMPORT_C TInt GetBearerServiceInfo(TBearerService& aBearerService) const;
   1.446 -
   1.447 -//
   1.448 -// Notifications
   1.449 -//
   1.450 -/** Hook status flags. */
   1.451 -	enum THookStatus
   1.452 -		{
   1.453 -	/** The line is currently off hook. */
   1.454 -		EHookStatusOff,
   1.455 -	/** The line is currently on hook. */
   1.456 -		EHookStatusOn,
   1.457 -	/** The status of the line's hook is currently unknown */
   1.458 -		EHookStatusUnknown
   1.459 -		};
   1.460 -
   1.461 -	class TCallInfo
   1.462 -/** Line call capability information.
   1.463 -
   1.464 -@see TName 
   1.465 -@publishedAll
   1.466 -@released
   1.467 -*/
   1.468 -		{
   1.469 -	public:
   1.470 -		IMPORT_C TCallInfo();
   1.471 -	/** The name of a call.
   1.472 -	
   1.473 -	@see TName */
   1.474 -		TName iCallName;
   1.475 -		TName iLineName;
   1.476 -		THookStatus iHookStatus;
   1.477 -	/** The call status.
   1.478 -	
   1.479 -	@see RCall::TStatus */
   1.480 -		TStatus iStatus;
   1.481 -		TTimeIntervalSeconds iDuration;
   1.482 -		};
   1.483 -	
   1.484 -	IMPORT_C TInt GetInfo(TCallInfo& aCallInfo) const;
   1.485 -	IMPORT_C void NotifyHookChange(TRequestStatus& aStatus,THookStatus& aHookStatus);
   1.486 -	IMPORT_C void NotifyHookChangeCancel() const;
   1.487 -	IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,TStatus& aCallStatus);
   1.488 -	IMPORT_C void NotifyStatusChangeCancel() const;
   1.489 -	IMPORT_C void NotifyCallDurationChange(TRequestStatus& aStatus,TTimeIntervalSeconds& aTime);
   1.490 -	IMPORT_C void NotifyCallDurationChangeCancel() const;
   1.491 -
   1.492 -//
   1.493 -// Duration of call
   1.494 -//
   1.495 -	IMPORT_C TInt GetCallDuration(TTimeIntervalSeconds& aTime) const;
   1.496 -//
   1.497 -// Connecting and Disconnecting
   1.498 -//
   1.499 -/** Passes telephone numbers into Dial functions. */
   1.500 -	typedef TDesC TTelNumberC;
   1.501 -	IMPORT_C TInt Dial(const TTelNumberC& aTelNumber) const;
   1.502 -	IMPORT_C TInt Dial(const TDesC8& aCallParams,const TTelNumberC& aTelNumber) const;
   1.503 -	IMPORT_C void Dial(TRequestStatus& aStatus,const TTelNumberC& aTelNumber);
   1.504 -	IMPORT_C void Dial(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber);
   1.505 -	IMPORT_C void DialCancel() const;
   1.506 -	IMPORT_C TInt Connect() const;
   1.507 -	IMPORT_C TInt Connect(const TDesC8& aCallParams) const;
   1.508 -	IMPORT_C void Connect(TRequestStatus& aStatus);
   1.509 -	IMPORT_C void Connect(TRequestStatus& aStatus,const TDesC8& aCallParams);
   1.510 -	IMPORT_C void ConnectCancel() const;
   1.511 -	IMPORT_C TInt AnswerIncomingCall() const;
   1.512 -	IMPORT_C TInt AnswerIncomingCall(const TDesC8& aCallParams) const;
   1.513 -	IMPORT_C void AnswerIncomingCall(TRequestStatus& aStatus);
   1.514 -	IMPORT_C void AnswerIncomingCall(TRequestStatus& aStatus,const TDesC8& aCallParams);
   1.515 -	IMPORT_C void AnswerIncomingCallCancel() const;
   1.516 -	IMPORT_C TInt HangUp() const;
   1.517 -	IMPORT_C void HangUp(TRequestStatus& aStatus) const;
   1.518 -	IMPORT_C void HangUpCancel() const;
   1.519 -
   1.520 -//
   1.521 -// Call Data Access
   1.522 -//
   1.523 -	struct  TCommPort
   1.524 -/** Communications port information.
   1.525 -
   1.526 -@see TFileName */
   1.527 -		{
   1.528 -	/** The CSY module used by the C32 Communications Server to talk to the serial 
   1.529 -	device.
   1.530 -	@deprecated This has been deprecated as all the information that is needed by the 
   1.531 -	lower layers is now being passed in iPort. 
   1.532 -	
   1.533 -	@see TFileName */
   1.534 -		TFileName iCsy;
   1.535 -	/** The port used by the C32 Communications Server to talk to the serial device.
   1.536 -	It holds both the Csy name and the Port name.
   1.537 -	
   1.538 -	@see TName */
   1.539 -		TName iPort;
   1.540 -		};
   1.541 -
   1.542 -	IMPORT_C TInt LoanDataPort(TCommPort& aDataPort) const;
   1.543 -	IMPORT_C void LoanDataPort(TRequestStatus& aStatus,TCommPort& aDataPort);
   1.544 -	IMPORT_C void LoanDataPortCancel() const;
   1.545 -	IMPORT_C TInt RecoverDataPort() const;
   1.546 -
   1.547 -//
   1.548 -// Call Ownership manipulation
   1.549 -//
   1.550 -/** Call ownership status flags. */
   1.551 -	enum TOwnershipStatus
   1.552 -		{
   1.553 -	/** The call is not owned. */
   1.554 -		EOwnershipUnowned,
   1.555 -	/** The call is owned, but not by this RCall instance. */
   1.556 -		EOwnershipOwnedByAnotherClient,		// not the priority client
   1.557 -	/** The call is owned by this RCall instance. */
   1.558 -		EOwnershipOwnedByThisClient,
   1.559 -	/** The call is owned, but not by the priority client */
   1.560 -		EOwnershipThisIsPriorityClient		// not owned by this (the priority) client
   1.561 -		};
   1.562 -
   1.563 -	IMPORT_C TInt TransferOwnership() const;
   1.564 -	IMPORT_C void AcquireOwnership(TRequestStatus& aStatus) const;
   1.565 -	IMPORT_C void AcquireOwnershipCancel() const;
   1.566 -	IMPORT_C TInt GetOwnershipStatus(TOwnershipStatus& aOwnershipStatus) const;
   1.567 -	//
   1.568 -//
   1.569 -// Get and Set Call Parameters
   1.570 -//
   1.571 -/** Monitor speaker control setting flags. */
   1.572 -	enum TMonitorSpeakerControl
   1.573 -		{
   1.574 -	/** Speaker control is always off */
   1.575 -		EMonitorSpeakerControlAlwaysOff,
   1.576 -	/** Speaker control is on until the carrier is detected */
   1.577 -		EMonitorSpeakerControlOnUntilCarrier,
   1.578 -	/** Speaker control is always active. */
   1.579 -		EMonitorSpeakerControlAlwaysOn,
   1.580 -	/** Speaker control is on, except while dialling */
   1.581 -		EMonitorSpeakerControlOnExceptDuringDialling,
   1.582 -	/** Speaker control is unknown. */
   1.583 -		EMonitorSpeakerControlUnknown
   1.584 -		};
   1.585 -
   1.586 -/** Monitor speaker volume control setting flags. */
   1.587 -	enum TMonitorSpeakerVolume
   1.588 -		{
   1.589 -	/** Speaker volume is off. */
   1.590 -		EMonitorSpeakerVolumeOff,
   1.591 -	/** Speaker volume is low. */
   1.592 -		EMonitorSpeakerVolumeLow,
   1.593 -	/** Speaker volume is medium. */
   1.594 -		EMonitorSpeakerVolumeMedium,
   1.595 -	/** Speaker volume is high. */
   1.596 -		EMonitorSpeakerVolumeHigh,
   1.597 -	/** Speaker volume is unknown. */
   1.598 -		EMonitorSpeakerVolumeUnknown
   1.599 -		};
   1.600 -
   1.601 -/** Wait for dial tone flags. */
   1.602 -	enum TWaitForDialTone
   1.603 -		{
   1.604 -	/** Waiting for dial tone. */
   1.605 -		EDialToneWait,
   1.606 -	/** Not waiting for dial tone. */
   1.607 -		EDialToneNoWait
   1.608 -		};
   1.609 -
   1.610 -	class TCallParams
   1.611 -	/**
   1.612 -	@publishedAll
   1.613 -	@released
   1.614 -	*/
   1.615 -		{
   1.616 -	public:
   1.617 -		IMPORT_C TCallParams();
   1.618 -		IMPORT_C TCallParams(TMonitorSpeakerControl aSpeakerControl,
   1.619 -							 TMonitorSpeakerVolume aSpeakerVolume,
   1.620 -							 TUint aInterval,
   1.621 -							 TWaitForDialTone aWaitForDialTone);
   1.622 -		IMPORT_C TInt ExtensionId();
   1.623 -		IMPORT_C TBool IsDefault();
   1.624 -		TMonitorSpeakerControl iSpeakerControl;
   1.625 -		TMonitorSpeakerVolume iSpeakerVolume;
   1.626 -		TUint iInterval;
   1.627 -		TWaitForDialTone iWaitForDialTone;
   1.628 -	protected:
   1.629 -		TBool iIsDefault;
   1.630 -		TInt iExtensionId;
   1.631 -		};
   1.632 -
   1.633 -/** Call parameters package
   1.634 -
   1.635 -The call parameters to be associated with a call may be passed into functions 
   1.636 -using this type.
   1.637 -
   1.638 -@see TCallParams */
   1.639 -	typedef TPckg<TCallParams> TCallParamsPckg;
   1.640 -
   1.641 -	IMPORT_C TInt GetCallParams(TDes8& aParams) const;
   1.642 -
   1.643 -//
   1.644 -// Fax Settings
   1.645 -//
   1.646 -/** Fax mode flags. */
   1.647 -	enum TFaxMode
   1.648 -		{
   1.649 -	/** Fax is transmitting */
   1.650 -		ETransmit,
   1.651 -	/** Fax is receiving. */
   1.652 -		EReceive
   1.653 -		};
   1.654 -
   1.655 -/** Fax retrieval type flags. */
   1.656 -	enum TFaxRetrieveType
   1.657 -		{
   1.658 -	/** Retrieving a fax opened from voice call (not currently supported by GSM networks). */
   1.659 -		EFaxOnDemand,
   1.660 -	/** Retrieve a fax opened from fax call. */
   1.661 -		EFaxPoll
   1.662 -		};
   1.663 -
   1.664 -/** Fax identifier size flags. */
   1.665 -	enum TConstants
   1.666 -		{
   1.667 -	/** 20 */
   1.668 -		KFaxIdUserNameMaxSize=20
   1.669 -		};
   1.670 -
   1.671 -	struct TFaxSessionSettings
   1.672 -/** Fax session settings information.
   1.673 -
   1.674 -@see TFaxMode */
   1.675 -		{
   1.676 -	/** The fax mode.
   1.677 -	
   1.678 -	@see TFaxMode */
   1.679 -		TFaxMode iMode;
   1.680 -	/** The mode of retrieving faxes.
   1.681 -	
   1.682 -	@see TFaxRetrieveType */
   1.683 -		TFaxRetrieveType iFaxRetrieveType;
   1.684 -	/** The class of fax 
   1.685 -	
   1.686 -	@see TFaxClass */
   1.687 -		TFaxClass iFaxClass;
   1.688 -	/** The fax identifier string displayed at the top of the fax.
   1.689 -	
   1.690 -	@see KFaxIdUserNameMaxSize */
   1.691 -		TBuf<KFaxIdUserNameMaxSize> iFaxId;
   1.692 -	/** The maximum transfer speed that can be negotiated. */
   1.693 -		TInt iMaxSpeed;
   1.694 -	/** The minimum transfer speed that should be negotiated. */
   1.695 -		TInt iMinSpeed;
   1.696 -	/** The preferred compression mode used for negotiation. This may take one of the 
   1.697 -	following values: EModifiedHuffman, EModifiedRead, EUncompressedModifiedRead, 
   1.698 -	EModifiedModifiedRead. */
   1.699 -		TInt iPreferredECM;
   1.700 -	/** The delay used for Fax on Demand services. Measured in seconds. */
   1.701 -		TInt iFaxOnDemandDelay;
   1.702 -		// Tx Settings
   1.703 -	/** The preferred transmit resolution. This may take one of the following values: 
   1.704 -	EFaxNormal EFaxFine
   1.705 -	
   1.706 -	@see TFaxResolution */
   1.707 -		TFaxResolution iTxResolution;
   1.708 -	/** Compression mode for transmitting faxes.
   1.709 -	
   1.710 -	@see TFaxCompression */
   1.711 -		TFaxCompression iTxCompression;
   1.712 -	/** The number of pages to be transmitted. */
   1.713 -		TInt iTxPages;
   1.714 -		// Rx Settings
   1.715 -	/** The preferred receive resolution. This may take one of the following values: 
   1.716 -	EFaxNormal EFaxFine.
   1.717 -	
   1.718 -	@see TFaxResolution */
   1.719 -		TFaxResolution iRxResolution;
   1.720 -	/** Compression mode for receiving faxes.
   1.721 -	
   1.722 -	@see TFaxCompression */
   1.723 -		TFaxCompression iRxCompression;
   1.724 -		};
   1.725 -
   1.726 -	IMPORT_C TInt GetFaxSettings(TFaxSessionSettings& aSettings) const;
   1.727 -	IMPORT_C TInt SetFaxSettings(const TFaxSessionSettings& aSettings) const;
   1.728 -	IMPORT_C TInt AdoptFaxSharedHeaderFile(const RFile& aSharedFile) const;
   1.729 -//
   1.730 -// Retrieval of call objects' reference count
   1.731 -//
   1.732 - 	IMPORT_C TInt ReferenceCount() const;
   1.733 -
   1.734 -protected:
   1.735 -	IMPORT_C virtual void ConstructL();
   1.736 -	IMPORT_C virtual void Destruct();
   1.737 -	};
   1.738 -
   1.739 -//
   1.740 -//
   1.741 -// RLine
   1.742 -//
   1.743 -//
   1.744 -class RPhone;
   1.745 -/**
   1.746 -Provides access to the functionality associated with a specific line.
   1.747 -
   1.748 -This class is not intended for user derivation. 
   1.749 -
   1.750 -@publishedPartner
   1.751 -@released
   1.752 -*/
   1.753 -class RLine : public RTelSubSessionBase
   1.754 -	{
   1.755 -public:
   1.756 -	IMPORT_C RLine();
   1.757 -	IMPORT_C TInt Open(RPhone& aPhone,const TDesC& aName);
   1.758 -	IMPORT_C TInt Open(RTelServer& aServer,const TDesC& aName);
   1.759 -	IMPORT_C void Close();
   1.760 -
   1.761 -//
   1.762 -// Caps
   1.763 -//
   1.764 -/** Line capability flags. */
   1.765 -	enum TCapsFlags
   1.766 -		{
   1.767 -	/** The line supports data connections.*/
   1.768 -		KCapsData=0x00000001,
   1.769 -	/** The line supports fax connections. */
   1.770 -		KCapsFax=0x00000002,
   1.771 -	/** The line supports voice connections.*/
   1.772 -		KCapsVoice=0x00000004,
   1.773 -	/** The line supports incoming call notification requests. */
   1.774 -		KCapsEventIncomingCall=0x00010000,
   1.775 -		};
   1.776 -
   1.777 -	struct TCaps
   1.778 -/** Line capability information. */
   1.779 -		{
   1.780 -	/** Line capability flag. Contains a bitmask of the values defined in the TCapsFlags 
   1.781 -	enumeration.*/
   1.782 -		TUint iFlags;
   1.783 -		};
   1.784 -
   1.785 -	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
   1.786 -	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
   1.787 -	IMPORT_C void NotifyCapsChangeCancel() const;
   1.788 -
   1.789 -//
   1.790 -// Line and Hook Status
   1.791 -//
   1.792 -	IMPORT_C TInt GetStatus(RCall::TStatus& aStatus) const;
   1.793 -	IMPORT_C TInt GetHookStatus(RCall::THookStatus& aHookStatus) const;
   1.794 -
   1.795 -//
   1.796 -// Call enumeration and Information
   1.797 -//
   1.798 -	struct TCallInfo
   1.799 -/** Line call capability information.
   1.800 -
   1.801 -@see TName */
   1.802 -		{
   1.803 -	/** The name of a call.
   1.804 -	
   1.805 -	@see TName */
   1.806 -		TName iCallName;
   1.807 -	/** The call status.
   1.808 -	
   1.809 -	@see RCall::TStatus */
   1.810 -		RCall::TStatus iStatus;
   1.811 -	/** The call capabilities flag. 
   1.812 -	
   1.813 -	@see RCall::TCapsEnum*/
   1.814 -		TUint32 iCallCapsFlags;
   1.815 -		};
   1.816 -
   1.817 -	IMPORT_C TInt EnumerateCall(TInt& aCount) const;
   1.818 -	IMPORT_C TInt GetCallInfo(TInt aIndex,TCallInfo& aCallInfo) const;
   1.819 -//
   1.820 -//	General line notification information
   1.821 -//
   1.822 -	class TLineInfo
   1.823 -/** Line information.
   1.824 -
   1.825 -@see RCall::TStatus 
   1.826 -@publishedAll
   1.827 -@released
   1.828 -*/
   1.829 -		{
   1.830 -	public:
   1.831 -		IMPORT_C TLineInfo();
   1.832 -		RCall::THookStatus iHookStatus;
   1.833 -	/** The current line status.
   1.834 -	
   1.835 -	@see RCall::TStatus */
   1.836 -		RCall::TStatus iStatus;
   1.837 -		TName iNameOfLastCallAdded;
   1.838 -		TName iNameOfCallForAnswering;	// if an incoming call occurs, this contains the name
   1.839 -										// of the call to answer it on.
   1.840 -		};
   1.841 -	
   1.842 -//
   1.843 -// Notifications
   1.844 -//
   1.845 -	IMPORT_C TInt GetInfo(TLineInfo& aLineInfo) const;
   1.846 -	IMPORT_C void NotifyIncomingCall(TRequestStatus& aStatus, TName& aName);
   1.847 -	IMPORT_C void NotifyIncomingCallCancel() const;
   1.848 -	IMPORT_C void NotifyHookChange(TRequestStatus& aStatus,RCall::THookStatus& aHookStatus);
   1.849 -	IMPORT_C void NotifyHookChangeCancel() const;
   1.850 -	IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,RCall::TStatus& aLineStatus);
   1.851 -	IMPORT_C void NotifyStatusChangeCancel() const;
   1.852 -	IMPORT_C void NotifyCallAdded(TRequestStatus& aStatus,TName& aName);
   1.853 -	IMPORT_C void NotifyCallAddedCancel() const;
   1.854 -protected:
   1.855 -	IMPORT_C virtual void ConstructL();
   1.856 -	IMPORT_C virtual void Destruct();
   1.857 -	};
   1.858 -
   1.859 -//
   1.860 -//
   1.861 -// RPhone
   1.862 -//
   1.863 -//
   1.864 -class RTelServer;
   1.865 -/**
   1.866 -Phone sub-session.
   1.867 -
   1.868 -Provides access to the functionality associated with a specific phone.
   1.869 -
   1.870 -This class is not intended for user derivation.
   1.871 -
   1.872 -@publishedPartner
   1.873 -@released
   1.874 -*/
   1.875 -class RPhone : public RTelSubSessionBase
   1.876 -	{
   1.877 -public:
   1.878 -	IMPORT_C RPhone();
   1.879 -	IMPORT_C TInt Open(RTelServer& aSession,const TDesC& aName);
   1.880 -	IMPORT_C void Close();
   1.881 -
   1.882 -//
   1.883 -// Initialisation
   1.884 -//
   1.885 -	IMPORT_C TInt Initialise();
   1.886 -	IMPORT_C void Initialise(TRequestStatus& aStatus);
   1.887 -	IMPORT_C void InitialiseCancel();
   1.888 -
   1.889 -//
   1.890 -// Caps
   1.891 -//
   1.892 -/** Phone capability flags. */
   1.893 -	enum TCapsFlags
   1.894 -		{
   1.895 -	/** The capabilities of the phone are not known. */
   1.896 -		KCapsUnknown=0x00000001,
   1.897 -	/** The phone supports data calls. */
   1.898 -		KCapsData=0x00000002,
   1.899 -	/** The phone supports the fax class 1 interface. */
   1.900 -		KCapsFaxClassOne=0x0000004,
   1.901 -	/** The phone supports the fax class 1.0 interface. */
   1.902 -		KCapsFaxClassOnePointZero=0x0000008,
   1.903 -	/** The phone supports the fax class 2 interface. */
   1.904 -		KCapsFaxClassTwo=0x00000010,
   1.905 -	/** The phone supports the fax class 2.0 interface. */
   1.906 -		KCapsFaxClassTwoPointZero=0x00000020,
   1.907 -	/** The phone supports the fax class 2.1 interface. */
   1.908 -		KCapsFaxClassTwoPointOne=0x00000040,
   1.909 -	/** The phone supports voice calls. */
   1.910 -		KCapsVoice=0x00000080,
   1.911 -	/** The phone supports modem detection events, i.e. it can notify clients when 
   1.912 -	the modem can be or can no longer be detected. */
   1.913 -		KCapsEventModemDetection=0x00010000,
   1.914 -	/** The phone supports the ability to take the communications port from whatever 
   1.915 -	component is currently using it. */
   1.916 -		KCapsStealCommPort=0x00020000
   1.917 -		};
   1.918 -
   1.919 -	struct TCaps
   1.920 -/** Phone capability information. */
   1.921 -		{
   1.922 -	/** Phone capability flag. Contains bitmask of values defined in the TCapsFlags 
   1.923 -	enumeration. */
   1.924 -		TUint iFlags;
   1.925 -		};
   1.926 -
   1.927 -	IMPORT_C TInt GetCaps(TCaps& aCaps) const;
   1.928 -	IMPORT_C void NotifyCapsChange(TRequestStatus& aStatus, TCaps& aCaps);
   1.929 -	IMPORT_C void NotifyCapsChangeCancel() const;
   1.930 -
   1.931 -//
   1.932 -// Status
   1.933 -//
   1.934 -/** Phone mode status flags. */
   1.935 -	enum TMode
   1.936 -		{
   1.937 -	/** Phone (modem) status unknown. */
   1.938 -		EModeUnknown,
   1.939 -	/** Phone is idle. */
   1.940 -		EModeIdle,
   1.941 -	/** Phone is establishing link. */
   1.942 -		EModeEstablishingLink,
   1.943 -	/** Modem is in data mode. */
   1.944 -		EModeOnlineData,
   1.945 -	/** Modem is in command mode and the line is active. */
   1.946 -		EModeOnlineCommand
   1.947 -		};
   1.948 -
   1.949 -/** Modem connection status flags. */
   1.950 -	enum TModemDetection
   1.951 -		{
   1.952 -	/** Modem present. */
   1.953 -		EDetectedPresent,
   1.954 -	/** Modem is not present. */
   1.955 -		EDetectedNotPresent,
   1.956 -	/** Modem connection status is unknown. */
   1.957 -		EDetectedUnknown
   1.958 -		};
   1.959 -
   1.960 -	struct TStatus
   1.961 -/** Current phone status.
   1.962 -
   1.963 -@see TModemDetection */
   1.964 -		{
   1.965 -	/** The current modem connection status. 
   1.966 -	
   1.967 -	@see TModemDetection */
   1.968 -		TModemDetection iModemDetected;
   1.969 -	/** The current mode of the phone.
   1.970 -	
   1.971 -	@see TMode */
   1.972 -		TMode iMode;
   1.973 -		};
   1.974 -
   1.975 -	IMPORT_C TInt GetStatus(TStatus& aStatus) const;
   1.976 -
   1.977 -//
   1.978 -// Line Enumeration and Information
   1.979 -//
   1.980 -	struct TLineInfo
   1.981 -/** Line information.
   1.982 -
   1.983 -@see RCall::TStatus */
   1.984 -		{
   1.985 -	/** The current line status.
   1.986 -	
   1.987 -	@see RCall::TStatus */
   1.988 -		RCall::TStatus iStatus;
   1.989 -	/** The line capabilities flag. 
   1.990 -	
   1.991 -	@see RLine::TCapsFlags */
   1.992 -		TUint32 iLineCapsFlags;
   1.993 -	/** The name of the line.
   1.994 -	
   1.995 -	@see TName */
   1.996 -		TName iName;
   1.997 -		};
   1.998 -
   1.999 -	IMPORT_C TInt EnumerateLines(TInt& aCount) const;
  1.1000 -	IMPORT_C TInt GetLineInfo(const TInt aIndex,TLineInfo& aLineInfo) const;
  1.1001 -
  1.1002 -//
  1.1003 -//	General phone notification information
  1.1004 -//
  1.1005 -	class TPhoneInfo
  1.1006 -/** Phone notification information.
  1.1007 -
  1.1008 -Collects all the information associated with an instance of the core API phone 
  1.1009 -class is collected together into a single, directly accessible, structure. 
  1.1010 -This increases the efficiency of applications that require access to the majority 
  1.1011 -of the phone's data.
  1.1012 -
  1.1013 -This class is not intended for user derivation.
  1.1014 -
  1.1015 -@see TNetworkType 
  1.1016 -@publishedAll
  1.1017 -@released
  1.1018 -*/
  1.1019 -		{
  1.1020 -	public:
  1.1021 -		IMPORT_C TPhoneInfo();
  1.1022 -	/** The current modem detection state (is it present or not).
  1.1023 -	
  1.1024 -	@see TModemDetection */
  1.1025 -		TModemDetection iDetection;
  1.1026 -		};
  1.1027 -
  1.1028 -	IMPORT_C TInt GetInfo(TPhoneInfo& aPhoneInfo) const;
  1.1029 -
  1.1030 -//
  1.1031 -// Notifications
  1.1032 -//
  1.1033 -	IMPORT_C void NotifyModemDetected(TRequestStatus& aStatus,TModemDetection& aDetection);
  1.1034 -	IMPORT_C void NotifyModemDetectedCancel() const;
  1.1035 -
  1.1036 -//	
  1.1037 -// TEmergencyRequest is a bit-mask where each bit-flag represents 
  1.1038 -// the emergency request type that the client wishes to handle
  1.1039 -//
  1.1040 -	enum TEmergencyRequest
  1.1041 -		{
  1.1042 -	/** Location Based Services Emergency Request */ 
  1.1043 -		EEmergencyLCSRequest = 0x00000001,
  1.1044 -	/** Circuit Switch Voice Call Emergency Request */
  1.1045 -		EEmergencyCSVoiceCallRequest = 0x00000002,
  1.1046 -		};
  1.1047 -	
  1.1048 -	IMPORT_C TInt SetEmergencyClient(const TUint32 aEmergencyRequest) const;
  1.1049 -
  1.1050 -protected:
  1.1051 -	IMPORT_C virtual void ConstructL();
  1.1052 -	IMPORT_C virtual void Destruct();
  1.1053 -	};
  1.1054 -
  1.1055 -//
  1.1056 -//
  1.1057 -// RTelServer
  1.1058 -//
  1.1059 -//
  1.1060 -/**
  1.1061 -Root telephony server session.
  1.1062 -
  1.1063 -Provides access to general telephony information and functionality. Clients 
  1.1064 -wishing to use the ETel Server must open a connection with the root server 
  1.1065 -using the functions defined in this class. They may then obtain information 
  1.1066 -about loaded TSY modules, and the phones that they support. To access functionality 
  1.1067 -associated with a specific phone, the client must open a sub-session for that 
  1.1068 -phone.
  1.1069 -
  1.1070 -This class is not intended for user derivation.
  1.1071 -
  1.1072 -@publishedPartner
  1.1073 -@released 
  1.1074 -*/
  1.1075 -class RTelServer : public RSessionBase
  1.1076 -	{
  1.1077 -public:
  1.1078 -	enum { KDefaultMessageSlots=32 };
  1.1079 -
  1.1080 -	IMPORT_C RTelServer();
  1.1081 -	IMPORT_C TInt Connect(TInt aMessageSlots =KDefaultMessageSlots);
  1.1082 -	inline TVersion Version() const;
  1.1083 -
  1.1084 -//
  1.1085 -// Enumeration and Information
  1.1086 -//
  1.1087 -/** Types of telephony connection flags. */
  1.1088 -	enum TNetworkType
  1.1089 -		{
  1.1090 -	/** Wired analog network. */
  1.1091 -		ENetworkTypeWiredAnalog,
  1.1092 -	/** Wired digital network (not supported by ETel). */
  1.1093 -		ENetworkTypeWiredDigital,
  1.1094 -	/** Mobile analog network (not supported by ETel). */
  1.1095 -		ENetworkTypeMobileAnalog,
  1.1096 -	/** Mobile digital network. */
  1.1097 -		ENetworkTypeMobileDigital,
  1.1098 -	/** Unknown network type. */
  1.1099 -		ENetworkTypeUnknown
  1.1100 -		};
  1.1101 -
  1.1102 -	struct  TPhoneInfo
  1.1103 -/** Phone notification information.
  1.1104 -
  1.1105 -Collects all the information associated with an instance of the core API phone 
  1.1106 -class is collected together into a single, directly accessible, structure. 
  1.1107 -This increases the efficiency of applications that require access to the majority 
  1.1108 -of the phone's data.
  1.1109 -
  1.1110 -This class is not intended for user derivation. 
  1.1111 -
  1.1112 -@see TNetworkType */
  1.1113 -		{
  1.1114 -	/** The type of telephony connection supported by the phone.
  1.1115 -	
  1.1116 -	@see TNetworkType */
  1.1117 -		TNetworkType iNetworkType;
  1.1118 -	/** The name of the phone.
  1.1119 -	
  1.1120 -	@see TName */
  1.1121 -		TName iName;
  1.1122 -	/** The number of lines supported by the phone. */
  1.1123 -		TUint iNumberOfLines;
  1.1124 -	/** The extensions that the TSY module supports. */
  1.1125 -		TUint iExtensions;
  1.1126 -		};
  1.1127 -
  1.1128 -	IMPORT_C TInt EnumeratePhones(TInt& aNoOfPhones) const;
  1.1129 -	IMPORT_C TInt GetPhoneInfo(const TInt aIndex,TPhoneInfo& aInfo) const;
  1.1130 -	IMPORT_C TInt GetTsyName(const TInt aIndexOfPhone, TDes& aTsyName) const;
  1.1131 -
  1.1132 -//
  1.1133 -// Load and Unload Phone modules
  1.1134 -//
  1.1135 -
  1.1136 -	IMPORT_C TInt LoadPhoneModule(const TDesC& aFileName) const;
  1.1137 -	IMPORT_C TInt UnloadPhoneModule(const TDesC& aFileName) const;
  1.1138 -
  1.1139 -//
  1.1140 -// Check whether specified Phone module (TSY) supports certain functionality
  1.1141 -//
  1.1142 -		
  1.1143 -	IMPORT_C TInt IsSupportedByModule(const TDesC& aTsyName, const TInt aMixin, TBool& aResult) const;
  1.1144 -	IMPORT_C TInt GetTsyVersionNumber(const TDesC& aTsyName,TVersion& aVersion) const;
  1.1145 -//
  1.1146 -// Set this session as Priority client
  1.1147 -//
  1.1148 -	/** @deprecated This function has been deprecated. Use RTelServer::SetPriorityClientV2 followed by 
  1.1149 -	RPhone::SetEmergencyClient(EEmergencyCSVoiceCallRequest) */
  1.1150 -	IMPORT_C TInt SetPriorityClient() const;
  1.1151 -
  1.1152 -//
  1.1153 -// Set this session to receive detailed errors
  1.1154 -//
  1.1155 -
  1.1156 -/** Error granularity flags. */
  1.1157 -	enum TErrorGranularity
  1.1158 -		{
  1.1159 -	/** Client is only interested in core errors */
  1.1160 -		EErrorBasic,
  1.1161 -	/** Client is interested in extended errors */
  1.1162 -		EErrorExtended
  1.1163 -		};
  1.1164 -
  1.1165 -	IMPORT_C TInt SetExtendedErrorGranularity(const TErrorGranularity aGranularity) const;
  1.1166 -
  1.1167 -//
  1.1168 -// Debug calls - stubbed in release builds
  1.1169 -//
  1.1170 -	IMPORT_C TInt __DbgMarkHeap();
  1.1171 -	IMPORT_C TInt __DbgCheckHeap(TInt aCount);
  1.1172 -	IMPORT_C TInt __DbgMarkEnd(TInt aCount);
  1.1173 -	IMPORT_C TInt __DbgFailNext(TInt aCount);
  1.1174 -	IMPORT_C TInt __DbgFailNextAvailable(TBool& aResult);
  1.1175 -	
  1.1176 -//
  1.1177 -// Set this session as Priority client
  1.1178 -//
  1.1179 -	IMPORT_C TInt SetPriorityClientV2() const;
  1.1180 -	
  1.1181 -	};
  1.1182 -
  1.1183 -
  1.1184 -#include <etel.inl>
  1.1185 -#endif