telephonyprotocols/csdagt/src/ND_ETEL.H
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyprotocols/csdagt/src/ND_ETEL.H	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,148 @@
+/**
+* Copyright (c) 2003-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:
+* Header for NetDial ETel interface.
+* 
+*
+*/
+
+
+
+/**
+ @file Nd_etel.h
+ @internalComponent
+*/
+
+
+#ifndef __ND_ETEL_H__
+#define __ND_ETEL_H__
+
+#include <cdblen.h>
+#include <etelmm.h>
+
+// Forward declarations
+
+class CCommsDbNetDialAccess;
+
+class MNetDialEtelObserver
+/**
+MNetDialEtelObserver class is used by CTelServerProcessor to complete the request of the calling state.
+
+@internalComponent
+*/
+	{
+public:
+	virtual void TelFunctionComplete(TInt aError) =0;
+	};
+
+class CTelServerProcessor : public CActive
+/**
+CTelServerProcessor, one of these per CNetDial object. Implements calls to ETEL.
+
+@internalComponent
+*/
+	{
+private:
+	enum {
+		EIdle,
+		EDialUp,
+		EWait,
+		EHangUpDialOut,
+		EHangUpDialIn
+#ifdef SYMBIAN_NETWORKING_CSDAGENT_BCA_SUPPORT		
+		,EListenForStatusChange
+#endif		
+		} iState;
+public:
+	static CTelServerProcessor* NewL(CCommsDbNetDialAccess* aDb, TInt aPriority =EPriorityStandard);
+	CTelServerProcessor(CCommsDbNetDialAccess* aDb, TInt aPriority);
+	~CTelServerProcessor();
+	void StartDialUpL(MNetDialEtelObserver& aObserver);
+	void StartReconnectL(MNetDialEtelObserver& aObserver);
+#ifdef SYMBIAN_NETWORKING_CSDAGENT_BCA_SUPPORT	
+	void ListenForStatusChange(MNetDialEtelObserver& aObserver);	
+#endif
+	void WaitForIncomingCallL(MNetDialEtelObserver& aObserver);
+	void StartHangUpAfterDialOut(MNetDialEtelObserver& aObserver);
+	void StartHangUpAfterDialIn(MNetDialEtelObserver& aObserver);
+	void GetCommPortL(RCall::TCommPort& aCommPort);
+	void ReturnCommPortL();
+	void CloseCall();
+	TBool CommPortLoaned() const;
+	TBool CallActive() const;
+private:
+	void ConstructL();
+	void OpenNewCallL();
+	void GetPhoneInfoL(RTelServer::TPhoneInfo& aInfo);
+        void GetLineInfoL(RPhone::TLineInfo& aInfo,const TDesC& aPhoneName, TUint aLineType);
+	void SetMmParametersL();
+	void DialL();
+#ifdef SYMBIAN_NETWORKING_CSDAGENT_BCA_SUPPORT	
+	void HandleStatusChange();
+	void CancelListenForStatusChange();
+#endif	
+	void StartHangUp();
+	static void DialUpCompleted(TAny* aPtr,TInt aStatus);
+	static void HangUpCompleted(TAny* aPtr,TInt aStatus);
+	// from CActive
+	virtual void DoCancel();
+	virtual void RunL();
+	//
+	TBool RepeatDialL();
+	void Assertions();
+	RCall& ActiveCall();
+private:
+	enum {
+		EUnknown =0,
+		ECoreCallOnly,
+		EMmDataCall,
+		EMmHscsdCall
+
+		} iCallType;
+
+	CCommsDbNetDialAccess* iDb;
+	RTelServer iTelServer;
+	// Core call
+	RCall iCall;
+	RCall::TCallParams iCallParams;
+	RCall::TCallParamsPckg iCallParamsPckg;
+#ifdef SYMBIAN_NETWORKING_CSDAGENT_BCA_SUPPORT	
+	RCall::TStatus iCallStatus;
+#endif	
+
+	// MM API phone object
+	RMobilePhone								iMmPhone;
+	// MM API call object
+	RMobileCall 								iMmCall;
+	// MM API call parameters
+	RMobileCall::TMobileCallParamsV1			iMmCallParams;
+	RMobileCall::TMobileCallParamsV1Pckg		iMmCallParamsPckg;
+	// MM API data call parameters
+	RMobileCall::TMobileDataCallParamsV1		iMmDataCallParams;
+	RMobileCall::TMobileDataCallParamsV1Pckg	iMmDataCallParamsPckg;
+	// MM API hscsd call parameters
+	RMobileCall::TMobileHscsdCallParamsV1		iMmHscsdParams;
+	RMobileCall::TMobileHscsdCallParamsV1Pckg	iMmHscsdParamsPckg;
+
+	TBool iTsyLoaded;
+	TDialString iTelNum;
+	MNetDialEtelObserver* iCurrentObserver;
+	TBool iLoaned;
+	TBool iCallOpen;
+	TUint32 iDialCounter;
+	TBuf<KCommsDbSvrMaxFieldLength> iTsyName;
+	TUint32 iMaxDialAttempts;
+	};
+
+#endif