--- a/telephonyserver/etelmultimode/INC/ETELMM.H Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserver/etelmultimode/INC/ETELMM.H Thu May 06 15:10:38 2010 +0100
@@ -1,14259 +1,14261 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Multimode ETel API header file.
-// Describes the MM ETel API - classes, methods and types.
-//
-//
-
-/**
- @file
- @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.
-@publishedPartner
- */
-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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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 v8.0 API additions.
-*/
-enum TMultimodeEtelV8Api
- {
- /**
- Indicator that the TSY supports the Multimode ETel v8.0 API.
- */
- KEtelExtMultimodeV8=35000,
- /**
- Indicator that the TSY supports HSUPA.
- */
- KEtelHsupa, // 35001
- /**
- Indicator that the TSY supports GBA authentication functional unit
- */
- KEtelFuncGenericBootstrapArchitecture,
- /**
- Indicator that the TSY supports MBMS authentication functional unit
- */
- KEtelFuncMBMS,
- /*
- Indicator that the TSY supports WLAN parameters on the USIM functional unit
- */
- KEtelFuncWLan
- };
-
-/**
-Enum to define the v9.0 API additions.
-*/
-enum TMultimodeEtelV9Api
- {
- /**
- Indicator that the TSY supports the Multimode ETel v9.0 API.
- */
- KEtelExtMultimodeV9=45000,
- /**
- Indicator that the TSY supports the Cell Information functional unit.
- */
- KEtelFuncCellInfo, // 45001
- };
-
-/**
-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 CMobilePhoneStoredWlanSIDList;
-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,
- /** Voice Group Call Service (VGCS)
-
- Modes: Common */
- EVoiceGroupCall,
- /** Voice Broadcast Service (VBS)
-
- Modes: Common */
- EVoiceBroadcast,
- /** All GPRS Bearer Services
-
- Modes: Common */
- 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.
- @deprecated 9.5
- */
- KCapsCdma95Supported=0x00000008,
- /**
- Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands.
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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 (Release 5).
- From Release 6 this service is "Reserved and shall be ignored".
-
- 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
- };
-
-
-/** USIM service table (continued). */
- enum TUSTServices57To64
- {
- /** Indicates that VGCS Group Identifier List ( VGCS and VGCSS) is supported by the USIM.
-
- Note: v8.0 of Multimode ETel API does not support this feature. */
- KUstVGCSGroupIdList=0x01,
- /** Indicates that VBS Group Identifier List ( VBS and VBSS ) is supported by the USIM.
-
- Note: v8.0 of Multimode ETel API does not support this feature. */
- KUstVBSGroupIdList=0x02,
- /** Indicates that Pseudonym is supported by the USIM.*/
- KUstPseudonym=0x04,
- /** Indicates that User controlled PLMN selector for WLAN Access is supported by the USIM. */
- KUstUserPLMNSelectorWLAN=0x08,
- /** Indicates that Operator controlled PLMN selector for WLAN Access is supported by the USIM.*/
- KUstOperatorPLMNSelectorWLAN =0x10,
- /** Indicates that User controlled WLAN specific identifier list is supported by the USIM.*/
- KUstUserWSIDList=0x20,
- /** Indicates that Opertor controlled WLAN specific identifier list is supported by the USIM. */
- KUstOperatorWSIDList=0x40,
- /** Indicates that Voice Group Call Service Ciphering Algorithm is supported by the USIM.
-
- Note: v8.0 of Multimode ETel API does not support this feature. */
- KUstVGCSSecurity=0x80
- };
-
-/** USIM service table (continued). */
- enum TUSTServices65To72
- {
- /** Indicates that Voice Broadcast Service Ciphering Algorithm is supported by the USIM.
-
- Note: v8.0 of Multimode ETel API does not support this feature. */
- KUstVBSSecurity=0x01,
- /** Indicates that the WLAN Reauthentication Identity is supported by the USIM.*/
- KUstWLANReAuthenId=0x02,
- /** Indicates that Multimedia Message Storage is supported by the USIM.
-
- Note: v8.0 of Multimode ETel API does not support this feature. */
- KUstMMStorage=0x04,
- /** Indicates that Generic Bootstrapping Architecture (GBA) is supported by the USIM */
-
- KUstGBA=0x08,
- /** Indicates that Multimedia Broadcast Multicast Service (MBMS) Security is supported by the USIM.*/
-
- KUstMBMSSecurity =0x10,
- /** Indicates that USSD Data Dowload feature is supported by the USIM.
-
- Note: v8.0 of Multimode ETel API does not support this feature. */
-
- KUstUSSDDataDownload=0x20,
- /** Indicates that Additional TERMINAL PROFILE after UICC activation is supported by the USIM */
- KUstTerminalProfileUICCActivation=0x80
- };
-
-/** 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
- };
-
- /** ISIM Service Table*/
- enum TISTServices1To8
- {
- /** Indicates that EFP-CSCF is present in the ISIM. */
- KIstPCSCF=0x01,
- /** Indicates that the Generic Bootstrapping Architecture (GBA) is supported by the ISIM. */
- KIstGBA=0x02,
- /** Indicates that the ISIM supports operations in HTTP-Digest security context. */
- KIstHTTPDigest=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
- @deprecated 9.5
- */
- ECDMAServiceTable,
- /** USIM Enabled Services Table to be used in conjunction with the USIM Service
- Table.
-
- Modes: WCDMA */
- EUSIMEnabledServiceTable,
- /** ISIM Service Table (IST) for the currently active ISIM application on the UICC is selected.
-
- Modes: WCDMA */
- EISIMServiceTable
- };
-
-
- 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;
-
- class TMobilePhoneServiceTableV8 : public TMobilePhoneServiceTableV2
- /** Defines contents of the specified Service Table on the UICC for the v8.0 version
- of the API.
- See section 4.2.8 of 3GPP TS 31.102 v6.18.0 of the API.
- */
- {
- public:
- IMPORT_C TMobilePhoneServiceTableV8();
- public:
- /** Sum of the TSSTServices57To64 capability constants. */
- TUint8 iServices57To64;
- /** Sum of the TSSTServices65To72 capability constants. */
- TUint8 iServices65To72;
- };
-
-/** A typedef'd packaged TMobilePhoneServiceTableV8 passing through a generic API
-function member. */
- typedef TPckg<TMobilePhoneServiceTableV8> TMobilePhoneServiceTableV8Pckg;
-
- 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
- @deprecated 9.5
- */
- ENetworkModeAmps,
- /** CDMA (IS-95) network.
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkModeCdma95,
- /** CDMA (cdma2000) network.
-
- Modes: CDMA
- @deprecated 9.5 */
- 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;
-
-/** 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
-
-@deprecated 9.5
-
- */
- 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
-
- @deprecated 9.5 */
- 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
- @deprecated 9.5
- */
- TMobilePhoneNetworkIdentity iCdmaSID;
- /** The system identity (SID) of the AMPS network.
-
- Modes: CDMA
-
- @see TMobilePhoneNetworkIdentity
- TMobilePhoneNetworkIdentity
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- ENetworkAccessAmpsCellular,
- /** CDMA Cellular - Standard channels
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessCdmaCellularStdChannel,
- /** CDMA Cellular - Custom channels
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessCdmaCellularCustomChannel,
- /** CDMA/Analogue Cellular (cdma first then analogue)
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessCdmaAmpsCellular,
- /** CDMA PCS - Using blocks
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessCdmaPcsUsingBlocks,
- /** CDMA PCS - Using channels
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessCdmaPcsUsingNetworkAccessChannels,
- /** CDMA JTACS - Standard channels
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessJTacsStdChannels,
- /** CDMA JTACS - Custom channels
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessJTacsCustomChannels,
- /** CDMA 2GHz band - Using channels
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccess2GHzBandUsingChannels,
- /** Generic Acquisition Record for IS-2000 and IS-95
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessGenericAcqRecord2000and95,
- /** Generic Acquisition Record for IS-856
-
- Modes: CDMA
- @deprecated 9.5
- */
- ENetworkAccessGenericAcqRecord856,
- /** The access technology is GSM and UTRAN (UMTS Network).
-
- Modes: GSM and WCDMA */
- ENetworkAccessGsmAndUtran
- };
-
-
-
- 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 TMobilePhoneNetworkInfoV8 : public TMobilePhoneNetworkInfoV5
- /** The access technology that the network is based on in version v8.0 of the API.
- @publishedPartner
- @released*/
- {
- public:
- IMPORT_C TMobilePhoneNetworkInfoV8();
-
- public:
- void InternalizeL(RReadStream& aStream);
- void ExternalizeL(RWriteStream& aStream) const;
-
- public:
- /** HSUPA availability indicator. This information is for display
- indication only and shall not be used for any other purpose.
-
- Modes: WCDMA */
- TBool iHsupaAvailableIndicator;
-
- };
-
-/** A typedef'd packaged TMobilePhoneNetworkInfoV8 for passing through a generic
-API function member. */
- typedef TPckg<TMobilePhoneNetworkInfoV8> TMobilePhoneNetworkInfoV8Pckg;
-
- 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;
-
- /** Cell mode */
- enum TCellMode
- {
- /** Unknown mode */
- ECellModeUnknown,
- /** GSM mode */
- ECellModeGsm,
- /** WCDMA mode */
- ECellModeWcdma
- };
-
- /** Cell Information Status
- @publishedPartner
- @released */
- enum TCellInfoStatus
- {
- /** Unknown status: not known if Cell ID is current or not */
- ECellInfoStatusUnknown,
- /** Not current status: the Cell ID value is the ID of the last known cell */
- ECellInfoStatusNotCurrent,
- /** Current Status: the Cell ID value is the ID of the present cell */
- ECellInfoStatusCurrent
- };
-
- /** Defined type to represent the Timing Advance. See 3GPP TS 04.18, section 10.5.2.40.
- * Valid values for the Timing Advance are 0-255. A negative value indicates that
- * no Timing Advance information is available. */
- typedef TInt16 TGsmTimingAdvance;
-
- /** Encapsulates cell specific information.
- @publishedPartner
- @released */
- class TMobilePhoneCellInfoV9 : public TMultimodeType
- {
- public:
- IMPORT_C TMobilePhoneCellInfoV9();
-
- public:
- /** The cell mode
- @see TCellMode */
- TCellMode iMode;
- /** The current cell ID */
- TUint iCellId;
- /** The Timing Advance. Relevant only if iMode is ECellModeGsm.
- @see TGsmTimingAdvance */
- TGsmTimingAdvance iTimingAdvance;
- /** The status of the cell information. Indicates whether the Cell ID is
- * up-to-date.
- @see TCellInfoStatus */
- TCellInfoStatus iStatus;
- };
-
- /** Packaged TMobilePhoneCellInfoV9 data structure.
- @see TMobilePhoneCellInfoV9 */
- typedef TPckg<TMobilePhoneCellInfoV9> TMobilePhoneCellInfoV9Pckg;
-
- IMPORT_C void GetCellInfo(TRequestStatus& aReqStatus, TDes8& aCellInfo) const;
- IMPORT_C void NotifyCellInfoChange(TRequestStatus& aReqStatus, TDes8& aCellInfo) 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
- @deprecated 9.5
- */
- ENetworkSelectionHomeOnly
- };
-
-/** The mobile phone band class preferences.
-
-Modes: CDMA
-@deprecated 9.5
-*/
- 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
-@deprecated 9.5 */
- 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
- @deprecated 9.5
- */
- TMobilePhoneBandClass iBandClass;
- /** Phone's CDMA operation mode.
-
- Modes: CDMA
-
- @see TMobilePhoneOperation
- @deprecated 9.5
- */
- 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,
- /**
- Indicates that a particular PLMN entry is a WLAN entry used for WLAN PLMN selection.
- */
- KNetworkAccessWLAN=0x0040
- };
-
- 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
-@deprecated 9.5 */
- 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
- @deprecated 9.5
- */
- 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
-@deprecated 9.5
-*/
- 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;
- IMPORT_C void NotifyAllSendNetworkServiceRequest(TRequestStatus& aReqStatus, 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,
- /**
- CFU Indicator status for Auxiliary Voice (TMobileServiceGroup EAuxVoiceService).
- */
- KCFUIndicatorAuxVoice=0x20
- };
-
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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,
- /** Display Videomail active. */
- KDisplayVideomailActive = 0x40
- };
-
- 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;
-
- class TMobilePhoneMessageWaitingV8 : public TMobilePhoneMessageWaitingV1
-/** Message Waiting Indicators. See Section 4.2.63 of 3GPP TS 31 102 V6.18.0 .
-@see GetIccMessageWaitingIndicators()
-@see SetIccMessageWaitingIndicators()
-@see NotifyIccMessageWaitingIndicatorsChange()
-*/
- {
- public:
- IMPORT_C TMobilePhoneMessageWaitingV8();
- public:
- /**
- Contains the number of video messages waiting.
-
- Modes: Common */
- TUint8 iVideoMsgs;
- };
-
-/** A typedef'd packaged TMobilePhoneMessageWaitingV8 for passing through a generic
-API function member. */
- typedef TPckg<TMobilePhoneMessageWaitingV8> TMobilePhoneMessageWaitingV8Pckg;
-
- 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;
- };
-
-/** A typedef'd packaged TMobilePhoneVoicemailIdsV3 for passing through a generic
- API function member. */
- typedef TPckg<TMobilePhoneVoicemailIdsV3> TMobilePhoneVoicemailIdsV3Pckg;
-
- class TMobilePhoneVoicemailIdsV8 : public TMobilePhoneVoicemailIdsV3
- /**
- Contains mailbox numbers see section 4.2.62 of 3GPP TS 31.102 V6.18.0.
- */
- {
- public :
- IMPORT_C TMobilePhoneVoicemailIdsV8();
- public :
- /**
- Phonebook entry for "videomail" mailbox number.
- */
- TUint8 iVideo;
- };
-
- /** A typedef'd packaged TMobilePhoneVoicemailIdsV8 for passing through a generic
- API function member. */
- typedef TPckg<TMobilePhoneVoicemailIdsV8> TMobilePhoneVoicemailIdsV8Pckg;
-
- 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
- @deprecated 9.5 */
- 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
- @deprecated 9.5
- */
- 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& aAuthenticateDataPckgd) 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;
- };
-
- /******************************************************************************************************/
- //
- // UICC Authentication
- //
- /******************************************************************************************************/
-
- /**
- 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;
-
- /******************************************************************************************************/
- //
- // Generic Bootstrapping Architecture (GBA_U) Authentication
- //
- /******************************************************************************************************/
- // used to set iExtensionId
- /** The mobile phone GBA and MBMS authentication extension IDs.
-
- Modes: Common */
- enum TMobilePhoneAuthDataExtId
- {
- /** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapAuthDataV8. */
- KETelMobileGbaBootstrapAuthDataV8 = KEtelExtMultimodeV8,
- /** The iExtensionId contents indicate that the packaged class is a TGbaNafAuthDataV8. */
- KETelMobileGbaNafAuthDataV8,
- /** The iExtensionId contents indicate that the packaged class is a TMbmsMskUpdateDataV8. */
- KETelMobileMbmsMskUpdateDataV8,
- /** The iExtensionId contents indicate that the packaged class is a TMbmsMtkGenerateDataV8. */
- KETelMobileMbmsMtkGenerateDataV8,
- /** The iExtensionId contents indicate that the packaged class is a TMbmsMskDeleteDataV8. */
- KETelMobileMbmsMskDeleteDataV8,
- /** The iExtensionId contents indicate that the packaged class is a TMbmsMukDeleteDataV8. */
- KETelMobileMbmsMukDeleteDataV8,
- /** The iExtensionId contents indicate that the packaged class is a TMbmsUserKeyV8. */
- KETelMobileMbmsUserKeyV8,
- /** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapParamsV8. */
- KETelMobileGbaBootstrapParamsV8
- };
-
- class TGbaBootstrapAuthDataV8 : public TImsAuthenticateDataV5
- /**
- The class is identical to its base class except for its GBA Bootstrapping specific V8 extension id.
- Contains parameters to hold the input as well as the output parameters for the GBA authentication
- in the Bootstrapping mode. The parameters are used as follows:
-
- Input: RAND,AUTN
- Output:
- RES (if the authentication procedure is successful)
- or
- AUTS (contains the failure response in case of unsuccessful authentication procedure)
- See section 7.1.1.4 and 7.1.2.3 of 3GPP TS 31.102 v6.18.0
-
- @see TImsAuthenticateDataV5
-
- @see RMobilePhone::SmartCardAuthenticate request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TGbaBootstrapAuthDataV8();
- };
-
- /**
- Packaged version of TGbaBootstrapAuthDataV8, used when this structure has to be passed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TGbaBootstrapAuthDataV8> TGbaBootstrapAuthDataV8Pckg;
-
-
- enum
- {
- /** The Maximum permitted size of Bootstrapping Transaction Identifier(B-TID) of
- the GBA_U bootstapped key
- see section 4.2.79 of 3GPP TS 31.102 v6.18.0
- */
- KBtidLength = 255,
- /** The Maximum permitted size of lifetime of the GBA_U bootstrapped keys
- see section 4.2.79 of 3GPP TS 31.102 v6.18.0
- */
- KKeyLifetimeLength = 255
- };
-
- class TBsfDataV8 : public TMultimodeType
- /**
- Contains parameters to store B-TID and the Key lifetime that are supplied by the the BSF(EF_GBABP).
- See section 4.2.79 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::SetGbaBootstrapParams request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TBsfDataV8();
- public:
- /** The Bootstrapping Transaction Identifier (B-TID) of the GBA_U bootstrapped key. */
- TBuf8<KBtidLength> iBtid;
- /** The lifetime of the GBA_U bootstrapped keys. */
- TBuf8<KKeyLifetimeLength> iKeyLifetime;
- };
-
- /**
- Packaged version of TBsfDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TBsfDataV8> TBsfDataV8Pckg;
-
- IMPORT_C void SetGbaBootstrapParams(TRequestStatus& aReqStatus, const TAID& aAID, const TDesC8& aParams) const;
-
- enum
- {
- /** The Maximum permitted size of NAF_ID of the Network Application Function(NAF)
- used in the GBA_U NAF derivation procedure
- see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
- */
- KNafIdLength = 255,
- /** The Maximum permitted size of the private user identity of the GBA_U NAF
- see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
- */
- KImpiLength = 255,
- /** The The Maximum permitted size of the Ks_ext_Naf key returned by the UICC application
- see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
- */
- KKsExtNafLength = 255
- };
-
- class TGbaNafAuthDataV8 : public TMultimodeType
- /**
- Contains parameters to hold the input as well as the output parameters for the GBA authentication
- in the NAF(Network Apllication Function) Derivation mode.
- See section 7.1.1.5 and 7.1.2.4 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::SmartCardAuthenticate request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TGbaNafAuthDataV8();
- public:
- /** Input Parameter: The NAF_ID of the Network Application Function (NAF) used in the
- GBA_U NAF Derivation procedure. */
- TBuf8<KNafIdLength> iNafId;
- /** Input Parameter: The Private user identity. */
- TBuf8<KImpiLength> iImpi;
- /** Output Parameter: The Ks_ext_NAF key returned by the UICC app. */
- TBuf8<KKsExtNafLength> iKsExtNaf;
- };
-
- /**
- Packaged version of TGbaNafAuthDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg <TGbaNafAuthDataV8> TGbaNafAuthDataV8Pckg;
-
- class TGbaBootstrapParamsV8 : public TMultimodeType
- /**
- Contains parameters for the GBA Bootstrapping Parametres (EF_GBABP).
- See section 4.2.79 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::GetAuthenticationParams request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TGbaBootstrapParamsV8();
- public:
- /** The RAND (AKA Random challenge) value used in the GBA_U bootstrapping procedure. */
- TBuf8<KRandLength> iRand;
- /** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U bootstrapped
- keys. The client requesting the GBA Bootstrapping procedure receives this value from the network
- (i.e. BSF) and it then stores it on the UICC. */
- TBuf8<KBtidLength> iBtid;
- /** The lifetime of the GBA_U bootstrapped keys. The client requesting the GBA Bootstrapping
- procedure receives this value from the network (i.e. BSF) and it then stores it on the UICC. */
- TBuf8<KKeyLifetimeLength> iKeyLifetime;
- };
-
- /**
- Packaged version of TGbaBootstrapParamsV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TGbaBootstrapParamsV8> TGbaBootstrapParamsV8Pckg;
-
- enum TAuthData
- /**
- The type of the authentication related data that has been modified as a result of the
- UICC authentication command.
-
- @see RMobilePhone::GetAuthenticationParams
-
- @publishedPartner
- @released
- */
- {
- /** The GBA Bootstrapping parameters.
- The GBA Bootstrapping parameters are stored under EF_GBABP of the UICC app. */
- EGbaBootstrapParams,
- /** The list of the GBA Network Application Function (NAF) IDs and the Bootstrapping
- Transaction Identifiers (B-TIDs), associated with the previous GBA NAF derivation procedure.
- The list is stored under EF_GBANL of the UICC app. */
- EGbaNafIdList,
- /** The list of MBMS Service Keys (MSKs) and corresponding time stamp counters, which are
- related to an MBMS Key Domain.
- This list is stored in the EF_MSK file of the UICC app. */
- EMbmsMskIdList,
- /** The identifier of the MBMS User Key (MUK) that is used to protect the transfer of MBMS
- Service Keys (MSK).
- The MUK ID is stored in the EF_MUK file of the UICC app.*/
- EMbmsMuk
- };
-
- class TAuthInfoV8 : public TMultimodeType
- /**
- Contains parameters for Authentication related information
- */
- {
- public:
- IMPORT_C TAuthInfoV8();
- public:
- /** Application identifier (AID) of the UICC application performing the authentication. */
- TAID iAID;
- /** The type of the authentication related data that has been modified as a result of the
- UICC authentication command*/
- TAuthData iData;
- };
-
- /**
- Packaged version of TAuthInfoV8
- */
- typedef TPckg<TAuthInfoV8> TAuthInfoV8Pckg;
-
- IMPORT_C void NotifyAuthenticateDataChange(TRequestStatus& aReqstatus, TDes8& aAuthInfo) const;
- IMPORT_C void GetAuthenticationParams(TRequestStatus& aReqstatus, const TDesC8& aAuthInfo, TDes8& aParams) const;
-
-
- class TGbaNafEntryV8 : public TMultimodeType
- /**
- Contains parameters for the GBA NAF entry(EF_GBANL)
- See section 4.2.83 of 3GPP TS 31.102 v6.18.0
-
- @publishedPartner
- @released
- */
- {
- public:
- void InternalizeL(RReadStream& aStream);
- void ExternalizeL(RWriteStream& aStream) const;
- public:
- IMPORT_C TGbaNafEntryV8();
- public:
- /** The identifier of the Network Application Function (NAF) used in the GBA_U NAF
- Derivation procedure. */
- TBuf8<KNafIdLength> iNafId;
- /** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U
- bootstrapped keys. The client requesting the GBA Bootstrapping procedure receives
- this value from the network (i.e. BSF) and it then stores it on the UICC. */
- TBuf8<KBtidLength> iBtid;
- };
-
- /**
- Packaged version of TGbaNafEntryV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TGbaNafEntryV8> TGbaNafEntryV8Pckg;
-
- /************************************************************************************************/
- //
- // Multimedia Broadcast Multicast Service (MBMS) Authentication
- //
- /************************************************************************************************/
-
- /** The Maximum permitted size of multimedia internet Keying message
- see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0
- */
- enum { KMikeyLength = 255 };
- typedef TBuf8<KMikeyLength> TMikey;
-
- class TMbmsMskUpdateDataV8 : public TMultimodeType
- /**
- Contains parameters to hold the input as well as the output parameters for the MBMS
- authentication in the MSK Update mode.
- See section 7.1.1.6 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::SmartCardAuthenticate request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMbmsMskUpdateDataV8();
- public:
- /** Input Parameter:MIKEY (Multimedia Internet Keying) message containing the MSK update
- message from the network. */
- TMikey iInputMikey;
- /** Output Parameter: The output MIKEY (Multimedia Internet Keying) message containing
- the MSK Verification message from the UICC as the command response.
- This is an optional parameter and it is only returned if the V-bit in the HDR field of
- the received MIKEY message is set. */
- TMikey iOutputMikey;
- };
-
- /**
- Packaged version of TMbmsMskUpdateDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TMbmsMskUpdateDataV8> TMbmsMskUpdateDataV8Pckg;
-
- /**
- The Maximum permitted size of MTK length.
- see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0.
- */
- enum {KMtkLength = 255};
-
- /**
- The Salt key length.
- see section 6.4.5.3 of 3GPP TS 33.246 v6.11.0.
- */
- enum {KSaltLength = 14};
-
- class TMbmsMtkGenerateDataV8 : public TMultimodeType
- /**
- Contains parameters to hold the input as well as the output parameters for the MBMS
- authentication in MTK Generation mode.
- See section 7.1.1.7 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::SmartCardAuthenticate request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMbmsMtkGenerateDataV8();
- public:
- /** Input Parameter: The input MIKEY message containing an MTK and a Salt key (if Salt key is available). */
- TMikey iMikey;
- /** Output Parameter: The MBMS Traffic Key. */
- TBuf8<KMtkLength> iMtk;
- /** Output Parameter: A random or pseudo-random string used to protect against some off-line
- pre computation attacks on the underlying security protocol.
- This is an optional parameter. */
- TBuf8<KSaltLength> iSaltKey;
- };
-
- /**
- Packaged version of TMbmsMtkGenerateDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TMbmsMtkGenerateDataV8> TMbmsMtkGenerateDataV8Pckg;
-
- /**
- The Key domain id length.
- see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
- */
- enum {KKeyDomainIdLength = 3};
-
- /**
- The Key group length.
- see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
- */
- enum {KKeyGroupLength = 2};
-
- class TMbmsMskDeleteDataV8 : public TMultimodeType
- /**
- Contains parameters to hold the input as well as the output parameters for the MBMS authentication
- in the MSK Deletion mode.
- See section 7.1.1.8 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::SmartCardAuthenticate request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMbmsMskDeleteDataV8();
- public:
- /** Input parameter : Every MSK is uniquely identifiable by its Key Domain ID and MSK ID.
- Key Domain ID = MCC || MNC and is 3 bytes long. */
- TBuf8<KKeyDomainIdLength> iKeyDomainId;
- /** Input Parameter: The Key Group part is used to group keys together in order to allow
- redundant MSKs to be deleted.
- The Key group part is contained within bytes 0 and 1 of the MSK ID. */
- TBuf8<KKeyGroupLength> iMskIdKeyGroup;
- };
-
- /**
- Packaged version of TMbmsMskDeleteDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TMbmsMskDeleteDataV8> TMbmsMskDeleteDataV8Pckg;
-
- /**
- The Maximum permitted size of MUK ID TLV length.
- see section 6.4.5 of 3GPP TS 33.246 v6.11.0
- */
- enum {KMukIdTlvLength = 255};
-
- class TMbmsMukDeleteDataV8 : public TMultimodeType
- /**
- Contains parameters to hold the input as well as the output parameters for the MBMS
- authentication in the MUK Deletion mode.
- See section 7.1.1.9 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
-
- @see RMobilePhone::SmartCardAuthenticate request
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMbmsMukDeleteDataV8();
- public:
- /** Input parameter : The MUK ID TLV containing the MUK IDr and MUK IDi.
- This field will contain the MUK ID as a TLV object containing the MUK IDr and MUK IDi.*/
- TBuf8<KMukIdTlvLength> iMukIdTlv;
- };
-
- /**
- Packaged version of TMbmsMukDeleteDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TMbmsMukDeleteDataV8> TMbmsMukDeleteDataV8Pckg;
-
- /**
- The Maximum permitted size of MUK IDi length.
- see section 6.4.5 of 3GPP TS 33.246 v6.11.0
- */
- enum { KMukIdiLength = 255 };
-
- /**
- The Maximum permitted size of MUK IDr length.
- see section 6.4.5 of 3GPP TS 33.246 v6.11.0
- */
- enum { KMukIdrLength = 255 };
-
- /**
- The time stamp counter length.
- see section 6.4.3 of 3GPP TS 33.246 v6.11.0.
- */
- enum { KTimeStampCounterLength = 4 };
-
- class TMbmsUserKeyV8 : public TMultimodeType
- /**
- Contains parameters for MBMS User Key(MUK)(EF_MUK).
- See section 4.2.81 of 3GPP TS 31.102 v6.18.0.
-
- @see RMobilePhone::GetAuthenticationParams
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMbmsUserKeyV8();
- public:
- /** The IDi part of MBMS User Key (MUK). */
- TBuf8<KMukIdiLength> iMukIdi;
- /** The IDr part of MBMS User Key (MUK). */
- TBuf8<KMukIdrLength> iMukIdr;
- /** The counter for MIKEY replay protection in MSK delivery. The counter is associated
- with the particular MUK. */
- TBuf8<KTimeStampCounterLength> iTimeStampCounter;
- };
-
- /**
- Packaged version of TMbmsUserKeyV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TMbmsUserKeyV8> TMbmsUserKeyV8Pckg;
-
- /**
- The MSK id length.
- see section 6.3.2.1. TS 33.246 v6.11.0
- */
- enum { KMskIdLength =4 };
-
- class TMskEntryV8 : public TMultimodeType
- /**
- contains Parameters for MBMS MSK ID Entry (EF_MSK).
- See section 4.2.80 of 3GPP TS 31.102 v6.18.0.
-
- @publishedPartner
- @released
- */
- {
- public:
- void InternalizeL(RReadStream& aStream);
- void ExternalizeL(RWriteStream& aStream) const;
- public:
- IMPORT_C TMskEntryV8();
- public:
- /** Identifier of the Domain of the BM-SC providing MBMS service */
- TBuf8<KKeyDomainIdLength> iKeyDomainId;
- /** Identifier of MBMS Service Key(MSK) with in a paricular Key Domain */
- TBuf8<KMskIdLength> iMskId;
- /** Counter for MIKEY replay protection in MTK delivery.Each counter is
- associated with a particular MSK */
- TBuf8<KTimeStampCounterLength> iTimeStampCounter;
- };
-
- /*************************************************************************************/
- //
- // WLAN Parameters
- //
- /*************************************************************************************/
-
- /**
- This type indicates which of the following fields, within the WLAN data structure,
- contain valid data.
- */
- enum TUsimWlanDataFlags
- {
- /** The iPseudonym field is valid in the Wlan data class */
- KWlanPseudonym =0x00000001,
- /** The iReauthenticationId field is valid in the Wlan data class */
- KWlanReauthenticationId = 0x00000002,
- /** The iMasterKey field is valid in the Wlan data class */
- KWlanMasterKey = 0x00000004,
- /** The iCounter field is valid in the Wlan data class */
- KWlanCounter = 0x00000008
- };
-
- /**
- Holds a Maximum permitted size of the temporary user Identity or
- pseudonym stored in EF_Pseudo of the currently active USIM.
- see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0
- */
- enum { KWlanUserIdentity = 255 };
- typedef TBuf8 <KWlanUserIdentity> TWlanUserIdentity;
-
- /**
- Holds a Maximum permitted size of re-authentication identity stored
- in EF_WRI of the currently active USIM.
- see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
- */
- enum { KWlanMasterKeyLength = 255 };
-
- /**
- Holds a Maximum permitted size of master key used in the process of re-authentication.
- see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
- */
- enum { KCounterLength = 255 };
-
- /**
- Contains Parameters for Wlan Pseudonym(EF_Pseudo) and Reauthentication Id(EF_WRI).
- See section 4.4.5.1 and 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
- @see RMobilePhone::SetWlanData
- @see RMobilePhone::GetWlanData
- @see RMobilePhone::NotifyWlanDataChange
-
- @publishedPartner
- @released
- */
- class TUsimWlanDataV8 : public TMultimodeType
- {
- public:
- IMPORT_C TUsimWlanDataV8();
- public:
- /** A bit-wise sum of TUsimWlanDataCaps constants indicating which of the following
- fields, within the WLAN data structure, contain valid data. */
- TUint32 iFieldsUsed;
- /** Holds a buffer containing the temporary user Identity or pseudonym stored in EF_Pseudo
- of the currently active USIM. */
- TWlanUserIdentity iPseudonym;
- /** Holds a buffer containing the re-authentication identity stored in EF_WRI of the
- currently active USIM. */
- TWlanUserIdentity iReauthenticationId;
- /** Holds the master key used in the process of re-authentication. */
- TBuf8<KWlanMasterKeyLength> iMasterKey;
- /** A counter value to be used in the fast re-authentication. This value is provided as a
- part of a previous authentication sequence. */
- TBuf8<KCounterLength> iCounter;
- };
-
- /** Packaged version of TUsimWlanDataV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TUsimWlanDataV8> TUsimWlanDataV8Pckg;
-
- IMPORT_C void SetWlanData(TRequestStatus& aReqStatus, const TDesC8& aData) const;
- IMPORT_C void GetWlanData(TRequestStatus& aReqStatus, TDes8& aData) const;
- IMPORT_C void NotifyWlanDataChange(TRequestStatus& aReqStatus, TDes8& aData) const;
-
- /**
- Holds a Maximum permitted size of Wlan Specific Identifier.
- see section 4.4.5.4 of 31.102 v6.18.0.
- */
- enum { KWlanSIDLength = 255 };
-
- /**
- Contains Parameters for User controlled WLAN Specific IDentifier List (EF_UWSIDL) and Operator
- controlled WLAN Specific IDentifier List(EF_OWSIDL).
- See section 4.4.5.4 and 4.4.5.5 of 3GPP TS 31.102 v6.18.0.
-
- @see RMobilePhone::StorePreferredWlanSIDListL
- @see RMobilePhone::NotifyPreferredWlanSIDListChange
-
- @publishedPartner
- @released
- */
- class TWlanSIDV8 : public TMultimodeType
- {
- public:
- IMPORT_C TWlanSIDV8();
- public:
- void InternalizeL(RReadStream& aStream);
- void ExternalizeL(RWriteStream& aStream) const;
- public:
- /** Holds a buffer containing WLAN Specific Identifier (SID)*/
- TBuf8<KWlanSIDLength> iWSID;
- /** Editable preferences in the User-controlled WLAN Specific IDentifier List */
- TBool iUserDefined;
- };
-
- /** Packaged version of TWlanSIDV8, used when this structure has to be passeed via IPC.
-
- @publishedPartner
- @released
- */
- typedef TPckg<TWlanSIDV8> TWlanSIDV8Pckg;
-
- IMPORT_C void StorePreferredWlanSIDListL(TRequestStatus& aReqStatus, CMobilePhoneStoredWlanSIDList* aList) const;
- IMPORT_C void NotifyPreferredWlanSIDListChange(TRequestStatus& aReqStatus) const;
-
- /***********************************************************************************/
- //
- // Terminate Active Calls
- //
- /***********************************************************************************/
- IMPORT_C void TerminateActiveCalls(TRequestStatus& aReqStatus) 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
- @deprecated 9.5 */
- 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
- @deprecated 9.5
- */
- 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 TMobileCallParamsV7.
-
- Modes: GSM/WCDMA */
- KETelMobileCallParamsV7=KEtelExtMultimodeV7,
- /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV7.
-
- Modes: GSM/WCDMA */
- KETelMobileHscsdCallParamsV7,
-
- /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV8.
-
- Modes: GSM/WCDMA */
- KETelMobileHscsdCallParamsV8 = KEtelExtMultimodeV8,
-
- /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV8.
-
- Modes: GSM/WCDMA */
- KETelMobileDataCallParamsV8,
-
- /** 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
- };
-
- /**
- The originator of a call.
-
- @see RSat::TCallParamOrigin
- */
- enum TCallParamOrigin
- {
- /** The call originator is unknown. */
- EOriginatorUnknown,
- /** The call originated/originates from the SIM. */
- EOriginatorSIM,
- /** The call originated/originates from an Etel Client. */
- EOriginatorEtelClient,
- /** The call originated/originates from an external device connected to the modem. */
- EOriginatorExternal
- };
-
- /** The maximum size of a sub-address.
-
- @see TSubAddress
-
- @see RSat::KSubAddressMaxSize*/
- enum {KSubAddressMaxSize=21};
-
- /** A buffer to hold the sub-address of a telephone number.
-
- @see KSubAddressMaxSize
-
- @see RSat::TSubAddress
- */
- typedef TBuf<KSubAddressMaxSize> TSubAddress;
-
- /** The maximum size of the 8-bit capability configuration parameter buffer.
- @see TCcp
-
- @see RSat::KCcpMaxSize
- */
- enum {KCcpMaxSize=15};
-
- /** TCcp ( Capability configuration parameters ) is an 8-bit data buffer that
- contains the bearer capabilities as coded in ETSI 24.008(Ver 04.11 2003-06) and
- defined in ETSI 31.111. It is 15 bytes long as it does not include the IEI (Information
- Element Identity).
-
- @see TMobileCallParamsV7
-
- @see RSat::TCcp
- */
- typedef TBuf8<KCcpMaxSize> TCcp;
-
- /** Bearer Capability Repeat Indicator.
-
- @see TMobileCallParamsV7
-
- @see RSat::TBCRepeatIndicator
- */
- enum TBCRepeatIndicator
- {
- /** The alternate mode of the Bearer Capability Repeat Indicator. */
- EBCAlternateMode,
- /** Support of fallback - mode 1 preferred, mode 2 selected if setup of mode 1 fails. */
- EBCFallbackMode,
- /** Service change and fallback - mode 1 alternate mode 2, mode 1 preferred. */
- EBCServiceChangeAndFallbackMode
- };
-
- /** Describes the state of the icon.
-
- @see TIconId
-
- @see RSat::TIconQualifier
- */
- enum TIconQualifier
- {
- /** Icon qualifier is not set. */
- EIconQualifierNotSet,
- /** Icon is not present. */
- ENoIconId,
- /** Icon is present; It is self explanatory.
- Display instead of the alpha ID or text string. */
- ESelfExplanatory,
- /** Icon is present; It is not self explanatory.
- Display both the icon and the alpha ID or text string. */
- ENotSelfExplanatory
- };
-
- /** Holds details about an icon.
-
- @see TMobileCallParamsV7
- @see TMobileCallInfoV7
-
- @see RSat::TIconId
- */
- struct TIconId
- {
- /** Describes the state of the icon. */
- TIconQualifier iQualifier;
- /** Icon identifier */
- TUint8 iIdentifier;
- };
-
- /** The maximum size of the alpha ID buffer.
-
- @see TAlphaIdBuf
-
- @see RSat::KAlphaIdMaxSize
- */
- enum {KAlphaIdMaxSize=254};
-
- /**
- A buffer to hold an alpha identifier.
-
- @see TMobileCallParamsV7
- @see TMobileCallInfoV7
-
- @see RSat::TAlphaIdBuf
- */
- typedef TBuf<KAlphaIdMaxSize> TAlphaIdBuf;
-
-
- 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;
-
-
- class TMobileCallParamsV7 : public TMobileCallParamsV2
- /** Defines the parameters used for set-up of a call of any type
- for version v7.0 of the API.
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMobileCallParamsV7();
- public:
- /**
- The origin of the call.
- */
- TCallParamOrigin iCallParamOrigin;
- /**
- The sub-address of the remote party.
- */
- TSubAddress iSubAddress;
- /**
- Capability configuration parameters for the first bearer.
- */
- TCcp iBearerCap1;
- /**
- Capability configuration parameters for the second bearer.
- */
- TCcp iBearerCap2;
- /**
- The bearer capability repeat indicator.
- */
- TBCRepeatIndicator iBCRepeatIndicator;
- /**
- The icon identifier of the icon to display.
- This can be used, for example, to provide
- graphical notification that the call is taking place.
-
- @see TIconQualifier
- */
- TIconId iIconId;
- /**
- Buffer to hold the alpha identifier. This is used to describe
- the icon stored in iIconId if iIconId.iQualifier is set to
- RMobileCall::ENotSelfExplanatory,
- RMobileCall::EIconQualifierNotSet or
- RMobileCall::ENoIconId.
- */
- TAlphaIdBuf iAlphaId;
- };
-
- /** A typedef'd packaged TMobileCallParamsV7 for passing through a generic API
- function member. */
- typedef TPckg<TMobileCallParamsV7> TMobileCallParamsV7Pckg;
-
- /***********************************************************************************/
- //
- // 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;
-
- class TMobileDataCallParamsV8 : public TMobileDataCallParamsV2
- /** Defines the parameters used for setup of a circuit switched data call for version
- v8.0 of the API.
- */
- {
- public:
- IMPORT_C TMobileDataCallParamsV8();
- public:
- /** The origin of the call.
-
- @see TCallParamOrigin */
- TCallParamOrigin iCallParamOrigin;
-
- /** The sub-address of the remote party.
-
- @see TSubAddress */
- TSubAddress iSubAddress;
-
- /** Capability configuration parameters for the first bearer.
-
- @see TCcp */
- TCcp iBearerCap1;
-
- /** Capability configuration parameters for the second bearer.
-
- @see TCcp */
- TCcp iBearerCap2;
-
- /** The bearer capability repeat indicator.
-
- @see TBCRepeatIndicator */
- TBCRepeatIndicator iBCRepeatIndicator;
-
- /** The icon identifier of the icon to display.
- This can be used, for example, to provide
- graphical notification that the call is taking place.
-
- @see TIconQualifier
- */
- TIconId iIconId;
-
- /** Buffer to hold the alpha identifier. This is used to describe
- the icon stored in iIconId if iIconId.iQualifier is set to
- RMobileCall::ENotSelfExplanatory,
- RMobileCall::EIconQualifierNotSet or
- */
- TAlphaIdBuf iAlphaId;
- };
-
-/** A typedef'd packaged TMobileDataCallParamsV8 for passing through a generic
-API function member. */
- typedef TPckg<TMobileDataCallParamsV8> TMobileDataCallParamsV8Pckg;
-
-/** 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;
-
-
- class TMobileHscsdCallParamsV7 : public TMobileHscsdCallParamsV2
- /** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v7.0
- of the API.
- */
- {
- public:
- IMPORT_C TMobileHscsdCallParamsV7();
- public:
- /** The originator of the call. */
- TCallParamOrigin iCallParamOrigin;
- /**
- The icon identifier of the icon to display.
- This can be used, for example, to provide
- graphical notification that the call is taking place.
-
- @see TIconQualifier
- */
- TIconId iIconId;
- /**
- Buffer to hold the alpha identifier. This is used to describe
- the icon stored in iIconId if iIconId.iQualifier is set to
- RMobileCall::ENotSelfExplanatory,
- RMobileCall::EIconQualifierNotSet or
- RMobileCall::ENoIconId.
- */
- TAlphaIdBuf iAlphaId;
- };
-
- /** A typedef'd packaged TMobileHscsdCallParamsV7 for passing through a generic
- API function member. */
- typedef TPckg<TMobileHscsdCallParamsV7> TMobileHscsdCallParamsV7Pckg;
-
- class TMobileHscsdCallParamsV8 : public TMobileHscsdCallParamsV7
- /** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v8.0
- of the API.
- */
- {
- public:
- IMPORT_C TMobileHscsdCallParamsV8();
- public:
-
- /** The sub-address of the remote party.
-
- @see TSubAddress */
- TSubAddress iSubAddress;
-
- /** Capability configuration parameters for the first bearer.
-
- @see TCcp */
- TCcp iBearerCap1;
-
- /** Capability configuration parameters for the second bearer.
-
- @see TCcp */
- TCcp iBearerCap2;
-
- /** The bearer capability repeat indicator.
-
- @see TBCRepeatIndicator */
- TBCRepeatIndicator iBCRepeatIndicator;
- };
-
- /** A typedef'd packaged TMobileHscsdCallParamsV8 for passing through a generic
- API function member. */
- typedef TPckg<TMobileHscsdCallParamsV8> TMobileHscsdCallParamsV8Pckg;
-
- 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;
-
- class TMobileCallHscsdInfoV7 : public TMobileCallHscsdInfoV1
- /** Version 7 of the HSCSD settings.
-
- Modes: GSM/WCDMA
- */
- {
- public:
- IMPORT_C TMobileCallHscsdInfoV7();
- public:
- /** The originator of the call. */
- TCallParamOrigin iCallParamOrigin;
- /**
- The icon identifier which can be used for indication that the
- call is being made.
- */
- TIconId iIconId;
- /**
- The alpha identifier to describe the icon.
- */
- TAlphaIdBuf iAlphaId;
- /**
- An indication of whether the call parameters have been modified.
- Set to ETrue if they have been modified, EFalse otherwise.
- */
- TBool iParamsCallControlModified;
- };
-
- /** A typedef'd packaged TMobileCallHscsdInfoV7 for passing through a generic API
-function member. */
- typedef TPckg<TMobileCallHscsdInfoV7> TMobileCallHscsdInfoV7Pckg;
-
- class TMobileCallHscsdInfoV8 : public TMobileCallHscsdInfoV7
- /** Version 8 of the HSCSD settings.
-
- Modes: GSM/WCDMA
- */
- {
- public:
- IMPORT_C TMobileCallHscsdInfoV8();
- public:
-
- /** The sub-address of the remote party.
-
- @see TSubAddress */
- TSubAddress iSubAddress;
-
- /** Capability configuration parameters for the first bearer.
-
- @see TCcp */
- TCcp iBearerCap1;
-
- /** Capability configuration parameters for the second bearer.
-
- @see TCcp */
- TCcp iBearerCap2;
-
- /** The bearer capability repeat indicator.
-
- @see TBCRepeatIndicator */
- TBCRepeatIndicator iBCRepeatIndicator;
- };
-
- /** A typedef'd packaged TMobileCallHscsdInfoV8 for passing through a generic
- API function member. */
- typedef TPckg<TMobileCallHscsdInfoV8> TMobileCallHscsdInfoV8Pckg;
-
-
- 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;
-
- IMPORT_C void DialCallControl(TRequestStatus& aStatus, const TDesC8& aCallParams, const TTelNumberC& 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.
-
- @see TMobileCallAudioToneEvent
- */
- TMobileCallAudioToneEvent iEvent;
- /**
- Indicates which tone is to be played.
-
- @see TMobileCallAudioTones
- */
- 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
-@deprecated 9.5
-*/
- 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 */
- 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
- @deprecated 9.5
- */
- KCallPrivacy = 0x00000100,
- /** The iTch field is valid in the call info class.
-
- Modes: CDMA
- @deprecated 9.5
- */
- KCallTch = 0x00000200,
- /** The iAlternatingCall field is valid in the call info class.
-
- Modes: GSM/WCDMA */
- KCallAlternating = 0x00000400,
- /** The iSecurity field is valid in the call info class.
-
- Modes: GSM/WCDMA */
- KCallSecurity = 0x00000800,
- /** The iCallParamOrigin field is valid in the call info class.
-
- Modes: GSM/WCDMA */
- KCallParamOrigin = 0x00001000,
- /** The iIconId field is valid in the call info class.
-
- Modes: GSM/WCDMA */
- KCallIconId = 0x00002000,
- /** The iAlphaId field is valid in the call info class.
-
- Modes: GSM/WCDMA */
- KCallAlphaId = 0x00004000,
- /** The iParamsCallControlModified field is valid in the call
- info class.
-
- Modes: GSM/WCDMA */
- KCallParamsCallControlModified = 0x00008000,
-
- /** The iSubAddress field is valid in the call
- info class.
-
- Modes: GSM/WCDMA */
- KCallSubAddress = 0x0010000,
-
- /** The iBearerCap1 field is valid in the call
- info class.
-
- Modes: GSM/WCDMA */
- KCallBearerCap1 = 0x0020000,
-
- /** The iBearerCap2 field is valid in the call
- info class.
-
- Modes: GSM/WCDMA */
- KCallBearerCap2 = 0x0040000,
-
- /** The iBCRepeatIndicator field is valid in the call
- info class.
-
- Modes: GSM/WCDMA */
- KCallBCRepeatIndicator = 0x0080000,
-
- };
-
-
- 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 */
- 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. */
- 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; //< Package descriptor to hold a TMobileCallInfoV3.
-
-
- class TMobileCallInfoV7 : public TMobileCallInfoV3
- /**
- Extends the TMobileCallInfoV3 claass to include extra parameters
- to indicate the origin of the call, an icon and identifier to
- describe the call and an indication of whether the call parameters
- have been modified.
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMobileCallInfoV7();
- public:
- /**
- The origin of the call.
- */
- TCallParamOrigin iCallParamOrigin;
- /**
- The icon identifier which can be used for indication that the
- call is being made.
- */
- TIconId iIconId;
- /**
- The alpha identifier to describe the icon.
- */
- TAlphaIdBuf iAlphaId;
- /**
- An indication of whether the call parameters have been modified.
- Set to ETrue if they have been modified, EFalse otherwise.
- */
- TBool iParamsCallControlModified;
- };
-
- typedef TPckg<TMobileCallInfoV7> TMobileCallInfoV7Pckg; //< Package descriptor to hold a TMobileCallInfoV7.
-
- class TMobileCallInfoV8 : public TMobileCallInfoV7
- /**
- Extends the TMobileCallInfoV7 claass to include extra parameters
- to indicate the bearer capabilities, repeat indicator and sub address.
-
- @publishedPartner
- @released
- */
- {
- public:
- IMPORT_C TMobileCallInfoV8();
- public:
- /** The sub-address of the remote party.
-
- @see TSubAddress */
- TSubAddress iSubAddress;
-
- /** Capability configuration parameters for the first bearer.
-
- @see TCcp */
- TCcp iBearerCap1;
-
- /** Capability configuration parameters for the second bearer.
-
- @see TCcp */
- TCcp iBearerCap2;
-
- /** The bearer capability repeat indicator.
-
- @see TBCRepeatIndicator */
- TBCRepeatIndicator iBCRepeatIndicator;
- };
-
- typedef TPckg<TMobileCallInfoV8> TMobileCallInfoV8Pckg; //< Package descriptor to hold a TMobileCallInfoV8.
-
- 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
- @deprecated 9.5
- */
- 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
- /*
- * @deprecated 9.5
- * */
- 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.
- @deprecated 9.5
- */
- 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.
- @deprecated 9.5
- */
- KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4
- };
-
-/** Defines common attributes of all SMS messages.
-
-Modes: CDMA
-
-@see TMobileSmsAttributesV1
-@deprecated 9.5
-*/
- enum TMobileSmsAttributeFlags
- {
- /** The iCdmaTeleservice field is valid in the attribute class.
-
- Modes: CDMA
- @deprecated 9.5
- */
- KCdmaTeleservice = 0x00000001,
- /** The iCdmaServiceCategory field is valid in the attribute class.
-
- Modes: CDMA
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- KCdmaKeepChannelOpen = 0x00000400,
- /** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network
-
- Modes: CDMA
- @deprecated 9.5
- */
- KCdmaTLAckRequired = 0x00000800,
- /** The iAddressAuthentication field is valid in the attribute class.
-
- Modes: CDMA
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- TInt iCdmaTeleservice;
- /** The service category this message belongs to.
-
- Modes: CDMA
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- {
- 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 acknowledge but NOT store all incoming messages before passing them
- onto TSY. It is client's responsibility to store the message. */
- EReceiveUnstoredPhoneAck, // client stores but phone acknowledges 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. */
- EReceiveUnstoredClientAck, // client acknowledges and stores message
- /** Phone will store and acknowledge all incoming messages before passing them
- onto TSY. */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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,
- /*
- @deprecated 9.5
- */
- 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.
- @deprecated 9.5
- */
- 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.
- @deprecated 9.5
- */
- 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
- @deprecated 9.5
- */
- 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.
- @deprecated 9.5
- */
- 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
-
- @deprecated 9.5
- */
- {
- public:
- void InternalizeL(RReadStream& aStream);
- void ExternalizeL(RWriteStream& aStream) const;
- public:
- IMPORT_C TMobileCdmaSmsEntryV1();
- public:
- /** The teleservice identifier of the stored message.
-
- Modes: CDMA
- @deprecated 9.5
- */
- 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.
-@deprecated 9.5
-*/
- 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
-
- @deprecated 9.5
-
-*/
- {
-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
-@released
-*/
-class RMobileSmartCardEap : public RTelSubSessionBase
- {
- friend class CAsyncSmartCardEapAuthentication;
-
-public:
- /**
- Class encapsulates EAP request packet data for authentication.
-
- @see CAsyncSmartCardEapAuthentication
-
- @publishedPartner
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- enum { KEapKeyMaxSize = 255 };
-
- /**
- EAP authentication key data.
-
- @see RMobileSmartCardEap::GetEapKey()
-
- @publishedPartner
- @released
- */
- 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
- @released
- */
- 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
- @released
- */
- 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;
-
- 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.
- @publishedPartner
- */
- 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.
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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.
-
- @publishedPartner
- */
- 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.
- @publishedPartner
- */
-
- 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.
- @publishedPartner
- */
- 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.
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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.
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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.
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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.
-
- @publishedPartner
- */
- 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
- @publishedPartner
- */
- 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.
-
- @publishedPartner
- */
- 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.
-
- @publishedPartner
- */
- 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.
-
- @publishedPartner
- */
- 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
- };
-
- /**
- The UE Positioning Technology value, as defined in 3GPP TS 34.109 V7.2.0 Section 6.10
- @publishedPartner
- @released
- */
- enum TUePosTechnology
- {
- /** A-GPS */
- KUePosTechnologyAGPS = 0
- };
-
- 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);
- IMPORT_C void NotifyResetUePositioningInformation(TRequestStatus& aReqStatus, TUePosTechnology& aUePosTechnology) const;
-
-private:
- void ConstructL();
- void Destruct();
-private:
- /**
- Pointer Holder for the RMobileLocationServices sub-session requests.
- */
- CMobileLocationServicesPtrHolder* iMmPtrHolder;
- };
-
-#endif // __ETELMM_H__
+// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Multimode ETel API header file.
+// Describes the MM ETel API - classes, methods and types.
+//
+//
+
+/**
+ @file
+ @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.
+@publishedPartner
+ */
+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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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 v8.0 API additions.
+*/
+enum TMultimodeEtelV8Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v8.0 API.
+ */
+ KEtelExtMultimodeV8=35000,
+ /**
+ Indicator that the TSY supports HSUPA.
+ */
+ KEtelHsupa, // 35001
+ /**
+ Indicator that the TSY supports GBA authentication functional unit
+ */
+ KEtelFuncGenericBootstrapArchitecture,
+ /**
+ Indicator that the TSY supports MBMS authentication functional unit
+ */
+ KEtelFuncMBMS,
+ /*
+ Indicator that the TSY supports WLAN parameters on the USIM functional unit
+ */
+ KEtelFuncWLan
+ };
+
+/**
+Enum to define the v9.0 API additions.
+*/
+enum TMultimodeEtelV9Api
+ {
+ /**
+ Indicator that the TSY supports the Multimode ETel v9.0 API.
+ */
+ KEtelExtMultimodeV9=45000,
+ /**
+ Indicator that the TSY supports the Cell Information functional unit.
+ */
+ KEtelFuncCellInfo, // 45001
+ };
+
+/**
+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 CMobilePhoneStoredWlanSIDList;
+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,
+ /** Voice Group Call Service (VGCS)
+
+ Modes: Common */
+ EVoiceGroupCall,
+ /** Voice Broadcast Service (VBS)
+
+ Modes: Common */
+ EVoiceBroadcast,
+ /** All GPRS Bearer Services
+
+ Modes: Common */
+ 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.
+ @deprecated 9.5
+ */
+ KCapsCdma95Supported=0x00000008,
+ /**
+ Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands.
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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 (Release 5).
+ From Release 6 this service is "Reserved and shall be ignored".
+
+ 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
+ };
+
+
+/** USIM service table (continued). */
+ enum TUSTServices57To64
+ {
+ /** Indicates that VGCS Group Identifier List ( VGCS and VGCSS) is supported by the USIM.
+
+ Note: v8.0 of Multimode ETel API does not support this feature. */
+ KUstVGCSGroupIdList=0x01,
+ /** Indicates that VBS Group Identifier List ( VBS and VBSS ) is supported by the USIM.
+
+ Note: v8.0 of Multimode ETel API does not support this feature. */
+ KUstVBSGroupIdList=0x02,
+ /** Indicates that Pseudonym is supported by the USIM.*/
+ KUstPseudonym=0x04,
+ /** Indicates that User controlled PLMN selector for WLAN Access is supported by the USIM. */
+ KUstUserPLMNSelectorWLAN=0x08,
+ /** Indicates that Operator controlled PLMN selector for WLAN Access is supported by the USIM.*/
+ KUstOperatorPLMNSelectorWLAN =0x10,
+ /** Indicates that User controlled WLAN specific identifier list is supported by the USIM.*/
+ KUstUserWSIDList=0x20,
+ /** Indicates that Opertor controlled WLAN specific identifier list is supported by the USIM. */
+ KUstOperatorWSIDList=0x40,
+ /** Indicates that Voice Group Call Service Ciphering Algorithm is supported by the USIM.
+
+ Note: v8.0 of Multimode ETel API does not support this feature. */
+ KUstVGCSSecurity=0x80
+ };
+
+/** USIM service table (continued). */
+ enum TUSTServices65To72
+ {
+ /** Indicates that Voice Broadcast Service Ciphering Algorithm is supported by the USIM.
+
+ Note: v8.0 of Multimode ETel API does not support this feature. */
+ KUstVBSSecurity=0x01,
+ /** Indicates that the WLAN Reauthentication Identity is supported by the USIM.*/
+ KUstWLANReAuthenId=0x02,
+ /** Indicates that Multimedia Message Storage is supported by the USIM.
+
+ Note: v8.0 of Multimode ETel API does not support this feature. */
+ KUstMMStorage=0x04,
+ /** Indicates that Generic Bootstrapping Architecture (GBA) is supported by the USIM */
+
+ KUstGBA=0x08,
+ /** Indicates that Multimedia Broadcast Multicast Service (MBMS) Security is supported by the USIM.*/
+
+ KUstMBMSSecurity =0x10,
+ /** Indicates that USSD Data Dowload feature is supported by the USIM.
+
+ Note: v8.0 of Multimode ETel API does not support this feature. */
+
+ KUstUSSDDataDownload=0x20,
+ /** Indicates that Additional TERMINAL PROFILE after UICC activation is supported by the USIM */
+ KUstTerminalProfileUICCActivation=0x80
+ };
+
+/** 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
+ };
+
+ /** ISIM Service Table*/
+ enum TISTServices1To8
+ {
+ /** Indicates that EFP-CSCF is present in the ISIM. */
+ KIstPCSCF=0x01,
+ /** Indicates that the Generic Bootstrapping Architecture (GBA) is supported by the ISIM. */
+ KIstGBA=0x02,
+ /** Indicates that the ISIM supports operations in HTTP-Digest security context. */
+ KIstHTTPDigest=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
+ @deprecated 9.5
+ */
+ ECDMAServiceTable,
+ /** USIM Enabled Services Table to be used in conjunction with the USIM Service
+ Table.
+
+ Modes: WCDMA */
+ EUSIMEnabledServiceTable,
+ /** ISIM Service Table (IST) for the currently active ISIM application on the UICC is selected.
+
+ Modes: WCDMA */
+ EISIMServiceTable
+ };
+
+
+ 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;
+
+ class TMobilePhoneServiceTableV8 : public TMobilePhoneServiceTableV2
+ /** Defines contents of the specified Service Table on the UICC for the v8.0 version
+ of the API.
+ See section 4.2.8 of 3GPP TS 31.102 v6.18.0 of the API.
+ */
+ {
+ public:
+ IMPORT_C TMobilePhoneServiceTableV8();
+ public:
+ /** Sum of the TSSTServices57To64 capability constants. */
+ TUint8 iServices57To64;
+ /** Sum of the TSSTServices65To72 capability constants. */
+ TUint8 iServices65To72;
+ };
+
+/** A typedef'd packaged TMobilePhoneServiceTableV8 passing through a generic API
+function member. */
+ typedef TPckg<TMobilePhoneServiceTableV8> TMobilePhoneServiceTableV8Pckg;
+
+ 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
+ @deprecated 9.5
+ */
+ ENetworkModeAmps,
+ /** CDMA (IS-95) network.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkModeCdma95,
+ /** CDMA (cdma2000) network.
+
+ Modes: CDMA
+ @deprecated 9.5 */
+ 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;
+
+/** 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
+
+@deprecated 9.5
+
+ */
+ 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
+
+ @deprecated 9.5 */
+ 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
+ @deprecated 9.5
+ */
+ TMobilePhoneNetworkIdentity iCdmaSID;
+ /** The system identity (SID) of the AMPS network.
+
+ Modes: CDMA
+
+ @see TMobilePhoneNetworkIdentity
+ TMobilePhoneNetworkIdentity
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ ENetworkAccessAmpsCellular,
+ /** CDMA Cellular - Standard channels
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessCdmaCellularStdChannel,
+ /** CDMA Cellular - Custom channels
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessCdmaCellularCustomChannel,
+ /** CDMA/Analogue Cellular (cdma first then analogue)
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessCdmaAmpsCellular,
+ /** CDMA PCS - Using blocks
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessCdmaPcsUsingBlocks,
+ /** CDMA PCS - Using channels
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessCdmaPcsUsingNetworkAccessChannels,
+ /** CDMA JTACS - Standard channels
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessJTacsStdChannels,
+ /** CDMA JTACS - Custom channels
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessJTacsCustomChannels,
+ /** CDMA 2GHz band - Using channels
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccess2GHzBandUsingChannels,
+ /** Generic Acquisition Record for IS-2000 and IS-95
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessGenericAcqRecord2000and95,
+ /** Generic Acquisition Record for IS-856
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ ENetworkAccessGenericAcqRecord856,
+ /** The access technology is GSM and UTRAN (UMTS Network).
+
+ Modes: GSM and WCDMA */
+ ENetworkAccessGsmAndUtran
+ };
+
+
+
+ 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 TMobilePhoneNetworkInfoV8 : public TMobilePhoneNetworkInfoV5
+ /** The access technology that the network is based on in version v8.0 of the API.
+ @publishedPartner
+ @released*/
+ {
+ public:
+ IMPORT_C TMobilePhoneNetworkInfoV8();
+
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+
+ public:
+ /** HSUPA availability indicator. This information is for display
+ indication only and shall not be used for any other purpose.
+
+ Modes: WCDMA */
+ TBool iHsupaAvailableIndicator;
+
+ };
+
+/** A typedef'd packaged TMobilePhoneNetworkInfoV8 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneNetworkInfoV8> TMobilePhoneNetworkInfoV8Pckg;
+
+ 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;
+
+ /** Cell mode */
+ enum TCellMode
+ {
+ /** Unknown mode */
+ ECellModeUnknown,
+ /** GSM mode */
+ ECellModeGsm,
+ /** WCDMA mode */
+ ECellModeWcdma
+ };
+
+ /** Cell Information Status
+ @publishedPartner
+ @released */
+ enum TCellInfoStatus
+ {
+ /** Unknown status: not known if Cell ID is current or not */
+ ECellInfoStatusUnknown,
+ /** Not current status: the Cell ID value is the ID of the last known cell */
+ ECellInfoStatusNotCurrent,
+ /** Current Status: the Cell ID value is the ID of the present cell */
+ ECellInfoStatusCurrent
+ };
+
+ /** Defined type to represent the Timing Advance. See 3GPP TS 04.18, section 10.5.2.40.
+ * Valid values for the Timing Advance are 0-255. A negative value indicates that
+ * no Timing Advance information is available. */
+ typedef TInt16 TGsmTimingAdvance;
+
+ /** Encapsulates cell specific information.
+ @publishedPartner
+ @released */
+ class TMobilePhoneCellInfoV9 : public TMultimodeType
+ {
+ public:
+ IMPORT_C TMobilePhoneCellInfoV9();
+
+ public:
+ /** The cell mode
+ @see TCellMode */
+ TCellMode iMode;
+ /** The current cell ID */
+ TUint iCellId;
+ /** The Timing Advance. Relevant only if iMode is ECellModeGsm.
+ @see TGsmTimingAdvance */
+ TGsmTimingAdvance iTimingAdvance;
+ /** The status of the cell information. Indicates whether the Cell ID is
+ * up-to-date.
+ @see TCellInfoStatus */
+ TCellInfoStatus iStatus;
+ };
+
+ /** Packaged TMobilePhoneCellInfoV9 data structure.
+ @see TMobilePhoneCellInfoV9 */
+ typedef TPckg<TMobilePhoneCellInfoV9> TMobilePhoneCellInfoV9Pckg;
+
+ IMPORT_C void GetCellInfo(TRequestStatus& aReqStatus, TDes8& aCellInfo) const;
+ IMPORT_C void NotifyCellInfoChange(TRequestStatus& aReqStatus, TDes8& aCellInfo) 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
+ @deprecated 9.5
+ */
+ ENetworkSelectionHomeOnly
+ };
+
+/** The mobile phone band class preferences.
+
+Modes: CDMA
+@deprecated 9.5
+*/
+ 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
+@deprecated 9.5 */
+ 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
+ @deprecated 9.5
+ */
+ TMobilePhoneBandClass iBandClass;
+ /** Phone's CDMA operation mode.
+
+ Modes: CDMA
+
+ @see TMobilePhoneOperation
+ @deprecated 9.5
+ */
+ 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,
+ /**
+ Indicates that a particular PLMN entry is a WLAN entry used for WLAN PLMN selection.
+ */
+ KNetworkAccessWLAN=0x0040
+ };
+
+ 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
+@deprecated 9.5 */
+ 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
+ @deprecated 9.5
+ */
+ 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
+@deprecated 9.5
+*/
+ 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;
+ IMPORT_C void NotifyAllSendNetworkServiceRequest(TRequestStatus& aReqStatus, 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,
+ /**
+ CFU Indicator status for Auxiliary Voice (TMobileServiceGroup EAuxVoiceService).
+ */
+ KCFUIndicatorAuxVoice=0x20
+ };
+
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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,
+ /** Display Videomail active. */
+ KDisplayVideomailActive = 0x40
+ };
+
+ 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;
+
+ class TMobilePhoneMessageWaitingV8 : public TMobilePhoneMessageWaitingV1
+/** Message Waiting Indicators. See Section 4.2.63 of 3GPP TS 31 102 V6.18.0 .
+@see GetIccMessageWaitingIndicators()
+@see SetIccMessageWaitingIndicators()
+@see NotifyIccMessageWaitingIndicatorsChange()
+*/
+ {
+ public:
+ IMPORT_C TMobilePhoneMessageWaitingV8();
+ public:
+ /**
+ Contains the number of video messages waiting.
+
+ Modes: Common */
+ TUint8 iVideoMsgs;
+ };
+
+/** A typedef'd packaged TMobilePhoneMessageWaitingV8 for passing through a generic
+API function member. */
+ typedef TPckg<TMobilePhoneMessageWaitingV8> TMobilePhoneMessageWaitingV8Pckg;
+
+ 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;
+ };
+
+/** A typedef'd packaged TMobilePhoneVoicemailIdsV3 for passing through a generic
+ API function member. */
+ typedef TPckg<TMobilePhoneVoicemailIdsV3> TMobilePhoneVoicemailIdsV3Pckg;
+
+ class TMobilePhoneVoicemailIdsV8 : public TMobilePhoneVoicemailIdsV3
+ /**
+ Contains mailbox numbers see section 4.2.62 of 3GPP TS 31.102 V6.18.0.
+ */
+ {
+ public :
+ IMPORT_C TMobilePhoneVoicemailIdsV8();
+ public :
+ /**
+ Phonebook entry for "videomail" mailbox number.
+ */
+ TUint8 iVideo;
+ };
+
+ /** A typedef'd packaged TMobilePhoneVoicemailIdsV8 for passing through a generic
+ API function member. */
+ typedef TPckg<TMobilePhoneVoicemailIdsV8> TMobilePhoneVoicemailIdsV8Pckg;
+
+ 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
+ @deprecated 9.5 */
+ 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
+ @deprecated 9.5
+ */
+ 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& aAuthenticateDataPckgd) 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;
+ };
+
+ /******************************************************************************************************/
+ //
+ // UICC Authentication
+ //
+ /******************************************************************************************************/
+
+ /**
+ 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;
+
+ /******************************************************************************************************/
+ //
+ // Generic Bootstrapping Architecture (GBA_U) Authentication
+ //
+ /******************************************************************************************************/
+ // used to set iExtensionId
+ /** The mobile phone GBA and MBMS authentication extension IDs.
+
+ Modes: Common */
+ enum TMobilePhoneAuthDataExtId
+ {
+ /** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapAuthDataV8. */
+ KETelMobileGbaBootstrapAuthDataV8 = KEtelExtMultimodeV8,
+ /** The iExtensionId contents indicate that the packaged class is a TGbaNafAuthDataV8. */
+ KETelMobileGbaNafAuthDataV8,
+ /** The iExtensionId contents indicate that the packaged class is a TMbmsMskUpdateDataV8. */
+ KETelMobileMbmsMskUpdateDataV8,
+ /** The iExtensionId contents indicate that the packaged class is a TMbmsMtkGenerateDataV8. */
+ KETelMobileMbmsMtkGenerateDataV8,
+ /** The iExtensionId contents indicate that the packaged class is a TMbmsMskDeleteDataV8. */
+ KETelMobileMbmsMskDeleteDataV8,
+ /** The iExtensionId contents indicate that the packaged class is a TMbmsMukDeleteDataV8. */
+ KETelMobileMbmsMukDeleteDataV8,
+ /** The iExtensionId contents indicate that the packaged class is a TMbmsUserKeyV8. */
+ KETelMobileMbmsUserKeyV8,
+ /** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapParamsV8. */
+ KETelMobileGbaBootstrapParamsV8
+ };
+
+ class TGbaBootstrapAuthDataV8 : public TImsAuthenticateDataV5
+ /**
+ The class is identical to its base class except for its GBA Bootstrapping specific V8 extension id.
+ Contains parameters to hold the input as well as the output parameters for the GBA authentication
+ in the Bootstrapping mode. The parameters are used as follows:
+
+ Input: RAND,AUTN
+ Output:
+ RES (if the authentication procedure is successful)
+ or
+ AUTS (contains the failure response in case of unsuccessful authentication procedure)
+ See section 7.1.1.4 and 7.1.2.3 of 3GPP TS 31.102 v6.18.0
+
+ @see TImsAuthenticateDataV5
+
+ @see RMobilePhone::SmartCardAuthenticate request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TGbaBootstrapAuthDataV8();
+ };
+
+ /**
+ Packaged version of TGbaBootstrapAuthDataV8, used when this structure has to be passed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TGbaBootstrapAuthDataV8> TGbaBootstrapAuthDataV8Pckg;
+
+
+ enum
+ {
+ /** The Maximum permitted size of Bootstrapping Transaction Identifier(B-TID) of
+ the GBA_U bootstapped key
+ see section 4.2.79 of 3GPP TS 31.102 v6.18.0
+ */
+ KBtidLength = 255,
+ /** The Maximum permitted size of lifetime of the GBA_U bootstrapped keys
+ see section 4.2.79 of 3GPP TS 31.102 v6.18.0
+ */
+ KKeyLifetimeLength = 255
+ };
+
+ class TBsfDataV8 : public TMultimodeType
+ /**
+ Contains parameters to store B-TID and the Key lifetime that are supplied by the the BSF(EF_GBABP).
+ See section 4.2.79 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::SetGbaBootstrapParams request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TBsfDataV8();
+ public:
+ /** The Bootstrapping Transaction Identifier (B-TID) of the GBA_U bootstrapped key. */
+ TBuf8<KBtidLength> iBtid;
+ /** The lifetime of the GBA_U bootstrapped keys. */
+ TBuf8<KKeyLifetimeLength> iKeyLifetime;
+ };
+
+ /**
+ Packaged version of TBsfDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TBsfDataV8> TBsfDataV8Pckg;
+
+ IMPORT_C void SetGbaBootstrapParams(TRequestStatus& aReqStatus, const TAID& aAID, const TDesC8& aParams) const;
+
+ enum
+ {
+ /** The Maximum permitted size of NAF_ID of the Network Application Function(NAF)
+ used in the GBA_U NAF derivation procedure
+ see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
+ */
+ KNafIdLength = 255,
+ /** The Maximum permitted size of the private user identity of the GBA_U NAF
+ see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
+ */
+ KImpiLength = 255,
+ /** The The Maximum permitted size of the Ks_ext_Naf key returned by the UICC application
+ see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
+ */
+ KKsExtNafLength = 255
+ };
+
+ class TGbaNafAuthDataV8 : public TMultimodeType
+ /**
+ Contains parameters to hold the input as well as the output parameters for the GBA authentication
+ in the NAF(Network Apllication Function) Derivation mode.
+ See section 7.1.1.5 and 7.1.2.4 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::SmartCardAuthenticate request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TGbaNafAuthDataV8();
+ public:
+ /** Input Parameter: The NAF_ID of the Network Application Function (NAF) used in the
+ GBA_U NAF Derivation procedure. */
+ TBuf8<KNafIdLength> iNafId;
+ /** Input Parameter: The Private user identity. */
+ TBuf8<KImpiLength> iImpi;
+ /** Output Parameter: The Ks_ext_NAF key returned by the UICC app. */
+ TBuf8<KKsExtNafLength> iKsExtNaf;
+ };
+
+ /**
+ Packaged version of TGbaNafAuthDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg <TGbaNafAuthDataV8> TGbaNafAuthDataV8Pckg;
+
+ class TGbaBootstrapParamsV8 : public TMultimodeType
+ /**
+ Contains parameters for the GBA Bootstrapping Parametres (EF_GBABP).
+ See section 4.2.79 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::GetAuthenticationParams request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TGbaBootstrapParamsV8();
+ public:
+ /** The RAND (AKA Random challenge) value used in the GBA_U bootstrapping procedure. */
+ TBuf8<KRandLength> iRand;
+ /** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U bootstrapped
+ keys. The client requesting the GBA Bootstrapping procedure receives this value from the network
+ (i.e. BSF) and it then stores it on the UICC. */
+ TBuf8<KBtidLength> iBtid;
+ /** The lifetime of the GBA_U bootstrapped keys. The client requesting the GBA Bootstrapping
+ procedure receives this value from the network (i.e. BSF) and it then stores it on the UICC. */
+ TBuf8<KKeyLifetimeLength> iKeyLifetime;
+ };
+
+ /**
+ Packaged version of TGbaBootstrapParamsV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TGbaBootstrapParamsV8> TGbaBootstrapParamsV8Pckg;
+
+ enum TAuthData
+ /**
+ The type of the authentication related data that has been modified as a result of the
+ UICC authentication command.
+
+ @see RMobilePhone::GetAuthenticationParams
+
+ @publishedPartner
+ @released
+ */
+ {
+ /** The GBA Bootstrapping parameters.
+ The GBA Bootstrapping parameters are stored under EF_GBABP of the UICC app. */
+ EGbaBootstrapParams,
+ /** The list of the GBA Network Application Function (NAF) IDs and the Bootstrapping
+ Transaction Identifiers (B-TIDs), associated with the previous GBA NAF derivation procedure.
+ The list is stored under EF_GBANL of the UICC app. */
+ EGbaNafIdList,
+ /** The list of MBMS Service Keys (MSKs) and corresponding time stamp counters, which are
+ related to an MBMS Key Domain.
+ This list is stored in the EF_MSK file of the UICC app. */
+ EMbmsMskIdList,
+ /** The identifier of the MBMS User Key (MUK) that is used to protect the transfer of MBMS
+ Service Keys (MSK).
+ The MUK ID is stored in the EF_MUK file of the UICC app.*/
+ EMbmsMuk
+ };
+
+ class TAuthInfoV8 : public TMultimodeType
+ /**
+ Contains parameters for Authentication related information
+ */
+ {
+ public:
+ IMPORT_C TAuthInfoV8();
+ public:
+ /** Application identifier (AID) of the UICC application performing the authentication. */
+ TAID iAID;
+ /** The type of the authentication related data that has been modified as a result of the
+ UICC authentication command*/
+ TAuthData iData;
+ };
+
+ /**
+ Packaged version of TAuthInfoV8
+ */
+ typedef TPckg<TAuthInfoV8> TAuthInfoV8Pckg;
+
+ IMPORT_C void NotifyAuthenticateDataChange(TRequestStatus& aReqstatus, TDes8& aAuthInfo) const;
+ IMPORT_C void GetAuthenticationParams(TRequestStatus& aReqstatus, const TDesC8& aAuthInfo, TDes8& aParams) const;
+
+
+ class TGbaNafEntryV8 : public TMultimodeType
+ /**
+ Contains parameters for the GBA NAF entry(EF_GBANL)
+ See section 4.2.83 of 3GPP TS 31.102 v6.18.0
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TGbaNafEntryV8();
+ public:
+ /** The identifier of the Network Application Function (NAF) used in the GBA_U NAF
+ Derivation procedure. */
+ TBuf8<KNafIdLength> iNafId;
+ /** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U
+ bootstrapped keys. The client requesting the GBA Bootstrapping procedure receives
+ this value from the network (i.e. BSF) and it then stores it on the UICC. */
+ TBuf8<KBtidLength> iBtid;
+ };
+
+ /**
+ Packaged version of TGbaNafEntryV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TGbaNafEntryV8> TGbaNafEntryV8Pckg;
+
+ /************************************************************************************************/
+ //
+ // Multimedia Broadcast Multicast Service (MBMS) Authentication
+ //
+ /************************************************************************************************/
+
+ /** The Maximum permitted size of multimedia internet Keying message
+ see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0
+ */
+ enum { KMikeyLength = 255 };
+ typedef TBuf8<KMikeyLength> TMikey;
+
+ class TMbmsMskUpdateDataV8 : public TMultimodeType
+ /**
+ Contains parameters to hold the input as well as the output parameters for the MBMS
+ authentication in the MSK Update mode.
+ See section 7.1.1.6 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::SmartCardAuthenticate request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMbmsMskUpdateDataV8();
+ public:
+ /** Input Parameter:MIKEY (Multimedia Internet Keying) message containing the MSK update
+ message from the network. */
+ TMikey iInputMikey;
+ /** Output Parameter: The output MIKEY (Multimedia Internet Keying) message containing
+ the MSK Verification message from the UICC as the command response.
+ This is an optional parameter and it is only returned if the V-bit in the HDR field of
+ the received MIKEY message is set. */
+ TMikey iOutputMikey;
+ };
+
+ /**
+ Packaged version of TMbmsMskUpdateDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TMbmsMskUpdateDataV8> TMbmsMskUpdateDataV8Pckg;
+
+ /**
+ The Maximum permitted size of MTK length.
+ see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0.
+ */
+ enum {KMtkLength = 255};
+
+ /**
+ The Salt key length.
+ see section 6.4.5.3 of 3GPP TS 33.246 v6.11.0.
+ */
+ enum {KSaltLength = 14};
+
+ class TMbmsMtkGenerateDataV8 : public TMultimodeType
+ /**
+ Contains parameters to hold the input as well as the output parameters for the MBMS
+ authentication in MTK Generation mode.
+ See section 7.1.1.7 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::SmartCardAuthenticate request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMbmsMtkGenerateDataV8();
+ public:
+ /** Input Parameter: The input MIKEY message containing an MTK and a Salt key (if Salt key is available). */
+ TMikey iMikey;
+ /** Output Parameter: The MBMS Traffic Key. */
+ TBuf8<KMtkLength> iMtk;
+ /** Output Parameter: A random or pseudo-random string used to protect against some off-line
+ pre computation attacks on the underlying security protocol.
+ This is an optional parameter. */
+ TBuf8<KSaltLength> iSaltKey;
+ };
+
+ /**
+ Packaged version of TMbmsMtkGenerateDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TMbmsMtkGenerateDataV8> TMbmsMtkGenerateDataV8Pckg;
+
+ /**
+ The Key domain id length.
+ see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
+ */
+ enum {KKeyDomainIdLength = 3};
+
+ /**
+ The Key group length.
+ see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
+ */
+ enum {KKeyGroupLength = 2};
+
+ class TMbmsMskDeleteDataV8 : public TMultimodeType
+ /**
+ Contains parameters to hold the input as well as the output parameters for the MBMS authentication
+ in the MSK Deletion mode.
+ See section 7.1.1.8 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::SmartCardAuthenticate request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMbmsMskDeleteDataV8();
+ public:
+ /** Input parameter : Every MSK is uniquely identifiable by its Key Domain ID and MSK ID.
+ Key Domain ID = MCC || MNC and is 3 bytes long. */
+ TBuf8<KKeyDomainIdLength> iKeyDomainId;
+ /** Input Parameter: The Key Group part is used to group keys together in order to allow
+ redundant MSKs to be deleted.
+ The Key group part is contained within bytes 0 and 1 of the MSK ID. */
+ TBuf8<KKeyGroupLength> iMskIdKeyGroup;
+ };
+
+ /**
+ Packaged version of TMbmsMskDeleteDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TMbmsMskDeleteDataV8> TMbmsMskDeleteDataV8Pckg;
+
+ /**
+ The Maximum permitted size of MUK ID TLV length.
+ see section 6.4.5 of 3GPP TS 33.246 v6.11.0
+ */
+ enum {KMukIdTlvLength = 255};
+
+ class TMbmsMukDeleteDataV8 : public TMultimodeType
+ /**
+ Contains parameters to hold the input as well as the output parameters for the MBMS
+ authentication in the MUK Deletion mode.
+ See section 7.1.1.9 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
+
+ @see RMobilePhone::SmartCardAuthenticate request
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMbmsMukDeleteDataV8();
+ public:
+ /** Input parameter : The MUK ID TLV containing the MUK IDr and MUK IDi.
+ This field will contain the MUK ID as a TLV object containing the MUK IDr and MUK IDi.*/
+ TBuf8<KMukIdTlvLength> iMukIdTlv;
+ };
+
+ /**
+ Packaged version of TMbmsMukDeleteDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TMbmsMukDeleteDataV8> TMbmsMukDeleteDataV8Pckg;
+
+ /**
+ The Maximum permitted size of MUK IDi length.
+ see section 6.4.5 of 3GPP TS 33.246 v6.11.0
+ */
+ enum { KMukIdiLength = 255 };
+
+ /**
+ The Maximum permitted size of MUK IDr length.
+ see section 6.4.5 of 3GPP TS 33.246 v6.11.0
+ */
+ enum { KMukIdrLength = 255 };
+
+ /**
+ The time stamp counter length.
+ see section 6.4.3 of 3GPP TS 33.246 v6.11.0.
+ */
+ enum { KTimeStampCounterLength = 4 };
+
+ class TMbmsUserKeyV8 : public TMultimodeType
+ /**
+ Contains parameters for MBMS User Key(MUK)(EF_MUK).
+ See section 4.2.81 of 3GPP TS 31.102 v6.18.0.
+
+ @see RMobilePhone::GetAuthenticationParams
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMbmsUserKeyV8();
+ public:
+ /** The IDi part of MBMS User Key (MUK). */
+ TBuf8<KMukIdiLength> iMukIdi;
+ /** The IDr part of MBMS User Key (MUK). */
+ TBuf8<KMukIdrLength> iMukIdr;
+ /** The counter for MIKEY replay protection in MSK delivery. The counter is associated
+ with the particular MUK. */
+ TBuf8<KTimeStampCounterLength> iTimeStampCounter;
+ };
+
+ /**
+ Packaged version of TMbmsUserKeyV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TMbmsUserKeyV8> TMbmsUserKeyV8Pckg;
+
+ /**
+ The MSK id length.
+ see section 6.3.2.1. TS 33.246 v6.11.0
+ */
+ enum { KMskIdLength =4 };
+
+ class TMskEntryV8 : public TMultimodeType
+ /**
+ contains Parameters for MBMS MSK ID Entry (EF_MSK).
+ See section 4.2.80 of 3GPP TS 31.102 v6.18.0.
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMskEntryV8();
+ public:
+ /** Identifier of the Domain of the BM-SC providing MBMS service */
+ TBuf8<KKeyDomainIdLength> iKeyDomainId;
+ /** Identifier of MBMS Service Key(MSK) with in a paricular Key Domain */
+ TBuf8<KMskIdLength> iMskId;
+ /** Counter for MIKEY replay protection in MTK delivery.Each counter is
+ associated with a particular MSK */
+ TBuf8<KTimeStampCounterLength> iTimeStampCounter;
+ };
+
+ /*************************************************************************************/
+ //
+ // WLAN Parameters
+ //
+ /*************************************************************************************/
+
+ /**
+ This type indicates which of the following fields, within the WLAN data structure,
+ contain valid data.
+ */
+ enum TUsimWlanDataFlags
+ {
+ /** The iPseudonym field is valid in the Wlan data class */
+ KWlanPseudonym =0x00000001,
+ /** The iReauthenticationId field is valid in the Wlan data class */
+ KWlanReauthenticationId = 0x00000002,
+ /** The iMasterKey field is valid in the Wlan data class */
+ KWlanMasterKey = 0x00000004,
+ /** The iCounter field is valid in the Wlan data class */
+ KWlanCounter = 0x00000008
+ };
+
+ /**
+ Holds a Maximum permitted size of the temporary user Identity or
+ pseudonym stored in EF_Pseudo of the currently active USIM.
+ see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0
+ */
+ enum { KWlanUserIdentity = 255 };
+ typedef TBuf8 <KWlanUserIdentity> TWlanUserIdentity;
+
+ /**
+ Holds a Maximum permitted size of re-authentication identity stored
+ in EF_WRI of the currently active USIM.
+ see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
+ */
+ enum { KWlanMasterKeyLength = 255 };
+
+ /**
+ Holds a Maximum permitted size of master key used in the process of re-authentication.
+ see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
+ */
+ enum { KCounterLength = 255 };
+
+ /**
+ Contains Parameters for Wlan Pseudonym(EF_Pseudo) and Reauthentication Id(EF_WRI).
+ See section 4.4.5.1 and 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
+ @see RMobilePhone::SetWlanData
+ @see RMobilePhone::GetWlanData
+ @see RMobilePhone::NotifyWlanDataChange
+
+ @publishedPartner
+ @released
+ */
+ class TUsimWlanDataV8 : public TMultimodeType
+ {
+ public:
+ IMPORT_C TUsimWlanDataV8();
+ public:
+ /** A bit-wise sum of TUsimWlanDataCaps constants indicating which of the following
+ fields, within the WLAN data structure, contain valid data. */
+ TUint32 iFieldsUsed;
+ /** Holds a buffer containing the temporary user Identity or pseudonym stored in EF_Pseudo
+ of the currently active USIM. */
+ TWlanUserIdentity iPseudonym;
+ /** Holds a buffer containing the re-authentication identity stored in EF_WRI of the
+ currently active USIM. */
+ TWlanUserIdentity iReauthenticationId;
+ /** Holds the master key used in the process of re-authentication. */
+ TBuf8<KWlanMasterKeyLength> iMasterKey;
+ /** A counter value to be used in the fast re-authentication. This value is provided as a
+ part of a previous authentication sequence. */
+ TBuf8<KCounterLength> iCounter;
+ };
+
+ /** Packaged version of TUsimWlanDataV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TUsimWlanDataV8> TUsimWlanDataV8Pckg;
+
+ IMPORT_C void SetWlanData(TRequestStatus& aReqStatus, const TDesC8& aData) const;
+ IMPORT_C void GetWlanData(TRequestStatus& aReqStatus, TDes8& aData) const;
+ IMPORT_C void NotifyWlanDataChange(TRequestStatus& aReqStatus, TDes8& aData) const;
+
+ /**
+ Holds a Maximum permitted size of Wlan Specific Identifier.
+ see section 4.4.5.4 of 31.102 v6.18.0.
+ */
+ enum { KWlanSIDLength = 255 };
+
+ /**
+ Contains Parameters for User controlled WLAN Specific IDentifier List (EF_UWSIDL) and Operator
+ controlled WLAN Specific IDentifier List(EF_OWSIDL).
+ See section 4.4.5.4 and 4.4.5.5 of 3GPP TS 31.102 v6.18.0.
+
+ @see RMobilePhone::StorePreferredWlanSIDListL
+ @see RMobilePhone::NotifyPreferredWlanSIDListChange
+
+ @publishedPartner
+ @released
+ */
+ class TWlanSIDV8 : public TMultimodeType
+ {
+ public:
+ IMPORT_C TWlanSIDV8();
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ /** Holds a buffer containing WLAN Specific Identifier (SID)*/
+ TBuf8<KWlanSIDLength> iWSID;
+ /** Editable preferences in the User-controlled WLAN Specific IDentifier List */
+ TBool iUserDefined;
+ };
+
+ /** Packaged version of TWlanSIDV8, used when this structure has to be passeed via IPC.
+
+ @publishedPartner
+ @released
+ */
+ typedef TPckg<TWlanSIDV8> TWlanSIDV8Pckg;
+
+ IMPORT_C void StorePreferredWlanSIDListL(TRequestStatus& aReqStatus, CMobilePhoneStoredWlanSIDList* aList) const;
+ IMPORT_C void NotifyPreferredWlanSIDListChange(TRequestStatus& aReqStatus) const;
+
+ /***********************************************************************************/
+ //
+ // Terminate Active Calls
+ //
+ /***********************************************************************************/
+ IMPORT_C void TerminateActiveCalls(TRequestStatus& aReqStatus) 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
+ @deprecated 9.5 */
+ 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
+ @deprecated 9.5
+ */
+ 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 TMobileCallParamsV7.
+
+ Modes: GSM/WCDMA */
+ KETelMobileCallParamsV7=KEtelExtMultimodeV7,
+ /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV7.
+
+ Modes: GSM/WCDMA */
+ KETelMobileHscsdCallParamsV7,
+
+ /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV8.
+
+ Modes: GSM/WCDMA */
+ KETelMobileHscsdCallParamsV8 = KEtelExtMultimodeV8,
+
+ /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV8.
+
+ Modes: GSM/WCDMA */
+ KETelMobileDataCallParamsV8,
+
+ /** 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
+ };
+
+ /**
+ The originator of a call.
+
+ @see RSat::TCallParamOrigin
+ */
+ enum TCallParamOrigin
+ {
+ /** The call originator is unknown. */
+ EOriginatorUnknown,
+ /** The call originated/originates from the SIM. */
+ EOriginatorSIM,
+ /** The call originated/originates from an Etel Client. */
+ EOriginatorEtelClient,
+ /** The call originated/originates from an external device connected to the modem. */
+ EOriginatorExternal
+ };
+
+ /** The maximum size of a sub-address.
+
+ @see TSubAddress
+
+ @see RSat::KSubAddressMaxSize*/
+ enum {KSubAddressMaxSize=21};
+
+ /** A buffer to hold the sub-address of a telephone number.
+
+ @see KSubAddressMaxSize
+
+ @see RSat::TSubAddress
+ */
+ typedef TBuf<KSubAddressMaxSize> TSubAddress;
+
+ /** The maximum size of the 8-bit capability configuration parameter buffer.
+ @see TCcp
+
+ @see RSat::KCcpMaxSize
+ */
+ enum {KCcpMaxSize=15};
+
+ /** TCcp ( Capability configuration parameters ) is an 8-bit data buffer that
+ contains the bearer capabilities as coded in ETSI 24.008(Ver 04.11 2003-06) and
+ defined in ETSI 31.111. It is 15 bytes long as it does not include the IEI (Information
+ Element Identity).
+
+ @see TMobileCallParamsV7
+
+ @see RSat::TCcp
+ */
+ typedef TBuf8<KCcpMaxSize> TCcp;
+
+ /** Bearer Capability Repeat Indicator.
+
+ @see TMobileCallParamsV7
+
+ @see RSat::TBCRepeatIndicator
+ */
+ enum TBCRepeatIndicator
+ {
+ /** The alternate mode of the Bearer Capability Repeat Indicator. */
+ EBCAlternateMode,
+ /** Support of fallback - mode 1 preferred, mode 2 selected if setup of mode 1 fails. */
+ EBCFallbackMode,
+ /** Service change and fallback - mode 1 alternate mode 2, mode 1 preferred. */
+ EBCServiceChangeAndFallbackMode
+ };
+
+ /** Describes the state of the icon.
+
+ @see TIconId
+
+ @see RSat::TIconQualifier
+ */
+ enum TIconQualifier
+ {
+ /** Icon qualifier is not set. */
+ EIconQualifierNotSet,
+ /** Icon is not present. */
+ ENoIconId,
+ /** Icon is present; It is self explanatory.
+ Display instead of the alpha ID or text string. */
+ ESelfExplanatory,
+ /** Icon is present; It is not self explanatory.
+ Display both the icon and the alpha ID or text string. */
+ ENotSelfExplanatory
+ };
+
+ /** Holds details about an icon.
+
+ @see TMobileCallParamsV7
+ @see TMobileCallInfoV7
+
+ @see RSat::TIconId
+ */
+ struct TIconId
+ {
+ /** Describes the state of the icon. */
+ TIconQualifier iQualifier;
+ /** Icon identifier */
+ TUint8 iIdentifier;
+ };
+
+ /** The maximum size of the alpha ID buffer.
+
+ @see TAlphaIdBuf
+
+ @see RSat::KAlphaIdMaxSize
+ */
+ enum {KAlphaIdMaxSize=254};
+
+ /**
+ A buffer to hold an alpha identifier.
+
+ @see TMobileCallParamsV7
+ @see TMobileCallInfoV7
+
+ @see RSat::TAlphaIdBuf
+ */
+ typedef TBuf<KAlphaIdMaxSize> TAlphaIdBuf;
+
+
+ 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;
+
+
+ class TMobileCallParamsV7 : public TMobileCallParamsV2
+ /** Defines the parameters used for set-up of a call of any type
+ for version v7.0 of the API.
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileCallParamsV7();
+ public:
+ /**
+ The origin of the call.
+ */
+ TCallParamOrigin iCallParamOrigin;
+ /**
+ The sub-address of the remote party.
+ */
+ TSubAddress iSubAddress;
+ /**
+ Capability configuration parameters for the first bearer.
+ */
+ TCcp iBearerCap1;
+ /**
+ Capability configuration parameters for the second bearer.
+ */
+ TCcp iBearerCap2;
+ /**
+ The bearer capability repeat indicator.
+ */
+ TBCRepeatIndicator iBCRepeatIndicator;
+ /**
+ The icon identifier of the icon to display.
+ This can be used, for example, to provide
+ graphical notification that the call is taking place.
+
+ @see TIconQualifier
+ */
+ TIconId iIconId;
+ /**
+ Buffer to hold the alpha identifier. This is used to describe
+ the icon stored in iIconId if iIconId.iQualifier is set to
+ RMobileCall::ENotSelfExplanatory,
+ RMobileCall::EIconQualifierNotSet or
+ RMobileCall::ENoIconId.
+ */
+ TAlphaIdBuf iAlphaId;
+ };
+
+ /** A typedef'd packaged TMobileCallParamsV7 for passing through a generic API
+ function member. */
+ typedef TPckg<TMobileCallParamsV7> TMobileCallParamsV7Pckg;
+
+ /***********************************************************************************/
+ //
+ // 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;
+
+ class TMobileDataCallParamsV8 : public TMobileDataCallParamsV2
+ /** Defines the parameters used for setup of a circuit switched data call for version
+ v8.0 of the API.
+ */
+ {
+ public:
+ IMPORT_C TMobileDataCallParamsV8();
+ public:
+ /** The origin of the call.
+
+ @see TCallParamOrigin */
+ TCallParamOrigin iCallParamOrigin;
+
+ /** The sub-address of the remote party.
+
+ @see TSubAddress */
+ TSubAddress iSubAddress;
+
+ /** Capability configuration parameters for the first bearer.
+
+ @see TCcp */
+ TCcp iBearerCap1;
+
+ /** Capability configuration parameters for the second bearer.
+
+ @see TCcp */
+ TCcp iBearerCap2;
+
+ /** The bearer capability repeat indicator.
+
+ @see TBCRepeatIndicator */
+ TBCRepeatIndicator iBCRepeatIndicator;
+
+ /** The icon identifier of the icon to display.
+ This can be used, for example, to provide
+ graphical notification that the call is taking place.
+
+ @see TIconQualifier
+ */
+ TIconId iIconId;
+
+ /** Buffer to hold the alpha identifier. This is used to describe
+ the icon stored in iIconId if iIconId.iQualifier is set to
+ RMobileCall::ENotSelfExplanatory,
+ RMobileCall::EIconQualifierNotSet or
+ */
+ TAlphaIdBuf iAlphaId;
+ };
+
+/** A typedef'd packaged TMobileDataCallParamsV8 for passing through a generic
+API function member. */
+ typedef TPckg<TMobileDataCallParamsV8> TMobileDataCallParamsV8Pckg;
+
+/** 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;
+
+
+ class TMobileHscsdCallParamsV7 : public TMobileHscsdCallParamsV2
+ /** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v7.0
+ of the API.
+ */
+ {
+ public:
+ IMPORT_C TMobileHscsdCallParamsV7();
+ public:
+ /** The originator of the call. */
+ TCallParamOrigin iCallParamOrigin;
+ /**
+ The icon identifier of the icon to display.
+ This can be used, for example, to provide
+ graphical notification that the call is taking place.
+
+ @see TIconQualifier
+ */
+ TIconId iIconId;
+ /**
+ Buffer to hold the alpha identifier. This is used to describe
+ the icon stored in iIconId if iIconId.iQualifier is set to
+ RMobileCall::ENotSelfExplanatory,
+ RMobileCall::EIconQualifierNotSet or
+ RMobileCall::ENoIconId.
+ */
+ TAlphaIdBuf iAlphaId;
+ };
+
+ /** A typedef'd packaged TMobileHscsdCallParamsV7 for passing through a generic
+ API function member. */
+ typedef TPckg<TMobileHscsdCallParamsV7> TMobileHscsdCallParamsV7Pckg;
+
+ class TMobileHscsdCallParamsV8 : public TMobileHscsdCallParamsV7
+ /** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v8.0
+ of the API.
+ */
+ {
+ public:
+ IMPORT_C TMobileHscsdCallParamsV8();
+ public:
+
+ /** The sub-address of the remote party.
+
+ @see TSubAddress */
+ TSubAddress iSubAddress;
+
+ /** Capability configuration parameters for the first bearer.
+
+ @see TCcp */
+ TCcp iBearerCap1;
+
+ /** Capability configuration parameters for the second bearer.
+
+ @see TCcp */
+ TCcp iBearerCap2;
+
+ /** The bearer capability repeat indicator.
+
+ @see TBCRepeatIndicator */
+ TBCRepeatIndicator iBCRepeatIndicator;
+ };
+
+ /** A typedef'd packaged TMobileHscsdCallParamsV8 for passing through a generic
+ API function member. */
+ typedef TPckg<TMobileHscsdCallParamsV8> TMobileHscsdCallParamsV8Pckg;
+
+ 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;
+
+ class TMobileCallHscsdInfoV7 : public TMobileCallHscsdInfoV1
+ /** Version 7 of the HSCSD settings.
+
+ Modes: GSM/WCDMA
+ */
+ {
+ public:
+ IMPORT_C TMobileCallHscsdInfoV7();
+ public:
+ /** The originator of the call. */
+ TCallParamOrigin iCallParamOrigin;
+ /**
+ The icon identifier which can be used for indication that the
+ call is being made.
+ */
+ TIconId iIconId;
+ /**
+ The alpha identifier to describe the icon.
+ */
+ TAlphaIdBuf iAlphaId;
+ /**
+ An indication of whether the call parameters have been modified.
+ Set to ETrue if they have been modified, EFalse otherwise.
+ */
+ TBool iParamsCallControlModified;
+ };
+
+ /** A typedef'd packaged TMobileCallHscsdInfoV7 for passing through a generic API
+function member. */
+ typedef TPckg<TMobileCallHscsdInfoV7> TMobileCallHscsdInfoV7Pckg;
+
+ class TMobileCallHscsdInfoV8 : public TMobileCallHscsdInfoV7
+ /** Version 8 of the HSCSD settings.
+
+ Modes: GSM/WCDMA
+ */
+ {
+ public:
+ IMPORT_C TMobileCallHscsdInfoV8();
+ public:
+
+ /** The sub-address of the remote party.
+
+ @see TSubAddress */
+ TSubAddress iSubAddress;
+
+ /** Capability configuration parameters for the first bearer.
+
+ @see TCcp */
+ TCcp iBearerCap1;
+
+ /** Capability configuration parameters for the second bearer.
+
+ @see TCcp */
+ TCcp iBearerCap2;
+
+ /** The bearer capability repeat indicator.
+
+ @see TBCRepeatIndicator */
+ TBCRepeatIndicator iBCRepeatIndicator;
+ };
+
+ /** A typedef'd packaged TMobileCallHscsdInfoV8 for passing through a generic
+ API function member. */
+ typedef TPckg<TMobileCallHscsdInfoV8> TMobileCallHscsdInfoV8Pckg;
+
+
+ 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;
+
+ IMPORT_C void DialCallControl(TRequestStatus& aStatus, const TDesC8& aCallParams, const TTelNumberC& 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.
+
+ @see TMobileCallAudioToneEvent
+ */
+ TMobileCallAudioToneEvent iEvent;
+ /**
+ Indicates which tone is to be played.
+
+ @see TMobileCallAudioTones
+ */
+ 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
+@deprecated 9.5
+*/
+ 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 */
+ 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
+ @deprecated 9.5
+ */
+ KCallPrivacy = 0x00000100,
+ /** The iTch field is valid in the call info class.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ KCallTch = 0x00000200,
+ /** The iAlternatingCall field is valid in the call info class.
+
+ Modes: GSM/WCDMA */
+ KCallAlternating = 0x00000400,
+ /** The iSecurity field is valid in the call info class.
+
+ Modes: GSM/WCDMA */
+ KCallSecurity = 0x00000800,
+ /** The iCallParamOrigin field is valid in the call info class.
+
+ Modes: GSM/WCDMA */
+ KCallParamOrigin = 0x00001000,
+ /** The iIconId field is valid in the call info class.
+
+ Modes: GSM/WCDMA */
+ KCallIconId = 0x00002000,
+ /** The iAlphaId field is valid in the call info class.
+
+ Modes: GSM/WCDMA */
+ KCallAlphaId = 0x00004000,
+ /** The iParamsCallControlModified field is valid in the call
+ info class.
+
+ Modes: GSM/WCDMA */
+ KCallParamsCallControlModified = 0x00008000,
+
+ /** The iSubAddress field is valid in the call
+ info class.
+
+ Modes: GSM/WCDMA */
+ KCallSubAddress = 0x0010000,
+
+ /** The iBearerCap1 field is valid in the call
+ info class.
+
+ Modes: GSM/WCDMA */
+ KCallBearerCap1 = 0x0020000,
+
+ /** The iBearerCap2 field is valid in the call
+ info class.
+
+ Modes: GSM/WCDMA */
+ KCallBearerCap2 = 0x0040000,
+
+ /** The iBCRepeatIndicator field is valid in the call
+ info class.
+
+ Modes: GSM/WCDMA */
+ KCallBCRepeatIndicator = 0x0080000,
+
+ };
+
+
+ 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 */
+ 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. */
+ 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; //< Package descriptor to hold a TMobileCallInfoV3.
+
+
+ class TMobileCallInfoV7 : public TMobileCallInfoV3
+ /**
+ Extends the TMobileCallInfoV3 claass to include extra parameters
+ to indicate the origin of the call, an icon and identifier to
+ describe the call and an indication of whether the call parameters
+ have been modified.
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileCallInfoV7();
+ public:
+ /**
+ The origin of the call.
+ */
+ TCallParamOrigin iCallParamOrigin;
+ /**
+ The icon identifier which can be used for indication that the
+ call is being made.
+ */
+ TIconId iIconId;
+ /**
+ The alpha identifier to describe the icon.
+ */
+ TAlphaIdBuf iAlphaId;
+ /**
+ An indication of whether the call parameters have been modified.
+ Set to ETrue if they have been modified, EFalse otherwise.
+ */
+ TBool iParamsCallControlModified;
+ };
+
+ typedef TPckg<TMobileCallInfoV7> TMobileCallInfoV7Pckg; //< Package descriptor to hold a TMobileCallInfoV7.
+
+ class TMobileCallInfoV8 : public TMobileCallInfoV7
+ /**
+ Extends the TMobileCallInfoV7 claass to include extra parameters
+ to indicate the bearer capabilities, repeat indicator and sub address.
+
+ @publishedPartner
+ @released
+ */
+ {
+ public:
+ IMPORT_C TMobileCallInfoV8();
+ public:
+ /** The sub-address of the remote party.
+
+ @see TSubAddress */
+ TSubAddress iSubAddress;
+
+ /** Capability configuration parameters for the first bearer.
+
+ @see TCcp */
+ TCcp iBearerCap1;
+
+ /** Capability configuration parameters for the second bearer.
+
+ @see TCcp */
+ TCcp iBearerCap2;
+
+ /** The bearer capability repeat indicator.
+
+ @see TBCRepeatIndicator */
+ TBCRepeatIndicator iBCRepeatIndicator;
+ };
+
+ typedef TPckg<TMobileCallInfoV8> TMobileCallInfoV8Pckg; //< Package descriptor to hold a TMobileCallInfoV8.
+
+ 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
+ @deprecated 9.5
+ */
+ 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
+ /*
+ * @deprecated 9.5
+ * */
+ 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.
+ @deprecated 9.5
+ */
+ 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.
+ @deprecated 9.5
+ */
+ KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4
+ };
+
+/** Defines common attributes of all SMS messages.
+
+Modes: CDMA
+
+@see TMobileSmsAttributesV1
+@deprecated 9.5
+*/
+ enum TMobileSmsAttributeFlags
+ {
+ /** The iCdmaTeleservice field is valid in the attribute class.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ KCdmaTeleservice = 0x00000001,
+ /** The iCdmaServiceCategory field is valid in the attribute class.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ KCdmaKeepChannelOpen = 0x00000400,
+ /** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ KCdmaTLAckRequired = 0x00000800,
+ /** The iAddressAuthentication field is valid in the attribute class.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ TInt iCdmaTeleservice;
+ /** The service category this message belongs to.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ {
+ 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 acknowledge but NOT store all incoming messages before passing them
+ onto TSY. It is client's responsibility to store the message. */
+ EReceiveUnstoredPhoneAck, // client stores but phone acknowledges 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. */
+ EReceiveUnstoredClientAck, // client acknowledges and stores message
+ /** Phone will store and acknowledge all incoming messages before passing them
+ onto TSY. */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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
+ @deprecated 9.5
+ */
+ 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,
+ /*
+ @deprecated 9.5
+ */
+ 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.
+ @deprecated 9.5
+ */
+ 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.
+ @deprecated 9.5
+ */
+ 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;
+
+ IMPORT_C TInt AcceptIncomingDialogue() const;
+ IMPORT_C TInt RejectIncomingDialogue() 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
+ @deprecated 9.5
+ */
+ 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.
+ @deprecated 9.5
+ */
+ 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
+
+ @deprecated 9.5
+ */
+ {
+ public:
+ void InternalizeL(RReadStream& aStream);
+ void ExternalizeL(RWriteStream& aStream) const;
+ public:
+ IMPORT_C TMobileCdmaSmsEntryV1();
+ public:
+ /** The teleservice identifier of the stored message.
+
+ Modes: CDMA
+ @deprecated 9.5
+ */
+ 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.
+@deprecated 9.5
+*/
+ 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
+
+ @deprecated 9.5
+
+*/
+ {
+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
+@released
+*/
+class RMobileSmartCardEap : public RTelSubSessionBase
+ {
+ friend class CAsyncSmartCardEapAuthentication;
+
+public:
+ /**
+ Class encapsulates EAP request packet data for authentication.
+
+ @see CAsyncSmartCardEapAuthentication
+
+ @publishedPartner
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ enum { KEapKeyMaxSize = 255 };
+
+ /**
+ EAP authentication key data.
+
+ @see RMobileSmartCardEap::GetEapKey()
+
+ @publishedPartner
+ @released
+ */
+ 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
+ @released
+ */
+ 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
+ @released
+ */
+ 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;
+
+ 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.
+ @publishedPartner
+ */
+ 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.
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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.
+
+ @publishedPartner
+ */
+ 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.
+ @publishedPartner
+ */
+
+ 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.
+ @publishedPartner
+ */
+ 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.
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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.
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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.
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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.
+
+ @publishedPartner
+ */
+ 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
+ @publishedPartner
+ */
+ 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.
+
+ @publishedPartner
+ */
+ 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.
+
+ @publishedPartner
+ */
+ 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.
+
+ @publishedPartner
+ */
+ 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
+ };
+
+ /**
+ The UE Positioning Technology value, as defined in 3GPP TS 34.109 V7.2.0 Section 6.10
+ @publishedPartner
+ @released
+ */
+ enum TUePosTechnology
+ {
+ /** A-GPS */
+ KUePosTechnologyAGPS = 0
+ };
+
+ 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);
+ IMPORT_C void NotifyResetUePositioningInformation(TRequestStatus& aReqStatus, TUePosTechnology& aUePosTechnology) const;
+
+private:
+ void ConstructL();
+ void Destruct();
+private:
+ /**
+ Pointer Holder for the RMobileLocationServices sub-session requests.
+ */
+ CMobileLocationServicesPtrHolder* iMmPtrHolder;
+ };
+
+#endif // __ETELMM_H__