📄 ex_etelmm.h
字号:
// ETELMM.H
//
// Copyright (c) 2002-2003 Symbian Ltd. All rights reserved.
//
/** \file ETELMM.H
* Multimode ETel API header file.
*
* Describes the MM ETel API - classes, methods and types.
*/
#ifndef __ETELMM_H__
#define __ETELMM_H__
#include <e32base.h>
#include <s32mem.h>
#include <ETEL.h>
#include <ETELMMCS.H>
// 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(KETelIccInfoPhoneBook,"S23");
//
// Global Multimode constants and types
//
// Unique API identifier and Functional Unit constants
enum TMultimodeETelV1Api
{
KETelExtMultimodeV1=3000, // 3000 is unique reference for Multimode Etel v1.0 API
KETelFuncMobileIccAccess,
KETelFuncMobileNetwork,
KETelFuncMobileIdentity,
KETelFuncMobilePower,
KETelFuncMobileSignal,
KETelFuncMobileIndicator,
KETelFuncMobileDTMF,
KETelFuncMobileUserNetworkAccess,
KETelFuncMobileIdentityService,
KETelFuncMobileCallForwarding,
KETelFuncMobileCallBarring,
KETelFuncMobileCallWaiting,
KETelFuncMobileCallCompletion,
KETelFuncMobileAlternatingCall,
KETelFuncMobileCost,
KETelFuncMobileSecurity,
KETelFuncMobileAlternateLineService,
KETelFuncMobileMessageWaiting,
KETelFuncMobileFixedDiallingNumbers,
KETelFuncMobileDataCall,
KETelFuncMobilePrivacy,
KETelFuncMobileEmergencyCall,
KETelFuncMobileSmsMessaging,
KETelFuncMobileBroadcastMessaging,
KETelFuncMobileUssdMessaging,
KETelFuncMobileConferenceCall,
KETelFuncMobilePhonebook,
KETelFuncMobileSmsStore,
KETelFuncMobileNamStore,
KETelFuncMobileOwnNumberStore,
KETelFuncMobileEmergencyNumberStore,
KETelFuncMobileMulticall,
KETelFuncMobileNextIncomingCall,
KETelFuncMobileMultimediaCall,
KETelFuncMobileUserSignalling
};
/*********************************************************/
//
// Phone based functionality (RMobilePhone)
//
/*********************************************************/
/**
* \class RMobilePhone ETELMM.H "INC/ETELMM.H"
* \brief Provides client access to mobile phone functionality provided by TSY
*
* RMobilePhone inherits from RPhone defined in ETEL.H
*/
class CMobilePhonePtrHolder;
class RMobilePhone : public RPhone
{
public:
friend class CAsyncRetrievePhoneList;
IMPORT_C RMobilePhone();
// Global multimode types
/**
* \class TMultimodeType ETELMM.H "INC/ETELMM.H"
* \brief Base class for all the V1 parameter types defined within the API
*
*/
class TMultimodeType
{
public:
IMPORT_C TInt ExtensionId() const;
protected:
TMultimodeType();
void InternalizeL(RReadStream& aStream);
void ExternalizeL(RWriteStream& aStream) const;
protected:
TInt iExtensionId;
};
// Types used in RMobilePhone::TMobileAddress
enum TMobileTON
{
EUnknownNumber, // 0
EInternationalNumber, // 1
ENationalNumber, // 2
ENetworkSpecificNumber, // 3
ESubscriberNumber, // 4 - Also defined as "dedicated, short code" in GSM 04.08
EAlphanumericNumber, // 5
EAbbreviatedNumber // 6
};
enum TMobileNPI
{
EUnknownNumberingPlan =0,
EIsdnNumberPlan=1,
EDataNumberPlan=3,
ETelexNumberPlan=4,
EServiceCentreSpecificPlan1=5,
EServiceCentreSpecificPlan2=6,
ENationalNumberPlan=8,
EPrivateNumberPlan=9,
EERMESNumberPlan=10
};
enum
{
KMaxMobilePasswordSize=10,
KMaxMobileNameSize=32,
KMaxMobileTelNumberSize=100
};
/**
* \class TMobileAddress ETELMM.H "INC/ETELMM.H"
* \brief Defines API abstraction of a mobile telephone number
*
*/
class TMobileAddress
{
public:
IMPORT_C TMobileAddress();
void InternalizeL(RReadStream& aStream);
void ExternalizeL(RWriteStream& aStream) const;
public:
TMobileTON iTypeOfNumber;
TMobileNPI iNumberPlan;
TBuf<KMaxMobileTelNumberSize> iTelNumber;
};
// Mobile information location type
enum TMobileInfoLocation
{
EInfoLocationCache,
EInfoLocationCachePreferred,
EInfoLocationNetwork
};
// Mobile call service type
enum TMobileService
{
EServiceUnspecified,
EVoiceService,
EAuxVoiceService,
ECircuitDataService,
EPacketDataService,
EFaxService,
EShortMessageService,
EAllServices
};
// Mobile name type
typedef TBuf<KMaxMobileNameSize> TMobileName;
// Mobile password type
typedef TBuf<KMaxMobilePasswordSize> TMobilePassword;
// for use by client-side API code and TSY only
struct TClientId
{
TInt iSessionHandle;
TInt iSubSessionHandle;
};
enum TMobilePhoneModeCaps
{
KCapsGsmSupported=0x00000001,
KCapsGprsSupported=0x00000002,
KCapsAmpsSupported=0x00000004,
KCapsCdma95Supported=0x00000008,
KCapsCdma2000Supported=0x00000010,
KCapsWcdmaSupported=0x00000020
};
enum TMultimodeEtelAPIVersion
{
TMultimodeETelApiV1
};
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;
//
// MobilePhoneIccAccess functional unit
//
enum TMobilePhoneIccCaps
{
KCapsSimAccessSupported=0x00000001,
KCapsRUimAccessSupported=0x00000002,
KCapsUSimAccessSupported=0x00000004
};
IMPORT_C TInt GetIccAccessCaps(TUint32& aCaps) const;
IMPORT_C void NotifyIccAccessCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
enum TCspCallOffering
{
KCspCT=0x08,
KCspCFNRc=0x10,
KCspCFNRy=0x20,
KCspCFB=0x40,
KCspCFU=0x80
};
enum TCspCallRestriction
{
KCspBICRoam=0x08,
KCspBAIC=0x10,
KCspBOICexHC=0x20,
KCspBOIC=0x40,
KCspBOAC=0x80
};
enum TCspOtherSuppServices
{
KCspCUGOA=0x08,
KCspPrefCUG=0x10,
KCspAoC=0x20,
KCspCUG=0x40,
KCspMPTY=0x80,
};
enum TCspCallCompletion
{
KCspCCBS=0x20,
KCspCW=0x40,
KCspHOLD=0x80,
};
enum TCspTeleservices
{
KCspValidityPeriod=0x02,
KCspProtocolID=0x04,
KCspDelConf=0x08,
KCspReplyPath=0x10,
KCspSMCB=0x20,
KCspSMMO=0x40,
KCspSMMT=0x80,
};
enum TCspCPHSTeleservices
{
KCspALS=0x80
};
enum TCspCPHSFeatures
{
KCspReservedSST=0x80
};
enum TCspNumberIdentification
{
KCspCLIBlock=0x01,
KCspCLISend=0x02,
KCspCOLP=0x10,
KCspCOLR=0x20,
KCspCLIP=0x80,
};
enum TCspPhase2PlusServices
{
KCspMultipleband=0x04,
KCspMSP=0x08,
KCspVoiceBroadcast=0x10,
KCspVoiceGroupCall=0x20,
KCspHscsd=0x40,
KCspGprs=0x80
};
enum TCspValueAdded
{
KCspLanguage=0x01,
KCspData=0x04,
KCspFax=0x08,
KCspSMMOEmail=0x10,
KCspSMMOPaging=0x20,
KCspPLMNMode=0x80,
};
/**
* \class TMobilePhoneCspFileV1 ETELMM.H "INC/ETELMM.H"
* \brief Defines contents of the CSP (Customer Service Profile) on the SIM
*
*/
class TMobilePhoneCspFileV1 : public TMultimodeType
{
public:
IMPORT_C TMobilePhoneCspFileV1();
TUint8 iCallOfferingServices;
TUint8 iCallRestrictionServices;
TUint8 iOtherSuppServices;
TUint8 iCallCompletionServices;
TUint8 iTeleservices;
TUint8 iCphsTeleservices;
TUint8 iCphsFeatures;
TUint8 iNumberIdentServices;
TUint8 iPhase2PlusServices;
TUint8 iValueAddedServices;
};
typedef TPckg<TMobilePhoneCspFileV1> TMobilePhoneCspFileV1Pckg;
IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const;
IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aALSLine, TDes8& aCsp ) const;
enum TSSTServices1To8
{
KSstPin1Disable=0x01,
KSstADN=0x02,
KSstFDN=0x04,
KSstSMS=0x08,
KSstAoC=0x10,
KSstCCP=0x20,
KSstPLMNSelector=0x40
};
enum TSSTServices9To16
{
KSstMSISDN=0x01,
KSstExt1=0x02,
KSstExt2=0x04,
KSstSMSP=0x08,
KSstLND=0x10,
KSstCBMI=0x20,
KSstGID1=0x40,
KSstGID2=0x80
};
enum TSSTServices17To24
{
KSstSPName=0x01,
KSstSDN=0x02,
KSstExt3=0x04,
KSstVGCSList=0x10,
KSstVBSList=0x20,
KSsteMLPP=0x40,
KSstAnswereMLPP=0x80
};
enum TSSTServices25To32
{
KSstSmsCbDataDownload=0x01,
KSstSmsPpDataDownload=0x02,
KSstMenuSelection=0x04,
KSstCallControl=0x08,
KSstProactiveSim=0x10,
KSstCBMIRanges=0x20,
KSstBDN=0x40,
KSstExt4=0x80
};
enum TSSTServices33To40
{
KSstDepersonalisationKeys=0x01,
KSstCooperativeNetworks=0x02,
KSstSMStatusReports=0x04,
KSstNetworkIndAlerting=0x08,
KSstMoSmControlBySim=0x10,
KSstGprs=0x20,
KSstImage=0x40,
KSstSoLSA=0x80
};
enum TSSTServices41To48
{
KSstUssdStringInCallControl=0x01,
KSstRunATCommand=0x02,
KSstPlmnSelectorListWithAccessTechnology=0x04,
KSstOplmnSelectorListWithAccessTechnology=0x08,
KSstHplmnAccessTechnology=0x10,
KSstCpbcchInformation=0x20,
KSstInvestigationScan=0x40,
KSstExtendedCcp=0x80
};
enum TSSTServices49To56
{
KSstMExE=0x01,
KSstRplmnLastUsedAccessTechnology=0x02
};
enum TMobilePhoneServiceTable
{
ESIMServiceTable,
EUSIMServiceTable,
ECDMAServiceTable
};
/**
* \class TMobilePhoneServiceTableV1 ETELMM.H "INC/ETELMM.H"
* \brief Defines contents of the specified Service Table on the ICC
*
*/
class TMobilePhoneServiceTableV1 : public TMultimodeType
{
public:
IMPORT_C TMobilePhoneServiceTableV1();
TUint8 iServices1To8;
TUint8 iServices9To16;
TUint8 iServices17To24;
TUint8 iServices25To32;
TUint8 iServices33To40;
TUint8 iServices41To48;
TUint8 iServices49To56;
};
typedef TPckg<TMobilePhoneServiceTableV1> TMobilePhoneServiceTableV1Pckg;
IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const;
//
// MobilePhonePower functional unit
//
enum TMobilePhoneBatteryCaps
{
KCapsGetBatteryInfo=0x00000001,
KCapsNotifyBatteryInfoChange=0x00000002
};
IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const;
enum TMobilePhoneBatteryStatus
{
EPowerStatusUnknown,
EPoweredByBattery,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -