diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyserver/etelmultimode/DTsy/mmtsyphone.cpp --- a/telephonyserver/etelmultimode/DTsy/mmtsyphone.cpp Mon May 03 13:37:20 2010 +0300 +++ b/telephonyserver/etelmultimode/DTsy/mmtsyphone.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,8453 +1,8453 @@ -// Copyright (c) 1997-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: -// - -/** - @file -*/ - - -#include "mmtsy.h" -#include "testdef.h" -#include "ETELMM.H" -#include -#include "Dmmlog.h" -#include - -// -// CPhoneDMmTsy -// -CPhoneDMmTsy* CPhoneDMmTsy::NewL(CPhoneFactoryDummyBase* aFac) - { - CPhoneDMmTsy* phone=new(ELeave) CPhoneDMmTsy(aFac); - CleanupStack::PushL(phone); - phone->ConstructL(); - CleanupStack::Pop(); - return phone; - } - -CPhoneDMmTsy::CPhoneDMmTsy(CPhoneFactoryDummyBase* aFac) -: CPhoneDummyBase(aFac), - iActiveRequestObjects(_FOFF(CPhoneDMmTsy::CActiveListNode,iNext)) - {} - -void CPhoneDMmTsy::ConstructL() - { - iPhoneTestCount=1; - CPhoneDummyBase::ConstructL(); - iGetDetectedNetworks = new CArrayPtrFlat(1); - iGetCFStatus = new CArrayPtrFlat(1); - iGetCB = new CArrayPtrFlat(1); - iGetCWStatus = new CArrayPtrFlat(1); - iGetCcbsRequests = new CArrayPtrFlat(1); - iGetPreferredNetworks = new CArrayPtrFlat(1); - iGetAuthorizationData = new CArrayPtrFlat(1); - iGetWlanSIDsData = new CArrayPtrFlat(1); - iAuthReadAll = new CArrayPtrFlat(1); - - iAuthInfo=RMobilePhone::CImsAuthorizationInfoV5::NewL(); - LOGTEXT(_L8("CPhoneDMmTsy created")); - } - -CPhoneDMmTsy::~CPhoneDMmTsy() - { - if (iGetDetectedNetworks) - iGetDetectedNetworks->ResetAndDestroy(); - if (iGetCFStatus) - iGetCFStatus->ResetAndDestroy(); - if (iGetCB) - iGetCB->ResetAndDestroy(); - if (iGetCWStatus) - iGetCWStatus->ResetAndDestroy(); - if (iGetCcbsRequests) - iGetCcbsRequests->ResetAndDestroy(); - if(iGetPreferredNetworks) - iGetPreferredNetworks->ResetAndDestroy(); - - if(iGetAuthorizationData) - iGetAuthorizationData->ResetAndDestroy(); - - if(iGetWlanSIDsData) - iGetWlanSIDsData->ResetAndDestroy(); - - if(iAuthReadAll) - iAuthReadAll->ResetAndDestroy(); - - delete iGetDetectedNetworks; - delete iGetCFStatus; - delete iGetCB; - delete iGetCWStatus; - delete iGetCcbsRequests; - delete iGetPreferredNetworks; - delete iGetAuthorizationData; - delete iAuthInfo; - delete iGetWlanSIDsData; - delete iAuthReadAll; - - LOGTEXT(_L8("CPhoneDMmTsy destroyed")); - } - -void CPhoneDMmTsy::Init() - { - // server calls this function once it has created the sub-session - // it gives the TSY chance to do any initialisation it may need to do for - // this sub-session - } - -CTelObject* CPhoneDMmTsy::OpenNewObjectByNameL(const TDesC& aName) - { - // Server calls this function when a client is opening an object from the phone - // for the first time. - // Multiple clients opening handles to the same sub-session object will be dealt with - // by the server - i.e. by reference counting - - if((aName.Compare(DMMTSY_LINE_VOICE_NAME)==KErrNone) || - (aName.Compare(DMMTSY_LINE_VOICE2_NAME)==KErrNone) || - (aName.Compare(DMMTSY_LINE_DATA_NAME)==KErrNone) || - (aName.Compare(DMMTSY_LINE_FAX_NAME)==KErrNone)) - - return REINTERPRET_CAST(CTelObject*,CLineDMmTsy::NewL(this,FacPtr())); - - if (aName.Compare(KETelSmsMessaging)==KErrNone) - return REINTERPRET_CAST(CTelObject*,CSmsMessagingDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelBroadcastMessaging)==KErrNone) - return REINTERPRET_CAST(CTelObject*,CBroadcastMessagingDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelUssdMessaging)==KErrNone) - return REINTERPRET_CAST(CTelObject*,CUssdMessagingDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelNamStore)==KErrNone) - return REINTERPRET_CAST(CTelObject*, CNamStoreDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelOwnNumberStore)==KErrNone) - return REINTERPRET_CAST(CTelObject*, CONStoreDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelEmergencyNumberStore)==KErrNone) - return REINTERPRET_CAST(CTelObject*, CENStoreDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelIccVoiceMailBox)==KErrNone) - return REINTERPRET_CAST(CTelObject*, CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelConferenceCall) == 0) - return REINTERPRET_CAST(CTelObject*, CMobileConferenceCallDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Compare(KETelLocationServices) == 0) - return REINTERPRET_CAST(CTelObject*, CMobileLocationServicesDMmTsy::NewL(this,FacPtr(),aName)); - - if (aName.Left(SCEAP_SSN_LENGTH).Compare(KETelSmartCardEapSession) == 0) - { - TInt len; - - // Extracting AID - RMobilePhone::TAID tempAID; - len = CharToSeptNumL(aName[SCEAP_SSN_LENGTH]) * 2; - TPtrC ptrAid = aName.Mid(SCEAP_SSN_LENGTH + 1, len); - ConvertTextToBinary(ptrAid, tempAID); - - // Extracting EapType - RMobileSmartCardEap::TEapType eapType; - TInt posTypeLength = SCEAP_SSN_LENGTH + len + 1; - len = CharToSeptNumL(aName[posTypeLength]); - TPtrC ptrEapT = aName.Mid(posTypeLength + 1, len); - eapType.Copy(ptrEapT); - - CSmartCardEapDMmTsy* eapSubSessObj = NULL; - TRAPD(err, eapSubSessObj = CSmartCardEapDMmTsy::NewL(this, tempAID, eapType, FacPtr())); - - if (err != KErrNone || eapSubSessObj == NULL) - { - User::Leave((err == KErrNone ? KErrGeneral : err)); - } - - return eapSubSessObj; - } // End of opening Smart Card EAP sub-session - - TInt tLength; - TPtrC remain(aName); - - if ((tLength=remain.Find(PHBOOK_DELIMITER))!=KErrNotFound) - { - if(aName.Left(tLength) == KETelIccVoiceMailBox - && aName.Right(aName.Length()-tLength-2) == KEtelUSimPhoneBookType) - return REINTERPRET_CAST(CTelObject*, - CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName.Left(tLength), - aName.Right(aName.Length()-tLength-2))); - } - - return NULL; - } - -/** -Returns the numerical value that corresponds to the numeric character -of its parameter (in base 17). - -@param aDigit A char between '0' to '9' or between 'A' to 'G' -*/ -TInt CPhoneDMmTsy::CharToSeptNumL(const TChar& aChar) const - { - TInt ret = 0; - - if((aChar >= '0') && (aChar <= '9')) - { - ret = TUint(aChar) - '0'; - } - else if((aChar >= 'A') && (aChar <= 'G')) - { - ret = TUint(aChar) - 'A' + 10; - } - else - { - User::Leave(KErrArgument); - } - - return ret; - } - -/** -Converts a buffer containing string of the hexadecimal characters, -representing the binary data, into this binary data! - -@param aSrc The buffer containing text representation. -@param aDst Binary data will be written to this buffer. -*/ -void CPhoneDMmTsy::ConvertTextToBinary(const TDesC& aSrc, TDes8& aDst) - { - aDst.SetLength(aSrc.Length() / 2); - - for (TInt i = 0; i < aSrc.Length(); i += 2) - { - TInt val = 0; - if ((aSrc[i] >= '0') && (aSrc[i] <= '9')) - { - val = ((aSrc[i] - '0') << 4); - } - else if ((aSrc[i] >= 'A') && (aSrc[i] <= 'F')) - { - val = ((aSrc[i] - 'A' + 10) << 4); - } - - if ((aSrc[i+1] >= '0') && (aSrc[i+1] <= '9')) - { - val += (aSrc[i+1] - '0'); - } - else if ((aSrc[i+1] >= 'A') && (aSrc[i+1] <= 'F')) - { - val += (aSrc[i+1] - 'A' + 10); - } - - aDst[i/2] = (TUint8) val; - } - } - -CTelObject* CPhoneDMmTsy::OpenNewObjectL(TDes& /*aNewName*/) - { - // all objects opened from the phone are opened by name, hence this method - // is not supported - User::Leave(KErrNotSupported); - return NULL; - } - - -CTelObject::TReqMode CPhoneDMmTsy::ReqModeL(const TInt aIpc) - { - // ReqModeL is called from the server's CTelObject::ReqAnalyserL - // in order to check the type of request it has. - - // The following are example request types for this dummy TSY - // All TSYs do not have to have these request types but they have been given - // "sensible" values in this test code - - CTelObject::TReqMode ret=0; - switch (aIpc) - { - // Asynchronous Notification Requests - case EMobilePhoneNotifyDTMFCapsChange: - case EMobilePhoneNotifyStopInDTMFString: - case EMobilePhoneNotifyModeChange: - case EMobilePhoneNotifyNetworkRegistrationStatusChange: - case EMobilePhoneNotifyCurrentNetworkChange: - case EMobilePhoneNotifyCellInfoChange: - case EMobilePhoneNotifyIccAccessCapsChange: - case EMobilePhoneNotifyBatteryInfoChange: - case EMobilePhoneNotifySignalStrengthChange: - case EMobilePhoneNotifyIndicatorChange: - case EMobilePhoneNotifyCallServiceCapsChange: - case EMobilePhoneNotifyCallForwardingStatusChange: - case EMobilePhoneNotifyCallForwardingActive: - case EMobilePhoneNotifyNetworkSelectionSettingChange: - case EMobilePhoneNotifyNITZInfoChange: - case EMobilePhoneNotifyCallBarringStatusChange: - case EMobilePhoneNotifyCallWaitingStatusChange: - case EMobilePhoneNotifyCCBSStatusChange: - case EMobilePhoneNotifyCCBSRecall: - case EMobilePhoneNotifyAlternatingCallCapsChange: - case EMobilePhoneNotifyAlternatingCallModeChange: - case EMobilePhoneNotifyALSLineChange: - case EMobilePhoneNotifyCostCapsChange: - case EMobilePhoneNotifyCostInfoChange: - case EMobilePhoneNotifySecurityCapsChange: - case EMobilePhoneNotifyLockInfoChange: - case EMobilePhoneNotifySecurityCodeInfoChange: - case EMobilePhoneNotifySecurityEvent: - case EMobilePhoneNotifyMessageWaiting: - case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: - case EMobilePhoneNotifyFdnStatusChange: - case EMobilePhoneNotifyMulticallParamsChange: - case EMobilePhoneNotifyIncomingCallTypeChange: - case EMobilePhoneNotifyUUSSettingChange: - case EMobilePhoneNotifyDefaultPrivacyChange: - case EMobilePhoneNotifyMultimediaCallPreferenceChange: - case EMobilePhoneNotifyNetworkSecurityLevelChange: - case EMobilePhoneNotifyUSimAppsSelectionModeChange: - case EMobilePhoneNotifyUSimApplicationsInfoChange: - case EMobilePhoneNotifyMailboxNumbersChange: - case EMobilePhoneNotifyMmsUpdate: - case EMobilePhoneNotifyMmsConfig: - case EMobilePhoneNotifyNetworkInvScanChange: - case EMobilePhoneNotifyNetworkInvScanEvent: - case EMobilePhoneNotifyAirTimeDurationChange: - case EMobilePhoneNotifySendNetworkServiceRequest: - case EMobilePhoneNotifyAllSendNetworkServiceRequest: - case EMobilePhoneNotifyDTMFEvent: - case EMobilePhoneNotifyStorePreferredNetworksListChange: - case EMobilePhoneNotifyCipheringIndicatorStatus: - case EMobilePhoneNotifyIdentityServiceStatus: - case EMobilePhoneNotifyIdentitySuppressionRejected: - case EMobilePhoneNotifyMulticallIndicatorChange: - case EMobilePhoneNotifySmartCardApplicationInfoChange: - case EMobilePhoneNotifyCurrentNetworkNoLocationChange: - case EMobilePhoneNotifyImsAuthorizationInfoChanged: - case EMobilePhoneNotifyAPNListChanged: - case EMobilePhoneNotifyAuthenticateDataChange: - case EMobilePhoneNotifyWlanDataChange: - case EMobilePhoneNotifyPreferredWlanSIDListChange: - - - case EMobilePhoneNotifyAPNControlListServiceStatusChange: - ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately; - break; - - // Non flow-controlled requests - case EMobilePhoneGetDTMFCaps: - case EMobilePhoneStopDTMFTone: - case EMobilePhoneGetNetworkCaps: - case EMobilePhoneGetCurrentMode: - case EMobilePhoneGetNetworkRegistrationStatus: - case EMobilePhoneGetHomeNetwork: - case EMobilePhoneGetCurrentNetwork: - case EMobilePhoneGetCellInfo: - case EMobilePhoneGetDetectedNetworksPhase1: - case EMobilePhoneGetDetectedNetworksPhase2: - case EMobilePhoneGetDetectedNetworksV2Phase1: - case EMobilePhoneGetDetectedNetworksV2Phase2: - case EMobilePhoneGetDetectedNetworksV5Phase1: - case EMobilePhoneGetDetectedNetworksV5Phase2: - case EMobilePhoneGetDetectedNetworksV8Phase1: - case EMobilePhoneGetDetectedNetworksV8Phase2: - case EMobilePhoneGetMultimodeCaps: - case EMobilePhoneGetPhoneStoreInfo: - case EMobilePhoneGetIccAccessCaps: - case EMobilePhoneGetIccIdentity: - case EMobilePhoneGetCustomerServiceProfile: - case EMobilePhoneGetServiceTable: - case EMobilePhoneGetBatteryCaps: - case EMobilePhoneGetBatteryInfo: - case EMobilePhoneGetSignalCaps: - case EMobilePhoneGetSignalStrength: - case EMobilePhoneGetIndicatorCaps: - case EMobilePhoneGetIndicator: - case EMobilePhoneGetIdentityCaps: - case EMobilePhoneGetPhoneId: - case EMobilePhoneGetSubscriberId: - case EMobilePhoneGetCallServiceCaps: - case EMobilePhoneGetCallForwardingStatusPhase1: - case EMobilePhoneGetCallForwardingStatusPhase2: - case EMobilePhoneGetFeatureCode: - case EMobilePhoneGetNetworkSelectionSetting: - case EMobilePhoneSetNetworkSelectionSetting: - case EMobilePhoneSelectNetwork: - case EMobilePhoneGetNITZInfo: - case EMobilePhoneGetServiceProviderName: - case EMobilePhoneGetIdentityServiceStatus: - case EMobilePhoneGetBarringStatusPhase1: - case EMobilePhoneGetBarringStatusPhase2: - case EMobilePhoneSetCallBarringStatus: - case EMobilePhoneSetCallBarringPassword: - case EMobilePhoneGetWaitingStatusPhase1: - case EMobilePhoneGetWaitingStatusPhase2: - case EMobilePhoneSetCallWaitingStatus: - case EMobilePhoneGetCCBSStatus: - case EMobilePhoneDeactivateCCBS: - case EMobilePhoneAcceptCCBSRecall: - case EMobilePhoneRefuseCCBSRecall: - case EMobilePhoneGetCompletionRequestsPhase1: - case EMobilePhoneGetCompletionRequestsPhase2: - case EMobilePhoneGetAlternatingCallCaps: - case EMobilePhoneGetAlternatingCallMode: - case EMobilePhoneSetAlternatingCallMode: - case EMobilePhoneGetALSLine: - case EMobilePhoneSetALSLine: - case EMobilePhoneGetCostCaps: - case EMobilePhoneClearCostMeter: - case EMobilePhoneSetMaxCostMeter: - case EMobilePhoneSetPuct: - case EMobilePhoneGetCostInfo: - case EMobilePhoneGetSecurityCaps: - case EMobilePhoneGetLockInfo: - case EMobilePhoneSetLockSetting: - case EMobilePhoneGetSecurityCodeInfo: - case EMobilePhoneChangeSecurityCode: - case EMobilePhoneVerifySecurityCode: - case EMobilePhoneAbortSecurityCode: - case EMobilePhoneGetFdnStatus: - case EMobilePhoneSetFdnSetting: - case EMobilePhoneGetMulticallParams: - case EMobilePhoneSetMulticallParams: - case EMobilePhoneGetIncomingCallType: - case EMobilePhoneSetIncomingCallType: - case EMobilePhoneGetUUSSetting: - case EMobilePhoneSetUUSSetting: - case EMobilePhoneGetDefaultPrivacy: - case EMobilePhoneSetDefaultPrivacy: - case EMobilePhoneGetIccMessageWaitingIndicators: - case EMobilePhoneSetIccMessageWaitingIndicators: - case EMobilePhoneGetMultimediaCallPreference: - case EMobilePhoneSetMultimediaCallPreference: - case EMobilePhoneGetNetworkSecurityLevel: - case EMobilePhoneEnumerateUSimApplications: - case EMobilePhoneGetUSimAppsSelectionMode: - case EMobilePhoneSetUSimAppsSelectionMode: - case EMobilePhoneSetUSimApplicationStatus: - case EMobilePhoneGetUSimApplicationsInfo: - case EMobilePhoneSetSSPassword: - case EMobilePhoneGetMailboxNumbers: - case EMobilePhoneSetMmsUserConnParams: - case EMobilePhoneSetMmsUserPreferences: - case EMobilePhoneGetMmsConfig: - case EMobilePhoneGetHomeNetworkSearchPeriod: - case EMobilePhoneGetLastUsedAccessTechnology: - case EMobilePhoneGetNetworkInvScanSetting: - case EMobilePhoneGetCallForwardingIndicator: - case EMobilePhoneGetCompMethodName: - case EMobilePhoneEnumerateAPNEntries: - case EMobilePhoneGetAPNname: - case EMobilePhoneAppendAPNName: - case EMobilePhoneDeleteAPNName: - case EMobilePhoneSetAPNControlListServiceStatus: - case EMobilePhoneGetAPNControlListServiceStatus: - case EMobilePhoneGetAirTimeDuration: - case EMobilePhoneClearBlacklist: - case EMobilePhoneGetPersonalisationCaps: - case EMobilePhoneGetPersonalisationStatus: - case EMobilePhoneSetPersonalisationStatus: - case EMobilePhoneGetNetworkName: - case EMobilePhoneGetPreferredNetworksPhase1: - case EMobilePhoneGetPreferredNetworksPhase2: - case EMobilePhoneStorePreferredNetworksList: - case EMobilePhoneGetCipheringIndicatorStatus: - case EMobilePhoneSetIdentityServiceStatus: - case EMobilePhoneEnumerateSmartCardApplications: - case EMobilePhoneGetSmartCardApplicationInfo: - case EMobilePhoneSetSmartCardApplicationStatus: - case EMobilePhoneGetScFileInfo: - case EMobilePhoneReadScFile: - case EMobilePhoneUpdateScFile: - case EMobilePhoneGetCurrentActiveUSimApplication: - case EMobilePhoneGetCurrentNetworkNoLocation: - case EMobilePhoneAuthorizationInfoPhase1: - case EMobilePhoneAuthorizationInfoPhase2: - case EMobilePhoneIMSAuthenticate: - case EMobilePhoneSmartCardAuthenticate: - case EETelPhoneSetEmergencyClient: - case EMobilePhoneGetAuthenticationParams: - case EMobilePhoneSetGbaBootstrapParams: - case EMobilePhoneAuthenticationListPhase1: - case EMobilePhoneAuthenticationListPhase2: - case EMobilePhoneGetWlanData: - case EMobilePhoneSetWlanData: - case EMobilePhoneGetPreferredWlanSIDsPhase1: - case EMobilePhoneGetPreferredWlanSIDsPhase2: - case EMobilePhoneStorePreferredWlanSIDList: - break; - - // Flow controlled requests - case EMobilePhoneSendNetworkServiceRequest: - case EMobilePhoneSendDTMFTones: - case EMobilePhoneReadDTMFTones: - case EMobilePhoneStartDTMFTone: - case EMobilePhoneContinueDTMFStringSending: - case EMobilePhoneSetCallForwardingStatus: - case EMobilePhoneProgramFeatureCode: - case EMobilePhoneTerminateAllCalls: - case EMobilePhoneTerminateActiveCalls: - ret=KReqModeFlowControlObeyed; - break; - default: - ret=CPhoneBase::ReqModeL(aIpc); - break; - } - return ret; - } - -TInt CPhoneDMmTsy::RegisterNotification(const TInt aIpc) - { - // RegisterNotification is called when the server recognises that this notification - // is being posted for the first time on this sub-session object. - - // It enables the TSY to "turn on" any regular notification messages that it may - // receive from the phone - - switch (aIpc) - { - case EMobilePhoneNotifyDTMFCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Caps Change ")); - return KErrNone; - case EMobilePhoneNotifyStopInDTMFString: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Stop In DTMF String ")); - return KErrNone; - case EMobilePhoneNotifyModeChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Mode Change ")); - return KErrNone; - case EMobilePhoneNotifyNetworkRegistrationStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Registration Status Change ")); - return KErrNone; - case EMobilePhoneNotifyCurrentNetworkChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network Change ")); - return KErrNone; - case EMobilePhoneNotifyCurrentNetworkNoLocationChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network ISV Change No Location")); - return KErrNone; - case EMobilePhoneNotifyCellInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Cell information Change ")); - return KErrNone; - case EMobilePhoneNotifyIccAccessCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - SIM Access Caps Change ")); - return KErrNone; - case EMobilePhoneNotifyBatteryInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Battery Info Change ")); - return KErrNone; - case EMobilePhoneNotifySignalStrengthChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Signal Strength Change ")); - return KErrNone; - case EMobilePhoneNotifyIndicatorChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Indicator Change ")); - return KErrNone; - case EMobilePhoneNotifyCallServiceCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Service Caps Change ")); - return KErrNone; - case EMobilePhoneNotifyCallForwardingStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Status Change ")); - return KErrNone; - case EMobilePhoneNotifyCallForwardingActive: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Active")); - return KErrNone; - case EMobilePhoneNotifyNetworkSelectionSettingChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Selection Setting Change ")); - return KErrNone; - case EMobilePhoneNotifyNITZInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Time Info Change ")); - return KErrNone; - case EMobilePhoneNotifyCallBarringStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Barring Status Change")); - return KErrNone; - case EMobilePhoneNotifyCallWaitingStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Waiting Status Change")); - return KErrNone; - case EMobilePhoneNotifyCCBSStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Status Change")); - return KErrNone; - case EMobilePhoneNotifyCCBSRecall: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Recall")); - return KErrNone; - case EMobilePhoneNotifyAlternatingCallCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Call Caps Change")); - return KErrNone; - case EMobilePhoneNotifyAlternatingCallModeChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Mode Caps Change")); - return KErrNone; - case EMobilePhoneNotifyALSLineChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify ALSLine Change")); - return KErrNone; - case EMobilePhoneNotifyCostCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Caps Change")); - return KErrNone; - case EMobilePhoneNotifyCostInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Info Change")); - return KErrNone; - case EMobilePhoneNotifySecurityCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Caps Change")); - return KErrNone; - case EMobilePhoneNotifyLockInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Lock Info Change")); - return KErrNone; - case EMobilePhoneNotifySecurityCodeInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Code Info Change")); - return KErrNone; - case EMobilePhoneNotifySecurityEvent: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify On Security Event")); - return KErrNone; - case EMobilePhoneNotifyMessageWaiting: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Message Waiting")); - return KErrNone; - case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Icc Message Waiting Indicators Change")); - return KErrNone; - case EMobilePhoneNotifyFdnStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Fdn Status Change")); - return KErrNone; - case EMobilePhoneNotifyMulticallParamsChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Params Change")); - return KErrNone; - case EMobilePhoneNotifyIncomingCallTypeChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Incoming Call Type Change")); - return KErrNone; - case EMobilePhoneNotifyUUSSettingChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify UUS Setting Change")); - return KErrNone; - case EMobilePhoneNotifyDefaultPrivacyChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Privacy Setting Change")); - return KErrNone; - case EMobilePhoneNotifyMultimediaCallPreferenceChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multimedia Call Setting Change")); - return KErrNone; - case EMobilePhoneNotifyNetworkSecurityLevelChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Security Level Change")); - return KErrNone; - case EMobilePhoneNotifyUSimAppsSelectionModeChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Selection Mode Change")); - return KErrNone; - case EMobilePhoneNotifyUSimApplicationsInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Info Change")); - return KErrNone; - case EMobilePhoneNotifyMailboxNumbersChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile Mailbox Numbers functionality")); - return KErrNone; - case EMobilePhoneNotifyMmsUpdate: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS Update functionality")); - return KErrNone; - case EMobilePhoneNotifyMmsConfig: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS Config functionality")); - return KErrNone; - case EMobilePhoneNotifyNetworkInvScanChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Change functionality")); - return KErrNone; - case EMobilePhoneNotifyNetworkInvScanEvent: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Event functionality")); - return KErrNone; - case EMobilePhoneNotifyAirTimeDurationChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Air Time Duration Change")); - return KErrNone; - case EMobilePhoneNotifySendNetworkServiceRequest: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Send Network Service Request")); - return KErrNone; - case EMobilePhoneNotifyAllSendNetworkServiceRequest: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify All Send Network Service Request")); - return KErrNone; - case EMobilePhoneNotifyDTMFEvent: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify DTMF Event")); - return KErrNone; - case EMobilePhoneNotifyStorePreferredNetworksListChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Stored Networks List Change")); - return KErrNone; - case EMobilePhoneNotifyCipheringIndicatorStatus: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ciphering Indicator Status Change")); - return KErrNone; - case EMobilePhoneNotifyIdentityServiceStatus: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Service Status Change")); - return KErrNone; - case EMobilePhoneNotifyIdentitySuppressionRejected: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Suppression Rejected")); - return KErrNone; - case EMobilePhoneNotifyMulticallIndicatorChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Indicator Change")); - return KErrNone; - case EMobilePhoneNotifyImsAuthorizationInfoChanged: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ims Authorization Info Changed")); - return KErrNone; - case EMobilePhoneNotifySmartCardApplicationInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Smart Card Application Info Change")); - return KErrNone; - case EMobilePhoneNotifyAPNListChanged: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Change")); - return KErrNone; - case EMobilePhoneNotifyAPNControlListServiceStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Service Status Change")); - return KErrNone; - case EMobilePhoneNotifyAuthenticateDataChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Authentication Data Change")); - return KErrNone; - case EMobilePhoneNotifyWlanDataChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan Data Change")); - return KErrNone; - case EMobilePhoneNotifyPreferredWlanSIDListChange: - LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan SIDs List Change")); - return KErrNone; - - default: - // Unknown or invalid SMS IPC - return KErrNotSupported; - } - } - -TInt CPhoneDMmTsy::DeregisterNotification(const TInt aIpc) - { - // DeregisterNotification is called when the server recognises that this notification - // will not be posted again because the last client to have a handle on this sub-session - // object has just closed the handle. - - // It enables the TSY to "turn off" any regular notification messages that it may - // receive from the phone. - - switch (aIpc) - { - case EMobilePhoneNotifyDTMFCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Caps Change ")); - return KErrNone; - case EMobilePhoneNotifyStopInDTMFString: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Stop In DTMF String ")); - return KErrNone; - case EMobilePhoneNotifyModeChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Mode Change ")); - return KErrNone; - case EMobilePhoneNotifyNetworkRegistrationStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Registration Status Change ")); - return KErrNone; - case EMobilePhoneNotifyCurrentNetworkChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change ")); - return KErrNone; - case EMobilePhoneNotifyCurrentNetworkNoLocationChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change No Location")); - return KErrNone; - case EMobilePhoneNotifyCellInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Cell information Change ")); - return KErrNone; - case EMobilePhoneNotifyIccAccessCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - SIM Access Caps Change ")); - return KErrNone; - case EMobilePhoneNotifyBatteryInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Battery Info Change ")); - return KErrNone; - case EMobilePhoneNotifySignalStrengthChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Signal Strength Change ")); - return KErrNone; - case EMobilePhoneNotifyIndicatorChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Indicator Change ")); - return KErrNone; - case EMobilePhoneNotifyCallServiceCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Service Caps Change ")); - return KErrNone; - case EMobilePhoneNotifyCallForwardingStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Status Change ")); - return KErrNone; - case EMobilePhoneNotifyCallForwardingActive: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Active")); - return KErrNone; - case EMobilePhoneNotifyNetworkSelectionSettingChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Selection Setting Change ")); - return KErrNone; - case EMobilePhoneNotifyNITZInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Time Info Change ")); - return KErrNone; - case EMobilePhoneNotifyCallBarringStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Barring Status Change")); - return KErrNone; - case EMobilePhoneNotifyCallWaitingStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Waiting Status Change")); - return KErrNone; - case EMobilePhoneNotifyCCBSStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Status Change")); - return KErrNone; - case EMobilePhoneNotifyCCBSRecall: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Recall")); - return KErrNone; - case EMobilePhoneNotifyAlternatingCallCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Call Caps Change")); - return KErrNone; - case EMobilePhoneNotifyAlternatingCallModeChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Mode Caps Change")); - return KErrNone; - case EMobilePhoneNotifyALSLineChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify ALSLine Change")); - return KErrNone; - case EMobilePhoneNotifyCostCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Caps Change")); - return KErrNone; - case EMobilePhoneNotifyCostInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Info Change")); - return KErrNone; - case EMobilePhoneNotifySecurityCapsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Caps Change")); - return KErrNone; - case EMobilePhoneNotifyLockInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Lock Info Change")); - return KErrNone; - case EMobilePhoneNotifySecurityCodeInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Code Info Change")); - return KErrNone; - case EMobilePhoneNotifySecurityEvent: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify On Security Event")); - return KErrNone; - case EMobilePhoneNotifyMessageWaiting: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Message Waiting")); - return KErrNone; - case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Icc Message Waiting Indicators Change")); - return KErrNone; - case EMobilePhoneNotifyFdnStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Fdn Status Change")); - return KErrNone; - case EMobilePhoneNotifyMulticallParamsChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multicall Params Change")); - return KErrNone; - case EMobilePhoneNotifyIncomingCallTypeChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Incoming Call Type Change")); - return KErrNone; - case EMobilePhoneNotifyUUSSettingChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify UUS Setting Change")); - return KErrNone; - case EMobilePhoneNotifyDefaultPrivacyChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Privacy Setting Change")); - return KErrNone; - case EMobilePhoneNotifyMultimediaCallPreferenceChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multimedia Call Setting Change")); - return KErrNone; - case EMobilePhoneNotifyNetworkSecurityLevelChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Security Level Change")); - return KErrNone; - case EMobilePhoneNotifyUSimAppsSelectionModeChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Selection Mode Change")); - return KErrNone; - case EMobilePhoneNotifyUSimApplicationsInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Info Change")); - return KErrNone; - case EMobilePhoneNotifyMailboxNumbersChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Mobile Mailbox Numbers functionality")); - return KErrNone; - case EMobilePhoneNotifyMmsUpdate: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Mobile MMS Update functionality")); - return KErrNone; - case EMobilePhoneNotifyMmsConfig: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Mobile MMS Config functionality")); - return KErrNone; - case EMobilePhoneNotifyNetworkInvScanChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Change functionality")); - return KErrNone; - case EMobilePhoneNotifyNetworkInvScanEvent: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Event functionality")); - return KErrNone; - case EMobilePhoneNotifyAirTimeDurationChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Air Time Duration Change")); - return KErrNone; - case EMobilePhoneNotifySendNetworkServiceRequest: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Send Network Service Request")); - return KErrNone; - case EMobilePhoneNotifyAllSendNetworkServiceRequest: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify All Send Network Service Request")); - return KErrNone; - case EMobilePhoneNotifyDTMFEvent: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify DTMF Event")); - return KErrNone; - case EMobilePhoneNotifyStorePreferredNetworksListChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Stored Networks List Change")); - return KErrNone; - case EMobilePhoneNotifyCipheringIndicatorStatus: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Ciphering IndicatorStatus Change")); - return KErrNone; - case EMobilePhoneNotifyIdentityServiceStatus: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Service Status Change")); - return KErrNone; - case EMobilePhoneNotifyIdentitySuppressionRejected: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Suppression Rejected")); - return KErrNone; - case EMobilePhoneNotifyMulticallIndicatorChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify MulticallIndicator Change")); - return KErrNone; - case EMobilePhoneNotifyImsAuthorizationInfoChanged: - LOGTEXT(_L8("CPhoneDMmTsy:DeregisterNotification - Notify Ims Authorization Info Changed")); - return KErrNone; - case EMobilePhoneNotifySmartCardApplicationInfoChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Smart Card Application Info Change")); - return KErrNone; - case EMobilePhoneNotifyAPNListChanged: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Change")); - return KErrNone; - case EMobilePhoneNotifyAPNControlListServiceStatusChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Service Status Change")); - return KErrNone; - case EMobilePhoneNotifyAuthenticateDataChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Authentication Data Change")); - return KErrNone; - case EMobilePhoneNotifyWlanDataChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan Data Change")); - return KErrNone; - case EMobilePhoneNotifyPreferredWlanSIDListChange: - LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan SIDs list Change")); - return KErrNone; - default: - // Unknown or invalid sms IPC - return KErrNotSupported; - } - } - -TInt CPhoneDMmTsy::NumberOfSlotsL(const TInt aIpc) - { - // NumberOfSlotsL is called by the server when it is registering a new notification. - // It enables the TSY to tell the server how many buffer slots to allocate for - // "repost immediately" notifications that may trigger before clients collect them - - TInt numberOfSlots=1; - switch (aIpc) - { - case EMobilePhoneNotifyBatteryInfoChange: - case EMobilePhoneNotifySignalStrengthChange: - case EMobilePhoneNotifyIndicatorChange: - LOGTEXT(_L8("CPhoneDMmTsy: Registered with 10 slots")); - numberOfSlots=10; - break; - - case EMobilePhoneNotifyDTMFCapsChange: - case EMobilePhoneNotifyStopInDTMFString: - case EMobilePhoneNotifyCallServiceCapsChange: - case EMobilePhoneNotifyCCBSRecall: - case EMobilePhoneNotifyDTMFEvent: - LOGTEXT(_L8("CPhoneDMmTsy: Registered with 5 slots")); - numberOfSlots=5; - break; - - case EMobilePhoneNotifyModeChange: - case EMobilePhoneNotifyNetworkRegistrationStatusChange: - case EMobilePhoneNotifyCurrentNetworkChange: - case EMobilePhoneNotifyCurrentNetworkNoLocationChange: - case EMobilePhoneNotifyCellInfoChange: - case EMobilePhoneNotifyIccAccessCapsChange: - case EMobilePhoneNotifyCallForwardingStatusChange: - case EMobilePhoneNotifyCallForwardingActive: - case EMobilePhoneNotifyNetworkSelectionSettingChange: - case EMobilePhoneNotifyNITZInfoChange: - case EMobilePhoneNotifyCallBarringStatusChange: - case EMobilePhoneNotifyCallWaitingStatusChange: - case EMobilePhoneNotifyCCBSStatusChange: - case EMobilePhoneNotifyAlternatingCallCapsChange: - case EMobilePhoneNotifyAlternatingCallModeChange: - case EMobilePhoneNotifyALSLineChange: - case EMobilePhoneNotifyCostCapsChange: - case EMobilePhoneNotifyCostInfoChange: - case EMobilePhoneNotifySecurityCapsChange: - case EMobilePhoneNotifyLockInfoChange: - case EMobilePhoneNotifySecurityCodeInfoChange: - case EMobilePhoneNotifySecurityEvent: - case EMobilePhoneNotifyMessageWaiting: - case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: - case EMobilePhoneNotifyFdnStatusChange: - case EMobilePhoneNotifyMulticallParamsChange: - case EMobilePhoneNotifyIncomingCallTypeChange: - case EMobilePhoneNotifyUUSSettingChange: - case EMobilePhoneNotifyDefaultPrivacyChange: - case EMobilePhoneNotifyMultimediaCallPreferenceChange: - case EMobilePhoneNotifyNetworkSecurityLevelChange: - case EMobilePhoneNotifyUSimAppsSelectionModeChange: - case EMobilePhoneNotifyUSimApplicationsInfoChange: - case EMobilePhoneNotifyMailboxNumbersChange: - case EMobilePhoneNotifyMmsUpdate: - case EMobilePhoneNotifyMmsConfig: - case EMobilePhoneNotifyNetworkInvScanChange: - case EMobilePhoneNotifyNetworkInvScanEvent: - case EMobilePhoneNotifyAirTimeDurationChange: - case EMobilePhoneNotifySendNetworkServiceRequest: - case EMobilePhoneNotifyAllSendNetworkServiceRequest: - case EMobilePhoneNotifyStorePreferredNetworksListChange: - case EMobilePhoneNotifyCipheringIndicatorStatus: - case EMobilePhoneNotifyIdentityServiceStatus: - case EMobilePhoneNotifyIdentitySuppressionRejected: - case EMobilePhoneNotifyMulticallIndicatorChange: - case EMobilePhoneNotifyImsAuthorizationInfoChanged: - case EMobilePhoneNotifySmartCardApplicationInfoChange: - case EMobilePhoneNotifyAPNListChanged: - case EMobilePhoneNotifyAPNControlListServiceStatusChange: - case EMobilePhoneNotifyAuthenticateDataChange: - case EMobilePhoneNotifyWlanDataChange: - case EMobilePhoneNotifyPreferredWlanSIDListChange: - LOGTEXT(_L8("CPhoneDMmTsy: Registered with 2 slots")); - numberOfSlots=2; - break; - default: - // Unknown or invalid Phone IPC - User::Leave(KErrNotSupported); - break; - } - return numberOfSlots; - } - - -TInt CPhoneDMmTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc, - const TDataPackage& aPackage) - { - // ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request - // for the TSY to process - // A request handle, request type and request data are passed to the TSY - - TAny* dataPtr=aPackage.Ptr1(); - TAny* dataPtr2=aPackage.Ptr2(); - - // The request data has to extracted from TDataPackage and the TAny* pointers have to - // be "cast" to the expected request data type - - switch (aIpc) - { - // Non-Flow controlled requests - - case EMobilePhoneGetDTMFCaps: - return GetDTMFCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneStopDTMFTone: - return StopDTMFTone(aTsyReqHandle); - - case EMobilePhoneGetNetworkCaps: - return GetNetworkCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetNetworkRegistrationStatus: - return GetNetworkRegistrationStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr)); - - case EMobilePhoneGetHomeNetwork: - return GetHomeNetwork(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetCurrentMode: - return GetCurrentMode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr)); - - case EMobilePhoneGetCurrentNetwork: - return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2)); - - case EMobilePhoneGetCellInfo: - return GetCellInfo(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetCurrentNetworkNoLocation: - return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(), NULL); - - case EMobilePhoneGetDetectedNetworksPhase1: - return GetDetectedNetworksPhase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetDetectedNetworksPhase2: - return GetDetectedNetworksPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetDetectedNetworksV2Phase1: - return GetDetectedNetworksV2Phase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetDetectedNetworksV2Phase2: - return GetDetectedNetworksV2Phase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetDetectedNetworksV5Phase1: - return GetDetectedNetworksV5Phase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetDetectedNetworksV5Phase2: - return GetDetectedNetworksV5Phase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetDetectedNetworksV8Phase1: - return GetDetectedNetworksV8Phase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetDetectedNetworksV8Phase2: - return GetDetectedNetworksV8Phase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetNetworkSelectionSetting: - return GetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneSetNetworkSelectionSetting: - return SetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneSelectNetwork: - return SelectNetwork(aTsyReqHandle, - REINTERPRET_CAST(TBool*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkManualSelection*, dataPtr2)); - - case EMobilePhoneGetNITZInfo: - return GetNetworkTimeInfo(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr)); - - case EMobilePhoneGetServiceProviderName: - return GetServiceProviderName(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceProviderNameV2*, dataPtr)); - - case EMobilePhoneGetMultimodeCaps: - return GetMultimodeCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetPhoneStoreInfo: - switch(aPackage.Type()) - { - // Switch between the alternative implementations of GetPhoneStoreInfo - case TDataPackage::EPackage1n2u: - return GetPhoneStoreInfo(aTsyReqHandle, - aPackage.Des1n(),aPackage.Des2u()); - case TDataPackage::EPackage1n2n: - return GetPhoneStoreInfo(aTsyReqHandle, aPackage.Des2n(), - REINTERPRET_CAST(RMobilePhone::TPhoneStoreNameAndIccType*, dataPtr)); - default: - return NULL; - } - - case EMobilePhoneGetIccAccessCaps: - return GetIccAccessCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetIccIdentity: - return GetIccIdentity(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TIccIdentity*, dataPtr)); - - case EMobilePhoneGetCustomerServiceProfile: - return GetCustomerServiceProfile(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetServiceTable: - return GetServiceTable(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceTable*,dataPtr), - aPackage.Des2n()); - - case EMobilePhoneGetBatteryCaps: - return GetBatteryCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetBatteryInfo: - return GetBatteryInfo(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr)); - - case EMobilePhoneGetSignalCaps: - return GetSignalCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetSignalStrength: - return GetSignalStrength(aTsyReqHandle, - REINTERPRET_CAST(TInt32*, dataPtr), - REINTERPRET_CAST(TInt8*, dataPtr2)); - - case EMobilePhoneGetIndicatorCaps: - return GetIndicatorCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr), - REINTERPRET_CAST(TUint32*, dataPtr2)); - - case EMobilePhoneGetIndicator: - return GetIndicator(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetIdentityCaps: - return GetIdentityCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetPhoneId: - return GetPhoneId(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdentityV1*, dataPtr)); - - case EMobilePhoneGetSubscriberId: - return GetSubscriberId(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneSubscriberId*, dataPtr)); - - case EMobilePhoneGetDefaultPrivacy: - return GetDefaultPrivacy(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr)); - - case EMobilePhoneSetDefaultPrivacy: - return SetDefaultPrivacy(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr)); - - case EMobilePhoneGetCallServiceCaps: - return GetCallServiceCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetCallForwardingStatusPhase1: - return GetCallForwardingStatusPhase1(aTsyReqHandle, - REINTERPRET_CAST(CRetrieveMobilePhoneCFList::TGetCallForwardingRequest*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetCallForwardingStatusPhase2: - return GetCallForwardingStatusPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetFeatureCode: - return GetFeatureCodeString(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr), - aPackage.Des2u()); - - case EMobilePhoneGetIdentityServiceStatus: - return GetIdentityServiceStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TIdServiceAndLocation*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*,dataPtr2)); - - case EMobilePhoneGetBarringStatusPhase1: - return GetCallBarringPhase1(aTsyReqHandle, - REINTERPRET_CAST(CRetrieveMobilePhoneCBList::TGetCallBarringRequest*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetBarringStatusPhase2: - return GetCallBarringPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneSetCallBarringStatus: - return SetCallBarringStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBChangeV1*,dataPtr2)); - - case EMobilePhoneSetCallBarringPassword: - return SetCallBarringPassword(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1*,dataPtr)); - - case EMobilePhoneSetSSPassword: - return SetSSPassword(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV2*,dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetWaitingStatusPhase1: - return GetCallWaitingPhase1(aTsyReqHandle, - REINTERPRET_CAST(CRetrieveMobilePhoneCWList::TGetCallWaitingRequest*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetWaitingStatusPhase2: - return GetCallWaitingPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneSetCallWaitingStatus: - return SetCallWaitingStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceAction*, dataPtr2)); - - case EMobilePhoneGetCCBSStatus: - return GetCCBSStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobileInfoLocation*,dataPtr2)); - - case EMobilePhoneAcceptCCBSRecall: - return AcceptCCBSRecall(aTsyReqHandle, - REINTERPRET_CAST(TInt* ,dataPtr),aPackage.Des2u()); - - case EMobilePhoneRefuseCCBSRecall: - return RefuseCCBSRecall(aTsyReqHandle, - REINTERPRET_CAST(TInt* ,dataPtr)); - - case EMobilePhoneDeactivateCCBS: - return DeactivateCCBS(aTsyReqHandle, - REINTERPRET_CAST(TInt* ,dataPtr)); - - case EMobilePhoneGetCompletionRequestsPhase1: - return GetCallCompletionPhase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), REINTERPRET_CAST(TInt*,dataPtr2)); - - case EMobilePhoneGetCompletionRequestsPhase2: - return GetCallCompletionPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetAlternatingCallCaps: - return GetAlternatingCallCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*,dataPtr)); - - case EMobilePhoneGetAlternatingCallMode: - return GetAlternatingCallMode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2)); - - case EMobilePhoneSetAlternatingCallMode: - return SetAlternatingCallMode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2)); - - case EMobilePhoneGetALSLine: - return GetALSLine(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr)); - - case EMobilePhoneSetALSLine: - return SetALSLine(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr)); - - case EMobilePhoneGetCostCaps: - return GetCostCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*,dataPtr)); - - case EMobilePhoneSetMaxCostMeter: - return SetMaxCostMeter(aTsyReqHandle, - REINTERPRET_CAST(TUint*,dataPtr)); - - case EMobilePhoneClearCostMeter: - return ClearCostMeter(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCostMeters*,dataPtr)); - - case EMobilePhoneSetPuct: - return SetPuct(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneGetCostInfo: - return GetCostInfo(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneGetSecurityCaps: - return GetSecurityCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*,dataPtr)); - - case EMobilePhoneGetLockInfo: - return GetLockInfo(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr), - aPackage.Des2n()); - - case EMobilePhoneSetLockSetting: - return SetLockSetting(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneLockSetting *, dataPtr2) - ); - case EMobilePhoneChangeSecurityCode: - return ChangeSecurityCode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1 *, dataPtr2)); - - case EMobilePhoneGetSecurityCodeInfo: - return GetSecurityCodeInfo(aTsyReqHandle, - reinterpret_cast (dataPtr), - aPackage.Des2n()); - - case EMobilePhoneVerifySecurityCode: - return VerifySecurityCode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *,dataPtr), - REINTERPRET_CAST(RMobilePhone::TCodeAndUnblockCode *, dataPtr2)); - - case EMobilePhoneAbortSecurityCode: - return AbortSecurityCode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr)); - - case EMobilePhoneGetFdnStatus: - return GetFdnStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*, dataPtr)); - - case EMobilePhoneSetFdnSetting: - return SetFdnSetting(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnSetting*, dataPtr)); - - case EMobilePhoneGetMulticallParams: - return GetMulticallParams(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneSetMulticallParams: - return SetMulticallParams(aTsyReqHandle, REINTERPRET_CAST(TInt*, dataPtr)); - - case EMobilePhoneGetIncomingCallType: - return GetIncomingCallType(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), - aPackage.Des2n()); - - case EMobilePhoneSetIncomingCallType: - return SetIncomingCallType(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), - aPackage.Des2n()); - - case EMobilePhoneGetUUSSetting: - return GetUUSSetting(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr)); - - case EMobilePhoneSetUUSSetting: - return SetUUSSetting(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr)); - - case EMobilePhoneGetIccMessageWaitingIndicators: - return GetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneSetIccMessageWaitingIndicators: - return SetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneGetMultimediaCallPreference: - return GetMultimediaCallPreference(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr)); - - case EMobilePhoneSetMultimediaCallPreference: - return SetMultimediaCallPreference(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr)); - - case EMobilePhoneGetNetworkSecurityLevel: - return GetNetworkSecurityLevel(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr)); - - case EMobilePhoneEnumerateUSimApplications: - return EnumerateUSimApplications(aTsyReqHandle, - REINTERPRET_CAST(TInt*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2)); - - case EMobilePhoneGetUSimAppsSelectionMode: - return GetUSimAppsSelectionMode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr)); - - case EMobilePhoneSetUSimAppsSelectionMode: - return SetUSimAppsSelectionMode(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr)); - - case EMobilePhoneSetUSimApplicationStatus: - return SetUSimApplicationStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TUSimAppAction*, dataPtr2)); - - case EMobilePhoneGetUSimApplicationsInfo: - return GetUSimApplicationInfo(aTsyReqHandle, - REINTERPRET_CAST(TInt*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TUSimApplicationInfoV2*, dataPtr2)); - - case EMobilePhoneEnumerateSmartCardApplications: - return EnumerateSmartCardApplications(aTsyReqHandle, - reinterpret_cast(dataPtr)); - - case EMobilePhoneGetSmartCardApplicationInfo: - return GetSmartCardApplicationInfo(aTsyReqHandle, reinterpret_cast(dataPtr), aPackage.Des2n()); - - case EMobilePhoneNotifySmartCardApplicationInfoChange: - return NotifySmartCardApplicationInfoChange(aTsyReqHandle, reinterpret_cast(dataPtr2), reinterpret_cast(dataPtr)); - - case EMobilePhoneSetSmartCardApplicationStatus: - return SetSmartCardApplicationStatus(aTsyReqHandle, reinterpret_cast(dataPtr), *reinterpret_cast(dataPtr2)); - - case EMobilePhoneGetScFileInfo: - return GetScFileInfo(aTsyReqHandle, *reinterpret_cast(dataPtr), aPackage.Des2n()); - - case EMobilePhoneReadScFile: - return ReadScFile(aTsyReqHandle, *reinterpret_cast(dataPtr), aPackage.Des2n()); - - case EMobilePhoneUpdateScFile: - return UpdateScFile(aTsyReqHandle, *reinterpret_cast(dataPtr), aPackage.Des2n()); - - case EMobilePhoneGetCurrentActiveUSimApplication: - return GetCurrentActiveUSimApplication(aTsyReqHandle, reinterpret_cast(dataPtr)); - - case EMobilePhoneGetHomeNetworkSearchPeriod: - return GetHomeNetworkSearchPeriod(aTsyReqHandle, - REINTERPRET_CAST(TInt*, dataPtr)); - - case EMobilePhoneGetLastUsedAccessTechnology: - return GetLastUsedAccessTechnology(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkAccess*, dataPtr)); - - case EMobilePhoneGetNetworkInvScanSetting: - return GetNetworkInvScanSetting(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr)); - - case EMobilePhoneGetCallForwardingIndicator: - return GetCallForwardingIndicator(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetCompMethodName: - return GetCompMethodName(aTsyReqHandle, - *REINTERPRET_CAST(TUint8*, dataPtr), aPackage.Des2u()); - - case EMobilePhoneEnumerateAPNEntries: - return EnumerateAPNEntries(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetAPNname: - return GetAPNname(aTsyReqHandle, - *REINTERPRET_CAST(TUint32*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneAppendAPNName: - return AppendAPNName(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneDeleteAPNName: - return DeleteAPNName(aTsyReqHandle, - *REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyAPNListChanged: - return NotifyAPNListChanged(aTsyReqHandle); - - case EMobilePhoneSetAPNControlListServiceStatus: - return SetAPNControlListServiceStatus(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr)); - - case EMobilePhoneGetAPNControlListServiceStatus: - return GetAPNControlListServiceStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr)); - - case EMobilePhoneNotifyAPNControlListServiceStatusChange: - return NotifyAPNControlListServiceStatusChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr)); - - case EMobilePhoneGetAirTimeDuration: - return GetAirTimeDuration(aTsyReqHandle, - REINTERPRET_CAST(TTimeIntervalSeconds*, dataPtr)); - - case EMobilePhoneClearBlacklist: - return ClearBlacklist(aTsyReqHandle); - - case EMobilePhoneGetPersonalisationCaps: - return GetPersonalisationCaps(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneGetPersonalisationStatus: - return GetPersonalisationStatus(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneSetPersonalisationStatus: - return SetPersonalisationStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhonePersonalisation*, dataPtr), aPackage.Des2u()); - - case EMobilePhoneGetNetworkName: - return GetCurrentNetworkName(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n()); - - case EMobilePhoneGetPreferredNetworksPhase1: - return GetPreferredNetworksPhase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetPreferredNetworksPhase2: - return GetPreferredNetworksPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneStorePreferredNetworksList: - return StorePreferredNetworksList(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetCipheringIndicatorStatus: - return GetCipheringIndicatorStatus(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr)); - - case EMobilePhoneSetIdentityServiceStatus: - return SetIdentityServiceStatus(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr), - *REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceSetting*, dataPtr2)); - - // Flow controlled requests - - case EMobilePhoneSendNetworkServiceRequest: - return SendNetworkServiceRequest(aTsyReqHandle, aPackage.Des1u()); - - case EMobilePhoneSendDTMFTones: - return SendDTMFTones(aTsyReqHandle, aPackage.Des1u()); - - case EMobilePhoneReadDTMFTones: - return ReadDTMFTones(aTsyReqHandle, aPackage.Des1u()); - - case EMobilePhoneStartDTMFTone: - return StartDTMFTone(aTsyReqHandle, - REINTERPRET_CAST(TChar*, dataPtr)); - - case EMobilePhoneContinueDTMFStringSending: - return ContinueDTMFStringSending(aTsyReqHandle, - REINTERPRET_CAST(TBool*,dataPtr)); - - case EMobilePhoneSetCallForwardingStatus: - return SetCallForwardingStatus(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFChangeV1*, dataPtr2) ); - - case EMobilePhoneProgramFeatureCode: - return ProgramFeatureCodeString(aTsyReqHandle, - aPackage.Des2u(), - REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr)); - - case EMobilePhoneTerminateAllCalls: - return TerminateAllCalls(aTsyReqHandle); - - case EMobilePhoneTerminateActiveCalls: - return TerminateActiveCalls(aTsyReqHandle); - - case EMobilePhoneGetMailboxNumbers: - return GetMailboxNumbers (aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneSetMmsUserConnParams: - return SetMmsUserConnParams(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneSetMmsUserPreferences: - return SetMmsUserPreferences(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetMmsConfig: - return GetMmsConfig(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n()); - // - // Notification requests - // - - case EMobilePhoneNotifyModeChange: - return NotifyModeChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr)); - - case EMobilePhoneNotifyDTMFCapsChange: - return NotifyDTMFCapsChange(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyStopInDTMFString: - return NotifyStopInDTMFString(aTsyReqHandle); - - case EMobilePhoneNotifyNetworkRegistrationStatusChange: - return NotifyNetworkRegistrationStatusChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr)); - - case EMobilePhoneNotifyCurrentNetworkChange: - return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2)); - - case EMobilePhoneNotifyCurrentNetworkNoLocationChange: - return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(), NULL); - - case EMobilePhoneNotifyCellInfoChange: - return NotifyCellInfoChange(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneNotifyIccAccessCapsChange: - return NotifyIccAccessCapsChange(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyBatteryInfoChange: - return NotifyBatteryInfoChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr)); - - case EMobilePhoneNotifySignalStrengthChange: - return NotifySignalStrengthChange(aTsyReqHandle, - REINTERPRET_CAST(TInt32*, dataPtr), REINTERPRET_CAST(TInt8*, dataPtr2)); - - case EMobilePhoneNotifyIndicatorChange: - return NotifyIndicatorChange(aTsyReqHandle, REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyDefaultPrivacyChange: - return NotifyDefaultPrivacyChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr)); - - case EMobilePhoneNotifyCallForwardingStatusChange: - return NotifyCallForwardingStatusChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr)); - - case EMobilePhoneNotifyCallForwardingActive: - return NotifyCallForwardingActive(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFActive*, dataPtr2)); - - case EMobilePhoneNotifyNetworkSelectionSettingChange: - return NotifyNetworkSelectionSettingChange(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneNotifyNITZInfoChange: - return NotifyNetworkTimeInfoChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr)); - - case EMobilePhoneNotifyCallServiceCapsChange: - return NotifyCallServiceCapsChange(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyCallBarringStatusChange: - return NotifyCallBarringStatusChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr)); - - case EMobilePhoneNotifyCallWaitingStatusChange: - return NotifyCallWaitingStatusChange(aTsyReqHandle, - aPackage.Des1n()); - - case EMobilePhoneNotifyCCBSStatusChange: - return NotifyCCBSStatusChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr)); - - case EMobilePhoneNotifyCCBSRecall: - return NotifyCCBSRecall(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneNotifyAlternatingCallCapsChange: - return NotifyAlternatingCallCapsChange(aTsyReqHandle, - REINTERPRET_CAST(TUint32*,dataPtr)); - - case EMobilePhoneNotifyAlternatingCallModeChange: - return NotifyAlternatingCallModeChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2)); - - case EMobilePhoneNotifyALSLineChange: - return NotifyALSLineChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr)); - - case EMobilePhoneNotifyCostCapsChange: - return NotifyCostCapsChange(aTsyReqHandle, - REINTERPRET_CAST(TUint32*,dataPtr)); - - case EMobilePhoneNotifyCostInfoChange: - return NotifyCostInfoChange(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneNotifySecurityCapsChange: - return NotifySecurityCapsChange(aTsyReqHandle, - REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyLockInfoChange: - return NotifyLockInfoChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr), - aPackage.Des2n()); - - case EMobilePhoneNotifySecurityCodeInfoChange: - return NotifySecurityCodeInfoChange(aTsyReqHandle, - reinterpret_cast (dataPtr), - aPackage.Des2n()); - - case EMobilePhoneNotifySecurityEvent: - return NotifyOnSecurityEvent(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityEvent*,dataPtr)); - - case EMobilePhoneNotifyMessageWaiting: - return NotifyMessageWaiting(aTsyReqHandle,REINTERPRET_CAST(TInt*,dataPtr)); - - case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: - return NotifyIccMessageWaitingIndicatorsChange(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneNotifyFdnStatusChange: - return NotifyFdnStatusChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*,dataPtr)); - - case EMobilePhoneNotifyMulticallParamsChange: - return NotifyMulticallParamsChange(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneNotifyIncomingCallTypeChange: - return NotifyIncomingCallTypeChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), - aPackage.Des2n()); - - case EMobilePhoneNotifyUUSSettingChange: - return NotifyUUSSettingChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr)); - - case EMobilePhoneNotifyMultimediaCallPreferenceChange: - return NotifyMultimediaCallPreferenceChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr)); - - case EMobilePhoneNotifyNetworkSecurityLevelChange: - return NotifyNetworkSecurityLevelChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr)); - - case EMobilePhoneNotifyUSimAppsSelectionModeChange: - return NotifyUSimAppsSelectionModeChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr)); - - case EMobilePhoneNotifyUSimApplicationsInfoChange: - return NotifyUSimApplicationsInfoChange(aTsyReqHandle, - REINTERPRET_CAST(TInt*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2)); - - case EMobilePhoneNotifyMailboxNumbersChange: - return NotifyMailboxNumbersChange (aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneNotifyMmsUpdate: - return NotifyMmsUpdate (aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneNotifyMmsConfig: - return NotifyMmsConfig(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n()); - - case EMobilePhoneNotifyNetworkInvScanChange: - return NotifyNetworkInvScanChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr)); - - case EMobilePhoneNotifyNetworkInvScanEvent: - return NotifyNetworkInvScanEvent(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScanEvent*, dataPtr)); - - case EMobilePhoneNotifyAirTimeDurationChange: - return NotifyAirTimeDurationChange(aTsyReqHandle, - REINTERPRET_CAST(TTimeIntervalSeconds*,dataPtr)); - - case EMobilePhoneNotifySendNetworkServiceRequest: - return NotifySendNetworkServiceRequest(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneNotifyAllSendNetworkServiceRequest: - return NotifyAllSendNetworkServiceRequest(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneNotifyDTMFEvent: - return NotifyDTMFEvent(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TMobilePhoneDTMFEvent*, dataPtr)); - - case EMobilePhoneNotifyStorePreferredNetworksListChange: - return NotifyStorePreferredNetworksListChange(aTsyReqHandle); - - case EMobilePhoneNotifyCipheringIndicatorStatus: - return NotifyCipheringIndicatorStatus(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr)); - - case EMobilePhoneNotifyIdentityServiceStatus: - return NotifyIdentityServiceStatus(aTsyReqHandle, - *REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr), - REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*, dataPtr2)); - - case EMobilePhoneNotifyIdentitySuppressionRejected: - return NotifyIdentitySuppressionRejected(aTsyReqHandle); - - case EMobilePhoneNotifyMulticallIndicatorChange: - return NotifyMulticallIndicatorChange(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallIndicator*, dataPtr)); - - case EMobilePhoneAuthorizationInfoPhase1: - return GetAuthorizationInfoPhase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), - REINTERPRET_CAST(TInt*,dataPtr2)); - - - case EMobilePhoneAuthorizationInfoPhase2: - return GetAuthorizationInfoPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n()); - - case EMobilePhoneIMSAuthenticate: - return GetAuthenticationData(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneSmartCardAuthenticate: - return GetSmartCardAuthenticationData(aTsyReqHandle, aPackage.Des1n(), - reinterpret_cast(dataPtr2)); - - case EMobilePhoneNotifyImsAuthorizationInfoChanged: - return NotifyImsAuthorizationInfoChanged(aTsyReqHandle); - - case EETelPhoneSetEmergencyClient: - return SetEmergencyClient(aTsyReqHandle,REINTERPRET_CAST(TUint32*, dataPtr)); - - case EMobilePhoneNotifyAuthenticateDataChange: - return NotifyAuthenticateDataChange(aTsyReqHandle, aPackage.Des1n()); - - case EMobilePhoneGetAuthenticationParams: - return GetAuthenticationParams(aTsyReqHandle, aPackage.Des1n(),aPackage.Des2n()); - - case EMobilePhoneSetGbaBootstrapParams: - return SetGbaBootstrapParams(aTsyReqHandle, reinterpret_cast(dataPtr2),aPackage.Des1n()); - - case EMobilePhoneAuthenticationListPhase1: - return GetAuthenticationListPhase1(aTsyReqHandle, - REINTERPRET_CAST(CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData*, dataPtr),REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneAuthenticationListPhase2: - return GetAuthenticationListPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneNotifyWlanDataChange: - return NotifyWlanDataChange(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneNotifyPreferredWlanSIDListChange: - return NotifyPreferredWlanSIDListChange(aTsyReqHandle); - - case EMobilePhoneGetWlanData: - return GetWlanData(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneSetWlanData: - return SetWlanData(aTsyReqHandle,aPackage.Des1n()); - - case EMobilePhoneGetPreferredWlanSIDsPhase1: - return GetPreferredWlanSIDsPhase1(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), - REINTERPRET_CAST(TInt*, dataPtr2)); - - case EMobilePhoneGetPreferredWlanSIDsPhase2: - return GetPreferredWlanSIDsPhase2(aTsyReqHandle, - REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); - - case EMobilePhoneStorePreferredWlanSIDList: - return StorePreferredWlanSIDList(aTsyReqHandle, aPackage.Des1n()); - - default: - return KErrNotSupported; - } - } - -TInt CPhoneDMmTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle) - { - // CancelService is called by the server when it is "cleaning-up" any still outstanding - // asynchronous requests before closing a client's sub-session. - // This will happen if a client closes its R-class handle without cancelling outstanding - // asynchronous requests. - - switch (aIpc) - { - case EMobilePhoneGetHomeNetwork: - return GetHomeNetworkCancel(aTsyReqHandle); - case EMobilePhoneNotifyModeChange: - return NotifyModeChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyDTMFCapsChange: - return NotifyDTMFCapsChangeCancel(aTsyReqHandle); - case EMobilePhoneSendDTMFTones: - return SendDTMFTonesCancel(aTsyReqHandle); - case EMobilePhoneReadDTMFTones: - return ReadDTMFTonesCancel(aTsyReqHandle); - case EMobilePhoneNotifyStopInDTMFString: - return NotifyStopInDTMFStringCancel(aTsyReqHandle); - case EMobilePhoneGetNetworkRegistrationStatus: - return GetNetworkRegistrationStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyNetworkRegistrationStatusChange: - return NotifyNetworkRegistrationStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCurrentNetwork: - return GetCurrentNetworkCancel(aTsyReqHandle); - case EMobilePhoneNotifyCurrentNetworkChange: - return NotifyCurrentNetworkChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCurrentNetworkNoLocation: - return GetCurrentNetworkCancel(aTsyReqHandle); - case EMobilePhoneNotifyCurrentNetworkNoLocationChange: - return NotifyCurrentNetworkChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCellInfo: - return GetCellInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifyCellInfoChange: - return NotifyCellInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneGetDetectedNetworksPhase1: - case EMobilePhoneGetDetectedNetworksPhase2: - return GetDetectedNetworksCancel(aTsyReqHandle); - case EMobilePhoneGetDetectedNetworksV2Phase1: - case EMobilePhoneGetDetectedNetworksV2Phase2: - return GetDetectedNetworksV2Cancel(aTsyReqHandle); - case EMobilePhoneGetDetectedNetworksV5Phase1: - case EMobilePhoneGetDetectedNetworksV5Phase2: - return GetDetectedNetworksV5Cancel(aTsyReqHandle); - case EMobilePhoneGetDetectedNetworksV8Phase1: - case EMobilePhoneGetDetectedNetworksV8Phase2: - return GetDetectedNetworksV8Cancel(aTsyReqHandle); - case EMobilePhoneGetPhoneStoreInfo: - return GetPhoneStoreInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifyIccAccessCapsChange: - return NotifyIccAccessCapsChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCustomerServiceProfile: - return GetCustomerServiceProfileCancel(aTsyReqHandle); - case EMobilePhoneGetServiceTable: - return GetServiceTableCancel(aTsyReqHandle); - case EMobilePhoneGetBatteryInfo: - return GetBatteryInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifyBatteryInfoChange: - return NotifyBatteryInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneGetSignalStrength: - return GetSignalStrengthCancel(aTsyReqHandle); - case EMobilePhoneNotifySignalStrengthChange: - return NotifySignalStrengthChangeCancel(aTsyReqHandle); - case EMobilePhoneGetIndicator: - return GetIndicatorCancel(aTsyReqHandle); - case EMobilePhoneNotifyIndicatorChange: - return NotifyIndicatorChangeCancel(aTsyReqHandle); - case EMobilePhoneGetPhoneId: - return GetPhoneIdCancel(aTsyReqHandle); - case EMobilePhoneGetSubscriberId: - return GetSubscriberIdCancel(aTsyReqHandle); - case EMobilePhoneNotifyCallServiceCapsChange: - return NotifyCallServiceCapsChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCallForwardingStatusPhase1: - case EMobilePhoneGetCallForwardingStatusPhase2: - return GetCallForwardingStatusCancel(aTsyReqHandle); - case EMobilePhoneSetCallForwardingStatus: - return SetCallForwardingStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyCallForwardingStatusChange: - return NotifyCallForwardingStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyCallForwardingActive: - return NotifyCallForwardingActiveCancel(aTsyReqHandle); - case EMobilePhoneProgramFeatureCode: - return ProgramFeatureCodeStringCancel(aTsyReqHandle); - case EMobilePhoneGetFeatureCode: - return GetFeatureCodeStringCancel(aTsyReqHandle); - case EMobilePhoneSendNetworkServiceRequest: - return SendNetworkServiceRequestCancel(aTsyReqHandle); - case EMobilePhoneNotifyNetworkSelectionSettingChange: - return NotifyNetworkSelectionSettingChangeCancel(aTsyReqHandle); - case EMobilePhoneSelectNetwork: - return SelectNetworkCancel(aTsyReqHandle); - case EMobilePhoneNotifyNITZInfoChange: - return NotifyNetworkTimeInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneGetServiceProviderName: - return GetServiceProviderNameCancel(aTsyReqHandle); - case EMobilePhoneGetIdentityServiceStatus: - return GetIdentityServiceStatusCancel(aTsyReqHandle); - case EMobilePhoneGetBarringStatusPhase1: - case EMobilePhoneGetBarringStatusPhase2: - return GetCallBarringCancel(aTsyReqHandle); - case EMobilePhoneSetCallBarringStatus: - return SetCallBarringStatusCancel(aTsyReqHandle); - case EMobilePhoneSetCallBarringPassword: - return SetCallBarringPasswordCancel(aTsyReqHandle); - case EMobilePhoneNotifyCallBarringStatusChange: - return NotifyCallBarringStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneGetWaitingStatusPhase1: - case EMobilePhoneGetWaitingStatusPhase2: - return GetCallWaitingCancel(aTsyReqHandle); - case EMobilePhoneSetCallWaitingStatus: - return SetCallWaitingStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyCallWaitingStatusChange: - return NotifyCallWaitingStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCCBSStatus: - return GetCCBSStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyCCBSStatusChange: - return NotifyCCBSStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneDeactivateCCBS: - return DeactivateCCBSCancel(aTsyReqHandle); - case EMobilePhoneAcceptCCBSRecall: - return AcceptCCBSRecallCancel(aTsyReqHandle); - case EMobilePhoneNotifyCCBSRecall: - return NotifyCCBSRecallCancel(aTsyReqHandle); - case EMobilePhoneGetCompletionRequestsPhase1: - case EMobilePhoneGetCompletionRequestsPhase2: - return GetCallCompletionCancel(aTsyReqHandle); - case EMobilePhoneNotifyAlternatingCallCapsChange: - return NotifyAlternatingCallCapsChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyAlternatingCallModeChange: - return NotifyAlternatingCallModeChangeCancel(aTsyReqHandle); - case EMobilePhoneSetALSLine: - return SetALSLineCancel(aTsyReqHandle); - case EMobilePhoneNotifyALSLineChange: - return NotifyALSLineChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyCostCapsChange: - return NotifyCostCapsChangeCancel(aTsyReqHandle); - case EMobilePhoneClearCostMeter: - return ClearCostMeterCancel(aTsyReqHandle); - case EMobilePhoneSetMaxCostMeter: - return SetMaxCostMeterCancel(aTsyReqHandle); - case EMobilePhoneSetPuct: - return SetPuctCancel(aTsyReqHandle); - case EMobilePhoneGetCostInfo: - return GetCostInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifyCostInfoChange: - return NotifyCostInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifySecurityCapsChange: - return NotifySecurityCapsChangeCancel(aTsyReqHandle); - case EMobilePhoneGetLockInfo: - return GetLockInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifyLockInfoChange: - return NotifyLockInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneSetLockSetting: - return SetLockSettingCancel(aTsyReqHandle); - case EMobilePhoneChangeSecurityCode: - return ChangeSecurityCodeCancel(aTsyReqHandle); - case EMobilePhoneGetSecurityCodeInfo: - return GetSecurityCodeInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifySecurityCodeInfoChange: - return NotifySecurityCodeInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifySecurityEvent: - return NotifyOnSecurityEventCancel(aTsyReqHandle); - case EMobilePhoneVerifySecurityCode: - return VerifySecurityCodeCancel(aTsyReqHandle); - case EMobilePhoneNotifyMessageWaiting: - return NotifyMessageWaitingCancel(aTsyReqHandle); - case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: - return NotifyIccMessageWaitingIndicatorsChangeCancel(aTsyReqHandle); - case EMobilePhoneGetIccMessageWaitingIndicators: - return GetIccMessageWaitingIndicatorsCancel(aTsyReqHandle); - case EMobilePhoneSetIccMessageWaitingIndicators: - return SetIccMessageWaitingIndicatorsCancel(aTsyReqHandle); - case EMobilePhoneGetFdnStatus: - return GetFdnStatusCancel(aTsyReqHandle); - case EMobilePhoneSetFdnSetting: - return SetFdnSettingCancel(aTsyReqHandle); - case EMobilePhoneNotifyFdnStatusChange: - return NotifyFdnStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneSetNetworkSelectionSetting: - return SetNetworkSelectionSettingCancel(aTsyReqHandle); - case EMobilePhoneSetAlternatingCallMode: - return SetAlternatingCallModeCancel(aTsyReqHandle); - case EMobilePhoneGetMulticallParams: - return GetMulticallParamsCancel(aTsyReqHandle); - case EMobilePhoneSetMulticallParams: - return SetMulticallParamsCancel(aTsyReqHandle); - case EMobilePhoneNotifyMulticallParamsChange: - return NotifyMulticallParamsChangeCancel(aTsyReqHandle); - case EMobilePhoneGetIncomingCallType: - return GetIncomingCallTypeCancel(aTsyReqHandle); - case EMobilePhoneSetIncomingCallType: - return SetIncomingCallTypeCancel(aTsyReqHandle); - case EMobilePhoneNotifyIncomingCallTypeChange: - return NotifyIncomingCallTypeChangeCancel(aTsyReqHandle); - case EMobilePhoneGetUUSSetting: - return GetUUSSettingCancel(aTsyReqHandle); - case EMobilePhoneSetUUSSetting: - return SetUUSSettingCancel(aTsyReqHandle); - case EMobilePhoneNotifyUUSSettingChange: - return NotifyUUSSettingChangeCancel(aTsyReqHandle); - case EMobilePhoneSetDefaultPrivacy: - return SetDefaultPrivacyCancel(aTsyReqHandle); - case EMobilePhoneNotifyDefaultPrivacyChange: - return NotifyDefaultPrivacyChangeCancel(aTsyReqHandle); - case EMobilePhoneSetMultimediaCallPreference: - return SetMultimediaCallPreferenceCancel(aTsyReqHandle); - case EMobilePhoneNotifyMultimediaCallPreferenceChange: - return NotifyMultimediaCallPreferenceChangeCancel(aTsyReqHandle); - case EMobilePhoneGetNetworkSecurityLevel: - return GetNetworkSecurityLevelCancel(aTsyReqHandle); - case EMobilePhoneNotifyNetworkSecurityLevelChange: - return NotifyNetworkSecurityLevelChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyUSimAppsSelectionModeChange: - return NotifyUSimAppsSelectionModeChangeCancel(aTsyReqHandle); - case EMobilePhoneSetUSimApplicationStatus: - return SetUSimApplicationStatusCancel(aTsyReqHandle); - case EMobilePhoneGetUSimApplicationsInfo: - return GetUSimApplicationInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifyUSimApplicationsInfoChange: - return NotifyUSimApplicationsInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneEnumerateUSimApplications: - return EnumerateUSimApplicationsCancel(aTsyReqHandle); - case EMobilePhoneEnumerateSmartCardApplications: - return EnumerateSmartCardApplicationsCancel(aTsyReqHandle); - case EMobilePhoneGetSmartCardApplicationInfo: - return GetSmartCardApplicationInfoCancel(aTsyReqHandle); - case EMobilePhoneNotifySmartCardApplicationInfoChange: - return NotifySmartCardApplicationInfoChangeCancel(aTsyReqHandle); - case EMobilePhoneSetSmartCardApplicationStatus: - return SetSmartCardApplicationStatusCancel(aTsyReqHandle); - case EMobilePhoneGetScFileInfo: - return GetScFileInfoCancel(aTsyReqHandle); - case EMobilePhoneReadScFile: - return ReadScFileCancel(aTsyReqHandle); - case EMobilePhoneUpdateScFile: - return UpdateScFileCancel(aTsyReqHandle); - case EMobilePhoneGetCurrentActiveUSimApplication: - return GetCurrentActiveUSimApplicationCancel(aTsyReqHandle); - case EMobilePhoneSetSSPassword: - return SetSSPasswordCancel(aTsyReqHandle); - case EMobilePhoneNotifyMailboxNumbersChange: - return NotifyMailboxNumbersChangeCancel(aTsyReqHandle); - case EMobilePhoneGetMailboxNumbers: - return GetMailboxNumbersCancel(aTsyReqHandle); - case EMobilePhoneNotifyMmsUpdate: - return NotifyMmsUpdateCancel(aTsyReqHandle); - case EMobilePhoneNotifyMmsConfig: - return SetMmsUserConnParamsCancel(aTsyReqHandle); - case EMobilePhoneSetMmsUserConnParams: - return SetMmsUserConnParamsCancel(aTsyReqHandle); - case EMobilePhoneSetMmsUserPreferences: - return SetMmsUserPreferencesCancel(aTsyReqHandle); - case EMobilePhoneGetMmsConfig: - return GetMmsConfigCancel(aTsyReqHandle); - case EMobilePhoneGetHomeNetworkSearchPeriod: - return GetHomeNetworkSearchPeriodCancel(aTsyReqHandle); - case EMobilePhoneGetLastUsedAccessTechnology: - return GetLastUsedAccessTechnologyCancel(aTsyReqHandle); - case EMobilePhoneNotifyNetworkInvScanChange: - return NotifyNetworkInvScanChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyNetworkInvScanEvent: - return NotifyNetworkInvScanEventCancel(aTsyReqHandle); - case EMobilePhoneGetCallForwardingIndicator: - return GetCallForwardingIndicatorCancel(aTsyReqHandle); - case EMobilePhoneGetCompMethodName: - return GetCompMethodNameCancel(aTsyReqHandle); - case EMobilePhoneEnumerateAPNEntries: - return EnumerateAPNEntriesCancel(aTsyReqHandle); - case EMobilePhoneGetAPNname: - return GetAPNnameCancel(aTsyReqHandle); - case EMobilePhoneAppendAPNName: - return AppendAPNNameCancel(aTsyReqHandle); - case EMobilePhoneDeleteAPNName: - return DeleteAPNNameCancel(aTsyReqHandle); - case EMobilePhoneNotifyAPNListChanged: - return NotifyAPNListChangedCancel(aTsyReqHandle); - case EMobilePhoneSetAPNControlListServiceStatus: - return SetAPNControlListServiceStatusCancel(aTsyReqHandle); - case EMobilePhoneGetAPNControlListServiceStatus: - return GetAPNControlListServiceStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyAPNControlListServiceStatusChange: - return NotifyAPNControlListServiceStatusChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyAirTimeDurationChange: - return NotifyAirTimeDurationChangeCancel(aTsyReqHandle); - case EMobilePhoneTerminateAllCalls: - return TerminateAllCallsCancel(aTsyReqHandle); - case EMobilePhoneTerminateActiveCalls: - return TerminateActiveCallsCancel(aTsyReqHandle); - case EMobilePhoneNotifySendNetworkServiceRequest: - return NotifySendNetworkServiceRequestCancel(aTsyReqHandle); - case EMobilePhoneNotifyAllSendNetworkServiceRequest: - return NotifyAllSendNetworkServiceRequestCancel(aTsyReqHandle); - case EMobilePhoneClearBlacklist: - return ClearBlacklistCancel(aTsyReqHandle); - case EMobilePhoneNotifyDTMFEvent: - return NotifyDTMFEventCancel(aTsyReqHandle); - case EMobilePhoneGetPersonalisationCaps: - return GetPersonalisationCapsCancel(aTsyReqHandle); - case EMobilePhoneGetPersonalisationStatus: - return GetPersonalisationStatusCancel(aTsyReqHandle); - case EMobilePhoneSetPersonalisationStatus: - return SetPersonalisationStatusCancel(aTsyReqHandle); - case EMobilePhoneGetNetworkName: - return GetCurrentNetworkNameCancel(aTsyReqHandle); - case EMobilePhoneGetPreferredNetworksPhase1: - case EMobilePhoneGetPreferredNetworksPhase2: - return GetPreferredNetworksCancel(aTsyReqHandle); - case EMobilePhoneStorePreferredNetworksList: - return StorePreferredNetworksListCancel(aTsyReqHandle); - case EMobilePhoneNotifyStorePreferredNetworksListChange: - return NotifyStorePreferredNetworksListChangeCancel(aTsyReqHandle); - case EMobilePhoneGetCipheringIndicatorStatus: - return GetCipheringIndicatorStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyCipheringIndicatorStatus: - return NotifyCipheringIndicatorStatusCancel(aTsyReqHandle); - case EMobilePhoneSetIdentityServiceStatus: - return SetIdentityServiceStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyIdentityServiceStatus: - return NotifyIdentityServiceStatusCancel(aTsyReqHandle); - case EMobilePhoneNotifyIdentitySuppressionRejected: - return NotifyIdentitySuppressionRejectedCancel(aTsyReqHandle); - case EMobilePhoneNotifyMulticallIndicatorChange: - return NotifyMulticallIndicatorChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyImsAuthorizationInfoChanged: - return NotifyImsAuthorizationInfoChangedCancel(aTsyReqHandle); - case EMobilePhoneAuthorizationInfoPhase1: - case EMobilePhoneAuthorizationInfoPhase2: - return GetAuthorizationInfoCancel(aTsyReqHandle); - case EMobilePhoneIMSAuthenticate: - return GetAuthenticationDataCancel(aTsyReqHandle); - case EMobilePhoneSmartCardAuthenticate: - return GetSmartCardAuthenticationDataCancel(aTsyReqHandle); - case EMobilePhoneGetIccIdentity: - return GetIccIdentityCancel(aTsyReqHandle); - case EMobilePhoneNotifyAuthenticateDataChange: - return NotifyAuthenticateDataChangeCancel(aTsyReqHandle); - case EMobilePhoneGetAuthenticationParams: - return GetAuthenticationParamsCancel(aTsyReqHandle); - case EMobilePhoneSetGbaBootstrapParams: - return SetGbaBootstrapParamsCancel(aTsyReqHandle); - case EMobilePhoneAuthenticationListPhase1: - case EMobilePhoneAuthenticationListPhase2: - return GetAuthenticationListCancel(aTsyReqHandle); - case EMobilePhoneNotifyWlanDataChange: - return NotifyWlanDataChangeCancel(aTsyReqHandle); - case EMobilePhoneNotifyPreferredWlanSIDListChange: - return NotifyPreferredWlanSIDListChangeCancel(aTsyReqHandle); - case EMobilePhoneGetWlanData: - return GetWlanDataCancel(aTsyReqHandle); - case EMobilePhoneSetWlanData: - return SetWlanDataCancel(aTsyReqHandle); - case EMobilePhoneGetPreferredWlanSIDsPhase1: - case EMobilePhoneGetPreferredWlanSIDsPhase2: - return GetPreferredWlanSIDsCancel(aTsyReqHandle); - case EMobilePhoneStorePreferredWlanSIDList: - return StorePreferredWlanSIDListCancel(aTsyReqHandle); - - default: - return CPhoneBase::CancelService(aIpc,aTsyReqHandle); - } - } - -/***********************************************************************************/ -// -// The following methods are called from ExtFunc and/or CancelService. -// Each of these will process a TSY request or cancel a TSY request -// Here, example values are returned or checked within this dummy TSY in order to ensure -// that the integrity of the data passed to/from client is maintained -// -/***********************************************************************************/ - -TInt CPhoneDMmTsy::GetMultimodeCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMultimodeCaps called")); - *aCaps=DMMTSY_PHONE_MULTIMODE_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo, - TDes* aName) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called")); - - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo); - RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)(); - - if (aName->Compare(DMMTSY_PHONE_STORE_NAME1) == 0) - { - info.iName=DMMTSY_PHONE_STORE_NAME1; - info.iType=DMMTSY_PHONE_STORE_TYPE1; - info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1; - info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1; - info.iCaps=DMMTSY_PHONE_STORE_CAPS1; - AddDelayedReq(aTsyReqHandle,this); - } - else if (aName->Compare(DMMTSY_PHONE_STORE_NAME2) == 0) - { - info.iName=DMMTSY_PHONE_STORE_NAME2; - info.iType=DMMTSY_PHONE_STORE_TYPE2; - info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2; - info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2; - info.iCaps=DMMTSY_PHONE_STORE_CAPS2; - AddDelayedReq(aTsyReqHandle,this); - } - else - ReqCompleted(aTsyReqHandle,KErrCorrupt); - - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo, - RMobilePhone::TPhoneStoreNameAndIccType* aTable) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called using IccType")); - - RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo); - RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)(); - - if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME1) == 0) && - (aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0)) - { - info.iName=DMMTSY_PHONE_STORE_NAME1; - info.iType=DMMTSY_PHONE_STORE_TYPE1; - info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1; - info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1; - info.iCaps=DMMTSY_PHONE_STORE_CAPS1; - AddDelayedReq(aTsyReqHandle,this); - } - else if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME2) == 0) && - (aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0)) - { - info.iName=DMMTSY_PHONE_STORE_NAME2; - info.iType=DMMTSY_PHONE_STORE_TYPE2; - info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2; - info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2; - info.iCaps=DMMTSY_PHONE_STORE_CAPS2; - AddDelayedReq(aTsyReqHandle,this); - } - else - ReqCompleted(aTsyReqHandle,KErrCorrupt); - - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPhoneStoreInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfoCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIccAccessCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIccAccessCaps called")); - *aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS1; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIccAccessCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - if (!iNotifyIccAccessCaps++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChange called")); - *aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIccIdentity(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIccIdentity* aIdentity) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called")); - *aIdentity=DMMTSY_PHONE_ICC_ID; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIccIdentityCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCustomerServiceProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aFile) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfile called")); - RMobilePhone::TMobilePhoneCspFileV1Pckg* cspV1Pckg = (RMobilePhone::TMobilePhoneCspFileV1Pckg*)aFile; - RMobilePhone::TMobilePhoneCspFileV1& cspV1 = (*cspV1Pckg)(); - - cspV1.iCallOfferingServices=DMMTSY_PHONE_CSP_BYTE1; - cspV1.iCallRestrictionServices=DMMTSY_PHONE_CSP_BYTE2; - cspV1.iOtherSuppServices=DMMTSY_PHONE_CSP_BYTE3; - cspV1.iCallCompletionServices=DMMTSY_PHONE_CSP_BYTE4; - cspV1.iTeleservices=DMMTSY_PHONE_CSP_BYTE5; - cspV1.iCphsTeleservices=DMMTSY_PHONE_CSP_BYTE6; - cspV1.iCphsFeatures=DMMTSY_PHONE_CSP_BYTE7; - cspV1.iNumberIdentServices=DMMTSY_PHONE_CSP_BYTE8; - cspV1.iPhase2PlusServices=DMMTSY_PHONE_CSP_BYTE9; - cspV1.iValueAddedServices=DMMTSY_PHONE_CSP_BYTE10; - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCustomerServiceProfileCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfileCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetServiceTable(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceTable* aTable, TDes8* aFile) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable called")); - RMobilePhone::TMobilePhoneServiceTableV1Pckg* sstFilePckg = (RMobilePhone::TMobilePhoneServiceTableV1Pckg*) aFile; - RMobilePhone::TMobilePhoneServiceTableV1 &sstFile = (*sstFilePckg)(); - - if (*aTable!=DMMTSY_PHONE_SERVICE_TABLE) - ReqCompleted(aTsyReqHandle,KErrCancel); - else - { - if(sstFile.ExtensionId()==KEtelExtMultimodeV8) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V8table")); - RMobilePhone::TMobilePhoneServiceTableV8Pckg* sstV8Pckg = (RMobilePhone::TMobilePhoneServiceTableV8Pckg*)aFile; - RMobilePhone::TMobilePhoneServiceTableV8& sstV8 = (*sstV8Pckg)(); - - sstV8.iServices1To8=DMMTSY_PHONE_SST_BYTE1; - sstV8.iServices9To16=DMMTSY_PHONE_SST_BYTE2; - sstV8.iServices17To24=DMMTSY_PHONE_SST_BYTE3; - sstV8.iServices25To32=DMMTSY_PHONE_SST_BYTE4; - sstV8.iServices33To40=DMMTSY_PHONE_SST_BYTE5; - sstV8.iServices41To48=DMMTSY_PHONE_SST_BYTE6; - sstV8.iServices49To56=DMMTSY_PHONE_SST_BYTE7; - sstV8.iAID=DMMTSY_PHONE_USIM_AID; - sstV8.iServices57To64=DMMTSY_PHONE_SST_BYTE8; - sstV8.iServices65To72=DMMTSY_PHONE_SST_BYTE9; - } - - if(sstFile.ExtensionId()==KETelExtMultimodeV2) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V2table")); - RMobilePhone::TMobilePhoneServiceTableV2Pckg* sstV2Pckg = (RMobilePhone::TMobilePhoneServiceTableV2Pckg*)aFile; - RMobilePhone::TMobilePhoneServiceTableV2& sstV2 = (*sstV2Pckg)(); - - sstV2.iServices1To8=DMMTSY_PHONE_SST_BYTE1; - sstV2.iServices9To16=DMMTSY_PHONE_SST_BYTE2; - sstV2.iServices17To24=DMMTSY_PHONE_SST_BYTE3; - sstV2.iServices25To32=DMMTSY_PHONE_SST_BYTE4; - sstV2.iServices33To40=DMMTSY_PHONE_SST_BYTE5; - sstV2.iServices41To48=DMMTSY_PHONE_SST_BYTE6; - sstV2.iServices49To56=DMMTSY_PHONE_SST_BYTE7; - sstV2.iAID=DMMTSY_PHONE_USIM_AID; - } - else if(sstFile.ExtensionId()==KETelExtMultimodeV1) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V1table")); - - sstFile.iServices1To8=DMMTSY_PHONE_SST_BYTE1; - sstFile.iServices9To16=DMMTSY_PHONE_SST_BYTE2; - sstFile.iServices17To24=DMMTSY_PHONE_SST_BYTE3; - sstFile.iServices25To32=DMMTSY_PHONE_SST_BYTE4; - sstFile.iServices33To40=DMMTSY_PHONE_SST_BYTE5; - sstFile.iServices41To48=DMMTSY_PHONE_SST_BYTE6; - sstFile.iServices49To56=DMMTSY_PHONE_SST_BYTE7; - } - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetServiceTableCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTableCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetBatteryCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryCaps called")); - *aCaps=DMMTSY_PHONE_BATTERY_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetBatteryInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfo called")); - aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS1; - aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE1; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetBatteryInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfoCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyBatteryInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo) - { - if (!iNotifyBatteryInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChange called")); - aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS2; - aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyBatteryInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSignalCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSignalCaps called")); - *aCaps=DMMTSY_PHONE_SIGNAL_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSignalStrength(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrength called")); - *aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH1; - *aBar=DMMTSY_PHONE_SIGNAL_BAR1; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSignalStrengthCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrengthCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySignalStrengthChange(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar) - { - if (!iNotifySignalStrengthChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChange called")); - *aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH2; - *aBar=DMMTSY_PHONE_SIGNAL_BAR2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySignalStrengthChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIndicatorCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aActionCaps, TUint32* aIndCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCaps called")); - *aActionCaps=DMMTSY_PHONE_ACTION_INDICATOR_CAPS; - *aIndCaps=DMMTSY_PHONE_INDICATOR_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIndicator(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIndicator called")); - *aIndicator=DMMTSY_PHONE_INDICATOR1; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIndicatorCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIndicatorChange(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator) - { - if (!iNotifyIndicatorChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChange called")); - *aIndicator=DMMTSY_PHONE_INDICATOR2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIndicatorChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIdentityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityCaps called")); - *aCaps=DMMTSY_PHONE_IDENTITY_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPhoneId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdentityV1* aId) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneId called")); - aId->iManufacturer=DMMTSY_PHONE_MANUFACTURER; - aId->iModel=DMMTSY_PHONE_MODEL; - aId->iRevision=DMMTSY_PHONE_REVISION; - aId->iSerialNumber=DMMTSY_PHONE_SERIAL_NUMBER; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPhoneIdCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneIdCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSubscriberId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSubscriberId* aId) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberId called")); - *aId=DMMTSY_PHONE_SUBSCRIBER_ID; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSubscriberIdCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberIdCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetDTMFCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDTMFCaps called")); - *aCaps=DMMTSY_PHONE_DTMF_CAPS1; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyDTMFCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - if (!iNotifyDTMFCapsChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChange called")); - *aCaps=DMMTSY_PHONE_DTMF_CAPS2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyDTMFCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyStopInDTMFString(const TTsyReqHandle aTsyReqHandle) - { - if (!iNotifyStopInDTMFString++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFString called")); - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyStopInDTMFStringCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFStringCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::ContinueDTMFStringSending(const TTsyReqHandle aTsyReqHandle, TBool *aContinue) - { - TInt err = KErrNone; - if (!(*aContinue)) - err = KErrCorrupt; - ReqCompleted(aTsyReqHandle,err); - return KErrNone; - } - -TInt CPhoneDMmTsy::SendDTMFTones(const TTsyReqHandle aTsyReqHandle, TDesC* aTones) - { - LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTones called")); - if (aTones->Length()!=DMMTSY_PHONE_SEND_TONES_LENGTH) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else if (aTones->Compare(DMMTSY_PHONE_SEND_TONES)!=KErrNone) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SendDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTonesCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::ReadDTMFTones(const TTsyReqHandle aTsyReqHandle, TDes* aTones) - { - LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTones called")); - aTones->Copy(DMMTSY_PHONE_READ_TONES); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::ReadDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTonesCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::StartDTMFTone(const TTsyReqHandle aTsyReqHandle, TChar* aTone) - { - LOGTEXT(_L8("CPhoneDMmTsy::StartDTMFTone called")); - if (*aTone != DMMTSY_PHONE_SINGLE_TONE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::StopDTMFTone(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::StopDTMFTone called")); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkCaps called")); - *aCaps=DMMTSY_PHONE_NETWORK_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentMode called")); - *aMode=DMMTSY_PHONE_NETWORK_MODE1; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode) - { - if (!iNotifyModeChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChange called")); - *aMode=DMMTSY_PHONE_NETWORK_MODE2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyModeChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetHomeNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetwork called")); - RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)(); - - networkInfoV1.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - networkInfoV1.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - networkInfoV1.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - networkInfoV1.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - networkInfoV1.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - networkInfoV1.iCdmaSID=DMMTSY_PHONE_HOME_NETWORK_SID; - networkInfoV1.iAnalogSID=DMMTSY_PHONE_HOME_NETWORK_SID; - networkInfoV1.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - networkInfoV1.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - networkInfoV1.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - - if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8) - { - RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)(); - networkInfoV8.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; - networkInfoV8.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; - networkInfoV8.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; - networkInfoV8.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY; - } - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetHomeNetworkCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetwork called")); - RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)(); - - if(networkInfoV1.ExtensionId() == KETelExt3rdPartyV1) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called")); - RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg; - RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)(); - - networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV; - networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV; - networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV; - networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV; - networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV; - networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV; - networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV; - networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV; - networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV; - networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV; - - if(aArea) - { - aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV; - aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV; - aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV; - - } - - } - else - { - if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8) - { - RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)(); - networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; - - networkInfoV8.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1; - networkInfoV8.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1; - networkInfoV8.iHsupaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1; - } - - - else if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV5) - { - RMobilePhone::TMobilePhoneNetworkInfoV5Pckg* networkInfoV5Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV5Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV5& networkInfoV5 = (*networkInfoV5Pckg)(); - networkInfoV5.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM; - - networkInfoV5.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY; - networkInfoV5.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY; - } - - else if(networkInfoV1.ExtensionId() == KETelExtMultimodeV2) - { - RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)(); - networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM; - } - - networkInfoV1.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; - networkInfoV1.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; - networkInfoV1.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; - networkInfoV1.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; - networkInfoV1.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; - networkInfoV1.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_SID; - networkInfoV1.iAnalogSID=DMMTSY_PHONE_CURRENT_NETWORK_SID; - networkInfoV1.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; - networkInfoV1.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; - networkInfoV1.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; - - if(aArea) - { - aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN; - aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC1; - aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID1; - } - } - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentNetworkCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCurrentNetworkChange(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea) - { - if (!iNotifyCurrentNetworkChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChange called")); - - RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoPckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfo = (*networkInfoPckg)(); - - if(networkInfo.ExtensionId() == KETelExt3rdPartyV1) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called")); - RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg; - RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)(); - - networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV2; - networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV2; - networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV2; - networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV2; - networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV2; - networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV2; - networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV2; - networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV2; - networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV2; - networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV2; - - aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV2; - aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV2; - aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV2; - - } - else - { - if(networkInfo.ExtensionId() == KETelExtMultimodeV2) - { - RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)(); - networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM; - //reset for V1 - iNotifyCurrentNetworkChange = 0; - } - - if(networkInfo.ExtensionId() == KEtelExtMultimodeV8) - { - RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg; - RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)(); - networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; - //reset for V8 - networkInfoV8.iHsdpaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2; - networkInfoV8.iEgprsAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2; - networkInfoV8.iHsupaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2; - iNotifyCurrentNetworkChange = 0; - } - - networkInfo.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; - networkInfo.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; - networkInfo.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; - networkInfo.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; - networkInfo.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; - networkInfo.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; - networkInfo.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; - networkInfo.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; - - if(aArea) - { - aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN; - aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC2; - aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID2; - } - - - } - //reset for etel3rd - iNotifyCurrentNetworkChange = 0; - - AddDelayedReq(aTsyReqHandle,this); - } - else - { - //reset for multiple completion test - iNotifyCurrentNetworkChange = 0; - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCellInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfo called")); - RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg; - RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)(); - - cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE; - cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID; - cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE; - cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS; - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCellInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfoCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCellInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg) - { - if (!iNotifyCellInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChange called")); - - RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg; - RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)(); - - cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE2; - cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID2; - cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE2; - cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS2; - - AddDelayedReq(aTsyReqHandle,this); - } - else - { - //reset for multiple completion test - iNotifyCellInfoChange = 0; - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCellInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkRegistrationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatus called")); - *aStatus=DMMTSY_PHONE_REGISTRATION_STATUS1; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkRegistrationStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus) - { - if(!iNotifyNetworkRegistrationStatusChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange called")); - *aStatus=DMMTSY_PHONE_REGISTRATION_STATUS2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase1 called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetDetectedNetworksPhase1L(aTsyReqHandle, aClient, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetDetectedNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, - TInt* aBufSize) - { - // retrieve detected networks from phone, - // store each network as a list entry, - // stream the list and then return size of this buffer to client - CMobilePhoneNetworkList* list=CMobilePhoneNetworkList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneNetworkInfoV1 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) - { - switch (index) - { - case 0: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; - break; - case 1: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; - break; - case 2: - default: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetDetectedNetworks->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - - - -TInt CPhoneDMmTsy::GetDetectedNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetDetectedNetworks->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetDetectedNetworks - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetDetectedNetworks->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase1 called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetDetectedNetworksV2Phase1L(aTsyReqHandle, aClient, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV2Phase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, - TInt* aBufSize) - { - // Retrieve detected networks from phone, - // Store each network as a list entry of type TMobilePhoneNetworkInfoV2, - // Stream the list and then return size of this buffer to client - CMobilePhoneNetworkListV2* list=CMobilePhoneNetworkListV2::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneNetworkInfoV2 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) - { - switch (index) - { - case 0: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; - entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; - break; - case 1: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; - entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; - break; - case 2: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; - break; - case 3: - default: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetDetectedNetworks->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - - - -TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetDetectedNetworks->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksV2Cancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Cancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetDetectedNetworks - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetDetectedNetworks->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -// -// GetDetectedNetworksV8 // -// -TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase1 called")); - TInt ret=KErrNone; - TRAPD(leaveCode, ret=ProcessGetDetectedNetworksV8Phase1L(aTsyReqHandle, aClient, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV8Phase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - // Retrieve detected networks from phone, - // Store each network as a list entry of type TMobilePhoneNetworkInfoV8, - // Stream the list and then return size of this buffer to client - CMobilePhoneNetworkListV8* list=CMobilePhoneNetworkListV8::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneNetworkInfoV8 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) - { - switch (index) - { - case 0: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; - entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1; - entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1; - break; - case 1: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; - entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2; - entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2; - break; - case 2: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; - entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY; - break; - case 3: - default: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; - entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetDetectedNetworks->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetDetectedNetworks->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksV8Cancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Cancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetDetectedNetworks - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetDetectedNetworks->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - -// -// GetDetectedNetworksV5 // -// -TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase1 called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetDetectedNetworksV5Phase1L(aTsyReqHandle, aClient, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV5Phase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, - TInt* aBufSize) - { - // Retrieve detected networks from phone, - // Store each network as a list entry of type TMobilePhoneNetworkInfoV2, - // Stream the list and then return size of this buffer to client - CMobilePhoneNetworkListV5* list=CMobilePhoneNetworkListV5::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneNetworkInfoV5 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) - { - switch (index) - { - case 0: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; - entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1; - break; - case 1: - entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; - entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; - entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; - entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; - entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; - entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; - entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; - entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; - entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2; - break; - case 2: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; - break; - case 3: - default: - entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; - entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; - entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; - entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; - entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; - entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; - entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3; - entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; - entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetDetectedNetworks->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetDetectedNetworks->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetDetectedNetworksV5Cancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Cancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetDetectedNetworks - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetDetectedNetworks->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetDetectedNetworks->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -// - -TInt CPhoneDMmTsy::GetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSelectionSetting called")); - RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting; - RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)(); - - selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1; - selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1; - selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSetting called")); - RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting; - RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)(); - - if ((selection.iMethod != DMMTSY_PHONE_NETWORK_SELECTION_METHOD2) || - (selection.iBandClass != DMMTSY_PHONE_NETWORK_SELECTION_BAND2) || - (selection.iOperationMode != DMMTSY_PHONE_NETWORK_SELECTION_OPERATION2)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetNetworkSelectionSettingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSettingCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChange(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting) - { - if(!iNotifyNetworkSelectionSettingChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChange called")); - - RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting; - RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)(); - - selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1; - selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1; - selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SelectNetwork(const TTsyReqHandle aTsyReqHandle, - TBool* aIsManual, - RMobilePhone::TMobilePhoneNetworkManualSelection* aManualSelection) - { - LOGTEXT(_L8("CPhoneDMmTsy::SelectNetwork called")); - - if (*aIsManual==DMMTSY_PHONE_MANUAL_SELECTION) - { - if ((aManualSelection->iCountry != DMMTSY_PHONE_COUNTRY_ID) || - (aManualSelection->iNetwork != DMMTSY_PHONE_NETWORK_ID)) - - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - } - else - ReqCompleted(aTsyReqHandle,KErrCorrupt); - - return KErrNone; - } - -TInt CPhoneDMmTsy::SelectNetworkCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SelectNetworkCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkTimeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkTimeInfo called")); - - aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED; - aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY, - DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND, - DMMTSY_PHONE_NWTINFO_MICRO); - aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE; - aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID; - aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID; - aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST; - - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime) - { - if(!iNotifyNetworkTimeInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChange called")); - - aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED; - aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY, - DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND, - DMMTSY_PHONE_NWTINFO_MICRO); - aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE; - aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID; - aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID; - aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetServiceProviderName(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceProviderNameV2* aName) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderName called")); - - aName->iDisplayReq = DMMTSY_PHONE_DISPREQ; - aName->iSPName = DMMTSY_PHONE_SPN_NAME; - aName->iPLMNField = DMMTSY_PHONE_PLMN_FIELD; - - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetServiceProviderNameCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderNameCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetDefaultPrivacy called")); - - *aSetting = DMMTSY_PHONE_PRIVACY_SETTING1; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacy called")); - - if (*aSetting != DMMTSY_PHONE_PRIVACY_SETTING1) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetDefaultPrivacyCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacyCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyDefaultPrivacyChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting) - { - if(!iNotifyDefaultPrivacyChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChange called")); - - *aSetting = DMMTSY_PHONE_PRIVACY_SETTING2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallServiceCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallServiceCaps called")); - *aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS1; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallServiceCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - if (!iNotifyCallServiceCaps++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChange called")); - *aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::ProgramFeatureCodeString(const TTsyReqHandle aTsyReqHandle, - TDesC* aFCString, RMobilePhone::TNetworkServiceAndAction *aFeatureCode) - { - LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeString called")); - if ((aFCString->Compare(DMMTSY_PHONE_FEATURE_CODE) != 0) || - (aFeatureCode->iService != DMMTSY_PHONE_NETWORK_SERVICE) || - (aFeatureCode->iAction != DMMTSY_PHONE_NETWORK_SERVICE_ACTION)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::ProgramFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeStringCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetFeatureCodeString(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TNetworkServiceAndAction *aFeatureCode, TDes *aFCString) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeString called")); - if (aFeatureCode->iService!=DMMTSY_PHONE_NETWORK_SERVICE2 || aFeatureCode->iAction!=DMMTSY_PHONE_NETWORK_SERVICE_ACTION2) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - *aFCString=DMMTSY_PHONE_FEATURE_CODE2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeStringCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, TDesC* aString) - { - LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequest called")); - if (aString->Compare(DMMTSY_PHONE_NETWORK_SERVICE_REQUEST)!=0) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequestCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallForwardingStatusPhase1(const TTsyReqHandle aTsyReqHandle, - CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, - TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase1 called")); - TInt ret=KErrNone; - - if ( ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) && - (aReqData->iLocation==DMMTSY_PHONE_CF_LOCATION) && - (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) ) || - ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) && - (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_FAX) && - (aReqData->iLocation==DMMTSY_PHONE_CF_CACHELOCATION) ) ) - { - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetCallForwardingStatusPhase1L(aTsyReqHandle, aReqData, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - } - else - ReqCompleted(aTsyReqHandle,KErrCorrupt); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetCallForwardingStatusPhase1L(const TTsyReqHandle aTsyReqHandle, - CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, - TInt* aBufSize) - { - // retrieve call forwarding status of each line from phone, - // store each CF status response as a list entry, - // stream the list and then return size of this buffer to client - - CMobilePhoneCFList* list=CMobilePhoneCFList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneCFInfoEntryV1 entry; - RMobilePhone::TMobileService servicegroup = aReqData->iServiceGroup; - - // fill up an example list - for (TInt index=0; index < DMMTSY_CF_ENTRY_COUNT; index++) - { - switch (index) - { - case 0: - entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; - entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE; - entry.iStatus=DMMTSY_PHONE_CF_NOT_ACTIVE; - entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER; - entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT; - break; - case 1: - entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; - entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_DATA; - entry.iStatus=DMMTSY_PHONE_CF_ACTIVE; - entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER; - entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT; - break; - case 2: - entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; - entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX; - entry.iStatus=DMMTSY_PHONE_CF_ACTIVE; - entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER; - entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT; - break; - case 3: - default: - entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; - entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_AUXVOICE; - entry.iStatus=DMMTSY_PHONE_CF_UNKNOWN; - entry.iTimeout=-1; - break; - } - // Add the entry into the list, at the next empty location - if( (servicegroup == DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) || (servicegroup == entry.iServiceGroup) ) - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetCFStatus->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetCallForwardingStatusPhase2(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetCFStatus->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetCFStatus->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetCFStatus - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetCFStatus->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetCFStatus->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallForwardingStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition) - { - if(!iNotifyCallForwardingStatusChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChange called")); - *aCondition=DMMTSY_PHONE_CF_CONDITION_ALL; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallForwardingStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition, RMobilePhone::TMobilePhoneCFChangeV1* aInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatus called")); - if ((*aCondition!=DMMTSY_PHONE_CF_CONDITION_CFNRy) || - (aInfo->iServiceGroup!=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE) || - (aInfo->iAction!=DMMTSY_PHONE_CF_SETTING) || - (aInfo->iNumber.iTelNumber!=DMMTSY_PHONE_TEL_NUMBER) || - (aInfo->iTimeout!=DMMTSY_PHONE_CF_TIMEOUT)) - - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallForwardingActive(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileService* aServiceGroup, RMobilePhone::TMobilePhoneCFActive* aActive) - { - if(!iNotifyCallForwardingActive++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActive called")); - *aActive=DMMTSY_PHONE_CF_ACTIVE_TYPE; - *aServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallForwardingActiveCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActiveCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIdentityServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIdServiceAndLocation *aInfo, - RMobilePhone::TMobilePhoneIdServiceStatus* aStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatus called")); - if (aInfo->iLocation != DMMTSY_PHONE_ID_LOCATION || aInfo->iService != DMMTSY_PHONE_ID_SERVICE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - *aStatus = DMMTSY_PHONE_ID_STATUS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIdentityServiceStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallBarringPhase1(const TTsyReqHandle aTsyReqHandle, - CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData, - TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase1 called")); - TInt ret=KErrNone; - - if ((aReqData->iCondition!=DMMTSY_PHONE_CB_CONDITION) || - (aReqData->iLocation!=DMMTSY_PHONE_CB_LOCATION)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetCallBarringPhase1L(aTsyReqHandle, aReqData, aBufSize)); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - } - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetCallBarringPhase1L(const TTsyReqHandle aTsyReqHandle, - CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData, - TInt* aBufSize) - { - // retrieve call forwarding status of each line from phone, - // store each CB status response as a list entry, - // stream the list and then return size of this buffer to client - - CMobilePhoneCBList* list=CMobilePhoneCBList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneCBInfoEntryV1 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_CALL_BARRING_COUNT; index++) - { - switch (index) - { - case 0: - entry.iCondition = DMMTSY_PHONE_CB_CONDITION0; - entry.iServiceGroup = DMMTSY_PHONE_CB_SG0; - entry.iStatus = DMMTSY_PHONE_CB_STATUS0; - break; - case 1: - entry.iCondition = DMMTSY_PHONE_CB_CONDITION1; - entry.iServiceGroup = DMMTSY_PHONE_CB_SG1; - entry.iStatus = DMMTSY_PHONE_CB_STATUS1; - break; - case 2: - entry.iCondition = DMMTSY_PHONE_CB_CONDITION2; - entry.iServiceGroup = DMMTSY_PHONE_CB_SG2; - entry.iStatus = DMMTSY_PHONE_CB_STATUS2; - break; - case 3: - default: - entry.iCondition = DMMTSY_PHONE_CB_CONDITION3; - entry.iServiceGroup = DMMTSY_PHONE_CB_SG3; - entry.iStatus = DMMTSY_PHONE_CB_STATUS3; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetCB->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetCallBarringPhase2(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get call barring attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetCB->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetCB->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetCallBarringCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetCB - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetCB->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetCB->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallBarringStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition *aCondition, RMobilePhone::TMobilePhoneCBChangeV1* aInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatus called")); - if (*aCondition != DMMTSY_PHONE_CB_CONDITION || aInfo->iAction != DMMTSY_PHONE_CB_ACTION || - (aInfo->iPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallBarringStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallBarringStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition* aCondition) - { - if (!iNotifyCallBarringStatusChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChange called")); - *aCondition = DMMTSY_PHONE_CB_CONDITION; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallBarringPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV1* aPassword) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPassword called")); - if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) || - (aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallBarringPasswordCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPasswordCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetSSPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV2* aPassword, TInt* aService) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetSSPassword called")); - if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) || - (aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0) || - (aPassword->iVerifiedPassword.Compare(DMMTSY_PHONE_CB_VERIFIED_PASSWORD) != 0) && - aService != DMMTSY_PHONE_CB_ALL_SERVICES ) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetSSPasswordCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetSSPasswordCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - - -TInt CPhoneDMmTsy::GetCallWaitingPhase1(const TTsyReqHandle aTsyReqHandle, - CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, - TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase1 called")); - TInt ret=KErrNone; - - if (aReqData->iLocation!=DMMTSY_PHONE_CW_LOCATION) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetCallWaitingPhase1L(aTsyReqHandle, aReqData, aBufSize)); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - } - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetCallWaitingPhase1L(const TTsyReqHandle aTsyReqHandle, - CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, - TInt* aBufSize) - { - // retrieve call forwarding status of each line from phone, - // store each CW status response as a list entry, - // stream the list and then return size of this buffer to client - - CMobilePhoneCWList* list=CMobilePhoneCWList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneCWInfoEntryV1 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_CW_ENTRY_COUNT; index++) - { - switch (index) - { - case 0: - entry.iServiceGroup = DMMTSY_PHONE_CW_SG0; - entry.iStatus = DMMTSY_PHONE_CW_STATUS0; - break; - case 1: - entry.iServiceGroup = DMMTSY_PHONE_CW_SG1; - entry.iStatus = DMMTSY_PHONE_CW_STATUS1; - break; - case 2: - entry.iServiceGroup = DMMTSY_PHONE_CW_SG2; - entry.iStatus = DMMTSY_PHONE_CW_STATUS2; - break; - case 3: - default: - entry.iServiceGroup = DMMTSY_PHONE_CW_SG3; - entry.iStatus = DMMTSY_PHONE_CW_STATUS3; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetCWStatus->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetCallWaitingPhase2(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get call waiting attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetCWStatus->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetCWStatus->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetCallWaitingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetCWStatus - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetCWStatus->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetCWStatus->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - -TInt CPhoneDMmTsy::SetCallWaitingStatus(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TMobileService* aServiceGroup, - RMobilePhone::TMobilePhoneServiceAction *aAction) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatus called")); - if ((*aAction != DMMTSY_PHONE_CW_SET_STATUS_ACTION) || - (*aServiceGroup != DMMTSY_PHONE_CW_SG0)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetCallWaitingStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallWaitingStatusChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCWStatus) - { - if (!iNotifyCallWaitingStatusChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChange called")); - RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg *cwInfoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg*,aCWStatus); - RMobilePhone::TMobilePhoneCWInfoEntryV1 &cwInfo = (*cwInfoPckg)(); - cwInfo.iServiceGroup = DMMTSY_PHONE_CW_SG0; - cwInfo.iStatus = DMMTSY_PHONE_CW_STATUS0; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCCBSStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus, RMobilePhone::TMobileInfoLocation* aLocation) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatus called")); - if (*aLocation != DMMTSY_PHONE_CCC_LOCATION) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - *aCcbsStatus = DMMTSY_PHONE_CCC_STATUS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCCBSStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCCBSStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus) - { - if (!iNotifyCCBSStatusChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChange called")); - *aCcbsStatus = DMMTSY_PHONE_CCC_STATUS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCCBSStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCCBSRecall(const TTsyReqHandle aTsyReqHandle, TDes8* aCCBSEntry) - { -// _asm{int 3}; - if (!iNotifyCCBSRecall++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecall called")); - - RMobilePhone::TMobilePhoneCCBSEntryV1Pckg* ccbsPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV1Pckg*,aCCBSEntry); - RMobilePhone::TMobilePhoneCCBSEntryV1& ccbs = (*ccbsPckg)(); - - ccbs.iCcbsIndex=DMMTSY_PHONE_CCC_INDEX1; - ccbs.iServiceGroup=DMMTSY_PHONE_CCC_SERVICE_GROUP0; - ccbs.iDestination.iNumberPlan=DMMTSY_PHONE_CCC_DESTINATION_NP0; - ccbs.iDestination.iTelNumber= DMMTSY_PHONE_CCC_DESTINATION_NUM0; - ccbs.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0; - - if(ccbs.ExtensionId()==KETelExtMultimodeV2) - { - RMobilePhone::TMobilePhoneCCBSEntryV2Pckg* ccbsPckgV2 = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV2Pckg*,aCCBSEntry); - RMobilePhone::TMobilePhoneCCBSEntryV2& ccbs2 = (*ccbsPckgV2)(); - - // Set that the network has informed us that the CCBS request can proceed - ccbs2.iEvent = DMMTSY_PHONE_CCC_DESTINATION_CCBS_RECEIVED; - //reset for multiple complete V1 - iNotifyCCBSRecall = 0; - } - - AddDelayedReq(aTsyReqHandle,this); - } - else - { - // reset for the V2 test - iNotifyCCBSRecall=0; - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecallCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::AcceptCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, TDes* aCallName) - { - LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecall called")); - if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) - return KErrCorrupt; - *aCallName = DMMTSY_PHONE_CCC_CALLNAME0; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::AcceptCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecallCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::RefuseCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex) - { - LOGTEXT(_L8("CPhoneDMmTsy::RefuseCCBSRecall called")); - if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) - return KErrCorrupt; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - - -TInt CPhoneDMmTsy::DeactivateCCBS(const TTsyReqHandle aTsyReqHandle, TInt* aIndex) - { - if (*aIndex== -1) //-1 means deactivate all - return KErrEtelCallNotActive; - if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) - return KErrCorrupt; - - LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBS called")); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::DeactivateCCBSCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBSCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallCompletionPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aReqData, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase1 called")); - TInt ret = KErrNone; - - TRAPD(leaveCode, ret=ProcessGetCallCompletionPhase1L(aTsyReqHandle, aReqData, aBufSize)); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetCallCompletionPhase1L(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClientId, TInt* aBufSize) - { - CMobilePhoneCcbsList* list=CMobilePhoneCcbsList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePhoneCCBSEntryV1 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_PHONE_CCC_ENTRY_COUNT; index++) - { - switch (index) - { - case 0: - entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP0; - entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX0; - entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0; - entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP0; - entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM0; - break; - case 1: - entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP1; - entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX1; - entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON1; - entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP1; - entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM1; - break; - case 2: - entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP2; - entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX2; - entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON2; - entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP2; - entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM2; - break; - case 3: - entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP3; - entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX3; - entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON3; - entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP3; - entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM3; - default: - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClientId,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetCcbsRequests->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallCompletionPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase2 called")); - CListReadAllAttempt* read=NULL; - - for (TInt i=0; iCount(); ++i) - { - read = iGetCcbsRequests->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetCcbsRequests->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetCallCompletionCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetCcbsRequests - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetCcbsRequests->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetCcbsRequests->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAlternatingCallCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallCaps called")); - - *aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - if (!iNotifyAlternatingCallCapsChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChange called")); - *aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallMode called")); - *aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE; - *aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallMode called")); - if (*aMode != DMMTSY_PHONE_ALTERNATING_CALL_MODE || *aFirstService != DMMTSY_PHONE_ALTERNATING_CALL_SERVICE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetAlternatingCallModeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallModeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAlternatingCallModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode,RMobilePhone::TMobileService* aFirstService) - { - if (!iNotifyAlternatingCallModeChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChange called")); - *aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE; - *aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetALSLine called")); - *aALSLine = DMMTSY_PHONE_ALS_LINE; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetALSLine called")); - if (*aALSLine != DMMTSY_PHONE_ALS_LINE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetALSLineCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetALSLineCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - -TInt CPhoneDMmTsy::NotifyALSLineChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine) - { - if (!iNotifyALSLineChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChange called")); - *aALSLine = DMMTSY_PHONE_ALS_LINE; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyALSLineChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCostCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCostCaps called")); - *aCaps = DMMTSY_PHONE_COST_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCostCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - if (!iNotifyCostCapsChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChange called")); - *aCaps = DMMTSY_PHONE_COST_CAPS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCostCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::ClearCostMeter(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCostMeters* aMeters) - { - LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeter called")); - if (*aMeters != DMMTSY_PHONE_COST_METER) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::ClearCostMeterCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeterCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMaxCostMeter(const TTsyReqHandle aTsyReqHandle, TUint *aUnits) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeter called")); - if (*aUnits != DMMTSY_PHONE_COST_UNITS) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMaxCostMeterCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeterCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetPuct(const TTsyReqHandle aTsyReqHandle, TDes8* aPuct) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetPuct called")); - RMobilePhone::TMobilePhonePuctV1Pckg* puctPckg = STATIC_CAST(RMobilePhone::TMobilePhonePuctV1Pckg*,aPuct); - RMobilePhone::TMobilePhonePuctV1& puct = (*puctPckg)(); - - if ((puct.iCurrencyName.Compare(DMMTSY_PHONE_COST_PUCT_CNAME) != 0) || - (puct.iPricePerUnit != DMMTSY_PHONE_COST_PUCT_PPU)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::SetPuctCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetPuctCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCostInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfo called")); - RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo); - RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)(); - - ci.iService = DMMTSY_PHONE_COST_SERVICE; - ci.iCCM = DMMTSY_PHONE_COST_CCM; - ci.iACM = DMMTSY_PHONE_COST_ACM; - ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX; - ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME; - ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU; - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCostInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfoCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCostInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo) - { - if (!iNotifyCostInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChange called")); - RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo); - RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)(); - - ci.iService = DMMTSY_PHONE_COST_SERVICE; - ci.iCCM = DMMTSY_PHONE_COST_CCM; - ci.iACM = DMMTSY_PHONE_COST_ACM; - ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX; - ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME; - ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCostInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSecurityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCaps called")); - *aCaps = DMMTSY_PHONE_SECURITY_CAPS; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySecurityCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - if (!iNotifySecurityCapsChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChange called")); - *aCaps = DMMTSY_PHONE_SECURITY_CAPS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySecurityCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetLockInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, TDes8* aLockInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfo called")); - if (*aLock != DMMTSY_PHONE_SECURITY_LOCK) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo); - RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)(); - li.iStatus = DMMTSY_PHONE_SECURITY_STATUS; - li.iSetting = DMMTSY_PHONE_SECURITY_SETTING; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetLockInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfoCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyLockInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock* aLock, TDes8* aLockInfo) - { - if (!iNotifyLockInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChange called")); - RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo); - RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)(); - li.iStatus = DMMTSY_PHONE_SECURITY_STATUS; - li.iSetting = DMMTSY_PHONE_SECURITY_SETTING; - *aLock = DMMTSY_PHONE_SECURITY_LOCK; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyLockInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - -TInt CPhoneDMmTsy::SetLockSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, RMobilePhone::TMobilePhoneLockSetting *aLockSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetLockSetting called")); - if (*aLock != DMMTSY_PHONE_SECURITY_SC_LOCK || - *aLockSetting != DMMTSY_PHONE_SECURITY_SC_SETTING) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::SetLockSettingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetLockSettingCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::ChangeSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TMobilePhonePasswordChangeV1 *aChange) - { - LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCode called")); - if ((*aType != DMMTSY_PHONE_SECURITY_CODE) || - (aChange->iOldPassword.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) || - (aChange->iNewPassword.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::ChangeSecurityCodeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCodeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSecurityCodeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aSecurityCode, TDes8* aSecurityCodeInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfo called")); - if (*aSecurityCode != DMMTSY_PHONE_SECURITY_CODE) - ReqCompleted(aTsyReqHandle,KErrNotFound); - else - { - RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo); - RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)(); - info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSecurityCodeInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfoCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySecurityCodeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode* aSecurityCode,TDes8* aSecurityCodeInfo) - { - if (!iNotifySecurityCodeInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::SecurityCodeInfoChange called")); - RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo); - RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)(); - info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS; - *aSecurityCode = DMMTSY_PHONE_SECURITY_CODE; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyOnSecurityEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityEvent* aEvent) - { - if (!iNotifyOnSecurityEvent++) - { - LOGTEXT(_L8("CPhoneDMmTsy::Notify On Security Event called")); - *aEvent = DMMTSY_PHONE_SECURITY_EVENT; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyOnSecurityEventCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyOnSecurityEventCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::VerifySecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TCodeAndUnblockCode* aData) - { - LOGTEXT(_L8("CPhoneDMmTsy::Verify Security Code called")); - - if ((*aType != DMMTSY_PHONE_SECURITY_CODE) || - (aData->iCode.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) || - (aData->iUnblockCode.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0)) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::VerifySecurityCodeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::VerifySecurityCodeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::AbortSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType) - { - LOGTEXT(_L8("CPhoneDMmTsy::AbortSecurityCode called")); - if (*aType != DMMTSY_PHONE_SECURITY_CODE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - - -TInt CPhoneDMmTsy::NotifyMessageWaiting(const TTsyReqHandle aTsyReqHandle, TInt* aCount) - { - if (!iNotifyMessageWaiting++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaiting called")); - *aCount = DMMTSY_PHONE_MW_COUNT; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMessageWaitingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaitingCanel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called")); - RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)(); - indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; - indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS; - indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS; - indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS; - indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS; - indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS; - indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS; - - if(indicators.ExtensionId() == KEtelExtMultimodeV8 ) - { - RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)(); - indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS1; - } - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called")); - RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)(); - if ((indicators.iDisplayStatus!=DMMTSY_PHONE_DISPLAYSTATUS) || - (indicators.iVoiceMsgs != DMMTSY_PHONE_VOICEMSGS2) || - (indicators.iAuxVoiceMsgs != DMMTSY_PHONE_AUXVOICEMSGS2) || - (indicators.iDataMsgs != DMMTSY_PHONE_DATAMSGS2) || - (indicators.iFaxMsgs != DMMTSY_PHONE_FAXMSGS2) || - (indicators.iEmailMsgs != DMMTSY_PHONE_EMAILMSGS2) || - (indicators.iOtherMsgs != DMMTSY_PHONE_OTHERMSGS2)) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - - if(indicators.ExtensionId() == KEtelExtMultimodeV8 ) - { - RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)(); - if (indicatorsV8.iVideoMsgs != DMMTSY_PHONE_VIDEOMSGS2) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - } - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators) - { - if (!iNotifyIccMessageWaitingChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called")); - RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)(); - - indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; - indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS2; - indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS2; - indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS2; - indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS2; - indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS2; - indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS2; - - if(indicators.ExtensionId() == KEtelExtMultimodeV8) - { - RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators); - RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)(); - indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS2; - iNotifyIccMessageWaitingChange = 0; - } - AddDelayedReq(aTsyReqHandle,this); - } - else - { - //reset for multiple complete test - iNotifyIccMessageWaitingChange = 0; - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetFdnStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatus called")); - *aFdnStatus = DMMTSY_PHONE_FDN_STATUS; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetFdnStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetFdnSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnSetting *aFdnSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSetting called")); - if (*aFdnSetting != DMMTSY_PHONE_FDN_SETTING) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetFdnSettingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSettingCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyFdnStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus) - { - if (!iNotifyFdnStatusChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChange called")); - *aFdnStatus = DMMTSY_PHONE_FDN_STATUS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyFdnStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetMulticallParams(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParams called")); - - RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams); - RMobilePhone::TMobilePhoneMulticallSettingsV1 &multicallParams = (*multicallParamsPckg)(); - - multicallParams.iUserMaxBearers = DMMTSY_PHONE_USER_MAX_BEARERS1; - multicallParams.iServiceProviderMaxBearers = DMMTSY_PHONE_PROVIDER_MAX_BEARERS1; - multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS1; - multicallParams.iUESupportedMaxBearers = DMMTSY_PHONE_UE_MAX_BEARERS1; - - AddDelayedReq(aTsyReqHandle, this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMulticallParams(const TTsyReqHandle aTsyReqHandle, TInt* aUserMaxBearers) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParams called")); - - if (*aUserMaxBearers != DMMTSY_PHONE_USER_MAX_BEARERS1) - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParamsCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParamsCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMulticallParamsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams) - { - if (!iNotifyMulticallParamsChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChange called")); - - RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams); - RMobilePhone::TMobilePhoneMulticallSettingsV1 &multicallParams = (*multicallParamsPckg)(); - - multicallParams.iUserMaxBearers = DMMTSY_PHONE_USER_MAX_BEARERS2; - multicallParams.iServiceProviderMaxBearers = DMMTSY_PHONE_PROVIDER_MAX_BEARERS2; - multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS2; - multicallParams.iUESupportedMaxBearers = DMMTSY_PHONE_UE_MAX_BEARERS2; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMulticallParamsChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallType called")); - - RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams); - RMobileCall::TMobileDataCallParamsV1 &dataParamsV1 = (*dataParamsPckgV1)(); - - dataParamsV1.iService = DMMTSY_DATA_CALL_SERVICE; - dataParamsV1.iSpeed = DMMTSY_DATA_CALL_SPEED; - dataParamsV1.iProtocol = DMMTSY_DATA_CALL_PROTOCOL; - dataParamsV1.iQoS = DMMTSY_DATA_CALL_QOS; - dataParamsV1.iRLPVersion = DMMTSY_DATA_CALL_RLP; - dataParamsV1.iV42bisReq = DMMTSY_DATA_CALL_V42BIS; - dataParamsV1.iUseEdge = DMMTSY_DATA_CALL_EGPRS_REQUIRED; - - *aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES; - - AddDelayedReq(aTsyReqHandle, this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallTypeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - - } - -TInt CPhoneDMmTsy::SetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallType called")); - - RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams); - RMobileCall::TMobileDataCallParamsV1 &dataParamsV1 = (*dataParamsPckgV1)(); - - if ((*aCallType != DMMTSY_PHONE_INCOMING_CALL_TYPES) || - (dataParamsV1.iService != DMMTSY_DATA_CALL_SERVICE) || - (dataParamsV1.iSpeed != DMMTSY_DATA_CALL_SPEED) || - (dataParamsV1.iProtocol != DMMTSY_DATA_CALL_PROTOCOL) || - (dataParamsV1.iQoS != DMMTSY_DATA_CALL_QOS) || - (dataParamsV1.iRLPVersion != DMMTSY_DATA_CALL_RLP) || - (dataParamsV1.iV42bisReq != DMMTSY_DATA_CALL_V42BIS) || - (dataParamsV1.iUseEdge != DMMTSY_DATA_CALL_EGPRS_REQUIRED)) - - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallTypeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - - } - -TInt CPhoneDMmTsy::NotifyIncomingCallTypeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams) - { - if (!iNotifyIncomingCallTypeChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChange called")); - - RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckg = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams); - RMobileCall::TMobileDataCallParamsV1 &dataParams = (*dataParamsPckg)(); - - if(dataParams.ExtensionId() == RMobileCall::KETelMobileDataCallParamsV2) - { - RMobileCall::TMobileDataCallParamsV2Pckg *dataParamsPckgV2 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV2Pckg*, aDataParams); - RMobileCall::TMobileDataCallParamsV2 &dataParamsV2 = (*dataParamsPckgV2)(); - dataParamsV2.iBearerMode = DMMTSY_PHONE_MULTICALLBEARERMODE_NOTSUPPORTED; - //reset for V1 - iNotifyIncomingCallTypeChange = 0; - } - dataParams.iService = DMMTSY_DATA_CALL_SERVICE1; - dataParams.iSpeed = DMMTSY_DATA_CALL_SPEED1; - dataParams.iProtocol = DMMTSY_DATA_CALL_PROTOCOL1; - dataParams.iQoS = DMMTSY_DATA_CALL_QOS1; - dataParams.iRLPVersion = DMMTSY_DATA_CALL_RLP1; - dataParams.iV42bisReq = DMMTSY_DATA_CALL_V42BIS1; - dataParams.iUseEdge = DMMTSY_DATA_CALL_EGPRS_NOTREQUIRED; - - *aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES1; - - AddDelayedReq(aTsyReqHandle,this); - } - else - { - //reset for multiple complete test - iNotifyIncomingCallTypeChange = 0; - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSetting called")); - - *aSetting = DMMTSY_PHONE_UUS_SETTING1; - - AddDelayedReq(aTsyReqHandle, this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSettingCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSetting called")); - - if(*aSetting != DMMTSY_PHONE_UUS_SETTING2) - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSettingCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyUUSSettingChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting) - { - if (!iNotifyUUSSettingChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChange called")); - - *aSetting = DMMTSY_PHONE_UUS_SETTING2; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyUUSSettingChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMultimediaCallPreference called")); - - *aSetting = DMMTSY_PHONE_MM_SETTING; - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreference called")); - - if(*aSetting != DMMTSY_PHONE_MM_SETTING) - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMultimediaCallPreferenceCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreferenceCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting) - { - if (!iNotifyMmCallPrefChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange called")); - - *aSetting = DMMTSY_PHONE_MM_SETTING_2; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkSecurityLevel(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity) - { - - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevel called")); - - *aSecurity = DMMTSY_PHONE_NET_SECURITY; - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkSecurityLevelCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevelCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity) - { - - if (!iNotifyNetworkSecurityChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChange called")); - - *aSecurity = DMMTSY_PHONE_NET_SECURITY; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::EnumerateUSimApplications(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID) - { - LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplications called")); - - *aCount = DMMTSY_PHONE_USIM_COUNT; - aActiveAID->Copy(DMMTSY_PHONE_USIM_AID); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::EnumerateUSimApplicationsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplicationsCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetUSimApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TUSimAppAction* aAction) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatus called")); - - if ((*aAction != DMMTSY_PHONE_USIM_ACTIVATE) || - (aAID->Compare(DMMTSY_PHONE_USIM_AID) !=0 )) - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetUSimApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatusCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetUSimApplicationInfo(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, RMobilePhone::TUSimApplicationInfoV2* aInfo) - { - - LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfo called")); - - if(*aIndex != DMMTSY_PHONE_USIM_APPINDEX) - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - { - aInfo->iLabel.Copy(DMMTSY_PHONE_USIM_APPLABEL); - aInfo->iAID.Copy(DMMTSY_PHONE_USIM_AID); - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetUSimApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfoCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChange(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID) - { - if (!iNotifyUSimApplicationsInfoChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChange called")); - - aActiveAID->Copy(DMMTSY_PHONE_USIM_AID); - *aCount = DMMTSY_PHONE_USIM_COUNT; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetUSimAppsSelectionMode called")); - - *aMode = DMMTSY_PHONE_USIM_SELMODE; - - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetUSimAppsSelectionMode called")); - - if(*aMode != DMMTSY_PHONE_USIM_SELMODE) - ReqCompleted(aTsyReqHandle, KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode) - { - if (!iNotifyUSimAppsSelectionModeChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange called")); - - *aMode = DMMTSY_PHONE_USIM_SELMODE; - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetMailboxNumbers(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox) - { - RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox); - RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox = (*mailboxPckg)(); - - LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers called")); - mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE; - mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA; - mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX; - mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER; - - if(mailbox.ExtensionId() == KEtelExtMultimodeV8 ) - { - RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxV8Pckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox); - RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailboxV8 = (*mailboxV8Pckg)(); - LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers V8 class is called")); - mailboxV8.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO; - } - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetMailboxNumbersCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbersCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMailboxNumbersChange(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox) - - { - RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox); - RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox = (*mailboxPckg)(); - - if (!iNotifyMailBoxNumbersChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChange called")); - mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE; - mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA; - mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX; - mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER; - - if(mailbox.ExtensionId() == KEtelExtMultimodeV8) - { - RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox); - RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailbox = (*mailboxPckg)(); - mailbox.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO; - iNotifyMailBoxNumbersChange=0; - } - AddDelayedReq(aTsyReqHandle,this); - } - else - { - iNotifyMailBoxNumbersChange=0; - } - - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMmsUpdate(const TTsyReqHandle aTsyReqHandle, TDes8 *aNotification) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdate called")); - - RMobilePhone::TMmsNotificationV3Pckg *mmsPckg = REINTERPRET_CAST(RMobilePhone::TMmsNotificationV3Pckg *, aNotification); - RMobilePhone::TMmsNotificationV3 &mms = (*mmsPckg)(); - - if (!iNotifyMmsUpdate++) - { - mms.iSpace = DMMTSY_PHONE_MMS_UPDATE_SPACE; - mms.iNotification = DMMTSY_PHONE_MMS_UPDATE_NOTIFICATION; - mms.iMmsStatus = DMMTSY_PHONE_MMS_UPDATE_STATUS; - mms.iImplementation = DMMTSY_PHONE_MMS_UPDATE_IMPLEMENTATION; - mms.iNotify = DMMTSY_PHONE_MMS_UPDATE_NOTIFY; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAirTimeDuration(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAirTimeDuration called")); - *aTime=DMMTSY_AIR_TIME_DURATION1; - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAirTimeDurationChange(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime) - { - if (!iNotifyAirTimeChangeChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChange called")); - *aTime=DMMTSY_AIR_TIME_DURATION2; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::TerminateAllCalls(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCalls called")); - if (!iTerminateAllCalls++) - { - //Just return KErrNone - ReqCompleted(aTsyReqHandle,KErrNone); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::TerminateAllCallsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCallsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::TerminateActiveCalls(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCalls called")); - if (!iTerminateActiveCalls++) - { - //Just return KErrNone - ReqCompleted(aTsyReqHandle,KErrNone); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::TerminateActiveCallsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCallsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - TInt CPhoneDMmTsy::NotifySendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequest called")); - if (!iNotifySendNetworkServiceRequest++) - { - RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete); - RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)(); - - if(*aOperation!=DMMTSY_PHONE_NOTIFY_SERVICEREQUEST || - ssRequest.ExtensionId()!=KETelExtMultimodeV3) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_OPCODE; - ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO; - ReqCompleted(aTsyReqHandle,KErrNone); - } - } - return KErrNone; - } - - TInt CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest called")); - - RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete); - RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)(); - - if(ssRequest.ExtensionId()!=KETelExtMultimodeV3) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - //Return the error for some Invoke operation, like received from network. - *aOperation = DMMTSY_PHONE_NOTIFY_SERVICEREQUEST_ERROR; - //Return result problem code (return Mistyped Parameter) - ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_RETURN_ERROR_PROBLEM_CODE; - ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO; - AddDelayedReq(aTsyReqHandle, this); - } - - return KErrNone; - } - - TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - - TInt CPhoneDMmTsy::ClearBlacklist(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklist called")); - if (!iClearBlacklist++) - { - //Just return KErrNone - ReqCompleted(aTsyReqHandle,KErrNone); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::ClearBlacklistCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklistCancel called")); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyDTMFEvent(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TMobilePhoneDTMFEvent* aEvent) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEvent called")); - if (!iNotifyDTMFEvent++) - { - *aEvent = DMMTSY_PHONE_NOTIFY_DTMFEVENT_ON; - ReqCompleted(aTsyReqHandle,KErrNone); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyDTMFEventCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEventCancel called")); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPersonalisationCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCaps called")); - *aCaps = (DMMTSY_PHONE_PERS_CAPS_SERV_PROV | DMMTSY_PHONE_PERS_CAPS_NETWORK); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPersonalisationCapsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCapsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, TUint32* aPersSchemes) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatus called")); - *aPersSchemes = (DMMTSY_PHONE_PERS_GET_NETWORK_SUB | DMMTSY_PHONE_PERS_GET_CORPORATE); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePersonalisation* aPersSchemes, TDes* aPersCode) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatus called")); - if((*aPersSchemes == DMMTSY_PHONE_PERS_SET_USIM) && - (*aPersCode == DMMTSY_PHONE_PERS_SET_CODE)) - AddDelayedReq(aTsyReqHandle,this); - else - ReqCompleted(aTsyReqHandle,KErrCorrupt); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentNetworkName(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkName, TDes8* aLocInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkName called")); - - RMobilePhone::TMobilePhoneNetworkNameV3Pckg* networkNamePckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkNameV3Pckg*,aNetworkName); - RMobilePhone::TMobilePhoneNetworkNameV3& networkName = (*networkNamePckg)(); - - RMobilePhone::TMobilePhoneOPlmnV3Pckg* plmnPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneOPlmnV3Pckg*,aLocInfo); - RMobilePhone::TMobilePhoneOPlmnV3& plmn = (*plmnPckg)(); - - if(networkName.ExtensionId() != KETelExtMultimodeV3 || - plmn.ExtensionId() != KETelExtMultimodeV3) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - //Fill TMobilePhoneNetworkNameV3 - networkName.iLongName = DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; - networkName.iShortName = DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; - networkName.iOtherNames = DMMTSY_PHONE_HOME_NETWORK_OTHER_NAMES; - //Fill TMobilePhoneOPlmnV3 - plmn.iCountryCode = DMMTSY_PHONE_COUNTRY_ID; - plmn.iNetworkId = DMMTSY_PHONE_NETWORK_ID; - plmn.iPNNid = DMMTSY_PHONE_HOME_NETWORK_NAME_LOC_ID; - plmn.iFirstLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_FIRST_ID; - plmn.iLastLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_LAST_ID; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentNetworkNameCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkNameCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPreferredNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase1 called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetPreferredNetworksPhase1L(aTsyReqHandle, aClient, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetPreferredNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, - TInt* aBufSize) - { - // retrieve stored networks from USIM, - // store each entry. - // stream the list and then return size of this buffer to client - CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMobilePreferredNetworkEntryV3 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_PHONE_NTWK_LIST_ENTRIES; index++) - { - switch (index) - { - case 0: - entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM; - entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE; - entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1; - entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1; - break; - case 1: - entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC; - entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE; - entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2; - entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2; - break; - case 2: - default: - entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN; - entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE; - entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2; - entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1; - break; - case 3: - entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN; - entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE; - entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2; - entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1; - break; - - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetPreferredNetworks->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - - - -TInt CPhoneDMmTsy::GetPreferredNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetPreferredNetworks->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetPreferredNetworks->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetPreferredNetworksCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhaseCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetPreferredNetworks - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetPreferredNetworks->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetPreferredNetworks->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMmsUpdateCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdateCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMmsUserConnParams(const TTsyReqHandle aTsyReqHandle, TDes8* aConnectivity) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParams called")); - if(aConnectivity->Compare(DMMTSY_PHONE_MMS_USER_CONN_PARAMS) == 0 ) - AddDelayedReq(aTsyReqHandle,this); - else - ReqCompleted(aTsyReqHandle, KErrCorrupt); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMmsUserConnParamsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParamsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMmsUserPreferences(const TTsyReqHandle aTsyReqHandle, TDes8* aPreferences) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferences called")); - if(aPreferences->Compare(DMMTSY_PHONE_MMS_USER_PREF_PARAMS) == 0 ) - AddDelayedReq(aTsyReqHandle,this); - else - ReqCompleted(aTsyReqHandle, KErrCorrupt); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetMmsUserPreferencesCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferencesCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetMmsConfig(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity) - - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfig called")); - if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE ) - { - *aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS; - AddDelayedReq(aTsyReqHandle,this); - } - else - ReqCompleted(aTsyReqHandle, KErrCorrupt); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetMmsConfigCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfigCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMmsConfig(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity) - - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfig called")); - if(!iNotifyMmsConfig++) - { - if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE ) - { - *aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS; - AddDelayedReq(aTsyReqHandle,this); - } - else - ReqCompleted(aTsyReqHandle, KErrCorrupt); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMmsConfigCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfigCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriod(const TTsyReqHandle aTsyReqHandle, TInt* aSearchIntv) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriod called")); - *aSearchIntv = DMMTSY_PHONE_HOME_NETWORK_SEARCHINTV; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - - } - -TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetLastUsedAccessTechnology(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkAccess* aAccessTech) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnology called")); - *aAccessTech = DMMTSY_PHONE_LAST_USED_ACCESS_TECH; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetNetworkInvScanSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkInvScanSetting called")); - *aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkInvScanChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChange called")); - if(!iNotifyNetworkInvScanChange++) - { - *aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkInvScanEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScanEvent* aEvent) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEvent called")); - if(!iNotifyNetworkInvScanEvent++) - { - *aEvent = DMMTSY_PHONE_NETWORK_INV_SCAN_EVENT; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyNetworkInvScanEventCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEventCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallForwardingIndicator(const TTsyReqHandle aTsyReqHandle, TDes8* aIndicator) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicator called")); - - RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg*, aIndicator); - RMobilePhone::TMobilePhoneCFUIndicatorV3& indicator = (*indicatorPckg)(); - if( indicator.ExtensionId() == KETelExtMultimodeV3 ) - { - indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR; - } - else if(indicator.ExtensionId() == KEtelExtMultimodeV6 ) - { - RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg*, aIndicator); - RMobilePhone::TMobilePhoneCFUIndicatorV6& indicator = (*indicatorPckg)(); - indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR1; - indicator.iCFNumber.iTypeOfNumber = DMMTSY_PHONE_CFU_TON; - indicator.iCFNumber.iNumberPlan = DMMTSY_PHONE_CFU_NPI; - indicator.iCFNumber.iTelNumber = DMMTSY_PHONE_CFU_TELNUMBER; - indicator.iMultipleSubscriberProfileID = DMMTSY_PHONE_CFU_MSP; - } - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCallForwardingIndicatorCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicatorCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCompMethodName(const TTsyReqHandle aTsyReqHandle, TUint aCmi, TDes* aAlphaTag) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodName called")); - if(aCmi != DMMTSY_PHONE_CB_COMP_METHOD_ID) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - *aAlphaTag = DMMTSY_PHONE_CB_ALPHA_TAG; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } -TInt CPhoneDMmTsy::GetCompMethodNameCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodNameCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::EnumerateAPNEntries(const TTsyReqHandle aTsyReqHandle, TUint32* aIndex) - { - LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntries called")); - *aIndex = DMMTSY_PHONE_APN_ENUMERATE; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::EnumerateAPNEntriesCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntriesCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAPNname(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex, TDes8* aAPN) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAPNname called")); - - RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN); - RMobilePhone::TAPNEntryV3& entry = (*entryPckg)(); - - switch(aIndex) - { - case 0: - { - entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY1); - AddDelayedReq(aTsyReqHandle,this); - } - break; - case 1: - { - entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY2); - AddDelayedReq(aTsyReqHandle,this); - } - break; - case 2: - { - entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY3); - AddDelayedReq(aTsyReqHandle,this); - } - break; - default: - ReqCompleted(aTsyReqHandle,KErrCorrupt); - break; - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAPNnameCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAPNnameCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::AppendAPNName(const TTsyReqHandle aTsyReqHandle, TDes8* aAPN) - { - LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNName called")); - - RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN); - RMobilePhone::TAPNEntryV3& entry = (*entryPckg)(); - - if ((entry.iApn.Length() > RMobilePhone::KMaxApnName) || - (entry.iApn != DMMTSY_PHONE_APN_ENTRY_TO_APPEND)) - { - // Checking that the entry passed in is equal to DMMTSY_PHONE_APN_ENTRY_TO_APPEND - // confirms that the APN entry has made it from the client to the TSY properly, - // i.e the packaging etc. works. - ReqCompleted(aTsyReqHandle, KErrBadName); - } - else - { - AddDelayedReq(aTsyReqHandle, this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::AppendAPNNameCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNNameCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::DeleteAPNName(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex) - { - LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNName called")); - if (aIndex > (DMMTSY_PHONE_APN_ENUMERATE-1)) - { - ReqCompleted(aTsyReqHandle, KErrTooBig); - } - else - { - AddDelayedReq(aTsyReqHandle, this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::DeleteAPNNameCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNNameCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAPNListChanged(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChanged called")); - AddDelayedReq(aTsyReqHandle, this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAPNListChangedCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChangedCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus aAPNControlListServiceStatus) - { - if ((aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED) && - (aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED)) - { - ReqCompleted(aTsyReqHandle, KErrArgument); - } - else - { - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::SetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetAPNControlListServiceStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatus called")); - *aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED; - AddDelayedReq(aTsyReqHandle, this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange called")); - *aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED; - AddDelayedReq(aTsyReqHandle, this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::StorePreferredNetworksList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) - { - LOGTEXT(_L8("CSmsMessagingDMmTsy::StorePreferredNetworksList called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessStorePreferredNetworksListL(aTsyReqHandle, aBuffer);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - }; - -TInt CPhoneDMmTsy::ProcessStorePreferredNetworksListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) - { - CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL(); - CleanupStack::PushL(list); - - list->RestoreL(*aBuffer); - - RMobilePhone::TMobilePreferredNetworkEntryV3 entry; - - if (list->Enumerate() != DMMTSY_PHONE_NTWK_LIST_ENTRIES) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - CleanupStack::PopAndDestroy(); // list - return KErrNone; - } - - TInt error=KErrNone; - TInt ret; - for (TInt i=0; iGetEntryL(i)); - if (ret != KErrNone) - break; - switch(i) - { - case 0: - { - if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN || - entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE || - entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 || - entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1) - error = KErrCorrupt; - } - - break; - case 1: - { - if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN || - entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE || - entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 || - entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1) - error = KErrCorrupt; - } - - break; - case 2: - { - if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC || - entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE || - entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 || - entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2) - error = KErrCorrupt; - } - break; - case 3: - default: - { - if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM || - entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE || - entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1 || - entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1) - error = KErrCorrupt; - } - break; - } - } - if(error==KErrNone) - AddDelayedReq(aTsyReqHandle,this); - else - ReqCompleted(aTsyReqHandle,KErrCorrupt); - CleanupStack::PopAndDestroy(); // list - return KErrNone; - } - -TInt CPhoneDMmTsy::StorePreferredNetworksListCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CSmspStoreDMmTsy::StorePreferredNetworksListCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChange(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChange called")); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatus called")); - aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatus called")); - if (!iNotifyCipheringIndicatorStatus++) - { - aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceSetting aSetting) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatus called")); - if(aService != DMMTSY_PHONE_ID_SERVICE || aSetting != DMMTSY_PHONE_ID_SETTING) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::SetIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceStatus* aStatus) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatus called")); - if (!iNotifyIdentityServiceStatus++) - { - if(aService!=DMMTSY_PHONE_ID_SERVICE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - *aStatus = DMMTSY_PHONE_ID_STATUS; - AddDelayedReq(aTsyReqHandle,this); - } - } - return KErrNone; - } -TInt CPhoneDMmTsy::NotifyIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatusCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyIdentitySuppressionRejected(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejected called")); - if (!iNotifyIdentitySuppressionRejected++) - { - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } -TInt CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMulticallIndicatorChange(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMulticallIndicator* aMulticallIndicator) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChange called")); - if (!iNotifyMulticallIndicatorChange++) - { - *aMulticallIndicator = DMMTSY_PHONE_MULTICALL_IND; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::EnumerateSmartCardApplications(const TTsyReqHandle aTsyReqHandle,TUint* aCount) - { - LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplications called")); - - *aCount = DMMTSY_PHONE_SC_COUNT; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSmartCardApplicationInfo(const TTsyReqHandle aTsyReqHandle,TUint* aAppIndex, TDes8* aInfoBuffer) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfo called")); - - if(*aAppIndex == DMMTSY_PHONE_SC_APP_INDEX1) - { - RMobilePhone::TSmartCardApplicationInfoV5Pckg *ScAppInfoPckg = REINTERPRET_CAST(RMobilePhone::TSmartCardApplicationInfoV5Pckg *, aInfoBuffer); - RMobilePhone::TSmartCardApplicationInfoV5 &ScAppInfo = (*ScAppInfoPckg)(); - - if(ScAppInfo.ExtensionId() != KEtelExtMultimodeV5) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - else - { - ScAppInfo.iAID = DMMTSY_PHONE_SC_AID; - ScAppInfo.iLabel = DMMTSY_PHONE_SC_LABEL; - } - } - else - { - return DMMTSY_PHONE_SC_OUTOFRANGE; - } - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSmartCardApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfoCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TSmartCardApplicationEvent* aEvent, RMobilePhone::TAID* aAID) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called")); - if(!iNotifySmartCardApplicationInfoChange++) - { - *aEvent = DMMTSY_PHONE_SC_EVENT_ACTIVATE; - *aAID = DMMTSY_PHONE_SC_AID; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetSmartCardApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TSmartCardApplicationAction aAction) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatus called")); - - if(*aAID != DMMTSY_PHONE_SC_AID2 || aAction != DMMTSY_PHONE_SC_ACTION_TERMINATE) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetSmartCardApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatusCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetScFileInfo(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePath& aFilePathId, TDes8* aInfo) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfo called")); - - if(aFilePathId.iAID != DMMTSY_PHONE_SC_AID || aFilePathId.iPath != DMMTSY_PHONE_SC_PATH_REF) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - RMobilePhone::TScFileInfoV5Pckg *scFileInfoPckg = REINTERPRET_CAST(RMobilePhone::TScFileInfoV5Pckg*, aInfo); - RMobilePhone::TScFileInfoV5 &scFileInfo = (*scFileInfoPckg)(); - - if(scFileInfo.ExtensionId() != KEtelExtMultimodeV5) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - else - { - scFileInfo.iFileID = DMMTSY_PHONE_SC_FILEID; - scFileInfo.iNumberRecords = DMMTSY_PHONE_SC_NORECORDS; - scFileInfo.iRecordLength = DMMTSY_PHONE_SC_RECORD_SIZE; - scFileInfo.iType = DMMTSY_PHONE_SC_TYPE; - scFileInfo.iTotalLength = DMMTSY_PHONE_SC_FILESIZE; - } - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetScFileInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfoCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::ReadScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aReadBuffer) - { - LOGTEXT(_L8("CPhoneDMmTsy::ReadScFile called")); - - if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - { - aReadBuffer->Zero(); - aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD0); - aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD1); - aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD2); - - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::ReadScFileCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ReadScFileCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::UpdateScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aWriteBuffer) - { - LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFile called")); - - TInt startoffset = 0; - TPtr8 record0(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE)); - startoffset += DMMTSY_PHONE_SC_RECORD_SIZE; - TPtr8 record1(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE)); - startoffset += DMMTSY_PHONE_SC_RECORD_SIZE; - TPtr8 record2(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE)); - - if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else if(record0 != DMMTSY_PHONE_SC_RECORD0 || record1 != DMMTSY_PHONE_SC_RECORD1 || record2 != DMMTSY_PHONE_SC_RECORD2) - ReqCompleted(aTsyReqHandle,KErrCorrupt); - else - AddDelayedReq(aTsyReqHandle,this); - - return KErrNone; - } - -TInt CPhoneDMmTsy::UpdateScFileCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFileCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentActiveUSimApplication(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplication called")); - - *aAID = DMMTSY_PHONE_SC_AID; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel called")); - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -CPhoneDMmTsy* CPhoneDMmTsy::This(TAny* aPtr) - { - return REINTERPRET_CAST(CPhoneDMmTsy*,aPtr); - } - -TInt CPhoneDMmTsy::GetAuthorizationInfoPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called")); - TInt ret(KErrNone); - TInt leaveCode(KErrNone); - TRAP(leaveCode, ret=ProcessGetAuthorizationInfoPhase1L(aTsyReqHandle, aId, aBufSize);); - if (leaveCode != KErrNone) - ReqCompleted(aTsyReqHandle,leaveCode); - return ret; - }; - -TInt CPhoneDMmTsy::ProcessGetAuthorizationInfoPhase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, - TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called")); - - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - HBufC8* iBuff=NULL; - iAuthInfo->ExternalizeL(iBuff); - CleanupStack::PushL(iBuff); - - CBufFlat* buf=CBufFlat::NewL(iBuff->Length()); - CleanupStack::PushL(buf); - buf->InsertL(0,*iBuff); - - read->iListBuf = buf; - CleanupStack::Pop(buf); - CleanupStack::PopAndDestroy(iBuff); - - iGetAuthorizationData->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } -TInt CPhoneDMmTsy::GetAuthorizationInfoPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuffer) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get detected network attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetAuthorizationData->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuffer->Copy(bufPtr); - delete read; - iGetAuthorizationData->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - ReqCompleted(aTsyReqHandle,KErrBadHandle); - return KErrNone; - } - - -TInt CPhoneDMmTsy::GetAuthorizationInfoCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoCancel called")); - - // Remove the read all attempt from iGetAuthorizationData - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetAuthorizationData->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetAuthorizationData->Delete(i); - break; - } - } - - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAuthenticationData(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthenticationData) - { - LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationData called")); - TInt ret(KErrNone); - User::After(300000); // wait to have KRequestPending - RMobilePhone::TImsAuthenticateDataV5Pckg* authenticateDataPckgd=(RMobilePhone::TImsAuthenticateDataV5Pckg*)aAuthenticationData; - RMobilePhone::TImsAuthenticateDataV5& authenticateData=(*authenticateDataPckgd)(); - if(authenticateData.iAUTN!=DMMTSY_PHONE_AUTN_IN || authenticateData.iRAND!=DMMTSY_PHONE_RAND_IN) - { - ret=KErrCorrupt; - ReqCompleted(aTsyReqHandle,ret); - } - else - { - authenticateData.iAUTN=DMMTSY_PHONE_AUTN_OUT; - authenticateData.iRAND=DMMTSY_PHONE_RAND_OUT; - authenticateData.iRES=DMMTSY_PHONE_RES_OUT; - authenticateData.iIK=DMMTSY_PHONE_IK_OUT; - authenticateData.iCK=DMMTSY_PHONE_CK_OUT; - authenticateData.iAUTS=DMMTSY_PHONE_AUTS_OUT; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationDataCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged called")); - if (!iNotifyImsAuthorizationInfoChange++) - { - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - - } -TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSmartCardAuthenticationData(const TTsyReqHandle aTsyReqHandle, TDes8* aSmartCardAuthData, RMobilePhone::TAID* aAID) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationData called")); - - RMobilePhone::TSmartCardAuthenticateDataV6Pckg *smartCardAuthenticateDataPckg = - reinterpret_cast(aSmartCardAuthData); - - RMobilePhone::TSmartCardAuthenticateDataV6 &smartCardAuthenticateData = - (*smartCardAuthenticateDataPckg)(); - - if (aAID != NULL) - { - if (*aAID != DMMTSY_PHONE_GBA_AID() && - *aAID != DMMTSY_PHONE_EAPAPP_AID() && - *aAID != DMMTSY_PHONE_MBMS_AID()) - { - ReqCompleted(aTsyReqHandle, KErrCorrupt); - return KErrNone; - } - } - // USIM authentication - if(smartCardAuthenticateData.ExtensionId() == KEtelExtMultimodeV6) - { - if(smartCardAuthenticateData.iAUTN != DMMTSY_PHONE_SC_AUTN_IN || - smartCardAuthenticateData.iRAND != DMMTSY_PHONE_SC_RAND_IN) - { - ReqCompleted(aTsyReqHandle, KErrCorrupt); - } - else - { - smartCardAuthenticateData.iAUTN=DMMTSY_PHONE_SC_AUTN_OUT; - smartCardAuthenticateData.iRAND=DMMTSY_PHONE_SC_RAND_OUT; - smartCardAuthenticateData.iRES=DMMTSY_PHONE_SC_RES_OUT; - smartCardAuthenticateData.iIK=DMMTSY_PHONE_SC_IK_OUT; - smartCardAuthenticateData.iCK=DMMTSY_PHONE_SC_CK_OUT; - smartCardAuthenticateData.iAUTS=DMMTSY_PHONE_SC_AUTS_OUT; - smartCardAuthenticateData.iKc=DMMTSY_PHONE_SC_KC_OUT; - AddDelayedReq(aTsyReqHandle,this); - } - } - else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaBootstrapAuthDataV8) - { - RMobilePhone::TGbaBootstrapAuthDataV8Pckg *gbaBootstrapAuthenticateDataPckg = - STATIC_CAST(RMobilePhone::TGbaBootstrapAuthDataV8Pckg*,aSmartCardAuthData); - - RMobilePhone::TGbaBootstrapAuthDataV8 &gbaBootstrapAuthData = - (*gbaBootstrapAuthenticateDataPckg)(); - - if(gbaBootstrapAuthData.iAUTN != DMMTSY_PHONE_GBA_AUTN_IN || - gbaBootstrapAuthData.iRAND != DMMTSY_PHONE_GBA_RAND_IN) - { - iGbaBootstrapAuthDataFail++; - switch(iGbaBootstrapAuthDataFail) - { - case 1: - gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT; - gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_FAIL_AUTS_OUT; - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthVerificationFailure); - break; - - case 2: - gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT; - gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT; - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid); - break; - - case 3: - default: - gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT; - gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT; - ReqCompleted(aTsyReqHandle, KErrInUse); - iGbaBootstrapAuthDataFail=0; - break; - } - } - else - { - gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_SUCC_RES_OUT; - gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT; - AddDelayedReq(aTsyReqHandle,this); - } - } - else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaNafAuthDataV8) - { - RMobilePhone::TGbaNafAuthDataV8Pckg *gbaNafAuthenticateDataPckg = - STATIC_CAST(RMobilePhone::TGbaNafAuthDataV8Pckg*,aSmartCardAuthData); - - RMobilePhone::TGbaNafAuthDataV8 &gbaNafAuthData= - (*gbaNafAuthenticateDataPckg)(); - if(gbaNafAuthData.iNafId != DMMTSY_PHONE_GBA_VALID_NAFID || - gbaNafAuthData.iImpi != DMMTSY_PHONE_GBA_VALID_IMPI) - { - iGbaNafAuthDataFail++; - switch(iGbaNafAuthDataFail) - { - case 1: - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound); - break; - - case 2: - ReqCompleted(aTsyReqHandle, KErrCorrupt); - break; - - case 3: - default: - ReqCompleted(aTsyReqHandle, KErrInUse); - iGbaNafAuthDataFail=0; - break; - } - } - else - { - gbaNafAuthData.iKsExtNaf=DMMTSY_PHONE_GBA_KS_EXTNAF; - AddDelayedReq(aTsyReqHandle,this); - } - } - else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskUpdateDataV8) - { - RMobilePhone::TMbmsMskUpdateDataV8Pckg *mbmsMskUpdateAuthenticateDataPckg = - STATIC_CAST(RMobilePhone::TMbmsMskUpdateDataV8Pckg*,aSmartCardAuthData); - - RMobilePhone::TMbmsMskUpdateDataV8 &mbmsMskUpdateAuthData= - (*mbmsMskUpdateAuthenticateDataPckg)(); - if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_INVALID_IMIKEY) - { - iMbmsMskUpdateAuthDataFail++; - switch(iMbmsMskUpdateAuthDataFail) - { - case 1: - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound); - break; - - case 2: - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid); - break; - - case 3: - ReqCompleted(aTsyReqHandle, KErrCorrupt); - break; - - case 4: - default: - ReqCompleted(aTsyReqHandle, KErrInUse); - iMbmsMskUpdateAuthDataFail=0; - break; - } - } - else if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_WO_VBIT) - { - AddDelayedReq(aTsyReqHandle,this); - } - else if (mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_W_VBIT) - { - mbmsMskUpdateAuthData.iOutputMikey=DMMTSY_PHONE_MBMS_OMIKEY_FOR_W_VBIT; - AddDelayedReq(aTsyReqHandle,this); - } - } - - else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMtkGenerateDataV8) - { - RMobilePhone::TMbmsMtkGenerateDataV8Pckg *mbmsMtkGenerateAuthenticateDataPckg = - STATIC_CAST(RMobilePhone::TMbmsMtkGenerateDataV8Pckg*,aSmartCardAuthData); - - RMobilePhone::TMbmsMtkGenerateDataV8 &mbmsMtkGenerateAuthData= - (*mbmsMtkGenerateAuthenticateDataPckg)(); - - if(mbmsMtkGenerateAuthData.iMikey!= DMMTSY_PHONE_MBMS_VALID_IMIKEY) - { - iMbmsMtkGenerateAuthDataFail++; - switch(iMbmsMtkGenerateAuthDataFail) - { - case 1: - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound); - break; - - case 2: - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid); - break; - - case 3: - ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid); - break; - - case 4: - ReqCompleted(aTsyReqHandle, KErrCorrupt); - break; - - case 5: - default: - ReqCompleted(aTsyReqHandle, KErrInUse); - iMbmsMtkGenerateAuthDataFail=0; - break; - } - } - else - { - mbmsMtkGenerateAuthData.iMtk = DMMTSY_PHONE_MBMS_VALID_MTK; - mbmsMtkGenerateAuthData.iSaltKey = DMMTSY_PHONE_MBMS_VALID_SALTKEY; - AddDelayedReq(aTsyReqHandle,this); - } - } - else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskDeleteDataV8) - { - RMobilePhone::TMbmsMskDeleteDataV8Pckg *mbmsMskDeleteAuthenticateDataPckg = - STATIC_CAST(RMobilePhone::TMbmsMskDeleteDataV8Pckg*,aSmartCardAuthData); - - RMobilePhone::TMbmsMskDeleteDataV8 &mbmsMskDeleteAuthData= - (*mbmsMskDeleteAuthenticateDataPckg)(); - - if((mbmsMskDeleteAuthData.iKeyDomainId!= DMMTSY_PHONE_MBMS_VALID_KEYDMN) || - (mbmsMskDeleteAuthData.iMskIdKeyGroup != DMMTSY_PHONE_MBMS_VALID_MSKIDGRP)) - { - iMbmsMskDeleteAuthDataFail++; - switch(iMbmsMskDeleteAuthDataFail) - { - case 1: - ReqCompleted(aTsyReqHandle, KErrNotFound); - break; - - case 2: - default: - ReqCompleted(aTsyReqHandle, KErrInUse); - iMbmsMskDeleteAuthDataFail=0; - break; - } - } - else - { - AddDelayedReq(aTsyReqHandle,this); - } - } - else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMukDeleteDataV8) - { - RMobilePhone::TMbmsMukDeleteDataV8Pckg *mbmsMukDeleteAuthenticateDataPckg = - STATIC_CAST(RMobilePhone::TMbmsMukDeleteDataV8Pckg*,aSmartCardAuthData); - - RMobilePhone::TMbmsMukDeleteDataV8 &mbmsMukDeleteAuthData= - (*mbmsMukDeleteAuthenticateDataPckg)(); - - if(mbmsMukDeleteAuthData.iMukIdTlv!= DMMTSY_PHONE_MBMS_VALID_MUKID) - { - iMbmsMukDeleteAuthDataFail++; - switch(iMbmsMukDeleteAuthDataFail) - { - case 1: - ReqCompleted(aTsyReqHandle, KErrNotFound); - break; - - case 2: - default: - ReqCompleted(aTsyReqHandle, KErrInUse); - iMbmsMukDeleteAuthDataFail=0; - break; - } - } - else - { - AddDelayedReq(aTsyReqHandle,this); - } - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle, KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetEmergencyClient(const TTsyReqHandle aTsyReqHandle, TUint32* aEmergencyRequest) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetEmergencyClient called")); - - switch (*aEmergencyRequest) - { - case RPhone::EEmergencyLCSRequest: - case RPhone::EEmergencyCSVoiceCallRequest: - case RPhone::EEmergencyLCSRequest | RPhone::EEmergencyCSVoiceCallRequest: - ReqCompleted(aTsyReqHandle, KErrNone); - break; - default: - return KErrCorrupt; - } - - return KErrNone; - } - -// -// First Ordinal Functions -// -extern "C" - { - IMPORT_C CPhoneFactoryBase* LibEntry(); // Force "Proper Name" export - } - -EXPORT_C CPhoneFactoryBase* LibEntry() - { - CPhoneFactoryDMmTsy* factory = NULL; - TRAP_IGNORE(factory = CPhoneFactoryDMmTsy::NewL()); - return factory; - } - -// -// DMmTsy Phone Factory Functions -// - -CPhoneFactoryDMmTsy* CPhoneFactoryDMmTsy::NewL() - { - CPhoneFactoryDMmTsy *This = new (ELeave) CPhoneFactoryDMmTsy; - CleanupStack::PushL(This); - This->ConstructL(); - CleanupStack::Pop(); - return This; - } - -CPhoneFactoryDMmTsy::CPhoneFactoryDMmTsy() - { - iVersion=TVersion( KTsyEtelMajorVersionNumber, - KTsyEtelMinorVersionNumber, - KTsyEtelBuildVersionNumber); - } - -CPhoneFactoryDMmTsy::~CPhoneFactoryDMmTsy() - { - LOGDESTROY(); - } - -CPhoneBase * CPhoneFactoryDMmTsy::NewPhoneL(const TDesC& aName) - { - if (aName.Compare(DMMTSY_PHONE_NAME)==KErrNone) - return CPhoneDMmTsy::NewL(this); - else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH1)==KErrNone) - { - CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this); - CleanupStack::PushL(phone); - // it van be initialised in different ways by using name of the phone - - // that's why different names of phones shall be used - phone->iAuthInfo->iIMPI=DMMTSY_PHONE1_IMPI; - phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE1_IMPU0); - phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE1_HNDN; - phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE1_DATASOURCE; - CleanupStack::Pop(phone); - return phone; - } - else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH2)==KErrNone) - { - CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this); - CleanupStack::PushL(phone); - // it van be initialised in different ways by using name of the phone - - // that's why different names of phones shall be used - phone->iAuthInfo->iIMPI=DMMTSY_PHONE2_IMPI; - phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU1); - phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU2); - phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU3); - phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU4); - phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE2_HNDN; - phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE2_DATASOURCE; - CleanupStack::Pop(phone); - return phone; - } - else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH3)==KErrNone) - { - CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this); - CleanupStack::PushL(phone); - // it van be initialised in different ways by using name of the phone - - // that's why different names of phones shall be used - phone->iAuthInfo->iIMPI=DMMTSY_PHONE3_IMPI; - phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE3_HNDN; - phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE3_DATASOURCE; - CleanupStack::Pop(phone); - return phone; - } - return NULL; - } - -TBool CPhoneFactoryDMmTsy::IsSupported(const TInt /*aMixin*/) - { - return EFalse; - } - -// -// methods for CActiveListNode -// - -CPhoneDMmTsy::CActiveListNode::CActiveListNode(CActive *aActive, const TTsyReqHandle aTsyReqHandle) : - iActive(aActive), iTsyReqHandle(aTsyReqHandle) - { - - } - -CPhoneDMmTsy::CActiveListNode::~CActiveListNode() - { - delete iActive; - } - -// -// methods for the list of aos which corresspond to the outstanding delayed asyncrhonous reqs -// - -TInt CPhoneDMmTsy::FindDelayedReq(const TTsyReqHandle aTsyReqHandle, CActiveListNode *& aNode) - { - TInt err = KErrNotFound; - TSglQueIter iter(iActiveRequestObjects); - iter.SetToFirst(); - - CActiveListNode *node = aNode = NULL; - while ((node = iter++) != NULL) - if (node->iTsyReqHandle == aTsyReqHandle) - break; - - if (node != NULL) - { - aNode = node; - err = KErrNone; - } - - return err; - } - -TInt CPhoneDMmTsy::RemoveDelayedReq(const TTsyReqHandle aTsyReqHandle) - { - CActiveListNode *aNode = NULL; - TInt err = FindDelayedReq(aTsyReqHandle,aNode); - if (err == KErrNone) - { - iActiveRequestObjects.Remove(*aNode); - delete aNode; - } - return err; - } - -void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject) - { - CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject); - CleanupStack::PushL(delayed); - CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle); - iActiveRequestObjects.AddLast(*newNode); - delayed->After(100000); - CleanupStack::Pop(); // delayed - } -void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority) - { - CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject); - CleanupStack::PushL(delayed); - CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle); - iActiveRequestObjects.AddLast(*newNode); - delayed->After(aPriority); - CleanupStack::Pop(); // delayed - } -void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject) - { - TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject)); - - if (err != KErrNone) - { - ReqCompleted(aTsyReqHandle, err); - } - } -void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority) - { - TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject, aPriority)); - - - if (err != KErrNone) - { - ReqCompleted(aTsyReqHandle, err); - } - } - -TInt CPhoneDMmTsy::NotifyAuthenticateDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo) - { - if(!iNotifyAuthenticationDataChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChange called")); - RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo); - RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)(); - authInfoV8.iAID = DMMTSY_PHONE_GBA_AID; - authInfoV8.iData = DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyAuthenticateDataChangeCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetGbaBootstrapParams(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TAID* aAID,TDes8* aParams) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParams called")); - RMobilePhone::TBsfDataV8Pckg *bsfDataV8Pckg = STATIC_CAST(RMobilePhone::TBsfDataV8Pckg*,aParams); - RMobilePhone::TBsfDataV8 &bsfDataV8 = (*bsfDataV8Pckg)(); - if((bsfDataV8.iBtid != DMMTSY_PHONE_BSF_VALID_BTID) || - (bsfDataV8.iKeyLifetime != DMMTSY_PHONE_BSF_VALID_KEYLIFETIME) || - (*aAID != DMMTSY_PHONE_GBA_AID )) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - else - { - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::SetGbaBootstrapParamsCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParamsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAuthenticationParams(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo,TDes8* aParams) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParams called")); - RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo); - RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)(); - if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS && authInfoV8.iAID == DMMTSY_PHONE_GBA_AID) - { - RMobilePhone::TGbaBootstrapParamsV8Pckg *gbaBootstrapV8Pckg = STATIC_CAST(RMobilePhone::TGbaBootstrapParamsV8Pckg*,aParams); - RMobilePhone::TGbaBootstrapParamsV8 &gbaBootstrapV8 = (*gbaBootstrapV8Pckg)(); - gbaBootstrapV8.iRand = DMMTSY_PHONE_GBA_RAND_IN; - gbaBootstrapV8.iBtid = DMMTSY_PHONE_BSF_VALID_BTID; - gbaBootstrapV8.iKeyLifetime = DMMTSY_PHONE_BSF_VALID_KEYLIFETIME; - AddDelayedReq(aTsyReqHandle,this); - } - else if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_MBMS_MUK && authInfoV8.iAID == DMMTSY_PHONE_MBMS_AID) - { - RMobilePhone::TMbmsUserKeyV8Pckg *mbmsUserKeyV8Pckg = STATIC_CAST(RMobilePhone::TMbmsUserKeyV8Pckg*,aParams); - RMobilePhone::TMbmsUserKeyV8 &mbmsUserKeyV8 = (*mbmsUserKeyV8Pckg)(); - mbmsUserKeyV8.iMukIdi = DMMTSY_PHONE_MBMS_VALID_MUK_IDI; - mbmsUserKeyV8.iMukIdr = DMMTSY_PHONE_MBMS_VALID_MUK_IDR; - mbmsUserKeyV8.iTimeStampCounter = DMMTSY_PHONE_MBMS_VALID_MUK_ITIMESTM; - AddDelayedReq(aTsyReqHandle,this); - } - else - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAuthenticationParamsCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParamsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAuthenticationListPhase1(const TTsyReqHandle aTsyReqHandle,CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData* aRequest,TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationListPhase1 called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - - if (((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_NAF_LIST) || - ((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_MBMS_MSK)) - { - leaveCode = KErrNone; - } - else - { - leaveCode = KErrCorrupt; - } - - if (leaveCode == KErrNone) - { - if (aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_NAF_LIST) - { - TRAP(leaveCode, ret=ProcessGetGbaPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize);); - } - else if(aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_MBMS_MSK) - { - TRAP(leaveCode, ret=ProcessGetMbmsPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize);); - } - } - - if (leaveCode != KErrNone) - { - ReqCompleted(aTsyReqHandle,leaveCode); - } - return ret; - }; - -TInt CPhoneDMmTsy::ProcessGetGbaPhase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aId,TInt* aBufSize) - { - // read the list, store its content and then return size of this buffer to client - CMobilePhoneGbaNafIdList* list=CMobilePhoneGbaNafIdList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TGbaNafEntryV8 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_PHONE_GBA_NAFLIST_COUNT; index++) - { - switch (index) - { - case 0: - entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_ONE; - entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_ONE; - break; - case 1: - entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_TWO; - entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_TWO; - break; - case 2: - entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_THREE; - entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_THREE; - break; - case 3: - default: - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC - - iAuthReadAll->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufFlat’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - -TInt CPhoneDMmTsy::ProcessGetMbmsPhase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aId,TInt* aBufSize) - { - // read the list, store its content and then return size of this buffer to client - CMobilePhoneMbmsMskIdList* list=CMobilePhoneMbmsMskIdList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TMskEntryV8 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_PHONE_MBMS_LIST_COUNT; index++) - { - switch (index) - { - case 0: - entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_ONE; - entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_ONE; - entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_ONE; - break; - case 1: - entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_TWO; - entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_TWO; - entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_TWO; - break; - case 2: - entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_THREE; - entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_THREE; - entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_THREE; - break; - case 3: - default: - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC - - iAuthReadAll->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufFlat’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - -TInt CPhoneDMmTsy::GetAuthenticationListPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TDes8* aBuffer) - { - LOGTEXT(_L8("CPhoneDMmTsy::ReadAllPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the read attempt from this client - for (TInt i=0; iCount(); ++i) - { - read = iAuthReadAll->At(i); - if ((read->iClient.iSessionHandle==aId->iSessionHandle) && - (read->iClient.iSubSessionHandle==aId->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuffer->Copy(bufPtr); - delete read; - iAuthReadAll->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetAuthenticationListCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::ReadAllCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iAuthReadAll - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iAuthReadAll->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iAuthReadAll->Delete(i); - break; - } - } - - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -// -// Wlan -// -TInt CPhoneDMmTsy::NotifyWlanDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aData) - { - if(!iNotifyWlanDataChange++) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChange called")); - RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData); - RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)(); - WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS; - WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM; - WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID; - WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY; - WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER; - AddDelayedReq(aTsyReqHandle,this); - } - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyWlanDataChangeCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::SetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetWlanData called")); - RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData); - RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)(); - if((WlanDataV8.iFieldsUsed != DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS) || - (WlanDataV8.iPseudonym != DMMTSY_PHONE_WLAN_VALID_PSEUDONYM) || - (WlanDataV8.iReauthenticationId != DMMTSY_PHONE_WLAN_VALID_REAUTHID) || - (WlanDataV8.iMasterKey != DMMTSY_PHONE_WLAN_VALID_MASTERKEY) || - (WlanDataV8.iCounter != DMMTSY_PHONE_WLAN_VALID_COUNTER)) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - else - { - AddDelayedReq(aTsyReqHandle,this); - } - - return KErrNone; - } - -TInt CPhoneDMmTsy::SetWlanDataCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::SetWlanDataCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetWlanData called")); - RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData); - RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)(); - WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS; - WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM; - WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID; - WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY; - WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER; - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetWlanDataCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetWlanDataCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::StorePreferredWlanSIDList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) - { - LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDList called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessStorePreferredWlanSIDListL(aTsyReqHandle, aBuffer);); - if (leaveCode != KErrNone) - { - ReqCompleted(aTsyReqHandle,leaveCode); - } - return ret; - }; - -TInt CPhoneDMmTsy::ProcessStorePreferredWlanSIDListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) - { - CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL(); - CleanupStack::PushL(list); - - list->RestoreL(*aBuffer); - - RMobilePhone::TWlanSIDV8 entry; - - if (list->Enumerate() != DMMTSY_PHONE_WLAN_SIDLIST_COUNT) - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - CleanupStack::PopAndDestroy(); // list - return KErrNone; - } - - TInt error=KErrNone; - TInt ret; - for (TInt i=0; iGetEntryL(i)); - if (ret != KErrNone) - break; - switch(i) - { - case 0: - { - if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_ONE || - entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_ONE) - { - error = KErrCorrupt; - } - } - break; - case 1: - { - if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_TWO || - entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_TWO) - { - error = KErrCorrupt; - } - } - break; - case 2: - default: - { - if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_THREE || - entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_THREE) - { - error = KErrCorrupt; - } - } - break; - } - } - if(error==KErrNone) - { - AddDelayedReq(aTsyReqHandle,this); - } - else - { - ReqCompleted(aTsyReqHandle,KErrCorrupt); - } - CleanupStack::PopAndDestroy(); - return KErrNone; - } - -TInt CPhoneDMmTsy::StorePreferredWlanSIDListCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDListCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChange(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChange called")); - AddDelayedReq(aTsyReqHandle,this); - return KErrNone; - } - -TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel(TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel called")); - RemoveDelayedReq(aTsyReqHandle); - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsPhase1 called")); - TInt ret=KErrNone; - TInt leaveCode=KErrNone; - TRAP(leaveCode, ret=ProcessGetPreferredWlanSIDsPhase1L(aTsyReqHandle, aClient, aBufSize);); - if (leaveCode != KErrNone) - { - ReqCompleted(aTsyReqHandle,leaveCode); - } - return ret; - } - -TInt CPhoneDMmTsy::ProcessGetPreferredWlanSIDsPhase1L(const TTsyReqHandle aTsyReqHandle, - RMobilePhone::TClientId* aClient, - TInt* aBufSize) - { - // retrieve stored Wlan specific IDs from USIM, - // store each entry. - // stream the list and then return size of this buffer to client - CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL(); - CleanupStack::PushL(list); - - RMobilePhone::TWlanSIDV8 entry; - - // fill up an example list - for (TInt index=0; index < DMMTSY_PHONE_WLAN_SIDLIST_COUNT; index++) - { - switch (index) - { - case 0: - entry.iWSID = DMMTSY_PHONE_WLAN_WSID_ONE; - entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_ONE; - break; - - case 1: - entry.iWSID = DMMTSY_PHONE_WLAN_WSID_TWO; - entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_TWO; - break; - - case 2: - default: - entry.iWSID = DMMTSY_PHONE_WLAN_WSID_THREE; - entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_THREE; - break; - } - // Add the entry into the list, at the next empty location - list->AddEntryL(entry); - } - // Store the streamed list and the client ID - CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); - CleanupStack::PushL(read); - - read->iListBuf = list->StoreLC(); - CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC - - iGetWlanSIDsData->AppendL(read); - CleanupStack::Pop(); // pop the CListReadAllAttempt - - // return the CBufBase’s size to client - *aBufSize=(read->iListBuf)->Size(); - - // Complete first phase of list retrieval - AddDelayedReq(aTsyReqHandle,this); - CleanupStack::PopAndDestroy(); // pop&destroy list - return KErrNone; - } - -TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called")); - CListReadAllAttempt* read=NULL; - // Find the get preferred wlan SIDs from this client - for (TInt i=0; iCount(); ++i) - { - read = iGetWlanSIDsData->At(i); - if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && - (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) - { - TPtr8 bufPtr((read->iListBuf)->Ptr(0)); - // Copy the streamed list to the client - aBuf->Copy(bufPtr); - delete read; - iGetWlanSIDsData->Delete(i); - ReqCompleted(aTsyReqHandle,KErrNone); - return KErrNone; - } - } - // Should handle error case of not finding the matching client from read all phase 1 - return KErrNotFound; - } - -TInt CPhoneDMmTsy::GetPreferredWlanSIDsCancel(const TTsyReqHandle aTsyReqHandle) - { - LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsCancel called")); - RemoveDelayedReq(aTsyReqHandle); - // Remove the read all attempt from iGetWlanSIDsData - CListReadAllAttempt* read=NULL; - for (TInt i=0; iCount(); ++i) - { - read = iGetWlanSIDsData->At(i); - if (read->iReqHandle == aTsyReqHandle) - { - delete read; - iGetWlanSIDsData->Delete(i); - break; - } - } - ReqCompleted(aTsyReqHandle,KErrCancel); - return KErrNone; - } - -/*******************************************************************/ -// -// CDelayedCompleter -// -/*******************************************************************/ - - - -CDelayedCompleter::CDelayedCompleter(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject, - CTelObject *aTelObject) : - CTimer(EPriorityStandard),iTsyReqHandle(aTsyReqHandle), iPhoneObject(aPhoneObject), - iTelObject(aTelObject) - { - - } - -CDelayedCompleter* CDelayedCompleter::NewL(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject, - CTelObject *aTelObject) - { - CDelayedCompleter* This = new (ELeave) CDelayedCompleter(aTsyReqHandle,aPhoneObject,aTelObject); - CleanupStack::PushL(This); - This->ConstructL(); - CleanupStack::Pop(); - return This; - } - -void CDelayedCompleter::ConstructL() - { - CTimer::ConstructL(); - CActiveScheduler::Add(this); - } - -void CDelayedCompleter::RunL() - { - iTelObject->ReqCompleted(iTsyReqHandle,KErrNone); - (void) iPhoneObject->RemoveDelayedReq(iTsyReqHandle); // we get deleted here - } +// Copyright (c) 1997-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: +// + +/** + @file +*/ + + +#include "mmtsy.h" +#include "testdef.h" +#include "ETELMM.H" +#include +#include "Dmmlog.h" +#include + +// +// CPhoneDMmTsy +// +CPhoneDMmTsy* CPhoneDMmTsy::NewL(CPhoneFactoryDummyBase* aFac) + { + CPhoneDMmTsy* phone=new(ELeave) CPhoneDMmTsy(aFac); + CleanupStack::PushL(phone); + phone->ConstructL(); + CleanupStack::Pop(); + return phone; + } + +CPhoneDMmTsy::CPhoneDMmTsy(CPhoneFactoryDummyBase* aFac) +: CPhoneDummyBase(aFac), + iActiveRequestObjects(_FOFF(CPhoneDMmTsy::CActiveListNode,iNext)) + {} + +void CPhoneDMmTsy::ConstructL() + { + iPhoneTestCount=1; + CPhoneDummyBase::ConstructL(); + iGetDetectedNetworks = new CArrayPtrFlat(1); + iGetCFStatus = new CArrayPtrFlat(1); + iGetCB = new CArrayPtrFlat(1); + iGetCWStatus = new CArrayPtrFlat(1); + iGetCcbsRequests = new CArrayPtrFlat(1); + iGetPreferredNetworks = new CArrayPtrFlat(1); + iGetAuthorizationData = new CArrayPtrFlat(1); + iGetWlanSIDsData = new CArrayPtrFlat(1); + iAuthReadAll = new CArrayPtrFlat(1); + + iAuthInfo=RMobilePhone::CImsAuthorizationInfoV5::NewL(); + LOGTEXT(_L8("CPhoneDMmTsy created")); + } + +CPhoneDMmTsy::~CPhoneDMmTsy() + { + if (iGetDetectedNetworks) + iGetDetectedNetworks->ResetAndDestroy(); + if (iGetCFStatus) + iGetCFStatus->ResetAndDestroy(); + if (iGetCB) + iGetCB->ResetAndDestroy(); + if (iGetCWStatus) + iGetCWStatus->ResetAndDestroy(); + if (iGetCcbsRequests) + iGetCcbsRequests->ResetAndDestroy(); + if(iGetPreferredNetworks) + iGetPreferredNetworks->ResetAndDestroy(); + + if(iGetAuthorizationData) + iGetAuthorizationData->ResetAndDestroy(); + + if(iGetWlanSIDsData) + iGetWlanSIDsData->ResetAndDestroy(); + + if(iAuthReadAll) + iAuthReadAll->ResetAndDestroy(); + + delete iGetDetectedNetworks; + delete iGetCFStatus; + delete iGetCB; + delete iGetCWStatus; + delete iGetCcbsRequests; + delete iGetPreferredNetworks; + delete iGetAuthorizationData; + delete iAuthInfo; + delete iGetWlanSIDsData; + delete iAuthReadAll; + + LOGTEXT(_L8("CPhoneDMmTsy destroyed")); + } + +void CPhoneDMmTsy::Init() + { + // server calls this function once it has created the sub-session + // it gives the TSY chance to do any initialisation it may need to do for + // this sub-session + } + +CTelObject* CPhoneDMmTsy::OpenNewObjectByNameL(const TDesC& aName) + { + // Server calls this function when a client is opening an object from the phone + // for the first time. + // Multiple clients opening handles to the same sub-session object will be dealt with + // by the server - i.e. by reference counting + + if((aName.Compare(DMMTSY_LINE_VOICE_NAME)==KErrNone) || + (aName.Compare(DMMTSY_LINE_VOICE2_NAME)==KErrNone) || + (aName.Compare(DMMTSY_LINE_DATA_NAME)==KErrNone) || + (aName.Compare(DMMTSY_LINE_FAX_NAME)==KErrNone)) + + return REINTERPRET_CAST(CTelObject*,CLineDMmTsy::NewL(this,FacPtr())); + + if (aName.Compare(KETelSmsMessaging)==KErrNone) + return REINTERPRET_CAST(CTelObject*,CSmsMessagingDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelBroadcastMessaging)==KErrNone) + return REINTERPRET_CAST(CTelObject*,CBroadcastMessagingDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelUssdMessaging)==KErrNone) + return REINTERPRET_CAST(CTelObject*,CUssdMessagingDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelNamStore)==KErrNone) + return REINTERPRET_CAST(CTelObject*, CNamStoreDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelOwnNumberStore)==KErrNone) + return REINTERPRET_CAST(CTelObject*, CONStoreDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelEmergencyNumberStore)==KErrNone) + return REINTERPRET_CAST(CTelObject*, CENStoreDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelIccVoiceMailBox)==KErrNone) + return REINTERPRET_CAST(CTelObject*, CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelConferenceCall) == 0) + return REINTERPRET_CAST(CTelObject*, CMobileConferenceCallDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Compare(KETelLocationServices) == 0) + return REINTERPRET_CAST(CTelObject*, CMobileLocationServicesDMmTsy::NewL(this,FacPtr(),aName)); + + if (aName.Left(SCEAP_SSN_LENGTH).Compare(KETelSmartCardEapSession) == 0) + { + TInt len; + + // Extracting AID + RMobilePhone::TAID tempAID; + len = CharToSeptNumL(aName[SCEAP_SSN_LENGTH]) * 2; + TPtrC ptrAid = aName.Mid(SCEAP_SSN_LENGTH + 1, len); + ConvertTextToBinary(ptrAid, tempAID); + + // Extracting EapType + RMobileSmartCardEap::TEapType eapType; + TInt posTypeLength = SCEAP_SSN_LENGTH + len + 1; + len = CharToSeptNumL(aName[posTypeLength]); + TPtrC ptrEapT = aName.Mid(posTypeLength + 1, len); + eapType.Copy(ptrEapT); + + CSmartCardEapDMmTsy* eapSubSessObj = NULL; + TRAPD(err, eapSubSessObj = CSmartCardEapDMmTsy::NewL(this, tempAID, eapType, FacPtr())); + + if (err != KErrNone || eapSubSessObj == NULL) + { + User::Leave((err == KErrNone ? KErrGeneral : err)); + } + + return eapSubSessObj; + } // End of opening Smart Card EAP sub-session + + TInt tLength; + TPtrC remain(aName); + + if ((tLength=remain.Find(PHBOOK_DELIMITER))!=KErrNotFound) + { + if(aName.Left(tLength) == KETelIccVoiceMailBox + && aName.Right(aName.Length()-tLength-2) == KEtelUSimPhoneBookType) + return REINTERPRET_CAST(CTelObject*, + CMobilePhoneBookStoreDMmTsy::NewL(this,FacPtr(),aName.Left(tLength), + aName.Right(aName.Length()-tLength-2))); + } + + return NULL; + } + +/** +Returns the numerical value that corresponds to the numeric character +of its parameter (in base 17). + +@param aDigit A char between '0' to '9' or between 'A' to 'G' +*/ +TInt CPhoneDMmTsy::CharToSeptNumL(const TChar& aChar) const + { + TInt ret = 0; + + if((aChar >= '0') && (aChar <= '9')) + { + ret = TUint(aChar) - '0'; + } + else if((aChar >= 'A') && (aChar <= 'G')) + { + ret = TUint(aChar) - 'A' + 10; + } + else + { + User::Leave(KErrArgument); + } + + return ret; + } + +/** +Converts a buffer containing string of the hexadecimal characters, +representing the binary data, into this binary data! + +@param aSrc The buffer containing text representation. +@param aDst Binary data will be written to this buffer. +*/ +void CPhoneDMmTsy::ConvertTextToBinary(const TDesC& aSrc, TDes8& aDst) + { + aDst.SetLength(aSrc.Length() / 2); + + for (TInt i = 0; i < aSrc.Length(); i += 2) + { + TInt val = 0; + if ((aSrc[i] >= '0') && (aSrc[i] <= '9')) + { + val = ((aSrc[i] - '0') << 4); + } + else if ((aSrc[i] >= 'A') && (aSrc[i] <= 'F')) + { + val = ((aSrc[i] - 'A' + 10) << 4); + } + + if ((aSrc[i+1] >= '0') && (aSrc[i+1] <= '9')) + { + val += (aSrc[i+1] - '0'); + } + else if ((aSrc[i+1] >= 'A') && (aSrc[i+1] <= 'F')) + { + val += (aSrc[i+1] - 'A' + 10); + } + + aDst[i/2] = (TUint8) val; + } + } + +CTelObject* CPhoneDMmTsy::OpenNewObjectL(TDes& /*aNewName*/) + { + // all objects opened from the phone are opened by name, hence this method + // is not supported + User::Leave(KErrNotSupported); + return NULL; + } + + +CTelObject::TReqMode CPhoneDMmTsy::ReqModeL(const TInt aIpc) + { + // ReqModeL is called from the server's CTelObject::ReqAnalyserL + // in order to check the type of request it has. + + // The following are example request types for this dummy TSY + // All TSYs do not have to have these request types but they have been given + // "sensible" values in this test code + + CTelObject::TReqMode ret=0; + switch (aIpc) + { + // Asynchronous Notification Requests + case EMobilePhoneNotifyDTMFCapsChange: + case EMobilePhoneNotifyStopInDTMFString: + case EMobilePhoneNotifyModeChange: + case EMobilePhoneNotifyNetworkRegistrationStatusChange: + case EMobilePhoneNotifyCurrentNetworkChange: + case EMobilePhoneNotifyCellInfoChange: + case EMobilePhoneNotifyIccAccessCapsChange: + case EMobilePhoneNotifyBatteryInfoChange: + case EMobilePhoneNotifySignalStrengthChange: + case EMobilePhoneNotifyIndicatorChange: + case EMobilePhoneNotifyCallServiceCapsChange: + case EMobilePhoneNotifyCallForwardingStatusChange: + case EMobilePhoneNotifyCallForwardingActive: + case EMobilePhoneNotifyNetworkSelectionSettingChange: + case EMobilePhoneNotifyNITZInfoChange: + case EMobilePhoneNotifyCallBarringStatusChange: + case EMobilePhoneNotifyCallWaitingStatusChange: + case EMobilePhoneNotifyCCBSStatusChange: + case EMobilePhoneNotifyCCBSRecall: + case EMobilePhoneNotifyAlternatingCallCapsChange: + case EMobilePhoneNotifyAlternatingCallModeChange: + case EMobilePhoneNotifyALSLineChange: + case EMobilePhoneNotifyCostCapsChange: + case EMobilePhoneNotifyCostInfoChange: + case EMobilePhoneNotifySecurityCapsChange: + case EMobilePhoneNotifyLockInfoChange: + case EMobilePhoneNotifySecurityCodeInfoChange: + case EMobilePhoneNotifySecurityEvent: + case EMobilePhoneNotifyMessageWaiting: + case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: + case EMobilePhoneNotifyFdnStatusChange: + case EMobilePhoneNotifyMulticallParamsChange: + case EMobilePhoneNotifyIncomingCallTypeChange: + case EMobilePhoneNotifyUUSSettingChange: + case EMobilePhoneNotifyDefaultPrivacyChange: + case EMobilePhoneNotifyMultimediaCallPreferenceChange: + case EMobilePhoneNotifyNetworkSecurityLevelChange: + case EMobilePhoneNotifyUSimAppsSelectionModeChange: + case EMobilePhoneNotifyUSimApplicationsInfoChange: + case EMobilePhoneNotifyMailboxNumbersChange: + case EMobilePhoneNotifyMmsUpdate: + case EMobilePhoneNotifyMmsConfig: + case EMobilePhoneNotifyNetworkInvScanChange: + case EMobilePhoneNotifyNetworkInvScanEvent: + case EMobilePhoneNotifyAirTimeDurationChange: + case EMobilePhoneNotifySendNetworkServiceRequest: + case EMobilePhoneNotifyAllSendNetworkServiceRequest: + case EMobilePhoneNotifyDTMFEvent: + case EMobilePhoneNotifyStorePreferredNetworksListChange: + case EMobilePhoneNotifyCipheringIndicatorStatus: + case EMobilePhoneNotifyIdentityServiceStatus: + case EMobilePhoneNotifyIdentitySuppressionRejected: + case EMobilePhoneNotifyMulticallIndicatorChange: + case EMobilePhoneNotifySmartCardApplicationInfoChange: + case EMobilePhoneNotifyCurrentNetworkNoLocationChange: + case EMobilePhoneNotifyImsAuthorizationInfoChanged: + case EMobilePhoneNotifyAPNListChanged: + case EMobilePhoneNotifyAuthenticateDataChange: + case EMobilePhoneNotifyWlanDataChange: + case EMobilePhoneNotifyPreferredWlanSIDListChange: + + + case EMobilePhoneNotifyAPNControlListServiceStatusChange: + ret=KReqModeMultipleCompletionEnabled | KReqModeRePostImmediately; + break; + + // Non flow-controlled requests + case EMobilePhoneGetDTMFCaps: + case EMobilePhoneStopDTMFTone: + case EMobilePhoneGetNetworkCaps: + case EMobilePhoneGetCurrentMode: + case EMobilePhoneGetNetworkRegistrationStatus: + case EMobilePhoneGetHomeNetwork: + case EMobilePhoneGetCurrentNetwork: + case EMobilePhoneGetCellInfo: + case EMobilePhoneGetDetectedNetworksPhase1: + case EMobilePhoneGetDetectedNetworksPhase2: + case EMobilePhoneGetDetectedNetworksV2Phase1: + case EMobilePhoneGetDetectedNetworksV2Phase2: + case EMobilePhoneGetDetectedNetworksV5Phase1: + case EMobilePhoneGetDetectedNetworksV5Phase2: + case EMobilePhoneGetDetectedNetworksV8Phase1: + case EMobilePhoneGetDetectedNetworksV8Phase2: + case EMobilePhoneGetMultimodeCaps: + case EMobilePhoneGetPhoneStoreInfo: + case EMobilePhoneGetIccAccessCaps: + case EMobilePhoneGetIccIdentity: + case EMobilePhoneGetCustomerServiceProfile: + case EMobilePhoneGetServiceTable: + case EMobilePhoneGetBatteryCaps: + case EMobilePhoneGetBatteryInfo: + case EMobilePhoneGetSignalCaps: + case EMobilePhoneGetSignalStrength: + case EMobilePhoneGetIndicatorCaps: + case EMobilePhoneGetIndicator: + case EMobilePhoneGetIdentityCaps: + case EMobilePhoneGetPhoneId: + case EMobilePhoneGetSubscriberId: + case EMobilePhoneGetCallServiceCaps: + case EMobilePhoneGetCallForwardingStatusPhase1: + case EMobilePhoneGetCallForwardingStatusPhase2: + case EMobilePhoneGetFeatureCode: + case EMobilePhoneGetNetworkSelectionSetting: + case EMobilePhoneSetNetworkSelectionSetting: + case EMobilePhoneSelectNetwork: + case EMobilePhoneGetNITZInfo: + case EMobilePhoneGetServiceProviderName: + case EMobilePhoneGetIdentityServiceStatus: + case EMobilePhoneGetBarringStatusPhase1: + case EMobilePhoneGetBarringStatusPhase2: + case EMobilePhoneSetCallBarringStatus: + case EMobilePhoneSetCallBarringPassword: + case EMobilePhoneGetWaitingStatusPhase1: + case EMobilePhoneGetWaitingStatusPhase2: + case EMobilePhoneSetCallWaitingStatus: + case EMobilePhoneGetCCBSStatus: + case EMobilePhoneDeactivateCCBS: + case EMobilePhoneAcceptCCBSRecall: + case EMobilePhoneRefuseCCBSRecall: + case EMobilePhoneGetCompletionRequestsPhase1: + case EMobilePhoneGetCompletionRequestsPhase2: + case EMobilePhoneGetAlternatingCallCaps: + case EMobilePhoneGetAlternatingCallMode: + case EMobilePhoneSetAlternatingCallMode: + case EMobilePhoneGetALSLine: + case EMobilePhoneSetALSLine: + case EMobilePhoneGetCostCaps: + case EMobilePhoneClearCostMeter: + case EMobilePhoneSetMaxCostMeter: + case EMobilePhoneSetPuct: + case EMobilePhoneGetCostInfo: + case EMobilePhoneGetSecurityCaps: + case EMobilePhoneGetLockInfo: + case EMobilePhoneSetLockSetting: + case EMobilePhoneGetSecurityCodeInfo: + case EMobilePhoneChangeSecurityCode: + case EMobilePhoneVerifySecurityCode: + case EMobilePhoneAbortSecurityCode: + case EMobilePhoneGetFdnStatus: + case EMobilePhoneSetFdnSetting: + case EMobilePhoneGetMulticallParams: + case EMobilePhoneSetMulticallParams: + case EMobilePhoneGetIncomingCallType: + case EMobilePhoneSetIncomingCallType: + case EMobilePhoneGetUUSSetting: + case EMobilePhoneSetUUSSetting: + case EMobilePhoneGetDefaultPrivacy: + case EMobilePhoneSetDefaultPrivacy: + case EMobilePhoneGetIccMessageWaitingIndicators: + case EMobilePhoneSetIccMessageWaitingIndicators: + case EMobilePhoneGetMultimediaCallPreference: + case EMobilePhoneSetMultimediaCallPreference: + case EMobilePhoneGetNetworkSecurityLevel: + case EMobilePhoneEnumerateUSimApplications: + case EMobilePhoneGetUSimAppsSelectionMode: + case EMobilePhoneSetUSimAppsSelectionMode: + case EMobilePhoneSetUSimApplicationStatus: + case EMobilePhoneGetUSimApplicationsInfo: + case EMobilePhoneSetSSPassword: + case EMobilePhoneGetMailboxNumbers: + case EMobilePhoneSetMmsUserConnParams: + case EMobilePhoneSetMmsUserPreferences: + case EMobilePhoneGetMmsConfig: + case EMobilePhoneGetHomeNetworkSearchPeriod: + case EMobilePhoneGetLastUsedAccessTechnology: + case EMobilePhoneGetNetworkInvScanSetting: + case EMobilePhoneGetCallForwardingIndicator: + case EMobilePhoneGetCompMethodName: + case EMobilePhoneEnumerateAPNEntries: + case EMobilePhoneGetAPNname: + case EMobilePhoneAppendAPNName: + case EMobilePhoneDeleteAPNName: + case EMobilePhoneSetAPNControlListServiceStatus: + case EMobilePhoneGetAPNControlListServiceStatus: + case EMobilePhoneGetAirTimeDuration: + case EMobilePhoneClearBlacklist: + case EMobilePhoneGetPersonalisationCaps: + case EMobilePhoneGetPersonalisationStatus: + case EMobilePhoneSetPersonalisationStatus: + case EMobilePhoneGetNetworkName: + case EMobilePhoneGetPreferredNetworksPhase1: + case EMobilePhoneGetPreferredNetworksPhase2: + case EMobilePhoneStorePreferredNetworksList: + case EMobilePhoneGetCipheringIndicatorStatus: + case EMobilePhoneSetIdentityServiceStatus: + case EMobilePhoneEnumerateSmartCardApplications: + case EMobilePhoneGetSmartCardApplicationInfo: + case EMobilePhoneSetSmartCardApplicationStatus: + case EMobilePhoneGetScFileInfo: + case EMobilePhoneReadScFile: + case EMobilePhoneUpdateScFile: + case EMobilePhoneGetCurrentActiveUSimApplication: + case EMobilePhoneGetCurrentNetworkNoLocation: + case EMobilePhoneAuthorizationInfoPhase1: + case EMobilePhoneAuthorizationInfoPhase2: + case EMobilePhoneIMSAuthenticate: + case EMobilePhoneSmartCardAuthenticate: + case EETelPhoneSetEmergencyClient: + case EMobilePhoneGetAuthenticationParams: + case EMobilePhoneSetGbaBootstrapParams: + case EMobilePhoneAuthenticationListPhase1: + case EMobilePhoneAuthenticationListPhase2: + case EMobilePhoneGetWlanData: + case EMobilePhoneSetWlanData: + case EMobilePhoneGetPreferredWlanSIDsPhase1: + case EMobilePhoneGetPreferredWlanSIDsPhase2: + case EMobilePhoneStorePreferredWlanSIDList: + break; + + // Flow controlled requests + case EMobilePhoneSendNetworkServiceRequest: + case EMobilePhoneSendDTMFTones: + case EMobilePhoneReadDTMFTones: + case EMobilePhoneStartDTMFTone: + case EMobilePhoneContinueDTMFStringSending: + case EMobilePhoneSetCallForwardingStatus: + case EMobilePhoneProgramFeatureCode: + case EMobilePhoneTerminateAllCalls: + case EMobilePhoneTerminateActiveCalls: + ret=KReqModeFlowControlObeyed; + break; + default: + ret=CPhoneBase::ReqModeL(aIpc); + break; + } + return ret; + } + +TInt CPhoneDMmTsy::RegisterNotification(const TInt aIpc) + { + // RegisterNotification is called when the server recognises that this notification + // is being posted for the first time on this sub-session object. + + // It enables the TSY to "turn on" any regular notification messages that it may + // receive from the phone + + switch (aIpc) + { + case EMobilePhoneNotifyDTMFCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Caps Change ")); + return KErrNone; + case EMobilePhoneNotifyStopInDTMFString: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - DTMF Stop In DTMF String ")); + return KErrNone; + case EMobilePhoneNotifyModeChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Mode Change ")); + return KErrNone; + case EMobilePhoneNotifyNetworkRegistrationStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Registration Status Change ")); + return KErrNone; + case EMobilePhoneNotifyCurrentNetworkChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network Change ")); + return KErrNone; + case EMobilePhoneNotifyCurrentNetworkNoLocationChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Current network ISV Change No Location")); + return KErrNone; + case EMobilePhoneNotifyCellInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Cell information Change ")); + return KErrNone; + case EMobilePhoneNotifyIccAccessCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - SIM Access Caps Change ")); + return KErrNone; + case EMobilePhoneNotifyBatteryInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Battery Info Change ")); + return KErrNone; + case EMobilePhoneNotifySignalStrengthChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Signal Strength Change ")); + return KErrNone; + case EMobilePhoneNotifyIndicatorChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Indicator Change ")); + return KErrNone; + case EMobilePhoneNotifyCallServiceCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Service Caps Change ")); + return KErrNone; + case EMobilePhoneNotifyCallForwardingStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Status Change ")); + return KErrNone; + case EMobilePhoneNotifyCallForwardingActive: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Call Forwarding Active")); + return KErrNone; + case EMobilePhoneNotifyNetworkSelectionSettingChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Selection Setting Change ")); + return KErrNone; + case EMobilePhoneNotifyNITZInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Time Info Change ")); + return KErrNone; + case EMobilePhoneNotifyCallBarringStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Barring Status Change")); + return KErrNone; + case EMobilePhoneNotifyCallWaitingStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Call Waiting Status Change")); + return KErrNone; + case EMobilePhoneNotifyCCBSStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Status Change")); + return KErrNone; + case EMobilePhoneNotifyCCBSRecall: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify CCBS Recall")); + return KErrNone; + case EMobilePhoneNotifyAlternatingCallCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Call Caps Change")); + return KErrNone; + case EMobilePhoneNotifyAlternatingCallModeChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Alternating Mode Caps Change")); + return KErrNone; + case EMobilePhoneNotifyALSLineChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify ALSLine Change")); + return KErrNone; + case EMobilePhoneNotifyCostCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Caps Change")); + return KErrNone; + case EMobilePhoneNotifyCostInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Cost Info Change")); + return KErrNone; + case EMobilePhoneNotifySecurityCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Caps Change")); + return KErrNone; + case EMobilePhoneNotifyLockInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Lock Info Change")); + return KErrNone; + case EMobilePhoneNotifySecurityCodeInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Security Code Info Change")); + return KErrNone; + case EMobilePhoneNotifySecurityEvent: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify On Security Event")); + return KErrNone; + case EMobilePhoneNotifyMessageWaiting: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Message Waiting")); + return KErrNone; + case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Icc Message Waiting Indicators Change")); + return KErrNone; + case EMobilePhoneNotifyFdnStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Fdn Status Change")); + return KErrNone; + case EMobilePhoneNotifyMulticallParamsChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Params Change")); + return KErrNone; + case EMobilePhoneNotifyIncomingCallTypeChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Incoming Call Type Change")); + return KErrNone; + case EMobilePhoneNotifyUUSSettingChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify UUS Setting Change")); + return KErrNone; + case EMobilePhoneNotifyDefaultPrivacyChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Privacy Setting Change")); + return KErrNone; + case EMobilePhoneNotifyMultimediaCallPreferenceChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multimedia Call Setting Change")); + return KErrNone; + case EMobilePhoneNotifyNetworkSecurityLevelChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Security Level Change")); + return KErrNone; + case EMobilePhoneNotifyUSimAppsSelectionModeChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Selection Mode Change")); + return KErrNone; + case EMobilePhoneNotifyUSimApplicationsInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify USim Applications Info Change")); + return KErrNone; + case EMobilePhoneNotifyMailboxNumbersChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile Mailbox Numbers functionality")); + return KErrNone; + case EMobilePhoneNotifyMmsUpdate: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS Update functionality")); + return KErrNone; + case EMobilePhoneNotifyMmsConfig: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Mobile MMS Config functionality")); + return KErrNone; + case EMobilePhoneNotifyNetworkInvScanChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Change functionality")); + return KErrNone; + case EMobilePhoneNotifyNetworkInvScanEvent: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Network Investigation Scan Event functionality")); + return KErrNone; + case EMobilePhoneNotifyAirTimeDurationChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Air Time Duration Change")); + return KErrNone; + case EMobilePhoneNotifySendNetworkServiceRequest: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Send Network Service Request")); + return KErrNone; + case EMobilePhoneNotifyAllSendNetworkServiceRequest: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify All Send Network Service Request")); + return KErrNone; + case EMobilePhoneNotifyDTMFEvent: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify DTMF Event")); + return KErrNone; + case EMobilePhoneNotifyStorePreferredNetworksListChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Stored Networks List Change")); + return KErrNone; + case EMobilePhoneNotifyCipheringIndicatorStatus: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ciphering Indicator Status Change")); + return KErrNone; + case EMobilePhoneNotifyIdentityServiceStatus: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Service Status Change")); + return KErrNone; + case EMobilePhoneNotifyIdentitySuppressionRejected: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Identity Suppression Rejected")); + return KErrNone; + case EMobilePhoneNotifyMulticallIndicatorChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Multicall Indicator Change")); + return KErrNone; + case EMobilePhoneNotifyImsAuthorizationInfoChanged: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Ims Authorization Info Changed")); + return KErrNone; + case EMobilePhoneNotifySmartCardApplicationInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Smart Card Application Info Change")); + return KErrNone; + case EMobilePhoneNotifyAPNListChanged: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Change")); + return KErrNone; + case EMobilePhoneNotifyAPNControlListServiceStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify APN Control List Service Status Change")); + return KErrNone; + case EMobilePhoneNotifyAuthenticateDataChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Authentication Data Change")); + return KErrNone; + case EMobilePhoneNotifyWlanDataChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan Data Change")); + return KErrNone; + case EMobilePhoneNotifyPreferredWlanSIDListChange: + LOGTEXT(_L8("CPhoneDMmTsy: RegisterNotification - Notify Wlan SIDs List Change")); + return KErrNone; + + default: + // Unknown or invalid SMS IPC + return KErrNotSupported; + } + } + +TInt CPhoneDMmTsy::DeregisterNotification(const TInt aIpc) + { + // DeregisterNotification is called when the server recognises that this notification + // will not be posted again because the last client to have a handle on this sub-session + // object has just closed the handle. + + // It enables the TSY to "turn off" any regular notification messages that it may + // receive from the phone. + + switch (aIpc) + { + case EMobilePhoneNotifyDTMFCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Caps Change ")); + return KErrNone; + case EMobilePhoneNotifyStopInDTMFString: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - DTMF Stop In DTMF String ")); + return KErrNone; + case EMobilePhoneNotifyModeChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Mode Change ")); + return KErrNone; + case EMobilePhoneNotifyNetworkRegistrationStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Registration Status Change ")); + return KErrNone; + case EMobilePhoneNotifyCurrentNetworkChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change ")); + return KErrNone; + case EMobilePhoneNotifyCurrentNetworkNoLocationChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Current network Change No Location")); + return KErrNone; + case EMobilePhoneNotifyCellInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Cell information Change ")); + return KErrNone; + case EMobilePhoneNotifyIccAccessCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - SIM Access Caps Change ")); + return KErrNone; + case EMobilePhoneNotifyBatteryInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Battery Info Change ")); + return KErrNone; + case EMobilePhoneNotifySignalStrengthChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Signal Strength Change ")); + return KErrNone; + case EMobilePhoneNotifyIndicatorChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Indicator Change ")); + return KErrNone; + case EMobilePhoneNotifyCallServiceCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Service Caps Change ")); + return KErrNone; + case EMobilePhoneNotifyCallForwardingStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Status Change ")); + return KErrNone; + case EMobilePhoneNotifyCallForwardingActive: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Call Forwarding Active")); + return KErrNone; + case EMobilePhoneNotifyNetworkSelectionSettingChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Selection Setting Change ")); + return KErrNone; + case EMobilePhoneNotifyNITZInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Time Info Change ")); + return KErrNone; + case EMobilePhoneNotifyCallBarringStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Barring Status Change")); + return KErrNone; + case EMobilePhoneNotifyCallWaitingStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Call Waiting Status Change")); + return KErrNone; + case EMobilePhoneNotifyCCBSStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Status Change")); + return KErrNone; + case EMobilePhoneNotifyCCBSRecall: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify CCBS Recall")); + return KErrNone; + case EMobilePhoneNotifyAlternatingCallCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Call Caps Change")); + return KErrNone; + case EMobilePhoneNotifyAlternatingCallModeChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Alternating Mode Caps Change")); + return KErrNone; + case EMobilePhoneNotifyALSLineChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify ALSLine Change")); + return KErrNone; + case EMobilePhoneNotifyCostCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Caps Change")); + return KErrNone; + case EMobilePhoneNotifyCostInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Cost Info Change")); + return KErrNone; + case EMobilePhoneNotifySecurityCapsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Caps Change")); + return KErrNone; + case EMobilePhoneNotifyLockInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Lock Info Change")); + return KErrNone; + case EMobilePhoneNotifySecurityCodeInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Security Code Info Change")); + return KErrNone; + case EMobilePhoneNotifySecurityEvent: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify On Security Event")); + return KErrNone; + case EMobilePhoneNotifyMessageWaiting: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Message Waiting")); + return KErrNone; + case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Icc Message Waiting Indicators Change")); + return KErrNone; + case EMobilePhoneNotifyFdnStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Fdn Status Change")); + return KErrNone; + case EMobilePhoneNotifyMulticallParamsChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multicall Params Change")); + return KErrNone; + case EMobilePhoneNotifyIncomingCallTypeChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Incoming Call Type Change")); + return KErrNone; + case EMobilePhoneNotifyUUSSettingChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify UUS Setting Change")); + return KErrNone; + case EMobilePhoneNotifyDefaultPrivacyChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Privacy Setting Change")); + return KErrNone; + case EMobilePhoneNotifyMultimediaCallPreferenceChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Multimedia Call Setting Change")); + return KErrNone; + case EMobilePhoneNotifyNetworkSecurityLevelChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Security Level Change")); + return KErrNone; + case EMobilePhoneNotifyUSimAppsSelectionModeChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Selection Mode Change")); + return KErrNone; + case EMobilePhoneNotifyUSimApplicationsInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify USim Applications Info Change")); + return KErrNone; + case EMobilePhoneNotifyMailboxNumbersChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Mobile Mailbox Numbers functionality")); + return KErrNone; + case EMobilePhoneNotifyMmsUpdate: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Mobile MMS Update functionality")); + return KErrNone; + case EMobilePhoneNotifyMmsConfig: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Mobile MMS Config functionality")); + return KErrNone; + case EMobilePhoneNotifyNetworkInvScanChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Change functionality")); + return KErrNone; + case EMobilePhoneNotifyNetworkInvScanEvent: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Network Investigation Scan Event functionality")); + return KErrNone; + case EMobilePhoneNotifyAirTimeDurationChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Air Time Duration Change")); + return KErrNone; + case EMobilePhoneNotifySendNetworkServiceRequest: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Send Network Service Request")); + return KErrNone; + case EMobilePhoneNotifyAllSendNetworkServiceRequest: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify All Send Network Service Request")); + return KErrNone; + case EMobilePhoneNotifyDTMFEvent: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify DTMF Event")); + return KErrNone; + case EMobilePhoneNotifyStorePreferredNetworksListChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Stored Networks List Change")); + return KErrNone; + case EMobilePhoneNotifyCipheringIndicatorStatus: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Ciphering IndicatorStatus Change")); + return KErrNone; + case EMobilePhoneNotifyIdentityServiceStatus: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Service Status Change")); + return KErrNone; + case EMobilePhoneNotifyIdentitySuppressionRejected: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Identity Suppression Rejected")); + return KErrNone; + case EMobilePhoneNotifyMulticallIndicatorChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify MulticallIndicator Change")); + return KErrNone; + case EMobilePhoneNotifyImsAuthorizationInfoChanged: + LOGTEXT(_L8("CPhoneDMmTsy:DeregisterNotification - Notify Ims Authorization Info Changed")); + return KErrNone; + case EMobilePhoneNotifySmartCardApplicationInfoChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Smart Card Application Info Change")); + return KErrNone; + case EMobilePhoneNotifyAPNListChanged: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Change")); + return KErrNone; + case EMobilePhoneNotifyAPNControlListServiceStatusChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify APN Control List Service Status Change")); + return KErrNone; + case EMobilePhoneNotifyAuthenticateDataChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Authentication Data Change")); + return KErrNone; + case EMobilePhoneNotifyWlanDataChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan Data Change")); + return KErrNone; + case EMobilePhoneNotifyPreferredWlanSIDListChange: + LOGTEXT(_L8("CPhoneDMmTsy: DeregisterNotification - Notify Wlan SIDs list Change")); + return KErrNone; + default: + // Unknown or invalid sms IPC + return KErrNotSupported; + } + } + +TInt CPhoneDMmTsy::NumberOfSlotsL(const TInt aIpc) + { + // NumberOfSlotsL is called by the server when it is registering a new notification. + // It enables the TSY to tell the server how many buffer slots to allocate for + // "repost immediately" notifications that may trigger before clients collect them + + TInt numberOfSlots=1; + switch (aIpc) + { + case EMobilePhoneNotifyBatteryInfoChange: + case EMobilePhoneNotifySignalStrengthChange: + case EMobilePhoneNotifyIndicatorChange: + LOGTEXT(_L8("CPhoneDMmTsy: Registered with 10 slots")); + numberOfSlots=10; + break; + + case EMobilePhoneNotifyDTMFCapsChange: + case EMobilePhoneNotifyStopInDTMFString: + case EMobilePhoneNotifyCallServiceCapsChange: + case EMobilePhoneNotifyCCBSRecall: + case EMobilePhoneNotifyDTMFEvent: + LOGTEXT(_L8("CPhoneDMmTsy: Registered with 5 slots")); + numberOfSlots=5; + break; + + case EMobilePhoneNotifyModeChange: + case EMobilePhoneNotifyNetworkRegistrationStatusChange: + case EMobilePhoneNotifyCurrentNetworkChange: + case EMobilePhoneNotifyCurrentNetworkNoLocationChange: + case EMobilePhoneNotifyCellInfoChange: + case EMobilePhoneNotifyIccAccessCapsChange: + case EMobilePhoneNotifyCallForwardingStatusChange: + case EMobilePhoneNotifyCallForwardingActive: + case EMobilePhoneNotifyNetworkSelectionSettingChange: + case EMobilePhoneNotifyNITZInfoChange: + case EMobilePhoneNotifyCallBarringStatusChange: + case EMobilePhoneNotifyCallWaitingStatusChange: + case EMobilePhoneNotifyCCBSStatusChange: + case EMobilePhoneNotifyAlternatingCallCapsChange: + case EMobilePhoneNotifyAlternatingCallModeChange: + case EMobilePhoneNotifyALSLineChange: + case EMobilePhoneNotifyCostCapsChange: + case EMobilePhoneNotifyCostInfoChange: + case EMobilePhoneNotifySecurityCapsChange: + case EMobilePhoneNotifyLockInfoChange: + case EMobilePhoneNotifySecurityCodeInfoChange: + case EMobilePhoneNotifySecurityEvent: + case EMobilePhoneNotifyMessageWaiting: + case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: + case EMobilePhoneNotifyFdnStatusChange: + case EMobilePhoneNotifyMulticallParamsChange: + case EMobilePhoneNotifyIncomingCallTypeChange: + case EMobilePhoneNotifyUUSSettingChange: + case EMobilePhoneNotifyDefaultPrivacyChange: + case EMobilePhoneNotifyMultimediaCallPreferenceChange: + case EMobilePhoneNotifyNetworkSecurityLevelChange: + case EMobilePhoneNotifyUSimAppsSelectionModeChange: + case EMobilePhoneNotifyUSimApplicationsInfoChange: + case EMobilePhoneNotifyMailboxNumbersChange: + case EMobilePhoneNotifyMmsUpdate: + case EMobilePhoneNotifyMmsConfig: + case EMobilePhoneNotifyNetworkInvScanChange: + case EMobilePhoneNotifyNetworkInvScanEvent: + case EMobilePhoneNotifyAirTimeDurationChange: + case EMobilePhoneNotifySendNetworkServiceRequest: + case EMobilePhoneNotifyAllSendNetworkServiceRequest: + case EMobilePhoneNotifyStorePreferredNetworksListChange: + case EMobilePhoneNotifyCipheringIndicatorStatus: + case EMobilePhoneNotifyIdentityServiceStatus: + case EMobilePhoneNotifyIdentitySuppressionRejected: + case EMobilePhoneNotifyMulticallIndicatorChange: + case EMobilePhoneNotifyImsAuthorizationInfoChanged: + case EMobilePhoneNotifySmartCardApplicationInfoChange: + case EMobilePhoneNotifyAPNListChanged: + case EMobilePhoneNotifyAPNControlListServiceStatusChange: + case EMobilePhoneNotifyAuthenticateDataChange: + case EMobilePhoneNotifyWlanDataChange: + case EMobilePhoneNotifyPreferredWlanSIDListChange: + LOGTEXT(_L8("CPhoneDMmTsy: Registered with 2 slots")); + numberOfSlots=2; + break; + default: + // Unknown or invalid Phone IPC + User::Leave(KErrNotSupported); + break; + } + return numberOfSlots; + } + + +TInt CPhoneDMmTsy::ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc, + const TDataPackage& aPackage) + { + // ExtFunc is called by the server when it has a "extended", i.e. non-core ETel request + // for the TSY to process + // A request handle, request type and request data are passed to the TSY + + TAny* dataPtr=aPackage.Ptr1(); + TAny* dataPtr2=aPackage.Ptr2(); + + // The request data has to extracted from TDataPackage and the TAny* pointers have to + // be "cast" to the expected request data type + + switch (aIpc) + { + // Non-Flow controlled requests + + case EMobilePhoneGetDTMFCaps: + return GetDTMFCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneStopDTMFTone: + return StopDTMFTone(aTsyReqHandle); + + case EMobilePhoneGetNetworkCaps: + return GetNetworkCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetNetworkRegistrationStatus: + return GetNetworkRegistrationStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr)); + + case EMobilePhoneGetHomeNetwork: + return GetHomeNetwork(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetCurrentMode: + return GetCurrentMode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr)); + + case EMobilePhoneGetCurrentNetwork: + return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2)); + + case EMobilePhoneGetCellInfo: + return GetCellInfo(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetCurrentNetworkNoLocation: + return GetCurrentNetwork(aTsyReqHandle, aPackage.Des1n(), NULL); + + case EMobilePhoneGetDetectedNetworksPhase1: + return GetDetectedNetworksPhase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetDetectedNetworksPhase2: + return GetDetectedNetworksPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetDetectedNetworksV2Phase1: + return GetDetectedNetworksV2Phase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetDetectedNetworksV2Phase2: + return GetDetectedNetworksV2Phase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetDetectedNetworksV5Phase1: + return GetDetectedNetworksV5Phase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetDetectedNetworksV5Phase2: + return GetDetectedNetworksV5Phase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetDetectedNetworksV8Phase1: + return GetDetectedNetworksV8Phase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetDetectedNetworksV8Phase2: + return GetDetectedNetworksV8Phase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetNetworkSelectionSetting: + return GetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneSetNetworkSelectionSetting: + return SetNetworkSelectionSetting(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneSelectNetwork: + return SelectNetwork(aTsyReqHandle, + REINTERPRET_CAST(TBool*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkManualSelection*, dataPtr2)); + + case EMobilePhoneGetNITZInfo: + return GetNetworkTimeInfo(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr)); + + case EMobilePhoneGetServiceProviderName: + return GetServiceProviderName(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceProviderNameV2*, dataPtr)); + + case EMobilePhoneGetMultimodeCaps: + return GetMultimodeCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetPhoneStoreInfo: + switch(aPackage.Type()) + { + // Switch between the alternative implementations of GetPhoneStoreInfo + case TDataPackage::EPackage1n2u: + return GetPhoneStoreInfo(aTsyReqHandle, + aPackage.Des1n(),aPackage.Des2u()); + case TDataPackage::EPackage1n2n: + return GetPhoneStoreInfo(aTsyReqHandle, aPackage.Des2n(), + REINTERPRET_CAST(RMobilePhone::TPhoneStoreNameAndIccType*, dataPtr)); + default: + return NULL; + } + + case EMobilePhoneGetIccAccessCaps: + return GetIccAccessCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetIccIdentity: + return GetIccIdentity(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TIccIdentity*, dataPtr)); + + case EMobilePhoneGetCustomerServiceProfile: + return GetCustomerServiceProfile(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetServiceTable: + return GetServiceTable(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceTable*,dataPtr), + aPackage.Des2n()); + + case EMobilePhoneGetBatteryCaps: + return GetBatteryCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetBatteryInfo: + return GetBatteryInfo(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr)); + + case EMobilePhoneGetSignalCaps: + return GetSignalCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetSignalStrength: + return GetSignalStrength(aTsyReqHandle, + REINTERPRET_CAST(TInt32*, dataPtr), + REINTERPRET_CAST(TInt8*, dataPtr2)); + + case EMobilePhoneGetIndicatorCaps: + return GetIndicatorCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr), + REINTERPRET_CAST(TUint32*, dataPtr2)); + + case EMobilePhoneGetIndicator: + return GetIndicator(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetIdentityCaps: + return GetIdentityCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetPhoneId: + return GetPhoneId(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdentityV1*, dataPtr)); + + case EMobilePhoneGetSubscriberId: + return GetSubscriberId(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneSubscriberId*, dataPtr)); + + case EMobilePhoneGetDefaultPrivacy: + return GetDefaultPrivacy(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr)); + + case EMobilePhoneSetDefaultPrivacy: + return SetDefaultPrivacy(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr)); + + case EMobilePhoneGetCallServiceCaps: + return GetCallServiceCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetCallForwardingStatusPhase1: + return GetCallForwardingStatusPhase1(aTsyReqHandle, + REINTERPRET_CAST(CRetrieveMobilePhoneCFList::TGetCallForwardingRequest*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetCallForwardingStatusPhase2: + return GetCallForwardingStatusPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetFeatureCode: + return GetFeatureCodeString(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr), + aPackage.Des2u()); + + case EMobilePhoneGetIdentityServiceStatus: + return GetIdentityServiceStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TIdServiceAndLocation*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*,dataPtr2)); + + case EMobilePhoneGetBarringStatusPhase1: + return GetCallBarringPhase1(aTsyReqHandle, + REINTERPRET_CAST(CRetrieveMobilePhoneCBList::TGetCallBarringRequest*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetBarringStatusPhase2: + return GetCallBarringPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneSetCallBarringStatus: + return SetCallBarringStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBChangeV1*,dataPtr2)); + + case EMobilePhoneSetCallBarringPassword: + return SetCallBarringPassword(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1*,dataPtr)); + + case EMobilePhoneSetSSPassword: + return SetSSPassword(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV2*,dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetWaitingStatusPhase1: + return GetCallWaitingPhase1(aTsyReqHandle, + REINTERPRET_CAST(CRetrieveMobilePhoneCWList::TGetCallWaitingRequest*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetWaitingStatusPhase2: + return GetCallWaitingPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneSetCallWaitingStatus: + return SetCallWaitingStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneServiceAction*, dataPtr2)); + + case EMobilePhoneGetCCBSStatus: + return GetCCBSStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobileInfoLocation*,dataPtr2)); + + case EMobilePhoneAcceptCCBSRecall: + return AcceptCCBSRecall(aTsyReqHandle, + REINTERPRET_CAST(TInt* ,dataPtr),aPackage.Des2u()); + + case EMobilePhoneRefuseCCBSRecall: + return RefuseCCBSRecall(aTsyReqHandle, + REINTERPRET_CAST(TInt* ,dataPtr)); + + case EMobilePhoneDeactivateCCBS: + return DeactivateCCBS(aTsyReqHandle, + REINTERPRET_CAST(TInt* ,dataPtr)); + + case EMobilePhoneGetCompletionRequestsPhase1: + return GetCallCompletionPhase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), REINTERPRET_CAST(TInt*,dataPtr2)); + + case EMobilePhoneGetCompletionRequestsPhase2: + return GetCallCompletionPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetAlternatingCallCaps: + return GetAlternatingCallCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*,dataPtr)); + + case EMobilePhoneGetAlternatingCallMode: + return GetAlternatingCallMode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2)); + + case EMobilePhoneSetAlternatingCallMode: + return SetAlternatingCallMode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2)); + + case EMobilePhoneGetALSLine: + return GetALSLine(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr)); + + case EMobilePhoneSetALSLine: + return SetALSLine(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr)); + + case EMobilePhoneGetCostCaps: + return GetCostCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*,dataPtr)); + + case EMobilePhoneSetMaxCostMeter: + return SetMaxCostMeter(aTsyReqHandle, + REINTERPRET_CAST(TUint*,dataPtr)); + + case EMobilePhoneClearCostMeter: + return ClearCostMeter(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCostMeters*,dataPtr)); + + case EMobilePhoneSetPuct: + return SetPuct(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneGetCostInfo: + return GetCostInfo(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneGetSecurityCaps: + return GetSecurityCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*,dataPtr)); + + case EMobilePhoneGetLockInfo: + return GetLockInfo(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr), + aPackage.Des2n()); + + case EMobilePhoneSetLockSetting: + return SetLockSetting(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneLockSetting *, dataPtr2) + ); + case EMobilePhoneChangeSecurityCode: + return ChangeSecurityCode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhonePasswordChangeV1 *, dataPtr2)); + + case EMobilePhoneGetSecurityCodeInfo: + return GetSecurityCodeInfo(aTsyReqHandle, + reinterpret_cast (dataPtr), + aPackage.Des2n()); + + case EMobilePhoneVerifySecurityCode: + return VerifySecurityCode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *,dataPtr), + REINTERPRET_CAST(RMobilePhone::TCodeAndUnblockCode *, dataPtr2)); + + case EMobilePhoneAbortSecurityCode: + return AbortSecurityCode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityCode *, dataPtr)); + + case EMobilePhoneGetFdnStatus: + return GetFdnStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*, dataPtr)); + + case EMobilePhoneSetFdnSetting: + return SetFdnSetting(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnSetting*, dataPtr)); + + case EMobilePhoneGetMulticallParams: + return GetMulticallParams(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneSetMulticallParams: + return SetMulticallParams(aTsyReqHandle, REINTERPRET_CAST(TInt*, dataPtr)); + + case EMobilePhoneGetIncomingCallType: + return GetIncomingCallType(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), + aPackage.Des2n()); + + case EMobilePhoneSetIncomingCallType: + return SetIncomingCallType(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), + aPackage.Des2n()); + + case EMobilePhoneGetUUSSetting: + return GetUUSSetting(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr)); + + case EMobilePhoneSetUUSSetting: + return SetUUSSetting(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr)); + + case EMobilePhoneGetIccMessageWaitingIndicators: + return GetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneSetIccMessageWaitingIndicators: + return SetIccMessageWaitingIndicators(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneGetMultimediaCallPreference: + return GetMultimediaCallPreference(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr)); + + case EMobilePhoneSetMultimediaCallPreference: + return SetMultimediaCallPreference(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr)); + + case EMobilePhoneGetNetworkSecurityLevel: + return GetNetworkSecurityLevel(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr)); + + case EMobilePhoneEnumerateUSimApplications: + return EnumerateUSimApplications(aTsyReqHandle, + REINTERPRET_CAST(TInt*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2)); + + case EMobilePhoneGetUSimAppsSelectionMode: + return GetUSimAppsSelectionMode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr)); + + case EMobilePhoneSetUSimAppsSelectionMode: + return SetUSimAppsSelectionMode(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr)); + + case EMobilePhoneSetUSimApplicationStatus: + return SetUSimApplicationStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TUSimAppAction*, dataPtr2)); + + case EMobilePhoneGetUSimApplicationsInfo: + return GetUSimApplicationInfo(aTsyReqHandle, + REINTERPRET_CAST(TInt*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TUSimApplicationInfoV2*, dataPtr2)); + + case EMobilePhoneEnumerateSmartCardApplications: + return EnumerateSmartCardApplications(aTsyReqHandle, + reinterpret_cast(dataPtr)); + + case EMobilePhoneGetSmartCardApplicationInfo: + return GetSmartCardApplicationInfo(aTsyReqHandle, reinterpret_cast(dataPtr), aPackage.Des2n()); + + case EMobilePhoneNotifySmartCardApplicationInfoChange: + return NotifySmartCardApplicationInfoChange(aTsyReqHandle, reinterpret_cast(dataPtr2), reinterpret_cast(dataPtr)); + + case EMobilePhoneSetSmartCardApplicationStatus: + return SetSmartCardApplicationStatus(aTsyReqHandle, reinterpret_cast(dataPtr), *reinterpret_cast(dataPtr2)); + + case EMobilePhoneGetScFileInfo: + return GetScFileInfo(aTsyReqHandle, *reinterpret_cast(dataPtr), aPackage.Des2n()); + + case EMobilePhoneReadScFile: + return ReadScFile(aTsyReqHandle, *reinterpret_cast(dataPtr), aPackage.Des2n()); + + case EMobilePhoneUpdateScFile: + return UpdateScFile(aTsyReqHandle, *reinterpret_cast(dataPtr), aPackage.Des2n()); + + case EMobilePhoneGetCurrentActiveUSimApplication: + return GetCurrentActiveUSimApplication(aTsyReqHandle, reinterpret_cast(dataPtr)); + + case EMobilePhoneGetHomeNetworkSearchPeriod: + return GetHomeNetworkSearchPeriod(aTsyReqHandle, + REINTERPRET_CAST(TInt*, dataPtr)); + + case EMobilePhoneGetLastUsedAccessTechnology: + return GetLastUsedAccessTechnology(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkAccess*, dataPtr)); + + case EMobilePhoneGetNetworkInvScanSetting: + return GetNetworkInvScanSetting(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr)); + + case EMobilePhoneGetCallForwardingIndicator: + return GetCallForwardingIndicator(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetCompMethodName: + return GetCompMethodName(aTsyReqHandle, + *REINTERPRET_CAST(TUint8*, dataPtr), aPackage.Des2u()); + + case EMobilePhoneEnumerateAPNEntries: + return EnumerateAPNEntries(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetAPNname: + return GetAPNname(aTsyReqHandle, + *REINTERPRET_CAST(TUint32*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneAppendAPNName: + return AppendAPNName(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneDeleteAPNName: + return DeleteAPNName(aTsyReqHandle, + *REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyAPNListChanged: + return NotifyAPNListChanged(aTsyReqHandle); + + case EMobilePhoneSetAPNControlListServiceStatus: + return SetAPNControlListServiceStatus(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr)); + + case EMobilePhoneGetAPNControlListServiceStatus: + return GetAPNControlListServiceStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr)); + + case EMobilePhoneNotifyAPNControlListServiceStatusChange: + return NotifyAPNControlListServiceStatusChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TAPNControlListServiceStatus*, dataPtr)); + + case EMobilePhoneGetAirTimeDuration: + return GetAirTimeDuration(aTsyReqHandle, + REINTERPRET_CAST(TTimeIntervalSeconds*, dataPtr)); + + case EMobilePhoneClearBlacklist: + return ClearBlacklist(aTsyReqHandle); + + case EMobilePhoneGetPersonalisationCaps: + return GetPersonalisationCaps(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneGetPersonalisationStatus: + return GetPersonalisationStatus(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneSetPersonalisationStatus: + return SetPersonalisationStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhonePersonalisation*, dataPtr), aPackage.Des2u()); + + case EMobilePhoneGetNetworkName: + return GetCurrentNetworkName(aTsyReqHandle, aPackage.Des1n(), aPackage.Des2n()); + + case EMobilePhoneGetPreferredNetworksPhase1: + return GetPreferredNetworksPhase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetPreferredNetworksPhase2: + return GetPreferredNetworksPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneStorePreferredNetworksList: + return StorePreferredNetworksList(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetCipheringIndicatorStatus: + return GetCipheringIndicatorStatus(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr)); + + case EMobilePhoneSetIdentityServiceStatus: + return SetIdentityServiceStatus(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr), + *REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceSetting*, dataPtr2)); + + // Flow controlled requests + + case EMobilePhoneSendNetworkServiceRequest: + return SendNetworkServiceRequest(aTsyReqHandle, aPackage.Des1u()); + + case EMobilePhoneSendDTMFTones: + return SendDTMFTones(aTsyReqHandle, aPackage.Des1u()); + + case EMobilePhoneReadDTMFTones: + return ReadDTMFTones(aTsyReqHandle, aPackage.Des1u()); + + case EMobilePhoneStartDTMFTone: + return StartDTMFTone(aTsyReqHandle, + REINTERPRET_CAST(TChar*, dataPtr)); + + case EMobilePhoneContinueDTMFStringSending: + return ContinueDTMFStringSending(aTsyReqHandle, + REINTERPRET_CAST(TBool*,dataPtr)); + + case EMobilePhoneSetCallForwardingStatus: + return SetCallForwardingStatus(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFChangeV1*, dataPtr2) ); + + case EMobilePhoneProgramFeatureCode: + return ProgramFeatureCodeString(aTsyReqHandle, + aPackage.Des2u(), + REINTERPRET_CAST(RMobilePhone::TNetworkServiceAndAction*, dataPtr)); + + case EMobilePhoneTerminateAllCalls: + return TerminateAllCalls(aTsyReqHandle); + + case EMobilePhoneTerminateActiveCalls: + return TerminateActiveCalls(aTsyReqHandle); + + case EMobilePhoneGetMailboxNumbers: + return GetMailboxNumbers (aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneSetMmsUserConnParams: + return SetMmsUserConnParams(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneSetMmsUserPreferences: + return SetMmsUserPreferences(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetMmsConfig: + return GetMmsConfig(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n()); + // + // Notification requests + // + + case EMobilePhoneNotifyModeChange: + return NotifyModeChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkMode*, dataPtr)); + + case EMobilePhoneNotifyDTMFCapsChange: + return NotifyDTMFCapsChange(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyStopInDTMFString: + return NotifyStopInDTMFString(aTsyReqHandle); + + case EMobilePhoneNotifyNetworkRegistrationStatusChange: + return NotifyNetworkRegistrationStatusChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneRegistrationStatus*, dataPtr)); + + case EMobilePhoneNotifyCurrentNetworkChange: + return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneLocationAreaV1*, dataPtr2)); + + case EMobilePhoneNotifyCurrentNetworkNoLocationChange: + return NotifyCurrentNetworkChange(aTsyReqHandle, aPackage.Des1n(), NULL); + + case EMobilePhoneNotifyCellInfoChange: + return NotifyCellInfoChange(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneNotifyIccAccessCapsChange: + return NotifyIccAccessCapsChange(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyBatteryInfoChange: + return NotifyBatteryInfoChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneBatteryInfoV1*, dataPtr)); + + case EMobilePhoneNotifySignalStrengthChange: + return NotifySignalStrengthChange(aTsyReqHandle, + REINTERPRET_CAST(TInt32*, dataPtr), REINTERPRET_CAST(TInt8*, dataPtr2)); + + case EMobilePhoneNotifyIndicatorChange: + return NotifyIndicatorChange(aTsyReqHandle, REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyDefaultPrivacyChange: + return NotifyDefaultPrivacyChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhonePrivacy*, dataPtr)); + + case EMobilePhoneNotifyCallForwardingStatusChange: + return NotifyCallForwardingStatusChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFCondition*, dataPtr)); + + case EMobilePhoneNotifyCallForwardingActive: + return NotifyCallForwardingActive(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobileService*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFActive*, dataPtr2)); + + case EMobilePhoneNotifyNetworkSelectionSettingChange: + return NotifyNetworkSelectionSettingChange(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneNotifyNITZInfoChange: + return NotifyNetworkTimeInfoChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNITZ*, dataPtr)); + + case EMobilePhoneNotifyCallServiceCapsChange: + return NotifyCallServiceCapsChange(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyCallBarringStatusChange: + return NotifyCallBarringStatusChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCBCondition*,dataPtr)); + + case EMobilePhoneNotifyCallWaitingStatusChange: + return NotifyCallWaitingStatusChange(aTsyReqHandle, + aPackage.Des1n()); + + case EMobilePhoneNotifyCCBSStatusChange: + return NotifyCCBSStatusChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneCCBSStatus*,dataPtr)); + + case EMobilePhoneNotifyCCBSRecall: + return NotifyCCBSRecall(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneNotifyAlternatingCallCapsChange: + return NotifyAlternatingCallCapsChange(aTsyReqHandle, + REINTERPRET_CAST(TUint32*,dataPtr)); + + case EMobilePhoneNotifyAlternatingCallModeChange: + return NotifyAlternatingCallModeChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneAlternatingCallMode*,dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobileService*,dataPtr2)); + + case EMobilePhoneNotifyALSLineChange: + return NotifyALSLineChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneALSLine*,dataPtr)); + + case EMobilePhoneNotifyCostCapsChange: + return NotifyCostCapsChange(aTsyReqHandle, + REINTERPRET_CAST(TUint32*,dataPtr)); + + case EMobilePhoneNotifyCostInfoChange: + return NotifyCostInfoChange(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneNotifySecurityCapsChange: + return NotifySecurityCapsChange(aTsyReqHandle, + REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyLockInfoChange: + return NotifyLockInfoChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneLock *, dataPtr), + aPackage.Des2n()); + + case EMobilePhoneNotifySecurityCodeInfoChange: + return NotifySecurityCodeInfoChange(aTsyReqHandle, + reinterpret_cast (dataPtr), + aPackage.Des2n()); + + case EMobilePhoneNotifySecurityEvent: + return NotifyOnSecurityEvent(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneSecurityEvent*,dataPtr)); + + case EMobilePhoneNotifyMessageWaiting: + return NotifyMessageWaiting(aTsyReqHandle,REINTERPRET_CAST(TInt*,dataPtr)); + + case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: + return NotifyIccMessageWaitingIndicatorsChange(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneNotifyFdnStatusChange: + return NotifyFdnStatusChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneFdnStatus*,dataPtr)); + + case EMobilePhoneNotifyMulticallParamsChange: + return NotifyMulticallParamsChange(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneNotifyIncomingCallTypeChange: + return NotifyIncomingCallTypeChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneIncomingCallType*, dataPtr), + aPackage.Des2n()); + + case EMobilePhoneNotifyUUSSettingChange: + return NotifyUUSSettingChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneUUSSetting*, dataPtr)); + + case EMobilePhoneNotifyMultimediaCallPreferenceChange: + return NotifyMultimediaCallPreferenceChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneMultimediaSettings*, dataPtr)); + + case EMobilePhoneNotifyNetworkSecurityLevelChange: + return NotifyNetworkSecurityLevelChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkSecurity*, dataPtr)); + + case EMobilePhoneNotifyUSimAppsSelectionModeChange: + return NotifyUSimAppsSelectionModeChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TUSimSelectionMode*, dataPtr)); + + case EMobilePhoneNotifyUSimApplicationsInfoChange: + return NotifyUSimApplicationsInfoChange(aTsyReqHandle, + REINTERPRET_CAST(TInt*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TAID*, dataPtr2)); + + case EMobilePhoneNotifyMailboxNumbersChange: + return NotifyMailboxNumbersChange (aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneNotifyMmsUpdate: + return NotifyMmsUpdate (aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneNotifyMmsConfig: + return NotifyMmsConfig(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TMmsConnParams*,dataPtr), aPackage.Des2n()); + + case EMobilePhoneNotifyNetworkInvScanChange: + return NotifyNetworkInvScanChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScan*, dataPtr)); + + case EMobilePhoneNotifyNetworkInvScanEvent: + return NotifyNetworkInvScanEvent(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneInvestigationScanEvent*, dataPtr)); + + case EMobilePhoneNotifyAirTimeDurationChange: + return NotifyAirTimeDurationChange(aTsyReqHandle, + REINTERPRET_CAST(TTimeIntervalSeconds*,dataPtr)); + + case EMobilePhoneNotifySendNetworkServiceRequest: + return NotifySendNetworkServiceRequest(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneNotifyAllSendNetworkServiceRequest: + return NotifyAllSendNetworkServiceRequest(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneNotifySendSSOperation*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneNotifyDTMFEvent: + return NotifyDTMFEvent(aTsyReqHandle, REINTERPRET_CAST(RMobilePhone::TMobilePhoneDTMFEvent*, dataPtr)); + + case EMobilePhoneNotifyStorePreferredNetworksListChange: + return NotifyStorePreferredNetworksListChange(aTsyReqHandle); + + case EMobilePhoneNotifyCipheringIndicatorStatus: + return NotifyCipheringIndicatorStatus(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TMobileCallCipheringIndicator*, dataPtr)); + + case EMobilePhoneNotifyIdentityServiceStatus: + return NotifyIdentityServiceStatus(aTsyReqHandle, + *REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdService*, dataPtr), + REINTERPRET_CAST(RMobilePhone::TMobilePhoneIdServiceStatus*, dataPtr2)); + + case EMobilePhoneNotifyIdentitySuppressionRejected: + return NotifyIdentitySuppressionRejected(aTsyReqHandle); + + case EMobilePhoneNotifyMulticallIndicatorChange: + return NotifyMulticallIndicatorChange(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallIndicator*, dataPtr)); + + case EMobilePhoneAuthorizationInfoPhase1: + return GetAuthorizationInfoPhase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), + REINTERPRET_CAST(TInt*,dataPtr2)); + + + case EMobilePhoneAuthorizationInfoPhase2: + return GetAuthorizationInfoPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*,dataPtr), aPackage.Des2n()); + + case EMobilePhoneIMSAuthenticate: + return GetAuthenticationData(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneSmartCardAuthenticate: + return GetSmartCardAuthenticationData(aTsyReqHandle, aPackage.Des1n(), + reinterpret_cast(dataPtr2)); + + case EMobilePhoneNotifyImsAuthorizationInfoChanged: + return NotifyImsAuthorizationInfoChanged(aTsyReqHandle); + + case EETelPhoneSetEmergencyClient: + return SetEmergencyClient(aTsyReqHandle,REINTERPRET_CAST(TUint32*, dataPtr)); + + case EMobilePhoneNotifyAuthenticateDataChange: + return NotifyAuthenticateDataChange(aTsyReqHandle, aPackage.Des1n()); + + case EMobilePhoneGetAuthenticationParams: + return GetAuthenticationParams(aTsyReqHandle, aPackage.Des1n(),aPackage.Des2n()); + + case EMobilePhoneSetGbaBootstrapParams: + return SetGbaBootstrapParams(aTsyReqHandle, reinterpret_cast(dataPtr2),aPackage.Des1n()); + + case EMobilePhoneAuthenticationListPhase1: + return GetAuthenticationListPhase1(aTsyReqHandle, + REINTERPRET_CAST(CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData*, dataPtr),REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneAuthenticationListPhase2: + return GetAuthenticationListPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneNotifyWlanDataChange: + return NotifyWlanDataChange(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneNotifyPreferredWlanSIDListChange: + return NotifyPreferredWlanSIDListChange(aTsyReqHandle); + + case EMobilePhoneGetWlanData: + return GetWlanData(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneSetWlanData: + return SetWlanData(aTsyReqHandle,aPackage.Des1n()); + + case EMobilePhoneGetPreferredWlanSIDsPhase1: + return GetPreferredWlanSIDsPhase1(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), + REINTERPRET_CAST(TInt*, dataPtr2)); + + case EMobilePhoneGetPreferredWlanSIDsPhase2: + return GetPreferredWlanSIDsPhase2(aTsyReqHandle, + REINTERPRET_CAST(RMobilePhone::TClientId*, dataPtr), aPackage.Des2n()); + + case EMobilePhoneStorePreferredWlanSIDList: + return StorePreferredWlanSIDList(aTsyReqHandle, aPackage.Des1n()); + + default: + return KErrNotSupported; + } + } + +TInt CPhoneDMmTsy::CancelService(const TInt aIpc,const TTsyReqHandle aTsyReqHandle) + { + // CancelService is called by the server when it is "cleaning-up" any still outstanding + // asynchronous requests before closing a client's sub-session. + // This will happen if a client closes its R-class handle without cancelling outstanding + // asynchronous requests. + + switch (aIpc) + { + case EMobilePhoneGetHomeNetwork: + return GetHomeNetworkCancel(aTsyReqHandle); + case EMobilePhoneNotifyModeChange: + return NotifyModeChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyDTMFCapsChange: + return NotifyDTMFCapsChangeCancel(aTsyReqHandle); + case EMobilePhoneSendDTMFTones: + return SendDTMFTonesCancel(aTsyReqHandle); + case EMobilePhoneReadDTMFTones: + return ReadDTMFTonesCancel(aTsyReqHandle); + case EMobilePhoneNotifyStopInDTMFString: + return NotifyStopInDTMFStringCancel(aTsyReqHandle); + case EMobilePhoneGetNetworkRegistrationStatus: + return GetNetworkRegistrationStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyNetworkRegistrationStatusChange: + return NotifyNetworkRegistrationStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCurrentNetwork: + return GetCurrentNetworkCancel(aTsyReqHandle); + case EMobilePhoneNotifyCurrentNetworkChange: + return NotifyCurrentNetworkChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCurrentNetworkNoLocation: + return GetCurrentNetworkCancel(aTsyReqHandle); + case EMobilePhoneNotifyCurrentNetworkNoLocationChange: + return NotifyCurrentNetworkChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCellInfo: + return GetCellInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifyCellInfoChange: + return NotifyCellInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneGetDetectedNetworksPhase1: + case EMobilePhoneGetDetectedNetworksPhase2: + return GetDetectedNetworksCancel(aTsyReqHandle); + case EMobilePhoneGetDetectedNetworksV2Phase1: + case EMobilePhoneGetDetectedNetworksV2Phase2: + return GetDetectedNetworksV2Cancel(aTsyReqHandle); + case EMobilePhoneGetDetectedNetworksV5Phase1: + case EMobilePhoneGetDetectedNetworksV5Phase2: + return GetDetectedNetworksV5Cancel(aTsyReqHandle); + case EMobilePhoneGetDetectedNetworksV8Phase1: + case EMobilePhoneGetDetectedNetworksV8Phase2: + return GetDetectedNetworksV8Cancel(aTsyReqHandle); + case EMobilePhoneGetPhoneStoreInfo: + return GetPhoneStoreInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifyIccAccessCapsChange: + return NotifyIccAccessCapsChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCustomerServiceProfile: + return GetCustomerServiceProfileCancel(aTsyReqHandle); + case EMobilePhoneGetServiceTable: + return GetServiceTableCancel(aTsyReqHandle); + case EMobilePhoneGetBatteryInfo: + return GetBatteryInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifyBatteryInfoChange: + return NotifyBatteryInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneGetSignalStrength: + return GetSignalStrengthCancel(aTsyReqHandle); + case EMobilePhoneNotifySignalStrengthChange: + return NotifySignalStrengthChangeCancel(aTsyReqHandle); + case EMobilePhoneGetIndicator: + return GetIndicatorCancel(aTsyReqHandle); + case EMobilePhoneNotifyIndicatorChange: + return NotifyIndicatorChangeCancel(aTsyReqHandle); + case EMobilePhoneGetPhoneId: + return GetPhoneIdCancel(aTsyReqHandle); + case EMobilePhoneGetSubscriberId: + return GetSubscriberIdCancel(aTsyReqHandle); + case EMobilePhoneNotifyCallServiceCapsChange: + return NotifyCallServiceCapsChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCallForwardingStatusPhase1: + case EMobilePhoneGetCallForwardingStatusPhase2: + return GetCallForwardingStatusCancel(aTsyReqHandle); + case EMobilePhoneSetCallForwardingStatus: + return SetCallForwardingStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyCallForwardingStatusChange: + return NotifyCallForwardingStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyCallForwardingActive: + return NotifyCallForwardingActiveCancel(aTsyReqHandle); + case EMobilePhoneProgramFeatureCode: + return ProgramFeatureCodeStringCancel(aTsyReqHandle); + case EMobilePhoneGetFeatureCode: + return GetFeatureCodeStringCancel(aTsyReqHandle); + case EMobilePhoneSendNetworkServiceRequest: + return SendNetworkServiceRequestCancel(aTsyReqHandle); + case EMobilePhoneNotifyNetworkSelectionSettingChange: + return NotifyNetworkSelectionSettingChangeCancel(aTsyReqHandle); + case EMobilePhoneSelectNetwork: + return SelectNetworkCancel(aTsyReqHandle); + case EMobilePhoneNotifyNITZInfoChange: + return NotifyNetworkTimeInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneGetServiceProviderName: + return GetServiceProviderNameCancel(aTsyReqHandle); + case EMobilePhoneGetIdentityServiceStatus: + return GetIdentityServiceStatusCancel(aTsyReqHandle); + case EMobilePhoneGetBarringStatusPhase1: + case EMobilePhoneGetBarringStatusPhase2: + return GetCallBarringCancel(aTsyReqHandle); + case EMobilePhoneSetCallBarringStatus: + return SetCallBarringStatusCancel(aTsyReqHandle); + case EMobilePhoneSetCallBarringPassword: + return SetCallBarringPasswordCancel(aTsyReqHandle); + case EMobilePhoneNotifyCallBarringStatusChange: + return NotifyCallBarringStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneGetWaitingStatusPhase1: + case EMobilePhoneGetWaitingStatusPhase2: + return GetCallWaitingCancel(aTsyReqHandle); + case EMobilePhoneSetCallWaitingStatus: + return SetCallWaitingStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyCallWaitingStatusChange: + return NotifyCallWaitingStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCCBSStatus: + return GetCCBSStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyCCBSStatusChange: + return NotifyCCBSStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneDeactivateCCBS: + return DeactivateCCBSCancel(aTsyReqHandle); + case EMobilePhoneAcceptCCBSRecall: + return AcceptCCBSRecallCancel(aTsyReqHandle); + case EMobilePhoneNotifyCCBSRecall: + return NotifyCCBSRecallCancel(aTsyReqHandle); + case EMobilePhoneGetCompletionRequestsPhase1: + case EMobilePhoneGetCompletionRequestsPhase2: + return GetCallCompletionCancel(aTsyReqHandle); + case EMobilePhoneNotifyAlternatingCallCapsChange: + return NotifyAlternatingCallCapsChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyAlternatingCallModeChange: + return NotifyAlternatingCallModeChangeCancel(aTsyReqHandle); + case EMobilePhoneSetALSLine: + return SetALSLineCancel(aTsyReqHandle); + case EMobilePhoneNotifyALSLineChange: + return NotifyALSLineChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyCostCapsChange: + return NotifyCostCapsChangeCancel(aTsyReqHandle); + case EMobilePhoneClearCostMeter: + return ClearCostMeterCancel(aTsyReqHandle); + case EMobilePhoneSetMaxCostMeter: + return SetMaxCostMeterCancel(aTsyReqHandle); + case EMobilePhoneSetPuct: + return SetPuctCancel(aTsyReqHandle); + case EMobilePhoneGetCostInfo: + return GetCostInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifyCostInfoChange: + return NotifyCostInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifySecurityCapsChange: + return NotifySecurityCapsChangeCancel(aTsyReqHandle); + case EMobilePhoneGetLockInfo: + return GetLockInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifyLockInfoChange: + return NotifyLockInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneSetLockSetting: + return SetLockSettingCancel(aTsyReqHandle); + case EMobilePhoneChangeSecurityCode: + return ChangeSecurityCodeCancel(aTsyReqHandle); + case EMobilePhoneGetSecurityCodeInfo: + return GetSecurityCodeInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifySecurityCodeInfoChange: + return NotifySecurityCodeInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifySecurityEvent: + return NotifyOnSecurityEventCancel(aTsyReqHandle); + case EMobilePhoneVerifySecurityCode: + return VerifySecurityCodeCancel(aTsyReqHandle); + case EMobilePhoneNotifyMessageWaiting: + return NotifyMessageWaitingCancel(aTsyReqHandle); + case EMobilePhoneNotifyIccMessageWaitingIndicatorsChange: + return NotifyIccMessageWaitingIndicatorsChangeCancel(aTsyReqHandle); + case EMobilePhoneGetIccMessageWaitingIndicators: + return GetIccMessageWaitingIndicatorsCancel(aTsyReqHandle); + case EMobilePhoneSetIccMessageWaitingIndicators: + return SetIccMessageWaitingIndicatorsCancel(aTsyReqHandle); + case EMobilePhoneGetFdnStatus: + return GetFdnStatusCancel(aTsyReqHandle); + case EMobilePhoneSetFdnSetting: + return SetFdnSettingCancel(aTsyReqHandle); + case EMobilePhoneNotifyFdnStatusChange: + return NotifyFdnStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneSetNetworkSelectionSetting: + return SetNetworkSelectionSettingCancel(aTsyReqHandle); + case EMobilePhoneSetAlternatingCallMode: + return SetAlternatingCallModeCancel(aTsyReqHandle); + case EMobilePhoneGetMulticallParams: + return GetMulticallParamsCancel(aTsyReqHandle); + case EMobilePhoneSetMulticallParams: + return SetMulticallParamsCancel(aTsyReqHandle); + case EMobilePhoneNotifyMulticallParamsChange: + return NotifyMulticallParamsChangeCancel(aTsyReqHandle); + case EMobilePhoneGetIncomingCallType: + return GetIncomingCallTypeCancel(aTsyReqHandle); + case EMobilePhoneSetIncomingCallType: + return SetIncomingCallTypeCancel(aTsyReqHandle); + case EMobilePhoneNotifyIncomingCallTypeChange: + return NotifyIncomingCallTypeChangeCancel(aTsyReqHandle); + case EMobilePhoneGetUUSSetting: + return GetUUSSettingCancel(aTsyReqHandle); + case EMobilePhoneSetUUSSetting: + return SetUUSSettingCancel(aTsyReqHandle); + case EMobilePhoneNotifyUUSSettingChange: + return NotifyUUSSettingChangeCancel(aTsyReqHandle); + case EMobilePhoneSetDefaultPrivacy: + return SetDefaultPrivacyCancel(aTsyReqHandle); + case EMobilePhoneNotifyDefaultPrivacyChange: + return NotifyDefaultPrivacyChangeCancel(aTsyReqHandle); + case EMobilePhoneSetMultimediaCallPreference: + return SetMultimediaCallPreferenceCancel(aTsyReqHandle); + case EMobilePhoneNotifyMultimediaCallPreferenceChange: + return NotifyMultimediaCallPreferenceChangeCancel(aTsyReqHandle); + case EMobilePhoneGetNetworkSecurityLevel: + return GetNetworkSecurityLevelCancel(aTsyReqHandle); + case EMobilePhoneNotifyNetworkSecurityLevelChange: + return NotifyNetworkSecurityLevelChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyUSimAppsSelectionModeChange: + return NotifyUSimAppsSelectionModeChangeCancel(aTsyReqHandle); + case EMobilePhoneSetUSimApplicationStatus: + return SetUSimApplicationStatusCancel(aTsyReqHandle); + case EMobilePhoneGetUSimApplicationsInfo: + return GetUSimApplicationInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifyUSimApplicationsInfoChange: + return NotifyUSimApplicationsInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneEnumerateUSimApplications: + return EnumerateUSimApplicationsCancel(aTsyReqHandle); + case EMobilePhoneEnumerateSmartCardApplications: + return EnumerateSmartCardApplicationsCancel(aTsyReqHandle); + case EMobilePhoneGetSmartCardApplicationInfo: + return GetSmartCardApplicationInfoCancel(aTsyReqHandle); + case EMobilePhoneNotifySmartCardApplicationInfoChange: + return NotifySmartCardApplicationInfoChangeCancel(aTsyReqHandle); + case EMobilePhoneSetSmartCardApplicationStatus: + return SetSmartCardApplicationStatusCancel(aTsyReqHandle); + case EMobilePhoneGetScFileInfo: + return GetScFileInfoCancel(aTsyReqHandle); + case EMobilePhoneReadScFile: + return ReadScFileCancel(aTsyReqHandle); + case EMobilePhoneUpdateScFile: + return UpdateScFileCancel(aTsyReqHandle); + case EMobilePhoneGetCurrentActiveUSimApplication: + return GetCurrentActiveUSimApplicationCancel(aTsyReqHandle); + case EMobilePhoneSetSSPassword: + return SetSSPasswordCancel(aTsyReqHandle); + case EMobilePhoneNotifyMailboxNumbersChange: + return NotifyMailboxNumbersChangeCancel(aTsyReqHandle); + case EMobilePhoneGetMailboxNumbers: + return GetMailboxNumbersCancel(aTsyReqHandle); + case EMobilePhoneNotifyMmsUpdate: + return NotifyMmsUpdateCancel(aTsyReqHandle); + case EMobilePhoneNotifyMmsConfig: + return SetMmsUserConnParamsCancel(aTsyReqHandle); + case EMobilePhoneSetMmsUserConnParams: + return SetMmsUserConnParamsCancel(aTsyReqHandle); + case EMobilePhoneSetMmsUserPreferences: + return SetMmsUserPreferencesCancel(aTsyReqHandle); + case EMobilePhoneGetMmsConfig: + return GetMmsConfigCancel(aTsyReqHandle); + case EMobilePhoneGetHomeNetworkSearchPeriod: + return GetHomeNetworkSearchPeriodCancel(aTsyReqHandle); + case EMobilePhoneGetLastUsedAccessTechnology: + return GetLastUsedAccessTechnologyCancel(aTsyReqHandle); + case EMobilePhoneNotifyNetworkInvScanChange: + return NotifyNetworkInvScanChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyNetworkInvScanEvent: + return NotifyNetworkInvScanEventCancel(aTsyReqHandle); + case EMobilePhoneGetCallForwardingIndicator: + return GetCallForwardingIndicatorCancel(aTsyReqHandle); + case EMobilePhoneGetCompMethodName: + return GetCompMethodNameCancel(aTsyReqHandle); + case EMobilePhoneEnumerateAPNEntries: + return EnumerateAPNEntriesCancel(aTsyReqHandle); + case EMobilePhoneGetAPNname: + return GetAPNnameCancel(aTsyReqHandle); + case EMobilePhoneAppendAPNName: + return AppendAPNNameCancel(aTsyReqHandle); + case EMobilePhoneDeleteAPNName: + return DeleteAPNNameCancel(aTsyReqHandle); + case EMobilePhoneNotifyAPNListChanged: + return NotifyAPNListChangedCancel(aTsyReqHandle); + case EMobilePhoneSetAPNControlListServiceStatus: + return SetAPNControlListServiceStatusCancel(aTsyReqHandle); + case EMobilePhoneGetAPNControlListServiceStatus: + return GetAPNControlListServiceStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyAPNControlListServiceStatusChange: + return NotifyAPNControlListServiceStatusChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyAirTimeDurationChange: + return NotifyAirTimeDurationChangeCancel(aTsyReqHandle); + case EMobilePhoneTerminateAllCalls: + return TerminateAllCallsCancel(aTsyReqHandle); + case EMobilePhoneTerminateActiveCalls: + return TerminateActiveCallsCancel(aTsyReqHandle); + case EMobilePhoneNotifySendNetworkServiceRequest: + return NotifySendNetworkServiceRequestCancel(aTsyReqHandle); + case EMobilePhoneNotifyAllSendNetworkServiceRequest: + return NotifyAllSendNetworkServiceRequestCancel(aTsyReqHandle); + case EMobilePhoneClearBlacklist: + return ClearBlacklistCancel(aTsyReqHandle); + case EMobilePhoneNotifyDTMFEvent: + return NotifyDTMFEventCancel(aTsyReqHandle); + case EMobilePhoneGetPersonalisationCaps: + return GetPersonalisationCapsCancel(aTsyReqHandle); + case EMobilePhoneGetPersonalisationStatus: + return GetPersonalisationStatusCancel(aTsyReqHandle); + case EMobilePhoneSetPersonalisationStatus: + return SetPersonalisationStatusCancel(aTsyReqHandle); + case EMobilePhoneGetNetworkName: + return GetCurrentNetworkNameCancel(aTsyReqHandle); + case EMobilePhoneGetPreferredNetworksPhase1: + case EMobilePhoneGetPreferredNetworksPhase2: + return GetPreferredNetworksCancel(aTsyReqHandle); + case EMobilePhoneStorePreferredNetworksList: + return StorePreferredNetworksListCancel(aTsyReqHandle); + case EMobilePhoneNotifyStorePreferredNetworksListChange: + return NotifyStorePreferredNetworksListChangeCancel(aTsyReqHandle); + case EMobilePhoneGetCipheringIndicatorStatus: + return GetCipheringIndicatorStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyCipheringIndicatorStatus: + return NotifyCipheringIndicatorStatusCancel(aTsyReqHandle); + case EMobilePhoneSetIdentityServiceStatus: + return SetIdentityServiceStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyIdentityServiceStatus: + return NotifyIdentityServiceStatusCancel(aTsyReqHandle); + case EMobilePhoneNotifyIdentitySuppressionRejected: + return NotifyIdentitySuppressionRejectedCancel(aTsyReqHandle); + case EMobilePhoneNotifyMulticallIndicatorChange: + return NotifyMulticallIndicatorChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyImsAuthorizationInfoChanged: + return NotifyImsAuthorizationInfoChangedCancel(aTsyReqHandle); + case EMobilePhoneAuthorizationInfoPhase1: + case EMobilePhoneAuthorizationInfoPhase2: + return GetAuthorizationInfoCancel(aTsyReqHandle); + case EMobilePhoneIMSAuthenticate: + return GetAuthenticationDataCancel(aTsyReqHandle); + case EMobilePhoneSmartCardAuthenticate: + return GetSmartCardAuthenticationDataCancel(aTsyReqHandle); + case EMobilePhoneGetIccIdentity: + return GetIccIdentityCancel(aTsyReqHandle); + case EMobilePhoneNotifyAuthenticateDataChange: + return NotifyAuthenticateDataChangeCancel(aTsyReqHandle); + case EMobilePhoneGetAuthenticationParams: + return GetAuthenticationParamsCancel(aTsyReqHandle); + case EMobilePhoneSetGbaBootstrapParams: + return SetGbaBootstrapParamsCancel(aTsyReqHandle); + case EMobilePhoneAuthenticationListPhase1: + case EMobilePhoneAuthenticationListPhase2: + return GetAuthenticationListCancel(aTsyReqHandle); + case EMobilePhoneNotifyWlanDataChange: + return NotifyWlanDataChangeCancel(aTsyReqHandle); + case EMobilePhoneNotifyPreferredWlanSIDListChange: + return NotifyPreferredWlanSIDListChangeCancel(aTsyReqHandle); + case EMobilePhoneGetWlanData: + return GetWlanDataCancel(aTsyReqHandle); + case EMobilePhoneSetWlanData: + return SetWlanDataCancel(aTsyReqHandle); + case EMobilePhoneGetPreferredWlanSIDsPhase1: + case EMobilePhoneGetPreferredWlanSIDsPhase2: + return GetPreferredWlanSIDsCancel(aTsyReqHandle); + case EMobilePhoneStorePreferredWlanSIDList: + return StorePreferredWlanSIDListCancel(aTsyReqHandle); + + default: + return CPhoneBase::CancelService(aIpc,aTsyReqHandle); + } + } + +/***********************************************************************************/ +// +// The following methods are called from ExtFunc and/or CancelService. +// Each of these will process a TSY request or cancel a TSY request +// Here, example values are returned or checked within this dummy TSY in order to ensure +// that the integrity of the data passed to/from client is maintained +// +/***********************************************************************************/ + +TInt CPhoneDMmTsy::GetMultimodeCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMultimodeCaps called")); + *aCaps=DMMTSY_PHONE_MULTIMODE_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo, + TDes* aName) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called")); + + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo); + RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)(); + + if (aName->Compare(DMMTSY_PHONE_STORE_NAME1) == 0) + { + info.iName=DMMTSY_PHONE_STORE_NAME1; + info.iType=DMMTSY_PHONE_STORE_TYPE1; + info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1; + info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1; + info.iCaps=DMMTSY_PHONE_STORE_CAPS1; + AddDelayedReq(aTsyReqHandle,this); + } + else if (aName->Compare(DMMTSY_PHONE_STORE_NAME2) == 0) + { + info.iName=DMMTSY_PHONE_STORE_NAME2; + info.iType=DMMTSY_PHONE_STORE_TYPE2; + info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2; + info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2; + info.iCaps=DMMTSY_PHONE_STORE_CAPS2; + AddDelayedReq(aTsyReqHandle,this); + } + else + ReqCompleted(aTsyReqHandle,KErrCorrupt); + + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPhoneStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aGetInfo, + RMobilePhone::TPhoneStoreNameAndIccType* aTable) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfo called using IccType")); + + RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *infoPckg = REINTERPRET_CAST(RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg *,aGetInfo); + RMobilePhoneStore::TMobilePhoneStoreInfoV1 &info = (*infoPckg)(); + + if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME1) == 0) && + (aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0)) + { + info.iName=DMMTSY_PHONE_STORE_NAME1; + info.iType=DMMTSY_PHONE_STORE_TYPE1; + info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES1; + info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES1; + info.iCaps=DMMTSY_PHONE_STORE_CAPS1; + AddDelayedReq(aTsyReqHandle,this); + } + else if ((aTable->iStoreName.Compare(DMMTSY_PHONE_STORE_NAME2) == 0) && + (aTable->iMode.Compare(DMMTSY_PHONEBOOK_TYPE) == 0)) + { + info.iName=DMMTSY_PHONE_STORE_NAME2; + info.iType=DMMTSY_PHONE_STORE_TYPE2; + info.iTotalEntries=DMMTSY_PHONE_STORE_TOTAL_ENTRIES2; + info.iUsedEntries=DMMTSY_PHONE_STORE_USED_ENTRIES2; + info.iCaps=DMMTSY_PHONE_STORE_CAPS2; + AddDelayedReq(aTsyReqHandle,this); + } + else + ReqCompleted(aTsyReqHandle,KErrCorrupt); + + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPhoneStoreInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneStoreInfoCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIccAccessCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIccAccessCaps called")); + *aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS1; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIccAccessCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + if (!iNotifyIccAccessCaps++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChange called")); + *aCaps=DMMTSY_PHONE_SIM_ACCESS_CAPS2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccAccessCapsChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIccIdentity(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIccIdentity* aIdentity) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called")); + *aIdentity=DMMTSY_PHONE_ICC_ID; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIccIdentityCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIccIdentity called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCustomerServiceProfile(const TTsyReqHandle aTsyReqHandle, TDes8* aFile) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfile called")); + RMobilePhone::TMobilePhoneCspFileV1Pckg* cspV1Pckg = (RMobilePhone::TMobilePhoneCspFileV1Pckg*)aFile; + RMobilePhone::TMobilePhoneCspFileV1& cspV1 = (*cspV1Pckg)(); + + cspV1.iCallOfferingServices=DMMTSY_PHONE_CSP_BYTE1; + cspV1.iCallRestrictionServices=DMMTSY_PHONE_CSP_BYTE2; + cspV1.iOtherSuppServices=DMMTSY_PHONE_CSP_BYTE3; + cspV1.iCallCompletionServices=DMMTSY_PHONE_CSP_BYTE4; + cspV1.iTeleservices=DMMTSY_PHONE_CSP_BYTE5; + cspV1.iCphsTeleservices=DMMTSY_PHONE_CSP_BYTE6; + cspV1.iCphsFeatures=DMMTSY_PHONE_CSP_BYTE7; + cspV1.iNumberIdentServices=DMMTSY_PHONE_CSP_BYTE8; + cspV1.iPhase2PlusServices=DMMTSY_PHONE_CSP_BYTE9; + cspV1.iValueAddedServices=DMMTSY_PHONE_CSP_BYTE10; + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCustomerServiceProfileCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCustomerServiceProfileCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetServiceTable(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceTable* aTable, TDes8* aFile) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable called")); + RMobilePhone::TMobilePhoneServiceTableV1Pckg* sstFilePckg = (RMobilePhone::TMobilePhoneServiceTableV1Pckg*) aFile; + RMobilePhone::TMobilePhoneServiceTableV1 &sstFile = (*sstFilePckg)(); + + if (*aTable!=DMMTSY_PHONE_SERVICE_TABLE) + ReqCompleted(aTsyReqHandle,KErrCancel); + else + { + if(sstFile.ExtensionId()==KEtelExtMultimodeV8) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V8table")); + RMobilePhone::TMobilePhoneServiceTableV8Pckg* sstV8Pckg = (RMobilePhone::TMobilePhoneServiceTableV8Pckg*)aFile; + RMobilePhone::TMobilePhoneServiceTableV8& sstV8 = (*sstV8Pckg)(); + + sstV8.iServices1To8=DMMTSY_PHONE_SST_BYTE1; + sstV8.iServices9To16=DMMTSY_PHONE_SST_BYTE2; + sstV8.iServices17To24=DMMTSY_PHONE_SST_BYTE3; + sstV8.iServices25To32=DMMTSY_PHONE_SST_BYTE4; + sstV8.iServices33To40=DMMTSY_PHONE_SST_BYTE5; + sstV8.iServices41To48=DMMTSY_PHONE_SST_BYTE6; + sstV8.iServices49To56=DMMTSY_PHONE_SST_BYTE7; + sstV8.iAID=DMMTSY_PHONE_USIM_AID; + sstV8.iServices57To64=DMMTSY_PHONE_SST_BYTE8; + sstV8.iServices65To72=DMMTSY_PHONE_SST_BYTE9; + } + + if(sstFile.ExtensionId()==KETelExtMultimodeV2) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V2table")); + RMobilePhone::TMobilePhoneServiceTableV2Pckg* sstV2Pckg = (RMobilePhone::TMobilePhoneServiceTableV2Pckg*)aFile; + RMobilePhone::TMobilePhoneServiceTableV2& sstV2 = (*sstV2Pckg)(); + + sstV2.iServices1To8=DMMTSY_PHONE_SST_BYTE1; + sstV2.iServices9To16=DMMTSY_PHONE_SST_BYTE2; + sstV2.iServices17To24=DMMTSY_PHONE_SST_BYTE3; + sstV2.iServices25To32=DMMTSY_PHONE_SST_BYTE4; + sstV2.iServices33To40=DMMTSY_PHONE_SST_BYTE5; + sstV2.iServices41To48=DMMTSY_PHONE_SST_BYTE6; + sstV2.iServices49To56=DMMTSY_PHONE_SST_BYTE7; + sstV2.iAID=DMMTSY_PHONE_USIM_AID; + } + else if(sstFile.ExtensionId()==KETelExtMultimodeV1) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTable is using V1table")); + + sstFile.iServices1To8=DMMTSY_PHONE_SST_BYTE1; + sstFile.iServices9To16=DMMTSY_PHONE_SST_BYTE2; + sstFile.iServices17To24=DMMTSY_PHONE_SST_BYTE3; + sstFile.iServices25To32=DMMTSY_PHONE_SST_BYTE4; + sstFile.iServices33To40=DMMTSY_PHONE_SST_BYTE5; + sstFile.iServices41To48=DMMTSY_PHONE_SST_BYTE6; + sstFile.iServices49To56=DMMTSY_PHONE_SST_BYTE7; + } + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetServiceTableCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceTableCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetBatteryCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryCaps called")); + *aCaps=DMMTSY_PHONE_BATTERY_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetBatteryInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfo called")); + aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS1; + aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE1; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetBatteryInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetBatteryInfoCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyBatteryInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo) + { + if (!iNotifyBatteryInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChange called")); + aInfo->iStatus=DMMTSY_PHONE_BATTERY_STATUS2; + aInfo->iChargeLevel=DMMTSY_PHONE_BATTERY_CHARGE2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyBatteryInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyBatteryInfoChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSignalCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSignalCaps called")); + *aCaps=DMMTSY_PHONE_SIGNAL_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSignalStrength(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrength called")); + *aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH1; + *aBar=DMMTSY_PHONE_SIGNAL_BAR1; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSignalStrengthCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSignalStrengthCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySignalStrengthChange(const TTsyReqHandle aTsyReqHandle, TInt32* aSignalStrength, TInt8* aBar) + { + if (!iNotifySignalStrengthChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChange called")); + *aSignalStrength=DMMTSY_PHONE_SIGNAL_STRENGTH2; + *aBar=DMMTSY_PHONE_SIGNAL_BAR2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySignalStrengthChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySignalStrengthChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIndicatorCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aActionCaps, TUint32* aIndCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCaps called")); + *aActionCaps=DMMTSY_PHONE_ACTION_INDICATOR_CAPS; + *aIndCaps=DMMTSY_PHONE_INDICATOR_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIndicator(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIndicator called")); + *aIndicator=DMMTSY_PHONE_INDICATOR1; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIndicatorCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIndicatorCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIndicatorChange(const TTsyReqHandle aTsyReqHandle, TUint32* aIndicator) + { + if (!iNotifyIndicatorChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChange called")); + *aIndicator=DMMTSY_PHONE_INDICATOR2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIndicatorChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIndicatorChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIdentityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityCaps called")); + *aCaps=DMMTSY_PHONE_IDENTITY_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPhoneId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdentityV1* aId) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneId called")); + aId->iManufacturer=DMMTSY_PHONE_MANUFACTURER; + aId->iModel=DMMTSY_PHONE_MODEL; + aId->iRevision=DMMTSY_PHONE_REVISION; + aId->iSerialNumber=DMMTSY_PHONE_SERIAL_NUMBER; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPhoneIdCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPhoneIdCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSubscriberId(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSubscriberId* aId) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberId called")); + *aId=DMMTSY_PHONE_SUBSCRIBER_ID; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSubscriberIdCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSubscriberIdCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetDTMFCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDTMFCaps called")); + *aCaps=DMMTSY_PHONE_DTMF_CAPS1; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyDTMFCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + if (!iNotifyDTMFCapsChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChange called")); + *aCaps=DMMTSY_PHONE_DTMF_CAPS2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyDTMFCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFCapsChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyStopInDTMFString(const TTsyReqHandle aTsyReqHandle) + { + if (!iNotifyStopInDTMFString++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFString called")); + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyStopInDTMFStringCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyStopInDTMFStringCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::ContinueDTMFStringSending(const TTsyReqHandle aTsyReqHandle, TBool *aContinue) + { + TInt err = KErrNone; + if (!(*aContinue)) + err = KErrCorrupt; + ReqCompleted(aTsyReqHandle,err); + return KErrNone; + } + +TInt CPhoneDMmTsy::SendDTMFTones(const TTsyReqHandle aTsyReqHandle, TDesC* aTones) + { + LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTones called")); + if (aTones->Length()!=DMMTSY_PHONE_SEND_TONES_LENGTH) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else if (aTones->Compare(DMMTSY_PHONE_SEND_TONES)!=KErrNone) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SendDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SendDTMFTonesCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::ReadDTMFTones(const TTsyReqHandle aTsyReqHandle, TDes* aTones) + { + LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTones called")); + aTones->Copy(DMMTSY_PHONE_READ_TONES); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::ReadDTMFTonesCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ReadDTMFTonesCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::StartDTMFTone(const TTsyReqHandle aTsyReqHandle, TChar* aTone) + { + LOGTEXT(_L8("CPhoneDMmTsy::StartDTMFTone called")); + if (*aTone != DMMTSY_PHONE_SINGLE_TONE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::StopDTMFTone(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::StopDTMFTone called")); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkCaps called")); + *aCaps=DMMTSY_PHONE_NETWORK_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentMode called")); + *aMode=DMMTSY_PHONE_NETWORK_MODE1; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aMode) + { + if (!iNotifyModeChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChange called")); + *aMode=DMMTSY_PHONE_NETWORK_MODE2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyModeChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyModeChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetHomeNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetwork called")); + RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)(); + + networkInfoV1.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + networkInfoV1.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + networkInfoV1.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + networkInfoV1.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + networkInfoV1.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + networkInfoV1.iCdmaSID=DMMTSY_PHONE_HOME_NETWORK_SID; + networkInfoV1.iAnalogSID=DMMTSY_PHONE_HOME_NETWORK_SID; + networkInfoV1.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + networkInfoV1.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + networkInfoV1.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + + if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8) + { + RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)(); + networkInfoV8.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; + networkInfoV8.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; + networkInfoV8.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; + networkInfoV8.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY; + } + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetHomeNetworkCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentNetwork(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetwork called")); + RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoV1Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfoV1 = (*networkInfoV1Pckg)(); + + if(networkInfoV1.ExtensionId() == KETelExt3rdPartyV1) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called")); + RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg; + RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)(); + + networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV; + networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV; + networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV; + networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV; + networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV; + networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV; + networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV; + networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV; + networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV; + networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV; + + if(aArea) + { + aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV; + aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV; + aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV; + + } + + } + else + { + if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV8) + { + RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)(); + networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; + + networkInfoV8.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1; + networkInfoV8.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1; + networkInfoV8.iHsupaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1; + } + + + else if(networkInfoV1.ExtensionId() == KEtelExtMultimodeV5) + { + RMobilePhone::TMobilePhoneNetworkInfoV5Pckg* networkInfoV5Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV5Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV5& networkInfoV5 = (*networkInfoV5Pckg)(); + networkInfoV5.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM; + + networkInfoV5.iHsdpaAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY; + networkInfoV5.iEgprsAvailableIndicator = DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY; + } + + else if(networkInfoV1.ExtensionId() == KETelExtMultimodeV2) + { + RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)(); + networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM; + } + + networkInfoV1.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; + networkInfoV1.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; + networkInfoV1.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; + networkInfoV1.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; + networkInfoV1.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; + networkInfoV1.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_SID; + networkInfoV1.iAnalogSID=DMMTSY_PHONE_CURRENT_NETWORK_SID; + networkInfoV1.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; + networkInfoV1.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; + networkInfoV1.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; + + if(aArea) + { + aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN; + aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC1; + aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID1; + } + } + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentNetworkCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCurrentNetworkChange(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkInfoPckg, RMobilePhone::TMobilePhoneLocationAreaV1* aArea) + { + if (!iNotifyCurrentNetworkChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChange called")); + + RMobilePhone::TMobilePhoneNetworkInfoV1Pckg* networkInfoPckg = (RMobilePhone::TMobilePhoneNetworkInfoV1Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV1& networkInfo = (*networkInfoPckg)(); + + if(networkInfo.ExtensionId() == KETelExt3rdPartyV1) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkISV called")); + RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg* networkInfoISVPckg = (RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1Pckg*)aNetworkInfoPckg; + RMobilePhone::TEtel3rdPartyMobileNetworkInfoV1& networkInfoISV = (*networkInfoISVPckg)(); + + networkInfoISV.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE_ISV2; + networkInfoISV.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS_ISV2; + networkInfoISV.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND_ISV2; + networkInfoISV.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC_ISV2; + networkInfoISV.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID_ISV2; + networkInfoISV.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG_ISV2; + networkInfoISV.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME_ISV2; + networkInfoISV.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME_ISV2; + networkInfoISV.iCdmaSID=DMMTSY_PHONE_CURRENT_NETWORK_CDMASID_ISV2; + networkInfoISV.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_UTRAN_ISV2; + + aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN_ISV2; + aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC_ISV2; + aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID_ISV2; + + } + else + { + if(networkInfo.ExtensionId() == KETelExtMultimodeV2) + { + RMobilePhone::TMobilePhoneNetworkInfoV2Pckg* networkInfoV2Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV2Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV2& networkInfoV2 = (*networkInfoV2Pckg)(); + networkInfoV2.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_GSM; + //reset for V1 + iNotifyCurrentNetworkChange = 0; + } + + if(networkInfo.ExtensionId() == KEtelExtMultimodeV8) + { + RMobilePhone::TMobilePhoneNetworkInfoV8Pckg* networkInfoV8Pckg = (RMobilePhone::TMobilePhoneNetworkInfoV8Pckg*)aNetworkInfoPckg; + RMobilePhone::TMobilePhoneNetworkInfoV8& networkInfoV8 = (*networkInfoV8Pckg)(); + networkInfoV8.iAccess = DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; + //reset for V8 + networkInfoV8.iHsdpaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2; + networkInfoV8.iEgprsAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2; + networkInfoV8.iHsupaAvailableIndicator= DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2; + iNotifyCurrentNetworkChange = 0; + } + + networkInfo.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; + networkInfo.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; + networkInfo.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; + networkInfo.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; + networkInfo.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; + networkInfo.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; + networkInfo.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; + networkInfo.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; + + if(aArea) + { + aArea->iAreaKnown=DMMTSY_PHONE_CURRENT_NETWORK_AREAKNOWN; + aArea->iLocationAreaCode=DMMTSY_PHONE_CURRENT_NETWORK_LAC2; + aArea->iCellId=DMMTSY_PHONE_CURRENT_NETWORK_CELLID2; + } + + + } + //reset for etel3rd + iNotifyCurrentNetworkChange = 0; + + AddDelayedReq(aTsyReqHandle,this); + } + else + { + //reset for multiple completion test + iNotifyCurrentNetworkChange = 0; + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCurrentNetworkChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCellInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfo called")); + RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg; + RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)(); + + cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE; + cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID; + cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE; + cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS; + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCellInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCellInfoCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCellInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCellInfoPckg) + { + if (!iNotifyCellInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChange called")); + + RMobilePhone::TMobilePhoneCellInfoV9Pckg* cellInfoPckg = (RMobilePhone::TMobilePhoneCellInfoV9Pckg*)aCellInfoPckg; + RMobilePhone::TMobilePhoneCellInfoV9& cellInfo = (*cellInfoPckg)(); + + cellInfo.iMode = DMMTSY_PHONE_CELL_INFO_MODE2; + cellInfo.iCellId = DMMTSY_PHONE_CELL_INFO_CELLID2; + cellInfo.iTimingAdvance = DMMTSY_PHONE_CELL_INFO_TIMING_ADVANCE2; + cellInfo.iStatus = DMMTSY_PHONE_CELL_INFO_STATUS2; + + AddDelayedReq(aTsyReqHandle,this); + } + else + { + //reset for multiple completion test + iNotifyCellInfoChange = 0; + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCellInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCellInfoChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkRegistrationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatus called")); + *aStatus=DMMTSY_PHONE_REGISTRATION_STATUS1; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkRegistrationStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkRegistrationStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneRegistrationStatus* aStatus) + { + if(!iNotifyNetworkRegistrationStatusChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChange called")); + *aStatus=DMMTSY_PHONE_REGISTRATION_STATUS2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkRegistrationStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase1 called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetDetectedNetworksPhase1L(aTsyReqHandle, aClient, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetDetectedNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, + TInt* aBufSize) + { + // retrieve detected networks from phone, + // store each network as a list entry, + // stream the list and then return size of this buffer to client + CMobilePhoneNetworkList* list=CMobilePhoneNetworkList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneNetworkInfoV1 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) + { + switch (index) + { + case 0: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; + break; + case 1: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; + break; + case 2: + default: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetDetectedNetworks->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + + + +TInt CPhoneDMmTsy::GetDetectedNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetDetectedNetworks->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetDetectedNetworks + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetDetectedNetworks->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase1 called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetDetectedNetworksV2Phase1L(aTsyReqHandle, aClient, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV2Phase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, + TInt* aBufSize) + { + // Retrieve detected networks from phone, + // Store each network as a list entry of type TMobilePhoneNetworkInfoV2, + // Stream the list and then return size of this buffer to client + CMobilePhoneNetworkListV2* list=CMobilePhoneNetworkListV2::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneNetworkInfoV2 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) + { + switch (index) + { + case 0: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; + entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; + break; + case 1: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; + entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; + break; + case 2: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; + break; + case 3: + default: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetDetectedNetworks->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + + + +TInt CPhoneDMmTsy::GetDetectedNetworksV2Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Phase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetDetectedNetworks->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksV2Cancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV2Cancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetDetectedNetworks + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetDetectedNetworks->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +// +// GetDetectedNetworksV8 // +// +TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase1 called")); + TInt ret=KErrNone; + TRAPD(leaveCode, ret=ProcessGetDetectedNetworksV8Phase1L(aTsyReqHandle, aClient, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV8Phase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + // Retrieve detected networks from phone, + // Store each network as a list entry of type TMobilePhoneNetworkInfoV8, + // Stream the list and then return size of this buffer to client + CMobilePhoneNetworkListV8* list=CMobilePhoneNetworkListV8::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneNetworkInfoV8 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) + { + switch (index) + { + case 0: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; + entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1; + entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY1; + break; + case 1: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; + entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2; + entry.iHsupaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSUPA_AVAILABILITY2; + break; + case 2: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; + entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY; + break; + case 3: + default: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; + entry.iHsupaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSUPA_AVAILABILITY; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetDetectedNetworks->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksV8Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Phase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetDetectedNetworks->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksV8Cancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV8Cancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetDetectedNetworks + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetDetectedNetworks->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + +// +// GetDetectedNetworksV5 // +// +TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase1 called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetDetectedNetworksV5Phase1L(aTsyReqHandle, aClient, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetDetectedNetworksV5Phase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, + TInt* aBufSize) + { + // Retrieve detected networks from phone, + // Store each network as a list entry of type TMobilePhoneNetworkInfoV2, + // Stream the list and then return size of this buffer to client + CMobilePhoneNetworkListV5* list=CMobilePhoneNetworkListV5::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneNetworkInfoV5 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_NETWORK_COUNT; index++) + { + switch (index) + { + case 0: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE1; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS1; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND1; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC1; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID1; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG1; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME1; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME1; + entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH1; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY1; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY1; + break; + case 1: + entry.iMode=DMMTSY_PHONE_CURRENT_NETWORK_MODE2; + entry.iStatus=DMMTSY_PHONE_CURRENT_NETWORK_STATUS2; + entry.iBandInfo=DMMTSY_PHONE_CURRENT_NETWORK_BAND2; + entry.iCountryCode=DMMTSY_PHONE_CURRENT_NETWORK_MCC2; + entry.iNetworkId=DMMTSY_PHONE_CURRENT_NETWORK_ID2; + entry.iDisplayTag=DMMTSY_PHONE_CURRENT_NETWORK_TAG2; + entry.iShortName=DMMTSY_PHONE_CURRENT_NETWORK_SHORT_NAME2; + entry.iLongName=DMMTSY_PHONE_CURRENT_NETWORK_LONG_NAME2; + entry.iAccess=DMMTSY_PHONE_CURRENT_NETWORK_ACCESS_TECH2; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_HSDPA_AVAILABILITY2; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_CURRENT_NETWORK_EGPRS_AVAILABILITY2; + break; + case 2: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; + break; + case 3: + default: + entry.iMode=DMMTSY_PHONE_HOME_NETWORK_MODE; + entry.iStatus=DMMTSY_PHONE_HOME_NETWORK_STATUS; + entry.iBandInfo=DMMTSY_PHONE_HOME_NETWORK_BAND; + entry.iCountryCode=DMMTSY_PHONE_HOME_NETWORK_MCC; + entry.iNetworkId=DMMTSY_PHONE_HOME_NETWORK_ID; + entry.iDisplayTag=DMMTSY_PHONE_HOME_NETWORK_TAG; + entry.iShortName=DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + entry.iLongName=DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + entry.iAccess=DMMTSY_PHONE_HOME_NETWORK_ACCESS_TECH3; + entry.iHsdpaAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_HSDPA_AVAILABILITY; + entry.iEgprsAvailableIndicator=DMMTSY_PHONE_HOME_NETWORK_EGPRS_AVAILABILITY; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetDetectedNetworks->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksV5Phase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Phase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetDetectedNetworks->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetDetectedNetworksV5Cancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDetectedNetworksV5Cancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetDetectedNetworks + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetDetectedNetworks->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetDetectedNetworks->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +// + +TInt CPhoneDMmTsy::GetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSelectionSetting called")); + RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting; + RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)(); + + selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1; + selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1; + selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetNetworkSelectionSetting(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSetting called")); + RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting; + RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)(); + + if ((selection.iMethod != DMMTSY_PHONE_NETWORK_SELECTION_METHOD2) || + (selection.iBandClass != DMMTSY_PHONE_NETWORK_SELECTION_BAND2) || + (selection.iOperationMode != DMMTSY_PHONE_NETWORK_SELECTION_OPERATION2)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetNetworkSelectionSettingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetNetworkSelectionSettingCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChange(const TTsyReqHandle aTsyReqHandle, TDes8* aSetting) + { + if(!iNotifyNetworkSelectionSettingChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChange called")); + + RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg* selectionPckg = (RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg*)aSetting; + RMobilePhone::TMobilePhoneNetworkSelectionV1& selection = (*selectionPckg)(); + + selection.iMethod = DMMTSY_PHONE_NETWORK_SELECTION_METHOD1; + selection.iBandClass = DMMTSY_PHONE_NETWORK_SELECTION_BAND1; + selection.iOperationMode = DMMTSY_PHONE_NETWORK_SELECTION_OPERATION1; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSelectionSettingChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SelectNetwork(const TTsyReqHandle aTsyReqHandle, + TBool* aIsManual, + RMobilePhone::TMobilePhoneNetworkManualSelection* aManualSelection) + { + LOGTEXT(_L8("CPhoneDMmTsy::SelectNetwork called")); + + if (*aIsManual==DMMTSY_PHONE_MANUAL_SELECTION) + { + if ((aManualSelection->iCountry != DMMTSY_PHONE_COUNTRY_ID) || + (aManualSelection->iNetwork != DMMTSY_PHONE_NETWORK_ID)) + + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + } + else + ReqCompleted(aTsyReqHandle,KErrCorrupt); + + return KErrNone; + } + +TInt CPhoneDMmTsy::SelectNetworkCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SelectNetworkCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkTimeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkTimeInfo called")); + + aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED; + aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY, + DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND, + DMMTSY_PHONE_NWTINFO_MICRO); + aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE; + aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID; + aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID; + aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST; + + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNITZ* aDateTime) + { + if(!iNotifyNetworkTimeInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChange called")); + + aDateTime->iNitzFieldsUsed = DMMTSY_PHONE_NWTINFO_NITZ_USED; + aDateTime->Set(DMMTSY_PHONE_NWTINFO_YEAR,DMMTSY_PHONE_NWTINFO_MONTH,DMMTSY_PHONE_NWTINFO_DAY, + DMMTSY_PHONE_NWTINFO_HOUR, DMMTSY_PHONE_NWTINFO_MINUTE, DMMTSY_PHONE_NWTINFO_SECOND, + DMMTSY_PHONE_NWTINFO_MICRO); + aDateTime->iTimeZone = DMMTSY_PHONE_NWTINFO_TIMEZONE; + aDateTime->iLongNetworkId = DMMTSY_PHONE_NWTINFO_LONG_ID; + aDateTime->iShortNetworkId = DMMTSY_PHONE_NWTINFO_SHORT_ID; + aDateTime->iDST = DMMTSY_PHONE_NWTINFO_DST; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkTimeInfoChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetServiceProviderName(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneServiceProviderNameV2* aName) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderName called")); + + aName->iDisplayReq = DMMTSY_PHONE_DISPREQ; + aName->iSPName = DMMTSY_PHONE_SPN_NAME; + aName->iPLMNField = DMMTSY_PHONE_PLMN_FIELD; + + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetServiceProviderNameCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetServiceProviderNameCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetDefaultPrivacy called")); + + *aSetting = DMMTSY_PHONE_PRIVACY_SETTING1; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetDefaultPrivacy(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacy called")); + + if (*aSetting != DMMTSY_PHONE_PRIVACY_SETTING1) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetDefaultPrivacyCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetDefaultPrivacyCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyDefaultPrivacyChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePrivacy* aSetting) + { + if(!iNotifyDefaultPrivacyChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChange called")); + + *aSetting = DMMTSY_PHONE_PRIVACY_SETTING2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyDefaultPrivacyChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallServiceCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallServiceCaps called")); + *aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS1; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallServiceCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + if (!iNotifyCallServiceCaps++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChange called")); + *aCaps=DMMTSY_PHONE_CALL_SERVICE_CAPS2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallServiceCapsChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::ProgramFeatureCodeString(const TTsyReqHandle aTsyReqHandle, + TDesC* aFCString, RMobilePhone::TNetworkServiceAndAction *aFeatureCode) + { + LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeString called")); + if ((aFCString->Compare(DMMTSY_PHONE_FEATURE_CODE) != 0) || + (aFeatureCode->iService != DMMTSY_PHONE_NETWORK_SERVICE) || + (aFeatureCode->iAction != DMMTSY_PHONE_NETWORK_SERVICE_ACTION)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::ProgramFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ProgramFeatureCodeStringCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetFeatureCodeString(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TNetworkServiceAndAction *aFeatureCode, TDes *aFCString) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeString called")); + if (aFeatureCode->iService!=DMMTSY_PHONE_NETWORK_SERVICE2 || aFeatureCode->iAction!=DMMTSY_PHONE_NETWORK_SERVICE_ACTION2) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + *aFCString=DMMTSY_PHONE_FEATURE_CODE2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetFeatureCodeStringCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetFeatureCodeStringCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, TDesC* aString) + { + LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequest called")); + if (aString->Compare(DMMTSY_PHONE_NETWORK_SERVICE_REQUEST)!=0) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SendNetworkServiceRequestCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallForwardingStatusPhase1(const TTsyReqHandle aTsyReqHandle, + CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, + TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase1 called")); + TInt ret=KErrNone; + + if ( ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) && + (aReqData->iLocation==DMMTSY_PHONE_CF_LOCATION) && + (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) ) || + ( (aReqData->iCondition==DMMTSY_PHONE_CF_CONDITION_CFU) && + (aReqData->iServiceGroup==DMMTSY_PHONE_CF_SERVICE_GROUP_FAX) && + (aReqData->iLocation==DMMTSY_PHONE_CF_CACHELOCATION) ) ) + { + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetCallForwardingStatusPhase1L(aTsyReqHandle, aReqData, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + } + else + ReqCompleted(aTsyReqHandle,KErrCorrupt); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetCallForwardingStatusPhase1L(const TTsyReqHandle aTsyReqHandle, + CRetrieveMobilePhoneCFList::TGetCallForwardingRequest* aReqData, + TInt* aBufSize) + { + // retrieve call forwarding status of each line from phone, + // store each CF status response as a list entry, + // stream the list and then return size of this buffer to client + + CMobilePhoneCFList* list=CMobilePhoneCFList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneCFInfoEntryV1 entry; + RMobilePhone::TMobileService servicegroup = aReqData->iServiceGroup; + + // fill up an example list + for (TInt index=0; index < DMMTSY_CF_ENTRY_COUNT; index++) + { + switch (index) + { + case 0: + entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; + entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE; + entry.iStatus=DMMTSY_PHONE_CF_NOT_ACTIVE; + entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER; + entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT; + break; + case 1: + entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; + entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_DATA; + entry.iStatus=DMMTSY_PHONE_CF_ACTIVE; + entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER; + entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT; + break; + case 2: + entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; + entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX; + entry.iStatus=DMMTSY_PHONE_CF_ACTIVE; + entry.iNumber.iTelNumber=DMMTSY_PHONE_TEL_NUMBER; + entry.iTimeout=DMMTSY_PHONE_CF_TIMEOUT; + break; + case 3: + default: + entry.iCondition=DMMTSY_PHONE_CF_CONDITION_CFU; + entry.iServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_AUXVOICE; + entry.iStatus=DMMTSY_PHONE_CF_UNKNOWN; + entry.iTimeout=-1; + break; + } + // Add the entry into the list, at the next empty location + if( (servicegroup == DMMTSY_PHONE_CF_SERVICE_GROUP_ALL) || (servicegroup == entry.iServiceGroup) ) + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetCFStatus->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetCallForwardingStatusPhase2(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetCFStatus->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetCFStatus->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetCFStatus + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetCFStatus->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetCFStatus->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallForwardingStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition) + { + if(!iNotifyCallForwardingStatusChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChange called")); + *aCondition=DMMTSY_PHONE_CF_CONDITION_ALL; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallForwardingStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCFCondition* aCondition, RMobilePhone::TMobilePhoneCFChangeV1* aInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatus called")); + if ((*aCondition!=DMMTSY_PHONE_CF_CONDITION_CFNRy) || + (aInfo->iServiceGroup!=DMMTSY_PHONE_CF_SERVICE_GROUP_VOICE) || + (aInfo->iAction!=DMMTSY_PHONE_CF_SETTING) || + (aInfo->iNumber.iTelNumber!=DMMTSY_PHONE_TEL_NUMBER) || + (aInfo->iTimeout!=DMMTSY_PHONE_CF_TIMEOUT)) + + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallForwardingStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallForwardingStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallForwardingActive(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileService* aServiceGroup, RMobilePhone::TMobilePhoneCFActive* aActive) + { + if(!iNotifyCallForwardingActive++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActive called")); + *aActive=DMMTSY_PHONE_CF_ACTIVE_TYPE; + *aServiceGroup=DMMTSY_PHONE_CF_SERVICE_GROUP_FAX; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallForwardingActiveCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallForwardingActiveCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIdentityServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TIdServiceAndLocation *aInfo, + RMobilePhone::TMobilePhoneIdServiceStatus* aStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatus called")); + if (aInfo->iLocation != DMMTSY_PHONE_ID_LOCATION || aInfo->iService != DMMTSY_PHONE_ID_SERVICE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + *aStatus = DMMTSY_PHONE_ID_STATUS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIdentityServiceStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIdentityServiceStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallBarringPhase1(const TTsyReqHandle aTsyReqHandle, + CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData, + TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase1 called")); + TInt ret=KErrNone; + + if ((aReqData->iCondition!=DMMTSY_PHONE_CB_CONDITION) || + (aReqData->iLocation!=DMMTSY_PHONE_CB_LOCATION)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetCallBarringPhase1L(aTsyReqHandle, aReqData, aBufSize)); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + } + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetCallBarringPhase1L(const TTsyReqHandle aTsyReqHandle, + CRetrieveMobilePhoneCBList::TGetCallBarringRequest* aReqData, + TInt* aBufSize) + { + // retrieve call forwarding status of each line from phone, + // store each CB status response as a list entry, + // stream the list and then return size of this buffer to client + + CMobilePhoneCBList* list=CMobilePhoneCBList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneCBInfoEntryV1 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_CALL_BARRING_COUNT; index++) + { + switch (index) + { + case 0: + entry.iCondition = DMMTSY_PHONE_CB_CONDITION0; + entry.iServiceGroup = DMMTSY_PHONE_CB_SG0; + entry.iStatus = DMMTSY_PHONE_CB_STATUS0; + break; + case 1: + entry.iCondition = DMMTSY_PHONE_CB_CONDITION1; + entry.iServiceGroup = DMMTSY_PHONE_CB_SG1; + entry.iStatus = DMMTSY_PHONE_CB_STATUS1; + break; + case 2: + entry.iCondition = DMMTSY_PHONE_CB_CONDITION2; + entry.iServiceGroup = DMMTSY_PHONE_CB_SG2; + entry.iStatus = DMMTSY_PHONE_CB_STATUS2; + break; + case 3: + default: + entry.iCondition = DMMTSY_PHONE_CB_CONDITION3; + entry.iServiceGroup = DMMTSY_PHONE_CB_SG3; + entry.iStatus = DMMTSY_PHONE_CB_STATUS3; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetCB->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetCallBarringPhase2(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get call barring attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetCB->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetCB->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetCallBarringCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallBarringCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetCB + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetCB->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetCB->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallBarringStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition *aCondition, RMobilePhone::TMobilePhoneCBChangeV1* aInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatus called")); + if (*aCondition != DMMTSY_PHONE_CB_CONDITION || aInfo->iAction != DMMTSY_PHONE_CB_ACTION || + (aInfo->iPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallBarringStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallBarringStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCBCondition* aCondition) + { + if (!iNotifyCallBarringStatusChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChange called")); + *aCondition = DMMTSY_PHONE_CB_CONDITION; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallBarringStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallBarringPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV1* aPassword) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPassword called")); + if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) || + (aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallBarringPasswordCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallBarringPasswordCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetSSPassword(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePasswordChangeV2* aPassword, TInt* aService) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetSSPassword called")); + if ((aPassword->iOldPassword.Compare(DMMTSY_PHONE_CB_PASSWORD) != 0) || + (aPassword->iNewPassword.Compare(DMMTSY_PHONE_CB_NEW_PASSWORD) != 0) || + (aPassword->iVerifiedPassword.Compare(DMMTSY_PHONE_CB_VERIFIED_PASSWORD) != 0) && + aService != DMMTSY_PHONE_CB_ALL_SERVICES ) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetSSPasswordCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetSSPasswordCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + + +TInt CPhoneDMmTsy::GetCallWaitingPhase1(const TTsyReqHandle aTsyReqHandle, + CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, + TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase1 called")); + TInt ret=KErrNone; + + if (aReqData->iLocation!=DMMTSY_PHONE_CW_LOCATION) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetCallWaitingPhase1L(aTsyReqHandle, aReqData, aBufSize)); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + } + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetCallWaitingPhase1L(const TTsyReqHandle aTsyReqHandle, + CRetrieveMobilePhoneCWList::TGetCallWaitingRequest* aReqData, + TInt* aBufSize) + { + // retrieve call forwarding status of each line from phone, + // store each CW status response as a list entry, + // stream the list and then return size of this buffer to client + + CMobilePhoneCWList* list=CMobilePhoneCWList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneCWInfoEntryV1 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_CW_ENTRY_COUNT; index++) + { + switch (index) + { + case 0: + entry.iServiceGroup = DMMTSY_PHONE_CW_SG0; + entry.iStatus = DMMTSY_PHONE_CW_STATUS0; + break; + case 1: + entry.iServiceGroup = DMMTSY_PHONE_CW_SG1; + entry.iStatus = DMMTSY_PHONE_CW_STATUS1; + break; + case 2: + entry.iServiceGroup = DMMTSY_PHONE_CW_SG2; + entry.iStatus = DMMTSY_PHONE_CW_STATUS2; + break; + case 3: + default: + entry.iServiceGroup = DMMTSY_PHONE_CW_SG3; + entry.iStatus = DMMTSY_PHONE_CW_STATUS3; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(&(aReqData->iClient),aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetCWStatus->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetCallWaitingPhase2(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get call waiting attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetCWStatus->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetCWStatus->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetCallWaitingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetCWStatus + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetCWStatus->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetCWStatus->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + +TInt CPhoneDMmTsy::SetCallWaitingStatus(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TMobileService* aServiceGroup, + RMobilePhone::TMobilePhoneServiceAction *aAction) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatus called")); + if ((*aAction != DMMTSY_PHONE_CW_SET_STATUS_ACTION) || + (*aServiceGroup != DMMTSY_PHONE_CW_SG0)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetCallWaitingStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetCallWaitingStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallWaitingStatusChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCWStatus) + { + if (!iNotifyCallWaitingStatusChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChange called")); + RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg *cwInfoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCWInfoEntryV1Pckg*,aCWStatus); + RMobilePhone::TMobilePhoneCWInfoEntryV1 &cwInfo = (*cwInfoPckg)(); + cwInfo.iServiceGroup = DMMTSY_PHONE_CW_SG0; + cwInfo.iStatus = DMMTSY_PHONE_CW_STATUS0; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCallWaitingStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCCBSStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus, RMobilePhone::TMobileInfoLocation* aLocation) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatus called")); + if (*aLocation != DMMTSY_PHONE_CCC_LOCATION) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + *aCcbsStatus = DMMTSY_PHONE_CCC_STATUS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCCBSStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCCBSStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCCBSStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCCBSStatus* aCcbsStatus) + { + if (!iNotifyCCBSStatusChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChange called")); + *aCcbsStatus = DMMTSY_PHONE_CCC_STATUS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCCBSStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCCBSRecall(const TTsyReqHandle aTsyReqHandle, TDes8* aCCBSEntry) + { +// _asm{int 3}; + if (!iNotifyCCBSRecall++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecall called")); + + RMobilePhone::TMobilePhoneCCBSEntryV1Pckg* ccbsPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV1Pckg*,aCCBSEntry); + RMobilePhone::TMobilePhoneCCBSEntryV1& ccbs = (*ccbsPckg)(); + + ccbs.iCcbsIndex=DMMTSY_PHONE_CCC_INDEX1; + ccbs.iServiceGroup=DMMTSY_PHONE_CCC_SERVICE_GROUP0; + ccbs.iDestination.iNumberPlan=DMMTSY_PHONE_CCC_DESTINATION_NP0; + ccbs.iDestination.iTelNumber= DMMTSY_PHONE_CCC_DESTINATION_NUM0; + ccbs.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0; + + if(ccbs.ExtensionId()==KETelExtMultimodeV2) + { + RMobilePhone::TMobilePhoneCCBSEntryV2Pckg* ccbsPckgV2 = STATIC_CAST(RMobilePhone::TMobilePhoneCCBSEntryV2Pckg*,aCCBSEntry); + RMobilePhone::TMobilePhoneCCBSEntryV2& ccbs2 = (*ccbsPckgV2)(); + + // Set that the network has informed us that the CCBS request can proceed + ccbs2.iEvent = DMMTSY_PHONE_CCC_DESTINATION_CCBS_RECEIVED; + //reset for multiple complete V1 + iNotifyCCBSRecall = 0; + } + + AddDelayedReq(aTsyReqHandle,this); + } + else + { + // reset for the V2 test + iNotifyCCBSRecall=0; + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCCBSRecallCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::AcceptCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, TDes* aCallName) + { + LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecall called")); + if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) + return KErrCorrupt; + *aCallName = DMMTSY_PHONE_CCC_CALLNAME0; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::AcceptCCBSRecallCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::AcceptCCBSRecallCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::RefuseCCBSRecall(const TTsyReqHandle aTsyReqHandle, TInt* aIndex) + { + LOGTEXT(_L8("CPhoneDMmTsy::RefuseCCBSRecall called")); + if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) + return KErrCorrupt; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + + +TInt CPhoneDMmTsy::DeactivateCCBS(const TTsyReqHandle aTsyReqHandle, TInt* aIndex) + { + if (*aIndex== -1) //-1 means deactivate all + return KErrEtelCallNotActive; + if(*aIndex!=DMMTSY_PHONE_CCC_INDEX1) + return KErrCorrupt; + + LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBS called")); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::DeactivateCCBSCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::DeactivateAllCCBSCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallCompletionPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aReqData, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase1 called")); + TInt ret = KErrNone; + + TRAPD(leaveCode, ret=ProcessGetCallCompletionPhase1L(aTsyReqHandle, aReqData, aBufSize)); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetCallCompletionPhase1L(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClientId, TInt* aBufSize) + { + CMobilePhoneCcbsList* list=CMobilePhoneCcbsList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePhoneCCBSEntryV1 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_PHONE_CCC_ENTRY_COUNT; index++) + { + switch (index) + { + case 0: + entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP0; + entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX0; + entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON0; + entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP0; + entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM0; + break; + case 1: + entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP1; + entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX1; + entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON1; + entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP1; + entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM1; + break; + case 2: + entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP2; + entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX2; + entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON2; + entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP2; + entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM2; + break; + case 3: + entry.iServiceGroup = DMMTSY_PHONE_CCC_SERVICE_GROUP3; + entry.iCcbsIndex = DMMTSY_PHONE_CCC_INDEX3; + entry.iDestination.iTypeOfNumber = DMMTSY_PHONE_CCC_DESTINATION_TON3; + entry.iDestination.iNumberPlan = DMMTSY_PHONE_CCC_DESTINATION_NP3; + entry.iDestination.iTelNumber = DMMTSY_PHONE_CCC_DESTINATION_NUM3; + default: + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClientId,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetCcbsRequests->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallCompletionPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallCompletionPhase2 called")); + CListReadAllAttempt* read=NULL; + + for (TInt i=0; iCount(); ++i) + { + read = iGetCcbsRequests->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetCcbsRequests->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetCallCompletionCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallWaitingCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetCcbsRequests + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetCcbsRequests->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetCcbsRequests->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAlternatingCallCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallCaps called")); + + *aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + if (!iNotifyAlternatingCallCapsChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChange called")); + *aCaps = DMMTSY_PHONE_ALTERNATING_CALL_CAPS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallCapsChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAlternatingCallMode called")); + *aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE; + *aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetAlternatingCallMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode, RMobilePhone::TMobileService* aFirstService) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallMode called")); + if (*aMode != DMMTSY_PHONE_ALTERNATING_CALL_MODE || *aFirstService != DMMTSY_PHONE_ALTERNATING_CALL_SERVICE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetAlternatingCallModeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetAlternatingCallModeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAlternatingCallModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneAlternatingCallMode* aMode,RMobilePhone::TMobileService* aFirstService) + { + if (!iNotifyAlternatingCallModeChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChange called")); + *aMode = DMMTSY_PHONE_ALTERNATING_CALL_MODE; + *aFirstService = DMMTSY_PHONE_ALTERNATING_CALL_SERVICE; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAlternatingCallModeChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetALSLine called")); + *aALSLine = DMMTSY_PHONE_ALS_LINE; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetALSLine(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetALSLine called")); + if (*aALSLine != DMMTSY_PHONE_ALS_LINE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetALSLineCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetALSLineCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + +TInt CPhoneDMmTsy::NotifyALSLineChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneALSLine* aALSLine) + { + if (!iNotifyALSLineChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChange called")); + *aALSLine = DMMTSY_PHONE_ALS_LINE; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyALSLineChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyALSLineChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCostCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCostCaps called")); + *aCaps = DMMTSY_PHONE_COST_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCostCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + if (!iNotifyCostCapsChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChange called")); + *aCaps = DMMTSY_PHONE_COST_CAPS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCostCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostCapsChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::ClearCostMeter(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneCostMeters* aMeters) + { + LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeter called")); + if (*aMeters != DMMTSY_PHONE_COST_METER) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::ClearCostMeterCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ClearCostMeterCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMaxCostMeter(const TTsyReqHandle aTsyReqHandle, TUint *aUnits) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeter called")); + if (*aUnits != DMMTSY_PHONE_COST_UNITS) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMaxCostMeterCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMaxCostMeterCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetPuct(const TTsyReqHandle aTsyReqHandle, TDes8* aPuct) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetPuct called")); + RMobilePhone::TMobilePhonePuctV1Pckg* puctPckg = STATIC_CAST(RMobilePhone::TMobilePhonePuctV1Pckg*,aPuct); + RMobilePhone::TMobilePhonePuctV1& puct = (*puctPckg)(); + + if ((puct.iCurrencyName.Compare(DMMTSY_PHONE_COST_PUCT_CNAME) != 0) || + (puct.iPricePerUnit != DMMTSY_PHONE_COST_PUCT_PPU)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::SetPuctCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetPuctCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCostInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfo called")); + RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo); + RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)(); + + ci.iService = DMMTSY_PHONE_COST_SERVICE; + ci.iCCM = DMMTSY_PHONE_COST_CCM; + ci.iACM = DMMTSY_PHONE_COST_ACM; + ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX; + ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME; + ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU; + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCostInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCostInfoCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCostInfoChange(const TTsyReqHandle aTsyReqHandle, TDes8* aCostInfo) + { + if (!iNotifyCostInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChange called")); + RMobilePhone::TMobilePhoneCostInfoV1Pckg* ciPckg = STATIC_CAST(RMobilePhone::TMobilePhoneCostInfoV1Pckg*,aCostInfo); + RMobilePhone::TMobilePhoneCostInfoV1& ci = (*ciPckg)(); + + ci.iService = DMMTSY_PHONE_COST_SERVICE; + ci.iCCM = DMMTSY_PHONE_COST_CCM; + ci.iACM = DMMTSY_PHONE_COST_ACM; + ci.iACMmax = DMMTSY_PHONE_COST_ACMMAX; + ci.iPuct.iCurrencyName = DMMTSY_PHONE_COST_PUCT_CNAME; + ci.iPuct.iPricePerUnit = DMMTSY_PHONE_COST_PUCT_PPU; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCostInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCostInfoChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSecurityCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCaps called")); + *aCaps = DMMTSY_PHONE_SECURITY_CAPS; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySecurityCapsChange(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + if (!iNotifySecurityCapsChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChange called")); + *aCaps = DMMTSY_PHONE_SECURITY_CAPS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySecurityCapsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCapsChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetLockInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, TDes8* aLockInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfo called")); + if (*aLock != DMMTSY_PHONE_SECURITY_LOCK) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo); + RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)(); + li.iStatus = DMMTSY_PHONE_SECURITY_STATUS; + li.iSetting = DMMTSY_PHONE_SECURITY_SETTING; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetLockInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetLockInfoCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyLockInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock* aLock, TDes8* aLockInfo) + { + if (!iNotifyLockInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChange called")); + RMobilePhone::TMobilePhoneLockInfoV1Pckg* liPckg = STATIC_CAST(RMobilePhone::TMobilePhoneLockInfoV1Pckg*,aLockInfo); + RMobilePhone::TMobilePhoneLockInfoV1& li = (*liPckg)(); + li.iStatus = DMMTSY_PHONE_SECURITY_STATUS; + li.iSetting = DMMTSY_PHONE_SECURITY_SETTING; + *aLock = DMMTSY_PHONE_SECURITY_LOCK; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyLockInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyLockInfoChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + +TInt CPhoneDMmTsy::SetLockSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneLock *aLock, RMobilePhone::TMobilePhoneLockSetting *aLockSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetLockSetting called")); + if (*aLock != DMMTSY_PHONE_SECURITY_SC_LOCK || + *aLockSetting != DMMTSY_PHONE_SECURITY_SC_SETTING) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::SetLockSettingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetLockSettingCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::ChangeSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TMobilePhonePasswordChangeV1 *aChange) + { + LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCode called")); + if ((*aType != DMMTSY_PHONE_SECURITY_CODE) || + (aChange->iOldPassword.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) || + (aChange->iNewPassword.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::ChangeSecurityCodeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ChangeSecurityCodeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSecurityCodeInfo(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aSecurityCode, TDes8* aSecurityCodeInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfo called")); + if (*aSecurityCode != DMMTSY_PHONE_SECURITY_CODE) + ReqCompleted(aTsyReqHandle,KErrNotFound); + else + { + RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo); + RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)(); + info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSecurityCodeInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSecurityCodeInfoCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySecurityCodeInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode* aSecurityCode,TDes8* aSecurityCodeInfo) + { + if (!iNotifySecurityCodeInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::SecurityCodeInfoChange called")); + RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg* infoPckg = STATIC_CAST(RMobilePhone::TMobilePhoneSecurityCodeInfoV5Pckg*,aSecurityCodeInfo); + RMobilePhone::TMobilePhoneSecurityCodeInfoV5& info = (*infoPckg)(); + info.iRemainingEntryAttempts = DMMTSY_PHONE_SECURITY_REMAINING_ATTEMPTS; + *aSecurityCode = DMMTSY_PHONE_SECURITY_CODE; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySecurityCodeInfoChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyOnSecurityEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityEvent* aEvent) + { + if (!iNotifyOnSecurityEvent++) + { + LOGTEXT(_L8("CPhoneDMmTsy::Notify On Security Event called")); + *aEvent = DMMTSY_PHONE_SECURITY_EVENT; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyOnSecurityEventCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyOnSecurityEventCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::VerifySecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType, RMobilePhone::TCodeAndUnblockCode* aData) + { + LOGTEXT(_L8("CPhoneDMmTsy::Verify Security Code called")); + + if ((*aType != DMMTSY_PHONE_SECURITY_CODE) || + (aData->iCode.Compare(DMMTSY_PHONE_SECURITY_OLD_PASS) != 0) || + (aData->iUnblockCode.Compare(DMMTSY_PHONE_SECURITY_NEW_PASS) != 0)) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::VerifySecurityCodeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::VerifySecurityCodeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::AbortSecurityCode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneSecurityCode *aType) + { + LOGTEXT(_L8("CPhoneDMmTsy::AbortSecurityCode called")); + if (*aType != DMMTSY_PHONE_SECURITY_CODE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + + +TInt CPhoneDMmTsy::NotifyMessageWaiting(const TTsyReqHandle aTsyReqHandle, TInt* aCount) + { + if (!iNotifyMessageWaiting++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaiting called")); + *aCount = DMMTSY_PHONE_MW_COUNT; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMessageWaitingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMessageWaitingCanel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called")); + RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)(); + indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; + indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS; + indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS; + indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS; + indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS; + indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS; + indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS; + + if(indicators.ExtensionId() == KEtelExtMultimodeV8 ) + { + RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)(); + indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS1; + } + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIccMessageWaitingIndicators called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetIccMessageWaitingIndicators(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called")); + RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)(); + if ((indicators.iDisplayStatus!=DMMTSY_PHONE_DISPLAYSTATUS) || + (indicators.iVoiceMsgs != DMMTSY_PHONE_VOICEMSGS2) || + (indicators.iAuxVoiceMsgs != DMMTSY_PHONE_AUXVOICEMSGS2) || + (indicators.iDataMsgs != DMMTSY_PHONE_DATAMSGS2) || + (indicators.iFaxMsgs != DMMTSY_PHONE_FAXMSGS2) || + (indicators.iEmailMsgs != DMMTSY_PHONE_EMAILMSGS2) || + (indicators.iOtherMsgs != DMMTSY_PHONE_OTHERMSGS2)) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + + if(indicators.ExtensionId() == KEtelExtMultimodeV8 ) + { + RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)(); + if (indicatorsV8.iVideoMsgs != DMMTSY_PHONE_VIDEOMSGS2) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + } + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetIccMessageWaitingIndicatorsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetIccMessageWaitingIndicators called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMsgIndicators) + { + if (!iNotifyIccMessageWaitingChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called")); + RMobilePhone::TMobilePhoneMessageWaitingV1Pckg* indPckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV1Pckg*,aMsgIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV1& indicators = (*indPckg)(); + + indicators.iDisplayStatus=DMMTSY_PHONE_DISPLAYSTATUS; + indicators.iVoiceMsgs=DMMTSY_PHONE_VOICEMSGS2; + indicators.iAuxVoiceMsgs=DMMTSY_PHONE_AUXVOICEMSGS2; + indicators.iDataMsgs=DMMTSY_PHONE_DATAMSGS2; + indicators.iFaxMsgs=DMMTSY_PHONE_FAXMSGS2; + indicators.iEmailMsgs=DMMTSY_PHONE_EMAILMSGS2; + indicators.iOtherMsgs=DMMTSY_PHONE_OTHERMSGS2; + + if(indicators.ExtensionId() == KEtelExtMultimodeV8) + { + RMobilePhone::TMobilePhoneMessageWaitingV8Pckg* indV8Pckg = STATIC_CAST(RMobilePhone::TMobilePhoneMessageWaitingV8Pckg*,aMsgIndicators); + RMobilePhone::TMobilePhoneMessageWaitingV8& indicatorsV8 = (*indV8Pckg)(); + indicatorsV8.iVideoMsgs=DMMTSY_PHONE_VIDEOMSGS2; + iNotifyIccMessageWaitingChange = 0; + } + AddDelayedReq(aTsyReqHandle,this); + } + else + { + //reset for multiple complete test + iNotifyIccMessageWaitingChange = 0; + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIccMessageWaitingIndicatorsChange called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetFdnStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatus called")); + *aFdnStatus = DMMTSY_PHONE_FDN_STATUS; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetFdnStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetFdnStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetFdnSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnSetting *aFdnSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSetting called")); + if (*aFdnSetting != DMMTSY_PHONE_FDN_SETTING) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetFdnSettingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetFdnSettingCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyFdnStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus) + { + if (!iNotifyFdnStatusChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChange called")); + *aFdnStatus = DMMTSY_PHONE_FDN_STATUS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyFdnStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyFdnStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetMulticallParams(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParams called")); + + RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams); + RMobilePhone::TMobilePhoneMulticallSettingsV1 &multicallParams = (*multicallParamsPckg)(); + + multicallParams.iUserMaxBearers = DMMTSY_PHONE_USER_MAX_BEARERS1; + multicallParams.iServiceProviderMaxBearers = DMMTSY_PHONE_PROVIDER_MAX_BEARERS1; + multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS1; + multicallParams.iUESupportedMaxBearers = DMMTSY_PHONE_UE_MAX_BEARERS1; + + AddDelayedReq(aTsyReqHandle, this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMulticallParams(const TTsyReqHandle aTsyReqHandle, TInt* aUserMaxBearers) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParams called")); + + if (*aUserMaxBearers != DMMTSY_PHONE_USER_MAX_BEARERS1) + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMulticallParamsCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMulticallParamsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMulticallParamsCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMulticallParamsChange(const TTsyReqHandle aTsyReqHandle, TDes8* aMulticallParams) + { + if (!iNotifyMulticallParamsChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChange called")); + + RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *multicallParamsPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneMulticallSettingsV1Pckg *, aMulticallParams); + RMobilePhone::TMobilePhoneMulticallSettingsV1 &multicallParams = (*multicallParamsPckg)(); + + multicallParams.iUserMaxBearers = DMMTSY_PHONE_USER_MAX_BEARERS2; + multicallParams.iServiceProviderMaxBearers = DMMTSY_PHONE_PROVIDER_MAX_BEARERS2; + multicallParams.iNetworkSupportedMaxBearers = DMMTSY_PHONE_NETWORK_MAX_BEARERS2; + multicallParams.iUESupportedMaxBearers = DMMTSY_PHONE_UE_MAX_BEARERS2; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMulticallParamsChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallParamsChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallType called")); + + RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams); + RMobileCall::TMobileDataCallParamsV1 &dataParamsV1 = (*dataParamsPckgV1)(); + + dataParamsV1.iService = DMMTSY_DATA_CALL_SERVICE; + dataParamsV1.iSpeed = DMMTSY_DATA_CALL_SPEED; + dataParamsV1.iProtocol = DMMTSY_DATA_CALL_PROTOCOL; + dataParamsV1.iQoS = DMMTSY_DATA_CALL_QOS; + dataParamsV1.iRLPVersion = DMMTSY_DATA_CALL_RLP; + dataParamsV1.iV42bisReq = DMMTSY_DATA_CALL_V42BIS; + dataParamsV1.iUseEdge = DMMTSY_DATA_CALL_EGPRS_REQUIRED; + + *aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES; + + AddDelayedReq(aTsyReqHandle, this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetIncomingCallTypeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + + } + +TInt CPhoneDMmTsy::SetIncomingCallType(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallType called")); + + RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckgV1 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams); + RMobileCall::TMobileDataCallParamsV1 &dataParamsV1 = (*dataParamsPckgV1)(); + + if ((*aCallType != DMMTSY_PHONE_INCOMING_CALL_TYPES) || + (dataParamsV1.iService != DMMTSY_DATA_CALL_SERVICE) || + (dataParamsV1.iSpeed != DMMTSY_DATA_CALL_SPEED) || + (dataParamsV1.iProtocol != DMMTSY_DATA_CALL_PROTOCOL) || + (dataParamsV1.iQoS != DMMTSY_DATA_CALL_QOS) || + (dataParamsV1.iRLPVersion != DMMTSY_DATA_CALL_RLP) || + (dataParamsV1.iV42bisReq != DMMTSY_DATA_CALL_V42BIS) || + (dataParamsV1.iUseEdge != DMMTSY_DATA_CALL_EGPRS_REQUIRED)) + + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetIncomingCallTypeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetIncomingCallTypeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + + } + +TInt CPhoneDMmTsy::NotifyIncomingCallTypeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIncomingCallType* aCallType, TDes8* aDataParams) + { + if (!iNotifyIncomingCallTypeChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChange called")); + + RMobileCall::TMobileDataCallParamsV1Pckg *dataParamsPckg = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV1Pckg*, aDataParams); + RMobileCall::TMobileDataCallParamsV1 &dataParams = (*dataParamsPckg)(); + + if(dataParams.ExtensionId() == RMobileCall::KETelMobileDataCallParamsV2) + { + RMobileCall::TMobileDataCallParamsV2Pckg *dataParamsPckgV2 = REINTERPRET_CAST(RMobileCall::TMobileDataCallParamsV2Pckg*, aDataParams); + RMobileCall::TMobileDataCallParamsV2 &dataParamsV2 = (*dataParamsPckgV2)(); + dataParamsV2.iBearerMode = DMMTSY_PHONE_MULTICALLBEARERMODE_NOTSUPPORTED; + //reset for V1 + iNotifyIncomingCallTypeChange = 0; + } + dataParams.iService = DMMTSY_DATA_CALL_SERVICE1; + dataParams.iSpeed = DMMTSY_DATA_CALL_SPEED1; + dataParams.iProtocol = DMMTSY_DATA_CALL_PROTOCOL1; + dataParams.iQoS = DMMTSY_DATA_CALL_QOS1; + dataParams.iRLPVersion = DMMTSY_DATA_CALL_RLP1; + dataParams.iV42bisReq = DMMTSY_DATA_CALL_V42BIS1; + dataParams.iUseEdge = DMMTSY_DATA_CALL_EGPRS_NOTREQUIRED; + + *aCallType = DMMTSY_PHONE_INCOMING_CALL_TYPES1; + + AddDelayedReq(aTsyReqHandle,this); + } + else + { + //reset for multiple complete test + iNotifyIncomingCallTypeChange = 0; + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIncomingCallTypeChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSetting called")); + + *aSetting = DMMTSY_PHONE_UUS_SETTING1; + + AddDelayedReq(aTsyReqHandle, this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetUUSSettingCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetUUSSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSetting called")); + + if(*aSetting != DMMTSY_PHONE_UUS_SETTING2) + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetUUSSettingCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetUUSSettingCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyUUSSettingChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneUUSSetting* aSetting) + { + if (!iNotifyUUSSettingChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChange called")); + + *aSetting = DMMTSY_PHONE_UUS_SETTING2; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyUUSSettingChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyUUSSettingChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMultimediaCallPreference called")); + + *aSetting = DMMTSY_PHONE_MM_SETTING; + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMultimediaCallPreference(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreference called")); + + if(*aSetting != DMMTSY_PHONE_MM_SETTING) + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMultimediaCallPreferenceCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMultimediaCallPreferenceCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMultimediaSettings* aSetting) + { + if (!iNotifyMmCallPrefChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChange called")); + + *aSetting = DMMTSY_PHONE_MM_SETTING_2; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMultimediaCallPreferenceChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkSecurityLevel(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity) + { + + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevel called")); + + *aSecurity = DMMTSY_PHONE_NET_SECURITY; + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkSecurityLevelCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkSecurityLevelCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkSecurity* aSecurity) + { + + if (!iNotifyNetworkSecurityChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChange called")); + + *aSecurity = DMMTSY_PHONE_NET_SECURITY; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkSecurityLevelChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::EnumerateUSimApplications(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID) + { + LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplications called")); + + *aCount = DMMTSY_PHONE_USIM_COUNT; + aActiveAID->Copy(DMMTSY_PHONE_USIM_AID); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::EnumerateUSimApplicationsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::EnumerateUSimApplicationsCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetUSimApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TUSimAppAction* aAction) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatus called")); + + if ((*aAction != DMMTSY_PHONE_USIM_ACTIVATE) || + (aAID->Compare(DMMTSY_PHONE_USIM_AID) !=0 )) + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetUSimApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetUSimApplicationStatusCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetUSimApplicationInfo(const TTsyReqHandle aTsyReqHandle, TInt* aIndex, RMobilePhone::TUSimApplicationInfoV2* aInfo) + { + + LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfo called")); + + if(*aIndex != DMMTSY_PHONE_USIM_APPINDEX) + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + { + aInfo->iLabel.Copy(DMMTSY_PHONE_USIM_APPLABEL); + aInfo->iAID.Copy(DMMTSY_PHONE_USIM_AID); + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetUSimApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetUSimApplicationInfoCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChange(const TTsyReqHandle aTsyReqHandle, TInt* aCount, RMobilePhone::TAID* aActiveAID) + { + if (!iNotifyUSimApplicationsInfoChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChange called")); + + aActiveAID->Copy(DMMTSY_PHONE_USIM_AID); + *aCount = DMMTSY_PHONE_USIM_COUNT; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimApplicationsInfoChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetUSimAppsSelectionMode called")); + + *aMode = DMMTSY_PHONE_USIM_SELMODE; + + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetUSimAppsSelectionMode(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetUSimAppsSelectionMode called")); + + if(*aMode != DMMTSY_PHONE_USIM_SELMODE) + ReqCompleted(aTsyReqHandle, KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TUSimSelectionMode* aMode) + { + if (!iNotifyUSimAppsSelectionModeChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChange called")); + + *aMode = DMMTSY_PHONE_USIM_SELMODE; + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyUSimAppsSelectionModeChangeCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetMailboxNumbers(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox) + { + RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox); + RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox = (*mailboxPckg)(); + + LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers called")); + mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE; + mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA; + mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX; + mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER; + + if(mailbox.ExtensionId() == KEtelExtMultimodeV8 ) + { + RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxV8Pckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox); + RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailboxV8 = (*mailboxV8Pckg)(); + LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbers V8 class is called")); + mailboxV8.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO; + } + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetMailboxNumbersCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMailboxNumbersCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMailboxNumbersChange(const TTsyReqHandle aTsyReqHandle, TDes8 *aMailBox) + + { + RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox); + RMobilePhone::TMobilePhoneVoicemailIdsV3 &mailbox = (*mailboxPckg)(); + + if (!iNotifyMailBoxNumbersChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChange called")); + mailbox.iVoice = DMMTSY_PHONE_MAILBOXNUMBER_VOICE; + mailbox.iData = DMMTSY_PHONE_MAILBOXNUMBER_DATA; + mailbox.iFax = DMMTSY_PHONE_MAILBOXNUMBER_FAX; + mailbox.iOther = DMMTSY_PHONE_MAILBOXNUMBER_OTHER; + + if(mailbox.ExtensionId() == KEtelExtMultimodeV8) + { + RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg *mailboxPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneVoicemailIdsV8Pckg*, aMailBox); + RMobilePhone::TMobilePhoneVoicemailIdsV8 &mailbox = (*mailboxPckg)(); + mailbox.iVideo = DMMTSY_PHONE_MAILBOXNUMBER_VIDEO; + iNotifyMailBoxNumbersChange=0; + } + AddDelayedReq(aTsyReqHandle,this); + } + else + { + iNotifyMailBoxNumbersChange=0; + } + + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMailboxNumbersChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMmsUpdate(const TTsyReqHandle aTsyReqHandle, TDes8 *aNotification) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdate called")); + + RMobilePhone::TMmsNotificationV3Pckg *mmsPckg = REINTERPRET_CAST(RMobilePhone::TMmsNotificationV3Pckg *, aNotification); + RMobilePhone::TMmsNotificationV3 &mms = (*mmsPckg)(); + + if (!iNotifyMmsUpdate++) + { + mms.iSpace = DMMTSY_PHONE_MMS_UPDATE_SPACE; + mms.iNotification = DMMTSY_PHONE_MMS_UPDATE_NOTIFICATION; + mms.iMmsStatus = DMMTSY_PHONE_MMS_UPDATE_STATUS; + mms.iImplementation = DMMTSY_PHONE_MMS_UPDATE_IMPLEMENTATION; + mms.iNotify = DMMTSY_PHONE_MMS_UPDATE_NOTIFY; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAirTimeDuration(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAirTimeDuration called")); + *aTime=DMMTSY_AIR_TIME_DURATION1; + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAirTimeDurationChange(const TTsyReqHandle aTsyReqHandle, TTimeIntervalSeconds* aTime) + { + if (!iNotifyAirTimeChangeChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChange called")); + *aTime=DMMTSY_AIR_TIME_DURATION2; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAirTimeDurationChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::TerminateAllCalls(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCalls called")); + if (!iTerminateAllCalls++) + { + //Just return KErrNone + ReqCompleted(aTsyReqHandle,KErrNone); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::TerminateAllCallsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::TerminateAllCallsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::TerminateActiveCalls(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCalls called")); + if (!iTerminateActiveCalls++) + { + //Just return KErrNone + ReqCompleted(aTsyReqHandle,KErrNone); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::TerminateActiveCallsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::TerminateActiveCallsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + TInt CPhoneDMmTsy::NotifySendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequest called")); + if (!iNotifySendNetworkServiceRequest++) + { + RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete); + RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)(); + + if(*aOperation!=DMMTSY_PHONE_NOTIFY_SERVICEREQUEST || + ssRequest.ExtensionId()!=KETelExtMultimodeV3) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_OPCODE; + ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO; + ReqCompleted(aTsyReqHandle,KErrNone); + } + } + return KErrNone; + } + + TInt CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySendNetworkServiceRequestCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNotifySendSSOperation* aOperation, TDes8* aRequestComplete) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequest called")); + + RMobilePhone::TMobilePhoneSendSSRequestV3Pckg* ssRequestPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg*,aRequestComplete); + RMobilePhone::TMobilePhoneSendSSRequestV3& ssRequest = (*ssRequestPckg)(); + + if(ssRequest.ExtensionId()!=KETelExtMultimodeV3) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + //Return the error for some Invoke operation, like received from network. + *aOperation = DMMTSY_PHONE_NOTIFY_SERVICEREQUEST_ERROR; + //Return result problem code (return Mistyped Parameter) + ssRequest.iOpCode = DMMTSY_PHONE_NOTIFY_RETURN_ERROR_PROBLEM_CODE; + ssRequest.iAdditionalInfo = DMMTSY_PHONE_NOTIFY_ADDINFO; + AddDelayedReq(aTsyReqHandle, this); + } + + return KErrNone; + } + + TInt CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAllSendNetworkServiceRequestCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + + TInt CPhoneDMmTsy::ClearBlacklist(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklist called")); + if (!iClearBlacklist++) + { + //Just return KErrNone + ReqCompleted(aTsyReqHandle,KErrNone); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::ClearBlacklistCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ClearBlacklistCancel called")); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyDTMFEvent(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TMobilePhoneDTMFEvent* aEvent) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEvent called")); + if (!iNotifyDTMFEvent++) + { + *aEvent = DMMTSY_PHONE_NOTIFY_DTMFEVENT_ON; + ReqCompleted(aTsyReqHandle,KErrNone); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyDTMFEventCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyDTMFEventCancel called")); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPersonalisationCaps(const TTsyReqHandle aTsyReqHandle, TUint32* aCaps) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCaps called")); + *aCaps = (DMMTSY_PHONE_PERS_CAPS_SERV_PROV | DMMTSY_PHONE_PERS_CAPS_NETWORK); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPersonalisationCapsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationCapsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, TUint32* aPersSchemes) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatus called")); + *aPersSchemes = (DMMTSY_PHONE_PERS_GET_NETWORK_SUB | DMMTSY_PHONE_PERS_GET_CORPORATE); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPersonalisationStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetPersonalisationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhonePersonalisation* aPersSchemes, TDes* aPersCode) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatus called")); + if((*aPersSchemes == DMMTSY_PHONE_PERS_SET_USIM) && + (*aPersCode == DMMTSY_PHONE_PERS_SET_CODE)) + AddDelayedReq(aTsyReqHandle,this); + else + ReqCompleted(aTsyReqHandle,KErrCorrupt); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetPersonalisationStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetPersonalisationStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentNetworkName(const TTsyReqHandle aTsyReqHandle, TDes8* aNetworkName, TDes8* aLocInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkName called")); + + RMobilePhone::TMobilePhoneNetworkNameV3Pckg* networkNamePckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneNetworkNameV3Pckg*,aNetworkName); + RMobilePhone::TMobilePhoneNetworkNameV3& networkName = (*networkNamePckg)(); + + RMobilePhone::TMobilePhoneOPlmnV3Pckg* plmnPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneOPlmnV3Pckg*,aLocInfo); + RMobilePhone::TMobilePhoneOPlmnV3& plmn = (*plmnPckg)(); + + if(networkName.ExtensionId() != KETelExtMultimodeV3 || + plmn.ExtensionId() != KETelExtMultimodeV3) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + //Fill TMobilePhoneNetworkNameV3 + networkName.iLongName = DMMTSY_PHONE_HOME_NETWORK_LONG_NAME; + networkName.iShortName = DMMTSY_PHONE_HOME_NETWORK_SHORT_NAME; + networkName.iOtherNames = DMMTSY_PHONE_HOME_NETWORK_OTHER_NAMES; + //Fill TMobilePhoneOPlmnV3 + plmn.iCountryCode = DMMTSY_PHONE_COUNTRY_ID; + plmn.iNetworkId = DMMTSY_PHONE_NETWORK_ID; + plmn.iPNNid = DMMTSY_PHONE_HOME_NETWORK_NAME_LOC_ID; + plmn.iFirstLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_FIRST_ID; + plmn.iLastLocationAreaCode = DMMTSY_PHONE_HOME_NETWORK_LAST_ID; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentNetworkNameCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentNetworkNameCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPreferredNetworksPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase1 called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetPreferredNetworksPhase1L(aTsyReqHandle, aClient, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetPreferredNetworksPhase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, + TInt* aBufSize) + { + // retrieve stored networks from USIM, + // store each entry. + // stream the list and then return size of this buffer to client + CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMobilePreferredNetworkEntryV3 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_PHONE_NTWK_LIST_ENTRIES; index++) + { + switch (index) + { + case 0: + entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM; + entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE; + entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1; + entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1; + break; + case 1: + entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC; + entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE; + entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2; + entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2; + break; + case 2: + default: + entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN; + entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE; + entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2; + entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1; + break; + case 3: + entry.iAccess = DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN; + entry.iUserDefined = DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE; + entry.iCountryCode = DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2; + entry.iNetworkId = DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1; + break; + + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetPreferredNetworks->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + + + +TInt CPhoneDMmTsy::GetPreferredNetworksPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetPreferredNetworks->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetPreferredNetworks->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetPreferredNetworksCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhaseCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetPreferredNetworks + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetPreferredNetworks->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetPreferredNetworks->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMmsUpdateCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsUpdateCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMmsUserConnParams(const TTsyReqHandle aTsyReqHandle, TDes8* aConnectivity) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParams called")); + if(aConnectivity->Compare(DMMTSY_PHONE_MMS_USER_CONN_PARAMS) == 0 ) + AddDelayedReq(aTsyReqHandle,this); + else + ReqCompleted(aTsyReqHandle, KErrCorrupt); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMmsUserConnParamsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserConnParamsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMmsUserPreferences(const TTsyReqHandle aTsyReqHandle, TDes8* aPreferences) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferences called")); + if(aPreferences->Compare(DMMTSY_PHONE_MMS_USER_PREF_PARAMS) == 0 ) + AddDelayedReq(aTsyReqHandle,this); + else + ReqCompleted(aTsyReqHandle, KErrCorrupt); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetMmsUserPreferencesCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetMmsUserPreferencesCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetMmsConfig(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity) + + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfig called")); + if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE ) + { + *aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS; + AddDelayedReq(aTsyReqHandle,this); + } + else + ReqCompleted(aTsyReqHandle, KErrCorrupt); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetMmsConfigCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetMmsConfigCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMmsConfig(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMmsConnParams aType, TDes8* aConnectivity) + + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfig called")); + if(!iNotifyMmsConfig++) + { + if (aType == DMMTSY_PHONE_MMS_USER_CONN_PARAMS_TYPE ) + { + *aConnectivity = DMMTSY_PHONE_MMS_USER_CONN_PARAMS; + AddDelayedReq(aTsyReqHandle,this); + } + else + ReqCompleted(aTsyReqHandle, KErrCorrupt); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMmsConfigCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMmsConfigCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriod(const TTsyReqHandle aTsyReqHandle, TInt* aSearchIntv) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriod called")); + *aSearchIntv = DMMTSY_PHONE_HOME_NETWORK_SEARCHINTV; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + + } + +TInt CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetHomeNetworkSearchPeriodCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetLastUsedAccessTechnology(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkAccess* aAccessTech) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnology called")); + *aAccessTech = DMMTSY_PHONE_LAST_USED_ACCESS_TECH; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetLastUsedAccessTechnologyCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetNetworkInvScanSetting(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetNetworkInvScanSetting called")); + *aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkInvScanChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScan* aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChange called")); + if(!iNotifyNetworkInvScanChange++) + { + *aSetting = DMMTSY_PHONE_NETWORK_INV_SCAN; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkInvScanEvent(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneInvestigationScanEvent* aEvent) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEvent called")); + if(!iNotifyNetworkInvScanEvent++) + { + *aEvent = DMMTSY_PHONE_NETWORK_INV_SCAN_EVENT; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyNetworkInvScanEventCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyNetworkInvScanEventCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallForwardingIndicator(const TTsyReqHandle aTsyReqHandle, TDes8* aIndicator) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicator called")); + + RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV3Pckg*, aIndicator); + RMobilePhone::TMobilePhoneCFUIndicatorV3& indicator = (*indicatorPckg)(); + if( indicator.ExtensionId() == KETelExtMultimodeV3 ) + { + indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR; + } + else if(indicator.ExtensionId() == KEtelExtMultimodeV6 ) + { + RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg* indicatorPckg = REINTERPRET_CAST(RMobilePhone::TMobilePhoneCFUIndicatorV6Pckg*, aIndicator); + RMobilePhone::TMobilePhoneCFUIndicatorV6& indicator = (*indicatorPckg)(); + indicator.iIndicator = DMMTSY_PHONE_CFU_INDICATOR1; + indicator.iCFNumber.iTypeOfNumber = DMMTSY_PHONE_CFU_TON; + indicator.iCFNumber.iNumberPlan = DMMTSY_PHONE_CFU_NPI; + indicator.iCFNumber.iTelNumber = DMMTSY_PHONE_CFU_TELNUMBER; + indicator.iMultipleSubscriberProfileID = DMMTSY_PHONE_CFU_MSP; + } + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCallForwardingIndicatorCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCallForwardingIndicatorCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCompMethodName(const TTsyReqHandle aTsyReqHandle, TUint aCmi, TDes* aAlphaTag) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodName called")); + if(aCmi != DMMTSY_PHONE_CB_COMP_METHOD_ID) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + *aAlphaTag = DMMTSY_PHONE_CB_ALPHA_TAG; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } +TInt CPhoneDMmTsy::GetCompMethodNameCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCompMethodNameCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::EnumerateAPNEntries(const TTsyReqHandle aTsyReqHandle, TUint32* aIndex) + { + LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntries called")); + *aIndex = DMMTSY_PHONE_APN_ENUMERATE; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::EnumerateAPNEntriesCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::EnumerateAPNEntriesCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAPNname(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex, TDes8* aAPN) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAPNname called")); + + RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN); + RMobilePhone::TAPNEntryV3& entry = (*entryPckg)(); + + switch(aIndex) + { + case 0: + { + entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY1); + AddDelayedReq(aTsyReqHandle,this); + } + break; + case 1: + { + entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY2); + AddDelayedReq(aTsyReqHandle,this); + } + break; + case 2: + { + entry.iApn.Append(DMMTSY_PHONE_APN_ENTRY3); + AddDelayedReq(aTsyReqHandle,this); + } + break; + default: + ReqCompleted(aTsyReqHandle,KErrCorrupt); + break; + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAPNnameCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAPNnameCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::AppendAPNName(const TTsyReqHandle aTsyReqHandle, TDes8* aAPN) + { + LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNName called")); + + RMobilePhone::TAPNEntryV3Pckg* entryPckg = REINTERPRET_CAST(RMobilePhone::TAPNEntryV3Pckg*, aAPN); + RMobilePhone::TAPNEntryV3& entry = (*entryPckg)(); + + if ((entry.iApn.Length() > RMobilePhone::KMaxApnName) || + (entry.iApn != DMMTSY_PHONE_APN_ENTRY_TO_APPEND)) + { + // Checking that the entry passed in is equal to DMMTSY_PHONE_APN_ENTRY_TO_APPEND + // confirms that the APN entry has made it from the client to the TSY properly, + // i.e the packaging etc. works. + ReqCompleted(aTsyReqHandle, KErrBadName); + } + else + { + AddDelayedReq(aTsyReqHandle, this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::AppendAPNNameCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::AppendAPNNameCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::DeleteAPNName(const TTsyReqHandle aTsyReqHandle, TUint32 aIndex) + { + LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNName called")); + if (aIndex > (DMMTSY_PHONE_APN_ENUMERATE-1)) + { + ReqCompleted(aTsyReqHandle, KErrTooBig); + } + else + { + AddDelayedReq(aTsyReqHandle, this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::DeleteAPNNameCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::DeleteAPNNameCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAPNListChanged(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChanged called")); + AddDelayedReq(aTsyReqHandle, this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAPNListChangedCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNListChangedCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus aAPNControlListServiceStatus) + { + if ((aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED) && + (aAPNControlListServiceStatus != DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED)) + { + ReqCompleted(aTsyReqHandle, KErrArgument); + } + else + { + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::SetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetAPNControlListServiceStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAPNControlListServiceStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatus called")); + *aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_DISABLED; + AddDelayedReq(aTsyReqHandle, this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAPNControlListServiceStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAPNControlListServiceStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAPNControlListServiceStatus* aAPNControlListServiceStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChange called")); + *aAPNControlListServiceStatus = DMMTSY_PHONE_APN_CONTROL_LIST_SERVICE_ENABLED; + AddDelayedReq(aTsyReqHandle, this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAPNControlListServiceStatusChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::StorePreferredNetworksList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) + { + LOGTEXT(_L8("CSmsMessagingDMmTsy::StorePreferredNetworksList called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessStorePreferredNetworksListL(aTsyReqHandle, aBuffer);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + }; + +TInt CPhoneDMmTsy::ProcessStorePreferredNetworksListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) + { + CMobilePhoneStoredNetworkList* list=CMobilePhoneStoredNetworkList::NewL(); + CleanupStack::PushL(list); + + list->RestoreL(*aBuffer); + + RMobilePhone::TMobilePreferredNetworkEntryV3 entry; + + if (list->Enumerate() != DMMTSY_PHONE_NTWK_LIST_ENTRIES) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + CleanupStack::PopAndDestroy(); // list + return KErrNone; + } + + TInt error=KErrNone; + TInt ret; + for (TInt i=0; iGetEntryL(i)); + if (ret != KErrNone) + break; + switch(i) + { + case 0: + { + if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_WLAN || + entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE || + entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 || + entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1) + error = KErrCorrupt; + } + + break; + case 1: + { + if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_UTRAN || + entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_TRUE || + entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 || + entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1) + error = KErrCorrupt; + } + + break; + case 2: + { + if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSMC || + entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE || + entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID2 || + entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID2) + error = KErrCorrupt; + } + break; + case 3: + default: + { + if(entry.iAccess != DMMTSY_PHONE_NTWK_LIST_ACCESS_CAPS_GSM || + entry.iUserDefined != DMMTSY_PHONE_NTWK_LIST_USER_DEFINED_FALSE || + entry.iCountryCode != DMMTSY_PHONE_NTWK_LIST_COUNTRY_ID1 || + entry.iNetworkId != DMMTSY_PHONE_NTWK_LIST_NETWORK_ID1) + error = KErrCorrupt; + } + break; + } + } + if(error==KErrNone) + AddDelayedReq(aTsyReqHandle,this); + else + ReqCompleted(aTsyReqHandle,KErrCorrupt); + CleanupStack::PopAndDestroy(); // list + return KErrNone; + } + +TInt CPhoneDMmTsy::StorePreferredNetworksListCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CSmspStoreDMmTsy::StorePreferredNetworksListCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChange(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChange called")); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyStorePreferredNetworksListChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatus called")); + aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCipheringIndicatorStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobileCallCipheringIndicator& aIndicatorStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatus called")); + if (!iNotifyCipheringIndicatorStatus++) + { + aIndicatorStatus = DMMTSY_PHONE_NET_CIPHER_IND; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyCipheringIndicatorStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceSetting aSetting) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatus called")); + if(aService != DMMTSY_PHONE_ID_SERVICE || aSetting != DMMTSY_PHONE_ID_SETTING) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::SetIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetIdentityServiceStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIdentityServiceStatus(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneIdService aService, RMobilePhone::TMobilePhoneIdServiceStatus* aStatus) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatus called")); + if (!iNotifyIdentityServiceStatus++) + { + if(aService!=DMMTSY_PHONE_ID_SERVICE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + *aStatus = DMMTSY_PHONE_ID_STATUS; + AddDelayedReq(aTsyReqHandle,this); + } + } + return KErrNone; + } +TInt CPhoneDMmTsy::NotifyIdentityServiceStatusCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentityServiceStatusCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyIdentitySuppressionRejected(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejected called")); + if (!iNotifyIdentitySuppressionRejected++) + { + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } +TInt CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyIdentitySuppressionRejectedCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMulticallIndicatorChange(TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneMulticallIndicator* aMulticallIndicator) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChange called")); + if (!iNotifyMulticallIndicatorChange++) + { + *aMulticallIndicator = DMMTSY_PHONE_MULTICALL_IND; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyMulticallIndicatorChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::EnumerateSmartCardApplications(const TTsyReqHandle aTsyReqHandle,TUint* aCount) + { + LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplications called")); + + *aCount = DMMTSY_PHONE_SC_COUNT; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::EnumerateSmartCardApplicationsCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSmartCardApplicationInfo(const TTsyReqHandle aTsyReqHandle,TUint* aAppIndex, TDes8* aInfoBuffer) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfo called")); + + if(*aAppIndex == DMMTSY_PHONE_SC_APP_INDEX1) + { + RMobilePhone::TSmartCardApplicationInfoV5Pckg *ScAppInfoPckg = REINTERPRET_CAST(RMobilePhone::TSmartCardApplicationInfoV5Pckg *, aInfoBuffer); + RMobilePhone::TSmartCardApplicationInfoV5 &ScAppInfo = (*ScAppInfoPckg)(); + + if(ScAppInfo.ExtensionId() != KEtelExtMultimodeV5) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + else + { + ScAppInfo.iAID = DMMTSY_PHONE_SC_AID; + ScAppInfo.iLabel = DMMTSY_PHONE_SC_LABEL; + } + } + else + { + return DMMTSY_PHONE_SC_OUTOFRANGE; + } + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSmartCardApplicationInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardApplicationInfoCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TSmartCardApplicationEvent* aEvent, RMobilePhone::TAID* aAID) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called")); + if(!iNotifySmartCardApplicationInfoChange++) + { + *aEvent = DMMTSY_PHONE_SC_EVENT_ACTIVATE; + *aAID = DMMTSY_PHONE_SC_AID; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifySmartCardApplicationInfoChangeCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifySmartCardApplicationInfoChange called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetSmartCardApplicationStatus(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID, RMobilePhone::TSmartCardApplicationAction aAction) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatus called")); + + if(*aAID != DMMTSY_PHONE_SC_AID2 || aAction != DMMTSY_PHONE_SC_ACTION_TERMINATE) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetSmartCardApplicationStatusCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetSmartCardApplicationStatusCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetScFileInfo(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePath& aFilePathId, TDes8* aInfo) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfo called")); + + if(aFilePathId.iAID != DMMTSY_PHONE_SC_AID || aFilePathId.iPath != DMMTSY_PHONE_SC_PATH_REF) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + RMobilePhone::TScFileInfoV5Pckg *scFileInfoPckg = REINTERPRET_CAST(RMobilePhone::TScFileInfoV5Pckg*, aInfo); + RMobilePhone::TScFileInfoV5 &scFileInfo = (*scFileInfoPckg)(); + + if(scFileInfo.ExtensionId() != KEtelExtMultimodeV5) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + else + { + scFileInfo.iFileID = DMMTSY_PHONE_SC_FILEID; + scFileInfo.iNumberRecords = DMMTSY_PHONE_SC_NORECORDS; + scFileInfo.iRecordLength = DMMTSY_PHONE_SC_RECORD_SIZE; + scFileInfo.iType = DMMTSY_PHONE_SC_TYPE; + scFileInfo.iTotalLength = DMMTSY_PHONE_SC_FILESIZE; + } + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetScFileInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetScFileInfoCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::ReadScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aReadBuffer) + { + LOGTEXT(_L8("CPhoneDMmTsy::ReadScFile called")); + + if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + { + aReadBuffer->Zero(); + aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD0); + aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD1); + aReadBuffer->Append(DMMTSY_PHONE_SC_RECORD2); + + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::ReadScFileCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ReadScFileCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::UpdateScFile(const TTsyReqHandle aTsyReqHandle, const RMobilePhone::TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8* aWriteBuffer) + { + LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFile called")); + + TInt startoffset = 0; + TPtr8 record0(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE)); + startoffset += DMMTSY_PHONE_SC_RECORD_SIZE; + TPtr8 record1(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE)); + startoffset += DMMTSY_PHONE_SC_RECORD_SIZE; + TPtr8 record2(aWriteBuffer->MidTPtr(startoffset,DMMTSY_PHONE_SC_RECORD_SIZE)); + + if(aFilePathOffsets.iAID != DMMTSY_PHONE_SC_AID || aFilePathOffsets.iPath != DMMTSY_PHONE_SC_PATH_REF || aFilePathOffsets.iType != DMMTSY_PHONE_SC_TYPE || aFilePathOffsets.iCount != DMMTSY_PHONE_SC_NORECORDS || aFilePathOffsets.iStartOffset != DMMTSY_PHONE_SC_START_OFFSET) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else if(record0 != DMMTSY_PHONE_SC_RECORD0 || record1 != DMMTSY_PHONE_SC_RECORD1 || record2 != DMMTSY_PHONE_SC_RECORD2) + ReqCompleted(aTsyReqHandle,KErrCorrupt); + else + AddDelayedReq(aTsyReqHandle,this); + + return KErrNone; + } + +TInt CPhoneDMmTsy::UpdateScFileCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::UpdateScFileCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentActiveUSimApplication(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TAID* aAID) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplication called")); + + *aAID = DMMTSY_PHONE_SC_AID; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetCurrentActiveUSimApplicationCancel called")); + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +CPhoneDMmTsy* CPhoneDMmTsy::This(TAny* aPtr) + { + return REINTERPRET_CAST(CPhoneDMmTsy*,aPtr); + } + +TInt CPhoneDMmTsy::GetAuthorizationInfoPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called")); + TInt ret(KErrNone); + TInt leaveCode(KErrNone); + TRAP(leaveCode, ret=ProcessGetAuthorizationInfoPhase1L(aTsyReqHandle, aId, aBufSize);); + if (leaveCode != KErrNone) + ReqCompleted(aTsyReqHandle,leaveCode); + return ret; + }; + +TInt CPhoneDMmTsy::ProcessGetAuthorizationInfoPhase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, + TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase1 called")); + + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + HBufC8* iBuff=NULL; + iAuthInfo->ExternalizeL(iBuff); + CleanupStack::PushL(iBuff); + + CBufFlat* buf=CBufFlat::NewL(iBuff->Length()); + CleanupStack::PushL(buf); + buf->InsertL(0,*iBuff); + + read->iListBuf = buf; + CleanupStack::Pop(buf); + CleanupStack::PopAndDestroy(iBuff); + + iGetAuthorizationData->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } +TInt CPhoneDMmTsy::GetAuthorizationInfoPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuffer) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get detected network attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetAuthorizationData->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuffer->Copy(bufPtr); + delete read; + iGetAuthorizationData->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + ReqCompleted(aTsyReqHandle,KErrBadHandle); + return KErrNone; + } + + +TInt CPhoneDMmTsy::GetAuthorizationInfoCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthorizationInfoCancel called")); + + // Remove the read all attempt from iGetAuthorizationData + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetAuthorizationData->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetAuthorizationData->Delete(i); + break; + } + } + + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAuthenticationData(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthenticationData) + { + LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationData called")); + TInt ret(KErrNone); + User::After(300000); // wait to have KRequestPending + RMobilePhone::TImsAuthenticateDataV5Pckg* authenticateDataPckgd=(RMobilePhone::TImsAuthenticateDataV5Pckg*)aAuthenticationData; + RMobilePhone::TImsAuthenticateDataV5& authenticateData=(*authenticateDataPckgd)(); + if(authenticateData.iAUTN!=DMMTSY_PHONE_AUTN_IN || authenticateData.iRAND!=DMMTSY_PHONE_RAND_IN) + { + ret=KErrCorrupt; + ReqCompleted(aTsyReqHandle,ret); + } + else + { + authenticateData.iAUTN=DMMTSY_PHONE_AUTN_OUT; + authenticateData.iRAND=DMMTSY_PHONE_RAND_OUT; + authenticateData.iRES=DMMTSY_PHONE_RES_OUT; + authenticateData.iIK=DMMTSY_PHONE_IK_OUT; + authenticateData.iCK=DMMTSY_PHONE_CK_OUT; + authenticateData.iAUTS=DMMTSY_PHONE_AUTS_OUT; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::AuthentificationDataCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChanged called")); + if (!iNotifyImsAuthorizationInfoChange++) + { + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + + } +TInt CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyImsAuthorizationInfoChangedCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSmartCardAuthenticationData(const TTsyReqHandle aTsyReqHandle, TDes8* aSmartCardAuthData, RMobilePhone::TAID* aAID) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationData called")); + + RMobilePhone::TSmartCardAuthenticateDataV6Pckg *smartCardAuthenticateDataPckg = + reinterpret_cast(aSmartCardAuthData); + + RMobilePhone::TSmartCardAuthenticateDataV6 &smartCardAuthenticateData = + (*smartCardAuthenticateDataPckg)(); + + if (aAID != NULL) + { + if (*aAID != DMMTSY_PHONE_GBA_AID() && + *aAID != DMMTSY_PHONE_EAPAPP_AID() && + *aAID != DMMTSY_PHONE_MBMS_AID()) + { + ReqCompleted(aTsyReqHandle, KErrCorrupt); + return KErrNone; + } + } + // USIM authentication + if(smartCardAuthenticateData.ExtensionId() == KEtelExtMultimodeV6) + { + if(smartCardAuthenticateData.iAUTN != DMMTSY_PHONE_SC_AUTN_IN || + smartCardAuthenticateData.iRAND != DMMTSY_PHONE_SC_RAND_IN) + { + ReqCompleted(aTsyReqHandle, KErrCorrupt); + } + else + { + smartCardAuthenticateData.iAUTN=DMMTSY_PHONE_SC_AUTN_OUT; + smartCardAuthenticateData.iRAND=DMMTSY_PHONE_SC_RAND_OUT; + smartCardAuthenticateData.iRES=DMMTSY_PHONE_SC_RES_OUT; + smartCardAuthenticateData.iIK=DMMTSY_PHONE_SC_IK_OUT; + smartCardAuthenticateData.iCK=DMMTSY_PHONE_SC_CK_OUT; + smartCardAuthenticateData.iAUTS=DMMTSY_PHONE_SC_AUTS_OUT; + smartCardAuthenticateData.iKc=DMMTSY_PHONE_SC_KC_OUT; + AddDelayedReq(aTsyReqHandle,this); + } + } + else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaBootstrapAuthDataV8) + { + RMobilePhone::TGbaBootstrapAuthDataV8Pckg *gbaBootstrapAuthenticateDataPckg = + STATIC_CAST(RMobilePhone::TGbaBootstrapAuthDataV8Pckg*,aSmartCardAuthData); + + RMobilePhone::TGbaBootstrapAuthDataV8 &gbaBootstrapAuthData = + (*gbaBootstrapAuthenticateDataPckg)(); + + if(gbaBootstrapAuthData.iAUTN != DMMTSY_PHONE_GBA_AUTN_IN || + gbaBootstrapAuthData.iRAND != DMMTSY_PHONE_GBA_RAND_IN) + { + iGbaBootstrapAuthDataFail++; + switch(iGbaBootstrapAuthDataFail) + { + case 1: + gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT; + gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_FAIL_AUTS_OUT; + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthVerificationFailure); + break; + + case 2: + gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT; + gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT; + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid); + break; + + case 3: + default: + gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_FAIL_RES_OUT; + gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT; + ReqCompleted(aTsyReqHandle, KErrInUse); + iGbaBootstrapAuthDataFail=0; + break; + } + } + else + { + gbaBootstrapAuthData.iRES=DMMTSY_PHONE_GBA_SUCC_RES_OUT; + gbaBootstrapAuthData.iAUTS=DMMTSY_PHONE_GBA_SUCC_AUTS_OUT; + AddDelayedReq(aTsyReqHandle,this); + } + } + else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileGbaNafAuthDataV8) + { + RMobilePhone::TGbaNafAuthDataV8Pckg *gbaNafAuthenticateDataPckg = + STATIC_CAST(RMobilePhone::TGbaNafAuthDataV8Pckg*,aSmartCardAuthData); + + RMobilePhone::TGbaNafAuthDataV8 &gbaNafAuthData= + (*gbaNafAuthenticateDataPckg)(); + if(gbaNafAuthData.iNafId != DMMTSY_PHONE_GBA_VALID_NAFID || + gbaNafAuthData.iImpi != DMMTSY_PHONE_GBA_VALID_IMPI) + { + iGbaNafAuthDataFail++; + switch(iGbaNafAuthDataFail) + { + case 1: + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound); + break; + + case 2: + ReqCompleted(aTsyReqHandle, KErrCorrupt); + break; + + case 3: + default: + ReqCompleted(aTsyReqHandle, KErrInUse); + iGbaNafAuthDataFail=0; + break; + } + } + else + { + gbaNafAuthData.iKsExtNaf=DMMTSY_PHONE_GBA_KS_EXTNAF; + AddDelayedReq(aTsyReqHandle,this); + } + } + else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskUpdateDataV8) + { + RMobilePhone::TMbmsMskUpdateDataV8Pckg *mbmsMskUpdateAuthenticateDataPckg = + STATIC_CAST(RMobilePhone::TMbmsMskUpdateDataV8Pckg*,aSmartCardAuthData); + + RMobilePhone::TMbmsMskUpdateDataV8 &mbmsMskUpdateAuthData= + (*mbmsMskUpdateAuthenticateDataPckg)(); + if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_INVALID_IMIKEY) + { + iMbmsMskUpdateAuthDataFail++; + switch(iMbmsMskUpdateAuthDataFail) + { + case 1: + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound); + break; + + case 2: + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid); + break; + + case 3: + ReqCompleted(aTsyReqHandle, KErrCorrupt); + break; + + case 4: + default: + ReqCompleted(aTsyReqHandle, KErrInUse); + iMbmsMskUpdateAuthDataFail=0; + break; + } + } + else if(mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_WO_VBIT) + { + AddDelayedReq(aTsyReqHandle,this); + } + else if (mbmsMskUpdateAuthData.iInputMikey == DMMTSY_PHONE_MBMS_VALID_IMIKEY_W_VBIT) + { + mbmsMskUpdateAuthData.iOutputMikey=DMMTSY_PHONE_MBMS_OMIKEY_FOR_W_VBIT; + AddDelayedReq(aTsyReqHandle,this); + } + } + + else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMtkGenerateDataV8) + { + RMobilePhone::TMbmsMtkGenerateDataV8Pckg *mbmsMtkGenerateAuthenticateDataPckg = + STATIC_CAST(RMobilePhone::TMbmsMtkGenerateDataV8Pckg*,aSmartCardAuthData); + + RMobilePhone::TMbmsMtkGenerateDataV8 &mbmsMtkGenerateAuthData= + (*mbmsMtkGenerateAuthenticateDataPckg)(); + + if(mbmsMtkGenerateAuthData.iMikey!= DMMTSY_PHONE_MBMS_VALID_IMIKEY) + { + iMbmsMtkGenerateAuthDataFail++; + switch(iMbmsMtkGenerateAuthDataFail) + { + case 1: + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyNotFound); + break; + + case 2: + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthKeyInvalid); + break; + + case 3: + ReqCompleted(aTsyReqHandle, KErrMMEtelAuthMacInvalid); + break; + + case 4: + ReqCompleted(aTsyReqHandle, KErrCorrupt); + break; + + case 5: + default: + ReqCompleted(aTsyReqHandle, KErrInUse); + iMbmsMtkGenerateAuthDataFail=0; + break; + } + } + else + { + mbmsMtkGenerateAuthData.iMtk = DMMTSY_PHONE_MBMS_VALID_MTK; + mbmsMtkGenerateAuthData.iSaltKey = DMMTSY_PHONE_MBMS_VALID_SALTKEY; + AddDelayedReq(aTsyReqHandle,this); + } + } + else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMskDeleteDataV8) + { + RMobilePhone::TMbmsMskDeleteDataV8Pckg *mbmsMskDeleteAuthenticateDataPckg = + STATIC_CAST(RMobilePhone::TMbmsMskDeleteDataV8Pckg*,aSmartCardAuthData); + + RMobilePhone::TMbmsMskDeleteDataV8 &mbmsMskDeleteAuthData= + (*mbmsMskDeleteAuthenticateDataPckg)(); + + if((mbmsMskDeleteAuthData.iKeyDomainId!= DMMTSY_PHONE_MBMS_VALID_KEYDMN) || + (mbmsMskDeleteAuthData.iMskIdKeyGroup != DMMTSY_PHONE_MBMS_VALID_MSKIDGRP)) + { + iMbmsMskDeleteAuthDataFail++; + switch(iMbmsMskDeleteAuthDataFail) + { + case 1: + ReqCompleted(aTsyReqHandle, KErrNotFound); + break; + + case 2: + default: + ReqCompleted(aTsyReqHandle, KErrInUse); + iMbmsMskDeleteAuthDataFail=0; + break; + } + } + else + { + AddDelayedReq(aTsyReqHandle,this); + } + } + else if(smartCardAuthenticateData.ExtensionId() == RMobilePhone::KETelMobileMbmsMukDeleteDataV8) + { + RMobilePhone::TMbmsMukDeleteDataV8Pckg *mbmsMukDeleteAuthenticateDataPckg = + STATIC_CAST(RMobilePhone::TMbmsMukDeleteDataV8Pckg*,aSmartCardAuthData); + + RMobilePhone::TMbmsMukDeleteDataV8 &mbmsMukDeleteAuthData= + (*mbmsMukDeleteAuthenticateDataPckg)(); + + if(mbmsMukDeleteAuthData.iMukIdTlv!= DMMTSY_PHONE_MBMS_VALID_MUKID) + { + iMbmsMukDeleteAuthDataFail++; + switch(iMbmsMukDeleteAuthDataFail) + { + case 1: + ReqCompleted(aTsyReqHandle, KErrNotFound); + break; + + case 2: + default: + ReqCompleted(aTsyReqHandle, KErrInUse); + iMbmsMukDeleteAuthDataFail=0; + break; + } + } + else + { + AddDelayedReq(aTsyReqHandle,this); + } + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetSmartCardAuthenticationDataCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle, KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetEmergencyClient(const TTsyReqHandle aTsyReqHandle, TUint32* aEmergencyRequest) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetEmergencyClient called")); + + switch (*aEmergencyRequest) + { + case RPhone::EEmergencyLCSRequest: + case RPhone::EEmergencyCSVoiceCallRequest: + case RPhone::EEmergencyLCSRequest | RPhone::EEmergencyCSVoiceCallRequest: + ReqCompleted(aTsyReqHandle, KErrNone); + break; + default: + return KErrCorrupt; + } + + return KErrNone; + } + +// +// First Ordinal Functions +// +extern "C" + { + IMPORT_C CPhoneFactoryBase* LibEntry(); // Force "Proper Name" export + } + +EXPORT_C CPhoneFactoryBase* LibEntry() + { + CPhoneFactoryDMmTsy* factory = NULL; + TRAP_IGNORE(factory = CPhoneFactoryDMmTsy::NewL()); + return factory; + } + +// +// DMmTsy Phone Factory Functions +// + +CPhoneFactoryDMmTsy* CPhoneFactoryDMmTsy::NewL() + { + CPhoneFactoryDMmTsy *This = new (ELeave) CPhoneFactoryDMmTsy; + CleanupStack::PushL(This); + This->ConstructL(); + CleanupStack::Pop(); + return This; + } + +CPhoneFactoryDMmTsy::CPhoneFactoryDMmTsy() + { + iVersion=TVersion( KTsyEtelMajorVersionNumber, + KTsyEtelMinorVersionNumber, + KTsyEtelBuildVersionNumber); + } + +CPhoneFactoryDMmTsy::~CPhoneFactoryDMmTsy() + { + LOGDESTROY(); + } + +CPhoneBase * CPhoneFactoryDMmTsy::NewPhoneL(const TDesC& aName) + { + if (aName.Compare(DMMTSY_PHONE_NAME)==KErrNone) + return CPhoneDMmTsy::NewL(this); + else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH1)==KErrNone) + { + CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this); + CleanupStack::PushL(phone); + // it van be initialised in different ways by using name of the phone - + // that's why different names of phones shall be used + phone->iAuthInfo->iIMPI=DMMTSY_PHONE1_IMPI; + phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE1_IMPU0); + phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE1_HNDN; + phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE1_DATASOURCE; + CleanupStack::Pop(phone); + return phone; + } + else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH2)==KErrNone) + { + CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this); + CleanupStack::PushL(phone); + // it van be initialised in different ways by using name of the phone - + // that's why different names of phones shall be used + phone->iAuthInfo->iIMPI=DMMTSY_PHONE2_IMPI; + phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU1); + phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU2); + phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU3); + phone->iAuthInfo->iIMPUArray.Append(DMMTSY_PHONE2_IMPU4); + phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE2_HNDN; + phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE2_DATASOURCE; + CleanupStack::Pop(phone); + return phone; + } + else if (aName.Compare(DMMTSY_PHONE_NAMEAUTH3)==KErrNone) + { + CPhoneDMmTsy* phone=CPhoneDMmTsy::NewL(this); + CleanupStack::PushL(phone); + // it van be initialised in different ways by using name of the phone - + // that's why different names of phones shall be used + phone->iAuthInfo->iIMPI=DMMTSY_PHONE3_IMPI; + phone->iAuthInfo->iHomeNetworkDomainName=DMMTSY_PHONE3_HNDN; + phone->iAuthInfo->iAuthenticationDataSource=DMMTSY_PHONE3_DATASOURCE; + CleanupStack::Pop(phone); + return phone; + } + return NULL; + } + +TBool CPhoneFactoryDMmTsy::IsSupported(const TInt /*aMixin*/) + { + return EFalse; + } + +// +// methods for CActiveListNode +// + +CPhoneDMmTsy::CActiveListNode::CActiveListNode(CActive *aActive, const TTsyReqHandle aTsyReqHandle) : + iActive(aActive), iTsyReqHandle(aTsyReqHandle) + { + + } + +CPhoneDMmTsy::CActiveListNode::~CActiveListNode() + { + delete iActive; + } + +// +// methods for the list of aos which corresspond to the outstanding delayed asyncrhonous reqs +// + +TInt CPhoneDMmTsy::FindDelayedReq(const TTsyReqHandle aTsyReqHandle, CActiveListNode *& aNode) + { + TInt err = KErrNotFound; + TSglQueIter iter(iActiveRequestObjects); + iter.SetToFirst(); + + CActiveListNode *node = aNode = NULL; + while ((node = iter++) != NULL) + if (node->iTsyReqHandle == aTsyReqHandle) + break; + + if (node != NULL) + { + aNode = node; + err = KErrNone; + } + + return err; + } + +TInt CPhoneDMmTsy::RemoveDelayedReq(const TTsyReqHandle aTsyReqHandle) + { + CActiveListNode *aNode = NULL; + TInt err = FindDelayedReq(aTsyReqHandle,aNode); + if (err == KErrNone) + { + iActiveRequestObjects.Remove(*aNode); + delete aNode; + } + return err; + } + +void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject) + { + CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject); + CleanupStack::PushL(delayed); + CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle); + iActiveRequestObjects.AddLast(*newNode); + delayed->After(100000); + CleanupStack::Pop(); // delayed + } +void CPhoneDMmTsy::RegisterDelayedReqL(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority) + { + CDelayedCompleter *delayed = CDelayedCompleter::NewL(aTsyReqHandle,this,aTelObject); + CleanupStack::PushL(delayed); + CActiveListNode *newNode = new (ELeave) CActiveListNode(delayed,aTsyReqHandle); + iActiveRequestObjects.AddLast(*newNode); + delayed->After(aPriority); + CleanupStack::Pop(); // delayed + } +void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject) + { + TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject)); + + if (err != KErrNone) + { + ReqCompleted(aTsyReqHandle, err); + } + } +void CPhoneDMmTsy::AddDelayedReq(const TTsyReqHandle aTsyReqHandle, CTelObject *aTelObject,TInt aPriority) + { + TRAPD(err, RegisterDelayedReqL(aTsyReqHandle, aTelObject, aPriority)); + + + if (err != KErrNone) + { + ReqCompleted(aTsyReqHandle, err); + } + } + +TInt CPhoneDMmTsy::NotifyAuthenticateDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo) + { + if(!iNotifyAuthenticationDataChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChange called")); + RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo); + RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)(); + authInfoV8.iAID = DMMTSY_PHONE_GBA_AID; + authInfoV8.iData = DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyAuthenticateDataChangeCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyAuthenticationDataChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetGbaBootstrapParams(const TTsyReqHandle aTsyReqHandle,RMobilePhone::TAID* aAID,TDes8* aParams) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParams called")); + RMobilePhone::TBsfDataV8Pckg *bsfDataV8Pckg = STATIC_CAST(RMobilePhone::TBsfDataV8Pckg*,aParams); + RMobilePhone::TBsfDataV8 &bsfDataV8 = (*bsfDataV8Pckg)(); + if((bsfDataV8.iBtid != DMMTSY_PHONE_BSF_VALID_BTID) || + (bsfDataV8.iKeyLifetime != DMMTSY_PHONE_BSF_VALID_KEYLIFETIME) || + (*aAID != DMMTSY_PHONE_GBA_AID )) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + else + { + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::SetGbaBootstrapParamsCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetGbaBootstrapParamsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAuthenticationParams(const TTsyReqHandle aTsyReqHandle,TDes8* aAuthInfo,TDes8* aParams) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParams called")); + RMobilePhone::TAuthInfoV8Pckg *authInfoV8Pckg = STATIC_CAST(RMobilePhone::TAuthInfoV8Pckg*,aAuthInfo); + RMobilePhone::TAuthInfoV8 &authInfoV8 = (*authInfoV8Pckg)(); + if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_GBA_PARAMS && authInfoV8.iAID == DMMTSY_PHONE_GBA_AID) + { + RMobilePhone::TGbaBootstrapParamsV8Pckg *gbaBootstrapV8Pckg = STATIC_CAST(RMobilePhone::TGbaBootstrapParamsV8Pckg*,aParams); + RMobilePhone::TGbaBootstrapParamsV8 &gbaBootstrapV8 = (*gbaBootstrapV8Pckg)(); + gbaBootstrapV8.iRand = DMMTSY_PHONE_GBA_RAND_IN; + gbaBootstrapV8.iBtid = DMMTSY_PHONE_BSF_VALID_BTID; + gbaBootstrapV8.iKeyLifetime = DMMTSY_PHONE_BSF_VALID_KEYLIFETIME; + AddDelayedReq(aTsyReqHandle,this); + } + else if(authInfoV8.iData == DMMTSY_PHONE_AUTH_DATA_MBMS_MUK && authInfoV8.iAID == DMMTSY_PHONE_MBMS_AID) + { + RMobilePhone::TMbmsUserKeyV8Pckg *mbmsUserKeyV8Pckg = STATIC_CAST(RMobilePhone::TMbmsUserKeyV8Pckg*,aParams); + RMobilePhone::TMbmsUserKeyV8 &mbmsUserKeyV8 = (*mbmsUserKeyV8Pckg)(); + mbmsUserKeyV8.iMukIdi = DMMTSY_PHONE_MBMS_VALID_MUK_IDI; + mbmsUserKeyV8.iMukIdr = DMMTSY_PHONE_MBMS_VALID_MUK_IDR; + mbmsUserKeyV8.iTimeStampCounter = DMMTSY_PHONE_MBMS_VALID_MUK_ITIMESTM; + AddDelayedReq(aTsyReqHandle,this); + } + else + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAuthenticationParamsCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationParamsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAuthenticationListPhase1(const TTsyReqHandle aTsyReqHandle,CRetrieveMobilePhoneAuthenticationIds::TAuthRequestData* aRequest,TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetAuthenticationListPhase1 called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + + if (((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_NAF_LIST) || + ((aRequest->iAuthInfo.iData) == DMMTSY_PHONE_AUTH_DATA_MBMS_MSK)) + { + leaveCode = KErrNone; + } + else + { + leaveCode = KErrCorrupt; + } + + if (leaveCode == KErrNone) + { + if (aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_NAF_LIST) + { + TRAP(leaveCode, ret=ProcessGetGbaPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize);); + } + else if(aRequest->iAuthInfo.iData==DMMTSY_PHONE_AUTH_DATA_MBMS_MSK) + { + TRAP(leaveCode, ret=ProcessGetMbmsPhase1L(aTsyReqHandle, &aRequest->iClient,aBufSize);); + } + } + + if (leaveCode != KErrNone) + { + ReqCompleted(aTsyReqHandle,leaveCode); + } + return ret; + }; + +TInt CPhoneDMmTsy::ProcessGetGbaPhase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aId,TInt* aBufSize) + { + // read the list, store its content and then return size of this buffer to client + CMobilePhoneGbaNafIdList* list=CMobilePhoneGbaNafIdList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TGbaNafEntryV8 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_PHONE_GBA_NAFLIST_COUNT; index++) + { + switch (index) + { + case 0: + entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_ONE; + entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_ONE; + break; + case 1: + entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_TWO; + entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_TWO; + break; + case 2: + entry.iNafId = DMMTSY_PHONE_GBA_NAFLIST_NAFID_THREE; + entry.iBtid = DMMTSY_PHONE_GBA_NAFLIST_BTID_THREE; + break; + case 3: + default: + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC + + iAuthReadAll->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufFlat’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + +TInt CPhoneDMmTsy::ProcessGetMbmsPhase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aId,TInt* aBufSize) + { + // read the list, store its content and then return size of this buffer to client + CMobilePhoneMbmsMskIdList* list=CMobilePhoneMbmsMskIdList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TMskEntryV8 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_PHONE_MBMS_LIST_COUNT; index++) + { + switch (index) + { + case 0: + entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_ONE; + entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_ONE; + entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_ONE; + break; + case 1: + entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_TWO; + entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_TWO; + entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_TWO; + break; + case 2: + entry.iKeyDomainId = DMMTSY_PHONE_MBMSLIST_KEYDMN_THREE; + entry.iMskId = DMMTSY_PHONE_MBMSLIST_MSKID_THREE; + entry.iTimeStampCounter = DMMTSY_PHONE_MBMSLIST_TIMESTM_THREE; + break; + case 3: + default: + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aId, aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufFlat allocated by StoreLC + + iAuthReadAll->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufFlat’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + +TInt CPhoneDMmTsy::GetAuthenticationListPhase2(TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aId, TDes8* aBuffer) + { + LOGTEXT(_L8("CPhoneDMmTsy::ReadAllPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the read attempt from this client + for (TInt i=0; iCount(); ++i) + { + read = iAuthReadAll->At(i); + if ((read->iClient.iSessionHandle==aId->iSessionHandle) && + (read->iClient.iSubSessionHandle==aId->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuffer->Copy(bufPtr); + delete read; + iAuthReadAll->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetAuthenticationListCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::ReadAllCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iAuthReadAll + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iAuthReadAll->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iAuthReadAll->Delete(i); + break; + } + } + + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +// +// Wlan +// +TInt CPhoneDMmTsy::NotifyWlanDataChange(const TTsyReqHandle aTsyReqHandle,TDes8* aData) + { + if(!iNotifyWlanDataChange++) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChange called")); + RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData); + RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)(); + WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS; + WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM; + WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID; + WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY; + WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER; + AddDelayedReq(aTsyReqHandle,this); + } + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyWlanDataChangeCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyWlanDataChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::SetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetWlanData called")); + RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData); + RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)(); + if((WlanDataV8.iFieldsUsed != DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS) || + (WlanDataV8.iPseudonym != DMMTSY_PHONE_WLAN_VALID_PSEUDONYM) || + (WlanDataV8.iReauthenticationId != DMMTSY_PHONE_WLAN_VALID_REAUTHID) || + (WlanDataV8.iMasterKey != DMMTSY_PHONE_WLAN_VALID_MASTERKEY) || + (WlanDataV8.iCounter != DMMTSY_PHONE_WLAN_VALID_COUNTER)) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + else + { + AddDelayedReq(aTsyReqHandle,this); + } + + return KErrNone; + } + +TInt CPhoneDMmTsy::SetWlanDataCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::SetWlanDataCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetWlanData(const TTsyReqHandle aTsyReqHandle,TDes8* aData) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetWlanData called")); + RMobilePhone::TUsimWlanDataV8Pckg *WlanDataV8Pckg = STATIC_CAST(RMobilePhone::TUsimWlanDataV8Pckg*,aData); + RMobilePhone::TUsimWlanDataV8 &WlanDataV8 = (*WlanDataV8Pckg)(); + WlanDataV8.iFieldsUsed = DMMTSY_PHONE_WLAN_LIST_DATA_FLAGS; + WlanDataV8.iPseudonym = DMMTSY_PHONE_WLAN_VALID_PSEUDONYM; + WlanDataV8.iReauthenticationId = DMMTSY_PHONE_WLAN_VALID_REAUTHID; + WlanDataV8.iMasterKey = DMMTSY_PHONE_WLAN_VALID_MASTERKEY; + WlanDataV8.iCounter = DMMTSY_PHONE_WLAN_VALID_COUNTER; + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetWlanDataCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetWlanDataCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::StorePreferredWlanSIDList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) + { + LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDList called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessStorePreferredWlanSIDListL(aTsyReqHandle, aBuffer);); + if (leaveCode != KErrNone) + { + ReqCompleted(aTsyReqHandle,leaveCode); + } + return ret; + }; + +TInt CPhoneDMmTsy::ProcessStorePreferredWlanSIDListL(TTsyReqHandle aTsyReqHandle, TDes8* aBuffer) + { + CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL(); + CleanupStack::PushL(list); + + list->RestoreL(*aBuffer); + + RMobilePhone::TWlanSIDV8 entry; + + if (list->Enumerate() != DMMTSY_PHONE_WLAN_SIDLIST_COUNT) + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + CleanupStack::PopAndDestroy(); // list + return KErrNone; + } + + TInt error=KErrNone; + TInt ret; + for (TInt i=0; iGetEntryL(i)); + if (ret != KErrNone) + break; + switch(i) + { + case 0: + { + if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_ONE || + entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_ONE) + { + error = KErrCorrupt; + } + } + break; + case 1: + { + if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_TWO || + entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_TWO) + { + error = KErrCorrupt; + } + } + break; + case 2: + default: + { + if(entry.iWSID != DMMTSY_PHONE_WLAN_WSID_THREE || + entry.iUserDefined != DMMTSY_PHONE_WLAN_USERDEFD_THREE) + { + error = KErrCorrupt; + } + } + break; + } + } + if(error==KErrNone) + { + AddDelayedReq(aTsyReqHandle,this); + } + else + { + ReqCompleted(aTsyReqHandle,KErrCorrupt); + } + CleanupStack::PopAndDestroy(); + return KErrNone; + } + +TInt CPhoneDMmTsy::StorePreferredWlanSIDListCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::StorePreferredWlanSIDListCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChange(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChange called")); + AddDelayedReq(aTsyReqHandle,this); + return KErrNone; + } + +TInt CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel(TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::NotifyPreferredWlanSIDListChangeCancel called")); + RemoveDelayedReq(aTsyReqHandle); + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase1(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TInt* aBufSize) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsPhase1 called")); + TInt ret=KErrNone; + TInt leaveCode=KErrNone; + TRAP(leaveCode, ret=ProcessGetPreferredWlanSIDsPhase1L(aTsyReqHandle, aClient, aBufSize);); + if (leaveCode != KErrNone) + { + ReqCompleted(aTsyReqHandle,leaveCode); + } + return ret; + } + +TInt CPhoneDMmTsy::ProcessGetPreferredWlanSIDsPhase1L(const TTsyReqHandle aTsyReqHandle, + RMobilePhone::TClientId* aClient, + TInt* aBufSize) + { + // retrieve stored Wlan specific IDs from USIM, + // store each entry. + // stream the list and then return size of this buffer to client + CMobilePhoneStoredWlanSIDList* list=CMobilePhoneStoredWlanSIDList::NewL(); + CleanupStack::PushL(list); + + RMobilePhone::TWlanSIDV8 entry; + + // fill up an example list + for (TInt index=0; index < DMMTSY_PHONE_WLAN_SIDLIST_COUNT; index++) + { + switch (index) + { + case 0: + entry.iWSID = DMMTSY_PHONE_WLAN_WSID_ONE; + entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_ONE; + break; + + case 1: + entry.iWSID = DMMTSY_PHONE_WLAN_WSID_TWO; + entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_TWO; + break; + + case 2: + default: + entry.iWSID = DMMTSY_PHONE_WLAN_WSID_THREE; + entry.iUserDefined = DMMTSY_PHONE_WLAN_USERDEFD_THREE; + break; + } + // Add the entry into the list, at the next empty location + list->AddEntryL(entry); + } + // Store the streamed list and the client ID + CListReadAllAttempt* read=CListReadAllAttempt::NewL(aClient,aTsyReqHandle); + CleanupStack::PushL(read); + + read->iListBuf = list->StoreLC(); + CleanupStack::Pop(); // pop the CBufBase allocated by StoreLC + + iGetWlanSIDsData->AppendL(read); + CleanupStack::Pop(); // pop the CListReadAllAttempt + + // return the CBufBase’s size to client + *aBufSize=(read->iListBuf)->Size(); + + // Complete first phase of list retrieval + AddDelayedReq(aTsyReqHandle,this); + CleanupStack::PopAndDestroy(); // pop&destroy list + return KErrNone; + } + +TInt CPhoneDMmTsy::GetPreferredWlanSIDsPhase2(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TClientId* aClient, TDes8* aBuf) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredNetworksPhase2 called")); + CListReadAllAttempt* read=NULL; + // Find the get preferred wlan SIDs from this client + for (TInt i=0; iCount(); ++i) + { + read = iGetWlanSIDsData->At(i); + if ((read->iClient.iSessionHandle==aClient->iSessionHandle) && + (read->iClient.iSubSessionHandle==aClient->iSubSessionHandle)) + { + TPtr8 bufPtr((read->iListBuf)->Ptr(0)); + // Copy the streamed list to the client + aBuf->Copy(bufPtr); + delete read; + iGetWlanSIDsData->Delete(i); + ReqCompleted(aTsyReqHandle,KErrNone); + return KErrNone; + } + } + // Should handle error case of not finding the matching client from read all phase 1 + return KErrNotFound; + } + +TInt CPhoneDMmTsy::GetPreferredWlanSIDsCancel(const TTsyReqHandle aTsyReqHandle) + { + LOGTEXT(_L8("CPhoneDMmTsy::GetPreferredWlanSIDsCancel called")); + RemoveDelayedReq(aTsyReqHandle); + // Remove the read all attempt from iGetWlanSIDsData + CListReadAllAttempt* read=NULL; + for (TInt i=0; iCount(); ++i) + { + read = iGetWlanSIDsData->At(i); + if (read->iReqHandle == aTsyReqHandle) + { + delete read; + iGetWlanSIDsData->Delete(i); + break; + } + } + ReqCompleted(aTsyReqHandle,KErrCancel); + return KErrNone; + } + +/*******************************************************************/ +// +// CDelayedCompleter +// +/*******************************************************************/ + + + +CDelayedCompleter::CDelayedCompleter(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject, + CTelObject *aTelObject) : + CTimer(EPriorityStandard),iTsyReqHandle(aTsyReqHandle), iPhoneObject(aPhoneObject), + iTelObject(aTelObject) + { + + } + +CDelayedCompleter* CDelayedCompleter::NewL(const TTsyReqHandle aTsyReqHandle, CPhoneDMmTsy *aPhoneObject, + CTelObject *aTelObject) + { + CDelayedCompleter* This = new (ELeave) CDelayedCompleter(aTsyReqHandle,aPhoneObject,aTelObject); + CleanupStack::PushL(This); + This->ConstructL(); + CleanupStack::Pop(); + return This; + } + +void CDelayedCompleter::ConstructL() + { + CTimer::ConstructL(); + CActiveScheduler::Add(this); + } + +void CDelayedCompleter::RunL() + { + iTelObject->ReqCompleted(iTsyReqHandle,KErrNone); + (void) iPhoneObject->RemoveDelayedReq(iTsyReqHandle); // we get deleted here + }