networkingtestandutils/networkingunittest/tdummyetel/ETELMM.H
changeset 0 af10295192d8
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     1 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // \file ETELMM.H
       
    15 // Multimode ETel API header file.
       
    16 // Describes the MM ETel API - classes, methods and types.
       
    17 // 
       
    18 //
       
    19 
       
    20 #ifndef __ETELMM_H__
       
    21 #define __ETELMM_H__
       
    22 
       
    23 #include <e32base.h>
       
    24 #include <s32mem.h>
       
    25 #include "etel.h"
       
    26 #include "ETELMMCS.H"
       
    27 
       
    28 
       
    29 /**
       
    30 Names for Multimode ETel sub-sessions
       
    31 @internalComponent
       
    32 */
       
    33 _LIT(KETelMeAdnPhoneBook,"S1");
       
    34 _LIT(KETelMeDialledPhoneBook,"S2");
       
    35 _LIT(KETelMeMissedPhoneBook,"S3");
       
    36 _LIT(KETelMeReceivedPhoneBook,"S4");
       
    37 _LIT(KETelCombinedAdnPhoneBook,"S5");
       
    38 _LIT(KETelTaAdnPhoneBook,"S6");
       
    39 _LIT(KETelIccAdnPhoneBook,"S7");
       
    40 _LIT(KETelIccFdnPhoneBook,"S8");
       
    41 _LIT(KETelIccSdnPhoneBook,"S9");
       
    42 _LIT(KETelIccBdnPhoneBook,"S10");
       
    43 _LIT(KETelIccLndPhoneBook,"S11");
       
    44 _LIT(KETelIccVoiceMailBox,"S12");
       
    45 
       
    46 _LIT(KETelMeSmsStore,"S13");
       
    47 _LIT(KETelIccSmsStore,"S14");
       
    48 _LIT(KETelCombinedSmsStore,"S15");
       
    49 
       
    50 _LIT(KETelNamStore,"S16");
       
    51 _LIT(KETelOwnNumberStore,"S17");
       
    52 _LIT(KETelEmergencyNumberStore,"S18");
       
    53 
       
    54 _LIT(KETelSmsMessaging,"S19");
       
    55 _LIT(KETelBroadcastMessaging,"S20");
       
    56 _LIT(KETelUssdMessaging,"S21");
       
    57 
       
    58 _LIT(KETelConferenceCall,"S22");
       
    59 
       
    60 /**
       
    61 Global Multimode constants and types
       
    62 
       
    63 Unique API identifier and Functional Unit constants
       
    64 @internalComponent
       
    65 */
       
    66 enum TMultimodeETelV1Api
       
    67 	{
       
    68 	KETelExtMultimodeV1=3000,  // 3000 is unique reference for Multimode Etel v1.0 API
       
    69 	KETelFuncMobileSimAccess,
       
    70 	KETelFuncMobileNetwork,
       
    71 	KETelFuncMobileIdentity,
       
    72 	KETelFuncMobilePower,
       
    73 	KETelFuncMobileSignal,
       
    74 	KETelFuncMobileIndicator,
       
    75 	KETelFuncMobileDTMF,
       
    76 	KETelFuncMobileUserNetworkAccess,
       
    77 	KETelFuncMobileIdentityService,
       
    78 	KETelFuncMobileCallForwarding,
       
    79 	KETelFuncMobileCallBarring,
       
    80 	KETelFuncMobileCallWaiting,
       
    81 	KETelFuncMobileCallCompletion,
       
    82 	KETelFuncMobileAlternatingCall,
       
    83 	KETelFuncMobileCost,
       
    84 	KETelFuncMobileSecurity,
       
    85 	KETelFuncMobileAlternateLineService,
       
    86 	KETelFuncMobileMessageWaiting,
       
    87 	KETelFuncMobileFixedDiallingNumbers,
       
    88 	KETelFuncMobileDataCall,
       
    89 	KETelFuncMobilePrivacy,
       
    90 	KETelFuncMobileEmergencyCall,
       
    91 	KETelFuncMobileSmsMessaging,
       
    92 	KETelFuncMobileBroadcastMessaging,
       
    93 	KETelFuncMobileUssdMessaging,
       
    94 	KETelFuncMobileConferenceCall,
       
    95 	KETelFuncMobilePhonebook,
       
    96 	KETelFuncMobileSmsStore,
       
    97 	KETelFuncMobileNamStore,
       
    98 	KETelFuncMobileOwnNumberStore,
       
    99 	KETelFuncMobileEmergencyNumberStore,
       
   100 	KETelFuncMobileMulticall,
       
   101 	KETelFuncMobileNextIncomingCall,
       
   102 	KETelFuncMobileMultimediaCall,
       
   103 	KETelFuncMobileUserSignalling
       
   104 	};
       
   105 
       
   106 
       
   107 /*********************************************************/
       
   108 //
       
   109 // Phone based functionality (RMobilePhone)
       
   110 // 
       
   111 /*********************************************************/
       
   112 
       
   113 class CMobilePhonePtrHolder;
       
   114 
       
   115 class RMobilePhone : public RPhone
       
   116 /**
       
   117 class RMobilePhone ETELMM.H "INC/ETELMM.H"
       
   118 brief Provides client access to mobile phone functionality provided by TSY
       
   119 RMobilePhone inherits from RPhone defined in ETEL.H
       
   120 @internalComponent
       
   121 */
       
   122 	{
       
   123 public:
       
   124 	friend class CAsyncRetrievePhoneList;
       
   125 
       
   126 	IMPORT_C RMobilePhone();
       
   127 
       
   128 	class TMultimodeType
       
   129 /**
       
   130 Global multimode types
       
   131 
       
   132 class TMultimodeType ETELMM.H "INC/ETELMM.H"
       
   133 brief Base class for all the V1 parameter types defined within the API
       
   134 @internalComponent
       
   135 */
       
   136 		{
       
   137 	public:
       
   138 		IMPORT_C TInt ExtensionId() const;
       
   139 	protected:
       
   140 		TMultimodeType();
       
   141 		void InternalizeL(RReadStream& aStream);
       
   142 		void ExternalizeL(RWriteStream& aStream) const;
       
   143 	protected:
       
   144 		TInt iExtensionId;
       
   145 		};
       
   146 
       
   147 	// Types used in RMobilePhone::TMobileAddress
       
   148 
       
   149 	enum TMobileTON
       
   150 		{
       
   151 		EUnknownNumber,			// 0
       
   152 		EInternationalNumber,	// 1
       
   153 		ENationalNumber,		// 2
       
   154 		ENetworkSpecificNumber, // 3
       
   155 		ESubscriberNumber,		// 4 - Also defined as "dedicated, short code" in GSM 04.08
       
   156 		EAlphanumericNumber,	// 5
       
   157 		EAbbreviatedNumber		// 6
       
   158 		};
       
   159 
       
   160 	enum TMobileNPI
       
   161 		{
       
   162 		EUnknownNumberingPlan =0,
       
   163 		EIsdnNumberPlan=1,		
       
   164 		EDataNumberPlan=3,		
       
   165 		ETelexNumberPlan=4,	
       
   166 		EServiceCentreSpecificPlan1=5,
       
   167 		EServiceCentreSpecificPlan2=6,
       
   168 		ENationalNumberPlan=8,
       
   169 		EPrivateNumberPlan=9,
       
   170 		EERMESNumberPlan=10
       
   171 		};
       
   172 
       
   173 	enum 
       
   174 		{
       
   175 		KMaxMobilePasswordSize=10,
       
   176 		KMaxMobileNameSize=32,
       
   177 		KMaxMobileTelNumberSize=100
       
   178 		};
       
   179 
       
   180 	class TMobileAddress
       
   181 /**
       
   182 class TMobileAddress ETELMM.H "INC/ETELMM.H"
       
   183 brief Defines API abstraction of a mobile telephone number
       
   184 @internalComponent
       
   185 */
       
   186 		{
       
   187 	public:
       
   188 		IMPORT_C TMobileAddress();
       
   189 			
       
   190 		void InternalizeL(RReadStream& aStream);
       
   191 		void ExternalizeL(RWriteStream& aStream) const;
       
   192 			
       
   193 	public:
       
   194 		TMobileTON iTypeOfNumber;
       
   195 		TMobileNPI iNumberPlan;
       
   196 		TBuf<KMaxMobileTelNumberSize> iTelNumber;
       
   197 		};
       
   198 
       
   199 	// Mobile information location type
       
   200 
       
   201 	enum TMobileInfoLocation
       
   202 		{
       
   203 		EInfoLocationCache,
       
   204 		EInfoLocationCachePreferred,
       
   205 		EInfoLocationNetwork
       
   206 		};
       
   207 
       
   208 	// Mobile call service type
       
   209 
       
   210 	enum TMobileService
       
   211 		{
       
   212 		EServiceUnspecified,
       
   213 		EVoiceService,
       
   214 		EAuxVoiceService,
       
   215 		ECircuitDataService,
       
   216 		EPacketDataService,
       
   217 		EFaxService,
       
   218 		EShortMessageService,
       
   219 		EAllServices
       
   220 		};
       
   221 
       
   222 	// Mobile name type
       
   223 
       
   224 	typedef TBuf<KMaxMobileNameSize> TMobileName;
       
   225 
       
   226 	// Mobile password type
       
   227 
       
   228 	typedef TBuf<KMaxMobilePasswordSize> TMobilePassword;
       
   229 
       
   230 	// for use by client-side API code and TSY only
       
   231 
       
   232 	struct TClientId
       
   233 		{
       
   234 		TInt iSessionHandle;
       
   235 		TInt iSubSessionHandle;
       
   236 		};
       
   237 
       
   238 	enum TMobilePhoneModeCaps
       
   239 		{
       
   240 		KCapsGsmSupported=0x00000001,
       
   241 		KCapsGprsSupported=0x00000002,
       
   242 		KCapsAmpsSupported=0x00000004
       
   243 		};
       
   244 
       
   245 	 enum TMultimodeEtelAPIVersion
       
   246 		{
       
   247 		 TMultimodeETelApiV1
       
   248 		};
       
   249 
       
   250 	IMPORT_C TInt GetMultimodeAPIVersion(TInt& aVersion) const;
       
   251 
       
   252 	IMPORT_C TInt GetMultimodeCaps(TUint32& aCaps) const;
       
   253 
       
   254 	IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aReqStatus, TDes8& aInfo, const TDesC& aStoreName) const;
       
   255 
       
   256 	//
       
   257 	// MobilePhoneSimAccess functional unit
       
   258 	//
       
   259 
       
   260 	enum TMobilePhoneIccCaps
       
   261 		{
       
   262 		KCapsSimAccessSupported=0x00000001,
       
   263 		KCapsRUimAccessSupported=0x00000002,
       
   264 		KCapsUSimAccessSupported=0x00000004
       
   265 		};
       
   266 
       
   267 	IMPORT_C TInt GetIccAccessCaps(TUint32& aCaps) const;
       
   268 	IMPORT_C void NotifyIccAccessCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
   269 
       
   270 	enum TCspCallOffering
       
   271 		{
       
   272 		KCspCT=0x08,
       
   273 		KCspCFNRc=0x10,
       
   274 		KCspCFNRy=0x20,
       
   275 		KCspCFB=0x40,
       
   276 		KCspCFU=0x80
       
   277 		};
       
   278 
       
   279 	enum TCspCallRestriction
       
   280 		{
       
   281 		KCspBICRoam=0x08,
       
   282 		KCspBAIC=0x10,
       
   283 		KCspBOICexHC=0x20,
       
   284 		KCspBOIC=0x40,
       
   285 		KCspBOAC=0x80
       
   286 		};
       
   287 
       
   288 	enum TCspOtherSuppServices
       
   289 		{
       
   290 		KCspCUGOA=0x08,
       
   291 		KCspPrefCUG=0x10,
       
   292 		KCspAoC=0x20,
       
   293 		KCspCUG=0x40,
       
   294 		KCspMPTY=0x80,
       
   295 		};
       
   296 
       
   297 	enum TCspCallCompletion
       
   298 		{
       
   299 		KCspCCBS=0x20,
       
   300 		KCspCW=0x40,
       
   301 		KCspHOLD=0x80,
       
   302 		};
       
   303 
       
   304 	enum TCspTeleservices
       
   305 		{
       
   306 		KCspValidityPeriod=0x02,
       
   307 		KCspProtocolID=0x04,
       
   308 		KCspDelConf=0x08,
       
   309 		KCspReplyPath=0x10,
       
   310 		KCspSMCB=0x20,
       
   311 		KCspSMMO=0x40,
       
   312 		KCspSMMT=0x80,
       
   313 		};
       
   314 
       
   315 	enum TCspCPHSTeleservices
       
   316 		{
       
   317 		KCspALS=0x80
       
   318 		};
       
   319 
       
   320 	enum TCspCPHSFeatures
       
   321 		{
       
   322 		KCspReservedSST=0x80
       
   323 		};
       
   324 
       
   325 	enum TCspNumberIdentification
       
   326 		{
       
   327 		KCspCLIBlock=0x01,
       
   328 		KCspCLISend=0x02,
       
   329 		KCspCOLP=0x10,
       
   330 		KCspCOLR=0x20,
       
   331 		KCspCLIP=0x80,
       
   332 		};
       
   333 
       
   334 	enum TCspPhase2PlusServices
       
   335 		{
       
   336 		KCspMultipleband=0x04,
       
   337 		KCspMSP=0x08,
       
   338 		KCspVoiceBroadcast=0x10,
       
   339 		KCspVoiceGroupCall=0x20,
       
   340 		KCspHscsd=0x40,
       
   341 		KCspGprs=0x80
       
   342 		};
       
   343 
       
   344 	enum TCspValueAdded
       
   345 		{
       
   346 		KCspLanguage=0x01,
       
   347 		KCspData=0x04,
       
   348 		KCspFax=0x08,
       
   349 		KCspSMMOEmail=0x10,
       
   350 		KCspSMMOPaging=0x20,
       
   351 		KCspPLMNMode=0x80,
       
   352 		};
       
   353 
       
   354 	class TMobilePhoneCspFileV1 : public TMultimodeType
       
   355 /**
       
   356 class TMobilePhoneCspFileV1 ETELMM.H "INC/ETELMM.H"
       
   357 brief Defines contents of the CSP (Customer Service Profile) on the SIM
       
   358 @internalComponent
       
   359 */
       
   360 		{
       
   361 	public:
       
   362 		IMPORT_C TMobilePhoneCspFileV1();
       
   363 
       
   364 		TUint8	iCallOfferingServices;
       
   365 		TUint8	iCallRestrictionServices;
       
   366 		TUint8	iOtherSuppServices;
       
   367 		TUint8	iCallCompletionServices;
       
   368 		TUint8  iTeleservices;
       
   369 		TUint8	iCphsTeleservices;
       
   370 		TUint8	iCphsFeatures;
       
   371 		TUint8	iNumberIdentServices;
       
   372 		TUint8	iPhase2PlusServices;
       
   373 		TUint8	iValueAddedServices;
       
   374 		};
       
   375 
       
   376 	typedef TPckg<TMobilePhoneCspFileV1> TMobilePhoneCspFileV1Pckg;
       
   377 
       
   378 	IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const;
       
   379 
       
   380 	enum TSSTServices1To8
       
   381 		{
       
   382 		KSstPin1Disable=0x01,
       
   383 		KSstADN=0x02,
       
   384 		KSstFDN=0x04,
       
   385 		KSstSMS=0x08,
       
   386 		KSstAoC=0x10,
       
   387 		KSstCCP=0x20,
       
   388 		KSstPLMNSelector=0x40
       
   389 		};
       
   390 
       
   391 	enum TSSTServices9To16
       
   392 		{
       
   393 		KSstMSISDN=0x01,
       
   394 		KSstExt1=0x02,
       
   395 		KSstExt2=0x04,
       
   396 		KSstSMSP=0x08,
       
   397 		KSstLND=0x10,
       
   398 		KSstCBMI=0x20,
       
   399 		KSstGID1=0x40,
       
   400 		KSstGID2=0x80
       
   401 		};
       
   402 	
       
   403 	enum TSSTServices17To24
       
   404 		{
       
   405 		KSstSPName=0x01,
       
   406 		KSstSDN=0x02,
       
   407 		KSstExt3=0x04,
       
   408 		KSstVGCSList=0x10,
       
   409 		KSstVBSList=0x20,
       
   410 		KSsteMLPP=0x40,
       
   411 		KSstAnswereMLPP=0x80
       
   412 		};
       
   413 
       
   414 	enum TSSTServices25To32
       
   415 		{
       
   416 		KSstSmsCbDataDownload=0x01,
       
   417 		KSstSmsPpDataDownload=0x02,
       
   418 		KSstMenuSelection=0x04,
       
   419 		KSstCallControl=0x08,
       
   420 		KSstProactiveSim=0x10,
       
   421 		KSstCBMIRanges=0x20,
       
   422 		KSstBDN=0x40,
       
   423 		KSstExt4=0x80
       
   424 		};
       
   425 
       
   426 	enum TSSTServices33To40
       
   427 		{
       
   428 		KSstDepersonalisationKeys=0x01,
       
   429 		KSstCooperativeNetworks=0x02,
       
   430 		KSstSMStatusReports=0x04,
       
   431 		KSstNetworkIndAlerting=0x08,
       
   432 		KSstMoSmControlBySim=0x10,
       
   433 		KSstGprs=0x20
       
   434 		};
       
   435 
       
   436 	enum TSSTServices41To48
       
   437 		{
       
   438 		KSstMExE=0x01,
       
   439 		KSstOperatorPLMNSelector=0x02,
       
   440 		KSstHPLMNSelector=0x04
       
   441 		};
       
   442 
       
   443 	
       
   444 	enum TMobilePhoneServiceTable
       
   445 		{
       
   446 		ESIMServiceTable,
       
   447 		EUSIMServiceTable
       
   448 		};
       
   449 
       
   450 	class TMobilePhoneServiceTableV1 : public TMultimodeType
       
   451 /**
       
   452 class TMobilePhoneServiceTableV1 ETELMM.H "INC/ETELMM.H"
       
   453 brief Defines contents of the specified Service Table on the ICC
       
   454 @internalComponent
       
   455 */
       
   456 		{
       
   457 	public:
       
   458 		IMPORT_C TMobilePhoneServiceTableV1();
       
   459 
       
   460 		TUint8 iServices1To8;
       
   461 		TUint8 iServices9To16;
       
   462 		TUint8 iServices17To24;
       
   463 		TUint8 iServices25To32;
       
   464 		TUint8 iServices33To40;
       
   465 		TUint8 iServices41To48;
       
   466 		};
       
   467 
       
   468 	typedef TPckg<TMobilePhoneServiceTableV1> TMobilePhoneServiceTableV1Pckg;
       
   469 
       
   470 	IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const;
       
   471 
       
   472 	//
       
   473 	// MobilePhonePower functional unit
       
   474 	//
       
   475 
       
   476 	enum TMobilePhoneBatteryCaps
       
   477 		{
       
   478 		KCapsGetBatteryInfo=0x00000001,
       
   479 		KCapsNotifyBatteryInfoChange=0x00000002
       
   480 		};
       
   481 
       
   482 	IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const; 
       
   483 
       
   484 	enum TMobilePhoneBatteryStatus
       
   485 		{
       
   486 		EPowerStatusUnknown,
       
   487 		EPoweredByBattery,
       
   488 		EBatteryConnectedButExternallyPowered,
       
   489 		ENoBatteryConnected,
       
   490 		EPowerFault
       
   491 		};
       
   492 
       
   493 	class TMobilePhoneBatteryInfoV1 : public TMultimodeType
       
   494 /**
       
   495 @internalComponent
       
   496 */
       
   497 		{
       
   498 	public:
       
   499 		IMPORT_C TMobilePhoneBatteryInfoV1();
       
   500 	public:
       
   501 		TMobilePhoneBatteryStatus iStatus;
       
   502 		TUint iChargeLevel;
       
   503 		};
       
   504 
       
   505 	IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
       
   506 	IMPORT_C void NotifyBatteryInfoChange(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
       
   507 
       
   508 	//
       
   509 	// MobilePhoneSignal functional unit
       
   510 	//
       
   511 
       
   512 	enum TMobilePhoneSignalCaps
       
   513 		{
       
   514 		KCapsGetSignalStrength=0x00000001,
       
   515 		KCapsNotifySignalStrengthChange=0x00000002
       
   516 		};
       
   517 
       
   518 	IMPORT_C TInt GetSignalCaps(TUint32& aCaps) const; 
       
   519 	IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
       
   520 	IMPORT_C void NotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
       
   521 
       
   522 	//
       
   523 	// MobilePhoneIndicator functional unit
       
   524 	//
       
   525 
       
   526 	enum TMobilePhoneIndicatorCaps
       
   527 		{
       
   528 		KCapsGetIndicator=0x00000001,
       
   529 		KCapsNotifyIndicatorChange=0x00000002
       
   530 		};
       
   531 
       
   532 	enum TMobilePhoneIndicators
       
   533 		{
       
   534 		KIndChargerConnected=0x00000001,
       
   535 		KIndNetworkAvailable=0x00000002,
       
   536 		KIndCallInProgress=0x00000004
       
   537 		};
       
   538 
       
   539 	IMPORT_C TInt GetIndicatorCaps(TUint32& aActionCaps, TUint32& aIndCaps) const; 
       
   540 	IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
       
   541 	IMPORT_C void NotifyIndicatorChange(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
       
   542 
       
   543 	//
       
   544 	// MobilePhoneIdentity functional unit
       
   545 	//
       
   546 
       
   547 	enum TMobilePhoneIdentityCaps
       
   548 		{
       
   549 		KCapsGetManufacturer=0x00000001,
       
   550 		KCapsGetModel=0x00000002,
       
   551 		KCapsGetRevision=0x00000004,
       
   552 		KCapsGetSerialNumber=0x00000008,
       
   553 		KCapsGetSubscriberId=0x00000010
       
   554 		};
       
   555 
       
   556 	IMPORT_C TInt GetIdentityCaps(TUint32& aCaps) const; 
       
   557 
       
   558 	enum {	KPhoneManufacturerIdSize=50	};
       
   559 	enum {	KPhoneModelIdSize=50 };
       
   560 	enum {	KPhoneRevisionIdSize=50	};
       
   561 	enum {	KPhoneSerialNumberSize=50 };
       
   562 	
       
   563 	class TMobilePhoneIdentityV1 : public TMultimodeType
       
   564 /**
       
   565 @internalComponent
       
   566 */
       
   567 		{
       
   568 	public:
       
   569 		IMPORT_C TMobilePhoneIdentityV1();
       
   570 	public:
       
   571 		TBuf<KPhoneManufacturerIdSize> iManufacturer;
       
   572 		TBuf<KPhoneModelIdSize> iModel;
       
   573 		TBuf<KPhoneRevisionIdSize> iRevision;
       
   574 		TBuf<KPhoneSerialNumberSize> iSerialNumber;
       
   575 		};
       
   576 
       
   577 	IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TMobilePhoneIdentityV1& aId) const;
       
   578 
       
   579 	enum {	KIMSISize = 15 };
       
   580 
       
   581 	typedef TBuf<KIMSISize> TMobilePhoneSubscriberId;
       
   582 
       
   583 	IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TMobilePhoneSubscriberId& aId) const;
       
   584 
       
   585 	//
       
   586 	// MobilePhoneDTMF functional unit
       
   587 	//
       
   588 
       
   589 	enum TMobilePhoneDTMFCaps
       
   590 		{
       
   591 		KCapsSendDTMFString=0x00000001,
       
   592 		KCapsSendDTMFSingleTone=0x00000002,
       
   593 		};
       
   594 
       
   595 	IMPORT_C TInt GetDTMFCaps(TUint32& aCaps) const; 
       
   596 	IMPORT_C void NotifyDTMFCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
   597 
       
   598 	IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const;
       
   599 	IMPORT_C TInt StartDTMFTone(TChar aTone) const;
       
   600 	IMPORT_C TInt StopDTMFTone() const;
       
   601 
       
   602 	IMPORT_C void NotifyStopInDTMFString(TRequestStatus& aRequestStatus) const;
       
   603 	IMPORT_C TInt ContinueDTMFStringSending(TBool aContinue) const;
       
   604 
       
   605 	//
       
   606 	// MobilePhoneNetwork functional unit
       
   607 	//
       
   608 
       
   609 	enum TMobilePhoneNetworkCaps
       
   610 		{
       
   611 		KCapsGetRegistrationStatus=0x00000001,
       
   612 		KCapsNotifyRegistrationStatus=0x00000002,
       
   613 		KCapsGetCurrentMode=0x00000004,
       
   614 		KCapsNotifyMode=0x00000008,
       
   615 		KCapsGetCurrentNetwork=0x00000010,
       
   616 		KCapsNotifyCurrentNetwork=0x00000020,
       
   617 		KCapsGetHomeNetwork=0x00000040,
       
   618 		KCapsGetDetectedNetworks=0x00000080,
       
   619 		KCapsManualNetworkSelection=0x00000100,
       
   620 		KCapsGetNITZInfo=0x00000200,
       
   621 		KCapsNotifyNITZInfo=0x00000400
       
   622 		};
       
   623 
       
   624 	IMPORT_C TInt GetNetworkCaps(TUint32& aCaps) const;
       
   625 
       
   626 	enum TMobilePhoneNetworkMode
       
   627 		{
       
   628 		ENetworkModeUnknown,
       
   629 		ENetworkModeUnregistered,
       
   630 		ENetworkModeGsm,
       
   631 		ENetworkModeAmps
       
   632 		};
       
   633 
       
   634 	IMPORT_C TInt GetCurrentMode(TMobilePhoneNetworkMode& aNetworkMode) const;
       
   635 	IMPORT_C void NotifyModeChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkMode& aNetworkMode) const;
       
   636 
       
   637 	enum TMobilePhoneNetworkStatus
       
   638 		{
       
   639 		ENetworkStatusUnknown,
       
   640 		ENetworkStatusAvailable,
       
   641 		ENetworkStatusCurrent,
       
   642 		ENetworkStatusForbidden
       
   643 		};
       
   644 
       
   645 	enum TMobilePhoneNetworkBandInfo
       
   646 		{
       
   647 		EBandUnknown,
       
   648 		E800BandA,
       
   649 		E800BandB,
       
   650 		E800BandC,
       
   651 		E1900BandA,
       
   652 		E1900BandB,
       
   653 		E1900BandC,
       
   654 		E1900BandD,
       
   655 		E1900BandE,
       
   656 		E1900BandF
       
   657 		};
       
   658 
       
   659 	typedef TBuf<30> TMobilePhoneNetworkDisplayTag;
       
   660 	typedef TBuf<20> TMobilePhoneNetworkLongName;		
       
   661 	typedef TBuf<10> TMobilePhoneNetworkShortName;
       
   662 
       
   663 	typedef TBuf<4> TMobilePhoneNetworkCountryCode;		// MCC in GSM and CDMA 
       
   664 	typedef TBuf<8> TMobilePhoneNetworkIdentity;		// MNC in GSM and SID or NID in CDMA 
       
   665 
       
   666 	class TMobilePhoneNetworkInfoV1 : public TMultimodeType
       
   667 /**
       
   668 class TMobilePhoneNetworkInfoV1 ETELMM.H "INC/ETELMM.H"
       
   669 brief Defines information related to a mobile phone network
       
   670 @internalComponent
       
   671 */
       
   672 		{
       
   673 	public:
       
   674 		IMPORT_C TMobilePhoneNetworkInfoV1();
       
   675 	public:
       
   676 		void InternalizeL(RReadStream& aStream);
       
   677 		void ExternalizeL(RWriteStream& aStream) const;
       
   678 	public:
       
   679 		TMobilePhoneNetworkMode iMode;
       
   680 		TMobilePhoneNetworkStatus iStatus;
       
   681 		TMobilePhoneNetworkBandInfo iBandInfo;
       
   682 		TMobilePhoneNetworkCountryCode iCountryCode;
       
   683 		TMobilePhoneNetworkIdentity iAnalogSID;
       
   684 		TMobilePhoneNetworkIdentity iNetworkId;
       
   685 		TMobilePhoneNetworkDisplayTag iDisplayTag;
       
   686 		TMobilePhoneNetworkShortName iShortName;
       
   687 		TMobilePhoneNetworkLongName iLongName;
       
   688 		};
       
   689 	
       
   690 	typedef TPckg<TMobilePhoneNetworkInfoV1>  TMobilePhoneNetworkInfoV1Pckg;
       
   691 
       
   692 	class TMobilePhoneLocationAreaV1 : public TMultimodeType
       
   693 /**
       
   694 @internalComponent
       
   695 */
       
   696 		{
       
   697 	public:
       
   698 		IMPORT_C TMobilePhoneLocationAreaV1();
       
   699 	public:
       
   700 		TBool	iAreaKnown;
       
   701 		TUint	iLocationAreaCode;
       
   702 		TUint	iCellId;
       
   703 		};
       
   704 
       
   705 	IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
       
   706 	IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
       
   707 
       
   708 	IMPORT_C void GetHomeNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
       
   709 
       
   710 	enum TMobilePhoneRegistrationStatus
       
   711 		{
       
   712 		ERegistrationUnknown,
       
   713 		ENotRegisteredNoService,
       
   714 		ENotRegisteredEmergencyOnly,
       
   715 		ENotRegisteredSearching,
       
   716 		ERegisteredBusy,
       
   717 		ERegisteredOnHomeNetwork,
       
   718 		ERegistrationDenied,
       
   719 		ERegisteredRoaming
       
   720 		};
       
   721 
       
   722 	IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
       
   723 	IMPORT_C void NotifyNetworkRegistrationStatusChange(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
       
   724 
       
   725 	enum TMobilePhoneSelectionMethod
       
   726 		{
       
   727 		ENetworkSelectionUnknown,
       
   728 		ENetworkSelectionAutomatic,
       
   729 		ENetworkSelectionManual
       
   730 		};
       
   731 
       
   732 	enum TMobilePhoneBandClass
       
   733 		{
       
   734 		ENetworkBandClassUnknown,
       
   735 		ENetworkBandClassAOnly,
       
   736 		ENetworkBandClassBOnly,
       
   737 		ENetworkBandClassAPreferred,
       
   738 		ENetworkBandClassBPreferred
       
   739 		};
       
   740 
       
   741 	enum TMobilePhoneOperation
       
   742 		{
       
   743 		ENetworkOperationUnknown,
       
   744 		ENetworkOperationAnalogOnly,
       
   745 		ENetworkOperationDigitalOnly,
       
   746 		ENetworkOperationAnalogPreferred,
       
   747 		ENetworkOperationDigitalPreferred
       
   748 		};
       
   749 
       
   750 	class TMobilePhoneNetworkSelectionV1 : public TMultimodeType
       
   751 /**
       
   752 @internalComponent
       
   753 */
       
   754 		{
       
   755 	public:
       
   756 		IMPORT_C TMobilePhoneNetworkSelectionV1();
       
   757 	public:
       
   758 		TMobilePhoneSelectionMethod	iMethod;
       
   759 		TMobilePhoneBandClass		iBandClass;
       
   760 		TMobilePhoneOperation		iOperationMode;
       
   761 		};
       
   762 
       
   763 	typedef TPckg<TMobilePhoneNetworkSelectionV1>  TMobilePhoneNetworkSelectionV1Pckg;
       
   764 
       
   765 	IMPORT_C TInt GetNetworkSelectionSetting(TDes8& aSetting) const;
       
   766 	IMPORT_C void SetNetworkSelectionSetting(TRequestStatus& aReqStatus, const TDes8& aSetting) const;
       
   767 	IMPORT_C void NotifyNetworkSelectionSettingChange(TRequestStatus& aReqStatus, TDes8& aSetting) const;
       
   768 	
       
   769 	struct TMobilePhoneNetworkManualSelection
       
   770 		{
       
   771 		TMobilePhoneNetworkCountryCode iCountry;
       
   772 		TMobilePhoneNetworkIdentity iNetwork;
       
   773 		};
       
   774 	
       
   775 	IMPORT_C void SelectNetwork(TRequestStatus& aReqStatus, TBool aIsManual, const TMobilePhoneNetworkManualSelection& aManualSelection) const;
       
   776 
       
   777 	 enum TMobilePhoneNITZCaps
       
   778 		{
       
   779 		KCapsTimeAvailable      = 0x00000001,
       
   780 		KCapsTimezoneAvailable  = 0x00000002,
       
   781 		KCapsDSTAvailable       = 0x00000004,
       
   782 		KCapsShortNameAvailable = 0x00000008,
       
   783 		KCapsLongNameAvailable  = 0x00000010
       
   784 		};
       
   785 
       
   786 	class TMobilePhoneNITZ : public TDateTime
       
   787 /**
       
   788 class TMobilePhoneNITZ ETELMM.H "INC/ETELMM.H"
       
   789 brief Defines time & date information received from a mobile phone network
       
   790 
       
   791 Used to indicate which TMobilePhoneNITZ fields are currently available
       
   792 @internalComponent
       
   793 */
       
   794 		{
       
   795 	public:
       
   796 		IMPORT_C TMobilePhoneNITZ();
       
   797 		IMPORT_C TMobilePhoneNITZ(TInt aYear, TMonth aMonth, TInt aDay, TInt aHour, TInt aMinute, TInt aSecond, TInt aMicroSecond);		
       
   798 	public:
       
   799 		TInt32	                     iNitzFieldsUsed;
       
   800 		TInt                         iTimeZone;
       
   801 		TInt	                     iDST;
       
   802 		TMobilePhoneNetworkShortName iShortNetworkId;
       
   803 		TMobilePhoneNetworkLongName	 iLongNetworkId;
       
   804 		};
       
   805 
       
   806 	IMPORT_C TInt GetNITZInfo(TMobilePhoneNITZ& aNITZInfo) const;
       
   807 	IMPORT_C void NotifyNITZInfoChange(TRequestStatus& aReqStatus, TMobilePhoneNITZ& aNITZInfo) const;
       
   808 
       
   809 	//
       
   810 	// MobilePrivacy functional unit
       
   811 	//
       
   812 
       
   813 	enum TMobilePhonePrivacy
       
   814 		{
       
   815 		EPrivacyUnspecified,
       
   816 		EPrivacyOn,
       
   817 		EPrivacyOff
       
   818 		};
       
   819 
       
   820 	IMPORT_C TInt GetDefaultPrivacy(TMobilePhonePrivacy& aSetting) const;
       
   821 	IMPORT_C void SetDefaultPrivacy(TRequestStatus& aReqStatus, TMobilePhonePrivacy aSetting) const;
       
   822 	IMPORT_C void NotifyDefaultPrivacyChange(TRequestStatus& aReqStatus, TMobilePhonePrivacy& aSetting) const;
       
   823 
       
   824 	//
       
   825 	// TSY Capabilities for supplementary call services
       
   826 	// 
       
   827 
       
   828 	enum TMobilePhoneCallServiceCaps
       
   829 		{
       
   830 		KCapsGetCFStatusCache				=0x00000001,
       
   831 		KCapsGetCFStatusNetwork				=0x00000002,
       
   832 		KCapsSetCFStatus					=0x00000004,
       
   833 		KCapsNotifyCFStatus					=0x00000008,
       
   834 		KCapsGetClipStatus					=0x00000010,
       
   835 		KCapsGetClirStatus					=0x00000020,
       
   836 		KCapsGetColpStatus					=0x00000040,
       
   837 		KCapsGetColrStatus					=0x00000080,
       
   838 		KCapsGetCnapStatus					=0x00000100,
       
   839 		KCapsGetCBStatusCache				=0x00000200,
       
   840 		KCapsGetCBStatusNetwork				=0x00000400,
       
   841 		KCapsSetCBStatus					=0x00000800,
       
   842 		KCapsNotifyCBStatus					=0x00001000,
       
   843 		KCapsChangeCBPassword				=0x00002000,
       
   844 		KCapsBarAllIncoming					=0x00004000,
       
   845 		KCapsBarIncomingRoaming				=0x00008000,
       
   846 		KCapsBarAllOutgoing					=0x00010000,
       
   847 		KCapsBarOutgoingInternational		=0x00020000,
       
   848 		KCapsBarOutgoingInternationalExHC	=0x00040000,
       
   849 		KCapsBarAllCases					=0x00080000,
       
   850 		KCapsGetCWStatusCache				=0x00100000,
       
   851 		KCapsGetCWStatusNetwork				=0x00200000,
       
   852 		KCapsSetCWStatus					=0x00400000,
       
   853 		KCapsNotifyCWStatus					=0x00800000,
       
   854 		KCapsGetCCBSStatusCache				=0x01000000,
       
   855 		KCapsGetCCBSStatusNetwork			=0x02000000,
       
   856 		KCapsDeactivateAllCCBS				=0x04000000,
       
   857 		KCapsRetrieveActiveCCBS				=0x08000000,
       
   858 		KCapsFeatureCode					=0x10000000,
       
   859 		KCapsNetworkServiceRequest			=0x20000000
       
   860 		};
       
   861 
       
   862 	IMPORT_C TInt GetCallServiceCaps(TUint32& aCaps) const;
       
   863 	IMPORT_C void NotifyCallServiceCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
   864 
       
   865 	//
       
   866 	// MobilePhoneUserNetworkAccess functional unit
       
   867 	//
       
   868 
       
   869 	enum TMobilePhoneNetworkService
       
   870 		{
       
   871 		ENetworkServiceUnspecified,
       
   872 		ECFUService,
       
   873 		ECFBService,
       
   874 		ECFNRyService,
       
   875 		ECFNRcService,
       
   876 		EDeflectToVoicemail,
       
   877 		EDeflectToNumber,
       
   878 		EDeflectToRegisteredNumber,
       
   879 		ECWService,
       
   880 		ENextCallShowCLI,
       
   881 		ENextCallHideCLI
       
   882 		};
       
   883 
       
   884 	enum TMobilePhoneServiceAction
       
   885 		{
       
   886 		EServiceActionUnspecified,
       
   887 		EServiceActionRegister,
       
   888 		EServiceActionActivate,
       
   889 		EServiceActionInvoke,
       
   890 		EServiceActionDeactivate,
       
   891 		EServiceActionErase
       
   892 		};
       
   893 
       
   894 	// API/TSY internal type
       
   895 
       
   896 	struct TNetworkServiceAndAction
       
   897 		{
       
   898 		TMobilePhoneNetworkService iService;
       
   899 		TMobilePhoneServiceAction iAction;
       
   900 		};
       
   901 	
       
   902 	IMPORT_C void ProgramFeatureCode(TRequestStatus& aReqStatus, const TDesC& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
       
   903 	IMPORT_C void GetFeatureCode(TRequestStatus& aReqStatus, TDes& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
       
   904 
       
   905 	IMPORT_C void SendNetworkServiceRequest(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
       
   906 
       
   907 	//
       
   908 	// MobilePhoneCallForwarding functional unit
       
   909 	// 
       
   910 
       
   911 	enum TMobilePhoneCFCondition
       
   912 		{
       
   913 		ECallForwardingUnspecified,
       
   914 		ECallForwardingUnconditional,
       
   915 		ECallForwardingBusy,
       
   916 		ECallForwardingNoReply,
       
   917 		ECallForwardingNotReachable,
       
   918 		ECallForwardingAllCases,			// combination of all four above cases
       
   919 		ECallForwardingAllConditionalCases	// combination of CFB, CFNRy and CFNRc
       
   920 		};
       
   921 
       
   922 	enum TMobilePhoneCFStatus
       
   923 		{
       
   924 		ECallForwardingStatusActive,
       
   925 		ECallForwardingStatusNotActive,
       
   926 		ECallForwardingStatusNotRegistered,
       
   927 		ECallForwardingStatusNotProvisioned,
       
   928 		ECallForwardingStatusNotAvailable,
       
   929 		ECallForwardingStatusUnknown
       
   930 		};
       
   931 
       
   932 	class TMobilePhoneCFInfoEntryV1 : public TMultimodeType
       
   933 /**
       
   934 class TMobilePhoneCFInfoEntryV1 ETELMM.H "INC/ETELMM.H"
       
   935 brief Defines information about the call forwarding service
       
   936 @internalComponent
       
   937 */
       
   938 		{
       
   939 	public:
       
   940 		IMPORT_C TMobilePhoneCFInfoEntryV1();
       
   941 	public:
       
   942 		void InternalizeL(RReadStream& aStream);
       
   943 		void ExternalizeL(RWriteStream& aStream) const;
       
   944 	public:
       
   945 		TMobilePhoneCFCondition iCondition;
       
   946 		TMobileService iServiceGroup;
       
   947 		TMobilePhoneCFStatus iStatus;
       
   948 		TMobileAddress iNumber;
       
   949 		TInt iTimeout; // valid for CFRNy only
       
   950 		};
       
   951 
       
   952 	IMPORT_C void NotifyCallForwardingStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCFCondition& aCondition) const;
       
   953 
       
   954 	class TMobilePhoneCFChangeV1 : public TMultimodeType
       
   955 /**
       
   956 @internalComponent
       
   957 */
       
   958 		{
       
   959 	public:
       
   960 		IMPORT_C TMobilePhoneCFChangeV1();
       
   961 	public:
       
   962 		TMobileService iServiceGroup;
       
   963 		TMobilePhoneServiceAction iAction;
       
   964 		TMobileAddress iNumber;
       
   965 		TInt iTimeout;
       
   966 		};
       
   967 
       
   968 	IMPORT_C void SetCallForwardingStatus(TRequestStatus& aReqStatus, TMobilePhoneCFCondition aCondition, const TMobilePhoneCFChangeV1& aInfo) const;
       
   969 
       
   970 	enum TMobilePhoneCFActive
       
   971 		{
       
   972 		ECFUnconditionalActive,
       
   973 		ECFConditionalActive
       
   974 		};
       
   975 
       
   976 	IMPORT_C void NotifyCallForwardingActive(TRequestStatus& aReqStatus, TMobileService& aServiceGroup, TMobilePhoneCFActive& aActiveType) const;
       
   977 
       
   978 	//
       
   979 	// Mobile Identity Service functional unit
       
   980 	// 
       
   981 
       
   982 	enum TMobilePhoneIdService
       
   983 		{
       
   984 		EIdServiceUnspecified,
       
   985 		EIdServiceCallerPresentation,
       
   986 		EIdServiceCallerRestriction,
       
   987 		EIdServiceConnectedPresentation,
       
   988 		EIdServiceConnectedRestriction,
       
   989 		EIdServiceCallerName
       
   990 		};
       
   991 
       
   992 	enum TMobilePhoneIdServiceStatus
       
   993 		{
       
   994 		EIdServiceActivePermanent,
       
   995 		EIdServiceActiveDefaultRestricted,
       
   996 		EIdServiceActiveDefaultAllowed,
       
   997 		EIdServiceNotProvisioned,
       
   998 		EIdServiceUnknown
       
   999 		};
       
  1000 
       
  1001 	// for use by client-side API code and TSY only
       
  1002 
       
  1003 	struct TIdServiceAndLocation
       
  1004 		{
       
  1005 		TMobilePhoneIdService iService;
       
  1006 		TMobileInfoLocation iLocation;
       
  1007 		};
       
  1008 
       
  1009 	IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
       
  1010 
       
  1011 	//
       
  1012 	// Mobile Call Barring Functional Unit
       
  1013 	//
       
  1014 
       
  1015 	enum TMobilePhoneCBCondition
       
  1016 		{
       
  1017 		EBarUnspecified,
       
  1018 		EBarAllIncoming,
       
  1019 		EBarIncomingRoaming,
       
  1020 		EBarAllOutgoing,
       
  1021 		EBarOutgoingInternational,
       
  1022 		EBarOutgoingInternationalExHC,
       
  1023 		EBarAllCases
       
  1024 		};
       
  1025 
       
  1026 	enum TMobilePhoneCBStatus
       
  1027 		{
       
  1028 		ECallBarringStatusActive,
       
  1029 		ECallBarringStatusNotActive,
       
  1030 		ECallBarringStatusNotProvisioned,
       
  1031 		ECallBarringStatusNotAvailable,
       
  1032 		ECallBarringStatusUnknown
       
  1033 		};
       
  1034 
       
  1035 	class TMobilePhoneCBInfoEntryV1 : public TMultimodeType
       
  1036 /**
       
  1037 class TMobilePhoneCBInfoEntryV1 ETELMM.H "INC/ETELMM.H"
       
  1038 brief Defines information about the call barring service
       
  1039 @internalComponent
       
  1040 */
       
  1041 		{
       
  1042 	public:
       
  1043 		void InternalizeL(RReadStream& aStream);
       
  1044 		void ExternalizeL(RWriteStream& aStream) const;
       
  1045 	public:
       
  1046 		IMPORT_C TMobilePhoneCBInfoEntryV1();
       
  1047 	public:
       
  1048 		TMobilePhoneCBCondition iCondition;
       
  1049 		TMobileService iServiceGroup;
       
  1050 		TMobilePhoneCBStatus iStatus;
       
  1051 		};
       
  1052 	
       
  1053 	class TMobilePhoneCBChangeV1 : public TMultimodeType
       
  1054 /**
       
  1055 @internalComponent
       
  1056 */
       
  1057 		{
       
  1058 	public:
       
  1059 		IMPORT_C TMobilePhoneCBChangeV1();
       
  1060 	public:
       
  1061 		TMobileService iServiceGroup;
       
  1062 		TMobilePhoneServiceAction iAction;
       
  1063 		TMobilePassword iPassword;
       
  1064 		};
       
  1065 
       
  1066 	IMPORT_C void SetCallBarringStatus(TRequestStatus& aReqStatus, TMobilePhoneCBCondition aCondition, const TMobilePhoneCBChangeV1& aInfo) const;
       
  1067 	IMPORT_C void NotifyCallBarringStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCBCondition& aCondition) const;
       
  1068 	
       
  1069 	class TMobilePhonePasswordChangeV1 : public TMultimodeType
       
  1070 /**
       
  1071 @internalComponent
       
  1072 */
       
  1073 		{
       
  1074 	public:
       
  1075 		IMPORT_C TMobilePhonePasswordChangeV1();
       
  1076 	public:
       
  1077 		TMobilePassword iOldPassword;
       
  1078 		TMobilePassword iNewPassword;
       
  1079 		};
       
  1080 
       
  1081 	IMPORT_C void SetCallBarringPassword(TRequestStatus& aReqStatus, const TMobilePhonePasswordChangeV1& aPassword) const;
       
  1082 
       
  1083 	//
       
  1084 	// Mobile Call Waiting Functional Unit
       
  1085 	//
       
  1086 	
       
  1087 	enum TMobilePhoneCWStatus
       
  1088 		{
       
  1089 		ECallWaitingStatusActive,
       
  1090 		ECallWaitingStatusNotActive,
       
  1091 		ECallWaitingStatusNotProvisioned,
       
  1092 		ECallWaitingStatusNotAvailable,
       
  1093 		ECallWaitingStatusUnknown
       
  1094 		};
       
  1095 
       
  1096 	class TMobilePhoneCWInfoEntryV1 : public TMultimodeType
       
  1097 /**
       
  1098 class TMobilePhoneCWInfoEntryV1 ETELMM.H "INC/ETELMM.H"
       
  1099 brief Defines information about the call waiting service
       
  1100 @internalComponent
       
  1101 */
       
  1102 		{
       
  1103 	public:
       
  1104 		void InternalizeL(RReadStream& aStream);
       
  1105 		void ExternalizeL(RWriteStream& aStream) const;
       
  1106 	public:
       
  1107 		IMPORT_C TMobilePhoneCWInfoEntryV1();
       
  1108 	public:
       
  1109 		TMobileService iServiceGroup;
       
  1110 		TMobilePhoneCWStatus iStatus;
       
  1111 		};
       
  1112 
       
  1113 	typedef TPckg<TMobilePhoneCWInfoEntryV1> TMobilePhoneCWInfoEntryV1Pckg;
       
  1114 
       
  1115 	IMPORT_C void SetCallWaitingStatus(TRequestStatus& aReqStatus, TMobileService aServiceGroup, TMobilePhoneServiceAction aAction) const;
       
  1116 	IMPORT_C void NotifyCallWaitingStatusChange(TRequestStatus& aReqStatus, TDes8& aCWStatus) const;
       
  1117 
       
  1118 	//
       
  1119 	// Mobile Call Completion Unit
       
  1120 	//
       
  1121 
       
  1122 	enum TMobilePhoneCCBSStatus
       
  1123 		{
       
  1124 		ECcbsActive,
       
  1125 		ECcbsNotActive,
       
  1126 		ECcbsNotProvisioned,
       
  1127 		ECcbsNotAvailable,
       
  1128 		ECcbsUnknown
       
  1129 		};
       
  1130 
       
  1131 	IMPORT_C void GetCCBSStatus(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
       
  1132 	IMPORT_C void NotifyCCBSStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus) const;
       
  1133 	IMPORT_C void DeactivateAllCCBS(TRequestStatus& aReqStatus) const;
       
  1134 
       
  1135 	class TMobilePhoneCCBSEntryV1 : public TMultimodeType
       
  1136 /**
       
  1137 class TMobilePhoneCCBSEntryV1 ETELMM.H "INC/ETELMM.H"
       
  1138 brief Defines information about the call completion (CCBS) service
       
  1139 @internalComponent
       
  1140 */
       
  1141 		{
       
  1142 	public:
       
  1143 		void InternalizeL(RReadStream& aStream);
       
  1144 		void ExternalizeL(RWriteStream& aStream) const;
       
  1145 	public:
       
  1146 		IMPORT_C TMobilePhoneCCBSEntryV1();
       
  1147 	public:
       
  1148 		TInt			iCcbsIndex;
       
  1149 		TMobileService	iServiceGroup;
       
  1150 		TMobileAddress	iDestination;
       
  1151 		TName			iCallName;
       
  1152 		};
       
  1153 
       
  1154 	typedef TPckg<TMobilePhoneCCBSEntryV1> TMobilePhoneCCBSEntryV1Pckg;
       
  1155 
       
  1156 	//
       
  1157 	// Mobile Alternating Call Function Unit
       
  1158 	//
       
  1159 
       
  1160 	enum TMobilePhoneAlternatingCallCaps
       
  1161 		{
       
  1162 		KCapsMOVoiceData = 0x00000001,
       
  1163 		KCapsMOVoiceThenData = 0x00000002,
       
  1164 		KCapsMOVoiceFax	= 0x00000004,
       
  1165 		KCapsMTVoiceData = 0x00000008,
       
  1166 		KCapsMTVoiceThenData = 0x00000010,
       
  1167 		KCapsMTVoiceFax = 0x00000020
       
  1168 		};
       
  1169 
       
  1170 	IMPORT_C TInt GetAlternatingCallCaps(TUint32& aCaps) const;
       
  1171 	IMPORT_C void NotifyAlternatingCallCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  1172 
       
  1173 	enum TMobilePhoneAlternatingCallMode
       
  1174 		{
       
  1175 		EAlternatingModeUnspecified,
       
  1176 		EAlternatingModeSingle,
       
  1177 		EAlternatingModeVoiceData,
       
  1178 		EAlternatingModeVoiceThenData,
       
  1179 		EAlternatingModeVoiceFax
       
  1180 		};
       
  1181 
       
  1182 	IMPORT_C TInt GetAlternatingCallMode(TMobilePhoneAlternatingCallMode& aMode, TMobileService& aFirstService) const;
       
  1183 	IMPORT_C void SetAlternatingCallMode(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode aMode, TMobileService aFirstService) const;
       
  1184 	IMPORT_C void NotifyAlternatingCallModeChange(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode& aMode,TMobileService& aFirstService) const;
       
  1185 
       
  1186 	//
       
  1187 	// Mobile Alternate Line Service Functional Unit
       
  1188 	//
       
  1189 
       
  1190 	enum TMobilePhoneALSLine
       
  1191 		{
       
  1192 		EAlternateLinePrimary,
       
  1193 		EAlternateLineAuxiliary,
       
  1194 		EAlternateLineUnknown,
       
  1195 		EAlternateLineNotAvailable
       
  1196 		};
       
  1197 
       
  1198 	IMPORT_C TInt GetALSLine(TMobilePhoneALSLine& aALSLine) const;
       
  1199 
       
  1200 	IMPORT_C void SetALSLine(TRequestStatus& aReqStatus, TMobilePhoneALSLine aALSLine) const;
       
  1201 	IMPORT_C void NotifyALSLineChange(TRequestStatus& aReqStatus, TMobilePhoneALSLine& aALSLine) const;
       
  1202 
       
  1203 	//
       
  1204 	// Mobile Cost Functional Unit
       
  1205 	//
       
  1206 
       
  1207 	enum TMobilePhoneCostCaps
       
  1208 		{
       
  1209 		KCapsCostInformation = 0x00000001,
       
  1210 		KCapsCostCharging = 0x00000002,
       
  1211 		KCapsClearCost = 0x00000004,
       
  1212 		KCapsSetMaxCost = 0x00000008,
       
  1213 		KCapsSetPuct = 0x00000010,
       
  1214 		KCapsGetCost = 0x00000020,
       
  1215 		KCapsNotifyCostChange = 0x00000040
       
  1216 		};
       
  1217 
       
  1218 	IMPORT_C TInt GetCostCaps(TUint32& aCaps) const;
       
  1219 	IMPORT_C void NotifyCostCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  1220 
       
  1221 	enum TMobilePhoneCostMeters
       
  1222 		{
       
  1223 		EClearCCM,
       
  1224 		EClearACM,
       
  1225 		EClearAll
       
  1226 		};
       
  1227 
       
  1228 	IMPORT_C void ClearCostMeter(TRequestStatus& aReqStatus, TMobilePhoneCostMeters aMeter) const;
       
  1229 	IMPORT_C void SetMaxCostMeter(TRequestStatus& aReqStatus, TUint aUnits) const;
       
  1230 
       
  1231 	
       
  1232 	class  TMobilePhonePuctV1 : public TMultimodeType
       
  1233 /**
       
  1234 class TMobilePhonePuctV1 ETELMM.H "INC/ETELMM.H"
       
  1235 brief Defines the contents of the price/unit & currency table (PUCT) on the SIM
       
  1236 @internalComponent
       
  1237 */
       
  1238 		{
       
  1239 	public:
       
  1240 		IMPORT_C TMobilePhonePuctV1();
       
  1241 	public:
       
  1242 		TReal   iPricePerUnit;
       
  1243 		TBuf<4> iCurrencyName;
       
  1244 		};
       
  1245 
       
  1246 	typedef TPckg<TMobilePhonePuctV1> TMobilePhonePuctV1Pckg;
       
  1247 	
       
  1248 	IMPORT_C void SetPuct(TRequestStatus& aReqStatus, const TDesC8& aPuct) const;
       
  1249 	
       
  1250 	enum TMobilePhoneCostService
       
  1251 		{
       
  1252 		ECostServiceUnknown,
       
  1253 		ECostServiceNotAvailable,
       
  1254 		ECostServiceAvailable,
       
  1255 		ECostServiceInformation,
       
  1256 		ECostServiceCharging
       
  1257 		};
       
  1258 
       
  1259 	class TMobilePhoneCostInfoV1 : public TMultimodeType
       
  1260 /**
       
  1261 class TMobilePhoneCostInfoV1 ETELMM.H "INC/ETELMM.H"
       
  1262 brief Defines the information related to current billing costs
       
  1263 @internalComponent
       
  1264 */
       
  1265 		{
       
  1266 	public:
       
  1267 		IMPORT_C TMobilePhoneCostInfoV1();
       
  1268 	public:
       
  1269 		TMobilePhoneCostService iService;
       
  1270 		TUint iCCM;
       
  1271 		TUint iACM;
       
  1272 		TUint iACMmax;
       
  1273 		TMobilePhonePuctV1 iPuct;
       
  1274 		};
       
  1275 
       
  1276 	typedef TPckg<TMobilePhoneCostInfoV1> TMobilePhoneCostInfoV1Pckg;
       
  1277 
       
  1278 	IMPORT_C void GetCostInfo(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
       
  1279 	IMPORT_C void NotifyCostInfoChange(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
       
  1280 
       
  1281 	//
       
  1282 	// Mobile Security Functional Unit
       
  1283 	//
       
  1284 
       
  1285 	enum TMobilePhoneSecurityCaps
       
  1286 		{
       
  1287 		KCapsLockPhone = 0x0000001,
       
  1288 		KCapsLockICC = 0x00000002,
       
  1289 		KCapsLockPhoneToICC = 0x00000004,
       
  1290 		KCapsLockPhoneToFirstICC = 0x00000008,
       
  1291 		KCapsLockOTA = 0x00000010,
       
  1292 		KCapsAccessPin1 = 0x00000020,
       
  1293 		KCapsAccessPin2 = 0x00000040,
       
  1294 		KCapsAccessPhonePassword = 0x00000080,
       
  1295 		KCapsAccessSPC = 0x00000100
       
  1296 		};
       
  1297 
       
  1298 	IMPORT_C TInt GetSecurityCaps(TUint32& aCaps) const;
       
  1299 	IMPORT_C void NotifySecurityCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  1300 
       
  1301 	enum TMobilePhoneLock
       
  1302 		{
       
  1303 		ELockPhoneDevice,
       
  1304 		ELockICC,
       
  1305 		ELockPhoneToICC,
       
  1306 		ELockPhoneToFirstICC,
       
  1307 		ELockOTA
       
  1308 		};
       
  1309 
       
  1310 	enum TMobilePhoneLockStatus
       
  1311 		{
       
  1312 		EStatusLockUnknown,
       
  1313 		EStatusLocked,
       
  1314 		EStatusUnlocked
       
  1315 		};
       
  1316 
       
  1317 	enum TMobilePhoneLockSetting
       
  1318 		{
       
  1319 		ELockSetUnknown,
       
  1320 		ELockSetEnabled,
       
  1321 		ELockSetDisabled
       
  1322 		};
       
  1323 
       
  1324 	class TMobilePhoneLockInfoV1 : public TMultimodeType
       
  1325 /**
       
  1326 class TMobilePhoneLockInfoV1 ETELMM.H "INC/ETELMM.H"
       
  1327 brief Defines the status of a phone lock
       
  1328 @internalComponent
       
  1329 */
       
  1330 		{
       
  1331 	public:
       
  1332 		IMPORT_C TMobilePhoneLockInfoV1();
       
  1333 	public:
       
  1334 		TMobilePhoneLockStatus iStatus;
       
  1335 		TMobilePhoneLockSetting iSetting;
       
  1336 		};
       
  1337 
       
  1338 	typedef TPckg<TMobilePhoneLockInfoV1> TMobilePhoneLockInfoV1Pckg;
       
  1339 
       
  1340 	IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TDes8& aLockInfo) const;
       
  1341 	IMPORT_C void NotifyLockInfoChange(TRequestStatus& aReqStatus, TMobilePhoneLock& aLock, TDes8& aLockInfo) const;
       
  1342 	IMPORT_C void SetLockSetting(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TMobilePhoneLockSetting aSetting) const;
       
  1343 
       
  1344 	enum TMobilePhoneSecurityCode
       
  1345 		{
       
  1346 		ESecurityCodePin1,
       
  1347 		ESecurityCodePin2,
       
  1348 		ESecurityCodePuk1,
       
  1349 		ESecurityCodePuk2,
       
  1350 		ESecurityCodePhonePassword,
       
  1351 		ESecurityCodeSPC
       
  1352 		};
       
  1353 
       
  1354 	IMPORT_C void ChangeSecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, const TMobilePhonePasswordChangeV1& aChange) const;
       
  1355 
       
  1356 	enum TMobilePhoneSecurityEvent
       
  1357 		{
       
  1358 		ENoICCFound,
       
  1359 		EICCTerminated,
       
  1360 		EPin1Required,
       
  1361 		EPuk1Required,
       
  1362 		EPin2Required,
       
  1363 		EPuk2Required,
       
  1364 		EPhonePasswordRequired,
       
  1365 		ESPCRequired,
       
  1366 		EPin1Verified,
       
  1367 		EPin2Verified,
       
  1368 		EPuk1Verified,
       
  1369 		EPuk2Verified,
       
  1370 		EPhonePasswordVerified,
       
  1371 		ESPCVerified
       
  1372 		};
       
  1373 
       
  1374 	IMPORT_C void NotifySecurityEvent(TRequestStatus& aReqStatus, TMobilePhoneSecurityEvent& aEvent) const;
       
  1375 
       
  1376 	// for use by client-side API code and TSY only
       
  1377 
       
  1378 	struct TCodeAndUnblockCode
       
  1379 		{
       
  1380 		TMobilePassword iCode;
       
  1381 		TMobilePassword iUnblockCode;
       
  1382 		};	
       
  1383 
       
  1384 	IMPORT_C void VerifySecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType,
       
  1385 		const TMobilePassword& aCode, const TMobilePassword& aUnblockCode) const;
       
  1386 	IMPORT_C TInt AbortSecurityCode(TMobilePhoneSecurityCode aType) const;
       
  1387 
       
  1388 
       
  1389 	class TMobilePhoneMessageWaitingV1 : public TMultimodeType
       
  1390 /**
       
  1391 MobileMessageWaiting
       
  1392 @internalComponent
       
  1393 */
       
  1394 		{
       
  1395 	public:
       
  1396 		IMPORT_C TMobilePhoneMessageWaitingV1();
       
  1397 	public:
       
  1398 		TUint8	iVoiceMsgs;
       
  1399 		TUint8	iAuxVoiceMsgs;
       
  1400 		TUint8	iDataMsgs;
       
  1401 		TUint8	iFaxMsgs;
       
  1402 		TUint8	iEmailMsgs;
       
  1403 		TUint8	iOtherMsgs;
       
  1404 		};
       
  1405 
       
  1406 	typedef TPckg<TMobilePhoneMessageWaitingV1> TMobilePhoneMessageWaitingV1Pckg;
       
  1407 
       
  1408 	IMPORT_C void GetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
       
  1409 	IMPORT_C void SetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, const TDesC8& aMsgIndicators) const;
       
  1410 	IMPORT_C void NotifyIccMessageWaitingIndicatorsChange(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
       
  1411 
       
  1412 	IMPORT_C void NotifyMessageWaiting(TRequestStatus& aReqStatus, TInt& aCount) const;
       
  1413 
       
  1414 	//
       
  1415 	// Mobile Fixed Dialling Numbers Functional Unit
       
  1416 	//
       
  1417 
       
  1418 	enum TMobilePhoneFdnStatus
       
  1419 		{
       
  1420 		EFdnNotActive,
       
  1421 		EFdnActive,
       
  1422 		EFdnPermanentlyActive,
       
  1423 		EFdnNotSupported,
       
  1424 		EFdnUnkown
       
  1425 		};
       
  1426 
       
  1427 	IMPORT_C TInt GetFdnStatus(TMobilePhoneFdnStatus& aFdnStatus) const;
       
  1428 
       
  1429 	enum TMobilePhoneFdnSetting
       
  1430 		{
       
  1431 		EFdnSetOn,
       
  1432 		EFdnSetOff
       
  1433 		};
       
  1434 
       
  1435 	IMPORT_C void SetFdnSetting(TRequestStatus& aReqStatus, TMobilePhoneFdnSetting aFdnSetting) const;
       
  1436 	IMPORT_C void NotifyFdnStatusChange(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
       
  1437 
       
  1438 
       
  1439 	class TMobilePhoneMulticallSettingsV1 : public TMultimodeType
       
  1440 /**
       
  1441 Multicall bearer settings
       
  1442 @internalComponent
       
  1443 */
       
  1444 		{
       
  1445 	public:
       
  1446 		IMPORT_C TMobilePhoneMulticallSettingsV1();
       
  1447 	public:
       
  1448 		TInt iUserMaxBearers;
       
  1449 		TInt iServiceProviderMaxBearers;
       
  1450 		TInt iNetworkSupportedMaxBearers;
       
  1451 		TInt iUESupportedMaxBearers;
       
  1452 		};
       
  1453 
       
  1454 	typedef TPckg<TMobilePhoneMulticallSettingsV1> TMobilePhoneMulticallSettingsV1Pckg;
       
  1455 
       
  1456 	IMPORT_C void GetMulticallParams(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
       
  1457 	IMPORT_C void SetMulticallParams(TRequestStatus& aReqStatus, TInt aUserMaxBearers) const;
       
  1458 	IMPORT_C void NotifyMulticallParamsChange(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
       
  1459 
       
  1460 	//
       
  1461 	// MobileNextIncomingCall Functional Unit
       
  1462 	//
       
  1463 
       
  1464 	enum TMobilePhoneIncomingCallType
       
  1465 		{
       
  1466 		EIncomingTypeNotSpecified,
       
  1467 		EIncomingVoice,
       
  1468 		EIncomingFax,
       
  1469 		EIncomingData,
       
  1470 		EIncomingMultimediaVoiceFallback,
       
  1471 		EIncomingMultimediaNoFallback
       
  1472 		};
       
  1473 
       
  1474 	IMPORT_C void GetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
       
  1475 	IMPORT_C void SetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType aCallType, TDes8& aDataParams) const;
       
  1476 	IMPORT_C void NotifyIncomingCallTypeChange(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
       
  1477 
       
  1478 	//
       
  1479 	// User-To-User Signalling Functional Unit
       
  1480 	//
       
  1481 
       
  1482 	enum TMobilePhoneUUSSetting         // UUS settings of the phone
       
  1483 		{
       
  1484 		EIncomingUUSNotSpecified,
       
  1485 		EIncomingUUSAccepted,
       
  1486 		EIncomingUUSRejected
       
  1487 		};
       
  1488 
       
  1489 	IMPORT_C void GetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
       
  1490 	IMPORT_C void SetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting aSetting) const;
       
  1491 	IMPORT_C void NotifyUUSSettingChange(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
       
  1492 
       
  1493 private:
       
  1494 	CMobilePhonePtrHolder* iMmPtrHolder;
       
  1495 	RMobilePhone(const RMobilePhone& aPhone);
       
  1496 protected:
       
  1497 	IMPORT_C void ConstructL();
       
  1498 	IMPORT_C void Destruct();
       
  1499 	};
       
  1500 
       
  1501 /*********************************************************/
       
  1502 //
       
  1503 // Phone Storage functionality (RMobilePhoneStore)
       
  1504 //
       
  1505 /*********************************************************/
       
  1506 
       
  1507 class CMobilePhoneStorePtrHolder;
       
  1508 class RMobilePhoneStore : public RTelSubSessionBase
       
  1509 /**
       
  1510 class RMobilePhoneStore ETELMM.H "INC/ETELMM.H"
       
  1511 brief Abstract class used to define common phone storage actions & types
       
  1512 RMobilePhoneStore inherits from RTelSubSessionBase defined in ETEL.H
       
  1513 Clients open one of the specialised phone store classes that are derived from RMobilePhoneStore
       
  1514 @internalComponent
       
  1515 */
       
  1516 	{
       
  1517 public:
       
  1518 	friend class CAsyncRetrieveStoreList;
       
  1519 
       
  1520 	enum TMobilePhoneStoreType
       
  1521 		{
       
  1522 		EPhoneStoreTypeUnknown,
       
  1523 		EShortMessageStore,
       
  1524 		ENamStore,
       
  1525 		EPhoneBookStore,
       
  1526 		EEmergencyNumberStore,
       
  1527 		EOwnNumberStore
       
  1528 		};
       
  1529 
       
  1530 	enum TMobilePhoneStoreCaps
       
  1531 		{
       
  1532 		KCapsWholeStore			= 0x80000000,
       
  1533 		KCapsIndividualEntry	= 0x40000000,
       
  1534 		KCapsReadAccess			= 0x20000000,
       
  1535 		KCapsWriteAccess		= 0x10000000,
       
  1536 		KCapsDeleteAll			= 0x08000000,
       
  1537 		KCapsNotifyEvent		= 0x04000000
       
  1538 		};
       
  1539 
       
  1540 	enum TMobilePhoneStoreInfoExtId
       
  1541 		{
       
  1542 		KETelMobilePhoneStoreV1=KETelExtMultimodeV1,
       
  1543 		KETelMobilePhonebookStoreV1,
       
  1544 		KETelMobileSmsStoreV1,
       
  1545 		KETelMobileNamStoreV1,
       
  1546 		KETelMobileONStoreV1,
       
  1547 		KETelMobileENStoreV1
       
  1548 		};
       
  1549 
       
  1550 
       
  1551 	class TMobilePhoneStoreInfoV1 : public RMobilePhone::TMultimodeType
       
  1552 /**
       
  1553 class TMobilePhoneStoreInfoV1 ETELMM.H "INC/ETELMM.H"
       
  1554 brief Defines information and capabilities of a phone-side store
       
  1555 @internalComponent
       
  1556 */
       
  1557 		{
       
  1558 	public:
       
  1559 		IMPORT_C TMobilePhoneStoreInfoV1();
       
  1560 
       
  1561 		TMobilePhoneStoreType		iType;
       
  1562 		TInt						iTotalEntries;
       
  1563 		TInt						iUsedEntries;
       
  1564 		TUint32						iCaps;
       
  1565 		RMobilePhone::TMobileName	iName;
       
  1566 		};
       
  1567 
       
  1568 	typedef TPckg<TMobilePhoneStoreInfoV1> TMobilePhoneStoreInfoV1Pckg;
       
  1569 
       
  1570 
       
  1571 	class TMobilePhoneStoreEntryV1 : public RMobilePhone::TMultimodeType
       
  1572 /**
       
  1573 class TMobilePhoneStoreEntryV1 ETELMM.H "INC/ETELMM.H"
       
  1574 brief Defines common contents of an entry in a phone-side store
       
  1575 @internalComponent
       
  1576 */
       
  1577 		{
       
  1578 	public:
       
  1579 
       
  1580 		enum
       
  1581 			{
       
  1582 			KIndexNotUsed = -1
       
  1583 			};
       
  1584 
       
  1585 	protected:
       
  1586 		TMobilePhoneStoreEntryV1();
       
  1587 	public:
       
  1588 		void InternalizeL(RReadStream& aStream);
       
  1589 		void ExternalizeL(RWriteStream& aStream) const;
       
  1590 	public:
       
  1591 		TInt  iIndex;
       
  1592 		};
       
  1593 
       
  1594 	IMPORT_C void GetInfo(TRequestStatus& aReqStatus, TDes8& aInfo) const;
       
  1595 
       
  1596 	IMPORT_C void Read(TRequestStatus& aReqStatus, TDes8& aEntry) const;
       
  1597 	IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aEntry) const;
       
  1598 
       
  1599 	IMPORT_C void Delete(TRequestStatus& aReqStatus, TInt aIndex) const;
       
  1600 	IMPORT_C void DeleteAll(TRequestStatus& aReqStatus) const;
       
  1601 
       
  1602 	enum TMobileStoreEvent
       
  1603 		{
       
  1604 		KStoreFull =0x00000001,
       
  1605 		KStoreHasSpace =0x00000002,
       
  1606 		KStoreEmpty =0x00000004,
       
  1607 		KStoreEntryAdded =0x00000008,
       
  1608 		KStoreEntryDeleted =0x00000010,
       
  1609 		KStoreEntryChanged =0x00000020,
       
  1610 		KStoreDoRefresh =0x00000040
       
  1611 		};
       
  1612 
       
  1613 	IMPORT_C void NotifyStoreEvent(TRequestStatus& aReqStatus, TUint32& aEvent, TInt& aIndex) const;
       
  1614 
       
  1615 protected:
       
  1616 	CMobilePhoneStorePtrHolder* iStorePtrHolder;
       
  1617 
       
  1618 protected:
       
  1619 	RMobilePhoneStore();
       
  1620 	IMPORT_C void BaseConstruct(CMobilePhoneStorePtrHolder* aPtrHolder);
       
  1621 	IMPORT_C void Destruct();
       
  1622 	};
       
  1623 
       
  1624 
       
  1625 /*********************************************************/
       
  1626 //
       
  1627 // Call based functionality (RMobileCall)
       
  1628 // 
       
  1629 /*********************************************************/
       
  1630 
       
  1631 
       
  1632 class CMobileCallPtrHolder;
       
  1633 
       
  1634 class RMobileCall : public RCall
       
  1635 /**
       
  1636 class RMobileCall ETELMM.H "INC/ETELMM.H"
       
  1637 brief Provides client access to mobile call functionality provided by TSY
       
  1638 RMobileCall inherits from RCall defined in ETEL.H
       
  1639 @internalComponent
       
  1640 */
       
  1641 	{
       
  1642 public:
       
  1643 	IMPORT_C RMobileCall();
       
  1644 
       
  1645 	//
       
  1646 	//  Mobile call parameters - used within Dial/Answer API
       
  1647 	// 
       
  1648 
       
  1649 	// used to set iExtensionId in RCall::TCallParams
       
  1650 	enum TMobileCallParamsExtensionId
       
  1651 		{
       
  1652 		KETelMobileCallParamsV1=KETelExtMultimodeV1,
       
  1653 		KETelMobileDataCallParamsV1,
       
  1654 		KETelMobileHscsdCallParamsV1
       
  1655 		};
       
  1656 
       
  1657 	enum TMobileCallIdRestriction
       
  1658 		{
       
  1659 		EIdRestrictDefault,
       
  1660 		ESendMyId,
       
  1661 		EDontSendMyId
       
  1662 		};
       
  1663 
       
  1664 	class TMobileCallCugV1 : public RMobilePhone::TMultimodeType
       
  1665 /**
       
  1666 @internalComponent
       
  1667 */
       
  1668 		{
       
  1669 	public:
       
  1670 		IMPORT_C TMobileCallCugV1();
       
  1671 	public:
       
  1672 		TBool	iExplicitInvoke;
       
  1673 		TInt	iCugIndex;
       
  1674 		TBool	iSuppressOA;
       
  1675 		TBool	iSuppressPrefCug;
       
  1676 		};
       
  1677 
       
  1678 
       
  1679 	class TMobileCallParamsV1 : public RCall::TCallParams 
       
  1680 /**
       
  1681 class TMobileCallParamsV1 ETELMM.H "INC/ETELMM.H"
       
  1682 brief Defines the parameters used for set-up of a call of any type
       
  1683 @internalComponent
       
  1684 */
       
  1685 		{
       
  1686 	public:
       
  1687 		IMPORT_C TMobileCallParamsV1();
       
  1688 	public:
       
  1689 		TMobileCallIdRestriction iIdRestrict;
       
  1690 		TMobileCallCugV1 iCug;
       
  1691 		TBool iAutoRedial;
       
  1692 		};
       
  1693 
       
  1694 	typedef TPckg<TMobileCallParamsV1> TMobileCallParamsV1Pckg;
       
  1695 
       
  1696 	//
       
  1697 	// Mobile Call Data Functional Unit
       
  1698 	//
       
  1699 
       
  1700 	enum TMobileCallDataSpeedCaps
       
  1701 		{
       
  1702 		KCapsSpeedAutobauding = 0x00000001,
       
  1703 		KCapsSpeed2400  = 0x00000002,
       
  1704 		KCapsSpeed4800  = 0x00000004,
       
  1705 		KCapsSpeed9600  = 0x00000008,
       
  1706 		KCapsSpeed14400 = 0x00000010,
       
  1707 		KCapsSpeed19200 = 0x00000020,
       
  1708 		KCapsSpeed28800 = 0x00000040,
       
  1709 		KCapsSpeed32000 = 0x00000080,
       
  1710 		KCapsSpeed33600 = 0x00000100,
       
  1711 		KCapsSpeed38400 = 0x00000200,
       
  1712 		KCapsSpeed43200 = 0x00000400,
       
  1713 		KCapsSpeed48000 = 0x00000800,
       
  1714 		KCapsSpeed56000 = 0x00001000,
       
  1715 		KCapsSpeed57600 = 0x00002000,
       
  1716 		KCapsSpeed64000 = 0x00004000,
       
  1717 		KCapsSpeedExtended = 0x80000000		
       
  1718 		};
       
  1719 
       
  1720 	enum TMobileCallDataProtocolCaps
       
  1721 		{
       
  1722 		KCapsProtocolV22bis = 0x00000001,
       
  1723 		KCapsProtocolV32 = 0x00000002,
       
  1724 		KCapsProtocolV34 = 0x00000004,
       
  1725 		KCapsProtocolV110 = 0x00000008,
       
  1726 		KCapsProtocolV120 = 0x00000010,
       
  1727 		KCapsProtocolBitTransparent = 0x00000020,
       
  1728 		KCapsProtocolX31FlagStuffing = 0x00000040,
       
  1729 		KCapsProtocolPIAFS = 0x00000080,
       
  1730 		KCapsPstnMultimediaVoiceFallback = 0x00000100,
       
  1731 		KCapsPstnMultimedia = 0x00000200,
       
  1732 		KCapsIsdnMultimedia = 0x00000400,
       
  1733 		KCapsProtocolExtended = 0x80000000
       
  1734 		};
       
  1735 
       
  1736 	enum TMobileCallDataServiceCaps
       
  1737 		{
       
  1738 		KCapsDataCircuitAsynchronous = 0x00000001,
       
  1739 		KCapsDataCircuitAsynchronousRDI = 0x00000002,
       
  1740 		KCapsDataCircuitSynchronous = 0x00000004,
       
  1741 		KCapsDataCircuitSynchronousRDI = 0x00000008,
       
  1742 		KCapsPADAsyncUDI = 0x00000010,
       
  1743 		KCapsPADAsyncRDI = 0x00000020,
       
  1744 		KCapsPacketAccessSyncUDI = 0x00000040,
       
  1745 		KCapsPacketAccessSyncRDI = 0x00000080,
       
  1746 		KCapsServiceExtended = 0x80000000
       
  1747 		};
       
  1748 
       
  1749 	enum TMobileCallDataQoSCaps
       
  1750 		{
       
  1751 		KCapsTransparent = 0x00000001,
       
  1752 		KCapsNonTransparent = 0x00000002,
       
  1753 		KCapsTransparentPreferred = 0x00000004,
       
  1754 		KCapsNonTransparentPreferred = 0x00000008
       
  1755 		};
       
  1756 
       
  1757 	enum TMobileCallAiurCodingCaps
       
  1758 		{
       
  1759 		KCapsAiurCoding48 = 0x01,
       
  1760 		KCapsAiurCoding96 = 0x04,
       
  1761 		KCapsAiurCoding144 = 0x08
       
  1762 		};
       
  1763 
       
  1764 	enum TMobileCallTchCodingsCaps
       
  1765 		{
       
  1766 		KCapsTchCoding48  = 0x00000001,
       
  1767 		KCapsTchCoding96  = 0x00000004,
       
  1768 		KCapsTchCoding144 = 0x00000008,
       
  1769 		KCapsTchCoding288 = 0x00000010,
       
  1770 		KCapsTchCoding320 = 0x00000020,
       
  1771 		KCapsTchCoding432 = 0x00000040
       
  1772 		};
       
  1773 
       
  1774 	enum TMobileCallAsymmetryCaps
       
  1775 		{
       
  1776 		KCapsAsymmetryNoPreference= 0x00000001,
       
  1777 		KCapsAsymmetryDownlink = 0x00000002,
       
  1778 		KCapsAsymmetryUplink = 0x00000004
       
  1779 		};
       
  1780 
       
  1781 	enum TMobileCallRLPVersionCaps
       
  1782 		{
       
  1783 		KCapsRLPSingleLinkVersion0 = 0x00000001,
       
  1784 		KCapsRLPSingleLinkVersion1 = 0x00000002,
       
  1785 		KCapsRLPMultiLinkVersion2  = 0x00000004
       
  1786 		};
       
  1787 
       
  1788 	enum TMobileCallV42bisCaps
       
  1789 		{
       
  1790 		KCapsV42bisTxDirection = 0x00000001,
       
  1791 		KCapsV42bisRxDirection = 0x00000002,
       
  1792 		KCapsV42bisBothDirections = 0x00000004
       
  1793 		};
       
  1794 
       
  1795 
       
  1796 	class TMobileCallDataCapsV1 : public RMobilePhone::TMultimodeType
       
  1797 /**
       
  1798 class TMobileCallDataCapsV1 ETELMM.H "INC/ETELMM.H"
       
  1799 brief Defines the capabilities of a circuit switched data call
       
  1800 @internalComponent
       
  1801 */
       
  1802 		{
       
  1803 	public:
       
  1804 		IMPORT_C TMobileCallDataCapsV1();
       
  1805 	public:
       
  1806 		TUint32	iSpeedCaps;
       
  1807 		TUint32	iProtocolCaps;
       
  1808 		TUint32	iServiceCaps;
       
  1809 		TUint32	iQoSCaps;
       
  1810 		TBool	iHscsdSupport;
       
  1811 		TInt	iMClass;
       
  1812 		TInt	iMaxRxTimeSlots;
       
  1813 		TInt	iMaxTxTimeSlots;
       
  1814 		TInt	iTotalRxTxTimeSlots;
       
  1815 		TUint32	iCodingCaps;
       
  1816 		TUint32 iAsymmetryCaps;
       
  1817 		TBool 	iUserInitUpgrade;
       
  1818 		TUint32	iRLPVersionCaps;
       
  1819 		TUint32	iV42bisCaps;
       
  1820 		};
       
  1821 
       
  1822 	typedef TPckg<TMobileCallDataCapsV1> TMobileCallDataCapsV1Pckg;
       
  1823 
       
  1824 	IMPORT_C TInt GetMobileDataCallCaps(TDes8& aCaps) const;
       
  1825 	IMPORT_C void NotifyMobileDataCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
       
  1826 
       
  1827 	enum TMobileCallDataSpeed
       
  1828 		{
       
  1829 		ESpeedUnspecified,
       
  1830 		ESpeedAutobauding,
       
  1831 		ESpeed2400,
       
  1832 		ESpeed4800,
       
  1833 		ESpeed9600,
       
  1834 		ESpeed14400,
       
  1835 		ESpeed19200,
       
  1836 		ESpeed28800,
       
  1837 		ESpeed32000,
       
  1838 		ESpeed33600,
       
  1839 		ESpeed38400,
       
  1840 		ESpeed43200,
       
  1841 		ESpeed48000,
       
  1842 		ESpeed56000,
       
  1843 		ESpeed57600,
       
  1844 		ESpeed64000
       
  1845 		};
       
  1846 
       
  1847 	enum TMobileCallDataProtocol
       
  1848 		{
       
  1849 		EProtocolUnspecified,
       
  1850 		EProtocolV22bis,
       
  1851 		EProtocolV32,
       
  1852 		EProtocolV34,
       
  1853 		EProtocolV110,
       
  1854 		EProtocolV120,
       
  1855 		EProtocolX31FlagStuffing,
       
  1856 		EProtocolPIAFS,
       
  1857 		EProtocolBitTransparent,
       
  1858 		EProtocolPstnMultimediaVoiceFallback,
       
  1859 		EProtocolPstnMultimedia,
       
  1860 		EProtocolIsdnMultimedia
       
  1861 		};
       
  1862 
       
  1863 	enum TMobileCallDataService
       
  1864 		{
       
  1865 		EServiceUnspecified,
       
  1866 		EServiceDataCircuitAsync,
       
  1867 		EServiceDataCircuitAsyncRdi,
       
  1868 		EServiceDataCircuitSync,
       
  1869 		EServiceDataCircuitSyncRdi,
       
  1870 		EServicePADAsyncUDI,
       
  1871 		EServicePADAsyncRDI,
       
  1872 		EServicePacketAccessSyncUDI,
       
  1873 		EServicePacketAccessSyncRDI
       
  1874 		};
       
  1875 
       
  1876 	enum TMobileCallDataQoS
       
  1877 		{
       
  1878 		EQoSUnspecified,
       
  1879 		EQoSTransparent,
       
  1880 		EQoSNonTransparent,
       
  1881 		EQosTransparentPreferred,
       
  1882 		EQosNonTransparentPreferred
       
  1883 		};
       
  1884 
       
  1885 	enum TMobileCallDataRLPVersion
       
  1886 		{
       
  1887 		ERLPNotRequested,
       
  1888 		ERLPSingleLinkVersion0,
       
  1889 		ERLPSingleLinkVersion1,
       
  1890 		ERLPMultiLinkVersion2
       
  1891 		};
       
  1892 
       
  1893 	enum TMobileCallDataV42bis
       
  1894 		{
       
  1895 		EV42bisNeitherDirection,
       
  1896 		EV42bisTxDirection,
       
  1897 		EV42bisRxDirection,
       
  1898 		EV42bisBothDirections
       
  1899 		};
       
  1900 
       
  1901 	
       
  1902 	class TMobileDataCallParamsV1 : public TMobileCallParamsV1
       
  1903 /**
       
  1904 class TMobileDataCallParamsV1 ETELMM.H "INC/ETELMM.H"
       
  1905 brief Defines the parameters used for setup of a circuit switched data call
       
  1906 @internalComponent
       
  1907 */
       
  1908 		{
       
  1909 	public:
       
  1910 		IMPORT_C TMobileDataCallParamsV1();
       
  1911 	public:
       
  1912 		TMobileCallDataService iService;
       
  1913 		TMobileCallDataSpeed iSpeed;
       
  1914 		TMobileCallDataProtocol iProtocol;
       
  1915 		TMobileCallDataQoS iQoS;
       
  1916 		TMobileCallDataRLPVersion iRLPVersion;
       
  1917 		TInt iModemToMSWindowSize;
       
  1918 		TInt iMSToModemWindowSize;
       
  1919 		TInt iAckTimer;
       
  1920 		TInt iRetransmissionAttempts;
       
  1921 		TInt iResequencingPeriod;
       
  1922 		TMobileCallDataV42bis iV42bisReq;
       
  1923 		TInt iV42bisCodewordsNum;
       
  1924 		TInt iV42bisMaxStringLength;
       
  1925 		};
       
  1926 
       
  1927 	typedef TPckg<TMobileDataCallParamsV1> TMobileDataCallParamsV1Pckg;
       
  1928 
       
  1929 	enum TMobileCallAiur
       
  1930 		{
       
  1931 		EAiurBpsUnspecified,
       
  1932 		EAiurBps9600,
       
  1933 		EAiurBps14400,
       
  1934 		EAiurBps19200,
       
  1935 		EAiurBps28800,
       
  1936 		EAiurBps38400,
       
  1937 		EAiurBps43200,
       
  1938 		EAiurBps57600
       
  1939 		};
       
  1940 
       
  1941 	enum TMobileCallAsymmetry
       
  1942 		{
       
  1943 		EAsymmetryNoPreference,
       
  1944 		EAsymmetryDownlink,
       
  1945 		EAsymmetryUplink
       
  1946 		};
       
  1947 
       
  1948 	enum TMobileCallTchCoding
       
  1949 		{
       
  1950 		ETchCodingUnspecified,
       
  1951 		ETchCoding48,
       
  1952 		ETchCoding96,
       
  1953 		ETchCoding144,
       
  1954 		ETchCoding288,
       
  1955 		ETchCoding320,
       
  1956 		ETchCoding432
       
  1957 		};
       
  1958 
       
  1959 	class TMobileDataRLPRangesV1 : public RMobilePhone::TMultimodeType
       
  1960 /**
       
  1961 class TMobileDataRLPRangesV1 ETELMM.H "INC/ETELMM.H"
       
  1962 brief Defines the parameters for minimum and maximum RLP parameter ranges 
       
  1963 @internalComponent
       
  1964 */
       
  1965 		{
       
  1966 	public:
       
  1967 		IMPORT_C TMobileDataRLPRangesV1();
       
  1968 	public:
       
  1969 		TInt  iIWSMax;
       
  1970 		TInt  iIWSMin;
       
  1971 		TInt  iMWSMax;
       
  1972 		TInt  iMWSMin;
       
  1973 		TInt  iT1Max;
       
  1974 		TInt  iT1Min;
       
  1975 		TInt  iN2Max;
       
  1976 		TInt  iN2Min;
       
  1977 		TInt  iT4Max;
       
  1978 		TInt  iT4Min;
       
  1979 		};
       
  1980 
       
  1981 	typedef TPckg<TMobileDataRLPRangesV1> TMobileDataRLPRangesV1Pckg;
       
  1982 
       
  1983 	IMPORT_C void GetMobileDataCallRLPRange(TRequestStatus& aReqStatus, TInt aRLPVersion, TDes8& aRLPRange) const;
       
  1984 	
       
  1985 	class TMobileHscsdCallParamsV1 : public TMobileDataCallParamsV1
       
  1986 /**
       
  1987 @internalComponent
       
  1988 */
       
  1989 		{
       
  1990 	public:
       
  1991 		IMPORT_C TMobileHscsdCallParamsV1();
       
  1992 	public:
       
  1993 		TMobileCallAiur	iWantedAiur;
       
  1994 		TInt iWantedRxTimeSlots;
       
  1995 		TInt iMaxTimeSlots;
       
  1996 		TUint iCodings;
       
  1997 		TMobileCallAsymmetry  iAsymmetry;
       
  1998 		TBool iUserInitUpgrade;
       
  1999 		};
       
  2000 
       
  2001 	typedef TPckg<TMobileHscsdCallParamsV1> TMobileHscsdCallParamsV1Pckg;
       
  2002 
       
  2003 	IMPORT_C void SetDynamicHscsdParams(TRequestStatus& aReqStatus, TMobileCallAiur aAiur, TInt aRxTimeslots) const;
       
  2004 
       
  2005 	class TMobileCallHscsdInfoV1 : public RMobilePhone::TMultimodeType
       
  2006 /**
       
  2007 @internalComponent
       
  2008 */
       
  2009 		{
       
  2010 	public:
       
  2011 		IMPORT_C TMobileCallHscsdInfoV1();
       
  2012 	public:
       
  2013 		TMobileCallAiur	iAiur;
       
  2014 		TInt iRxTimeSlots;
       
  2015 		TInt iTxTimeSlots;
       
  2016 		TMobileCallTchCoding iCodings;
       
  2017 		};
       
  2018 
       
  2019 	typedef TPckg<TMobileCallHscsdInfoV1> TMobileCallHscsdInfoV1Pckg;
       
  2020 
       
  2021 	IMPORT_C TInt GetCurrentHscsdInfo(TDes8& aHSCSDInfo) const;
       
  2022 	IMPORT_C void NotifyHscsdInfoChange(TRequestStatus& aReqStatus, TDes8& aHSCSDInfo) const;
       
  2023 
       
  2024 	//
       
  2025 	// Voice Fallback for Multimedia Calls
       
  2026 	//
       
  2027 
       
  2028 	IMPORT_C void NotifyVoiceFallback(TRequestStatus& aReqStatus, TName& aCallName) const;
       
  2029 
       
  2030 	//
       
  2031 	// Mobile Alternating Call Functional Unit
       
  2032 	//
       
  2033 
       
  2034 	IMPORT_C void SwitchAlternatingCall(TRequestStatus& aReqStatus) const;
       
  2035 	IMPORT_C void NotifyAlternatingCallSwitch(TRequestStatus& aReqStatus) const;
       
  2036 
       
  2037 	//
       
  2038 	// MobileCallControl functional unit
       
  2039 	//
       
  2040 
       
  2041 	enum TMobileCallControlCaps 
       
  2042 		{
       
  2043 		//KCapsData=0x00000001, // taken from etel.h
       
  2044 		//KCapsFax=0x00000002,
       
  2045 		//KCapsVoice=0x00000004,
       
  2046 		//KCapsDial=0x00000008,
       
  2047 		//KCapsConnect=0x00000010,
       
  2048 		//KCapsHangUp=0x00000020,
       
  2049 		//KCapsAnswer=0x00000040,
       
  2050 		//KCapsLoanDataPort=0x00000080, 
       
  2051 		//KCapsRecoverDataPort=0x00000100
       
  2052 		KCapsHold = 0x00000200,
       
  2053 		KCapsResume = 0x00000400,
       
  2054 		KCapsSwap = 0x00000800,
       
  2055 		KCapsDeflect = 0x00001000,
       
  2056 		KCapsTransfer = 0x00002000,
       
  2057 		KCapsJoin = 0x00004000,
       
  2058 		KCapsOneToOne = 0x00008000,
       
  2059 		KCapsActivateCCBS = 0x00010000,
       
  2060 		KCapsDeactivateCCBS = 0x00020000,
       
  2061 		KCapsSwitchAlternatingCall = 0x00040000
       
  2062 		};
       
  2063 
       
  2064 
       
  2065 	enum TMobileCallEventCaps
       
  2066 		{
       
  2067 		KCapsLocalHold = 0x00000001,
       
  2068 		KCapsLocalResume = 0x00000002,
       
  2069 		KCapsLocalDeflectCall = 0x00000004,
       
  2070 		KCapsLocalTransfer = 0x00000008,
       
  2071 		KCapsRemoteHold = 0x00000010,
       
  2072 		KCapsRemoteResume = 0x00000020,
       
  2073 		KCapsRemoteTerminate = 0x00000040,
       
  2074 		KCapsRemoteConferenceCreate = 0x00000080
       
  2075 		};
       
  2076 
       
  2077 	class TMobileCallCapsV1 : public RMobilePhone::TMultimodeType
       
  2078 /**
       
  2079 class TMobileCallCapsV1 ETELMM.H "INC/ETELMM.H"
       
  2080 brief Defines the dynamic capabilities of a mobile call
       
  2081 @internalComponent
       
  2082 */
       
  2083 		{
       
  2084 	public:
       
  2085 		IMPORT_C TMobileCallCapsV1();
       
  2086 	public:
       
  2087 		TUint32 iCallControlCaps;
       
  2088 		TUint32 iCallEventCaps;
       
  2089 		};
       
  2090 
       
  2091 	typedef TPckg<TMobileCallCapsV1> TMobileCallCapsV1Pckg;
       
  2092 
       
  2093 	IMPORT_C TInt GetMobileCallCaps(TDes8& aCaps) const;
       
  2094 	IMPORT_C void NotifyMobileCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
       
  2095 
       
  2096 	IMPORT_C void Hold(TRequestStatus& aReqStatus) const;
       
  2097 	IMPORT_C void Resume(TRequestStatus& aReqStatus) const;
       
  2098 	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
       
  2099 
       
  2100 	enum TMobileCallDeflect
       
  2101 		{
       
  2102 		EDeflectUnspecified,
       
  2103 		EDeflectVoicemail,
       
  2104 		EDeflectRegisteredNumber,
       
  2105 		EDeflectSuppliedNumber
       
  2106 		};
       
  2107 
       
  2108 	IMPORT_C void Deflect(TRequestStatus& aReqStatus, TMobileCallDeflect aDeflectType, const RMobilePhone::TMobileAddress& aDestination) const;
       
  2109 	IMPORT_C void Transfer(TRequestStatus& aReqStatus) const;
       
  2110 	IMPORT_C void GoOneToOne(TRequestStatus& aReqStatus) const;
       
  2111 
       
  2112 	enum TMobileCallEvent
       
  2113 		{
       
  2114 		ELocalHold,
       
  2115 		ELocalResume,
       
  2116 		ELocalDeflectCall,
       
  2117 		ELocalTransfer,
       
  2118 		ERemoteHold,
       
  2119 		ERemoteResume,
       
  2120 		ERemoteTerminated,
       
  2121 		ERemoteConferenceCreate
       
  2122 		};
       
  2123 
       
  2124 	IMPORT_C void NotifyCallEvent(TRequestStatus& aReqStatus, TMobileCallEvent& aEvent) const;
       
  2125 
       
  2126 	enum TMobileCallStatus
       
  2127 		{
       
  2128 		EStatusUnknown,			// same as RCall::EStatusUnknown
       
  2129 		EStatusIdle,			// same as RCall::EStatusIdle
       
  2130 		EStatusDialling,		// same as RCall::EStatusDialling
       
  2131 		EStatusRinging,			// same as RCall::EStatusRinging
       
  2132 		EStatusAnswering,		// same as RCall::EStatusAnswering
       
  2133 		EStatusConnecting,		// same as RCall::EStatusConnecting
       
  2134 		EStatusConnected,		// same as RCall::EStatusConnected
       
  2135 		EStatusDisconnecting,	// same as RCall::EStatusHangingUp
       
  2136 		EStatusDisconnectingWithInband,
       
  2137 		EStatusReconnectPending,
       
  2138 		EStatusHold,
       
  2139 		EStatusWaitingCcbsRecall,
       
  2140 		EStatusRingingCcbsRecall,
       
  2141 		EStatusWaitingAlternatingCallSwitch
       
  2142 		};
       
  2143 
       
  2144 	IMPORT_C TInt GetMobileCallStatus(TMobileCallStatus& aStatus) const;
       
  2145 	IMPORT_C void NotifyMobileCallStatusChange(TRequestStatus& aReqStatus, TMobileCallStatus& aStatus) const;
       
  2146 
       
  2147 	//
       
  2148 	// MobilePrivacy functional unit
       
  2149 	//
       
  2150 
       
  2151 	IMPORT_C TInt SetPrivacy(RMobilePhone::TMobilePhonePrivacy aPrivacySetting) const;
       
  2152 	IMPORT_C void NotifyPrivacyConfirmation(TRequestStatus& aReqStatus, RMobilePhone::TMobilePhonePrivacy& aPrivacySetting) const;
       
  2153 
       
  2154 	//
       
  2155 	// MobileTrafficChannel function unit
       
  2156 	//
       
  2157 
       
  2158 	enum TMobileCallTch
       
  2159 		{
       
  2160 		ETchUnknown,
       
  2161 		ETchDigital,
       
  2162 		ETchAnalog
       
  2163 		};
       
  2164 
       
  2165 	IMPORT_C TInt SetTrafficChannel(TMobileCallTch aTchRequest) const;
       
  2166 	IMPORT_C void NotifyTrafficChannelConfirmation(TRequestStatus& aReqStatus, TMobileCallTch& aTchType) const;
       
  2167 
       
  2168 	//
       
  2169 	// MobileCallInformation functional unit
       
  2170 	// 
       
  2171 
       
  2172 	enum TMobileCallRemoteIdentityStatus
       
  2173 		{
       
  2174 		ERemoteIdentityUnknown,
       
  2175 		ERemoteIdentityAvailable,
       
  2176 		ERemoteIdentitySuppressed
       
  2177 		};
       
  2178 
       
  2179 	enum TMobileCallDirection
       
  2180 		{
       
  2181 		EDirectionUnknown,
       
  2182 		EMobileOriginated,
       
  2183 		EMobileTerminated
       
  2184 		};
       
  2185 
       
  2186 	enum { KCallingNameSize=80 };
       
  2187 
       
  2188 	class TMobileCallRemotePartyInfoV1 : public RMobilePhone::TMultimodeType
       
  2189 /**
       
  2190 class TMobileCallRemotePartyInfoV1 ETELMM.H "INC/ETELMM.H"
       
  2191 brief Defines information about the remote party of a mobile call
       
  2192 @internalComponent
       
  2193 */
       
  2194 		{
       
  2195 	public:
       
  2196 		IMPORT_C TMobileCallRemotePartyInfoV1();
       
  2197 	public:
       
  2198 		TMobileCallRemoteIdentityStatus iRemoteIdStatus;
       
  2199 		TMobileCallDirection iDirection;
       
  2200 		RMobilePhone::TMobileAddress iRemoteNumber;
       
  2201 		TBuf<KCallingNameSize> iCallingName;
       
  2202 		};
       
  2203 
       
  2204 	typedef TPckg<TMobileCallRemotePartyInfoV1> TMobileCallRemotePartyInfoV1Pckg;
       
  2205 
       
  2206 	IMPORT_C void NotifyRemotePartyInfoChange(TRequestStatus& aReqStatus, TDes8& aRemotePartyInfo) const;
       
  2207 
       
  2208 	enum TMobileCallInfoFlags
       
  2209 		{
       
  2210 		KCallStartTime		= 0x00000001,
       
  2211 		KCallDuration		= 0x00000002,
       
  2212 		KCallId				= 0x00000004,
       
  2213 		KCallRemoteParty	= 0x00000008,
       
  2214 		KCallDialledParty	= 0x00000010,
       
  2215 		KCallExitCode		= 0x00000020,
       
  2216 		KCallEmergency		= 0x00000040,
       
  2217 		KCallForwarded		= 0x00000080,
       
  2218 		KCallPrivacy		= 0x00000100,
       
  2219 		KCallTch			= 0x00000200,
       
  2220 		KCallAlternating	= 0x00000400
       
  2221 		};
       
  2222 
       
  2223 	class TMobileCallInfoV1 : public RMobilePhone::TMultimodeType
       
  2224 /**
       
  2225 class TMobileCallInfoV1 ETELMM.H "INC/ETELMM.H"
       
  2226 brief Defines general information about a mobile call
       
  2227 @internalComponent
       
  2228 */
       
  2229 		{
       
  2230 	public:
       
  2231 		IMPORT_C TMobileCallInfoV1();
       
  2232 	public:
       
  2233 		TUint32 iValid;
       
  2234 		RMobilePhone::TMobileService iService;
       
  2235 		TMobileCallStatus iStatus;
       
  2236 		TInt iCallId;
       
  2237 		TInt iExitCode;
       
  2238 		TBool iEmergency;
       
  2239 		TBool iForwarded;
       
  2240 		RMobilePhone::TMobilePhonePrivacy iPrivacy;
       
  2241 		RMobilePhone::TMobilePhoneAlternatingCallMode iAlternatingCall;
       
  2242 		TTimeIntervalSeconds iDuration;
       
  2243 		TMobileCallTch iTch;
       
  2244 		TMobileCallRemotePartyInfoV1 iRemoteParty;
       
  2245 		RMobilePhone::TMobileAddress iDialledParty;
       
  2246 		TDateTime iStartTime;
       
  2247 		TName iCallName;
       
  2248 		TName iLineName;
       
  2249 		};
       
  2250 
       
  2251 	typedef TPckg<TMobileCallInfoV1> TMobileCallInfoV1Pckg;
       
  2252 
       
  2253 	IMPORT_C TInt GetMobileCallInfo(TDes8& aCallInfo) const;
       
  2254 	
       
  2255 	//
       
  2256 	// MobileCallEmergency functional unit
       
  2257 	// 
       
  2258 
       
  2259 	IMPORT_C void DialEmergencyCall(TRequestStatus& aReqStatus, const TDesC& aNumber) const;
       
  2260 
       
  2261 	//
       
  2262 	// MobileCallCompletion
       
  2263 	//
       
  2264 
       
  2265 	IMPORT_C void ActivateCCBS(TRequestStatus& aReqStatus) const;
       
  2266 	IMPORT_C TInt RejectCCBS() const;
       
  2267 	IMPORT_C void AcceptCCBSRecall(TRequestStatus& aReqStatus) const;
       
  2268 	IMPORT_C void DeactivateCCBS(TRequestStatus& aReqStatus) const;
       
  2269 
       
  2270 	//
       
  2271 	// User-To-User Signalling Functional Unit
       
  2272 	//
       
  2273 
       
  2274 	enum TMobileCallUUSCaps			// UUS capabilities of the call
       
  2275 		{
       
  2276 		KCapsSetupUUS1Implicit=0x00000001,
       
  2277 		KCapsSetupUUS1Explicit=0x00000002,
       
  2278 		KCapsSetupUUS2=0x00000004,
       
  2279 		KCapsSetupUUS3=0x00000008,
       
  2280 		KCapsSetupMultipleUUS=0x00000010,
       
  2281 		KCapsActiveUUS1=0x00000020,
       
  2282 		KCapsActiveUUS2=0x00000040,
       
  2283 		KCapsActiveUUS3=0x00000080
       
  2284 		};
       
  2285 
       
  2286 	IMPORT_C TInt GetUUSCaps(TUint32& aCaps) const;
       
  2287 	IMPORT_C void NotifyUUSCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  2288 
       
  2289 	enum TMobileCallUUSReqs			// UUS Service requests
       
  2290 		{
       
  2291 		KUUS1Implicit=0x00000001,
       
  2292 		KUUS1ExplicitRequested=0x00000002,
       
  2293 		KUUS1ExplicitRequired=0x00000004,
       
  2294 		KUUS2Requested=0x00000008,
       
  2295 		KUUS2Required=0x00000010,
       
  2296 		KUUS3Requested=0x00000020,
       
  2297 		KUUS3Required=0x00000040
       
  2298 		};
       
  2299 
       
  2300 	enum 
       
  2301 		{
       
  2302 		KMaxUUISize = 129,
       
  2303 		};
       
  2304 
       
  2305 	typedef TBuf<KMaxUUISize> TMobileCallUUI;
       
  2306 
       
  2307 	class  TMobileCallUUSRequestV1 : public RMobilePhone::TMultimodeType
       
  2308 /**
       
  2309 @internalComponent
       
  2310 */
       
  2311 		{
       
  2312 	public:
       
  2313 		IMPORT_C  TMobileCallUUSRequestV1();
       
  2314 	public:
       
  2315 		TUint             iServiceReq;
       
  2316 		TMobileCallUUI	  iUUI;
       
  2317 		};
       
  2318 	
       
  2319 	typedef TPckg<TMobileCallUUSRequestV1> TMobileCallUUSRequestV1Pckg;
       
  2320 
       
  2321 	IMPORT_C void ActivateUUS(TRequestStatus& aReqStatus, const TDesC8& aUUSRequest) const;
       
  2322 	IMPORT_C void SendUUI(TRequestStatus& aReqStatus, TBool aMorese, const TMobileCallUUI& aUUI) const;
       
  2323 	IMPORT_C void ReceiveUUI(TRequestStatus& aReqStatus, TMobileCallUUI& aUUI) const;
       
  2324 	IMPORT_C void HangupWithUUI(TRequestStatus& aReqStatus, const TMobileCallUUI& aUUI) const;
       
  2325 	IMPORT_C void AnswerIncomingCallWithUUI(TRequestStatus& aReqStatus, const TDesC8& aCallParams, const TMobileCallUUI& aUUI) const;
       
  2326 	
       
  2327 private:
       
  2328 	RMobileCall(const RMobileCall& aCall);
       
  2329 	CMobileCallPtrHolder* iMmPtrHolder;
       
  2330 protected:
       
  2331 	IMPORT_C void ConstructL();
       
  2332 	IMPORT_C void Destruct();
       
  2333 	};
       
  2334 
       
  2335 
       
  2336 /*********************************************************/
       
  2337 //
       
  2338 // Line based functionality (RMobileLine)
       
  2339 // 
       
  2340 /*********************************************************/
       
  2341 
       
  2342 
       
  2343 class CMobileLinePtrHolder;
       
  2344 
       
  2345 class RMobileLine : public RLine
       
  2346 /**
       
  2347 class RMobileLine ETELMM.H "INC/ETELMM.H"
       
  2348 brief Provides client access to mobile line functionality provided by TSY
       
  2349 RMobileLine inherits from RLine defined in ETEL.H
       
  2350 @internalComponent
       
  2351 */
       
  2352 	{
       
  2353 public:
       
  2354 	IMPORT_C RMobileLine();
       
  2355 
       
  2356 	//
       
  2357 	// MobileLineStatus functional unit
       
  2358 	// 
       
  2359 
       
  2360 	IMPORT_C TInt GetMobileLineStatus(RMobileCall::TMobileCallStatus& aStatus) const;
       
  2361 	IMPORT_C void NotifyMobileLineStatusChange(TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus) const;
       
  2362 
       
  2363 private:
       
  2364 	RMobileLine(const RMobileLine& aLine);
       
  2365 	CMobileLinePtrHolder* iMmPtrHolder;
       
  2366 protected:
       
  2367 	IMPORT_C void ConstructL();
       
  2368 	IMPORT_C void Destruct();
       
  2369 	};
       
  2370 
       
  2371 
       
  2372 /*********************************************************/
       
  2373 //
       
  2374 // SMS Messaging (RMobileSmsMessaging)
       
  2375 // 
       
  2376 /*********************************************************/
       
  2377 
       
  2378 
       
  2379 class CMobilePhoneSmspList;
       
  2380 class CSmsMessagingPtrHolder;
       
  2381 
       
  2382 class RMobileSmsMessaging : public RTelSubSessionBase
       
  2383 /**
       
  2384 class RMobileSmsMessaging ETELMM.H "INC/ETELMM.H"
       
  2385 brief Provides client access to SMS messaging functionality provided by TSY
       
  2386 RMobileSmsMessaging inherits from RTelSubSessionBase defined in ETEL.H
       
  2387 @internalComponent
       
  2388 */
       
  2389 	{
       
  2390 public:
       
  2391 
       
  2392 	friend class CRetrieveMobilePhoneSmspList;
       
  2393 
       
  2394 	IMPORT_C RMobileSmsMessaging();
       
  2395 
       
  2396 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  2397 	IMPORT_C void Close();
       
  2398 
       
  2399 	enum TMobileSmsModeCaps
       
  2400 		{
       
  2401 		KCapsGsmSms=0x00000001
       
  2402 		};
       
  2403 
       
  2404 	enum TMobileSmsControlCaps
       
  2405 		{
       
  2406 		KCapsReceiveStored=0x00000001,
       
  2407 		KCapsReceiveUnstoredPhoneAck=0x00000002,
       
  2408 		KCapsReceiveUnstoredClientAck=0x00000004,
       
  2409 		KCapsReceiveEither=0x00000008,
       
  2410 		KCapsCreateAck=0x00000010,
       
  2411 		KCapsSendNoAck=0x00000020,
       
  2412 		KCapsSendWithAck=0x00000040,
       
  2413 		KCapsGetSmspList=0x00000080,
       
  2414 		KCapsSetSmspList=0x00000100
       
  2415 		};
       
  2416 
       
  2417 	class TMobileSmsCapsV1 : public RMobilePhone::TMultimodeType
       
  2418 /**
       
  2419 class TMobileSmsCapsV1 ETELMM.H "INC/ETELMM.H"
       
  2420 brief Defines capabilities of SMS messaging
       
  2421 @internalComponent
       
  2422 */
       
  2423 		{
       
  2424 	public:
       
  2425 		IMPORT_C TMobileSmsCapsV1();
       
  2426 
       
  2427 		TUint32 iSmsMode;
       
  2428 		TUint32 iSmsControl;
       
  2429 		};
       
  2430 
       
  2431 	typedef TPckg<TMobileSmsCapsV1> TMobileSmsCapsV1Pckg;
       
  2432 
       
  2433 	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
       
  2434 
       
  2435 	// Definitions for sizes of TPDU and User Data fields
       
  2436 	enum 
       
  2437 		{ 
       
  2438 		KGsmTpduSize = 165		// 140 bytes user data + 25 bytes TPDU header
       
  2439 		};
       
  2440 
       
  2441 	typedef TBuf8<KGsmTpduSize>			TMobileSmsGsmTpdu;
       
  2442 		//
       
  2443 	// Enum used by TSY to distinguish which SMS attribute class is used by client
       
  2444 	//
       
  2445 
       
  2446 	enum TMobileSmsAttributeExtensionId
       
  2447 		{
       
  2448 		KETelMobileSmsAttributesV1=KETelExtMultimodeV1,
       
  2449 		KETelMobileSmsReceiveAttributesV1,
       
  2450 		KETelMobileSmsSendAttributesV1
       
  2451 		};
       
  2452 
       
  2453 	enum TMobileSmsAttributeFlags
       
  2454 		{
       
  2455 		KGsmServiceCentre = 0x00000004,
       
  2456 		KSmsDataFormat = 0x00000008,	
       
  2457 		KRemotePartyInfo = 0x00000010,
       
  2458 		KIncomingStatus = 0x00000020,
       
  2459 		KStorageLocation = 0x00000040,
       
  2460 		KMessageReference = 0x00000080,
       
  2461 		KGsmSubmitReport = 0x00000100,
       
  2462 		KMoreToSend = 0x00000200
       
  2463 		};
       
  2464 
       
  2465 	enum TMobileSmsDataFormat
       
  2466 		{
       
  2467 		EFormatUnspecified,
       
  2468 		EFormatGsmTpdu
       
  2469 		};
       
  2470 
       
  2471 	class TMobileSmsAttributesV1 : public RMobilePhone::TMultimodeType
       
  2472 /**
       
  2473 class TMobileSmsAttributesV1 ETELMM.H "INC/ETELMM.H"
       
  2474 brief Defines common attributes of all SMS messages
       
  2475 @internalComponent
       
  2476 */
       
  2477 		{
       
  2478 	protected:
       
  2479 		TMobileSmsAttributesV1();
       
  2480 	public:
       
  2481 		TUint32 iFlags;
       
  2482 		TMobileSmsDataFormat iDataFormat;
       
  2483 		RMobilePhone::TMobileAddress iGsmServiceCentre;
       
  2484 		};
       
  2485 
       
  2486 	enum TMobileSmsIncomingStatus
       
  2487 		{
       
  2488 		EMtMessageUnknownStatus,
       
  2489 		EMtMessageUnstoredPhoneAck,
       
  2490 		EMtMessageUnstoredClientAck,
       
  2491 		EMtMessageStored
       
  2492 		};
       
  2493 
       
  2494 	class TMobileSmsReceiveAttributesV1 : public TMobileSmsAttributesV1
       
  2495 /**
       
  2496 class TMobileSmsReceiveAttributesV1 ETELMM.H "INC/ETELMM.H"
       
  2497 brief Defines attributes of incoming SMS messages
       
  2498 @internalComponent
       
  2499 */
       
  2500 		{
       
  2501 	public:
       
  2502 		IMPORT_C TMobileSmsReceiveAttributesV1();
       
  2503 	public:
       
  2504 		TMobileSmsIncomingStatus	 iStatus;	// indicates if MT message is stored phone-side
       
  2505 		TInt						 iStoreIndex;// used if MT message is stored phone-side
       
  2506 		RMobilePhone::TMobileName	 iStore;		// used if MT message is stored phone-side
       
  2507 		RMobilePhone::TMobileAddress iOriginator;
       
  2508 		};
       
  2509 
       
  2510 	typedef TPckg<TMobileSmsReceiveAttributesV1> TMobileSmsReceiveAttributesV1Pckg;
       
  2511 
       
  2512 	class TMobileSmsSendAttributesV1 : public TMobileSmsAttributesV1
       
  2513 /**
       
  2514 class TMobileSmsSendAttributesV1 ETELMM.H "INC/ETELMM.H"
       
  2515 brief Defines attributes of sent SMS messages
       
  2516 @internalComponent
       
  2517 */
       
  2518 		{
       
  2519 	public:
       
  2520 		IMPORT_C TMobileSmsSendAttributesV1();
       
  2521 	public:
       
  2522 		TUint16						 iMsgRef;
       
  2523 		TBool						 iMore;
       
  2524 		TMobileSmsGsmTpdu			 iSubmitReport;
       
  2525 		RMobilePhone::TMobileAddress iDestination;
       
  2526 		};
       
  2527 	
       
  2528 	typedef TPckg<TMobileSmsSendAttributesV1> TMobileSmsSendAttributesV1Pckg;
       
  2529 
       
  2530 	//
       
  2531 	// Setting up the storage & acknowledgement mode
       
  2532 	//
       
  2533 
       
  2534 	enum TMobileSmsReceiveMode
       
  2535 		{
       
  2536 		EReceiveModeUnspecified,
       
  2537 		EReceiveUnstoredPhoneAck,	// client stores but phone acknowledges message
       
  2538 		EReceiveUnstoredClientAck,	// client acknowledges and stores message
       
  2539 		EReceiveStored,				// phone acknowledges and store message
       
  2540 		EReceiveEither				// client deals with stored & unstored messages
       
  2541 		};
       
  2542 
       
  2543 	IMPORT_C void SetReceiveMode(TRequestStatus& aReqStatus, TMobileSmsReceiveMode aReceiveMode) const;
       
  2544 	IMPORT_C TInt GetReceiveMode(TMobileSmsReceiveMode& aReceiveMode) const;
       
  2545 	IMPORT_C void NotifyReceiveModeChange(TRequestStatus& aStatus, TMobileSmsReceiveMode& aReceiveMode);
       
  2546 	
       
  2547 	//
       
  2548 	// Incoming SMS
       
  2549 	//
       
  2550 
       
  2551 	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
  2552 
       
  2553 	//
       
  2554 	// Responding to incoming SMS
       
  2555 	//
       
  2556 	
       
  2557 	IMPORT_C void AckSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TBool aFull=EFalse) const;
       
  2558 	IMPORT_C void NackSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsg, TInt aRpCause) const;
       
  2559 	IMPORT_C void ResumeSmsReception(TRequestStatus& aReqStatus) const;
       
  2560 
       
  2561 	//
       
  2562 	// Outgoing SMS
       
  2563 	//
       
  2564 
       
  2565 	IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
       
  2566 
       
  2567 	enum TMobileSmsBearer
       
  2568 		{
       
  2569 		ESmsBearerPacketOnly,
       
  2570 		ESmsBearerCircuitOnly,
       
  2571 		ESmsBearerPacketPreferred,
       
  2572 		ESmsBearerCircuitPreferred
       
  2573 		};
       
  2574 
       
  2575 	IMPORT_C void SetMoSmsBearer(TRequestStatus& aReqStatus, TMobileSmsBearer aBearer) const;
       
  2576 	IMPORT_C TInt GetMoSmsBearer(TMobileSmsBearer& aBearer) const;
       
  2577 	IMPORT_C void NotifyMoSmsBearerChange(TRequestStatus& aReqStatus, TMobileSmsBearer& aBearer);
       
  2578 
       
  2579 	//
       
  2580 	// Get information on phone-side SMS storage
       
  2581 	//
       
  2582 
       
  2583 	IMPORT_C TInt EnumerateMessageStores(TInt& aCount) const;
       
  2584 	IMPORT_C void GetMessageStoreInfo(TRequestStatus& aReqStatus, TInt aIndex, TDes8& aInfo) const;
       
  2585 
       
  2586 	//
       
  2587 	// Read/Write SMS parameters to phone-side storage
       
  2588 	//
       
  2589 
       
  2590 	enum { KMaxSmspTextSize=30 };
       
  2591 
       
  2592 	enum TMobileSmspStoreValidParams
       
  2593 		{
       
  2594 		KDestinationIncluded=0x00000001,
       
  2595 		KSCAIncluded=0x00000002,
       
  2596 		KProtocolIdIncluded=0x00000004,
       
  2597 		KDcsIncluded=0x00000008,
       
  2598 		KValidityPeriodIncluded=0x00000010
       
  2599  		};
       
  2600 
       
  2601 	class TMobileSmspEntryV1 : public RMobilePhone::TMultimodeType
       
  2602 /**
       
  2603 @internalComponent
       
  2604 */
       
  2605 		{
       
  2606 	public:
       
  2607 		IMPORT_C TMobileSmspEntryV1();
       
  2608 	public:
       
  2609 		void InternalizeL(RReadStream& aStream);
       
  2610 		void ExternalizeL(RWriteStream& aStream) const;
       
  2611 	public:
       
  2612 		TInt iIndex;
       
  2613 		TUint32	iValidParams;
       
  2614 		TUint8 iProtocolId;
       
  2615 		TUint8 iDcs;
       
  2616 		TUint8 iValidityPeriod;
       
  2617 		TUint8 iReservedFiller;
       
  2618 		RMobilePhone::TMobileAddress iDestination;
       
  2619 		RMobilePhone::TMobileAddress iServiceCentre;
       
  2620 		TBuf<KMaxSmspTextSize> iText;
       
  2621 		};
       
  2622 
       
  2623 	typedef TPckg<TMobileSmspEntryV1> TMobileSmspEntryV1Pckg;
       
  2624 	IMPORT_C void StoreSmspListL(TRequestStatus& aReqStatus, CMobilePhoneSmspList* aSmspList) const;
       
  2625 	IMPORT_C void NotifySmspListChange(TRequestStatus& aReqStatus) const;
       
  2626 
       
  2627 private:
       
  2628 	RMobileSmsMessaging(const RMobileSmsMessaging&);
       
  2629 	CSmsMessagingPtrHolder* iSmsMessagingPtrHolder;
       
  2630 protected:
       
  2631 	IMPORT_C void ConstructL();
       
  2632 	IMPORT_C void Destruct();
       
  2633 	};
       
  2634 
       
  2635 
       
  2636 /*********************************************************/
       
  2637 //
       
  2638 // Broadcast Messaging (RMobileBroadcastMessaging)
       
  2639 // 
       
  2640 /*********************************************************/
       
  2641 
       
  2642 class CMobilePhoneBroadcastIdList;
       
  2643 class CCbsMessagingPtrHolder;
       
  2644 class RMobileBroadcastMessaging : public RTelSubSessionBase
       
  2645 /**
       
  2646 class RMobileBroadcastMessaging ETELMM.H "INC/ETELMM.H"
       
  2647 brief Provides client access to Broadcast messaging functionality provided by TSY
       
  2648 RMobileBroadcastMessaging inherits from RTelSubSessionBase defined in ETEL.H
       
  2649 @internalComponent
       
  2650 */
       
  2651 	{
       
  2652 public:
       
  2653 	
       
  2654 	friend class CRetrieveMobilePhoneBroadcastIdList;
       
  2655 
       
  2656 	IMPORT_C RMobileBroadcastMessaging();
       
  2657 
       
  2658 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  2659 	IMPORT_C void Close();
       
  2660 
       
  2661 	//
       
  2662 	// Broadcast messaging capabilities
       
  2663 	//
       
  2664 
       
  2665 	enum TMobileBroadcastModeCaps
       
  2666 		{
       
  2667 		KCapsGsmTpduFormat = 0x00000001
       
  2668 		};
       
  2669 
       
  2670 	enum TBroadcastMessagingFilterCaps
       
  2671 		{
       
  2672 		KCapsSimpleFilter = 0x00000001,
       
  2673 		KCapsLangFilter = 0x00000002,
       
  2674 		KCapsIdFilter = 0x00000004
       
  2675 		};
       
  2676 
       
  2677 
       
  2678 	class TMobileBroadcastCapsV1 : public RMobilePhone::TMultimodeType
       
  2679 /**
       
  2680 class TMobileBroadcastCapsV1 ETELMM.H "INC/ETELMM.H"
       
  2681 brief Defines capabilities of Broadcast messaging
       
  2682 @internalComponent
       
  2683 */
       
  2684 		{
       
  2685 	public:
       
  2686 		IMPORT_C TMobileBroadcastCapsV1();
       
  2687 	public:
       
  2688 		TUint32 iModeCaps;
       
  2689 		TUint32 iFilterCaps;
       
  2690 		};
       
  2691 
       
  2692 	typedef TPckg<TMobileBroadcastCapsV1> TMobileBroadcastCapsV1Pckg;
       
  2693 
       
  2694 	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
       
  2695 
       
  2696 	enum TMobileBroadcastAttributeFlags
       
  2697 		{
       
  2698 		KBroadcastDataFormat = 0x00000001
       
  2699 		};
       
  2700 
       
  2701 	enum TMobileBroadcastDataFormat
       
  2702 		{
       
  2703 		EFormatUnspecified,
       
  2704 		EFormatGsmTpdu
       
  2705 		};
       
  2706 
       
  2707 	class TMobileBroadcastAttributesV1 : public RMobilePhone::TMultimodeType
       
  2708 /**
       
  2709 class TMobileBroadcastAttributesV1 ETELMM.H "INC/ETELMM.H"
       
  2710 brief Defines attributes of a Broadcast message
       
  2711 @internalComponent
       
  2712 */
       
  2713 		{
       
  2714 	public:
       
  2715 		IMPORT_C TMobileBroadcastAttributesV1();
       
  2716 	public:
       
  2717 		TUint32	iFlags;
       
  2718 		TMobileBroadcastDataFormat	iFormat;
       
  2719 		TInt iServiceCategory;
       
  2720 		};
       
  2721 
       
  2722 	typedef TPckg<TMobileBroadcastAttributesV1> TMobileBroadcastAttributesV1Pckg;
       
  2723 
       
  2724 	//
       
  2725 	// Receiving broadcast messages
       
  2726  	//
       
  2727 
       
  2728 	enum 
       
  2729 		{
       
  2730 		KGsmBroadcastDataSize = 88
       
  2731 		};
       
  2732 
       
  2733 	typedef TBuf8<KGsmBroadcastDataSize>  TGsmBroadcastMessageData;
       
  2734 
       
  2735 	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
  2736 
       
  2737 	//
       
  2738 	// Filters
       
  2739 	//
       
  2740 
       
  2741 	enum TMobilePhoneBroadcastFilter
       
  2742 		{
       
  2743 		EBroadcastFilterUnspecified,
       
  2744 		EBroadcastAcceptNone,
       
  2745 		EBroadcastAcceptAll,
       
  2746 		EBroadcastAcceptFilter,
       
  2747 		EBroadcastRejectFilter
       
  2748 		};
       
  2749 
       
  2750 	IMPORT_C TInt GetFilterSetting(TMobilePhoneBroadcastFilter& aSetting) const;
       
  2751 	IMPORT_C void SetFilterSetting(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter aSetting) const;
       
  2752 	IMPORT_C void NotifyFilterSettingChange(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter& aSetting) const;
       
  2753 
       
  2754 	IMPORT_C void GetLanguageFilter(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
       
  2755 	IMPORT_C void SetLanguageFilter(TRequestStatus& aReqStatus, const TDesC16& aLangFilter) const;
       
  2756 	IMPORT_C void NotifyLanguageFilterChange(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
       
  2757 
       
  2758 	class TMobileBroadcastIdEntryV1 : public RMobilePhone::TMultimodeType
       
  2759 /**
       
  2760 class TMobileBroadcastIdEntryV1 ETELMM.H "INC/ETELMM.H"
       
  2761 brief In GSM - defines a Cell Broadcast Message Identifier (CBMI) list entry
       
  2762 brief In CDMA - defines a Service Category list entry
       
  2763 @internalComponent
       
  2764 */
       
  2765 		{
       
  2766 	public:
       
  2767 		void InternalizeL(RReadStream& aStream);
       
  2768 		void ExternalizeL(RWriteStream& aStream) const;
       
  2769 		IMPORT_C TMobileBroadcastIdEntryV1();
       
  2770 	public:
       
  2771 		TUint16	iId;
       
  2772 		};
       
  2773 
       
  2774 	enum TMobileBroadcastIdType
       
  2775 		{
       
  2776 		EGsmBroadcastId
       
  2777 		};
       
  2778 
       
  2779 	IMPORT_C void StoreBroadcastIdListL(TRequestStatus& aReqStatus, CMobilePhoneBroadcastIdList* aIdList, TMobileBroadcastIdType aIdType);
       
  2780 	IMPORT_C void NotifyBroadcastIdListChange(TRequestStatus& aReqStatus) const;
       
  2781 
       
  2782 private:
       
  2783 	RMobileBroadcastMessaging(const RMobileBroadcastMessaging&);
       
  2784 	CCbsMessagingPtrHolder* iCbsMessagingPtrHolder;
       
  2785 protected:
       
  2786 	IMPORT_C void ConstructL();
       
  2787 	IMPORT_C void Destruct();
       
  2788 	};
       
  2789 
       
  2790 /*********************************************************/
       
  2791 //
       
  2792 // USSD Messaging (RMobileUssdMessaging)
       
  2793 // 
       
  2794 /*********************************************************/
       
  2795 
       
  2796 class CUssdMessagingPtrHolder;
       
  2797 class RMobileUssdMessaging : public RTelSubSessionBase
       
  2798 /**
       
  2799 class RMobileUssdMessaging Etelmm.h "inc/Etelmm.h"
       
  2800 brief Provides client access to USSD functionality provided by TSY
       
  2801 RMobileUssdMessaging inherits from RTelSubSessionBase defined in ETEL.H
       
  2802 @internalComponent
       
  2803 */
       
  2804 	{
       
  2805 public:
       
  2806 	IMPORT_C RMobileUssdMessaging();
       
  2807 
       
  2808 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  2809 	IMPORT_C void Close();
       
  2810 
       
  2811 	enum TMobileUssdFormatCaps
       
  2812 		{
       
  2813 		KCapsPackedString=0x00000001
       
  2814 		};
       
  2815 
       
  2816 	enum TMobileUssdTypeCaps
       
  2817 		{
       
  2818 		KCapsMOUssd=0x00000001,
       
  2819 		KCapsMTUssd=0x00000002
       
  2820 		};
       
  2821 
       
  2822 	class TMobileUssdCapsV1 : public RMobilePhone::TMultimodeType
       
  2823 /**
       
  2824 class TMobileUssdCapsV1 ETELMM.H "INC/ETELMM.H"
       
  2825 brief Defines capabilities of USSD messaging
       
  2826 @internalComponent
       
  2827 */
       
  2828 		{
       
  2829 	public:
       
  2830 		IMPORT_C TMobileUssdCapsV1();
       
  2831 		TUint32 iUssdFormat;
       
  2832 		TUint32 iUssdTypes;
       
  2833 		};
       
  2834 
       
  2835 	typedef TPckg<TMobileUssdCapsV1> TMobileUssdCapsV1Pckg;
       
  2836 
       
  2837 	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
       
  2838 
       
  2839 	enum TMobileUssdAttributeFlags
       
  2840 		{
       
  2841 		KUssdDataFormat = 0x00000001,
       
  2842 		KUssdMessageType = 0x00000002,
       
  2843 		KUssdMessageDcs = 0x00000004
       
  2844 		};
       
  2845 
       
  2846 	enum TMobileUssdDataFormat
       
  2847 		{
       
  2848 		EFormatUnspecified,
       
  2849 		EFormatPackedString
       
  2850 		};
       
  2851 
       
  2852 	enum TMobileUssdMessageType
       
  2853 		{
       
  2854 		EUssdUnknown,
       
  2855 		EUssdMORequest,
       
  2856 		EUssdMOReply,
       
  2857 		EUssdMTNotify,
       
  2858 		EUssdMTRequest,
       
  2859 		EUssdMTReply
       
  2860 		};
       
  2861 
       
  2862 	class TMobileUssdAttributesV1 : public RMobilePhone::TMultimodeType
       
  2863 /**
       
  2864 class TMobileUssdAttributesV1 ETELMM.H "INC/ETELMM.H"
       
  2865 brief Defines attributes of a USSD message
       
  2866 @internalComponent
       
  2867 */
       
  2868 		{
       
  2869 	public:
       
  2870 		IMPORT_C TMobileUssdAttributesV1();
       
  2871 	public:
       
  2872 		TUint32 iFlags;
       
  2873 		TMobileUssdDataFormat iFormat;
       
  2874 		TMobileUssdMessageType iType;
       
  2875 		TUint8 iDcs;
       
  2876 		};
       
  2877 	
       
  2878 	typedef TPckg<TMobileUssdAttributesV1> TMobileUssdAttributesV1Pckg;
       
  2879 
       
  2880 	//
       
  2881 	// Receiving USSD messages
       
  2882  	//
       
  2883 
       
  2884 	enum 
       
  2885 		{
       
  2886 		KGsmUssdDataSize = 160
       
  2887 		};
       
  2888 
       
  2889 	typedef TBuf8<KGsmUssdDataSize> TGsmUssdMessageData;
       
  2890 
       
  2891 	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
  2892 
       
  2893 	//
       
  2894 	// Sending USSD messages
       
  2895 	//
       
  2896 
       
  2897 	IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
       
  2898 
       
  2899 private:
       
  2900 	RMobileUssdMessaging(const RMobileUssdMessaging&);
       
  2901 	CUssdMessagingPtrHolder* iUssdMessagingPtrHolder;
       
  2902 protected:
       
  2903 	IMPORT_C void ConstructL();
       
  2904 	IMPORT_C void Destruct();
       
  2905 	};
       
  2906 
       
  2907 
       
  2908 
       
  2909 /*********************************************************/
       
  2910 //
       
  2911 // SMS Message Storage (RMobileSmsStore)
       
  2912 //
       
  2913 /*********************************************************/
       
  2914 
       
  2915 class CSmsStorePtrHolder;
       
  2916 class CMobilePhoneSmsList;
       
  2917 class RMobileSmsStore : public RMobilePhoneStore
       
  2918 /**
       
  2919 class RMobileSmsStore ETELMM.H "INC/ETELMM.H"
       
  2920 brief Provides client access to SMS storage functionality provided by TSY
       
  2921 RMobileSmsStore inherits from RMobilePhoneStore defined in ETELMM.H
       
  2922 @internalComponent
       
  2923 */
       
  2924 	{
       
  2925 public:
       
  2926 
       
  2927 	IMPORT_C RMobileSmsStore();
       
  2928 	IMPORT_C TInt Open(RMobileSmsMessaging& aMessaging, const TDesC& aStoreName);
       
  2929 	IMPORT_C void Close();
       
  2930 
       
  2931 	enum TMobileSmsStoreCaps
       
  2932 		{
       
  2933 		KCapsUnreadMessages = 0x00000001,
       
  2934 		KCapsReadMessages = 0x00000002,
       
  2935 		KCapsSentMessages = 0x00000004,
       
  2936 		KCapsUnsentMessages = 0x00000008,
       
  2937 		KCapsGsmMessages = 0x00000010
       
  2938 		};
       
  2939 
       
  2940 	enum TMobileSmsStoreStatus
       
  2941 		{
       
  2942 		EStoredMessageUnknownStatus,
       
  2943 		EStoredMessageUnread,
       
  2944 		EStoredMessageRead,
       
  2945 		EStoredMessageUnsent,
       
  2946 		EStoredMessageSent,
       
  2947 		EStoredMessageDelivered
       
  2948 		};
       
  2949 
       
  2950 	//
       
  2951 	// Enum used by TSY to distinguish which SMS entry class is used by client
       
  2952 	//
       
  2953 
       
  2954 	enum TMobileSmsEntryExtensionId
       
  2955 		{
       
  2956 		KETelMobileSmsEntryV1=KETelExtMultimodeV1,
       
  2957 		KETelMobileGsmSmsEntryV1
       
  2958 		};
       
  2959 
       
  2960 	class TMobileSmsEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
  2961 /**
       
  2962 class TMobileSmsEntryV1 ETELMM.H "INC/ETELMM.H"
       
  2963 brief Defines contents of a fixed-size, stored SMS entry
       
  2964 @internalComponent
       
  2965 */
       
  2966 		{
       
  2967 	public:
       
  2968 		void InternalizeL(RReadStream& aStream);
       
  2969 		void ExternalizeL(RWriteStream& aStream) const;
       
  2970 	protected:
       
  2971 		TMobileSmsEntryV1();
       
  2972 	public:
       
  2973 		TMobileSmsStoreStatus	iMsgStatus;	
       
  2974 		};
       
  2975 
       
  2976 	class TMobileGsmSmsEntryV1 : public TMobileSmsEntryV1
       
  2977 /**
       
  2978 @internalComponent
       
  2979 */
       
  2980 		{
       
  2981 	public:
       
  2982 		void InternalizeL(RReadStream& aStream);
       
  2983 		void ExternalizeL(RWriteStream& aStream) const;
       
  2984 	public:
       
  2985 		IMPORT_C TMobileGsmSmsEntryV1();
       
  2986 	public:
       
  2987 		RMobilePhone::TMobileAddress iServiceCentre;
       
  2988 		RMobileSmsMessaging::TMobileSmsGsmTpdu	iMsgData;	
       
  2989 		};
       
  2990 
       
  2991 	typedef TPckg<TMobileGsmSmsEntryV1> TMobileGsmSmsEntryV1Pckg;
       
  2992 
       
  2993 protected:
       
  2994 	IMPORT_C void ConstructL();
       
  2995 private:
       
  2996 	RMobileSmsStore(const RMobileSmsStore&);
       
  2997 	};
       
  2998 
       
  2999 /*********************************************************/
       
  3000 //
       
  3001 // NAM Storage (RMobileNamStore)
       
  3002 //
       
  3003 /*********************************************************/
       
  3004 
       
  3005 
       
  3006 class CNamStorePtrHolder;
       
  3007 class CMobilePhoneNamList;
       
  3008 
       
  3009 class RMobileNamStore : public RMobilePhoneStore
       
  3010 /**
       
  3011 class RMobileNamStore ETELMM.H "INC/ETELMM.H"
       
  3012 brief Provides client access to NAM storage functionality provided by TSY
       
  3013 RMobileNamStore inherits from RMobilePhoneStore defined in ETELMM.H
       
  3014 @internalComponent
       
  3015 */
       
  3016 	{
       
  3017 public:
       
  3018 	IMPORT_C RMobileNamStore();
       
  3019 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  3020 	IMPORT_C void Close();
       
  3021 
       
  3022 	class TMobileNamStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
       
  3023 /**
       
  3024 class TMobileNamStoreInfoV1 ETELMM.H "INC/ETELMM.H"
       
  3025 brief Defines information about a NAM store
       
  3026 @internalComponent
       
  3027 */
       
  3028 		{
       
  3029 	public:
       
  3030 		IMPORT_C TMobileNamStoreInfoV1();
       
  3031 	public:
       
  3032 		TInt iNamCount;
       
  3033 		TInt iActiveNam;
       
  3034 		};
       
  3035 
       
  3036 	typedef TPckg<TMobileNamStoreInfoV1> TMobileNamStoreInfoV1Pckg;
       
  3037 
       
  3038 	IMPORT_C void SetActiveNam(TRequestStatus& aReqStatus, TInt aNamId) const;
       
  3039 
       
  3040 	enum
       
  3041 		{
       
  3042 		KMaxNamParamSize = 32
       
  3043 		};
       
  3044 
       
  3045 	class TMobileNamEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
  3046 /**
       
  3047 class TMobileNamEntryV1 ETELMM.H "INC/ETELMM.H"
       
  3048 brief Defines contents of a NAM store entry
       
  3049 @internalComponent
       
  3050 */
       
  3051 		{
       
  3052 	public:
       
  3053 		IMPORT_C TMobileNamEntryV1();
       
  3054 	public:
       
  3055 		void InternalizeL(RReadStream& aStream);
       
  3056 		void ExternalizeL(RWriteStream& aStream) const;
       
  3057 	public:
       
  3058 		TInt iNamId;
       
  3059 		TInt iParamIdentifier;
       
  3060 		TBuf8<KMaxNamParamSize> iData;
       
  3061 		};
       
  3062 
       
  3063 	typedef TPckg<TMobileNamEntryV1> TMobileNamEntryV1Pckg;
       
  3064 
       
  3065 	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamList* aNamList) const;
       
  3066 
       
  3067 protected:
       
  3068 	IMPORT_C void ConstructL();
       
  3069 private:
       
  3070 	RMobileNamStore(const RMobileNamStore&);
       
  3071 	};
       
  3072 
       
  3073 
       
  3074 /*********************************************************/
       
  3075 //
       
  3076 // Own Number Storage (RMobileONStore)
       
  3077 //
       
  3078 /*********************************************************/
       
  3079 
       
  3080 
       
  3081 class CONStorePtrHolder;
       
  3082 class CMobilePhoneONList;
       
  3083 	
       
  3084 class RMobileONStore : public RMobilePhoneStore
       
  3085 /**
       
  3086 class RMobileONStore ETELMM.H "INC/ETELMM.H"
       
  3087 brief Provides client access to Own Number storage functionality provided by TSY
       
  3088 RMobileONStore inherits from RMobilePhoneStore defined in ETELMM.H
       
  3089 @internalComponent
       
  3090 */
       
  3091 	{
       
  3092 public:
       
  3093 	IMPORT_C RMobileONStore();
       
  3094 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  3095 	IMPORT_C void Close();
       
  3096 
       
  3097 	class TMobileONStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
       
  3098 /**
       
  3099 class TMobileONStoreInfoV1 ETELMM.H "INC/ETELMM.H"
       
  3100 brief Defines information about an Own Number store
       
  3101 @internalComponent
       
  3102 */
       
  3103 		{
       
  3104 	public:
       
  3105 		IMPORT_C TMobileONStoreInfoV1();
       
  3106 	public:
       
  3107 		TInt iNumberLen;
       
  3108 		TInt iTextLen;
       
  3109 		};
       
  3110 
       
  3111 	typedef TPckg<TMobileONStoreInfoV1> TMobileONStoreInfoV1Pckg;
       
  3112 
       
  3113 	enum
       
  3114 		{
       
  3115 		KOwnNumberTextSize = 20
       
  3116 		};
       
  3117 
       
  3118 	class TMobileONEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
  3119 /**
       
  3120 class TMobileONEntryV1 ETELMM.H "INC/ETELMM.H"
       
  3121 brief Defines contents of a Own Number store entry
       
  3122 @internalComponent
       
  3123 */
       
  3124 		{
       
  3125 	public:
       
  3126 		IMPORT_C TMobileONEntryV1();
       
  3127 	public:
       
  3128 		void InternalizeL(RReadStream& aStream);
       
  3129 		void ExternalizeL(RWriteStream& aStream) const;
       
  3130 	public:
       
  3131 		RMobilePhone::TMobilePhoneNetworkMode iMode;
       
  3132 		RMobilePhone::TMobileService iService;
       
  3133 		RMobilePhone::TMobileAddress iNumber;
       
  3134 		TBuf<KOwnNumberTextSize> iText;
       
  3135 		};
       
  3136 
       
  3137 	typedef TPckg<TMobileONEntryV1> TMobileONEntryV1Pckg;
       
  3138 
       
  3139 	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, CMobilePhoneONList* aONList) const;
       
  3140 
       
  3141 protected:
       
  3142 	IMPORT_C void ConstructL();
       
  3143 private:
       
  3144 	RMobileONStore(const RMobileONStore&);
       
  3145 	};
       
  3146 
       
  3147 /*********************************************************/
       
  3148 //
       
  3149 // Emergency Number Storage (RMobileENStore)
       
  3150 //
       
  3151 /*********************************************************/
       
  3152 
       
  3153 
       
  3154 class CMobilePhoneENList;
       
  3155 
       
  3156 class RMobileENStore : public RMobilePhoneStore
       
  3157 /**
       
  3158 class RMobileENStore ETELMM.H "INC/ETELMM.H"
       
  3159 brief Provides client access to Emergency Number storage functionality provided by TSY
       
  3160 RMobileENStore inherits from RMobilePhoneStore defined in ETELMM.H
       
  3161 @internalComponent
       
  3162 */
       
  3163 	{
       
  3164 public:
       
  3165 	IMPORT_C RMobileENStore();
       
  3166 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  3167 	IMPORT_C void Close();
       
  3168 
       
  3169 	enum 
       
  3170 		{
       
  3171 		KEmergencyNumberSize  = 6,
       
  3172 		KEmergencyAlphaTagSize = 20
       
  3173 		};
       
  3174 
       
  3175 	typedef TBuf<KEmergencyNumberSize> TEmergencyNumber;
       
  3176 
       
  3177 	class TMobileENEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
  3178 /**
       
  3179 class TMobileENEntryV1 ETELMM.H "INC/ETELMM.H"
       
  3180 brief Defines contents of a Emergency Number store entry
       
  3181 @internalComponent
       
  3182 */
       
  3183 		{
       
  3184 	public:
       
  3185 		IMPORT_C TMobileENEntryV1();
       
  3186 	public:
       
  3187 		void InternalizeL(RReadStream& aStream);
       
  3188 		void ExternalizeL(RWriteStream& aStream) const;
       
  3189 	public:
       
  3190 		TBool iNetworkSpecific;
       
  3191 		RMobilePhone::TMobilePhoneNetworkMode iMode;
       
  3192 		RMobilePhone::TMobilePhoneNetworkCountryCode iCountryCode;
       
  3193 		RMobilePhone::TMobilePhoneNetworkIdentity iIdentity;
       
  3194 		TEmergencyNumber             iNumber;
       
  3195 		TBuf<KEmergencyAlphaTagSize> iAlphaId;
       
  3196 		TInt	                     iCallType;
       
  3197 		};
       
  3198 
       
  3199 	typedef TPckg<TMobileENEntryV1> TMobileENEntryV1Pckg;
       
  3200 
       
  3201 protected:
       
  3202 	IMPORT_C void ConstructL();
       
  3203 private:
       
  3204 	RMobileENStore(const RMobileENStore&);
       
  3205 	};
       
  3206 
       
  3207 
       
  3208 /*********************************************************/
       
  3209 //
       
  3210 // RMobilePhoneBookStore 
       
  3211 //
       
  3212 /*********************************************************/
       
  3213 
       
  3214 class CPhoneBookStorePtrHolder;
       
  3215 class CMobilePhoneBookList;
       
  3216 
       
  3217 class RMobilePhoneBookStore : public RMobilePhoneStore 
       
  3218 /**
       
  3219 class RMobilePhoneBookStore ETELMM.H "INC/ETELMM.H"
       
  3220 brief Provides client access to Phonebook storage functionality provided by TSY
       
  3221 RMobilePhoneBookStore inherits from RMobilePhoneStore defined in ETELMM.H
       
  3222 @internalComponent
       
  3223 */
       
  3224 	{
       
  3225 public:
       
  3226 	IMPORT_C RMobilePhoneBookStore();
       
  3227 	IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore);
       
  3228 	IMPORT_C void Close();
       
  3229 
       
  3230 	enum TMobilePhoneBookCaps
       
  3231 		{
       
  3232 		KCapsRestrictedWriteAccess = 0x00000001,
       
  3233 		KCapsSecondNameUsed        = 0x00000002,
       
  3234 		KCapsAdditionalNumUsed     = 0x00000004,
       
  3235 		KCapsGroupingUsed		   = 0x00000008,
       
  3236 		KCapsEntryControlUsed      = 0x00000010,
       
  3237 		KCapsEmailAddressUsed      = 0x00000020,
       
  3238 		KCapsBearerCapUsed		   = 0x00000040,
       
  3239 		KCapsSynchronisationUsed   = 0x00000080
       
  3240 		};
       
  3241 
       
  3242 	enum TMobilePhoneBookLocation
       
  3243 		{
       
  3244 		ELocationUnknown,
       
  3245 		ELocationIccMemory,
       
  3246 		ELocationPhoneMemory,
       
  3247 		ELocationExternalMemory,
       
  3248 		ELocationCombinedMemory
       
  3249 		};
       
  3250 
       
  3251 	enum
       
  3252 		{
       
  3253 		KMaxPBIDSize=15
       
  3254 		};
       
  3255 
       
  3256 	typedef TBuf8<KMaxPBIDSize> TMobilePhoneBookIdentity;
       
  3257 
       
  3258 	class TMobilePhoneBookInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
       
  3259 /**
       
  3260 class TMobilePhoneBookInfoV1 ETELMM.H "INC/ETELMM.H"
       
  3261 brief Defines information about a Phonebook store
       
  3262 @internalComponent
       
  3263 */
       
  3264 		{
       
  3265 	public:
       
  3266 		IMPORT_C TMobilePhoneBookInfoV1();
       
  3267 	public:
       
  3268 		TInt    iMaxNumLength;
       
  3269 		TInt    iMaxTextLength;
       
  3270 		TMobilePhoneBookLocation iLocation;
       
  3271 		TUint16 iChangeCounter;
       
  3272 		TMobilePhoneBookIdentity iIdentity; 
       
  3273 		};
       
  3274 
       
  3275 	typedef TPckg<TMobilePhoneBookInfoV1> TMobilePhoneBookInfoV1Pckg;
       
  3276 
       
  3277 	// check these fields - not sure all are correct
       
  3278 	enum TMobilePBFieldTags
       
  3279 		{
       
  3280 		ETagPBNewEntry		=0xA0,
       
  3281 		ETagPBUniqueId		=0xB0,
       
  3282 		ETagPBAdnIndex		=0xC0,
       
  3283 		ETagPBText			=0xC1,
       
  3284 		ETagPBNumber		=0xC2,
       
  3285 		ETagPBTonNpi		=0xC3,
       
  3286 		ETagPBBearerCap		=0xC4,
       
  3287 		ETagPBAnrStart		=0xC5,
       
  3288 		ETagPBSecondName	=0xC6,
       
  3289 		ETagPBGroupName		=0xC7,
       
  3290 		ETagPBEmailAddress	=0xC8,
       
  3291 		ETagPBEntryControl	=0xC9,
       
  3292 		ETagPBHiddenInfo	=0xCA
       
  3293 		};
       
  3294 
       
  3295 
       
  3296 	// API/TSY internal type
       
  3297 	struct TPBIndexAndNumEntries
       
  3298 		{
       
  3299 		TInt iIndex;
       
  3300 		TInt iNumEntries;
       
  3301 		};
       
  3302 
       
  3303 	IMPORT_C void Read(TRequestStatus& aReqStatus, TInt aIndex, TInt aNumEntries, TDes8& aPBData) const;
       
  3304 	IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aPBData, TInt& aIndex) const;
       
  3305 
       
  3306 protected:
       
  3307 	IMPORT_C void ConstructL();
       
  3308 private:
       
  3309 	RMobilePhoneBookStore(const RMobilePhoneBookStore&);
       
  3310 	};
       
  3311 
       
  3312 /*********************************************************/
       
  3313 //
       
  3314 // RMobileConferenceCall
       
  3315 //
       
  3316 /*********************************************************/
       
  3317 
       
  3318 class CMobileConferenceCallPtrHolder;
       
  3319 
       
  3320 class RMobileConferenceCall : public RTelSubSessionBase
       
  3321 /**
       
  3322 class RMobileConferenceCall ETELMM.H "INC/ETELMM.H"
       
  3323 brief Provides client access to conference call functionality provided by TSY
       
  3324 RMobileConferenceCall inherits from RTelSubSessionBase defined in ETEL.H
       
  3325 @internalComponent
       
  3326 */
       
  3327 	{
       
  3328 public:
       
  3329 	IMPORT_C RMobileConferenceCall();
       
  3330 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  3331 	IMPORT_C void Close();
       
  3332 
       
  3333 	enum TMobileConferenceCallCaps
       
  3334 		{
       
  3335 		KCapsCreate = 0x00000001,
       
  3336 		KCapsHangUp = 0x00000002,
       
  3337 		KCapsSwap = 0x00000004
       
  3338 		};
       
  3339 
       
  3340 	IMPORT_C TInt GetCaps(TUint32& aCaps) const;
       
  3341 	IMPORT_C void NotifyCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  3342 
       
  3343 	IMPORT_C void CreateConference(TRequestStatus& aReqStatus) const;
       
  3344 	IMPORT_C void AddCall(TRequestStatus& aReqStatus, const TName& aCallName) const;
       
  3345 	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
       
  3346 	IMPORT_C void HangUp(TRequestStatus& aReqStatus) const;
       
  3347 	IMPORT_C TInt EnumerateCalls(TInt& aCount) const;
       
  3348 	IMPORT_C TInt GetMobileCallInfo(TInt aIndex, TDes8& aCallInfo) const;
       
  3349 
       
  3350 	enum TMobileConferenceStatus
       
  3351 		{
       
  3352 		EConferenceIdle,
       
  3353 		EConferenceActive,
       
  3354 		EConferenceHold
       
  3355 		};
       
  3356 	
       
  3357 	IMPORT_C TInt GetConferenceStatus(TMobileConferenceStatus& aStatus) const;
       
  3358 	IMPORT_C void NotifyConferenceStatusChange(TRequestStatus& aReqStatus, TMobileConferenceStatus& aStatus) const;
       
  3359 
       
  3360 	enum TMobileConferenceEvent
       
  3361 		{
       
  3362 		EConferenceCallAdded,
       
  3363 		EConferenceCallRemoved
       
  3364 		};
       
  3365 
       
  3366 	IMPORT_C void NotifyConferenceEvent(TRequestStatus& aReqStatus, TMobileConferenceEvent& aEvent, TName& aCallName) const;
       
  3367 
       
  3368 private:
       
  3369 	CMobileConferenceCallPtrHolder* iMmPtrHolder;
       
  3370 	RMobileConferenceCall(const RMobileConferenceCall&);
       
  3371 protected:
       
  3372 	IMPORT_C void ConstructL();
       
  3373 	IMPORT_C void Destruct();
       
  3374 	};
       
  3375 
       
  3376 
       
  3377 
       
  3378 #endif