--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simtsy/inc/CSimCallForwarding.h Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,109 @@
+// Copyright (c) 2001-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:
+// Contains definitions for classes that implement network orientated functionality.
+//
+//
+
+/**
+ @file
+*/
+
+#ifndef CSIMCALLFORWARDING_H__
+#define CSIMCALLFORWARDING_H__
+
+#include <etelmm.h>
+#include <et_phone.h>
+#include "csimtimer.h"
+#include <mmretrieve.h>
+#include "CSimSmsStore.h"//ugly but needed for listReadAllAttempt
+
+class CSimPhone;
+class CTestConfigSection;
+class CRetrieveMobilePhoneCFList;
+class CListReadAllAttempt;
+
+/**
+ * Implements the RMobilePhone based functions that constitute the callforwarding orientated
+ * functionality provided by the SIM TSY.
+ */
+class CSimCallForwarding : public CBase
+ {
+public:
+ static CSimCallForwarding* NewL(CSimPhone* aPhone);
+ CSimCallForwarding(CSimPhone* aPhone);
+ ~CSimCallForwarding();
+
+ TInt ExtFunc(const TTsyReqHandle aReqHandle,const TInt aIpc, const TDataPackage& aPckg);
+ TInt CancelService(const TInt aIpc, const TTsyReqHandle aReqHandle);
+ TInt SetCallForwardingStatus(const TTsyReqHandle aReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCF, RMobilePhone::TMobilePhoneCFChangeV1* aInfo);
+ TInt SetCallForwardingStatusCancel(const TTsyReqHandle aReqHandle);
+ TInt NotifyCallForwardingStatusChange(const TTsyReqHandle aReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCF);
+ TInt NotifyCallForwardingStatusChangeCancel(const TTsyReqHandle aReqHandle);
+ TInt GetIdentityServiceStatus(const TTsyReqHandle aReqHandle, RMobilePhone::TMobilePhoneIdService* aService, RMobilePhone::TMobilePhoneIdServiceStatus* aStatus);
+ TInt GetIdentityServiceStatusCancel(const TTsyReqHandle aReqHandle);
+ void DoNotifyCallForwardingStatusChanged(TDesC* aString);
+ void DoNotifyCallForwardingStatusChanged(TDesC* configString,TDesC* numberString);
+ TInt GetCallForwardingStatusPhase1(const TTsyReqHandle aTsyReqHandle,
+ CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData,
+ TInt* aBufSize);
+ TInt ProcessGetCallForwardingStatusPhase1L(const TTsyReqHandle aTsyReqHandle,
+ CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData,
+ TInt* aBufSize);
+ TInt GetCallForwardingStatusPhase2(const TTsyReqHandle aTsyReqHandle,
+ RMobilePhone::TClientId* aClient, TDes8* aBuf);
+ TInt GetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle);
+ void UpdateCFListL(RMobilePhone::TMobilePhoneCFCondition* aCF, RMobilePhone::TMobilePhoneCFChangeV1* aCFInfo );
+ void UnregisterAllCFListL();
+ void UpdateCFDivertAllL(TBool aActivateDivertAll);
+ void UpdateCFDivertAllPhoneNumberL(TDesC* numberString);
+ void RegisterL(RMobilePhone::TMobilePhoneCFCondition* aCF, RMobilePhone::TMobilePhoneCFChangeV1* aCFInfo );
+ void ActivateL(RMobilePhone::TMobilePhoneCFCondition* aCF, RMobilePhone::TMobilePhoneCFChangeV1* aCFInfo );
+ void DeactivateL(RMobilePhone::TMobilePhoneCFCondition* aCF, RMobilePhone::TMobilePhoneCFChangeV1* aCFInfo );
+ void EraseL(RMobilePhone::TMobilePhoneCFCondition* aCF, RMobilePhone::TMobilePhoneCFChangeV1* aCFInfo );
+ void UpdateCFQuiescentCondition(TBool aActivate, RMobilePhone::TMobilePhoneCFCondition aCF);
+
+ const CTestConfigSection* CfgFile();
+
+private:
+ void ConstructL();
+ void FindAndCreateCFListL();
+ void UnregisterAllCallDiversionsL();
+
+private:
+ CSimPhone* iPhone; // < Pointer to the parent phone class.
+
+
+ struct TIdentityServiceStatus
+ {
+ RMobilePhone::TMobilePhoneIdService iService;
+ RMobilePhone::TMobilePhoneIdServiceStatus iStatus;
+ };
+ TInt iIdentityServiceStatusIndex;
+
+ CArrayFixFlat<TIdentityServiceStatus>* iIdentityServiceStatus;
+
+ struct TCFNotification
+ {
+ TBool iCFChangeInfoNotificationPending;
+ TTsyReqHandle iCFChangeInfoReqHandle;
+ RMobilePhone::TMobilePhoneCFChangeV1* iCurrentChangeInfo;
+ RMobilePhone::TMobilePhoneCFCondition* iCurrentCFCondition;
+ };
+
+ TCFNotification iCFNotification;
+ CArrayPtrFlat<CListReadAllAttempt>* iGetCFStatus;
+ CMobilePhoneCFList* iCFList; //The list for call forwarding.
+ };
+
+#endif