diff -r b31261fd4e04 -r ccd8e69b5392 mmsharing/mmshavailability/tsrc/ut_availability/Stubs/inc/etelmm.h --- a/mmsharing/mmshavailability/tsrc/ut_availability/Stubs/inc/etelmm.h Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12666 +0,0 @@ -/* -* Copyright (c) 2000-2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -/** -@file - -Multimode ETel API header file. - -Describes the MM ETel API - classes, methods and types. - -@publishedPartner -@released -*/ - -#ifndef __ETELMM_H__ -#define __ETELMM_H__ - -#include -#include -#include -#include - - -/** -Internal API/TSY delimiter used to pass the phonebook type -*/ -#define PHBOOK_DELIMITER _L("//") -/** The size of the phone book delimiter string. -@internalComponent - */ -const TInt KSizeOfPhbookDelimiter=2; - -/** -Names for Multimode ETel sub-sessions -*/ -_LIT(KETelMeAdnPhoneBook,"S1"); -_LIT(KETelMeDialledPhoneBook,"S2"); -_LIT(KETelMeMissedPhoneBook,"S3"); -_LIT(KETelMeReceivedPhoneBook,"S4"); -_LIT(KETelCombinedAdnPhoneBook,"S5"); -_LIT(KETelTaAdnPhoneBook,"S6"); -_LIT(KETelIccAdnPhoneBook,"S7"); -_LIT(KETelIccFdnPhoneBook,"S8"); -_LIT(KETelIccSdnPhoneBook,"S9"); -_LIT(KETelIccBdnPhoneBook,"S10"); -_LIT(KETelIccLndPhoneBook,"S11"); -_LIT(KETelIccVoiceMailBox,"S12"); - -_LIT(KETelMeSmsStore,"S13"); -_LIT(KETelIccSmsStore,"S14"); -_LIT(KETelCombinedSmsStore,"S15"); - -_LIT(KETelNamStore,"S16"); -_LIT(KETelOwnNumberStore,"S17"); -_LIT(KETelEmergencyNumberStore,"S18"); - -_LIT(KETelSmsMessaging,"S19"); -_LIT(KETelBroadcastMessaging,"S20"); -_LIT(KETelUssdMessaging,"S21"); - -_LIT(KETelConferenceCall,"S22"); - -_LIT(KETelIccMbdnPhoneBook, "S23"); -_LIT(KETelIccMsisdnPhoneBook, "S24"); -_LIT(KETelIccOciPhoneBook, "S25"); -_LIT(KETelIccIciPhoneBook, "S26"); -_LIT(KETelIccNamStore ,"S27"); -_LIT(KETelIccInfoPhoneBook, "S28"); - -_LIT(KETelLocationServices,"S29"); - -// Types for Multimode ETel sub-sessions - -_LIT(KEtelCdmaPhoneBookType,"T1"); -_LIT(KEtelGsmPhoneBookType,"T2"); -_LIT(KEtelUSimPhoneBookType,"T3"); - -// Types for SmartCardEap sub-sessions - -/** -The prefix to all RMobileSmartCardEap sub-session names. -*/ -_LIT(KETelSmartCardEapSession, "ScEap"); -/** -The length of KETelSmartCardEapSession. Used to obtain a const value -for this length at compile-time. -*/ -#define SCEAP_SSN_LENGTH 5 - -/** -EAP-MD5 type identifier. Value taken from section 5 of RFC 3748 Jun 2004. -This should be used as the EAP type identifier value of -RMobileSmartCardEap::Open() if standard EAP-MD5 challenges are to be used. - -This value corresponds to one of the possible values returned in the type -list of TUiccApplicationEapInfoV6. - -(Decimal value = 4) - -@see RMobileSmartCardEap::Open() -@see RMobilePhone::TUiccApplicationEapInfoV6 -*/ -_LIT8(KETelSmartCardEapTypeMD5, "04"); - -/** -EAP-TLS type identifier. Value taken from section 4.1 of RFC 2716 Oct 1999. -This should be used as the EAP type identifier value of -RMobileSmartCardEap::Open() if standard EAP-TLS is to be used. - -This value corresponds to one of the possible values returned in the type -list of TUiccApplicationEapInfoV6. - -(Decimal value = 13) - -@see RMobileSmartCardEap::Open() -@see RMobilePhone::TUiccApplicationEapInfoV6 -*/ -_LIT8(KETelSmartCardEapTypeTLS, "0D"); - -/** -EAP-SIM type identifier. -This should be used as the EAP type identifier value of -RMobileSmartCardEap::Open() if standard EAP-SIM is to be used. - -This value corresponds to one of the possible values returned in the type -list of TUiccApplicationEapInfoV6. - -(Decimal value = 18) - -@see RMobileSmartCardEap::Open() -@see RMobilePhone::TUiccApplicationEapInfoV6 -*/ -_LIT8(KETelSmartCardEapTypeSIM, "12"); - -/** -EAP-AKA type identifier. -This should be used as the EAP type identifier value of -RMobileSmartCardEap::Open() if standard EAP-AKA is to be used. - -This value corresponds to one of the possible values returned in the type -list of TUiccApplicationEapInfoV6. - -(Decimal value = 23) - -@see RMobileSmartCardEap::Open() -@see RMobilePhone::TUiccApplicationEapInfoV6 -*/ -_LIT8(KETelSmartCardEapTypeAKA, "17"); - -/** -EAP-TTLS type identifier. -This should be used as the EAP type identifier value of -RMobileSmartCardEap::Open() if standard EAP-TTLS is to be used. - -This value corresponds to one of the possible values returned in the type -list of TUiccApplicationEapInfoV6. - -(Decimal value = 21) - -@see RMobileSmartCardEap::Open() -@see RMobilePhone::TUiccApplicationEapInfoV6 -*/ -_LIT8(KETelSmartCardEapTypeTTLS, "15"); - -/***********************************************************************************/ -// -// Global Multimode constants and types -// -/***********************************************************************************/ - -/** -Unique API identifier and Functional Unit constants -Modes: Common -*/ -enum TMultimodeETelV1Api - { - /** TSY supports the Multimode ETel v1.0 API. - - Modes: Common */ - KETelExtMultimodeV1=3000, // 3000 is unique reference for Multimode Etel v1.0 API - /** TSY supports the MobileSimAccess functional unit. - - Modes: Common */ - KETelFuncMobileIccAccess, - /** TSY supports the MobileNetwork functional unit. - - Modes: Common */ - KETelFuncMobileNetwork, - /** TSY supports the MobileIdentity functional unit. - - Modes: Common */ - KETelFuncMobileIdentity, - /** TSY supports the MobilePower functional unit. - - Modes: Common */ - KETelFuncMobilePower, - /** TSY supports the MobileSignal functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileSignal, - /** TSY supports the MobileIndicator functional unit. - - Modes: Common */ - KETelFuncMobileIndicator, - /** TSY supports the MobileDTMF functional unit. - - Modes: Common */ - KETelFuncMobileDTMF, - /** TSY supports the MobileUserNetworkAccess functional unit. - - Modes: Common */ - KETelFuncMobileUserNetworkAccess, - /** TSY supports the MobileIdentityService functional unit. - - Modes: Common */ - KETelFuncMobileIdentityService, - /** TSY supports the MobileCallForwarding functional unit. - - Modes: Common */ - KETelFuncMobileCallForwarding, - /** TSY supports the MobileCallBarring functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileCallBarring, - /** TSY supports the MobileCallWaiting functional unit. - - Modes: Common */ - KETelFuncMobileCallWaiting, - /** TSY supports the MobileCallCompletion functional unit. */ - KETelFuncMobileCallCompletion, - /** TSY supports the MobileAlternatingCall functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileAlternatingCall, - /** TSY supports the MobileCost functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileCost, - /** TSY supports the MobileSecurity functional unit. - - Modes: Common */ - KETelFuncMobileSecurity, - /** TSY supports the MobileAlternateLineService functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileAlternateLineService, - /** TSY supports the MobileMessageWaiting functional unit. - - Modes: Common */ - KETelFuncMobileMessageWaiting, - /** TSY supports the MobileFixedDiallingNumbers functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileFixedDiallingNumbers, - /** TSY supports the MobileDataCall functional unit. - - Modes: Common */ - KETelFuncMobileDataCall, - /** TSY supports the MobilePrivacy functional unit. - - Modes: CDMA */ - KETelFuncMobilePrivacy, - /** TSY supports the MobileEmergencyCall functional unit. - - Modes: Common */ - KETelFuncMobileEmergencyCall, - /** TSY supports the MobileSmsMessaging functional unit. - - Modes: Common */ - KETelFuncMobileSmsMessaging, - /** TSY supports the MobileBroadcastMessaging functional unit. - - Modes: Common */ - KETelFuncMobileBroadcastMessaging, - /** TSY supports the MobileUssdMessaging functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileUssdMessaging, - /** TSY supports the MobileConferenceCall functional unit. - - Modes: Common */ - KETelFuncMobileConferenceCall, - /** TSY supports the MobilePhonebookStore functional unit. - - Modes: Common */ - KETelFuncMobilePhonebook, - /** TSY supports the MobileSmsStore functional unit. - - Modes: Common */ - KETelFuncMobileSmsStore, - /** TSY supports the MobileNamStore functional unit. - - Modes: CDMA */ - KETelFuncMobileNamStore, - /** TSY supports the MobileONStore functional unit. - - Modes: Common */ - KETelFuncMobileOwnNumberStore, - /** TSY supports the MobileENStore functional unit. - - Modes: Common */ - KETelFuncMobileEmergencyNumberStore, - /** TSY supports the MobileMultimedia functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileMulticall, - /** TSY supports the MobileNextIncomingCall functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileNextIncomingCall, - /** TSY supports the MobileMultimediaCall functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileMultimediaCall, - /** TSY supports the MobileUserSignalling functional unit. - - Modes: GSM/WCDMA */ - KETelFuncMobileUserSignalling - }; - -/** Unique API identifier and Functional Unit constants. -Modes: WCDMA - -*/ -enum TMultimodeETelV2Api - { - /** TSY supports the Multimode ETel v2.0 API. - - Modes: WCDMA */ - KETelExtMultimodeV2=7000, // 7000 is unique reference for Multimode Etel v2.0 API - /** TSY supports the MobileMultimediaCallSettings functional unit. - - Modes: WCDMA */ - KEtelFuncMobileMultimediaCallSettings, - /** TSY supports the MobileNetworkSecurity functional unit. - - Modes: WCDMA */ - KEtelFuncMobileNetworkSecurity, - KEtelFuncMobileUSIMApplications - }; - -/** -Enum to define the v3.0 API additions - -*/ -enum TMultimodeETelV3Api - { - /** - Indicator that the TSY supports the Multimode ETel v3.0 API. - */ - KETelExtMultimodeV3 = 10000, - /** - TSY supports the MobileMMSInformation functional unit. - */ - KEtelFuncMobileMMSInformation, // 10001 - /** - TSY supports the KEtelFuncMobileAirTime functional unit. - */ - KEtelFuncMobileAirTime, // 10002 - /** - TSY supports the KEtelFuncMobileAutoRedial functional unit. - */ - KEtelFuncMobileAutoRedial, // 10003 - /** - TSY supports the KEtelFuncMobilePersonalisation functional unit. - */ - KEtelFuncMobilePersonalisation, // 10004 - /** - TSY supports the KEtelMobileMailboxNumbers functional unit. - */ - KEtelFuncMobileMailboxNumbers, // 10005 - /** - TSY supports the Mobile APN Control List functional unit. - */ - KEtelFuncMobileAPNControlList // 10006 - }; - -/** -Enum to define the v4.0 API additions - -*/ -enum TMultimodeETelV4Api - { - /** - Indicator that the TSY supports the Multimode ETel v4.0 API. - */ - KETelExtMultimodeV4 = 15000 - }; - - -/** Enum to define Release 5 enabling API and data structures -*/ -enum TMultimodeEtelV5Api - { - /** - Indicator that the TSY supports the Multimode ETel v5.0 API. - */ - KEtelExtMultimodeV5=20000, - /** - Indicator that the TSY supports the IMS functional unit. - */ - KEtelFuncMobileIMS, // 20001 - /** - TSY supports the KEtelFuncMobileSmartCardApplications functional unit. - */ - KEtelFuncMobileSmartCardApplications // 20002 - }; - - -/** -Enum to define the v6.0 API additions. -*/ -enum TMultimodeEtelV6Api - { - /** - Indicator that the TSY supports the Multimode ETel v6.0 API. - */ - KEtelExtMultimodeV6=25000, - /** - Indicator that the TSY supports the EAP supporting functional unit. - */ - KEtelSmartCardEap // 25001 - }; -/** -Enum to define the v7.0 API additions. -*/ -enum TMultimodeEtelV7Api - { - /** - Indicator that the TSY supports the Multimode ETel v7.0 API. - */ - KEtelExtMultimodeV7=30000, - /** - Indicator that the TSY supports the LocationServices supporting functional unit. - */ - KEtelLocationControlServices // 30001 - }; -/** -Enum to define the Etel 3rdParty V1 API additions - -*/ -enum TMultimodeETel3rdPartyV1Api - { - /** - Indicator that the TSY supports the Etel 3rd Party v1.0 API - */ - KETelExt3rdPartyV1 = 40000 - }; - -/*********************************************************/ -// -// Phone based functionality (RMobilePhone) -// -/*********************************************************/ - - -class CMobilePhonePtrHolder; -class CMobilePhoneStoredNetworkList; -class RMobileSmartCardEap; - -class RMobilePhone : public RPhone -/** -Provides client access to mobile phone functionality provided by TSY. - -Encapsulates access to a mobile phone. The functionality of RMobilePhone -is divided into a number of functional units, for the purpose of easier documentation -and navigation and selectable support by TSY. - -Note: Some RMobilePhone function members must be supported by the TSY while -others are part of optional "functional unit" and only need to be supported -if the TSY supports that functional unit. When a functional unit is mandatory -then the unit should at least support the Get...Caps() member function to -indicate the member functions that are supported for this unit. - -*/ - { -public: - friend class CAsyncRetrievePhoneList; - IMPORT_C RMobilePhone(); - - // Global multimode types - - - class TMultimodeType - /** - Base class for all the V1 parameter types defined within the API. - - @publishedPartner - @released - */ - { - public: - IMPORT_C TInt ExtensionId() const; - protected: - TMultimodeType(); - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - protected: - TInt iExtensionId; - }; - - /** A typedef'd packaged TMultimodeType for passing through a generic API - function member. */ - typedef TPckg 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 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 iTelNumber; - }; - - // Mobile information location type - - /** Defines Location of service information. - - Modes: Common */ - enum TMobileInfoLocation - { - /** Retrieve the service information ONLY from the cache on the phone. Return KErrNotFound - if the cache does not exist or it is empty. */ - EInfoLocationCache, - /** Retrieve the service information from the cache, but if this is empty or does - not exist then interrogate the network. */ - EInfoLocationCachePreferred, - /** Retrieve the service information from the network (and refresh the cache if - there is one). */ - EInfoLocationNetwork - }; - - // Mobile call service type - - /** Applicability of request to a mobile service group. - - Modes: Common */ - enum TMobileService - { - /** The call service has not been specified. - - Modes: Common */ - EServiceUnspecified, - /** The API request applies to voice call services. - - Modes: Common */ - EVoiceService, - /** The API request applies to auxiliary voice call services. - - Modes: GSM/WCDMA */ - EAuxVoiceService, - /** The API request applies to circuit switched data call services. - - Modes: Common */ - ECircuitDataService, - /** The API request applies to packet data services. - - Modes: Common */ - EPacketDataService, - /** The API request applies to fax call services. - - Modes: Common */ - EFaxService, - /** The API request applies to short message services. - - Modes: Common */ - EShortMessageService, - /** The API request applies to all mobile services. - - Modes: Common */ - EAllServices, - /** All teleservices - - Modes: Common */ - EAllTele, - /** Telephony - - Modes: Common */ - ETelephony, - /** All data teleservices - - Modes: Common */ - EAllDataTele, - /** Voice Broadcast Service (VBS) Bearer Service - - Modes: Common */ - EAllDataExSms, - /** All teleservices except SMS - - Modes: Common */ - EAllTeleExcSms, - /** All PLMN specific teleservices - - Modes: Common */ - EAllPlmnTele, - /** PLMN specific teleservice 1 - - Modes: Common */ - EPlmnTele1, - /** PLMN specific teleservice 2 - - Modes: Common */ - EPlmnTele2, - /** PLMN specific teleservice 3 - - Modes: Common */ - EPlmnTele3, - /** PLMN specific teleservice 4 - - Modes: Common */ - EPlmnTele4, - /** PLMN specific teleservice 5 - - Modes: Common */ - EPlmnTele5, - /** PLMN specific teleservice 6 - - Modes: Common */ - EPlmnTele6, - /** PLMN specific teleservice 7 - - Modes: Common */ - EPlmnTele7, - /** PLMN specific teleservice 8 - - Modes: Common */ - EPlmnTele8, - /** PLMN specific teleservice 9 - - Modes: Common */ - EPlmnTele9, - /** PLMN specific teleservice 10 - - Modes: Common */ - EPlmnTeleA, - /** PLMN specific teleservice 11 - - Modes: Common */ - EPlmnTeleB, - /** PLMN specific teleservice 12 - - Modes: Common */ - EPlmnTeleC, - /** PLMN specific teleservice 13 - - Modes: Common */ - EPlmnTeleD, - /** PLMN specific teleservice 14 - - Modes: Common */ - EPlmnTeleE, - /** PLMN specific teleservice 15 - - Modes: Common */ - EPlmnTeleF, - /** All bearer services - - Modes: Common */ - EAllBearer, - /** All async services - - Modes: Common */ - EAllAsync, - /** All sync services - - Modes: Common */ - EAllSync, - /** All data circuit sync - - Modes: Common */ - ESyncData, - /** All data circuit async - - Modes: Common */ - EAsyncData, - /** All packet data services - - Modes: Common */ - EPacketData, - /** All pad access services - - Modes: Common */ - EPadAccess, - /** All PLMN specific bearer services - - Modes: Common */ - EAllPlmnBearer, - /** PLMN specific bearer service 1 - - Modes: Common */ - EPlmnBearerServ1, - /** PLMN specific bearer service 2 - - Modes: Common */ - EPlmnBearerServ2, - /** PLMN specific bearer service 3 - - Modes: Common */ - EPlmnBearerServ3, - /** PLMN specific bearer service 4 - - Modes: Common */ - EPlmnBearerServ4, - /** PLMN specific bearer service 5 - - Modes: Common */ - EPlmnBearerServ5, - /** PLMN specific bearer service 6 - - Modes: Common */ - EPlmnBearerServ6, - /** PLMN specific bearer service 7 - - Modes: Common */ - EPlmnBearerServ7, - /** PLMN specific bearer service 8 - - Modes: Common */ - EPlmnBearerServ8, - /** PLMN specific bearer service 9 - - Modes: Common */ - EPlmnBearerServ9, - /** PLMN specific bearer service 10 - - Modes: Common */ - EPlmnBearerServA, - /** PLMN specific bearer service 11 - - Modes: Common */ - EPlmnBearerServB, - /** PLMN specific bearer service 12 - - Modes: Common */ - EPlmnBearerServC, - /** PLMN specific bearer service 13 - - Modes: Common */ - EPlmnBearerServD, - /** PLMN specific bearer service 14 - - Modes: Common */ - EPlmnBearerServE, - /** PLMN specific bearer service 15 - - Modes: Common */ - EPlmnBearerServF, - /** Alternative tele services - - Modes: Common */ - EAltTele, - EVoiceGroupCall, - EVoiceBroadcast, - EAllGprsBearer - }; - - // Mobile name type - - /** A typedef to hold the names of API sub-sessions. The names are coded as ASCII - characters. */ - typedef TBuf 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 TMobilePassword; - - // for use by client-side API code and TSY only - - struct TClientId - /** This type is used within the 2-phase list retrieval classes. During both phases, - the client-side API code will pass down the TClientId so that TSY can use - this information to match the first phase of the request to the second phase. */ - { - /** The handle to the underlying RTelServer session. */ - TInt iSessionHandle; - /** The handle to the sub-session to which this API request relates. */ - TInt iSubSessionHandle; - }; - - /** Phone air interface capabilities. */ - enum TMobilePhoneModeCaps - { - /** Phone can operate in GSM mode on 900/1800/1900 MHz bands. */ - KCapsGsmSupported=0x00000001, - /** Phone can operate in GPRS mode on 900/1800/1900 MHz bands. */ - KCapsGprsSupported=0x00000002, - /** Phone can operate in AMPS mode on 800MHz band. */ - KCapsAmpsSupported=0x00000004, - /** Phone can operate in CDMA (IS-95) mode on 800/1900 MHz bands. */ - KCapsCdma95Supported=0x00000008, - /** Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands. */ - KCapsCdma2000Supported=0x00000010, - /** Phone can operate in W-CDMA (UTRA Frequency Division Duplex (FDD)) mode. */ - KCapsWcdmaSupported=0x00000020, - /** Phone can operate in TDMA/CDMA (UTRA Time Division Duplex (TDD)) mode. */ - KCapsTdcdmaSupported=0x00000040, - /** - Phone can access Smart Card functionality required for an EAP. - @deprecated 9.3 - */ - KCapsEapSupported=0x00000080 - }; - - /** Version number of the multimode ETel API. */ - enum TMultimodeEtelAPIVersion - { - /** Multimode Etel API version 1. */ - TMultimodeETelApiV1 - }; - - // - // API/TSY internal type - // - - struct TPhoneStoreNameAndIccType - /** Structure that holds the phone store name and ICC type. - - Mode: Common */ - { - /** This parameter is used to set the name of the storage. */ - TName iStoreName; - /** This parameter is used to set the type of the ICC card. */ - TName iMode; - }; - - IMPORT_C TInt GetMultimodeAPIVersion(TInt& aVersion) const; - - IMPORT_C TInt GetMultimodeCaps(TUint32& aCaps) const; - - IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aReqStatus, TDes8& aInfo, const TDesC& aStoreName) const; - - IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aStatus, TDes8& aInfo, const TDesC& aStoreName, const TDesC& aMode) const; - - // explicit phone initialisation - IMPORT_C void InitialiseMM(TRequestStatus& aReqStatus, TDes8& aTableSettings) const; - - /***********************************************************************************/ - // - // MobilePhoneIccAccess functional unit - // - /***********************************************************************************/ - -/** ICC access capabilities. - -Modes: GSM */ - enum TMobilePhoneIccCaps - { - /** Phone has a SIM and it currently supports SIM access by clients. - - Modes: GSM */ - KCapsSimAccessSupported=0x00000001, - /** Phone has a R-UIM and it currently supports R-UIM access by clients. - - Modes: CDMA */ - KCapsRUimAccessSupported=0x00000002, - /** Phone has a USIM and it currently supports USIM access by clients. - - Modes: WCDMA */ - KCapsUSimAccessSupported=0x00000004 - }; - - - enum - { - /** - Maximum size of an ICC identity. - - NOTE: TS102.221 defines the maximum size of the ICC Identity as held in EF_ICCID as 10 bytes, however - TS 51.011 mentions that network operators may issue a SIM with an identification number of 20 bytes. - Therefore to cover this possibility the higher figure of 20 bytes has been chosen as the maximum size of the ICC identity. - */ - KMaxSizeIccIdentity = 20 - }; - - /** A typedef to hold the ICC identity.*/ - typedef TBuf8 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 TMobilePhoneCspFileV1Pckg; - - IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const; - -/** SIM/USIM/CDMA Service Table. - -Modes: Common */ - enum TSSTServices1To8 - { - /** Indicates that disabling PIN1 is supported by the ICC. */ - KSstPin1Disable=0x01, - /** Indicates that storage of Abbreviated Dialling Numbers within this ICC is supported. */ - KSstADN=0x02, - /** Indicates that the Fixed Dialling Numbers service and the storage of FDN numbers - within this ICC is supported. */ - KSstFDN=0x04, - /** Indicates that the Short Message Service and the storage of short messages within - this ICC is supported. - - Modes: Common */ - KSstSMS=0x08, - /** Indicates that the Advice of Charge service is supported by this ICC. - - Modes: GSM/WCDMA */ - KSstAoC=0x10, - /** Indicates that the storage of Configuration Capability Parameters associated - with an AND, FDN, MSISDN, LND or SDN is supported by this ICC. - - Modes: GSM/WCDMA */ - KSstCCP=0x20, - /** Indicates that storage of a preferred network list is supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSstPLMNSelector=0x40 - }; - -/** SIM/USIM/CDMA Service Table (continued). - -Modes: GSM/WCDMA */ - enum TSSTServices9To16 - { - /** Indicates that storage of MSISDN (own numbers) numbers within this ICC is supported. - - Modes: GSM/WCDMA */ - KSstMSISDN=0x01, - /** Indicates that storage of extended (greater than 20 digits) ADN, LND and MSISDN - numbers within this ICC is supported. - - Modes: Common */ - KSstExt1=0x02, - /** Indicates that storage of extended (greater than 20 digits) FDN numbers within - this ICC is supported. - - Modes: Common */ - KSstExt2=0x04, - /** Indicates that storage of SMS parameter records within this ICC is supported. - - Modes: Common */ - KSstSMSP=0x08, - /** Indicates that storage of Last Numbers Dialled within this ICC is supported. - - Modes: Common */ - KSstLND=0x10, - /** Indicates that the storage of Cell Broadcast message identifiers is supported - within this ICC. - - Modes: GSM/WCDMA */ - KSstCBMI=0x20, - /** Indicates that access to the GID1 file is supported within this ICC. - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSstGID1=0x40, - /** Indicates that access to the GID2 file is supported within this ICC. - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSstGID2=0x80 - }; - -/** SIM/USIM/CDMA Service Table (continued). - -v1.0 of Multimode ETel API does not support this feature - -Modes: Common */ - enum TSSTServices17To24 - { - /** Indicates that access to the Service Provider Name within ICC is supported. - - v1.0 of Multimode ETel API does not support this feature - - Modes: Common */ - KSstSPName=0x01, - /** Indicates that storage of Service Dialling Numbers within ICC is supported. - - Modes: Common */ - KSstSDN=0x02, - /** Indicates that storage of extended (greater than 20 digits) SDN numbers within - this ICC/RUIM is supported. - - Modes: Common */ - KSstExt3=0x04, - /** Indicates that access to the VGCS group identifier list within ICC is supported. - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSstVGCSList=0x10, - /** Indicates that access to the VBS group identifier list within ICC is supported. - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSstVBSList=0x20, - /** Indicates that the enhanced Multi-Level Precedence and Pre-emption service is - supported by ICC - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSsteMLPP=0x40, - /** Indicates that automatic answer for eMLPP is supported by ICC - - v1.0 of Multimode ETel API does not support this feature - - Modes: GSM/WCDMA */ - KSstAnswereMLPP=0x80 - }; - -/** SIM/USIM/CDMA Service Table (continued). - -Modes: GSM/WCDMA */ - enum TSSTServices25To32 - { - /** Indicates that SAT SMS-CB data download is supported by ICC. */ - KSstSmsCbDataDownload=0x01, - /** Indicates that SAT SMS-PP data download is supported by ICC. */ - KSstSmsPpDataDownload=0x02, - /** Indicates that SAT menu selection is supported by ICC. - - SAT ETel API provides this feature. */ - KSstMenuSelection=0x04, - /** Indicates that SAT call control is supported by ICC. - - SAT ETel API provides this feature. */ - KSstCallControl=0x08, - /** Indicates that SAT pro-active SIM is supported by ICC. - - SAT ETel API provides this feature. */ - KSstProactiveSim=0x10, - /** Indicates ICC storage of ranges of Cell Broadcast Message Identifiers is supported. */ - KSstCBMIRanges=0x20, - /** Indicates ICC storage of Barred Dialling Numbers is supported. */ - KSstBDN=0x40, - /** Indicates ICC storage of extended (greater than 20 digits) BDN numbers is supported. */ - KSstExt4=0x80 - }; - -/** SIM/USIM/CDMA Service Table (continued). - -Modes: GSM/WCDMA */ - enum TSSTServices33To40 - { - /** Indicates depersonalisation control keys are supported by ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstDepersonalisationKeys=0x01, - /** Indicates co-operative network list are supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstCooperativeNetworks=0x02, - /** Indicates Short Message Status Reports are supported by ICC. */ - KSstSMStatusReports=0x04, - /** Indicates network's indication of alerting is supported by ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstNetworkIndAlerting=0x08, - /** Indicates outgoing SM control by SAT is supported by ICC. - - SAT ETel API provides this feature. */ - KSstMoSmControlBySim=0x10, - /** Indicates that GPRS is supported by this ICC. - - GPRS ETel API provides GPRS functionality. */ - KSstGprs=0x20, - /** Indicates that Image files are supported by this ICC. - - SAT ETel API provides this feature. */ - KSstImage=0x40, - /** Indicates that SoLSA in supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature */ - KSstSoLSA=0x80 - }; - -/** SIM/USIM/CDMA Service Table (continued). - -Modes: GSM/WCDMA */ - enum TSSTServices41To48 - { - /** Indicates that USSD string data is supported in SAT Call Control by this ICC. - - SAT ETel API provides this feature. */ - KSstUssdStringInCallControl=0x01, - /** Indicates that RUN AT COMMAND is supported in SAT by this ICC. - - v1.0 of Multimode ETel API does not support this feature */ - KSstRunATCommand=0x02, - /** Indicates that PLMN selector list with access technology is supported by this - ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstPlmnSelectorListWithAccessTechnology=0x04, - /** Indicates that OPLMN selector list with access technology is supported by this - ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstOplmnSelectorListWithAccessTechnology=0x08, - /** Indicates that HPLMN access technology is supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstHplmnAccessTechnology=0x10, - /** Indicates that CPBCCH information is supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstCpbcchInformation=0x20, - /** Indicates that Investigation Scan is supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstInvestigationScan=0x40, - /** Indicates that extended capability configuration parameters are supported by - this ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstExtendedCcp=0x80 - }; - -/** SIM/USIM/CDMA Service Table (continued). - -Modes: GSM/WCDMA */ - enum TSSTServices49To56 - { - /** Indicates Mobile Execution Environment services are supported by this ICC */ - KSstMExE=0x01, - /** Indicates that RPLMN last used access technology is supported by this ICC. - - v1.0 of Multimode ETel API does not support this feature. */ - KSstRplmnLastUsedAccessTechnology=0x02 - }; - -/** USIM service table. */ - enum TUSTServices1To8 - { - /** Indicates that the local phonebook is supported by the USIM. Local phonebook - means a phonebook that is specific to a USIM Application, as opposed to the - global phonebook which is located at the DF Telecom level on the UICC and - not attached to a USIM Application. */ - KUstLocalPhBk=0x01, - /** Indicates that the Fixed Dialling Numbers (FDN) service and the storage of - FDN numbers within this USIM is supported. */ - KUstFDN=0x02, - /** Indicates that the Extension 2 is supported by the USIM. Extension 2 provides - extension data for Fixed Dialling Numbers. */ - KUstExt2=0x04, - /** Indicates that the Service Dialling Numbers are supported by the USIM. */ - KUstSDN=0x08, - /** Indicates that the Extension 3 is supported by the USIM. Extension 3 provides - extension data for Service Dialling Numbers. */ - KUstExt3=0x10, - /** Indicates that the Barred Dialling Numbers are supported by the USIM. */ - KUstBDN=0x20, - /** Indicates that the Extension 4 is supported by the USIM. Extension 4 provides - extension data for Barred Dialling Numbers. */ - KUstExt4=0x40, - /** Indicates that the outgoing call information (OCI and OCT) are supported by - the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstOugoingCallInfo=0x80 - }; - -/** USIM service table (continued). */ - enum TUSTServices9To16 - { - /** Indicates that the incoming call information (ICI and ICT) are supported by - the USIM - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstIncomingCallInfo=0x01, - /** Indicates that Short Message Storage is supported by the USIM. */ - KUstSMS=0x02, - /** Indicates that Short Message Status Reports are supported by the USIM. */ - KUstSMSR=0x04, - /** Indicates that Short Message Service Parameters are supported by the USIM. */ - KUstSMSP=0x08, - /** Indicates that Advice Of Charge is supported by the USIM. */ - KUstAoC=0x10, - /** Indicates that Capability Configuration Parameters are supported by the USIM. */ - KUstCCP=0x20, - /** Indicates that Cell Broadcast Message Identifier is supported by the USIM. */ - KUstCBMI=0x40, - /** Indicates that Cell Broadcast Message Identifier Ranges are supported by the - USIM. */ - KUstCBMIRanges=0x80 - }; - -/** USIM service table (continued). */ - enum TUSTServices17To24 - { - /** Indicates that Group Identifier Level 1 is supported by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstGID1=0x01, - /** Indicates that Group Identifier Level 2 is supported by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstGID2=0x02, - /** Indicates that Service Provider Name is supported by the USIM. */ - KUstSPN=0x04, - /** Indicates that user controlled PLMN selector with Access Technology is supported - by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstPLMNSelAccessTech=0x08, - /** Indicates that MSISDN is supported by the USIM. */ - KUstMSISDN=0x10, - /** Indicates that Image is supported by the USIM. - - Note: (U)SAT ETel API provides this feature. This enum value is reserved for - future API use. */ - KUstIMG=0x20, - //0x40 is a reserved value - /** Indicates that enhanced Multi Level Precedence and Pre-emption Service is supported - by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUsteMLPP=0x80 - }; - -/** USIM service table (continued). */ - enum TUSTServices25To32 - { - /** Indicates that Automatic Answer for eMLPP is supported by the USIM. - - Note: v1.0 and v2.0 of Multimode ETel API do not support this feature. */ - KUstAnswereMLPP=0x01, - //0x02 is a reserved value - /** Indicates that GSM Access is supported by the USIM */ - KUstGSMAccess=0x04, - /** Indicates that Data download via SMS-PP is supported by the USIM. - - Note: (U)SAT ETel API provides this feature. */ - KUstSMSPpDataDownload=0x08, - /** Indicates that Data download via SMS-CB is supported by the USIM. - - Note: (U)SAT ETel API provides this feature. */ - KUstSMSCbDataDownload=0x10, - /** Indicates that Call Control by USIM is supported by the USIM. - - Note: (U)SAT ETel API provides this feature. */ - KUstCallControl=0x20, - /** Indicates that MO-SMS Control by USIM is supported by the USIM. - - Note: (U)SAT ETel API provides this feature. */ - KUstMoSmControl=0x40, - /** Indicates that the proactive command RUN AT COMMAND is supported by the USIM. - - Note: (U)SAT ETel API provides this feature. */ - KUstPCmdRunAtCommand=0x80 - }; - -/** USIM service table (continued). */ - enum TUSTServices33To40 - { - /** Should always be present as specified by 3 GPP spec. */ - KUstAlways=0x10, - /** Indicates that the Enabled Service Table is supported by the USIM. */ - KUstEST=0x02, - /** Indicates that APN Control List is supported by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstACL=0x04, - /** Indicates that the Depersonalisation Control Keys are supported by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KIstDepersonalisationKeys =0x08, - /** Indicates that the Co-operative Network List is supported by the USIM. - - Note: v2.0 of Multimode ETel API does not support this feature. */ - KUstCooperativeNetwork=0x10, - /** Indicates that GSM Security Context is supported by the USIM. */ - KUstGSMSecurityContext=0x20, - /** Indicates that CPBCCH Information is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstCPBCCHInfo=0x40, - /** Indicates that Investigation Scan is supported by the USIM. - - Note:v2.0 of Multimode ETel API do not support this feature. */ - KUstInvestigationScan=0x80 - }; - -/** USIM service table (continued). */ - enum TUSTServices41To48 - { - /** Indicates that MExE is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstMExE=0x01, - /** Indicates that Operator controlled PLMN selector with Access Technology is - supported by the USIM. - - N.B .v2.0 of Multimode ETel API do not support this feature. */ - KUstOperatorPLMNSelector=0x02, - /** Indicates that HPLMN selector with Access Technology is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstHPLMNSelAccessTech=0x04, - /** Indicates that Extension 5 is supported by the USIM. Provides support for extension - data for MSISDN. */ - KUstExt5=0x08, - /** Indicates that PLMN Network Name is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstPLMNNetworkName=0x10, - /** Indicates that Operator PLMN List is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstOperatorPLMNList=0x20, - /** Indicates that Mailbox Dialling Numbers are supported by the USIM. */ - KUstMDN=0x40, - /** Indicates that Message Waiting Indication Status is supported by the USIM. */ - KUstMWISo=0x80 - }; - -/** USIM service table (continued). */ - enum TUSTServices49To56 - { - /** Indicates that Call forwarding indication status is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstCFIS=0x01, - /** Indicates that RPLMN last-used access technology is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstRPLMN=0x02, - /** Indicates that Service provider display information is supported by the USIM. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KUstSPDI=0x04, - KUstMMS=0x08, - KUstExt8=0x10, - KUstCConGPRS=0x20, - KUstMMSUCP=0x40 - }; - -/** Enabled Services Table. */ - enum TESTServices1To8 - { - /** Indicates that FDN service is activated. */ - KEstFDN=0x01, - /** Indicates that BDN service is activated. */ - KEstBDN=0x02, - /** Indicates that the APN Control List service is activated. - - Note: v2.0 of Multimode ETel API do not support this feature. */ - KEstACL=0x04 - }; - -/** Get Service Table. - -Modes: GSM/WCDMA */ - enum TMobilePhoneServiceTable - { - /** Retrieve SIM service table on SIM (or from GSM application on UICC). - - Modes: GSM/WCDMA */ - ESIMServiceTable, - /** Retrieve USIM service table from active USIM application on UICC. - - Modes: WCDMA */ - EUSIMServiceTable, - /** Retrieve CDMA service table on R-UIM. - - Modes: CDMA */ - ECDMAServiceTable, - /** USIM Enabled Services Table to be used in conjunction with the USIM Service - Table. - - Modes: WCDMA */ - EUSIMEnabledServiceTable - }; - - - class TMobilePhoneServiceTableV1 : public TMultimodeType - /** Defines contents of the specified Service Table on the ICC. - - @see GetServiceTable() - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobilePhoneServiceTableV1(); - - /** Sum of the TSSTServices1To8 capability constants. */ - TUint8 iServices1To8; - /** Sum of the TSSTServices9To16 capability constants. */ - TUint8 iServices9To16; - /** Sum of the TSSTServices17To24 capability constants. */ - TUint8 iServices17To24; - /** Sum of the TSSTServices25To32 capability constants. */ - TUint8 iServices25To32; - /** Sum of the TSSTServices33To40 capability constants. */ - TUint8 iServices33To40; - /** Sum of the TSSTServices41To48 capability constants. */ - TUint8 iServices41To48; - /** Sum of the TSSTServices49To56 capability constants. */ - TUint8 iServices49To56; - }; - -/** A typedef'd packaged TMobilePhoneServiceTableV1 passing through a generic API -function member. */ - typedef TPckg 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 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 TMobilePhoneServiceTableV2Pckg; - - IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const; - - - /***********************************************************************************/ - // - // MobilePhonePower functional unit - // - /***********************************************************************************/ - -/** Phone supported battery information. - -Modes: Common */ - enum TMobilePhoneBatteryCaps - { - /** Phone supports requests to get the current battery information. */ - KCapsGetBatteryInfo=0x00000001, - /** Phone supports requests for notification of change in battery information. */ - KCapsNotifyBatteryInfoChange=0x00000002 - }; - - IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const; - -/** The mobile phone battery status. - -Modes: Common */ - enum TMobilePhoneBatteryStatus - { - /** The TSY can not determine the phone's current power status. */ - EPowerStatusUnknown, - /** The phone is currently powered by a battery. */ - EPoweredByBattery, - /** A battery is connected, but the phone is externally powered. */ - EBatteryConnectedButExternallyPowered, - /** No battery is connected. */ - ENoBatteryConnected, - /** Power fault. */ - EPowerFault - }; - - class TMobilePhoneBatteryInfoV1 : public TMultimodeType -/** Defines contents of the battery status of the phone. - -@see GetBatteryInfo() -@see NotifyBatteryInfoChange() -*/ - { - public: - IMPORT_C TMobilePhoneBatteryInfoV1(); - public: - /** The power and battery status. - - @see TMobilePhoneBatteryStatus */ - TMobilePhoneBatteryStatus iStatus; - /** The percentage battery charge level. */ - TUint iChargeLevel; - }; - - IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const; - IMPORT_C void NotifyBatteryInfoChange(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const; - - - /***********************************************************************************/ - // - // MobilePhoneSignal functional unit - // - /***********************************************************************************/ - -/** The mobile phone signal strength capabilities. - -Modes: Common */ - enum TMobilePhoneSignalCaps - { - /** Phone supports requests to get the current signal strength. */ - KCapsGetSignalStrength=0x00000001, - /** Phone supports requests for notification of change in signal strength. */ - KCapsNotifySignalStrengthChange=0x00000002 - }; - - IMPORT_C TInt GetSignalCaps(TUint32& aCaps) const; - IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const; - IMPORT_C void NotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const; - - /***********************************************************************************/ - // - // MobilePhoneIndicator functional unit - // - /***********************************************************************************/ - -/** The mobile phone indicator capabilities supported. - -Modes: Common */ - enum TMobilePhoneIndicatorCaps - { - /** Phone supports requests to get the current value of all supported indicators. */ - KCapsGetIndicator=0x00000001, - /** Phone supports requests for notification of change in the supported indicators. */ - KCapsNotifyIndicatorChange=0x00000002 - }; - -/** The mobile phone indicators. - -Modes Common */ - enum TMobilePhoneIndicators - { - /** If bit-flag is set to '1' indicates that the battery charger is connected to - the phone. If bit-flag is set to '0' indicates that the battery charger is - disconnected. */ - KIndChargerConnected=0x00000001, - /** If bit-flag is set to '1' indicates that network service is available. If bit-flag - is set to '0' indicates that network service is unavailable. */ - KIndNetworkAvailable=0x00000002, - /** If bit-flag is set to '1' indicates that a call is in progress. If set to '0' - indicates that a call is not in progress. */ - KIndCallInProgress=0x00000004 - }; - - IMPORT_C TInt GetIndicatorCaps(TUint32& aActionCaps, TUint32& aIndCaps) const; - IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TUint32& aIndicator) const; - IMPORT_C void NotifyIndicatorChange(TRequestStatus& aReqStatus, TUint32& aIndicator) const; - - - /***********************************************************************************/ - // - // MobilePhoneIdentity functional unit - // - /***********************************************************************************/ - -/** Defines Identity Capabilities. - -Modes: Common */ - enum TMobilePhoneIdentityCaps - { - /** Phone can return the identity of its manufacturer. */ - KCapsGetManufacturer=0x00000001, - /** Phone can return the identity of its model. */ - KCapsGetModel=0x00000002, - /** Phone can return the identity of its revision. */ - KCapsGetRevision=0x00000004, - /** Phone can return the identity of its serial number. */ - KCapsGetSerialNumber=0x00000008, - /** Phone can return the identity of its subscriber. */ - KCapsGetSubscriberId=0x00000010 - }; - - IMPORT_C TInt GetIdentityCaps(TUint32& aCaps) const; - - enum { KPhoneManufacturerIdSize=50 }; - enum { KPhoneModelIdSize=50 }; - enum { KPhoneRevisionIdSize=50 }; - enum { KPhoneSerialNumberSize=50 }; - - class TMobilePhoneIdentityV1 : public TMultimodeType -/** Defines the mobile phone identity. - -@see GetPhoneId() */ - { - public: - IMPORT_C TMobilePhoneIdentityV1(); - public: - /** Phone manufacturer identification, in character string format. */ - TBuf iManufacturer; - /** Phone model identification, in character string format. */ - TBuf iModel; - /** Phone revision identification, in character string format. */ - TBuf iRevision; - /** Phone serial number (IMEI or ESN), in character string format. */ - TBuf 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 TMobilePhoneSubscriberId; - - IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TMobilePhoneSubscriberId& aId) const; - - /***********************************************************************************/ - // - // MobilePhoneDTMF functional unit - // - /***********************************************************************************/ - -/** DTMF Capabilities. - -Modes: Common */ - enum TMobilePhoneDTMFCaps - { - /** Capability to send a string of DTMF tones, containing one or more tone(s). */ - KCapsSendDTMFString=0x00000001, - /** Capability to send one DTMF tone, using start and stop DTMF tone function member. */ - KCapsSendDTMFSingleTone=0x00000002, - }; - - /** - DTMF tone operation event. - */ - enum TMobilePhoneDTMFEvent - { - /** - Start sending of a Dtmf tone operation has been acknowledged from the MSC. - */ - EStartDtmfTone, - /** - Stop sending of a Dtmf tone operation has been acknowledged from the MSC. - */ - EStopDtmfTone, - }; - - - IMPORT_C TInt GetDTMFCaps(TUint32& aCaps) const; - IMPORT_C void NotifyDTMFCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - - IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const; - IMPORT_C void ReadDTMFTones(TRequestStatus& aReqStatus, TDes& aTones) const; - IMPORT_C TInt StartDTMFTone(TChar aTone) const; - IMPORT_C TInt StopDTMFTone() const; - - IMPORT_C void NotifyStopInDTMFString(TRequestStatus& aRequestStatus) const; - IMPORT_C TInt ContinueDTMFStringSending(TBool aContinue) const; - IMPORT_C void NotifyDTMFEvent(TRequestStatus& aReqStatus, TMobilePhoneDTMFEvent& aEvent) const; - - /***********************************************************************************/ - // - // MobilePhoneNetwork functional unit - // - /***********************************************************************************/ - -/** Defines Network Capabilities. - -Modes: Common */ - enum TMobilePhoneNetworkCaps - { - /** The phone supports retrieval of current registration status. */ - KCapsGetRegistrationStatus=0x00000001, - /** The phone supports notifications of change in registration status. */ - KCapsNotifyRegistrationStatus=0x00000002, - /** The phone supports retrieval of current mode. */ - KCapsGetCurrentMode=0x00000004, - /** The phone supports notification of change in mode. */ - KCapsNotifyMode=0x00000008, - /** The phone supports retrieval of current network information. */ - KCapsGetCurrentNetwork=0x00000010, - /** The phone supports notification of change of current network. */ - KCapsNotifyCurrentNetwork=0x00000020, - /** The phone supports retrieval of home network information. */ - KCapsGetHomeNetwork=0x00000040, - /** The phone supports retrieval of a list of detected networks. */ - KCapsGetDetectedNetworks=0x00000080, - /** The phone supports manual network selection mode. */ - KCapsManualNetworkSelection=0x00000100, - /** The phone supports retrieval of time and date information (NITZ) received from - the network. */ - KCapsGetNITZInfo=0x00000200, - /** The phone supports notification of new updates of time & date information (NITZ) - received from the network. */ - KCapsNotifyNITZInfo=0x00000400 - }; - - IMPORT_C TInt GetNetworkCaps(TUint32& aCaps) const; - -/** Defines Current Network Modes. - -Modes: Common */ - enum TMobilePhoneNetworkMode - { - /** Network mode is unknown. - - Modes: Common */ - ENetworkModeUnknown, - /** ME is not registered. - - Modes: Common */ - ENetworkModeUnregistered, - /** GSM/GPRS or DCS1800 network. */ - ENetworkModeGsm, - /** AMPS network. - - Modes: CDMA */ - ENetworkModeAmps, - /** CDMA (IS-95) network. - - Modes: CDMA */ - ENetworkModeCdma95, - /** CDMA (cdma2000) network. - - Modes: CDMA */ - ENetworkModeCdma2000, - /** WCDMA (UTRA Frequency Division Duplex (FDD)) network. - - Modes: WCDMA */ - ENetworkModeWcdma, - /** TD-CDMA (UTRA Time Division Duplex (TDD)) network. - - Modes: WCDMA */ - ENetworkModeTdcdma - }; - - IMPORT_C TInt GetCurrentMode(TMobilePhoneNetworkMode& aNetworkMode) const; - IMPORT_C void NotifyModeChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkMode& aNetworkMode) const; - - void DoNotifyModeChange( TMobilePhoneNetworkMode aNetworkMode, TInt aErrorCode ); - void CancelAsyncRequest(TInt aReqToCancel) const; - - mutable TMobilePhoneNetworkMode* iNetworkMode; - mutable TRequestStatus* iReqStatus; - - -/** Phone network status. - -Modes: Common */ - enum TMobilePhoneNetworkStatus - { - /** Status is unknown. */ - ENetworkStatusUnknown, - /** A network that the ME is allowed to register to. */ - ENetworkStatusAvailable, - /** The currently registered network. */ - ENetworkStatusCurrent, - /** A network that the ME is not allowed to register to. */ - ENetworkStatusForbidden - }; - -/** Mobile phone network band information. - -Modes: CDMA */ - enum TMobilePhoneNetworkBandInfo - { - /** The current band and band class is unknown. */ - EBandUnknown, - /** The network operates at 800MHz on Band A. */ - E800BandA, - /** The network operates at 800MHz on Band B. */ - E800BandB, - /** The network operates at 800MHz on Band C. */ - E800BandC, - /** The network operates at 1900MHz on Band A. */ - E1900BandA, - /** The network operates at 1900MHz on Band B. */ - E1900BandB, - /** The network operates at 1900MHz on Band C. */ - E1900BandC, - /** The network operates at 1900MHz on Band D. */ - E1900BandD, - /** The network operates at 1900MHz on Band E. */ - E1900BandE, - /** The network operates at 1900MHz on Band F. */ - E1900BandF - }; - -/** A typedef'd buffer to hold the network display tag */ - typedef TBuf<30> TMobilePhoneNetworkDisplayTag; -/** A typedef'd buffer to hold the network long name. */ - typedef TBuf<20> TMobilePhoneNetworkLongName; -/** A typedef'd buffer to hold the network short name. */ - typedef TBuf<10> TMobilePhoneNetworkShortName; - -/** A typedef'd buffer to hold the network country code. */ - typedef TBuf<4> TMobilePhoneNetworkCountryCode; // MCC in GSM and CDMA -/** A typedef'd buffer to hold the network identity. */ - typedef TBuf<8> TMobilePhoneNetworkIdentity; // MNC in GSM and SID or NID in CDMA - - - - class TMobilePhoneNetworkInfoV1 : public TMultimodeType - /** Defines information related to a mobile phone network. - - @see GetCurrentNetwork() - @see NotifyCurrentNetworkChange() - @see GetHomeNetwork() - @publishedPartner - @released */ - { - public: - IMPORT_C TMobilePhoneNetworkInfoV1(); - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - public: - /** Mode of the network. - - Modes: Common - - @see TMobilePhoneNetworkMode */ - TMobilePhoneNetworkMode iMode; - /** Status of the network - - Modes: Common - - @see TMobilePhoneNetworkStatus */ - TMobilePhoneNetworkStatus iStatus; - /** The band and band class of the CDMA network operator. - - Modes: CDMA - - @see TMobilePhoneNetworkBandInfo */ - TMobilePhoneNetworkBandInfo iBandInfo; - /** The MCC of the network. - - Modes: Common - - @see TMobilePhoneNetworkCountryCode */ - TMobilePhoneNetworkCountryCode iCountryCode; - /** The system identity (SID) of the CDMA network. - - Modes: CDMA - - @see TMobilePhoneNetworkIdentity */ - TMobilePhoneNetworkIdentity iCdmaSID; - /** The system identity (SID) of the AMPS network. - - Modes: CDMA - - @see TMobilePhoneNetworkIdentity */ - TMobilePhoneNetworkIdentity iAnalogSID; - /** The network identity (NID in CDMA and MNC in GSM). - - Modes: Common - - @see TMobilePhoneNetworkIdentity */ - TMobilePhoneNetworkIdentity iNetworkId; - /** The alpha-tag displayed when this is the serving network. - - Modes: Common - - @see TMobilePhoneNetworkDisplayTag */ - TMobilePhoneNetworkDisplayTag iDisplayTag; - /** The short name (up to 10 characters) of the network operator. - - Modes: GSM/WCDMA - - @see TMobilePhoneNetworkShortName */ - TMobilePhoneNetworkShortName iShortName; - /** The long name (up to 20 characters) of the network operator. - - Modes: GSM/WCDMA - - @see TMobilePhoneNetworkLongName */ - TMobilePhoneNetworkLongName iLongName; - }; - -/** A typedef'd packaged TMobilePhoneNetworkInfoV1 for passing through a generic -API function member. */ - typedef TPckg TMobilePhoneNetworkInfoV1Pckg; - -/** The access technology that the network is based on. - -Modes: Common */ - enum TMobilePhoneNetworkAccess - { - /** This is used when there is no network activity and therefore no RAT active. - - Modes: Common */ - ENetworkAccessUnknown, - /** The access technology is GSM. - - Modes: GSM */ - ENetworkAccessGsm, - /** The access technology is GSM COMPACT. However GSM COMPACT systems which use - GSM frequency bands but with the CBPCCH broadcast channel are considered as - a separate access technology from GSM. - - Modes: GSM */ - ENetworkAccessGsmCompact, - /** The access technology is UTRAN (UMTS Network). - - Modes: WCDMA */ - ENetworkAccessUtran, - /** Analogue Cellular - - Modes: CDMA */ - ENetworkAccessAmpsCellular, - /** CDMA Cellular - Standard channels - - Modes: CDMA */ - ENetworkAccessCdmaCellularStdChannel, - /** CDMA Cellular - Custom channels - - Modes: CDMA */ - ENetworkAccessCdmaCellularCustomChannel, - /** CDMA/Analogue Cellular (cdma first then analogue) - - Modes: CDMA */ - ENetworkAccessCdmaAmpsCellular, - /** CDMA PCS - Using blocks - - Modes: CDMA */ - ENetworkAccessCdmaPcsUsingBlocks, - /** CDMA PCS - Using channels - - Modes: CDMA */ - ENetworkAccessCdmaPcsUsingNetworkAccessChannels, - /** CDMA JTACS - Standard channels - - Modes: CDMA */ - ENetworkAccessJTacsStdChannels, - /** CDMA JTACS - Custom channels - - Modes: CDMA */ - ENetworkAccessJTacsCustomChannels, - /** CDMA 2GHz band - Using channels - - Modes: CDMA */ - ENetworkAccess2GHzBandUsingChannels, - /** Generic Acquisition Record for IS-2000 and IS-95 - - Modes: CDMA */ - ENetworkAccessGenericAcqRecord2000and95, - /** Generic Acquisition Record for IS-856 - - Modes: CDMA */ - ENetworkAccessGenericAcqRecord856 - }; - - - - class TMobilePhoneNetworkInfoV2 : public TMobilePhoneNetworkInfoV1 - /** The access technology that the network is based on in version v2.0 of the API. - @publishedPartner - @released*/ - { - public: - /** Default constructor. Network access is set to ENetworkAccessUnknown and iExtensionId - is set to KETelExtMultimodeV2. */ - IMPORT_C TMobilePhoneNetworkInfoV2(); - - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - - public: - /** The type of network access. - - @see TMobilePhoneNetworkAccess */ - TMobilePhoneNetworkAccess iAccess; - }; - -/** A typedef'd packaged TMobilePhoneNetworkInfoV2 for passing through a generic -API function member. */ - typedef TPckg 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 TMobilePhoneNetworkInfoV5Pckg; - - class TMobilePhoneLocationAreaV1 : public TMultimodeType -/** Defines the mobile phone location area. - -@see GetCurrentNetwork() -@see NotifyCurrentNetworkChange() */ - { - public: - /** Constructor. */ - IMPORT_C TMobilePhoneLocationAreaV1(); - public: - /** Boolean indicating whether the location area is known. - - Modes: Common */ - TBool iAreaKnown; - /** Location area code. - - Modes: GSM/WCDMA */ - TUint iLocationAreaCode; - /** Cell identity code. - - Modes: GSM/WCDMA */ - TUint iCellId; - }; - - IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const; - IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const; - IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const; - IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const; - - IMPORT_C void GetHomeNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const; - IMPORT_C void GetHomeNetworkSearchPeriod(TRequestStatus& aReqStatus, TInt& aSearchIntv) const; - IMPORT_C void GetLastUsedAccessTechnology(TRequestStatus& aReqStatus, TMobilePhoneNetworkAccess& aAccessTech) const; - -/** The registration status of the mobile phone. - -Modes: WCDMA */ - enum TMobilePhoneRegistrationStatus - { - /** Registration status is unknown. */ - ERegistrationUnknown, - /** Not registered. The ME can not detect any other networks and is not currently - searching a new operator to register to. */ - ENotRegisteredNoService, - /** Not registered. The ME can detect other networks on which it is possible to - make emergency calls only. */ - ENotRegisteredEmergencyOnly, - /** Not registered, but the ME is currently searching a new operator to register to. */ - ENotRegisteredSearching, - /** Registered, network busy. - - Modes: WCDMA */ - ERegisteredBusy, - /** Registered on home network. */ - ERegisteredOnHomeNetwork, - /** Registration denied. */ - ERegistrationDenied, - /** Registered, roaming. */ - ERegisteredRoaming - }; - - IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const; - IMPORT_C void NotifyNetworkRegistrationStatusChange(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const; - -/** The network selection function member. - -Modes: Common */ - enum TMobilePhoneSelectionMethod - { - /** Network selection function member is unknown. - - Modes: Common */ - ENetworkSelectionUnknown, - /** Network is selected automatically by phone. - - Modes: Common */ - ENetworkSelectionAutomatic, - /** Network is selected manually by user. - - Modes: GSM/WCDMA */ - ENetworkSelectionManual, - /** Network selection is restricted to home network only - - Modes: CDMA */ - ENetworkSelectionHomeOnly - }; - -/** The mobile phone band class preferences. - -Modes: CDMA */ - enum TMobilePhoneBandClass - { - /** Band class selection is unknown. */ - ENetworkBandClassUnknown, - /** Phone will select band class A only. */ - ENetworkBandClassAOnly, - /** Phone will select band class B only. */ - ENetworkBandClassBOnly, - /** Phone will prefer to select band class A. */ - ENetworkBandClassAPreferred, - /** Phone will prefer to select band class B. */ - ENetworkBandClassBPreferred - }; - -/** The mobile phone network operation mode preferences. - -Modes: CDMA */ - enum TMobilePhoneOperation - { - /** Network operation mode is unknown. */ - ENetworkOperationUnknown, - /** Phone will select analog operation only. */ - ENetworkOperationAnalogOnly, - /** Phone will select digital/CDMA operation only. */ - ENetworkOperationDigitalOnly, - /** Phone will prefer to select analog operation. */ - ENetworkOperationAnalogPreferred, - /** Phone will prefer to select digital/CDMA operation. */ - ENetworkOperationDigitalPreferred - }; - - class TMobilePhoneNetworkSelectionV1 : public TMultimodeType -/** The mobile phone network selection preferences. - -@see GetNetworkSelectionSetting() -@see SetNetworkSelectionSetting() -@see NotifyNetworkSelectionSettingChange() -@publishedPartner -@released */ - { - public: - IMPORT_C TMobilePhoneNetworkSelectionV1(); - public: - /** Phone's network selection function member. - - Modes: Common - - @see TMobilePhoneSelectionMethod */ - TMobilePhoneSelectionMethod iMethod; - /** Phone's band class setting. - - Modes: CDMA - - @see TMobilePhoneBandClass */ - TMobilePhoneBandClass iBandClass; - /** Phone's CDMA operation mode. - - Modes: CDMA - - @see TMobilePhoneOperation */ - TMobilePhoneOperation iOperationMode; - }; - -/** A typedef'd packaged TMobilePhoneNetworkSelectionV1 for passing through a generic -API function member. */ - typedef TPckg 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 iSPName; - TBuf iPLMNField; - }; - -/** A typedef'd packaged TMobilePhoneServiceProviderNameV2 for passing through -a generic API function member. */ - typedef TPckg 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 iOtherNames; - }; - - /** - Packaging typedef for TMobilePhoneNetworkNameV3 class. - */ - typedef TPckg 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 TMobilePhoneOPlmnV3Pckg; - - IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName, TDes8& aLocInfo) const; - - /** - Identifiers for different access technologies. - */ - enum TMobilePhoneNetworkAccessCaps - { - /** - No network activity. - */ - KNetworkAccessUnknown=0x0000, - /** - Access technology is GSM. - */ - KNetworkAccessGsm=0x8000, - /** - Access technology is GSM COMPACT. - */ - KNetworkAccessGsmCompact=0x4000, - /** - Access technology is UTRAN (UMTS only). - */ - KNetworkAccessUtran=0x0080 - }; - - typedef TUint32 TMobilePhoneNetworkAccessCapsFlags; - - class TMobilePreferredNetworkEntryV3 : public TMultimodeType - /** - Defines information for a preferred network. - */ - { - public: - IMPORT_C TMobilePreferredNetworkEntryV3(); - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - public: - /** - Access Technology supported. - Can contain a number of flags from RMobilePhone::TMobilePhoneNetworkAccessCaps. - */ - TMobilePhoneNetworkAccessCapsFlags iAccess; - /** - Editable preferences in the User-controlled Networks List with Access Technology. - */ - TBool iUserDefined; - /** - The MCC of the network. - */ - TMobilePhoneNetworkCountryCode iCountryCode; - /** - The MNC of the network. - */ - TMobilePhoneNetworkIdentity iNetworkId; - }; - - IMPORT_C void StorePreferredNetworksListL(TRequestStatus& aReqStatus, CMobilePhoneStoredNetworkList* aList) const; - IMPORT_C void NotifyPreferredNetworksListChange(TRequestStatus& aReqStatus) const; - - /***********************************************************************************/ - // - // Mobile Multimedia Call Settings functional unit - // - /***********************************************************************************/ - -/** An enumerated list of settings for multimedia calls. */ - enum TMobilePhoneMultimediaSettings - { - /** Accept all incoming multimedia calls with the fallback option enabled. (default). */ - EAcceptMMCallsVoiceFallback, - /** Accept all incoming multimedia calls, but do not accept voice fallback. */ - EAcceptMMCallsNoFallback, - /** Reject all incoming multimedia calls. */ - ERejectMMCalls, - /** Reject all incoming multimedia calls, but drop to voice instead. */ - EAnswerMMCallsAsVoice - }; - - IMPORT_C void SetMultimediaCallPreference(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings aMmSettings) const; - IMPORT_C TInt GetMultimediaCallPreference(TMobilePhoneMultimediaSettings& aMmSettings) const; - IMPORT_C void NotifyMultimediaCallPreferenceChange(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings& aMmSettings); - - /***********************************************************************************/ - // - // MobilePrivacy functional unit - // - /***********************************************************************************/ - -/** The mobile phone privacy settings. - -Modes: CDMA */ - enum TMobilePhonePrivacy - { - /** The privacy setting is unspecified. */ - EPrivacyUnspecified, - /** The privacy setting is set to ON. */ - EPrivacyOn, - /** The privacy setting is set to OFF. */ - EPrivacyOff - }; - - IMPORT_C TInt GetDefaultPrivacy(TMobilePhonePrivacy& aSetting) const; - IMPORT_C void SetDefaultPrivacy(TRequestStatus& aReqStatus, TMobilePhonePrivacy aSetting) const; - IMPORT_C void NotifyDefaultPrivacyChange(TRequestStatus& aReqStatus, TMobilePhonePrivacy& aSetting) const; - - /***********************************************************************************/ - // - // TSY Capabilities for supplementary call services - // - /***********************************************************************************/ - -/** The call services. - -Modes: GSM/WCDMA */ - enum TMobilePhoneCallServiceCaps - { - /** Phone supports retrieval of call forwarding status from a cache on the phone. - - Modes: GSM/WCDMA */ - KCapsGetCFStatusCache =0x00000001, - /** Phone supports retrieval of call forwarding status from the network. - - Modes: GSM/WCDMA */ - KCapsGetCFStatusNetwork =0x00000002, - /** Phone supports setting of call forwarding status (and registered information) - in the network. */ - KCapsSetCFStatus =0x00000004, - /** Phone supports notification of change in status of any call forwarding service. - - Modes: GSM/WCDMA */ - KCapsNotifyCFStatus =0x00000008, - /** Phone supports retrieval of CLIP status from either a cache or the network. - - Modes: GSM/WCDMA */ - KCapsGetClipStatus =0x00000010, - /** Phone supports retrieval of CLIR status from either a cache or the network. - - Modes: GSM/WCDMA */ - KCapsGetClirStatus =0x00000020, - /** Phone supports retrieval of COLP status from either a cache or the network. - - Modes: GSM/WCDMA */ - KCapsGetColpStatus =0x00000040, - /** Phone supports retrieval of COLR status from either a cache or the network. - - Modes: GSM/WCDMA */ - KCapsGetColrStatus =0x00000080, - /** Phone supports retrieval of CNAP status from either a cache or the network. - - Modes: GSM/WCDMA */ - KCapsGetCnapStatus =0x00000100, - /** Phone supports retrieval of call barring status from a cache on the phone. - - Modes: Common */ - KCapsGetCBStatusCache =0x00000200, - /** Phone supports retrieval of call barring status from the network. - - Modes: GSM/WCDMA */ - KCapsGetCBStatusNetwork =0x00000400, - /** Phone supports setting of call barring status in the network. - - Modes: Common */ - KCapsSetCBStatus =0x00000800, - /** Phone supports notification of change in call barring status for any service. - - Modes: Common */ - KCapsNotifyCBStatus =0x00001000, - /** Phone supports setting of a password for call barring service. - - Modes: Common */ - KCapsChangeCBPassword =0x00002000, - /** Phone supports BAIC call barring service. - - Modes: Common */ - KCapsBarAllIncoming =0x00004000, - /** Phone supports BIC-Roam call barring service. - - Modes: Common */ - KCapsBarIncomingRoaming =0x00008000, - /** Phone supports BAOC call barring service. - - Modes: Common */ - KCapsBarAllOutgoing =0x00010000, - /** Phone supports BOIC call barring service. - - Modes: Common */ - KCapsBarOutgoingInternational =0x00020000, - /** Phone supports BOIC-ExHC call barring service. - - Modes: Common */ - KCapsBarOutgoingInternationalExHC =0x00040000, - /** Phone supports barring all cases at once. - - Modes: Common */ - KCapsBarAllCases =0x00080000, - /** Phone supports retrieval of call waiting status from a cache on the phone. - - Modes: GSM/WCDMA */ - KCapsGetCWStatusCache =0x00100000, - /** Phone supports retrieval of call waiting status from the network. - - Modes: GSM/WCDMA */ - KCapsGetCWStatusNetwork =0x00200000, - /** Phone supports setting of call waiting status in the network. - - Modes: Common */ - KCapsSetCWStatus =0x00400000, - /** Phone supports notification of change in call waiting status for any service. - - Modes: GSM/WCDMA */ - KCapsNotifyCWStatus =0x00800000, - /** Phone supports retrieval of call completion (CCBS) status from a cache on the - phone. - - Modes: GSM/WCDMA */ - KCapsGetCCBSStatusCache =0x01000000, - /** Phone supports retrieval of call completion (CCBS) status from the network. - - Modes: GSM/WCDMA */ - KCapsGetCCBSStatusNetwork =0x02000000, - /** Phone supports deactivation of all CCBS requests at once. - - Modes: GSM/WCDMA */ - KCapsDeactivateAllCCBS =0x04000000, - KCapsDeactivateCCBS =0x08000000, - /** Phone supports retrieval of a list of active CCBS requests. - - Modes: GSM/WCDMA */ - KCapsRetrieveActiveCCBS =0x10000000, - /** The phone supports programming and retrieval of feature code against a CDMA - network service. - - Modes: CDMA */ - KCapsFeatureCode =0x20000000, - /** The phone supports sending of generic network service request strings. - - Modes: Common */ - KCapsNetworkServiceRequest =0x40000000, - /** The phone supports retrieval of called line identification status. - - Modes: GSM/WCDMA */ - KCapsGetCdipStatus =0x80000000 - }; - - IMPORT_C TInt GetCallServiceCaps(TUint32& aCaps) const; - IMPORT_C void NotifyCallServiceCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - - /***********************************************************************************/ - // - // MobilePhoneUserNetworkAccess functional unit - // - /***********************************************************************************/ - -/** Mobile Phone network services. - -Modes: CDMA */ - enum TMobilePhoneNetworkService - { - /** Network service is unspecified. */ - ENetworkServiceUnspecified, - /** Feature code applies to call forwarding unconditional service. */ - ECFUService, - /** Feature code applies to call forwarding on busy service. */ - ECFBService, - /** Feature code applies to call forwarding on no reply service. */ - ECFNRyService, - /** Feature code applies to call forwarding on not reachable service. */ - ECFNRcService, - /** Feature code applies to user selective call forwarding service - when the - user wishes to forward incoming call to voicemail. */ - EDeflectToVoicemail, - /** Feature code applies to user selective call forwarding service - when the - user wishes to forward incoming call to a number supplied within the deflect - request. */ - EDeflectToNumber, - /** Feature code applies to user selective call forwarding service - when the - user wishes to forward incoming call to a number pre-registered within the - network. */ - EDeflectToRegisteredNumber, - /** Feature code applies to call waiting service. */ - ECWService, - ENextCallShowCLI, - /** Feature code applies to caller ID restriction service - when user wishes to - hide their ID for the next call they make. */ - ENextCallHideCLI - }; - -/** Mobile phone service actions. - -Modes: Common */ - enum TMobilePhoneServiceAction - { - /** The action is unspecified. */ - EServiceActionUnspecified, - /** The client is registering new service information. If the service was not active - then this action also activates the service. */ - EServiceActionRegister, - /** The client is activating the service. */ - EServiceActionActivate, - /** The client is invoking the service. */ - EServiceActionInvoke, - /** The client is deactivating the service. */ - EServiceActionDeactivate, - /** The client is erasing the currently registered service information. If the service - was active then this action also deactivates the service. */ - EServiceActionErase - }; - - /** - Defines the type of SS operation - */ - enum TMobilePhoneNotifySendSSOperation - { - /** - SS Invoke operation. - */ - ESendSSInvoke, - /** - SS ReturnResult operation. - */ - ESendSSReturnResult, - /** - SS ReturnError operation. - */ - ESendSSReturnError, - /** - SS Reject operation. - */ - ESendSSReject - }; - - /** Size of additional info buffer. */ - enum{ KAdditionalInfoSize = 244 }; - - class TMobilePhoneSendSSRequestV3 : public TMultimodeType - /** - Contains the operation code and buffer to hold any additional information when receiving a notification - about a network service request. - */ - { - public: - IMPORT_C TMobilePhoneSendSSRequestV3(); - public: - /** - This is the Operation Code for a Send SS Invoke or Return result events. - This is the Error or Problem Code for a Send SS Return Error or Reject events. - */ - TUint8 iOpCode; - /** - The additional information (parameters) for a Send SS Invoke or Return result or Return Error events. - This is not used for a Send SS Reject event - */ - TBuf iAdditionalInfo; - }; - - /** - Packaging typedef for TMobilePhoneSendSSRequestV3 class. - */ - typedef TPckg TMobilePhoneSendSSRequestV3Pckg; - - // API/TSY internal type - - struct TNetworkServiceAndAction - { - TMobilePhoneNetworkService iService; - TMobilePhoneServiceAction iAction; - }; - - IMPORT_C void ProgramFeatureCode(TRequestStatus& aReqStatus, const TDesC& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const; - IMPORT_C void GetFeatureCode(TRequestStatus& aReqStatus, TDes& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const; - - IMPORT_C void SendNetworkServiceRequest(TRequestStatus& aReqStatus, const TDesC& aServiceString) const; - IMPORT_C void SendNetworkServiceRequestNoFdnCheck(TRequestStatus& aReqStatus, const TDesC& aServiceString) const; - IMPORT_C void NotifySendNetworkServiceRequest(TRequestStatus& aReqStatus, const TMobilePhoneNotifySendSSOperation aOperation, TDes8& aRequestComplete) const; - - /***********************************************************************************/ - // - // MobilePhoneCallForwarding functional unit - // - /***********************************************************************************/ - -/** The Call Forwarding flavours. - -Modes: GSM/WCDMA */ - enum TMobilePhoneCFCondition - { - /** The call forwarding service is unspecified. */ - ECallForwardingUnspecified, - /** All calls to this subscriber are forwarded. */ - ECallForwardingUnconditional, - /** Calls are forwarded when this subscriber is busy. */ - ECallForwardingBusy, - /** Calls are forwarded when this subscriber does not reply within a time-out period. */ - ECallForwardingNoReply, - /** Calls are forwarded when this subscriber is unreachable. */ - ECallForwardingNotReachable, - /** All of above CF services. Can be used to check all 4 call forwarding Fs - at once. */ - ECallForwardingAllCases, // combination of all four above cases - /** All the conditional (busy, no reply, not reachable) CF services. Can be used - to check all 3 conditional call forwarding conditions at once. */ - ECallForwardingAllConditionalCases // combination of CFB, CFNRy and CFNRc - }; - -/** The Call Forwarding status - -Modes: GSM/WCDMA */ - enum TMobilePhoneCFStatus - { - /** The CF service is currently active and operative. */ - ECallForwardingStatusActive, - /** The CF service is currently deactivated. */ - ECallForwardingStatusNotActive, - /** The CF service is not registered. */ - ECallForwardingStatusNotRegistered, - /** The CF service is not provisioned. */ - ECallForwardingStatusNotProvisioned, - /** The CF service is not available in the serving network. */ - ECallForwardingStatusNotAvailable, - /** The phone can not determine CF service status. */ - ECallForwardingStatusUnknown, - /** The Call Forwarding service is active and the presentation indicator is set - to allowed */ - ECallForwardingStatusActivePIAllowed, - /** The Call Forwarding service is active and the presentation indicator is set - to not available */ - ECallForwardingStatusActivePINotAvailable, - /** The Call Forwarding service is active and the presentation indicator is set - to restricted - - The Call Forwarding service is active and the presentation indicator is set - to restricted and screening returns "User provided, verified and passed". */ - ECallForwardingStatusActivePIClir, - /** The Call Forwarding service is active and the presentation indicator is set - to restricted and screening returns "User provided, not screened". */ - ECallForwardingStatusActivePIClirSIVerified, - /** The Call Forwarding service is active and the presentation indicator is set - to "restricted" and screening returns "Network provided". */ - ECallForwardingStatusActivePIClirSINotScreened, - /** The Call Forwarding service is active and the presentation indicator is set - to "restricted" and screening returns "Network provided". */ - ECallForwardingStatusActivePIClirSINetwork, - /** The CF service is currently in the quiescent state. */ - ECallForwardingStatusQuiescent - }; - - - - class TMobilePhoneCFInfoEntryV1 : public TMultimodeType -/** Defines information about the call forwarding service. - -Modes: GSM/WCDMA - -@see CMobilePhoneCFList -@publishedPartner -@released -*/ - { - public: - IMPORT_C TMobilePhoneCFInfoEntryV1(); - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - public: - /** The CF service of this list entry. - - @see TMobilePhoneCFCondition */ - TMobilePhoneCFCondition iCondition; - /** The basic service group associated to this CF service list entry. - - @see TMobileService */ - TMobileService iServiceGroup; - /** The current status of the call forwarding condition. - - @see TMobilePhoneCFStatus */ - TMobilePhoneCFStatus iStatus; - /** The "forward-to" telephone number registered for the call forwarding condition. - An empty string if CF service is not registered, not provisioned or not available. - - @see TMobileAddress */ - TMobileAddress iNumber; - /** The "No Reply" time-out (in seconds) registered for the call forwarding no reply - condition. - - Equals to -1 if this value is not applicable. In GSM mode, will be between - 5 and 30 and in steps of 5 if this value is applicable. */ - TInt iTimeout; // valid for CFRNy only - }; - - IMPORT_C void NotifyCallForwardingStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCFCondition& aCondition) const; - - class TMobilePhoneCFChangeV1 : public TMultimodeType -/** Defines the call forward information. - -@see SetCallForwardingStatus() -@publishedPartner -@released -*/ - { - public: - IMPORT_C TMobilePhoneCFChangeV1(); - public: - /** The basic service group(s) to apply the CF status change to. - - @see TMobileService */ - TMobileService iServiceGroup; - /** The service action for call forwarding. - - @see TMobilePhoneServiceAction */ - TMobilePhoneServiceAction iAction; - /** A new "forward-to" number to be registered against the CF condition. This is - applicable if iAction=EServiceActionRegister. In other cases, it is set to - an empty string. - - @see TMobileAddress */ - TMobileAddress iNumber; - /** The new "No Reply" time-out in seconds to be registered. This is applicable - if the CF condition is CFNRy and iAction=EServiceActionRegister. Equals -1 - if this value is not applicable. If applicable, in GSM mode will be between - 5 and 30 and in steps of 5. */ - TInt iTimeout; - }; - - IMPORT_C void SetCallForwardingStatus(TRequestStatus& aReqStatus, TMobilePhoneCFCondition aCondition, const TMobilePhoneCFChangeV1& aInfo) const; - -/** Call Forwarding Active Notification - -Modes: Common */ - enum TMobilePhoneCFActive - { - /** CF Unconditional is currently active. */ - ECFUnconditionalActive, - /** CF Busy, CF No Reply or CF Not Reachable is currently active. */ - ECFConditionalActive - }; - - IMPORT_C void NotifyCallForwardingActive(TRequestStatus& aReqStatus, TMobileService& aServiceGroup, TMobilePhoneCFActive& aActiveType) const; - - /** - Current status indicators for unconditional call forwarding. - */ - enum TCFUIndicatorStatus - { - /** - CFU Indicator status unknown. - */ - KCFUIndicatorUnknown = 0x0, - /** - CFU Indicator status for Voice (TMobileServiceGroup EVoice). - */ - KCFUIndicatorVoice=0x01, - /** - CFU Indicator status for Fax (TMobileServiceGroup EFax). - */ - KCFUIndicatorFax=0x02, - /** - CFU Indicator status for Data Teleservices(TMobileServiceGroup EData). - */ - KCFUIndicatorData=0x04, - /** - CFU Indicator status for Sms (TMobileServiceGroup ESms). - */ - KCFUIndicatorSms=0x08, - /** - CFU Indicator status for Data Bearer Services(TMobileServiceGroup EDataBearer). - */ - KCFUIndicatorDataBearer=0x10 - }; - - typedef TUint32 TCFUIndicatorStatusFlags; - - class TMobilePhoneCFUIndicatorV3 : public TMultimodeType - /** - Contains indicator parameters for unconditional call forwarding. - */ - { - public: - IMPORT_C TMobilePhoneCFUIndicatorV3(); - public: - /** - Current setting for indicator status. - Can contain a number of flags from RMobilePhone::TCFUIndicatorStatus. - */ - TCFUIndicatorStatusFlags iIndicator; - }; - - typedef TPckg 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 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 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 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 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 TMobilePhoneCCBSEntryV2Pckg; - - IMPORT_C void GetCCBSStatus(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const; - IMPORT_C void NotifyCCBSStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus) const; - IMPORT_C void DeactivateCCBS(TRequestStatus& aReqStatus, TInt aIndex) const; - IMPORT_C void NotifyCCBSRecall(TRequestStatus& aReqStatus, TDes8& aCCBSEntry) const; - IMPORT_C void AcceptCCBSRecall(TRequestStatus& aReqStatus, TInt aIndex, TName& aCallName) const; - IMPORT_C TInt RefuseCCBSRecall(TInt aIndex) const; - - /***********************************************************************************/ - // - // Mobile Alternating Call Function Unit - // - /***********************************************************************************/ - -/** Alternating Call Capabilities - -Modes: GSM */ - enum TMobilePhoneAlternatingCallCaps - { - /** Phone supports outgoing Voice/Data calls - - Modes: GSM */ - KCapsMOVoiceData = 0x00000001, - /** Phone supports outgoing Voice Then Data calls. - - Modes: GSM */ - KCapsMOVoiceThenData = 0x00000002, - /** Phone supports outgoing Voice/Fax calls. - - Modes: GSM/WCDMA */ - KCapsMOVoiceFax = 0x00000004, - /** Phone supports incoming Voice/Data calls. - - Modes: GSM */ - KCapsMTVoiceData = 0x00000008, - /** Phone supports incoming Voice Then Data calls. - - Modes: GSM */ - KCapsMTVoiceThenData = 0x00000010, - /** Phone supports incoming Voice/Fax calls - - Modes: GSM/WCDMA */ - KCapsMTVoiceFax = 0x00000020 - }; - - IMPORT_C TInt GetAlternatingCallCaps(TUint32& aCaps) const; - IMPORT_C void NotifyAlternatingCallCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - -/** Alternating Call Mode. - -Modes: Common */ - enum TMobilePhoneAlternatingCallMode - { - /** The alternating call mode is unspecified - - Modes: Common */ - EAlternatingModeUnspecified, - /** Next call will use a single bearer service - default setting - - Modes: Common */ - EAlternatingModeSingle, - /** Next call will use voice/data alternating bearer service. - - Modes: GSM */ - EAlternatingModeVoiceData, - /** Next call will use voice then data alternating bearer service. - - Modes: GSM */ - EAlternatingModeVoiceThenData, - /** Next call will use voice/fax alternating bearer service. - - Modes: GSM/WCDMA */ - EAlternatingModeVoiceFax - }; - - IMPORT_C TInt GetAlternatingCallMode(TMobilePhoneAlternatingCallMode& aMode, TMobileService& aFirstService) const; - IMPORT_C void SetAlternatingCallMode(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode aMode, TMobileService aFirstService) const; - IMPORT_C void NotifyAlternatingCallModeChange(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode& aMode,TMobileService& aFirstService) const; - - /***********************************************************************************/ - // - // Mobile Alternate Line Service Functional Unit - // - /***********************************************************************************/ - -/** Alternate Line Primary settings. - -Modes: GSM */ - enum TMobilePhoneALSLine - { - /** Current ALS line selection is the "Primary" voice line. */ - EAlternateLinePrimary, - /** Current ALS line selection is the "Auxiliary" voice line. */ - EAlternateLineAuxiliary, - /** ALS is supported by ME and SIM, but the TSY can not determine which line is - currently selected. */ - EAlternateLineUnknown, - /** The ME, SIM or serving network does not support ALS. */ - EAlternateLineNotAvailable - }; - - IMPORT_C TInt GetALSLine(TMobilePhoneALSLine& aALSLine) const; - IMPORT_C void SetALSLine(TRequestStatus& aReqStatus, TMobilePhoneALSLine aALSLine) const; - IMPORT_C void NotifyALSLineChange(TRequestStatus& aReqStatus, TMobilePhoneALSLine& aALSLine) const; - - /***********************************************************************************/ - // - // Mobile Network Security Functional Unit - // - /***********************************************************************************/ - -/** Enumerated network security types. - -Mode: Common */ - enum TMobilePhoneNetworkSecurity - { - /** The encryption level is NONE. - - Mode: Common */ - ECipheringOff, - /** The encryption level is GSM.(standard encryption algorithms for 2nd Generation - Mobile networks). - - Mode: GSM */ - ECipheringGSM, - /** The encryption level is WCDMA.(standard encryption algorithms for 3rd Generation - Mobile networks). - - Mode: WCDMA */ - ECipheringWCDMA, - /** The encryption level is CDMA.(standard encryption algorithms for 3rd Generation - Mobile networks). - - Mode: CDMA */ - ECipheringCDMA - }; - - IMPORT_C void GetNetworkSecurityLevel(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const; - IMPORT_C void NotifyNetworkSecurityLevelChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const; - - /** - Indicators for whether encryption status of the current call should be displayed. - */ - enum TMobileCallCipheringIndicator - { - /** - The ME indication displaying the encryption status of the current call should be off. - */ - ECipheringDisplayOff, - /** - The ME indication displaying the encryption status of the current call should be on. - */ - ECipheringDisplayOn - }; - - IMPORT_C void GetCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const; - IMPORT_C void NotifyCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const; - - /***********************************************************************************/ - // - // Mobile Cost Functional Unit - // - /***********************************************************************************/ - -/** Call Cost Capabilities. - -Modes: GSM/WCDMA */ - enum TMobilePhoneCostCaps - { - /** Indicates that the phone supports calculation and display of current and accumulated - call cost on an information-only basis. (The AoCI service in GSM) - - Modes: GSM/WCDMA */ - KCapsCostInformation = 0x00000001, - /** Indicates that the phone supports calculation and display of current and accumulated - call cost in order to support the charging service. (The AoCC service in GSM). - - - Modes: Common */ - KCapsCostCharging = 0x00000002, - /** Indicates that the phone supports clearing of cost meters (ACM or CCM) to zero. - - Modes: Common */ - KCapsClearCost = 0x00000004, - /** Indicates that the phone supports setting the maximum allowed cost (ACMmax) - to a non-zero value. - - Modes: Common */ - KCapsSetMaxCost = 0x00000008, - /** Indicates that the phone supports setting the currency and price per unit. - - Modes: GSM/WCDMA */ - KCapsSetPuct = 0x00000010, - /** Indicates that the phone currently has call cost information available that - the client can retrieve. - - Modes: Common */ - KCapsGetCost = 0x00000020, - /** Indicates that the phone can notify the client when the call cost information - changes. - - Modes: Common */ - KCapsNotifyCostChange = 0x00000040 - }; - - IMPORT_C TInt GetCostCaps(TUint32& aCaps) const; - IMPORT_C void NotifyCostCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - -/** Clear Cost Meter. - -Modes: Common */ - enum TMobilePhoneCostMeters - { - /** Clear the Current Call Meter. */ - EClearCCM, - /** Clear the Accumulated Charge Meter. */ - EClearACM, - /** Clear all cost meters */ - EClearAll - }; - - IMPORT_C void ClearCostMeter(TRequestStatus& aReqStatus, TMobilePhoneCostMeters aMeter) const; - IMPORT_C void SetMaxCostMeter(TRequestStatus& aReqStatus, TUint aUnits) const; - - - - class TMobilePhonePuctV1 : public TMultimodeType -/** Defines the contents of the price/unit and currency table (PUCT) on the SIM. - -@see TMobilePhoneCostInfoV1 -@see SetPuct() -*/ - { - public: - IMPORT_C TMobilePhonePuctV1(); - public: - /** The Price per Unit. This floating point value is used to adjust the pricing - units supplied by the network into real currency values. - - Modes: GSM/WCDMA */ - TReal iPricePerUnit; - /** The three character currency indicator. - - Modes: GSM/WCDMA */ - TBuf<4> iCurrencyName; - }; - -/** A typedef'd packaged TMobilePhonePuctV1 for passing through a generic API function -member. */ - typedef TPckg 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 TMobilePhoneCostInfoV1Pckg; - - IMPORT_C void GetCostInfo(TRequestStatus& aReqStatus, TDes8& aCostInfo) const; - IMPORT_C void NotifyCostInfoChange(TRequestStatus& aReqStatus, TDes8& aCostInfo) const; - - /***********************************************************************************/ - // - // Mobile Security Functional Unit - // - /***********************************************************************************/ - -/** Security Capabilities. - -Modes: Common */ - enum TMobilePhoneSecurityCaps - { - /** The phone supports an overall "phone device lock" which can be enabled or disabled. - If enabled, user must enter phone password before the phone can be used. When - this capability is set the phone will support get lock info, notify lock info - change and set lock setting for phone device lock. - - Modes: Common */ - KCapsLockPhone = 0x0000001, - /** The phone supports locking the ICC (using the PIN1 security code), which can - be enabled or disabled. If enabled, the user must enter PIN1 code before the - ICC can be used. When this capability is set the phone will support get lock - info, notify lock info change and set lock setting for ICC lock. - - Modes: Common */ - KCapsLockICC = 0x00000002, - /** The phone supports the "phone to ICC lock" which can be enabled or disabled. - If enabled, at power-up the phone will check whether current ICC is the one - the phone is locked to or not. If not, then the user must enter the phone - password before phone can be used with this ICC. When this capability is set - the phone will support get lock info, notify lock info change and set lock - setting for Phone-ICC lock. - - Modes: Common */ - KCapsLockPhoneToICC = 0x00000004, - /** The phone supports the "phone to first ICC lock" which can be enabled or disabled. - If enabled, at power-up the phone will check whether current ICC is the one - the phone is first locked to or not. If not, then user must enter the phone - password before the phone can be used with this ICC. When this capability - is set the phone will support get lock info, notify lock info change and set - lock setting for Phone-First ICC lock. - - Modes: Common */ - KCapsLockPhoneToFirstICC = 0x00000008, - /** The phone supports the "Over The Air" programming lock which can be enabled - or disabled. If enabled, the phone will prevent OTA programming by the network. - If disabled, the phone will allow OTA programming by the network. When this - capability is set the phone will support get lock info, notify lock info change - and set lock setting for OTA lock. - - Modes: CDMA */ - KCapsLockOTA = 0x00000010, - /** The phone supports access to the PIN 1 security code. When this capability is - set the phone will support verification of PIN1, unblocking PIN1, changing - PIN1 and notification of PIN1 required. - - Modes: Common */ - KCapsAccessPin1 = 0x00000020, - /** The phone supports access to the PIN 2 security code. When this capability is - set the phone will support verification of PIN2, unblocking PIN2, changing - PIN2 and notification of PIN2 required. - - Modes: GSM/WCDMA */ - KCapsAccessPin2 = 0x00000040, - /** The phone supports access to the phone password security code. When this capability - is set the phone will support verification of the phone password, changing - the phone password and notification if the phone password is required. - - Modes: Common */ - KCapsAccessPhonePassword = 0x00000080, - /** The phone supports access to the SPC (Service Programming Code) security code. - This code may need to be verified before OTA can commence. - - Modes: CDMA */ - KCapsAccessSPC = 0x00000100, - /** The phone supports access to the hidden key. When this capability is set the - phone will support verification of HiddenKey. - - Modes: WCDMA */ - KCapsAccessHiddenKey=0x00000200, - /** The phone supports access to the USIM Application PIN. An Application PIN allows - access to any file on the UICC where it is referenced in the access rules. - - Modes: WCDMA */ - KCapsAccessUSIMAppPin=0x00000400, - /** The phone supports access to the second USIM Application PIN. The second Application - PIN allows access to files (where it is referenced in the access rules) within - one USIM Application on the UICC. This is a local PIN. - - Modes: WCDMA */ - KCapsAccessUSIMAppSecondPin =0x00000800, - /** The phone supports access to the Universal PIN. A Universal PIN is a PIN that - is used in a multi-application UICC environment to allow several USIM applications - to share one common PIN. - - Modes: WCDMA */ - KCapsAccessUniversalPin =0x00001000 - }; - - IMPORT_C TInt GetSecurityCaps(TUint32& aCaps) const; - IMPORT_C void NotifySecurityCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - -/** Lock Information. - -Modes: Common */ - enum TMobilePhoneLock - { - /** Lock the whole device. Phone lock password is required to unlock when this lock - is enabled. - - Modes: Common */ - ELockPhoneDevice, - /** Lock PIN1 on the ICC. PIN1 security code is required to unlock when this lock - is enabled. - - Modes: Common */ - ELockICC, - /** Lock the phone to the current ICC inserted in the phone Phone lock password - is required to unlock when this lock is enabled. - - Modes: Common */ - ELockPhoneToICC, - /** Lock the phone to the first ICC inserted in the phone. Phone lock password is - required to unlock when this lock is enabled. - - Modes: Common */ - ELockPhoneToFirstICC, - /** Lock the OTA facility on the phone. SPC security code may be required to unlock - when this lock is enabled. - - Modes: CDMA */ - ELockOTA, - /** Lock PIN2 on the ICC. PIN2 security code is required to unlock when this lock - is enabled. - - Modes: Common */ - ELockPin2, - /** Lock the phonebook hidden entries on the phone. Hidden key security code may - be required to unlock when this lock is enabled. - - Modes: WCDMA */ - ELockHiddenKey, - /** Lock the associated USIM Application. USIM Application PIN is required to unlock - when this lock is enabled. - - Modes: WCDMA */ - ELockUSimApp, - /** Lock the associated USIM Application. The second USIM Application PIN is required - to unlock when this lock is enabled. - - Modes: WCDMA */ - ELockSecondUSimApp, - /** Lock the associated USIM Application(s) that share this common lock. Universal - Pin is required to unlock when this lock is enabled. - - Modes: WCDMA */ - ELockUniversalPin, - /** Lock for the NAM. The SPC is required to unlock. - - Modes: CDMA */ - ELockNam - }; - -/** Phone lock status. - -Modes: Common */ - enum TMobilePhoneLockStatus - { - /** The status of the lock is unknown. */ - EStatusLockUnknown, - /** Lock is closed - user can not access functionality governed by this lock until - user correctly enters associated security code. */ - EStatusLocked, - /** Lock is open - user can access functionality governed by this lock */ - EStatusUnlocked, - EStatusBlocked - }; - -/** The phone lock setting. - -Modes: Common */ - enum TMobilePhoneLockSetting - { - /** The setting of the lock is unknown - - Modes: Common */ - ELockSetUnknown, - /** Lock is enabled - associated security code will be required to unlock the - lock, the next time the lock's status is EStatusLocked. - - Modes: Common */ - ELockSetEnabled, - /** Lock is disabled - so its status is always EStatusUnlocked. - - Modes: Common */ - ELockSetDisabled, - /** Lock of the current Application is replaced by the Universal PIN. Only the - Universal PIN is allowed as a replacement. - - Modes: WCDMA */ - ELockReplaced - }; - - - - class TMobilePhoneLockInfoV1 : public TMultimodeType -/** Defines the status of a phone lock. - -@see GetLockInfo() -@see NotifyLockInfoChange() -@publishedPartner -@released -*/ - { - public: - IMPORT_C TMobilePhoneLockInfoV1(); - public: - /** The current status of the lock. - - Modes: Common - - @see TMobilePhoneLockStatus */ - TMobilePhoneLockStatus iStatus; - /** The current setting of the lock. - - Modes: Common - - @see TMobilePhoneLockSetting */ - TMobilePhoneLockSetting iSetting; - }; - -/** A typedef'd packaged TMobilePhoneLockInfoV1 for passing through a generic API -function member. */ - typedef TPckg TMobilePhoneLockInfoV1Pckg; - - IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TDes8& aLockInfo) const; - IMPORT_C void NotifyLockInfoChange(TRequestStatus& aReqStatus, TMobilePhoneLock& aLock, TDes8& aLockInfo) const; - IMPORT_C void SetLockSetting(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TMobilePhoneLockSetting aSetting) const; - -/** Change Security Code. - -Modes: Common */ - enum TMobilePhoneSecurityCode - { - /** PIN 1 code (between 4-8 digits). - - Modes: Common */ - ESecurityCodePin1, - /** PIN 2 code (between 4-8 digits) - - Modes: GSM/WCDMA */ - ESecurityCodePin2, - /** PIN 1 unblocking code (always 8 digits). - - Modes: Common */ - ESecurityCodePuk1, - /** PIN 2 unblocking code (always 8 digits) - - Modes: GSM/WCDMA */ - ESecurityCodePuk2, - /** Password used for Phone-SIM Lock and Phone Device Lock (up to 8 digits) - - Modes: Common */ - ESecurityCodePhonePassword, - /** Service Programming Code (SPC) - - Modes: CDMA */ - ESecurityCodeSPC, - /** Phonebook key to display the hidden entries. - - Modes: WCDMA */ - ESecurityHiddenKey, - /** USIM Application PIN. - - Modes: WCDMA */ - ESecurityUSIMAppPin, - /** Second USIM Application PIN. - - Modes: WCDMA */ - ESecuritySecondUSIMAppPin, - /** Universal PIN. - - Modes: WCDMA */ - ESecurityUniversalPin, - /** Universal PIN unblocking code (always 8 digits). - - Modes: Common */ - ESecurityUniversalPuk - }; - - IMPORT_C void ChangeSecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, const TMobilePhonePasswordChangeV1& aChange) const; - - /** Defines the status of a security code. - - @see GetSecurityCodeInfo() - @see NotifySecurityCodeInfoChange() - @publishedPartner - @released - */ - class TMobilePhoneSecurityCodeInfoV5 : public TMultimodeType - { - public: - IMPORT_C TMobilePhoneSecurityCodeInfoV5(); - public: - /** Number of remaining security code entry attempts before the corresponding lock gets blocked - - Modes: Common - */ - TInt iRemainingEntryAttempts; - }; - - /** A typedef'd packaged TMobilePhoneSecurityCodeInfoV5 for passing through a generic API - function member. */ - typedef TPckg TMobilePhoneSecurityCodeInfoV5Pckg; - - IMPORT_C void GetSecurityCodeInfo(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aSecurityCode, TDes8& aSecurityCodeInfo) const; - IMPORT_C void NotifySecurityCodeInfoChange(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode& aSecurityCode, TDes8& aSecurityCodeInfo) const; - -/** Notify Security Events. - -Modes: Common */ - enum TMobilePhoneSecurityEvent - { - /** The phone has detected that there is no ICC present. - - Modes: Common */ - ENoICCFound, - /** The phone has detected that the ICC is unusable. - - Modes: Common */ - EICCTerminated, - /** The phone requires PIN1 to be entered. - - Modes: Common */ - EPin1Required, - /** The phone requires PUK1 to be entered. - - Modes: Common */ - EPuk1Required, - /** The phone requires PIN2 to be entered. - - Modes: GSM/WCDMA */ - EPin2Required, - /** The phone requires PUK2 to be entered. - - Modes: GSM/WCDMA */ - EPuk2Required, - /** The phone requires the Phone Password to be entered. - - Modes: Common */ - EPhonePasswordRequired, - /** The phone requires the SPC to be entered. - - Modes: CDMA */ - ESPCRequired, - /** The PIN1 verification procedure has passed. - - Modes: Common */ - EPin1Verified, - /** The PIN2 verification procedure has passed. - - Modes: GSM/WCDMA */ - EPin2Verified, - /** The PUK1 unblocking procedure has passed. - - Modes: Common */ - EPuk1Verified, - /** The PUK2 unblocking procedure has passed. - - Modes: GSM/WCDMA */ - EPuk2Verified, - /** The Phone Password has been verified. - - Modes: Common */ - EPhonePasswordVerified, - /** The SPC verification procedure has passed. - - Modes: CDMA */ - ESPCVerified, - /** The phone requires the phonebook hidden key to be entered. - - Modes: WCDMA */ - EHiddenKeyRequired, - /** The phonebook hidden key procedure has passed. - - Modes: WCDMA */ - EHiddenKeyVerified, - /** The phone requires the currently active USIM Application PIN to be entered. - - Modes: WCDMA */ - EUSIMAppPinRequired, - /** The currently active USIM Application PIN procedure has passed. - - Modes: WCDMA */ - EUSIMAppPinVerified, - /** The phone requires the currently active USIM Application second PIN to be entered. - - Modes: WCDMA */ - ESecondUSIMAppPinRequired, - /** The currently active USIM Application second PIN procedure has passed. - - Modes: WCDMA */ - ESecondUSIMAppPinVerified, - /** The phone requires the Universal PIN to be entered. - - Modes: WCDMA */ - EUniversalPinRequired, - /** The currently active Universal PIN procedure has passed. - - Modes: WCDMA */ - EUniversalPinVerified, - /** The Service Programming Code has been changed. - - Modes: CDMA */ - ESPCChanged, - /** The phone requires Universal PUK to be entered. - - Modes: WCDMA */ - EUniversalPukRequired, - /** The Universal PUK unblocking procedure has passed. - - Modes: WCDMA */ - EUniversalPukVerified - }; - - IMPORT_C void NotifySecurityEvent(TRequestStatus& aReqStatus, TMobilePhoneSecurityEvent& aEvent) const; - - // for use by client-side API code and TSY only - - struct TCodeAndUnblockCode - { - TMobilePassword iCode; - TMobilePassword iUnblockCode; - }; - - IMPORT_C void VerifySecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, - const TMobilePassword& aCode, const TMobilePassword& aUnblockCode) const; - IMPORT_C TInt AbortSecurityCode(TMobilePhoneSecurityCode aType) const; - - /***********************************************************************************/ - // - // MobileMessageWaiting - // - /***********************************************************************************/ - -/** Display indicators. */ - enum TMobilePhoneIndicatorDisplay - { - /** Display voicemail active. */ - KDisplayVoicemailActive = 0x01, - /** Display fax active. */ - KDisplayFaxActive = 0x02, - /** Display E-mail active. */ - KDisplayEmailActive = 0x04, - /** Display other active. */ - KDisplayOtherActive = 0x08, - /** Display Aux voicemail active. */ - KDisplayAuxVoicemailActive = 0x10, - /** Display data active. */ - KDisplayDataActive = 0x20 - }; - - class TMobilePhoneMessageWaitingV1 : public TMultimodeType -/** Message Waiting Indicators. See 3GPP TS 31 102. - -@see GetIccMessageWaitingIndicators() -@see SetIccMessageWaitingIndicators() -@see NotifyIccMessageWaitingIndicatorsChange() -*/ - { - public: - IMPORT_C TMobilePhoneMessageWaitingV1(); - public: - /** The flags for each indicator from TMobilePhoneIndicatorDisplay to specify whether - the indicator should be displayed or not. E.g. Messages of the specified type are waiting. - - Modes: Common */ - TUint8 iDisplayStatus; - /** The number of voicemail messages waiting for the "main" voice line. - - Modes: Common */ - TUint8 iVoiceMsgs; - /** The number of voicemail messages waiting for the "auxiliary" voice line. - - Modes: GSM */ - TUint8 iAuxVoiceMsgs; - /** The number of messages waiting for the data line. - - Modes: Common */ - TUint8 iDataMsgs; - /** The number of messages waiting for the fax line. - - Modes: Common */ - TUint8 iFaxMsgs; - /** The number of email messages waiting. - - Modes: WCDMA */ - TUint8 iEmailMsgs; - /** Contains the number of "unspecified" messages waiting. - - Modes: WCDMA */ - TUint8 iOtherMsgs; - }; - -/** A typedef'd packaged TMobilePhoneMessageWaitingV1 for passing through a generic -API function member. */ - typedef TPckg TMobilePhoneMessageWaitingV1Pckg; - - IMPORT_C void GetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const; - IMPORT_C void SetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, const TDesC8& aMsgIndicators) const; - IMPORT_C void NotifyIccMessageWaitingIndicatorsChange(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const; - - IMPORT_C void NotifyMessageWaiting(TRequestStatus& aReqStatus, TInt& aCount) const; - - /***********************************************************************************/ - // - // Mobile Fixed Dialling Numbers Functional Unit - // - /***********************************************************************************/ - -/** Fixed Dialling Numbers Status. - -Modes: Common */ - enum TMobilePhoneFdnStatus - { - /** Fixed Dialling Number mode is supported but is not currently active. */ - EFdnNotActive, - /** Fixed Dialling Number mode is supported and is currently active. Deactivating - FDN mode is supported. */ - EFdnActive, - /** Fixed Dialling Number mode is supported and is permanently active. Deactivating - FDN mode is NOT supported with this SIM. */ - EFdnPermanentlyActive, - /** Fixed Dialling Number mode is not supported by ME and/or SIM. */ - EFdnNotSupported, - /** ME is currently unable to determine the status of FDN mode. */ - EFdnUnknown - }; - - IMPORT_C TInt GetFdnStatus(TMobilePhoneFdnStatus& aFdnStatus) const; - IMPORT_C void GetFdnStatus(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const; - -/** Fixed Dialling Numbers Setting - -Modes: Common */ - enum TMobilePhoneFdnSetting - { - /** Activate the FDN service. */ - EFdnSetOn, - /** Deactivate the FDN service. */ - EFdnSetOff - }; - - IMPORT_C void SetFdnSetting(TRequestStatus& aReqStatus, TMobilePhoneFdnSetting aFdnSetting) const; - IMPORT_C void NotifyFdnStatusChange(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const; - - /***********************************************************************************/ - // - // Multicall bearer settings - // - /***********************************************************************************/ - - class TMobilePhoneMulticallSettingsV1 : public TMultimodeType -/** Multi call settings for version v1.0. - -@see GetMulticallParams() -@see NotifyMulticallParamsChange() -@publishedPartner -@released*/ - { - public: - IMPORT_C TMobilePhoneMulticallSettingsV1(); - public: - /** Maximum number of simultaneous CS bearers allowed - defined by the user. - - Modes: WCDMA */ - TInt iUserMaxBearers; - /** Maximum number of simultaneous bearers allowed - defined by the service provider. - - Modes: WCDMA */ - TInt iServiceProviderMaxBearers; - /** Maximum number of simultaneous CS bearers supported by the network. - - Modes: WCDMA */ - TInt iNetworkSupportedMaxBearers; - /** Maximum number of simultaneous CS bearers supported by the UE. - - Modes: WCDMA */ - TInt iUESupportedMaxBearers; - }; - -/** A typedef'd packaged TMobilePhoneMulticallSettingsV1 for passing through a generic -API function member. */ - typedef TPckg 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 iLabel; - }; - - /** - A typedef'd packaged TSmartCardApplicationInfoV5 for passing through a generic API - function member. - */ - typedef TPckg 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 iEapTypeList; - }; - - /** - A typedef'd packaged TEapUiccApplicationInfoV6 for passing through - a generic API function member. - - @see RMobilePhone::GetSmartCardApplicationInfo() - */ - typedef TPckg 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 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 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 iLabel; - }; - - /** A typedef'd packaged TUSimApplicationInfoV2 for passing through a generic API - function member. - - @deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead. - */ - typedef TPckg 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 iNotify; - }; - - typedef TPckg TMmsNotificationV3Pckg; - - // MMS notification - IMPORT_C void NotifyMmsUpdate(TRequestStatus& aReqStatus, TDes8& aNotification) const; - IMPORT_C void SetMmsUserConnParams(TRequestStatus& aReqStatus, TDes8& aConnectivity) const; - IMPORT_C void SetMmsUserPreferences(TRequestStatus& aReqStatus, TDes8& aPreferences) const; - IMPORT_C void GetMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const; - IMPORT_C void NotifyMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const; - - /***********************************************************************************/ - // - // Mobile MailBox Numbers Functional Unit - // - /***********************************************************************************/ - - class TMobilePhoneVoicemailIdsV3 : public TMultimodeType - /** - Contains mailbox numbers. - */ - { - public : - IMPORT_C TMobilePhoneVoicemailIdsV3(); - public : - /** - Phonebook entry for "voicemail" mailbox number. - */ - TUint8 iVoice; - /** - Phonebook entry for "data" mailbox number. - */ - TUint8 iData; - /** - Phonebook entry for "fax" mailbox number. - */ - TUint8 iFax; - /** - Phonebook entry for "other" mailbox number. - */ - TUint8 iOther; - }; - - typedef TPckg TMobilePhoneVoicemailIdsV3Pckg; - - IMPORT_C void GetMailboxNumbers(TRequestStatus& aReqStatus, TDes8& aMailBox) const; - IMPORT_C void NotifyMailboxNumbersChange(TRequestStatus& aReqStatus, TDes8& aMailBox) const; - - /***********************************************************************************/ - // - // Mobile APN Control List Functional Unit - // - /***********************************************************************************/ - - enum { KMaxApnName = 100 }; - - class TAPNEntryV3 : public TMultimodeType - /** - Contains parameters for an Access Point Name (APN) entry contained - within the Access Control List EFacl file in the UICC. - */ - { - public: - IMPORT_C TAPNEntryV3(); - public: - /** - GGSN DNS name. - */ - TBuf8 iApn; - }; - - typedef TPckg TAPNEntryV3Pckg; - - IMPORT_C void EnumerateAPNEntries(TRequestStatus& aReqStatus, TUint32 &aIndex) const; - IMPORT_C void GetAPNname(TRequestStatus& aReqStatus, const TUint32 aIndex, TDes8& aAPN) const; - IMPORT_C void AppendAPNName(TRequestStatus& aReqStatus, const TDes8& aAPN) const; - IMPORT_C void DeleteAPNName(TRequestStatus& aReqStatus, TUint32 aIndex) const; - IMPORT_C void NotifyAPNListChanged(TRequestStatus& aReqStatus) const; - - enum TAPNControlListServiceStatus { - /** - The APN control list service is disabled. - */ - EAPNControlListServiceDisabled, - /** - The APN control list service is enabled. - */ - EAPNControlListServiceEnabled - }; - - IMPORT_C void SetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus aAPNControlListServiceStatus) const; - IMPORT_C void GetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const; - IMPORT_C void NotifyAPNControlListServiceStatusChange(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const; - - /***********************************************************************************/ - // - // Retrieve Total Air Time Duration Functional Unit - // - /***********************************************************************************/ - IMPORT_C TInt GetAirTimeDuration(TTimeIntervalSeconds& aTime) const; - IMPORT_C void NotifyAirTimeDurationChange(TRequestStatus& aReqStatus,TTimeIntervalSeconds& aTime) const; - /***********************************************************************************/ - // - // Terminate All Calls - // - /***********************************************************************************/ - IMPORT_C void TerminateAllCalls(TRequestStatus& aReqStatus) const; - - /***********************************************************************************/ - // - // Auto Redial Functional Unit - // - /***********************************************************************************/ - IMPORT_C void ClearBlacklist(TRequestStatus& aReqStatus) const; - - /***********************************************************************************/ - // - // Mobile Personalisation Functional Unit - // - /***********************************************************************************/ - - /** - Indentifies the personalisation scheme capabilities of the UICC/ME. - */ - enum TMobilePhonePersonalisationCaps - { - /** - UICC/ME personalisation based on network (MCC, MNC) information is possible. - */ - KCapsPersonalisedNetwork=0x01, - /** - UICC/ME personalisation based on network (MCC, MNC, IMSI network code group) information is possible. - */ - KCapsPersonalisedNetworkSub=0x02, - /** - UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFCNL) information is possible. - */ - KCapsPersonalisedServiceProvider=0x04, - /** - UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFGID2, EFCNL) information is possible. - */ - KCapsPersonalisedCorporate=0x08, - /** - UICC/ME personalisation based on (IMSI SIM/USIM code group) information is possible. - */ - KCapsPersonalisedUSim=0x10 - }; - - /** - Identifies the current personalisation schemes that are active. - */ - enum TMobilePhonePersonalisationScheme - { - /** - The ME is personalised under the network scheme. - */ - KPersonalisedNetwork=0x01, - /** - The ME is personalised under the network sub scheme. - */ - KPersonalisedNetworkSub=0x02, - /** - The ME is personalised under the service provider scheme. - */ - KPersonalisedServiceProvider=0x04, - /** - The ME is personalised under the corprorate scheme. - */ - KPersonalisedCorporate=0x08, - /** - The ME is personalised under the SIM/USIM scheme. - */ - KPersonalisedUSim=0x10 - }; - - /** - Identifies the personalisation scheme to be set. - */ - enum TMobilePhonePersonalisation - { - /** - Personalise the ME using the network scheme. - */ - EPersonaliseNetwork, - /** - Personalise the ME using the network sub scheme. - */ - EPersonaliseNetworkSub, - /** - Personalise the ME using the service provider scheme. - */ - EPersonaliseServiceProvider, - /** - Personalise the ME using the corporate scheme. - */ - EPersonaliseCorporate, - /** - Personalise the ME using the SIM/USIM scheme. - */ - EPersonaliseUsim - }; - - IMPORT_C TInt GetPersonalisationCaps(TUint32& aCaps) const; - IMPORT_C void GetPersonalisationStatus(TRequestStatus& aReqStatus, TUint32& aPersSchemes) const; - IMPORT_C void SetPersonalisationStatus(TRequestStatus& aReqStatus, const TMobilePhonePersonalisation aPersSchemes, const TDes& aPersCode) const; - - /***********************************************************************************/ - // - // Etel 3rd Party v1.0 Parameter classes - // - /***********************************************************************************/ - - class TEtel3rdPartyMobileNetworkInfoV1 : public TMultimodeType - /** - Defines the parameters used to set-up of a call originated from an ETel 3rd Party client. - - TEtel3rdPartyMobileNetworkInfoV1 was used to give an indication to the TSY of where the - request was originating from; i.e. if the request is from an application using the ISV - API or ETel API, which allowed the TSY to make a decision based on the origin. This - data type also provided further protection by not including any location information - parameters. With PlatSec being introduced in v9.0, there was no need to use this data - structure, as each API is policed with the adequate PlatSec capabilities. Therefore, - in v9.0 TEtel3rdPartyMobileNetworkInfoV1 was deprecated and removed from the ETel ISV - (ETel3rdParty) implementation. - - TEtel3rdPartyMobileNetworkInfoV1 was only used internally by the ETel ISV API when calls - are made to RMobilePhone::GetCurrentNetwork or RMobilePhone::NotifyCurrentNetworkChange. - The TSY no longer needs to support this as ETel ISV now uses the TMobilePhoneNetworkInfoV2 - data structure and no distinction is required for ISV Apps. - - @publishedPartner - @deprecated 9.0 This class has been deprecated from 9.0 and should no longer be used. - */ - { - public: - IMPORT_C TEtel3rdPartyMobileNetworkInfoV1(); - public: - /** Mode of the network. - Modes: Common - - @see TMobilePhoneNetworkMode */ - TMobilePhoneNetworkMode iMode; - /** Status of the network - - Modes: Common - - @see TMobilePhoneNetworkStatus */ - TMobilePhoneNetworkStatus iStatus; - /** The band and band class of the CDMA network operator. - - Modes: CDMA - - @see TMobilePhoneNetworkBandInfo */ - TMobilePhoneNetworkBandInfo iBandInfo; - /** The MCC of the network. - - Modes: Common - - @see TMobilePhoneNetworkCountryCode */ - TMobilePhoneNetworkCountryCode iCountryCode; - /** The system identity (SID) of the CDMA network or the system identity (SID) of the AMPS network. - - Modes: CDMA - - @see TMobilePhoneNetworkIdentity */ - TMobilePhoneNetworkIdentity iCdmaSID; - /** The network identity (NID in CDMA and MNC in GSM). - - Modes: Common - - @see TMobilePhoneNetworkIdentity */ - TMobilePhoneNetworkIdentity iNetworkId; - /** The alpha-tag displayed when this is the serving network. - - Modes: Common - - @see TMobilePhoneNetworkDisplayTag */ - TMobilePhoneNetworkDisplayTag iDisplayTag; - /** The short name (up to 10 characters) of the network operator. - - Modes: GSM/WCDMA - - @see TMobilePhoneNetworkShortName */ - TMobilePhoneNetworkShortName iShortName; - /** The long name (up to 20 characters) of the network operator. - - Modes: GSM/WCDMA - - @see TMobilePhoneNetworkLongName */ - TMobilePhoneNetworkLongName iLongName; - /** The type of network access. - - @see TMobilePhoneNetworkAccess */ - TMobilePhoneNetworkAccess iAccess; - }; - -/** A typedef'd packaged TEtel3rdPartyMobileNetworkInfoV1 for passing through a generic -API function member. - -@deprecated 9.0 -*/ - typedef TPckg 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 TIMPU; - /** typedef for Internet Multimedia Private Identity*/ - typedef TBuf8 TIMPI; - /** typedef for Home Network Domain Name*/ - typedef TBuf8 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 iAUTN; - /** holds value of network challenge RAND */ - TBuf8 iRAND; - /** holds result RES of AUTHENTICATE command when it's successfull*/ - TBuf8 iRES; - /** holds value of session key Integrity Key */ - TBuf8 iIK; - /** holds value of session key Cipher Key */ - TBuf8 iCK; - /** holds value of Authentication Token when AUTHENTICATE fails*/ - TBuf8 iAUTS; - }; - - /** packaged version of TImsAuthenticateDataV5, used when this structure has to be passeed via IPC*/ - typedef TPckg TImsAuthenticateDataV5Pckg; - friend class CAsyncRetrieveAuthorizationInfo; - - /** API that execute ISIM/USIM AUTHENTICATE command*/ - IMPORT_C void ImsAuthenticate (TRequestStatus& aReqStatus,TDes8& authenticateDataPckgd) const; - - IMPORT_C void NotifyImsAuthorizationInfoChange(TRequestStatus& aReqStatus) const; - - /** - Source location of IMS Authorization data. - */ - enum TAuthorizationDataSource - { - /** Authorization data source is USIM. */ - EFromUSIM, - /** Authorization data source is ISIM. */ - EFromISIM - }; - - /** - Class encapsulates IMS authorization data stored in the ISIM or USIM - - @publishedPartner - @released - */ - class CImsAuthorizationInfoV5 : public CBase - { - public: - IMPORT_C ~CImsAuthorizationInfoV5(); - IMPORT_C static CImsAuthorizationInfoV5* NewL(); - IMPORT_C virtual void ExternalizeL(HBufC8*& aBuffer); - IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer); - IMPORT_C TUint ExtensionId() const; - public: - /**Internet Multimedia Private Identity stored on the ISIM/USIM*/ - RMobilePhone::TIMPI iIMPI; - /**Internet Multimedia Public Identity(ies) stored on the ISIM/USIM*/ - RArray iIMPUArray; - /**Home Network Domain Name stored on the ISIM/USIM*/ - RMobilePhone::THNDN iHomeNetworkDomainName; - /**indicates whether authorization data has been retrieved from the ISIM*/ - TAuthorizationDataSource iAuthenticationDataSource; - protected: - CImsAuthorizationInfoV5(); - /** version of the data supported*/ - TUint iExtensionId; - }; - - /** - Defines the input as well as the ouput parameters used when performing the - (U)ICC AUTHENTICATE command. - - @publishedPartner - @released - */ - class TSmartCardAuthenticateDataV6 : public TImsAuthenticateDataV5 - { - public: - IMPORT_C TSmartCardAuthenticateDataV6(); - - public: - TBuf8 iKc; - }; - - /** - Packaged version of TSmartCardAuthenticateDataV6, used when this - structure has to be passeed via IPC. - */ - typedef TPckg TSmartCardAuthenticateDataV6Pckg; - - IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, TDes8& aAuthDataPckgd) const; - IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, const TAID& aAID, TDes8& aAuthDataPckgd) const; - -private: - CMobilePhonePtrHolder* iMmPtrHolder; - RMobilePhone(const RMobilePhone& aPhone); - -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - - -/*********************************************************/ -// -// Phone Storage functionality (RMobilePhoneStore) -// -/*********************************************************/ - - - -class CMobilePhoneStorePtrHolder; -class RMobilePhoneStore : public RTelSubSessionBase -/** -Abstract class used to define common phone storage actions and types - -Clients open one of the specialised phone store classes that are derived from RMobilePhoneStore -*/ - { -public: - friend class CAsyncRetrieveStoreList; - -/** Types of store. - -Modes: Common */ - enum TMobilePhoneStoreType - { - /** Store type is unknown. - - Modes: Common */ - EPhoneStoreTypeUnknown, - /** Store contains SMS messages. - - Modes: Common */ - EShortMessageStore, - /** Store contains NAM entries. - - Modes: CDMA */ - ENamStore, - /** Store contains PhoneBook entries. - - Modes: Common */ - EPhoneBookStore, - /** Store contains emergency number entries. - - Modes: Common */ - EEmergencyNumberStore, - /** Store contains own number entries. - - Modes: Common */ - EOwnNumberStore - }; - -/** Store capabilities. */ - enum TMobilePhoneStoreCaps - { - /** The store can be accessed as a whole using the ReadAll() and StoreAll() member - functions. */ - KCapsWholeStore = 0x80000000, - /** The store can be accessed one entry at a time using the RMobilePhoneStore::Read(), - RMobilePhoneStore::Write() and RMobilePhoneStore::Delete() member functions. */ - KCapsIndividualEntry = 0x40000000, - /** The store can be accessed in order to read entries. */ - KCapsReadAccess = 0x20000000, - /** The store can be accessed in order to write or delete entries. */ - KCapsWriteAccess = 0x10000000, - /** The TSY supports deleting all the store entries at once. */ - KCapsDeleteAll = 0x08000000, - /** The TSY supports notification of store events such as entries added, deleted - or store becoming full. */ - KCapsNotifyEvent = 0x04000000 - }; - -/** The type of store information. As defined in TMobilePhoneStoreInfoV1::iExtensionId - -Modes: Common - -@see TMobilePhoneStoreInfoV1 -@see RMobilePhone::TMultimodeType */ - enum TMobilePhoneStoreInfoExtId - { - /** The iExtensionId contents indicate that the packaged class is a RMobilePhoneStore::TMobilePhoneStoreInfoV1. - Modes: Common */ - KETelMobilePhoneStoreV1=KETelExtMultimodeV1, - /** The iExtensionId contents indicate that the packaged class is a RMobilePhoneBookStore::TMobilePhoneBookInfoV1. - Modes: Common */ - KETelMobilePhonebookStoreV1, - /** Reserved for SMS store specific information class. - Modes: Common */ - KETelMobileSmsStoreV1, - /** The iExtensionId contents indicate that the packaged class is a RMobileNamStore::TMobileNamStoreInfoV1. - Modes: CDMA */ - KETelMobileNamStoreV1, - /** The iExtensionId contents indicate that the packaged class is a RMobileONStore::TMobileONStoreInfoV1. - Modes: Common */ - KETelMobileONStoreV1, - /** Reserved for Emergency Number store specific infoprmation class. - Modes: Common */ - KETelMobileENStoreV1, - /** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2. - Modes: Common */ - KETelMobilePhonebookStoreV2=KETelExtMultimodeV2, - - /** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2. - Modes: Common */ - KETelMobilePhonebookStoreV5=KEtelExtMultimodeV5 - }; - - - - class TMobilePhoneStoreInfoV1 : public RMobilePhone::TMultimodeType -/** Defines information and capabilities of a phone-side store. -@publishedPartner -@released */ - { - public: - IMPORT_C TMobilePhoneStoreInfoV1(); - - /** The type of entry in the phone-side store. - - Modes: Common - - @see TMobilePhoneStoreType */ - TMobilePhoneStoreType iType; - /** Indicates the total number of entries that may be held in this store. */ - TInt iTotalEntries; - /** Indicates the current number of entries held in this store. - - Is equal to KIndexNotUsed if the TSY is unable to determine current number - of entries. - - Modes: Common */ - TInt iUsedEntries; - /** Indicates the capabilities of the store. It is the sum of caps constants defined - in TMobilePhoneStoreCaps and those defined for a specialised phone store. - - Modes: Common */ - TUint32 iCaps; - /** The name of the phone-side store. A valid list of names is given in the description - of each specialised store. - - Modes: Common - - @see RMobilePhone::TMobileName */ - RMobilePhone::TMobileName iName; - }; - -/** A typedef'd packaged TMobilePhoneStoreInfoV1 for passing through a generic -API member function. */ - typedef TPckg TMobilePhoneStoreInfoV1Pckg; - - - - class TMobilePhoneStoreEntryV1 : public RMobilePhone::TMultimodeType -/** Defines common contents of an entry in a phone-side store. -*/ - { - public: - - enum - { - KIndexNotUsed = -1 - }; - - protected: - TMobilePhoneStoreEntryV1(); - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - public: - /** The slot location of the entry within phone-side storage. - - Modes: Common */ - TInt iIndex; - }; - - IMPORT_C void GetInfo(TRequestStatus& aReqStatus, TDes8& aInfo) const; - - IMPORT_C void Read(TRequestStatus& aReqStatus, TDes8& aEntry) const; - IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aEntry) const; - - IMPORT_C void Delete(TRequestStatus& aReqStatus, TInt aIndex) const; - IMPORT_C void DeleteAll(TRequestStatus& aReqStatus) const; - -/** The store events. It is possible for more than one event to occur at the same -time, therefore the events are a bitmask and should be tested as a bitmask. - -Modes: Common - -@see NotifyStoreEvent() */ - enum TMobileStoreEvent - { - /** The store has become full. This event will trigger after the last possible - entry in a store has been written. */ - KStoreFull =0x00000001, - /** The store was full but now has some space. This event will trigger after one - or more entries have been deleted from a full store. */ - KStoreHasSpace =0x00000002, - /** The store is empty. This event will trigger after the last entry in a store - has been deleted or if all entries are deleted at once. */ - KStoreEmpty =0x00000004, - /** The store has a new entry, placed in the slot indicated by the aIndex parameter. */ - KStoreEntryAdded =0x00000008, - /** The store has deleted the entry that was in the slot indicated by the aIndex - parameter. */ - KStoreEntryDeleted =0x00000010, - /** The store has changed the entry that was in the slot indicated by the aIndex - parameter. */ - KStoreEntryChanged =0x00000020, - /** The store contents have substantially changed and the TSY is recommending that - the client performs a refresh by reading all the contents again. */ - KStoreDoRefresh =0x00000040 - }; - - IMPORT_C void NotifyStoreEvent(TRequestStatus& aReqStatus, TUint32& aEvent, TInt& aIndex) const; - -protected: - CMobilePhoneStorePtrHolder* iStorePtrHolder; - -protected: - RMobilePhoneStore(); - IMPORT_C void BaseConstruct(CMobilePhoneStorePtrHolder* aPtrHolder); - IMPORT_C void Destruct(); - }; - - -/*********************************************************/ -// -// Call based functionality (RMobileCall) -// -/*********************************************************/ - - - -class CMobileCallPtrHolder; - -class RMobileCall : public RCall -/** Provides access to the functionality associated with a specific mobile call. - -RMobileCall encapsulates access to a mobile phone. The functionality of RMobileCall -is divided into a number of functional units, for the purpose of easier documentation -and navigation and selectable support by TSY. - -Note: Some RMobileCall function members must be supported by the TSY while -others are part of optional "functional unit" and only need to be supported -if the TSY supports that functional unit. When a functional unit is mandatory -then the TSY should at least support the Get...Caps() member function to indicate -the member functions that are supported for this unit. - */ - { -public: - IMPORT_C RMobileCall(); - /***********************************************************************************/ - // - // Mobile call parameters - used within Dial/Answer API - // - /***********************************************************************************/ - - // used to set iExtensionId in RCall::TCallParams -/** The mobile call parameter extension IDs. - -Modes: Common */ - enum TMobileCallParamsExtensionId - { - /** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV1. */ - KETelMobileCallParamsV1=KETelExtMultimodeV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV1. - - Modes: Common */ - KETelMobileDataCallParamsV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV1. - - Modes: GSM/WCDMA */ - KETelMobileHscsdCallParamsV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV2. - - Modes: Common */ - KETelMobileCallParamsV2=KETelExtMultimodeV2, - /** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV2. - - Modes: Common */ - KETelMobileDataCallParamsV2, - /** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV2. - - Modes: GSM/WCDMA */ - KETelMobileHscsdCallParamsV2, - /** The iExtensionId contents indicate that the packaged class is a TEtel3rdPartyMobileCallParamsV1. - - Modes: Common */ - KETel3rdPartyCallParamsV1=KETelExt3rdPartyV1 - }; - -/** Caller Id restriction settings. - -Modes: Common - -@see TMobileCallParamsV1 */ - enum TMobileCallIdRestriction - { - /** The default setting should be used if the user has not explicitly requested - their identity to be restricted/allowed. */ - EIdRestrictDefault, - /** The user has explicitly requested their identity to be sent for this call. */ - ESendMyId, - /** The user has explicitly requested their identity not to be sent for this call. */ - EDontSendMyId - }; - - class TMobileCallCugV1 : public RMobilePhone::TMultimodeType -/** This class is used to set up a CUG (Closed User Group) call. - -TMobileCallCugV1() is valid in GSM/WCDMA mode only. The client application -should set the CUG settings for the call depending on the user's choice. If -the user has not explicitly requested a CUG call then this parameter should -indicate that explicit CUG invoke is false. The TSY ignores this parameter -if in CDMA mode. -*/ - { - public: - IMPORT_C TMobileCallCugV1(); - public: - /** A boolean indicating whether Closed User Group is being explicitly invoked by - the client or not. If this parameter is false, the other entries in this structure - will be ignored. */ - TBool iExplicitInvoke; - /** The Closed User Group index that the user has specified for this call (if no - index has been specified then this element will equal -1). */ - TInt iCugIndex; - /** A boolean indicating whether the user has suppressed their Outgoing Access option - or not. */ - TBool iSuppressOA; - /** A boolean indicating whether the user has suppressed the use of their preferential - Closed User Group or not. */ - TBool iSuppressPrefCug; - }; - -/** Multicall Operation set-up. - -Mode: WCDMA */ - enum TMobileCallMulticallBearerMode - { - /** Multicall is not supported. */ - EMulticallNotSupported, - /** MS will accept incoming call and establish a connection using an existing bearer. */ - EMulticallShareBearer, - /** MS will accept incoming call and establish a connection by creating a new bearer. */ - EMulticallNewBearer - }; - - - - class TMobileCallParamsV1 : public RCall::TCallParams -/** Defines the parameters used for set-up of a call of any type. -*/ - { - public: - IMPORT_C TMobileCallParamsV1(); - public: - /** Call Id restriction setting to be used for this call. - - @see TMobileCallIdRestriction */ - TMobileCallIdRestriction iIdRestrict; - /** Closed User Group setting to be used for this call. - - @see TMobileCallCugV1 */ - TMobileCallCugV1 iCug; - /** Specifies whether this call attempt is user initiated (EFalse) or a client initiated - redial (ETrue). */ - TBool iAutoRedial; - }; - -/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API function -member. */ - typedef TPckg 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 TMobileCallParamsV2Pckg; - - /***********************************************************************************/ - // - // Mobile Call Data Functional Unit - // - /***********************************************************************************/ - -/** In GSM mode, maps to list of supported speeds returned in response to AT+CBST=?. -In CDMA mode, maps to data rates supported by supported service options. - -@see TMobileCallDataCapsV1 */ - enum TMobileCallDataSpeedCaps - { - /** Call can support autobauding. */ - KCapsSpeedAutobauding = 0x00000001, - /** Call can support a speed of 2400bps. */ - KCapsSpeed2400 = 0x00000002, - /** Call can support a speed of 4800bps. */ - KCapsSpeed4800 = 0x00000004, - /** Call can support a speed of 9600bps. */ - KCapsSpeed9600 = 0x00000008, - /** Call can support a speed of 14400bps. */ - KCapsSpeed14400 = 0x00000010, - /** Call can support a speed of 19200bps. */ - KCapsSpeed19200 = 0x00000020, - /** Call can support a speed of 28800bps. */ - KCapsSpeed28800 = 0x00000040, - /** Call can support a speed of 32000bps. */ - KCapsSpeed32000 = 0x00000080, - /** Call can support a speed of 33600bps. */ - KCapsSpeed33600 = 0x00000100, - /** Call can support a speed of 38400bps. */ - KCapsSpeed38400 = 0x00000200, - /** Call can support a speed of 43200bps. */ - KCapsSpeed43200 = 0x00000400, - /** Call can support a speed of 48000bps. */ - KCapsSpeed48000 = 0x00000800, - /** Call can support a speed of 56000bps. */ - KCapsSpeed56000 = 0x00001000, - /** Call can support a speed of 57600bps. */ - KCapsSpeed57600 = 0x00002000, - /** Call can support a speed of 64000bps. */ - KCapsSpeed64000 = 0x00004000, - /** Call can support extended data speed capabilities. This flag is reserved for - future expansion of API and should always be set to zero. */ - KCapsSpeedExtended = 0x80000000 - }; - -/** List of supported values of the 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 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 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 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 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 TMobileDataCallParamsV2Pckg; - -/** The Air interface user rate. - -Modes: GSM/WCDMA. */ - enum TMobileCallAiur - { - /** Air interface user rate is not set. */ - EAiurBpsUnspecified, - /** Air interface user rate of 9.6Kbps. */ - EAiurBps9600, - /** Air interface user rate of 14.4Kbps. */ - EAiurBps14400, - /** Air interface user rate of 19.2Kbps. */ - EAiurBps19200, - /** Air interface user rate of 28.8Kbps. */ - EAiurBps28800, - /** Air interface user rate of 38.4Kbps. */ - EAiurBps38400, - /** Air interface user rate of 43.2Kbps. */ - EAiurBps43200, - /** Air interface user rate of 57.6Kbps. */ - EAiurBps57600 - }; - -/** Call Asymmetry preferences. - -Modes: GSM/WCDMA - -@see TMobileHscsdCallParamsV1 */ - enum TMobileCallAsymmetry - { - /** There is no preference for Asymmetry Bias. */ - EAsymmetryNoPreference, - /** Downlink Bias is preferred. */ - EAsymmetryDownlink, - /** Uplink Bias is preferred. */ - EAsymmetryUplink - }; - -/** The call channel coding used. - -Modes: GSM/WCDMA */ - enum TMobileCallTchCoding - { - /** Channel coding is unspecified. */ - ETchCodingUnspecified, - /** 4.8K full rate data traffic channel is used. */ - ETchCoding48, - /** 9.6K full rate data traffic channel is used. */ - ETchCoding96, - /** 14.4K full rate data traffic channel is used. */ - ETchCoding144, - /** 28.8K full rate data traffic channel is used. */ - ETchCoding288, - /** 32.0K full rate data traffic channel is used. */ - ETchCoding320, - /** 43.2K full rate data traffic channel is used. */ - ETchCoding432 - }; - - - - class TMobileDataRLPRangesV1 : public RMobilePhone::TMultimodeType -/** Defines the parameters for minimum and maximum RLP parameter ranges. - -Modes: GSM/WCDMA - -*/ - { - public: - IMPORT_C TMobileDataRLPRangesV1(); - public: - /** Maximum modem to MS window size value. */ - TInt iIWSMax; - /** Minimum modem to MS window size value. */ - TInt iIWSMin; - /** Maximum MS to modem window size value. */ - TInt iMWSMax; - /** Minimum MS to modem window size value. */ - TInt iMWSMin; - /** Maximum acknowledgement timer value. */ - TInt iT1Max; - /** Minimum acknowledgement timer value. */ - TInt iT1Min; - /** Maximum retransmission attempts value. */ - TInt iN2Max; - /** Minimum retransmission attempts value. */ - TInt iN2Min; - /** Maximum resequencing period value. */ - TInt iT4Max; - /** Minimum resequencing period value. */ - TInt iT4Min; - }; - -/** A typedef'd packaged TMobileDataRLPRangesV1 for passing through a generic API -function member. */ - typedef TPckg 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 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 TMobileHscsdCallParamsV2Pckg; - - IMPORT_C void SetDynamicHscsdParams(TRequestStatus& aReqStatus, TMobileCallAiur aAiur, TInt aRxTimeslots) const; - - class TMobileCallHscsdInfoV1 : public RMobilePhone::TMultimodeType -/** The HSCSD settings. - -Modes: GSM/WCDMA - -*/ - { - public: - IMPORT_C TMobileCallHscsdInfoV1(); - public: - /** Current AIUR for the HSCSD call. - - @see TMobileCallAiur */ - TMobileCallAiur iAiur; - /** Current number of receive timeslots for the HSCSD call. */ - TInt iRxTimeSlots; - /** Current number of transmit time slots for the HSCSD call. */ - TInt iTxTimeSlots; - /** Current channel coding for the HSCSD call. */ - TMobileCallTchCoding iCodings; - }; - -/** A typedef'd packaged TMobileCallHscsdInfoV1 for passing through a generic API -function member. */ - typedef TPckg TMobileCallHscsdInfoV1Pckg; - - IMPORT_C TInt GetCurrentHscsdInfo(TDes8& aHSCSDInfo) const; - IMPORT_C void NotifyHscsdInfoChange(TRequestStatus& aReqStatus, TDes8& aHSCSDInfo) const; - - /***********************************************************************************/ - // - // Multimedia Calls - // - /***********************************************************************************/ - - IMPORT_C void AnswerMultimediaCallAsVoice(TRequestStatus& aReqStatus, const TDesC8& aCallParams, TName& aCallName) const; - IMPORT_C void NotifyVoiceFallback(TRequestStatus& aReqStatus, TName& aCallName) const; - - // - // Mobile Alternating Call Functional Unit - // - - IMPORT_C void SwitchAlternatingCall(TRequestStatus& aReqStatus) const; - IMPORT_C void NotifyAlternatingCallSwitch(TRequestStatus& aReqStatus) const; - - /***********************************************************************************/ - // - // MobileCallControl functional unit - // - /***********************************************************************************/ - -/** Mobile call control capabilites. - -Modes: Common */ - enum TMobileCallControlCaps - { - //KCapsData=0x00000001, // taken from etel.h - //KCapsFax=0x00000002, - //KCapsVoice=0x00000004, - //KCapsDial=0x00000008, - //KCapsConnect=0x00000010, - //KCapsHangUp=0x00000020, - //KCapsAnswer=0x00000040, - //KCapsLoanDataPort=0x00000080, - //KCapsRecoverDataPort=0x00000100 - /** Indicates that this call can be put on hold. This implies that the call is currently - active and that there is no other held call. */ - KCapsHold = 0x00000200, - /** Indicates that this call can be resumed. This implies that the call is currently - on hold and that there is no other active call. - - Modes: Common */ - KCapsResume = 0x00000400, - /** Indicates that this call's state can be swapped to the opposite state. This - implies that this call is either active or held. There may be another call - in the opposite state and if this is the case then both calls will be simultaneously - swapped to their opposite state. - - Modes: Common */ - KCapsSwap = 0x00000800, - /** Indicates that this incoming call can be deflected to another destination. - - Modes: GSM/WCDMA */ - KCapsDeflect = 0x00001000, - /** Indicates that this call can be transferred to the remote party of another call. - For this capability to be set there must be one active call and one held or - dialing call. - - Modes: GSM/WCDMA */ - KCapsTransfer = 0x00002000, - /** Indicates that this call can be joined either to another single call to form - a conference call or to an existing conference call. - - Modes: Common */ - KCapsJoin = 0x00004000, - /** Indicates that this call (within a conference call) can go into One to One mode. - This action would put the rest of the conference call on hold. - - Modes: GSM/WCDMA */ - KCapsOneToOne = 0x00008000, - /** Indicates that the user can activate a CCBS request on this failed call set-up. - - Modes: GSM/WCDMA */ - KCapsActivateCCBS = 0x00010000, - /** Indicates that this call is part of an alternating call and the client can call - SwitchAlternatingCall() on this call in order to switch it to its other mode. - - Modes: GSM/WCDMA */ - KCapsSwitchAlternatingCall = 0x00020000, - /** Indicates that this call can use/create a new bearer. This means that multiple - calls (multicall) can be active at the same time using no more that 7 bearers - simultaneously. The other option is to swap with an active call, therefore - it becomes held and shares the same bearer. - - Modes: WCDMA */ - KCapsMulticall = 0x00040000 - }; - - -/** Mobile call events capabilities. - -Modes: Common */ - enum TMobileCallEventCaps - { - /** Indicates that local hold notifications are supported. - - Modes: Common */ - KCapsLocalHold = 0x00000001, - /** Indicates that local resume notifications are supported. - - Modes: Common */ - KCapsLocalResume = 0x00000002, - /** Indicates that local deflect transfer notifications are supported. - - Modes: GSM/WCDMA */ - KCapsLocalDeflectCall = 0x00000004, - /** Indicates that local explicit transfer notifications are supported. - - Modes: GSM/WCDMA */ - KCapsLocalTransfer = 0x00000008, - /** Indicates that remote hold notifications are supported. - - Modes: GSM/WCDMA */ - KCapsRemoteHold = 0x00000010, - /** Indicates that remote resume notifications are supported. - - Modes: GSM/WCDMA */ - KCapsRemoteResume = 0x00000020, - /** Indicates that remote termination notifications are supported. - - Modes: Common */ - KCapsRemoteTerminate = 0x00000040, - /** Indicates that remote conference invocation notifications are supported. - - Modes: GSM/WCDMA */ - KCapsRemoteConferenceCreate = 0x00000080 - }; - - - - class TMobileCallCapsV1 : public RMobilePhone::TMultimodeType -/** Defines the dynamic capabilities of a mobile call. -*/ - { - public: - IMPORT_C TMobileCallCapsV1(); - public: - /** Call control capability information - a bit wise sum of TMobileCallControlCaps - constants */ - TUint32 iCallControlCaps; - /** Call event capability information - a bit wise sum of TMobileCallEventCaps constants. */ - TUint32 iCallEventCaps; - }; - -/** A typedef'd packaged TMobileCallCapsV1 for passing through a generic API function -member. */ - typedef TPckg TMobileCallCapsV1Pckg; - - IMPORT_C TInt GetMobileCallCaps(TDes8& aCaps) const; - IMPORT_C void NotifyMobileCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const; - - IMPORT_C void Hold(TRequestStatus& aReqStatus) const; - IMPORT_C void Resume(TRequestStatus& aReqStatus) const; - IMPORT_C void Swap(TRequestStatus& aReqStatus) const; - IMPORT_C void DialISV(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber); - IMPORT_C void AnswerIncomingCallISV(TRequestStatus& aStatus,const TDesC8& aCallParams); - -/** The type of call deflection requested. - -@see Deflect() */ - enum TMobileCallDeflect - { - /** Destination is not specified. */ - EDeflectUnspecified, - /** Call will be deflected to voicemail. */ - EDeflectVoicemail, - /** Call will be deflected to the pre-registered number for the call forwarding - service. */ - EDeflectRegisteredNumber, - /** Call will be deflected to the number supplied in the aDestination parameter. */ - EDeflectSuppliedNumber - }; - - IMPORT_C void Deflect(TRequestStatus& aReqStatus, TMobileCallDeflect aDeflectType, const RMobilePhone::TMobileAddress& aDestination) const; - IMPORT_C void Transfer(TRequestStatus& aReqStatus) const; - IMPORT_C void GoOneToOne(TRequestStatus& aReqStatus) const; - -/** The mobile call events. - -Modes: Common */ - enum TMobileCallEvent - { - /** The call has been placed on hold as a result of a local action. - - Modes: Common */ - ELocalHold, - /** The call has been resumed as a result of a local action. - - Modes: Common */ - ELocalResume, - /** The call has been deflected to another remote party as a result of a local action. - - - Modes: GSM/WCDMA */ - ELocalDeflectCall, - /** The call has been transferred to another remote party as a result of a local - action. - - Modes: Common */ - ELocalTransfer, - /** The call has been placed on hold by the remote connected party. - - Modes: GSM/WCDMA */ - ERemoteHold, - /** The call has been resumed by the remote connected party. - - Modes: GSM/WCDMA */ - ERemoteResume, - /** The call has been terminated by the remote party. - - Modes: Common */ - ERemoteTerminated, - /** The call has been joined by the remote connected party to other call(s) to create/add - to a conference call. - - Modes: GSM/WCDMA */ - ERemoteConferenceCreate, - ERemoteTransferring, - ERemoteTransferAlerting, - /** The outgoing call has been barred by the remote party. - - Modes: GSM/WCDMA */ - ERemoteBarred, - /** The call is being forwarded by the remote party. - - Modes: GSM/WCDMA */ - ERemoteForwarding, - /** The call is waiting at the remote end. - - Modes: GSM/WCDMA */ - ERemoteWaiting, - /** The outgoing call has been barred by the local party. - - Modes: GSM/WCDMA */ - ELocalBarred - }; - - IMPORT_C void NotifyCallEvent(TRequestStatus& aReqStatus, TMobileCallEvent& aEvent) const; - -/** Describes the possible call states. */ - enum TMobileCallStatus - { - /** Indicates that the call status is unknown. */ - EStatusUnknown, // same as RCall::EStatusUnknown - /** Indicates that the call is idle. */ - EStatusIdle, // same as RCall::EStatusIdle - EStatusDialling, // same as RCall::EStatusDialling - /** Indicates that the MT call is ringing but not answered yet by the local user. */ - EStatusRinging, // same as RCall::EStatusRinging - /** Indicates that the local user has answered the MT call but the network has not - acknowledged the call connection yet. */ - EStatusAnswering, // same as RCall::EStatusAnswering - /** MO Call: the network notifies to the MS that the remote party is now ringing. */ - EStatusConnecting, // same as RCall::EStatusConnecting - /** Indicates that call is connected and active. */ - EStatusConnected, // same as RCall::EStatusConnected - /** Indicates that call is disconnecting. */ - EStatusDisconnecting, // same as RCall::EStatusHangingUp - /** Indicates that the call is disconnecting with inband data (to enable the network - to send an audio tone), signifying that the call is not to be released until - the user terminates the call. */ - EStatusDisconnectingWithInband, - /** Indicates that call is undergoing temporary channel loss and it may or may not - be reconnected. */ - EStatusReconnectPending, - /** Indicates that the call is connected but on hold. */ - EStatusHold, - /** Indicates that the call is the non-active half of an alternating call. This - call is waiting for its active half or the remote end to switch alternating - call mode. */ - EStatusWaitingAlternatingCallSwitch, - EStatusTransferring, - EStatusTransferAlerting - }; - - IMPORT_C TInt GetMobileCallStatus(TMobileCallStatus& aStatus) const; - IMPORT_C void NotifyMobileCallStatusChange(TRequestStatus& aReqStatus, TMobileCallStatus& aStatus) const; - - IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC& aTelNumber) const; - IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC8& aCallParams,const TDesC& aTelNumber) const; - - /** - Contains audio tone events. - */ - enum TMobileCallAudioToneEvent - { - /** - Stop audio tone. - */ - EAudioStop, - /** - Start audio tone. - */ - EAudioStart - }; - - /** - List of 3GPP defined supervisory audio tones taken from technical specification 3GPP TS 22.001 v4.0.0 Annex F. - - This enumeration is based on the signal information element specified in Table 10.5.130/3GPP TS 24.008 v5.15.0 - */ - enum TMobileCallAudioTones - { - /** - No tone. Not defined in specification used for initialisation of - iTone class member variable during TAudioToneV3 construction. - */ - ENoTone, - /** - Dial tone. - */ - EDialTone, - /** - Subscriber busy tone. - */ - ESubscriberBusyTone, - /** - Congestion tone. - */ - ECongestionTone, - /** - Radio path acknowledgement tone. - */ - ERadioPathAcknowledgement, - /** - Radio path not available tone. - */ - ERadioPathNotAvailable, - /** - Call dropped (Mobile Originated only). - */ - EMOCallDropped, - /** - Error special information. - */ - EErrorSpecialInformation, - /** - Number unobtainable. - */ - ENumberUnobtainable, - /** - Authentication failure. - */ - EAuthenticationFailure, - /** - Call waiting. - */ - ECallWaiting, - /** - Ringback tone. - */ - ERingback - }; - - class TAudioToneV3 : public RMobilePhone::TMultimodeType - /** - Audio tone version 1 class. Contains information relating to the call control playing of audio tones. - Tones maybe generated by the network (in-band) or signalled to be played locally by the ME. - @publishedPartner - @released - */ - { - public: - IMPORT_C TAudioToneV3(); - - public: - /** - Indicates whether the tone is starting or stopping playing. - */ - TMobileCallAudioToneEvent iEvent; - /** - Indicates which tone is to be played. - */ - TMobileCallAudioTones iTone; - /** - Indicates whether the tone is played by the network or is to be played locally by the ME. - */ - TBool iPlayedLocally; - }; - - /** - Packaging typedef for TAudioToneV3 class. - */ - typedef TPckg TAudioToneV3Pckg; - - IMPORT_C void NotifyAudioToneEvent(TRequestStatus& aReqStatus, TDes8& aToneInfo) const; - - /***********************************************************************************/ - // - // MobilePrivacy functional unit - // - /***********************************************************************************/ - - IMPORT_C TInt SetPrivacy(RMobilePhone::TMobilePhonePrivacy aPrivacySetting) const; - IMPORT_C void NotifyPrivacyConfirmation(TRequestStatus& aReqStatus, RMobilePhone::TMobilePhonePrivacy& aPrivacySetting) const; - - /***********************************************************************************/ - // - // MobileTrafficChannel function unit - // - /***********************************************************************************/ - -/** Call traffic channels. - -Modes: CDMA */ - enum TMobileCallTch - { - /** The traffic channel of the call is unknown. */ - ETchUnknown, - /** The call has a digital traffic channel */ - ETchDigital, - /** The call has an analog traffic channel */ - ETchAnalog - }; - - IMPORT_C TInt SetTrafficChannel(TMobileCallTch aTchRequest) const; - IMPORT_C void NotifyTrafficChannelConfirmation(TRequestStatus& aReqStatus, TMobileCallTch& aTchType) const; - - /***********************************************************************************/ - // - // MobileCallInformation functional unit - // - /***********************************************************************************/ - - /** - Remote party Identity status. - - Modes: Common - - @see TMobileCallRemotePartyInfoV1 - */ - enum TMobileCallRemoteIdentityStatus - { - /** - The remote party's identity can not be determined. Calling - party's Binary Coded Decimal (BCD) number is not available. - Cause of No CLI is "unavailable". - */ - ERemoteIdentityUnknown, - - /** - The remote party's identity, or BCD number, is available. - However, cause of No CLI has not been set. - */ - ERemoteIdentityAvailable, - - /** - The remote party has suppressed the transmission of its - identity; i.e. their BCD number is not available. Cause of No - CLI is "reject by user". - */ - ERemoteIdentitySuppressed, - /** - The remote party's identity, or BCD number, is available. The - cause of No CLI is "reject by user". - - To be used where the network has specified that displaying of - CLI information of the remote party has been rejected by the - caller but the TMobileCallRemotePartyInfoV1::iRemoteNumber - parameter has been populated with some other string which may - be of use to the client. - */ - ERemoteIdentityAvailableNoCliRejectedByUser, - - /** - The remote party's identity is available; a BCD number is - available. The cause of No CLI is "Interaction with other - service". - - To be used where the network has specified that CLI information - of the remote party is not available due to ineraction with - another service. However, the - TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been - populated with some other string which may be of use to the - client. - */ - ERemoteIdentityAvailableNoCliInteractionWithOtherService, - /** - The remote party's identity, or BCD number, is unavailable. - Cause of No CLI is "interaction with other service". - */ - ERemoteIdentityUnavailableNoCliInteractionWithOtherService, - - /** - The remote party's identity, or BCD number, is available. - Cause of No CLI is "Coin Line/ Payphone". - - To be used where the network has specified that CLI information - of the remote party is not available as the caller is calling - from a coin/ payphone. However, the - TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been - populated with some other string which may be of use to the - client. - */ - ERemoteIdentityAvailableNoCliCoinOrPayphone, - /** - The remote party's identity, or BCD number, is not available. - Cause of No CLI is "Coin Line/ Payphone". - */ - ERemoteIdentityUnavailableNoCliCoinOrPayphone, - - /** - The remote party's identity, or BCD number, is available. - Cause of No CLI is "unavailable". - - To be used where the network has specified that the CLI - information of the remote party is not available but the - TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been - populated with some other string which may be of use to the - client. - */ - ERemoteIdentityAvailableNoCliUnavailable - }; - - - /** - The direction of the mobile call. - - Modes: Common - - @see TMobileCallRemotePartyInfoV1 - */ - enum TMobileCallDirection - { - /** The direction of the call is unknown. */ - EDirectionUnknown, - /** The call was originated by this phone, i.e. it is an outgoing call. */ - EMobileOriginated, - /** The call was terminated by this phone, i.e. it is an incoming call. */ - EMobileTerminated - }; - - enum { KCallingNameSize=80 }; - - - - class TMobileCallRemotePartyInfoV1 : public RMobilePhone::TMultimodeType -/** Defines information about the remote party of a mobile call. -*/ - { - public: - IMPORT_C TMobileCallRemotePartyInfoV1(); - public: - /** Indicates whether the remote party information in the rest of this structure - is valid or not. - - Modes: Common - - @see TMobileCallRemoteIdentityStatus */ - TMobileCallRemoteIdentityStatus iRemoteIdStatus; - /** The direction of the call and hence the role of the remote party, i.e. if the - call is mobile originated then the remote party is the called party whereas - if the call is mobile terminated then the remote party is the calling party. - - Modes: Common - - @see TMobileCallDirection */ - static TMobileCallDirection iDirection; - /** The phone number of the remote party if available. - - Modes: Common - - @see RMobilePhone::TMobileAddress */ - RMobilePhone::TMobileAddress iRemoteNumber; - /** Calling party name available through the CNAP supplementary service (if provisioned). - - - Modes: Common */ - TBuf iCallingName; - }; - -/** A typedef'd packaged TMobileCallRemotePartyInfoV1 for passing through a generic -API function member. */ - typedef TPckg TMobileCallRemotePartyInfoV1Pckg; - - IMPORT_C void NotifyRemotePartyInfoChange(TRequestStatus& aReqStatus, TDes8& aRemotePartyInfo) const; - -/** Determines which fields in the class are valid. - -@see TMobileCallInfoV1 */ - enum TMobileCallInfoFlags - { - /** The iStartTime field is valid in the call info class. - - Modes: COMMON */ - KCallStartTime = 0x00000001, - /** The iDuration field is valid in the call info class. - - Modes: COMMON */ - KCallDuration = 0x00000002, - /** The iCallId field is valid in the call info class. - - Modes: COMMON */ - KCallId = 0x00000004, - /** The iRemoteParty field is valid in the call info class. - - Modes: COMMON */ - KCallRemoteParty = 0x00000008, - /** The iDialledParty field is valid in the call info class. - - Modes: COMMON */ - KCallDialledParty = 0x00000010, - /** The iExitCode field is valid in the call info class. - - Modes: COMMON */ - KCallExitCode = 0x00000020, - /** The iEmergency field is valid in the call info class. - - Modes: COMMON */ - KCallEmergency = 0x00000040, - /** The iForwarded field is valid in the call info class. - - Modes: COMMON */ - KCallForwarded = 0x00000080, - /** The iPrivacy field is valid in the call info class. - - Modes: CDMA */ - KCallPrivacy = 0x00000100, - /** The iTch field is valid in the call info class. - - Modes: CDMA */ - KCallTch = 0x00000200, - /** The iAlternatingCall field is valid in the call info class. - - Modes: GSM/WCDMA */ - KCallAlternating = 0x00000400, - KCallSecurity = 0x00000800 - }; - - - - class TMobileCallInfoV1 : public RMobilePhone::TMultimodeType -/** Defines general information about a mobile call. -*/ - { - public: - IMPORT_C TMobileCallInfoV1(); - public: - /** A bit-wise sum of TMobileCallInfoFlags indicating which of the following optional - fields contain valid data. */ - TUint32 iValid; - /** The call service (voice, data, fax, aux. voice) that this call provides. - - @see RMobilePhone::TMobileService */ - RMobilePhone::TMobileService iService; - /** The mobile call status. - - @see TMobileCallStatus */ - static TMobileCallStatus iStatus; - /** The call ID number assigned to an ongoing call. Will equal -1 if the call does - not have an allocated ID. */ - TInt iCallId; - /** The reason for termination of a finished call. Will equal KErrNone if the call - ended normally and KErrNotFound if the call has not ended. */ - TInt iExitCode; - /** ETrue if the call is an emergency call or EFalse if it is not. */ - static TBool iEmergency; - /** For a MT call, this attribute equals ETrue if the call has been forwarded to - this phone or EFalse if it has not. For a MO call, this attribute equals ETrue - if the call has been forwarded to another destination or EFalse if it has - not. If the phone can not determine whether the call has been forwarded or - not then the attribute will return EFalse. */ - TBool iForwarded; - /** This attribute indicates whether privacy is on or off for this call. - - @see RMobilePhone::TMobilePhonePrivacy */ - RMobilePhone::TMobilePhonePrivacy iPrivacy; - /** This attribute indicates whether this call is an alternating call or not. - - @see RMobilePhone::TMobilePhoneAlternatingCallMode */ - RMobilePhone::TMobilePhoneAlternatingCallMode iAlternatingCall; - /** The current duration of the call. - - @see TTimeIntervalSeconds */ - TTimeIntervalSeconds iDuration; - /** This attribute indicates whether a digital or analog traffic channel is being - used for this call. - - @see TMobileCallTch */ - TMobileCallTch iTch; - /** Information about remote party of a connected call. - - @see TMobileCallRemotePartyInfoV1 */ - TMobileCallRemotePartyInfoV1 iRemoteParty; - /** The original number (including DTMF) dialled for an outgoing call. - - @see RMobilePhone::TMobileAddress */ - RMobilePhone::TMobileAddress iDialledParty; - /** The time and date the call started. - - @see TDateTime */ - TDateTime iStartTime; - /** The name of the call. - - @see TName */ - TName iCallName; - /** The name of the line on which the call is open. - - @see TName */ - TName iLineName; - }; - -/** A typedef'd packaged TMobileCallInfoV1 for passing through a generic API function -member. */ - typedef TPckg 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 TMobileCallInfoV3Pckg; - - IMPORT_C TInt GetMobileCallInfo(TDes8& aCallInfo) const; - - /***********************************************************************************/ - // - // MobileCallEmergency functional unit - // - /***********************************************************************************/ - - IMPORT_C void DialEmergencyCall(TRequestStatus& aReqStatus, const TDesC& aNumber) const; - - /***********************************************************************************/ - // - // MobileCallCompletion - // - /***********************************************************************************/ - - IMPORT_C void ActivateCCBS(TRequestStatus& aReqStatus, TInt& aIndex) const; - IMPORT_C TInt RejectCCBS() const; - // - // User-To-User Signalling Functional Unit - // - /***********************************************************************************/ - -/** The UUS capabilities of the call. - -Modes: GSM/WCDMA. */ - enum TMobileCallUUSCaps // UUS capabilities of the call - { - /** Indicates that MS supports UUS1 implicit request. */ - KCapsSetupUUS1Implicit=0x00000001, - /** Indicates that MS supports UUS1 explicit request. */ - KCapsSetupUUS1Explicit=0x00000002, - /** Indicates that MS supports UUS2 request. */ - KCapsSetupUUS2=0x00000004, - /** Indicates that MS supports UUS3 request. */ - KCapsSetupUUS3=0x00000008, - /** Indicates that MS supports activating more than one UUS request at a time. */ - KCapsSetupMultipleUUS=0x00000010, - /** Indicates that UUS1 is active for this call. */ - KCapsActiveUUS1=0x00000020, - /** Indicates that UUS2 is active for this call. */ - KCapsActiveUUS2=0x00000040, - /** Indicates that UUS3 is active for this call. */ - KCapsActiveUUS3=0x00000080 - }; - - IMPORT_C TInt GetUUSCaps(TUint32& aCaps) const; - IMPORT_C void NotifyUUSCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - -/** UUS Service requests. - -Modes: GSM/WCDMA */ - enum TMobileCallUUSReqs // UUS Service requests - { - /** UUS1 is implicitly requested. */ - KUUS1Implicit=0x00000001, - /** UUS1 is explicitly requested, but it is not mandatory for this call to proceed. */ - KUUS1ExplicitRequested=0x00000002, - /** UUS1 is explicitly requested and it is mandatory for this call to proceed. */ - KUUS1ExplicitRequired=0x00000004, - /** UUS2 is (explicitly) requested, but it is not mandatory for this call to proceed. */ - KUUS2Requested=0x00000008, - /** UUS2 is (explicitly) requested and it is mandatory for this call to proceed. */ - KUUS2Required=0x00000010, - /** UUS3 is (explicitly) requested, but it is not mandatory for this call to proceed. */ - KUUS3Requested=0x00000020, - /** UUS3 is (explicitly) requested and it is mandatory for this call to proceed. */ - KUUS3Required=0x00000040 - }; - - enum - { - KMaxUUISize = 129, - }; - -/** Buffer for the UUI element. */ - typedef TBuf 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 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 TPckgTEtel3rdPartyMobileCallParamsV1Pckg; - - -private: - RMobileCall(const RMobileCall& aCall); - CMobileCallPtrHolder* iMmPtrHolder; -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - - -/*********************************************************/ -// -// Line based functionality (RMobileLine) -// -/*********************************************************/ - - - -class CMobileLinePtrHolder; - -class RMobileLine : public RLine -/** Provides access to the functionality associated with a specific mobile line. -*/ - { -public: - IMPORT_C RMobileLine(); - - /***********************************************************************************/ - // - // MobileLineStatus functional unit - // - /***********************************************************************************/ - - IMPORT_C TInt GetMobileLineStatus(RMobileCall::TMobileCallStatus& aStatus) const; - IMPORT_C void NotifyMobileLineStatusChange(TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus) const; - - // - // Additional Caps - // -/** Enumerated auxiliary capabilities. */ - enum TMobileLineAdditionalCaps - { - /** Indicates whether the line is a Primary or Auxiliary voice line offset added - so that core Etel and additional line caps can be returned in one TUint. */ - KCapsAuxVoice=0x00000008 - }; - -private: - RMobileLine(const RMobileLine& aLine); - CMobileLinePtrHolder* iMmPtrHolder; -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - - -/*********************************************************/ -// -// SMS Messaging (RMobileSmsMessaging) -// -/*********************************************************/ - - - -class CMobilePhoneSmspList; -class CSmsMessagingPtrHolder; - -class RMobileSmsMessaging : public RTelSubSessionBase -/** Provides client access to SMS messaging functionality provided by TSY. -@publishedPartner -@released -*/ - { -public: - - friend class CRetrieveMobilePhoneSmspList; - - IMPORT_C RMobileSmsMessaging(); - - IMPORT_C TInt Open(RMobilePhone& aPhone); - IMPORT_C void Close(); - -/** Defines capabilities of SMS messaging. - -Modes: GSM/WCDMA */ - enum TMobileSmsModeCaps - { - /** SMS is supported in GSM and WCDMA modes. SMS are sent across MM ETel API in - a GSM 03.40 TPDU format. - - Modes: GSM/WCDMA */ - KCapsGsmSms=0x00000001, - /** SMS is supported in CDMA mode. SMS are sent across MM ETel API in a IS-637 - Teleservice message PDU format. - - Modes: CDMA */ - KCapsCdmaSms=0x00000002 - }; - -/** Defines SMS control capabilities. - -Modes: Common */ - enum TMobileSmsControlCaps - { - /** TSY supports receiving incoming SMS that have been stored and acknowledged - by the phone prior to forwarding to the TSY. If this flag is set then KCapsReceiveEither - will not be set and the client can receive stored messages only while the - TSY-phone link is in "receive stored" mode. - - Modes: Common */ - KCapsReceiveStored=0x00000001, - /** TSY supports receiving incoming SMS that have been acknowledged by the phone - but have NOT already been stored. It is the client's responsibility to do - the storage. If this flag is set then KCapsReceiveEither will not be set and - the client can receive unstored messages only while the TSY-phone link is - in "receive unstored with phone ack" mode. - - Modes: Common */ - KCapsReceiveUnstoredPhoneAck=0x00000002, - /** TSY supports receiving incoming SMS that have NOT already been stored and acknowledged - by the phone. It is the client's responsibility to do both the storage and - the acknowledgment or rejection. If this flag is set then KCapsReceiveEither - will not be set and the client can receive unstored messages only while the - TSY-phone link is in "receive unstored with client ack" mode. - - Modes: Common */ - KCapsReceiveUnstoredClientAck=0x00000004, - /** TSY supports receiving either stored or unstored incoming SMS at any time. - If this flag is set then any other KCapsReceive... flags will not be set and - the client can receive stored or unstored messages while the TSY-phone link - is in "receive either" mode. - - Modes: Common */ - KCapsReceiveEither=0x00000008, - /** TSY supports creating a default acknowledgment or rejection TPDU using only - a "cause code" supplied by the client. If this flag is not set then the client - must supply the full ack or nack TPDU if it calls RMobileSmsMessaging::AckSmsStored() - or RMobileSmsMessaging::NackSmsStored(). - - Modes: Common */ - KCapsCreateAck=0x00000010, - /** TSY supports sending SMS messages but does not support returning the service - centre's acknowledgment of the submitted message to the client. - - Modes: Common */ - KCapsSendNoAck=0x00000020, - /** TSY supports sending SMS messages and also supports returning the service centre's - acknowledgment of the submitted message to the client. - - Modes: GSM/WCDMA */ - KCapsSendWithAck=0x00000040, - /** TSY supports retrieval of the SMS parameter list. - - Modes: GSM/WCDMA */ - KCapsGetSmspList=0x00000080, - /** TSY supports storage of the SMS parameter list - - Modes: GSM/WCDMA */ - KCapsSetSmspList=0x00000100 - }; - - class TMobileSmsCapsV1 : public RMobilePhone::TMultimodeType -/** Defines capabilities of SMS messaging. -*/ - { - public: - IMPORT_C TMobileSmsCapsV1(); - - /** Sum of TMobileSmsModeCaps constants. - - Modes: Common */ - TUint32 iSmsMode; - /** Sum of TMobileSmsControlCaps constants. - - Modes: Common */ - TUint32 iSmsControl; - }; - -/** A typedef'd packaged TMobileSmsCapsV1 for passing through a generic API member -function. */ - typedef TPckg TMobileSmsCapsV1Pckg; - - IMPORT_C TInt GetCaps(TDes8& aCaps) const; - - // Definitions for sizes of TPDU and User Data fields - enum - { - KGsmTpduSize = 165, // 140 bytes user data + 25 bytes TPDU header - KCdmaTpduSize = 256 // Max size of Bearer Data in Transport Layer message - }; - -/** A typedef'd buffer for GSM or WCDMA message data. */ - typedef TBuf8 TMobileSmsGsmTpdu; -/** A typedef'd buffer for CDMA message data. */ - typedef TBuf8 TMobileSmsCdmaTpdu; - - /***********************************************************************************/ - // - // Enum used by TSY to distinguish which SMS attribute class is used by client - // - /***********************************************************************************/ - -/** Used by TSY to distinguish which SMS attribute class is used by client. - -Modes: Common - -@see RMobileSmsMessaging::TMobileSmsSendAttributesV1 */ - enum TMobileSmsAttributeExtensionId - { - /** The iExtensionId contents indicate that the packaged class is a TMobileSmsAttributesV1. */ - KETelMobileSmsAttributesV1=KETelExtMultimodeV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileSmsReceiveAttributesV1. */ - KETelMobileSmsReceiveAttributesV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileSmsSendAttributesV1. */ - KETelMobileSmsSendAttributesV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileSmsCdmaSendAttributesV4. */ - KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4 - }; - -/** Defines common attributes of all SMS messages. - -Modes: CDMA - -@see TMobileSmsAttributesV1 */ - enum TMobileSmsAttributeFlags - { - /** The iCdmaTeleservice field is valid in the attribute class. - - Modes: CDMA */ - KCdmaTeleservice = 0x00000001, - /** The iCdmaServiceCategory field is valid in the attribute class. - - Modes: CDMA */ - KCdmaServiceCategory = 0x00000002, - /** The iGsmServiceCentre field is valid in the attribute class. - - Modes: GSM/WCDMA */ - KGsmServiceCentre = 0x00000004, - /** The iDataFormat field is valid in the attribute class. - - Modes: Common */ - KSmsDataFormat = 0x00000008, - /** The iOriginator or iDestination field is valid in the attribute class. - - Modes: Common */ - KRemotePartyInfo = 0x00000010, - /** The iStatus field is valid in the attribute class. - - Modes: Common */ - KIncomingStatus = 0x00000020, - /** The iStore and iStoreIndex fields are valid in the attribute class. - - Modes: Common */ - KStorageLocation = 0x00000040, - /** The iMsgRef field is valid in the attribute class. - - Modes: Common */ - KMessageReference = 0x00000080, - /** The iSubmitReport field is valid in the attribute class. - - Modes: GSM/WCDMA */ - KGsmSubmitReport = 0x00000100, - /** The iMore field is valid in the attribute class. - - Modes: Common */ - KMoreToSend = 0x00000200, - /** Indicates to the TSY that it should keep the traffic channel open since there is - another message ready to be sent immediately after this one (typically used when - sending messages to multiple recipients). TSY should then keep the channel open - until a message is sent with this bit cleared. - - Modes: CDMA */ - KCdmaKeepChannelOpen = 0x00000400, - /** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network - - Modes: CDMA */ - KCdmaTLAckRequired = 0x00000800, - /** The iAddressAuthentication field is valid in the attribute class. - - Modes: CDMA */ - KCdmaAddressAuthentication = 0x00001000 - }; - -/** Defines the SMS data format. - -Modes: Common */ - enum TMobileSmsDataFormat - { - /** The format is not specified. - - Modes: Common */ - EFormatUnspecified, - /** The message data format complies to a SMS TPDU coded as octets according to - GSM 03.40. - - Modes: GSM/WCDMA */ - EFormatGsmTpdu, - /** The message data format complies to a SMS Teleservice PDU coded as octets according - to IS-637. - - Modes: CDMA */ - EFormatCdmaTpdu - }; - - class TMobileSmsAttributesV1 : public RMobilePhone::TMultimodeType - /** Defines common attributes of all SMS messages. - @publishedPartner - @released - */ - { - protected: - TMobileSmsAttributesV1(); - public: - /** The bit-mask flags from TMobileSmsAttributeFlags indicating which attributes - are present in this instance. - - Modes: Common */ - TUint32 iFlags; - /** The format of the message data buffer . - - Modes: Common - - @see TMobileSmsDataFormat */ - TMobileSmsDataFormat iDataFormat; - /** The teleservice this message belongs to, coded according to SMS teleservice - identifier values table in TIA/EIA-41-D. - - Modes: CDMA */ - TInt iCdmaTeleservice; - /** The service category this message belongs to. - - Modes: CDMA */ - TInt iCdmaServiceCategory; - /** The GSM service centre used for this SMS. - - Modes: GSM/WCDMA - - @see RMobilePhone::TMobileAddress */ - RMobilePhone::TMobileAddress iGsmServiceCentre; - }; - -/** A typedef'd packaged TMobileSmsAttributesV1 for passing through a generic -API member function. */ - typedef TPckg 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 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 TMobileSmsSendAttributesV1Pckg; - - class TMobileSmsCdmaSendAttributesV4 : public TMobileSmsAttributesV1 - /** - Defines attributes of sent SMS messages (CDMA only). - - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobileSmsCdmaSendAttributesV4(); - public: - /** - The message id allocated by the SMS stack. The TSY should - retrieve the value from iCdmaTeleserviceId to determine - which teleservice this message id corresponds to. - */ - TUint16 iMsgRef; - /** Indicates whether the client is going to send another - PDU immediately after this one (typically used when sending - messages of more than one PDU). Equals ETrue if at least - one more PDU is needed to complete the message and EFalse - otherwise. - */ - TBool iMore; - /** TPDU received from network in response to a sent message */ - TMobileSmsCdmaTpdu iTLAck; - /** The address of the destination of the SMS. */ - RMobilePhone::TMobileAddress iDestination; - /** Transport layer authentication parameter */ - TUint32 iAddressAuthentication; - }; - -/** A typedef'd packaged TMobileSmsCdmaSendAttributesV4 for passing through a generic -API member function. */ - typedef TPckg TMobileSmsCdmaSendAttributesV4Pckg; - - // - // Setting up the storage & acknowledgement mode - // - -/** Defines the SMS receive modes. - -Modes: Common */ - enum TMobileSmsReceiveMode - { - /** Receive mode is unspecified and phone will use its default. */ - EReceiveModeUnspecified, - /** Phone will store and acknowledge all incoming messages before passing them - onto TSY. */ - EReceiveUnstoredPhoneAck, // client stores but phone acknowledges message - /** Phone will acknowledge but NOT store all incoming messages before passing them - onto TSY. It is client's responsibility to store the message. */ - EReceiveUnstoredClientAck, // client acknowledges and stores message - /** Phone will NOT acknowledge or store any incoming messages before passing them - onto TSY. It is client's responsibility to attempt storage and then either - acknowledge or reject the message. */ - EReceiveStored, // phone acknowledges and store message - /** Phone may pass on either stored or unstored messages to TSY. It is client's - responsibility to check RMobileSmsMessaging::TMobileSmsReceiveAttributesV1::iStatus - to determine what action(s) the client needs to take for a message. */ - EReceiveEither // client deals with stored & unstored messages - }; - - IMPORT_C void SetReceiveMode(TRequestStatus& aReqStatus, TMobileSmsReceiveMode aReceiveMode) const; - IMPORT_C TInt GetReceiveMode(TMobileSmsReceiveMode& aReceiveMode) const; - IMPORT_C void NotifyReceiveModeChange(TRequestStatus& aStatus, TMobileSmsReceiveMode& aReceiveMode); - - /***********************************************************************************/ - // - // Incoming SMS - // - /***********************************************************************************/ - - IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; - - /***********************************************************************************/ - // - // Responding to incoming SMS - // - /***********************************************************************************/ - - IMPORT_C void AckSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TBool aFull=EFalse) const; - IMPORT_C void NackSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TInt aRpCause) const; - IMPORT_C void ResumeSmsReception(TRequestStatus& aReqStatus) const; - - /***********************************************************************************/ - // - // Outgoing SMS - // - /***********************************************************************************/ - - IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const; - IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const; - -/** Defines the SMS bearer. - -Modes: GSM */ - enum TMobileSmsBearer - { - /** SMS messages will only be sent over a packet-switched (GPRS) network. */ - ESmsBearerPacketOnly, - /** SMS messages will only be sent over a circuit-switched (GSM) network. */ - ESmsBearerCircuitOnly, - /** SMS messages will be sent over the packet-switched (GPRS) network if possible, - otherwise over circuit-switched (GSM) network. */ - ESmsBearerPacketPreferred, - /** SMS messages will be sent over the circuit-switched (GSM) network if possible, - otherwise over packet-switched (GPRS) network. */ - ESmsBearerCircuitPreferred - }; - - IMPORT_C void SetMoSmsBearer(TRequestStatus& aReqStatus, TMobileSmsBearer aBearer) const; - IMPORT_C TInt GetMoSmsBearer(TMobileSmsBearer& aBearer) const; - IMPORT_C void NotifyMoSmsBearerChange(TRequestStatus& aReqStatus, TMobileSmsBearer& aBearer); - - /***********************************************************************************/ - // - // Get information on phone-side SMS storage - // - /***********************************************************************************/ - - IMPORT_C TInt EnumerateMessageStores(TInt& aCount) const; - IMPORT_C void GetMessageStoreInfo(TRequestStatus& aReqStatus, TInt aIndex, TDes8& aInfo) const; - - /***********************************************************************************/ - // - // Read/Write SMS parameters to phone-side storage - // - /***********************************************************************************/ - - enum { KMaxSmspTextSize=30 }; - -/** Defines the valid SMS parameters store. - -Modes: GSM/WCDMA - -@see TMobileSmspEntryV1 */ - enum TMobileSmspStoreValidParams - { - /** The entry includes a valid iDestination field. */ - KDestinationIncluded=0x00000001, - /** The entry includes a valid iServiceCentre field. */ - KSCAIncluded=0x00000002, - /** The entry includes a valid iProtocolId field. */ - KProtocolIdIncluded=0x00000004, - /** The entry includes a valid iDcs field. */ - KDcsIncluded=0x00000008, - /** The entry includes a valid iValidityPeriod field. */ - KValidityPeriodIncluded=0x00000010 - }; - - class TMobileSmspEntryV1 : public RMobilePhone::TMultimodeType - - /** Defines a set of SMS parameters. - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobileSmspEntryV1(); - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - public: - /** The slot index where this SMSP entry is stored in the SIM's SMSP file. */ - TInt iIndex; - /** A bit-wise sum of the constants defined in TMobileSmspStoreValidParams, that - specifies which parameters are valid within this entry. */ - TUint32 iValidParams; - /** Default protocol ID. Coded according to GSM 03.40. */ - TUint8 iProtocolId; - /** Default data coding scheme. Coded according to GSM 03.40. */ - TUint8 iDcs; - /** Default validity period, in relative format and coded on 8 bits as defined - by GSM 03.40. */ - TUint8 iValidityPeriod; - /** Reserved for future use. */ - TUint8 iReservedFiller; - /** Default destination for outgoing SMS. - - @see RMobilePhone::TMobileAddress */ - RMobilePhone::TMobileAddress iDestination; - /** Default service centre for outgoing SMS. - - @see RMobilePhone::TMobileAddress */ - RMobilePhone::TMobileAddress iServiceCentre; - /** The alpha-tag associated with this SMSP entry, expressed as Unicode characters. */ - TBuf iText; - }; - -/** A typedef'd packaged TMobileSmspEntryV1 for passing through a generic API member -function. */ - typedef TPckg TMobileSmspEntryV1Pckg; - IMPORT_C void StoreSmspListL(TRequestStatus& aReqStatus, CMobilePhoneSmspList* aSmspList) const; - IMPORT_C void NotifySmspListChange(TRequestStatus& aReqStatus) const; - -private: - RMobileSmsMessaging(const RMobileSmsMessaging&); - CSmsMessagingPtrHolder* iSmsMessagingPtrHolder; -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - - -/*********************************************************/ -// -// Broadcast Messaging (RMobileBroadcastMessaging) -// -/*********************************************************/ - - - -class CMobilePhoneBroadcastIdList; - -class CCbsMessagingPtrHolder; -class RMobileBroadcastMessaging : public RTelSubSessionBase -/** This sub-session provides access to the broadcast message services provided -by GSM/WCDMA and CDMA networks. - -Clients will open a RMobileBroadcastMessaging sub-session and then wait for -incoming broadcast messages. The broadcast messages received can depend upon -a "message filter" which defines the languages and/or identifiers of acceptable -(or unacceptable) messages. This sub-session and the function members within -this section must be supported if the TSY indicates that it supports the MobileBroadcastMessaging -functional unit. - -@publishedPartner -@released*/ - { -public: - - friend class CRetrieveMobilePhoneBroadcastIdList; - - IMPORT_C RMobileBroadcastMessaging(); - - IMPORT_C TInt Open(RMobilePhone& aPhone); - IMPORT_C void Close(); - - /***********************************************************************************/ - // - // Broadcast messaging capabilities - // - /***********************************************************************************/ - -/** Broadcast capabilities. - -Modes:GSM/WCDMA */ - enum TMobileBroadcastModeCaps - { - /** GSM 03.41 cell broadcast messages are supported. - - Modes:GSM/WCDMA */ - KCapsGsmTpduFormat = 0x00000001, - /** IS-637-A broadcast messages are supported. - - Modes:CDMA */ - KCapsCdmaTpduFormat = 0x00000002, - /** 3GPP 25.324 Release 4 cell broadcast messages are supported. - - Modes: WCDMA */ - KCapsWcdmaTpduFormat = 0x00000004 - }; - -/** Broadcast message filter capabilities. - -Modes: Common - -@see RMobileBroadcastMessaging::GetLanguageFilter() */ - enum TBroadcastMessagingFilterCaps - { - /** Phone supports switching broadcast messages on or off. This means the EbroadcastAcceptNone - and EBroadcastAcceptAll settings of TMobilePhoneBroadcastFilter are supported. - - Modes: Common */ - KCapsSimpleFilter = 0x00000001, - /** Phone supports filtering of broadcast messages depending upon their language. - The language filter is a list of languages used only for broadcast filtering. - - Modes: Common - - @see RMobileBroadcastMessaging::GetLanguageFilter() */ - KCapsLangFilter = 0x00000002, - /** Phone supports filtering of broadcast messages depending upon their subject. - The subject of a message is identified in GSM/WCDMA mode by the Cell Broadcast - Message Identifier (CBMI) and in CDMA mode by the Service Category. - - Modes: Common */ - KCapsIdFilter = 0x00000004 - }; - - - - class TMobileBroadcastCapsV1 : public RMobilePhone::TMultimodeType - /** Defines capabilities of Broadcast messaging. - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobileBroadcastCapsV1(); - public: - /** Sum of TMobileBroadcastModeCaps constants. - - Modes: GSM/WCDMA */ - TUint32 iModeCaps; - /** Sum of TBroadcastMessagingFilterCaps constants. - - Modes: GSM/WCDMA */ - TUint32 iFilterCaps; - }; - -/** A typedef'd packaged TMobileBroadcastCapsV1 for passing through a generic API -function member. */ - typedef TPckg TMobileBroadcastCapsV1Pckg; - - IMPORT_C TInt GetCaps(TDes8& aCaps) const; - -/** Defines the broadcast attributes. - -Modes: Common */ - enum TMobileBroadcastAttributeFlags - { - /** The iFormat field is valid in the attribute class. - - Modes: Common */ - KBroadcastDataFormat = 0x00000001, - /** The iServiceCategory field is valid in the attribute class. - - Modes: CDMA */ - KCdmaServiceCategory = 0x00000002 - }; - -/** The mobile broadcast data format, used byTMobileBroadcastAttributesV1. - -Modes: Common */ - enum TMobileBroadcastDataFormat - { - /** The message data format is not specified. - - Modes: Common */ - EFormatUnspecified, - /** The message data format complies to a Cell Broadcast TPDU coded as 88 octets - (6 for header and 82 for message data) according to GSM 03.41. - - Modes: GSM/WCDMA */ - EFormatGsmTpdu, - /** The message data format complies to IS-637-A encoding of the Bearer Data parameter - within the Transport Layer's SMS-Broadcast message. - - Modes: CDMA */ - EFormatCdmaTpdu, - /** The message data format complies to a Cell Broadcast TPDU coded as 1252 octets - (6 for header and a maximum of 1246 for message data) according to 3GPP 25.324. - - Modes: WCDMA */ - EFormatWcdmaTpdu - }; - - - - class TMobileBroadcastAttributesV1 : public RMobilePhone::TMultimodeType - /** Defines attributes of a Broadcast message. - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobileBroadcastAttributesV1(); - public: - /** The bit-mask flags indicating which attributes are present in this instance. - - Modes: Common - - @see TMobileBroadcastAttributeFlags */ - TUint32 iFlags; - /** Format of the message data buffer. - - Modes: Common - - @see TMobileBroadcastDataFormat */ - TMobileBroadcastDataFormat iFormat; - /** Service category of the message. - - Modes: CDMA */ - TInt iServiceCategory; - }; - -/** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic -API function member. */ - typedef TPckg 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 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 TBroadcastPageData; - - /** Old buffer sizes. KBroadcastPageSize should be used instead. */ - enum - { - KGsmBroadcastDataSize = KBroadcastPageSize, - KCdmaBroadcastDataSize = KBroadcastPageSize, - KWCdmaBroadcastPageSize = KBroadcastPageSize - }; - - /** Buffer for GSM messages. TBroadcastPageData should be used instead. */ - typedef TBuf8 TGsmBroadcastMessageData; - /** Buffer for CDMA messages. TBroadcastPageData should be used instead. */ - typedef TBuf8 TCdmaBroadcastMessageData; - /** Buffer for WCDMA messages. TBroadcastPageData should be used instead. */ - typedef TBuf8 TWCdmaBroadcastPageData; - - IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; - - /***********************************************************************************/ - // - // Filters - // - /***********************************************************************************/ - -/** The filter settings of the mobile phone. - -Modes: Common */ - enum TMobilePhoneBroadcastFilter - { - /** The phone does not have a filter setting. */ - EBroadcastFilterUnspecified, - /** The phone is not accepting any broadcast messages. */ - EBroadcastAcceptNone, - /** The phone is accepting all broadcast messages. */ - EBroadcastAcceptAll, - /** The phone is accepting those broadcast messages included within the language - and identifier filters. */ - EBroadcastAcceptFilter, - /** The phone is rejecting those broadcast messages included within the language - or identifier filters. */ - EBroadcastRejectFilter - }; - - IMPORT_C TInt GetFilterSetting(TMobilePhoneBroadcastFilter& aSetting) const; - IMPORT_C void SetFilterSetting(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter aSetting) const; - IMPORT_C void NotifyFilterSettingChange(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter& aSetting) const; - - IMPORT_C void GetLanguageFilter(TRequestStatus& aReqStatus, TDes16& aLangFilter) const; - IMPORT_C void SetLanguageFilter(TRequestStatus& aReqStatus, const TDesC16& aLangFilter) const; - IMPORT_C void NotifyLanguageFilterChange(TRequestStatus& aReqStatus, TDes16& aLangFilter) const; - - class TMobileBroadcastIdEntryV1 : public RMobilePhone::TMultimodeType - /** In GSM - defines a Cell Broadcast Message Identifier (CBMI) list entry. In - CDMA - defines a Service Category list entry. - @publishedPartner - @released - */ - { - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - IMPORT_C TMobileBroadcastIdEntryV1(); - public: - /** The value of the message identifier. */ - TUint16 iId; - }; - -/** Defines the broadcast types. */ - enum TMobileBroadcastIdType - { - /** GSM broadcast. */ - EGsmBroadcastId, - /** CDMA broadcast. */ - ECdmaBroadcastId - }; - - IMPORT_C void StoreBroadcastIdListL(TRequestStatus& aReqStatus, CMobilePhoneBroadcastIdList* aIdList, TMobileBroadcastIdType aIdType); - IMPORT_C void NotifyBroadcastIdListChange(TRequestStatus& aReqStatus) const; - -private: - RMobileBroadcastMessaging(const RMobileBroadcastMessaging&); - CCbsMessagingPtrHolder* iCbsMessagingPtrHolder; -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - -/*********************************************************/ -// -// USSD Messaging (RMobileUssdMessaging) -// -/*********************************************************/ - - - -class CUssdMessagingPtrHolder; -class RMobileUssdMessaging : public RTelSubSessionBase -/** Provides client access to USSD functionality provided by TSY. -*/ - { -public: - IMPORT_C RMobileUssdMessaging(); - - IMPORT_C TInt Open(RMobilePhone& aPhone); - IMPORT_C void Close(); - -/** Defines the USSD Messaging Format Capabilities. - -Modes: GSM/WCDMA */ - enum TMobileUssdFormatCaps - { - /** USSD messages coded as a packed string within 160 octets, as defined for a - ussd-String within GSM 04.80 and GSM 03.38. - - Modes: GSM/WCDMA */ - KCapsPackedString=0x00000001 - }; - -/** Defines the USSD Messaging Type Capabilities. - -Modes: GSM/WCDMA */ - enum TMobileUssdTypeCaps - { - /** Outgoing USSD messages are supported. - - Modes: GSM/WCDMA */ - KCapsMOUssd=0x00000001, - /** Incoming USSD messages are supported. - - Modes: GSM/WCDMA */ - KCapsMTUssd=0x00000002 - }; - - - - class TMobileUssdCapsV1 : public RMobilePhone::TMultimodeType - /** Defines capabilities of USSD messaging. - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobileUssdCapsV1(); - /** Sum of TMobileUssdFormatCaps constants. - - Modes: GSM/WCDMA - - @see TMobileUssdFormatCaps */ - TUint32 iUssdFormat; - /** Sum of TMobileUssdTypeCaps constants. - - Modes: GSM/WCDMA - - @see TMobileUssdTypeCaps */ - TUint32 iUssdTypes; - }; - -/** A typedef'd packaged TMobileUssdCapsV1 for passing through a generic API member -function. */ - typedef TPckg 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 TMobileUssdAttributesV1Pckg; - - /***********************************************************************************/ - // - // Receiving USSD messages - // - /***********************************************************************************/ - - enum - { - KGsmUssdDataSize = 160 - }; - -/** A typedef'd buffer to hold the message data. */ - typedef TBuf8 TGsmUssdMessageData; - - IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; - - /***********************************************************************************/ - // - // Sending USSD messages - // - /***********************************************************************************/ - - IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const; - IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const; - - IMPORT_C void SendRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const; - IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const; - IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const; - -private: - RMobileUssdMessaging(const RMobileUssdMessaging&); - CUssdMessagingPtrHolder* iUssdMessagingPtrHolder; -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - - - -/*********************************************************/ -// -// SMS Message Storage (RMobileSmsStore) -// -/*********************************************************/ - - - -class CSmsStorePtrHolder; -class CMobilePhoneSmsList; -class RMobileSmsStore : public RMobilePhoneStore -/** Provides client access to SMS storage functionality provided by TSY. -@publishedPartner -@released -*/ - { -public: - - IMPORT_C RMobileSmsStore(); - IMPORT_C TInt Open(RMobileSmsMessaging& aMessaging, const TDesC& aStoreName); - IMPORT_C void Close(); - -/** Defines the SMS Store Capabilities. - -Modes: Common */ - enum TMobileSmsStoreCaps - { - /** The store contains unread, incoming SMS entries. - - Modes: Common */ - KCapsUnreadMessages = 0x00000001, - /** The store contains read, incoming SMS entries. - - Modes: Common */ - KCapsReadMessages = 0x00000002, - /** The store contains sent SMS entries. - - Modes: Common */ - KCapsSentMessages = 0x00000004, - /** The store contains un sent SMS entries. */ - KCapsUnsentMessages = 0x00000008, - /** The store contains GSM SMS message entries – so TMobileGsmSmsEntryV1 class - should be used. - - Modes: GSM/WCDMA */ - KCapsGsmMessages = 0x00000010, - /** The store contains CDMA SMS message entries – so TMobileCdmaSmsEntryV1 class - should be used. - - Modes: CDMA */ - KCapsCdmaMessages = 0x00000020 - }; - -/** Defines contents of a fixed-size, stored SMS entry. - -Modes: Common */ - enum TMobileSmsStoreStatus - { - /** The status of the SMS is unknown. */ - EStoredMessageUnknownStatus, - /** The SMS is stored phone-side. It is an incoming message that has not been read - yet. */ - EStoredMessageUnread, - /** The SMS is stored phone-side. It is an incoming message that has already been - read. */ - EStoredMessageRead, - /** The SMS is stored phone-side. It is an outgoing message that has not been sent - yet. */ - EStoredMessageUnsent, - /** The SMS is stored phone-side. It is an outgoing message that has already been - sent but a delivery/status report has either not been received yet or was - not requested in the first place. */ - EStoredMessageSent, - /** The SMS is stored phone-side. It is an outgoing message that has already been - sent and a delivery/status report has been received */ - EStoredMessageDelivered - }; - - // - // Enum used by TSY to distinguish which SMS entry class is used by client - // - -/** Used by TSY to distinguish which SMS entry class is used by client. */ - enum TMobileSmsEntryExtensionId - { - /** Type is unknown. */ - KETelMobileSmsEntryV1=KETelExtMultimodeV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileGsmSmsEntryV1. - - Also used to indicate that GSM SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */ - KETelMobileGsmSmsEntryV1, - /** The iExtensionId contents indicate that the packaged class is a TMobileCdmaSmsEntryV1. - - Also used to indicate that CDMA SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */ - KETelMobileCdmaSmsEntryV1 - }; - - class TMobileSmsEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1 - /** Defines contents of a fixed-size, stored SMS entry. - @publishedPartner - @released - */ - { - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - protected: - TMobileSmsEntryV1(); - public: - /** The status of the stored message. - - Modes: Common - - @see TMobileSmsStoreStatus */ - TMobileSmsStoreStatus iMsgStatus; - }; - -/** A typedef'd packaged TMobileSmsEntryV1 for passing through a generic API -member function. */ - typedef TPckg 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 TMobileGsmSmsEntryV1Pckg; - - class TMobileCdmaSmsEntryV1 : public TMobileSmsEntryV1 - /** Defines contents of a fixed-size, stored CDMA SMS entry. - @publishedPartner - @released - */ - { - public: - void InternalizeL(RReadStream& aStream); - void ExternalizeL(RWriteStream& aStream) const; - public: - IMPORT_C TMobileCdmaSmsEntryV1(); - public: - /** The teleservice identifier of the stored message. - - Modes: CDMA */ - TInt iTeleservice; - /** The service category of the stored message. - - Modes: CDMA */ - TInt iServiceCategory; - /** The remote party (destination or originator) of the stored message. - - Modes: CDMA - - @see RMobilePhone::TMobileAddress */ - RMobilePhone::TMobileAddress iRemoteParty; - /** The teleservice layer bearer data of the stored message. - - Modes: CDMA - - @see RMobileSmsMessaging::TMobileSmsCdmaTpdu */ - RMobileSmsMessaging::TMobileSmsCdmaTpdu iMsgData; - }; - -/** A typedef'd packaged TMobileCdmaSmsEntryV1 for passing through a generic API -member function. */ - typedef TPckg TMobileCdmaSmsEntryV1Pckg; - -protected: - IMPORT_C void ConstructL(); -private: - RMobileSmsStore(const RMobileSmsStore&); - }; - -/*********************************************************/ -// -// NAM Storage (RMobileNamStore) -// -/*********************************************************/ - - - -class CNamStorePtrHolder; -class CMobilePhoneNamList; -class CMobilePhoneNamListV4; - -class RMobileNamStore : public RMobilePhoneStore -/** -Provides client access to NAM storage functionality provided by TSY - -*/ - { -public: - IMPORT_C RMobileNamStore(); - IMPORT_C TInt Open(RMobilePhone& aPhone); - IMPORT_C void Close(); - - - - class TMobileNamStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1 - /** - Defines information about a NAM store - - @publishedPartner - @released - */ - { - public: - IMPORT_C TMobileNamStoreInfoV1(); - public: - /** The number of enabled NAMs within the NAM store. - - Modes: CDMA */ - TInt iNamCount; - /** The index of the NAM that is currently the active NAM, will be between 0 and - iNamCount-1. - - Modes: CDMA */ - TInt iActiveNam; - }; - -/** A typedef'd packaged TMobileNamStoreInfoV1 for passing through a generic API -member function. */ - typedef TPckg 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 iData; - }; - - /** A typedef'd packaged TMobileNamEntryV1 for passing through a generic API member - function. */ - typedef TPckg 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 iData; - }; - - /** A typedef'd packaged TMobileNamEntryV4 for passing through a generic API member - function. */ - typedef TPckg 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 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 iText; - }; - -/** A typedef'd packaged TMobileONEntryV1 for passing through a generic API member -function. */ - typedef TPckg 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 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 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 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 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 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 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 TMobilePhoneBookInfoV5Pckg; - - - // check these fields - not sure all are correct -/** The following Tag IDs are used to encode/decode the phonebook entries to/from -the TLV format. Each field will have a unique identifier and will be followed -by the field length. The type of data associated with the field is also specified -below. - -Some fields do not have any data and just serve as separators within the buffer -- in these cases the Data Type column is set to not applicable (n/a). - -Modes: Common */ - enum TMobilePBFieldTags - { - /** Tag id for the beginning of a new phonebook entry. - - Data type: n/a. - - Modes: Common */ - ETagPBNewEntry =0xA0, - /** Tag id for the Unique ID field. - - Data type: TUint16 - - Modes: WCDMA */ - ETagPBUniqueId =0xB0, - /** Tag id for the Index within the ADN record. - - Data type: TUint16 - - Modes: Common */ - ETagPBAdnIndex =0xC0, - /** Tag id for a Text field within the ADN/ANR record. - - Data type: TDes16 - - Modes: Common */ - ETagPBText =0xC1, - /** Tag id for a Number field within the ADN/ANR record. - - Data type: TDes16 - - Modes: Common */ - ETagPBNumber =0xC2, - /** Tag id for a TON/NPI byte within the ADN/ANR record. - - Data type: TUint8 - - Modes: Common */ - ETagPBTonNpi =0xC3, - /** Tag id for a Bearer Capability IE associated to the ADN/ANR record. - - Data type: TDes8 - - Modes: GSM/WCDMA */ - ETagPBBearerCap =0xC4, - /** Tag id for the beginning of an Additional Number entry within the phonebook - entry. - - Data type: n/a - - Modes: WCDMA */ - ETagPBAnrStart =0xC5, - /** Tag id for the Second Name associated to the ADN record. - - Data type: TDes16 - - Modes: WCDMA */ - ETagPBSecondName =0xC6, - /** Tag id for a Group Name associated to the ADN record. - - Data type:TDes16 - - Modes: WCDMA */ - ETagPBGroupName =0xC7, - /** Tag id for an Email Address associated to the ADN record. - - Data type: TDes16 - - Modes: WCDMA */ - ETagPBEmailAddress =0xC8, - /** Tag id for the Entry Control byte associated to the ADN record. - - Data type: TUint8 - - Modes: WCDMA */ - ETagPBEntryControl =0xC9, - /** Tag id for the Hidden Information byte associated to the ADN record. - - Data type: TUint8 - - Modes: WCDMA */ - ETagPBHiddenInfo =0xCA, - ETagPBDateTime =0xCB, - ETagPBDuration =0xCC, - ETagPBCallStatus =0xCD, - ETagPBEntryStatus =0xCE - }; - - - // API/TSY internal type - struct TPBIndexAndNumEntries -/** A structure to hold the phone book index and number of entries. */ - { - /** Index for the phone book. */ - TInt iIndex; - TInt iNumSlots; - }; - - IMPORT_C void Read(TRequestStatus& aReqStatus, TInt aIndex, TInt aNumSlots, TDes8& aPBData) const; - IMPORT_C void Write(TRequestStatus& aReqStatus, const TDesC8& aPBData, TInt& aIndex) const; - -protected: - IMPORT_C void ConstructL(); -private: - RMobilePhoneBookStore(const RMobilePhoneBookStore&); - }; - -/*********************************************************/ -// -// RMobileConferenceCall -// -/*********************************************************/ - - - -class CMobileConferenceCallPtrHolder; - -class RMobileConferenceCall : public RTelSubSessionBase -/** Provides access to conference call functionality provided by TSY. - -Conference calls allow users to conduct multi-connection voice calls, for example -simultaneous communication to more than one remote party. All participants -within a conference call can hear and speak to each other. There is a controlling -party that initiates and manages the conference. - -Conference calling is possible in both GSM and CDMA mode and the actions to -initiate a 3-way conference are the same in either mode. However, GSM conference -calls offer more functionality and the number of remote parties is limited -in CDMA mode to 2 and in GSM mode to 5. - -The Multimode ETel API uses a new sub-session called RMobileConferenceCall -as a model for a conference call. The conference call object will be an aggregation -of all the RMobileCall objects that are part of the conference call. It will -be possible for clients to manipulate both the conference call as a whole -and individual calls within a conference call depending on the dynamic capabilities -of each of these objects. - -Please note that RMobileConferenceCall is replacing the RCallGroup abstraction -used in the GSM API. This was an optimisation decision. The call group abstraction -placed a large burden on a TSY to create call groups, monitor the calls in -each group and trigger notification when calls were added or moved, probably -even when a conference call was not ongoing. Clients will probably only open -a RMobileConferenceCall when the user has decided to make a conference call -and by having just one object replace three call groups it will also reduce -the number of notifications that would trigger in response to conference call -events. With a view to the future, without call groups there are also no longer -any restrictions to the allowed types of active calls (simultaneous, separate -voice and data calls are possible). - -The methods within this section must be supported if the TSY supports MobileConferenceCall -functional unit. - -*/ - { -public: - IMPORT_C RMobileConferenceCall(); - IMPORT_C TInt Open(RMobilePhone& aPhone); - IMPORT_C void Close(); - -/** Conference call capabilities. */ - enum TMobileConferenceCallCaps - { - /** Indicates that a conference call can be created. */ - KCapsCreate = 0x00000001, - /** Indicates that a conference call can be terminated. */ - KCapsHangUp = 0x00000002, - /** Indicates that a conference call exists and can be swapped to the opposite - state (active or hold). */ - KCapsSwap = 0x00000004 - }; - - IMPORT_C TInt GetCaps(TUint32& aCaps) const; - IMPORT_C void NotifyCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const; - - IMPORT_C void CreateConference(TRequestStatus& aReqStatus) const; - IMPORT_C void AddCall(TRequestStatus& aReqStatus, const TName& aCallName) const; - IMPORT_C void Swap(TRequestStatus& aReqStatus) const; - IMPORT_C void HangUp(TRequestStatus& aReqStatus) const; - IMPORT_C TInt EnumerateCalls(TInt& aCount) const; - IMPORT_C TInt GetMobileCallInfo(TInt aIndex, TDes8& aCallInfo) const; - -/** Conference call status. */ - enum TMobileConferenceStatus - { - /** The conference call is in the idle state. */ - EConferenceIdle, - /** The conference call is in the active, connected state. */ - EConferenceActive, - /** The conference call is in the held, connected state. */ - EConferenceHold - }; - - IMPORT_C TInt GetConferenceStatus(TMobileConferenceStatus& aStatus) const; - IMPORT_C void NotifyConferenceStatusChange(TRequestStatus& aReqStatus, TMobileConferenceStatus& aStatus) const; - -/** Conference events. */ - enum TMobileConferenceEvent - { - /** A call has been added to the conference. */ - EConferenceCallAdded, // Name of the call added returned in aCallName - /** A call has been removed from the conference. */ - EConferenceCallRemoved, // Name of the call terminated returned in aCallName - /** Names of the two calls used to build the conference call returned in aCallName. */ - EConferenceBuilt, // Names of the two calls used to build the conference call returned in aCallName - /** No name provided */ - EConferenceTerminated, // No name provided - /** No name provided. */ - EConferenceSwapped, // No name provided - /** Name of the call being seperated. */ - EConferenceSplit // Name of the call being seperated - }; - - IMPORT_C void NotifyConferenceEvent(TRequestStatus& aReqStatus, TMobileConferenceEvent& aEvent, TName& aCallName) const; - -private: - CMobileConferenceCallPtrHolder* iMmPtrHolder; - RMobileConferenceCall(const RMobileConferenceCall&); -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - }; - - -///////////////////////////////////////////////////////////////////////////////////// -// -// EAP-SIM Authentication functional unit -// -///////////////////////////////////////////////////////////////////////////////////// - -class CMobileSmartCardEapPtrHolder; - -/** -This sub-session opens under RMobilePhone. - -RMobileSmartCardEap provides the client with access to a Smart Card -Application's EAP-capability (if one exists). - -(See ETSI TS 102.310 v6.2.0 and RFC3748) - -To submit authentication challenges or requests, a client must use -CAsyncSmartCardEapAuthentication in conjunction with this sub-session. - -@see CAsyncSmartCardEapAuthentication -@publishedPartner -@prototype -*/ -class RMobileSmartCardEap : public RTelSubSessionBase - { - friend class CAsyncSmartCardEapAuthentication; - -public: - /** - Class encapsulates EAP request packet data for authentication. - - @see CAsyncSmartCardEapAuthentication - - @publishedPartner - @prototype - */ - class CEapAuthenticateRequestDataV6 : public CBase - { - public: - IMPORT_C static CEapAuthenticateRequestDataV6* NewL(); - IMPORT_C virtual void ExternalizeL(TPtr8& aBuffer); - IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer); - IMPORT_C TUint VersionId() const; - IMPORT_C TPtr8 GetEapReqPacket() const; - IMPORT_C void SetEapReqPacketL(const TDesC8& aData); - IMPORT_C ~CEapAuthenticateRequestDataV6(); - - private: - CEapAuthenticateRequestDataV6(); - void ConstructL(); - - protected: - /** - ETelMM's supported version. - */ - TUint iVersionId; - - public: - /** - EAP-request packet in a flat buffer. - */ - CBufFlat* iEapReqPacket; - }; - - IMPORT_C RMobileSmartCardEap(); - - /** - EAP types are represented by one byte for standard EAP methods, and - eight bytes for extended methods. Each byte specified in the - TEapType buffer should represent one semi-octet. Therefore, a - maximum of 16-chars are needed for representing any possible EAP - type. (See section 5.2 of ETSI TS 102.310 v6.2.0.) - - @see RMobileSmartCardEap::TEapType - - @publishedPartner - @prototype - */ - enum { KEapTypeSize = 16 }; - - /** - A typedef'd buffer to hold the EAP type for the subsequent - authentication that will be carried out on the Smart Card - Application. - - The value specified must correspond to the pre-allocated type - identifiers for various EAPs (see - http://www.iana.org/assignments/eap-numbers). Some known values - are given in etelmm.h. - - The type must be specified in hexadecimal format, where each - character represents one semi-octet. - - @see KETelSmartCardEapTypeMD5 - @see KETelSmartCardEapTypeTLS - @see KETelSmartCardEapTypeSIM - @see KETelSmartCardEapTypeAKA - @see KETelSmartCardEapTypeTTLS - @see RMobileSmartCardEap::Open() - - @publishedPartner - @prototype - */ - typedef TBuf8 TEapType; - - IMPORT_C TInt Open(RMobilePhone& aPhone, const RMobilePhone::TAID& aAID, const TEapType& aEapType); - IMPORT_C void InitialiseEapMethod(TRequestStatus& aReqStatus); - IMPORT_C void Close(); - - /** - Authentication status of the EAP supporting UICC application (See - section 7.2 of ETSI TS 102.310 v6.2.0). One of these values is - returned on completion of an - RMobileSmartCardEap::GetAuthenticationStatus() request. - - @see RMobileSmartCardEap::GetAuthenticationStatus() - - @publishedPartner - @prototype - */ - enum TEapAuthStatus - { - /** - No authentication started - */ - ENoAuthStarted, // 0 - /** - Authenticating - */ - EAuthenticating, // 1 - /** - Authentication complete - */ - EAuthenticated, // 2 - /** - Held (authentication failure) - */ - EHeld // 3 - }; - - IMPORT_C void GetAuthenticationStatus(TRequestStatus& aReqStatus, TEapAuthStatus& aAuthStatus); - - /** - TEapUserIdType should be used to request an identity from EF_PUId - or EF_Ps, when making an RMobileSmartCardEap::GetUserIdentity() - request. - (See sections 7.3 and 7.4, respectively, of ETSI TS 102.310 v6.2.0, - and RFC2486 - The Network Access Identifier). - - @see RMobileSmartCardEap::GetUserIdentity() - @see RMobileSmartCardEap::TEapUserIdentityV6 - - @publishedPartner - @prototype - */ - enum TEapUserIdType - { - /** Identity is permanent type */ - EPermanentIdentity, // 0 - /** Identity is pseudonym type */ - EPseudonymIdentity // 1 - }; - - /** - Maximum permitted size of identity data. - */ - enum { KEapIdentityMaxSize = 255 }; - - /** - EAP User Identity data. Ids are stored in EF_PUId or EF_Ps - (specified in sections 7.3 and 7.4, respectively, of ETSI TS - 102.310 v6.2.0). - - @see RMobileSmartCardEap::GetUserIdentity() - - @publishedPartner - @prototype - */ - class TEapUserIdentityV6 : public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TEapUserIdentityV6(); - public: - /** - EAP-IDENTITY Data. - */ - TBuf8 iEapId; - }; - - /** - A typedef'd packaged TEapUserIdentityV6 for passing through a - generic API method. - - @publishedPartner - @prototype - */ - typedef TPckg TEapUserIdentityV6Pckg; - - IMPORT_C void GetUserIdentity(TRequestStatus& aReqStatus, - TEapUserIdType aRequestedIdType, - TDes8& aUserId); - - /** - TEapKeyV6 should be used to request one of (currently) two keys - available on the EF_EAPKEYS of the UICC application (see section - 7.1 of ETSI TS 102.310 v6.2.0). This enumeration type should be - used in RMobileSmartCardEap::GetEapKey() to specify the key to be - retrieved. - - @see RMobileSmartCardEap::TEapKeyV6 - @see RMobileSmartCardEap::GetEapKey() - - @publishedPartner - @prototype - */ - enum TEapKeyTag - { - /** - Used to request Master Session Key. - */ - EEapKeyMSK = 0x80, - /** - Used to request Extended Master Session Key. - */ - EEapKeyEMSK = 0x81 - }; - - /** - Maximum size of an EAP Key stored on the DF_EAP's EF_EAPKEYS. - 255 as each key has a length that can be specified by exactly one - byte (see section 7.1 of ETSI TS 102.310 v6.2.0). - - @publishedPartner - @prototype - */ - enum { KEapKeyMaxSize = 255 }; - - /** - EAP authentication key data. - - @see RMobileSmartCardEap::GetEapKey() - - @publishedPartner - @prototype - */ - class TEapKeyV6 : public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TEapKeyV6(); - public: - /** - EAP-KEY Data. - */ - TBuf8 iEapKey; - }; - - /** - A typedef'd packaged TEapKeyV6 for passing through a generic API - method. - - @publishedPartner - @prototype - */ - typedef TPckg TEapKeyV6Pckg; - - IMPORT_C void GetEapKey(TRequestStatus& aReqStatus, const TEapKeyTag aRequestedKey, TDes8& aKey); - - /** - Status of the DF_EAP this subsession refers to. The status is - basically an indication of whether the DF is in use by another sub- - session client instance. - - NotifyEapMethodAccessStatusChange() will give a notification when - the status changes. - - Status will change when the first client calls - InitialiseEapMethod() on this sub-session. When the same client - calls ReleaseEapMethod() (or Close()), the status will change - again. This allows mutually exclusive access to the DF_EAP. All - other RMobileSmartCardEap hanles will get an error if they attempt - to make requests that access the same DF_EAP. - - @see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange() - @see RMobileSmartCardEap::ReleaseEapMethod() - @see RMobileSmartCardEap::InitialiseEapMethod() - - @publishedPartner - @prototype - */ - enum TEapMethodAccessStatus - { - /** - AID/DF_EAP has been reset, and the DF_EAP has not been - initialised by any other instance of RMobileSmartCardEap. - */ - EEapMethodAvailable, - /** - Another instance of RMobileSmartCardEap has initialised first - and taken ownership of the DF_EAP. The DF_EAP is currently - active and EAP requests can be made. - */ - EEapMethodInUseApplicationActive, - /** - This instance of RMobileSmartCardEap still owns the lock on the - DF_EAP, but the application has been deactivated elsewhere. - The client should re-initialise before making further EAP - requests. - - @see RMobileSmartCardEap::InitialiseEapMethod() - */ - EEapMethodInUseApplicationInactive, - /** - Lock on the DF_EAP has been released, but another DF_EAP method - is in use under the same AID, thus, cannot reset/initialise - this subsessions EAP method. Client can only post a - notification and wait till status changes to - EEapMethodAvailable. - - @see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange() - */ - EEapMethodUnableToInitialise - }; - - IMPORT_C TInt ReleaseEapMethod(); - IMPORT_C TInt GetEapMethodAccessStatus(TEapMethodAccessStatus& aEapMethodStatus); - IMPORT_C void NotifyEapMethodAccessStatusChange(TRequestStatus& aReqStatus, TEapMethodAccessStatus& aEapMethodStatus); - IMPORT_C TBool IsEapMethodOwner() const; - -protected: - IMPORT_C void ConstructL(); - IMPORT_C void Destruct(); - -private: - RMobileSmartCardEap(const RMobileSmartCardEap&); - - TChar SeptChar(TInt aDigit); - void ConvertBinToText(const TDesC8& aBinData, TDes& aText); - -private: - /** - Pointer Holder for the RMobileSmartCardEap sub-session requests. - */ - CMobileSmartCardEapPtrHolder* iMmPtrHolder; - /** - True if this object is the first to request InitialiseEapMethod() - on its 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 TLcsClientNameBuffer; - /** - A typedef'd buffer which holds the RequestorId String. - @see KLcsMaxRequestorIdStringSize - */ - typedef TBuf8 TLcsRequestorIdString; - /** - A typedef'd buffer which holds the Gps Assistance Data. - @see KLcsMaxGpsAssistanceDataSize - */ - typedef TBuf8 TGpsAssistanceData; - /** - A typedef'd buffer which holds the External ClientId. - @see KLcsMaxClientExternalIdSize - */ - typedef TBuf8 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 TLcsLocationEstimate; - /** - A typedef'd buffer which holds the Velocity Estimate. - @see KLcsMaxVelocityEstimateSize - */ - typedef TBuf8 TLcsVelocityEstimate; - /** - A typedef'd buffer which holds the GpsAssistanceData type. - @see KLcsMaxGpsAssistanceDataSize - */ - typedef TBuf8 TGpsAssistanceData; - typedef TUint8 TTransactionIdentifier; - typedef TUint8 TGPSI; - /** - Note:Refer to 3GPP TS 23.271(Functional stage 2 description of Location Services (LCS)), - 3GPP TS 24.030(Location Services (LCS); Supplementary service operations - Stage 3) and - 3GPP TS 24.080(Mobile radio interface layer 3 supplementary services specification; Formats and coding) - for further details of MTLR and MOLR member data. - */ - /*********************************************************************/ - // MTLR // - /*********************************************************************/ - /** - TNotificationType lists the various types of Notification - that can be expected from any MTLR-Location Notification coming from the Network, - These types depend on the Subscription Profile of the UE. - - One of the TNotificationType is expected to be retrieved from the Network, - when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY. - @internalAll - */ - enum TNotificationType - { - /** - Notification Type Unknown - */ - ENotificationTypeUnknown, - /** - The Location Request is accepted by default - */ - ENotifyLocationAllowed, - /** - This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, - and that the user is expected to respond by granting/denying the request. By defualt, if the user - does not provide a response, the request is granted - */ - ENotifyAndVerify_LocationAllowedIfNoResponse, - /** - This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, - and that the user is expected to respond by granting/denying the request. By defualt, if the - user does not provide a response, the request is denied. - */ - ENotifyAndVerify_LocationNotAllowedIfNoResponse, - /** - The network sends the information to the UE that the external client has privacy overide capability, - This indicator is received when an authenticated or emergency client had sent the request. - */ - ELocationPrivacyOverride, - /** - This enum is used to notify the UE that an incoming MTLR request was denied by the network for any of various - reasons. - */ - ELocationNotAllowed - }; - - - /** - TLocationEstimateType lists the various types of LocationEstimate - that can be expected from any MTLR-Location Notification request coming from the Network, - These types depend on the Subscription Profile of the UE. - - One of the TLocationEstimateType is expected to be retrieved from the Network, - when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY. - @internalAll - */ - enum TLocationEstimateType - { - /** - Location Estimate Type Unknown. - */ - ELocationEstimateTypeUnknown, - /** - The External Client has requested for the Current Location of - the UE. - */ - ECurrentLocation, - /** - The External Client has requested for the Current Location of - the UE.Incase,if the request is accepted,But still it fails to - generate the Location report because of Measurement Control Failure. - The Client receives the Last Known Location. - */ - ECurrentOrLastKnownLocation, - /** - The External Client has requested for the initial location of the UE. The current - location of the UE may or may not be the initial location. - */ - EInitialLocation - }; - - /** - TLcsClientNameV1 holds the details of the name of the External client, - who is making the request via Network. - TLcsClientNameV1 is used by RMobileLocationServices::NotifyMtlr() request. - @see TLcsDataCodingScheme - @see TLcsClientNameBuffer - @internalAll - */ - class TLcsClientNameV1 - { - public: - /** - TLcsDataCodingScheme holds the Data Coding Scheme information which is used - to extract the ExternalClient name. - */ - TLcsDataCodingScheme iLcsDataCodingScheme; - /** - TLcsClientNameBuffer holds the Client name - */ - TLcsClientNameBuffer iLcsClientNameBuffer; - }; - - /** - TLcsRequestorIDV1 holds the details of the RequestorId i.e the details of the - Network,Which is carrying the request of External Client to UE - TLcsRequestorIDV1 is used by RMobileLocationServices::NotifyMtlr() request. - @see TLcsDataCodingScheme - @see TLcsRequestorIdString - @internalAll - */ - class TLcsRequestorIDV1 - { - public: - /** - TLcsDataCodingScheme holds the Data Coding Scheme information which is used - to extract the RequestorId String. - */ - TLcsDataCodingScheme iLcsDataCodingScheme; - /** - TLcsRequestorIdString holds the RequestorId String - */ - TLcsRequestorIdString iLcsRequestorIdString; - }; - - /** - TLocationExternalInfoV1 holds the details of the External client and the Requestor - TLocationExternalInfoV1 is used by RMobileLocationServices::NotifyMtlr() request - @see TLcsClientExternalID - @see TLcsClientNameV1 - @see TLcsRequestorIDV1 - @internalAll - */ - class TLocationExternalInfoV1 - { - public: - /** - TLcsClientExternalID gives the id of the External client. - */ - TLcsClientExternalID iLcsClientID; - /** - TLcsClientNameV1 holds the name of the External Client. - */ - TLcsClientNameV1 iLcsClientName; - /** - TLcsRequestorIDV1 gives the details of requestor id - */ - TLcsRequestorIDV1 iLcsRequestorID; - }; - - /** - TNotifyMtlrV7 holds the details of the MTLR request made by the External client. - TNotifyMtlrV7 is used by RMobileLocationServices::NotifyMtlr() request - @see TNotificationType - @see TLocationEstimateType - @see TLocationExternalInfoV1 - @internalAll - */ - class TNotifyMtlrV7: public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TNotifyMtlrV7(); - public: - /** - TNotificationType holds the type of notification request being made - */ - TNotificationType iNotificationType; - /** - TLocationEstimateType holds the type of LocationEstimate is requested - */ - TLocationEstimateType iMtlrLocationEstimateType; - /** - TLocationExternalInfoV7 holds the details of the External client. - */ - TLocationExternalInfoV1 iLocationInfo; - }; - - /** - A typedef'd packaged TNotifyMtlrV7 for passing through a - generic API method. - - @internalAll - */ - typedef TPckg TNotifyMtlrV7Pckg; - - //MTLR-RESPONSE - /** - TMtlrResponse is used by the OverLoaded RMobileLocationServices::SendMtlrResponse() API - It holds the type of response being sent back for the MTLR request made. - @internalAll - */ - - enum TMtlrResponse - { - /** - Mtlr Response Unknown. - */ - EMtlrResponseUnknown, - /** - The UE has denied the Location Request of the External client. - @see RMobileLocationServices::SendMtlrResponse() - */ - EPermissionDenied , - /** - The UE has granted the Location Request of the External client. - @see RMobileLocationServices::SendMtlrResponse() - */ - EPermissionGranted - }; - - /** - TMtlrError is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API - It holds the type of Error response being sent back for the MTLR request made. - @internalAll - */ - enum TMtlrError - { - /** - Mtlr Error Unknown. - */ - EMtlrErrorUnknown, - /** - This response is sent back to the network when System has failed to - do the privacy check due to some Miscellaneous reasons - */ - ESystemFailure , - /** - The response is sent when the privacy verification has failed because of Unexpected data - values retrieved from the Location Notification request generated by the Network. - This generates an Error-Prone response from UE - */ - EUnexpectedDataValue - }; - - /** - TMtlrReject is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API - It holds the details of the Response being rejected due to one of the problems reported to the UE - for the MTLR request being made. - @internalAll - */ - enum TMtlrReject - { - /** - Mtlr Reject Unknown. - */ - EMtlrRejectUnknown, - /** - This indication is given under a scenario where the UE wants to reject a request, - It is done by invoking Duplicate ID's. - */ - EDuplicateInvokeID, - /** - This indication is given under a scenario where the UE wants to reject a request, - It is done by saying the operation is not recognized - */ - EUnrecognizedOperation, - /** - This invokes a problem indicating Resource Limitation. - */ - EResourceLimitation, - /** - This Invokes a problem initiating release. - */ - EInitiatingRelease, - /** - This invokes a problem indicating that the ID linked with the Client information - is unrecognized - */ - EUnrecognizedLinkedID, - /** - This invokes a problem of Linked Response Unexpected - */ - ELinkedResponseUnexpected, - /** - This invokes a problem of Unexpected Linked Operation - */ - EUnexpectedLinkedOperation, - /** - This invokes a problem of Mistyped Parameter. - */ - EMistypedParameter - }; - - /**************************************************************/ - // MOLR // - /**************************************************************/ - - /** - TMolrType is used by the SendMolr() API. - This gives an indication of type of Molr request the UE wants to invoke - @internalAll - */ - enum TMolrType - { - /** - MolrType UnKnown - */ - EMolrTypeUnknown, - /** - UE is requesting the Network for its Location Estimate - */ - ELocationEstimate, - /** - UE is requesting the Network for GPS Assistance data - */ - EAssistanceData, - /** - UE is requesting the Network for DecipheringKeys - */ - EDecipheringKeys - }; - - /** - TResponseTime is used by SendMolr() API - This enum holds the various types of delay that an UE is expecting. - @internalAll - */ - enum TResponseTime - { - /** - Response Time Unknown. - */ - EResponseTimeunknown, - /** - This enum value indicates that the UE expects a Less Time Delay - from Network in responding to its request - */ - ELowDelay, - /** - This enum value indicates that the UE expects a Long Time Delay - from Network in responding to its request and is tolerant to it. - */ - EDelayTolerant - }; - - /** - TLocationMethod is used by SendMolr() API - This is an enum which lists out all different types of Location methods that an UE can request - @internalAll - */ - enum TLocationMethod - { - /** - Location Method Unknown - */ - ELocationMethodunknown, - /** - This indication is given under a scenario where the UE wants a MS (Mobile Station) Based Location Fix. - This can be termed as UE Assisted Location Fix(EOTD-Enhanced observed time difference). - */ - EMSBasedEOTD, - /** - This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted Location Fix. - This can be termed out as UE based location fix. - */ - EMSAssistedEOTD, - /** - This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted GPS data. - */ - EMSAssistedGPS, - /** - This indication is given under a scenario where the UE wants a MS (Mobile Station) based location fix - (OTDOA-Observed time difference of arrival). - */ - EMSBasedOTDOA - }; - - /** - TQosV1 is used by SendMolr() API - This is a class with details of accuracy of Position information, Response Time, - expected to be received from the network. - @see TResponseTime - @internalAll - */ - class TQosV1 - { - public: - /** - This gives an information of the amount of Horizontal accuracy that the UE is expecting. - */ - TUint8 iHorizontalAccuracy; - /** - This gives an information of the amount of Vertical accuracy that the UE is expecting. - */ - TUint8 iVerticalAccuracy; - /** - This enum indicates the Response Time expected by the UE to receive a response for its MOlr request. - */ - TResponseTime iResponseTime; - }; - - /** - TMolrErrors is used by SendMolr() API - This is an enum which lists out all the possible errors that can be - reported to UE by an External Client or the Network. - @internalAll - */ - enum TMolrErrors - { - /** - Molr Error Unknown - */ - EMolrErrorUnknown, - /** - This indication is given to the UE when the Location Report is unable to reach the - External Client due to some failure in the Network Connections. - */ - EMolrSystemFailure, - /** - This indication is given back to the UE by the Network to the UE or by the - External Client to the UE,where the UE generated MOLR has some unexpected values. - */ - EMolrUnexpectedDataValue, - /** - This indication is given back to the UE by the Network to the UE or by the - External Client to the UE,where the UE generated MOLR had a data discrepancy - */ - EMolrDataMissing, - /** - This indication is given by the Network to the UE, - when the UE is not given a facility to make a MOLR request - */ - EMolrFacilityNotSupported, - /** - This indication is given by the Network to the UE, - when the subscription profile of the UE doesn't match with the requests made by it. - */ - EMolrSS_SubscriptionViolation, - /** - This indication is given by the Network to the UE, - when the UE or the Network failed to generate the Location estimate - */ - EMolrPositionMethodFailure - }; - - /** - TStartMolrV7 is used by SendMolr() API - This class lists the details send by UE to Network when a Molr request is being made. - @see TMolrType - @see TQosV1 - @see TLocationEstimateType - @see TLcsClientExternalID - @see TGpsAssistanceData - @see TLocationMethod - @internalAll - */ - class TStartMolrV7: public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TStartMolrV7(); - public: - /** - TMolrType holds the type of Molr request being made - */ - TMolrType iMolrType; - /** - TQosV1 lists out the Quality of Service expected by UE - */ - TQosV1 iQos; - /** - Type of Location Estimate requested - */ - TLocationEstimateType iMolrLocationEstimateType; - /** - Id of the External client - */ - TLcsClientExternalID iLcsClientExternalID; - /** - Type of GpsAssistanceData - */ - TGpsAssistanceData iGpsAssistanceData; - /** - Type of Location method requested - */ - TLocationMethod iLocationMethod ; - /** - Type of Service requested - */ - TUint8 iLcsServiceTypeID; - }; - /** - A typedef'd packaged TStartMolrV7 for passing through a - generic API method. - - @internalAll - */ - typedef TPckg TStartMolrV7Pckg; - - /** - TMolrReturnResultV7 is used by SendMolr() API - This class lists all the Molr return results that can be expected for the Molr request - being made. - @see TLcsLocationEstimate - @see TLcsVelocityEstimate - @see TMolrErrors - @internalAll - */ - class TMolrReturnResultV7: public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TMolrReturnResultV7(); - public: - /** - This gives the Location Estimate of the UE - */ - TLcsLocationEstimate iLocationEstimate; - /** - This gives the Velocity Estimate of the UE - */ - TLcsVelocityEstimate iVelocityEstimate; - /** - This gives the indication of the type of error occured - */ - TMolrErrors iMolrErrors; - }; - - /** - A typedef'd packaged TMolrReturnResultV7 for passing through a - generic API method. - - @internalAll - */ - typedef TPckg TMolrReturnResultV7Pckg; - - //**************************************// - // Measurement Control Data structures // - //**************************************// - - enum - { - /**Maximum number of monitored cells RACH*/ - KMaxMonitoredCells = 8, - /**Maximum number of satellites*/ - KMaxSat = 16, - /**GlobalHealth size. 364 bits =46 bytes (Rounded) */ - KGlobalHealthSize = 46 - }; - - /**This enum contains the possible types of measurement commands.*/ - enum TMeasurementCmd - { - /**Measurement Command Unknown*/ - EMeasCommandUnknown, - /**Setup a new measurement*/ - ESetup, - /**Modify a previously defined measurement, e.g. to change the reporting criteria*/ - EModify, - /**Indicates to stop a measurement and clear all information in the UE that are related to that measurement */ - ERelease, - }; - - /**This enum contains the possible positioning method types*/ - enum TUePosMethodType - { - /**Positioning Method Type unknown*/ - EPosMethodTypeUnknown, - /**UE Assisted : The network computes the location of the UE.*/ - EUeAssisted, - /**UE Based : The UE computes the location of itself*/ - EUeBased, - }; - - /**This enum contains the possible positioning methods*/ - enum TPosMethod - { - /**Positioning Method unknown*/ - EPosMethodUnknown, - /**OTDOA may be selected by the SRNC as the method to be used on receipt of an LCS positioning request from the CN */ - EOtdoa, - /**These methods make use of UEs, which are equipped with radio receivers capable of receiving GPS signals*/ - EGps, - /**Use either OTDOA or GPS positioning method.*/ - EOtdoaOrGps, - /** - In the cell ID based (i.e. cell coverage) method, the position of an UE is - estimated with the knowledge of its serving Node B. The information about the serving - Node B and cell may be obtained by paging,locating area update, cell update, URA update, or routing area update. - */ - ECellID - }; - - /** - This class contains the information which is part of the Navigation Model. - This can be requested by the UE as part of additional request. - */ - class TSatDataV1 - { - public: - /**Satellite identity*/ - TUint8 iSatID; - /**Issue of Data Ephemeris for SatID*/ - TUint8 iIode; - }; - - /** - This class contains the additional information that can be requested by the UE. - */ - class TNavModelAddlDataReqV1 - { - public: - /**GPS time in weeks*/ - TUint16 iGpsWeek; - /**GPS time of ephemeris in hours of the latest ephemeris set contained by the UE.*/ - TUint8 iGpsToe; - /**Ephemeris age tolerance of the UE to UTRAN in hours.*/ - TUint8 iTToeLimit; - /**Satellite Identities - @see TSatDataV1*/ - TSatDataV1 iSatData[KMaxSat]; - }; - - /**This class contains the indicators to request for additional assistance data from the network.*/ - class TGpsAddlAssistDataReqV1 - { - public: - /**ETrue indicates Almanac Data is requested - @see TAlmanacV1*/ - TBool iAlmanacRequest; - /**ETrue indicates UTC model Data is requested - @see TUtcModelV1*/ - TBool iUtcModelRequest; - /**ETrue indicates Ionospheric Model Data is requested - @see TUtcModelV1*/ - TBool iIonosphericModelRequest; - /**ETrue indicates Navigation model Data is requested - @see TIonosphericModelV1*/ - TBool iNavigationModelRequest; - /**ETrue indicates DGPS corrections Data is requested - @see TNavigationModelSatInfoV1*/ - TBool iDgpsCorrectionsRequest; - /**ETrue indicates Reference location Data is requested - @see TDgpsCorrectionsV1*/ - TBool iReferenceLocationRequest; - /**ETrue indicates Reference time Data is requested - @see TReferenceLocationV1*/ - TBool iReferenceTimeRequest; - /**ETrue indicates Acquisition assistance Data is requested - @see TReferenceTimeV1*/ - TBool iAcquisitionAssistanceReq; - /**ETrue indicates Realtime integrity Data is requested - @see TAcquisitionAssistanceV1*/ - TBool iRealTimeIntegrityRequest; - /**This member is included only if Navigagion Model Data is requested (iNavigationModelRequest is ETrue). - @see TNavModelAddlDataReqV1*/ - TNavModelAddlDataReqV1 iNavModelAddlDataReq; - }; - - /**This class contains the UE positioning reporting quantity*/ - class TUePosReportingQuantityV1 - { - public: - /**Holds the positioning method type*/ - TUePosMethodType iUePosMethodType; - /**Holds the positioning method*/ - TPosMethod iPosMethod; - /**Holds the horizontal accuracy*/ - TInt8 iHorzAccuracy; - /**Holds the vertical accuracy*/ - TInt8 iVertAccuracy; - /**If true the SRNC wants the UE to report the SFN-GPS timing of the reference cell.*/ - TBool iGpsTimingOfCellWanted; - /**ETrue indicates that the UE is requested to send the IE "Additional assistance Data Request" - when the IE "UE positioning Error" is present in the UE positioning measured results. - EFalse indicates that the UE shall use the assistance data available. - */ - TBool iAddlAssistanceDataReq; - }; - - /**This enum contains the states in which measurements are valid*/ - enum TMeasurementValidity - { - /**Measurement Validity Unknown*/ - EMeasValidityUnknown, - /**Indicates measurement is valid in CellDCH state*/ - ECellDCH, - /**Indicates measurement is valid except in CellDCH state*/ - EAllButCellDCH, - /**Indicates measurement is valid in all state*/ - EAllStates - }; - - /**This enum list the SfnTow uncertainity*/ - enum TSfnTowUncertainity - { - /**Sfn Tow Uncertainity unknown*/ - ESfnTowUncertainityUnknown, - /**SfnTowUncertainity < 10*/ - ELessThan10, - /**SfnTowUncertainity > 10*/ - EMoreThan10 - }; - - /**This enum lists the different GPS drift rates*/ - enum TUtranGpsDriftRate - { - /**GPS Drift rate unknown*/ - EDriftRateUnknown, - /**Drift = 0*/ - EUtranGpsDrift0, - /**Drift = 1*/ - EUtranGpsDrift1, - /**Drift = 2*/ - EUtranGpsDrift2, - /**Drift = 5*/ - EUtranGpsDrift5, - /**Drift = 10*/ - EUtranGpsDrift10, - /**Drift = 15*/ - EUtranGpsDrift15, - /**Drift = 25*/ - EUtranGpsDrift25, - /**Drift = 50*/ - EUtranGpsDrift50, - /**Drift = -1*/ - EUtranGpsDriftMinus1, - /**Drift = -2*/ - EUtranGpsDriftMinus2, - /**Drift = -5*/ - EUtranGpsDriftMinus5, - /**Drift = -10*/ - EUtranGpsDriftMinus10, - /**Drift = -15*/ - EUtranGpsDriftMinus15, - /**Drift = -25*/ - EUtranGpsDriftMinus25, - /**Drift = -50*/ - EUtranGpsDriftMinus50, - }; - - /**This enum lists the different Udre values*/ - enum TDiffCorrectionsStatus - { - /**Diff Corrections Status unknown*/ - ECorrectionStatusUnknown, - /**UDRE 1.0 */ - EUdre1Point0, - /**UDRE 0.75 */ - EUdre0Point75, - /**UDRE 0.5 */ - EUdre0Point5, - /**UDRE 0.3 */ - EUdre0Point3, - /**UDRE 0.2 */ - EUdre0Point2, - /**UDRE 0.1 */ - EUdre0Point1, - /**UDRE No Data */ - ENoData, - /**UDRE Invalid Data */ - EInvalidData - }; - - /**This class reserves members for future use*/ - class TSubFrame1ReservedV1 - { - public: - /**Reserve member 1*/ - TUint iReserved1; - /**Reserve member 2*/ - TUint iReserved2; - /**Reserve member 3*/ - TUint iReserved3; - /**Reserve member 4*/ - TUint iReserved4; - }; - - /**This class contains information for GPS ephemeris and clock correction.*/ - class TEphemerisParameterV1 - { - public: - /**Code(s) on L2 Channel */ - TUint8 iCodeOnL2; - /**User Range Accuracy */ - TUint8 iUraIndex; - /**Health of Satellite*/ - TUint8 iSatHealth; - /**Issue of Data, Clock */ - TUint16 iIodc; - /**L2 channel flag*/ - TUint8 iL2Flag; - TSubFrame1ReservedV1 iSubFrame1Reserved; - /**Estimated group delay differential */ - TUint8 iTGd; - /**Apparent clock correction*/ - TUint16 iTOc; - /**Apparent clock correction*/ - TUint8 iAf2; - /**Apparent clock correction*/ - TUint16 iAf1; - /**Apparent clock correction*/ - TUint iAf0; - /**Amplitude of the Sine Harmonic Correction Term to the Orbit Radius (meters)*/ - TUint16 iCRs; - /**Mean Motion Difference From Computed Value (semi-circles/sec)*/ - TUint16 iDeltaN; - /**Mean Anomaly at Reference Time (semi-circles)*/ - TUint iM0; - /**Amplitude of the Cosine Harmonic Correction Term To The Argument Of Latitude (radians)*/ - TUint16 iCUc; - /**Eccentricity*/ - TUint iE; - /**Amplitude of the Sine Harmonic Correction Term To The Argument Of Latitude (radians)*/ - TUint16 iCUs; - /**Semi-Major Axis in squareroot(meters) */ - TUint iASqrt; - /**Reference Time Ephemeris */ - TUint16 iTOe; - /** - Fit interval flag - @see ICD-GPS-200 - */ - TUint8 iFitInterval; - /**Age Of Data Offset */ - TUint8 iAodo; - /**Amplitude of the Cosine Harmonic Correction Term To The Angle Of Inclination (radians)*/ - TUint16 iCIc; - /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */ - TUint iOmega0; - /**Amplitude of the Sine Harmonic Correction Term To The Angle Of Inclination (radians) */ - TUint16 iCIs; - /**Inclination Angle at Reference Time (semi-circles) */ - TUint i0; - /**Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius (meters) */ - TUint16 iCRc; - /**Argument of Perigee (semi-circles) */ - TUint iOmega; - /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */ - TUint iOmegaDot; - /**Rate of Inclination Angle (semi-circles/sec) */ - TUint16 iDot; - }; - - /**This enum specifies the possible status of a satellite*/ - enum TSatelliteStatus - { - /**Satellite Status unknown*/ - ESatStatusUnknown, - /**New satellite, new Navigation Model*/ - ENsNnU, - /**Existing satellite, same Navigation Model*/ - EEsSn, - /**Existing satellite, new Navigation Model*/ - EEsNnU, - /**Reserved*/ - ERev2, - /**Reserved*/ - ERev - }; - - /**This class contains the navigation model satellite information*/ - class TNavigationModelSatInfoV1 - { - public: - /**Satellite identification*/ - TUint8 iSatID; - /**Status of the satellite*/ - TSatelliteStatus iSatelliteStatus; - /**Contains information for GPS ephemeris and clock correction.*/ - TEphemerisParameterV1 iEphemerisParameter; - }; - - /** - This class contains the ionospheric model information needed to model - the propagation delays of the GPS signals through the ionosphere - */ - class TIonosphericModelV1 - { - public: - /** - The parameters *n are the coefficients of a cubic equation - representing the amplitude of the vertical delay. - @see ICD-GPS-200 - */ - /**Alfa = 0*/ - TUint8 iAlfa0; - /**Alfa = 1*/ - TUint8 iAlfa1; - /**Alfa = 2*/ - TUint8 iAlfa2; - /**Alfa = 3*/ - TUint8 iAlfa3; - /** - The parameters *n are the coefficients of a cubic equation - representing the period of the ionospheric model - @see ICD-GPS-200 - */ - /**Beta = 0*/ - TUint8 iBeta0; - /**Beta = 1*/ - TUint8 iBeta1; - /**Beta = 2*/ - TUint8 iBeta2; - /**Beta = 3*/ - TUint8 iBeta3; - }; - - /** - This class contains the UTC model information needed to relate GPS time to Universal Time Coordinate (UTC) - @see ICD-GPS-200 - */ - class TUtcModelV1 - { - public: - /** - Time in seconds. - @see ICD-GPS-200. - */ - TUint iA1; - /** - Time in seconds. - @see ICD-GPS-200. - */ - TUint iA2; - /**Time in seconds - @see ICD-GPS-200 - */ - TUint8 iTOt; - /**weeks - @see ICD-GPS-200 - */ - TUint8 iWnT; - /**Time in seconds - @see ICD-GPS-200 - */ - TUint8 iDeltaTLs; - /**Weeks - @see ICD-GPS-200 - */ - TUint8 iWnLsf; - /**Days - @see ICD-GPS-200 - */ - TUint8 iDn; - /**Seconds - @see ICD-GPS-200 - */ - TUint8 iDeltaTLsf; - }; - - /**This class contains a reduced-precision subset of the ephemeris and clock correction parameters.*/ - class TAlmanacSatInfoV1 - { - public: - /**Data identification*/ - TUint8 iDataID; - /**Eccentricity*/ - TUint16 iE; - /**Reference Time of Almanac */ - TUint8 iTOa; - /**@see ICD-GPS-200*/ - TUint16 iDeltaI; - /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */ - TUint16 iOmegaDot; - /**Satellite health*/ - TUint8 iSatHealth; - /**Semi-Major Axis in squareroot(meters)*/ - TUint iASqrt; - /**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */ - TUint iOmega0; - /**Mean Anomaly at Reference Time (semi-circles) */ - TUint iM0; - /**Argument of Perigee (semi-circles) */ - TUint iOmega; - /**Apparent clock correction */ - TUint16 iAf0; - /**Apparent clock correction */ - TUint16 iAf1; - }; - - /**This class holds the coarse, long-term model of the satellite positions and clocks.*/ - class TAlmanacV1 - { - public: - /**Almanac Reference Week */ - TUint8 iWnA; - TAlmanacSatInfoV1 iAlmanacSatInfoList[KMaxSat]; - /**This enables GPS time recovery and possibly extended GPS correlation intervals.*/ - TUint16 iSvGlobalHealth[KGlobalHealthSize]; - }; - - /**This union contains the information specific to mode - FDD/TDD*/ - union TModeSpecificInfoV1 - { - /**Used in FDD mode*/ - TUint16 iPrimaryScramblingCode; - /**Used in TDD mode*/ - TUint16 iCellParametersID; - }; - - /**This class contains parameters that enable fast acquisition of the GPS - signals in UE-assisted GPS positioning.*/ - class TAcquisitionAssistanceV1 - { - public: - /**Specifies GPS reference time*/ - TUint iGpsReferenceTime; - /**Specifies GPS reference time specific to mode - FDD/TDD*/ - TModeSpecificInfoV1 iUtranGpsReferenceTime; - /**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. - EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/ - TBool iUtranGpsRefTimeStatus; - }; - - /** - The UDRE provides an estimate of the uncertainty (1-*) in the corrections for - the particular satellite. The value in this field shall be multiplied by the - UDRE Scale Factor in the common Corrections Status/Health field to determine the - final UDRE estimate for the particular satellite. - @see 3GPP TS 25.305 - */ - enum TUdre - { - /**Udre unknown*/ - EUdreUnknown, - /** UDRE < 1*/ - ELessThan1, - /** 1> UDRE < 4*/ - EBtw1And4, - /** 1> UDRE < 8*/ - EBtw1And8, - /** UDRE > 8*/ - EOver8 - }; - - /**This class contains DGPS corrections to be used by the UE*/ - class TDgpsCorrectionSatInfoV1 - { - public: - /**Satellite identification*/ - TUint8 iSatID; - /**Issue of Data Ephemeris for SatID.*/ - TUint8 iIode; - /** - The UDRE provides an estimate of the uncertainty (1-*) in the corrections for - the particular satellite. The value in this field shall be multiplied by the - UDRE Scale Factor in the common Corrections Status/Health field to determine the - final UDRE estimate for the particular satellite. - @see 3GPP TS 25.305 - */ - TUdre iUdre; - /**The PRC indicates the correction to the pseudorange for the particular satellite at the GPS Reference Time*/ - TInt16 iPrc; - /** - This information indicates the rate-of-change of the pseudorange correction for the particular satellite, - using the satellite ephemeris identified by the IODE IE - */ - TInt8 iRrc; - /**For future use*/ - TInt8 iDummy1; - /**For future use*/ - TInt8 iDummy2; - }; - - /**This class contains the DGPS corrections information*/ - class TDgpsCorrectionsV1 - { - public: - /**GPS time of week*/ - TUint16 iGpsTow; - /**This information indicates the status of the differential corrections contained in the message.*/ - TDiffCorrectionsStatus iStatusHealth; - /**This member data contains DGPS corrections of the satellites to be used by the UE*/ - TDgpsCorrectionSatInfoV1 iDgpsCorrectionSatInfoList[KMaxSat]; - }; - - /**This enum containst the possible signs of latitude*/ - enum TLatitudeSign - { - /**Latitude Sign Unknown*/ - ELatitudeSignUnknown, - /**Latitude sign is north*/ - ENorth, - /**Latitude sign is south*/ - ESouth - }; - - /**This enum contains the possible directions of altitudes for reference location*/ - enum TAltDirection - { - /**Altitude Direction Unknown*/ - EAltDirectionUnknown, - /**Indicates Altitude direction is height-wise*/ - EHeight, - /**Indicates Altitude direction is depth-wise*/ - EDepth - }; - - /**This class contains a 3-D location (with uncertainty)*/ - class TReferenceLocationV1 - { - public: - /**Specifies the sign - North/South*/ - TLatitudeSign iLatitudeSign; - /**Degree of latitude*/ - TUint16 iLatitude; - /**Degree of longitude*/ - TInt16 iLongitude; - /**Direction of altitude*/ - TAltDirection iAltDirection; - /**Degree of altitude*/ - TUint16 iAltitude; - /**Uncertainty semi major axis*/ - TUint8 iUncertainitySemiMajor; - /**Uncertainty semi minor axis*/ - TUint8 iUncertainitySemiMinor; - /**Orientation of major axis*/ - TUint8 iOrientationMajorAxis; - /**The uncertainty in altitude, h, expressed in metres*/ - TUint8 iUncertainityAltitude; - /**The confidence by which the position of a target entity is known to be within the shape description*/ - TUint8 iConfidence; - }; - - /** - Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) - that are currently being broadcast by the respective GPS satellites. Combining this information - with GPS TOW helps the UE with time-recovery needed to predict satellite signal. - */ - class TGpsTowAssistV1 - { - public: - /**Satellite identification*/ - TUint8 iSatID; - /** - Contains a 14-bit value representing the Telemetry Message (TLM) - being broadcast by the GPS satellite identified by the particular SatID, - with the MSB occurring first in the satellite transmission. - */ - TUint16 iTlmMsg; - /** - Contains the two reserved bits in the TLM Word - being broadcast by the GPS satellite identified by SatID, - with the MSB occurring first in the satellite transmission. - */ - TUint8 iTlmReserved; - /**Contain the Alert flags that are being broadcast by the GPS satellite identified by SatID.*/ - TBool iAlert; - /**Contain the Anti-Spoof that are being broadcast by the GPS satellite identified by SatID.*/ - TBool iAntiSpoof; - }; - - /**This class contains information that may be used to provide a mapping between UTRAN and GPS time*/ - class TUtranGpsRefTimeV1 - { - public: - /**UE-GPS timing of cell ms-part*/ - TUint16 iMsPart; - /**UE-GPS timing of cell ls-part*/ - TUint16 iLsPart; - /**System frame number*/ - TUint16 iSfn; - /**Specifies GPS reference time specific to mode - FDD/TDD*/ - TModeSpecificInfoV1 iModeSpecificInfo; - /**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. - EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/ - TBool iModeSpecificInfoStatus; - }; - - /** - This class contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) - that are currently being broadcast by the respective GPS satellites. Combining this information - with GPS TOW helps the UE with time-recovery needed to predict satellite signal. - */ - class TReferenceTimeV1 - { - public: - /**GPS time in weeks*/ - TUint16 iGpsWeek; - /**GPS Time of Week in milliseconds */ - TUint16 iGpsTowOneMsec; - /**GPS reference time may be used to provide a mapping between UTRAN and GPS time*/ - TUtranGpsRefTimeV1 iUtranGpsRefTime; - /** - This field indicates the uncertainty of the relation GPS TOW/SFN. - ELessThan10 means the relation is accurate to at least 10 ms. - */ - TSfnTowUncertainity iSfnTowUncertainity; - /**Drift rate of the NODE B clock relative to GPS time.*/ - TUtranGpsDriftRate iUtranGpsDriftRate; - /** - Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) - that are currently being broadcast by the respective GPS satellites. Combining this information - with GPS TOW helps the UE with time-recovery needed to predict satellite signal. - */ - TGpsTowAssistV1 iGpsTowAssistList[KMaxSat]; - }; - - /**This class contains the GPS Assistance Data received from network*/ - class TUePosGpsAssistanceDataV1 - { - public: - /**GPS reference time may be used to provide a mapping between UTRAN and GPS time.*/ - TReferenceTimeV1 iReferencTime; - /**The Reference Location contains a 3-D location (with uncertainty)*/ - TReferenceLocationV1 iReferenceLocation; - /** - Holds information to allow a UE to estimate its position more accurate, - biases in the pseudorange measurements may be provided to the UE. - */ - TDgpsCorrectionsV1 iDgpsCorrections; - /**Holds navigation model satellite information*/ - TNavigationModelSatInfoV1 iNavigationModel; - /** - The Ionospheric Model contains information needed to model - the propagation delays of the GPS signals through the ionosphere. - */ - TIonosphericModelV1 iIonosphericModel; - /**UTC parameters may be used to provide Coordinated Universal Time to the UE.*/ - TUtcModelV1 iUtcModel; - /**Holds the coarse, long-term model of the satellite positions and clocks.*/ - TAlmanacV1 iAlmanac; - /**Holds the acquistions assistance information of the UE*/ - TAcquisitionAssistanceV1 iAcquisitionAssistance; - /**Holds the list of bad satellites*/ - TUint8 iBadSatList[KMaxSat]; - /** - This member specifies which of the above additional data structures are populated. - */ - TGpsAddlAssistDataReqV1 iGpsAddlDataStatus; - }; - - /**This class contains the GPS assistance data required to compute the UE Postioning information*/ - class TUePosMeasurementV1 - { - public: - /** - The purpose of the element is to express the allowed/required location method(s), - and to provide information desired QoS. - */ - TUePosReportingQuantityV1 iUePosReportingQuantity; - /**This member data defines in which UE states the measurement is valid.*/ - TMeasurementValidity iMeasurementValidity; - /**This member data holds the GPS Assistance Data sent by the network*/ - TUePosGpsAssistanceDataV1 iUePosGpsAssistanceData; - }; - - /**This holds the possible types of measurement commands that can be specified*/ - union TMeasurementCommandV1 - { - /**Setup a new measurement*/ - TUePosMeasurementV1 iSetup; - /**Modify a previously defined measurement*/ - TUePosMeasurementV1 iModify; - /**Stop the measurement and clear all information in the UE that are related to that measurement.*/ - TBool iRelease; - }; - - /**This enum specifies the mode the UE shall use to transmit the measurement report*/ - enum TMeasReportTransferMode - { - /**Transfer mode unknown*/ - ETransferModeUnknown, - /**The UE shall transmit the measurement report using Acknowledged RLC mode*/ - EAckModeRlc, - /**The UE shall transmit the measurement report using Unacknowledged RLC mode*/ - EUnAckModeRlc - }; - - /** - This class contains the GPS assistance data needed by the UE to compute the location - of the UE. The UE computes the location once it receives all required information. - */ - class TMeasurementControlV7 : public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TMeasurementControlV7(); - public: - /** - A reference number that should be used by the UTRAN when setting up, - modifying or releasing the measurement and by the UE in the measurement report. - */ - TUint8 iMeasurementIdentity; - /**Specifies the Measurement Setup / Modify / Release*/ - TMeasurementCommandV1 iMeasurementCommand; - /**This specifies whether the UE shall transmit the measurement report using AM or UM RLC.*/ - TMeasReportTransferMode iMeasReportTransferMode; - /**ETrue indicates velocity estimate is requested. EFalse indicates velocity estimate is not requested*/ - TBool iVelocityRequested; - /**Holds the type of measurement command being used*/ - TMeasurementCmd iMeasurementCmdStatus; - }; - /** - A typedef'd packaged TMeasurementControlV7 for passing through a - generic API method. - - @internalAll - */ - typedef TPckg TMeasurementControlV7Pckg; - - //**************************************// - // Measurement Report Data structures // - //**************************************// - - - /** - This enum contains the indicators thta specify which - union members of TMeasurementQuantityV1 are included - */ - enum TMeasQnty - { - /**Measurement Quantity unknown*/ - EMeasQntyUnknown, - /**Indicates that CpichEcN0 is present*/ - EMeasQntyCpichEcN0Present, - /**Indicates that CpichRscp is present*/ - EMeasQntyCpichRscpPresent, - /**Indicates that path loss is present*/ - EMeasQntyPathLossPresent, - }; - - /** - This enum contains the indicators that specify which - union members of TPosEstimateRefTime and TPositionEstimateV1 are included - */ - enum TPosEstimateInfo - { - /**Position Estimate Info Unknown*/ - EPosEstimateInfoUnknown, - /** - NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPosEstimateRefTime - Indicates that UE positioning estimate reference time is populated - */ - EUtranGpsRefTimeResultPresent, - /**Indicates that GPS reference time is populated*/ - EGpsRefTimeOnlyPresent, - /**Indicates that cell timing is populated*/ - ECellTimingPresent, - /** - NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPositionEstimateV1. - Indicates EllipsoidPoint is populated - */ - EEllipsoidPointPresent, - /**Indicates EllipsoidPoint with uncertainty circle is populated*/ - EEllipsoidPointUncertCirclePresent, - /**Indicates EllipsoidPoint with uncertainty ellipse is populated*/ - EEllipsoidPointUncertEllipsePresent, - /**Indicates EllipsoidPoint with altitude is populated*/ - EEllipsoidPointAltitudePresent, - /**Indicates EllipsoidPoint with altitude and ellipse is populated*/ - EEllipsoidPointAltEllipsePresent, - }; - - /**This enum contains the possible types of velocity estimates*/ - enum TVelEstimate - { - /**Velocity Estimate Unknown*/ - EVelEstimateUnknown, - /**Velocity Estimate is not present*/ - EVelEstimateNotPresent, - /**Horizontal velocity is included*/ - EHorzVelPresent, - /**Horizontal and vertical velocity is included*/ - EHorzWithVertVelPresent, - /**Horizontal velocity with uncertainty is included*/ - EHorzVelWithUncertPresent, - /**Horizontal and vertical velocity with uncertainty is included*/ - EHorzWithVertVelAndUncertPresent, - }; - - /**This contains the measurement quantities of the UE*/ - union TMeasurementQuantityV1 - { - public: - /** - @see 3GPP TS 25.133. - @see 3GPP TS 25.123. - */ - TUint8 iCpichEcN0; - /** - @see 3GPP TS 25.133. - @see 3GPP TS 25.123. - */ - TUint8 iCpichRscp; - /**Measurement path loss in dB.*/ - TUint8 iPathLoss; - /**Extra for future use*/ - TBool iSpare; - }; - - /**This class contains the current cell informations in TDD mode*/ - class TTddV1 - { - public: - /** - Time slot Interference on Signal Code Power - @see 3GPP TS 25.123 - */ - TUint8 iTimeSlotIscp; - /**Primary Common Control Physical CHannel received signal code power*/ - TUint8 iPrimaryCcpchRscp; - }; - - /**This class contains the information in FDD mode*/ - class TFddV1 - { - public: - /**Holds the measurement quantities of the UE*/ - TMeasurementQuantityV1 iMeasurementQuantity; - /**Holds the field that would be populated in iMeasurementQuantity*/ - TMeasQnty iMeasQntyStatus; - }; - - /**This contains the current cell information in specific modes - FDD/TDD*/ - union TCurrentCellV1 - { - /**Current cell information in FDD mode*/ - TFddV1 iFdd; - /**Current cell information in TDD mode*/ - TTddV1 iTdd; - }; - - /**This contains the type of sfn-sfn observed time difference*/ - union TSfnSfnObsTimeDifferenceV1 - { - /**Sfn-Sfn observed time difference -type1*/ - TUint16 iSfnSfnObsTimeDiff1; - /**Sfn-Sfn observed time difference -type2*/ - TUint16 iSfnSfnObsTimeDiff2; - }; - - /**This class contains the FDD mode information of monitored cells*/ - class TMonitoredCellFddV1 - { - public: - /**Primary Common Control Physical CHannel information*/ - TUint16 iPrimaryCpichInfo; - /**Holds the measurement quantities of the UE*/ - TMeasurementQuantityV1 iMeasurementQuantity; - /**Holds the field that would be populated in iMeasurementQuantity*/ - TMeasQnty iMeasQntyStatus; - }; - - /**This class contains the TDD mode information of monitored cells*/ - class TMonitoredCellTddV1 - { - public: - /**Cell identification*/ - TUint8 iCellParametersID; - /**Primary Common Control Physical CHannel received signal code power*/ - TUint8 iPrimaryCcpchRscp; - }; - - /**This contains the monitored cells information in specific mode - FDD/TDD*/ - union TMonitoredCellModeSpecificInfoV1 - { - /**Monitored Cell information in FDD mode*/ - TMonitoredCellFddV1 iMonitoredCellFdd; - /**Monitored Cell information in TDD mode*/ - TMonitoredCellTddV1 iMonitoredCellTdd; - }; - - /**This class contains the measured results for monitored cells on Random Access Channel*/ - class TMonitoredCellRachResultV1 - { - public: - /**Holds the sfn-sfn observed time difference*/ - TSfnSfnObsTimeDifferenceV1 iSfnSfnObsTimeDiff; - /**Holds the monitored cells specific info mode - FDD/TDD*/ - TMonitoredCellModeSpecificInfoV1 iMonitoredCellModeSpecificInfo; - /**ETrue indicates iMonitoredCellModeSpecificInfo is iMonitoredCellFdd. - EFalse indicates iMonitoredCellModeSpecificInfo is iMonitoredCellTdd*/ - TBool iSfnSfnObsTimeDiffStatus; - }; - /** - Horizontal velocity is characterised by the horizontal speed and bearing. - The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. - The bearing provides the direction of the horizontal component of velocity taken clockwise from North. - @see 3GPP TS 23.032 - */ - class THorzVelocityV1 - { - public: - /**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/ - TUint16 iBearing; - /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ - TUint16 iHorzSpeed; - }; - - /**This enum holds vertical speed direction*/ - enum TVertSpeedDirection - { - /**Speed direction unknown*/ - ESpeedDirectionUnknown, - /**Upward direction*/ - EUpward, - /**Downward direction*/ - EDownward - }; - - /** - Horizontal velocity is characterised by the horizontal speed and bearing. - The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. - The vertical speed and direction provides the component of velocity of a UE in a vertical direction. - The bearing provides the direction of the horizontal component of velocity taken clockwise from North. - @see 3GPP TS 23.032 - */ - class THorzWithVertVelocityV1 - { - public: - /**Direction of vertical speed*/ - TVertSpeedDirection iVertSpeedDirection; - /**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/ - TUint16 iBearing; - /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ - TUint16 iHorzSpeed; - /**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/ - TUint8 iVertSpeed; - }; - - /** - Horizontal velocity with uncertainty is characterised by a horizontal speed and bearing, - giving a horizontal velocity vector V, and an uncertainty speed s. - @see 3GPP TS 23.032 - */ - class THorzVelocityWithUncertaintyV1 - { - public: - /** The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/ - TUint16 iBearing; - /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ - TUint16 iHorzSpeed; - /** - Horizontal speed uncertainty. - */ - TUint8 iHorzSpeedUncertainty; - }; - - /** - Horizontal and vertical velocity with uncertainty is characterised by a horizontal speed and bearing, - giving a horizontal velocity vector Vx,y, a vertical speed and direction giving a vertical velocity component Vz, - and uncertainty speeds s1 and s2. - @see 3GPP TS 23.032 - */ - class THorzWithVertVelocityAndUncertaintyV1 - { - public: - /** - The direction of movement is given in degrees where '0' represents North, '90' represents East, etc. - */ - TUint16 iBearing; - /**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/ - TUint16 iHorzSpeed; - /**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/ - TUint8 iVertSpeed; - /**Horizontal speed uncertainty.*/ - TUint8 iHorzSpeedUncertainty; - }; - - /** - This class contains the possible ways of velocity estimates - @see 3GPP TS 23.032 - */ - union TVelocityEstimateV1 - { - /**Horizontal velocity*/ - THorzVelocityV1 iHorzVelocity; - /**Horizontal velockity and vertical velocity*/ - THorzWithVertVelocityV1 iHorzWithVertVelocity; - /**Horizontal velocity with uncertainty*/ - THorzVelocityWithUncertaintyV1 iHorzVelocityWithUncertainty; - /**Horizontal and vertical velocity with uncertainty*/ - THorzWithVertVelocityAndUncertaintyV1 iHorzWithVertVelocityAndUncertainty; - }; - - /**This class contains the measured results on Random Access Channel*/ - class TMeasuredResultsOnRachV1 - { - public: - /**Current cell information*/ - TCurrentCellV1 iCurrentCell; - /**Monitored Cell information*/ - TMonitoredCellRachResultV1 iMonitoredCellsRachList[KMaxMonitoredCells]; - /**ETrue indicates iCurrentCell is iFdd. - EFalse indicates iCurrentCell is iTdd*/ - TBool iCurrentCellStatus; - }; - - /** - Identifies the channel in combination with the Midamble shift and slot number. - It is not used in 1.28 Mcps TDD and may be set to either value and should be ignored by the receiver. - */ - enum TBurstType - { - /**Burst type 1*/ - EType1, - /**Burst type 2*/ - EType2 - }; - - /**This class contains UE positioning estimates specific to TDD*/ - class TPosEstimateTddV1 - { - public: - /**Identifies the channel in combination with the Midamble shift and slot number.*/ - TBurstType iBurstType; - /**Midamble shift*/ - TUint8 iMidambleShift; - /** - This member data is present only if no IPDL scheme is configured in the reference cell. - Otherwise the slot is defined by the IPDL configuration. - */ - TUint8 iTimeSlotNumber; - /** - Cell identification - */ - TUint8 iCellParametersID; - }; - - /**This class contains UE positioning estimates specific to FDD/TDD*/ - union TPosEstimateModeSpecificInfoV1 - { - /**Identifies the reference cell for the GPS TOW-SFN relationship.*/ - TUint16 iPrimaryCpichInfo; - /**Holds the cell and channel identification*/ - TPosEstimateTddV1 iCellAndChannelID; - }; - - /**This class contains the cell timing information*/ - class TCellTimingV1 - { - public: - /** - SFN during which the position was calculated. - */ - TUint16 iSfn; - /**Holds the UE positioning estimates specific to mode - FDD or TDD*/ - TPosEstimateModeSpecificInfoV1 iPosEstimateModeSpecificInfo; - /**ETrue indicates iPosEstimateModeSpecificInfo is iPrimaryCpichInfo. - EFalse indicates iPosEstimateModeSpecificInfo is iCellAndChannelID.*/ - TBool iPosEstimateModeStatus; - }; - - /**This class captures the GPS measurement specific to FDD or TDD*/ - union TGpsMeasModeSpecificInfoV1 - { - /**Frequency Division Duplex identification*/ - TUint16 iFddRefID; - /**Time Division Duplex identification*/ - TUint8 iTddRefID; - }; - - /**This class contains results of the GPS reference time*/ - class TUtranGpsRefTimeResultV1 - { - public: - /**UE-GPS timing of cell ms-part*/ - TUint16 iMsPart; - /**UE-GPS timing of cell ls-part*/ - TUint16 iLsPart; - /**Holds the GPS measurement specific to FDD or TDD*/ - TGpsMeasModeSpecificInfoV1 iGpsMeasModeSpecificInfo; - /**Cell System Frame Number*/ - TUint16 iSfn; - /**ETrue indicates iGpsMeasModeSpecificInfo is iFddRefID. - EFalse indicates iGpsMeasModeSpecificInfo is iTddRefID*/ - TBool iGpsMeasModeStatus; - }; - - /**This union contains the UE positioning reference time*/ - union TPosReferenceTimeV1 - { - /**Contains the results of GPS reference time*/ - TUtranGpsRefTimeResultV1 iUtranGpsRefTimeResult; - /**Contains the GPS reference time*/ - TUint16 iGpsRefTimeOnly; - }; - - /** - This class contains the information of ellipsoid. - It consists of a latitude and a longitude. - @see 3GPP TS 23.032 - */ - class TEllipsoidPointV1 - { - public: - /**Specifies the sign - North/South*/ - TLatitudeSign iLatitudeSign; - /** - A north/south angular measurement of position relative to the equator, - in the meridian plane which contains the earth's rotation axis - */ - TUint16 iLatitude; - /** - An east/west angular measurement of position in relation to the Prime Meridian. - The angle between the two great circles, one being the Prime (or Greenwich) Meridian - and the other a meridian passing through the point of interest. - */ - TInt16 iLongitude; - }; - - /** - It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r - @see 3GPP TS 23.032 - */ - class TEllipsoidPointUncertCircleV1 - { - public: - /**Specifies the sign - North/South*/ - TLatitudeSign iLatitudeSign; - /** - A north/south angular measurement of position relative to the equator, - in the meridian plane which contains the earth's rotation axis - */ - TUint16 iLatitude; - /** - An east/west angular measurement of position in relation to the Prime Meridian. - The angle between the two great circles, one being the Prime (or Greenwich) Meridian - and the other a meridian passing through the point of interest. - */ - TInt16 iLongitude; - /**Uncertainty code*/ - TUint8 iUncertaintyCode; - }; - - /** - It is characterised by the co-ordinates of an ellipsoid point (the origin), - distances r1 and r2 and an angle of orientation A - @see 3GPP TS 23.032 - */ - class TEllipsoidPointUncertEllipseV1 - { - public: - /**Specifies the sign - North/South*/ - TLatitudeSign iLatitudeSign; - /** - A north/south angular measurement of position relative to the equator, - in the meridian plane which contains the earth's rotation axis - */ - TUint16 iLatitude; - /** - An east/west angular measurement of position in relation to the Prime Meridian. - The angle between the two great circles, one being the Prime (or Greenwich) Meridian - and the other a meridian passing through the point of interest. - */ - TInt16 iLongitude; - /**Uncertainty semi major axis*/ - TUint8 iUncertaintySemiMajor; - /**Uncertainty semi minor axis*/ - TUint8 iUncertaintySemiMinor; - /**Orientation of major axis*/ - TUint8 iOrientationMajorAxis; - /**The confidence by which the position of a target entity is known to be within the shape description*/ - TUint8 iConfidence; - }; - - /** - The description of an ellipsoid point with altitude is that of a point at a specified distance - above or below a point on the earth's surface. This is defined by an ellipsoid point - with the given longitude and latitude and the altitude above or below the ellipsoid point. - @see 3GPP TS 23.032 - */ - class TEllipsoidPointAltitudeV1 - { - public: - /**Specifies the sign - North/South*/ - TLatitudeSign iLatitudeSign; - /** - A north/south angular measurement of position relative to the equator, - in the meridian plane which contains the earth's rotation axis - */ - TUint16 iLatitude; - /** - An east/west angular measurement of position in relation to the Prime Meridian. - The angle between the two great circles, one being the Prime (or Greenwich) Meridian - and the other a meridian passing through the point of interest. - */ - TInt16 iLongitude; - /**Direction of altitude*/ - TAltDirection iAltDirection; - /**Degree of altitude*/ - TUint16 iAltitude; - }; - - /** - characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"), - r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A - (the "angle of the major axis") - @see 3GPP TS 23.032 - */ - class TEllipsoidPointAltitudeEllipseV1 - { - public: - /**Specifies the sign - North/South*/ - TLatitudeSign iLatitudeSign; - /** - A north/south angular measurement of position relative to the equator, - in the meridian plane which contains the earth's rotation axis - */ - TUint16 iLatitude; - /** - An east/west angular measurement of position in relation to the Prime Meridian. - The angle between the two great circles, one being the Prime (or Greenwich) Meridian - and the other a meridian passing through the point of interest. - */ - TInt16 iLongitude; - /**Direction of altitude*/ - TAltDirection iAltDirection; - /**Degree of latitude*/ - TUint16 iAltitude; - /**Uncertainty semi major axis*/ - TUint8 iUncertaintySemiMajor; - /**Uncertainty semi minor axis*/ - TUint8 iUncertaintySemiMinor; - /**Orientation of major axis*/ - TUint8 iOrientationMajorAxis; - /**The confidence by which the position of a target entity is known to be within the shape description*/ - TUint8 iConfidence; - }; - - /**This union holds the possible forms of position estimate of the UE that can be captured.*/ - union TPositionEstimateV1 - { - /** - The description of an ellipsoid point is that of a point - on the surface of the ellipsoid, and consists of a latitude and a longitude. - @see 3GPP TS 23.032 - */ - TEllipsoidPointV1 iEllipsoidPoint; - /** - It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r - @see 3GPP TS 23.032 - */ - TEllipsoidPointUncertCircleV1 iEllipsoidPointUncertCircle; - /** - It is characterised by the co-ordinates of an ellipsoid point (the origin), - distances r1 and r2 and an angle of orientation A - @see 3GPP TS 23.032 - */ - TEllipsoidPointUncertEllipseV1 iEllipsoidPointUncertEllipse; - /** - The description of an ellipsoid point with altitude is that of a point at a specified distance - above or below a point on the earth's surface. This is defined by an ellipsoid point - with the given longitude and latitude and the altitude above or below the ellipsoid point. - @see 3GPP TS 23.032 - */ - TEllipsoidPointAltitudeV1 iEllipsoidPointAltitude; - /** - characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"), - r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A - (the "angle of the major axis") - @see 3GPP TS 23.032 - */ - TEllipsoidPointAltitudeEllipseV1 iEllipsoidPointAltitudeEllipsoide; - }; - - /**This contains the positioning estimate reference time*/ - union TPosEstimateRefTime - { - /**Contains results of the GPS reference time*/ - TUtranGpsRefTimeResultV1 iUtranGpsRefTimeResult; - /**Contains the GPS reference time */ - TUint16 iGpsRefTimeOnly; - /**Contains the cell timing*/ - TCellTimingV1 iCellTiming; - }; - - /** - Provides the position estimate from the UE to the network, - if the UE is capable of determining its own position. - */ - class TUePosPositionEstimateInfoV1 - { - public: - /**UE positioning estimate reference time*/ - TPosEstimateRefTime iPosEstimateRefTime; - /**Holds the UE's position estimate - @see TPositionEstimateV1 - */ - TPositionEstimateV1 iPostionEstimate; - /**Holds the field that would be populated in iPosEstimateRefTime*/ - TPosEstimateInfo iPosEstimateRefTimeStatus; - /**Holds the field that would be populated in iPosEstimate*/ - TPosEstimateInfo iPosEstimateStatus; - }; - - /**This enum contains the multipath indicators*/ - enum TMultipathIndicator - { - /** - Multipath indicator unknown - This is an invalid indicator. - */ - EMPUnknown, - /**Not measured*/ - ENm, - /**MP error < 5m*/ - ELow, - /**5m < MP error < 43m*/ - EMedium, - /**MP error > 43m*/ - EHigh - }; - - /**This class contains the GPS measurement parameters of the UE*/ - class TGpsMeasMeasurementParamV1 - { - public: - /**Satellite Identification*/ - TUint8 iSatID; - /** - The estimate of the carrier-to-noise ratio of the received signal from the particular - satellite used in the measurement. It is given in units of dB-Hz (typical levels will - be in the range of 20 - 50 dB-Hz). - */ - TUint8 iCN0; - /** - It is the instantaneous frequency difference between the receiver's internal oscillator - and the received carrier from the satellite. Hz, scale factor 0.2. - */ - TInt16 iDoppler; - /** - Unit in GPS chips. - Whole value of the UE GPS code-phase measurement, where increasing binary values of the field - signify increasing measured pseudoranges. - */ - TUint16 iWholeGpsChips; - /** - The UE GPS code-phase measurement is divided into the fields "Whole GPS Chips" and "Fractional GPS Chips". - Scale factor 2-10 Fractional value of the UE GPS code-phase measurement. - */ - TUint16 iFractionalGpsChips; - /** - Contains the possible multipath indicators. Multipath error is usually caused by one path being bounced or - reflected. The impact on a pseudo-range measurement may be up to a few metres. In the case of carrier phase, - this is of the order of a few centimetres. - */ - TMultipathIndicator iMultipathIndicator; - /** - A distance measurement based on the correlation of a satellite's transmitted code (may be the C/A-Code or - the encrypted P-Code) and the local receiver's reference code (for that PRN satellite number), - that has not been corrected for errors in synchronisation between the transmitter's clock and the receiver's clock. - Hence a pseudo-range measurement is a time-error biased distance measurement. - */ - TUint8 iPseudorangeRmsError; - }; - - /**This class contains the GPS measurement parameters and the positioning reference time*/ - class TUePosGpsMeasurementResultsV1 - { - public: - /**UE positioning reference time*/ - TPosReferenceTimeV1 iPosGpsMeasRefTime; - /**Holds the GPS measurement parameters from all the active satellites*/ - TGpsMeasMeasurementParamV1 iGpsMeasurementParamList[KMaxSat]; - /**ETrue indicates TPosReferenceTimeV1::iUtranGpsRefTimeResult is populated. - EFalse indicates TPosReferenceTimeV1::iGpsRefTimeOnly is populated*/ - TBool iPosGpsMeasRefTimeStatus; - }; - - /** - This enum lists all the possible errors that UE can report to the network - */ - enum TPosErrorCause - { - /** - Error Cause Unknown. This is an invalid error cause and is set if the UE does not set with - any of the underlying valid error causes - */ - EErrorCauseUnknown, - /**Indicates that enought number of GPS satellites are healthy and active.*/ - ENotEnoughGpsSatellites, - /**Assistance data required to compute location of the UE is missing in the measurement control. - If the Additional data request flag is true in the measurement control only then additional assistance - data can be requested otherwise measurements need to be done using the existing assistance data - @see TGpsAddlAssistDataReqV1 - @see TUePosReportingQuantityV1 - */ - EAssistanceDataMissing, - /** - Cell Frames Timings are not accomplished - */ - ENotAccomplishedGpsTimingOfCellFrames, - /** - UE can set this error in case other than the above mentioned is encountered - */ - EUndefinedError, - /** - UE denies Location information - */ - ERequestDeniedByUser, - }; - - /** - This class contains the positioning errors that might have encountered during - measurement of location of the UE. - */ - class TUePosError - { - public: - /**Indicates the error cause encountered while computing GPS Assistance data*/ - TPosErrorCause iPosErrorCause; - /**If error cause is "Assistance Data Missing" and iAddlAssistanceDataReq is set to ETrue then - then this member shall indicate what additional assistance data is needed. - If iAddlAssistanceDataReq is set to EFalse then existing assistance data is used to compute location - information of the UE. - @see TUePosReportingQuantityV1::iAddlAssistanceDataReq*/ - TGpsAddlAssistDataReqV1 iGpsAddlAssistDataReq; - }; - - /** - This class contains the measurement results computed by the UE. - */ - class TUePosMeasuredResultsV1 - { - public: - /**The purpose of this is to provide the position estimate from the UE to the network, - if the UE is capable of determining its own position.*/ - TUePosPositionEstimateInfoV1 iUePosPositionEstimateInfo; - /**Contains the GPS measurement parameters and the positioning reference time*/ - TUePosGpsMeasurementResultsV1 iUePosGpsMeasurement; - /**Indicates the error cause and/or additional assistance data is required*/ - TUePosError iUePosError; - /** - ETrue indicates some error has encountered. iUePosError will be populated. - EFalse indicates Gps Assistance Data is received and no error has encountered while processing. - Hence iUePosPositionEstimateInfo and iUePosGpsMeasurement will be populated - */ - TBool iPosErrorStatus; - }; - - /**Contains the measured location information of the UE*/ - union TMeasuredResultsV1 - { - /** - This member either contains the measurement results or the error that might have - encountered during measurements. - */ - TUePosMeasuredResultsV1 iTUePosMeasuredResults; - /** - A spare member for future use. - */ - TBool iSpare; - }; - - /** - This class contains the measurement report expected as response to the measurement control sent by the - network. Veloctiy estimates are included if requested in measurement control. - */ - class TMeasurementReportV7 : public RMobilePhone::TMultimodeType - { - public: - IMPORT_C TMeasurementReportV7(); - public: - /**A reference number that should be used by the UTRAN when setting up, - modifying or releasing the measurement and by the UE in the measurement report. - */ - TUint8 iMeasurementIdentity; - /**Contains the measured location information of the UE*/ - TMeasuredResultsV1 iMeasuredResults; - /**Contains the measured results on Random Access Channel*/ - TMeasuredResultsOnRachV1 iMeasuredResultsOnRach; - /**Contains the velocity estimates of the UE*/ - TVelocityEstimateV1 iVelocityEstimate; - /** - Indicates the populated member in iVelocityEstimate if velocity estimate is computed. - Otherwise indicates that velocity estimate is not computed. - */ - TVelEstimate iVelEstimateStatus; - }; - /** - A typedef'd packaged TMeasurementReportV7 for passing through a - generic API method. - - @internalAll - */ - typedef TPckg TMeasurementReportV7Pckg; - - //*********************************************// - // Measurement Control Failure data structure // - //*********************************************// - - /** - This enum contains the list of errors that the UE can specify. - The Measurement control failure is caused only when the the UE - cannot initiate a measurement as instructed by the network. - */ - enum TMeasurementControlFailure - { - /** - Unknown Measurement Control Failure. - This is an invalid failure state whic will be set if the UE does not set with the - underlying valid error reasons. - */ - EControlFailureUnknown, - /**Indicates ASN1.0 encoding is incorrect*/ - EAsn1ViolationOrEncoding, - /**Messsgae type specified is not existent*/ - EMsgTypeNonExistent, - /**Message is not compatible*/ - EMsgNotCompatibleWithReceiverState, - /**Information sent cannot be understood*/ - EIeValueNotComprehend, - /**Information expected is not present*/ - EInformationElementMissing, - /*Message extension cannot be understood*/ - EMsgExtnNotComprehend - }; - - /** - This enum contains the possible domains used by MOLR - */ - enum TDomain - { - /**Packet switch domain is the default domain that will be used by Molr*/ - EPacketSwitchedDomain, - /**UE shall set the domain to Circuit switch whenever Molr is intended to use it*/ - ECircuitSwitchedDomain - }; - - IMPORT_C void NotifyMtlr(TRequestStatus& aReqStatus,TDes8& aNotifyMtlr); - IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrResponse aMtlrResponse); - IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrError aMtlrResponse); - IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrReject aMtlrResponse); - IMPORT_C void SendMolr(TRequestStatus& aReqStatus,const TDesC8& aStartMolr,TDes8& aMolrReturnResult); - IMPORT_C void NotifyMeasurementControl(TRequestStatus& aReqStatus,TDes8& aMeasurementControl); - IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TDesC8& aMeasurementReport); - IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TMeasurementControlFailure aMeasurementControlFailure); - IMPORT_C TInt SetLcsDomain(const TDomain aDomain); -private: - void ConstructL(); - void Destruct(); -private: - /** - Pointer Holder for the RMobileLocationServices sub-session requests. - */ - CMobileLocationServicesPtrHolder* iMmPtrHolder; - }; - -#endif // __ETELMM_H__ -