--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/etelmm.h Fri Mar 26 01:54:20 2010 +0530
@@ -0,0 +1,12666 @@
+/*
+* Copyright (c) 2000-2007 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
+
+Multimode ETel API header file.
+
+Describes the MM ETel API - classes, methods and types.
+
+@publishedPartner
+@released
+*/
+
+#ifndef __ETELMM_H__
+#define __ETELMM_H__
+
+#include <e32base.h>
+#include <s32mem.h>
+#include <etel.h>
+#include <etelmmcs.h>
+
+
+/**
+Internal API/TSY delimiter used to pass the phonebook type
+*/
+#define PHBOOK_DELIMITER _L("//")
+/** The size of the phone book delimiter string.
+@internalComponent
+ */
+const TInt KSizeOfPhbookDelimiter=2;
+
+/**
+Names for Multimode ETel sub-sessions
+*/
+_LIT(KETelMeAdnPhoneBook,"S1");
+_LIT(KETelMeDialledPhoneBook,"S2");
+_LIT(KETelMeMissedPhoneBook,"S3");
+_LIT(KETelMeReceivedPhoneBook,"S4");
+_LIT(KETelCombinedAdnPhoneBook,"S5");
+_LIT(KETelTaAdnPhoneBook,"S6");
+_LIT(KETelIccAdnPhoneBook,"S7");
+_LIT(KETelIccFdnPhoneBook,"S8");
+_LIT(KETelIccSdnPhoneBook,"S9");
+_LIT(KETelIccBdnPhoneBook,"S10");
+_LIT(KETelIccLndPhoneBook,"S11");
+_LIT(KETelIccVoiceMailBox,"S12");
+
+_LIT(KETelMeSmsStore,"S13");
+_LIT(KETelIccSmsStore,"S14");
+_LIT(KETelCombinedSmsStore,"S15");
+
+_LIT(KETelNamStore,"S16");
+_LIT(KETelOwnNumberStore,"S17");
+_LIT(KETelEmergencyNumberStore,"S18");
+
+_LIT(KETelSmsMessaging,"S19");
+_LIT(KETelBroadcastMessaging,"S20");
+_LIT(KETelUssdMessaging,"S21");
+
+_LIT(KETelConferenceCall,"S22");
+
+_LIT(KETelIccMbdnPhoneBook, "S23");
+_LIT(KETelIccMsisdnPhoneBook, "S24");
+_LIT(KETelIccOciPhoneBook, "S25");
+_LIT(KETelIccIciPhoneBook, "S26");
+_LIT(KETelIccNamStore ,"S27");
+_LIT(KETelIccInfoPhoneBook, "S28");
+
+_LIT(KETelLocationServices,"S29");
+
+// Types for Multimode ETel sub-sessions
+
+_LIT(KEtelCdmaPhoneBookType,"T1");
+_LIT(KEtelGsmPhoneBookType,"T2");
+_LIT(KEtelUSimPhoneBookType,"T3");
+
+// Types for SmartCardEap sub-sessions
+
+/**
+The prefix to all RMobileSmartCardEap sub-session names.
+*/
+_LIT(KETelSmartCardEapSession, "ScEap");
+/**
+The length of KETelSmartCardEapSession. Used to obtain a const value
+for this length at compile-time.
+*/
+#define SCEAP_SSN_LENGTH 5
+
+/**
+EAP-MD5 type identifier. Value taken from section 5 of RFC 3748 Jun 2004.
+This should be used as the EAP type identifier value of
+RMobileSmartCardEap::Open() if standard EAP-MD5 challenges are to be used.
+
+This value corresponds to one of the possible values returned in the type
+list of TUiccApplicationEapInfoV6.
+
+(Decimal value = 4)
+
+@see RMobileSmartCardEap::Open()
+@see RMobilePhone::TUiccApplicationEapInfoV6
+*/
+_LIT8(KETelSmartCardEapTypeMD5, "04");
+
+/**
+EAP-TLS type identifier. Value taken from section 4.1 of RFC 2716 Oct 1999.
+This should be used as the EAP type identifier value of
+RMobileSmartCardEap::Open() if standard EAP-TLS is to be used.
+
+This value corresponds to one of the possible values returned in the type
+list of TUiccApplicationEapInfoV6.
+
+(Decimal value = 13)
+
+@see RMobileSmartCardEap::Open()
+@see RMobilePhone::TUiccApplicationEapInfoV6
+*/
+_LIT8(KETelSmartCardEapTypeTLS, "0D");
+
+/**
+EAP-SIM type identifier.
+This should be used as the EAP type identifier value of
+RMobileSmartCardEap::Open() if standard EAP-SIM is to be used.
+
+This value corresponds to one of the possible values returned in the type
+list of TUiccApplicationEapInfoV6.
+
+(Decimal value = 18)
+
+@see RMobileSmartCardEap::Open()
+@see RMobilePhone::TUiccApplicationEapInfoV6
+*/
+_LIT8(KETelSmartCardEapTypeSIM, "12");
+
+/**
+EAP-AKA type identifier.
+This should be used as the EAP type identifier value of
+RMobileSmartCardEap::Open() if standard EAP-AKA is to be used.
+
+This value corresponds to one of the possible values returned in the type
+list of TUiccApplicationEapInfoV6.
+
+(Decimal value = 23)
+
+@see RMobileSmartCardEap::Open()
+@see RMobilePhone::TUiccApplicationEapInfoV6
+*/
+_LIT8(KETelSmartCardEapTypeAKA, "17");
+
+/**
+EAP-TTLS type identifier.
+This should be used as the EAP type identifier value of
+RMobileSmartCardEap::Open() if standard EAP-TTLS is to be used.
+
+This value corresponds to one of the possible values returned in the type
+list of TUiccApplicationEapInfoV6.
+
+(Decimal value = 21)
+
+@see RMobileSmartCardEap::Open()
+@see RMobilePhone::TUiccApplicationEapInfoV6
+*/
+_LIT8(KETelSmartCardEapTypeTTLS, "15");
+
+/***********************************************************************************/
+//
+// Global Multimode constants and types
+//
+/***********************************************************************************/
+
+/**
+Unique API identifier and Functional Unit constants
+Modes: Common
+*/
+enum TMultimodeETelV1Api
+ {
+ /** TSY supports the Multimode ETel v1.0 API.
+
+ Modes: Common */
+ KETelExtMultimodeV1=3000, // 3000 is unique reference for Multimode Etel v1.0 API
+ /** TSY supports the MobileSimAccess functional unit.
+
+ Modes: Common */
+ KETelFuncMobileIccAccess,
+ /** TSY supports the MobileNetwork functional unit.
+
+ Modes: Common */
+ KETelFuncMobileNetwork,
+ /** TSY supports the MobileIdentity functional unit.
+
+ Modes: Common */
+ KETelFuncMobileIdentity,
+ /** TSY supports the MobilePower functional unit.
+
+ Modes: Common */
+ KETelFuncMobilePower,
+ /** TSY supports the MobileSignal functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileSignal,
+ /** TSY supports the MobileIndicator functional unit.
+
+ Modes: Common */
+ KETelFuncMobileIndicator,
+ /** TSY supports the MobileDTMF functional unit.
+
+ Modes: Common */
+ KETelFuncMobileDTMF,
+ /** TSY supports the MobileUserNetworkAccess functional unit.
+
+ Modes: Common */
+ KETelFuncMobileUserNetworkAccess,
+ /** TSY supports the MobileIdentityService functional unit.
+
+ Modes: Common */
+ KETelFuncMobileIdentityService,
+ /** TSY supports the MobileCallForwarding functional unit.
+
+ Modes: Common */
+ KETelFuncMobileCallForwarding,
+ /** TSY supports the MobileCallBarring functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileCallBarring,
+ /** TSY supports the MobileCallWaiting functional unit.
+
+ Modes: Common */
+ KETelFuncMobileCallWaiting,
+ /** TSY supports the MobileCallCompletion functional unit. */
+ KETelFuncMobileCallCompletion,
+ /** TSY supports the MobileAlternatingCall functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileAlternatingCall,
+ /** TSY supports the MobileCost functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileCost,
+ /** TSY supports the MobileSecurity functional unit.
+
+ Modes: Common */
+ KETelFuncMobileSecurity,
+ /** TSY supports the MobileAlternateLineService functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileAlternateLineService,
+ /** TSY supports the MobileMessageWaiting functional unit.
+
+ Modes: Common */
+ KETelFuncMobileMessageWaiting,
+ /** TSY supports the MobileFixedDiallingNumbers functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileFixedDiallingNumbers,
+ /** TSY supports the MobileDataCall functional unit.
+
+ Modes: Common */
+ KETelFuncMobileDataCall,
+ /** TSY supports the MobilePrivacy functional unit.
+
+ Modes: CDMA */
+ KETelFuncMobilePrivacy,
+ /** TSY supports the MobileEmergencyCall functional unit.
+
+ Modes: Common */
+ KETelFuncMobileEmergencyCall,
+ /** TSY supports the MobileSmsMessaging functional unit.
+
+ Modes: Common */
+ KETelFuncMobileSmsMessaging,
+ /** TSY supports the MobileBroadcastMessaging functional unit.
+
+ Modes: Common */
+ KETelFuncMobileBroadcastMessaging,
+ /** TSY supports the MobileUssdMessaging functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileUssdMessaging,
+ /** TSY supports the MobileConferenceCall functional unit.
+
+ Modes: Common */
+ KETelFuncMobileConferenceCall,
+ /** TSY supports the MobilePhonebookStore functional unit.
+
+ Modes: Common */
+ KETelFuncMobilePhonebook,
+ /** TSY supports the MobileSmsStore functional unit.
+
+ Modes: Common */
+ KETelFuncMobileSmsStore,
+ /** TSY supports the MobileNamStore functional unit.
+
+ Modes: CDMA */
+ KETelFuncMobileNamStore,
+ /** TSY supports the MobileONStore functional unit.
+
+ Modes: Common */
+ KETelFuncMobileOwnNumberStore,
+ /** TSY supports the MobileENStore functional unit.
+
+ Modes: Common */
+ KETelFuncMobileEmergencyNumberStore,
+ /** TSY supports the MobileMultimedia functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileMulticall,
+ /** TSY supports the MobileNextIncomingCall functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileNextIncomingCall,
+ /** TSY supports the MobileMultimediaCall functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileMultimediaCall,
+ /** TSY supports the MobileUserSignalling functional unit.
+
+ Modes: GSM/WCDMA */
+ KETelFuncMobileUserSignalling
+ };
+
+/** Unique API identifier and Functional Unit constants.
+Modes: WCDMA
+
+*/
+enum TMultimodeETelV2Api
+ {
+ /** TSY supports the Multimode ETel v2.0 API.
+
+ Modes: WCDMA */
+ KETelExtMultimodeV2=7000, // 7000 is unique reference for Multimode Etel v2.0 API
+ /** TSY supports the MobileMultimediaCallSettings functional unit.
+
+ Modes: WCDMA */
+ KEtelFuncMobileMultimediaCallSettings,
+ /** TSY supports the MobileNetworkSecurity functional unit.
+
+ Modes: WCDMA */
+ KEtelFuncMobileNetworkSecurity,
+ KEtelFuncMobileUSIMApplications
+ };
+
+/**
+Enum to define the v3.0 API additions
+
+*/
+enum TMultimodeETelV3Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v3.0 API.
+ */
+ KETelExtMultimodeV3 = 10000,
+ /**
+ TSY supports the MobileMMSInformation functional unit.
+ */
+ KEtelFuncMobileMMSInformation, // 10001
+ /**
+ TSY supports the KEtelFuncMobileAirTime functional unit.
+ */
+ KEtelFuncMobileAirTime, // 10002
+ /**
+ TSY supports the KEtelFuncMobileAutoRedial functional unit.
+ */
+ KEtelFuncMobileAutoRedial, // 10003
+ /**
+ TSY supports the KEtelFuncMobilePersonalisation functional unit.
+ */
+ KEtelFuncMobilePersonalisation, // 10004
+ /**
+ TSY supports the KEtelMobileMailboxNumbers functional unit.
+ */
+ KEtelFuncMobileMailboxNumbers, // 10005
+ /**
+ TSY supports the Mobile APN Control List functional unit.
+ */
+ KEtelFuncMobileAPNControlList // 10006
+ };
+
+/**
+Enum to define the v4.0 API additions
+
+*/
+enum TMultimodeETelV4Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v4.0 API.
+ */
+ KETelExtMultimodeV4 = 15000
+ };
+
+
+/** Enum to define Release 5 enabling API and data structures
+*/
+enum TMultimodeEtelV5Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v5.0 API.
+ */
+ KEtelExtMultimodeV5=20000,
+ /**
+ Indicator that the TSY supports the IMS functional unit.
+ */
+ KEtelFuncMobileIMS, // 20001
+ /**
+ TSY supports the KEtelFuncMobileSmartCardApplications functional unit.
+ */
+ KEtelFuncMobileSmartCardApplications // 20002
+ };
+
+
+/**
+Enum to define the v6.0 API additions.
+*/
+enum TMultimodeEtelV6Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v6.0 API.
+ */
+ KEtelExtMultimodeV6=25000,
+ /**
+ Indicator that the TSY supports the EAP supporting functional unit.
+ */
+ KEtelSmartCardEap // 25001
+ };
+/**
+Enum to define the v7.0 API additions.
+*/
+enum TMultimodeEtelV7Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v7.0 API.
+ */
+ KEtelExtMultimodeV7=30000,
+ /**
+ Indicator that the TSY supports the LocationServices supporting functional unit.
+ */
+ KEtelLocationControlServices // 30001
+ };
+/**
+Enum to define the Etel 3rdParty V1 API additions
+
+*/
+enum TMultimodeETel3rdPartyV1Api
+ {
+ /**
+ Indicator that the TSY supports the Etel 3rd Party v1.0 API
+ */
+ KETelExt3rdPartyV1 = 40000
+ };
+
+/*********************************************************/
+//
+// Phone based functionality (RMobilePhone)
+//
+/*********************************************************/
+
+
+class CMobilePhonePtrHolder;
+class CMobilePhoneStoredNetworkList;
+class RMobileSmartCardEap;
+
+class RMobilePhone : public RPhone
+/**
+Provides client access to mobile phone functionality provided by TSY.
+
+Encapsulates access to a mobile phone. The functionality of RMobilePhone
+is divided into a number of functional units, for the purpose of easier documentation
+and navigation and selectable support by TSY.
+
+Note: Some RMobilePhone function members must be supported by the TSY while
+others are part of optional "functional unit" and only need to be supported
+if the TSY supports that functional unit. When a functional unit is mandatory
+then the unit should at least support the Get...Caps() member function to
+indicate the member functions that are supported for this unit.
+
+*/
+ {
+public:
+ friend class CAsyncRetrievePhoneList;
+ IMPORT_C RMobilePhone();
+
+ // Global multimode types
+
+
+ class TMultimodeType
+ /**
+ Base class for all the V1 parameter types defined within the API.
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TInt ExtensionId() const;
+ protected:
+ TMultimodeType();
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ protected:
+ TInt iExtensionId;
+ };
+
+ /** A typedef'd packaged TMultimodeType for passing through a generic API
+ function member. */
+ typedef TPckg<TMultimodeType> TMultimodeTypePckg;
+
+ // Types used in RMobilePhone::TMobileAddress
+
+/** Address types.
+
+Modes: Common */
+ enum TMobileTON
+ {
+ /** User or the network has no knowledge of the type of number.
+
+ Modes: Common */
+ EUnknownNumber, // 0
+ /** International number.
+
+ Modes: Common */
+ EInternationalNumber, // 1
+ /** National number.
+
+ Modes: Common */
+ ENationalNumber, // 2
+ /** Administration/service number specific to the serving network, e.g. used to
+ access an operator.
+
+ Modes: Common */
+ ENetworkSpecificNumber, // 3
+ /** Subscriber number.
+
+ Modes: Common */
+ ESubscriberNumber, // 4 - Also defined as "dedicated, short code" in GSM 04.08
+ /** Alphanumeric number coded according to 3GPP TS 123 038 GSM 7-bit default alphabet.
+
+ Modes: GSM/WCDMA */
+ EAlphanumericNumber, // 5
+ /** Abbreviated number.
+
+ Modes: Common */
+ EAbbreviatedNumber // 6
+ };
+
+/** Number Plan Indicator.
+
+Modes: Common */
+ enum TMobileNPI
+ {
+ /** User or the network has no knowledge of the numbering plan.
+
+ Modes: Common */
+ EUnknownNumberingPlan =0,
+ /** ISDN/telephony numbering plan.
+
+ Modes: Common */
+ EIsdnNumberPlan=1,
+ /** Data numbering plan.
+
+ Modes: Common */
+ EDataNumberPlan=3,
+ /** Telex numbering plan.
+
+ Modes: Common */
+ ETelexNumberPlan=4,
+ /** Service centre specific plan used to indicate a numbering plan specific to external
+ Short Message entities attached to the SMSC. */
+ EServiceCentreSpecificPlan1=5,
+ /** Service centre specific plan used to indicate a numbering plan specific to external
+ Short Message entities attached to the SMSC.
+
+ Modes: GSM/WCDMA */
+ EServiceCentreSpecificPlan2=6,
+ /** National numbering plan.
+
+ Modes: GSM/WCDMA */
+ ENationalNumberPlan=8,
+ /** Private numbering plan.
+
+ Modes: Common */
+ EPrivateNumberPlan=9,
+ /** ERMES numbering plan.
+
+ Modes: GSM/WCDMA */
+ EERMESNumberPlan=10
+ };
+
+ enum
+ {
+ KMaxMobilePasswordSize=10,
+ KMaxMobileNameSize=32,
+ KMaxMobileTelNumberSize=100
+ };
+
+ struct TMMTableSettings
+ {
+ TUint32 iLocId;
+ };
+
+ typedef TPckg<TMMTableSettings> TMMTableSettingsPckg;
+
+
+
+ class TMobileAddress
+ /**
+ Defines API abstraction of a mobile telephone number.
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileAddress();
+
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+
+ public:
+ /** Type of number.
+
+ @see TMobileTON */
+ TMobileTON iTypeOfNumber;
+ /** Number plan.
+
+ @see TMobileNPI */
+ TMobileNPI iNumberPlan;
+ /** Telephone number. */
+ TBuf<KMaxMobileTelNumberSize> iTelNumber;
+ };
+
+ // Mobile information location type
+
+ /** Defines Location of service information.
+
+ Modes: Common */
+ enum TMobileInfoLocation
+ {
+ /** Retrieve the service information ONLY from the cache on the phone. Return KErrNotFound
+ if the cache does not exist or it is empty. */
+ EInfoLocationCache,
+ /** Retrieve the service information from the cache, but if this is empty or does
+ not exist then interrogate the network. */
+ EInfoLocationCachePreferred,
+ /** Retrieve the service information from the network (and refresh the cache if
+ there is one). */
+ EInfoLocationNetwork
+ };
+
+ // Mobile call service type
+
+ /** Applicability of request to a mobile service group.
+
+ Modes: Common */
+ enum TMobileService
+ {
+ /** The call service has not been specified.
+
+ Modes: Common */
+ EServiceUnspecified,
+ /** The API request applies to voice call services.
+
+ Modes: Common */
+ EVoiceService,
+ /** The API request applies to auxiliary voice call services.
+
+ Modes: GSM/WCDMA */
+ EAuxVoiceService,
+ /** The API request applies to circuit switched data call services.
+
+ Modes: Common */
+ ECircuitDataService,
+ /** The API request applies to packet data services.
+
+ Modes: Common */
+ EPacketDataService,
+ /** The API request applies to fax call services.
+
+ Modes: Common */
+ EFaxService,
+ /** The API request applies to short message services.
+
+ Modes: Common */
+ EShortMessageService,
+ /** The API request applies to all mobile services.
+
+ Modes: Common */
+ EAllServices,
+ /** All teleservices
+
+ Modes: Common */
+ EAllTele,
+ /** Telephony
+
+ Modes: Common */
+ ETelephony,
+ /** All data teleservices
+
+ Modes: Common */
+ EAllDataTele,
+ /** Voice Broadcast Service (VBS) Bearer Service
+
+ Modes: Common */
+ EAllDataExSms,
+ /** All teleservices except SMS
+
+ Modes: Common */
+ EAllTeleExcSms,
+ /** All PLMN specific teleservices
+
+ Modes: Common */
+ EAllPlmnTele,
+ /** PLMN specific teleservice 1
+
+ Modes: Common */
+ EPlmnTele1,
+ /** PLMN specific teleservice 2
+
+ Modes: Common */
+ EPlmnTele2,
+ /** PLMN specific teleservice 3
+
+ Modes: Common */
+ EPlmnTele3,
+ /** PLMN specific teleservice 4
+
+ Modes: Common */
+ EPlmnTele4,
+ /** PLMN specific teleservice 5
+
+ Modes: Common */
+ EPlmnTele5,
+ /** PLMN specific teleservice 6
+
+ Modes: Common */
+ EPlmnTele6,
+ /** PLMN specific teleservice 7
+
+ Modes: Common */
+ EPlmnTele7,
+ /** PLMN specific teleservice 8
+
+ Modes: Common */
+ EPlmnTele8,
+ /** PLMN specific teleservice 9
+
+ Modes: Common */
+ EPlmnTele9,
+ /** PLMN specific teleservice 10
+
+ Modes: Common */
+ EPlmnTeleA,
+ /** PLMN specific teleservice 11
+
+ Modes: Common */
+ EPlmnTeleB,
+ /** PLMN specific teleservice 12
+
+ Modes: Common */
+ EPlmnTeleC,
+ /** PLMN specific teleservice 13
+
+ Modes: Common */
+ EPlmnTeleD,
+ /** PLMN specific teleservice 14
+
+ Modes: Common */
+ EPlmnTeleE,
+ /** PLMN specific teleservice 15
+
+ Modes: Common */
+ EPlmnTeleF,
+ /** All bearer services
+
+ Modes: Common */
+ EAllBearer,
+ /** All async services
+
+ Modes: Common */
+ EAllAsync,
+ /** All sync services
+
+ Modes: Common */
+ EAllSync,
+ /** All data circuit sync
+
+ Modes: Common */
+ ESyncData,
+ /** All data circuit async
+
+ Modes: Common */
+ EAsyncData,
+ /** All packet data services
+
+ Modes: Common */
+ EPacketData,
+ /** All pad access services
+
+ Modes: Common */
+ EPadAccess,
+ /** All PLMN specific bearer services
+
+ Modes: Common */
+ EAllPlmnBearer,
+ /** PLMN specific bearer service 1
+
+ Modes: Common */
+ EPlmnBearerServ1,
+ /** PLMN specific bearer service 2
+
+ Modes: Common */
+ EPlmnBearerServ2,
+ /** PLMN specific bearer service 3
+
+ Modes: Common */
+ EPlmnBearerServ3,
+ /** PLMN specific bearer service 4
+
+ Modes: Common */
+ EPlmnBearerServ4,
+ /** PLMN specific bearer service 5
+
+ Modes: Common */
+ EPlmnBearerServ5,
+ /** PLMN specific bearer service 6
+
+ Modes: Common */
+ EPlmnBearerServ6,
+ /** PLMN specific bearer service 7
+
+ Modes: Common */
+ EPlmnBearerServ7,
+ /** PLMN specific bearer service 8
+
+ Modes: Common */
+ EPlmnBearerServ8,
+ /** PLMN specific bearer service 9
+
+ Modes: Common */
+ EPlmnBearerServ9,
+ /** PLMN specific bearer service 10
+
+ Modes: Common */
+ EPlmnBearerServA,
+ /** PLMN specific bearer service 11
+
+ Modes: Common */
+ EPlmnBearerServB,
+ /** PLMN specific bearer service 12
+
+ Modes: Common */
+ EPlmnBearerServC,
+ /** PLMN specific bearer service 13
+
+ Modes: Common */
+ EPlmnBearerServD,
+ /** PLMN specific bearer service 14
+
+ Modes: Common */
+ EPlmnBearerServE,
+ /** PLMN specific bearer service 15
+
+ Modes: Common */
+ EPlmnBearerServF,
+ /** Alternative tele services
+
+ Modes: Common */
+ EAltTele,
+ EVoiceGroupCall,
+ EVoiceBroadcast,
+ EAllGprsBearer
+ };
+
+ // Mobile name type
+
+ /** A typedef to hold the names of API sub-sessions. The names are coded as ASCII
+ characters. */
+ typedef TBuf<KMaxMobileNameSize> TMobileName;
+
+ // Mobile password type
+
+ /** A typedef for the standard password used by mobile phones for secure access
+ to services (phone lock, SIM lock, call barring password). The password is
+ coded as Unicode characters. */
+ typedef TBuf<KMaxMobilePasswordSize> TMobilePassword;
+
+ // for use by client-side API code and TSY only
+
+ struct TClientId
+ /** This type is used within the 2-phase list retrieval classes. During both phases,
+ the client-side API code will pass down the TClientId so that TSY can use
+ this information to match the first phase of the request to the second phase. */
+ {
+ /** The handle to the underlying RTelServer session. */
+ TInt iSessionHandle;
+ /** The handle to the sub-session to which this API request relates. */
+ TInt iSubSessionHandle;
+ };
+
+ /** Phone air interface capabilities. */
+ enum TMobilePhoneModeCaps
+ {
+ /** Phone can operate in GSM mode on 900/1800/1900 MHz bands. */
+ KCapsGsmSupported=0x00000001,
+ /** Phone can operate in GPRS mode on 900/1800/1900 MHz bands. */
+ KCapsGprsSupported=0x00000002,
+ /** Phone can operate in AMPS mode on 800MHz band. */
+ KCapsAmpsSupported=0x00000004,
+ /** Phone can operate in CDMA (IS-95) mode on 800/1900 MHz bands. */
+ KCapsCdma95Supported=0x00000008,
+ /** Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands. */
+ KCapsCdma2000Supported=0x00000010,
+ /** Phone can operate in W-CDMA (UTRA Frequency Division Duplex (FDD)) mode. */
+ KCapsWcdmaSupported=0x00000020,
+ /** Phone can operate in TDMA/CDMA (UTRA Time Division Duplex (TDD)) mode. */
+ KCapsTdcdmaSupported=0x00000040,
+ /**
+ Phone can access Smart Card functionality required for an EAP.
+ @deprecated 9.3
+ */
+ KCapsEapSupported=0x00000080
+ };
+
+ /** Version number of the multimode ETel API. */
+ enum TMultimodeEtelAPIVersion
+ {
+ /** Multimode Etel API version 1. */
+ TMultimodeETelApiV1
+ };
+
+ //
+ // API/TSY internal type
+ //
+
+ struct TPhoneStoreNameAndIccType
+ /** Structure that holds the phone store name and ICC type.
+
+ Mode: Common */
+ {
+ /** This parameter is used to set the name of the storage. */
+ TName iStoreName;
+ /** This parameter is used to set the type of the ICC card. */
+ TName iMode;
+ };
+
+ IMPORT_C TInt GetMultimodeAPIVersion(TInt& aVersion) const;
+
+ IMPORT_C TInt GetMultimodeCaps(TUint32& aCaps) const;
+
+ IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aReqStatus, TDes8& aInfo, const TDesC& aStoreName) const;
+
+ IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aStatus, TDes8& aInfo, const TDesC& aStoreName, const TDesC& aMode) const;
+
+ // explicit phone initialisation
+ IMPORT_C void InitialiseMM(TRequestStatus& aReqStatus, TDes8& aTableSettings) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneIccAccess functional unit
+ //
+ /***********************************************************************************/
+
+/** ICC access capabilities.
+
+Modes: GSM */
+ enum TMobilePhoneIccCaps
+ {
+ /** Phone has a SIM and it currently supports SIM access by clients.
+
+ Modes: GSM */
+ KCapsSimAccessSupported=0x00000001,
+ /** Phone has a R-UIM and it currently supports R-UIM access by clients.
+
+ Modes: CDMA */
+ KCapsRUimAccessSupported=0x00000002,
+ /** Phone has a USIM and it currently supports USIM access by clients.
+
+ Modes: WCDMA */
+ KCapsUSimAccessSupported=0x00000004
+ };
+
+
+ enum
+ {
+ /**
+ Maximum size of an ICC identity.
+
+ NOTE: TS102.221 defines the maximum size of the ICC Identity as held in EF_ICCID as 10 bytes, however
+ TS 51.011 mentions that network operators may issue a SIM with an identification number of 20 bytes.
+ Therefore to cover this possibility the higher figure of 20 bytes has been chosen as the maximum size of the ICC identity.
+ */
+ KMaxSizeIccIdentity = 20
+ };
+
+ /** A typedef to hold the ICC identity.*/
+ typedef TBuf8<KMaxSizeIccIdentity> TIccIdentity;
+
+ IMPORT_C TInt GetIccAccessCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyIccAccessCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+ IMPORT_C void GetIccIdentity(TRequestStatus& aReqStatus, TIccIdentity& aIdentity) const;
+
+/** The Call Transfer/Call Forward options that are supported by the CSP.
+
+Modes: WCDMA/GSM */
+ enum TCspCallOffering
+ {
+ /** Indicates that "Call Transfer" is supported by the CSP. */
+ KCspCT=0x08,
+ /** Indicates that "Call Forwarding on Not Reachable" is supported by the CSP. */
+ KCspCFNRc=0x10,
+ /** Indicates that "Call Forwarding on No Reply" is supported by the CSP. */
+ KCspCFNRy=0x20,
+ /** Indicates that "Call Forwarding on Busy" is supported by the CSP. */
+ KCspCFB=0x40,
+ /** Indicates that "Call Forwarding Unconditional" is supported by the CSP. */
+ KCspCFU=0x80
+ };
+
+/** The call restrictions supported by the CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspCallRestriction
+ {
+ /** Indicates that "Barring of Incoming Calls when roaming outside the home PLMN
+ country" is supported by CSP. */
+ KCspBICRoam=0x08,
+ /** Indicates that "Barring of All Incoming Calls" is supported by CSP. */
+ KCspBAIC=0x10,
+ /** Indicates that "Barring of Outgoing International Calls except those directed
+ to the home PLMN country" is supported by CSP. */
+ KCspBOICexHC=0x20,
+ /** Indicates that "Barring of Outgoing International Calls" is supported by CSP. */
+ KCspBOIC=0x40,
+ /** Indicates that "Barring of All Outgoing Calls" is supported by CSP. */
+ KCspBOAC=0x80
+ };
+
+/** Other services supported by the CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspOtherSuppServices
+ {
+ /** Indicates that the Outgoing Access option of the Closed User Group service is
+ supported by the CSP. */
+ KCspCUGOA=0x08,
+ /** Indicates that the Preferential CUG option of the Closed User Group service
+ is supported by the CSP. */
+ KCspPrefCUG=0x10,
+ /** Indicates that the Advice of Charge service is supported by the CSP. */
+ KCspAoC=0x20,
+ /** Indicates that the Closed User Group service is supported by the CSP. */
+ KCspCUG=0x40,
+ /** Indicates that the Multiparty call service is supported by the CSP */
+ KCspMPTY=0x80,
+ };
+
+/** Call completion modes supported by this CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspCallCompletion
+ {
+ /** Indicates that the Call Completion to Busy Subscriber service is supported by
+ the CSP. */
+ KCspCCBS=0x20,
+ /** Indicates that the Call Waiting service is supported by the CSP. */
+ KCspCW=0x40,
+ /** Indicates that the Call Hold service is supported by the CSP. */
+ KCspHOLD=0x80,
+ };
+
+/** SMS Teleservices supported by the CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspTeleservices
+ {
+ /** Indicates that display of Validity Period menu options for SMS is supported
+ by the CSP. */
+ KCspValidityPeriod=0x02,
+ /** Indicates that display of Protocol ID menu options for SMS is supported by the
+ CSP. */
+ KCspProtocolID=0x04,
+ /** Indicates that SMS Delivery Confirmation is supported by the CSP. */
+ KCspDelConf=0x08,
+ /** Indicates that display of Reply Path menu options for outgoing SMS is supported
+ by the CSP. */
+ KCspReplyPath=0x10,
+ /** Indicates that the Cell Broadcast service is supported by the CSP. */
+ KCspSMCB=0x20,
+ /** Indicates mobile originated Short Messages are supported by CSP. */
+ KCspSMMO=0x40,
+ /** Indicates mobile terminated Short Messages are supported by CSP. */
+ KCspSMMT=0x80,
+ };
+
+/** Alternate Line Services */
+ enum TCspCPHSTeleservices
+ {
+ /** Indicates that Alternate Line Service is supported by the CSP. */
+ KCspALS=0x80
+ };
+
+/** Currently not used. */
+ enum TCspCPHSFeatures
+ {
+ /** This bit value is reserved for SST in Phase 1 CPHS. */
+ KCspReservedSST=0x80
+ };
+
+/** Number Identification option supported by the CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspNumberIdentification
+ {
+ /** Indicates that Calling Line Identity Presentation blocking per call (CLI sent
+ by default) is supported by the CSP. */
+ KCspCLIBlock=0x01,
+ /** Indicates that Calling Line Identity Presentation per call (CLI blocked by default)
+ is supported by the CSP. */
+ KCspCLISend=0x02,
+ /** Indicates that Connected Line Identification Presentation is supported by the
+ CSP. */
+ KCspCOLP=0x10,
+ /** Indicates that Connected Line Identification Restriction is supported by the
+ CSP. */
+ KCspCOLR=0x20,
+ /** Indicates that Calling Line Identification Presentation is supported by the CSP. */
+ KCspCLIP=0x80,
+ };
+
+/** Phase 2+ services supported by the CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspPhase2PlusServices
+ {
+ /** Indicates that Multiple Band roaming is supported by CSP. */
+ KCspMultipleband=0x04,
+ /** Indicates that Multiple Subscriber Profile is supported by CSP.
+
+ v1.0 of Multimode ETel API does not support this feature */
+ KCspMSP=0x08,
+ /** Indicates that Voice Broadcast is supported by CSP.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KCspVoiceBroadcast=0x10,
+ /** Indicates that Voice Group Call is supported by CSP.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KCspVoiceGroupCall=0x20,
+ /** Indicates that High Speed Circuit Switched Data is supported by CSP. */
+ KCspHscsd=0x40,
+ /** Indicates that General Packet Radio Service is supported by CSP. */
+ KCspGprs=0x80
+ };
+
+/** Value added services supported by this CSP.
+
+Modes: GSM/WCDMA */
+ enum TCspValueAdded
+ {
+ /** Indicates that display of language selection menus is supported by the CSP.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KCspLanguage=0x01,
+ /** Indicates that display of data call option menu is supported by the CSP. */
+ KCspData=0x04,
+ /** Indicates that display of fax call option menu is supported by the CSP. */
+ KCspFax=0x08,
+ /** Indicates that display of the menu option to send a Short Message of type Email
+ is supported by the CSP. */
+ KCspSMMOEmail=0x10,
+ /** Indicates that display of the menu option to send a Short Message of type Paging
+ is supported by the CSP. */
+ KCspSMMOPaging=0x20,
+ /** Indicates that display of the menu option for manual PLMN selection is supported
+ by the CSP. */
+ KCspPLMNMode=0x80,
+ };
+
+
+
+ class TMobilePhoneCspFileV1 : public TMultimodeType
+ /** Defines contents of the CSP (Customer Service Profile) on the SIM. The profile
+ consists of the sum of the respective enums.
+
+ @see GetCustomerServiceProfile()
+ @publishedPartner
+ @released*/
+ {
+ public:
+ /** Constructor. */
+ IMPORT_C TMobilePhoneCspFileV1();
+
+ /** Sum of the TCspCallOffering. */
+ TUint8 iCallOfferingServices;
+ /** Sum of the TCspCallRestriction. */
+ TUint8 iCallRestrictionServices;
+ /** Sum of the TCspOtherSuppServices. */
+ TUint8 iOtherSuppServices;
+ /** Sum of the TCspCallCompletion. */
+ TUint8 iCallCompletionServices;
+ /** Sum of the TCspTeleservices. */
+ TUint8 iTeleservices;
+ /** Sum of the TCspCPHSTeleservices. */
+ TUint8 iCphsTeleservices;
+ /** Sum of the TCspCPHSFeatures. */
+ TUint8 iCphsFeatures;
+ /** Sum of the TCspNumberIdentification. */
+ TUint8 iNumberIdentServices;
+ /** Sum of the TCspPhase2PlusServices. */
+ TUint8 iPhase2PlusServices;
+ /** Sum of the TCspValueAdded. */
+ TUint8 iValueAddedServices;
+ };
+
+/** A typedef'd packaged TMobilePhoneCspFileV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneCspFileV1> TMobilePhoneCspFileV1Pckg;
+
+ IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const;
+
+/** SIM/USIM/CDMA Service Table.
+
+Modes: Common */
+ enum TSSTServices1To8
+ {
+ /** Indicates that disabling PIN1 is supported by the ICC. */
+ KSstPin1Disable=0x01,
+ /** Indicates that storage of Abbreviated Dialling Numbers within this ICC is supported. */
+ KSstADN=0x02,
+ /** Indicates that the Fixed Dialling Numbers service and the storage of FDN numbers
+ within this ICC is supported. */
+ KSstFDN=0x04,
+ /** Indicates that the Short Message Service and the storage of short messages within
+ this ICC is supported.
+
+ Modes: Common */
+ KSstSMS=0x08,
+ /** Indicates that the Advice of Charge service is supported by this ICC.
+
+ Modes: GSM/WCDMA */
+ KSstAoC=0x10,
+ /** Indicates that the storage of Configuration Capability Parameters associated
+ with an AND, FDN, MSISDN, LND or SDN is supported by this ICC.
+
+ Modes: GSM/WCDMA */
+ KSstCCP=0x20,
+ /** Indicates that storage of a preferred network list is supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSstPLMNSelector=0x40
+ };
+
+/** SIM/USIM/CDMA Service Table (continued).
+
+Modes: GSM/WCDMA */
+ enum TSSTServices9To16
+ {
+ /** Indicates that storage of MSISDN (own numbers) numbers within this ICC is supported.
+
+ Modes: GSM/WCDMA */
+ KSstMSISDN=0x01,
+ /** Indicates that storage of extended (greater than 20 digits) ADN, LND and MSISDN
+ numbers within this ICC is supported.
+
+ Modes: Common */
+ KSstExt1=0x02,
+ /** Indicates that storage of extended (greater than 20 digits) FDN numbers within
+ this ICC is supported.
+
+ Modes: Common */
+ KSstExt2=0x04,
+ /** Indicates that storage of SMS parameter records within this ICC is supported.
+
+ Modes: Common */
+ KSstSMSP=0x08,
+ /** Indicates that storage of Last Numbers Dialled within this ICC is supported.
+
+ Modes: Common */
+ KSstLND=0x10,
+ /** Indicates that the storage of Cell Broadcast message identifiers is supported
+ within this ICC.
+
+ Modes: GSM/WCDMA */
+ KSstCBMI=0x20,
+ /** Indicates that access to the GID1 file is supported within this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSstGID1=0x40,
+ /** Indicates that access to the GID2 file is supported within this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSstGID2=0x80
+ };
+
+/** SIM/USIM/CDMA Service Table (continued).
+
+v1.0 of Multimode ETel API does not support this feature
+
+Modes: Common */
+ enum TSSTServices17To24
+ {
+ /** Indicates that access to the Service Provider Name within ICC is supported.
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: Common */
+ KSstSPName=0x01,
+ /** Indicates that storage of Service Dialling Numbers within ICC is supported.
+
+ Modes: Common */
+ KSstSDN=0x02,
+ /** Indicates that storage of extended (greater than 20 digits) SDN numbers within
+ this ICC/RUIM is supported.
+
+ Modes: Common */
+ KSstExt3=0x04,
+ /** Indicates that access to the VGCS group identifier list within ICC is supported.
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSstVGCSList=0x10,
+ /** Indicates that access to the VBS group identifier list within ICC is supported.
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSstVBSList=0x20,
+ /** Indicates that the enhanced Multi-Level Precedence and Pre-emption service is
+ supported by ICC
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSsteMLPP=0x40,
+ /** Indicates that automatic answer for eMLPP is supported by ICC
+
+ v1.0 of Multimode ETel API does not support this feature
+
+ Modes: GSM/WCDMA */
+ KSstAnswereMLPP=0x80
+ };
+
+/** SIM/USIM/CDMA Service Table (continued).
+
+Modes: GSM/WCDMA */
+ enum TSSTServices25To32
+ {
+ /** Indicates that SAT SMS-CB data download is supported by ICC. */
+ KSstSmsCbDataDownload=0x01,
+ /** Indicates that SAT SMS-PP data download is supported by ICC. */
+ KSstSmsPpDataDownload=0x02,
+ /** Indicates that SAT menu selection is supported by ICC.
+
+ SAT ETel API provides this feature. */
+ KSstMenuSelection=0x04,
+ /** Indicates that SAT call control is supported by ICC.
+
+ SAT ETel API provides this feature. */
+ KSstCallControl=0x08,
+ /** Indicates that SAT pro-active SIM is supported by ICC.
+
+ SAT ETel API provides this feature. */
+ KSstProactiveSim=0x10,
+ /** Indicates ICC storage of ranges of Cell Broadcast Message Identifiers is supported. */
+ KSstCBMIRanges=0x20,
+ /** Indicates ICC storage of Barred Dialling Numbers is supported. */
+ KSstBDN=0x40,
+ /** Indicates ICC storage of extended (greater than 20 digits) BDN numbers is supported. */
+ KSstExt4=0x80
+ };
+
+/** SIM/USIM/CDMA Service Table (continued).
+
+Modes: GSM/WCDMA */
+ enum TSSTServices33To40
+ {
+ /** Indicates depersonalisation control keys are supported by ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstDepersonalisationKeys=0x01,
+ /** Indicates co-operative network list are supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstCooperativeNetworks=0x02,
+ /** Indicates Short Message Status Reports are supported by ICC. */
+ KSstSMStatusReports=0x04,
+ /** Indicates network's indication of alerting is supported by ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstNetworkIndAlerting=0x08,
+ /** Indicates outgoing SM control by SAT is supported by ICC.
+
+ SAT ETel API provides this feature. */
+ KSstMoSmControlBySim=0x10,
+ /** Indicates that GPRS is supported by this ICC.
+
+ GPRS ETel API provides GPRS functionality. */
+ KSstGprs=0x20,
+ /** Indicates that Image files are supported by this ICC.
+
+ SAT ETel API provides this feature. */
+ KSstImage=0x40,
+ /** Indicates that SoLSA in supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature */
+ KSstSoLSA=0x80
+ };
+
+/** SIM/USIM/CDMA Service Table (continued).
+
+Modes: GSM/WCDMA */
+ enum TSSTServices41To48
+ {
+ /** Indicates that USSD string data is supported in SAT Call Control by this ICC.
+
+ SAT ETel API provides this feature. */
+ KSstUssdStringInCallControl=0x01,
+ /** Indicates that RUN AT COMMAND is supported in SAT by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature */
+ KSstRunATCommand=0x02,
+ /** Indicates that PLMN selector list with access technology is supported by this
+ ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstPlmnSelectorListWithAccessTechnology=0x04,
+ /** Indicates that OPLMN selector list with access technology is supported by this
+ ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstOplmnSelectorListWithAccessTechnology=0x08,
+ /** Indicates that HPLMN access technology is supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstHplmnAccessTechnology=0x10,
+ /** Indicates that CPBCCH information is supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstCpbcchInformation=0x20,
+ /** Indicates that Investigation Scan is supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstInvestigationScan=0x40,
+ /** Indicates that extended capability configuration parameters are supported by
+ this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstExtendedCcp=0x80
+ };
+
+/** SIM/USIM/CDMA Service Table (continued).
+
+Modes: GSM/WCDMA */
+ enum TSSTServices49To56
+ {
+ /** Indicates Mobile Execution Environment services are supported by this ICC */
+ KSstMExE=0x01,
+ /** Indicates that RPLMN last used access technology is supported by this ICC.
+
+ v1.0 of Multimode ETel API does not support this feature. */
+ KSstRplmnLastUsedAccessTechnology=0x02
+ };
+
+/** USIM service table. */
+ enum TUSTServices1To8
+ {
+ /** Indicates that the local phonebook is supported by the USIM. Local phonebook
+ means a phonebook that is specific to a USIM Application, as opposed to the
+ global phonebook which is located at the DF Telecom level on the UICC and
+ not attached to a USIM Application. */
+ KUstLocalPhBk=0x01,
+ /** Indicates that the Fixed Dialling Numbers (FDN) service and the storage of
+ FDN numbers within this USIM is supported. */
+ KUstFDN=0x02,
+ /** Indicates that the Extension 2 is supported by the USIM. Extension 2 provides
+ extension data for Fixed Dialling Numbers. */
+ KUstExt2=0x04,
+ /** Indicates that the Service Dialling Numbers are supported by the USIM. */
+ KUstSDN=0x08,
+ /** Indicates that the Extension 3 is supported by the USIM. Extension 3 provides
+ extension data for Service Dialling Numbers. */
+ KUstExt3=0x10,
+ /** Indicates that the Barred Dialling Numbers are supported by the USIM. */
+ KUstBDN=0x20,
+ /** Indicates that the Extension 4 is supported by the USIM. Extension 4 provides
+ extension data for Barred Dialling Numbers. */
+ KUstExt4=0x40,
+ /** Indicates that the outgoing call information (OCI and OCT) are supported by
+ the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstOugoingCallInfo=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices9To16
+ {
+ /** Indicates that the incoming call information (ICI and ICT) are supported by
+ the USIM
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstIncomingCallInfo=0x01,
+ /** Indicates that Short Message Storage is supported by the USIM. */
+ KUstSMS=0x02,
+ /** Indicates that Short Message Status Reports are supported by the USIM. */
+ KUstSMSR=0x04,
+ /** Indicates that Short Message Service Parameters are supported by the USIM. */
+ KUstSMSP=0x08,
+ /** Indicates that Advice Of Charge is supported by the USIM. */
+ KUstAoC=0x10,
+ /** Indicates that Capability Configuration Parameters are supported by the USIM. */
+ KUstCCP=0x20,
+ /** Indicates that Cell Broadcast Message Identifier is supported by the USIM. */
+ KUstCBMI=0x40,
+ /** Indicates that Cell Broadcast Message Identifier Ranges are supported by the
+ USIM. */
+ KUstCBMIRanges=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices17To24
+ {
+ /** Indicates that Group Identifier Level 1 is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstGID1=0x01,
+ /** Indicates that Group Identifier Level 2 is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstGID2=0x02,
+ /** Indicates that Service Provider Name is supported by the USIM. */
+ KUstSPN=0x04,
+ /** Indicates that user controlled PLMN selector with Access Technology is supported
+ by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstPLMNSelAccessTech=0x08,
+ /** Indicates that MSISDN is supported by the USIM. */
+ KUstMSISDN=0x10,
+ /** Indicates that Image is supported by the USIM.
+
+ Note: (U)SAT ETel API provides this feature. This enum value is reserved for
+ future API use. */
+ KUstIMG=0x20,
+ //0x40 is a reserved value
+ /** Indicates that enhanced Multi Level Precedence and Pre-emption Service is supported
+ by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUsteMLPP=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices25To32
+ {
+ /** Indicates that Automatic Answer for eMLPP is supported by the USIM.
+
+ Note: v1.0 and v2.0 of Multimode ETel API do not support this feature. */
+ KUstAnswereMLPP=0x01,
+ //0x02 is a reserved value
+ /** Indicates that GSM Access is supported by the USIM */
+ KUstGSMAccess=0x04,
+ /** Indicates that Data download via SMS-PP is supported by the USIM.
+
+ Note: (U)SAT ETel API provides this feature. */
+ KUstSMSPpDataDownload=0x08,
+ /** Indicates that Data download via SMS-CB is supported by the USIM.
+
+ Note: (U)SAT ETel API provides this feature. */
+ KUstSMSCbDataDownload=0x10,
+ /** Indicates that Call Control by USIM is supported by the USIM.
+
+ Note: (U)SAT ETel API provides this feature. */
+ KUstCallControl=0x20,
+ /** Indicates that MO-SMS Control by USIM is supported by the USIM.
+
+ Note: (U)SAT ETel API provides this feature. */
+ KUstMoSmControl=0x40,
+ /** Indicates that the proactive command RUN AT COMMAND is supported by the USIM.
+
+ Note: (U)SAT ETel API provides this feature. */
+ KUstPCmdRunAtCommand=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices33To40
+ {
+ /** Should always be present as specified by 3 GPP spec. */
+ KUstAlways=0x10,
+ /** Indicates that the Enabled Service Table is supported by the USIM. */
+ KUstEST=0x02,
+ /** Indicates that APN Control List is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstACL=0x04,
+ /** Indicates that the Depersonalisation Control Keys are supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KIstDepersonalisationKeys =0x08,
+ /** Indicates that the Co-operative Network List is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API does not support this feature. */
+ KUstCooperativeNetwork=0x10,
+ /** Indicates that GSM Security Context is supported by the USIM. */
+ KUstGSMSecurityContext=0x20,
+ /** Indicates that CPBCCH Information is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstCPBCCHInfo=0x40,
+ /** Indicates that Investigation Scan is supported by the USIM.
+
+ Note:v2.0 of Multimode ETel API do not support this feature. */
+ KUstInvestigationScan=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices41To48
+ {
+ /** Indicates that MExE is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstMExE=0x01,
+ /** Indicates that Operator controlled PLMN selector with Access Technology is
+ supported by the USIM.
+
+ N.B .v2.0 of Multimode ETel API do not support this feature. */
+ KUstOperatorPLMNSelector=0x02,
+ /** Indicates that HPLMN selector with Access Technology is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstHPLMNSelAccessTech=0x04,
+ /** Indicates that Extension 5 is supported by the USIM. Provides support for extension
+ data for MSISDN. */
+ KUstExt5=0x08,
+ /** Indicates that PLMN Network Name is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstPLMNNetworkName=0x10,
+ /** Indicates that Operator PLMN List is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstOperatorPLMNList=0x20,
+ /** Indicates that Mailbox Dialling Numbers are supported by the USIM. */
+ KUstMDN=0x40,
+ /** Indicates that Message Waiting Indication Status is supported by the USIM. */
+ KUstMWISo=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices49To56
+ {
+ /** Indicates that Call forwarding indication status is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstCFIS=0x01,
+ /** Indicates that RPLMN last-used access technology is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstRPLMN=0x02,
+ /** Indicates that Service provider display information is supported by the USIM.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KUstSPDI=0x04,
+ KUstMMS=0x08,
+ KUstExt8=0x10,
+ KUstCConGPRS=0x20,
+ KUstMMSUCP=0x40
+ };
+
+/** Enabled Services Table. */
+ enum TESTServices1To8
+ {
+ /** Indicates that FDN service is activated. */
+ KEstFDN=0x01,
+ /** Indicates that BDN service is activated. */
+ KEstBDN=0x02,
+ /** Indicates that the APN Control List service is activated.
+
+ Note: v2.0 of Multimode ETel API do not support this feature. */
+ KEstACL=0x04
+ };
+
+/** Get Service Table.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneServiceTable
+ {
+ /** Retrieve SIM service table on SIM (or from GSM application on UICC).
+
+ Modes: GSM/WCDMA */
+ ESIMServiceTable,
+ /** Retrieve USIM service table from active USIM application on UICC.
+
+ Modes: WCDMA */
+ EUSIMServiceTable,
+ /** Retrieve CDMA service table on R-UIM.
+
+ Modes: CDMA */
+ ECDMAServiceTable,
+ /** USIM Enabled Services Table to be used in conjunction with the USIM Service
+ Table.
+
+ Modes: WCDMA */
+ EUSIMEnabledServiceTable
+ };
+
+
+ class TMobilePhoneServiceTableV1 : public TMultimodeType
+ /** Defines contents of the specified Service Table on the ICC.
+
+ @see GetServiceTable()
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneServiceTableV1();
+
+ /** Sum of the TSSTServices1To8 capability constants. */
+ TUint8 iServices1To8;
+ /** Sum of the TSSTServices9To16 capability constants. */
+ TUint8 iServices9To16;
+ /** Sum of the TSSTServices17To24 capability constants. */
+ TUint8 iServices17To24;
+ /** Sum of the TSSTServices25To32 capability constants. */
+ TUint8 iServices25To32;
+ /** Sum of the TSSTServices33To40 capability constants. */
+ TUint8 iServices33To40;
+ /** Sum of the TSSTServices41To48 capability constants. */
+ TUint8 iServices41To48;
+ /** Sum of the TSSTServices49To56 capability constants. */
+ TUint8 iServices49To56;
+ };
+
+/** A typedef'd packaged TMobilePhoneServiceTableV1 passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneServiceTableV1> TMobilePhoneServiceTableV1Pckg;
+
+ enum { KAIDSize=16 };
+
+/** A typedef'd buffer to hold the application identifier (AID) that identifies
+the USIM application in a UICC. The AID consists of a Registered application
+provider IDentifier (RID) of 5Â bytes and a Proprietary application Identifier
+eXtension (PIX) of up to 11 bytes. */
+ typedef TBuf8<KAIDSize> TAID;
+
+ class TMobilePhoneServiceTableV2 : public TMobilePhoneServiceTableV1
+/** Defines contents of the specified Service Table on the ICC for the v2.0 version
+of the API.
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneServiceTableV2();
+ public:
+ /** The application identifier. */
+ TAID iAID;
+ };
+
+/** A typedef'd packaged TMobilePhoneServiceTableV2 passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneServiceTableV2> TMobilePhoneServiceTableV2Pckg;
+
+ IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const;
+
+
+ /***********************************************************************************/
+ //
+ // MobilePhonePower functional unit
+ //
+ /***********************************************************************************/
+
+/** Phone supported battery information.
+
+Modes: Common */
+ enum TMobilePhoneBatteryCaps
+ {
+ /** Phone supports requests to get the current battery information. */
+ KCapsGetBatteryInfo=0x00000001,
+ /** Phone supports requests for notification of change in battery information. */
+ KCapsNotifyBatteryInfoChange=0x00000002
+ };
+
+ IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const;
+
+/** The mobile phone battery status.
+
+Modes: Common */
+ enum TMobilePhoneBatteryStatus
+ {
+ /** The TSY can not determine the phone's current power status. */
+ EPowerStatusUnknown,
+ /** The phone is currently powered by a battery. */
+ EPoweredByBattery,
+ /** A battery is connected, but the phone is externally powered. */
+ EBatteryConnectedButExternallyPowered,
+ /** No battery is connected. */
+ ENoBatteryConnected,
+ /** Power fault. */
+ EPowerFault
+ };
+
+ class TMobilePhoneBatteryInfoV1 : public TMultimodeType
+/** Defines contents of the battery status of the phone.
+
+@see GetBatteryInfo()
+@see NotifyBatteryInfoChange()
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneBatteryInfoV1();
+ public:
+ /** The power and battery status.
+
+ @see TMobilePhoneBatteryStatus */
+ TMobilePhoneBatteryStatus iStatus;
+ /** The percentage battery charge level. */
+ TUint iChargeLevel;
+ };
+
+ IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
+ IMPORT_C void NotifyBatteryInfoChange(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
+
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneSignal functional unit
+ //
+ /***********************************************************************************/
+
+/** The mobile phone signal strength capabilities.
+
+Modes: Common */
+ enum TMobilePhoneSignalCaps
+ {
+ /** Phone supports requests to get the current signal strength. */
+ KCapsGetSignalStrength=0x00000001,
+ /** Phone supports requests for notification of change in signal strength. */
+ KCapsNotifySignalStrengthChange=0x00000002
+ };
+
+ IMPORT_C TInt GetSignalCaps(TUint32& aCaps) const;
+ IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
+ IMPORT_C void NotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneIndicator functional unit
+ //
+ /***********************************************************************************/
+
+/** The mobile phone indicator capabilities supported.
+
+Modes: Common */
+ enum TMobilePhoneIndicatorCaps
+ {
+ /** Phone supports requests to get the current value of all supported indicators. */
+ KCapsGetIndicator=0x00000001,
+ /** Phone supports requests for notification of change in the supported indicators. */
+ KCapsNotifyIndicatorChange=0x00000002
+ };
+
+/** The mobile phone indicators.
+
+Modes Common */
+ enum TMobilePhoneIndicators
+ {
+ /** If bit-flag is set to '1' indicates that the battery charger is connected to
+ the phone. If bit-flag is set to '0' indicates that the battery charger is
+ disconnected. */
+ KIndChargerConnected=0x00000001,
+ /** If bit-flag is set to '1' indicates that network service is available. If bit-flag
+ is set to '0' indicates that network service is unavailable. */
+ KIndNetworkAvailable=0x00000002,
+ /** If bit-flag is set to '1' indicates that a call is in progress. If set to '0'
+ indicates that a call is not in progress. */
+ KIndCallInProgress=0x00000004
+ };
+
+ IMPORT_C TInt GetIndicatorCaps(TUint32& aActionCaps, TUint32& aIndCaps) const;
+ IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
+ IMPORT_C void NotifyIndicatorChange(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
+
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneIdentity functional unit
+ //
+ /***********************************************************************************/
+
+/** Defines Identity Capabilities.
+
+Modes: Common */
+ enum TMobilePhoneIdentityCaps
+ {
+ /** Phone can return the identity of its manufacturer. */
+ KCapsGetManufacturer=0x00000001,
+ /** Phone can return the identity of its model. */
+ KCapsGetModel=0x00000002,
+ /** Phone can return the identity of its revision. */
+ KCapsGetRevision=0x00000004,
+ /** Phone can return the identity of its serial number. */
+ KCapsGetSerialNumber=0x00000008,
+ /** Phone can return the identity of its subscriber. */
+ KCapsGetSubscriberId=0x00000010
+ };
+
+ IMPORT_C TInt GetIdentityCaps(TUint32& aCaps) const;
+
+ enum { KPhoneManufacturerIdSize=50 };
+ enum { KPhoneModelIdSize=50 };
+ enum { KPhoneRevisionIdSize=50 };
+ enum { KPhoneSerialNumberSize=50 };
+
+ class TMobilePhoneIdentityV1 : public TMultimodeType
+/** Defines the mobile phone identity.
+
+@see GetPhoneId() */
+ {
+ public:
+ IMPORT_C TMobilePhoneIdentityV1();
+ public:
+ /** Phone manufacturer identification, in character string format. */
+ TBuf<KPhoneManufacturerIdSize> iManufacturer;
+ /** Phone model identification, in character string format. */
+ TBuf<KPhoneModelIdSize> iModel;
+ /** Phone revision identification, in character string format. */
+ TBuf<KPhoneRevisionIdSize> iRevision;
+ /** Phone serial number (IMEI or ESN), in character string format. */
+ TBuf<KPhoneSerialNumberSize> iSerialNumber;
+ };
+
+ IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TMobilePhoneIdentityV1& aId) const;
+
+ enum { KIMSISize = 15 };
+
+/** A typedef'd buffer to hold the mobile phone subscriber id. */
+ typedef TBuf<KIMSISize> TMobilePhoneSubscriberId;
+
+ IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TMobilePhoneSubscriberId& aId) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneDTMF functional unit
+ //
+ /***********************************************************************************/
+
+/** DTMF Capabilities.
+
+Modes: Common */
+ enum TMobilePhoneDTMFCaps
+ {
+ /** Capability to send a string of DTMF tones, containing one or more tone(s). */
+ KCapsSendDTMFString=0x00000001,
+ /** Capability to send one DTMF tone, using start and stop DTMF tone function member. */
+ KCapsSendDTMFSingleTone=0x00000002,
+ };
+
+ /**
+ DTMF tone operation event.
+ */
+ enum TMobilePhoneDTMFEvent
+ {
+ /**
+ Start sending of a Dtmf tone operation has been acknowledged from the MSC.
+ */
+ EStartDtmfTone,
+ /**
+ Stop sending of a Dtmf tone operation has been acknowledged from the MSC.
+ */
+ EStopDtmfTone,
+ };
+
+
+ IMPORT_C TInt GetDTMFCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyDTMFCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+ IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const;
+ IMPORT_C void ReadDTMFTones(TRequestStatus& aReqStatus, TDes& aTones) const;
+ IMPORT_C TInt StartDTMFTone(TChar aTone) const;
+ IMPORT_C TInt StopDTMFTone() const;
+
+ IMPORT_C void NotifyStopInDTMFString(TRequestStatus& aRequestStatus) const;
+ IMPORT_C TInt ContinueDTMFStringSending(TBool aContinue) const;
+ IMPORT_C void NotifyDTMFEvent(TRequestStatus& aReqStatus, TMobilePhoneDTMFEvent& aEvent) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneNetwork functional unit
+ //
+ /***********************************************************************************/
+
+/** Defines Network Capabilities.
+
+Modes: Common */
+ enum TMobilePhoneNetworkCaps
+ {
+ /** The phone supports retrieval of current registration status. */
+ KCapsGetRegistrationStatus=0x00000001,
+ /** The phone supports notifications of change in registration status. */
+ KCapsNotifyRegistrationStatus=0x00000002,
+ /** The phone supports retrieval of current mode. */
+ KCapsGetCurrentMode=0x00000004,
+ /** The phone supports notification of change in mode. */
+ KCapsNotifyMode=0x00000008,
+ /** The phone supports retrieval of current network information. */
+ KCapsGetCurrentNetwork=0x00000010,
+ /** The phone supports notification of change of current network. */
+ KCapsNotifyCurrentNetwork=0x00000020,
+ /** The phone supports retrieval of home network information. */
+ KCapsGetHomeNetwork=0x00000040,
+ /** The phone supports retrieval of a list of detected networks. */
+ KCapsGetDetectedNetworks=0x00000080,
+ /** The phone supports manual network selection mode. */
+ KCapsManualNetworkSelection=0x00000100,
+ /** The phone supports retrieval of time and date information (NITZ) received from
+ the network. */
+ KCapsGetNITZInfo=0x00000200,
+ /** The phone supports notification of new updates of time & date information (NITZ)
+ received from the network. */
+ KCapsNotifyNITZInfo=0x00000400
+ };
+
+ IMPORT_C TInt GetNetworkCaps(TUint32& aCaps) const;
+
+/** Defines Current Network Modes.
+
+Modes: Common */
+ enum TMobilePhoneNetworkMode
+ {
+ /** Network mode is unknown.
+
+ Modes: Common */
+ ENetworkModeUnknown,
+ /** ME is not registered.
+
+ Modes: Common */
+ ENetworkModeUnregistered,
+ /** GSM/GPRS or DCS1800 network. */
+ ENetworkModeGsm,
+ /** AMPS network.
+
+ Modes: CDMA */
+ ENetworkModeAmps,
+ /** CDMA (IS-95) network.
+
+ Modes: CDMA */
+ ENetworkModeCdma95,
+ /** CDMA (cdma2000) network.
+
+ Modes: CDMA */
+ ENetworkModeCdma2000,
+ /** WCDMA (UTRA Frequency Division Duplex (FDD)) network.
+
+ Modes: WCDMA */
+ ENetworkModeWcdma,
+ /** TD-CDMA (UTRA Time Division Duplex (TDD)) network.
+
+ Modes: WCDMA */
+ ENetworkModeTdcdma
+ };
+
+ IMPORT_C TInt GetCurrentMode(TMobilePhoneNetworkMode& aNetworkMode) const;
+ IMPORT_C void NotifyModeChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkMode& aNetworkMode) const;
+
+ void DoNotifyModeChange( TMobilePhoneNetworkMode aNetworkMode, TInt aErrorCode );
+ void CancelAsyncRequest(TInt aReqToCancel) const;
+
+ mutable TMobilePhoneNetworkMode* iNetworkMode;
+ mutable TRequestStatus* iReqStatus;
+
+
+/** Phone network status.
+
+Modes: Common */
+ enum TMobilePhoneNetworkStatus
+ {
+ /** Status is unknown. */
+ ENetworkStatusUnknown,
+ /** A network that the ME is allowed to register to. */
+ ENetworkStatusAvailable,
+ /** The currently registered network. */
+ ENetworkStatusCurrent,
+ /** A network that the ME is not allowed to register to. */
+ ENetworkStatusForbidden
+ };
+
+/** Mobile phone network band information.
+
+Modes: CDMA */
+ enum TMobilePhoneNetworkBandInfo
+ {
+ /** The current band and band class is unknown. */
+ EBandUnknown,
+ /** The network operates at 800MHz on Band A. */
+ E800BandA,
+ /** The network operates at 800MHz on Band B. */
+ E800BandB,
+ /** The network operates at 800MHz on Band C. */
+ E800BandC,
+ /** The network operates at 1900MHz on Band A. */
+ E1900BandA,
+ /** The network operates at 1900MHz on Band B. */
+ E1900BandB,
+ /** The network operates at 1900MHz on Band C. */
+ E1900BandC,
+ /** The network operates at 1900MHz on Band D. */
+ E1900BandD,
+ /** The network operates at 1900MHz on Band E. */
+ E1900BandE,
+ /** The network operates at 1900MHz on Band F. */
+ E1900BandF
+ };
+
+/** A typedef'd buffer to hold the network display tag */
+ typedef TBuf<30> TMobilePhoneNetworkDisplayTag;
+/** A typedef'd buffer to hold the network long name. */
+ typedef TBuf<20> TMobilePhoneNetworkLongName;
+/** A typedef'd buffer to hold the network short name. */
+ typedef TBuf<10> TMobilePhoneNetworkShortName;
+
+/** A typedef'd buffer to hold the network country code. */
+ typedef TBuf<4> TMobilePhoneNetworkCountryCode; // MCC in GSM and CDMA
+/** A typedef'd buffer to hold the network identity. */
+ typedef TBuf<8> TMobilePhoneNetworkIdentity; // MNC in GSM and SID or NID in CDMA
+
+
+
+ class TMobilePhoneNetworkInfoV1 : public TMultimodeType
+ /** Defines information related to a mobile phone network.
+
+ @see GetCurrentNetwork()
+ @see NotifyCurrentNetworkChange()
+ @see GetHomeNetwork()
+ @publishedPartner
+ @released */
+ {
+ public:
+ IMPORT_C TMobilePhoneNetworkInfoV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** Mode of the network.
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkMode */
+ TMobilePhoneNetworkMode iMode;
+ /** Status of the network
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkStatus */
+ TMobilePhoneNetworkStatus iStatus;
+ /** The band and band class of the CDMA network operator.
+
+ Modes: CDMA
+
+ @see TMobilePhoneNetworkBandInfo */
+ TMobilePhoneNetworkBandInfo iBandInfo;
+ /** The MCC of the network.
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkCountryCode */
+ TMobilePhoneNetworkCountryCode iCountryCode;
+ /** The system identity (SID) of the CDMA network.
+
+ Modes: CDMA
+
+ @see TMobilePhoneNetworkIdentity */
+ TMobilePhoneNetworkIdentity iCdmaSID;
+ /** The system identity (SID) of the AMPS network.
+
+ Modes: CDMA
+
+ @see TMobilePhoneNetworkIdentity */
+ TMobilePhoneNetworkIdentity iAnalogSID;
+ /** The network identity (NID in CDMA and MNC in GSM).
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkIdentity */
+ TMobilePhoneNetworkIdentity iNetworkId;
+ /** The alpha-tag displayed when this is the serving network.
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkDisplayTag */
+ TMobilePhoneNetworkDisplayTag iDisplayTag;
+ /** The short name (up to 10 characters) of the network operator.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneNetworkShortName */
+ TMobilePhoneNetworkShortName iShortName;
+ /** The long name (up to 20 characters) of the network operator.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneNetworkLongName */
+ TMobilePhoneNetworkLongName iLongName;
+ };
+
+/** A typedef'd packaged TMobilePhoneNetworkInfoV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneNetworkInfoV1> TMobilePhoneNetworkInfoV1Pckg;
+
+/** The access technology that the network is based on.
+
+Modes: Common */
+ enum TMobilePhoneNetworkAccess
+ {
+ /** This is used when there is no network activity and therefore no RAT active.
+
+ Modes: Common */
+ ENetworkAccessUnknown,
+ /** The access technology is GSM.
+
+ Modes: GSM */
+ ENetworkAccessGsm,
+ /** The access technology is GSM COMPACT. However GSM COMPACT systems which use
+ GSM frequency bands but with the CBPCCH broadcast channel are considered as
+ a separate access technology from GSM.
+
+ Modes: GSM */
+ ENetworkAccessGsmCompact,
+ /** The access technology is UTRAN (UMTS Network).
+
+ Modes: WCDMA */
+ ENetworkAccessUtran,
+ /** Analogue Cellular
+
+ Modes: CDMA */
+ ENetworkAccessAmpsCellular,
+ /** CDMA Cellular - Standard channels
+
+ Modes: CDMA */
+ ENetworkAccessCdmaCellularStdChannel,
+ /** CDMA Cellular - Custom channels
+
+ Modes: CDMA */
+ ENetworkAccessCdmaCellularCustomChannel,
+ /** CDMA/Analogue Cellular (cdma first then analogue)
+
+ Modes: CDMA */
+ ENetworkAccessCdmaAmpsCellular,
+ /** CDMA PCS - Using blocks
+
+ Modes: CDMA */
+ ENetworkAccessCdmaPcsUsingBlocks,
+ /** CDMA PCS - Using channels
+
+ Modes: CDMA */
+ ENetworkAccessCdmaPcsUsingNetworkAccessChannels,
+ /** CDMA JTACS - Standard channels
+
+ Modes: CDMA */
+ ENetworkAccessJTacsStdChannels,
+ /** CDMA JTACS - Custom channels
+
+ Modes: CDMA */
+ ENetworkAccessJTacsCustomChannels,
+ /** CDMA 2GHz band - Using channels
+
+ Modes: CDMA */
+ ENetworkAccess2GHzBandUsingChannels,
+ /** Generic Acquisition Record for IS-2000 and IS-95
+
+ Modes: CDMA */
+ ENetworkAccessGenericAcqRecord2000and95,
+ /** Generic Acquisition Record for IS-856
+
+ Modes: CDMA */
+ ENetworkAccessGenericAcqRecord856
+ };
+
+
+
+ class TMobilePhoneNetworkInfoV2 : public TMobilePhoneNetworkInfoV1
+ /** The access technology that the network is based on in version v2.0 of the API.
+ @publishedPartner
+ @released*/
+ {
+ public:
+ /** Default constructor. Network access is set to ENetworkAccessUnknown and iExtensionId
+ is set to KETelExtMultimodeV2. */
+ IMPORT_C TMobilePhoneNetworkInfoV2();
+
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+
+ public:
+ /** The type of network access.
+
+ @see TMobilePhoneNetworkAccess */
+ TMobilePhoneNetworkAccess iAccess;
+ };
+
+/** A typedef'd packaged TMobilePhoneNetworkInfoV2 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneNetworkInfoV2> TMobilePhoneNetworkInfoV2Pckg;
+
+
+ class TMobilePhoneNetworkInfoV5 : public TMobilePhoneNetworkInfoV2
+ /** The access technology that the network is based on in version v2.0 of the API.
+ @publishedPartner
+ @released*/
+ {
+ public:
+ IMPORT_C TMobilePhoneNetworkInfoV5();
+
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+
+ public:
+ /** HSDPA availability indicator. This information is for display
+ indication only and shall not be used for any other purpose.
+
+ Modes: WCDMA */
+ TBool iHsdpaAvailableIndicator;
+
+ /** EGPRS availability indicator. This information is for display
+ indication only and shall not be used for any other purpose.
+
+ Modes: GPRS */
+ TBool iEgprsAvailableIndicator;
+ };
+
+/** A typedef'd packaged TMobilePhoneNetworkInfoV5 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneNetworkInfoV5> TMobilePhoneNetworkInfoV5Pckg;
+
+ class TMobilePhoneLocationAreaV1 : public TMultimodeType
+/** Defines the mobile phone location area.
+
+@see GetCurrentNetwork()
+@see NotifyCurrentNetworkChange() */
+ {
+ public:
+ /** Constructor. */
+ IMPORT_C TMobilePhoneLocationAreaV1();
+ public:
+ /** Boolean indicating whether the location area is known.
+
+ Modes: Common */
+ TBool iAreaKnown;
+ /** Location area code.
+
+ Modes: GSM/WCDMA */
+ TUint iLocationAreaCode;
+ /** Cell identity code.
+
+ Modes: GSM/WCDMA */
+ TUint iCellId;
+ };
+
+ IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
+ IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
+ IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
+ IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
+
+ IMPORT_C void GetHomeNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
+ IMPORT_C void GetHomeNetworkSearchPeriod(TRequestStatus& aReqStatus, TInt& aSearchIntv) const;
+ IMPORT_C void GetLastUsedAccessTechnology(TRequestStatus& aReqStatus, TMobilePhoneNetworkAccess& aAccessTech) const;
+
+/** The registration status of the mobile phone.
+
+Modes: WCDMA */
+ enum TMobilePhoneRegistrationStatus
+ {
+ /** Registration status is unknown. */
+ ERegistrationUnknown,
+ /** Not registered. The ME can not detect any other networks and is not currently
+ searching a new operator to register to. */
+ ENotRegisteredNoService,
+ /** Not registered. The ME can detect other networks on which it is possible to
+ make emergency calls only. */
+ ENotRegisteredEmergencyOnly,
+ /** Not registered, but the ME is currently searching a new operator to register to. */
+ ENotRegisteredSearching,
+ /** Registered, network busy.
+
+ Modes: WCDMA */
+ ERegisteredBusy,
+ /** Registered on home network. */
+ ERegisteredOnHomeNetwork,
+ /** Registration denied. */
+ ERegistrationDenied,
+ /** Registered, roaming. */
+ ERegisteredRoaming
+ };
+
+ IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
+ IMPORT_C void NotifyNetworkRegistrationStatusChange(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
+
+/** The network selection function member.
+
+Modes: Common */
+ enum TMobilePhoneSelectionMethod
+ {
+ /** Network selection function member is unknown.
+
+ Modes: Common */
+ ENetworkSelectionUnknown,
+ /** Network is selected automatically by phone.
+
+ Modes: Common */
+ ENetworkSelectionAutomatic,
+ /** Network is selected manually by user.
+
+ Modes: GSM/WCDMA */
+ ENetworkSelectionManual,
+ /** Network selection is restricted to home network only
+
+ Modes: CDMA */
+ ENetworkSelectionHomeOnly
+ };
+
+/** The mobile phone band class preferences.
+
+Modes: CDMA */
+ enum TMobilePhoneBandClass
+ {
+ /** Band class selection is unknown. */
+ ENetworkBandClassUnknown,
+ /** Phone will select band class A only. */
+ ENetworkBandClassAOnly,
+ /** Phone will select band class B only. */
+ ENetworkBandClassBOnly,
+ /** Phone will prefer to select band class A. */
+ ENetworkBandClassAPreferred,
+ /** Phone will prefer to select band class B. */
+ ENetworkBandClassBPreferred
+ };
+
+/** The mobile phone network operation mode preferences.
+
+Modes: CDMA */
+ enum TMobilePhoneOperation
+ {
+ /** Network operation mode is unknown. */
+ ENetworkOperationUnknown,
+ /** Phone will select analog operation only. */
+ ENetworkOperationAnalogOnly,
+ /** Phone will select digital/CDMA operation only. */
+ ENetworkOperationDigitalOnly,
+ /** Phone will prefer to select analog operation. */
+ ENetworkOperationAnalogPreferred,
+ /** Phone will prefer to select digital/CDMA operation. */
+ ENetworkOperationDigitalPreferred
+ };
+
+ class TMobilePhoneNetworkSelectionV1 : public TMultimodeType
+/** The mobile phone network selection preferences.
+
+@see GetNetworkSelectionSetting()
+@see SetNetworkSelectionSetting()
+@see NotifyNetworkSelectionSettingChange()
+@publishedPartner
+@released */
+ {
+ public:
+ IMPORT_C TMobilePhoneNetworkSelectionV1();
+ public:
+ /** Phone's network selection function member.
+
+ Modes: Common
+
+ @see TMobilePhoneSelectionMethod */
+ TMobilePhoneSelectionMethod iMethod;
+ /** Phone's band class setting.
+
+ Modes: CDMA
+
+ @see TMobilePhoneBandClass */
+ TMobilePhoneBandClass iBandClass;
+ /** Phone's CDMA operation mode.
+
+ Modes: CDMA
+
+ @see TMobilePhoneOperation */
+ TMobilePhoneOperation iOperationMode;
+ };
+
+/** A typedef'd packaged TMobilePhoneNetworkSelectionV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneNetworkSelectionV1> TMobilePhoneNetworkSelectionV1Pckg;
+
+ IMPORT_C TInt GetNetworkSelectionSetting(TDes8& aSetting) const;
+ IMPORT_C void SetNetworkSelectionSetting(TRequestStatus& aReqStatus, const TDes8& aSetting) const;
+ IMPORT_C void NotifyNetworkSelectionSettingChange(TRequestStatus& aReqStatus, TDes8& aSetting) const;
+
+ struct TMobilePhoneNetworkManualSelection
+/** The mobile phone manual network selection parameters.
+
+Modes: GSM/WCDMA
+
+@see TMobilePhoneNetworkCountryCode */
+ {
+ /** The MCC of the network
+
+ @see TMobilePhoneNetworkCountryCode */
+ TMobilePhoneNetworkCountryCode iCountry;
+ /** The MNC of the network
+
+ @see TMobilePhoneNetworkIdentity */
+ TMobilePhoneNetworkIdentity iNetwork;
+ };
+
+ IMPORT_C void SelectNetwork(TRequestStatus& aReqStatus, TBool aIsManual, const TMobilePhoneNetworkManualSelection& aManualSelection) const;
+
+
+
+ // Used to indicate which TMobilePhoneNITZ fields are currently available
+/** The Phone Network Time Zone Capabilities. */
+ enum TMobilePhoneNITZCaps
+ {
+ /** Universal Time is available in the current network mode. */
+ KCapsTimeAvailable = 0x00000001,
+ /** Local time zone is available in the current network mode. */
+ KCapsTimezoneAvailable = 0x00000002,
+ /** DST is available in the current network mode. */
+ KCapsDSTAvailable = 0x00000004,
+ /** Short name is available in the current network mode. */
+ KCapsShortNameAvailable = 0x00000008,
+ /** Long name is available in the current network mode. */
+ KCapsLongNameAvailable = 0x00000010
+ };
+
+ class TMobilePhoneNITZ : public TDateTime
+/** Defines time and date information received from a mobile phone network.
+
+@see GetNITZInfo()
+@see NotifyNITZInfoChange()
+@publishedPartner
+@released */
+ {
+ public:
+ IMPORT_C TMobilePhoneNITZ();
+ IMPORT_C TMobilePhoneNITZ(TInt aYear, TMonth aMonth, TInt aDay, TInt aHour, TInt aMinute, TInt aSecond, TInt aMicroSecond);
+ public:
+ /** Bitwise sum of TMobilePhoneNITZCaps constants used to indicate which NITZ fields
+ are available.
+
+ Modes: Common */
+ TInt32 iNitzFieldsUsed;
+ /** Time zone, expressed in +/- 15 minute offsets from GMT.
+
+ Modes: Common */
+ TInt iTimeZone;
+ /** Daylight Saving Time adjustment for summer time. The adjustment for DST
+ can be +1h or +2h.
+
+ Modes: GSM/WCDMA */
+ TInt iDST;
+ /** Network name in "short" representation.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneNetworkShortName */
+ TMobilePhoneNetworkShortName iShortNetworkId;
+ /** Network name in "long" representation.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneNetworkLongName */
+ TMobilePhoneNetworkLongName iLongNetworkId;
+ };
+
+ IMPORT_C TInt GetNITZInfo(TMobilePhoneNITZ& aNITZInfo) const;
+ IMPORT_C void NotifyNITZInfoChange(TRequestStatus& aReqStatus, TMobilePhoneNITZ& aNITZInfo) const;
+
+ enum { KMaxSPNameSize=16 };
+ enum { KMaxPLMNFieldSize=251 };
+
+ enum TDisplayRequirements
+ {
+ KDisplayPLMNNotRequired = 0x00000001,
+ KDisplayPLMNRequired = 0x00000002,
+ KDisplaySPNRequired = 0x00000004,
+ KDisplaySPNNotRequired = 0x00000008
+ };
+
+ typedef TUint32 TDisplayRequirementsFlags;
+
+ class TMobilePhoneServiceProviderNameV2 : public TMultimodeType
+/** Used to retrieve the Service Provider Name from the ICC. The
+SP is actually the entity that provides the service. The SP could have contractual
+agreements with several home PLMN that the ME can register to. The display
+preference of the registered PLMN and/or the SPN on the ME can be defined
+on the UICC.
+@publishedPartner
+@released */
+ {
+ public:
+ IMPORT_C TMobilePhoneServiceProviderNameV2();
+ public:
+ /** This parameter specifies if the display of the registered PLMN is required.
+ Can contain a number of flags from RMobilePhone::TDisplayRequirements.
+ */
+ TDisplayRequirementsFlags iDisplayReq;
+ /** The name of the service provider. */
+ TBuf<KMaxSPNameSize> iSPName;
+ TBuf<KMaxPLMNFieldSize> iPLMNField;
+ };
+
+/** A typedef'd packaged TMobilePhoneServiceProviderNameV2 for passing through
+a generic API function member. */
+ typedef TPckg<TMobilePhoneServiceProviderNameV2> TMobilePhoneServiceProviderNameV2Pckg;
+
+ IMPORT_C void GetServiceProviderName(TRequestStatus& aReqStatus, TDes8& aName) const;
+
+ /**
+ Network investigation scan settings.
+ */
+ enum TMobilePhoneInvestigationScan
+ {
+ /**
+ Network investigation setting in limited service mode.
+ */
+ KNetworkInvLimited = 0x01,
+ /**
+ Network investigation setting after successful PLMN selection.
+ */
+ KNetworkInvAfterPlmnSelection=0x02
+ };
+
+ /**
+ Network investigation scan events.
+ */
+ enum TMobilePhoneInvestigationScanEvent
+ {
+ /**
+ No investigation scan events available.
+ */
+ ENetworkInvestigationNoEvent,
+ /**
+ A higher priority network has been detected, but it does not offer CS Voice.
+ */
+ ENetworkInvestigationHighPriorityPlmn
+ };
+
+ IMPORT_C TInt GetNetworkInvScanSetting(TMobilePhoneInvestigationScan & aSetting) const;
+ IMPORT_C void NotifyNetworkInvScanChange(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScan& aSetting) const;
+ IMPORT_C void NotifyNetworkInvScanEvent(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScanEvent& aEvent) const;
+
+
+ /** 251 bytes is the maximum number of octets in an L3 message as defined in3GPP TS 44.006. */
+ enum { KMaxNetworkNameFieldSize = 251 };
+
+ class TMobilePhoneNetworkNameV3 : public TMultimodeType
+ /**
+ Class containing short, long network names and location information for a PLMN.
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneNetworkNameV3();
+ public:
+ /**
+ The long name (up to 20 characters) of the network operator.
+ */
+ TMobilePhoneNetworkLongName iLongName;
+ /**
+ The short name (up to 10 characters) of the network operator.
+ */
+ TMobilePhoneNetworkShortName iShortName;
+ /**
+ This buffer contains other long and short names for the registered PLMN coded as TLV objects.
+ */
+ TBuf<KMaxNetworkNameFieldSize> iOtherNames;
+ };
+
+ /**
+ Packaging typedef for TMobilePhoneNetworkNameV3 class.
+ */
+ typedef TPckg<TMobilePhoneNetworkNameV3> TMobilePhoneNetworkNameV3Pckg;
+
+
+ class TMobilePhoneOPlmnV3 : public TMultimodeType
+ /**
+ Class containing network name information.
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneOPlmnV3();
+ public:
+ /**
+ The MCC of the registered PLMN, with "wild" values specified for the particular digits of the code.
+ */
+ TMobilePhoneNetworkCountryCode iCountryCode;
+ /**
+ The MNC of the registered PLMN, with "wild" values specified for the particular digits of the code.
+ */
+ TMobilePhoneNetworkIdentity iNetworkId;
+ /**
+ The id of the Network Name to be displayed for the (following) location area codes.
+ */
+ TUint32 iPNNid;
+ /**
+ First Location area code for defining the entire range of LACs for the registered PLMN.
+ */
+ TUint iFirstLocationAreaCode;
+ /**
+ Last Location area code defining the entire range of LACs for the registered PLMN.
+ */
+ TUint iLastLocationAreaCode;
+
+ };
+
+ /**
+ Packaging typedef for TMobilePhoneOPlmnV3 class.
+ */
+ typedef TPckg<TMobilePhoneOPlmnV3> TMobilePhoneOPlmnV3Pckg;
+
+ IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName, TDes8& aLocInfo) const;
+
+ /**
+ Identifiers for different access technologies.
+ */
+ enum TMobilePhoneNetworkAccessCaps
+ {
+ /**
+ No network activity.
+ */
+ KNetworkAccessUnknown=0x0000,
+ /**
+ Access technology is GSM.
+ */
+ KNetworkAccessGsm=0x8000,
+ /**
+ Access technology is GSM COMPACT.
+ */
+ KNetworkAccessGsmCompact=0x4000,
+ /**
+ Access technology is UTRAN (UMTS only).
+ */
+ KNetworkAccessUtran=0x0080
+ };
+
+ typedef TUint32 TMobilePhoneNetworkAccessCapsFlags;
+
+ class TMobilePreferredNetworkEntryV3 : public TMultimodeType
+ /**
+ Defines information for a preferred network.
+ */
+ {
+ public:
+ IMPORT_C TMobilePreferredNetworkEntryV3();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /**
+ Access Technology supported.
+ Can contain a number of flags from RMobilePhone::TMobilePhoneNetworkAccessCaps.
+ */
+ TMobilePhoneNetworkAccessCapsFlags iAccess;
+ /**
+ Editable preferences in the User-controlled Networks List with Access Technology.
+ */
+ TBool iUserDefined;
+ /**
+ The MCC of the network.
+ */
+ TMobilePhoneNetworkCountryCode iCountryCode;
+ /**
+ The MNC of the network.
+ */
+ TMobilePhoneNetworkIdentity iNetworkId;
+ };
+
+ IMPORT_C void StorePreferredNetworksListL(TRequestStatus& aReqStatus, CMobilePhoneStoredNetworkList* aList) const;
+ IMPORT_C void NotifyPreferredNetworksListChange(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Multimedia Call Settings functional unit
+ //
+ /***********************************************************************************/
+
+/** An enumerated list of settings for multimedia calls. */
+ enum TMobilePhoneMultimediaSettings
+ {
+ /** Accept all incoming multimedia calls with the fallback option enabled. (default). */
+ EAcceptMMCallsVoiceFallback,
+ /** Accept all incoming multimedia calls, but do not accept voice fallback. */
+ EAcceptMMCallsNoFallback,
+ /** Reject all incoming multimedia calls. */
+ ERejectMMCalls,
+ /** Reject all incoming multimedia calls, but drop to voice instead. */
+ EAnswerMMCallsAsVoice
+ };
+
+ IMPORT_C void SetMultimediaCallPreference(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings aMmSettings) const;
+ IMPORT_C TInt GetMultimediaCallPreference(TMobilePhoneMultimediaSettings& aMmSettings) const;
+ IMPORT_C void NotifyMultimediaCallPreferenceChange(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings& aMmSettings);
+
+ /***********************************************************************************/
+ //
+ // MobilePrivacy functional unit
+ //
+ /***********************************************************************************/
+
+/** The mobile phone privacy settings.
+
+Modes: CDMA */
+ enum TMobilePhonePrivacy
+ {
+ /** The privacy setting is unspecified. */
+ EPrivacyUnspecified,
+ /** The privacy setting is set to ON. */
+ EPrivacyOn,
+ /** The privacy setting is set to OFF. */
+ EPrivacyOff
+ };
+
+ IMPORT_C TInt GetDefaultPrivacy(TMobilePhonePrivacy& aSetting) const;
+ IMPORT_C void SetDefaultPrivacy(TRequestStatus& aReqStatus, TMobilePhonePrivacy aSetting) const;
+ IMPORT_C void NotifyDefaultPrivacyChange(TRequestStatus& aReqStatus, TMobilePhonePrivacy& aSetting) const;
+
+ /***********************************************************************************/
+ //
+ // TSY Capabilities for supplementary call services
+ //
+ /***********************************************************************************/
+
+/** The call services.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCallServiceCaps
+ {
+ /** Phone supports retrieval of call forwarding status from a cache on the phone.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCFStatusCache =0x00000001,
+ /** Phone supports retrieval of call forwarding status from the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCFStatusNetwork =0x00000002,
+ /** Phone supports setting of call forwarding status (and registered information)
+ in the network. */
+ KCapsSetCFStatus =0x00000004,
+ /** Phone supports notification of change in status of any call forwarding service.
+
+ Modes: GSM/WCDMA */
+ KCapsNotifyCFStatus =0x00000008,
+ /** Phone supports retrieval of CLIP status from either a cache or the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetClipStatus =0x00000010,
+ /** Phone supports retrieval of CLIR status from either a cache or the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetClirStatus =0x00000020,
+ /** Phone supports retrieval of COLP status from either a cache or the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetColpStatus =0x00000040,
+ /** Phone supports retrieval of COLR status from either a cache or the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetColrStatus =0x00000080,
+ /** Phone supports retrieval of CNAP status from either a cache or the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCnapStatus =0x00000100,
+ /** Phone supports retrieval of call barring status from a cache on the phone.
+
+ Modes: Common */
+ KCapsGetCBStatusCache =0x00000200,
+ /** Phone supports retrieval of call barring status from the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCBStatusNetwork =0x00000400,
+ /** Phone supports setting of call barring status in the network.
+
+ Modes: Common */
+ KCapsSetCBStatus =0x00000800,
+ /** Phone supports notification of change in call barring status for any service.
+
+ Modes: Common */
+ KCapsNotifyCBStatus =0x00001000,
+ /** Phone supports setting of a password for call barring service.
+
+ Modes: Common */
+ KCapsChangeCBPassword =0x00002000,
+ /** Phone supports BAIC call barring service.
+
+ Modes: Common */
+ KCapsBarAllIncoming =0x00004000,
+ /** Phone supports BIC-Roam call barring service.
+
+ Modes: Common */
+ KCapsBarIncomingRoaming =0x00008000,
+ /** Phone supports BAOC call barring service.
+
+ Modes: Common */
+ KCapsBarAllOutgoing =0x00010000,
+ /** Phone supports BOIC call barring service.
+
+ Modes: Common */
+ KCapsBarOutgoingInternational =0x00020000,
+ /** Phone supports BOIC-ExHC call barring service.
+
+ Modes: Common */
+ KCapsBarOutgoingInternationalExHC =0x00040000,
+ /** Phone supports barring all cases at once.
+
+ Modes: Common */
+ KCapsBarAllCases =0x00080000,
+ /** Phone supports retrieval of call waiting status from a cache on the phone.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCWStatusCache =0x00100000,
+ /** Phone supports retrieval of call waiting status from the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCWStatusNetwork =0x00200000,
+ /** Phone supports setting of call waiting status in the network.
+
+ Modes: Common */
+ KCapsSetCWStatus =0x00400000,
+ /** Phone supports notification of change in call waiting status for any service.
+
+ Modes: GSM/WCDMA */
+ KCapsNotifyCWStatus =0x00800000,
+ /** Phone supports retrieval of call completion (CCBS) status from a cache on the
+ phone.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCCBSStatusCache =0x01000000,
+ /** Phone supports retrieval of call completion (CCBS) status from the network.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCCBSStatusNetwork =0x02000000,
+ /** Phone supports deactivation of all CCBS requests at once.
+
+ Modes: GSM/WCDMA */
+ KCapsDeactivateAllCCBS =0x04000000,
+ KCapsDeactivateCCBS =0x08000000,
+ /** Phone supports retrieval of a list of active CCBS requests.
+
+ Modes: GSM/WCDMA */
+ KCapsRetrieveActiveCCBS =0x10000000,
+ /** The phone supports programming and retrieval of feature code against a CDMA
+ network service.
+
+ Modes: CDMA */
+ KCapsFeatureCode =0x20000000,
+ /** The phone supports sending of generic network service request strings.
+
+ Modes: Common */
+ KCapsNetworkServiceRequest =0x40000000,
+ /** The phone supports retrieval of called line identification status.
+
+ Modes: GSM/WCDMA */
+ KCapsGetCdipStatus =0x80000000
+ };
+
+ IMPORT_C TInt GetCallServiceCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyCallServiceCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneUserNetworkAccess functional unit
+ //
+ /***********************************************************************************/
+
+/** Mobile Phone network services.
+
+Modes: CDMA */
+ enum TMobilePhoneNetworkService
+ {
+ /** Network service is unspecified. */
+ ENetworkServiceUnspecified,
+ /** Feature code applies to call forwarding unconditional service. */
+ ECFUService,
+ /** Feature code applies to call forwarding on busy service. */
+ ECFBService,
+ /** Feature code applies to call forwarding on no reply service. */
+ ECFNRyService,
+ /** Feature code applies to call forwarding on not reachable service. */
+ ECFNRcService,
+ /** Feature code applies to user selective call forwarding service - when the
+ user wishes to forward incoming call to voicemail. */
+ EDeflectToVoicemail,
+ /** Feature code applies to user selective call forwarding service - when the
+ user wishes to forward incoming call to a number supplied within the deflect
+ request. */
+ EDeflectToNumber,
+ /** Feature code applies to user selective call forwarding service - when the
+ user wishes to forward incoming call to a number pre-registered within the
+ network. */
+ EDeflectToRegisteredNumber,
+ /** Feature code applies to call waiting service. */
+ ECWService,
+ ENextCallShowCLI,
+ /** Feature code applies to caller ID restriction service - when user wishes to
+ hide their ID for the next call they make. */
+ ENextCallHideCLI
+ };
+
+/** Mobile phone service actions.
+
+Modes: Common */
+ enum TMobilePhoneServiceAction
+ {
+ /** The action is unspecified. */
+ EServiceActionUnspecified,
+ /** The client is registering new service information. If the service was not active
+ then this action also activates the service. */
+ EServiceActionRegister,
+ /** The client is activating the service. */
+ EServiceActionActivate,
+ /** The client is invoking the service. */
+ EServiceActionInvoke,
+ /** The client is deactivating the service. */
+ EServiceActionDeactivate,
+ /** The client is erasing the currently registered service information. If the service
+ was active then this action also deactivates the service. */
+ EServiceActionErase
+ };
+
+ /**
+ Defines the type of SS operation
+ */
+ enum TMobilePhoneNotifySendSSOperation
+ {
+ /**
+ SS Invoke operation.
+ */
+ ESendSSInvoke,
+ /**
+ SS ReturnResult operation.
+ */
+ ESendSSReturnResult,
+ /**
+ SS ReturnError operation.
+ */
+ ESendSSReturnError,
+ /**
+ SS Reject operation.
+ */
+ ESendSSReject
+ };
+
+ /** Size of additional info buffer. */
+ enum{ KAdditionalInfoSize = 244 };
+
+ class TMobilePhoneSendSSRequestV3 : public TMultimodeType
+ /**
+ Contains the operation code and buffer to hold any additional information when receiving a notification
+ about a network service request.
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneSendSSRequestV3();
+ public:
+ /**
+ This is the Operation Code for a Send SS Invoke or Return result events.
+ This is the Error or Problem Code for a Send SS Return Error or Reject events.
+ */
+ TUint8 iOpCode;
+ /**
+ The additional information (parameters) for a Send SS Invoke or Return result or Return Error events.
+ This is not used for a Send SS Reject event
+ */
+ TBuf<KAdditionalInfoSize> iAdditionalInfo;
+ };
+
+ /**
+ Packaging typedef for TMobilePhoneSendSSRequestV3 class.
+ */
+ typedef TPckg<TMobilePhoneSendSSRequestV3> TMobilePhoneSendSSRequestV3Pckg;
+
+ // API/TSY internal type
+
+ struct TNetworkServiceAndAction
+ {
+ TMobilePhoneNetworkService iService;
+ TMobilePhoneServiceAction iAction;
+ };
+
+ IMPORT_C void ProgramFeatureCode(TRequestStatus& aReqStatus, const TDesC& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
+ IMPORT_C void GetFeatureCode(TRequestStatus& aReqStatus, TDes& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
+
+ IMPORT_C void SendNetworkServiceRequest(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
+ IMPORT_C void SendNetworkServiceRequestNoFdnCheck(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
+ IMPORT_C void NotifySendNetworkServiceRequest(TRequestStatus& aReqStatus, const TMobilePhoneNotifySendSSOperation aOperation, TDes8& aRequestComplete) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePhoneCallForwarding functional unit
+ //
+ /***********************************************************************************/
+
+/** The Call Forwarding flavours.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCFCondition
+ {
+ /** The call forwarding service is unspecified. */
+ ECallForwardingUnspecified,
+ /** All calls to this subscriber are forwarded. */
+ ECallForwardingUnconditional,
+ /** Calls are forwarded when this subscriber is busy. */
+ ECallForwardingBusy,
+ /** Calls are forwarded when this subscriber does not reply within a time-out period. */
+ ECallForwardingNoReply,
+ /** Calls are forwarded when this subscriber is unreachable. */
+ ECallForwardingNotReachable,
+ /** All of above CF services. Can be used to check all 4 call forwarding Fs
+ at once. */
+ ECallForwardingAllCases, // combination of all four above cases
+ /** All the conditional (busy, no reply, not reachable) CF services. Can be used
+ to check all 3 conditional call forwarding conditions at once. */
+ ECallForwardingAllConditionalCases // combination of CFB, CFNRy and CFNRc
+ };
+
+/** The Call Forwarding status
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCFStatus
+ {
+ /** The CF service is currently active and operative. */
+ ECallForwardingStatusActive,
+ /** The CF service is currently deactivated. */
+ ECallForwardingStatusNotActive,
+ /** The CF service is not registered. */
+ ECallForwardingStatusNotRegistered,
+ /** The CF service is not provisioned. */
+ ECallForwardingStatusNotProvisioned,
+ /** The CF service is not available in the serving network. */
+ ECallForwardingStatusNotAvailable,
+ /** The phone can not determine CF service status. */
+ ECallForwardingStatusUnknown,
+ /** The Call Forwarding service is active and the presentation indicator is set
+ to allowed */
+ ECallForwardingStatusActivePIAllowed,
+ /** The Call Forwarding service is active and the presentation indicator is set
+ to not available */
+ ECallForwardingStatusActivePINotAvailable,
+ /** The Call Forwarding service is active and the presentation indicator is set
+ to restricted
+
+ The Call Forwarding service is active and the presentation indicator is set
+ to restricted and screening returns "User provided, verified and passed". */
+ ECallForwardingStatusActivePIClir,
+ /** The Call Forwarding service is active and the presentation indicator is set
+ to restricted and screening returns "User provided, not screened". */
+ ECallForwardingStatusActivePIClirSIVerified,
+ /** The Call Forwarding service is active and the presentation indicator is set
+ to "restricted" and screening returns "Network provided". */
+ ECallForwardingStatusActivePIClirSINotScreened,
+ /** The Call Forwarding service is active and the presentation indicator is set
+ to "restricted" and screening returns "Network provided". */
+ ECallForwardingStatusActivePIClirSINetwork,
+ /** The CF service is currently in the quiescent state. */
+ ECallForwardingStatusQuiescent
+ };
+
+
+
+ class TMobilePhoneCFInfoEntryV1 : public TMultimodeType
+/** Defines information about the call forwarding service.
+
+Modes: GSM/WCDMA
+
+@see CMobilePhoneCFList
+@publishedPartner
+@released
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneCFInfoEntryV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** The CF service of this list entry.
+
+ @see TMobilePhoneCFCondition */
+ TMobilePhoneCFCondition iCondition;
+ /** The basic service group associated to this CF service list entry.
+
+ @see TMobileService */
+ TMobileService iServiceGroup;
+ /** The current status of the call forwarding condition.
+
+ @see TMobilePhoneCFStatus */
+ TMobilePhoneCFStatus iStatus;
+ /** The "forward-to" telephone number registered for the call forwarding condition.
+ An empty string if CF service is not registered, not provisioned or not available.
+
+ @see TMobileAddress */
+ TMobileAddress iNumber;
+ /** The "No Reply" time-out (in seconds) registered for the call forwarding no reply
+ condition.
+
+ Equals to -1 if this value is not applicable. In GSM mode, will be between
+ 5 and 30 and in steps of 5 if this value is applicable. */
+ TInt iTimeout; // valid for CFRNy only
+ };
+
+ IMPORT_C void NotifyCallForwardingStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCFCondition& aCondition) const;
+
+ class TMobilePhoneCFChangeV1 : public TMultimodeType
+/** Defines the call forward information.
+
+@see SetCallForwardingStatus()
+@publishedPartner
+@released
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneCFChangeV1();
+ public:
+ /** The basic service group(s) to apply the CF status change to.
+
+ @see TMobileService */
+ TMobileService iServiceGroup;
+ /** The service action for call forwarding.
+
+ @see TMobilePhoneServiceAction */
+ TMobilePhoneServiceAction iAction;
+ /** A new "forward-to" number to be registered against the CF condition. This is
+ applicable if iAction=EServiceActionRegister. In other cases, it is set to
+ an empty string.
+
+ @see TMobileAddress */
+ TMobileAddress iNumber;
+ /** The new "No Reply" time-out in seconds to be registered. This is applicable
+ if the CF condition is CFNRy and iAction=EServiceActionRegister. Equals -1
+ if this value is not applicable. If applicable, in GSM mode will be between
+ 5 and 30 and in steps of 5. */
+ TInt iTimeout;
+ };
+
+ IMPORT_C void SetCallForwardingStatus(TRequestStatus& aReqStatus, TMobilePhoneCFCondition aCondition, const TMobilePhoneCFChangeV1& aInfo) const;
+
+/** Call Forwarding Active Notification
+
+Modes: Common */
+ enum TMobilePhoneCFActive
+ {
+ /** CF Unconditional is currently active. */
+ ECFUnconditionalActive,
+ /** CF Busy, CF No Reply or CF Not Reachable is currently active. */
+ ECFConditionalActive
+ };
+
+ IMPORT_C void NotifyCallForwardingActive(TRequestStatus& aReqStatus, TMobileService& aServiceGroup, TMobilePhoneCFActive& aActiveType) const;
+
+ /**
+ Current status indicators for unconditional call forwarding.
+ */
+ enum TCFUIndicatorStatus
+ {
+ /**
+ CFU Indicator status unknown.
+ */
+ KCFUIndicatorUnknown = 0x0,
+ /**
+ CFU Indicator status for Voice (TMobileServiceGroup EVoice).
+ */
+ KCFUIndicatorVoice=0x01,
+ /**
+ CFU Indicator status for Fax (TMobileServiceGroup EFax).
+ */
+ KCFUIndicatorFax=0x02,
+ /**
+ CFU Indicator status for Data Teleservices(TMobileServiceGroup EData).
+ */
+ KCFUIndicatorData=0x04,
+ /**
+ CFU Indicator status for Sms (TMobileServiceGroup ESms).
+ */
+ KCFUIndicatorSms=0x08,
+ /**
+ CFU Indicator status for Data Bearer Services(TMobileServiceGroup EDataBearer).
+ */
+ KCFUIndicatorDataBearer=0x10
+ };
+
+ typedef TUint32 TCFUIndicatorStatusFlags;
+
+ class TMobilePhoneCFUIndicatorV3 : public TMultimodeType
+ /**
+ Contains indicator parameters for unconditional call forwarding.
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneCFUIndicatorV3();
+ public:
+ /**
+ Current setting for indicator status.
+ Can contain a number of flags from RMobilePhone::TCFUIndicatorStatus.
+ */
+ TCFUIndicatorStatusFlags iIndicator;
+ };
+
+ typedef TPckg<TMobilePhoneCFUIndicatorV3> TMobilePhoneCFUIndicatorV3Pckg;
+
+ /**
+ The MSP number contains the Profile Identity of the subscriber profile.
+ The Profile Identity shall be any of the following enlisted.
+ @see 3GPP TS 31.102 v7.4.1 section 4.2.64
+ @see 3GPP TS 23.097 [36]
+ */
+ enum TMultipleSubscriberProfileID
+ {
+ /**
+ Profile Identity Unknown
+ */
+ KProfileIdentityUnknown = 0x0,
+ /**
+ Profile Identity 1
+ */
+ KProfileIdentityOne = 0x01,
+ /**
+ Profile Identity 2
+ */
+ KProfileIdentityTwo = 0x02,
+ /**
+ Profile Identity 3
+ */
+ KProfileIdentityThree = 0x04,
+ /**
+ Profile Identity 4
+ */
+ KProfileIdentityFour = 0x08
+ };
+
+ class TMobilePhoneCFUIndicatorV6 : public TMobilePhoneCFUIndicatorV3
+ /**
+ Contains the indicator parameters for unconditional call forwarding.
+ The TMobilePhoneCFUIndicatorV6 supports MSP number(Multiple Subscriber Profile) and Call Forwarding Number.
+ Upto four different profiles can be provisioned against a subscriber using the MSP feature.
+ @see 3GPP TS 31.102 v7.4.1 section 4.2.64
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneCFUIndicatorV6();
+ public:
+ /**
+ @see RMoblie::TMobileAddress
+ */
+ TMobileAddress iCFNumber;
+ /**
+ The profile IDs allow unambiguous identification of each profile.
+ This will allow the subscriber to select the preferred profile for outgoing calls and for subscriber actions.
+ For terminating calls the profile ID shall be part of the notification of the profile.
+ */
+ TMultipleSubscriberProfileID iMultipleSubscriberProfileID;
+ };
+
+ typedef TPckg<TMobilePhoneCFUIndicatorV6> TMobilePhoneCFUIndicatorV6Pckg;
+
+ IMPORT_C void GetCallForwardingIndicator(TRequestStatus& aReqStatus, TDes8& aIndicator) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Identity Service functional unit
+ //
+ /***********************************************************************************/
+
+/** Phone ID services (CLIP/CNIP/CLIR).
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneIdService
+ {
+ /** The identity service is unspecified */
+ EIdServiceUnspecified,
+ /** The caller's ID is presented to the called party. */
+ EIdServiceCallerPresentation,
+ /** The caller's ID is restricted to the called party. */
+ EIdServiceCallerRestriction,
+ /** The connected party's ID is presented to the calling party. */
+ EIdServiceConnectedPresentation,
+ /** The connected party's ID is restricted to the calling party. */
+ EIdServiceConnectedRestriction,
+ /** The caller's name is presented to the called party. */
+ EIdServiceCallerName,
+ /** The called party is presented with the caller's ID. This command enables a
+ called subscriber to get the called line identification of the called party
+ when receiving a mobile terminated call. - maps to +CDIP. */
+ EIdServiceCalledPresentation
+ };
+
+/** Service status of the Phone ID services (CLIP/CLIR/CNIP).
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneIdServiceStatus
+ {
+ /** The interrogated Identity service is provisioned and active. This status is
+ used for all identity services and in the case of the CLIR service means that
+ it is permanently active with no subscription option set. */
+ EIdServiceActivePermanent,
+ /** This status is used for the CLIR service only and means that the service is
+ provisioned and active.
+
+ The CLIR subscription option is set to "Temporary, default restricted", therefore
+ identity is always restricted unless over-ridden by the user during a call
+ set-up. */
+ EIdServiceActiveDefaultRestricted,
+ /** This status is used for the CLIR service only and means that the service is
+ provisioned and active.
+
+ The CLIR subscription option is set to "Temporary, default allowed", therefore
+ identity is always allowed unless over-ridden by the user during a call set-up. */
+ EIdServiceActiveDefaultAllowed,
+ /** The interrogated Identity service is not provisioned. */
+ EIdServiceNotProvisioned,
+ /** The status of the interrogated Identity service is unknown. */
+ EIdServiceUnknown
+ };
+
+ // for use by client-side API code and TSY only
+
+ struct TIdServiceAndLocation
+ {
+ TMobilePhoneIdService iService;
+ TMobileInfoLocation iLocation;
+ };
+
+ /** This function member retrieves the current status of the identity service specified.
+
+ The phone will retrieve this service status information from the location
+ specified by the client.
+
+ If the client has requested EInfoLocationCache but there is no valid status
+ information in the cache then the request will return KErrNotFound.
+
+ If the client has requested EInfoLocationCachePreferred, the network will
+ be interrogated if the cache is empty. Whenever the network is interrogated,
+ the cache will be refreshed with the information from the network.
+
+ Use RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneGetIdentityServiceStatus)
+ to cancel a previously placed asynchronous GetIdentityServiceStatus() request.
+
+ @param aReqStatus On return, KErrNone if successful.
+ @param aService The identity service to be queried.
+ @param aStatus On return, the service status.
+ @param aLocation The location to use. */
+ IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
+
+ /**
+ Identifies default service status for provisioned identity services.
+ */
+ enum TMobilePhoneIdServiceSetting
+ {
+ /** Sets the default setting to network default (unknown). */
+ EIdServiceNetworkDefault,
+ /** Sets the default setting to presentation restricted. */
+ EIdServicePresentationRestricted,
+ /** Sets the default setting to presentation allowed. */
+ EIdServicePresentationAllowed
+ };
+
+ IMPORT_C void SetIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, const TMobilePhoneIdServiceSetting aSetting) const;
+ IMPORT_C void NotifyIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus) const;
+ IMPORT_C void NotifyIdentitySuppressionRejected(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Call Barring Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Mobile Phone Call Baring Conditions.
+
+Modes: Common */
+ enum TMobilePhoneCBCondition
+ {
+ /** The barring program is unspecified */
+ EBarUnspecified,
+ /** All incoming calls to this subscriber are barred (BAIC). */
+ EBarAllIncoming,
+ /** All incoming calls to this subscriber are barred when roaming outside the home
+ PLMN country (BIC-roam). */
+ EBarIncomingRoaming,
+ /** All outgoing calls by this subscriber are barred (BAOC). */
+ EBarAllOutgoing,
+ /** All outgoing international calls by this subscriber are barred (BOIC). */
+ EBarOutgoingInternational,
+ /** All outgoing international calls except those directed to the home PLMN country
+ by this subscriber are barred (BOIC-ExHC). */
+ EBarOutgoingInternationalExHC,
+ /** All of above CB services. */
+ EBarAllCases,
+ EBarAllOutgoingServices,
+ EBarAllIncomingServices
+ };
+
+/** Mobile Phone Call Barring Status and Information.
+
+Modes: Common */
+ enum TMobilePhoneCBStatus
+ {
+ /** The CB service is currently active and operative. */
+ ECallBarringStatusActive,
+ /** The CB service is currently deactivated or quiescent. */
+ ECallBarringStatusNotActive,
+ /** In GSM/WCDMA mode, the CB service is not provisioned. In CDMA mode, this value
+ has no meaning. */
+ ECallBarringStatusNotProvisioned,
+ /** In GSM/WCDMA mode, the CB service is not available in serving network. In CDMA
+ mode, the CB service is not available in the phone. */
+ ECallBarringStatusNotAvailable,
+ /** The phone can not determine CB service status. */
+ ECallBarringStatusUnknown
+ };
+
+
+
+ class TMobilePhoneCBInfoEntryV1 : public TMultimodeType
+/** Defines information about the call barring service.
+
+@see CMobilePhoneCBList
+@publishedPartner
+@released
+*/
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobilePhoneCBInfoEntryV1();
+ public:
+ /** The CB service of this list entry.
+
+ Modes: Common
+
+ @see TMobilePhoneCBCondition */
+ TMobilePhoneCBCondition iCondition;
+ /** The service group associated to this list entry.
+
+ Modes: Common
+
+ @see TMobileService */
+ TMobileService iServiceGroup;
+ /** The CB service status of this list entry.
+
+ Modes: Common
+
+ @see TMobilePhoneCBStatus */
+ TMobilePhoneCBStatus iStatus;
+ };
+
+ class TMobilePhoneCBInfoEntryV3 : public TMobilePhoneCBInfoEntryV1
+ /**
+ V3 class extending TMobilePhoneCBInfoEntryV1 to add a comparison method parameter.
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobilePhoneCBInfoEntryV3();
+ public:
+ /**
+ The comparison method associated with this CB entry.
+ */
+ TUint8 iCompMethod;
+ };
+
+ class TMobilePhoneCBChangeV1 : public TMultimodeType
+/** Mobile Phone Call Barring Change.
+
+@see SetCallBarringStatus()
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneCBChangeV1();
+ public:
+ /** The basic service group(s) to apply the CB status change to.
+
+ @see TMobileService */
+ TMobileService iServiceGroup;
+ /** The service action for call barring.
+
+ @see TMobilePhoneServiceAction */
+ TMobilePhoneServiceAction iAction;
+ /** Password required to perform the call barring service action.
+
+ @see TMobilePassword */
+ TMobilePassword iPassword;
+ };
+
+ IMPORT_C void SetCallBarringStatus(TRequestStatus& aReqStatus, TMobilePhoneCBCondition aCondition, const TMobilePhoneCBChangeV1& aInfo) const;
+ IMPORT_C void NotifyCallBarringStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCBCondition& aCondition) const;
+
+ class TMobilePhonePasswordChangeV1 : public TMultimodeType
+/** Mobile phone password change.
+
+@see SetCallBarringPassword()
+@see ChangeSecurityCode()
+@publishedPartner
+@released
+*/
+ {
+ public:
+ IMPORT_C TMobilePhonePasswordChangeV1();
+ public:
+ /** Old password.
+
+ Modes: Common
+
+ @see TMobilePassword */
+ TMobilePassword iOldPassword;
+ /** New password.
+
+ Modes: Common
+
+ @see TMobilePassword */
+ TMobilePassword iNewPassword;
+ };
+
+ IMPORT_C void SetCallBarringPassword(TRequestStatus& aReqStatus, const TMobilePhonePasswordChangeV1& aPassword) const;
+
+ class TMobilePhonePasswordChangeV2 : public TMobilePhonePasswordChangeV1
+/** Mobile phone password change version 2.
+*/
+ {
+ public:
+ IMPORT_C TMobilePhonePasswordChangeV2();
+ public:
+ /** Verified password.
+
+ Modes: Common
+
+ @see TMobilePassword */
+ TMobilePassword iVerifiedPassword;
+ };
+
+/** A typedef'd packaged TMobilePhonePasswordChangeV2 passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhonePasswordChangeV2> TMobilePhonePasswordChangeV2Pckg;
+
+ IMPORT_C void SetSSPassword(TRequestStatus& aReqStatus, const TDesC8& aPassword, const TInt aService) const;
+
+ IMPORT_C void GetCompMethodName(TRequestStatus& aReqStatus, TDes& aAlphaTag, const TUint8 aCmi) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Call Waiting Functional Unit
+ //
+ /***********************************************************************************/
+
+/** The mobile phone call waiting status.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCWStatus
+ {
+ /** The CW service is currently active and operative. */
+ ECallWaitingStatusActive,
+ /** The CW service is currently deactivated or quiescent. */
+ ECallWaitingStatusNotActive,
+ /** The CW service is not provisioned. */
+ ECallWaitingStatusNotProvisioned,
+ /** The CW service is not available in the serving network. */
+ ECallWaitingStatusNotAvailable,
+ /** The phone can not determine CW service status. */
+ ECallWaitingStatusUnknown
+ };
+
+
+
+ class TMobilePhoneCWInfoEntryV1 : public TMultimodeType
+/** Defines information about the call waiting service.
+
+@see CMobilePhoneCWList
+*/
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobilePhoneCWInfoEntryV1();
+ public:
+ /** The service group associated to this CW service list entry.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileService */
+ TMobileService iServiceGroup;
+ /** The CW service status of this list entry.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneCWStatus */
+ TMobilePhoneCWStatus iStatus;
+ };
+
+/** A typedef'd packaged TMobilePhoneCWInfoEntryV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneCWInfoEntryV1> TMobilePhoneCWInfoEntryV1Pckg;
+
+ IMPORT_C void SetCallWaitingStatus(TRequestStatus& aReqStatus, TMobileService aServiceGroup, TMobilePhoneServiceAction aAction) const;
+ IMPORT_C void NotifyCallWaitingStatusChange(TRequestStatus& aReqStatus, TDes8& aCWStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Call Completion Unit
+ //
+ /***********************************************************************************/
+
+/** The Call Completion Busy Subscriber status of the phone.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCCBSStatus
+ {
+ /** User has CCBS provisioned and there is at least 1 (and up to 5) active CCBS
+ requests. */
+ ECcbsActive,
+ /** User has CCBS provisioned but there are currently no active CCBS requests. */
+ ECcbsNotActive,
+ /** User has not subscribed to the CCBS service. */
+ ECcbsNotProvisioned,
+ /** The CCBS service is not available in the serving network. */
+ ECcbsNotAvailable,
+ /** MS is unable to determine status of the CCBS service. */
+ ECcbsUnknown
+ };
+
+/** CCBS recall events.
+
+@see RMobilePhone::TMobilePhoneCCBSEntryV2 */
+ enum TCCBSRecallEvent
+ {
+ /** Recall received. */
+ ECcbsRecallReceived,
+ /** Recall accepted. */
+ ECcbsRecallAccepted,
+ /** Recall refused. */
+ ECcbsRecallRefused,
+ /** Recall reason unspecified. */
+ ECcbsRecallUnspecified
+ };
+
+
+
+ class TMobilePhoneCCBSEntryV1 : public TMultimodeType
+/** Defines information about the call completion (CCBS) service.
+
+@see CMobilePhoneCcbsList
+@publishedPartner
+@released
+*/
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobilePhoneCCBSEntryV1();
+ public:
+ /** The CCBS index - a number allocated by the network.
+
+ Modes: GSM/WCDMA */
+ TInt iCcbsIndex;
+ /** The basic service group (voice/data/fax) this CCBS request is applicable to.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileService */
+ TMobileService iServiceGroup;
+ /** The phone number of the remote party to whom the CCBS request is aimed.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileAddress */
+ TMobileAddress iDestination;
+
+ };
+
+/** A typedef'd packaged TMobilePhoneCCBSEntryV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneCCBSEntryV1> TMobilePhoneCCBSEntryV1Pckg;
+
+
+ class TMobilePhoneCCBSEntryV2 : public TMobilePhoneCCBSEntryV1
+/** Defines information about the call completion (CCBS) service version 2.
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneCCBSEntryV2();
+ public:
+ TCCBSRecallEvent iEvent;
+ };
+
+/** A typedef'd packaged TMobilePhoneCCBSEntryV2 for passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneCCBSEntryV2> TMobilePhoneCCBSEntryV2Pckg;
+
+ IMPORT_C void GetCCBSStatus(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
+ IMPORT_C void NotifyCCBSStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus) const;
+ IMPORT_C void DeactivateCCBS(TRequestStatus& aReqStatus, TInt aIndex) const;
+ IMPORT_C void NotifyCCBSRecall(TRequestStatus& aReqStatus, TDes8& aCCBSEntry) const;
+ IMPORT_C void AcceptCCBSRecall(TRequestStatus& aReqStatus, TInt aIndex, TName& aCallName) const;
+ IMPORT_C TInt RefuseCCBSRecall(TInt aIndex) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Alternating Call Function Unit
+ //
+ /***********************************************************************************/
+
+/** Alternating Call Capabilities
+
+Modes: GSM */
+ enum TMobilePhoneAlternatingCallCaps
+ {
+ /** Phone supports outgoing Voice/Data calls
+
+ Modes: GSM */
+ KCapsMOVoiceData = 0x00000001,
+ /** Phone supports outgoing Voice Then Data calls.
+
+ Modes: GSM */
+ KCapsMOVoiceThenData = 0x00000002,
+ /** Phone supports outgoing Voice/Fax calls.
+
+ Modes: GSM/WCDMA */
+ KCapsMOVoiceFax = 0x00000004,
+ /** Phone supports incoming Voice/Data calls.
+
+ Modes: GSM */
+ KCapsMTVoiceData = 0x00000008,
+ /** Phone supports incoming Voice Then Data calls.
+
+ Modes: GSM */
+ KCapsMTVoiceThenData = 0x00000010,
+ /** Phone supports incoming Voice/Fax calls
+
+ Modes: GSM/WCDMA */
+ KCapsMTVoiceFax = 0x00000020
+ };
+
+ IMPORT_C TInt GetAlternatingCallCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyAlternatingCallCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+/** Alternating Call Mode.
+
+Modes: Common */
+ enum TMobilePhoneAlternatingCallMode
+ {
+ /** The alternating call mode is unspecified
+
+ Modes: Common */
+ EAlternatingModeUnspecified,
+ /** Next call will use a single bearer service - default setting
+
+ Modes: Common */
+ EAlternatingModeSingle,
+ /** Next call will use voice/data alternating bearer service.
+
+ Modes: GSM */
+ EAlternatingModeVoiceData,
+ /** Next call will use voice then data alternating bearer service.
+
+ Modes: GSM */
+ EAlternatingModeVoiceThenData,
+ /** Next call will use voice/fax alternating bearer service.
+
+ Modes: GSM/WCDMA */
+ EAlternatingModeVoiceFax
+ };
+
+ IMPORT_C TInt GetAlternatingCallMode(TMobilePhoneAlternatingCallMode& aMode, TMobileService& aFirstService) const;
+ IMPORT_C void SetAlternatingCallMode(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode aMode, TMobileService aFirstService) const;
+ IMPORT_C void NotifyAlternatingCallModeChange(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode& aMode,TMobileService& aFirstService) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Alternate Line Service Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Alternate Line Primary settings.
+
+Modes: GSM */
+ enum TMobilePhoneALSLine
+ {
+ /** Current ALS line selection is the "Primary" voice line. */
+ EAlternateLinePrimary,
+ /** Current ALS line selection is the "Auxiliary" voice line. */
+ EAlternateLineAuxiliary,
+ /** ALS is supported by ME and SIM, but the TSY can not determine which line is
+ currently selected. */
+ EAlternateLineUnknown,
+ /** The ME, SIM or serving network does not support ALS. */
+ EAlternateLineNotAvailable
+ };
+
+ IMPORT_C TInt GetALSLine(TMobilePhoneALSLine& aALSLine) const;
+ IMPORT_C void SetALSLine(TRequestStatus& aReqStatus, TMobilePhoneALSLine aALSLine) const;
+ IMPORT_C void NotifyALSLineChange(TRequestStatus& aReqStatus, TMobilePhoneALSLine& aALSLine) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Network Security Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Enumerated network security types.
+
+Mode: Common */
+ enum TMobilePhoneNetworkSecurity
+ {
+ /** The encryption level is NONE.
+
+ Mode: Common */
+ ECipheringOff,
+ /** The encryption level is GSM.(standard encryption algorithms for 2nd Generation
+ Mobile networks).
+
+ Mode: GSM */
+ ECipheringGSM,
+ /** The encryption level is WCDMA.(standard encryption algorithms for 3rd Generation
+ Mobile networks).
+
+ Mode: WCDMA */
+ ECipheringWCDMA,
+ /** The encryption level is CDMA.(standard encryption algorithms for 3rd Generation
+ Mobile networks).
+
+ Mode: CDMA */
+ ECipheringCDMA
+ };
+
+ IMPORT_C void GetNetworkSecurityLevel(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const;
+ IMPORT_C void NotifyNetworkSecurityLevelChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const;
+
+ /**
+ Indicators for whether encryption status of the current call should be displayed.
+ */
+ enum TMobileCallCipheringIndicator
+ {
+ /**
+ The ME indication displaying the encryption status of the current call should be off.
+ */
+ ECipheringDisplayOff,
+ /**
+ The ME indication displaying the encryption status of the current call should be on.
+ */
+ ECipheringDisplayOn
+ };
+
+ IMPORT_C void GetCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const;
+ IMPORT_C void NotifyCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Cost Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Call Cost Capabilities.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCostCaps
+ {
+ /** Indicates that the phone supports calculation and display of current and accumulated
+ call cost on an information-only basis. (The AoCI service in GSM)
+
+ Modes: GSM/WCDMA */
+ KCapsCostInformation = 0x00000001,
+ /** Indicates that the phone supports calculation and display of current and accumulated
+ call cost in order to support the charging service. (The AoCC service in GSM).
+
+
+ Modes: Common */
+ KCapsCostCharging = 0x00000002,
+ /** Indicates that the phone supports clearing of cost meters (ACM or CCM) to zero.
+
+ Modes: Common */
+ KCapsClearCost = 0x00000004,
+ /** Indicates that the phone supports setting the maximum allowed cost (ACMmax)
+ to a non-zero value.
+
+ Modes: Common */
+ KCapsSetMaxCost = 0x00000008,
+ /** Indicates that the phone supports setting the currency and price per unit.
+
+ Modes: GSM/WCDMA */
+ KCapsSetPuct = 0x00000010,
+ /** Indicates that the phone currently has call cost information available that
+ the client can retrieve.
+
+ Modes: Common */
+ KCapsGetCost = 0x00000020,
+ /** Indicates that the phone can notify the client when the call cost information
+ changes.
+
+ Modes: Common */
+ KCapsNotifyCostChange = 0x00000040
+ };
+
+ IMPORT_C TInt GetCostCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyCostCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+/** Clear Cost Meter.
+
+Modes: Common */
+ enum TMobilePhoneCostMeters
+ {
+ /** Clear the Current Call Meter. */
+ EClearCCM,
+ /** Clear the Accumulated Charge Meter. */
+ EClearACM,
+ /** Clear all cost meters */
+ EClearAll
+ };
+
+ IMPORT_C void ClearCostMeter(TRequestStatus& aReqStatus, TMobilePhoneCostMeters aMeter) const;
+ IMPORT_C void SetMaxCostMeter(TRequestStatus& aReqStatus, TUint aUnits) const;
+
+
+
+ class TMobilePhonePuctV1 : public TMultimodeType
+/** Defines the contents of the price/unit and currency table (PUCT) on the SIM.
+
+@see TMobilePhoneCostInfoV1
+@see SetPuct()
+*/
+ {
+ public:
+ IMPORT_C TMobilePhonePuctV1();
+ public:
+ /** The Price per Unit. This floating point value is used to adjust the pricing
+ units supplied by the network into real currency values.
+
+ Modes: GSM/WCDMA */
+ TReal iPricePerUnit;
+ /** The three character currency indicator.
+
+ Modes: GSM/WCDMA */
+ TBuf<4> iCurrencyName;
+ };
+
+/** A typedef'd packaged TMobilePhonePuctV1 for passing through a generic API function
+member. */
+ typedef TPckg<TMobilePhonePuctV1> TMobilePhonePuctV1Pckg;
+
+ IMPORT_C void SetPuct(TRequestStatus& aReqStatus, const TDesC8& aPuct) const;
+
+/** Cost Information
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneCostService
+ {
+ /** Phone supports call cost service but no calls are currently in progress so the
+ network support and user subscription is unknown. */
+ ECostServiceUnknown,
+ /** The network or the phone does not support any of the call cost services. The
+ call can be either in progress or not. If the user is subscribed to AoCI they
+ will be able to continue to make calls but will not see any charging information.
+ If the user is subscribed to AoCC then they will be prevented from making
+ chargeable calls. */
+ ECostServiceNotAvailable,
+ /** Call is in progress and a call cost service is active but the phone is unable
+ to determine whether it is an AoCI or AoCC service. */
+ ECostServiceAvailable,
+ /** Call is in progress and the call cost information (AoCI) service is currently
+ operating.
+
+ Modes: GSM/WCDMA */
+ ECostServiceInformation,
+ /** Call is in progress and the call cost charging (AoCC) service is currently operating.
+
+ Modes: GSM/WCDMA */
+ ECostServiceCharging
+ };
+
+
+
+ class TMobilePhoneCostInfoV1 : public TMultimodeType
+/** Defines the information related to current billing costs.
+
+@see GetCostInfo()
+@see NotifyCostInfoChange()
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneCostInfoV1();
+ public:
+ /** The current status and type of call cost service.
+
+ @see TMobilePhoneCostService */
+ TMobilePhoneCostService iService;
+ /** The current number of charging units in the Current Call Meter. This is set
+ to zero if reset by the user or at the start of call set-up attempt. */
+ TUint iCCM;
+ /** The current number of charging units in the Accumulated Call Meter. This equals
+ the accumulation of previous and current calls. */
+ TUint iACM;
+ /** The maximum number of charging units that the ACM can rise to before chargeable
+ calls are stopped. Equals zero if Service != ECostServiceCharging. */
+ TUint iACMmax;
+ /** The Price per Unit and Currency Table.
+
+ @see TMobilePhonePuctV1 */
+ TMobilePhonePuctV1 iPuct;
+ };
+
+/** A typedef'd packaged TMobilePhoneCostInfoV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneCostInfoV1> TMobilePhoneCostInfoV1Pckg;
+
+ IMPORT_C void GetCostInfo(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
+ IMPORT_C void NotifyCostInfoChange(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Security Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Security Capabilities.
+
+Modes: Common */
+ enum TMobilePhoneSecurityCaps
+ {
+ /** The phone supports an overall "phone device lock" which can be enabled or disabled.
+ If enabled, user must enter phone password before the phone can be used. When
+ this capability is set the phone will support get lock info, notify lock info
+ change and set lock setting for phone device lock.
+
+ Modes: Common */
+ KCapsLockPhone = 0x0000001,
+ /** The phone supports locking the ICC (using the PIN1 security code), which can
+ be enabled or disabled. If enabled, the user must enter PIN1 code before the
+ ICC can be used. When this capability is set the phone will support get lock
+ info, notify lock info change and set lock setting for ICC lock.
+
+ Modes: Common */
+ KCapsLockICC = 0x00000002,
+ /** The phone supports the "phone to ICC lock" which can be enabled or disabled.
+ If enabled, at power-up the phone will check whether current ICC is the one
+ the phone is locked to or not. If not, then the user must enter the phone
+ password before phone can be used with this ICC. When this capability is set
+ the phone will support get lock info, notify lock info change and set lock
+ setting for Phone-ICC lock.
+
+ Modes: Common */
+ KCapsLockPhoneToICC = 0x00000004,
+ /** The phone supports the "phone to first ICC lock" which can be enabled or disabled.
+ If enabled, at power-up the phone will check whether current ICC is the one
+ the phone is first locked to or not. If not, then user must enter the phone
+ password before the phone can be used with this ICC. When this capability
+ is set the phone will support get lock info, notify lock info change and set
+ lock setting for Phone-First ICC lock.
+
+ Modes: Common */
+ KCapsLockPhoneToFirstICC = 0x00000008,
+ /** The phone supports the "Over The Air" programming lock which can be enabled
+ or disabled. If enabled, the phone will prevent OTA programming by the network.
+ If disabled, the phone will allow OTA programming by the network. When this
+ capability is set the phone will support get lock info, notify lock info change
+ and set lock setting for OTA lock.
+
+ Modes: CDMA */
+ KCapsLockOTA = 0x00000010,
+ /** The phone supports access to the PIN 1 security code. When this capability is
+ set the phone will support verification of PIN1, unblocking PIN1, changing
+ PIN1 and notification of PIN1 required.
+
+ Modes: Common */
+ KCapsAccessPin1 = 0x00000020,
+ /** The phone supports access to the PIN 2 security code. When this capability is
+ set the phone will support verification of PIN2, unblocking PIN2, changing
+ PIN2 and notification of PIN2 required.
+
+ Modes: GSM/WCDMA */
+ KCapsAccessPin2 = 0x00000040,
+ /** The phone supports access to the phone password security code. When this capability
+ is set the phone will support verification of the phone password, changing
+ the phone password and notification if the phone password is required.
+
+ Modes: Common */
+ KCapsAccessPhonePassword = 0x00000080,
+ /** The phone supports access to the SPC (Service Programming Code) security code.
+ This code may need to be verified before OTA can commence.
+
+ Modes: CDMA */
+ KCapsAccessSPC = 0x00000100,
+ /** The phone supports access to the hidden key. When this capability is set the
+ phone will support verification of HiddenKey.
+
+ Modes: WCDMA */
+ KCapsAccessHiddenKey=0x00000200,
+ /** The phone supports access to the USIM Application PIN. An Application PIN allows
+ access to any file on the UICC where it is referenced in the access rules.
+
+ Modes: WCDMA */
+ KCapsAccessUSIMAppPin=0x00000400,
+ /** The phone supports access to the second USIM Application PIN. The second Application
+ PIN allows access to files (where it is referenced in the access rules) within
+ one USIM Application on the UICC. This is a local PIN.
+
+ Modes: WCDMA */
+ KCapsAccessUSIMAppSecondPin =0x00000800,
+ /** The phone supports access to the Universal PIN. A Universal PIN is a PIN that
+ is used in a multi-application UICC environment to allow several USIM applications
+ to share one common PIN.
+
+ Modes: WCDMA */
+ KCapsAccessUniversalPin =0x00001000
+ };
+
+ IMPORT_C TInt GetSecurityCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifySecurityCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+/** Lock Information.
+
+Modes: Common */
+ enum TMobilePhoneLock
+ {
+ /** Lock the whole device. Phone lock password is required to unlock when this lock
+ is enabled.
+
+ Modes: Common */
+ ELockPhoneDevice,
+ /** Lock PIN1 on the ICC. PIN1 security code is required to unlock when this lock
+ is enabled.
+
+ Modes: Common */
+ ELockICC,
+ /** Lock the phone to the current ICC inserted in the phone Phone lock password
+ is required to unlock when this lock is enabled.
+
+ Modes: Common */
+ ELockPhoneToICC,
+ /** Lock the phone to the first ICC inserted in the phone. Phone lock password is
+ required to unlock when this lock is enabled.
+
+ Modes: Common */
+ ELockPhoneToFirstICC,
+ /** Lock the OTA facility on the phone. SPC security code may be required to unlock
+ when this lock is enabled.
+
+ Modes: CDMA */
+ ELockOTA,
+ /** Lock PIN2 on the ICC. PIN2 security code is required to unlock when this lock
+ is enabled.
+
+ Modes: Common */
+ ELockPin2,
+ /** Lock the phonebook hidden entries on the phone. Hidden key security code may
+ be required to unlock when this lock is enabled.
+
+ Modes: WCDMA */
+ ELockHiddenKey,
+ /** Lock the associated USIM Application. USIM Application PIN is required to unlock
+ when this lock is enabled.
+
+ Modes: WCDMA */
+ ELockUSimApp,
+ /** Lock the associated USIM Application. The second USIM Application PIN is required
+ to unlock when this lock is enabled.
+
+ Modes: WCDMA */
+ ELockSecondUSimApp,
+ /** Lock the associated USIM Application(s) that share this common lock. Universal
+ Pin is required to unlock when this lock is enabled.
+
+ Modes: WCDMA */
+ ELockUniversalPin,
+ /** Lock for the NAM. The SPC is required to unlock.
+
+ Modes: CDMA */
+ ELockNam
+ };
+
+/** Phone lock status.
+
+Modes: Common */
+ enum TMobilePhoneLockStatus
+ {
+ /** The status of the lock is unknown. */
+ EStatusLockUnknown,
+ /** Lock is closed - user can not access functionality governed by this lock until
+ user correctly enters associated security code. */
+ EStatusLocked,
+ /** Lock is open - user can access functionality governed by this lock */
+ EStatusUnlocked,
+ EStatusBlocked
+ };
+
+/** The phone lock setting.
+
+Modes: Common */
+ enum TMobilePhoneLockSetting
+ {
+ /** The setting of the lock is unknown
+
+ Modes: Common */
+ ELockSetUnknown,
+ /** Lock is enabled - associated security code will be required to unlock the
+ lock, the next time the lock's status is EStatusLocked.
+
+ Modes: Common */
+ ELockSetEnabled,
+ /** Lock is disabled - so its status is always EStatusUnlocked.
+
+ Modes: Common */
+ ELockSetDisabled,
+ /** Lock of the current Application is replaced by the Universal PIN. Only the
+ Universal PIN is allowed as a replacement.
+
+ Modes: WCDMA */
+ ELockReplaced
+ };
+
+
+
+ class TMobilePhoneLockInfoV1 : public TMultimodeType
+/** Defines the status of a phone lock.
+
+@see GetLockInfo()
+@see NotifyLockInfoChange()
+@publishedPartner
+@released
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneLockInfoV1();
+ public:
+ /** The current status of the lock.
+
+ Modes: Common
+
+ @see TMobilePhoneLockStatus */
+ TMobilePhoneLockStatus iStatus;
+ /** The current setting of the lock.
+
+ Modes: Common
+
+ @see TMobilePhoneLockSetting */
+ TMobilePhoneLockSetting iSetting;
+ };
+
+/** A typedef'd packaged TMobilePhoneLockInfoV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneLockInfoV1> TMobilePhoneLockInfoV1Pckg;
+
+ IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TDes8& aLockInfo) const;
+ IMPORT_C void NotifyLockInfoChange(TRequestStatus& aReqStatus, TMobilePhoneLock& aLock, TDes8& aLockInfo) const;
+ IMPORT_C void SetLockSetting(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TMobilePhoneLockSetting aSetting) const;
+
+/** Change Security Code.
+
+Modes: Common */
+ enum TMobilePhoneSecurityCode
+ {
+ /** PIN 1 code (between 4-8 digits).
+
+ Modes: Common */
+ ESecurityCodePin1,
+ /** PIN 2 code (between 4-8 digits)
+
+ Modes: GSM/WCDMA */
+ ESecurityCodePin2,
+ /** PIN 1 unblocking code (always 8 digits).
+
+ Modes: Common */
+ ESecurityCodePuk1,
+ /** PIN 2 unblocking code (always 8 digits)
+
+ Modes: GSM/WCDMA */
+ ESecurityCodePuk2,
+ /** Password used for Phone-SIM Lock and Phone Device Lock (up to 8 digits)
+
+ Modes: Common */
+ ESecurityCodePhonePassword,
+ /** Service Programming Code (SPC)
+
+ Modes: CDMA */
+ ESecurityCodeSPC,
+ /** Phonebook key to display the hidden entries.
+
+ Modes: WCDMA */
+ ESecurityHiddenKey,
+ /** USIM Application PIN.
+
+ Modes: WCDMA */
+ ESecurityUSIMAppPin,
+ /** Second USIM Application PIN.
+
+ Modes: WCDMA */
+ ESecuritySecondUSIMAppPin,
+ /** Universal PIN.
+
+ Modes: WCDMA */
+ ESecurityUniversalPin,
+ /** Universal PIN unblocking code (always 8 digits).
+
+ Modes: Common */
+ ESecurityUniversalPuk
+ };
+
+ IMPORT_C void ChangeSecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, const TMobilePhonePasswordChangeV1& aChange) const;
+
+ /** Defines the status of a security code.
+
+ @see GetSecurityCodeInfo()
+ @see NotifySecurityCodeInfoChange()
+ @publishedPartner
+ @released
+ */
+ class TMobilePhoneSecurityCodeInfoV5 : public TMultimodeType
+ {
+ public:
+ IMPORT_C TMobilePhoneSecurityCodeInfoV5();
+ public:
+ /** Number of remaining security code entry attempts before the corresponding lock gets blocked
+
+ Modes: Common
+ */
+ TInt iRemainingEntryAttempts;
+ };
+
+ /** A typedef'd packaged TMobilePhoneSecurityCodeInfoV5 for passing through a generic API
+ function member. */
+ typedef TPckg<TMobilePhoneSecurityCodeInfoV5> TMobilePhoneSecurityCodeInfoV5Pckg;
+
+ IMPORT_C void GetSecurityCodeInfo(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aSecurityCode, TDes8& aSecurityCodeInfo) const;
+ IMPORT_C void NotifySecurityCodeInfoChange(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode& aSecurityCode, TDes8& aSecurityCodeInfo) const;
+
+/** Notify Security Events.
+
+Modes: Common */
+ enum TMobilePhoneSecurityEvent
+ {
+ /** The phone has detected that there is no ICC present.
+
+ Modes: Common */
+ ENoICCFound,
+ /** The phone has detected that the ICC is unusable.
+
+ Modes: Common */
+ EICCTerminated,
+ /** The phone requires PIN1 to be entered.
+
+ Modes: Common */
+ EPin1Required,
+ /** The phone requires PUK1 to be entered.
+
+ Modes: Common */
+ EPuk1Required,
+ /** The phone requires PIN2 to be entered.
+
+ Modes: GSM/WCDMA */
+ EPin2Required,
+ /** The phone requires PUK2 to be entered.
+
+ Modes: GSM/WCDMA */
+ EPuk2Required,
+ /** The phone requires the Phone Password to be entered.
+
+ Modes: Common */
+ EPhonePasswordRequired,
+ /** The phone requires the SPC to be entered.
+
+ Modes: CDMA */
+ ESPCRequired,
+ /** The PIN1 verification procedure has passed.
+
+ Modes: Common */
+ EPin1Verified,
+ /** The PIN2 verification procedure has passed.
+
+ Modes: GSM/WCDMA */
+ EPin2Verified,
+ /** The PUK1 unblocking procedure has passed.
+
+ Modes: Common */
+ EPuk1Verified,
+ /** The PUK2 unblocking procedure has passed.
+
+ Modes: GSM/WCDMA */
+ EPuk2Verified,
+ /** The Phone Password has been verified.
+
+ Modes: Common */
+ EPhonePasswordVerified,
+ /** The SPC verification procedure has passed.
+
+ Modes: CDMA */
+ ESPCVerified,
+ /** The phone requires the phonebook hidden key to be entered.
+
+ Modes: WCDMA */
+ EHiddenKeyRequired,
+ /** The phonebook hidden key procedure has passed.
+
+ Modes: WCDMA */
+ EHiddenKeyVerified,
+ /** The phone requires the currently active USIM Application PIN to be entered.
+
+ Modes: WCDMA */
+ EUSIMAppPinRequired,
+ /** The currently active USIM Application PIN procedure has passed.
+
+ Modes: WCDMA */
+ EUSIMAppPinVerified,
+ /** The phone requires the currently active USIM Application second PIN to be entered.
+
+ Modes: WCDMA */
+ ESecondUSIMAppPinRequired,
+ /** The currently active USIM Application second PIN procedure has passed.
+
+ Modes: WCDMA */
+ ESecondUSIMAppPinVerified,
+ /** The phone requires the Universal PIN to be entered.
+
+ Modes: WCDMA */
+ EUniversalPinRequired,
+ /** The currently active Universal PIN procedure has passed.
+
+ Modes: WCDMA */
+ EUniversalPinVerified,
+ /** The Service Programming Code has been changed.
+
+ Modes: CDMA */
+ ESPCChanged,
+ /** The phone requires Universal PUK to be entered.
+
+ Modes: WCDMA */
+ EUniversalPukRequired,
+ /** The Universal PUK unblocking procedure has passed.
+
+ Modes: WCDMA */
+ EUniversalPukVerified
+ };
+
+ IMPORT_C void NotifySecurityEvent(TRequestStatus& aReqStatus, TMobilePhoneSecurityEvent& aEvent) const;
+
+ // for use by client-side API code and TSY only
+
+ struct TCodeAndUnblockCode
+ {
+ TMobilePassword iCode;
+ TMobilePassword iUnblockCode;
+ };
+
+ IMPORT_C void VerifySecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType,
+ const TMobilePassword& aCode, const TMobilePassword& aUnblockCode) const;
+ IMPORT_C TInt AbortSecurityCode(TMobilePhoneSecurityCode aType) const;
+
+ /***********************************************************************************/
+ //
+ // MobileMessageWaiting
+ //
+ /***********************************************************************************/
+
+/** Display indicators. */
+ enum TMobilePhoneIndicatorDisplay
+ {
+ /** Display voicemail active. */
+ KDisplayVoicemailActive = 0x01,
+ /** Display fax active. */
+ KDisplayFaxActive = 0x02,
+ /** Display E-mail active. */
+ KDisplayEmailActive = 0x04,
+ /** Display other active. */
+ KDisplayOtherActive = 0x08,
+ /** Display Aux voicemail active. */
+ KDisplayAuxVoicemailActive = 0x10,
+ /** Display data active. */
+ KDisplayDataActive = 0x20
+ };
+
+ class TMobilePhoneMessageWaitingV1 : public TMultimodeType
+/** Message Waiting Indicators. See 3GPP TS 31 102.
+
+@see GetIccMessageWaitingIndicators()
+@see SetIccMessageWaitingIndicators()
+@see NotifyIccMessageWaitingIndicatorsChange()
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneMessageWaitingV1();
+ public:
+ /** The flags for each indicator from TMobilePhoneIndicatorDisplay to specify whether
+ the indicator should be displayed or not. E.g. Messages of the specified type are waiting.
+
+ Modes: Common */
+ TUint8 iDisplayStatus;
+ /** The number of voicemail messages waiting for the "main" voice line.
+
+ Modes: Common */
+ TUint8 iVoiceMsgs;
+ /** The number of voicemail messages waiting for the "auxiliary" voice line.
+
+ Modes: GSM */
+ TUint8 iAuxVoiceMsgs;
+ /** The number of messages waiting for the data line.
+
+ Modes: Common */
+ TUint8 iDataMsgs;
+ /** The number of messages waiting for the fax line.
+
+ Modes: Common */
+ TUint8 iFaxMsgs;
+ /** The number of email messages waiting.
+
+ Modes: WCDMA */
+ TUint8 iEmailMsgs;
+ /** Contains the number of "unspecified" messages waiting.
+
+ Modes: WCDMA */
+ TUint8 iOtherMsgs;
+ };
+
+/** A typedef'd packaged TMobilePhoneMessageWaitingV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneMessageWaitingV1> TMobilePhoneMessageWaitingV1Pckg;
+
+ IMPORT_C void GetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
+ IMPORT_C void SetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, const TDesC8& aMsgIndicators) const;
+ IMPORT_C void NotifyIccMessageWaitingIndicatorsChange(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
+
+ IMPORT_C void NotifyMessageWaiting(TRequestStatus& aReqStatus, TInt& aCount) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Fixed Dialling Numbers Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Fixed Dialling Numbers Status.
+
+Modes: Common */
+ enum TMobilePhoneFdnStatus
+ {
+ /** Fixed Dialling Number mode is supported but is not currently active. */
+ EFdnNotActive,
+ /** Fixed Dialling Number mode is supported and is currently active. Deactivating
+ FDN mode is supported. */
+ EFdnActive,
+ /** Fixed Dialling Number mode is supported and is permanently active. Deactivating
+ FDN mode is NOT supported with this SIM. */
+ EFdnPermanentlyActive,
+ /** Fixed Dialling Number mode is not supported by ME and/or SIM. */
+ EFdnNotSupported,
+ /** ME is currently unable to determine the status of FDN mode. */
+ EFdnUnknown
+ };
+
+ IMPORT_C TInt GetFdnStatus(TMobilePhoneFdnStatus& aFdnStatus) const;
+ IMPORT_C void GetFdnStatus(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
+
+/** Fixed Dialling Numbers Setting
+
+Modes: Common */
+ enum TMobilePhoneFdnSetting
+ {
+ /** Activate the FDN service. */
+ EFdnSetOn,
+ /** Deactivate the FDN service. */
+ EFdnSetOff
+ };
+
+ IMPORT_C void SetFdnSetting(TRequestStatus& aReqStatus, TMobilePhoneFdnSetting aFdnSetting) const;
+ IMPORT_C void NotifyFdnStatusChange(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Multicall bearer settings
+ //
+ /***********************************************************************************/
+
+ class TMobilePhoneMulticallSettingsV1 : public TMultimodeType
+/** Multi call settings for version v1.0.
+
+@see GetMulticallParams()
+@see NotifyMulticallParamsChange()
+@publishedPartner
+@released*/
+ {
+ public:
+ IMPORT_C TMobilePhoneMulticallSettingsV1();
+ public:
+ /** Maximum number of simultaneous CS bearers allowed - defined by the user.
+
+ Modes: WCDMA */
+ TInt iUserMaxBearers;
+ /** Maximum number of simultaneous bearers allowed - defined by the service provider.
+
+ Modes: WCDMA */
+ TInt iServiceProviderMaxBearers;
+ /** Maximum number of simultaneous CS bearers supported by the network.
+
+ Modes: WCDMA */
+ TInt iNetworkSupportedMaxBearers;
+ /** Maximum number of simultaneous CS bearers supported by the UE.
+
+ Modes: WCDMA */
+ TInt iUESupportedMaxBearers;
+ };
+
+/** A typedef'd packaged TMobilePhoneMulticallSettingsV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneMulticallSettingsV1> TMobilePhoneMulticallSettingsV1Pckg;
+
+ IMPORT_C void GetMulticallParams(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
+ IMPORT_C void SetMulticallParams(TRequestStatus& aReqStatus, TInt aUserMaxBearers) const;
+ IMPORT_C void NotifyMulticallParamsChange(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
+
+ enum TMobilePhoneMulticallIndicator
+ /**
+ Indicators for exceeding allowed multiple active bearers.
+ */
+ {
+ /** The maximum number of multiple active bearers allowed by the service provider has been exceeded. */
+ EBearerNetworProviderExceeded,
+ /** The maximum number of multiple active bearers allowed by the mobile user has been exceeded. */
+ EBearerUserExceeded
+ };
+
+ IMPORT_C void NotifyMulticallIndicatorChange(TRequestStatus& aReqStatus, TMobilePhoneMulticallIndicator& aMulticallIndicator) const;
+
+ /***********************************************************************************/
+ //
+ // MobileNextIncomingCall Functional Unit
+ //
+ /***********************************************************************************/
+
+/** Incoming Call Types.
+
+Modes: Common */
+ enum TMobilePhoneIncomingCallType
+ {
+ /** MS will receive any type of incoming call.
+
+ Modes: Common */
+ EIncomingTypeNotSpecified,
+ /** MS will request voice bearer for incoming calls.
+
+ Modes: Common */
+ EIncomingVoice,
+ /** MS will request fax bearer for incoming calls
+
+ Modes: Common */
+ EIncomingFax,
+ /** MS will request data bearer for incoming calls
+
+ Modes: Common */
+ EIncomingData,
+ /** MS will request a data bearer for use by a Multimedia CS call (voice fall back
+ is acceptable) for incoming calls.
+
+ Modes: GSM/WCDMA */
+ EIncomingMultimediaVoiceFallback,
+ /** MS will request a data bearer for use by a Multimedia CS call (voice fall back
+ NOT acceptable) for incoming calls
+
+ Modes: GSM/WCDMA */
+ EIncomingMultimediaNoFallback,
+ /** The single numbering scheme call mode is alternating voice to fax.
+
+ Modes: GSM/WCDMA */
+ EIncomingAlternatingVoiceFax,
+ /** The single numbering scheme call mode is alternating voice to data.
+
+ Modes: GSM */
+ EIncomingAlternatingVoiceData,
+ /** The single numbering scheme call mode is alternating fax to voice.
+
+ Modes: GSM */
+ EIncomingAlternatingFaxVoice,
+ /** The single numbering scheme call mode is alternating data to voice.
+
+ Modes: GSM */
+ EIncomingAlternatingDataVoice,
+ /** The single numbering scheme call mode is alternating voice then data.
+
+ Modes: GSM */
+ EIncomingAlternatingVoiceThenData
+ };
+
+ IMPORT_C void GetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
+ IMPORT_C void SetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType aCallType, TDes8& aDataParams) const;
+ IMPORT_C void NotifyIncomingCallTypeChange(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
+
+ /***********************************************************************************/
+ //
+ // User-To-User Signalling Functional Unit
+ //
+ /***********************************************************************************/
+
+/** UUS Settings Requests.
+
+Modes: GSM/WCDMA */
+ enum TMobilePhoneUUSSetting // UUS settings of the phone
+ {
+ /** UUS is not specified. */
+ EIncomingUUSNotSpecified,
+ /** MS will accept incoming UUS activation request. */
+ EIncomingUUSAccepted,
+ /** MS will reject incoming UUS activation request. */
+ EIncomingUUSRejected
+ };
+
+ IMPORT_C void GetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
+ IMPORT_C void SetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting aSetting) const;
+ IMPORT_C void NotifyUUSSettingChange(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Smart Card Applications Functional Unit
+ //
+ /***********************************************************************************/
+
+
+ enum { KSmartCardApplicationLabelMaxSize=32 };
+
+ /** Smart card application info version v5.0.
+ Modes: Common
+
+ @see GetSmartCardApplicationInfo()
+ @publishedPartner
+ @released
+ */
+ class TSmartCardApplicationInfoV5 : public TMultimodeType
+ {
+ public:
+ IMPORT_C TSmartCardApplicationInfoV5();
+ public:
+ /**
+ Smart card application identifier.
+ */
+ TAID iAID;
+ /**
+ Smart card application label. 16 bit USC2 characters string provided by the application
+ provider to be shown to the user for information, e.g. operator name. It is
+ recommended by ETSI/3GPP spec that the application label does not exceed 32
+ bytes.
+
+ The application label is optional. If no label is provided, the buffer should
+ be NULL.
+ */
+ TBuf8<KSmartCardApplicationLabelMaxSize> iLabel;
+ };
+
+ /**
+ A typedef'd packaged TSmartCardApplicationInfoV5 for passing through a generic API
+ function member.
+ */
+ typedef TPckg<TSmartCardApplicationInfoV5> TSmartCardApplicationInfoV5Pckg;
+
+ /**
+ Specifies the max length of the buffer used to retrieve the smart
+ card application's supported EAP method list. Value 255 since EAP
+ type list length fits into one byte (see table 5.1 of ETSI TS
+ 102.310 v6.2.0).
+
+ @see RMobilePhone::GetSmartCardApplicationInfo()
+ @see RMobilePhone::TUiccApplicationEapInfoV6::iEapTypeList
+ */
+ enum { KEapSupportedTypeListSize = 255 };
+
+ /**
+ UICC application info version v6.0. Is a
+ TSmartCardApplicationInfoV5 object, but has an additional buffer
+ (iEapTypeList) for retrieving a list supported EAP methods on the
+ application.
+
+ Modes: GSM/WCDMA
+
+ @see RMobilePhone::GetSmartCardApplicationInfo()
+ @publishedPartner
+ @released
+ */
+ class TUiccApplicationEapInfoV6 : public TSmartCardApplicationInfoV5
+ {
+ public:
+ IMPORT_C TUiccApplicationEapInfoV6();
+
+ public:
+ /**
+ Application EAP support type list, defining the EAP methods
+ supported by the UICC application (see RFC 3748 and
+ http://www.iana.org/assignments/eap-numbers).
+
+ As reference, also worth seeing section 5.2 of ETSI TS 102.310
+ v6.2.0 and section 6.2 of RFC3748.
+
+ @see KETelSmartCardEapTypeMD5
+ @see KETelSmartCardEapTypeTLS
+ @see KETelSmartCardEapTypeSIM
+ @see KETelSmartCardEapTypeAKA
+ @see KETelSmartCardEapTypeTTLS
+ */
+ TBuf8<KEapSupportedTypeListSize> iEapTypeList;
+ };
+
+ /**
+ A typedef'd packaged TEapUiccApplicationInfoV6 for passing through
+ a generic API function member.
+
+ @see RMobilePhone::GetSmartCardApplicationInfo()
+ */
+ typedef TPckg<TUiccApplicationEapInfoV6> TUiccApplicationEapInfoV6Pckg;
+
+ /**
+ Smart card application notification events
+
+ Modes: Common
+ */
+ enum TSmartCardApplicationEvent
+ {
+ /**
+ Smart card application has been installed.
+ */
+ EScApplicationInstalled,
+ /**
+ Smart card application has been removed.
+ */
+ EScApplicationRemoved,
+ /**
+ Smart card application has been activated.
+ */
+ EScApplicationActivated,
+ /**
+ Smart card application has been terminated.
+ */
+ EScApplicationTerminated
+ };
+
+ /**
+ Smart card application status.
+
+ Modes: Common
+ */
+ enum TSmartCardApplicationAction
+ {
+ /**
+ Smart card application will be activated.
+ */
+ EScApplicationActivate,
+ /**
+ Smart card application will be terminated.
+ */
+ EScTerminate
+ };
+
+ /**
+ Smart card application file types. For definitions see TS 102.221.
+
+ Modes: Common
+ */
+ enum TScFileType
+ {
+ /**
+ Smart card file type is unknown.
+ */
+ EUnknown,
+ /**
+ Smart card file type is linear fixed.
+
+ This is a record-based file.
+ */
+ ELinearFixed,
+ /**
+ Smart card file type is cyclic.
+
+ This is a record-based file.
+ */
+ ECyclic,
+ /**
+ Smart card file type is transparent.
+
+ This is a binary file.
+ */
+ ETransparent
+ };
+
+ /**
+ Typedef to hold a 2-byte file identifier.
+ */
+ typedef TUint16 TScFileID;
+
+ /** Smart card application file info version v5.0.
+ Modes: Common
+
+ @see GetScFileInfo()
+ @publishedPartner
+ @released
+ */
+ class TScFileInfoV5 : public TMultimodeType
+ {
+ public:
+ IMPORT_C TScFileInfoV5();
+ public:
+ /**
+ Smart card file identifier.
+ */
+ TScFileID iFileID;
+ /**
+ The type of the smart card file. Options are
+ Linear Fixed, Cyclic or Transparent.
+ */
+ TScFileType iType;
+ /**
+ Total length of the file. As specified in TS 102.221 the maximum length of an EF is 0xFFF bytes.
+ */
+ TInt iTotalLength;
+ /**
+ If the file is a record based file (e.g. file type is ELinearFixed or ECyclic) then this gives the fixed length of a record in the file.
+ If file type is ETransparent then this value is unused and will be set to 0.
+
+ From TS 102.221 the maximum length of a record in an EF is 255 bytes.
+ */
+ TInt iRecordLength;
+ /**
+ If the file is a record based file (e.g. file type is ELinearFixed or ECyclic) then this gives the number of records in the file.
+ If file type is ETransparent then this value is unused and will be set to 0.
+
+ From TS 102.221 the maximum number of records in an EF is 254.
+ */
+ TInt iNumberRecords;
+ };
+
+
+ /** A typedef'd packaged TScFileInfoV5 for passing through a generic API
+ function member.
+ */
+ typedef TPckg<TScFileInfoV5> TScFileInfoV5Pckg;
+
+ /**
+ This based on the maximum number of bytes in a command PDU
+ as defined in TS 102.221 however the actual path string is very unlikely to ever be this big.
+
+ Modes: Common
+ */
+ enum{ KMaxScFilePathLength = 256};
+
+ /**
+ A typedef'd buffer to hold the path to an EF file.
+ */
+ typedef TBuf8<KMaxScFilePathLength> TScFilePathReference;
+
+
+ /**
+ Class that holds a smart card applications AID and associated file path string.
+
+ Modes: Common
+
+ @see GetScFileInfo()
+ @publishedPartner
+ @released
+ */
+ class TScFilePath
+ {
+ public:
+ IMPORT_C TScFilePath();
+ public:
+ /**
+ AID of application. This may be empty implying the iPath is a path reference starting at the master file (MF).
+ */
+ TAID iAID;
+ /**
+ Full path reference to file.
+
+ The iPath must define the file path using full path referencing. This is because the client does not know
+ what is the currently selected EF or DF and it is therefore necessary to select the file by full
+ path referencing from the master file.
+
+ If iAID value is empty then the iPath reference starts from the MF file but should not include the file ID of the MF (3F00) itself.
+ E.g. To reference the EF_DIR - iAID would be empty and iPath would be set to "2F00".
+ E.g. To refefence the EF_SMS under DF_TELECOM on a 2G SIM ICC - iAID would be empty and iPath would be set to "7F106F3C".
+
+ If iAID is non-empty then it refers to the AID of the application and iPath is a path reference to a file in that application,
+ In this situation the path reference may start with the implicit FID of the application DF (7FFF).
+ E.g. The path to reference to the EF_SMS file in a USIM application using implicit ADF FID would
+ be "7FFF6F3C".
+
+ See TS102.221 section 8.4.2 for more information.
+ */
+ TScFilePathReference iPath;
+ };
+
+ /** Smart card application file identifier and access offsets. This class is used to identify a file and the
+ location in a file to either read or write. Inherits attributes from TScFilePath which provide the
+ parent AID and full path reference.
+
+ Modes: Common
+
+ @see TScFilePath
+ @see ReadScFile()
+ @see UpdateScFile()
+ @publishedPartner
+ @released
+ */
+ class TScFilePathWithAccessOffsets : public TScFilePath
+ {
+ public:
+ IMPORT_C TScFilePathWithAccessOffsets();
+ public:
+ /**
+ The type of the smart card file. Options are
+ Linear Fixed, Cyclic or Transparent.
+ */
+ TScFileType iType;
+ /**
+ If file type is ELinearFixed or ECyclic then this is the starting record index to read or update.
+ This must be less than the number of records in the file.
+
+ If file type is ETransparent then this is the offset (in bytes) from the start of the transparent file to read or update.
+ This must be less than the total file size.
+ */
+ TUint iStartOffset;
+ /**
+ If the file type is ELinearFixed or ECyclic then this is unused.
+ NOTE: A call to ReadScFile or UpdateScFile for a record based file type will only read or update
+ one record as described in TS 102.221 READ RECORD and UPDATE RECORD.
+
+ If file type is ETransparent then this is the number of bytes to read or update.
+ */
+ TUint iCount;
+ };
+
+ IMPORT_C void EnumerateSmartCardApplications(TRequestStatus& aReqStatus, TUint& aCount) const;
+ IMPORT_C void GetSmartCardApplicationInfo(TRequestStatus& aReqStatus, TUint aAppIndex, TDes8& aInfo) const;
+ IMPORT_C void NotifySmartCardApplicationInfoChange(TRequestStatus& aReqStatus, TAID& aAID, TSmartCardApplicationEvent& aEvent) const;
+ IMPORT_C void SetSmartCardApplicationStatus(TRequestStatus& aReqStatus, const TAID& aAID, TSmartCardApplicationAction aAppAction) const;
+ IMPORT_C void GetScFileInfo(TRequestStatus& aReqStatus, const TScFilePath& aFilePathId, TDes8& aInfo) const;
+ IMPORT_C void ReadScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aReadBuffer) const;
+ IMPORT_C void UpdateScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aUpdateBuffer) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile USIM Applications Functional Unit
+ //
+ /***********************************************************************************/
+
+ enum { KUSimApplicationLabelMaxSize=32 };
+
+ IMPORT_C void EnumerateUSimApplications(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1
+
+ class TUSimApplicationInfoV2 : public TMultimodeType
+ /** USIM application information for version v2.0.
+
+ @deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead.
+ */
+ {
+ public:
+ IMPORT_C TUSimApplicationInfoV2();
+ public:
+ /** USIM Application identifier.
+
+ Modes: WCDMA */
+ TAID iAID;
+ /** USIM Application label. 16 bit USC2 characters string provided by the application
+ provider to be shown to the user for information, e.g. operator name. It is
+ recommended by ETSI/3GPP spec that the application label does not exceed 32
+ bytes.
+
+ The application label is optional. If no label is provided, the buffer should
+ be NULL.
+
+ Modes: WCDMA */
+ TBuf8<KUSimApplicationLabelMaxSize> iLabel;
+ };
+
+ /** A typedef'd packaged TUSimApplicationInfoV2 for passing through a generic API
+ function member.
+
+ @deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead.
+ */
+ typedef TPckg<TUSimApplicationInfoV2> TUSimApplicationInfoV2Pckg;
+
+ IMPORT_C void GetUSimApplicationInfo(TRequestStatus& aReqStatus, TInt aUSimAppIndex, TDes8& aInfo) const; //deprecated 9.1
+ IMPORT_C void NotifyUSimApplicationsInfoChange(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1
+
+ /** USIM Application Status.
+
+ Modes: WCDMA
+
+ @deprecated 9.1 Use @see TSmartCardApplicationAction instead.
+ */
+ enum TUSimAppAction
+ {
+ /** USIM application will be activated.
+
+ Modes: WCDMA */
+ EUSimActivate,
+ /** USIM application will be terminated.
+
+ Modes: WCDMA */
+ EUSimTerminate
+ };
+
+ IMPORT_C void SetUSimApplicationStatus(TRequestStatus& aReqStatus, const TAID aAID, TUSimAppAction aUsimAppAction) const; //deprecated 9.1
+
+ /** USIM Application selection mode.
+
+ Mode: WCDMA */
+ enum TUSimSelectionMode
+ {
+ /** USIM application is selected automatically by phone.
+
+ Mode: WCDMA */
+ EUSimSelectionAutomatic,
+ /** USIM application is selected manually by user.
+
+ Mode: WCDMA */
+ EUSimSelectionManual
+ };
+
+ IMPORT_C TInt SetUSimAppsSelectionMode(TUSimSelectionMode aUSimSelectionMode) const;
+ IMPORT_C TInt GetUSimAppsSelectionMode(TUSimSelectionMode& aUSimSelectionMode) const;
+ IMPORT_C void NotifyUSimAppsSelectionModeChange(TRequestStatus& aReqStatus, TUSimSelectionMode& aUSimSelectionMode) const;
+ IMPORT_C void GetCurrentActiveUSimApplication(TRequestStatus& aReqStatus, TAID& aAID) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile MMS Functional Unit
+ //
+ /***********************************************************************************/
+
+ /** max size of MMS notification buffer. */
+ enum{KMaxMmsNotification = 253};
+
+ /**
+ Identifies current status of MMS.
+ */
+ enum TMmsStatus
+ {
+ /**
+ The MMS has not been retrieved.
+ */
+ EMmsNotRetrieved,
+ /**
+ The MMS has been retrieved.
+ */
+ EMmsRetrieved,
+ /**
+ The MMS has been rejected.
+ */
+ EMmsRejected,
+ /**
+ The MMS has been forwarded.
+ */
+ EMmsforwarded
+ };
+
+ /**
+ MMS Implementation.
+ */
+ enum TMmsImplementation
+ {
+ /**
+ Unknown implementation for MMS.
+ */
+ KMmsImplUnknwown=0x00,
+ /**
+ Wap implementation for MMS.
+ */
+ KWapImplementation=0x01
+ };
+
+ /**
+ MMS Connectivity settings.
+ */
+ enum TMmsConnParams
+ {
+ /**
+ MMS User Preferences.
+ */
+ EUserPreferences,
+ /**
+ MMS Issuer Connectivity Parameters.
+ */
+ EIssuerConnParams,
+ /**
+ MMS User Connectivity Parameters.
+ */
+ EUserConnParams
+ };
+
+ /**
+ MMS field Id tags.
+ */
+ enum TMobileMMSFieldTags
+ {
+ /**
+ Tag id for MMS connectivity parameters.
+ */
+ ETagMmsConnParams=0xAB,
+ /**
+ Tag id for MMS Implementation.
+ */
+ ETagMmsImpl=0x80,
+ /**
+ Tag id for MMS Relay/Server.
+ */
+ ETagMmsServer=0x81,
+ /**
+ Tag id for Interface to Core Network and Bearer.
+ */
+ ETagMmsBearerIE=0x82,
+ /**
+ Tag id for Gateway.
+ */
+ ETagMmsGateway=0x83
+ };
+
+ class TMmsNotificationV3 : public TMultimodeType
+ /**
+ Class containing MMS notification paramters.
+ */
+ {
+ public :
+ IMPORT_C TMmsNotificationV3();
+ public :
+ /**
+ Free/Used space.
+ */
+ TBool iSpace;
+ /**
+ Notification read/not read.
+ */
+ TBool iNotification;
+ /**
+ MMS status.
+ */
+ TMmsStatus iMmsStatus;
+ /**
+ MMS implementation.
+ */
+ TMmsImplementation iImplementation;
+ /**
+ MMS notification buffer.
+ */
+ TBuf8<KMaxMmsNotification> iNotify;
+ };
+
+ typedef TPckg<TMmsNotificationV3> TMmsNotificationV3Pckg;
+
+ // MMS notification
+ IMPORT_C void NotifyMmsUpdate(TRequestStatus& aReqStatus, TDes8& aNotification) const;
+ IMPORT_C void SetMmsUserConnParams(TRequestStatus& aReqStatus, TDes8& aConnectivity) const;
+ IMPORT_C void SetMmsUserPreferences(TRequestStatus& aReqStatus, TDes8& aPreferences) const;
+ IMPORT_C void GetMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const;
+ IMPORT_C void NotifyMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile MailBox Numbers Functional Unit
+ //
+ /***********************************************************************************/
+
+ class TMobilePhoneVoicemailIdsV3 : public TMultimodeType
+ /**
+ Contains mailbox numbers.
+ */
+ {
+ public :
+ IMPORT_C TMobilePhoneVoicemailIdsV3();
+ public :
+ /**
+ Phonebook entry for "voicemail" mailbox number.
+ */
+ TUint8 iVoice;
+ /**
+ Phonebook entry for "data" mailbox number.
+ */
+ TUint8 iData;
+ /**
+ Phonebook entry for "fax" mailbox number.
+ */
+ TUint8 iFax;
+ /**
+ Phonebook entry for "other" mailbox number.
+ */
+ TUint8 iOther;
+ };
+
+ typedef TPckg<TMobilePhoneVoicemailIdsV3> TMobilePhoneVoicemailIdsV3Pckg;
+
+ IMPORT_C void GetMailboxNumbers(TRequestStatus& aReqStatus, TDes8& aMailBox) const;
+ IMPORT_C void NotifyMailboxNumbersChange(TRequestStatus& aReqStatus, TDes8& aMailBox) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile APN Control List Functional Unit
+ //
+ /***********************************************************************************/
+
+ enum { KMaxApnName = 100 };
+
+ class TAPNEntryV3 : public TMultimodeType
+ /**
+ Contains parameters for an Access Point Name (APN) entry contained
+ within the Access Control List EFacl file in the UICC.
+ */
+ {
+ public:
+ IMPORT_C TAPNEntryV3();
+ public:
+ /**
+ GGSN DNS name.
+ */
+ TBuf8<KMaxApnName> iApn;
+ };
+
+ typedef TPckg<TAPNEntryV3> TAPNEntryV3Pckg;
+
+ IMPORT_C void EnumerateAPNEntries(TRequestStatus& aReqStatus, TUint32 &aIndex) const;
+ IMPORT_C void GetAPNname(TRequestStatus& aReqStatus, const TUint32 aIndex, TDes8& aAPN) const;
+ IMPORT_C void AppendAPNName(TRequestStatus& aReqStatus, const TDes8& aAPN) const;
+ IMPORT_C void DeleteAPNName(TRequestStatus& aReqStatus, TUint32 aIndex) const;
+ IMPORT_C void NotifyAPNListChanged(TRequestStatus& aReqStatus) const;
+
+ enum TAPNControlListServiceStatus {
+ /**
+ The APN control list service is disabled.
+ */
+ EAPNControlListServiceDisabled,
+ /**
+ The APN control list service is enabled.
+ */
+ EAPNControlListServiceEnabled
+ };
+
+ IMPORT_C void SetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus aAPNControlListServiceStatus) const;
+ IMPORT_C void GetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const;
+ IMPORT_C void NotifyAPNControlListServiceStatusChange(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Retrieve Total Air Time Duration Functional Unit
+ //
+ /***********************************************************************************/
+ IMPORT_C TInt GetAirTimeDuration(TTimeIntervalSeconds& aTime) const;
+ IMPORT_C void NotifyAirTimeDurationChange(TRequestStatus& aReqStatus,TTimeIntervalSeconds& aTime) const;
+ /***********************************************************************************/
+ //
+ // Terminate All Calls
+ //
+ /***********************************************************************************/
+ IMPORT_C void TerminateAllCalls(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Auto Redial Functional Unit
+ //
+ /***********************************************************************************/
+ IMPORT_C void ClearBlacklist(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Mobile Personalisation Functional Unit
+ //
+ /***********************************************************************************/
+
+ /**
+ Indentifies the personalisation scheme capabilities of the UICC/ME.
+ */
+ enum TMobilePhonePersonalisationCaps
+ {
+ /**
+ UICC/ME personalisation based on network (MCC, MNC) information is possible.
+ */
+ KCapsPersonalisedNetwork=0x01,
+ /**
+ UICC/ME personalisation based on network (MCC, MNC, IMSI network code group) information is possible.
+ */
+ KCapsPersonalisedNetworkSub=0x02,
+ /**
+ UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFCNL) information is possible.
+ */
+ KCapsPersonalisedServiceProvider=0x04,
+ /**
+ UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFGID2, EFCNL) information is possible.
+ */
+ KCapsPersonalisedCorporate=0x08,
+ /**
+ UICC/ME personalisation based on (IMSI SIM/USIM code group) information is possible.
+ */
+ KCapsPersonalisedUSim=0x10
+ };
+
+ /**
+ Identifies the current personalisation schemes that are active.
+ */
+ enum TMobilePhonePersonalisationScheme
+ {
+ /**
+ The ME is personalised under the network scheme.
+ */
+ KPersonalisedNetwork=0x01,
+ /**
+ The ME is personalised under the network sub scheme.
+ */
+ KPersonalisedNetworkSub=0x02,
+ /**
+ The ME is personalised under the service provider scheme.
+ */
+ KPersonalisedServiceProvider=0x04,
+ /**
+ The ME is personalised under the corprorate scheme.
+ */
+ KPersonalisedCorporate=0x08,
+ /**
+ The ME is personalised under the SIM/USIM scheme.
+ */
+ KPersonalisedUSim=0x10
+ };
+
+ /**
+ Identifies the personalisation scheme to be set.
+ */
+ enum TMobilePhonePersonalisation
+ {
+ /**
+ Personalise the ME using the network scheme.
+ */
+ EPersonaliseNetwork,
+ /**
+ Personalise the ME using the network sub scheme.
+ */
+ EPersonaliseNetworkSub,
+ /**
+ Personalise the ME using the service provider scheme.
+ */
+ EPersonaliseServiceProvider,
+ /**
+ Personalise the ME using the corporate scheme.
+ */
+ EPersonaliseCorporate,
+ /**
+ Personalise the ME using the SIM/USIM scheme.
+ */
+ EPersonaliseUsim
+ };
+
+ IMPORT_C TInt GetPersonalisationCaps(TUint32& aCaps) const;
+ IMPORT_C void GetPersonalisationStatus(TRequestStatus& aReqStatus, TUint32& aPersSchemes) const;
+ IMPORT_C void SetPersonalisationStatus(TRequestStatus& aReqStatus, const TMobilePhonePersonalisation aPersSchemes, const TDes& aPersCode) const;
+
+ /***********************************************************************************/
+ //
+ // Etel 3rd Party v1.0 Parameter classes
+ //
+ /***********************************************************************************/
+
+ class TEtel3rdPartyMobileNetworkInfoV1 : public TMultimodeType
+ /**
+ Defines the parameters used to set-up of a call originated from an ETel 3rd Party client.
+
+ TEtel3rdPartyMobileNetworkInfoV1 was used to give an indication to the TSY of where the
+ request was originating from; i.e. if the request is from an application using the ISV
+ API or ETel API, which allowed the TSY to make a decision based on the origin. This
+ data type also provided further protection by not including any location information
+ parameters. With PlatSec being introduced in v9.0, there was no need to use this data
+ structure, as each API is policed with the adequate PlatSec capabilities. Therefore,
+ in v9.0 TEtel3rdPartyMobileNetworkInfoV1 was deprecated and removed from the ETel ISV
+ (ETel3rdParty) implementation.
+
+ TEtel3rdPartyMobileNetworkInfoV1 was only used internally by the ETel ISV API when calls
+ are made to RMobilePhone::GetCurrentNetwork or RMobilePhone::NotifyCurrentNetworkChange.
+ The TSY no longer needs to support this as ETel ISV now uses the TMobilePhoneNetworkInfoV2
+ data structure and no distinction is required for ISV Apps.
+
+ @publishedPartner
+ @deprecated 9.0 This class has been deprecated from 9.0 and should no longer be used.
+ */
+ {
+ public:
+ IMPORT_C TEtel3rdPartyMobileNetworkInfoV1();
+ public:
+ /** Mode of the network.
+ Modes: Common
+
+ @see TMobilePhoneNetworkMode */
+ TMobilePhoneNetworkMode iMode;
+ /** Status of the network
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkStatus */
+ TMobilePhoneNetworkStatus iStatus;
+ /** The band and band class of the CDMA network operator.
+
+ Modes: CDMA
+
+ @see TMobilePhoneNetworkBandInfo */
+ TMobilePhoneNetworkBandInfo iBandInfo;
+ /** The MCC of the network.
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkCountryCode */
+ TMobilePhoneNetworkCountryCode iCountryCode;
+ /** The system identity (SID) of the CDMA network or the system identity (SID) of the AMPS network.
+
+ Modes: CDMA
+
+ @see TMobilePhoneNetworkIdentity */
+ TMobilePhoneNetworkIdentity iCdmaSID;
+ /** The network identity (NID in CDMA and MNC in GSM).
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkIdentity */
+ TMobilePhoneNetworkIdentity iNetworkId;
+ /** The alpha-tag displayed when this is the serving network.
+
+ Modes: Common
+
+ @see TMobilePhoneNetworkDisplayTag */
+ TMobilePhoneNetworkDisplayTag iDisplayTag;
+ /** The short name (up to 10 characters) of the network operator.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneNetworkShortName */
+ TMobilePhoneNetworkShortName iShortName;
+ /** The long name (up to 20 characters) of the network operator.
+
+ Modes: GSM/WCDMA
+
+ @see TMobilePhoneNetworkLongName */
+ TMobilePhoneNetworkLongName iLongName;
+ /** The type of network access.
+
+ @see TMobilePhoneNetworkAccess */
+ TMobilePhoneNetworkAccess iAccess;
+ };
+
+/** A typedef'd packaged TEtel3rdPartyMobileNetworkInfoV1 for passing through a generic
+API function member.
+
+@deprecated 9.0
+*/
+ typedef TPckg<TEtel3rdPartyMobileNetworkInfoV1> TEtel3rdPartyMobileNetworkInfoV1Pckg;
+
+ /** IMS Authenticate constants,in accordance to 3GPP TS 33.102,
+ section 6.3.7, and RFC 3310*/
+ enum TMobilePhoneAuthenticate
+ {
+ /** length of autn is 128bits - 16octets*/
+ KAutnLength=16,
+ /** length of RAND is 16 octets */
+ KRandLength=16,
+ /** length of RES is 16 octets*/
+ KResLength=16,
+ /** length of IK is 16 octets*/
+ KIkLength=16,
+ /** length of CK is 16 octets*/
+ KCkLength=16,
+ /** length of Kc (GSM cipher key) is 8 octets*/
+ KKcLength=8,
+ /** length of is 112 bits - 14 octets */
+ KAutsLength=14,
+ };
+
+ /** Maximum size of the record in an EF is 0xff( 255 bytes) according to TS 102.221, section 8.2.2.2
+ */
+ enum TMobilePhoneRelease5EFMaxSize
+ {
+ KRelease5EFMaxSize=255,
+ };
+
+ /** typedefs for encapsulation of the buffers that hold authorization data stored on the ISIM/USIM*/
+ /** typedef for Internet Multimedia Public Identity*/
+ typedef TBuf8<KRelease5EFMaxSize> TIMPU;
+ /** typedef for Internet Multimedia Private Identity*/
+ typedef TBuf8<KRelease5EFMaxSize> TIMPI;
+ /** typedef for Home Network Domain Name*/
+ typedef TBuf8<KRelease5EFMaxSize> THNDN;
+
+
+ /** IMS Authenticate API*/
+ /** Class encapsulates data needed as an input/output for
+ ISIM/USIM AUTHENTICATE command
+
+ @publishedPartner
+ @released
+ */
+ class TImsAuthenticateDataV5: public TMultimodeType
+ {
+ public:
+ IMPORT_C TImsAuthenticateDataV5();
+ /** holds value of network challenge AUTN */
+ TBuf8<KAutnLength> iAUTN;
+ /** holds value of network challenge RAND */
+ TBuf8<KRandLength> iRAND;
+ /** holds result RES of AUTHENTICATE command when it's successfull*/
+ TBuf8<KResLength> iRES;
+ /** holds value of session key Integrity Key */
+ TBuf8<KIkLength> iIK;
+ /** holds value of session key Cipher Key */
+ TBuf8<KCkLength> iCK;
+ /** holds value of Authentication Token when AUTHENTICATE fails*/
+ TBuf8<KAutsLength> iAUTS;
+ };
+
+ /** packaged version of TImsAuthenticateDataV5, used when this structure has to be passeed via IPC*/
+ typedef TPckg<TImsAuthenticateDataV5> TImsAuthenticateDataV5Pckg;
+ friend class CAsyncRetrieveAuthorizationInfo;
+
+ /** API that execute ISIM/USIM AUTHENTICATE command*/
+ IMPORT_C void ImsAuthenticate (TRequestStatus& aReqStatus,TDes8& authenticateDataPckgd) const;
+
+ IMPORT_C void NotifyImsAuthorizationInfoChange(TRequestStatus& aReqStatus) const;
+
+ /**
+ Source location of IMS Authorization data.
+ */
+ enum TAuthorizationDataSource
+ {
+ /** Authorization data source is USIM. */
+ EFromUSIM,
+ /** Authorization data source is ISIM. */
+ EFromISIM
+ };
+
+ /**
+ Class encapsulates IMS authorization data stored in the ISIM or USIM
+
+ @publishedPartner
+ @released
+ */
+ class CImsAuthorizationInfoV5 : public CBase
+ {
+ public:
+ IMPORT_C ~CImsAuthorizationInfoV5();
+ IMPORT_C static CImsAuthorizationInfoV5* NewL();
+ IMPORT_C virtual void ExternalizeL(HBufC8*& aBuffer);
+ IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer);
+ IMPORT_C TUint ExtensionId() const;
+ public:
+ /**Internet Multimedia Private Identity stored on the ISIM/USIM*/
+ RMobilePhone::TIMPI iIMPI;
+ /**Internet Multimedia Public Identity(ies) stored on the ISIM/USIM*/
+ RArray<RMobilePhone::TIMPU> iIMPUArray;
+ /**Home Network Domain Name stored on the ISIM/USIM*/
+ RMobilePhone::THNDN iHomeNetworkDomainName;
+ /**indicates whether authorization data has been retrieved from the ISIM*/
+ TAuthorizationDataSource iAuthenticationDataSource;
+ protected:
+ CImsAuthorizationInfoV5();
+ /** version of the data supported*/
+ TUint iExtensionId;
+ };
+
+ /**
+ Defines the input as well as the ouput parameters used when performing the
+ (U)ICC AUTHENTICATE command.
+
+ @publishedPartner
+ @released
+ */
+ class TSmartCardAuthenticateDataV6 : public TImsAuthenticateDataV5
+ {
+ public:
+ IMPORT_C TSmartCardAuthenticateDataV6();
+
+ public:
+ TBuf8<KKcLength> iKc;
+ };
+
+ /**
+ Packaged version of TSmartCardAuthenticateDataV6, used when this
+ structure has to be passeed via IPC.
+ */
+ typedef TPckg<TSmartCardAuthenticateDataV6> TSmartCardAuthenticateDataV6Pckg;
+
+ IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, TDes8& aAuthDataPckgd) const;
+ IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, const TAID& aAID, TDes8& aAuthDataPckgd) const;
+
+private:
+ CMobilePhonePtrHolder* iMmPtrHolder;
+ RMobilePhone(const RMobilePhone& aPhone);
+
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+
+/*********************************************************/
+//
+// Phone Storage functionality (RMobilePhoneStore)
+//
+/*********************************************************/
+
+
+
+class CMobilePhoneStorePtrHolder;
+class RMobilePhoneStore : public RTelSubSessionBase
+/**
+Abstract class used to define common phone storage actions and types
+
+Clients open one of the specialised phone store classes that are derived from RMobilePhoneStore
+*/
+ {
+public:
+ friend class CAsyncRetrieveStoreList;
+
+/** Types of store.
+
+Modes: Common */
+ enum TMobilePhoneStoreType
+ {
+ /** Store type is unknown.
+
+ Modes: Common */
+ EPhoneStoreTypeUnknown,
+ /** Store contains SMS messages.
+
+ Modes: Common */
+ EShortMessageStore,
+ /** Store contains NAM entries.
+
+ Modes: CDMA */
+ ENamStore,
+ /** Store contains PhoneBook entries.
+
+ Modes: Common */
+ EPhoneBookStore,
+ /** Store contains emergency number entries.
+
+ Modes: Common */
+ EEmergencyNumberStore,
+ /** Store contains own number entries.
+
+ Modes: Common */
+ EOwnNumberStore
+ };
+
+/** Store capabilities. */
+ enum TMobilePhoneStoreCaps
+ {
+ /** The store can be accessed as a whole using the ReadAll() and StoreAll() member
+ functions. */
+ KCapsWholeStore = 0x80000000,
+ /** The store can be accessed one entry at a time using the RMobilePhoneStore::Read(),
+ RMobilePhoneStore::Write() and RMobilePhoneStore::Delete() member functions. */
+ KCapsIndividualEntry = 0x40000000,
+ /** The store can be accessed in order to read entries. */
+ KCapsReadAccess = 0x20000000,
+ /** The store can be accessed in order to write or delete entries. */
+ KCapsWriteAccess = 0x10000000,
+ /** The TSY supports deleting all the store entries at once. */
+ KCapsDeleteAll = 0x08000000,
+ /** The TSY supports notification of store events such as entries added, deleted
+ or store becoming full. */
+ KCapsNotifyEvent = 0x04000000
+ };
+
+/** The type of store information. As defined in TMobilePhoneStoreInfoV1::iExtensionId
+
+Modes: Common
+
+@see TMobilePhoneStoreInfoV1
+@see RMobilePhone::TMultimodeType */
+ enum TMobilePhoneStoreInfoExtId
+ {
+ /** The iExtensionId contents indicate that the packaged class is a RMobilePhoneStore::TMobilePhoneStoreInfoV1.
+ Modes: Common */
+ KETelMobilePhoneStoreV1=KETelExtMultimodeV1,
+ /** The iExtensionId contents indicate that the packaged class is a RMobilePhoneBookStore::TMobilePhoneBookInfoV1.
+ Modes: Common */
+ KETelMobilePhonebookStoreV1,
+ /** Reserved for SMS store specific information class.
+ Modes: Common */
+ KETelMobileSmsStoreV1,
+ /** The iExtensionId contents indicate that the packaged class is a RMobileNamStore::TMobileNamStoreInfoV1.
+ Modes: CDMA */
+ KETelMobileNamStoreV1,
+ /** The iExtensionId contents indicate that the packaged class is a RMobileONStore::TMobileONStoreInfoV1.
+ Modes: Common */
+ KETelMobileONStoreV1,
+ /** Reserved for Emergency Number store specific infoprmation class.
+ Modes: Common */
+ KETelMobileENStoreV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2.
+ Modes: Common */
+ KETelMobilePhonebookStoreV2=KETelExtMultimodeV2,
+
+ /** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2.
+ Modes: Common */
+ KETelMobilePhonebookStoreV5=KEtelExtMultimodeV5
+ };
+
+
+
+ class TMobilePhoneStoreInfoV1 : public RMobilePhone::TMultimodeType
+/** Defines information and capabilities of a phone-side store.
+@publishedPartner
+@released */
+ {
+ public:
+ IMPORT_C TMobilePhoneStoreInfoV1();
+
+ /** The type of entry in the phone-side store.
+
+ Modes: Common
+
+ @see TMobilePhoneStoreType */
+ TMobilePhoneStoreType iType;
+ /** Indicates the total number of entries that may be held in this store. */
+ TInt iTotalEntries;
+ /** Indicates the current number of entries held in this store.
+
+ Is equal to KIndexNotUsed if the TSY is unable to determine current number
+ of entries.
+
+ Modes: Common */
+ TInt iUsedEntries;
+ /** Indicates the capabilities of the store. It is the sum of caps constants defined
+ in TMobilePhoneStoreCaps and those defined for a specialised phone store.
+
+ Modes: Common */
+ TUint32 iCaps;
+ /** The name of the phone-side store. A valid list of names is given in the description
+ of each specialised store.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobileName */
+ RMobilePhone::TMobileName iName;
+ };
+
+/** A typedef'd packaged TMobilePhoneStoreInfoV1 for passing through a generic
+API member function. */
+ typedef TPckg<TMobilePhoneStoreInfoV1> TMobilePhoneStoreInfoV1Pckg;
+
+
+
+ class TMobilePhoneStoreEntryV1 : public RMobilePhone::TMultimodeType
+/** Defines common contents of an entry in a phone-side store.
+*/
+ {
+ public:
+
+ enum
+ {
+ KIndexNotUsed = -1
+ };
+
+ protected:
+ TMobilePhoneStoreEntryV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** The slot location of the entry within phone-side storage.
+
+ Modes: Common */
+ TInt iIndex;
+ };
+
+ IMPORT_C void GetInfo(TRequestStatus& aReqStatus, TDes8& aInfo) const;
+
+ IMPORT_C void Read(TRequestStatus& aReqStatus, TDes8& aEntry) const;
+ IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aEntry) const;
+
+ IMPORT_C void Delete(TRequestStatus& aReqStatus, TInt aIndex) const;
+ IMPORT_C void DeleteAll(TRequestStatus& aReqStatus) const;
+
+/** The store events. It is possible for more than one event to occur at the same
+time, therefore the events are a bitmask and should be tested as a bitmask.
+
+Modes: Common
+
+@see NotifyStoreEvent() */
+ enum TMobileStoreEvent
+ {
+ /** The store has become full. This event will trigger after the last possible
+ entry in a store has been written. */
+ KStoreFull =0x00000001,
+ /** The store was full but now has some space. This event will trigger after one
+ or more entries have been deleted from a full store. */
+ KStoreHasSpace =0x00000002,
+ /** The store is empty. This event will trigger after the last entry in a store
+ has been deleted or if all entries are deleted at once. */
+ KStoreEmpty =0x00000004,
+ /** The store has a new entry, placed in the slot indicated by the aIndex parameter. */
+ KStoreEntryAdded =0x00000008,
+ /** The store has deleted the entry that was in the slot indicated by the aIndex
+ parameter. */
+ KStoreEntryDeleted =0x00000010,
+ /** The store has changed the entry that was in the slot indicated by the aIndex
+ parameter. */
+ KStoreEntryChanged =0x00000020,
+ /** The store contents have substantially changed and the TSY is recommending that
+ the client performs a refresh by reading all the contents again. */
+ KStoreDoRefresh =0x00000040
+ };
+
+ IMPORT_C void NotifyStoreEvent(TRequestStatus& aReqStatus, TUint32& aEvent, TInt& aIndex) const;
+
+protected:
+ CMobilePhoneStorePtrHolder* iStorePtrHolder;
+
+protected:
+ RMobilePhoneStore();
+ IMPORT_C void BaseConstruct(CMobilePhoneStorePtrHolder* aPtrHolder);
+ IMPORT_C void Destruct();
+ };
+
+
+/*********************************************************/
+//
+// Call based functionality (RMobileCall)
+//
+/*********************************************************/
+
+
+
+class CMobileCallPtrHolder;
+
+class RMobileCall : public RCall
+/** Provides access to the functionality associated with a specific mobile call.
+
+RMobileCall encapsulates access to a mobile phone. The functionality of RMobileCall
+is divided into a number of functional units, for the purpose of easier documentation
+and navigation and selectable support by TSY.
+
+Note: Some RMobileCall function members must be supported by the TSY while
+others are part of optional "functional unit" and only need to be supported
+if the TSY supports that functional unit. When a functional unit is mandatory
+then the TSY should at least support the Get...Caps() member function to indicate
+the member functions that are supported for this unit.
+ */
+ {
+public:
+ IMPORT_C RMobileCall();
+ /***********************************************************************************/
+ //
+ // Mobile call parameters - used within Dial/Answer API
+ //
+ /***********************************************************************************/
+
+ // used to set iExtensionId in RCall::TCallParams
+/** The mobile call parameter extension IDs.
+
+Modes: Common */
+ enum TMobileCallParamsExtensionId
+ {
+ /** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV1. */
+ KETelMobileCallParamsV1=KETelExtMultimodeV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV1.
+
+ Modes: Common */
+ KETelMobileDataCallParamsV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV1.
+
+ Modes: GSM/WCDMA */
+ KETelMobileHscsdCallParamsV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV2.
+
+ Modes: Common */
+ KETelMobileCallParamsV2=KETelExtMultimodeV2,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV2.
+
+ Modes: Common */
+ KETelMobileDataCallParamsV2,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV2.
+
+ Modes: GSM/WCDMA */
+ KETelMobileHscsdCallParamsV2,
+ /** The iExtensionId contents indicate that the packaged class is a TEtel3rdPartyMobileCallParamsV1.
+
+ Modes: Common */
+ KETel3rdPartyCallParamsV1=KETelExt3rdPartyV1
+ };
+
+/** Caller Id restriction settings.
+
+Modes: Common
+
+@see TMobileCallParamsV1 */
+ enum TMobileCallIdRestriction
+ {
+ /** The default setting should be used if the user has not explicitly requested
+ their identity to be restricted/allowed. */
+ EIdRestrictDefault,
+ /** The user has explicitly requested their identity to be sent for this call. */
+ ESendMyId,
+ /** The user has explicitly requested their identity not to be sent for this call. */
+ EDontSendMyId
+ };
+
+ class TMobileCallCugV1 : public RMobilePhone::TMultimodeType
+/** This class is used to set up a CUG (Closed User Group) call.
+
+TMobileCallCugV1() is valid in GSM/WCDMA mode only. The client application
+should set the CUG settings for the call depending on the user's choice. If
+the user has not explicitly requested a CUG call then this parameter should
+indicate that explicit CUG invoke is false. The TSY ignores this parameter
+if in CDMA mode.
+*/
+ {
+ public:
+ IMPORT_C TMobileCallCugV1();
+ public:
+ /** A boolean indicating whether Closed User Group is being explicitly invoked by
+ the client or not. If this parameter is false, the other entries in this structure
+ will be ignored. */
+ TBool iExplicitInvoke;
+ /** The Closed User Group index that the user has specified for this call (if no
+ index has been specified then this element will equal -1). */
+ TInt iCugIndex;
+ /** A boolean indicating whether the user has suppressed their Outgoing Access option
+ or not. */
+ TBool iSuppressOA;
+ /** A boolean indicating whether the user has suppressed the use of their preferential
+ Closed User Group or not. */
+ TBool iSuppressPrefCug;
+ };
+
+/** Multicall Operation set-up.
+
+Mode: WCDMA */
+ enum TMobileCallMulticallBearerMode
+ {
+ /** Multicall is not supported. */
+ EMulticallNotSupported,
+ /** MS will accept incoming call and establish a connection using an existing bearer. */
+ EMulticallShareBearer,
+ /** MS will accept incoming call and establish a connection by creating a new bearer. */
+ EMulticallNewBearer
+ };
+
+
+
+ class TMobileCallParamsV1 : public RCall::TCallParams
+/** Defines the parameters used for set-up of a call of any type.
+*/
+ {
+ public:
+ IMPORT_C TMobileCallParamsV1();
+ public:
+ /** Call Id restriction setting to be used for this call.
+
+ @see TMobileCallIdRestriction */
+ TMobileCallIdRestriction iIdRestrict;
+ /** Closed User Group setting to be used for this call.
+
+ @see TMobileCallCugV1 */
+ TMobileCallCugV1 iCug;
+ /** Specifies whether this call attempt is user initiated (EFalse) or a client initiated
+ redial (ETrue). */
+ TBool iAutoRedial;
+ };
+
+/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API function
+member. */
+ typedef TPckg<TMobileCallParamsV1> TMobileCallParamsV1Pckg;
+
+
+
+ class TMobileCallParamsV2 : public TMobileCallParamsV1
+/** Defines the parameters used for set-up of a call of any type
+for version v2.0 of the API.
+A new parameter (iBearerMode) is required to support Multicall.
+@publishedPartner
+@released
+*/
+ {
+ public:
+ IMPORT_C TMobileCallParamsV2();
+ public:
+ /** The bearer mode. */
+ TMobileCallMulticallBearerMode iBearerMode;
+ };
+
+/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileCallParamsV2> TMobileCallParamsV2Pckg;
+
+ /***********************************************************************************/
+ //
+ // Mobile Call Data Functional Unit
+ //
+ /***********************************************************************************/
+
+/** In GSM mode, maps to list of supported speeds returned in response to AT+CBST=?.
+In CDMA mode, maps to data rates supported by supported service options.
+
+@see TMobileCallDataCapsV1 */
+ enum TMobileCallDataSpeedCaps
+ {
+ /** Call can support autobauding. */
+ KCapsSpeedAutobauding = 0x00000001,
+ /** Call can support a speed of 2400bps. */
+ KCapsSpeed2400 = 0x00000002,
+ /** Call can support a speed of 4800bps. */
+ KCapsSpeed4800 = 0x00000004,
+ /** Call can support a speed of 9600bps. */
+ KCapsSpeed9600 = 0x00000008,
+ /** Call can support a speed of 14400bps. */
+ KCapsSpeed14400 = 0x00000010,
+ /** Call can support a speed of 19200bps. */
+ KCapsSpeed19200 = 0x00000020,
+ /** Call can support a speed of 28800bps. */
+ KCapsSpeed28800 = 0x00000040,
+ /** Call can support a speed of 32000bps. */
+ KCapsSpeed32000 = 0x00000080,
+ /** Call can support a speed of 33600bps. */
+ KCapsSpeed33600 = 0x00000100,
+ /** Call can support a speed of 38400bps. */
+ KCapsSpeed38400 = 0x00000200,
+ /** Call can support a speed of 43200bps. */
+ KCapsSpeed43200 = 0x00000400,
+ /** Call can support a speed of 48000bps. */
+ KCapsSpeed48000 = 0x00000800,
+ /** Call can support a speed of 56000bps. */
+ KCapsSpeed56000 = 0x00001000,
+ /** Call can support a speed of 57600bps. */
+ KCapsSpeed57600 = 0x00002000,
+ /** Call can support a speed of 64000bps. */
+ KCapsSpeed64000 = 0x00004000,
+ /** Call can support extended data speed capabilities. This flag is reserved for
+ future expansion of API and should always be set to zero. */
+ KCapsSpeedExtended = 0x80000000
+ };
+
+/** List of supported values of the <speed> parameter returned in response to AT+CBST=?
+
+Not applicable to CDMA mode
+
+@see TMobileDataCallParamsV1 */
+ enum TMobileCallDataProtocolCaps
+ {
+ /** Call can support V.22bis standard
+
+ Modes: COMMON */
+ KCapsProtocolV22bis = 0x00000001,
+ /** Call can support V.32 standard.
+
+ Modes: COMMON */
+ KCapsProtocolV32 = 0x00000002,
+ /** Call can support V.34 standard.
+
+ Modes: COMMON */
+ KCapsProtocolV34 = 0x00000004,
+ /** Call can support V.110 standard.
+
+ Modes: GSM/WCDMA */
+ KCapsProtocolV110 = 0x00000008,
+ /** Call can support V.120 standard.
+
+ Modes: GSM/WCDMA */
+ KCapsProtocolV120 = 0x00000010,
+ /** Call can support bit transparent service.
+
+ Modes: GSM/WCDMA */
+ KCapsProtocolBitTransparent = 0x00000020,
+ /** Call can support X31 flag stuffing standard.
+
+ Modes: GSM/WCDMA */
+ KCapsProtocolX31FlagStuffing = 0x00000040,
+ /** Call can support both PIAF standards (32000bps and 64000bps).
+
+ Modes: GSM/WCDMA */
+ KCapsProtocolPIAFS = 0x00000080,
+ /** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN
+ with voice fallback.
+
+ Modes: WCDMA */
+ KCapsPstnMultimediaVoiceFallback = 0x00000100,
+ /** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN
+ without voice fallback
+
+ Modes: WCDMA */
+ KCapsPstnMultimedia = 0x00000200,
+ /** Call can support request for Multimedia protocol (3G-324M) over a call to ISDN
+ (voice fallback not possible).
+
+ Modes: WCDMA */
+ KCapsIsdnMultimedia = 0x00000400,
+ /** Call can support extended data carrier capabilities. This flag is reserved for
+ future expansion and should always be set to zero for v1.0 of this API.
+
+ Modes: COMMON */
+ KCapsProtocolExtended = 0x80000000
+ };
+
+/** In GSM mode, maps to list of supported <name> returned in response to AT+CBST=?
+In CDMA mode, maps to supported service options.
+
+Modes: COMMON
+
+@see TMobileCallDataCapsV1 */
+ enum TMobileCallDataServiceCaps
+ {
+ KCapsDataCircuitAsynchronous = 0x00000001,
+ KCapsDataCircuitAsynchronousRDI = 0x00000002,
+ KCapsDataCircuitSynchronous = 0x00000004,
+ KCapsDataCircuitSynchronousRDI = 0x00000008,
+ /** Call can support "PAD Access (asynchronous) (UDI)".
+
+ Modes: GSM/WCDMA */
+ KCapsPADAsyncUDI = 0x00000010,
+ /** Call can support "PAD Access (asynchronous) (RDI)"
+
+ Modes: GSM/WCDMA */
+ KCapsPADAsyncRDI = 0x00000020,
+ /** Call can support "Packet Access (synchronous) (UDI)"
+
+ Modes: GSM/WCDMA */
+ KCapsPacketAccessSyncUDI = 0x00000040,
+ /** Call can support "Packet Access (synchronous) (RDI)".
+
+ Modes: GSM/WCDMA */
+ KCapsPacketAccessSyncRDI = 0x00000080,
+ /** Call can support extended data service capabilities. This flag is reserved for
+ future expansion of this API and should always be set to zero for v1.0 of
+ this API.
+
+ Modes: COMMON */
+ KCapsServiceExtended = 0x80000000
+ };
+
+/** Maps to list of supported <ce> returned in response to AT+CBST=?
+
+Not applicable to CDMA mode.
+
+@see TMobileCallDataCapsV1 */
+ enum TMobileCallDataQoSCaps
+ {
+ /** Call can support a request for "transparent only" connection. */
+ KCapsTransparent = 0x00000001,
+ /** Call can support a request for "non-transparent only" connection. */
+ KCapsNonTransparent = 0x00000002,
+ /** Call can support a request for "transparent preferred" connection. */
+ KCapsTransparentPreferred = 0x00000004,
+ /** Call can support a request for "non-transparent preferred" connection. */
+ KCapsNonTransparentPreferred = 0x00000008
+ };
+
+/** Supported Air Interface User Rates. */
+ enum TMobileCallAiurCodingCaps
+ {
+ /** Air interface user rate of 4.8k is supported. */
+ KCapsAiurCoding48 = 0x01,
+ /** Air interface user rate of 9.6k is supported. */
+ KCapsAiurCoding96 = 0x04,
+ /** Air interface user rate of 14.4k is supported. */
+ KCapsAiurCoding144 = 0x08
+ };
+
+/** HSCSD coding capabilities.
+
+Modes: GSM/WCDMA */
+ enum TMobileCallTchCodingsCaps
+ {
+ /** Call supports HSCSD coding on 4.8K full rate data traffic channel. */
+ KCapsTchCoding48 = 0x00000001,
+ /** Call supports HSCSD coding on 9.6K full rate data traffic channel. */
+ KCapsTchCoding96 = 0x00000004,
+ /** Call supports HSCSD coding on 14.4K full rate data traffic channel. */
+ KCapsTchCoding144 = 0x00000008,
+ /** Call supports HSCSD coding on 28.8K full rate data traffic channel (only possible
+ when 14.4K is supported). */
+ KCapsTchCoding288 = 0x00000010,
+ /** Call supports HSCSD coding on 32.0K full rate data traffic channel (only possible
+ in a two-timeslot configuration). */
+ KCapsTchCoding320 = 0x00000020,
+ /** Call supports HSCSD coding on 43.2K full rate data traffic channel (only possible
+ when 14.4K is supported). */
+ KCapsTchCoding432 = 0x00000040
+ };
+
+/** The call asymmetry capabilities.
+
+Modes: GSM/WCDMA
+
+@see TMobileCallDataCapsV1 */
+ enum TMobileCallAsymmetryCaps
+ {
+ /** Call supports "No Preference" option for asymmetry bias of a Non-Transparent
+ ECSD call. */
+ KCapsAsymmetryNoPreference= 0x00000001,
+ /** Call supports "Downlink bias" option for asymmetry bias of a Non-Transparent
+ ECSD call.
+
+ This means 8-PSK modulation is preferred downlink and GMSK modulation uplink. */
+ KCapsAsymmetryDownlink = 0x00000002,
+ /** Call supports "Uplink bias" option for asymmetry bias of a Non-Transparent ECSD
+ call.
+
+ This means 8-PSK modulation is preferred uplink and GMSK modulation downlink. */
+ KCapsAsymmetryUplink = 0x00000004
+ };
+
+/** The supported Call RLP versions.
+
+Modes: GSM/WCDMA
+
+@see TMobileCallDataCapsV1 */
+ enum TMobileCallRLPVersionCaps
+ {
+ /** Call supports the single link, basic RLP version 0. */
+ KCapsRLPSingleLinkVersion0 = 0x00000001,
+ /** Call supports the single link, extended RLP version 1. */
+ KCapsRLPSingleLinkVersion1 = 0x00000002,
+ /** Call supports the multi link, RLP version 2. */
+ KCapsRLPMultiLinkVersion2 = 0x00000004
+ };
+
+/** The supported V42bis options.
+
+Modes: GSM/WCDMA
+
+@see TMobileCallDataCapsV1 */
+ enum TMobileCallV42bisCaps
+ {
+ /** Call supports V42bis compression in initiator-responder direction. */
+ KCapsV42bisTxDirection = 0x00000001,
+ /** Call supports V42bis compression in responder-initiator direction. */
+ KCapsV42bisRxDirection = 0x00000002,
+ /** Call supports V42bis compression in both directions. */
+ KCapsV42bisBothDirections = 0x00000004
+ };
+
+
+
+ class TMobileCallDataCapsV1 : public RMobilePhone::TMultimodeType
+ /** Defines the capabilities of a circuit switched data call.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileCallDataCapsV1();
+ public:
+ /** Data speed capabilities - a bit wise sum of the caps defined in TMobileCallDataSpeedCaps. */
+ TUint32 iSpeedCaps;
+ /** Data protocol capabilities - a bit wise sum of the caps defined in TMobileCallDataProtocolCaps. */
+ TUint32 iProtocolCaps;
+ /** Data service capabilities - a bit wise sum of the caps defined in TMobileCallDataServiceCaps. */
+ TUint32 iServiceCaps;
+ /** Data QoS capabilities - a bit wise sum of the caps defined in TMobileCallDataQoSCaps.
+
+ Note: Only available in GSM/WCDMA mode. */
+ TUint32 iQoSCaps;
+ /** A boolean indicating whether or not the MS supports HSCSD for this call. If
+ this attribute equals EFalse all the following attributes are invalid.
+
+ Note: Only available in GSM/WCDMA mode. */
+ TBool iHscsdSupport;
+ /** For HSCSD: The multi-slot class supported. */
+ TInt iMClass;
+ /** For HSCSD: The maximum supported number of time-slots in the receive (down-link)
+ direction. */
+ TInt iMaxRxTimeSlots;
+ /** For HSCSD: The maximum supported number of time-slots in the transmit (up-link)
+ direction. */
+ TInt iMaxTxTimeSlots;
+ /** For HSCSD: The maximum supported total number of receive and transmit time-slots
+ that can be used at same time. */
+ TInt iTotalRxTxTimeSlots;
+ /** For HSCSD: A bit-wise sum of the supported air interface channel codings defined
+ in TMobileCallAiurCodingCaps. */
+ TUint32 iCodingCaps;
+ /** For HSCSD: A bit-wise sum of the supported asymmetry bias defined in TMobileCallAsymmetryCaps. */
+ TUint32 iAsymmetryCaps;
+ /** For HSCSD: A boolean indicating whether or not the MS supports automatic user
+ initiated service level upgrading. */
+ TBool iUserInitUpgrade;
+ /** For HSCSD and CSD: A bit-wise sum of the supported Radio Link Protocol versions
+ defined in TMobileCallRLPVersionCaps. */
+ TUint32 iRLPVersionCaps;
+ /** For HSCSD and CSD: A bit-wise sum of the supported V42bis compression capabilities
+ defined in TMobileCallV42bisCaps . */
+ TUint32 iV42bisCaps;
+ };
+
+/** A typedef'd packaged TMobileCallDataCapsV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileCallDataCapsV1> TMobileCallDataCapsV1Pckg;
+
+ IMPORT_C TInt GetMobileDataCallCaps(TDes8& aCaps) const;
+ IMPORT_C void NotifyMobileDataCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
+
+/** The call setup requested data speed.
+
+@see TMobileDataCallParamsV1 */
+ enum TMobileCallDataSpeed
+ {
+ /** Call set-up will request speed depending on data carrier chosen. */
+ ESpeedUnspecified,
+ /** Call set-up will request autobauding. */
+ ESpeedAutobauding,
+ /** Call set-up will request 2400bps. */
+ ESpeed2400,
+ /** Call set-up will request 4800bps. */
+ ESpeed4800,
+ /** Call set-up will request 9600bps. */
+ ESpeed9600,
+ /** Call set-up will request 14400bps. */
+ ESpeed14400,
+ /** Call set-up will request 19200bps. */
+ ESpeed19200,
+ /** Call set-up will request 28800bps. */
+ ESpeed28800,
+ /** Call set-up will request 32000bps. */
+ ESpeed32000,
+ /** Call set-up will request 33600bps. */
+ ESpeed33600,
+ /** Call set-up will request 38400bps. */
+ ESpeed38400,
+ /** Call set-up will request 43200bps. */
+ ESpeed43200,
+ /** Call set-up will request 48000bps. */
+ ESpeed48000,
+ /** Call set-up will request 56000bps. */
+ ESpeed56000,
+ /** Call set-up will request 57600bps. */
+ ESpeed57600,
+ /** Call set-up will request 64000bps. */
+ ESpeed64000
+ };
+
+/** The call set-up requested data protocol.
+
+Modes: GSM/WCDMA */
+ enum TMobileCallDataProtocol
+ {
+ /** Call set-up will request carrier depending on data speed chosen. */
+ EProtocolUnspecified,
+ /** Call set-up will request the V.22bis standard. */
+ EProtocolV22bis,
+ /** Call set-up will request the V.32 standard. */
+ EProtocolV32,
+ /** Call set-up will request the V.34 standard. */
+ EProtocolV34,
+ /** Call set-up will request the V.110 standard. */
+ EProtocolV110,
+ /** Call set-up will request the V.120 standard. */
+ EProtocolV120,
+ /** Call set-up will request the X31FlagStuffing standard. */
+ EProtocolX31FlagStuffing,
+ /** Call set-up will request the PIAFS standard. */
+ EProtocolPIAFS,
+ /** Call set-up will request the bit transparent service. */
+ EProtocolBitTransparent,
+ /** Call set-up will request a PSTN multimedia call with voice fallback if multimedia
+ fails.
+
+ WCDMA mode only. */
+ EProtocolPstnMultimediaVoiceFallback,
+ /** Call set-up will request a PSTN multimedia call.
+
+ WCDMA mode only. */
+ EProtocolPstnMultimedia,
+ /** Call set-up will request a ISDN multimedia call.
+
+ WCDMA mode only. */
+ EProtocolIsdnMultimedia
+ };
+
+/** The call setup requested data services.
+
+Modes: Common
+
+@see TMobileDataCallParamsV1 */
+ enum TMobileCallDataService
+ {
+ /** Call set-up will request its default service type.
+
+ Modes: Common */
+ EServiceUnspecified,
+ /** Call set-up will request:
+
+ GSM mode - Data circuit asynchronous (UDI or 3.1 KHz, ex PLMN) service
+
+ In CDMA mode - Async Data service
+
+ Modes: Common */
+ EServiceDataCircuitAsync,
+ /** Call set-up will request Data circuit asynchronous (RDI) service.
+
+ Modes: GSM/WCDMA */
+ EServiceDataCircuitAsyncRdi,
+ /** Call set-up will request Data circuit synchronous (UDI or 3.1 KHz, ex PLMN)
+ service.
+
+ Modes: GSM/WCDMA */
+ EServiceDataCircuitSync,
+ /** Call set-up will request Data circuit synchronous (RDI) service.
+
+ Modes: GSM/WCDMA */
+ EServiceDataCircuitSyncRdi,
+ /** Call set-up will request PAD asynchronous (UDI) service.
+
+ Modes: GSM/WCDMA */
+ EServicePADAsyncUDI,
+ /** Call set-up will request PAD asynchronous (RDI) service.
+
+ Modes: GSM/WCDMA */
+ EServicePADAsyncRDI,
+ /** Call set-up will request Packet Access synchronous (UDI) service.
+
+ Modes: GSM/WCDMA */
+ EServicePacketAccessSyncUDI,
+ /** Call set-up will request Packet Access synchronous (RDI) service.
+
+ Modes: GSM/WCDMA */
+ EServicePacketAccessSyncRDI
+ };
+
+/** The call set-up requested quality of service (QoS).
+
+Modes: GSM/WCDMA
+
+@see TMobileDataCallParamsV1 */
+ enum TMobileCallDataQoS
+ {
+ /** Call set-up will request its default connection. */
+ EQoSUnspecified,
+ /** Call set-up will request a transparent connection. */
+ EQoSTransparent,
+ /** Call set-up will request a non-transparent connection. */
+ EQoSNonTransparent,
+ /** Call set-up will prefer a transparent connection. */
+ EQosTransparentPreferred,
+ /** Call set-up will prefer a non-transparent connection. */
+ EQosNonTransparentPreferred
+ };
+
+/** The call set-up requested RLP version.
+
+@see TMobileDataCallParamsV1 */
+ enum TMobileCallDataRLPVersion
+ {
+ /** Call set-up will request no RLP version. */
+ ERLPNotRequested,
+ /** Call set-up will request single link basic RLP (version 0). */
+ ERLPSingleLinkVersion0,
+ /** Call set-up will request single link extended RLP (version 1). */
+ ERLPSingleLinkVersion1,
+ /** Call set-up will prefer multi link RLP (version 2). */
+ ERLPMultiLinkVersion2
+ };
+
+/** The V.42bis parameters used in the call set-up of a V.42bis data call.
+
+@see TMobileDataCallParamsV1 */
+ enum TMobileCallDataV42bis
+ {
+ /** Call set-up will not request V.42bis compression. */
+ EV42bisNeitherDirection,
+ /** Call set-up will request V.42bis compression in initiator-responder direction
+ only. */
+ EV42bisTxDirection,
+ /** Call set-up will request V.42bis compression in responder-initiator direction
+ only. */
+ EV42bisRxDirection,
+ /** Call set-up will request V.42bis compression in both directions. */
+ EV42bisBothDirections
+ };
+
+
+
+
+ class TMobileDataCallParamsV1 : public TMobileCallParamsV1
+/** Defines the parameters used for setup of a circuit switched data call.
+*/
+ {
+ public:
+ IMPORT_C TMobileDataCallParamsV1();
+ public:
+ /** The type of data service.
+
+ @see TMobileCallDataService */
+ TMobileCallDataService iService;
+ /** The data transfer rate.
+
+ @see TMobileCallDataSpeed */
+ TMobileCallDataSpeed iSpeed;
+ /** The ITU-T standard modulation protocol or higher application protocol. */
+ TMobileCallDataProtocol iProtocol;
+ /** The quality of data service.
+
+ @see TMobileCallDataQoS */
+ TMobileCallDataQoS iQoS;
+ /** The version of Radio Link Protocol.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileCallDataRLPVersion */
+ TMobileCallDataRLPVersion iRLPVersion;
+ /** The IWF to MS windows size.
+
+ Modes: GSM/WCDMA */
+ TInt iModemToMSWindowSize;
+ /** The MS window to IWF size.
+
+ Modes: GSM/WCDMA */
+ TInt iMSToModemWindowSize;
+ /** The acknowledgement timer.
+
+ Modes: GSM/WCDMA */
+ TInt iAckTimer;
+ /** The number of retransmission attempts.
+
+ Modes: GSM/WCDMA */
+ TInt iRetransmissionAttempts;
+ /** The resequencing period in integer format.
+
+ Modes: GSM/WCDMA */
+ TInt iResequencingPeriod;
+ /** The V42bis compression request parameter.
+
+ @see TMobileCallDataV42bis */
+ TMobileCallDataV42bis iV42bisReq;
+ /** The number of codewords in the algorithm. */
+ TInt iV42bisCodewordsNum;
+ /** The maximum encodable data string length. */
+ TInt iV42bisMaxStringLength;
+ TBool iUseEdge; // True for ECSD
+ };
+
+/** A typedef'd packaged TMobileDataCallParamsV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileDataCallParamsV1> TMobileDataCallParamsV1Pckg;
+
+
+
+
+ class TMobileDataCallParamsV2 : public TMobileDataCallParamsV1
+/** Defines the parameters used for setup of a circuit switched data call for version
+v2.0 of the API.
+*/
+ {
+ public:
+ IMPORT_C TMobileDataCallParamsV2();
+ public:
+ /** The bearer mode. */
+ TMobileCallMulticallBearerMode iBearerMode;
+ };
+
+/** A typedef'd packaged TMobileDataCallParamsV2 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileDataCallParamsV2> TMobileDataCallParamsV2Pckg;
+
+/** The Air interface user rate.
+
+Modes: GSM/WCDMA. */
+ enum TMobileCallAiur
+ {
+ /** Air interface user rate is not set. */
+ EAiurBpsUnspecified,
+ /** Air interface user rate of 9.6Kbps. */
+ EAiurBps9600,
+ /** Air interface user rate of 14.4Kbps. */
+ EAiurBps14400,
+ /** Air interface user rate of 19.2Kbps. */
+ EAiurBps19200,
+ /** Air interface user rate of 28.8Kbps. */
+ EAiurBps28800,
+ /** Air interface user rate of 38.4Kbps. */
+ EAiurBps38400,
+ /** Air interface user rate of 43.2Kbps. */
+ EAiurBps43200,
+ /** Air interface user rate of 57.6Kbps. */
+ EAiurBps57600
+ };
+
+/** Call Asymmetry preferences.
+
+Modes: GSM/WCDMA
+
+@see TMobileHscsdCallParamsV1 */
+ enum TMobileCallAsymmetry
+ {
+ /** There is no preference for Asymmetry Bias. */
+ EAsymmetryNoPreference,
+ /** Downlink Bias is preferred. */
+ EAsymmetryDownlink,
+ /** Uplink Bias is preferred. */
+ EAsymmetryUplink
+ };
+
+/** The call channel coding used.
+
+Modes: GSM/WCDMA */
+ enum TMobileCallTchCoding
+ {
+ /** Channel coding is unspecified. */
+ ETchCodingUnspecified,
+ /** 4.8K full rate data traffic channel is used. */
+ ETchCoding48,
+ /** 9.6K full rate data traffic channel is used. */
+ ETchCoding96,
+ /** 14.4K full rate data traffic channel is used. */
+ ETchCoding144,
+ /** 28.8K full rate data traffic channel is used. */
+ ETchCoding288,
+ /** 32.0K full rate data traffic channel is used. */
+ ETchCoding320,
+ /** 43.2K full rate data traffic channel is used. */
+ ETchCoding432
+ };
+
+
+
+ class TMobileDataRLPRangesV1 : public RMobilePhone::TMultimodeType
+/** Defines the parameters for minimum and maximum RLP parameter ranges.
+
+Modes: GSM/WCDMA
+
+*/
+ {
+ public:
+ IMPORT_C TMobileDataRLPRangesV1();
+ public:
+ /** Maximum modem to MS window size value. */
+ TInt iIWSMax;
+ /** Minimum modem to MS window size value. */
+ TInt iIWSMin;
+ /** Maximum MS to modem window size value. */
+ TInt iMWSMax;
+ /** Minimum MS to modem window size value. */
+ TInt iMWSMin;
+ /** Maximum acknowledgement timer value. */
+ TInt iT1Max;
+ /** Minimum acknowledgement timer value. */
+ TInt iT1Min;
+ /** Maximum retransmission attempts value. */
+ TInt iN2Max;
+ /** Minimum retransmission attempts value. */
+ TInt iN2Min;
+ /** Maximum resequencing period value. */
+ TInt iT4Max;
+ /** Minimum resequencing period value. */
+ TInt iT4Min;
+ };
+
+/** A typedef'd packaged TMobileDataRLPRangesV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileDataRLPRangesV1> TMobileDataRLPRangesV1Pckg;
+
+ IMPORT_C void GetMobileDataCallRLPRange(TRequestStatus& aReqStatus, TInt aRLPVersion, TDes8& aRLPRange) const;
+
+ class TMobileHscsdCallParamsV1 : public TMobileDataCallParamsV1
+/** The High Speed Circuit Switched Data parameters.
+*/
+ {
+ public:
+ IMPORT_C TMobileHscsdCallParamsV1();
+ public:
+ /** The wanted Air Interface Rate for the HSCSD call being set-up.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileCallAiur */
+ TMobileCallAiur iWantedAiur;
+ /** The wanted number of receive timeslots for the HSCSD call being set-up.
+
+ Modes: GSM/WCDMA */
+ TInt iWantedRxTimeSlots;
+ TInt iMaxTimeSlots;
+ /** Bit-wise sum of acceptable air interface channel codings TMobileCallAiurCodingCaps
+ for the HSCSD call being set-up.
+
+ Modes: GSM/WCDMA */
+ TUint iCodings;
+ /** The wanted asymmetry bias for the HSCSD call being set-up.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileCallAsymmetry */
+ TMobileCallAsymmetry iAsymmetry;
+ /** A boolean indicating whether or not automatic user initiated service level upgrading
+ is active for the HSCSD call being set-up. ETrue means enabled, EFalse means
+ disabled.
+
+ Modes: GSM/WCDMA */
+ TBool iUserInitUpgrade;
+ };
+
+/** A typedef'd packaged TMobileHscsdCallParamsV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileHscsdCallParamsV1> TMobileHscsdCallParamsV1Pckg;
+
+ class TMobileHscsdCallParamsV2 : public TMobileHscsdCallParamsV1
+/** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v2.0
+of the API.
+
+*/
+ {
+ public:
+ IMPORT_C TMobileHscsdCallParamsV2();
+ public:
+ /** The bearer mode. */
+ TMobileCallMulticallBearerMode iBearerMode;
+ };
+
+/** A typedef'd packaged TMobileHscsdCallParamsV2 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileHscsdCallParamsV2> TMobileHscsdCallParamsV2Pckg;
+
+ IMPORT_C void SetDynamicHscsdParams(TRequestStatus& aReqStatus, TMobileCallAiur aAiur, TInt aRxTimeslots) const;
+
+ class TMobileCallHscsdInfoV1 : public RMobilePhone::TMultimodeType
+/** The HSCSD settings.
+
+Modes: GSM/WCDMA
+
+*/
+ {
+ public:
+ IMPORT_C TMobileCallHscsdInfoV1();
+ public:
+ /** Current AIUR for the HSCSD call.
+
+ @see TMobileCallAiur */
+ TMobileCallAiur iAiur;
+ /** Current number of receive timeslots for the HSCSD call. */
+ TInt iRxTimeSlots;
+ /** Current number of transmit time slots for the HSCSD call. */
+ TInt iTxTimeSlots;
+ /** Current channel coding for the HSCSD call. */
+ TMobileCallTchCoding iCodings;
+ };
+
+/** A typedef'd packaged TMobileCallHscsdInfoV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileCallHscsdInfoV1> TMobileCallHscsdInfoV1Pckg;
+
+ IMPORT_C TInt GetCurrentHscsdInfo(TDes8& aHSCSDInfo) const;
+ IMPORT_C void NotifyHscsdInfoChange(TRequestStatus& aReqStatus, TDes8& aHSCSDInfo) const;
+
+ /***********************************************************************************/
+ //
+ // Multimedia Calls
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void AnswerMultimediaCallAsVoice(TRequestStatus& aReqStatus, const TDesC8& aCallParams, TName& aCallName) const;
+ IMPORT_C void NotifyVoiceFallback(TRequestStatus& aReqStatus, TName& aCallName) const;
+
+ //
+ // Mobile Alternating Call Functional Unit
+ //
+
+ IMPORT_C void SwitchAlternatingCall(TRequestStatus& aReqStatus) const;
+ IMPORT_C void NotifyAlternatingCallSwitch(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // MobileCallControl functional unit
+ //
+ /***********************************************************************************/
+
+/** Mobile call control capabilites.
+
+Modes: Common */
+ enum TMobileCallControlCaps
+ {
+ //KCapsData=0x00000001, // taken from etel.h
+ //KCapsFax=0x00000002,
+ //KCapsVoice=0x00000004,
+ //KCapsDial=0x00000008,
+ //KCapsConnect=0x00000010,
+ //KCapsHangUp=0x00000020,
+ //KCapsAnswer=0x00000040,
+ //KCapsLoanDataPort=0x00000080,
+ //KCapsRecoverDataPort=0x00000100
+ /** Indicates that this call can be put on hold. This implies that the call is currently
+ active and that there is no other held call. */
+ KCapsHold = 0x00000200,
+ /** Indicates that this call can be resumed. This implies that the call is currently
+ on hold and that there is no other active call.
+
+ Modes: Common */
+ KCapsResume = 0x00000400,
+ /** Indicates that this call's state can be swapped to the opposite state. This
+ implies that this call is either active or held. There may be another call
+ in the opposite state and if this is the case then both calls will be simultaneously
+ swapped to their opposite state.
+
+ Modes: Common */
+ KCapsSwap = 0x00000800,
+ /** Indicates that this incoming call can be deflected to another destination.
+
+ Modes: GSM/WCDMA */
+ KCapsDeflect = 0x00001000,
+ /** Indicates that this call can be transferred to the remote party of another call.
+ For this capability to be set there must be one active call and one held or
+ dialing call.
+
+ Modes: GSM/WCDMA */
+ KCapsTransfer = 0x00002000,
+ /** Indicates that this call can be joined either to another single call to form
+ a conference call or to an existing conference call.
+
+ Modes: Common */
+ KCapsJoin = 0x00004000,
+ /** Indicates that this call (within a conference call) can go into One to One mode.
+ This action would put the rest of the conference call on hold.
+
+ Modes: GSM/WCDMA */
+ KCapsOneToOne = 0x00008000,
+ /** Indicates that the user can activate a CCBS request on this failed call set-up.
+
+ Modes: GSM/WCDMA */
+ KCapsActivateCCBS = 0x00010000,
+ /** Indicates that this call is part of an alternating call and the client can call
+ SwitchAlternatingCall() on this call in order to switch it to its other mode.
+
+ Modes: GSM/WCDMA */
+ KCapsSwitchAlternatingCall = 0x00020000,
+ /** Indicates that this call can use/create a new bearer. This means that multiple
+ calls (multicall) can be active at the same time using no more that 7 bearers
+ simultaneously. The other option is to swap with an active call, therefore
+ it becomes held and shares the same bearer.
+
+ Modes: WCDMA */
+ KCapsMulticall = 0x00040000
+ };
+
+
+/** Mobile call events capabilities.
+
+Modes: Common */
+ enum TMobileCallEventCaps
+ {
+ /** Indicates that local hold notifications are supported.
+
+ Modes: Common */
+ KCapsLocalHold = 0x00000001,
+ /** Indicates that local resume notifications are supported.
+
+ Modes: Common */
+ KCapsLocalResume = 0x00000002,
+ /** Indicates that local deflect transfer notifications are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsLocalDeflectCall = 0x00000004,
+ /** Indicates that local explicit transfer notifications are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsLocalTransfer = 0x00000008,
+ /** Indicates that remote hold notifications are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsRemoteHold = 0x00000010,
+ /** Indicates that remote resume notifications are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsRemoteResume = 0x00000020,
+ /** Indicates that remote termination notifications are supported.
+
+ Modes: Common */
+ KCapsRemoteTerminate = 0x00000040,
+ /** Indicates that remote conference invocation notifications are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsRemoteConferenceCreate = 0x00000080
+ };
+
+
+
+ class TMobileCallCapsV1 : public RMobilePhone::TMultimodeType
+/** Defines the dynamic capabilities of a mobile call.
+*/
+ {
+ public:
+ IMPORT_C TMobileCallCapsV1();
+ public:
+ /** Call control capability information - a bit wise sum of TMobileCallControlCaps
+ constants */
+ TUint32 iCallControlCaps;
+ /** Call event capability information - a bit wise sum of TMobileCallEventCaps constants. */
+ TUint32 iCallEventCaps;
+ };
+
+/** A typedef'd packaged TMobileCallCapsV1 for passing through a generic API function
+member. */
+ typedef TPckg<TMobileCallCapsV1> TMobileCallCapsV1Pckg;
+
+ IMPORT_C TInt GetMobileCallCaps(TDes8& aCaps) const;
+ IMPORT_C void NotifyMobileCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
+
+ IMPORT_C void Hold(TRequestStatus& aReqStatus) const;
+ IMPORT_C void Resume(TRequestStatus& aReqStatus) const;
+ IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
+ IMPORT_C void DialISV(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber);
+ IMPORT_C void AnswerIncomingCallISV(TRequestStatus& aStatus,const TDesC8& aCallParams);
+
+/** The type of call deflection requested.
+
+@see Deflect() */
+ enum TMobileCallDeflect
+ {
+ /** Destination is not specified. */
+ EDeflectUnspecified,
+ /** Call will be deflected to voicemail. */
+ EDeflectVoicemail,
+ /** Call will be deflected to the pre-registered number for the call forwarding
+ service. */
+ EDeflectRegisteredNumber,
+ /** Call will be deflected to the number supplied in the aDestination parameter. */
+ EDeflectSuppliedNumber
+ };
+
+ IMPORT_C void Deflect(TRequestStatus& aReqStatus, TMobileCallDeflect aDeflectType, const RMobilePhone::TMobileAddress& aDestination) const;
+ IMPORT_C void Transfer(TRequestStatus& aReqStatus) const;
+ IMPORT_C void GoOneToOne(TRequestStatus& aReqStatus) const;
+
+/** The mobile call events.
+
+Modes: Common */
+ enum TMobileCallEvent
+ {
+ /** The call has been placed on hold as a result of a local action.
+
+ Modes: Common */
+ ELocalHold,
+ /** The call has been resumed as a result of a local action.
+
+ Modes: Common */
+ ELocalResume,
+ /** The call has been deflected to another remote party as a result of a local action.
+
+
+ Modes: GSM/WCDMA */
+ ELocalDeflectCall,
+ /** The call has been transferred to another remote party as a result of a local
+ action.
+
+ Modes: Common */
+ ELocalTransfer,
+ /** The call has been placed on hold by the remote connected party.
+
+ Modes: GSM/WCDMA */
+ ERemoteHold,
+ /** The call has been resumed by the remote connected party.
+
+ Modes: GSM/WCDMA */
+ ERemoteResume,
+ /** The call has been terminated by the remote party.
+
+ Modes: Common */
+ ERemoteTerminated,
+ /** The call has been joined by the remote connected party to other call(s) to create/add
+ to a conference call.
+
+ Modes: GSM/WCDMA */
+ ERemoteConferenceCreate,
+ ERemoteTransferring,
+ ERemoteTransferAlerting,
+ /** The outgoing call has been barred by the remote party.
+
+ Modes: GSM/WCDMA */
+ ERemoteBarred,
+ /** The call is being forwarded by the remote party.
+
+ Modes: GSM/WCDMA */
+ ERemoteForwarding,
+ /** The call is waiting at the remote end.
+
+ Modes: GSM/WCDMA */
+ ERemoteWaiting,
+ /** The outgoing call has been barred by the local party.
+
+ Modes: GSM/WCDMA */
+ ELocalBarred
+ };
+
+ IMPORT_C void NotifyCallEvent(TRequestStatus& aReqStatus, TMobileCallEvent& aEvent) const;
+
+/** Describes the possible call states. */
+ enum TMobileCallStatus
+ {
+ /** Indicates that the call status is unknown. */
+ EStatusUnknown, // same as RCall::EStatusUnknown
+ /** Indicates that the call is idle. */
+ EStatusIdle, // same as RCall::EStatusIdle
+ EStatusDialling, // same as RCall::EStatusDialling
+ /** Indicates that the MT call is ringing but not answered yet by the local user. */
+ EStatusRinging, // same as RCall::EStatusRinging
+ /** Indicates that the local user has answered the MT call but the network has not
+ acknowledged the call connection yet. */
+ EStatusAnswering, // same as RCall::EStatusAnswering
+ /** MO Call: the network notifies to the MS that the remote party is now ringing. */
+ EStatusConnecting, // same as RCall::EStatusConnecting
+ /** Indicates that call is connected and active. */
+ EStatusConnected, // same as RCall::EStatusConnected
+ /** Indicates that call is disconnecting. */
+ EStatusDisconnecting, // same as RCall::EStatusHangingUp
+ /** Indicates that the call is disconnecting with inband data (to enable the network
+ to send an audio tone), signifying that the call is not to be released until
+ the user terminates the call. */
+ EStatusDisconnectingWithInband,
+ /** Indicates that call is undergoing temporary channel loss and it may or may not
+ be reconnected. */
+ EStatusReconnectPending,
+ /** Indicates that the call is connected but on hold. */
+ EStatusHold,
+ /** Indicates that the call is the non-active half of an alternating call. This
+ call is waiting for its active half or the remote end to switch alternating
+ call mode. */
+ EStatusWaitingAlternatingCallSwitch,
+ EStatusTransferring,
+ EStatusTransferAlerting
+ };
+
+ IMPORT_C TInt GetMobileCallStatus(TMobileCallStatus& aStatus) const;
+ IMPORT_C void NotifyMobileCallStatusChange(TRequestStatus& aReqStatus, TMobileCallStatus& aStatus) const;
+
+ IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC& aTelNumber) const;
+ IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC8& aCallParams,const TDesC& aTelNumber) const;
+
+ /**
+ Contains audio tone events.
+ */
+ enum TMobileCallAudioToneEvent
+ {
+ /**
+ Stop audio tone.
+ */
+ EAudioStop,
+ /**
+ Start audio tone.
+ */
+ EAudioStart
+ };
+
+ /**
+ List of 3GPP defined supervisory audio tones taken from technical specification 3GPP TS 22.001 v4.0.0 Annex F.
+
+ This enumeration is based on the signal information element specified in Table 10.5.130/3GPP TS 24.008 v5.15.0
+ */
+ enum TMobileCallAudioTones
+ {
+ /**
+ No tone. Not defined in specification used for initialisation of
+ iTone class member variable during TAudioToneV3 construction.
+ */
+ ENoTone,
+ /**
+ Dial tone.
+ */
+ EDialTone,
+ /**
+ Subscriber busy tone.
+ */
+ ESubscriberBusyTone,
+ /**
+ Congestion tone.
+ */
+ ECongestionTone,
+ /**
+ Radio path acknowledgement tone.
+ */
+ ERadioPathAcknowledgement,
+ /**
+ Radio path not available tone.
+ */
+ ERadioPathNotAvailable,
+ /**
+ Call dropped (Mobile Originated only).
+ */
+ EMOCallDropped,
+ /**
+ Error special information.
+ */
+ EErrorSpecialInformation,
+ /**
+ Number unobtainable.
+ */
+ ENumberUnobtainable,
+ /**
+ Authentication failure.
+ */
+ EAuthenticationFailure,
+ /**
+ Call waiting.
+ */
+ ECallWaiting,
+ /**
+ Ringback tone.
+ */
+ ERingback
+ };
+
+ class TAudioToneV3 : public RMobilePhone::TMultimodeType
+ /**
+ Audio tone version 1 class. Contains information relating to the call control playing of audio tones.
+ Tones maybe generated by the network (in-band) or signalled to be played locally by the ME.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TAudioToneV3();
+
+ public:
+ /**
+ Indicates whether the tone is starting or stopping playing.
+ */
+ TMobileCallAudioToneEvent iEvent;
+ /**
+ Indicates which tone is to be played.
+ */
+ TMobileCallAudioTones iTone;
+ /**
+ Indicates whether the tone is played by the network or is to be played locally by the ME.
+ */
+ TBool iPlayedLocally;
+ };
+
+ /**
+ Packaging typedef for TAudioToneV3 class.
+ */
+ typedef TPckg<TAudioToneV3> TAudioToneV3Pckg;
+
+ IMPORT_C void NotifyAudioToneEvent(TRequestStatus& aReqStatus, TDes8& aToneInfo) const;
+
+ /***********************************************************************************/
+ //
+ // MobilePrivacy functional unit
+ //
+ /***********************************************************************************/
+
+ IMPORT_C TInt SetPrivacy(RMobilePhone::TMobilePhonePrivacy aPrivacySetting) const;
+ IMPORT_C void NotifyPrivacyConfirmation(TRequestStatus& aReqStatus, RMobilePhone::TMobilePhonePrivacy& aPrivacySetting) const;
+
+ /***********************************************************************************/
+ //
+ // MobileTrafficChannel function unit
+ //
+ /***********************************************************************************/
+
+/** Call traffic channels.
+
+Modes: CDMA */
+ enum TMobileCallTch
+ {
+ /** The traffic channel of the call is unknown. */
+ ETchUnknown,
+ /** The call has a digital traffic channel */
+ ETchDigital,
+ /** The call has an analog traffic channel */
+ ETchAnalog
+ };
+
+ IMPORT_C TInt SetTrafficChannel(TMobileCallTch aTchRequest) const;
+ IMPORT_C void NotifyTrafficChannelConfirmation(TRequestStatus& aReqStatus, TMobileCallTch& aTchType) const;
+
+ /***********************************************************************************/
+ //
+ // MobileCallInformation functional unit
+ //
+ /***********************************************************************************/
+
+ /**
+ Remote party Identity status.
+
+ Modes: Common
+
+ @see TMobileCallRemotePartyInfoV1
+ */
+ enum TMobileCallRemoteIdentityStatus
+ {
+ /**
+ The remote party's identity can not be determined. Calling
+ party's Binary Coded Decimal (BCD) number is not available.
+ Cause of No CLI is "unavailable".
+ */
+ ERemoteIdentityUnknown,
+
+ /**
+ The remote party's identity, or BCD number, is available.
+ However, cause of No CLI has not been set.
+ */
+ ERemoteIdentityAvailable,
+
+ /**
+ The remote party has suppressed the transmission of its
+ identity; i.e. their BCD number is not available. Cause of No
+ CLI is "reject by user".
+ */
+ ERemoteIdentitySuppressed,
+ /**
+ The remote party's identity, or BCD number, is available. The
+ cause of No CLI is "reject by user".
+
+ To be used where the network has specified that displaying of
+ CLI information of the remote party has been rejected by the
+ caller but the TMobileCallRemotePartyInfoV1::iRemoteNumber
+ parameter has been populated with some other string which may
+ be of use to the client.
+ */
+ ERemoteIdentityAvailableNoCliRejectedByUser,
+
+ /**
+ The remote party's identity is available; a BCD number is
+ available. The cause of No CLI is "Interaction with other
+ service".
+
+ To be used where the network has specified that CLI information
+ of the remote party is not available due to ineraction with
+ another service. However, the
+ TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
+ populated with some other string which may be of use to the
+ client.
+ */
+ ERemoteIdentityAvailableNoCliInteractionWithOtherService,
+ /**
+ The remote party's identity, or BCD number, is unavailable.
+ Cause of No CLI is "interaction with other service".
+ */
+ ERemoteIdentityUnavailableNoCliInteractionWithOtherService,
+
+ /**
+ The remote party's identity, or BCD number, is available.
+ Cause of No CLI is "Coin Line/ Payphone".
+
+ To be used where the network has specified that CLI information
+ of the remote party is not available as the caller is calling
+ from a coin/ payphone. However, the
+ TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
+ populated with some other string which may be of use to the
+ client.
+ */
+ ERemoteIdentityAvailableNoCliCoinOrPayphone,
+ /**
+ The remote party's identity, or BCD number, is not available.
+ Cause of No CLI is "Coin Line/ Payphone".
+ */
+ ERemoteIdentityUnavailableNoCliCoinOrPayphone,
+
+ /**
+ The remote party's identity, or BCD number, is available.
+ Cause of No CLI is "unavailable".
+
+ To be used where the network has specified that the CLI
+ information of the remote party is not available but the
+ TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
+ populated with some other string which may be of use to the
+ client.
+ */
+ ERemoteIdentityAvailableNoCliUnavailable
+ };
+
+
+ /**
+ The direction of the mobile call.
+
+ Modes: Common
+
+ @see TMobileCallRemotePartyInfoV1
+ */
+ enum TMobileCallDirection
+ {
+ /** The direction of the call is unknown. */
+ EDirectionUnknown,
+ /** The call was originated by this phone, i.e. it is an outgoing call. */
+ EMobileOriginated,
+ /** The call was terminated by this phone, i.e. it is an incoming call. */
+ EMobileTerminated
+ };
+
+ enum { KCallingNameSize=80 };
+
+
+
+ class TMobileCallRemotePartyInfoV1 : public RMobilePhone::TMultimodeType
+/** Defines information about the remote party of a mobile call.
+*/
+ {
+ public:
+ IMPORT_C TMobileCallRemotePartyInfoV1();
+ public:
+ /** Indicates whether the remote party information in the rest of this structure
+ is valid or not.
+
+ Modes: Common
+
+ @see TMobileCallRemoteIdentityStatus */
+ TMobileCallRemoteIdentityStatus iRemoteIdStatus;
+ /** The direction of the call and hence the role of the remote party, i.e. if the
+ call is mobile originated then the remote party is the called party whereas
+ if the call is mobile terminated then the remote party is the calling party.
+
+ Modes: Common
+
+ @see TMobileCallDirection */
+ static TMobileCallDirection iDirection;
+ /** The phone number of the remote party if available.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iRemoteNumber;
+ /** Calling party name available through the CNAP supplementary service (if provisioned).
+
+
+ Modes: Common */
+ TBuf<KCallingNameSize> iCallingName;
+ };
+
+/** A typedef'd packaged TMobileCallRemotePartyInfoV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileCallRemotePartyInfoV1> TMobileCallRemotePartyInfoV1Pckg;
+
+ IMPORT_C void NotifyRemotePartyInfoChange(TRequestStatus& aReqStatus, TDes8& aRemotePartyInfo) const;
+
+/** Determines which fields in the class are valid.
+
+@see TMobileCallInfoV1 */
+ enum TMobileCallInfoFlags
+ {
+ /** The iStartTime field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallStartTime = 0x00000001,
+ /** The iDuration field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallDuration = 0x00000002,
+ /** The iCallId field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallId = 0x00000004,
+ /** The iRemoteParty field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallRemoteParty = 0x00000008,
+ /** The iDialledParty field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallDialledParty = 0x00000010,
+ /** The iExitCode field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallExitCode = 0x00000020,
+ /** The iEmergency field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallEmergency = 0x00000040,
+ /** The iForwarded field is valid in the call info class.
+
+ Modes: COMMON */
+ KCallForwarded = 0x00000080,
+ /** The iPrivacy field is valid in the call info class.
+
+ Modes: CDMA */
+ KCallPrivacy = 0x00000100,
+ /** The iTch field is valid in the call info class.
+
+ Modes: CDMA */
+ KCallTch = 0x00000200,
+ /** The iAlternatingCall field is valid in the call info class.
+
+ Modes: GSM/WCDMA */
+ KCallAlternating = 0x00000400,
+ KCallSecurity = 0x00000800
+ };
+
+
+
+ class TMobileCallInfoV1 : public RMobilePhone::TMultimodeType
+/** Defines general information about a mobile call.
+*/
+ {
+ public:
+ IMPORT_C TMobileCallInfoV1();
+ public:
+ /** A bit-wise sum of TMobileCallInfoFlags indicating which of the following optional
+ fields contain valid data. */
+ TUint32 iValid;
+ /** The call service (voice, data, fax, aux. voice) that this call provides.
+
+ @see RMobilePhone::TMobileService */
+ RMobilePhone::TMobileService iService;
+ /** The mobile call status.
+
+ @see TMobileCallStatus */
+ static TMobileCallStatus iStatus;
+ /** The call ID number assigned to an ongoing call. Will equal -1 if the call does
+ not have an allocated ID. */
+ TInt iCallId;
+ /** The reason for termination of a finished call. Will equal KErrNone if the call
+ ended normally and KErrNotFound if the call has not ended. */
+ TInt iExitCode;
+ /** ETrue if the call is an emergency call or EFalse if it is not. */
+ static TBool iEmergency;
+ /** For a MT call, this attribute equals ETrue if the call has been forwarded to
+ this phone or EFalse if it has not. For a MO call, this attribute equals ETrue
+ if the call has been forwarded to another destination or EFalse if it has
+ not. If the phone can not determine whether the call has been forwarded or
+ not then the attribute will return EFalse. */
+ TBool iForwarded;
+ /** This attribute indicates whether privacy is on or off for this call.
+
+ @see RMobilePhone::TMobilePhonePrivacy */
+ RMobilePhone::TMobilePhonePrivacy iPrivacy;
+ /** This attribute indicates whether this call is an alternating call or not.
+
+ @see RMobilePhone::TMobilePhoneAlternatingCallMode */
+ RMobilePhone::TMobilePhoneAlternatingCallMode iAlternatingCall;
+ /** The current duration of the call.
+
+ @see TTimeIntervalSeconds */
+ TTimeIntervalSeconds iDuration;
+ /** This attribute indicates whether a digital or analog traffic channel is being
+ used for this call.
+
+ @see TMobileCallTch */
+ TMobileCallTch iTch;
+ /** Information about remote party of a connected call.
+
+ @see TMobileCallRemotePartyInfoV1 */
+ TMobileCallRemotePartyInfoV1 iRemoteParty;
+ /** The original number (including DTMF) dialled for an outgoing call.
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iDialledParty;
+ /** The time and date the call started.
+
+ @see TDateTime */
+ TDateTime iStartTime;
+ /** The name of the call.
+
+ @see TName */
+ TName iCallName;
+ /** The name of the line on which the call is open.
+
+ @see TName */
+ TName iLineName;
+ };
+
+/** A typedef'd packaged TMobileCallInfoV1 for passing through a generic API function
+member. */
+ typedef TPckg<TMobileCallInfoV1> TMobileCallInfoV1Pckg;
+
+ class TMobileCallInfoV3 : public TMobileCallInfoV1
+ /**
+ Extends the TMobileCallInfoV1 claass to include extra call info parameter relating to network security.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileCallInfoV3();
+ public:
+ /**
+ Indicates whether Ciphering Status of a call is enabled or disabled.
+ */
+ RMobilePhone::TMobilePhoneNetworkSecurity iSecurity;
+ };
+
+ typedef TPckg<TMobileCallInfoV3> TMobileCallInfoV3Pckg;
+
+ IMPORT_C TInt GetMobileCallInfo(TDes8& aCallInfo) const;
+
+ /***********************************************************************************/
+ //
+ // MobileCallEmergency functional unit
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void DialEmergencyCall(TRequestStatus& aReqStatus, const TDesC& aNumber) const;
+
+ /***********************************************************************************/
+ //
+ // MobileCallCompletion
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void ActivateCCBS(TRequestStatus& aReqStatus, TInt& aIndex) const;
+ IMPORT_C TInt RejectCCBS() const;
+ //
+ // User-To-User Signalling Functional Unit
+ //
+ /***********************************************************************************/
+
+/** The UUS capabilities of the call.
+
+Modes: GSM/WCDMA. */
+ enum TMobileCallUUSCaps // UUS capabilities of the call
+ {
+ /** Indicates that MS supports UUS1 implicit request. */
+ KCapsSetupUUS1Implicit=0x00000001,
+ /** Indicates that MS supports UUS1 explicit request. */
+ KCapsSetupUUS1Explicit=0x00000002,
+ /** Indicates that MS supports UUS2 request. */
+ KCapsSetupUUS2=0x00000004,
+ /** Indicates that MS supports UUS3 request. */
+ KCapsSetupUUS3=0x00000008,
+ /** Indicates that MS supports activating more than one UUS request at a time. */
+ KCapsSetupMultipleUUS=0x00000010,
+ /** Indicates that UUS1 is active for this call. */
+ KCapsActiveUUS1=0x00000020,
+ /** Indicates that UUS2 is active for this call. */
+ KCapsActiveUUS2=0x00000040,
+ /** Indicates that UUS3 is active for this call. */
+ KCapsActiveUUS3=0x00000080
+ };
+
+ IMPORT_C TInt GetUUSCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyUUSCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+/** UUS Service requests.
+
+Modes: GSM/WCDMA */
+ enum TMobileCallUUSReqs // UUS Service requests
+ {
+ /** UUS1 is implicitly requested. */
+ KUUS1Implicit=0x00000001,
+ /** UUS1 is explicitly requested, but it is not mandatory for this call to proceed. */
+ KUUS1ExplicitRequested=0x00000002,
+ /** UUS1 is explicitly requested and it is mandatory for this call to proceed. */
+ KUUS1ExplicitRequired=0x00000004,
+ /** UUS2 is (explicitly) requested, but it is not mandatory for this call to proceed. */
+ KUUS2Requested=0x00000008,
+ /** UUS2 is (explicitly) requested and it is mandatory for this call to proceed. */
+ KUUS2Required=0x00000010,
+ /** UUS3 is (explicitly) requested, but it is not mandatory for this call to proceed. */
+ KUUS3Requested=0x00000020,
+ /** UUS3 is (explicitly) requested and it is mandatory for this call to proceed. */
+ KUUS3Required=0x00000040
+ };
+
+ enum
+ {
+ KMaxUUISize = 129,
+ };
+
+/** Buffer for the UUI element. */
+ typedef TBuf<KMaxUUISize> TMobileCallUUI;
+
+ class TMobileCallUUSRequestV1 : public RMobilePhone::TMultimodeType
+/** The mobile Call User-to-User Signaling request.
+*/
+ {
+ public:
+ IMPORT_C TMobileCallUUSRequestV1();
+ public:
+ /** This field indicates whether the specified service is requested or required
+ for the call. */
+ TUint iServiceReq;
+ /** The UUI element. This field only contains data if iServiceReq indicates UUS1.
+
+ @see TMobileCallUUI */
+ TMobileCallUUI iUUI;
+ };
+
+/** A typedef'd packaged TMobileCallUUSRequestV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileCallUUSRequestV1> TMobileCallUUSRequestV1Pckg;
+
+ IMPORT_C void ActivateUUS(TRequestStatus& aReqStatus, const TDesC8& aUUSRequest) const;
+ IMPORT_C void SendUUI(TRequestStatus& aReqStatus, TBool aMore, const TMobileCallUUI& aUUI) const;
+ IMPORT_C void ReceiveUUI(TRequestStatus& aReqStatus, TMobileCallUUI& aUUI) const;
+ IMPORT_C void HangupWithUUI(TRequestStatus& aReqStatus, const TMobileCallUUI& aUUI) const;
+ IMPORT_C void AnswerIncomingCallWithUUI(TRequestStatus& aReqStatus, const TDesC8& aCallParams, const TMobileCallUUI& aUUI) const;
+
+ /***********************************************************************************/
+ //
+ // Etel 3rd Party v1.0 Parameter classes
+ //
+ /***********************************************************************************/
+
+ class TEtel3rdPartyMobileCallParamsV1 : public RCall::TCallParams
+/** Defines the parameters used to set-up of a call originated from an ETel 3rd Party client.
+@publishedPartner
+@released
+*/
+ {
+ public:
+ IMPORT_C TEtel3rdPartyMobileCallParamsV1();
+ public:
+ /** Call Id restriction setting to be used for this call.
+
+ @see TMobileCallIdRestriction */
+ TMobileCallIdRestriction iIdRestrict;
+ /** Specifies whether this call attempt is user initiated (EFalse) or a client initiated
+ redial (ETrue). */
+ TBool iAutoRedial;
+ };
+
+/** A typedef'd packaged TEtel3rdPartyMobileCallParamsV1 for passing through a generic API
+function member. */
+ typedef TPckg<TEtel3rdPartyMobileCallParamsV1>TEtel3rdPartyMobileCallParamsV1Pckg;
+
+
+private:
+ RMobileCall(const RMobileCall& aCall);
+ CMobileCallPtrHolder* iMmPtrHolder;
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+
+/*********************************************************/
+//
+// Line based functionality (RMobileLine)
+//
+/*********************************************************/
+
+
+
+class CMobileLinePtrHolder;
+
+class RMobileLine : public RLine
+/** Provides access to the functionality associated with a specific mobile line.
+*/
+ {
+public:
+ IMPORT_C RMobileLine();
+
+ /***********************************************************************************/
+ //
+ // MobileLineStatus functional unit
+ //
+ /***********************************************************************************/
+
+ IMPORT_C TInt GetMobileLineStatus(RMobileCall::TMobileCallStatus& aStatus) const;
+ IMPORT_C void NotifyMobileLineStatusChange(TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus) const;
+
+ //
+ // Additional Caps
+ //
+/** Enumerated auxiliary capabilities. */
+ enum TMobileLineAdditionalCaps
+ {
+ /** Indicates whether the line is a Primary or Auxiliary voice line offset added
+ so that core Etel and additional line caps can be returned in one TUint. */
+ KCapsAuxVoice=0x00000008
+ };
+
+private:
+ RMobileLine(const RMobileLine& aLine);
+ CMobileLinePtrHolder* iMmPtrHolder;
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+
+/*********************************************************/
+//
+// SMS Messaging (RMobileSmsMessaging)
+//
+/*********************************************************/
+
+
+
+class CMobilePhoneSmspList;
+class CSmsMessagingPtrHolder;
+
+class RMobileSmsMessaging : public RTelSubSessionBase
+/** Provides client access to SMS messaging functionality provided by TSY.
+@publishedPartner
+@released
+*/
+ {
+public:
+
+ friend class CRetrieveMobilePhoneSmspList;
+
+ IMPORT_C RMobileSmsMessaging();
+
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+/** Defines capabilities of SMS messaging.
+
+Modes: GSM/WCDMA */
+ enum TMobileSmsModeCaps
+ {
+ /** SMS is supported in GSM and WCDMA modes. SMS are sent across MM ETel API in
+ a GSM 03.40 TPDU format.
+
+ Modes: GSM/WCDMA */
+ KCapsGsmSms=0x00000001,
+ /** SMS is supported in CDMA mode. SMS are sent across MM ETel API in a IS-637
+ Teleservice message PDU format.
+
+ Modes: CDMA */
+ KCapsCdmaSms=0x00000002
+ };
+
+/** Defines SMS control capabilities.
+
+Modes: Common */
+ enum TMobileSmsControlCaps
+ {
+ /** TSY supports receiving incoming SMS that have been stored and acknowledged
+ by the phone prior to forwarding to the TSY. If this flag is set then KCapsReceiveEither
+ will not be set and the client can receive stored messages only while the
+ TSY-phone link is in "receive stored" mode.
+
+ Modes: Common */
+ KCapsReceiveStored=0x00000001,
+ /** TSY supports receiving incoming SMS that have been acknowledged by the phone
+ but have NOT already been stored. It is the client's responsibility to do
+ the storage. If this flag is set then KCapsReceiveEither will not be set and
+ the client can receive unstored messages only while the TSY-phone link is
+ in "receive unstored with phone ack" mode.
+
+ Modes: Common */
+ KCapsReceiveUnstoredPhoneAck=0x00000002,
+ /** TSY supports receiving incoming SMS that have NOT already been stored and acknowledged
+ by the phone. It is the client's responsibility to do both the storage and
+ the acknowledgment or rejection. If this flag is set then KCapsReceiveEither
+ will not be set and the client can receive unstored messages only while the
+ TSY-phone link is in "receive unstored with client ack" mode.
+
+ Modes: Common */
+ KCapsReceiveUnstoredClientAck=0x00000004,
+ /** TSY supports receiving either stored or unstored incoming SMS at any time.
+ If this flag is set then any other KCapsReceive... flags will not be set and
+ the client can receive stored or unstored messages while the TSY-phone link
+ is in "receive either" mode.
+
+ Modes: Common */
+ KCapsReceiveEither=0x00000008,
+ /** TSY supports creating a default acknowledgment or rejection TPDU using only
+ a "cause code" supplied by the client. If this flag is not set then the client
+ must supply the full ack or nack TPDU if it calls RMobileSmsMessaging::AckSmsStored()
+ or RMobileSmsMessaging::NackSmsStored().
+
+ Modes: Common */
+ KCapsCreateAck=0x00000010,
+ /** TSY supports sending SMS messages but does not support returning the service
+ centre's acknowledgment of the submitted message to the client.
+
+ Modes: Common */
+ KCapsSendNoAck=0x00000020,
+ /** TSY supports sending SMS messages and also supports returning the service centre's
+ acknowledgment of the submitted message to the client.
+
+ Modes: GSM/WCDMA */
+ KCapsSendWithAck=0x00000040,
+ /** TSY supports retrieval of the SMS parameter list.
+
+ Modes: GSM/WCDMA */
+ KCapsGetSmspList=0x00000080,
+ /** TSY supports storage of the SMS parameter list
+
+ Modes: GSM/WCDMA */
+ KCapsSetSmspList=0x00000100
+ };
+
+ class TMobileSmsCapsV1 : public RMobilePhone::TMultimodeType
+/** Defines capabilities of SMS messaging.
+*/
+ {
+ public:
+ IMPORT_C TMobileSmsCapsV1();
+
+ /** Sum of TMobileSmsModeCaps constants.
+
+ Modes: Common */
+ TUint32 iSmsMode;
+ /** Sum of TMobileSmsControlCaps constants.
+
+ Modes: Common */
+ TUint32 iSmsControl;
+ };
+
+/** A typedef'd packaged TMobileSmsCapsV1 for passing through a generic API member
+function. */
+ typedef TPckg<TMobileSmsCapsV1> TMobileSmsCapsV1Pckg;
+
+ IMPORT_C TInt GetCaps(TDes8& aCaps) const;
+
+ // Definitions for sizes of TPDU and User Data fields
+ enum
+ {
+ KGsmTpduSize = 165, // 140 bytes user data + 25 bytes TPDU header
+ KCdmaTpduSize = 256 // Max size of Bearer Data in Transport Layer message
+ };
+
+/** A typedef'd buffer for GSM or WCDMA message data. */
+ typedef TBuf8<KGsmTpduSize> TMobileSmsGsmTpdu;
+/** A typedef'd buffer for CDMA message data. */
+ typedef TBuf8<KCdmaTpduSize> TMobileSmsCdmaTpdu;
+
+ /***********************************************************************************/
+ //
+ // Enum used by TSY to distinguish which SMS attribute class is used by client
+ //
+ /***********************************************************************************/
+
+/** Used by TSY to distinguish which SMS attribute class is used by client.
+
+Modes: Common
+
+@see RMobileSmsMessaging::TMobileSmsSendAttributesV1 */
+ enum TMobileSmsAttributeExtensionId
+ {
+ /** The iExtensionId contents indicate that the packaged class is a TMobileSmsAttributesV1. */
+ KETelMobileSmsAttributesV1=KETelExtMultimodeV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileSmsReceiveAttributesV1. */
+ KETelMobileSmsReceiveAttributesV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileSmsSendAttributesV1. */
+ KETelMobileSmsSendAttributesV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileSmsCdmaSendAttributesV4. */
+ KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4
+ };
+
+/** Defines common attributes of all SMS messages.
+
+Modes: CDMA
+
+@see TMobileSmsAttributesV1 */
+ enum TMobileSmsAttributeFlags
+ {
+ /** The iCdmaTeleservice field is valid in the attribute class.
+
+ Modes: CDMA */
+ KCdmaTeleservice = 0x00000001,
+ /** The iCdmaServiceCategory field is valid in the attribute class.
+
+ Modes: CDMA */
+ KCdmaServiceCategory = 0x00000002,
+ /** The iGsmServiceCentre field is valid in the attribute class.
+
+ Modes: GSM/WCDMA */
+ KGsmServiceCentre = 0x00000004,
+ /** The iDataFormat field is valid in the attribute class.
+
+ Modes: Common */
+ KSmsDataFormat = 0x00000008,
+ /** The iOriginator or iDestination field is valid in the attribute class.
+
+ Modes: Common */
+ KRemotePartyInfo = 0x00000010,
+ /** The iStatus field is valid in the attribute class.
+
+ Modes: Common */
+ KIncomingStatus = 0x00000020,
+ /** The iStore and iStoreIndex fields are valid in the attribute class.
+
+ Modes: Common */
+ KStorageLocation = 0x00000040,
+ /** The iMsgRef field is valid in the attribute class.
+
+ Modes: Common */
+ KMessageReference = 0x00000080,
+ /** The iSubmitReport field is valid in the attribute class.
+
+ Modes: GSM/WCDMA */
+ KGsmSubmitReport = 0x00000100,
+ /** The iMore field is valid in the attribute class.
+
+ Modes: Common */
+ KMoreToSend = 0x00000200,
+ /** Indicates to the TSY that it should keep the traffic channel open since there is
+ another message ready to be sent immediately after this one (typically used when
+ sending messages to multiple recipients). TSY should then keep the channel open
+ until a message is sent with this bit cleared.
+
+ Modes: CDMA */
+ KCdmaKeepChannelOpen = 0x00000400,
+ /** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network
+
+ Modes: CDMA */
+ KCdmaTLAckRequired = 0x00000800,
+ /** The iAddressAuthentication field is valid in the attribute class.
+
+ Modes: CDMA */
+ KCdmaAddressAuthentication = 0x00001000
+ };
+
+/** Defines the SMS data format.
+
+Modes: Common */
+ enum TMobileSmsDataFormat
+ {
+ /** The format is not specified.
+
+ Modes: Common */
+ EFormatUnspecified,
+ /** The message data format complies to a SMS TPDU coded as octets according to
+ GSM 03.40.
+
+ Modes: GSM/WCDMA */
+ EFormatGsmTpdu,
+ /** The message data format complies to a SMS Teleservice PDU coded as octets according
+ to IS-637.
+
+ Modes: CDMA */
+ EFormatCdmaTpdu
+ };
+
+ class TMobileSmsAttributesV1 : public RMobilePhone::TMultimodeType
+ /** Defines common attributes of all SMS messages.
+ @publishedPartner
+ @released
+ */
+ {
+ protected:
+ TMobileSmsAttributesV1();
+ public:
+ /** The bit-mask flags from TMobileSmsAttributeFlags indicating which attributes
+ are present in this instance.
+
+ Modes: Common */
+ TUint32 iFlags;
+ /** The format of the message data buffer .
+
+ Modes: Common
+
+ @see TMobileSmsDataFormat */
+ TMobileSmsDataFormat iDataFormat;
+ /** The teleservice this message belongs to, coded according to SMS teleservice
+ identifier values table in TIA/EIA-41-D.
+
+ Modes: CDMA */
+ TInt iCdmaTeleservice;
+ /** The service category this message belongs to.
+
+ Modes: CDMA */
+ TInt iCdmaServiceCategory;
+ /** The GSM service centre used for this SMS.
+
+ Modes: GSM/WCDMA
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iGsmServiceCentre;
+ };
+
+/** A typedef'd packaged TMobileSmsAttributesV1 for passing through a generic
+API member function. */
+ typedef TPckg<TMobileSmsAttributesV1> TMobileSmsAttributesV1Pckg;
+
+/** Defines attributes of incoming SMS messages.
+
+Modes: Common */
+ enum TMobileSmsIncomingStatus
+ {
+ /** The status of the incoming SMS is unknown. */
+ EMtMessageUnknownStatus,
+ /** The incoming SMS is not stored phone-side but has already been acknowledged
+ by the phone. */
+ EMtMessageUnstoredPhoneAck,
+ /** The incoming SMS is not stored phone-side and needs to be acknowledged by the
+ client. */
+ EMtMessageUnstoredClientAck,
+ /** The incoming SMS is stored phone-side. */
+ EMtMessageStored
+ };
+
+ class TMobileSmsReceiveAttributesV1 : public TMobileSmsAttributesV1
+ /** Defines attributes of incoming SMS messages.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileSmsReceiveAttributesV1();
+ public:
+ /** Indicates the status of the incoming message -whether it is stored phone-side
+ or has been acknowledged by the phone.
+
+ Modes: Common
+
+ @see TMobileSmsIncomingStatus */
+ TMobileSmsIncomingStatus iStatus; // indicates if MT message is stored phone-side
+ /** If the message is stored phone-side, indicates the index (within the phone-side
+ store) where the message is stored.
+
+ Modes: Common */
+ TInt iStoreIndex;// used if MT message is stored phone-side
+ /** If the message is stored phone-side, indicates the name of the appropriate
+ phone-side store.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobileName */
+ RMobilePhone::TMobileName iStore; // used if MT message is stored phone-side
+ /** The address of the originator of the SMS.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iOriginator;
+ };
+
+/** A typedef'd packaged TMobileSmsReceiveAttributesV1 for passing through a generic
+API member function. */
+ typedef TPckg<TMobileSmsReceiveAttributesV1> TMobileSmsReceiveAttributesV1Pckg;
+
+
+
+ class TMobileSmsSendAttributesV1 : public TMobileSmsAttributesV1
+ /** Defines attributes of sent SMS messages.
+ @publishedPartner
+ @released */
+ {
+ public:
+ IMPORT_C TMobileSmsSendAttributesV1();
+ public:
+ /** The message reference assigned to a sent message.
+
+ Modes: Common */
+ TUint16 iMsgRef;
+ /** A boolean indicating whether the client is going to send another SMS immediately
+ after this one. Equals ETrue if this is the case, EFalse if it is not.
+
+ Modes: Common */
+ TBool iMore;
+ /** The SMS-SUBMIT-REPORT TPDU received from network in response to a sent message.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileSmsGsmTpdu */
+ TMobileSmsGsmTpdu iSubmitReport;
+ /** The address of the destination of the SMS.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iDestination;
+ };
+
+/** A typedef'd packaged TMobileSmsSendAttributesV1 for passing through a generic
+API member function. */
+ typedef TPckg<TMobileSmsSendAttributesV1> TMobileSmsSendAttributesV1Pckg;
+
+ class TMobileSmsCdmaSendAttributesV4 : public TMobileSmsAttributesV1
+ /**
+ Defines attributes of sent SMS messages (CDMA only).
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileSmsCdmaSendAttributesV4();
+ public:
+ /**
+ The message id allocated by the SMS stack. The TSY should
+ retrieve the value from iCdmaTeleserviceId to determine
+ which teleservice this message id corresponds to.
+ */
+ TUint16 iMsgRef;
+ /** Indicates whether the client is going to send another
+ PDU immediately after this one (typically used when sending
+ messages of more than one PDU). Equals ETrue if at least
+ one more PDU is needed to complete the message and EFalse
+ otherwise.
+ */
+ TBool iMore;
+ /** TPDU received from network in response to a sent message */
+ TMobileSmsCdmaTpdu iTLAck;
+ /** The address of the destination of the SMS. */
+ RMobilePhone::TMobileAddress iDestination;
+ /** Transport layer authentication parameter */
+ TUint32 iAddressAuthentication;
+ };
+
+/** A typedef'd packaged TMobileSmsCdmaSendAttributesV4 for passing through a generic
+API member function. */
+ typedef TPckg<TMobileSmsCdmaSendAttributesV4> TMobileSmsCdmaSendAttributesV4Pckg;
+
+ //
+ // Setting up the storage & acknowledgement mode
+ //
+
+/** Defines the SMS receive modes.
+
+Modes: Common */
+ enum TMobileSmsReceiveMode
+ {
+ /** Receive mode is unspecified and phone will use its default. */
+ EReceiveModeUnspecified,
+ /** Phone will store and acknowledge all incoming messages before passing them
+ onto TSY. */
+ EReceiveUnstoredPhoneAck, // client stores but phone acknowledges message
+ /** Phone will acknowledge but NOT store all incoming messages before passing them
+ onto TSY. It is client's responsibility to store the message. */
+ EReceiveUnstoredClientAck, // client acknowledges and stores message
+ /** Phone will NOT acknowledge or store any incoming messages before passing them
+ onto TSY. It is client's responsibility to attempt storage and then either
+ acknowledge or reject the message. */
+ EReceiveStored, // phone acknowledges and store message
+ /** Phone may pass on either stored or unstored messages to TSY. It is client's
+ responsibility to check RMobileSmsMessaging::TMobileSmsReceiveAttributesV1::iStatus
+ to determine what action(s) the client needs to take for a message. */
+ EReceiveEither // client deals with stored & unstored messages
+ };
+
+ IMPORT_C void SetReceiveMode(TRequestStatus& aReqStatus, TMobileSmsReceiveMode aReceiveMode) const;
+ IMPORT_C TInt GetReceiveMode(TMobileSmsReceiveMode& aReceiveMode) const;
+ IMPORT_C void NotifyReceiveModeChange(TRequestStatus& aStatus, TMobileSmsReceiveMode& aReceiveMode);
+
+ /***********************************************************************************/
+ //
+ // Incoming SMS
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
+
+ /***********************************************************************************/
+ //
+ // Responding to incoming SMS
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void AckSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TBool aFull=EFalse) const;
+ IMPORT_C void NackSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TInt aRpCause) const;
+ IMPORT_C void ResumeSmsReception(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Outgoing SMS
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
+ IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
+
+/** Defines the SMS bearer.
+
+Modes: GSM */
+ enum TMobileSmsBearer
+ {
+ /** SMS messages will only be sent over a packet-switched (GPRS) network. */
+ ESmsBearerPacketOnly,
+ /** SMS messages will only be sent over a circuit-switched (GSM) network. */
+ ESmsBearerCircuitOnly,
+ /** SMS messages will be sent over the packet-switched (GPRS) network if possible,
+ otherwise over circuit-switched (GSM) network. */
+ ESmsBearerPacketPreferred,
+ /** SMS messages will be sent over the circuit-switched (GSM) network if possible,
+ otherwise over packet-switched (GPRS) network. */
+ ESmsBearerCircuitPreferred
+ };
+
+ IMPORT_C void SetMoSmsBearer(TRequestStatus& aReqStatus, TMobileSmsBearer aBearer) const;
+ IMPORT_C TInt GetMoSmsBearer(TMobileSmsBearer& aBearer) const;
+ IMPORT_C void NotifyMoSmsBearerChange(TRequestStatus& aReqStatus, TMobileSmsBearer& aBearer);
+
+ /***********************************************************************************/
+ //
+ // Get information on phone-side SMS storage
+ //
+ /***********************************************************************************/
+
+ IMPORT_C TInt EnumerateMessageStores(TInt& aCount) const;
+ IMPORT_C void GetMessageStoreInfo(TRequestStatus& aReqStatus, TInt aIndex, TDes8& aInfo) const;
+
+ /***********************************************************************************/
+ //
+ // Read/Write SMS parameters to phone-side storage
+ //
+ /***********************************************************************************/
+
+ enum { KMaxSmspTextSize=30 };
+
+/** Defines the valid SMS parameters store.
+
+Modes: GSM/WCDMA
+
+@see TMobileSmspEntryV1 */
+ enum TMobileSmspStoreValidParams
+ {
+ /** The entry includes a valid iDestination field. */
+ KDestinationIncluded=0x00000001,
+ /** The entry includes a valid iServiceCentre field. */
+ KSCAIncluded=0x00000002,
+ /** The entry includes a valid iProtocolId field. */
+ KProtocolIdIncluded=0x00000004,
+ /** The entry includes a valid iDcs field. */
+ KDcsIncluded=0x00000008,
+ /** The entry includes a valid iValidityPeriod field. */
+ KValidityPeriodIncluded=0x00000010
+ };
+
+ class TMobileSmspEntryV1 : public RMobilePhone::TMultimodeType
+
+ /** Defines a set of SMS parameters.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileSmspEntryV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** The slot index where this SMSP entry is stored in the SIM's SMSP file. */
+ TInt iIndex;
+ /** A bit-wise sum of the constants defined in TMobileSmspStoreValidParams, that
+ specifies which parameters are valid within this entry. */
+ TUint32 iValidParams;
+ /** Default protocol ID. Coded according to GSM 03.40. */
+ TUint8 iProtocolId;
+ /** Default data coding scheme. Coded according to GSM 03.40. */
+ TUint8 iDcs;
+ /** Default validity period, in relative format and coded on 8 bits as defined
+ by GSM 03.40. */
+ TUint8 iValidityPeriod;
+ /** Reserved for future use. */
+ TUint8 iReservedFiller;
+ /** Default destination for outgoing SMS.
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iDestination;
+ /** Default service centre for outgoing SMS.
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iServiceCentre;
+ /** The alpha-tag associated with this SMSP entry, expressed as Unicode characters. */
+ TBuf<KMaxSmspTextSize> iText;
+ };
+
+/** A typedef'd packaged TMobileSmspEntryV1 for passing through a generic API member
+function. */
+ typedef TPckg<TMobileSmspEntryV1> TMobileSmspEntryV1Pckg;
+ IMPORT_C void StoreSmspListL(TRequestStatus& aReqStatus, CMobilePhoneSmspList* aSmspList) const;
+ IMPORT_C void NotifySmspListChange(TRequestStatus& aReqStatus) const;
+
+private:
+ RMobileSmsMessaging(const RMobileSmsMessaging&);
+ CSmsMessagingPtrHolder* iSmsMessagingPtrHolder;
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+
+/*********************************************************/
+//
+// Broadcast Messaging (RMobileBroadcastMessaging)
+//
+/*********************************************************/
+
+
+
+class CMobilePhoneBroadcastIdList;
+
+class CCbsMessagingPtrHolder;
+class RMobileBroadcastMessaging : public RTelSubSessionBase
+/** This sub-session provides access to the broadcast message services provided
+by GSM/WCDMA and CDMA networks.
+
+Clients will open a RMobileBroadcastMessaging sub-session and then wait for
+incoming broadcast messages. The broadcast messages received can depend upon
+a "message filter" which defines the languages and/or identifiers of acceptable
+(or unacceptable) messages. This sub-session and the function members within
+this section must be supported if the TSY indicates that it supports the MobileBroadcastMessaging
+functional unit.
+
+@publishedPartner
+@released*/
+ {
+public:
+
+ friend class CRetrieveMobilePhoneBroadcastIdList;
+
+ IMPORT_C RMobileBroadcastMessaging();
+
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+ /***********************************************************************************/
+ //
+ // Broadcast messaging capabilities
+ //
+ /***********************************************************************************/
+
+/** Broadcast capabilities.
+
+Modes:GSM/WCDMA */
+ enum TMobileBroadcastModeCaps
+ {
+ /** GSM 03.41 cell broadcast messages are supported.
+
+ Modes:GSM/WCDMA */
+ KCapsGsmTpduFormat = 0x00000001,
+ /** IS-637-A broadcast messages are supported.
+
+ Modes:CDMA */
+ KCapsCdmaTpduFormat = 0x00000002,
+ /** 3GPP 25.324 Release 4 cell broadcast messages are supported.
+
+ Modes: WCDMA */
+ KCapsWcdmaTpduFormat = 0x00000004
+ };
+
+/** Broadcast message filter capabilities.
+
+Modes: Common
+
+@see RMobileBroadcastMessaging::GetLanguageFilter() */
+ enum TBroadcastMessagingFilterCaps
+ {
+ /** Phone supports switching broadcast messages on or off. This means the EbroadcastAcceptNone
+ and EBroadcastAcceptAll settings of TMobilePhoneBroadcastFilter are supported.
+
+ Modes: Common */
+ KCapsSimpleFilter = 0x00000001,
+ /** Phone supports filtering of broadcast messages depending upon their language.
+ The language filter is a list of languages used only for broadcast filtering.
+
+ Modes: Common
+
+ @see RMobileBroadcastMessaging::GetLanguageFilter() */
+ KCapsLangFilter = 0x00000002,
+ /** Phone supports filtering of broadcast messages depending upon their subject.
+ The subject of a message is identified in GSM/WCDMA mode by the Cell Broadcast
+ Message Identifier (CBMI) and in CDMA mode by the Service Category.
+
+ Modes: Common */
+ KCapsIdFilter = 0x00000004
+ };
+
+
+
+ class TMobileBroadcastCapsV1 : public RMobilePhone::TMultimodeType
+ /** Defines capabilities of Broadcast messaging.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileBroadcastCapsV1();
+ public:
+ /** Sum of TMobileBroadcastModeCaps constants.
+
+ Modes: GSM/WCDMA */
+ TUint32 iModeCaps;
+ /** Sum of TBroadcastMessagingFilterCaps constants.
+
+ Modes: GSM/WCDMA */
+ TUint32 iFilterCaps;
+ };
+
+/** A typedef'd packaged TMobileBroadcastCapsV1 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileBroadcastCapsV1> TMobileBroadcastCapsV1Pckg;
+
+ IMPORT_C TInt GetCaps(TDes8& aCaps) const;
+
+/** Defines the broadcast attributes.
+
+Modes: Common */
+ enum TMobileBroadcastAttributeFlags
+ {
+ /** The iFormat field is valid in the attribute class.
+
+ Modes: Common */
+ KBroadcastDataFormat = 0x00000001,
+ /** The iServiceCategory field is valid in the attribute class.
+
+ Modes: CDMA */
+ KCdmaServiceCategory = 0x00000002
+ };
+
+/** The mobile broadcast data format, used byTMobileBroadcastAttributesV1.
+
+Modes: Common */
+ enum TMobileBroadcastDataFormat
+ {
+ /** The message data format is not specified.
+
+ Modes: Common */
+ EFormatUnspecified,
+ /** The message data format complies to a Cell Broadcast TPDU coded as 88 octets
+ (6 for header and 82 for message data) according to GSM 03.41.
+
+ Modes: GSM/WCDMA */
+ EFormatGsmTpdu,
+ /** The message data format complies to IS-637-A encoding of the Bearer Data parameter
+ within the Transport Layer's SMS-Broadcast message.
+
+ Modes: CDMA */
+ EFormatCdmaTpdu,
+ /** The message data format complies to a Cell Broadcast TPDU coded as 1252 octets
+ (6 for header and a maximum of 1246 for message data) according to 3GPP 25.324.
+
+ Modes: WCDMA */
+ EFormatWcdmaTpdu
+ };
+
+
+
+ class TMobileBroadcastAttributesV1 : public RMobilePhone::TMultimodeType
+ /** Defines attributes of a Broadcast message.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileBroadcastAttributesV1();
+ public:
+ /** The bit-mask flags indicating which attributes are present in this instance.
+
+ Modes: Common
+
+ @see TMobileBroadcastAttributeFlags */
+ TUint32 iFlags;
+ /** Format of the message data buffer.
+
+ Modes: Common
+
+ @see TMobileBroadcastDataFormat */
+ TMobileBroadcastDataFormat iFormat;
+ /** Service category of the message.
+
+ Modes: CDMA */
+ TInt iServiceCategory;
+ };
+
+/** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileBroadcastAttributesV1> TMobileBroadcastAttributesV1Pckg;
+
+
+
+
+ class TMobileBroadcastAttributesV2 : public TMobileBroadcastAttributesV1
+ /** Defines attributes of a UMTS Broadcast message for version v2.0 of the API.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileBroadcastAttributesV2();
+ public:
+ /** The number of pages that the current broadcast message consists of. The maximum
+ number of pages for WCDMA Broadcast messages is 15. */
+ TInt iNumberOfPages;
+ /** This parameter is used to store the message type for this broadcast message. */
+ TUint8 iMessageType;
+ /** This parameter is used to store the message id for this broadcast message.
+
+ This parameter is used to store the serial number for this broadcast message.
+
+ This parameter is used to store the data coding scheme for this broadcast
+ message. */
+ TUint16 iMessageId;
+ /** This parameter is used to store the serial number for this broadcast message. */
+ TUint16 iSerialNum;
+ /** This parameter is used to store the data coding scheme for this broadcast message. */
+ TUint8 iDCS;
+ };
+
+/** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileBroadcastAttributesV2> TMobileBroadcastAttributesV2Pckg;
+
+ /***********************************************************************************/
+ //
+ // Receiving broadcast messages
+ //
+ /***********************************************************************************/
+
+ /** A constant which defines the length of the buffer to be passed to ReceiveMessage.
+
+ This constant should be used for all message types: GSM, CDMA and WCDMA.*/
+ enum
+ {
+ KBroadcastPageSize = 88
+ };
+
+ /** Buffer for received messages.
+
+ This buffer should be used for all message types: GSM, CDMA and WCDMA.*/
+ typedef TBuf8<KBroadcastPageSize> TBroadcastPageData;
+
+ /** Old buffer sizes. KBroadcastPageSize should be used instead. */
+ enum
+ {
+ KGsmBroadcastDataSize = KBroadcastPageSize,
+ KCdmaBroadcastDataSize = KBroadcastPageSize,
+ KWCdmaBroadcastPageSize = KBroadcastPageSize
+ };
+
+ /** Buffer for GSM messages. TBroadcastPageData should be used instead. */
+ typedef TBuf8<KGsmBroadcastDataSize> TGsmBroadcastMessageData;
+ /** Buffer for CDMA messages. TBroadcastPageData should be used instead. */
+ typedef TBuf8<KCdmaBroadcastDataSize> TCdmaBroadcastMessageData;
+ /** Buffer for WCDMA messages. TBroadcastPageData should be used instead. */
+ typedef TBuf8<KWCdmaBroadcastPageSize> TWCdmaBroadcastPageData;
+
+ IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
+
+ /***********************************************************************************/
+ //
+ // Filters
+ //
+ /***********************************************************************************/
+
+/** The filter settings of the mobile phone.
+
+Modes: Common */
+ enum TMobilePhoneBroadcastFilter
+ {
+ /** The phone does not have a filter setting. */
+ EBroadcastFilterUnspecified,
+ /** The phone is not accepting any broadcast messages. */
+ EBroadcastAcceptNone,
+ /** The phone is accepting all broadcast messages. */
+ EBroadcastAcceptAll,
+ /** The phone is accepting those broadcast messages included within the language
+ and identifier filters. */
+ EBroadcastAcceptFilter,
+ /** The phone is rejecting those broadcast messages included within the language
+ or identifier filters. */
+ EBroadcastRejectFilter
+ };
+
+ IMPORT_C TInt GetFilterSetting(TMobilePhoneBroadcastFilter& aSetting) const;
+ IMPORT_C void SetFilterSetting(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter aSetting) const;
+ IMPORT_C void NotifyFilterSettingChange(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter& aSetting) const;
+
+ IMPORT_C void GetLanguageFilter(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
+ IMPORT_C void SetLanguageFilter(TRequestStatus& aReqStatus, const TDesC16& aLangFilter) const;
+ IMPORT_C void NotifyLanguageFilterChange(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
+
+ class TMobileBroadcastIdEntryV1 : public RMobilePhone::TMultimodeType
+ /** In GSM - defines a Cell Broadcast Message Identifier (CBMI) list entry. In
+ CDMA - defines a Service Category list entry.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ IMPORT_C TMobileBroadcastIdEntryV1();
+ public:
+ /** The value of the message identifier. */
+ TUint16 iId;
+ };
+
+/** Defines the broadcast types. */
+ enum TMobileBroadcastIdType
+ {
+ /** GSM broadcast. */
+ EGsmBroadcastId,
+ /** CDMA broadcast. */
+ ECdmaBroadcastId
+ };
+
+ IMPORT_C void StoreBroadcastIdListL(TRequestStatus& aReqStatus, CMobilePhoneBroadcastIdList* aIdList, TMobileBroadcastIdType aIdType);
+ IMPORT_C void NotifyBroadcastIdListChange(TRequestStatus& aReqStatus) const;
+
+private:
+ RMobileBroadcastMessaging(const RMobileBroadcastMessaging&);
+ CCbsMessagingPtrHolder* iCbsMessagingPtrHolder;
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+/*********************************************************/
+//
+// USSD Messaging (RMobileUssdMessaging)
+//
+/*********************************************************/
+
+
+
+class CUssdMessagingPtrHolder;
+class RMobileUssdMessaging : public RTelSubSessionBase
+/** Provides client access to USSD functionality provided by TSY.
+*/
+ {
+public:
+ IMPORT_C RMobileUssdMessaging();
+
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+/** Defines the USSD Messaging Format Capabilities.
+
+Modes: GSM/WCDMA */
+ enum TMobileUssdFormatCaps
+ {
+ /** USSD messages coded as a packed string within 160 octets, as defined for a
+ ussd-String within GSM 04.80 and GSM 03.38.
+
+ Modes: GSM/WCDMA */
+ KCapsPackedString=0x00000001
+ };
+
+/** Defines the USSD Messaging Type Capabilities.
+
+Modes: GSM/WCDMA */
+ enum TMobileUssdTypeCaps
+ {
+ /** Outgoing USSD messages are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsMOUssd=0x00000001,
+ /** Incoming USSD messages are supported.
+
+ Modes: GSM/WCDMA */
+ KCapsMTUssd=0x00000002
+ };
+
+
+
+ class TMobileUssdCapsV1 : public RMobilePhone::TMultimodeType
+ /** Defines capabilities of USSD messaging.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileUssdCapsV1();
+ /** Sum of TMobileUssdFormatCaps constants.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileUssdFormatCaps */
+ TUint32 iUssdFormat;
+ /** Sum of TMobileUssdTypeCaps constants.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileUssdTypeCaps */
+ TUint32 iUssdTypes;
+ };
+
+/** A typedef'd packaged TMobileUssdCapsV1 for passing through a generic API member
+function. */
+ typedef TPckg<TMobileUssdCapsV1> TMobileUssdCapsV1Pckg;
+
+ IMPORT_C TInt GetCaps(TDes8& aCaps) const;
+
+/** Defines the USSD Messaging Attributes.
+
+Modes: GSM/WCDMA
+
+@see TMobileUssdAttributesV1 */
+ enum TMobileUssdAttributeFlags
+ {
+ /** The iFormat field is valid in the attribute class. */
+ KUssdDataFormat = 0x00000001,
+ /** The iType field is valid in the attribute class. */
+ KUssdMessageType = 0x00000002,
+ /** The iDcs field is valid in the attribute class. */
+ KUssdMessageDcs = 0x00000004
+ };
+
+/** Defines the USSD Data Formats.
+
+Modes: Common */
+ enum TMobileUssdDataFormat
+ {
+ /** The message data format is unspecified.
+
+ Modes: Common */
+ EFormatUnspecified,
+ /** The message data format complies to a USSD coded as 160 octets as defined for
+ a ussd-String within GSM 04.80 and GSM 03.38.
+
+ Modes: GSM/WCDMA */
+ EFormatPackedString
+ };
+
+/** Defines the USSD Message Types.
+
+Modes: GSM/WCDMA */
+ enum TMobileUssdMessageType
+ {
+ /** Message is an unknown type. */
+ EUssdUnknown,
+ /** Message is a mobile originated USSD request. The MS expects the network to
+ send a USSD MT reply. */
+ EUssdMORequest,
+ /** Message is a reply to a previously received network initiated USSD request.
+ It is a USSD MO reply. */
+ EUssdMOReply,
+ /** Message is a one-off network initiated USSD notification. The network expects the MS to
+ send a USSD MO acknowledgement with empty message content. */
+ EUssdMTNotify,
+ /** Message is a network initiated USSD request. The network expects
+ the MS to send a USSD MO reply. */
+ EUssdMTRequest,
+ /** Message is a network initiated reply to a previously sent MO USSD request. */
+ EUssdMTReply,
+ /** For acknowledging MT USSD notifications (empty message content). */
+ EUssdMOAcknowledgement
+ };
+
+
+
+ class TMobileUssdAttributesV1 : public RMobilePhone::TMultimodeType
+ /** Defines attributes of a USSD message.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileUssdAttributesV1();
+ public:
+ /** The TMobileUssdAttributeFlags bit-mask flags indicating which attributes are
+ present in this instance.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileUssdAttributeFlags */
+ TUint32 iFlags;
+ /** Format of the message data buffer.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileUssdDataFormat */
+ TMobileUssdDataFormat iFormat;
+ /** The type of USSD message.
+
+ Modes: GSM/WCDMA
+
+ @see TMobileUssdMessageType */
+ TMobileUssdMessageType iType;
+ /** The Data Coding Scheme of the USSD message.
+
+ Modes: GSM/WCDMA */
+ TUint8 iDcs;
+ };
+
+/** A typedef'd packaged TMobileUssdAttributesV1 for passing through a generic
+API member function. */
+ typedef TPckg<TMobileUssdAttributesV1> TMobileUssdAttributesV1Pckg;
+
+ /***********************************************************************************/
+ //
+ // Receiving USSD messages
+ //
+ /***********************************************************************************/
+
+ enum
+ {
+ KGsmUssdDataSize = 160
+ };
+
+/** A typedef'd buffer to hold the message data. */
+ typedef TBuf8<KGsmUssdDataSize> TGsmUssdMessageData;
+
+ IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
+
+ /***********************************************************************************/
+ //
+ // Sending USSD messages
+ //
+ /***********************************************************************************/
+
+ IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
+ IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
+
+ IMPORT_C void SendRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const;
+ IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const;
+ IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
+
+private:
+ RMobileUssdMessaging(const RMobileUssdMessaging&);
+ CUssdMessagingPtrHolder* iUssdMessagingPtrHolder;
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+
+
+/*********************************************************/
+//
+// SMS Message Storage (RMobileSmsStore)
+//
+/*********************************************************/
+
+
+
+class CSmsStorePtrHolder;
+class CMobilePhoneSmsList;
+class RMobileSmsStore : public RMobilePhoneStore
+/** Provides client access to SMS storage functionality provided by TSY.
+@publishedPartner
+@released
+*/
+ {
+public:
+
+ IMPORT_C RMobileSmsStore();
+ IMPORT_C TInt Open(RMobileSmsMessaging& aMessaging, const TDesC& aStoreName);
+ IMPORT_C void Close();
+
+/** Defines the SMS Store Capabilities.
+
+Modes: Common */
+ enum TMobileSmsStoreCaps
+ {
+ /** The store contains unread, incoming SMS entries.
+
+ Modes: Common */
+ KCapsUnreadMessages = 0x00000001,
+ /** The store contains read, incoming SMS entries.
+
+ Modes: Common */
+ KCapsReadMessages = 0x00000002,
+ /** The store contains sent SMS entries.
+
+ Modes: Common */
+ KCapsSentMessages = 0x00000004,
+ /** The store contains un sent SMS entries. */
+ KCapsUnsentMessages = 0x00000008,
+ /** The store contains GSM SMS message entries – so TMobileGsmSmsEntryV1 class
+ should be used.
+
+ Modes: GSM/WCDMA */
+ KCapsGsmMessages = 0x00000010,
+ /** The store contains CDMA SMS message entries – so TMobileCdmaSmsEntryV1 class
+ should be used.
+
+ Modes: CDMA */
+ KCapsCdmaMessages = 0x00000020
+ };
+
+/** Defines contents of a fixed-size, stored SMS entry.
+
+Modes: Common */
+ enum TMobileSmsStoreStatus
+ {
+ /** The status of the SMS is unknown. */
+ EStoredMessageUnknownStatus,
+ /** The SMS is stored phone-side. It is an incoming message that has not been read
+ yet. */
+ EStoredMessageUnread,
+ /** The SMS is stored phone-side. It is an incoming message that has already been
+ read. */
+ EStoredMessageRead,
+ /** The SMS is stored phone-side. It is an outgoing message that has not been sent
+ yet. */
+ EStoredMessageUnsent,
+ /** The SMS is stored phone-side. It is an outgoing message that has already been
+ sent but a delivery/status report has either not been received yet or was
+ not requested in the first place. */
+ EStoredMessageSent,
+ /** The SMS is stored phone-side. It is an outgoing message that has already been
+ sent and a delivery/status report has been received */
+ EStoredMessageDelivered
+ };
+
+ //
+ // Enum used by TSY to distinguish which SMS entry class is used by client
+ //
+
+/** Used by TSY to distinguish which SMS entry class is used by client. */
+ enum TMobileSmsEntryExtensionId
+ {
+ /** Type is unknown. */
+ KETelMobileSmsEntryV1=KETelExtMultimodeV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileGsmSmsEntryV1.
+
+ Also used to indicate that GSM SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */
+ KETelMobileGsmSmsEntryV1,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileCdmaSmsEntryV1.
+
+ Also used to indicate that CDMA SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */
+ KETelMobileCdmaSmsEntryV1
+ };
+
+ class TMobileSmsEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
+ /** Defines contents of a fixed-size, stored SMS entry.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ protected:
+ TMobileSmsEntryV1();
+ public:
+ /** The status of the stored message.
+
+ Modes: Common
+
+ @see TMobileSmsStoreStatus */
+ TMobileSmsStoreStatus iMsgStatus;
+ };
+
+/** A typedef'd packaged TMobileSmsEntryV1 for passing through a generic API
+member function. */
+ typedef TPckg<TMobileSmsEntryV1> TMobileSmsEntryV1Pckg;
+
+ class TMobileGsmSmsEntryV1 : public TMobileSmsEntryV1
+/** Defines contents of a fixed-size, stored GSM SMS entry.
+@publishedPartner
+@released */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobileGsmSmsEntryV1();
+ public:
+ /** The service centre to use (or used) for the message.
+
+ Modes: GSM/WCDMA
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iServiceCentre;
+ /** The GSM 03.40 TPDU.
+
+ Modes: GSM/WCDMA
+
+ @see RMobileSmsMessaging::TMobileSmsGsmTpdu */
+ RMobileSmsMessaging::TMobileSmsGsmTpdu iMsgData;
+ };
+
+/** A typedef'd packaged TMobileGsmSmsEntryV1 for passing through a generic API
+member function. */
+ typedef TPckg<TMobileGsmSmsEntryV1> TMobileGsmSmsEntryV1Pckg;
+
+ class TMobileCdmaSmsEntryV1 : public TMobileSmsEntryV1
+ /** Defines contents of a fixed-size, stored CDMA SMS entry.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobileCdmaSmsEntryV1();
+ public:
+ /** The teleservice identifier of the stored message.
+
+ Modes: CDMA */
+ TInt iTeleservice;
+ /** The service category of the stored message.
+
+ Modes: CDMA */
+ TInt iServiceCategory;
+ /** The remote party (destination or originator) of the stored message.
+
+ Modes: CDMA
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iRemoteParty;
+ /** The teleservice layer bearer data of the stored message.
+
+ Modes: CDMA
+
+ @see RMobileSmsMessaging::TMobileSmsCdmaTpdu */
+ RMobileSmsMessaging::TMobileSmsCdmaTpdu iMsgData;
+ };
+
+/** A typedef'd packaged TMobileCdmaSmsEntryV1 for passing through a generic API
+member function. */
+ typedef TPckg<TMobileCdmaSmsEntryV1> TMobileCdmaSmsEntryV1Pckg;
+
+protected:
+ IMPORT_C void ConstructL();
+private:
+ RMobileSmsStore(const RMobileSmsStore&);
+ };
+
+/*********************************************************/
+//
+// NAM Storage (RMobileNamStore)
+//
+/*********************************************************/
+
+
+
+class CNamStorePtrHolder;
+class CMobilePhoneNamList;
+class CMobilePhoneNamListV4;
+
+class RMobileNamStore : public RMobilePhoneStore
+/**
+Provides client access to NAM storage functionality provided by TSY
+
+*/
+ {
+public:
+ IMPORT_C RMobileNamStore();
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+
+
+ class TMobileNamStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
+ /**
+ Defines information about a NAM store
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileNamStoreInfoV1();
+ public:
+ /** The number of enabled NAMs within the NAM store.
+
+ Modes: CDMA */
+ TInt iNamCount;
+ /** The index of the NAM that is currently the active NAM, will be between 0 and
+ iNamCount-1.
+
+ Modes: CDMA */
+ TInt iActiveNam;
+ };
+
+/** A typedef'd packaged TMobileNamStoreInfoV1 for passing through a generic API
+member function. */
+ typedef TPckg<TMobileNamStoreInfoV1> TMobileNamStoreInfoV1Pckg;
+
+ IMPORT_C void SetActiveNam(TRequestStatus& aReqStatus, TInt aNamId) const;
+
+ enum
+ {
+ /* The original maximum NAM parameter size for a TMobileNamEntryV1 */
+ KMaxNamParamSize = 64,
+ /* Updated maximum NAM parameter size for TMobileNamEntryV4 */
+ KMaxNamParamSizeV4 = 256
+ };
+
+ class TMobileNamEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
+ /**
+ Defines contents of a NAM store entry
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileNamEntryV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfoV1::iNamCount-1.
+
+ Modes: CDMA */
+ TInt iNamId;
+ /** The identifier of the NAM parameter to be accessed.
+
+ TSY must define values of parameter identifiers.
+
+ Modes: CDMA */
+ TInt iParamIdentifier;
+ /** The data contents of the selected parameter.
+
+ Modes: CDMA
+
+ @see KMaxNamParamSize */
+ TBuf8<KMaxNamParamSize> iData;
+ };
+
+ /** A typedef'd packaged TMobileNamEntryV1 for passing through a generic API member
+ function. */
+ typedef TPckg<TMobileNamEntryV1> TMobileNamEntryV1Pckg;
+
+ /** Enumeration for the standard NAM parameters (see 3GPP2 C.S0005-A appendix F.3)
+ Modes: CDMA */
+ enum TStandardNamParameters
+ {
+ /** The 64-bit pattern stored in the Mobile Station and
+ Home Location Register/Authentication Centre used to generate/update the
+ mobile station’s Shared Secret Data
+ Corresponds to NAM Indicator 'A_KEY' */
+ EAKey,
+ /** 64-bit key used for authentication
+ Corresponds to NAM Indicator 'SSD_A(s-p)' */
+ ESharedSecretDataA,
+ /** 64-bit key used as input to generate encryption mask and long code
+ Corresponds to NAM Indicator 'SSD_B(s-p)' */
+ ESharedSecretDataB,
+ /** Modulo-64 event counter maintained by the mobile station and Authentication Center
+ used for clone detection
+ Corresponds to NAM Indicator 'COUNT(s-p)' */
+ EParameterUpdateReceivedCount,
+ /** Class of the International Mobile Station Identity (IMSI) containing a MIN as
+ the lower 10 digits
+ Corresponds to NAM Indicator 'IMSI_M_CLASS(p)' */
+ EMinBasedImsiClass,
+ /** The class of the International Mobile Station Identity (IMSI) not containing a MIN as
+ the lower 10 digits
+ Corresponds to NAM Indicator 'IMSI_T_CLASS(p)' */
+ ETrueImsiClass,
+ /** 34-bit number derived from the IMSI M used as input for authentication
+ Corresponds to NAM Indicator 'IMSI_M_S(p)' */
+ EMinBasedImsiS,
+ /** 34-bit number derived from the IMSI T used as input for authentication
+ Corresponds to NAM Indicator 'IMSI_T_S(p)' */
+ ETrueImsiS,
+ /** Number of digits in the IMSI M minus 4
+ Corresponds to NAM Indicator 'IMSI_M_ADDR_NUM(p)' */
+ EMinBasedImsiAddressNum,
+ /** The number of digits in the IMSI T minus 4
+ Corresponds to NAM Indicator 'IMSI_T_ADDR_NUM(p)' */
+ ETrueImsiAddressNum,
+ /** The 11th and 12th digits in the IMSI M
+ Corresponds to NAM Indicator 'IMSI_M_11_12(p)' */
+ EMinBasedImsiDigits11and12,
+ /** The 11th and 12th digits in the IMSI T
+ Corresponds to NAM Indicator 'IMSI_T_11_12(p)' */
+ ETrueImsiDigits11and12,
+ /** The country code for the IMSI M
+ Corresponds to NAM Indicator 'MCC_M(p)' */
+ EMinBasedMobileCountryCode,
+ /** The country code for the IMSI T
+ Corresponds to NAM Indicator 'MCC_T(p)' */
+ ETrueMobileCountryCode,
+ /** Up to 15 digit dialable number associated with the mobile station through a service
+ subscription
+ Corresponds to NAM Indicator 'MDN(p)' */
+ EMobileDirectoryNumber,
+ /** 4-bit number giving the length of the assigning Temporary Mobile Station Identity (TMSI) zone
+ (can range from 1 to 8 octets)
+ Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE_LEN(s-p)' */
+ EAssigningTmsiZoneLen,
+ /** Temporary Mobile Station Identity (TMSI) zone is an arbitrary set of base stations
+ for the administrative assignment of TMSI
+ Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE(s-p)' */
+ EAssigningTmsiZone,
+ /** The uniquely assigned number to a mobile station inside a TMSI zone
+ Corresponds to NAM Indicator 'TMSI_CODE(s-p)' */
+ ETmsiCode,
+ /** The expiration time used to automatically delete the assigned TMSI
+ Corresponds to NAM Indicator 'TMSI_EXP_TIME(s-p)' */
+ ETmsiExpTime,
+ /** Mobile station's home System Id for 800MHz analog operation
+ Corresponds to NAM Indicator 'HOME_SID(p)' */
+ EHomeSystemIdAnalog,
+ /** Mobile station's home System Id
+ Corresponds to NAM Indicator 'SID(p)' */
+ EHomeSystemId,
+ /** Mobile station's home Network Id
+ Corresponds to NAM Indicator 'NID(p)' */
+ EHomeNetworkId,
+ /** Mobile station is configured to receive mobile station terminated calls when
+ using a home (SID, NID) pair
+ Corresponds to NAM Indicator 'MOB_TERM_HOME(p)' */
+ EReceiveCallsHome,
+ /** The mobile station is configured to receive mobile station terminated calls when
+ it is a foreign SID roamer
+ Corresponds to NAM Indicator 'MOB_TERM_FOR_SID(p)' */
+ EReceiveCallsForeignSystem,
+ /** The mobile station is configured to receive mobile station terminated calls when
+ it is a foreign NID roamer
+ Corresponds to NAM Indicator 'MOB_TERM_FOR_NID(p)' */
+ EReceiveCallsForeignNetwork,
+ /** A TSY may use this as the first TSY-defined non-standard NAM parameter */
+ ENumStandardNamParameters
+ };
+
+ class TMobileNamEntryV4 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
+ /**
+ Defines contents of a NAM store entry
+
+ The differences between the original TMobileNamEntryV1, and updated TMobileNamEntryV4 are:
+ - the maximum mobile NAM parameter size is KMaxNamParamSize(64) for TMobileNamEntryV1
+ and KMaxNamParamSizeV4(256) for TMobileNamEntryV4
+ - TMobileNamEntryV4 defines a set of standard NAM parameters for the iParamIdentifier as
+ described in 3GPP2 C.S0005-A appendix F.3
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileNamEntryV4();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfo::iNamCount-1.
+
+ Modes: CDMA */
+ TInt iNamId;
+
+ /** The identifier of the NAM parameter to be accessed.
+ iParamIdentifier will be a TStandardNamParameters value if a standard NAM parameter is being accessed,
+ however a TSY may support and define NAM parameters in addition to those given by TStandardNamParameters
+ Modes: CDMA */
+ TInt iParamIdentifier;
+
+ /** The data contents of the selected parameter.
+
+ Modes: CDMA
+
+ @see KMaxNamParamSizeV4 */
+ TBuf8<KMaxNamParamSizeV4> iData;
+ };
+
+ /** A typedef'd packaged TMobileNamEntryV4 for passing through a generic API member
+ function. */
+ typedef TPckg<TMobileNamEntryV4> TMobileNamEntryV4Pckg;
+
+ IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamList* aNamList) const;
+ IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamListV4* aNamList) const;
+
+protected:
+ IMPORT_C void ConstructL();
+private:
+ RMobileNamStore(const RMobileNamStore&);
+ };
+
+
+/*********************************************************/
+//
+// Own Number Storage (RMobileONStore)
+//
+/*********************************************************/
+
+
+
+class CONStorePtrHolder;
+class CMobilePhoneONList;
+
+class RMobileONStore : public RMobilePhoneStore
+/**
+Provides client access to Own Number storage functionality provided by TSY
+
+*/
+ {
+public:
+ IMPORT_C RMobileONStore();
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+
+
+ class TMobileONStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
+ /**
+ Defines information about an Own Number store
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileONStoreInfoV1();
+ public:
+ /** The maximum length of the own phone number can be. */
+ TInt iNumberLen;
+ /** The maximum length the text field can be. */
+ TInt iTextLen;
+ };
+
+/** A typedef'd packaged TMobileONStoreInfoV1 for passing through a generic API
+member function. */
+ typedef TPckg<TMobileONStoreInfoV1> TMobileONStoreInfoV1Pckg;
+
+ enum
+ {
+ KOwnNumberTextSize = 20
+ };
+
+
+
+ class TMobileONEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
+ /**
+ Defines contents of a Own Number store entry
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileONEntryV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** Network mode. */
+ RMobilePhone::TMobilePhoneNetworkMode iMode;
+ /** Mobile call service type.
+
+ @see RMobilePhone::TMobileService */
+ RMobilePhone::TMobileService iService;
+ /** Own number.
+
+ @see RMobilePhone::TMobileAddress */
+ RMobilePhone::TMobileAddress iNumber;
+ /** The name-tag associated with own number (e.g. "Voice Number"). */
+ TBuf<KOwnNumberTextSize> iText;
+ };
+
+/** A typedef'd packaged TMobileONEntryV1 for passing through a generic API member
+function. */
+ typedef TPckg<TMobileONEntryV1> TMobileONEntryV1Pckg;
+
+ IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, CMobilePhoneONList* aONList) const;
+
+protected:
+ IMPORT_C void ConstructL();
+private:
+ RMobileONStore(const RMobileONStore&);
+ };
+
+/*********************************************************/
+//
+// Emergency Number Storage (RMobileENStore)
+//
+/*********************************************************/
+
+
+
+class CMobilePhoneENList;
+
+class RMobileENStore : public RMobilePhoneStore
+/**
+Provides client access to Emergency Number storage functionality provided by TSY
+
+*/
+ {
+public:
+ IMPORT_C RMobileENStore();
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+ enum
+ {
+ KEmergencyNumberSize = 6,
+ KEmergencyAlphaTagSize = 20
+ };
+
+/** Enumerated list of Emergency Number entries.
+
+Mode: WCDMA */
+ enum TMobilePhoneENServiceCategory
+ {
+ /** This number provides emergency care by the police department. */
+ KServiceCatPolice =0x0001,
+ /** This number provides emergency care by the ambulance department. */
+ KServiceCatAmbulance =0x0002,
+ /** This number provides emergency care by the fire brigade department. */
+ KServiceCatFireBrigade =0x0004,
+ /** This number provides emergency care by the marine guard department. */
+ KServiceCatMarineGuard =0x0008,
+ /** This number provides emergency care by the mountain rescue department. */
+ KServiceCatMountainRescue =0x0010
+ // Reserved types: 0x0020,0x0040,
+ };
+
+
+
+/** Buffer to hold the emergency number in. */
+ typedef TBuf<KEmergencyNumberSize> TEmergencyNumber;
+
+ class TMobileENEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
+ /**
+ Defines contents of a Emergency Number store entry
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileENEntryV1();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** Indicates whether the emergency number is applicable in all situations (=EFalse)
+ or only when the MS is registered to a specific GSM or CDMA network (=ETrue). */
+ TBool iNetworkSpecific;
+ /** The network mode. Only applicable if iNetworkSpecific equals ETrue.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobilePhoneNetworkMode */
+ RMobilePhone::TMobilePhoneNetworkMode iMode;
+ /** Country code. Only applicable if iNetworkSpecific equals ETrue.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobilePhoneNetworkCountryCode */
+ RMobilePhone::TMobilePhoneNetworkCountryCode iCountryCode;
+ /** Network identity. Only applicable if iNetworkSpecific equals ETrue.
+
+ Modes: Common
+
+ @see RMobilePhone::TMobilePhoneNetworkIdentity */
+ RMobilePhone::TMobilePhoneNetworkIdentity iIdentity;
+ /** Emergency number.
+
+ Modes: Common
+
+ @see TEmergencyNumber */
+ TEmergencyNumber iNumber;
+ /** Emergency call number type. It is used to display information about the dialed
+ emergency number (e.g. "Police", "Ambulance", "Fire brigade", etc.)
+
+ Modes: WCDMA */
+ TBuf<KEmergencyAlphaTagSize> iAlphaId;
+ //TInt should map to TMobilePhoneENServiceCategory.
+ //It was not changed to maintain source compatibility
+
+ /** Emergency call type indicator, which contains information to be sent to the
+ network indicating the type of emergency call.
+
+ The field is for future reference only and it is set to RFU (Reserved for
+ Future Use) as it is currently not being used, as specified in section 4.2.21
+ TS 31.102 v3.3.0 Rel 99.
+
+ Modes: WCDMA */
+ TInt iCallType;
+ };
+
+ typedef TPckg<TMobileENEntryV1> TMobileENEntryV1Pckg;
+
+protected:
+ IMPORT_C void ConstructL();
+private:
+ RMobileENStore(const RMobileENStore&);
+ };
+
+
+/*********************************************************/
+//
+// RMobilePhoneBookStore
+//
+/*********************************************************/
+
+
+
+class CPhoneBookStorePtrHolder;
+class CMobilePhoneBookList;
+
+class RMobilePhoneBookStore : public RMobilePhoneStore
+/** Provides member functions for clients to access phone
+books that are stored in ICC memory or in non-volatile memory on the phone
+itself. This sub-session and the member functions within this section must
+be supported if the TSY indicates that it supports the MobilePhonebookStore
+functional unit.
+@publishedPartner
+@released
+*/
+ {
+public:
+ IMPORT_C RMobilePhoneBookStore();
+ IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore);
+ IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore, const TDesC& aMode);
+ IMPORT_C void Close();
+
+/** Describes the specialized phone book capabilities.
+
+Modes: Common */
+ enum TMobilePhoneBookCaps
+ {
+ /** New entries can only be written to (or deleted from) the phone book with the
+ PIN2 password or equivalent.
+
+ Modes: Common */
+ KCapsRestrictedWriteAccess = 0x00000001,
+ /** The phonebook supports the second name field.
+
+ Modes: WCDMA */
+ KCapsSecondNameUsed = 0x00000002,
+ /** The phonebook supports the additional number (with optional Text, TON, NPI
+ and Bearer Capability) field.
+
+ Modes: WCDMA */
+ KCapsAdditionalNumUsed = 0x00000004,
+ /** The phonebook supports the group name field.
+
+ Modes: WCDMA */
+ KCapsGroupingUsed = 0x00000008,
+ /** The phonebook supports entry control and hidden flag fields.
+
+ Modes: WCDMA */
+ KCapsEntryControlUsed = 0x00000010,
+ /** The phonebook supports the email address field.
+
+ Modes: WCDMA */
+ KCapsEmailAddressUsed = 0x00000020,
+ /** The phonebook supports the bearer capability IE field.
+
+ Modes: WCDMA */
+ KCapsBearerCapUsed = 0x00000040,
+ /** The phonebook supports retrieval of the phonebook's PBID and Change Counter
+ - and for each entry its UID field.
+
+ Modes: WCDMA */
+ KCapsSynchronisationUsed = 0x00000080
+ };
+
+/** Described the location of the phone book.
+
+Modes: Common for all */
+ enum TMobilePhoneBookLocation
+ {
+ /** The phonebook's location is unknown. */
+ ELocationUnknown,
+ /** The phonebook is located in ICC (SIM/R-UIM) memory. */
+ ELocationIccMemory,
+ /** The phonebook is located in Phone (ME) memory. */
+ ELocationPhoneMemory,
+ /** The phonebook is located in an external memory. */
+ ELocationExternalMemory,
+ /** The phonebook entries are dispersed over a combination of memory locations. */
+ ELocationCombinedMemory
+ };
+
+ enum
+ {
+ KMaxPBIDSize=15
+ };
+
+/** Defines a modifiable buffer descriptor to contain the phone book identity.
+Used in TMobilePhoneBookInfoV1. */
+ typedef TBuf8<KMaxPBIDSize> TMobilePhoneBookIdentity;
+
+
+
+ class TMobilePhoneBookInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
+ /**
+ Defines information about a Phonebook store.
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ /** Trivial constructor. Initializes iMaxNumLength=-1; iMaxTextLength=-1; iLocation=ELocationUnknown;
+ iChangeCounter=0; iExtensionId=KETelMobilePhonebookStoreV1; */
+ IMPORT_C TMobilePhoneBookInfoV1();
+ public:
+ /** The maximum number of characters for the number in a phonebook entry.
+
+ Modes: Common */
+ TInt iMaxNumLength;
+ /** The maximum number of characters for the text tag in a phonebook entry.
+
+ Modes: Common */
+ TInt iMaxTextLength;
+ /** The memory location of this phonebook.
+
+ Modes: Common
+
+ @see TMobilePhoneBookLocation */
+ TMobilePhoneBookLocation iLocation;
+ /** The contents of the Change Counter file in a USIM phonebook.
+
+ Modes: WCDMA */
+ TUint16 iChangeCounter;
+ /** A unique identity for this type of phonebook.
+
+ If this is a SIM or R-UIM phonebook then it will equal the ICCID of the card.
+
+ If this is a USIM phonebook then it will equal the PBID of the phonebook.
+
+ Modes: Common
+
+ @see TMobilePhoneBookIdentity */
+ TMobilePhoneBookIdentity iIdentity;
+ };
+
+/** Packages the TMobilePhoneBookInfoV1 into a TMobilePhoneBookInfoV1Pckg. */
+ typedef TPckg<TMobilePhoneBookInfoV1> TMobilePhoneBookInfoV1Pckg;
+
+
+ class TMobilePhoneBookInfoV2 : public TMobilePhoneBookInfoV1
+/** Defines information about a Phonebook store for version v2.0 of the API.
+@publishedPartner
+@released */
+ {
+ public:
+ IMPORT_C TMobilePhoneBookInfoV2();
+ public:
+ /** The type of the phonebook which relates to its location (ICC/UICC/CDMA).
+
+ Mode: Common */
+ TName iPhBkMode;
+ };
+
+/** Packages the TMobilePhoneBookInfoV2 into a TMobilePhoneBookInfoV1Pckg. */
+ typedef TPckg<TMobilePhoneBookInfoV2> TMobilePhoneBookInfoV2Pckg;
+
+
+ /** Defines information about a Phonebook store for version v5.0 of the API.
+
+ Extends the v2.0 API to allow additional information about the phonebook
+ (Maximum number of second name fields, Maximum number of additional number fields,
+ Maximum number of additional group name fields, Maximum number of email address fields)
+ to be retieved where available.
+
+ @publishedPartner
+ @released*/
+ class TMobilePhoneBookInfoV5 : public TMobilePhoneBookInfoV2
+ {
+ public:
+ IMPORT_C TMobilePhoneBookInfoV5();
+ public:
+ /** The maximum number of Second Name fields that can be used. */
+ TInt iMaxSecondNames;
+
+ /** The maximum text length for Second Name fields. */
+ TInt iMaxTextLengthSecondName;
+
+ /** The maximum number of additional number fields that can be used. */
+ TInt iMaxAdditionalNumbers;
+
+ /** The maximum number length for Additional Number fields. */
+ TInt iMaxNumLengthAdditionalNumber;
+
+ /** The maximum text length for Additonal Number fields. */
+ TInt iMaxTextLengthAdditionalNumber;
+
+ /** The maximum number of additional Group Name fields that can be used. */
+ TInt iMaxGroupNames;
+
+ /** The maximum text length for Group Name fields. */
+ TInt iMaxTextLengthGroupName;
+
+ /** The maximum number of additional E-Mail address fields that can be used. */
+ TInt iMaxEmailAddr;
+
+ /** The maximum text length for Email Address fields. */
+ TInt iMaxTextLengthEmailAddr;
+ };
+
+ /** Packages the TMobilePhoneBookInfoV5 into a TMobilePhoneBookInfoV5Pckg. */
+ typedef TPckg<TMobilePhoneBookInfoV5> TMobilePhoneBookInfoV5Pckg;
+
+
+ // check these fields - not sure all are correct
+/** The following Tag IDs are used to encode/decode the phonebook entries to/from
+the TLV format. Each field will have a unique identifier and will be followed
+by the field length. The type of data associated with the field is also specified
+below.
+
+Some fields do not have any data and just serve as separators within the buffer
+- in these cases the Data Type column is set to not applicable (n/a).
+
+Modes: Common */
+ enum TMobilePBFieldTags
+ {
+ /** Tag id for the beginning of a new phonebook entry.
+
+ Data type: n/a.
+
+ Modes: Common */
+ ETagPBNewEntry =0xA0,
+ /** Tag id for the Unique ID field.
+
+ Data type: TUint16
+
+ Modes: WCDMA */
+ ETagPBUniqueId =0xB0,
+ /** Tag id for the Index within the ADN record.
+
+ Data type: TUint16
+
+ Modes: Common */
+ ETagPBAdnIndex =0xC0,
+ /** Tag id for a Text field within the ADN/ANR record.
+
+ Data type: TDes16
+
+ Modes: Common */
+ ETagPBText =0xC1,
+ /** Tag id for a Number field within the ADN/ANR record.
+
+ Data type: TDes16
+
+ Modes: Common */
+ ETagPBNumber =0xC2,
+ /** Tag id for a TON/NPI byte within the ADN/ANR record.
+
+ Data type: TUint8
+
+ Modes: Common */
+ ETagPBTonNpi =0xC3,
+ /** Tag id for a Bearer Capability IE associated to the ADN/ANR record.
+
+ Data type: TDes8
+
+ Modes: GSM/WCDMA */
+ ETagPBBearerCap =0xC4,
+ /** Tag id for the beginning of an Additional Number entry within the phonebook
+ entry.
+
+ Data type: n/a
+
+ Modes: WCDMA */
+ ETagPBAnrStart =0xC5,
+ /** Tag id for the Second Name associated to the ADN record.
+
+ Data type: TDes16
+
+ Modes: WCDMA */
+ ETagPBSecondName =0xC6,
+ /** Tag id for a Group Name associated to the ADN record.
+
+ Data type:TDes16
+
+ Modes: WCDMA */
+ ETagPBGroupName =0xC7,
+ /** Tag id for an Email Address associated to the ADN record.
+
+ Data type: TDes16
+
+ Modes: WCDMA */
+ ETagPBEmailAddress =0xC8,
+ /** Tag id for the Entry Control byte associated to the ADN record.
+
+ Data type: TUint8
+
+ Modes: WCDMA */
+ ETagPBEntryControl =0xC9,
+ /** Tag id for the Hidden Information byte associated to the ADN record.
+
+ Data type: TUint8
+
+ Modes: WCDMA */
+ ETagPBHiddenInfo =0xCA,
+ ETagPBDateTime =0xCB,
+ ETagPBDuration =0xCC,
+ ETagPBCallStatus =0xCD,
+ ETagPBEntryStatus =0xCE
+ };
+
+
+ // API/TSY internal type
+ struct TPBIndexAndNumEntries
+/** A structure to hold the phone book index and number of entries. */
+ {
+ /** Index for the phone book. */
+ TInt iIndex;
+ TInt iNumSlots;
+ };
+
+ IMPORT_C void Read(TRequestStatus& aReqStatus, TInt aIndex, TInt aNumSlots, TDes8& aPBData) const;
+ IMPORT_C void Write(TRequestStatus& aReqStatus, const TDesC8& aPBData, TInt& aIndex) const;
+
+protected:
+ IMPORT_C void ConstructL();
+private:
+ RMobilePhoneBookStore(const RMobilePhoneBookStore&);
+ };
+
+/*********************************************************/
+//
+// RMobileConferenceCall
+//
+/*********************************************************/
+
+
+
+class CMobileConferenceCallPtrHolder;
+
+class RMobileConferenceCall : public RTelSubSessionBase
+/** Provides access to conference call functionality provided by TSY.
+
+Conference calls allow users to conduct multi-connection voice calls, for example
+simultaneous communication to more than one remote party. All participants
+within a conference call can hear and speak to each other. There is a controlling
+party that initiates and manages the conference.
+
+Conference calling is possible in both GSM and CDMA mode and the actions to
+initiate a 3-way conference are the same in either mode. However, GSM conference
+calls offer more functionality and the number of remote parties is limited
+in CDMA mode to 2 and in GSM mode to 5.
+
+The Multimode ETel API uses a new sub-session called RMobileConferenceCall
+as a model for a conference call. The conference call object will be an aggregation
+of all the RMobileCall objects that are part of the conference call. It will
+be possible for clients to manipulate both the conference call as a whole
+and individual calls within a conference call depending on the dynamic capabilities
+of each of these objects.
+
+Please note that RMobileConferenceCall is replacing the RCallGroup abstraction
+used in the GSM API. This was an optimisation decision. The call group abstraction
+placed a large burden on a TSY to create call groups, monitor the calls in
+each group and trigger notification when calls were added or moved, probably
+even when a conference call was not ongoing. Clients will probably only open
+a RMobileConferenceCall when the user has decided to make a conference call
+and by having just one object replace three call groups it will also reduce
+the number of notifications that would trigger in response to conference call
+events. With a view to the future, without call groups there are also no longer
+any restrictions to the allowed types of active calls (simultaneous, separate
+voice and data calls are possible).
+
+The methods within this section must be supported if the TSY supports MobileConferenceCall
+functional unit.
+
+*/
+ {
+public:
+ IMPORT_C RMobileConferenceCall();
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+
+/** Conference call capabilities. */
+ enum TMobileConferenceCallCaps
+ {
+ /** Indicates that a conference call can be created. */
+ KCapsCreate = 0x00000001,
+ /** Indicates that a conference call can be terminated. */
+ KCapsHangUp = 0x00000002,
+ /** Indicates that a conference call exists and can be swapped to the opposite
+ state (active or hold). */
+ KCapsSwap = 0x00000004
+ };
+
+ IMPORT_C TInt GetCaps(TUint32& aCaps) const;
+ IMPORT_C void NotifyCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
+
+ IMPORT_C void CreateConference(TRequestStatus& aReqStatus) const;
+ IMPORT_C void AddCall(TRequestStatus& aReqStatus, const TName& aCallName) const;
+ IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
+ IMPORT_C void HangUp(TRequestStatus& aReqStatus) const;
+ IMPORT_C TInt EnumerateCalls(TInt& aCount) const;
+ IMPORT_C TInt GetMobileCallInfo(TInt aIndex, TDes8& aCallInfo) const;
+
+/** Conference call status. */
+ enum TMobileConferenceStatus
+ {
+ /** The conference call is in the idle state. */
+ EConferenceIdle,
+ /** The conference call is in the active, connected state. */
+ EConferenceActive,
+ /** The conference call is in the held, connected state. */
+ EConferenceHold
+ };
+
+ IMPORT_C TInt GetConferenceStatus(TMobileConferenceStatus& aStatus) const;
+ IMPORT_C void NotifyConferenceStatusChange(TRequestStatus& aReqStatus, TMobileConferenceStatus& aStatus) const;
+
+/** Conference events. */
+ enum TMobileConferenceEvent
+ {
+ /** A call has been added to the conference. */
+ EConferenceCallAdded, // Name of the call added returned in aCallName
+ /** A call has been removed from the conference. */
+ EConferenceCallRemoved, // Name of the call terminated returned in aCallName
+ /** Names of the two calls used to build the conference call returned in aCallName. */
+ EConferenceBuilt, // Names of the two calls used to build the conference call returned in aCallName
+ /** No name provided */
+ EConferenceTerminated, // No name provided
+ /** No name provided. */
+ EConferenceSwapped, // No name provided
+ /** Name of the call being seperated. */
+ EConferenceSplit // Name of the call being seperated
+ };
+
+ IMPORT_C void NotifyConferenceEvent(TRequestStatus& aReqStatus, TMobileConferenceEvent& aEvent, TName& aCallName) const;
+
+private:
+ CMobileConferenceCallPtrHolder* iMmPtrHolder;
+ RMobileConferenceCall(const RMobileConferenceCall&);
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+ };
+
+
+/////////////////////////////////////////////////////////////////////////////////////
+//
+// EAP-SIM Authentication functional unit
+//
+/////////////////////////////////////////////////////////////////////////////////////
+
+class CMobileSmartCardEapPtrHolder;
+
+/**
+This sub-session opens under RMobilePhone.
+
+RMobileSmartCardEap provides the client with access to a Smart Card
+Application's EAP-capability (if one exists).
+
+(See ETSI TS 102.310 v6.2.0 and RFC3748)
+
+To submit authentication challenges or requests, a client must use
+CAsyncSmartCardEapAuthentication in conjunction with this sub-session.
+
+@see CAsyncSmartCardEapAuthentication
+@publishedPartner
+@prototype
+*/
+class RMobileSmartCardEap : public RTelSubSessionBase
+ {
+ friend class CAsyncSmartCardEapAuthentication;
+
+public:
+ /**
+ Class encapsulates EAP request packet data for authentication.
+
+ @see CAsyncSmartCardEapAuthentication
+
+ @publishedPartner
+ @prototype
+ */
+ class CEapAuthenticateRequestDataV6 : public CBase
+ {
+ public:
+ IMPORT_C static CEapAuthenticateRequestDataV6* NewL();
+ IMPORT_C virtual void ExternalizeL(TPtr8& aBuffer);
+ IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer);
+ IMPORT_C TUint VersionId() const;
+ IMPORT_C TPtr8 GetEapReqPacket() const;
+ IMPORT_C void SetEapReqPacketL(const TDesC8& aData);
+ IMPORT_C ~CEapAuthenticateRequestDataV6();
+
+ private:
+ CEapAuthenticateRequestDataV6();
+ void ConstructL();
+
+ protected:
+ /**
+ ETelMM's supported version.
+ */
+ TUint iVersionId;
+
+ public:
+ /**
+ EAP-request packet in a flat buffer.
+ */
+ CBufFlat* iEapReqPacket;
+ };
+
+ IMPORT_C RMobileSmartCardEap();
+
+ /**
+ EAP types are represented by one byte for standard EAP methods, and
+ eight bytes for extended methods. Each byte specified in the
+ TEapType buffer should represent one semi-octet. Therefore, a
+ maximum of 16-chars are needed for representing any possible EAP
+ type. (See section 5.2 of ETSI TS 102.310 v6.2.0.)
+
+ @see RMobileSmartCardEap::TEapType
+
+ @publishedPartner
+ @prototype
+ */
+ enum { KEapTypeSize = 16 };
+
+ /**
+ A typedef'd buffer to hold the EAP type for the subsequent
+ authentication that will be carried out on the Smart Card
+ Application.
+
+ The value specified must correspond to the pre-allocated type
+ identifiers for various EAPs (see
+ http://www.iana.org/assignments/eap-numbers). Some known values
+ are given in etelmm.h.
+
+ The type must be specified in hexadecimal format, where each
+ character represents one semi-octet.
+
+ @see KETelSmartCardEapTypeMD5
+ @see KETelSmartCardEapTypeTLS
+ @see KETelSmartCardEapTypeSIM
+ @see KETelSmartCardEapTypeAKA
+ @see KETelSmartCardEapTypeTTLS
+ @see RMobileSmartCardEap::Open()
+
+ @publishedPartner
+ @prototype
+ */
+ typedef TBuf8<KEapTypeSize> TEapType;
+
+ IMPORT_C TInt Open(RMobilePhone& aPhone, const RMobilePhone::TAID& aAID, const TEapType& aEapType);
+ IMPORT_C void InitialiseEapMethod(TRequestStatus& aReqStatus);
+ IMPORT_C void Close();
+
+ /**
+ Authentication status of the EAP supporting UICC application (See
+ section 7.2 of ETSI TS 102.310 v6.2.0). One of these values is
+ returned on completion of an
+ RMobileSmartCardEap::GetAuthenticationStatus() request.
+
+ @see RMobileSmartCardEap::GetAuthenticationStatus()
+
+ @publishedPartner
+ @prototype
+ */
+ enum TEapAuthStatus
+ {
+ /**
+ No authentication started
+ */
+ ENoAuthStarted, // 0
+ /**
+ Authenticating
+ */
+ EAuthenticating, // 1
+ /**
+ Authentication complete
+ */
+ EAuthenticated, // 2
+ /**
+ Held (authentication failure)
+ */
+ EHeld // 3
+ };
+
+ IMPORT_C void GetAuthenticationStatus(TRequestStatus& aReqStatus, TEapAuthStatus& aAuthStatus);
+
+ /**
+ TEapUserIdType should be used to request an identity from EF_PUId
+ or EF_Ps, when making an RMobileSmartCardEap::GetUserIdentity()
+ request.
+ (See sections 7.3 and 7.4, respectively, of ETSI TS 102.310 v6.2.0,
+ and RFC2486 - The Network Access Identifier).
+
+ @see RMobileSmartCardEap::GetUserIdentity()
+ @see RMobileSmartCardEap::TEapUserIdentityV6
+
+ @publishedPartner
+ @prototype
+ */
+ enum TEapUserIdType
+ {
+ /** Identity is permanent type */
+ EPermanentIdentity, // 0
+ /** Identity is pseudonym type */
+ EPseudonymIdentity // 1
+ };
+
+ /**
+ Maximum permitted size of identity data.
+ */
+ enum { KEapIdentityMaxSize = 255 };
+
+ /**
+ EAP User Identity data. Ids are stored in EF_PUId or EF_Ps
+ (specified in sections 7.3 and 7.4, respectively, of ETSI TS
+ 102.310 v6.2.0).
+
+ @see RMobileSmartCardEap::GetUserIdentity()
+
+ @publishedPartner
+ @prototype
+ */
+ class TEapUserIdentityV6 : public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TEapUserIdentityV6();
+ public:
+ /**
+ EAP-IDENTITY Data.
+ */
+ TBuf8<KEapIdentityMaxSize> iEapId;
+ };
+
+ /**
+ A typedef'd packaged TEapUserIdentityV6 for passing through a
+ generic API method.
+
+ @publishedPartner
+ @prototype
+ */
+ typedef TPckg<TEapUserIdentityV6> TEapUserIdentityV6Pckg;
+
+ IMPORT_C void GetUserIdentity(TRequestStatus& aReqStatus,
+ TEapUserIdType aRequestedIdType,
+ TDes8& aUserId);
+
+ /**
+ TEapKeyV6 should be used to request one of (currently) two keys
+ available on the EF_EAPKEYS of the UICC application (see section
+ 7.1 of ETSI TS 102.310 v6.2.0). This enumeration type should be
+ used in RMobileSmartCardEap::GetEapKey() to specify the key to be
+ retrieved.
+
+ @see RMobileSmartCardEap::TEapKeyV6
+ @see RMobileSmartCardEap::GetEapKey()
+
+ @publishedPartner
+ @prototype
+ */
+ enum TEapKeyTag
+ {
+ /**
+ Used to request Master Session Key.
+ */
+ EEapKeyMSK = 0x80,
+ /**
+ Used to request Extended Master Session Key.
+ */
+ EEapKeyEMSK = 0x81
+ };
+
+ /**
+ Maximum size of an EAP Key stored on the DF_EAP's EF_EAPKEYS.
+ 255 as each key has a length that can be specified by exactly one
+ byte (see section 7.1 of ETSI TS 102.310 v6.2.0).
+
+ @publishedPartner
+ @prototype
+ */
+ enum { KEapKeyMaxSize = 255 };
+
+ /**
+ EAP authentication key data.
+
+ @see RMobileSmartCardEap::GetEapKey()
+
+ @publishedPartner
+ @prototype
+ */
+ class TEapKeyV6 : public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TEapKeyV6();
+ public:
+ /**
+ EAP-KEY Data.
+ */
+ TBuf8<KEapKeyMaxSize> iEapKey;
+ };
+
+ /**
+ A typedef'd packaged TEapKeyV6 for passing through a generic API
+ method.
+
+ @publishedPartner
+ @prototype
+ */
+ typedef TPckg<TEapKeyV6> TEapKeyV6Pckg;
+
+ IMPORT_C void GetEapKey(TRequestStatus& aReqStatus, const TEapKeyTag aRequestedKey, TDes8& aKey);
+
+ /**
+ Status of the DF_EAP this subsession refers to. The status is
+ basically an indication of whether the DF is in use by another sub-
+ session client instance.
+
+ NotifyEapMethodAccessStatusChange() will give a notification when
+ the status changes.
+
+ Status will change when the first client calls
+ InitialiseEapMethod() on this sub-session. When the same client
+ calls ReleaseEapMethod() (or Close()), the status will change
+ again. This allows mutually exclusive access to the DF_EAP. All
+ other RMobileSmartCardEap hanles will get an error if they attempt
+ to make requests that access the same DF_EAP.
+
+ @see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange()
+ @see RMobileSmartCardEap::ReleaseEapMethod()
+ @see RMobileSmartCardEap::InitialiseEapMethod()
+
+ @publishedPartner
+ @prototype
+ */
+ enum TEapMethodAccessStatus
+ {
+ /**
+ AID/DF_EAP has been reset, and the DF_EAP has not been
+ initialised by any other instance of RMobileSmartCardEap.
+ */
+ EEapMethodAvailable,
+ /**
+ Another instance of RMobileSmartCardEap has initialised first
+ and taken ownership of the DF_EAP. The DF_EAP is currently
+ active and EAP requests can be made.
+ */
+ EEapMethodInUseApplicationActive,
+ /**
+ This instance of RMobileSmartCardEap still owns the lock on the
+ DF_EAP, but the application has been deactivated elsewhere.
+ The client should re-initialise before making further EAP
+ requests.
+
+ @see RMobileSmartCardEap::InitialiseEapMethod()
+ */
+ EEapMethodInUseApplicationInactive,
+ /**
+ Lock on the DF_EAP has been released, but another DF_EAP method
+ is in use under the same AID, thus, cannot reset/initialise
+ this subsessions EAP method. Client can only post a
+ notification and wait till status changes to
+ EEapMethodAvailable.
+
+ @see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange()
+ */
+ EEapMethodUnableToInitialise
+ };
+
+ IMPORT_C TInt ReleaseEapMethod();
+ IMPORT_C TInt GetEapMethodAccessStatus(TEapMethodAccessStatus& aEapMethodStatus);
+ IMPORT_C void NotifyEapMethodAccessStatusChange(TRequestStatus& aReqStatus, TEapMethodAccessStatus& aEapMethodStatus);
+ IMPORT_C TBool IsEapMethodOwner() const;
+
+protected:
+ IMPORT_C void ConstructL();
+ IMPORT_C void Destruct();
+
+private:
+ RMobileSmartCardEap(const RMobileSmartCardEap&);
+
+ TChar SeptChar(TInt aDigit);
+ void ConvertBinToText(const TDesC8& aBinData, TDes& aText);
+
+private:
+ /**
+ Pointer Holder for the RMobileSmartCardEap sub-session requests.
+ */
+ CMobileSmartCardEapPtrHolder* iMmPtrHolder;
+ /**
+ True if this object is the first to request InitialiseEapMethod()
+ on its <AID,EAPType> when the status is EEapMethodAvailable.
+ I.e. True only for the instance of RMobileSmartCardEap that
+ successfully passes the Wait() on iSemaphore.
+ */
+ TBool iOwnsEapMethodLock;
+ /**
+ Semaphore is actually owned by TSY, and used by all instances of
+ RMobileSmartCardEap to stop multiple access to the same EAP method
+ on any one application.
+ */
+ RSemaphore iSemaphore;
+
+ }; // RMobileSmartCardEap
+
+/////////////////////////////////////////////////////////////////////////////////////
+//
+// LCS-MO-LR AND LCS-MT-LR
+//
+/////////////////////////////////////////////////////////////////////////////////////
+class CMobileLocationServicesPtrHolder;
+
+/**
+This sub-session opens under RMobilePhone.
+
+A new RMobileLocationServices class is used to add the ETelMM Support for Mobile Terminating Location Request,
+Mobile Originating Location Requests, A-Gps assistance data for the LBS Framework.
+
+RMobileLocationServices is derived from RTelSubSessionBase.RMobileLocationServices lists the
+APIs,which provided the support for Mtlr, Molr, A-Gps assistance data requests.
+*/
+class RMobileLocationServices : public RTelSubSessionBase
+ {
+public:
+
+ IMPORT_C RMobileLocationServices();
+ IMPORT_C TInt Open(RMobilePhone& aPhone);
+ IMPORT_C void Close();
+ /**
+ Maximum length of the array used for TLcsRequestorIdString.
+ */
+ enum { KLcsMaxRequestorIdStringSize = 256 };
+ /**
+ Maximum length of the array used for TLcsClientBufferName.
+ */
+ enum { KLcsMaxClientNameBufferSize = 256 };
+ /**
+ Maximum length of the array used for TLcsClientExternalID.
+ */
+ enum { KLcsMaxClientExternalIdSize = 64 };
+ /**
+ Maximum length of the array used for TLcsLocationEstimate.
+ */
+ enum { KLcsMaxLocationEstimateSize = 64 };
+ /**
+ Maximum length of the array used for TLcsVelocityEstimate.
+ */
+ enum { KLcsMaxVelocityEstimateSize = 64 };
+ /**
+ Maximum length of the array used for TLcsGpsAssistanceData.
+ */
+ enum { KLcsMaxGpsAssistanceDataSize = 64 };
+ /**
+ A typedef'd buffer which holds the External ClientName Buffer.
+ @see KLcsMaxClientNameBufferSize
+ */
+ typedef TBuf8<KLcsMaxClientNameBufferSize> TLcsClientNameBuffer;
+ /**
+ A typedef'd buffer which holds the RequestorId String.
+ @see KLcsMaxRequestorIdStringSize
+ */
+ typedef TBuf8<KLcsMaxRequestorIdStringSize> TLcsRequestorIdString;
+ /**
+ A typedef'd buffer which holds the Gps Assistance Data.
+ @see KLcsMaxGpsAssistanceDataSize
+ */
+ typedef TBuf8<KLcsMaxGpsAssistanceDataSize> TGpsAssistanceData;
+ /**
+ A typedef'd buffer which holds the External ClientId.
+ @see KLcsMaxClientExternalIdSize
+ */
+ typedef TBuf8<KLcsMaxClientExternalIdSize> TLcsClientExternalID;
+ /**
+ A typedef'd TUint8 which holds the Data Coding Scheme information.
+ */
+ typedef TUint8 TLcsDataCodingScheme;
+ /**
+ A typedef'd buffer which holds the Location Estimate.
+ @see KLcsMaxLocationEstimateSize
+ */
+ typedef TBuf8<KLcsMaxLocationEstimateSize> TLcsLocationEstimate;
+ /**
+ A typedef'd buffer which holds the Velocity Estimate.
+ @see KLcsMaxVelocityEstimateSize
+ */
+ typedef TBuf8<KLcsMaxVelocityEstimateSize> TLcsVelocityEstimate;
+ /**
+ A typedef'd buffer which holds the GpsAssistanceData type.
+ @see KLcsMaxGpsAssistanceDataSize
+ */
+ typedef TBuf8<KLcsMaxGpsAssistanceDataSize> TGpsAssistanceData;
+ typedef TUint8 TTransactionIdentifier;
+ typedef TUint8 TGPSI;
+ /**
+ Note:Refer to 3GPP TS 23.271(Functional stage 2 description of Location Services (LCS)),
+ 3GPP TS 24.030(Location Services (LCS); Supplementary service operations - Stage 3) and
+ 3GPP TS 24.080(Mobile radio interface layer 3 supplementary services specification; Formats and coding)
+ for further details of MTLR and MOLR member data.
+ */
+ /*********************************************************************/
+ // MTLR //
+ /*********************************************************************/
+ /**
+ TNotificationType lists the various types of Notification
+ that can be expected from any MTLR-Location Notification coming from the Network,
+ These types depend on the Subscription Profile of the UE.
+
+ One of the TNotificationType is expected to be retrieved from the Network,
+ when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.
+ @internalAll
+ */
+ enum TNotificationType
+ {
+ /**
+ Notification Type Unknown
+ */
+ ENotificationTypeUnknown,
+ /**
+ The Location Request is accepted by default
+ */
+ ENotifyLocationAllowed,
+ /**
+ This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request,
+ and that the user is expected to respond by granting/denying the request. By defualt, if the user
+ does not provide a response, the request is granted
+ */
+ ENotifyAndVerify_LocationAllowedIfNoResponse,
+ /**
+ This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request,
+ and that the user is expected to respond by granting/denying the request. By defualt, if the
+ user does not provide a response, the request is denied.
+ */
+ ENotifyAndVerify_LocationNotAllowedIfNoResponse,
+ /**
+ The network sends the information to the UE that the external client has privacy overide capability,
+ This indicator is received when an authenticated or emergency client had sent the request.
+ */
+ ELocationPrivacyOverride,
+ /**
+ This enum is used to notify the UE that an incoming MTLR request was denied by the network for any of various
+ reasons.
+ */
+ ELocationNotAllowed
+ };
+
+
+ /**
+ TLocationEstimateType lists the various types of LocationEstimate
+ that can be expected from any MTLR-Location Notification request coming from the Network,
+ These types depend on the Subscription Profile of the UE.
+
+ One of the TLocationEstimateType is expected to be retrieved from the Network,
+ when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.
+ @internalAll
+ */
+ enum TLocationEstimateType
+ {
+ /**
+ Location Estimate Type Unknown.
+ */
+ ELocationEstimateTypeUnknown,
+ /**
+ The External Client has requested for the Current Location of
+ the UE.
+ */
+ ECurrentLocation,
+ /**
+ The External Client has requested for the Current Location of
+ the UE.Incase,if the request is accepted,But still it fails to
+ generate the Location report because of Measurement Control Failure.
+ The Client receives the Last Known Location.
+ */
+ ECurrentOrLastKnownLocation,
+ /**
+ The External Client has requested for the initial location of the UE. The current
+ location of the UE may or may not be the initial location.
+ */
+ EInitialLocation
+ };
+
+ /**
+ TLcsClientNameV1 holds the details of the name of the External client,
+ who is making the request via Network.
+ TLcsClientNameV1 is used by RMobileLocationServices::NotifyMtlr() request.
+ @see TLcsDataCodingScheme
+ @see TLcsClientNameBuffer
+ @internalAll
+ */
+ class TLcsClientNameV1
+ {
+ public:
+ /**
+ TLcsDataCodingScheme holds the Data Coding Scheme information which is used
+ to extract the ExternalClient name.
+ */
+ TLcsDataCodingScheme iLcsDataCodingScheme;
+ /**
+ TLcsClientNameBuffer holds the Client name
+ */
+ TLcsClientNameBuffer iLcsClientNameBuffer;
+ };
+
+ /**
+ TLcsRequestorIDV1 holds the details of the RequestorId i.e the details of the
+ Network,Which is carrying the request of External Client to UE
+ TLcsRequestorIDV1 is used by RMobileLocationServices::NotifyMtlr() request.
+ @see TLcsDataCodingScheme
+ @see TLcsRequestorIdString
+ @internalAll
+ */
+ class TLcsRequestorIDV1
+ {
+ public:
+ /**
+ TLcsDataCodingScheme holds the Data Coding Scheme information which is used
+ to extract the RequestorId String.
+ */
+ TLcsDataCodingScheme iLcsDataCodingScheme;
+ /**
+ TLcsRequestorIdString holds the RequestorId String
+ */
+ TLcsRequestorIdString iLcsRequestorIdString;
+ };
+
+ /**
+ TLocationExternalInfoV1 holds the details of the External client and the Requestor
+ TLocationExternalInfoV1 is used by RMobileLocationServices::NotifyMtlr() request
+ @see TLcsClientExternalID
+ @see TLcsClientNameV1
+ @see TLcsRequestorIDV1
+ @internalAll
+ */
+ class TLocationExternalInfoV1
+ {
+ public:
+ /**
+ TLcsClientExternalID gives the id of the External client.
+ */
+ TLcsClientExternalID iLcsClientID;
+ /**
+ TLcsClientNameV1 holds the name of the External Client.
+ */
+ TLcsClientNameV1 iLcsClientName;
+ /**
+ TLcsRequestorIDV1 gives the details of requestor id
+ */
+ TLcsRequestorIDV1 iLcsRequestorID;
+ };
+
+ /**
+ TNotifyMtlrV7 holds the details of the MTLR request made by the External client.
+ TNotifyMtlrV7 is used by RMobileLocationServices::NotifyMtlr() request
+ @see TNotificationType
+ @see TLocationEstimateType
+ @see TLocationExternalInfoV1
+ @internalAll
+ */
+ class TNotifyMtlrV7: public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TNotifyMtlrV7();
+ public:
+ /**
+ TNotificationType holds the type of notification request being made
+ */
+ TNotificationType iNotificationType;
+ /**
+ TLocationEstimateType holds the type of LocationEstimate is requested
+ */
+ TLocationEstimateType iMtlrLocationEstimateType;
+ /**
+ TLocationExternalInfoV7 holds the details of the External client.
+ */
+ TLocationExternalInfoV1 iLocationInfo;
+ };
+
+ /**
+ A typedef'd packaged TNotifyMtlrV7 for passing through a
+ generic API method.
+
+ @internalAll
+ */
+ typedef TPckg<TNotifyMtlrV7> TNotifyMtlrV7Pckg;
+
+ //MTLR-RESPONSE
+ /**
+ TMtlrResponse is used by the OverLoaded RMobileLocationServices::SendMtlrResponse() API
+ It holds the type of response being sent back for the MTLR request made.
+ @internalAll
+ */
+
+ enum TMtlrResponse
+ {
+ /**
+ Mtlr Response Unknown.
+ */
+ EMtlrResponseUnknown,
+ /**
+ The UE has denied the Location Request of the External client.
+ @see RMobileLocationServices::SendMtlrResponse()
+ */
+ EPermissionDenied ,
+ /**
+ The UE has granted the Location Request of the External client.
+ @see RMobileLocationServices::SendMtlrResponse()
+ */
+ EPermissionGranted
+ };
+
+ /**
+ TMtlrError is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API
+ It holds the type of Error response being sent back for the MTLR request made.
+ @internalAll
+ */
+ enum TMtlrError
+ {
+ /**
+ Mtlr Error Unknown.
+ */
+ EMtlrErrorUnknown,
+ /**
+ This response is sent back to the network when System has failed to
+ do the privacy check due to some Miscellaneous reasons
+ */
+ ESystemFailure ,
+ /**
+ The response is sent when the privacy verification has failed because of Unexpected data
+ values retrieved from the Location Notification request generated by the Network.
+ This generates an Error-Prone response from UE
+ */
+ EUnexpectedDataValue
+ };
+
+ /**
+ TMtlrReject is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API
+ It holds the details of the Response being rejected due to one of the problems reported to the UE
+ for the MTLR request being made.
+ @internalAll
+ */
+ enum TMtlrReject
+ {
+ /**
+ Mtlr Reject Unknown.
+ */
+ EMtlrRejectUnknown,
+ /**
+ This indication is given under a scenario where the UE wants to reject a request,
+ It is done by invoking Duplicate ID's.
+ */
+ EDuplicateInvokeID,
+ /**
+ This indication is given under a scenario where the UE wants to reject a request,
+ It is done by saying the operation is not recognized
+ */
+ EUnrecognizedOperation,
+ /**
+ This invokes a problem indicating Resource Limitation.
+ */
+ EResourceLimitation,
+ /**
+ This Invokes a problem initiating release.
+ */
+ EInitiatingRelease,
+ /**
+ This invokes a problem indicating that the ID linked with the Client information
+ is unrecognized
+ */
+ EUnrecognizedLinkedID,
+ /**
+ This invokes a problem of Linked Response Unexpected
+ */
+ ELinkedResponseUnexpected,
+ /**
+ This invokes a problem of Unexpected Linked Operation
+ */
+ EUnexpectedLinkedOperation,
+ /**
+ This invokes a problem of Mistyped Parameter.
+ */
+ EMistypedParameter
+ };
+
+ /**************************************************************/
+ // MOLR //
+ /**************************************************************/
+
+ /**
+ TMolrType is used by the SendMolr() API.
+ This gives an indication of type of Molr request the UE wants to invoke
+ @internalAll
+ */
+ enum TMolrType
+ {
+ /**
+ MolrType UnKnown
+ */
+ EMolrTypeUnknown,
+ /**
+ UE is requesting the Network for its Location Estimate
+ */
+ ELocationEstimate,
+ /**
+ UE is requesting the Network for GPS Assistance data
+ */
+ EAssistanceData,
+ /**
+ UE is requesting the Network for DecipheringKeys
+ */
+ EDecipheringKeys
+ };
+
+ /**
+ TResponseTime is used by SendMolr() API
+ This enum holds the various types of delay that an UE is expecting.
+ @internalAll
+ */
+ enum TResponseTime
+ {
+ /**
+ Response Time Unknown.
+ */
+ EResponseTimeunknown,
+ /**
+ This enum value indicates that the UE expects a Less Time Delay
+ from Network in responding to its request
+ */
+ ELowDelay,
+ /**
+ This enum value indicates that the UE expects a Long Time Delay
+ from Network in responding to its request and is tolerant to it.
+ */
+ EDelayTolerant
+ };
+
+ /**
+ TLocationMethod is used by SendMolr() API
+ This is an enum which lists out all different types of Location methods that an UE can request
+ @internalAll
+ */
+ enum TLocationMethod
+ {
+ /**
+ Location Method Unknown
+ */
+ ELocationMethodunknown,
+ /**
+ This indication is given under a scenario where the UE wants a MS (Mobile Station) Based Location Fix.
+ This can be termed as UE Assisted Location Fix(EOTD-Enhanced observed time difference).
+ */
+ EMSBasedEOTD,
+ /**
+ This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted Location Fix.
+ This can be termed out as UE based location fix.
+ */
+ EMSAssistedEOTD,
+ /**
+ This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted GPS data.
+ */
+ EMSAssistedGPS,
+ /**
+ This indication is given under a scenario where the UE wants a MS (Mobile Station) based location fix
+ (OTDOA-Observed time difference of arrival).
+ */
+ EMSBasedOTDOA
+ };
+
+ /**
+ TQosV1 is used by SendMolr() API
+ This is a class with details of accuracy of Position information, Response Time,
+ expected to be received from the network.
+ @see TResponseTime
+ @internalAll
+ */
+ class TQosV1
+ {
+ public:
+ /**
+ This gives an information of the amount of Horizontal accuracy that the UE is expecting.
+ */
+ TUint8 iHorizontalAccuracy;
+ /**
+ This gives an information of the amount of Vertical accuracy that the UE is expecting.
+ */
+ TUint8 iVerticalAccuracy;
+ /**
+ This enum indicates the Response Time expected by the UE to receive a response for its MOlr request.
+ */
+ TResponseTime iResponseTime;
+ };
+
+ /**
+ TMolrErrors is used by SendMolr() API
+ This is an enum which lists out all the possible errors that can be
+ reported to UE by an External Client or the Network.
+ @internalAll
+ */
+ enum TMolrErrors
+ {
+ /**
+ Molr Error Unknown
+ */
+ EMolrErrorUnknown,
+ /**
+ This indication is given to the UE when the Location Report is unable to reach the
+ External Client due to some failure in the Network Connections.
+ */
+ EMolrSystemFailure,
+ /**
+ This indication is given back to the UE by the Network to the UE or by the
+ External Client to the UE,where the UE generated MOLR has some unexpected values.
+ */
+ EMolrUnexpectedDataValue,
+ /**
+ This indication is given back to the UE by the Network to the UE or by the
+ External Client to the UE,where the UE generated MOLR had a data discrepancy
+ */
+ EMolrDataMissing,
+ /**
+ This indication is given by the Network to the UE,
+ when the UE is not given a facility to make a MOLR request
+ */
+ EMolrFacilityNotSupported,
+ /**
+ This indication is given by the Network to the UE,
+ when the subscription profile of the UE doesn't match with the requests made by it.
+ */
+ EMolrSS_SubscriptionViolation,
+ /**
+ This indication is given by the Network to the UE,
+ when the UE or the Network failed to generate the Location estimate
+ */
+ EMolrPositionMethodFailure
+ };
+
+ /**
+ TStartMolrV7 is used by SendMolr() API
+ This class lists the details send by UE to Network when a Molr request is being made.
+ @see TMolrType
+ @see TQosV1
+ @see TLocationEstimateType
+ @see TLcsClientExternalID
+ @see TGpsAssistanceData
+ @see TLocationMethod
+ @internalAll
+ */
+ class TStartMolrV7: public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TStartMolrV7();
+ public:
+ /**
+ TMolrType holds the type of Molr request being made
+ */
+ TMolrType iMolrType;
+ /**
+ TQosV1 lists out the Quality of Service expected by UE
+ */
+ TQosV1 iQos;
+ /**
+ Type of Location Estimate requested
+ */
+ TLocationEstimateType iMolrLocationEstimateType;
+ /**
+ Id of the External client
+ */
+ TLcsClientExternalID iLcsClientExternalID;
+ /**
+ Type of GpsAssistanceData
+ */
+ TGpsAssistanceData iGpsAssistanceData;
+ /**
+ Type of Location method requested
+ */
+ TLocationMethod iLocationMethod ;
+ /**
+ Type of Service requested
+ */
+ TUint8 iLcsServiceTypeID;
+ };
+ /**
+ A typedef'd packaged TStartMolrV7 for passing through a
+ generic API method.
+
+ @internalAll
+ */
+ typedef TPckg<TStartMolrV7> TStartMolrV7Pckg;
+
+ /**
+ TMolrReturnResultV7 is used by SendMolr() API
+ This class lists all the Molr return results that can be expected for the Molr request
+ being made.
+ @see TLcsLocationEstimate
+ @see TLcsVelocityEstimate
+ @see TMolrErrors
+ @internalAll
+ */
+ class TMolrReturnResultV7: public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TMolrReturnResultV7();
+ public:
+ /**
+ This gives the Location Estimate of the UE
+ */
+ TLcsLocationEstimate iLocationEstimate;
+ /**
+ This gives the Velocity Estimate of the UE
+ */
+ TLcsVelocityEstimate iVelocityEstimate;
+ /**
+ This gives the indication of the type of error occured
+ */
+ TMolrErrors iMolrErrors;
+ };
+
+ /**
+ A typedef'd packaged TMolrReturnResultV7 for passing through a
+ generic API method.
+
+ @internalAll
+ */
+ typedef TPckg<TMolrReturnResultV7> TMolrReturnResultV7Pckg;
+
+ //**************************************//
+ // Measurement Control Data structures //
+ //**************************************//
+
+ enum
+ {
+ /**Maximum number of monitored cells RACH*/
+ KMaxMonitoredCells = 8,
+ /**Maximum number of satellites*/
+ KMaxSat = 16,
+ /**GlobalHealth size. 364 bits =46 bytes (Rounded) */
+ KGlobalHealthSize = 46
+ };
+
+ /**This enum contains the possible types of measurement commands.*/
+ enum TMeasurementCmd
+ {
+ /**Measurement Command Unknown*/
+ EMeasCommandUnknown,
+ /**Setup a new measurement*/
+ ESetup,
+ /**Modify a previously defined measurement, e.g. to change the reporting criteria*/
+ EModify,
+ /**Indicates to stop a measurement and clear all information in the UE that are related to that measurement */
+ ERelease,
+ };
+
+ /**This enum contains the possible positioning method types*/
+ enum TUePosMethodType
+ {
+ /**Positioning Method Type unknown*/
+ EPosMethodTypeUnknown,
+ /**UE Assisted : The network computes the location of the UE.*/
+ EUeAssisted,
+ /**UE Based : The UE computes the location of itself*/
+ EUeBased,
+ };
+
+ /**This enum contains the possible positioning methods*/
+ enum TPosMethod
+ {
+ /**Positioning Method unknown*/
+ EPosMethodUnknown,
+ /**OTDOA may be selected by the SRNC as the method to be used on receipt of an LCS positioning request from the CN */
+ EOtdoa,
+ /**These methods make use of UEs, which are equipped with radio receivers capable of receiving GPS signals*/
+ EGps,
+ /**Use either OTDOA or GPS positioning method.*/
+ EOtdoaOrGps,
+ /**
+ In the cell ID based (i.e. cell coverage) method, the position of an UE is
+ estimated with the knowledge of its serving Node B. The information about the serving
+ Node B and cell may be obtained by paging,locating area update, cell update, URA update, or routing area update.
+ */
+ ECellID
+ };
+
+ /**
+ This class contains the information which is part of the Navigation Model.
+ This can be requested by the UE as part of additional request.
+ */
+ class TSatDataV1
+ {
+ public:
+ /**Satellite identity*/
+ TUint8 iSatID;
+ /**Issue of Data Ephemeris for SatID*/
+ TUint8 iIode;
+ };
+
+ /**
+ This class contains the additional information that can be requested by the UE.
+ */
+ class TNavModelAddlDataReqV1
+ {
+ public:
+ /**GPS time in weeks*/
+ TUint16 iGpsWeek;
+ /**GPS time of ephemeris in hours of the latest ephemeris set contained by the UE.*/
+ TUint8 iGpsToe;
+ /**Ephemeris age tolerance of the UE to UTRAN in hours.*/
+ TUint8 iTToeLimit;
+ /**Satellite Identities
+ @see TSatDataV1*/
+ TSatDataV1 iSatData[KMaxSat];
+ };
+
+ /**This class contains the indicators to request for additional assistance data from the network.*/
+ class TGpsAddlAssistDataReqV1
+ {
+ public:
+ /**ETrue indicates Almanac Data is requested
+ @see TAlmanacV1*/
+ TBool iAlmanacRequest;
+ /**ETrue indicates UTC model Data is requested
+ @see TUtcModelV1*/
+ TBool iUtcModelRequest;
+ /**ETrue indicates Ionospheric Model Data is requested
+ @see TUtcModelV1*/
+ TBool iIonosphericModelRequest;
+ /**ETrue indicates Navigation model Data is requested
+ @see TIonosphericModelV1*/
+ TBool iNavigationModelRequest;
+ /**ETrue indicates DGPS corrections Data is requested
+ @see TNavigationModelSatInfoV1*/
+ TBool iDgpsCorrectionsRequest;
+ /**ETrue indicates Reference location Data is requested
+ @see TDgpsCorrectionsV1*/
+ TBool iReferenceLocationRequest;
+ /**ETrue indicates Reference time Data is requested
+ @see TReferenceLocationV1*/
+ TBool iReferenceTimeRequest;
+ /**ETrue indicates Acquisition assistance Data is requested
+ @see TReferenceTimeV1*/
+ TBool iAcquisitionAssistanceReq;
+ /**ETrue indicates Realtime integrity Data is requested
+ @see TAcquisitionAssistanceV1*/
+ TBool iRealTimeIntegrityRequest;
+ /**This member is included only if Navigagion Model Data is requested (iNavigationModelRequest is ETrue).
+ @see TNavModelAddlDataReqV1*/
+ TNavModelAddlDataReqV1 iNavModelAddlDataReq;
+ };
+
+ /**This class contains the UE positioning reporting quantity*/
+ class TUePosReportingQuantityV1
+ {
+ public:
+ /**Holds the positioning method type*/
+ TUePosMethodType iUePosMethodType;
+ /**Holds the positioning method*/
+ TPosMethod iPosMethod;
+ /**Holds the horizontal accuracy*/
+ TInt8 iHorzAccuracy;
+ /**Holds the vertical accuracy*/
+ TInt8 iVertAccuracy;
+ /**If true the SRNC wants the UE to report the SFN-GPS timing of the reference cell.*/
+ TBool iGpsTimingOfCellWanted;
+ /**ETrue indicates that the UE is requested to send the IE "Additional assistance Data Request"
+ when the IE "UE positioning Error" is present in the UE positioning measured results.
+ EFalse indicates that the UE shall use the assistance data available.
+ */
+ TBool iAddlAssistanceDataReq;
+ };
+
+ /**This enum contains the states in which measurements are valid*/
+ enum TMeasurementValidity
+ {
+ /**Measurement Validity Unknown*/
+ EMeasValidityUnknown,
+ /**Indicates measurement is valid in CellDCH state*/
+ ECellDCH,
+ /**Indicates measurement is valid except in CellDCH state*/
+ EAllButCellDCH,
+ /**Indicates measurement is valid in all state*/
+ EAllStates
+ };
+
+ /**This enum list the SfnTow uncertainity*/
+ enum TSfnTowUncertainity
+ {
+ /**Sfn Tow Uncertainity unknown*/
+ ESfnTowUncertainityUnknown,
+ /**SfnTowUncertainity < 10*/
+ ELessThan10,
+ /**SfnTowUncertainity > 10*/
+ EMoreThan10
+ };
+
+ /**This enum lists the different GPS drift rates*/
+ enum TUtranGpsDriftRate
+ {
+ /**GPS Drift rate unknown*/
+ EDriftRateUnknown,
+ /**Drift = 0*/
+ EUtranGpsDrift0,
+ /**Drift = 1*/
+ EUtranGpsDrift1,
+ /**Drift = 2*/
+ EUtranGpsDrift2,
+ /**Drift = 5*/
+ EUtranGpsDrift5,
+ /**Drift = 10*/
+ EUtranGpsDrift10,
+ /**Drift = 15*/
+ EUtranGpsDrift15,
+ /**Drift = 25*/
+ EUtranGpsDrift25,
+ /**Drift = 50*/
+ EUtranGpsDrift50,
+ /**Drift = -1*/
+ EUtranGpsDriftMinus1,
+ /**Drift = -2*/
+ EUtranGpsDriftMinus2,
+ /**Drift = -5*/
+ EUtranGpsDriftMinus5,
+ /**Drift = -10*/
+ EUtranGpsDriftMinus10,
+ /**Drift = -15*/
+ EUtranGpsDriftMinus15,
+ /**Drift = -25*/
+ EUtranGpsDriftMinus25,
+ /**Drift = -50*/
+ EUtranGpsDriftMinus50,
+ };
+
+ /**This enum lists the different Udre values*/
+ enum TDiffCorrectionsStatus
+ {
+ /**Diff Corrections Status unknown*/
+ ECorrectionStatusUnknown,
+ /**UDRE 1.0 */
+ EUdre1Point0,
+ /**UDRE 0.75 */
+ EUdre0Point75,
+ /**UDRE 0.5 */
+ EUdre0Point5,
+ /**UDRE 0.3 */
+ EUdre0Point3,
+ /**UDRE 0.2 */
+ EUdre0Point2,
+ /**UDRE 0.1 */
+ EUdre0Point1,
+ /**UDRE No Data */
+ ENoData,
+ /**UDRE Invalid Data */
+ EInvalidData
+ };
+
+ /**This class reserves members for future use*/
+ class TSubFrame1ReservedV1
+ {
+ public:
+ /**Reserve member 1*/
+ TUint iReserved1;
+ /**Reserve member 2*/
+ TUint iReserved2;
+ /**Reserve member 3*/
+ TUint iReserved3;
+ /**Reserve member 4*/
+ TUint iReserved4;
+ };
+
+ /**This class contains information for GPS ephemeris and clock correction.*/
+ class TEphemerisParameterV1
+ {
+ public:
+ /**Code(s) on L2 Channel */
+ TUint8 iCodeOnL2;
+ /**User Range Accuracy */
+ TUint8 iUraIndex;
+ /**Health of Satellite*/
+ TUint8 iSatHealth;
+ /**Issue of Data, Clock */
+ TUint16 iIodc;
+ /**L2 channel flag*/
+ TUint8 iL2Flag;
+ TSubFrame1ReservedV1 iSubFrame1Reserved;
+ /**Estimated group delay differential */
+ TUint8 iTGd;
+ /**Apparent clock correction*/
+ TUint16 iTOc;
+ /**Apparent clock correction*/
+ TUint8 iAf2;
+ /**Apparent clock correction*/
+ TUint16 iAf1;
+ /**Apparent clock correction*/
+ TUint iAf0;
+ /**Amplitude of the Sine Harmonic Correction Term to the Orbit Radius (meters)*/
+ TUint16 iCRs;
+ /**Mean Motion Difference From Computed Value (semi-circles/sec)*/
+ TUint16 iDeltaN;
+ /**Mean Anomaly at Reference Time (semi-circles)*/
+ TUint iM0;
+ /**Amplitude of the Cosine Harmonic Correction Term To The Argument Of Latitude (radians)*/
+ TUint16 iCUc;
+ /**Eccentricity*/
+ TUint iE;
+ /**Amplitude of the Sine Harmonic Correction Term To The Argument Of Latitude (radians)*/
+ TUint16 iCUs;
+ /**Semi-Major Axis in squareroot(meters) */
+ TUint iASqrt;
+ /**Reference Time Ephemeris */
+ TUint16 iTOe;
+ /**
+ Fit interval flag
+ @see ICD-GPS-200
+ */
+ TUint8 iFitInterval;
+ /**Age Of Data Offset */
+ TUint8 iAodo;
+ /**Amplitude of the Cosine Harmonic Correction Term To The Angle Of Inclination (radians)*/
+ TUint16 iCIc;
+ /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */
+ TUint iOmega0;
+ /**Amplitude of the Sine Harmonic Correction Term To The Angle Of Inclination (radians) */
+ TUint16 iCIs;
+ /**Inclination Angle at Reference Time (semi-circles) */
+ TUint i0;
+ /**Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius (meters) */
+ TUint16 iCRc;
+ /**Argument of Perigee (semi-circles) */
+ TUint iOmega;
+ /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */
+ TUint iOmegaDot;
+ /**Rate of Inclination Angle (semi-circles/sec) */
+ TUint16 iDot;
+ };
+
+ /**This enum specifies the possible status of a satellite*/
+ enum TSatelliteStatus
+ {
+ /**Satellite Status unknown*/
+ ESatStatusUnknown,
+ /**New satellite, new Navigation Model*/
+ ENsNnU,
+ /**Existing satellite, same Navigation Model*/
+ EEsSn,
+ /**Existing satellite, new Navigation Model*/
+ EEsNnU,
+ /**Reserved*/
+ ERev2,
+ /**Reserved*/
+ ERev
+ };
+
+ /**This class contains the navigation model satellite information*/
+ class TNavigationModelSatInfoV1
+ {
+ public:
+ /**Satellite identification*/
+ TUint8 iSatID;
+ /**Status of the satellite*/
+ TSatelliteStatus iSatelliteStatus;
+ /**Contains information for GPS ephemeris and clock correction.*/
+ TEphemerisParameterV1 iEphemerisParameter;
+ };
+
+ /**
+ This class contains the ionospheric model information needed to model
+ the propagation delays of the GPS signals through the ionosphere
+ */
+ class TIonosphericModelV1
+ {
+ public:
+ /**
+ The parameters *n are the coefficients of a cubic equation
+ representing the amplitude of the vertical delay.
+ @see ICD-GPS-200
+ */
+ /**Alfa = 0*/
+ TUint8 iAlfa0;
+ /**Alfa = 1*/
+ TUint8 iAlfa1;
+ /**Alfa = 2*/
+ TUint8 iAlfa2;
+ /**Alfa = 3*/
+ TUint8 iAlfa3;
+ /**
+ The parameters *n are the coefficients of a cubic equation
+ representing the period of the ionospheric model
+ @see ICD-GPS-200
+ */
+ /**Beta = 0*/
+ TUint8 iBeta0;
+ /**Beta = 1*/
+ TUint8 iBeta1;
+ /**Beta = 2*/
+ TUint8 iBeta2;
+ /**Beta = 3*/
+ TUint8 iBeta3;
+ };
+
+ /**
+ This class contains the UTC model information needed to relate GPS time to Universal Time Coordinate (UTC)
+ @see ICD-GPS-200
+ */
+ class TUtcModelV1
+ {
+ public:
+ /**
+ Time in seconds.
+ @see ICD-GPS-200.
+ */
+ TUint iA1;
+ /**
+ Time in seconds.
+ @see ICD-GPS-200.
+ */
+ TUint iA2;
+ /**Time in seconds
+ @see ICD-GPS-200
+ */
+ TUint8 iTOt;
+ /**weeks
+ @see ICD-GPS-200
+ */
+ TUint8 iWnT;
+ /**Time in seconds
+ @see ICD-GPS-200
+ */
+ TUint8 iDeltaTLs;
+ /**Weeks
+ @see ICD-GPS-200
+ */
+ TUint8 iWnLsf;
+ /**Days
+ @see ICD-GPS-200
+ */
+ TUint8 iDn;
+ /**Seconds
+ @see ICD-GPS-200
+ */
+ TUint8 iDeltaTLsf;
+ };
+
+ /**This class contains a reduced-precision subset of the ephemeris and clock correction parameters.*/
+ class TAlmanacSatInfoV1
+ {
+ public:
+ /**Data identification*/
+ TUint8 iDataID;
+ /**Eccentricity*/
+ TUint16 iE;
+ /**Reference Time of Almanac */
+ TUint8 iTOa;
+ /**@see ICD-GPS-200*/
+ TUint16 iDeltaI;
+ /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */
+ TUint16 iOmegaDot;
+ /**Satellite health*/
+ TUint8 iSatHealth;
+ /**Semi-Major Axis in squareroot(meters)*/
+ TUint iASqrt;
+ /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */
+ TUint iOmega0;
+ /**Mean Anomaly at Reference Time (semi-circles) */
+ TUint iM0;
+ /**Argument of Perigee (semi-circles) */
+ TUint iOmega;
+ /**Apparent clock correction */
+ TUint16 iAf0;
+ /**Apparent clock correction */
+ TUint16 iAf1;
+ };
+
+ /**This class holds the coarse, long-term model of the satellite positions and clocks.*/
+ class TAlmanacV1
+ {
+ public:
+ /**Almanac Reference Week */
+ TUint8 iWnA;
+ TAlmanacSatInfoV1 iAlmanacSatInfoList[KMaxSat];
+ /**This enables GPS time recovery and possibly extended GPS correlation intervals.*/
+ TUint16 iSvGlobalHealth[KGlobalHealthSize];
+ };
+
+ /**This union contains the information specific to mode - FDD/TDD*/
+ union TModeSpecificInfoV1
+ {
+ /**Used in FDD mode*/
+ TUint16 iPrimaryScramblingCode;
+ /**Used in TDD mode*/
+ TUint16 iCellParametersID;
+ };
+
+ /**This class contains parameters that enable fast acquisition of the GPS
+ signals in UE-assisted GPS positioning.*/
+ class TAcquisitionAssistanceV1
+ {
+ public:
+ /**Specifies GPS reference time*/
+ TUint iGpsReferenceTime;
+ /**Specifies GPS reference time specific to mode - FDD/TDD*/
+ TModeSpecificInfoV1 iUtranGpsReferenceTime;
+ /**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode.
+ EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/
+ TBool iUtranGpsRefTimeStatus;
+ };
+
+ /**
+ The UDRE provides an estimate of the uncertainty (1-*) in the corrections for
+ the particular satellite. The value in this field shall be multiplied by the
+ UDRE Scale Factor in the common Corrections Status/Health field to determine the
+ final UDRE estimate for the particular satellite.
+ @see 3GPP TS 25.305
+ */
+ enum TUdre
+ {
+ /**Udre unknown*/
+ EUdreUnknown,
+ /** UDRE < 1*/
+ ELessThan1,
+ /** 1> UDRE < 4*/
+ EBtw1And4,
+ /** 1> UDRE < 8*/
+ EBtw1And8,
+ /** UDRE > 8*/
+ EOver8
+ };
+
+ /**This class contains DGPS corrections to be used by the UE*/
+ class TDgpsCorrectionSatInfoV1
+ {
+ public:
+ /**Satellite identification*/
+ TUint8 iSatID;
+ /**Issue of Data Ephemeris for SatID.*/
+ TUint8 iIode;
+ /**
+ The UDRE provides an estimate of the uncertainty (1-*) in the corrections for
+ the particular satellite. The value in this field shall be multiplied by the
+ UDRE Scale Factor in the common Corrections Status/Health field to determine the
+ final UDRE estimate for the particular satellite.
+ @see 3GPP TS 25.305
+ */
+ TUdre iUdre;
+ /**The PRC indicates the correction to the pseudorange for the particular satellite at the GPS Reference Time*/
+ TInt16 iPrc;
+ /**
+ This information indicates the rate-of-change of the pseudorange correction for the particular satellite,
+ using the satellite ephemeris identified by the IODE IE
+ */
+ TInt8 iRrc;
+ /**For future use*/
+ TInt8 iDummy1;
+ /**For future use*/
+ TInt8 iDummy2;
+ };
+
+ /**This class contains the DGPS corrections information*/
+ class TDgpsCorrectionsV1
+ {
+ public:
+ /**GPS time of week*/
+ TUint16 iGpsTow;
+ /**This information indicates the status of the differential corrections contained in the message.*/
+ TDiffCorrectionsStatus iStatusHealth;
+ /**This member data contains DGPS corrections of the satellites to be used by the UE*/
+ TDgpsCorrectionSatInfoV1 iDgpsCorrectionSatInfoList[KMaxSat];
+ };
+
+ /**This enum containst the possible signs of latitude*/
+ enum TLatitudeSign
+ {
+ /**Latitude Sign Unknown*/
+ ELatitudeSignUnknown,
+ /**Latitude sign is north*/
+ ENorth,
+ /**Latitude sign is south*/
+ ESouth
+ };
+
+ /**This enum contains the possible directions of altitudes for reference location*/
+ enum TAltDirection
+ {
+ /**Altitude Direction Unknown*/
+ EAltDirectionUnknown,
+ /**Indicates Altitude direction is height-wise*/
+ EHeight,
+ /**Indicates Altitude direction is depth-wise*/
+ EDepth
+ };
+
+ /**This class contains a 3-D location (with uncertainty)*/
+ class TReferenceLocationV1
+ {
+ public:
+ /**Specifies the sign - North/South*/
+ TLatitudeSign iLatitudeSign;
+ /**Degree of latitude*/
+ TUint16 iLatitude;
+ /**Degree of longitude*/
+ TInt16 iLongitude;
+ /**Direction of altitude*/
+ TAltDirection iAltDirection;
+ /**Degree of altitude*/
+ TUint16 iAltitude;
+ /**Uncertainty semi major axis*/
+ TUint8 iUncertainitySemiMajor;
+ /**Uncertainty semi minor axis*/
+ TUint8 iUncertainitySemiMinor;
+ /**Orientation of major axis*/
+ TUint8 iOrientationMajorAxis;
+ /**The uncertainty in altitude, h, expressed in metres*/
+ TUint8 iUncertainityAltitude;
+ /**The confidence by which the position of a target entity is known to be within the shape description*/
+ TUint8 iConfidence;
+ };
+
+ /**
+ Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW)
+ that are currently being broadcast by the respective GPS satellites. Combining this information
+ with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
+ */
+ class TGpsTowAssistV1
+ {
+ public:
+ /**Satellite identification*/
+ TUint8 iSatID;
+ /**
+ Contains a 14-bit value representing the Telemetry Message (TLM)
+ being broadcast by the GPS satellite identified by the particular SatID,
+ with the MSB occurring first in the satellite transmission.
+ */
+ TUint16 iTlmMsg;
+ /**
+ Contains the two reserved bits in the TLM Word
+ being broadcast by the GPS satellite identified by SatID,
+ with the MSB occurring first in the satellite transmission.
+ */
+ TUint8 iTlmReserved;
+ /**Contain the Alert flags that are being broadcast by the GPS satellite identified by SatID.*/
+ TBool iAlert;
+ /**Contain the Anti-Spoof that are being broadcast by the GPS satellite identified by SatID.*/
+ TBool iAntiSpoof;
+ };
+
+ /**This class contains information that may be used to provide a mapping between UTRAN and GPS time*/
+ class TUtranGpsRefTimeV1
+ {
+ public:
+ /**UE-GPS timing of cell ms-part*/
+ TUint16 iMsPart;
+ /**UE-GPS timing of cell ls-part*/
+ TUint16 iLsPart;
+ /**System frame number*/
+ TUint16 iSfn;
+ /**Specifies GPS reference time specific to mode - FDD/TDD*/
+ TModeSpecificInfoV1 iModeSpecificInfo;
+ /**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode.
+ EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/
+ TBool iModeSpecificInfoStatus;
+ };
+
+ /**
+ This class contains several fields in the Telemetry (TLM) Word and Handover Word (HOW)
+ that are currently being broadcast by the respective GPS satellites. Combining this information
+ with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
+ */
+ class TReferenceTimeV1
+ {
+ public:
+ /**GPS time in weeks*/
+ TUint16 iGpsWeek;
+ /**GPS Time of Week in milliseconds */
+ TUint16 iGpsTowOneMsec;
+ /**GPS reference time may be used to provide a mapping between UTRAN and GPS time*/
+ TUtranGpsRefTimeV1 iUtranGpsRefTime;
+ /**
+ This field indicates the uncertainty of the relation GPS TOW/SFN.
+ ELessThan10 means the relation is accurate to at least 10 ms.
+ */
+ TSfnTowUncertainity iSfnTowUncertainity;
+ /**Drift rate of the NODE B clock relative to GPS time.*/
+ TUtranGpsDriftRate iUtranGpsDriftRate;
+ /**
+ Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW)
+ that are currently being broadcast by the respective GPS satellites. Combining this information
+ with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
+ */
+ TGpsTowAssistV1 iGpsTowAssistList[KMaxSat];
+ };
+
+ /**This class contains the GPS Assistance Data received from network*/
+ class TUePosGpsAssistanceDataV1
+ {
+ public:
+ /**GPS reference time may be used to provide a mapping between UTRAN and GPS time.*/
+ TReferenceTimeV1 iReferencTime;
+ /**The Reference Location contains a 3-D location (with uncertainty)*/
+ TReferenceLocationV1 iReferenceLocation;
+ /**
+ Holds information to allow a UE to estimate its position more accurate,
+ biases in the pseudorange measurements may be provided to the UE.
+ */
+ TDgpsCorrectionsV1 iDgpsCorrections;
+ /**Holds navigation model satellite information*/
+ TNavigationModelSatInfoV1 iNavigationModel;
+ /**
+ The Ionospheric Model contains information needed to model
+ the propagation delays of the GPS signals through the ionosphere.
+ */
+ TIonosphericModelV1 iIonosphericModel;
+ /**UTC parameters may be used to provide Coordinated Universal Time to the UE.*/
+ TUtcModelV1 iUtcModel;
+ /**Holds the coarse, long-term model of the satellite positions and clocks.*/
+ TAlmanacV1 iAlmanac;
+ /**Holds the acquistions assistance information of the UE*/
+ TAcquisitionAssistanceV1 iAcquisitionAssistance;
+ /**Holds the list of bad satellites*/
+ TUint8 iBadSatList[KMaxSat];
+ /**
+ This member specifies which of the above additional data structures are populated.
+ */
+ TGpsAddlAssistDataReqV1 iGpsAddlDataStatus;
+ };
+
+ /**This class contains the GPS assistance data required to compute the UE Postioning information*/
+ class TUePosMeasurementV1
+ {
+ public:
+ /**
+ The purpose of the element is to express the allowed/required location method(s),
+ and to provide information desired QoS.
+ */
+ TUePosReportingQuantityV1 iUePosReportingQuantity;
+ /**This member data defines in which UE states the measurement is valid.*/
+ TMeasurementValidity iMeasurementValidity;
+ /**This member data holds the GPS Assistance Data sent by the network*/
+ TUePosGpsAssistanceDataV1 iUePosGpsAssistanceData;
+ };
+
+ /**This holds the possible types of measurement commands that can be specified*/
+ union TMeasurementCommandV1
+ {
+ /**Setup a new measurement*/
+ TUePosMeasurementV1 iSetup;
+ /**Modify a previously defined measurement*/
+ TUePosMeasurementV1 iModify;
+ /**Stop the measurement and clear all information in the UE that are related to that measurement.*/
+ TBool iRelease;
+ };
+
+ /**This enum specifies the mode the UE shall use to transmit the measurement report*/
+ enum TMeasReportTransferMode
+ {
+ /**Transfer mode unknown*/
+ ETransferModeUnknown,
+ /**The UE shall transmit the measurement report using Acknowledged RLC mode*/
+ EAckModeRlc,
+ /**The UE shall transmit the measurement report using Unacknowledged RLC mode*/
+ EUnAckModeRlc
+ };
+
+ /**
+ This class contains the GPS assistance data needed by the UE to compute the location
+ of the UE. The UE computes the location once it receives all required information.
+ */
+ class TMeasurementControlV7 : public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TMeasurementControlV7();
+ public:
+ /**
+ A reference number that should be used by the UTRAN when setting up,
+ modifying or releasing the measurement and by the UE in the measurement report.
+ */
+ TUint8 iMeasurementIdentity;
+ /**Specifies the Measurement Setup / Modify / Release*/
+ TMeasurementCommandV1 iMeasurementCommand;
+ /**This specifies whether the UE shall transmit the measurement report using AM or UM RLC.*/
+ TMeasReportTransferMode iMeasReportTransferMode;
+ /**ETrue indicates velocity estimate is requested. EFalse indicates velocity estimate is not requested*/
+ TBool iVelocityRequested;
+ /**Holds the type of measurement command being used*/
+ TMeasurementCmd iMeasurementCmdStatus;
+ };
+ /**
+ A typedef'd packaged TMeasurementControlV7 for passing through a
+ generic API method.
+
+ @internalAll
+ */
+ typedef TPckg<TMeasurementControlV7> TMeasurementControlV7Pckg;
+
+ //**************************************//
+ // Measurement Report Data structures //
+ //**************************************//
+
+
+ /**
+ This enum contains the indicators thta specify which
+ union members of TMeasurementQuantityV1 are included
+ */
+ enum TMeasQnty
+ {
+ /**Measurement Quantity unknown*/
+ EMeasQntyUnknown,
+ /**Indicates that CpichEcN0 is present*/
+ EMeasQntyCpichEcN0Present,
+ /**Indicates that CpichRscp is present*/
+ EMeasQntyCpichRscpPresent,
+ /**Indicates that path loss is present*/
+ EMeasQntyPathLossPresent,
+ };
+
+ /**
+ This enum contains the indicators that specify which
+ union members of TPosEstimateRefTime and TPositionEstimateV1 are included
+ */
+ enum TPosEstimateInfo
+ {
+ /**Position Estimate Info Unknown*/
+ EPosEstimateInfoUnknown,
+ /**
+ NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPosEstimateRefTime
+ Indicates that UE positioning estimate reference time is populated
+ */
+ EUtranGpsRefTimeResultPresent,
+ /**Indicates that GPS reference time is populated*/
+ EGpsRefTimeOnlyPresent,
+ /**Indicates that cell timing is populated*/
+ ECellTimingPresent,
+ /**
+ NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPositionEstimateV1.
+ Indicates EllipsoidPoint is populated
+ */
+ EEllipsoidPointPresent,
+ /**Indicates EllipsoidPoint with uncertainty circle is populated*/
+ EEllipsoidPointUncertCirclePresent,
+ /**Indicates EllipsoidPoint with uncertainty ellipse is populated*/
+ EEllipsoidPointUncertEllipsePresent,
+ /**Indicates EllipsoidPoint with altitude is populated*/
+ EEllipsoidPointAltitudePresent,
+ /**Indicates EllipsoidPoint with altitude and ellipse is populated*/
+ EEllipsoidPointAltEllipsePresent,
+ };
+
+ /**This enum contains the possible types of velocity estimates*/
+ enum TVelEstimate
+ {
+ /**Velocity Estimate Unknown*/
+ EVelEstimateUnknown,
+ /**Velocity Estimate is not present*/
+ EVelEstimateNotPresent,
+ /**Horizontal velocity is included*/
+ EHorzVelPresent,
+ /**Horizontal and vertical velocity is included*/
+ EHorzWithVertVelPresent,
+ /**Horizontal velocity with uncertainty is included*/
+ EHorzVelWithUncertPresent,
+ /**Horizontal and vertical velocity with uncertainty is included*/
+ EHorzWithVertVelAndUncertPresent,
+ };
+
+ /**This contains the measurement quantities of the UE*/
+ union TMeasurementQuantityV1
+ {
+ public:
+ /**
+ @see 3GPP TS 25.133.
+ @see 3GPP TS 25.123.
+ */
+ TUint8 iCpichEcN0;
+ /**
+ @see 3GPP TS 25.133.
+ @see 3GPP TS 25.123.
+ */
+ TUint8 iCpichRscp;
+ /**Measurement path loss in dB.*/
+ TUint8 iPathLoss;
+ /**Extra for future use*/
+ TBool iSpare;
+ };
+
+ /**This class contains the current cell informations in TDD mode*/
+ class TTddV1
+ {
+ public:
+ /**
+ Time slot Interference on Signal Code Power
+ @see 3GPP TS 25.123
+ */
+ TUint8 iTimeSlotIscp;
+ /**Primary Common Control Physical CHannel received signal code power*/
+ TUint8 iPrimaryCcpchRscp;
+ };
+
+ /**This class contains the information in FDD mode*/
+ class TFddV1
+ {
+ public:
+ /**Holds the measurement quantities of the UE*/
+ TMeasurementQuantityV1 iMeasurementQuantity;
+ /**Holds the field that would be populated in iMeasurementQuantity*/
+ TMeasQnty iMeasQntyStatus;
+ };
+
+ /**This contains the current cell information in specific modes - FDD/TDD*/
+ union TCurrentCellV1
+ {
+ /**Current cell information in FDD mode*/
+ TFddV1 iFdd;
+ /**Current cell information in TDD mode*/
+ TTddV1 iTdd;
+ };
+
+ /**This contains the type of sfn-sfn observed time difference*/
+ union TSfnSfnObsTimeDifferenceV1
+ {
+ /**Sfn-Sfn observed time difference -type1*/
+ TUint16 iSfnSfnObsTimeDiff1;
+ /**Sfn-Sfn observed time difference -type2*/
+ TUint16 iSfnSfnObsTimeDiff2;
+ };
+
+ /**This class contains the FDD mode information of monitored cells*/
+ class TMonitoredCellFddV1
+ {
+ public:
+ /**Primary Common Control Physical CHannel information*/
+ TUint16 iPrimaryCpichInfo;
+ /**Holds the measurement quantities of the UE*/
+ TMeasurementQuantityV1 iMeasurementQuantity;
+ /**Holds the field that would be populated in iMeasurementQuantity*/
+ TMeasQnty iMeasQntyStatus;
+ };
+
+ /**This class contains the TDD mode information of monitored cells*/
+ class TMonitoredCellTddV1
+ {
+ public:
+ /**Cell identification*/
+ TUint8 iCellParametersID;
+ /**Primary Common Control Physical CHannel received signal code power*/
+ TUint8 iPrimaryCcpchRscp;
+ };
+
+ /**This contains the monitored cells information in specific mode - FDD/TDD*/
+ union TMonitoredCellModeSpecificInfoV1
+ {
+ /**Monitored Cell information in FDD mode*/
+ TMonitoredCellFddV1 iMonitoredCellFdd;
+ /**Monitored Cell information in TDD mode*/
+ TMonitoredCellTddV1 iMonitoredCellTdd;
+ };
+
+ /**This class contains the measured results for monitored cells on Random Access Channel*/
+ class TMonitoredCellRachResultV1
+ {
+ public:
+ /**Holds the sfn-sfn observed time difference*/
+ TSfnSfnObsTimeDifferenceV1 iSfnSfnObsTimeDiff;
+ /**Holds the monitored cells specific info mode - FDD/TDD*/
+ TMonitoredCellModeSpecificInfoV1 iMonitoredCellModeSpecificInfo;
+ /**ETrue indicates iMonitoredCellModeSpecificInfo is iMonitoredCellFdd.
+ EFalse indicates iMonitoredCellModeSpecificInfo is iMonitoredCellTdd*/
+ TBool iSfnSfnObsTimeDiffStatus;
+ };
+ /**
+ Horizontal velocity is characterised by the horizontal speed and bearing.
+ The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE.
+ The bearing provides the direction of the horizontal component of velocity taken clockwise from North.
+ @see 3GPP TS 23.032
+ */
+ class THorzVelocityV1
+ {
+ public:
+ /**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
+ TUint16 iBearing;
+ /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
+ TUint16 iHorzSpeed;
+ };
+
+ /**This enum holds vertical speed direction*/
+ enum TVertSpeedDirection
+ {
+ /**Speed direction unknown*/
+ ESpeedDirectionUnknown,
+ /**Upward direction*/
+ EUpward,
+ /**Downward direction*/
+ EDownward
+ };
+
+ /**
+ Horizontal velocity is characterised by the horizontal speed and bearing.
+ The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE.
+ The vertical speed and direction provides the component of velocity of a UE in a vertical direction.
+ The bearing provides the direction of the horizontal component of velocity taken clockwise from North.
+ @see 3GPP TS 23.032
+ */
+ class THorzWithVertVelocityV1
+ {
+ public:
+ /**Direction of vertical speed*/
+ TVertSpeedDirection iVertSpeedDirection;
+ /**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
+ TUint16 iBearing;
+ /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
+ TUint16 iHorzSpeed;
+ /**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/
+ TUint8 iVertSpeed;
+ };
+
+ /**
+ Horizontal velocity with uncertainty is characterised by a horizontal speed and bearing,
+ giving a horizontal velocity vector V, and an uncertainty speed s.
+ @see 3GPP TS 23.032
+ */
+ class THorzVelocityWithUncertaintyV1
+ {
+ public:
+ /** The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
+ TUint16 iBearing;
+ /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
+ TUint16 iHorzSpeed;
+ /**
+ Horizontal speed uncertainty.
+ */
+ TUint8 iHorzSpeedUncertainty;
+ };
+
+ /**
+ Horizontal and vertical velocity with uncertainty is characterised by a horizontal speed and bearing,
+ giving a horizontal velocity vector Vx,y, a vertical speed and direction giving a vertical velocity component Vz,
+ and uncertainty speeds s1 and s2.
+ @see 3GPP TS 23.032
+ */
+ class THorzWithVertVelocityAndUncertaintyV1
+ {
+ public:
+ /**
+ The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.
+ */
+ TUint16 iBearing;
+ /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
+ TUint16 iHorzSpeed;
+ /**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/
+ TUint8 iVertSpeed;
+ /**Horizontal speed uncertainty.*/
+ TUint8 iHorzSpeedUncertainty;
+ };
+
+ /**
+ This class contains the possible ways of velocity estimates
+ @see 3GPP TS 23.032
+ */
+ union TVelocityEstimateV1
+ {
+ /**Horizontal velocity*/
+ THorzVelocityV1 iHorzVelocity;
+ /**Horizontal velockity and vertical velocity*/
+ THorzWithVertVelocityV1 iHorzWithVertVelocity;
+ /**Horizontal velocity with uncertainty*/
+ THorzVelocityWithUncertaintyV1 iHorzVelocityWithUncertainty;
+ /**Horizontal and vertical velocity with uncertainty*/
+ THorzWithVertVelocityAndUncertaintyV1 iHorzWithVertVelocityAndUncertainty;
+ };
+
+ /**This class contains the measured results on Random Access Channel*/
+ class TMeasuredResultsOnRachV1
+ {
+ public:
+ /**Current cell information*/
+ TCurrentCellV1 iCurrentCell;
+ /**Monitored Cell information*/
+ TMonitoredCellRachResultV1 iMonitoredCellsRachList[KMaxMonitoredCells];
+ /**ETrue indicates iCurrentCell is iFdd.
+ EFalse indicates iCurrentCell is iTdd*/
+ TBool iCurrentCellStatus;
+ };
+
+ /**
+ Identifies the channel in combination with the Midamble shift and slot number.
+ It is not used in 1.28 Mcps TDD and may be set to either value and should be ignored by the receiver.
+ */
+ enum TBurstType
+ {
+ /**Burst type 1*/
+ EType1,
+ /**Burst type 2*/
+ EType2
+ };
+
+ /**This class contains UE positioning estimates specific to TDD*/
+ class TPosEstimateTddV1
+ {
+ public:
+ /**Identifies the channel in combination with the Midamble shift and slot number.*/
+ TBurstType iBurstType;
+ /**Midamble shift*/
+ TUint8 iMidambleShift;
+ /**
+ This member data is present only if no IPDL scheme is configured in the reference cell.
+ Otherwise the slot is defined by the IPDL configuration.
+ */
+ TUint8 iTimeSlotNumber;
+ /**
+ Cell identification
+ */
+ TUint8 iCellParametersID;
+ };
+
+ /**This class contains UE positioning estimates specific to FDD/TDD*/
+ union TPosEstimateModeSpecificInfoV1
+ {
+ /**Identifies the reference cell for the GPS TOW-SFN relationship.*/
+ TUint16 iPrimaryCpichInfo;
+ /**Holds the cell and channel identification*/
+ TPosEstimateTddV1 iCellAndChannelID;
+ };
+
+ /**This class contains the cell timing information*/
+ class TCellTimingV1
+ {
+ public:
+ /**
+ SFN during which the position was calculated.
+ */
+ TUint16 iSfn;
+ /**Holds the UE positioning estimates specific to mode - FDD or TDD*/
+ TPosEstimateModeSpecificInfoV1 iPosEstimateModeSpecificInfo;
+ /**ETrue indicates iPosEstimateModeSpecificInfo is iPrimaryCpichInfo.
+ EFalse indicates iPosEstimateModeSpecificInfo is iCellAndChannelID.*/
+ TBool iPosEstimateModeStatus;
+ };
+
+ /**This class captures the GPS measurement specific to FDD or TDD*/
+ union TGpsMeasModeSpecificInfoV1
+ {
+ /**Frequency Division Duplex identification*/
+ TUint16 iFddRefID;
+ /**Time Division Duplex identification*/
+ TUint8 iTddRefID;
+ };
+
+ /**This class contains results of the GPS reference time*/
+ class TUtranGpsRefTimeResultV1
+ {
+ public:
+ /**UE-GPS timing of cell ms-part*/
+ TUint16 iMsPart;
+ /**UE-GPS timing of cell ls-part*/
+ TUint16 iLsPart;
+ /**Holds the GPS measurement specific to FDD or TDD*/
+ TGpsMeasModeSpecificInfoV1 iGpsMeasModeSpecificInfo;
+ /**Cell System Frame Number*/
+ TUint16 iSfn;
+ /**ETrue indicates iGpsMeasModeSpecificInfo is iFddRefID.
+ EFalse indicates iGpsMeasModeSpecificInfo is iTddRefID*/
+ TBool iGpsMeasModeStatus;
+ };
+
+ /**This union contains the UE positioning reference time*/
+ union TPosReferenceTimeV1
+ {
+ /**Contains the results of GPS reference time*/
+ TUtranGpsRefTimeResultV1 iUtranGpsRefTimeResult;
+ /**Contains the GPS reference time*/
+ TUint16 iGpsRefTimeOnly;
+ };
+
+ /**
+ This class contains the information of ellipsoid.
+ It consists of a latitude and a longitude.
+ @see 3GPP TS 23.032
+ */
+ class TEllipsoidPointV1
+ {
+ public:
+ /**Specifies the sign - North/South*/
+ TLatitudeSign iLatitudeSign;
+ /**
+ A north/south angular measurement of position relative to the equator,
+ in the meridian plane which contains the earth's rotation axis
+ */
+ TUint16 iLatitude;
+ /**
+ An east/west angular measurement of position in relation to the Prime Meridian.
+ The angle between the two great circles, one being the Prime (or Greenwich) Meridian
+ and the other a meridian passing through the point of interest.
+ */
+ TInt16 iLongitude;
+ };
+
+ /**
+ It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r
+ @see 3GPP TS 23.032
+ */
+ class TEllipsoidPointUncertCircleV1
+ {
+ public:
+ /**Specifies the sign - North/South*/
+ TLatitudeSign iLatitudeSign;
+ /**
+ A north/south angular measurement of position relative to the equator,
+ in the meridian plane which contains the earth's rotation axis
+ */
+ TUint16 iLatitude;
+ /**
+ An east/west angular measurement of position in relation to the Prime Meridian.
+ The angle between the two great circles, one being the Prime (or Greenwich) Meridian
+ and the other a meridian passing through the point of interest.
+ */
+ TInt16 iLongitude;
+ /**Uncertainty code*/
+ TUint8 iUncertaintyCode;
+ };
+
+ /**
+ It is characterised by the co-ordinates of an ellipsoid point (the origin),
+ distances r1 and r2 and an angle of orientation A
+ @see 3GPP TS 23.032
+ */
+ class TEllipsoidPointUncertEllipseV1
+ {
+ public:
+ /**Specifies the sign - North/South*/
+ TLatitudeSign iLatitudeSign;
+ /**
+ A north/south angular measurement of position relative to the equator,
+ in the meridian plane which contains the earth's rotation axis
+ */
+ TUint16 iLatitude;
+ /**
+ An east/west angular measurement of position in relation to the Prime Meridian.
+ The angle between the two great circles, one being the Prime (or Greenwich) Meridian
+ and the other a meridian passing through the point of interest.
+ */
+ TInt16 iLongitude;
+ /**Uncertainty semi major axis*/
+ TUint8 iUncertaintySemiMajor;
+ /**Uncertainty semi minor axis*/
+ TUint8 iUncertaintySemiMinor;
+ /**Orientation of major axis*/
+ TUint8 iOrientationMajorAxis;
+ /**The confidence by which the position of a target entity is known to be within the shape description*/
+ TUint8 iConfidence;
+ };
+
+ /**
+ The description of an ellipsoid point with altitude is that of a point at a specified distance
+ above or below a point on the earth's surface. This is defined by an ellipsoid point
+ with the given longitude and latitude and the altitude above or below the ellipsoid point.
+ @see 3GPP TS 23.032
+ */
+ class TEllipsoidPointAltitudeV1
+ {
+ public:
+ /**Specifies the sign - North/South*/
+ TLatitudeSign iLatitudeSign;
+ /**
+ A north/south angular measurement of position relative to the equator,
+ in the meridian plane which contains the earth's rotation axis
+ */
+ TUint16 iLatitude;
+ /**
+ An east/west angular measurement of position in relation to the Prime Meridian.
+ The angle between the two great circles, one being the Prime (or Greenwich) Meridian
+ and the other a meridian passing through the point of interest.
+ */
+ TInt16 iLongitude;
+ /**Direction of altitude*/
+ TAltDirection iAltDirection;
+ /**Degree of altitude*/
+ TUint16 iAltitude;
+ };
+
+ /**
+ characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"),
+ r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A
+ (the "angle of the major axis")
+ @see 3GPP TS 23.032
+ */
+ class TEllipsoidPointAltitudeEllipseV1
+ {
+ public:
+ /**Specifies the sign - North/South*/
+ TLatitudeSign iLatitudeSign;
+ /**
+ A north/south angular measurement of position relative to the equator,
+ in the meridian plane which contains the earth's rotation axis
+ */
+ TUint16 iLatitude;
+ /**
+ An east/west angular measurement of position in relation to the Prime Meridian.
+ The angle between the two great circles, one being the Prime (or Greenwich) Meridian
+ and the other a meridian passing through the point of interest.
+ */
+ TInt16 iLongitude;
+ /**Direction of altitude*/
+ TAltDirection iAltDirection;
+ /**Degree of latitude*/
+ TUint16 iAltitude;
+ /**Uncertainty semi major axis*/
+ TUint8 iUncertaintySemiMajor;
+ /**Uncertainty semi minor axis*/
+ TUint8 iUncertaintySemiMinor;
+ /**Orientation of major axis*/
+ TUint8 iOrientationMajorAxis;
+ /**The confidence by which the position of a target entity is known to be within the shape description*/
+ TUint8 iConfidence;
+ };
+
+ /**This union holds the possible forms of position estimate of the UE that can be captured.*/
+ union TPositionEstimateV1
+ {
+ /**
+ The description of an ellipsoid point is that of a point
+ on the surface of the ellipsoid, and consists of a latitude and a longitude.
+ @see 3GPP TS 23.032
+ */
+ TEllipsoidPointV1 iEllipsoidPoint;
+ /**
+ It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r
+ @see 3GPP TS 23.032
+ */
+ TEllipsoidPointUncertCircleV1 iEllipsoidPointUncertCircle;
+ /**
+ It is characterised by the co-ordinates of an ellipsoid point (the origin),
+ distances r1 and r2 and an angle of orientation A
+ @see 3GPP TS 23.032
+ */
+ TEllipsoidPointUncertEllipseV1 iEllipsoidPointUncertEllipse;
+ /**
+ The description of an ellipsoid point with altitude is that of a point at a specified distance
+ above or below a point on the earth's surface. This is defined by an ellipsoid point
+ with the given longitude and latitude and the altitude above or below the ellipsoid point.
+ @see 3GPP TS 23.032
+ */
+ TEllipsoidPointAltitudeV1 iEllipsoidPointAltitude;
+ /**
+ characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"),
+ r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A
+ (the "angle of the major axis")
+ @see 3GPP TS 23.032
+ */
+ TEllipsoidPointAltitudeEllipseV1 iEllipsoidPointAltitudeEllipsoide;
+ };
+
+ /**This contains the positioning estimate reference time*/
+ union TPosEstimateRefTime
+ {
+ /**Contains results of the GPS reference time*/
+ TUtranGpsRefTimeResultV1 iUtranGpsRefTimeResult;
+ /**Contains the GPS reference time */
+ TUint16 iGpsRefTimeOnly;
+ /**Contains the cell timing*/
+ TCellTimingV1 iCellTiming;
+ };
+
+ /**
+ Provides the position estimate from the UE to the network,
+ if the UE is capable of determining its own position.
+ */
+ class TUePosPositionEstimateInfoV1
+ {
+ public:
+ /**UE positioning estimate reference time*/
+ TPosEstimateRefTime iPosEstimateRefTime;
+ /**Holds the UE's position estimate
+ @see TPositionEstimateV1
+ */
+ TPositionEstimateV1 iPostionEstimate;
+ /**Holds the field that would be populated in iPosEstimateRefTime*/
+ TPosEstimateInfo iPosEstimateRefTimeStatus;
+ /**Holds the field that would be populated in iPosEstimate*/
+ TPosEstimateInfo iPosEstimateStatus;
+ };
+
+ /**This enum contains the multipath indicators*/
+ enum TMultipathIndicator
+ {
+ /**
+ Multipath indicator unknown
+ This is an invalid indicator.
+ */
+ EMPUnknown,
+ /**Not measured*/
+ ENm,
+ /**MP error < 5m*/
+ ELow,
+ /**5m < MP error < 43m*/
+ EMedium,
+ /**MP error > 43m*/
+ EHigh
+ };
+
+ /**This class contains the GPS measurement parameters of the UE*/
+ class TGpsMeasMeasurementParamV1
+ {
+ public:
+ /**Satellite Identification*/
+ TUint8 iSatID;
+ /**
+ The estimate of the carrier-to-noise ratio of the received signal from the particular
+ satellite used in the measurement. It is given in units of dB-Hz (typical levels will
+ be in the range of 20 - 50 dB-Hz).
+ */
+ TUint8 iCN0;
+ /**
+ It is the instantaneous frequency difference between the receiver's internal oscillator
+ and the received carrier from the satellite. Hz, scale factor 0.2.
+ */
+ TInt16 iDoppler;
+ /**
+ Unit in GPS chips.
+ Whole value of the UE GPS code-phase measurement, where increasing binary values of the field
+ signify increasing measured pseudoranges.
+ */
+ TUint16 iWholeGpsChips;
+ /**
+ The UE GPS code-phase measurement is divided into the fields "Whole GPS Chips" and "Fractional GPS Chips".
+ Scale factor 2-10 Fractional value of the UE GPS code-phase measurement.
+ */
+ TUint16 iFractionalGpsChips;
+ /**
+ Contains the possible multipath indicators. Multipath error is usually caused by one path being bounced or
+ reflected. The impact on a pseudo-range measurement may be up to a few metres. In the case of carrier phase,
+ this is of the order of a few centimetres.
+ */
+ TMultipathIndicator iMultipathIndicator;
+ /**
+ A distance measurement based on the correlation of a satellite's transmitted code (may be the C/A-Code or
+ the encrypted P-Code) and the local receiver's reference code (for that PRN satellite number),
+ that has not been corrected for errors in synchronisation between the transmitter's clock and the receiver's clock.
+ Hence a pseudo-range measurement is a time-error biased distance measurement.
+ */
+ TUint8 iPseudorangeRmsError;
+ };
+
+ /**This class contains the GPS measurement parameters and the positioning reference time*/
+ class TUePosGpsMeasurementResultsV1
+ {
+ public:
+ /**UE positioning reference time*/
+ TPosReferenceTimeV1 iPosGpsMeasRefTime;
+ /**Holds the GPS measurement parameters from all the active satellites*/
+ TGpsMeasMeasurementParamV1 iGpsMeasurementParamList[KMaxSat];
+ /**ETrue indicates TPosReferenceTimeV1::iUtranGpsRefTimeResult is populated.
+ EFalse indicates TPosReferenceTimeV1::iGpsRefTimeOnly is populated*/
+ TBool iPosGpsMeasRefTimeStatus;
+ };
+
+ /**
+ This enum lists all the possible errors that UE can report to the network
+ */
+ enum TPosErrorCause
+ {
+ /**
+ Error Cause Unknown. This is an invalid error cause and is set if the UE does not set with
+ any of the underlying valid error causes
+ */
+ EErrorCauseUnknown,
+ /**Indicates that enought number of GPS satellites are healthy and active.*/
+ ENotEnoughGpsSatellites,
+ /**Assistance data required to compute location of the UE is missing in the measurement control.
+ If the Additional data request flag is true in the measurement control only then additional assistance
+ data can be requested otherwise measurements need to be done using the existing assistance data
+ @see TGpsAddlAssistDataReqV1
+ @see TUePosReportingQuantityV1
+ */
+ EAssistanceDataMissing,
+ /**
+ Cell Frames Timings are not accomplished
+ */
+ ENotAccomplishedGpsTimingOfCellFrames,
+ /**
+ UE can set this error in case other than the above mentioned is encountered
+ */
+ EUndefinedError,
+ /**
+ UE denies Location information
+ */
+ ERequestDeniedByUser,
+ };
+
+ /**
+ This class contains the positioning errors that might have encountered during
+ measurement of location of the UE.
+ */
+ class TUePosError
+ {
+ public:
+ /**Indicates the error cause encountered while computing GPS Assistance data*/
+ TPosErrorCause iPosErrorCause;
+ /**If error cause is "Assistance Data Missing" and iAddlAssistanceDataReq is set to ETrue then
+ then this member shall indicate what additional assistance data is needed.
+ If iAddlAssistanceDataReq is set to EFalse then existing assistance data is used to compute location
+ information of the UE.
+ @see TUePosReportingQuantityV1::iAddlAssistanceDataReq*/
+ TGpsAddlAssistDataReqV1 iGpsAddlAssistDataReq;
+ };
+
+ /**
+ This class contains the measurement results computed by the UE.
+ */
+ class TUePosMeasuredResultsV1
+ {
+ public:
+ /**The purpose of this is to provide the position estimate from the UE to the network,
+ if the UE is capable of determining its own position.*/
+ TUePosPositionEstimateInfoV1 iUePosPositionEstimateInfo;
+ /**Contains the GPS measurement parameters and the positioning reference time*/
+ TUePosGpsMeasurementResultsV1 iUePosGpsMeasurement;
+ /**Indicates the error cause and/or additional assistance data is required*/
+ TUePosError iUePosError;
+ /**
+ ETrue indicates some error has encountered. iUePosError will be populated.
+ EFalse indicates Gps Assistance Data is received and no error has encountered while processing.
+ Hence iUePosPositionEstimateInfo and iUePosGpsMeasurement will be populated
+ */
+ TBool iPosErrorStatus;
+ };
+
+ /**Contains the measured location information of the UE*/
+ union TMeasuredResultsV1
+ {
+ /**
+ This member either contains the measurement results or the error that might have
+ encountered during measurements.
+ */
+ TUePosMeasuredResultsV1 iTUePosMeasuredResults;
+ /**
+ A spare member for future use.
+ */
+ TBool iSpare;
+ };
+
+ /**
+ This class contains the measurement report expected as response to the measurement control sent by the
+ network. Veloctiy estimates are included if requested in measurement control.
+ */
+ class TMeasurementReportV7 : public RMobilePhone::TMultimodeType
+ {
+ public:
+ IMPORT_C TMeasurementReportV7();
+ public:
+ /**A reference number that should be used by the UTRAN when setting up,
+ modifying or releasing the measurement and by the UE in the measurement report.
+ */
+ TUint8 iMeasurementIdentity;
+ /**Contains the measured location information of the UE*/
+ TMeasuredResultsV1 iMeasuredResults;
+ /**Contains the measured results on Random Access Channel*/
+ TMeasuredResultsOnRachV1 iMeasuredResultsOnRach;
+ /**Contains the velocity estimates of the UE*/
+ TVelocityEstimateV1 iVelocityEstimate;
+ /**
+ Indicates the populated member in iVelocityEstimate if velocity estimate is computed.
+ Otherwise indicates that velocity estimate is not computed.
+ */
+ TVelEstimate iVelEstimateStatus;
+ };
+ /**
+ A typedef'd packaged TMeasurementReportV7 for passing through a
+ generic API method.
+
+ @internalAll
+ */
+ typedef TPckg<TMeasurementReportV7> TMeasurementReportV7Pckg;
+
+ //*********************************************//
+ // Measurement Control Failure data structure //
+ //*********************************************//
+
+ /**
+ This enum contains the list of errors that the UE can specify.
+ The Measurement control failure is caused only when the the UE
+ cannot initiate a measurement as instructed by the network.
+ */
+ enum TMeasurementControlFailure
+ {
+ /**
+ Unknown Measurement Control Failure.
+ This is an invalid failure state whic will be set if the UE does not set with the
+ underlying valid error reasons.
+ */
+ EControlFailureUnknown,
+ /**Indicates ASN1.0 encoding is incorrect*/
+ EAsn1ViolationOrEncoding,
+ /**Messsgae type specified is not existent*/
+ EMsgTypeNonExistent,
+ /**Message is not compatible*/
+ EMsgNotCompatibleWithReceiverState,
+ /**Information sent cannot be understood*/
+ EIeValueNotComprehend,
+ /**Information expected is not present*/
+ EInformationElementMissing,
+ /*Message extension cannot be understood*/
+ EMsgExtnNotComprehend
+ };
+
+ /**
+ This enum contains the possible domains used by MOLR
+ */
+ enum TDomain
+ {
+ /**Packet switch domain is the default domain that will be used by Molr*/
+ EPacketSwitchedDomain,
+ /**UE shall set the domain to Circuit switch whenever Molr is intended to use it*/
+ ECircuitSwitchedDomain
+ };
+
+ IMPORT_C void NotifyMtlr(TRequestStatus& aReqStatus,TDes8& aNotifyMtlr);
+ IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrResponse aMtlrResponse);
+ IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrError aMtlrResponse);
+ IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrReject aMtlrResponse);
+ IMPORT_C void SendMolr(TRequestStatus& aReqStatus,const TDesC8& aStartMolr,TDes8& aMolrReturnResult);
+ IMPORT_C void NotifyMeasurementControl(TRequestStatus& aReqStatus,TDes8& aMeasurementControl);
+ IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TDesC8& aMeasurementReport);
+ IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TMeasurementControlFailure aMeasurementControlFailure);
+ IMPORT_C TInt SetLcsDomain(const TDomain aDomain);
+private:
+ void ConstructL();
+ void Destruct();
+private:
+ /**
+ Pointer Holder for the RMobileLocationServices sub-session requests.
+ */
+ CMobileLocationServicesPtrHolder* iMmPtrHolder;
+ };
+
+#endif // __ETELMM_H__
+