--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/ctsydispatchlayer/src/cmessagerouter.cpp Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,1118 @@
+// Copyright (c) 2008-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:
+//
+
+#include <e32def.h>
+#include <satcs.h>
+#include <pcktcs.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include <ctsy/rmmcustomapi.h>
+
+#include <ctsy/ltsy/mltsydispatchfactory.h>
+
+#include "cmessagerouter.h"
+#include <ctsy/ltsy/sat_defs.h>
+#include <ctsy/ltsy/cctsydispatchercallback.h>
+#include <ctsy/ltsy/ltsylogger.h>
+#include "tdispatcherholder.h"
+#include "requestqueueoneshot.h"
+#include "ctsydispatcherpanic.h"
+
+#include "ccallcontroldispatcher.h"
+#include "cphonedispatcher.h"
+#include "csecuritydispatcher.h"
+#include "cphonebookendispatcher.h"
+#include "ccellbroadcastdispatcher.h"
+#include "cphonebookondispatcher.h"
+#include "cphonebookdispatcher.h"
+#include "csatdispatcher.h"
+#include "csimdispatcher.h"
+#include "csmsdispatcher.h"
+#include "ccallcontrolmultipartydispatcher.h"
+#include "csupplementaryservicesdispatcher.h"
+#include "cpacketservicesdispatcher.h"
+
+
+
+TMessageManagerCallbackProxy::TMessageManagerCallbackProxy(MmMessageManagerCallback& aCtsyMessageManagerCallback)
+: iCtsyMessageManagerCallback(&aCtsyMessageManagerCallback)
+ {
+ } // TMessageManagerCallbackProxy::TMessageManagerCallbackProxy
+
+TMessageManagerCallbackProxy::TMessageManagerCallbackProxy()
+: iCtsyMessageManagerCallback(NULL)
+ {
+ }
+
+void TMessageManagerCallbackProxy::SetMessageManagerCallbackProxy(MmMessageManagerCallback& aCtsyMessageManagerCallback)
+ {
+ iCtsyMessageManagerCallback = &aCtsyMessageManagerCallback;
+ }
+
+void TMessageManagerCallbackProxy::Complete( TInt aIpc, TInt aResult )
+/**
+ * Completes requests / indications back to the Common TSY.
+ *
+ * @param aIpc The IPC to complete.
+ * @param aResult The result code of the request / indication.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8(" [IPC=%d, result=%d]"), aIpc, aResult);
+ ASSERT(iCtsyMessageManagerCallback);
+ iCtsyMessageManagerCallback->Complete(aIpc, aResult);
+ } // TMessageManagerCallbackProxy::Complete
+
+
+void TMessageManagerCallbackProxy::Complete( TInt aIpc, CMmDataPackage* aData, TInt aResult )
+/**
+ * Completes requests / indications back to the Common TSY.
+ *
+ * @param aIpc The IPC to complete.
+ * @param aData Package encapulating the data relating to the request / indication.
+ * @param aResult The result code of the request / indication.
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8(" [IPC=%d, result=%d, aData=0x%x]"), aIpc, aResult, aData);
+ ASSERT(iCtsyMessageManagerCallback);
+ iCtsyMessageManagerCallback->Complete(aIpc, aData, aResult);
+ } // TMessageManagerCallbackProxy::Complete
+
+
+CMessageRouter* CMessageRouter::NewL(MmMessageManagerCallback& aMessageManagerCallback)
+ {
+ TSYLOGENTRYEXIT;
+
+ CMessageRouter* const self = new(ELeave) CMessageRouter(aMessageManagerCallback);
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CMessageRouter::CMessageRouter(MmMessageManagerCallback& aMessageManagerCallback)
+ : iMessageManagerCallbackProxy(aMessageManagerCallback),
+ iSatMessageManagerCallbackProxy()
+ {
+ }
+
+
+void CMessageRouter::ConstructL()
+/**
+ * Second phase constructor.
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ iRequestQueueOneShot = CRequestQueueOneShot::NewL();
+
+ // Create callback object
+ iCtsyDispatcherCallback = CCtsyDispatcherCallback::NewL();
+
+
+ // The following code loads the LicenseeSkeletonLTSY.dll
+ // This LTSY is for testing purposes only. In a real
+ // environment, the licensee is expected to provide their own
+ // LTSY, which should adhere to the MLtsyDispatchFactoryV1 interface
+
+ #define TEST_CODE
+
+ _LIT(KLicenseeLTSYDllName, "licenseeskeletontsy.dll");
+
+ User::LeaveIfError(iLoadedLib.Load(KLicenseeLTSYDllName));
+ typedef MLtsyFactoryBase* (*LTsyFactoryL)();
+ LTsyFactoryL libEntry = (LTsyFactoryL)iLoadedLib.Lookup(1);
+ MLtsyFactoryBase* ltsyfactory = (MLtsyFactoryBase*)(*libEntry)(); // libEntry may leave.
+ iLtsyFactoryV1 = static_cast<MLtsyDispatchFactoryV1*>(ltsyfactory);
+
+ iLtsyFactoryV1->ConstructL(*iCtsyDispatcherCallback);
+
+ // Create the dispatchers
+
+ iCtsyDispatcherCallControlDispatcher = CCallControlDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherPhoneDispatcher = CPhoneDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, iSatMessageManagerCallbackProxy,
+ *iRequestQueueOneShot, *this);
+
+
+ iCtsyDispatcherSecurityDispatcher = CSecurityDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherPhonebookEnDispatcher = CPhonebookEnDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherCellBroadcastDispatcher = CCellBroadcastDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherPhonebookOnDispatcher = CPhonebookOnDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherPhonebookDispatcher = CPhonebookDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherSimDispatcher = CSimDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherSmsDispatcher = CSmsDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherCallControlMultipartyDispatcher = CCallControlMultipartyDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherSupplementaryServicesDispatcher = CSupplementaryServicesDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherPacketServicesDispatcher = CPacketServicesDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+ iCtsyDispatcherSatDispatcher = CSatDispatcher::NewL(
+ *iLtsyFactoryV1, iMessageManagerCallbackProxy, iSatMessageManagerCallbackProxy, *iRequestQueueOneShot);
+
+
+
+ iDispatcherHolder = new (ELeave) TDispatcherHolder(
+ *iCtsyDispatcherCallControlDispatcher,
+ *iCtsyDispatcherPhoneDispatcher,
+ *iCtsyDispatcherSecurityDispatcher,
+ *iCtsyDispatcherPhonebookEnDispatcher,
+ *iCtsyDispatcherCellBroadcastDispatcher,
+ *iCtsyDispatcherPhonebookOnDispatcher,
+ *iCtsyDispatcherPhonebookDispatcher,
+ *iCtsyDispatcherSimDispatcher,
+ *iCtsyDispatcherSmsDispatcher,
+ *iCtsyDispatcherCallControlMultipartyDispatcher,
+ *iCtsyDispatcherSupplementaryServicesDispatcher,
+ *iCtsyDispatcherPacketServicesDispatcher,
+ *iCtsyDispatcherSatDispatcher);
+
+ iCtsyDispatcherCallback->SetDispatcherHolder(*iDispatcherHolder);
+
+ iCtsyDispatcherCallControlDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherPhoneDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherSecurityDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherPhonebookEnDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherCellBroadcastDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherPhonebookOnDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherPhonebookDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherSimDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherSmsDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherCallControlMultipartyDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherSupplementaryServicesDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherPacketServicesDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+ iCtsyDispatcherSatDispatcher->SetDispatcherHolder(*iDispatcherHolder);
+
+ StartBootSequenceL();
+ } // CMessageRouter::ConstructL
+
+void CMessageRouter::SetSatMessageManager(MmMessageManagerCallback& aMessageManagerCallback)
+ {
+ TSYLOGENTRYEXIT;
+ iSatMessageManagerCallbackProxy.SetMessageManagerCallbackProxy(aMessageManagerCallback);
+ }
+
+void CMessageRouter::SetSatCallOriginInterface(MStkTsyCallOrigin& aSatCallOrigin)
+ {
+ TSYLOGENTRYEXIT;
+ //this pointer is initialised in ConstructL
+ iCtsyDispatcherSatDispatcher->SetSatCallOriginInterface(aSatCallOrigin);
+ }
+
+CMessageRouter::~CMessageRouter()
+ {
+ TSYLOGENTRYEXIT;
+
+ if (iLtsyFactoryV1)
+ {
+ iLtsyFactoryV1->Release();
+ iLtsyFactoryV1 = NULL;
+ }
+
+ iLoadedLib.Close();
+
+ // Delete dispatchers
+
+ delete iCtsyDispatcherCallControlDispatcher;
+ iCtsyDispatcherCallControlDispatcher = NULL;
+
+ delete iCtsyDispatcherPhoneDispatcher;
+ iCtsyDispatcherPhoneDispatcher = NULL;
+
+ delete iCtsyDispatcherSecurityDispatcher;
+ iCtsyDispatcherSecurityDispatcher = NULL;
+
+ delete iCtsyDispatcherPhonebookEnDispatcher;
+ iCtsyDispatcherPhonebookEnDispatcher = NULL;
+
+ delete iCtsyDispatcherCellBroadcastDispatcher;
+ iCtsyDispatcherCellBroadcastDispatcher = NULL;
+
+ delete iCtsyDispatcherPhonebookOnDispatcher;
+ iCtsyDispatcherPhonebookOnDispatcher = NULL;
+
+ delete iCtsyDispatcherPhonebookDispatcher;
+ iCtsyDispatcherPhonebookDispatcher = NULL;
+
+ delete iCtsyDispatcherSimDispatcher;
+ iCtsyDispatcherSimDispatcher = NULL;
+
+ delete iCtsyDispatcherSmsDispatcher;
+ iCtsyDispatcherSmsDispatcher = NULL;
+
+ delete iCtsyDispatcherCallControlMultipartyDispatcher;
+ iCtsyDispatcherCallControlMultipartyDispatcher = NULL;
+
+ delete iCtsyDispatcherSupplementaryServicesDispatcher;
+ iCtsyDispatcherSupplementaryServicesDispatcher = NULL;
+
+ delete iCtsyDispatcherPacketServicesDispatcher;
+ iCtsyDispatcherPacketServicesDispatcher = NULL;
+
+ delete iCtsyDispatcherSatDispatcher;
+ iCtsyDispatcherSatDispatcher = NULL;
+
+ delete iCtsyDispatcherCallback;
+ iCtsyDispatcherCallback = NULL;
+
+ delete iDispatcherHolder;
+ iDispatcherHolder = NULL;
+
+ delete iRequestQueueOneShot;
+ iRequestQueueOneShot = NULL;
+
+ } // CMessageRouter::~CMessageRouter
+
+
+void CMessageRouter::StartBootSequenceL()
+/**
+ * Second initialisation phase.
+ */
+ {
+ TSYLOGENTRYEXIT;
+
+ // Kick off boot sequence
+ TInt ret = ExtFuncL(EMmTsyBootNotifyModemStatusReadyIPC, NULL);
+ LOG(_L8("ExtFuncL(EMmTsyBootNotifyModemStatusReadyIPC returned %d"), ret);
+ User::LeaveIfError(ret);
+ } // CMessageRouter::StartBootSequenceL
+
+
+TInt CMessageRouter::ExtFuncL(TInt aIpc, const CMmDataPackage* aDataPackage)
+/**
+ * Part of the MMessageRouter interface which is part of the LTSY plugin
+ * interface.
+ *
+ * This function is the entry point for a request from the CTSY into the
+ * LTSY.
+ *
+ * @param aIpc The IPC of the request.
+ *
+ * @param aDataPackage The data package containing the parameters of the
+ * request.
+ *
+ * @return Error code to propagate back up to the CTSY relating to making
+ * this request. Returns KErrNone on success, KErrNotSupported if the LTSY
+ * does not support this request (it could not find a message handler to
+ * handle this request).
+ */
+ {
+ TSYLOGENTRYEXITARGS(_L8(" [IPC=%d]"), aIpc);
+
+ TInt ret = KErrNotSupported;
+
+ // Dispatch to Licensee LTSY
+ switch (aIpc)
+ {
+
+ // CallControl Functional Unit IPCs
+
+ case EEtelCallAnswer:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchAnswerL(aDataPackage);
+ break;
+ case EMobileCallAnswerISV:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchAnswerIsvL(aDataPackage);
+ break;
+ case EMobileCallHold:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchHoldL(aDataPackage);
+ break;
+ case EMobileCallDialEmergencyCall:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchDialEmergencyL(aDataPackage);
+ break;
+ case EMobilePhoneStopDTMFTone:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchStopDtmfToneL(aDataPackage);
+ break;
+ case EMobileCallDialISV:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchDialIsvL(aDataPackage);
+ break;
+ case EMobilePhoneSetALSLine:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchSetActiveAlsLineL(aDataPackage);
+ break;
+ case EMobilePhoneSendDTMFTonesCancel:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchSendDtmfTonesCancelL(aDataPackage);
+ break;
+ case EEtelCallHangUp:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchHangUpL(aDataPackage);
+ break;
+ case EMobileCallResume:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchResumeL(aDataPackage);
+ break;
+ case EMobileCallSetDynamicHscsdParams:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchSetDynamicHscsdParamsL(aDataPackage);
+ break;
+ case EEtelCallDial:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchDialL(aDataPackage);
+ break;
+ case EMobileCallDialNoFdnCheck:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchDialNoFdnCheckL(aDataPackage);
+ break;
+ case EMobileCallTransfer:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchTransferL(aDataPackage);
+ break;
+ case EMobilePhoneSendDTMFTones:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchSendDtmfTonesL(aDataPackage);
+ break;
+ case EMobilePhoneGetIdentityServiceStatus:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchGetIdentityServiceStatusL(aDataPackage);
+ break;
+ case EMobileCallSwap:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchSwapL(aDataPackage);
+ break;
+ case EMobilePhoneContinueDTMFStringSending:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchContinueDtmfStringSendingL(aDataPackage);
+ break;
+ case EEtelCallLoanDataPort:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchLoanDataPortL(aDataPackage);
+ break;
+ case EEtelCallRecoverDataPort:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchRecoverDataPortL(aDataPackage);
+ break;
+ case EMobilePhoneStartDTMFTone:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchStartDtmfToneL(aDataPackage);
+ break;
+ case EMobilePhoneGetALSLine:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchGetActiveAlsLineL();
+ break;
+ case ECustomCheckEmergencyNumberIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchQueryIsEmergencyNumberL(aDataPackage);
+ break;
+ case ECustomCheckAlsPpSupportIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchGetAlsPpSupportL();
+ break;
+ case ECustomGetAlsBlockedIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchGetAlsBlockedStatusL();
+ break;
+ case ECustomSetAlsBlockedIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchSetAlsBlockedL(aDataPackage);
+ break;
+ case ECustomGetLifeTimeIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchGetLifeTimeL();
+ break;
+ case ECustomTerminateCallIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchTerminateCallL(aDataPackage);
+ break;
+ case ECustomGetIccCallForwardingStatusIPC:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchGetCallForwardingIndicatorL();
+ break;
+ case ECtsyUpdateLifeTimeReq:
+ ret = iCtsyDispatcherCallControlDispatcher->DispatchUpdateLifeTimeL(aDataPackage);
+ break;
+
+ // Phone functionality
+
+ case EMobilePhoneGetFdnStatus:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetFdnStatusL();
+ break;
+ case EMobilePhoneGetNetworkRegistrationStatus:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetNetworkRegistrationStatusL();
+ break;
+ case EMmTsyBootNotifyModemStatusReadyIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchBootNotifyModemStatusReadyL();
+ break;
+ case EMmTsyBootNotifySimStatusReadyIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchBootNotifySimStatusReadyL();
+ break;
+ case EMobilePhoneGetHomeNetwork:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetHomeNetworkL();
+ break;
+ case EMmTsySimRefreshRegisterIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSimRefreshRegisterL(aDataPackage);
+ break;
+ case EMmTsyGetCallForwardingNumberIPC: // Deprecated parts of the boot sequence,
+ // deliberately not passed to Licensee LTSY
+
+ case EMmTsyGetCustomVendorExtPtrIPC: // Part of deprecated custom API initialisation
+ // deliberately not passed to Licensee LTSY
+ break;
+ case EReadViagHomeZoneCacheIPC: // Deliberated not passed to LTSY
+ // Leave like this unless this custom functionality
+ // is needed
+ break;
+ case ECustomNetWakeupIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchNspsWakeupL();
+ break;
+ case ECustomSetSystemNetworkModeIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSetSystemNetworkModeL(aDataPackage);
+ break;
+ case ECustomGetCurrentSystemNetworkModesIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetCurrentSystemNetworkModesL();
+ break;
+ case ECustomResetNetServerIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchResetNetServerL();
+ break;
+ case ECustomSetAlwaysOnMode:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSetAlwaysOnModeL(aDataPackage);
+ break;
+ case ECustomSetDriveModeIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSetDriveModeL(aDataPackage);
+ break;
+ case ECustomReadHSxPAStatusIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetHspaStatusL();
+ break;
+ case ECustomWriteHSxPAStatusIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSetHspaStatusL(aDataPackage);
+ break;
+ case ECustomGetNetworkProviderNameIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetNetworkProviderNameL();
+ break;
+ case ECustomGetOperatorNameIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetOperatorNameL();
+ break;
+ case ECustomGetCellInfoIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetCellInfoL();
+ break;
+ case ECtsyPhoneTerminateAllCallsReq:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchTerminateAllCallsL(aDataPackage);
+ break;
+
+ // Phone Functional Unit IPCs
+
+ case EMobilePhoneGetServiceProviderName:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetServiceProviderNameL();
+ break;
+ case EMobilePhoneGetPhoneId:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetPhoneIdL(KPhoneIdReqOriginPhoneFu);
+ break;
+ case EMobilePhoneGetDetectedNetworksV2Phase1:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetDetectedNetworksL();
+ break;
+ case EMobilePhoneGetDetectedNetworksCancel:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetDetectedNetworksCancelL();
+ break;
+ case EMobilePhoneSelectNetwork:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSelectNetworkL(aDataPackage);
+ break;
+ case EMobilePhoneSelectNetworkCancel:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSelectNetworkCancelL();
+ break;
+ case EMobilePhoneSetNetworkSelectionSetting:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSetNetworkSelectionSettingL(aDataPackage);
+ break;
+ case ECtsyPhoneCellInfoIndReq:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchRegisterCellInfoChangeNotificationL();
+ break;
+ case ECtsyPhoneCellInfoReq:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetPhoneCellInfoL();
+ break;
+ case ECustomGetServiceTableSupportbyApplicationIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetUsimServiceSupportL(aDataPackage);
+ break;
+ case EMobilePhoneGetCurrentActiveUSimApplication:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetCurrentActiveUsimApplicationL();
+ break;
+ case ECustomGetBandSelectionIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetSystemNetworkBandL();
+ break;
+ case ECustomSetBandSelectionIPC:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchSetSystemNetworkBandL(aDataPackage);
+ break;
+
+ // Security Functional Unit IPCs
+
+ case EMobilePhoneGetSecurityCodeInfo:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchGetSecurityCodeInfoL(aDataPackage);
+ break;
+ case EMobilePhoneGetLockInfo:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchGetLockInfoL(aDataPackage);
+ break;
+ case EMobilePhoneAbortSecurityCode:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchAbortSecurityCodeL(aDataPackage);
+ break;
+ case EMmTsySecurityGetSimActivePinStateIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchGetCurrentActivePinL();
+ break;
+ case EMobilePhoneSetLockSetting:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchSetLockSettingL(aDataPackage);
+ break;
+ case EMobilePhoneVerifySecurityCode:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchVerifySecurityCodeL(aDataPackage);
+ break;
+ case EMmTsyPhoneGetPin1DisableSupportedIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchGetPin1DisableSupportedL();
+ break;
+ case ECustomCheckSecurityCodeIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchCheckSecurityCodeL(aDataPackage);
+ break;
+ case ECustomDisablePhoneLockIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchDisablePhoneLockL(aDataPackage);
+ break;
+ case ECustomGetCipheringInfoIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchGetCipheringInfoL();
+ break;
+ case ECustomIsBlockedIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchIsSecurityCodeBlockedL(aDataPackage);
+ break;
+ case ECustomCheckSecurityCodeCancelIPC:
+ ret = iCtsyDispatcherSecurityDispatcher->DispatchCheckSecurityCodeCancelL(aDataPackage);
+ break;
+
+ // PhonebookEn Functional Unit IPCs
+
+ case EMmTsyENStoreGetInfoIPC:
+ ret = iCtsyDispatcherPhonebookEnDispatcher->DispatchStoreGetInfoL();
+ break;
+ case EMmTsyENStoreReadAllPhase1IPC:
+ ret = iCtsyDispatcherPhonebookEnDispatcher->DispatchStoreReadAllL();
+ break;
+ case EMmTsyENStoreReadIPC:
+ ret = iCtsyDispatcherPhonebookEnDispatcher->DispatchStoreReadEntryL(aDataPackage);
+ break;
+
+ // CellBroadcast Functional Unit IPCs
+
+ case EMobileBroadcastMessagingSetFilterSetting:
+ ret = iCtsyDispatcherCellBroadcastDispatcher->DispatchSetBroadcastFilterSettingL(aDataPackage);
+ break;
+ case EMobileBroadcastMessagingReceiveMessage:
+ ret = iCtsyDispatcherCellBroadcastDispatcher->DispatchActivateBroadcastReceiveMessageL(aDataPackage);
+ break;
+ case EMobileBroadcastMessagingReceiveMessageCancel:
+ ret = iCtsyDispatcherCellBroadcastDispatcher->DispatchReceiveMessageCancelL(aDataPackage);
+ break;
+ case ECustomStartSimCbTopicBrowsingIPC:
+ ret = iCtsyDispatcherCellBroadcastDispatcher->DispatchStartSimCbTopicBrowsingL();
+ break;
+ case ECustomDeleteSimCbTopicIPC:
+ ret = iCtsyDispatcherCellBroadcastDispatcher->DispatchDeleteSimCbTopicL(aDataPackage);
+ break;
+
+ // PhonebookOn Functional Unit IPCs
+
+ case EMmTsyONStoreReadIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreReadL(aDataPackage);
+ break;
+ case EMmTsyONStoreDeleteAllIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreDeleteAllL();
+ break;
+ case EMmTsyONStoreReadEntryIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreReadEntryL(aDataPackage);
+ break;
+ case EMmTsyONStoreGetInfoIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreGetInfoL();
+ break;
+ case EMmTsyONStoreReadSizeIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreGetReadStoreSizeL();
+ break;
+ case EMmTsyONStoreDeleteIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreDeleteEntryL(aDataPackage);
+ break;
+ case EMmTsyONStoreWriteEntryIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreWriteEntryL(aDataPackage);
+ break;
+ case EMmTsyONStoreWriteIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreWriteL(aDataPackage);
+ break;
+ case EMmTsyONStoreWriteSizeIPC:
+ ret = iCtsyDispatcherPhonebookOnDispatcher->DispatchStoreGetStoreSizeL();
+ break;
+
+ // Phonebook Functional Unit IPCs
+
+ case EMmTsyPhoneBookStoreReadIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreReadEntryL(aDataPackage);
+ break;
+ case EMmTsyPhoneBookStoreDeleteIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreDeleteEntryL(aDataPackage);
+ break;
+ case EMmTsyPhoneBookStoreCacheIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreCacheL(aDataPackage);
+ break;
+ case EMmTsyPhoneBookStoreGetInfoIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreGetInfoL(aDataPackage);
+ break;
+ case EMmTsyPhoneBookStoreInitIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreInitialiseL(aDataPackage);
+ break;
+ case EMmTsyPhoneBookStoreDeleteAllIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreDeleteAllL(aDataPackage);
+ break;
+ case EMobilePhoneStoreReadAllPhase1:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchSmsStoreReadAllL();
+ break;
+ case EMmTsyPhoneBookStoreWriteIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreWriteEntryL(aDataPackage);
+ break;
+ case EMobilePhoneGetPhoneStoreInfo:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchGetPhoneStoreInfoL(aDataPackage);
+ break;
+ case EMobilePhoneStoreDelete:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchSmsStoreDeleteEntryL(aDataPackage);
+ break;
+ case EMobilePhoneStoreDeleteAll:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchSmsStoreDeleteAllL();
+ break;
+ case EMobilePhoneStoreGetInfo:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchSmsStoreGetInfoL();
+ break;
+ case EMobilePhoneStoreRead:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchSmsStoreReadEntryL(aDataPackage);
+ break;
+ case EMobilePhoneStoreWrite:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchSmsStoreWriteEntryL(aDataPackage);
+ break;
+ case EMmTsyPhoneBookStoreCacheCancelIPC:
+ ret = iCtsyDispatcherPhonebookDispatcher->DispatchStoreCacheCancelL(aDataPackage);
+ break;
+
+ // Sim Functional Unit IPCs
+
+ case EMobilePhoneGetAPNControlListServiceStatus:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetApnControlListServiceStatusL();
+ break;
+ case EMobilePhoneDeleteAPNName:
+ ret = iCtsyDispatcherSimDispatcher->DispatchDeleteApnNameL(aDataPackage);
+ break;
+ case EMobilePhoneEnumerateAPNEntries:
+ ret = iCtsyDispatcherSimDispatcher->DispatchEnumerateApnEntriesL();
+ break;
+ case EMobilePhoneChangeSecurityCode:
+ ret = iCtsyDispatcherSimDispatcher->DispatchChangeSecurityCodeL(aDataPackage);
+ break;
+ case EMobilePhoneSetFdnSetting:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSetFdnSettingL(aDataPackage);
+ break;
+ case EMobilePhoneGetCustomerServiceProfile:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetCustomerServiceProfileL();
+ break;
+ case EMobilePhoneGetSubscriberId:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetSubscriberIdL();
+ break;
+ case EMobilePhoneAppendAPNName:
+ ret = iCtsyDispatcherSimDispatcher->DispatchAppendApnNameL(aDataPackage);
+ break;
+ case EMmTsySimGetICCType:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetIccTypeL();
+ break;
+ case EMobilePhoneSetIccMessageWaitingIndicators:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSetIccMessageWaitingIndicatorsL(aDataPackage);
+ break;
+ case EMobilePhoneSetAPNControlListServiceStatus:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSetApnControlListServiceStatusL(aDataPackage);
+ break;
+ case EMobilePhoneGetAPNname:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetApnNameL(aDataPackage);
+ break;
+ case EMmTsySimRefreshDoneIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSimRefreshDoneL(aDataPackage);
+ break;
+ case EMobilePhoneGetServiceTable:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetServiceTableL(aDataPackage);
+ break;
+ case EMobilePhoneGetIccMessageWaitingIndicators:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetIccMessageWaitingIndicatorsL();
+ break;
+ case ECustomSimLockActivateIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSimLockActivateL(aDataPackage);
+ break;
+ case ECustomSimLockDeActivateIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSimLockDeActivateL(aDataPackage);
+ break;
+ case ECustomGetATRIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetAnswerToResetL(aDataPackage);
+ break;
+ case ECustomGetSimCardReaderStatusIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetSimCardReaderStatusL();
+ break;
+ case ECustomGetSimAuthenticationDataIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchGetSimAuthenticationDataL(aDataPackage);
+ break;
+ case ECustomPowerSimOffIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchPowerSimOffL();
+ break;
+ case ECustomPowerSimOnIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchPowerSimOnL();
+ break;
+ case ECustomReadSimFileIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchReadSimFileL(aDataPackage);
+ break;
+ case ECustomSendAPDUReqIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSendApduRequestL(aDataPackage);
+ break;
+ case ECustomSendAPDUReqV2IPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSendApduRequestV2L(aDataPackage);
+ break;
+ case ECustomSimWarmResetIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSimWarmResetL();
+ break;
+ case ECustomSetSimMessageStatusReadIPC:
+ ret = iCtsyDispatcherSimDispatcher->DispatchSetSimMessageStatusReadL(aDataPackage);
+ break;
+
+ // Sms Functional Unit IPCs
+
+ case EMmTsyActivateSmsRouting:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchActivateSmsRoutingL();
+ break;
+ case EMmTsyDeactivateSmsRouting:
+ ret = KErrNone; //do nothing for deactivating sms routing
+ break;
+ case EMmTsySmsSendSatMessage:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchSendSatSmsL(aDataPackage);
+ break;
+ case EMobileSmsMessagingGetMessageStoreInfo:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchGetSmsStoreInfoL();
+ break;
+ case EMobileSmsMessagingGetSmspListPhase1:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchGetSmspListL();
+ break;
+ case EMobileSmsMessagingNackSmsStored:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchNackSmsStoredL(aDataPackage);
+ break;
+ case EMobileSmsMessagingAckSmsStored:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchAckSmsStoredL(aDataPackage);
+ break;
+ case EMobileSmsMessagingResumeSmsReception:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchResumeSmsReceptionL();
+ break;
+ case EMobileSmsMessagingSendMessage:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchSendSmsMessageL(aDataPackage);
+ break;
+ case EMobileSmsMessagingSendMessageNoFdnCheck:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchSendSmsMessageNoFdnCheckL(aDataPackage);
+ break;
+ case EMobileSmsMessagingSetMoSmsBearer:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchSetMoSmsBearerL(aDataPackage);
+ break;
+ case EMobileSmsMessagingStoreSmspList:
+ ret = iCtsyDispatcherSmsDispatcher->DispatchStoreSmspListEntryL(aDataPackage);
+ break;
+
+ // CallControlMultiparty Functional Unit IPCs
+
+ case EMobileConferenceCallHangUp:
+ ret = iCtsyDispatcherCallControlMultipartyDispatcher->DispatchConferenceHangUpL(aDataPackage);
+ break;
+ case EMobileConferenceCallAddCall:
+ ret = iCtsyDispatcherCallControlMultipartyDispatcher->DispatchConferenceAddCallL(aDataPackage);
+ break;
+ case EMobileConferenceCallCreateConference:
+ ret = iCtsyDispatcherCallControlMultipartyDispatcher->DispatchCreateConferenceL(aDataPackage);
+ break;
+ case EMobileConferenceCallSwap:
+ ret = iCtsyDispatcherCallControlMultipartyDispatcher->DispatchConferenceSwapL(aDataPackage);
+ break;
+ case EMobileCallGoOneToOne:
+ ret = iCtsyDispatcherCallControlMultipartyDispatcher->DispatchConferenceGoOneToOneL(aDataPackage);
+ break;
+
+ // SupplementaryServices Functional Unit IPCs
+
+ case EMobilePhoneSendNetworkServiceRequestNoFdnCheck:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSendNetworkServiceRequestNoFdnCheckL(aDataPackage);
+ break;
+ case EMobilePhoneGetWaitingStatusPhase1:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchGetCallWaitingStatusL();
+ break;
+ case EMobilePhoneSendNetworkServiceRequest:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSendNetworkServiceRequestL(aDataPackage);
+ break;
+ case EMobilePhoneGetBarringStatusPhase1:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchGetCallBarringStatusL(aDataPackage);
+ break;
+ case EMobilePhoneSetCallBarringStatus:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSetCallBarringStatusL(aDataPackage);
+ break;
+ case EMobilePhoneSetCallForwardingStatus:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSetCallForwardingStatusL(aDataPackage);
+ break;
+ case EMobilePhoneSetCallWaitingStatus:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSetCallWaitingStatusL(aDataPackage);
+ break;
+ case EMobilePhoneSetSSPassword:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSetSsPasswordL(aDataPackage);
+ break;
+ case EMobilePhoneGetCallForwardingStatusPhase1:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchGetCallForwardingStatusL(aDataPackage);
+ break;
+ case EMobileUssdMessagingSendMessage:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSendUssdMessageL(aDataPackage);
+ break;
+ case EMobileUssdMessagingSendMessageNoFdnCheck:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSendUssdMessageNoFdnCheckL(aDataPackage);
+ break;
+ case EMobileUssdMessagingSendRelease:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchSendUssdReleaseL();
+ break;
+ case ECustomClearCallBlackListIPC:
+ ret = iCtsyDispatcherSupplementaryServicesDispatcher->DispatchClearBlacklistL();
+ break;
+
+ // PacketServices Functional Unit IPCs
+
+ case EPacketAttach:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchPacketAttachL();
+ break;
+ case EPacketGetAttachMode:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetPacketAttachModeL(aDataPackage);
+ break;
+ case EPacketGetNtwkRegStatus:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetPacketNetworkRegistrationStatusL();
+ break;
+ case EPacketDetach:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchPacketDetachL();
+ break;
+ case EPacketContextSetConfig:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchSetPdpContextConfigL(aDataPackage);
+ break;
+ case EPacketContextModifyActiveContext:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchModifyActivePdpContextL(aDataPackage);
+ break;
+ case EPacketContextInitialiseContext:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchInitialisePdpContextL(aDataPackage);
+ break;
+ case EPacketContextDelete:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchDeletePdpContextL(aDataPackage);
+ break;
+ case EPacketSetAttachMode:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchSetPacketAttachModeL(aDataPackage);
+ break;
+ case EPacketNotifyStatusChange:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetStatusL();
+ break;
+ case EPacketSetDefaultContextParams:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchSetDefaultPdpContextParamsL(aDataPackage);
+ break;
+ case EPacketContextActivate:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchActivatePdpContextL(aDataPackage);
+ break;
+ case EPacketQoSSetProfileParams:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchSetPdpContextQosL(aDataPackage);
+ break;
+ case EPacketRejectActivationRequest:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchRejectNetworkInitiatedContextActivationRequestL();
+ break;
+ case EPacketContextDeactivate:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchDeactivatePdpContextL(aDataPackage);
+ break;
+ case EPacketContextAddPacketFilter:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchAddPacketFilterL(aDataPackage);
+ break;
+ case EPacketContextRemovePacketFilter:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchRemovePacketFilterL(aDataPackage);
+ break;
+ case EPacketInitProxiesIPC:
+ // deliberately not passed to Licensee LTSY
+ ret = KErrNone;
+ break;
+ case EPacketGetStaticCaps:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetStaticCapabilitiesL();
+ break;
+ case EPacketEnumerateMbmsMonitorServiceList:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetMaxNoMonitoredServiceListsL();
+ break;
+ case EPacketEnumerateMbmsActiveServiceList:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetMaxNoActiveServicesL();
+ break;
+ case ECtsyPacketMbmsInitialiseContextReq:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchInitialiseMbmsContextL(aDataPackage);
+ break;
+ case EPacketGetMbmsNetworkServiceStatus:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchGetMbmsNetworkServiceStatusL(aDataPackage);
+ break;
+ case EPacketUpdateMbmsMonitorServiceList:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchUpdateMbmsMonitorServiceListL(aDataPackage);
+ break;
+ case EPacketContextUpdateMbmsSessionList:
+ ret = iCtsyDispatcherPacketServicesDispatcher->DispatchUpdateMbmsSessionListL(aDataPackage);
+ break;
+
+ // Sat Functional Unit IPCs
+
+ case ESatTsySmsDeliverReport:
+ ret = iCtsyDispatcherSatDispatcher->DispatchSmsDeliverReportL(aDataPackage);
+ break;
+ case ESatTsyGetImageInstance:
+ ret = iCtsyDispatcherSatDispatcher->DispatchGetImageInstanceL(aDataPackage);
+ break;
+ case ESatTsyGetIMEI:
+ ret = iCtsyDispatcherPhoneDispatcher->DispatchGetPhoneIdL(KPhoneIdReqOriginSatFu);
+ break;
+ case ESatTsyGetIconData:
+ ret = iCtsyDispatcherSatDispatcher->DispatchGetIconDataL(aDataPackage);
+ break;
+ case ESatTsyGetClut:
+ ret = iCtsyDispatcherSatDispatcher->DispatchGetClutL(aDataPackage);
+ break;
+ case ESatTsyGetBearerCapability:
+ ret = iCtsyDispatcherSatDispatcher->DispatchGetDefaultBearerCapabilityL();
+ break;
+ case ESatTsySmsPpDdlStatus:
+ ret = iCtsyDispatcherSatDispatcher->DispatchSmsPpDdlStatusL();
+ break;
+ case ESatTsyMoSmsControlActivation:
+ ret = iCtsyDispatcherSatDispatcher->DispatchGetSmsControlActivatedL();
+ break;
+ case ESatTsyCellBroadcast:
+ ret = iCtsyDispatcherSatDispatcher->DispatchCellBroadcastL(aDataPackage);
+ break;
+ case ESatTsyAccTech:
+ ret = iCtsyDispatcherSatDispatcher->DispatchAccessTechnologyL();
+ break;
+ case ESatTsyTimingAdvance:
+ ret = iCtsyDispatcherSatDispatcher->DispatchTimingAdvanceL();
+ break;
+ case ESatNotifyMoSmControlRequest:
+ ret = iCtsyDispatcherSatDispatcher->DispatchNotifySmControlRequestL(aDataPackage);
+ break;
+ case ESatTsyProvideLocalInfo:
+ ret = iCtsyDispatcherSatDispatcher->DispatchProvideLocationInfoL();
+ break;
+ case ESatTsySetPolling:
+ ret = iCtsyDispatcherSatDispatcher->DispatchSetPollingIntervalL(aDataPackage);
+ break;
+ case ESatTsySmsPpDdl:
+ ret = iCtsyDispatcherSatDispatcher->DispatchSmsPpDdlL(aDataPackage);
+ break;
+ case ESatTsyLocalInformationNmr:
+ ret = iCtsyDispatcherSatDispatcher->DispatchLocalInformationNmrL();
+ break;
+ case ESatTsySendEnvelope:
+ ret = iCtsyDispatcherSatDispatcher->DispatchSendEnvelopeL(aDataPackage);
+ break;
+ case ESatTsyServiceRequest:
+ ret = iCtsyDispatcherSatDispatcher->DispatchServiceRequestL(aDataPackage);
+ break;
+ case ESatTsyReady:
+ ret = iCtsyDispatcherSatDispatcher->DispatchReadyL();
+ break;
+ case ESatTsyGetIfPendingNotification:
+ ret = iCtsyDispatcherSatDispatcher->DispatchPCmdNotificationL(aDataPackage);
+ break;
+ case ESatTsyEnvelopeError:
+ ret = iCtsyDispatcherSatDispatcher->DispatchUssdControlEnvelopeErrorL();
+ break;
+ case ESatTsyTimerExpiredIPC:
+ ret = iCtsyDispatcherSatDispatcher->DispatchTimerExpiredL(aDataPackage);
+ break;
+ case ESatTerminalRsp:
+ ret = iCtsyDispatcherSatDispatcher->DispatchTerminalRspL(aDataPackage);
+ break;
+ case ESatNotifySetUpCallPCmd:
+ //This IPC is called when a call connected envelope event is delayed because the terminal response to
+ //the set up call proactive command must be sent before the event download envelope.
+ //so this internal ipc just forwards the saved envelope to the event download api as normal.
+ ret = iCtsyDispatcherSatDispatcher->DispatchEventDownloadL(aDataPackage);
+ //ret = iCtsyDispatcherSatDispatcher->DispatchNotifySetUpCallPcmdL(aDataPackage);
+ break;
+ case ESatMenuSelection:
+ ret = iCtsyDispatcherSatDispatcher->DispatchMenuSelectionL(aDataPackage);
+ break;
+ case ESatEventDownload:
+ ret = iCtsyDispatcherSatDispatcher->DispatchEventDownloadL(aDataPackage);
+ break;
+ case ESatTsyUssdStatus:
+ ret = iCtsyDispatcherSatDispatcher->DispatchGetUssdControlSupportedL();
+ break;
+ default:
+ LOG(_L8("WARNING: CMessageRouter::ExtFuncL unhandled IPC=%d"), aIpc);
+ break;
+ } // switch (aIpc)
+
+ return TSYLOGSETEXITERR(ret);
+ } // CMessageRouter::ExtFuncL
+
+void CMessageRouter::HandleNotifyModemReadyReceivedL()
+ {
+ /*
+ * This is the first IPC that is sent from CtsyDispatcher->CTSY indicating modem
+ * is ready. We piggy-back on the back of this to now query what callback indicators
+ * are supported. We do it here rather than at construction because for some basebands
+ * it is possible this information must be read from configuration or even queried asynchronously.
+ * If it is async they can do it before invoking the CallbackBootNotifyModemStatusReady
+ *
+ */
+ QuerySupporterCallbackIndicators();
+
+ // Method to retrieve network related information which will get stored in various Ctsy caches.
+ RetrieveNetworkInfoL();
+ }
+
+void CMessageRouter::QuerySupporterCallbackIndicators()
+ {
+
+ // Query the support for all the callback indicators
+ // At present we do not do anything with this information (other than log it)
+ // but in the future we could link this up to
+ // registering for notifiers. So if a baseband does not support the notifier
+ // then client can be returned
+ // KErrNotSUpported rather than just never completing.
+
+ TUint32 indmask;
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchCallControlFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("CallControl indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchPhoneFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Security indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchSecurityFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("CallControl indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchPhonebookEnFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Phonebook EN indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchCellBroadcastFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Cell Broadcast indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchPhonebookOnFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Phonebook ON indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchPhonebookFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Phonebook indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchSimFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("SIM indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchSmsFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Sms indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchCallControlMultipartyFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Call Control Multiparty indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchSupplementaryServicesFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Supplementary Services indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchPacketServicesFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("Packet Services indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ iLtsyFactoryV1->IsCallbackIndicatorSupported(KDispatchSatFuncUnitId, EIndIdGroup1, indmask);
+ LOG(_L8("SAT indicator support. GroupID=%d, bitmask = 0x%x"), EIndIdGroup1, indmask);
+ }
+
+void CMessageRouter::RetrieveNetworkInfoL()
+ {
+ // Call methods to get various network information from the Ltsy
+ iCtsyDispatcherPhoneDispatcher->DispatchGetCurrentNetworkInfoL();
+ iCtsyDispatcherPhoneDispatcher->DispatchGetNetworkModeL();
+ iCtsyDispatcherPhoneDispatcher->DispatchGetNitzInfoL();
+ iCtsyDispatcherPhoneDispatcher->DispatchGetSignalStrengthL();
+ iCtsyDispatcherPhoneDispatcher->DispatchGetBatteryInfoL();
+ }