--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/src/cmmmessagerouter.cpp Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,816 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 FILES
+#include "mmmmesshandlerbase.h"
+#include "cmmmessagerouter.h"
+#include "cmmphonetsender.h"
+#include "cmmphonetreceiver.h"
+#include "cmmcallmesshandler.h"
+#include "cmmconferencecallmesshandler.h"
+#include "cmmdtmfmesshandler.h"
+#include "cmmnetmesshandler.h"
+#include "cmmnetoperatornamehandler.h"
+#include "cmmphonemesshandler.h"
+#include "cmmsupplservmesshandler.h"
+#include "cmmphonebookstoremesshandler.h"
+#include "cmmpacketservicemesshandler.h"
+#include "cmmpacketcontextmesshandler.h"
+#include "cmmpacketqosmesshandler.h"
+#include "cmmussdmesshandler.h"
+#include "cmmbroadmesshandler.h"
+#include "cmmcustommesshandler.h"
+#include "cmmsmsmesshandler.h"
+#include "cmmsecuritymesshandler.h"
+#include "cmmuiccmesshandler.h"
+#include "nokiatsy_internal_variation.h"
+#include "nokiatsy_release.h" // for print release information to TSY logs
+#include "tsylogger.h"
+
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include <pcktcs.h> // for packet data IPCs
+#include <satcs.h> // for SIM ATK call control
+#include <pn_const.h>
+#include <pipe_sharedisi.h>
+#include <ctsy/rmmcustomapi.h>
+
+#include "osttracedefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmmmessageroutertraces.h"
+#endif
+
+// EXTERNAL DATA STRUCTURES
+ //None
+
+// EXTERNAL FUNCTION PROTOTYPES
+ //None
+
+// CONSTANTS
+ //None
+
+// MACROS
+ //None
+
+// LOCAL CONSTANTS AND MACROS
+ //None
+
+// MODULE DATA STRUCTURES
+ //None
+
+// LOCAL FUNCTION PROTOTYPES
+ //None
+
+// ==================== LOCAL FUNCTIONS =====================================
+ //None
+
+// ================= MEMBER FUNCTIONS =======================================
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::NewL
+// Creates new CMmMessageRouter object and returns it.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMmMessageRouter* CMmMessageRouter::NewL
+ (
+ #if (NCP_COMMON_S60_VERSION_SUPPORT==S60_VERSION_32)
+ CMmMessageManager* aMessageManager
+ #else
+ MmMessageManagerCallback* aMessageManager
+ #endif // NCP_COMMON_S60_VERSION_SUPPORT
+ )
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::NewL");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_NEWL, "CMmMessageRouter::NewL" );
+
+ CMmMessageRouter* messageRouter = NULL;
+
+ messageRouter = new ( ELeave ) CMmMessageRouter();
+ CleanupStack::PushL( messageRouter );
+ messageRouter->ConstructL( aMessageManager );
+ CleanupStack::Pop( messageRouter );
+
+ return messageRouter;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::~CMmMessageRouter
+// Destructor, deletes all allocated resources.
+// -----------------------------------------------------------------------------
+//
+CMmMessageRouter::~CMmMessageRouter()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::~CMmMessageRouter");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_CMMMESSAGEROUTER, "CMmMessageRouter::~CMmMessageRouter" );
+
+ delete iMmPhoneMessHandler;
+ delete iMmCallMessHandler;
+ delete iMmConferenceCallMessHandler;
+ delete iMmDtmfMessHandler;
+ delete iMmNetMessHandler;
+ delete iMmSecurityMessHandler;
+ delete iMmPhoneBookStoreMessHandler;
+ delete iMmPacketContextMessHandler;
+ delete iMmPacketQoSMessHandler;
+ delete iMmPacketServiceMessHandler;
+ delete iMmSmsMessHandler;
+ delete iMmSupplServMessHandler;
+ delete iMmUssdMessHandler;
+ delete iMmCustomMessHandler;
+ delete iMmBroadMessHandler;
+ delete iMmUiccMessHandler;
+
+ //delete Phonet components
+ delete iPhoNetSender;
+ delete iPhoNetReceiver;
+
+ iPhoNet.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::CMmMessageRouter
+// Constructor
+// -----------------------------------------------------------------------------
+//
+CMmMessageRouter::CMmMessageRouter()
+ {
+OstTrace0( TRACE_NORMAL, DUP1_CMMMESSAGEROUTER_CMMMESSAGEROUTER, "CMmMessageRouter::CMmMessageRouter" );
+ // none
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::ConstructL
+// Creates and initialises class attributes
+// -----------------------------------------------------------------------------
+//
+#if (NCP_COMMON_S60_VERSION_SUPPORT==S60_VERSION_32)
+void CMmMessageRouter::ConstructL
+ (
+ CMmMessageManager* aMessageManager
+ )
+#else
+void CMmMessageRouter::ConstructL
+ (
+ MmMessageManagerCallback* aMessageManager
+ )
+#endif // NCP_COMMON_S60_VERSION_SUPPORT
+ {
+ //PRINT VERSION STRING TO LOG
+TFLOGSTRING(NOKIATSY_RELEASE_STR);
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_CONSTRUCTL, NOKIATSY_RELEASE_STR );
+
+ //INIT PHONET
+ /**************************************************************/
+
+ // Creation of PhoNet objects.
+
+TFLOGSTRING("TSY: CMmMessageRouter::ConstructL -- initializing ISC API");
+OstTrace0( TRACE_NORMAL, DUP1_CMMMESSAGEROUTER_CONSTRUCTL, "CMmMessageRouter::ConstructL, initializing ISC API" );
+
+ // Only for server information, which is defined with one byte.
+ TBuf8<1> resource;
+ // resource.Append( PN_ATK );
+ TRequestStatus status( KRequestPending );
+ // open returns void
+ iPhoNet.Open( EIscNokiaMmTsy, status, EOwnerThread, &resource );
+ User::WaitForRequest( status );
+
+TFLOGSTRING2("TSY: CMmMessageRouter::ConstructL - status: %d", status.Int() );
+OstTrace1( TRACE_NORMAL, DUP2_CMMMESSAGEROUTER_CONSTRUCTL, "CMmMessageRouter::ConstructL;status=%d", status.Int());
+
+ User::LeaveIfError( status.Int() );
+
+ iMessageManager = aMessageManager;
+
+ iPhoNetSender = CMmPhoNetSender::NewL( &iPhoNet );
+ iPhoNetReceiver = CMmPhoNetReceiver::NewL( &iPhoNet );
+ //start receiving
+ iPhoNetReceiver->ReceiveL();
+
+
+TFLOGSTRING("TSY: CMmMessageRouter::ConstructL -- initializing done");
+OstTrace0( TRACE_NORMAL, DUP3_CMMMESSAGEROUTER_CONSTRUCTL, "CMmMessageRouter::ConstructL, initializing done" );
+
+ //END INIT PHONET
+ /**************************************************************/
+
+ iMmUiccMessHandler = CMmUiccMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this );
+
+ iMmDtmfMessHandler = CMmDtmfMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this );
+
+ iMmCallMessHandler = CMmCallMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ iMmDtmfMessHandler,
+ this );
+
+ iMmConferenceCallMessHandler = CMmConferenceCallMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this );
+
+ iMmNetMessHandler = CMmNetMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this,
+ iMmUiccMessHandler );
+
+ iMmSupplServMessHandler = CMmSupplServMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this,
+ iMmUiccMessHandler );
+
+ iMmSecurityMessHandler = CMmSecurityMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ iMmNetMessHandler,
+ iMmCallMessHandler,
+ this,
+ iMmUiccMessHandler );
+
+ iMmPhoneMessHandler = CMmPhoneMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this,
+ iMmSupplServMessHandler,
+ iMmUiccMessHandler );
+
+ iMmSmsMessHandler = CMmSmsMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this,
+ iMmUiccMessHandler );
+
+ iMmBroadMessHandler = CMmBroadMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this );
+
+ iMmUssdMessHandler = CMmUssdMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this );
+
+ iMmCustomMessHandler = CMmCustomMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ iMmNetMessHandler,
+ iMmSecurityMessHandler,
+ this,
+ iMmUiccMessHandler );
+
+ iMmPhoneBookStoreMessHandler = CMmPhoneBookStoreMessHandler::NewL(
+ this,
+ iMmUiccMessHandler);
+
+ iMmPacketServiceMessHandler = CMmPacketServiceMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ this );
+
+ iMmPacketQoSMessHandler = CMmPacketQoSMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ iMmPacketServiceMessHandler->PacketContextList(),
+ this );
+
+ iMmPacketContextMessHandler = CMmPacketContextMessHandler::NewL(
+ iPhoNetSender,
+ iPhoNetReceiver,
+ iMmPacketServiceMessHandler->PacketContextList(),
+ iMmPacketQoSMessHandler,
+ this );
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMessageRouter::Complete
+// Complete without a data package
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CMmMessageRouter::Complete(
+ TInt aIpc,
+ TInt aResult )
+ {
+TFLOGSTRING3("NTSY: CMmMessageRouter::Complete. without data package. IPC = %d, result: %d", aIpc, aResult);
+OstTraceExt2( TRACE_NORMAL, CMMMESSAGEROUTER_COMPLETE, "CMmMessageRouter::Complete;aIpc=%d;aResult=%d", aIpc, aResult );
+ CMmDataPackage emptyDataPackage;
+ Complete( aIpc, &emptyDataPackage, aResult );
+ return;
+ }
+
+// ---------------------------------------------------------------------------
+// CMmMessageRouter::Complete
+// Complete with a data package
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+void CMmMessageRouter::Complete(
+ TInt aIpc,
+ CMmDataPackage* data,
+ TInt aResult )
+ {
+TFLOGSTRING3("NTSY: CMmMessageRouter::Complete. IPC = %d, result: %d", aIpc, aResult);
+OstTraceExt2( TRACE_NORMAL, DUP1_CMMMESSAGEROUTER_COMPLETE, "CMmMessageRouter::Complete;aIpc=%d;aResult=%d", aIpc, aResult );
+
+ // Read Operator Name String (ONS Name) when SIM is ready.
+ // Read Operator PLMN List (OPL) rules when SIM is ready.
+ // SIM SMS cache: Start cacheing when SIM is ready.
+ if ( EMmTsyBootNotifySimStatusReadyIPC == aIpc && KErrNone == aResult )
+ {
+ // Start ONS and OPL reading.
+ iMmNetMessHandler->InitializeOnsAndOplReading();
+ // Start SMS cacheing.
+ iMmSmsMessHandler->InitializeSmsCache();
+ }
+
+ // complete request to upper layers
+ #if (NCP_COMMON_S60_VERSION_SUPPORT==S60_VERSION_32)
+ RouteCompletion( aIpc, data, aResult );
+ #else
+ iMessageManager->Complete( aIpc, data, aResult );
+ #endif // NCP_COMMON_S60_VERSION_SUPPORT
+
+ return;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::RouteRequest
+// Returns pointer to the message handler for this request, based on IPC number
+// -----------------------------------------------------------------------------
+//
+MMmMessHandlerBase* CMmMessageRouter::RouteRequest
+ (
+ const TInt aIpc // IPC number
+ )
+ {
+TFLOGSTRING2("TSY: CMmMessageRouter::RouteRequest. IPC:%d",aIpc);
+OstTrace1( TRACE_NORMAL, CMMMESSAGEROUTER_ROUTEREQUEST, "CMmMessageRouter::RouteRequest;aIpc=%d", aIpc );
+
+ MMmMessHandlerBase* messHandler = NULL;
+
+ switch( aIpc )
+ {
+ case EMobileCallDialEmergencyCall:
+ case EEtelCallAnswer:
+ case EEtelCallDial:
+ case EEtelCallHangUp:
+ case EMobileCallHold:
+ case EMobileCallResume:
+ case EMobileCallSwap:
+ case EMobileCallGoOneToOne:
+ case EMobileCallTransfer:
+ case EMobileCallDeflect:
+ case EMobileCallDialISV:
+ case EMobileCallAnswerISV:
+ case EMobileCallActivateUUS:
+ case EMobileCallDialNoFdnCheck:
+ //CSD features
+ case EEtelCallLoanDataPort:
+ case EEtelCallRecoverDataPort:
+ {
+ messHandler = iMmCallMessHandler;
+ break;
+ }
+ case EMobilePhoneSetNetworkSelectionSetting:
+ case EMobilePhoneSelectNetwork:
+ case EMobilePhoneGetDetectedNetworksV2Phase1:
+ case EMobilePhoneSelectNetworkCancel:
+ case EMobilePhoneGetDetectedNetworksCancel:
+ case EMobilePhoneGetNetworkRegistrationStatus:
+ case EMobilePhoneGetHomeNetwork:
+ case EMobilePhoneGetNetworkSecurityLevel:
+ case EMobilePhoneGetCipheringIndicatorStatus:
+ case EMobilePhoneAuthorizationInfoPhase1:
+ {
+ messHandler = iMmNetMessHandler;
+ break;
+ }
+ // DTMF functionality
+ case EMobilePhoneStartDTMFTone:
+ case EMobilePhoneStopDTMFTone:
+ case EMobilePhoneSendDTMFTones:
+ case EMobilePhoneSendDTMFTonesCancel:
+ case EMobilePhoneContinueDTMFStringSending:
+ {
+ messHandler = iMmDtmfMessHandler;
+ break;
+ }
+ // Conference call functionality
+ case EMobileConferenceCallCreateConference:
+ case EMobileConferenceCallAddCall:
+ case EMobileConferenceCallSwap:
+ case EMobileConferenceCallHangUp:
+ {
+ messHandler = iMmConferenceCallMessHandler;
+ break;
+ }
+ case EMmTsyPhoneBookStoreReadIPC:
+ case EMmTsyPhoneBookStoreWriteIPC:
+ case EMmTsyPhoneBookStoreGetInfoIPC:
+ case EMmTsyPhoneBookStoreDeleteIPC:
+ case EMmTsyPhoneBookStoreDeleteAllIPC:
+ case EMmTsyPhoneBookStoreCacheIPC:
+ case EMmTsyPhoneBookStoreInitIPC:
+ case EMmTsyPhoneBookStoreCacheCancelIPC:
+ case EMobilePhoneGetMailboxNumbers:
+ {
+ messHandler = iMmPhoneBookStoreMessHandler;
+ break;
+ }
+ case EPacketAttach:
+ case EPacketDetach:
+ case EPacketGetNtwkRegStatus:
+ case EPacketSetAttachMode:
+ case EPacketRejectActivationRequest:
+ case EPacketGetAttachMode:
+ case EPacketSetPrefBearer:
+ case EPacketSetDefaultContextParams:
+ case EPacketNotifyContextAdded:
+ case EPacketNotifyDynamicCapsChange:
+ case EPacketNotifyStatusChange:
+ case ECustomSetAlwaysOnMode:
+ case EPacketInitProxiesIPC:
+ case EPacketNotifyTransferCapsIPC:
+ {
+ messHandler = iMmPacketServiceMessHandler;
+ break;
+ }
+ case EPacketContextInitialiseContext:
+ case EPacketContextSetConfig:
+ case EPacketContextActivate:
+ case EPacketContextDelete:
+ case EPacketContextGetDataVolumeTransferred:
+ case EPacketContextDeactivate:
+ case EPacketContextAddPacketFilter:
+ case EPacketContextModifyActiveContext:
+ case EPacketAddMediaAuthorization:
+ case ECustomSetDriveModeIPC:
+ {
+ messHandler = iMmPacketContextMessHandler;
+ break;
+ }
+ case EPacketQoSSetProfileParams:
+ case EPacketQoSNotifyProfileChanged:
+ case EPacketQoSNotifyProfileChangedCancel:
+ {
+ messHandler = iMmPacketQoSMessHandler;
+ break;
+ }
+ case EMobileUssdMessagingSendMessage:
+ case EMobileUssdMessagingSendRelease:
+ case EMobileUssdMessagingSendMessageNoFdnCheck:
+ {
+ messHandler = iMmUssdMessHandler;
+ break;
+ }
+ // Supplementary Services functionality
+ case EMobilePhoneGetCallForwardingStatusPhase1:
+ case EMobilePhoneSetCallForwardingStatus:
+ case EMobilePhoneGetBarringStatusPhase1:
+ case EMobilePhoneSetCallBarringStatus:
+ case EMobilePhoneSetSSPassword:
+ case EMobilePhoneGetWaitingStatusPhase1:
+ case EMobilePhoneSetCallWaitingStatus:
+ case EMobilePhoneNotifyCallWaitingStatusChange:
+ case EMobilePhoneGetIdentityServiceStatus:
+ case EMobilePhoneSendNetworkServiceRequest:
+ case EMobilePhoneSendNetworkServiceRequestNoFdnCheck:
+ case EMmTsyGetCallForwardingNumberIPC:
+ case EMobilePhoneGetIccMessageWaitingIndicators:
+ case EMobilePhoneSetIccMessageWaitingIndicators:
+ case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange:
+ case ECustomGetIccCallForwardingStatusIPC:
+ case ECustomNotifyIccCallForwardingStatusChangeIPC:
+ // Temporary until SAT: ETEL Multimode API
+ // usage for SAT has been implemented
+ case ESatNotifyCallControlRequest:
+ {
+ messHandler = iMmSupplServMessHandler;
+ break;
+ }
+ // Custom API functionality
+ case ECustomCancelUssdSessionIPC:
+ case ECustomClearCallBlackListIPC:
+ case ECustomCheckEmergencyNumberIPC:
+ case ECustomGetLifeTimeIPC:
+ case ECustomTerminateCallIPC:
+ case ECustomGetAlsBlockedIPC:
+ case ECustomSetAlsBlockedIPC:
+ case ECustomCheckAlsPpSupportIPC:
+ case ECustomCheckTwoDigitDialSupportIPC:
+ case ECustomGetCipheringInfoIPC:
+ case ECustomNetWakeupIPC:
+ case ECustomGetOperatorNameIPC:
+ case ECustomResetNetServerIPC:
+ case ECustomGetNetworkProviderNameIPC:
+ case ECustomReadSimFileIPC:
+
+ // GetProgrammableOperatorLogo is not supported, see Change
+ // Request TSW ActionDB MS04052536038
+ // case ECustomGetProgrammableOperatorLogoIPC:
+
+ // martpiir 26-May-2004: The cases handled in
+ // Custom Sub-messagehandlers are currently routed to Custom
+ // GSM message handler, which in turn routes them to the
+ // appropriate Sub-messagehandler. This extra-routing has to be
+ // removed later!!!
+ case ECustomSimLockActivateIPC:
+ case ECustomSimLockDeActivateIPC:
+ case ECustomSendAPDUReqIPC:
+ case ECustomSimWarmResetIPC:
+ case ECustomGetATRIPC:
+ case ECustomGetSimCardReaderStatusIPC:
+ case ECustomSendAPDUReqV2IPC:
+ case ECustomNotifySimCardStatusIPC:
+ case ECustomPowerSimOnIPC:
+ case ECustomPowerSimOffIPC:
+ case ECustomStartSimCbTopicBrowsingIPC:
+ case ECustomDeleteSimCbTopicIPC:
+ case EReadViagHomeZoneParamsIPC:
+ case EReadViagHomeZoneCacheIPC:
+ case EWriteViagHomeZoneCacheIPC:
+ //WCDMA HZ:
+ case EWriteViagHomeZoneUHZIUESettingsIPC:
+ case ECustomGetSystemNetworkModesIPC:
+ case ECustomSetSystemNetworkModeIPC:
+ case ECustomGetCurrentSystemNetworkModesIPC:
+ case EMobilePhoneIMSAuthenticate:
+ case ECustomGetSimAuthenticationDataIPC:
+ case ECustomGetCellInfoIPC:
+ case ECustomWriteHSxPAStatusIPC:
+ case ECustomReadHSxPAStatusIPC:
+
+// not suppoted for S60 ver 3.2
+#if ( NCP_COMMON_S60_VERSION_SUPPORT != S60_VERSION_32 )
+ case ECustomSetBandSelectionIPC:
+ case ECustomGetBandSelectionIPC:
+#endif // NCP_COMMON_S60_VERSION_SUPPORT
+
+ case ECustomGetServiceTableSupportbyApplicationIPC:
+ case EMmTsyUpdateLifeTimeIPC:
+ {
+ messHandler = iMmCustomMessHandler;
+ break;
+ }
+
+ case EMobileBroadcastMessagingReceiveMessage:
+ case EMobileBroadcastMessagingReceiveMessageCancel:
+ case EMobileBroadcastMessagingSetFilterSetting:
+ case EMobileBroadcastMessagingSetLanguageFilter:
+ case EMobileBroadcastMessagingStoreIdList:
+ {
+ messHandler = iMmBroadMessHandler;
+ break;
+ }
+ //SMS functionality
+ case EMmTsyActivateSmsRouting:
+ case EMmTsyDeactivateSmsRouting:
+ case EMobileSmsMessagingGetMessageStoreInfo:
+ case EMobileSmsMessagingReceiveMessage:
+ case EMobileSmsMessagingSendMessage:
+ case EMobileSmsMessagingResumeSmsReception:
+ case EMobileSmsMessagingGetSmspListPhase1:
+ case EMobileSmsMessagingStoreSmspList:
+ case EMobileSmsMessagingAckSmsStored:
+ case EMobileSmsMessagingNackSmsStored:
+ case EMobilePhoneStoreGetInfo:
+ case EMobilePhoneStoreDelete:
+ case EMobilePhoneStoreDeleteAll:
+ case EMobilePhoneStoreRead:
+ case EMobilePhoneStoreReadAllPhase1:
+ case EMobilePhoneStoreWrite:
+ case EMmTsySmsSendSatMessage:
+ case ECustomSetSimMessageStatusReadIPC:
+ case EMobileSmsMessagingSetMoSmsBearer:
+ case EMobileSmsMessagingSendMessageNoFdnCheck:
+ {
+ messHandler = iMmSmsMessHandler;
+ break;
+ }
+ //Security and SIM
+ case EMobilePhoneGetLockInfo:
+ case EMobilePhoneChangeSecurityCode:
+ case EMobilePhoneAbortSecurityCode:
+ case EMobilePhoneVerifySecurityCode:
+ case EMobilePhoneSetLockSetting:
+ case EMmTsySecurityGetSimActivePinStateIPC:
+ case EMmTsyBootNotifySimStatusReadyIPC:
+ case EMobilePhoneNotifySecurityEvent:
+ case EMmTsySimGetICCType:
+ case EMobilePhoneGetCurrentActiveUSimApplication:
+ case EMobilePhoneSetFdnSetting:
+ case EMobilePhoneGetFdnStatus:
+ case EMmTsyBootGetRFStatusIPC:
+ case EMobilePhoneGetSecurityCodeInfo:
+ {
+ messHandler = iMmSecurityMessHandler;
+ break;
+ }
+ // Miscellaneous Phone features
+ // case EMobilePhoneGetBatteryInfo: Get battery info is handled completely in Commontsy
+ case EMobilePhoneGetPhoneStoreInfo:
+ case EMobilePhoneGetPhoneId:
+ case EMobilePhoneGetSubscriberId:
+ case EMobilePhoneGetALSLine:
+ case EMobilePhoneSetALSLine:
+ case EMobilePhoneGetCustomerServiceProfile:
+ case EMobilePhoneGetServiceTable:
+ case EMmTsyPhoneGetPin1DisableSupportedIPC:
+ case EMobilePhoneGetServiceProviderName:
+ case EMmTsySimRefreshRegisterIPC:
+ case EMmTsySimRefreshDoneIPC:
+ case EMobilePhoneGetAPNControlListServiceStatus:
+ case EMobilePhoneSetAPNControlListServiceStatus:
+ case EMobilePhoneDeleteAPNName:
+ case EMobilePhoneAppendAPNName:
+ case EMobilePhoneEnumerateAPNEntries:
+ case EMobilePhoneGetAPNname:
+ {
+ messHandler = iMmPhoneMessHandler;
+ break;
+ }
+ default:
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::RouteRequest. Switch aIpc case Default");
+OstTrace0( TRACE_NORMAL, DUP1_CMMMESSAGEROUTER_ROUTEREQUEST, "CMmMessageRouter::RouteRequest, Switch aIpc case Default" );
+ messHandler = NULL;
+ }
+ }
+
+ return messHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::ExtFuncL
+// Find out the correct message handler and call its ExtFuncL
+// -----------------------------------------------------------------------------
+//
+TInt CMmMessageRouter::ExtFuncL( TInt aIpc, const CMmDataPackage* aDataPackage )
+ {
+TFLOGSTRING2("TSY: CMmMessageRouter::ExtFuncL. IPC = %d", aIpc);
+OstTrace1( TRACE_NORMAL, CMMMESSAGEROUTER_EXTFUNCL, "CMmMessageRouter::ExtFuncL;aIpc=%d", aIpc );
+
+ TInt ret ( KErrNone );
+
+ // Check if the IPC is supported
+ MMmMessHandlerBase* messageHandler = RouteRequest( aIpc );
+ if ( NULL == messageHandler )
+ {
+ ret = KErrNotSupported;
+ }
+ else
+ {
+ // Call to DOS layer
+ ret = messageHandler->ExtFuncL( aIpc, aDataPackage );
+ }
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetPhoNetSender
+// Returns pointer to Phonet sender
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMmPhoNetSender* CMmMessageRouter::GetPhoNetSender()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetPhoNetSender");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETPHONETSENDER, "CMmMessageRouter::GetPhoNetSender" );
+ return iPhoNetSender;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetPhoNetReceiver
+// Returns pointer to Phonet receiver
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMmPhoNetReceiver* CMmMessageRouter::GetPhoNetReceiver()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetPhoNetReceiver");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETPHONETRECEIVER, "CMmMessageRouter::GetPhoNetReceiver" );
+ return iPhoNetReceiver;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetCallMessHandler
+// Returns pointer to Call message handler
+// -----------------------------------------------------------------------------
+//
+CMmCallMessHandler* CMmMessageRouter::GetCallMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetCallMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETCALLMESSHANDLER, "CMmMessageRouter::GetCallMessHandler" );
+ return iMmCallMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetPhoneMessHandler
+// Returns pointer to Phone message handler
+// -----------------------------------------------------------------------------
+//
+CMmPhoneMessHandler* CMmMessageRouter::GetPhoneMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetPhoneMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETPHONEMESSHANDLER, "CMmMessageRouter::GetPhoneMessHandler" );
+ return iMmPhoneMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetPacketServiceMessHandler
+// Returns pointer to Packet service message handler
+// -----------------------------------------------------------------------------
+//
+CMmPacketServiceMessHandler* CMmMessageRouter::GetPacketServiceMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetPacketServiceMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETPACKETSERVICEMESSHANDLER, "CMmMessageRouter::GetPacketServiceMessHandler" );
+ return iMmPacketServiceMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetCustomMessHandler
+// Returns pointer to Custom message handler
+// -----------------------------------------------------------------------------
+//
+CMmCustomMessHandler* CMmMessageRouter::GetCustomMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetCustomMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETCUSTOMMESSHANDLER, "CMmMessageRouter::GetCustomMessHandler" );
+ return iMmCustomMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetSmsMessHandler
+// Returns pointer to SMS message handler
+// -----------------------------------------------------------------------------
+//
+CMmSmsMessHandler* CMmMessageRouter::GetSmsMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetSmsMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETSMSMESSHANDLER, "CMmMessageRouter::GetSmsMessHandler" );
+ return iMmSmsMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetSupplServHandler
+// Returns pointer to SS message handler
+// -----------------------------------------------------------------------------
+//
+CMmSupplServMessHandler* CMmMessageRouter::GetSupplServHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetSupplServHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETSUPPLSERVHANDLER, "CMmMessageRouter::GetSupplServHandler" );
+ return iMmSupplServMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::PhoneBookStoreMessHandler
+// Returns pointer to Phonebookstore message handler
+// -----------------------------------------------------------------------------
+//
+CMmPhoneBookStoreMessHandler* CMmMessageRouter::PhoneBookStoreMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::PhoneBookStoreMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_PHONEBOOKSTOREMESSHANDLER, "CMmMessageRouter::PhoneBookStoreMessHandler" );
+ return iMmPhoneBookStoreMessHandler;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMessageRouter::GetNetMessHandler
+// Returns pointer to NET message handler
+// -----------------------------------------------------------------------------
+//
+CMmNetMessHandler* CMmMessageRouter::GetNetMessHandler()
+ {
+TFLOGSTRING("TSY: CMmMessageRouter::GetNetMessHandler");
+OstTrace0( TRACE_NORMAL, CMMMESSAGEROUTER_GETNETMESSHANDLER, "CMmMessageRouter::GetNetMessHandler" );
+ return iMmNetMessHandler;
+ }
+
+// ==================== OTHER EXPORTED FUNCTIONS ===============================
+ //None
+
+// End of File