telephonyserver/etelmultimode/INC/ETELMM.H
changeset 0 3553901f7fa8
child 20 244d7c5f118e
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     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 // Multimode ETel API header file.
       
    15 // Describes the MM ETel API - classes, methods and types.
       
    16 // 
       
    17 //
       
    18 
       
    19 /**
       
    20  @file
       
    21  @publishedPartner
       
    22  @released
       
    23 */
       
    24 
       
    25 #ifndef __ETELMM_H__
       
    26 #define __ETELMM_H__
       
    27 
       
    28 #include <e32base.h>
       
    29 #include <s32mem.h>
       
    30 #include <etel.h>
       
    31 #include <etelmmcs.h>
       
    32 
       
    33 
       
    34 /** 
       
    35 Internal API/TSY delimiter used to pass the phonebook type
       
    36 */
       
    37 #define PHBOOK_DELIMITER		_L("//")
       
    38 /** The size of the phone book delimiter string.
       
    39 @publishedPartner
       
    40  */
       
    41 const TInt KSizeOfPhbookDelimiter=2;
       
    42 
       
    43 /**
       
    44 Names for Multimode ETel sub-sessions
       
    45 */
       
    46 _LIT(KETelMeAdnPhoneBook,"S1");
       
    47 _LIT(KETelMeDialledPhoneBook,"S2");
       
    48 _LIT(KETelMeMissedPhoneBook,"S3");
       
    49 _LIT(KETelMeReceivedPhoneBook,"S4");
       
    50 _LIT(KETelCombinedAdnPhoneBook,"S5");
       
    51 _LIT(KETelTaAdnPhoneBook,"S6");
       
    52 _LIT(KETelIccAdnPhoneBook,"S7");
       
    53 _LIT(KETelIccFdnPhoneBook,"S8");
       
    54 _LIT(KETelIccSdnPhoneBook,"S9");
       
    55 _LIT(KETelIccBdnPhoneBook,"S10");
       
    56 _LIT(KETelIccLndPhoneBook,"S11");
       
    57 _LIT(KETelIccVoiceMailBox,"S12");
       
    58 
       
    59 _LIT(KETelMeSmsStore,"S13");
       
    60 _LIT(KETelIccSmsStore,"S14");
       
    61 _LIT(KETelCombinedSmsStore,"S15");
       
    62 
       
    63 _LIT(KETelNamStore,"S16");
       
    64 _LIT(KETelOwnNumberStore,"S17");
       
    65 _LIT(KETelEmergencyNumberStore,"S18");
       
    66 
       
    67 _LIT(KETelSmsMessaging,"S19");
       
    68 _LIT(KETelBroadcastMessaging,"S20");
       
    69 _LIT(KETelUssdMessaging,"S21");
       
    70 
       
    71 _LIT(KETelConferenceCall,"S22");
       
    72 
       
    73 _LIT(KETelIccMbdnPhoneBook, "S23");
       
    74 _LIT(KETelIccMsisdnPhoneBook, "S24");
       
    75 _LIT(KETelIccOciPhoneBook, "S25");
       
    76 _LIT(KETelIccIciPhoneBook, "S26");
       
    77 _LIT(KETelIccNamStore ,"S27");
       
    78 _LIT(KETelIccInfoPhoneBook, "S28");
       
    79 
       
    80 _LIT(KETelLocationServices,"S29");
       
    81 
       
    82 // Types for Multimode ETel sub-sessions
       
    83 
       
    84 _LIT(KEtelCdmaPhoneBookType,"T1");
       
    85 _LIT(KEtelGsmPhoneBookType,"T2");
       
    86 _LIT(KEtelUSimPhoneBookType,"T3");
       
    87 
       
    88 // Types for SmartCardEap sub-sessions
       
    89 
       
    90 /**
       
    91 The prefix to all RMobileSmartCardEap sub-session names.
       
    92 */
       
    93 _LIT(KETelSmartCardEapSession, "ScEap");
       
    94 /**
       
    95 The length of KETelSmartCardEapSession.  Used to obtain a const value
       
    96 for this length at compile-time.
       
    97 */
       
    98 #define SCEAP_SSN_LENGTH 5
       
    99 
       
   100 /**
       
   101 EAP-MD5 type identifier.  Value taken from section 5 of RFC 3748 Jun 2004.
       
   102 This should be used as the EAP type identifier value of
       
   103 RMobileSmartCardEap::Open() if standard EAP-MD5 challenges are to be used.
       
   104 
       
   105 This value corresponds to one of the possible values returned in the type
       
   106 list of TUiccApplicationEapInfoV6.
       
   107 
       
   108 (Decimal value = 4)
       
   109 
       
   110 @see RMobileSmartCardEap::Open()
       
   111 @see RMobilePhone::TUiccApplicationEapInfoV6
       
   112 */
       
   113 _LIT8(KETelSmartCardEapTypeMD5, "04");
       
   114 
       
   115 /**
       
   116 EAP-TLS type identifier.  Value taken from section 4.1 of RFC 2716 Oct 1999.
       
   117 This should be used as the EAP type identifier value of
       
   118 RMobileSmartCardEap::Open() if standard EAP-TLS is to be used.
       
   119 
       
   120 This value corresponds to one of the possible values returned in the type
       
   121 list of TUiccApplicationEapInfoV6.
       
   122 
       
   123 (Decimal value = 13)
       
   124 
       
   125 @see RMobileSmartCardEap::Open()
       
   126 @see RMobilePhone::TUiccApplicationEapInfoV6
       
   127 */
       
   128 _LIT8(KETelSmartCardEapTypeTLS, "0D");
       
   129 
       
   130 /**
       
   131 EAP-SIM type identifier.
       
   132 This should be used as the EAP type identifier value of
       
   133 RMobileSmartCardEap::Open() if standard EAP-SIM is to be used.
       
   134 
       
   135 This value corresponds to one of the possible values returned in the type
       
   136 list of TUiccApplicationEapInfoV6.
       
   137 
       
   138 (Decimal value = 18)
       
   139 
       
   140 @see RMobileSmartCardEap::Open()
       
   141 @see RMobilePhone::TUiccApplicationEapInfoV6
       
   142 */
       
   143 _LIT8(KETelSmartCardEapTypeSIM, "12");
       
   144 
       
   145 /**
       
   146 EAP-AKA type identifier.
       
   147 This should be used as the EAP type identifier value of
       
   148 RMobileSmartCardEap::Open() if standard EAP-AKA is to be used.
       
   149 
       
   150 This value corresponds to one of the possible values returned in the type
       
   151 list of TUiccApplicationEapInfoV6.
       
   152 
       
   153 (Decimal value = 23)
       
   154 
       
   155 @see RMobileSmartCardEap::Open()
       
   156 @see RMobilePhone::TUiccApplicationEapInfoV6
       
   157 */
       
   158 _LIT8(KETelSmartCardEapTypeAKA, "17");
       
   159 
       
   160 /**
       
   161 EAP-TTLS type identifier.
       
   162 This should be used as the EAP type identifier value of
       
   163 RMobileSmartCardEap::Open() if standard EAP-TTLS is to be used.
       
   164 
       
   165 This value corresponds to one of the possible values returned in the type
       
   166 list of TUiccApplicationEapInfoV6.
       
   167 
       
   168 (Decimal value = 21)
       
   169 
       
   170 @see RMobileSmartCardEap::Open()
       
   171 @see RMobilePhone::TUiccApplicationEapInfoV6
       
   172 */
       
   173 _LIT8(KETelSmartCardEapTypeTTLS, "15");
       
   174 
       
   175 /***********************************************************************************/
       
   176 //
       
   177 //  Global Multimode constants and types
       
   178 // 
       
   179 /***********************************************************************************/
       
   180 
       
   181 /**
       
   182 Unique API identifier and Functional Unit constants
       
   183 Modes: Common 
       
   184 */
       
   185 enum TMultimodeETelV1Api
       
   186 	{
       
   187 	/** TSY supports the Multimode ETel v1.0 API.
       
   188 	
       
   189 	Modes: Common */
       
   190 	KETelExtMultimodeV1=3000,  // 3000 is unique reference for Multimode Etel v1.0 API
       
   191 	/** TSY supports the MobileSimAccess functional unit.
       
   192 	
       
   193 	Modes: Common */
       
   194 	KETelFuncMobileIccAccess,
       
   195 	/** TSY supports the MobileNetwork functional unit.
       
   196 	
       
   197 	Modes: Common */
       
   198 	KETelFuncMobileNetwork,
       
   199 	/** TSY supports the MobileIdentity functional unit.
       
   200 	
       
   201 	Modes: Common */
       
   202 	KETelFuncMobileIdentity,
       
   203 	/** TSY supports the MobilePower functional unit.
       
   204 	
       
   205 	Modes: Common */
       
   206 	KETelFuncMobilePower,
       
   207 	/** TSY supports the MobileSignal functional unit.
       
   208 	
       
   209 	Modes: GSM/WCDMA */
       
   210 	KETelFuncMobileSignal,
       
   211 	/** TSY supports the MobileIndicator functional unit.
       
   212 	
       
   213 	Modes: Common */
       
   214 	KETelFuncMobileIndicator,
       
   215 	/** TSY supports the MobileDTMF functional unit.
       
   216 	
       
   217 	Modes: Common */
       
   218 	KETelFuncMobileDTMF,
       
   219 	/** TSY supports the MobileUserNetworkAccess functional unit.
       
   220 	
       
   221 	Modes: Common */
       
   222 	KETelFuncMobileUserNetworkAccess,
       
   223 	/** TSY supports the MobileIdentityService functional unit.
       
   224 	
       
   225 	Modes: Common */
       
   226 	KETelFuncMobileIdentityService,
       
   227 	/** TSY supports the MobileCallForwarding functional unit.
       
   228 	
       
   229 	Modes: Common */
       
   230 	KETelFuncMobileCallForwarding,
       
   231 	/** TSY supports the MobileCallBarring functional unit.
       
   232 	
       
   233 	Modes: GSM/WCDMA */
       
   234 	KETelFuncMobileCallBarring,
       
   235 	/** TSY supports the MobileCallWaiting functional unit.
       
   236 	
       
   237 	Modes: Common */
       
   238 	KETelFuncMobileCallWaiting,
       
   239 	/** TSY supports the MobileCallCompletion functional unit. */
       
   240 	KETelFuncMobileCallCompletion,
       
   241 	/** TSY supports the MobileAlternatingCall functional unit.
       
   242 	
       
   243 	Modes: GSM/WCDMA */
       
   244 	KETelFuncMobileAlternatingCall,
       
   245 	/** TSY supports the MobileCost functional unit.
       
   246 	
       
   247 	Modes: GSM/WCDMA */
       
   248 	KETelFuncMobileCost,
       
   249 	/** TSY supports the MobileSecurity functional unit.
       
   250 	
       
   251 	Modes: Common */
       
   252 	KETelFuncMobileSecurity,
       
   253 	/** TSY supports the MobileAlternateLineService functional unit.
       
   254 	
       
   255 	Modes: GSM/WCDMA */
       
   256 	KETelFuncMobileAlternateLineService,
       
   257 	/** TSY supports the MobileMessageWaiting functional unit.
       
   258 	
       
   259 	Modes: Common */
       
   260 	KETelFuncMobileMessageWaiting,
       
   261 	/** TSY supports the MobileFixedDiallingNumbers functional unit.
       
   262 	
       
   263 	Modes: GSM/WCDMA */
       
   264 	KETelFuncMobileFixedDiallingNumbers,
       
   265 	/** TSY supports the MobileDataCall functional unit.
       
   266 	
       
   267 	Modes: Common */
       
   268 	KETelFuncMobileDataCall,
       
   269 	/** TSY supports the MobilePrivacy functional unit.
       
   270 	
       
   271 	Modes: CDMA 
       
   272 	@deprecated 9.5
       
   273 	*/
       
   274 	KETelFuncMobilePrivacy,
       
   275 	/** TSY supports the MobileEmergencyCall functional unit.
       
   276 	
       
   277 	Modes: Common */
       
   278 	KETelFuncMobileEmergencyCall,
       
   279 	/** TSY supports the MobileSmsMessaging functional unit.
       
   280 	
       
   281 	Modes: Common */
       
   282 	KETelFuncMobileSmsMessaging,
       
   283 	/** TSY supports the MobileBroadcastMessaging functional unit.
       
   284 	
       
   285 	Modes: Common */
       
   286 	KETelFuncMobileBroadcastMessaging,
       
   287 	/** TSY supports the MobileUssdMessaging functional unit.
       
   288 	
       
   289 	Modes: GSM/WCDMA */
       
   290 	KETelFuncMobileUssdMessaging,
       
   291 	/** TSY supports the MobileConferenceCall functional unit.
       
   292 	
       
   293 	Modes: Common */
       
   294 	KETelFuncMobileConferenceCall,
       
   295 	/** TSY supports the MobilePhonebookStore functional unit.
       
   296 	
       
   297 	Modes: Common */
       
   298 	KETelFuncMobilePhonebook,
       
   299 	/** TSY supports the MobileSmsStore functional unit.
       
   300 	
       
   301 	Modes: Common */
       
   302 	KETelFuncMobileSmsStore,
       
   303 	/** TSY supports the MobileNamStore functional unit.
       
   304 	
       
   305 	Modes: CDMA 
       
   306 	@deprecated 9.5
       
   307 	*/
       
   308 	KETelFuncMobileNamStore,
       
   309 	/** TSY supports the MobileONStore functional unit.
       
   310 	
       
   311 	Modes: Common */
       
   312 	KETelFuncMobileOwnNumberStore,
       
   313 	/** TSY supports the MobileENStore functional unit.
       
   314 	
       
   315 	Modes: Common */
       
   316 	KETelFuncMobileEmergencyNumberStore,
       
   317 	/** TSY supports the MobileMultimedia functional unit.
       
   318 	
       
   319 	Modes: GSM/WCDMA */
       
   320 	KETelFuncMobileMulticall,
       
   321 	/** TSY supports the MobileNextIncomingCall functional unit.
       
   322 	
       
   323 	Modes: GSM/WCDMA */
       
   324 	KETelFuncMobileNextIncomingCall,
       
   325 	/** TSY supports the MobileMultimediaCall functional unit.
       
   326 	
       
   327 	Modes: GSM/WCDMA */
       
   328 	KETelFuncMobileMultimediaCall,
       
   329 	/** TSY supports the MobileUserSignalling functional unit.
       
   330 	
       
   331 	Modes: GSM/WCDMA */
       
   332 	KETelFuncMobileUserSignalling
       
   333 	};
       
   334 
       
   335 /** Unique API identifier and Functional Unit constants.
       
   336 Modes: WCDMA 
       
   337 
       
   338 */
       
   339 enum TMultimodeETelV2Api
       
   340 	{
       
   341 	/** TSY supports the Multimode ETel v2.0 API.
       
   342 	
       
   343 	Modes: WCDMA */
       
   344 	KETelExtMultimodeV2=7000,  // 7000 is unique reference for Multimode Etel v2.0 API
       
   345 	/** TSY supports the MobileMultimediaCallSettings functional unit.
       
   346 	
       
   347 	Modes: WCDMA */
       
   348 	KEtelFuncMobileMultimediaCallSettings,
       
   349 	/** TSY supports the MobileNetworkSecurity functional unit.
       
   350 	
       
   351 	Modes: WCDMA */
       
   352 	KEtelFuncMobileNetworkSecurity,
       
   353 	KEtelFuncMobileUSIMApplications
       
   354 	};
       
   355 	
       
   356 /**
       
   357 Enum to define the v3.0 API additions
       
   358 
       
   359 */
       
   360 enum TMultimodeETelV3Api
       
   361 	{
       
   362 	/**
       
   363 	Indicator that the TSY supports the Multimode ETel v3.0 API.
       
   364 	*/
       
   365 	KETelExtMultimodeV3 = 10000,	
       
   366 	/**
       
   367 	TSY supports the MobileMMSInformation functional unit.
       
   368 	*/
       
   369 	KEtelFuncMobileMMSInformation,       // 10001
       
   370 	/**
       
   371 	TSY supports the KEtelFuncMobileAirTime functional unit.
       
   372 	*/
       
   373 	KEtelFuncMobileAirTime,              // 10002
       
   374 	/**
       
   375 	TSY supports the KEtelFuncMobileAutoRedial functional unit.
       
   376 	*/
       
   377 	KEtelFuncMobileAutoRedial,           // 10003
       
   378 	/**
       
   379 	TSY supports the KEtelFuncMobilePersonalisation functional unit.
       
   380 	*/
       
   381 	KEtelFuncMobilePersonalisation,      // 10004
       
   382 	/**
       
   383 	TSY supports the KEtelMobileMailboxNumbers functional unit.
       
   384 	*/
       
   385 	KEtelFuncMobileMailboxNumbers,       // 10005
       
   386 	/**
       
   387 	TSY supports the Mobile APN Control List functional unit.
       
   388 	*/
       
   389 	KEtelFuncMobileAPNControlList        // 10006
       
   390 	};
       
   391 
       
   392 /**
       
   393 Enum to define the v4.0 API additions
       
   394 
       
   395 */
       
   396 enum TMultimodeETelV4Api
       
   397 	{
       
   398 	/**
       
   399 	Indicator that the TSY supports the Multimode ETel v4.0 API.
       
   400 	*/
       
   401 	KETelExtMultimodeV4	= 15000
       
   402 	};
       
   403 
       
   404 
       
   405 /** Enum to define Release 5 enabling API and data structures
       
   406 */
       
   407 enum TMultimodeEtelV5Api
       
   408 	{
       
   409 	/**
       
   410 	Indicator that the TSY supports the Multimode ETel v5.0 API.
       
   411 	*/	
       
   412 	KEtelExtMultimodeV5=20000,
       
   413 	/**
       
   414 	Indicator that the TSY supports the IMS functional unit.
       
   415 	*/	
       
   416 	KEtelFuncMobileIMS,                  // 20001
       
   417 	/**
       
   418 	TSY supports the KEtelFuncMobileSmartCardApplications functional unit.
       
   419 	*/
       
   420 	KEtelFuncMobileSmartCardApplications // 20002
       
   421 	};
       
   422 
       
   423 
       
   424 /**
       
   425 Enum to define the v6.0 API additions.
       
   426 */
       
   427 enum TMultimodeEtelV6Api
       
   428 	{
       
   429 	/**
       
   430 	Indicator that the TSY supports the Multimode ETel v6.0 API.
       
   431 	*/	
       
   432 	KEtelExtMultimodeV6=25000,
       
   433 	/**
       
   434 	Indicator that the TSY supports the EAP supporting functional unit.
       
   435 	*/	
       
   436 	KEtelSmartCardEap                    // 25001
       
   437 	};
       
   438 	
       
   439 /**
       
   440 Enum to define the v7.0 API additions.
       
   441 */
       
   442 enum TMultimodeEtelV7Api
       
   443 	{
       
   444 	/**
       
   445 	Indicator that the TSY supports the Multimode ETel v7.0 API.
       
   446 	*/	
       
   447 	KEtelExtMultimodeV7=30000,
       
   448 	/**
       
   449 	Indicator that the TSY supports the LocationServices supporting functional unit.
       
   450 	*/	
       
   451 	KEtelLocationControlServices                    // 30001
       
   452 	};
       
   453 
       
   454 /**
       
   455 Enum to define the v8.0 API additions.
       
   456 */
       
   457 enum TMultimodeEtelV8Api
       
   458 	{
       
   459 	/**
       
   460 	Indicator that the TSY supports the Multimode ETel v8.0 API.
       
   461 	*/	
       
   462 	KEtelExtMultimodeV8=35000,
       
   463 	/**
       
   464 	Indicator that the TSY supports HSUPA.
       
   465 	*/	
       
   466 	KEtelHsupa,                   // 35001
       
   467 	/**
       
   468 	Indicator that the TSY supports GBA authentication functional unit
       
   469 	*/
       
   470 	KEtelFuncGenericBootstrapArchitecture,
       
   471 	/**
       
   472 	Indicator that the TSY supports MBMS authentication functional unit 
       
   473 	*/
       
   474 	KEtelFuncMBMS,
       
   475 	/*
       
   476 	Indicator that the TSY supports WLAN parameters on the USIM functional unit 
       
   477 	*/
       
   478 	KEtelFuncWLan
       
   479 	};
       
   480 			
       
   481 /**
       
   482 Enum to define the v9.0 API additions.
       
   483 */
       
   484 enum TMultimodeEtelV9Api
       
   485 	{
       
   486 	/**
       
   487 	Indicator that the TSY supports the Multimode ETel v9.0 API.
       
   488 	*/	
       
   489 	KEtelExtMultimodeV9=45000,
       
   490 	/**
       
   491 	Indicator that the TSY supports the Cell Information functional unit.
       
   492 	*/	
       
   493 	KEtelFuncCellInfo,                   // 45001
       
   494 	};
       
   495 		
       
   496 /**
       
   497 Enum to define the Etel 3rdParty V1 API additions
       
   498 
       
   499 */
       
   500 enum TMultimodeETel3rdPartyV1Api 
       
   501 	{
       
   502 	/**
       
   503 	Indicator that the TSY supports the Etel 3rd Party v1.0 API
       
   504 	*/
       
   505 	KETelExt3rdPartyV1 = 40000
       
   506 	};
       
   507 
       
   508 	
       
   509 /*********************************************************/
       
   510 //
       
   511 // Phone based functionality (RMobilePhone)
       
   512 // 
       
   513 /*********************************************************/
       
   514 
       
   515 
       
   516 class CMobilePhonePtrHolder;
       
   517 class CMobilePhoneStoredNetworkList;
       
   518 class CMobilePhoneStoredWlanSIDList;
       
   519 class RMobileSmartCardEap;
       
   520 
       
   521 class RMobilePhone : public RPhone
       
   522 /**
       
   523 Provides client access to mobile phone functionality provided by TSY.
       
   524 
       
   525 Encapsulates access to a mobile phone. The functionality of RMobilePhone 
       
   526 is divided into a number of functional units, for the purpose of easier documentation 
       
   527 and navigation and selectable support by TSY.
       
   528 
       
   529 Note: Some RMobilePhone function members must be supported by the TSY while 
       
   530 others are part of optional "functional unit" and only need to be supported 
       
   531 if the TSY supports that functional unit. When a functional unit is mandatory 
       
   532 then the unit should at least support the Get...Caps() member function to 
       
   533 indicate the member functions that are supported for this unit.
       
   534  
       
   535 */
       
   536 	{
       
   537 public:
       
   538 	friend class CAsyncRetrievePhoneList;
       
   539 	IMPORT_C RMobilePhone();
       
   540 
       
   541 	// Global multimode types
       
   542 
       
   543 	
       
   544 	class TMultimodeType
       
   545 	/**
       
   546 	Base class for all the V1 parameter types defined within the API.
       
   547 	
       
   548 	@publishedPartner
       
   549 	@released
       
   550 	*/
       
   551 		{
       
   552 	public:
       
   553 		IMPORT_C TInt ExtensionId() const;
       
   554 	protected:
       
   555 		TMultimodeType();
       
   556 		void InternalizeL(RReadStream& aStream);
       
   557 		void ExternalizeL(RWriteStream& aStream) const;
       
   558 	protected:
       
   559 		TInt iExtensionId;
       
   560 		};
       
   561 		
       
   562 	/** A typedef'd packaged TMultimodeType for passing through a generic API 
       
   563 	function member. */
       
   564 	typedef TPckg<TMultimodeType> TMultimodeTypePckg;
       
   565 
       
   566 	// Types used in RMobilePhone::TMobileAddress
       
   567 
       
   568 /** Address types.
       
   569 
       
   570 Modes: Common */
       
   571 	enum TMobileTON
       
   572 		{
       
   573 	/** User or the network has no knowledge of the type of number.
       
   574 	
       
   575 	Modes: Common */
       
   576 		EUnknownNumber,			// 0
       
   577 	/** International number.
       
   578 	
       
   579 	Modes: Common */
       
   580 		EInternationalNumber,	// 1
       
   581 	/** National number.
       
   582 	
       
   583 	Modes: Common */
       
   584 		ENationalNumber,		// 2
       
   585 	/** Administration/service number specific to the serving network, e.g. used to 
       
   586 	access an operator.
       
   587 	
       
   588 	Modes: Common */
       
   589 		ENetworkSpecificNumber, // 3
       
   590 	/** Subscriber number.
       
   591 	
       
   592 	Modes: Common */
       
   593 		ESubscriberNumber,		// 4 - Also defined as "dedicated, short code" in GSM 04.08
       
   594 	/** Alphanumeric number coded according to 3GPP TS 123 038 GSM 7-bit default alphabet.
       
   595 	
       
   596 	Modes: GSM/WCDMA */
       
   597 		EAlphanumericNumber,	// 5
       
   598 	/** Abbreviated number.
       
   599 	
       
   600 	Modes: Common */
       
   601 		EAbbreviatedNumber		// 6
       
   602 		};
       
   603 
       
   604 /** Number Plan Indicator.
       
   605 
       
   606 Modes: Common */
       
   607 	enum TMobileNPI
       
   608 		{
       
   609 	/** User or the network has no knowledge of the numbering plan.
       
   610 	
       
   611 	Modes: Common */
       
   612 		EUnknownNumberingPlan =0,
       
   613 	/** ISDN/telephony numbering plan.
       
   614 	
       
   615 	Modes: Common */
       
   616 		EIsdnNumberPlan=1,		
       
   617 	/** Data numbering plan.
       
   618 
       
   619 	Modes: Common */
       
   620 		EDataNumberPlan=3,		
       
   621 	/** Telex numbering plan.
       
   622 
       
   623 	Modes: Common */
       
   624 		ETelexNumberPlan=4,	
       
   625 	/** Service centre specific plan used to indicate a numbering plan specific to external 
       
   626 	Short Message entities attached to the SMSC. */
       
   627 		EServiceCentreSpecificPlan1=5,
       
   628 	/** Service centre specific plan used to indicate a numbering plan specific to external 
       
   629 	Short Message entities attached to the SMSC.
       
   630 	
       
   631 	Modes: GSM/WCDMA */
       
   632 		EServiceCentreSpecificPlan2=6,
       
   633 	/** National numbering plan.
       
   634 	
       
   635 	Modes: GSM/WCDMA */
       
   636 		ENationalNumberPlan=8,
       
   637 	/** Private numbering plan.
       
   638 	
       
   639 	Modes: Common */
       
   640 		EPrivateNumberPlan=9,
       
   641 	/** ERMES numbering plan.
       
   642 	
       
   643 	Modes: GSM/WCDMA */
       
   644 		EERMESNumberPlan=10
       
   645 		};
       
   646 
       
   647 	enum 
       
   648 		{
       
   649 		KMaxMobilePasswordSize=10,
       
   650 		KMaxMobileNameSize=32,
       
   651 		KMaxMobileTelNumberSize=100
       
   652 		};
       
   653 
       
   654 	struct TMMTableSettings
       
   655 		{
       
   656 		TUint32 iLocId;
       
   657 		};
       
   658 
       
   659 	typedef TPckg<TMMTableSettings> TMMTableSettingsPckg;
       
   660 
       
   661 	
       
   662 
       
   663 	class TMobileAddress
       
   664 	/**
       
   665 	Defines API abstraction of a mobile telephone number.
       
   666 	
       
   667 	@publishedPartner
       
   668 	@released
       
   669 	*/
       
   670 		{
       
   671 	public:
       
   672 		IMPORT_C TMobileAddress();
       
   673 			
       
   674 		void InternalizeL(RReadStream& aStream);
       
   675 		void ExternalizeL(RWriteStream& aStream) const;
       
   676 			
       
   677 	public:
       
   678 		/** Type of number.
       
   679 		
       
   680 		@see TMobileTON */
       
   681 		TMobileTON iTypeOfNumber;
       
   682 		/** Number plan.
       
   683 		
       
   684 		@see TMobileNPI */
       
   685 		TMobileNPI iNumberPlan;
       
   686 		/** Telephone number. */
       
   687 		TBuf<KMaxMobileTelNumberSize> iTelNumber;
       
   688 		};
       
   689 
       
   690 	// Mobile information location type
       
   691 
       
   692 	/** Defines Location of service information.
       
   693 
       
   694 	Modes: Common */
       
   695 	enum TMobileInfoLocation
       
   696 		{
       
   697 		/** Retrieve the service information ONLY from the cache on the phone. Return KErrNotFound 
       
   698 		if the cache does not exist or it is empty. */
       
   699 		EInfoLocationCache,
       
   700 		/** Retrieve the service information from the cache, but if this is empty or does 
       
   701 		not exist then interrogate the network. */
       
   702 		EInfoLocationCachePreferred,
       
   703 		/** Retrieve the service information from the network (and refresh the cache if 
       
   704 		there is one). */
       
   705 		EInfoLocationNetwork
       
   706 		};
       
   707 
       
   708 	// Mobile call service type
       
   709 
       
   710 	/** Applicability of request to a mobile service group.
       
   711 
       
   712 	Modes: Common */
       
   713 	enum TMobileService
       
   714 		{
       
   715 		/** The call service has not been specified.
       
   716 		
       
   717 		Modes: Common */
       
   718 		EServiceUnspecified,
       
   719 		/** The API request applies to voice call services.
       
   720 
       
   721 		Modes: Common */
       
   722 		EVoiceService,
       
   723 		/** The API request applies to auxiliary voice call services.
       
   724 
       
   725 		Modes: GSM/WCDMA */
       
   726 		EAuxVoiceService,
       
   727 		/** The API request applies to circuit switched data call services.
       
   728 		
       
   729 		Modes: Common */
       
   730 		ECircuitDataService,
       
   731 		/** The API request applies to packet data services.
       
   732 	
       
   733 		Modes: Common */
       
   734 		EPacketDataService,
       
   735 		/** The API request applies to fax call services.
       
   736 	
       
   737 		Modes: Common */
       
   738 		EFaxService,
       
   739 		/** The API request applies to short message services.
       
   740 	
       
   741 		Modes: Common */
       
   742 		EShortMessageService,
       
   743 		/** The API request applies to all mobile services.
       
   744 	
       
   745 		Modes: Common */
       
   746 		EAllServices,
       
   747 		/** All teleservices
       
   748 	
       
   749 		Modes: Common */
       
   750 		EAllTele,
       
   751 		/** Telephony
       
   752 	
       
   753 		Modes: Common */
       
   754 		ETelephony,
       
   755 		/** All data teleservices
       
   756 	
       
   757 		Modes: Common */
       
   758 		EAllDataTele,
       
   759 		/** Voice Broadcast Service (VBS) Bearer Service
       
   760 	
       
   761 		Modes: Common */
       
   762 		EAllDataExSms,
       
   763 		/** All teleservices except SMS
       
   764 	
       
   765 		Modes: Common */
       
   766 		EAllTeleExcSms,
       
   767 		/** All PLMN specific teleservices
       
   768 	
       
   769 		Modes: Common */
       
   770 		EAllPlmnTele,
       
   771 		/** PLMN specific teleservice 1
       
   772 	
       
   773 		Modes: Common */
       
   774 		EPlmnTele1,
       
   775 		/** PLMN specific teleservice 2
       
   776 	
       
   777 		Modes: Common */
       
   778 		EPlmnTele2,
       
   779 		/** PLMN specific teleservice 3
       
   780 	
       
   781 		Modes: Common */
       
   782 		EPlmnTele3,
       
   783 		/** PLMN specific teleservice 4
       
   784 	
       
   785 		Modes: Common */
       
   786 		EPlmnTele4,
       
   787 		/** PLMN specific teleservice 5
       
   788 
       
   789 		Modes: Common */
       
   790 		EPlmnTele5,
       
   791 		/** PLMN specific teleservice 6
       
   792 
       
   793 		Modes: Common */
       
   794 		EPlmnTele6,
       
   795 		/** PLMN specific teleservice 7
       
   796 	
       
   797 		Modes: Common */
       
   798 		EPlmnTele7,
       
   799 		/** PLMN specific teleservice 8
       
   800 	
       
   801 		Modes: Common */
       
   802 		EPlmnTele8,
       
   803 		/** PLMN specific teleservice 9
       
   804 	
       
   805 		Modes: Common */
       
   806 		EPlmnTele9,
       
   807 		/** PLMN specific teleservice 10
       
   808 	
       
   809 		Modes: Common */
       
   810 		EPlmnTeleA,
       
   811 		/** PLMN specific teleservice 11
       
   812 	
       
   813 		Modes: Common */
       
   814 		EPlmnTeleB,
       
   815 		/** PLMN specific teleservice 12
       
   816 	
       
   817 		Modes: Common */
       
   818 		EPlmnTeleC,
       
   819 		/** PLMN specific teleservice 13
       
   820 	
       
   821 		Modes: Common */
       
   822 		EPlmnTeleD,
       
   823 		/** PLMN specific teleservice 14
       
   824 	
       
   825 		Modes: Common */
       
   826 		EPlmnTeleE,
       
   827 		/** PLMN specific teleservice 15
       
   828 	
       
   829 		Modes: Common */
       
   830 		EPlmnTeleF,
       
   831 		/** All bearer services
       
   832 		
       
   833 		Modes: Common */
       
   834 		EAllBearer,
       
   835 		/** All async services
       
   836 	
       
   837 		Modes: Common */
       
   838 		EAllAsync,
       
   839 		/** All sync services
       
   840 	
       
   841 		Modes: Common */
       
   842 		EAllSync,
       
   843 		/** All data circuit sync
       
   844 	
       
   845 		Modes: Common */
       
   846 		ESyncData,
       
   847 		/** All data circuit async
       
   848 	
       
   849 		Modes: Common */
       
   850 		EAsyncData,
       
   851 		/** All packet data services
       
   852 	
       
   853 		Modes: Common */
       
   854 		EPacketData,
       
   855 		/** All pad access services
       
   856 
       
   857 		Modes: Common */
       
   858 		EPadAccess,
       
   859 		/** All PLMN specific bearer services
       
   860 
       
   861 		Modes: Common */
       
   862 		EAllPlmnBearer,
       
   863 		/** PLMN specific bearer service 1
       
   864 	
       
   865 		Modes: Common */
       
   866 		EPlmnBearerServ1,
       
   867 		/** PLMN specific bearer service 2
       
   868 	
       
   869 		Modes: Common */
       
   870 		EPlmnBearerServ2,
       
   871 		/** PLMN specific bearer service 3
       
   872 	
       
   873 		Modes: Common */
       
   874 		EPlmnBearerServ3,
       
   875 		/** PLMN specific bearer service 4
       
   876 	
       
   877 		Modes: Common */
       
   878 		EPlmnBearerServ4,
       
   879 		/** PLMN specific bearer service 5
       
   880 	
       
   881 		Modes: Common */
       
   882 		EPlmnBearerServ5,
       
   883 		/** PLMN specific bearer service 6
       
   884 	
       
   885 		Modes: Common */
       
   886 		EPlmnBearerServ6,
       
   887 		/** PLMN specific bearer service 7
       
   888 	
       
   889 		Modes: Common */
       
   890 		EPlmnBearerServ7,
       
   891 		/** PLMN specific bearer service 8
       
   892 	
       
   893 		Modes: Common */
       
   894 		EPlmnBearerServ8,
       
   895 		/** PLMN specific bearer service 9
       
   896 	
       
   897 		Modes: Common */
       
   898 		EPlmnBearerServ9,
       
   899 		/** PLMN specific bearer service 10
       
   900 	
       
   901 		Modes: Common */
       
   902 		EPlmnBearerServA,
       
   903 		/** PLMN specific bearer service 11
       
   904 	
       
   905 		Modes: Common */
       
   906 		EPlmnBearerServB,
       
   907 		/** PLMN specific bearer service 12
       
   908 	
       
   909 		Modes: Common */
       
   910 		EPlmnBearerServC,
       
   911 		/** PLMN specific bearer service 13
       
   912 	
       
   913 		Modes: Common */
       
   914 		EPlmnBearerServD,
       
   915 		/** PLMN specific bearer service 14
       
   916 	
       
   917 		Modes: Common */
       
   918 		EPlmnBearerServE,
       
   919 		/** PLMN specific bearer service 15
       
   920 	
       
   921 		Modes: Common */
       
   922 		EPlmnBearerServF,
       
   923 		/** Alternative tele services
       
   924 
       
   925 		Modes: Common */
       
   926 		EAltTele,
       
   927 		/** Voice Group Call Service (VGCS)
       
   928 
       
   929 		Modes: Common */
       
   930 		EVoiceGroupCall,
       
   931 		/** Voice Broadcast Service (VBS)
       
   932 
       
   933 		Modes: Common */
       
   934 		EVoiceBroadcast,
       
   935 		/** All GPRS Bearer Services
       
   936 
       
   937 		Modes: Common */
       
   938 		EAllGprsBearer
       
   939 		};
       
   940 
       
   941 	// Mobile name type
       
   942 
       
   943 	/** A typedef to hold the names of API sub-sessions. The names are coded as ASCII 
       
   944 	characters. */
       
   945 	typedef TBuf<KMaxMobileNameSize> TMobileName;
       
   946 
       
   947 	// Mobile password type
       
   948 
       
   949 	/** A typedef for the standard password used by mobile phones for secure access 
       
   950 	to services (phone lock, SIM lock, call barring password). The password is 
       
   951 	coded as Unicode characters. */
       
   952 	typedef TBuf<KMaxMobilePasswordSize> TMobilePassword;
       
   953 
       
   954 	// for use by client-side API code and TSY only
       
   955 
       
   956 	struct TClientId
       
   957 	/** This type is used within the 2-phase list retrieval classes. During both phases, 
       
   958 	the client-side API code will pass down the TClientId so that TSY can use
       
   959 	this information to match the first phase of the request to the second phase. */
       
   960 		{
       
   961 		/** The handle to the underlying RTelServer session. */
       
   962 		TInt iSessionHandle;
       
   963 		/** The handle to the sub-session to which this API request relates. */
       
   964 		TInt iSubSessionHandle;
       
   965 		};
       
   966 
       
   967 	/** Phone air interface capabilities. */
       
   968 	enum TMobilePhoneModeCaps
       
   969 		{
       
   970 		/** Phone can operate in GSM mode on 900/1800/1900 MHz bands. */
       
   971 		KCapsGsmSupported=0x00000001,
       
   972 		/** Phone can operate in GPRS mode on 900/1800/1900 MHz bands. */
       
   973 		KCapsGprsSupported=0x00000002,
       
   974 		/** Phone can operate in AMPS mode on 800MHz band. */
       
   975 		KCapsAmpsSupported=0x00000004,
       
   976 		/** 
       
   977 		  Phone can operate in CDMA (IS-95) mode on 800/1900 MHz bands. 
       
   978 		   @deprecated 9.5
       
   979 		  */
       
   980 		KCapsCdma95Supported=0x00000008,
       
   981 		/** 
       
   982 		 Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands.
       
   983 		  @deprecated 9.5
       
   984 		 */
       
   985 		KCapsCdma2000Supported=0x00000010,
       
   986 		/** Phone can operate in W-CDMA (UTRA Frequency Division Duplex (FDD)) mode. */
       
   987 		KCapsWcdmaSupported=0x00000020,
       
   988 		/** Phone can operate in TDMA/CDMA (UTRA Time Division Duplex (TDD)) mode. */
       
   989 		KCapsTdcdmaSupported=0x00000040,
       
   990 		/** 
       
   991 		Phone can access Smart Card functionality required for an EAP. 
       
   992 		@deprecated 9.3
       
   993 		*/
       
   994 		KCapsEapSupported=0x00000080
       
   995 		};
       
   996 
       
   997 	/** Version number of the multimode ETel API. */
       
   998 	 enum TMultimodeEtelAPIVersion
       
   999 		{
       
  1000 		/** Multimode Etel API version 1. */
       
  1001 		 TMultimodeETelApiV1
       
  1002 		};
       
  1003 
       
  1004 	 //
       
  1005 	 //  API/TSY internal type
       
  1006 	 //
       
  1007 	
       
  1008 	 struct TPhoneStoreNameAndIccType
       
  1009 	/** Structure that holds the phone store name and ICC type.
       
  1010 
       
  1011 	Mode: Common */
       
  1012 		{
       
  1013 		/** This parameter is used to set the name of the storage. */
       
  1014 		TName iStoreName;
       
  1015 		/** This parameter is used to set the type of the ICC card. */
       
  1016 		TName iMode;
       
  1017 		};
       
  1018 
       
  1019 	IMPORT_C TInt GetMultimodeAPIVersion(TInt& aVersion) const;
       
  1020 
       
  1021 	IMPORT_C TInt GetMultimodeCaps(TUint32& aCaps) const;
       
  1022 
       
  1023 	IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aReqStatus, TDes8& aInfo, const TDesC& aStoreName) const;
       
  1024 
       
  1025 	IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aStatus, TDes8& aInfo, const TDesC& aStoreName, const TDesC& aMode) const;
       
  1026 
       
  1027 	// explicit phone initialisation
       
  1028 	IMPORT_C void InitialiseMM(TRequestStatus& aReqStatus, TDes8& aTableSettings) const; 
       
  1029 
       
  1030 	/***********************************************************************************/
       
  1031 	//
       
  1032 	// MobilePhoneIccAccess functional unit
       
  1033 	//
       
  1034 	/***********************************************************************************/
       
  1035 	
       
  1036 /** ICC access capabilities.
       
  1037 
       
  1038 Modes: GSM */
       
  1039 	enum TMobilePhoneIccCaps
       
  1040 		{
       
  1041 	/** Phone has a SIM and it currently supports SIM access by clients.
       
  1042 	
       
  1043 	Modes: GSM */
       
  1044 		KCapsSimAccessSupported=0x00000001,
       
  1045 	/** Phone has a R-UIM and it currently supports R-UIM access by clients.
       
  1046 	
       
  1047 	Modes: CDMA 
       
  1048 	 @deprecated 9.5
       
  1049 	*/
       
  1050 		KCapsRUimAccessSupported=0x00000002,
       
  1051 	/** Phone has a USIM and it currently supports USIM access by clients.
       
  1052 	
       
  1053 	Modes: WCDMA */
       
  1054 		KCapsUSimAccessSupported=0x00000004
       
  1055 		};
       
  1056 		
       
  1057 
       
  1058 	enum 
       
  1059 	{
       
  1060 	/**
       
  1061 	Maximum size of an ICC identity. 
       
  1062 	
       
  1063 	NOTE: TS102.221 defines the maximum size of the ICC Identity as held in EF_ICCID as 10 bytes, however
       
  1064 	TS 51.011 mentions that network operators may issue a SIM with an identification number of 20 bytes.  
       
  1065 	Therefore to cover this possibility the higher figure of 20 bytes has been chosen as the maximum size of the ICC identity.
       
  1066 	*/
       
  1067 	KMaxSizeIccIdentity	= 20
       
  1068 	};
       
  1069 	
       
  1070 	/** A typedef to hold the ICC identity.*/
       
  1071 	typedef TBuf8<KMaxSizeIccIdentity> TIccIdentity; 
       
  1072 
       
  1073 	IMPORT_C TInt GetIccAccessCaps(TUint32& aCaps) const;
       
  1074 	IMPORT_C void NotifyIccAccessCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  1075 	IMPORT_C void GetIccIdentity(TRequestStatus& aReqStatus, TIccIdentity& aIdentity) const;
       
  1076 
       
  1077 /** The Call Transfer/Call Forward options that are supported by the CSP.
       
  1078 
       
  1079 Modes: WCDMA/GSM */
       
  1080 	enum TCspCallOffering
       
  1081 		{
       
  1082 	/** Indicates that "Call Transfer" is supported by the CSP. */
       
  1083 		KCspCT=0x08,
       
  1084 	/** Indicates that "Call Forwarding on Not Reachable" is supported by the CSP. */
       
  1085 		KCspCFNRc=0x10,
       
  1086 	/** Indicates that "Call Forwarding on No Reply" is supported by the CSP. */
       
  1087 		KCspCFNRy=0x20,
       
  1088 	/** Indicates that "Call Forwarding on Busy" is supported by the CSP. */
       
  1089 		KCspCFB=0x40,
       
  1090 	/** Indicates that "Call Forwarding Unconditional" is supported by the CSP. */
       
  1091 		KCspCFU=0x80
       
  1092 		};
       
  1093 
       
  1094 /** The call restrictions supported by the CSP.
       
  1095 
       
  1096 Modes: GSM/WCDMA */
       
  1097 	enum TCspCallRestriction
       
  1098 		{
       
  1099 	/** Indicates that "Barring of Incoming Calls when roaming outside the home PLMN 
       
  1100 	country" is supported by CSP. */
       
  1101 		KCspBICRoam=0x08,
       
  1102 	/** Indicates that "Barring of All Incoming Calls" is supported by CSP. */
       
  1103 		KCspBAIC=0x10,
       
  1104 	/** Indicates that "Barring of Outgoing International Calls except those directed 
       
  1105 	to the home PLMN country" is supported by CSP. */
       
  1106 		KCspBOICexHC=0x20,
       
  1107 	/** Indicates that "Barring of Outgoing International Calls" is supported by CSP. */
       
  1108 		KCspBOIC=0x40,
       
  1109 	/** Indicates that "Barring of All Outgoing Calls" is supported by CSP. */
       
  1110 		KCspBOAC=0x80
       
  1111 		};
       
  1112 
       
  1113 /** Other services supported by the CSP.
       
  1114 
       
  1115 Modes: GSM/WCDMA */
       
  1116 	enum TCspOtherSuppServices
       
  1117 		{
       
  1118 	/** Indicates that the Outgoing Access option of the Closed User Group service is 
       
  1119 	supported by the CSP. */
       
  1120 		KCspCUGOA=0x08,
       
  1121 	/** Indicates that the Preferential CUG option of the Closed User Group service 
       
  1122 	is supported by the CSP. */
       
  1123 		KCspPrefCUG=0x10,
       
  1124 	/** Indicates that the Advice of Charge service is supported by the CSP. */
       
  1125 		KCspAoC=0x20,
       
  1126 	/** Indicates that the Closed User Group service is supported by the CSP. */
       
  1127 		KCspCUG=0x40,
       
  1128 	/** Indicates that the Multiparty call service is supported by the CSP */
       
  1129 		KCspMPTY=0x80,
       
  1130 		};
       
  1131 
       
  1132 /** Call completion modes supported by this CSP.
       
  1133 
       
  1134 Modes: GSM/WCDMA */
       
  1135 	enum TCspCallCompletion
       
  1136 		{
       
  1137 	/** Indicates that the Call Completion to Busy Subscriber service is supported by 
       
  1138 	the CSP. */
       
  1139 		KCspCCBS=0x20,
       
  1140 	/** Indicates that the Call Waiting service is supported by the CSP. */
       
  1141 		KCspCW=0x40,
       
  1142 	/** Indicates that the Call Hold service is supported by the CSP. */
       
  1143 		KCspHOLD=0x80,
       
  1144 		};
       
  1145 
       
  1146 /** SMS Teleservices supported by the CSP.
       
  1147 
       
  1148 Modes: GSM/WCDMA */
       
  1149 	enum TCspTeleservices
       
  1150 		{
       
  1151 	/** Indicates that display of Validity Period menu options for SMS is supported 
       
  1152 	by the CSP. */
       
  1153 		KCspValidityPeriod=0x02,
       
  1154 	/** Indicates that display of Protocol ID menu options for SMS is supported by the 
       
  1155 	CSP. */
       
  1156 		KCspProtocolID=0x04,
       
  1157 	/** Indicates that SMS Delivery Confirmation is supported by the CSP. */
       
  1158 		KCspDelConf=0x08,
       
  1159 	/** Indicates that display of Reply Path menu options for outgoing SMS is supported 
       
  1160 	by the CSP. */
       
  1161 		KCspReplyPath=0x10,
       
  1162 	/** Indicates that the Cell Broadcast service is supported by the CSP. */
       
  1163 		KCspSMCB=0x20,
       
  1164 	/** Indicates mobile originated Short Messages are supported by CSP. */
       
  1165 		KCspSMMO=0x40,
       
  1166 	/** Indicates mobile terminated Short Messages are supported by CSP. */
       
  1167 		KCspSMMT=0x80,
       
  1168 		};
       
  1169 
       
  1170 /** Alternate Line Services */
       
  1171 	enum TCspCPHSTeleservices
       
  1172 		{
       
  1173 	/** Indicates that Alternate Line Service is supported by the CSP. */
       
  1174 		KCspALS=0x80
       
  1175 		};
       
  1176 
       
  1177 /** Currently not used. */
       
  1178 	enum TCspCPHSFeatures
       
  1179 		{
       
  1180 	/** This bit value is reserved for SST in Phase 1 CPHS. */
       
  1181 		KCspReservedSST=0x80
       
  1182 		};
       
  1183 
       
  1184 /** Number Identification option supported by the CSP.
       
  1185 
       
  1186 Modes: GSM/WCDMA */
       
  1187 	enum TCspNumberIdentification
       
  1188 		{
       
  1189 	/** Indicates that Calling Line Identity Presentation blocking per call (CLI sent 
       
  1190 	by default) is supported by the CSP. */
       
  1191 		KCspCLIBlock=0x01,
       
  1192 	/** Indicates that Calling Line Identity Presentation per call (CLI blocked by default) 
       
  1193 	is supported by the CSP. */
       
  1194 		KCspCLISend=0x02,
       
  1195 	/** Indicates that Connected Line Identification Presentation is supported by the 
       
  1196 	CSP. */
       
  1197 		KCspCOLP=0x10,
       
  1198 	/** Indicates that Connected Line Identification Restriction is supported by the 
       
  1199 	CSP. */
       
  1200 		KCspCOLR=0x20,
       
  1201 	/** Indicates that Calling Line Identification Presentation is supported by the CSP. */
       
  1202 		KCspCLIP=0x80,
       
  1203 		};
       
  1204 
       
  1205 /** Phase 2+ services supported by the CSP.
       
  1206 
       
  1207 Modes: GSM/WCDMA */
       
  1208 	enum TCspPhase2PlusServices
       
  1209 		{
       
  1210 	/** Indicates that Multiple Band roaming is supported by CSP. */
       
  1211 		KCspMultipleband=0x04,
       
  1212 	/** Indicates that Multiple Subscriber Profile is supported by CSP.
       
  1213 	
       
  1214 	v1.0 of Multimode ETel API does not support this feature */
       
  1215 		KCspMSP=0x08,
       
  1216 	/** Indicates that Voice Broadcast is supported by CSP.
       
  1217 	
       
  1218 	v1.0 of Multimode ETel API does not support this feature. */
       
  1219 		KCspVoiceBroadcast=0x10,
       
  1220 	/** Indicates that Voice Group Call is supported by CSP. 
       
  1221 	
       
  1222 	v1.0 of Multimode ETel API does not support this feature. */
       
  1223 		KCspVoiceGroupCall=0x20,
       
  1224 	/** Indicates that High Speed Circuit Switched Data is supported by CSP. */
       
  1225 		KCspHscsd=0x40,
       
  1226 	/** Indicates that General Packet Radio Service is supported by CSP. */
       
  1227 		KCspGprs=0x80
       
  1228 		};
       
  1229 
       
  1230 /** Value added services supported by this CSP.
       
  1231 
       
  1232 Modes: GSM/WCDMA */
       
  1233 	enum TCspValueAdded
       
  1234 		{
       
  1235 	/** Indicates that display of language selection menus is supported by the CSP.
       
  1236 	
       
  1237 	v1.0 of Multimode ETel API does not support this feature. */
       
  1238 		KCspLanguage=0x01,
       
  1239 	/** Indicates that display of data call option menu is supported by the CSP. */
       
  1240 		KCspData=0x04,
       
  1241 	/** Indicates that display of fax call option menu is supported by the CSP. */
       
  1242 		KCspFax=0x08,
       
  1243 	/** Indicates that display of the menu option to send a Short Message of type Email 
       
  1244 	is supported by the CSP. */
       
  1245 		KCspSMMOEmail=0x10,
       
  1246 	/** Indicates that display of the menu option to send a Short Message of type Paging 
       
  1247 	is supported by the CSP. */
       
  1248 		KCspSMMOPaging=0x20,
       
  1249 	/** Indicates that display of the menu option for manual PLMN selection is supported 
       
  1250 	by the CSP. */
       
  1251 		KCspPLMNMode=0x80,
       
  1252 		};
       
  1253 
       
  1254 	
       
  1255 
       
  1256 	class TMobilePhoneCspFileV1 : public TMultimodeType
       
  1257 	/** Defines contents of the CSP (Customer Service Profile) on the SIM. The profile 
       
  1258 	consists of the sum of the respective enums.
       
  1259 
       
  1260 	@see GetCustomerServiceProfile()
       
  1261 	@publishedPartner
       
  1262 	@released*/
       
  1263 		{
       
  1264 	public:
       
  1265 	/** Constructor. */
       
  1266 		IMPORT_C TMobilePhoneCspFileV1();
       
  1267 
       
  1268 	/** Sum of the TCspCallOffering. */
       
  1269 		TUint8	iCallOfferingServices;
       
  1270 	/** Sum of the TCspCallRestriction. */
       
  1271 		TUint8	iCallRestrictionServices;
       
  1272 	/** Sum of the TCspOtherSuppServices. */
       
  1273 		TUint8	iOtherSuppServices;
       
  1274 	/** Sum of the TCspCallCompletion. */
       
  1275 		TUint8	iCallCompletionServices;
       
  1276 	/** Sum of the TCspTeleservices. */
       
  1277 		TUint8  iTeleservices;
       
  1278 	/** Sum of the TCspCPHSTeleservices. */
       
  1279 		TUint8	iCphsTeleservices;
       
  1280 	/** Sum of the TCspCPHSFeatures. */
       
  1281 		TUint8	iCphsFeatures;
       
  1282 	/** Sum of the TCspNumberIdentification. */
       
  1283 		TUint8	iNumberIdentServices;
       
  1284 	/** Sum of the TCspPhase2PlusServices. */
       
  1285 		TUint8	iPhase2PlusServices;
       
  1286 	/** Sum of the TCspValueAdded. */
       
  1287 		TUint8	iValueAddedServices;
       
  1288 		};
       
  1289 
       
  1290 /** A typedef'd packaged TMobilePhoneCspFileV1 for passing through a generic API 
       
  1291 function member. */
       
  1292 	typedef TPckg<TMobilePhoneCspFileV1> TMobilePhoneCspFileV1Pckg;
       
  1293 
       
  1294 	IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const;
       
  1295 
       
  1296 /** SIM/USIM/CDMA Service Table.
       
  1297 
       
  1298 Modes: Common */
       
  1299 	enum TSSTServices1To8
       
  1300 		{
       
  1301 	/** Indicates that disabling PIN1 is supported by the ICC. */
       
  1302 		KSstPin1Disable=0x01,
       
  1303 	/** Indicates that storage of Abbreviated Dialling Numbers within this ICC is supported. */
       
  1304 		KSstADN=0x02,
       
  1305 	/** Indicates that the Fixed Dialling Numbers service and the storage of FDN numbers
       
  1306 	within this ICC is supported. */
       
  1307 		KSstFDN=0x04,
       
  1308 	/** Indicates that the Short Message Service and the storage of short messages within 
       
  1309 	this ICC is supported.
       
  1310 	
       
  1311 	Modes: Common */
       
  1312 		KSstSMS=0x08,
       
  1313 	/** Indicates that the Advice of Charge service is supported by this ICC.
       
  1314 	
       
  1315 	Modes: GSM/WCDMA */
       
  1316 		KSstAoC=0x10,
       
  1317 	/** Indicates that the storage of Configuration Capability Parameters associated 
       
  1318 	with an AND, FDN, MSISDN, LND or SDN is supported by this ICC.
       
  1319 	
       
  1320 	Modes: GSM/WCDMA */
       
  1321 		KSstCCP=0x20,
       
  1322 	/** Indicates that storage of a preferred network list is supported by this ICC.
       
  1323 	
       
  1324 	v1.0 of Multimode ETel API does not support this feature
       
  1325 	
       
  1326 	Modes: GSM/WCDMA */
       
  1327 		KSstPLMNSelector=0x40
       
  1328 		};
       
  1329 
       
  1330 /** SIM/USIM/CDMA Service Table (continued).
       
  1331 
       
  1332 Modes: GSM/WCDMA */
       
  1333 	enum TSSTServices9To16
       
  1334 		{
       
  1335 	/** Indicates that storage of MSISDN (own numbers) numbers within this ICC is supported.
       
  1336 	
       
  1337 	Modes: GSM/WCDMA */
       
  1338 		KSstMSISDN=0x01,
       
  1339 	/** Indicates that storage of extended (greater than 20 digits) ADN, LND and MSISDN
       
  1340 	numbers within this ICC is supported.
       
  1341 	
       
  1342 	Modes: Common */
       
  1343 		KSstExt1=0x02,
       
  1344 	/** Indicates that storage of extended (greater than 20 digits) FDN numbers within 
       
  1345 	this ICC is supported.
       
  1346 	
       
  1347 	Modes: Common */
       
  1348 		KSstExt2=0x04,
       
  1349 	/** Indicates that storage of SMS parameter records within this ICC is supported.
       
  1350 	
       
  1351 	Modes: Common */
       
  1352 		KSstSMSP=0x08,
       
  1353 	/** Indicates that storage of Last Numbers Dialled within this ICC is supported.
       
  1354 	
       
  1355 	Modes: Common */
       
  1356 		KSstLND=0x10,
       
  1357 	/** Indicates that the storage of Cell Broadcast message identifiers is supported 
       
  1358 	within this ICC.
       
  1359 	
       
  1360 	Modes: GSM/WCDMA */
       
  1361 		KSstCBMI=0x20,
       
  1362 	/** Indicates that access to the GID1 file is supported within this ICC.
       
  1363 	
       
  1364 	v1.0 of Multimode ETel API does not support this feature
       
  1365 	
       
  1366 	Modes: GSM/WCDMA */
       
  1367 		KSstGID1=0x40,
       
  1368 	/** Indicates that access to the GID2 file is supported within this ICC.
       
  1369 	
       
  1370 	v1.0 of Multimode ETel API does not support this feature
       
  1371 	
       
  1372 	Modes: GSM/WCDMA */
       
  1373 		KSstGID2=0x80
       
  1374 		};
       
  1375 	
       
  1376 /** SIM/USIM/CDMA Service Table (continued).
       
  1377 
       
  1378 v1.0 of Multimode ETel API does not support this feature
       
  1379 
       
  1380 Modes: Common */
       
  1381 	enum TSSTServices17To24
       
  1382 		{
       
  1383 	/** Indicates that access to the Service Provider Name within ICC is supported.
       
  1384 	
       
  1385 	v1.0 of Multimode ETel API does not support this feature
       
  1386 	
       
  1387 	Modes: Common */
       
  1388 		KSstSPName=0x01,
       
  1389 	/** Indicates that storage of Service Dialling Numbers within ICC is supported.
       
  1390 	
       
  1391 	Modes: Common */
       
  1392 		KSstSDN=0x02,
       
  1393 	/** Indicates that storage of extended (greater than 20 digits) SDN numbers within 
       
  1394 	this ICC/RUIM is supported.
       
  1395 	
       
  1396 	Modes: Common */
       
  1397 		KSstExt3=0x04,
       
  1398 	/** Indicates that access to the VGCS group identifier list within ICC is supported.
       
  1399 	
       
  1400 	v1.0 of Multimode ETel API does not support this feature
       
  1401 	
       
  1402 	Modes: GSM/WCDMA */
       
  1403 		KSstVGCSList=0x10,
       
  1404 	/** Indicates that access to the VBS group identifier list within ICC is supported.
       
  1405 	
       
  1406 	v1.0 of Multimode ETel API does not support this feature
       
  1407 
       
  1408 	Modes: GSM/WCDMA */
       
  1409 		KSstVBSList=0x20,
       
  1410 	/** Indicates that the enhanced Multi-Level Precedence and Pre-emption service is 
       
  1411 	supported by ICC
       
  1412 	
       
  1413 	v1.0 of Multimode ETel API does not support this feature
       
  1414 	
       
  1415 	Modes: GSM/WCDMA */
       
  1416 		KSsteMLPP=0x40,
       
  1417 	/** Indicates that automatic answer for eMLPP is supported by ICC
       
  1418 	
       
  1419 	v1.0 of Multimode ETel API does not support this feature
       
  1420 	
       
  1421 	Modes: GSM/WCDMA */
       
  1422 		KSstAnswereMLPP=0x80
       
  1423 		};
       
  1424 
       
  1425 /** SIM/USIM/CDMA Service Table (continued).
       
  1426 
       
  1427 Modes: GSM/WCDMA */
       
  1428 	enum TSSTServices25To32
       
  1429 		{
       
  1430 	/** Indicates that SAT SMS-CB data download is supported by ICC. */
       
  1431 		KSstSmsCbDataDownload=0x01,
       
  1432 	/** Indicates that SAT SMS-PP data download is supported by ICC. */
       
  1433 		KSstSmsPpDataDownload=0x02,
       
  1434 	/** Indicates that SAT menu selection is supported by ICC.
       
  1435 	
       
  1436 	SAT ETel API provides this feature. */
       
  1437 		KSstMenuSelection=0x04,
       
  1438 	/** Indicates that SAT call control is supported by ICC.
       
  1439 	
       
  1440 	SAT ETel API provides this feature. */
       
  1441 		KSstCallControl=0x08,
       
  1442 	/** Indicates that SAT pro-active SIM is supported by ICC.
       
  1443 	
       
  1444 	SAT ETel API provides this feature. */
       
  1445 		KSstProactiveSim=0x10,
       
  1446 	/** Indicates ICC storage of ranges of Cell Broadcast Message Identifiers is supported. */
       
  1447 		KSstCBMIRanges=0x20,
       
  1448 	/** Indicates ICC storage of Barred Dialling Numbers is supported. */
       
  1449 		KSstBDN=0x40,
       
  1450 	/** Indicates ICC storage of extended (greater than 20 digits) BDN numbers is supported. */
       
  1451 		KSstExt4=0x80
       
  1452 		};
       
  1453 
       
  1454 /** SIM/USIM/CDMA Service Table (continued).
       
  1455 
       
  1456 Modes: GSM/WCDMA */
       
  1457 	enum TSSTServices33To40
       
  1458 		{
       
  1459 	/** Indicates depersonalisation control keys are supported by ICC.
       
  1460 	
       
  1461 	v1.0 of Multimode ETel API does not support this feature. */
       
  1462 		KSstDepersonalisationKeys=0x01,
       
  1463 	/** Indicates co-operative network list are supported by this ICC.
       
  1464 	
       
  1465 	v1.0 of Multimode ETel API does not support this feature. */
       
  1466 		KSstCooperativeNetworks=0x02,
       
  1467 	/** Indicates Short Message Status Reports are supported by ICC. */
       
  1468 		KSstSMStatusReports=0x04,
       
  1469 	/** Indicates network's indication of alerting is supported by ICC.
       
  1470 	
       
  1471 	v1.0 of Multimode ETel API does not support this feature. */
       
  1472 		KSstNetworkIndAlerting=0x08,
       
  1473 	/** Indicates outgoing SM control by SAT is supported by ICC.
       
  1474 	
       
  1475 	SAT ETel API provides this feature. */
       
  1476 		KSstMoSmControlBySim=0x10,
       
  1477 	/** Indicates that GPRS is supported by this ICC.
       
  1478 	
       
  1479 	GPRS ETel API provides GPRS functionality. */
       
  1480 		KSstGprs=0x20,
       
  1481 	/** Indicates that Image files are supported by this ICC.
       
  1482 	
       
  1483 	SAT ETel API provides this feature. */
       
  1484 		KSstImage=0x40,
       
  1485 	/** Indicates that SoLSA in supported by this ICC.
       
  1486 	
       
  1487 	v1.0 of Multimode ETel API does not support this feature */
       
  1488 		KSstSoLSA=0x80
       
  1489 		};
       
  1490 
       
  1491 /** SIM/USIM/CDMA Service Table (continued).
       
  1492 
       
  1493 Modes: GSM/WCDMA */
       
  1494 	enum TSSTServices41To48
       
  1495 		{
       
  1496 	/** Indicates that USSD string data is supported in SAT Call Control by this ICC.
       
  1497 	
       
  1498 	SAT ETel API provides this feature. */
       
  1499 		KSstUssdStringInCallControl=0x01,
       
  1500 	/** Indicates that RUN AT COMMAND is supported in SAT by this ICC.
       
  1501 	
       
  1502 	v1.0 of Multimode ETel API does not support this feature */
       
  1503 		KSstRunATCommand=0x02,
       
  1504 	/** Indicates that PLMN selector list with access technology is supported by this 
       
  1505 	ICC.
       
  1506 	
       
  1507 	v1.0 of Multimode ETel API does not support this feature. */
       
  1508 		KSstPlmnSelectorListWithAccessTechnology=0x04,
       
  1509 	/** Indicates that OPLMN selector list with access technology is supported by this
       
  1510 	ICC.
       
  1511 	
       
  1512 	v1.0 of Multimode ETel API does not support this feature. */
       
  1513 		KSstOplmnSelectorListWithAccessTechnology=0x08,
       
  1514 	/** Indicates that HPLMN access technology is supported by this ICC.
       
  1515 	
       
  1516 	v1.0 of Multimode ETel API does not support this feature. */
       
  1517 		KSstHplmnAccessTechnology=0x10,
       
  1518 	/** Indicates that CPBCCH information is supported by this ICC.
       
  1519 	
       
  1520 	v1.0 of Multimode ETel API does not support this feature. */
       
  1521 		KSstCpbcchInformation=0x20,
       
  1522 	/** Indicates that Investigation Scan is supported by this ICC.
       
  1523 	
       
  1524 	v1.0 of Multimode ETel API does not support this feature. */
       
  1525 		KSstInvestigationScan=0x40,
       
  1526 	/** Indicates that extended capability configuration parameters are supported by 
       
  1527 	this ICC.
       
  1528 	
       
  1529 	v1.0 of Multimode ETel API does not support this feature. */
       
  1530 		KSstExtendedCcp=0x80
       
  1531 		};
       
  1532 
       
  1533 /** SIM/USIM/CDMA Service Table (continued).
       
  1534 
       
  1535 Modes: GSM/WCDMA */
       
  1536 	enum TSSTServices49To56
       
  1537 		{
       
  1538 	/** Indicates Mobile Execution Environment services are supported by this ICC */
       
  1539 		KSstMExE=0x01,
       
  1540 	/** Indicates that RPLMN last used access technology is supported by this ICC.
       
  1541 	
       
  1542 	v1.0 of Multimode ETel API does not support this feature. */
       
  1543 		KSstRplmnLastUsedAccessTechnology=0x02
       
  1544 		};
       
  1545 
       
  1546 /** USIM service table. */
       
  1547 	enum TUSTServices1To8
       
  1548 		{
       
  1549 	/** Indicates that the local phonebook is supported by the USIM. Local phonebook 
       
  1550 	means a phonebook that is specific to a USIM Application, as opposed to the 
       
  1551 	global phonebook which is located at the DF Telecom level on the UICC and 
       
  1552 	not attached to a USIM Application. */
       
  1553 		KUstLocalPhBk=0x01,
       
  1554 	/** Indicates that the Fixed Dialling Numbers (FDN) service and the storage of 
       
  1555 	FDN numbers within this USIM is supported. */
       
  1556 		KUstFDN=0x02,
       
  1557 	/** Indicates that the Extension 2 is supported by the USIM. Extension 2 provides 
       
  1558 	extension data for Fixed Dialling Numbers. */
       
  1559 		KUstExt2=0x04,
       
  1560 	/** Indicates that the Service Dialling Numbers are supported by the USIM. */
       
  1561 		KUstSDN=0x08,
       
  1562 	/** Indicates that the Extension 3 is supported by the USIM. Extension 3 provides 
       
  1563 	extension data for Service Dialling Numbers. */
       
  1564 		KUstExt3=0x10,
       
  1565 	/** Indicates that the Barred Dialling Numbers are supported by the USIM. */
       
  1566 		KUstBDN=0x20,
       
  1567 	/** Indicates that the Extension 4 is supported by the USIM. Extension 4 provides 
       
  1568 	extension data for Barred Dialling Numbers. */
       
  1569 		KUstExt4=0x40,
       
  1570 	/** Indicates that the outgoing call information (OCI and OCT) are supported by 
       
  1571 	the USIM.
       
  1572 	
       
  1573 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1574 		KUstOugoingCallInfo=0x80
       
  1575 		};
       
  1576 	
       
  1577 /** USIM service table (continued). */
       
  1578 	enum TUSTServices9To16
       
  1579 		{
       
  1580 	/** Indicates that the incoming call information (ICI and ICT) are supported by 
       
  1581 	the USIM
       
  1582 	
       
  1583 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1584 		KUstIncomingCallInfo=0x01,
       
  1585 	/** Indicates that Short Message Storage is supported by the USIM. */
       
  1586 		KUstSMS=0x02,
       
  1587 	/** Indicates that Short Message Status Reports are supported by the USIM. */
       
  1588 		KUstSMSR=0x04,
       
  1589 	/** Indicates that Short Message Service Parameters are supported by the USIM. */
       
  1590 		KUstSMSP=0x08,
       
  1591 	/** Indicates that Advice Of Charge is supported by the USIM. */
       
  1592 		KUstAoC=0x10,
       
  1593 	/** Indicates that Capability Configuration Parameters are supported by the USIM. */
       
  1594 		KUstCCP=0x20,
       
  1595 	/** Indicates that Cell Broadcast Message Identifier is supported by the USIM. */
       
  1596 		KUstCBMI=0x40,
       
  1597 	/** Indicates that Cell Broadcast Message Identifier Ranges are supported by the 
       
  1598 	USIM. */
       
  1599 		KUstCBMIRanges=0x80
       
  1600 		};
       
  1601 
       
  1602 /** USIM service table (continued). */
       
  1603 	enum TUSTServices17To24
       
  1604 		{
       
  1605 	/** Indicates that Group Identifier Level 1 is supported by the USIM.
       
  1606 	
       
  1607 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1608 		KUstGID1=0x01,
       
  1609 	/** Indicates that Group Identifier Level 2 is supported by the USIM.
       
  1610 	
       
  1611 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1612 		KUstGID2=0x02,
       
  1613 	/** Indicates that Service Provider Name is supported by the USIM. */
       
  1614 		KUstSPN=0x04,
       
  1615 	/** Indicates that user controlled PLMN selector with Access Technology is supported
       
  1616 	by the USIM.
       
  1617 	
       
  1618 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1619 		KUstPLMNSelAccessTech=0x08,
       
  1620 	/** Indicates that MSISDN is supported by the USIM. */
       
  1621 		KUstMSISDN=0x10,
       
  1622 	/** Indicates that Image is supported by the USIM.
       
  1623 	
       
  1624 	Note: (U)SAT ETel API provides this feature. This enum value is reserved for 
       
  1625 	future API use. */
       
  1626 		KUstIMG=0x20,
       
  1627 		//0x40 is a reserved value
       
  1628 	/** Indicates that enhanced Multi Level Precedence and Pre-emption Service is supported 
       
  1629 	by the USIM.
       
  1630 	
       
  1631 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1632 		KUsteMLPP=0x80
       
  1633 		};
       
  1634 
       
  1635 /** USIM service table (continued). */
       
  1636 	enum TUSTServices25To32
       
  1637 		{
       
  1638 	/** Indicates that Automatic Answer for eMLPP is supported by the USIM.
       
  1639 	
       
  1640 	Note: v1.0 and v2.0 of Multimode ETel API do not support this feature. */
       
  1641 		KUstAnswereMLPP=0x01,
       
  1642 		//0x02 is a reserved value
       
  1643 	/** Indicates that GSM Access is supported by the USIM */
       
  1644 		KUstGSMAccess=0x04,
       
  1645 	/** Indicates that Data download via SMS-PP is supported by the USIM.
       
  1646 	
       
  1647 	Note: (U)SAT ETel API provides this feature. */
       
  1648 		KUstSMSPpDataDownload=0x08,
       
  1649 	/** Indicates that Data download via SMS-CB is supported by the USIM.
       
  1650 	
       
  1651 	Note: (U)SAT ETel API provides this feature. */
       
  1652 		KUstSMSCbDataDownload=0x10,
       
  1653 	/** Indicates that Call Control by USIM is supported by the USIM.
       
  1654 	
       
  1655 	Note: (U)SAT ETel API provides this feature. */
       
  1656 		KUstCallControl=0x20,
       
  1657 	/** Indicates that MO-SMS Control by USIM is supported by the USIM.
       
  1658 	
       
  1659 	Note: (U)SAT ETel API provides this feature. */
       
  1660 		KUstMoSmControl=0x40,
       
  1661 	/** Indicates that the proactive command RUN AT COMMAND is supported by the USIM.
       
  1662 	
       
  1663 	Note: (U)SAT ETel API provides this feature. */
       
  1664 		KUstPCmdRunAtCommand=0x80		
       
  1665 		};
       
  1666 
       
  1667 /** USIM service table (continued). */
       
  1668 	enum TUSTServices33To40
       
  1669 		{
       
  1670 	/** Should always be present as specified by 3 GPP spec. */
       
  1671 		KUstAlways=0x10,
       
  1672 	/** Indicates that the Enabled Service Table is supported by the USIM. */
       
  1673 		KUstEST=0x02,
       
  1674 	/** Indicates that APN Control List is supported by the USIM.
       
  1675 	
       
  1676 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1677 		KUstACL=0x04,
       
  1678 	/** Indicates that the Depersonalisation Control Keys are supported by the USIM.
       
  1679 	
       
  1680 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1681 		KIstDepersonalisationKeys =0x08,
       
  1682 	/** Indicates that the Co-operative Network List is supported by the USIM.
       
  1683 
       
  1684 	Note: v2.0 of Multimode ETel API does not support this feature. */
       
  1685 		KUstCooperativeNetwork=0x10,
       
  1686 	/** Indicates that GSM Security Context is supported by the USIM. */
       
  1687 		KUstGSMSecurityContext=0x20,
       
  1688 	/** Indicates that CPBCCH Information is supported by the USIM.
       
  1689 	
       
  1690 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1691 		KUstCPBCCHInfo=0x40,
       
  1692 	/** Indicates that Investigation Scan is supported by the USIM.
       
  1693 	
       
  1694 	Note:v2.0 of Multimode ETel API do not support this feature. */
       
  1695 		KUstInvestigationScan=0x80
       
  1696 		};
       
  1697 
       
  1698 /** USIM service table (continued). */
       
  1699 	enum TUSTServices41To48
       
  1700 		{
       
  1701 	/** Indicates that MExE is supported by the USIM.
       
  1702 	
       
  1703 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1704 		KUstMExE=0x01,
       
  1705 	/** Indicates that Operator controlled PLMN selector with Access Technology is 
       
  1706 	supported by the USIM.
       
  1707 	
       
  1708 	N.B .v2.0 of Multimode ETel API do not support this feature. */
       
  1709 		KUstOperatorPLMNSelector=0x02,
       
  1710 	/** Indicates that HPLMN selector with Access Technology is supported by the USIM.
       
  1711 	
       
  1712 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1713 		KUstHPLMNSelAccessTech=0x04,
       
  1714 	/** Indicates that Extension 5 is supported by the USIM. Provides support for extension 
       
  1715 	data for MSISDN. */
       
  1716 		KUstExt5=0x08,
       
  1717 	/** Indicates that PLMN Network Name is supported by the USIM.
       
  1718 	
       
  1719 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1720 		KUstPLMNNetworkName=0x10,
       
  1721 	/** Indicates that Operator PLMN List is supported by the USIM.
       
  1722 	
       
  1723 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1724 		KUstOperatorPLMNList=0x20,
       
  1725 	/** Indicates that Mailbox Dialling Numbers are supported by the USIM. */
       
  1726 		KUstMDN=0x40,
       
  1727 	/** Indicates that Message Waiting Indication Status is supported by the USIM. */
       
  1728 		KUstMWISo=0x80
       
  1729 		};
       
  1730 
       
  1731 /** USIM service table (continued). */
       
  1732 	enum TUSTServices49To56
       
  1733 		{
       
  1734 	/** Indicates that Call forwarding indication status is supported by the USIM.
       
  1735 	
       
  1736 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1737 		KUstCFIS=0x01,
       
  1738 	/** Indicates that RPLMN last-used access technology is supported by the USIM (Release 5).
       
  1739 	From Release 6 this service is "Reserved and shall be ignored".
       
  1740 	
       
  1741 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1742 		KUstRPLMN=0x02,
       
  1743 	/** Indicates that Service provider display information is supported by the USIM.
       
  1744 	
       
  1745 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1746 		KUstSPDI=0x04,
       
  1747 	    KUstMMS=0x08,
       
  1748 	    KUstExt8=0x10,
       
  1749 	    KUstCConGPRS=0x20,
       
  1750 	    KUstMMSUCP=0x40
       
  1751 		};
       
  1752 
       
  1753 
       
  1754 /** USIM service table (continued). */
       
  1755 	enum TUSTServices57To64
       
  1756 		{
       
  1757 	/** Indicates that VGCS Group Identifier List ( VGCS and VGCSS) is supported by the USIM.
       
  1758 	
       
  1759 	Note: v8.0 of Multimode ETel API does not support this feature. */
       
  1760 		KUstVGCSGroupIdList=0x01,
       
  1761 	/** Indicates that VBS Group Identifier List ( VBS and VBSS ) is supported by the USIM.
       
  1762 	
       
  1763 	Note: v8.0 of Multimode ETel API does not support this feature. */
       
  1764 		KUstVBSGroupIdList=0x02,
       
  1765 	/** Indicates that Pseudonym  is supported by the USIM.*/
       
  1766 		KUstPseudonym=0x04,
       
  1767 	/** Indicates that User controlled PLMN selector for WLAN Access is supported by the USIM. */	
       
  1768 	    KUstUserPLMNSelectorWLAN=0x08,
       
  1769 	/** Indicates that Operator controlled PLMN selector for WLAN Access is supported by the USIM.*/    
       
  1770 	    KUstOperatorPLMNSelectorWLAN =0x10,
       
  1771 	/** Indicates that User controlled WLAN specific identifier list  is supported by the USIM.*/    
       
  1772 	    KUstUserWSIDList=0x20,
       
  1773 	/** Indicates that Opertor controlled WLAN specific identifier list  is supported by the USIM. */    
       
  1774   	    KUstOperatorWSIDList=0x40,
       
  1775 	/** Indicates that Voice Group Call Service Ciphering Algorithm is supported by the USIM.
       
  1776 	
       
  1777 	Note: v8.0 of Multimode ETel API does not support this feature. */  
       
  1778 	    KUstVGCSSecurity=0x80
       
  1779 		};
       
  1780 
       
  1781 /** USIM service table (continued). */
       
  1782 	enum TUSTServices65To72
       
  1783 		{
       
  1784 	/** Indicates that Voice Broadcast Service Ciphering Algorithm is supported by the USIM.
       
  1785 	
       
  1786 	 Note: v8.0 of Multimode ETel API does not support this feature. */  
       
  1787 		KUstVBSSecurity=0x01,
       
  1788 	/** Indicates that the WLAN Reauthentication Identity is supported by the USIM.*/
       
  1789 		KUstWLANReAuthenId=0x02,
       
  1790 	/** Indicates that Multimedia Message Storage is supported by the USIM.
       
  1791 	
       
  1792 	Note: v8.0 of Multimode ETel API does not support this feature. */  
       
  1793 		KUstMMStorage=0x04,
       
  1794 	/** Indicates that Generic Bootstrapping Architecture (GBA) is supported by the USIM */  
       
  1795 			
       
  1796 	    KUstGBA=0x08,
       
  1797 	/** Indicates that Multimedia Broadcast Multicast Service (MBMS) Security is supported by the USIM.*/  
       
  1798 	
       
  1799 	    KUstMBMSSecurity =0x10,
       
  1800 	 /** Indicates that USSD Data Dowload feature is supported by the USIM.
       
  1801 	
       
  1802 	Note: v8.0 of Multimode ETel API does not support this feature. */  
       
  1803 	
       
  1804 	    KUstUSSDDataDownload=0x20,
       
  1805 	/** Indicates that Additional TERMINAL PROFILE after UICC activation is supported by the USIM */  
       
  1806 	    KUstTerminalProfileUICCActivation=0x80
       
  1807 		};
       
  1808 
       
  1809 /** Enabled Services Table. */
       
  1810 	enum TESTServices1To8
       
  1811 		{
       
  1812 	/** Indicates that FDN service is activated. */
       
  1813 		KEstFDN=0x01,
       
  1814 	/** Indicates that BDN service is activated. */
       
  1815 		KEstBDN=0x02,
       
  1816 	/** Indicates that the APN Control List service is activated.
       
  1817 	
       
  1818 	Note: v2.0 of Multimode ETel API do not support this feature. */
       
  1819 		KEstACL=0x04
       
  1820 		};
       
  1821 
       
  1822  /** ISIM Service Table*/
       
  1823 	enum TISTServices1To8
       
  1824 		{
       
  1825 	/** Indicates that EFP-CSCF is present in the ISIM. */	
       
  1826 		KIstPCSCF=0x01,
       
  1827 	/** Indicates that the Generic Bootstrapping Architecture (GBA) is supported by the ISIM. */
       
  1828 		KIstGBA=0x02,
       
  1829 	/** Indicates that the ISIM supports operations in HTTP-Digest security context. */
       
  1830 		KIstHTTPDigest=0x04
       
  1831 		};
       
  1832 
       
  1833 
       
  1834 /** Get Service Table.
       
  1835 
       
  1836 Modes: GSM/WCDMA */
       
  1837 	enum TMobilePhoneServiceTable
       
  1838 		{
       
  1839 	/** Retrieve SIM service table on SIM (or from GSM application on UICC).
       
  1840 	
       
  1841 	Modes: GSM/WCDMA */
       
  1842 		ESIMServiceTable,
       
  1843 	/** Retrieve USIM service table from active USIM application on UICC.
       
  1844 	
       
  1845 	Modes: WCDMA */
       
  1846 		EUSIMServiceTable,
       
  1847 	/** Retrieve CDMA service table on R-UIM.
       
  1848 	
       
  1849 	Modes: CDMA 
       
  1850 	@deprecated 9.5	
       
  1851 	*/
       
  1852 		ECDMAServiceTable,
       
  1853 	/** USIM Enabled Services Table to be used in conjunction with the USIM Service 
       
  1854 	Table.
       
  1855 	
       
  1856 	Modes: WCDMA */
       
  1857 		EUSIMEnabledServiceTable,
       
  1858 	/** ISIM Service Table (IST) for the currently active ISIM application on the UICC is selected.
       
  1859 	
       
  1860 	Modes: WCDMA */	
       
  1861 		EISIMServiceTable
       
  1862 		};
       
  1863 
       
  1864 	
       
  1865 	class TMobilePhoneServiceTableV1 : public TMultimodeType
       
  1866 	/** Defines contents of the specified Service Table on the ICC.
       
  1867 
       
  1868 	@see GetServiceTable()
       
  1869 	@publishedPartner
       
  1870 	@released
       
  1871 	 */
       
  1872 		{
       
  1873 	public:
       
  1874 		IMPORT_C TMobilePhoneServiceTableV1();
       
  1875 
       
  1876 	/** Sum of the TSSTServices1To8 capability constants. */
       
  1877 		TUint8 iServices1To8;
       
  1878 	/** Sum of the TSSTServices9To16 capability constants. */
       
  1879 		TUint8 iServices9To16;
       
  1880 	/** Sum of the TSSTServices17To24 capability constants. */
       
  1881 		TUint8 iServices17To24;
       
  1882 	/** Sum of the TSSTServices25To32 capability constants. */
       
  1883 		TUint8 iServices25To32;
       
  1884 	/** Sum of the TSSTServices33To40 capability constants. */
       
  1885 		TUint8 iServices33To40;
       
  1886 	/** Sum of the TSSTServices41To48 capability constants. */
       
  1887 		TUint8 iServices41To48;
       
  1888 	/** Sum of the TSSTServices49To56 capability constants. */
       
  1889 		TUint8 iServices49To56;
       
  1890 		};
       
  1891 
       
  1892 /** A typedef'd packaged TMobilePhoneServiceTableV1 passing through a generic API 
       
  1893 function member. */
       
  1894 	typedef TPckg<TMobilePhoneServiceTableV1> TMobilePhoneServiceTableV1Pckg;
       
  1895 
       
  1896 	enum { KAIDSize=16 };
       
  1897 
       
  1898 /** A typedef'd buffer to hold the application identifier (AID) that identifies 
       
  1899 the USIM application in a UICC. The AID consists of a Registered application 
       
  1900 provider IDentifier (RID) of 5 bytes and a Proprietary application Identifier 
       
  1901 eXtension (PIX) of up to 11 bytes. */
       
  1902 	typedef TBuf8<KAIDSize> TAID; 
       
  1903 
       
  1904 	class TMobilePhoneServiceTableV2 : public TMobilePhoneServiceTableV1
       
  1905 /** Defines contents of the specified Service Table on the ICC for the v2.0 version 
       
  1906 of the API. 
       
  1907 */
       
  1908 		{
       
  1909 	public:
       
  1910 		IMPORT_C TMobilePhoneServiceTableV2();
       
  1911 	public:
       
  1912 	/** The application identifier. */
       
  1913 		TAID   iAID;
       
  1914 		};
       
  1915 
       
  1916 /** A typedef'd packaged TMobilePhoneServiceTableV2 passing through a generic API 
       
  1917 function member. */
       
  1918 	typedef TPckg<TMobilePhoneServiceTableV2> TMobilePhoneServiceTableV2Pckg;
       
  1919 	
       
  1920 	class TMobilePhoneServiceTableV8 : public TMobilePhoneServiceTableV2
       
  1921 	/** Defines contents of the specified Service Table on the UICC for the v8.0 version 
       
  1922 	of the API.
       
  1923 	See section 4.2.8 of 3GPP TS 31.102 v6.18.0 of the API. 
       
  1924 	*/	
       
  1925 		{
       
  1926 	public:
       
  1927 		IMPORT_C TMobilePhoneServiceTableV8();	
       
  1928 	public:
       
  1929 	/** Sum of the TSSTServices57To64 capability constants. */
       
  1930 		TUint8 	iServices57To64;
       
  1931 	/** Sum of the TSSTServices65To72 capability constants. */		
       
  1932 		TUint8	iServices65To72;	
       
  1933 		};
       
  1934 	
       
  1935 /** A typedef'd packaged TMobilePhoneServiceTableV8 passing through a generic API 
       
  1936 function member. */	
       
  1937 	typedef TPckg<TMobilePhoneServiceTableV8> TMobilePhoneServiceTableV8Pckg;	
       
  1938  
       
  1939 	IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const;
       
  1940 	
       
  1941 	
       
  1942 	/***********************************************************************************/
       
  1943 	//
       
  1944 	// MobilePhonePower functional unit
       
  1945 	//
       
  1946 	/***********************************************************************************/
       
  1947 
       
  1948 /** Phone supported battery information.
       
  1949 
       
  1950 Modes: Common */
       
  1951 	enum TMobilePhoneBatteryCaps
       
  1952 		{
       
  1953 	/** Phone supports requests to get the current battery information. */
       
  1954 		KCapsGetBatteryInfo=0x00000001,
       
  1955 	/** Phone supports requests for notification of change in battery information. */
       
  1956 		KCapsNotifyBatteryInfoChange=0x00000002
       
  1957 		};
       
  1958 
       
  1959 	IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const; 
       
  1960 
       
  1961 /** The mobile phone battery status.
       
  1962 
       
  1963 Modes: Common */
       
  1964 	enum TMobilePhoneBatteryStatus
       
  1965 		{
       
  1966 	/** The TSY can not determine the phone's current power status. */
       
  1967 		EPowerStatusUnknown,
       
  1968 	/** The phone is currently powered by a battery. */
       
  1969 		EPoweredByBattery,
       
  1970 	/** A battery is connected, but the phone is externally powered. */
       
  1971 		EBatteryConnectedButExternallyPowered,
       
  1972 	/** No battery is connected. */
       
  1973 		ENoBatteryConnected,
       
  1974 	/** Power fault. */
       
  1975 		EPowerFault
       
  1976 		};
       
  1977 
       
  1978 	class TMobilePhoneBatteryInfoV1 : public TMultimodeType
       
  1979 /** Defines contents of the battery status of the phone.
       
  1980 
       
  1981 @see GetBatteryInfo()
       
  1982 @see NotifyBatteryInfoChange()
       
  1983 */
       
  1984 		{
       
  1985 	public:
       
  1986 		IMPORT_C TMobilePhoneBatteryInfoV1();
       
  1987 	public:
       
  1988 	/** The power and battery status.
       
  1989 	
       
  1990 	@see TMobilePhoneBatteryStatus */
       
  1991 		TMobilePhoneBatteryStatus iStatus;
       
  1992 	/** The percentage battery charge level. */
       
  1993 		TUint iChargeLevel;
       
  1994 		};
       
  1995 
       
  1996 	IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
       
  1997 	IMPORT_C void NotifyBatteryInfoChange(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
       
  1998 
       
  1999 	
       
  2000 	/***********************************************************************************/
       
  2001 	//
       
  2002 	// MobilePhoneSignal functional unit
       
  2003 	//	
       
  2004 	/***********************************************************************************/
       
  2005 
       
  2006 /** The mobile phone signal strength capabilities.
       
  2007 
       
  2008 Modes: Common */
       
  2009 	enum TMobilePhoneSignalCaps
       
  2010 		{
       
  2011 	/** Phone supports requests to get the current signal strength. */
       
  2012 		KCapsGetSignalStrength=0x00000001,
       
  2013 	/** Phone supports requests for notification of change in signal strength. */
       
  2014 		KCapsNotifySignalStrengthChange=0x00000002
       
  2015 		};
       
  2016 
       
  2017 	IMPORT_C TInt GetSignalCaps(TUint32& aCaps) const; 
       
  2018 	IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
       
  2019 	IMPORT_C void NotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
       
  2020 
       
  2021 	/***********************************************************************************/
       
  2022 	//
       
  2023 	// MobilePhoneIndicator functional unit
       
  2024 	//
       
  2025 	/***********************************************************************************/
       
  2026 	
       
  2027 /** The mobile phone indicator capabilities supported.
       
  2028 
       
  2029 Modes: Common */
       
  2030 	enum TMobilePhoneIndicatorCaps
       
  2031 		{
       
  2032 	/** Phone supports requests to get the current value of all supported indicators. */
       
  2033 		KCapsGetIndicator=0x00000001,
       
  2034 	/** Phone supports requests for notification of change in the supported indicators. */
       
  2035 		KCapsNotifyIndicatorChange=0x00000002
       
  2036 		};
       
  2037 
       
  2038 /** The mobile phone indicators.
       
  2039 
       
  2040 Modes Common */
       
  2041 	enum TMobilePhoneIndicators
       
  2042 		{
       
  2043 	/** If bit-flag is set to '1' indicates that the battery charger is connected to 
       
  2044 	the phone. If bit-flag is set to '0' indicates that the battery charger is 
       
  2045 	disconnected. */
       
  2046 		KIndChargerConnected=0x00000001,
       
  2047 	/** If bit-flag is set to '1' indicates that network service is available. If bit-flag 
       
  2048 	is set to '0' indicates that network service is unavailable. */
       
  2049 		KIndNetworkAvailable=0x00000002,
       
  2050 	/** If bit-flag is set to '1' indicates that a call is in progress. If set to '0' 
       
  2051 	indicates that a call is not in progress. */
       
  2052 		KIndCallInProgress=0x00000004
       
  2053 		};
       
  2054 
       
  2055 	IMPORT_C TInt GetIndicatorCaps(TUint32& aActionCaps, TUint32& aIndCaps) const; 
       
  2056 	IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
       
  2057 	IMPORT_C void NotifyIndicatorChange(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
       
  2058 
       
  2059 	
       
  2060 	/***********************************************************************************/
       
  2061 	//
       
  2062 	// MobilePhoneIdentity functional unit
       
  2063 	//
       
  2064 	/***********************************************************************************/
       
  2065 	
       
  2066 /** Defines Identity Capabilities.
       
  2067 
       
  2068 Modes: Common */
       
  2069 	enum TMobilePhoneIdentityCaps
       
  2070 		{
       
  2071 	/** Phone can return the identity of its manufacturer. */
       
  2072 		KCapsGetManufacturer=0x00000001,
       
  2073 	/** Phone can return the identity of its model. */
       
  2074 		KCapsGetModel=0x00000002,
       
  2075 	/** Phone can return the identity of its revision. */
       
  2076 		KCapsGetRevision=0x00000004,
       
  2077 	/** Phone can return the identity of its serial number. */
       
  2078 		KCapsGetSerialNumber=0x00000008,
       
  2079 	/** Phone can return the identity of its subscriber. */
       
  2080 		KCapsGetSubscriberId=0x00000010
       
  2081 		};
       
  2082 
       
  2083 	IMPORT_C TInt GetIdentityCaps(TUint32& aCaps) const;
       
  2084 
       
  2085 	enum {	KPhoneManufacturerIdSize=50	};
       
  2086 	enum {	KPhoneModelIdSize=50 };
       
  2087 	enum {	KPhoneRevisionIdSize=50	};
       
  2088 	enum {	KPhoneSerialNumberSize=50 };
       
  2089 	
       
  2090 	class TMobilePhoneIdentityV1 : public TMultimodeType
       
  2091 /** Defines the mobile phone identity.
       
  2092 
       
  2093 @see GetPhoneId() */
       
  2094 		{
       
  2095 	public:
       
  2096 		IMPORT_C TMobilePhoneIdentityV1();
       
  2097 	public:
       
  2098 	/** Phone manufacturer identification, in character string format. */
       
  2099 		TBuf<KPhoneManufacturerIdSize> iManufacturer;
       
  2100 	/** Phone model identification, in character string format. */
       
  2101 		TBuf<KPhoneModelIdSize> iModel;
       
  2102 	/** Phone revision identification, in character string format. */
       
  2103 		TBuf<KPhoneRevisionIdSize> iRevision;
       
  2104 	/** Phone serial number (IMEI or ESN), in character string format. */
       
  2105 		TBuf<KPhoneSerialNumberSize> iSerialNumber;
       
  2106 		};
       
  2107 
       
  2108 	IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TMobilePhoneIdentityV1& aId) const;
       
  2109 
       
  2110 	enum {	KIMSISize = 15 };
       
  2111 
       
  2112 /** A typedef'd buffer to hold the mobile phone subscriber id. */
       
  2113 	typedef TBuf<KIMSISize> TMobilePhoneSubscriberId;
       
  2114 
       
  2115 	IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TMobilePhoneSubscriberId& aId) const;
       
  2116 
       
  2117 	/***********************************************************************************/
       
  2118 	//
       
  2119 	// MobilePhoneDTMF functional unit
       
  2120 	//
       
  2121 	/***********************************************************************************/
       
  2122 	
       
  2123 /** DTMF Capabilities.
       
  2124 
       
  2125 Modes: Common */
       
  2126 	enum TMobilePhoneDTMFCaps
       
  2127 		{
       
  2128 	/** Capability to send a string of DTMF tones, containing one or more tone(s). */
       
  2129 		KCapsSendDTMFString=0x00000001,
       
  2130 	/** Capability to send one DTMF tone, using start and stop DTMF tone function member. */
       
  2131 		KCapsSendDTMFSingleTone=0x00000002,
       
  2132 		};
       
  2133 		
       
  2134 	/**
       
  2135 	DTMF tone operation event.
       
  2136 	*/
       
  2137 	enum TMobilePhoneDTMFEvent
       
  2138 		{
       
  2139 		/**
       
  2140 		 Start sending of a Dtmf tone operation has been acknowledged from the MSC.
       
  2141 		*/
       
  2142 		EStartDtmfTone,
       
  2143 		/**
       
  2144 		 Stop sending of a Dtmf tone operation has been acknowledged from the MSC.
       
  2145 		*/
       
  2146 		EStopDtmfTone,
       
  2147 		};
       
  2148 		
       
  2149 
       
  2150 	IMPORT_C TInt GetDTMFCaps(TUint32& aCaps) const; 
       
  2151 	IMPORT_C void NotifyDTMFCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  2152 
       
  2153 	IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const;
       
  2154 	IMPORT_C void ReadDTMFTones(TRequestStatus& aReqStatus, TDes& aTones) const;
       
  2155 	IMPORT_C TInt StartDTMFTone(TChar aTone) const;
       
  2156 	IMPORT_C TInt StopDTMFTone() const;
       
  2157 
       
  2158 	IMPORT_C void NotifyStopInDTMFString(TRequestStatus& aRequestStatus) const;
       
  2159 	IMPORT_C TInt ContinueDTMFStringSending(TBool aContinue) const;
       
  2160 	IMPORT_C void NotifyDTMFEvent(TRequestStatus& aReqStatus, TMobilePhoneDTMFEvent& aEvent) const;
       
  2161 
       
  2162 	/***********************************************************************************/
       
  2163 	//
       
  2164 	// MobilePhoneNetwork functional unit
       
  2165 	//
       
  2166 	/***********************************************************************************/
       
  2167 	
       
  2168 /** Defines Network Capabilities.
       
  2169 
       
  2170 Modes: Common */
       
  2171 	enum TMobilePhoneNetworkCaps
       
  2172 		{
       
  2173 	/** The phone supports retrieval of current registration status. */
       
  2174 		KCapsGetRegistrationStatus=0x00000001,
       
  2175 	/** The phone supports notifications of change in registration status. */
       
  2176 		KCapsNotifyRegistrationStatus=0x00000002,
       
  2177 	/** The phone supports retrieval of current mode. */
       
  2178 		KCapsGetCurrentMode=0x00000004,
       
  2179 	/** The phone supports notification of change in mode. */
       
  2180 		KCapsNotifyMode=0x00000008,
       
  2181 	/** The phone supports retrieval of current network information. */
       
  2182 		KCapsGetCurrentNetwork=0x00000010,
       
  2183 	/** The phone supports notification of change of current network. */
       
  2184 		KCapsNotifyCurrentNetwork=0x00000020,
       
  2185 	/** The phone supports retrieval of home network information. */
       
  2186 		KCapsGetHomeNetwork=0x00000040,
       
  2187 	/** The phone supports retrieval of a list of detected networks. */
       
  2188 		KCapsGetDetectedNetworks=0x00000080,
       
  2189 	/** The phone supports manual network selection mode. */
       
  2190 		KCapsManualNetworkSelection=0x00000100,
       
  2191 	/** The phone supports retrieval of time and date information (NITZ) received from 
       
  2192 	the network. */
       
  2193 		KCapsGetNITZInfo=0x00000200,
       
  2194 	/** The phone supports notification of new updates of time & date information (NITZ) 
       
  2195 	received from the network. */
       
  2196 		KCapsNotifyNITZInfo=0x00000400
       
  2197 		};
       
  2198 
       
  2199 	IMPORT_C TInt GetNetworkCaps(TUint32& aCaps) const;
       
  2200 
       
  2201 /** Defines Current Network Modes.
       
  2202 
       
  2203 Modes: Common */
       
  2204 	enum TMobilePhoneNetworkMode
       
  2205 		{
       
  2206 	/** Network mode is unknown.
       
  2207 	
       
  2208 	Modes: Common */
       
  2209 		ENetworkModeUnknown,
       
  2210 	/** ME is not registered.
       
  2211 	
       
  2212 	Modes: Common */
       
  2213 		ENetworkModeUnregistered,
       
  2214 	/** GSM/GPRS or DCS1800 network. */
       
  2215 		ENetworkModeGsm,
       
  2216 	/** AMPS network.
       
  2217 	
       
  2218 	Modes: CDMA 
       
  2219 	@deprecated 9.5
       
  2220 	*/
       
  2221 		ENetworkModeAmps,
       
  2222 	/** CDMA (IS-95) network.
       
  2223 	
       
  2224 	Modes: CDMA
       
  2225 	 @deprecated 9.5
       
  2226 	  */
       
  2227 		ENetworkModeCdma95,
       
  2228 	/** CDMA (cdma2000) network.
       
  2229 	
       
  2230 	Modes: CDMA
       
  2231 	@deprecated 9.5 */
       
  2232 		ENetworkModeCdma2000,
       
  2233 	/** WCDMA  (UTRA Frequency Division Duplex (FDD)) network.
       
  2234 	
       
  2235 	Modes: WCDMA */
       
  2236 		ENetworkModeWcdma,
       
  2237 	/** TD-CDMA (UTRA Time Division Duplex (TDD)) network.
       
  2238 	
       
  2239 	Modes: WCDMA */	
       
  2240 		ENetworkModeTdcdma
       
  2241 		};
       
  2242 
       
  2243 	IMPORT_C TInt GetCurrentMode(TMobilePhoneNetworkMode& aNetworkMode) const;
       
  2244 	IMPORT_C void NotifyModeChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkMode& aNetworkMode) const;
       
  2245 
       
  2246 /** Phone network status.
       
  2247 
       
  2248 Modes: Common */
       
  2249 	enum TMobilePhoneNetworkStatus
       
  2250 		{
       
  2251 	/** Status is unknown. */
       
  2252 		ENetworkStatusUnknown,
       
  2253 	/** A network that the ME is allowed to register to. */
       
  2254 		ENetworkStatusAvailable,
       
  2255 	/** The currently registered network. */
       
  2256 		ENetworkStatusCurrent,
       
  2257 	/** A network that the ME is not allowed to register to. */
       
  2258 		ENetworkStatusForbidden
       
  2259 		};
       
  2260 
       
  2261 /** Mobile phone network band information.
       
  2262 
       
  2263 Modes: CDMA
       
  2264 
       
  2265 @deprecated 9.5
       
  2266 
       
  2267  */
       
  2268 	enum TMobilePhoneNetworkBandInfo
       
  2269 		{
       
  2270 	/** The current band and band class is unknown. */
       
  2271 		EBandUnknown,
       
  2272 	/** The network operates at 800MHz on Band A. */
       
  2273 		E800BandA,
       
  2274 	/** The network operates at 800MHz on Band B. */
       
  2275 		E800BandB,
       
  2276 	/** The network operates at 800MHz on Band C. */
       
  2277 		E800BandC,
       
  2278 	/** The network operates at 1900MHz on Band A. */
       
  2279 		E1900BandA,
       
  2280 	/** The network operates at 1900MHz on Band B. */
       
  2281 		E1900BandB,
       
  2282 	/** The network operates at 1900MHz on Band C. */
       
  2283 		E1900BandC,
       
  2284 	/** The network operates at 1900MHz on Band D. */
       
  2285 		E1900BandD,
       
  2286 	/** The network operates at 1900MHz on Band E. */
       
  2287 		E1900BandE,
       
  2288 	/** The network operates at 1900MHz on Band F. */
       
  2289 		E1900BandF
       
  2290 		};
       
  2291 
       
  2292 /** A typedef'd buffer to hold the network display tag */
       
  2293 	typedef TBuf<30> TMobilePhoneNetworkDisplayTag;
       
  2294 /** A typedef'd buffer to hold the network long name. */
       
  2295 	typedef TBuf<20> TMobilePhoneNetworkLongName;		
       
  2296 /** A typedef'd buffer to hold the network short name. */
       
  2297 	typedef TBuf<10> TMobilePhoneNetworkShortName;
       
  2298 
       
  2299 /** A typedef'd buffer to hold the network country code. */
       
  2300 	typedef TBuf<4> TMobilePhoneNetworkCountryCode;		// MCC in GSM and CDMA
       
  2301 /** A typedef'd buffer to hold the network identity. */
       
  2302 	typedef TBuf<8> TMobilePhoneNetworkIdentity;		// MNC in GSM and SID or NID in CDMA 
       
  2303 
       
  2304 	
       
  2305 
       
  2306 	class TMobilePhoneNetworkInfoV1 : public TMultimodeType
       
  2307 	/** Defines information related to a mobile phone network.
       
  2308 
       
  2309 	@see GetCurrentNetwork()
       
  2310 	@see NotifyCurrentNetworkChange()
       
  2311 	@see GetHomeNetwork()
       
  2312 	@publishedPartner
       
  2313 	@released */
       
  2314 		{
       
  2315 	public:
       
  2316 		IMPORT_C TMobilePhoneNetworkInfoV1();
       
  2317 	public:
       
  2318 		void InternalizeL(RReadStream& aStream);
       
  2319 		void ExternalizeL(RWriteStream& aStream) const;
       
  2320 	public:
       
  2321 	/** Mode of the network.
       
  2322 	
       
  2323 	Modes: Common
       
  2324 	
       
  2325 	@see TMobilePhoneNetworkMode */
       
  2326 		TMobilePhoneNetworkMode iMode;
       
  2327 	/** Status of the network
       
  2328 	
       
  2329 	Modes: Common
       
  2330 	
       
  2331 	@see TMobilePhoneNetworkStatus */
       
  2332 		TMobilePhoneNetworkStatus iStatus;
       
  2333 	/** The band and band class of the CDMA network operator.
       
  2334 
       
  2335 	Modes: CDMA
       
  2336 	
       
  2337 	@see TMobilePhoneNetworkBandInfo
       
  2338 	
       
  2339 	@deprecated 9.5 */
       
  2340 		TMobilePhoneNetworkBandInfo iBandInfo;
       
  2341 	/** The MCC of the network.
       
  2342 	
       
  2343 	Modes: Common
       
  2344 	
       
  2345 	@see TMobilePhoneNetworkCountryCode */
       
  2346 		TMobilePhoneNetworkCountryCode iCountryCode;
       
  2347 		
       
  2348 	/** The system identity (SID) of the CDMA network.
       
  2349 	
       
  2350 	Modes: CDMA
       
  2351 	
       
  2352 	@see TMobilePhoneNetworkIdentity 
       
  2353 	@deprecated 9.5
       
  2354 	*/
       
  2355 		TMobilePhoneNetworkIdentity iCdmaSID;
       
  2356 	/** The system identity (SID) of the AMPS network.
       
  2357 	
       
  2358 	Modes: CDMA
       
  2359 	
       
  2360 	@see TMobilePhoneNetworkIdentity
       
  2361 	TMobilePhoneNetworkIdentity
       
  2362 	@deprecated 9.5
       
  2363 	*/
       
  2364 		TMobilePhoneNetworkIdentity iAnalogSID;
       
  2365 	/** The network identity (NID in CDMA and MNC in GSM).
       
  2366 	
       
  2367 	Modes: Common
       
  2368 	
       
  2369 	@see TMobilePhoneNetworkIdentity */
       
  2370 		TMobilePhoneNetworkIdentity iNetworkId;
       
  2371 	/** The alpha-tag displayed when this is the serving network.
       
  2372 	
       
  2373 	Modes: Common
       
  2374 	
       
  2375 	@see TMobilePhoneNetworkDisplayTag */
       
  2376 		TMobilePhoneNetworkDisplayTag iDisplayTag;
       
  2377 	/** The short name (up to 10 characters) of the network operator.
       
  2378 	
       
  2379 	Modes: GSM/WCDMA
       
  2380 	
       
  2381 	@see TMobilePhoneNetworkShortName */
       
  2382 		TMobilePhoneNetworkShortName iShortName;
       
  2383 	/** The long name (up to 20 characters) of the network operator.
       
  2384 	
       
  2385 	Modes: GSM/WCDMA
       
  2386 	
       
  2387 	@see TMobilePhoneNetworkLongName */
       
  2388 		TMobilePhoneNetworkLongName iLongName;
       
  2389 		};
       
  2390 	
       
  2391 /** A typedef'd packaged TMobilePhoneNetworkInfoV1 for passing through a generic 
       
  2392 API function member. */
       
  2393 	typedef TPckg<TMobilePhoneNetworkInfoV1>  TMobilePhoneNetworkInfoV1Pckg;
       
  2394 	
       
  2395 /** The access technology that the network is based on.
       
  2396 
       
  2397 Modes: Common */
       
  2398 	enum TMobilePhoneNetworkAccess
       
  2399 		{
       
  2400 	/** This is used when there is no network activity and therefore no RAT active.
       
  2401 	
       
  2402 	Modes: Common */
       
  2403 		ENetworkAccessUnknown,
       
  2404 	/** The access technology is GSM.
       
  2405 	
       
  2406 	Modes: GSM */
       
  2407 		ENetworkAccessGsm,
       
  2408 	/** The access technology is GSM COMPACT. However GSM COMPACT systems which use 
       
  2409 	GSM frequency bands but with the CBPCCH broadcast channel are considered as 
       
  2410 	a separate access technology from GSM.
       
  2411 	
       
  2412 	Modes: GSM */
       
  2413 		ENetworkAccessGsmCompact,
       
  2414 	/** The access technology is UTRAN (UMTS Network).
       
  2415 	
       
  2416 	Modes: WCDMA */
       
  2417 		ENetworkAccessUtran,					
       
  2418 	/** Analogue Cellular 
       
  2419 	
       
  2420 	Modes: CDMA 
       
  2421 	@deprecated 9.5
       
  2422 	*/
       
  2423 		ENetworkAccessAmpsCellular,
       
  2424 	/** CDMA Cellular - Standard channels 
       
  2425 
       
  2426 	Modes: CDMA
       
  2427 	@deprecated 9.5
       
  2428 	 */
       
  2429 		 ENetworkAccessCdmaCellularStdChannel,
       
  2430 	/** CDMA Cellular - Custom channels 
       
  2431 
       
  2432 	Modes: CDMA 
       
  2433 	@deprecated 9.5
       
  2434 	*/
       
  2435 		ENetworkAccessCdmaCellularCustomChannel,
       
  2436 	/** CDMA/Analogue Cellular (cdma first then analogue)
       
  2437 
       
  2438 	Modes: CDMA 
       
  2439 	@deprecated 9.5
       
  2440 	*/
       
  2441 		ENetworkAccessCdmaAmpsCellular,
       
  2442 	/** CDMA PCS - Using blocks 
       
  2443 	
       
  2444 	Modes: CDMA 
       
  2445 	@deprecated 9.5
       
  2446 	*/
       
  2447 		ENetworkAccessCdmaPcsUsingBlocks,
       
  2448 	/** CDMA PCS - Using channels 
       
  2449 	
       
  2450 	Modes: CDMA 
       
  2451 	@deprecated 9.5
       
  2452 	*/
       
  2453 		ENetworkAccessCdmaPcsUsingNetworkAccessChannels,
       
  2454 	/** CDMA JTACS - Standard channels 
       
  2455 	
       
  2456 	Modes: CDMA 
       
  2457 	@deprecated 9.5 
       
  2458 	*/
       
  2459 		ENetworkAccessJTacsStdChannels,
       
  2460 	/** CDMA JTACS - Custom channels 
       
  2461 	
       
  2462 	Modes: CDMA 
       
  2463 	@deprecated 9.5
       
  2464 	*/
       
  2465 		ENetworkAccessJTacsCustomChannels,
       
  2466 	/** CDMA 2GHz band - Using channels 
       
  2467 	
       
  2468 	Modes: CDMA 
       
  2469 	@deprecated 9.5
       
  2470 	*/
       
  2471 		ENetworkAccess2GHzBandUsingChannels,
       
  2472 	/** Generic Acquisition Record for IS-2000 and IS-95 
       
  2473 	
       
  2474 	Modes: CDMA 
       
  2475 	@deprecated 9.5
       
  2476 	*/
       
  2477 		ENetworkAccessGenericAcqRecord2000and95,
       
  2478 	/** Generic Acquisition Record for IS-856
       
  2479 	
       
  2480 	Modes: CDMA 
       
  2481 	@deprecated 9.5
       
  2482 	*/
       
  2483 		ENetworkAccessGenericAcqRecord856,
       
  2484 	/** The access technology is GSM and UTRAN (UMTS Network).
       
  2485 		
       
  2486 	Modes: GSM and WCDMA */
       
  2487 		ENetworkAccessGsmAndUtran
       
  2488 		};
       
  2489 
       
  2490 	
       
  2491 
       
  2492 	class TMobilePhoneNetworkInfoV2 : public TMobilePhoneNetworkInfoV1
       
  2493 	/** The access technology that the network is based on in version v2.0 of the API. 
       
  2494 	@publishedPartner
       
  2495 	@released*/
       
  2496 		{
       
  2497 	public:
       
  2498 	/** Default constructor. Network access is set to ENetworkAccessUnknown and iExtensionId 
       
  2499 	is set to KETelExtMultimodeV2. */
       
  2500 		IMPORT_C TMobilePhoneNetworkInfoV2();
       
  2501 	
       
  2502 	public:
       
  2503 		void InternalizeL(RReadStream& aStream);
       
  2504 		void ExternalizeL(RWriteStream& aStream) const;
       
  2505 	
       
  2506 	public:
       
  2507 	/** The type of network access.
       
  2508 	
       
  2509 	@see TMobilePhoneNetworkAccess */
       
  2510 		TMobilePhoneNetworkAccess iAccess;
       
  2511 		};
       
  2512 	
       
  2513 /** A typedef'd packaged TMobilePhoneNetworkInfoV2 for passing through a generic 
       
  2514 API function member. */
       
  2515 	typedef TPckg<TMobilePhoneNetworkInfoV2>  TMobilePhoneNetworkInfoV2Pckg;
       
  2516 
       
  2517 
       
  2518 	class TMobilePhoneNetworkInfoV5 : public TMobilePhoneNetworkInfoV2
       
  2519 	/** The access technology that the network is based on in version v2.0 of the API. 
       
  2520 	@publishedPartner
       
  2521 	@released*/
       
  2522 		{
       
  2523 	public:
       
  2524 		IMPORT_C TMobilePhoneNetworkInfoV5();
       
  2525 		
       
  2526 	public:
       
  2527 		void InternalizeL(RReadStream& aStream);
       
  2528 		void ExternalizeL(RWriteStream& aStream) const;
       
  2529 		
       
  2530 	public:
       
  2531 	/** HSDPA availability indicator. This information is for display 
       
  2532 	indication only and shall not be used for any other purpose.
       
  2533 		
       
  2534 	Modes: WCDMA */
       
  2535 		TBool iHsdpaAvailableIndicator;
       
  2536 
       
  2537 	/** EGPRS availability indicator. This information is for display
       
  2538 	indication only and shall not be used for any other purpose.
       
  2539 		
       
  2540 	Modes: GPRS */
       
  2541 		TBool iEgprsAvailableIndicator;
       
  2542 		};
       
  2543 
       
  2544 /** A typedef'd packaged TMobilePhoneNetworkInfoV5 for passing through a generic 
       
  2545 API function member. */		
       
  2546 	typedef TPckg<TMobilePhoneNetworkInfoV5> TMobilePhoneNetworkInfoV5Pckg;
       
  2547 	
       
  2548 		
       
  2549 	class TMobilePhoneNetworkInfoV8 : public TMobilePhoneNetworkInfoV5
       
  2550 	/** The access technology that the network is based on in version v8.0 of the API. 
       
  2551 	@publishedPartner
       
  2552 	@released*/
       
  2553 		{
       
  2554 	public:
       
  2555 		IMPORT_C TMobilePhoneNetworkInfoV8();
       
  2556 		
       
  2557 	public:
       
  2558 		void InternalizeL(RReadStream& aStream);
       
  2559 		void ExternalizeL(RWriteStream& aStream) const;
       
  2560 		
       
  2561 	public:
       
  2562 	/** HSUPA availability indicator. This information is for display 
       
  2563 	indication only and shall not be used for any other purpose.
       
  2564 		
       
  2565 	Modes: WCDMA */
       
  2566 		TBool iHsupaAvailableIndicator;
       
  2567 
       
  2568 		};
       
  2569 		
       
  2570 /** A typedef'd packaged TMobilePhoneNetworkInfoV8 for passing through a generic 
       
  2571 API function member. */		
       
  2572 	typedef TPckg<TMobilePhoneNetworkInfoV8> TMobilePhoneNetworkInfoV8Pckg;
       
  2573 
       
  2574 	class TMobilePhoneLocationAreaV1 : public TMultimodeType
       
  2575 /** Defines the mobile phone location area.
       
  2576 
       
  2577 @see GetCurrentNetwork()
       
  2578 @see NotifyCurrentNetworkChange() */
       
  2579 		{
       
  2580 	public:
       
  2581 	/** Constructor. */
       
  2582 		IMPORT_C TMobilePhoneLocationAreaV1();
       
  2583 	public:
       
  2584 	/** Boolean indicating whether the location area is known.
       
  2585 	
       
  2586 	Modes: Common */
       
  2587 		TBool	iAreaKnown;
       
  2588 	/** Location area code.
       
  2589 	
       
  2590 	Modes: GSM/WCDMA */
       
  2591 		TUint	iLocationAreaCode;
       
  2592 	/** Cell identity code.
       
  2593 	
       
  2594 	Modes: GSM/WCDMA */
       
  2595 		TUint	iCellId;
       
  2596 		};
       
  2597 
       
  2598 	IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
       
  2599 	IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
       
  2600 	IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
       
  2601 	IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
       
  2602 
       
  2603 	IMPORT_C void GetHomeNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
       
  2604 	IMPORT_C void GetHomeNetworkSearchPeriod(TRequestStatus& aReqStatus, TInt& aSearchIntv) const;
       
  2605 	IMPORT_C void GetLastUsedAccessTechnology(TRequestStatus& aReqStatus, TMobilePhoneNetworkAccess& aAccessTech) const;
       
  2606 	
       
  2607 	/** Cell mode */
       
  2608 	enum TCellMode
       
  2609 		{
       
  2610 		/** Unknown mode */
       
  2611 		ECellModeUnknown,
       
  2612 		/** GSM mode */
       
  2613 		ECellModeGsm,
       
  2614 		/** WCDMA mode */
       
  2615 		ECellModeWcdma
       
  2616 		};
       
  2617 
       
  2618 	/** Cell Information Status 
       
  2619 	@publishedPartner	
       
  2620 	@released */
       
  2621 	enum TCellInfoStatus
       
  2622 		{
       
  2623 		/** Unknown status: not known if Cell ID is current or not */
       
  2624 		ECellInfoStatusUnknown,
       
  2625 		/** Not current status: the Cell ID value is the ID of the last known cell */
       
  2626 		ECellInfoStatusNotCurrent,
       
  2627 		/** Current Status: the Cell ID value is the ID of the present cell */
       
  2628 		ECellInfoStatusCurrent
       
  2629 		};
       
  2630 	
       
  2631 	/** Defined type to represent the Timing Advance. See 3GPP TS 04.18, section 10.5.2.40. 
       
  2632 	 * Valid values for the Timing Advance are 0-255. A negative value indicates that
       
  2633 	 * no Timing Advance information is available. */
       
  2634 	typedef TInt16 TGsmTimingAdvance;
       
  2635 	
       
  2636 	/**	Encapsulates cell specific information.	
       
  2637 	@publishedPartner	
       
  2638 	@released */
       
  2639 	class TMobilePhoneCellInfoV9 : public TMultimodeType
       
  2640 		{
       
  2641 	public:
       
  2642 		IMPORT_C TMobilePhoneCellInfoV9();
       
  2643 		
       
  2644 	public:
       
  2645 		/** The cell mode 
       
  2646 		@see TCellMode */
       
  2647 		TCellMode iMode;
       
  2648 		/** The current cell ID */
       
  2649 		TUint iCellId;
       
  2650 		/** The Timing Advance. Relevant only if iMode is ECellModeGsm.
       
  2651 		 @see TGsmTimingAdvance */
       
  2652 		TGsmTimingAdvance iTimingAdvance;
       
  2653 		/** The status of the cell information. Indicates whether the Cell ID is
       
  2654 		 * up-to-date.
       
  2655 		 @see TCellInfoStatus */
       
  2656 		TCellInfoStatus iStatus;
       
  2657 		};				
       
  2658 
       
  2659 	/** Packaged TMobilePhoneCellInfoV9 data structure. 
       
  2660 	@see TMobilePhoneCellInfoV9 */
       
  2661 	typedef TPckg<TMobilePhoneCellInfoV9> TMobilePhoneCellInfoV9Pckg;
       
  2662 	
       
  2663 	IMPORT_C void GetCellInfo(TRequestStatus& aReqStatus, TDes8& aCellInfo) const;
       
  2664 	IMPORT_C void NotifyCellInfoChange(TRequestStatus& aReqStatus, TDes8& aCellInfo) const;
       
  2665 
       
  2666 	
       
  2667 /** The registration status of the mobile phone.
       
  2668 
       
  2669 Modes: WCDMA */
       
  2670 	enum TMobilePhoneRegistrationStatus
       
  2671 		{
       
  2672 	/** Registration status is unknown. */
       
  2673 		ERegistrationUnknown,
       
  2674 	/** Not registered. The ME can not detect any other networks and is not currently 
       
  2675 	searching a new operator to register to. */
       
  2676 		ENotRegisteredNoService,
       
  2677 	/** Not registered. The ME can detect other networks on which it is possible to 
       
  2678 	make emergency calls only. */
       
  2679 		ENotRegisteredEmergencyOnly,
       
  2680 	/** Not registered, but the ME is currently searching a new operator to register to. */
       
  2681 		ENotRegisteredSearching,
       
  2682 	/** Registered, network busy.
       
  2683 	
       
  2684 	Modes: WCDMA */
       
  2685 		ERegisteredBusy,
       
  2686 	/** Registered on home network. */
       
  2687 		ERegisteredOnHomeNetwork,
       
  2688 	/** Registration denied. */
       
  2689 		ERegistrationDenied,
       
  2690 	/** Registered, roaming. */
       
  2691 		ERegisteredRoaming
       
  2692 		};
       
  2693 
       
  2694 	IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
       
  2695 	IMPORT_C void NotifyNetworkRegistrationStatusChange(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
       
  2696 
       
  2697 /** The network selection function member.
       
  2698 
       
  2699 Modes: Common */
       
  2700 	enum TMobilePhoneSelectionMethod
       
  2701 		{
       
  2702 	/** Network selection function member is unknown.
       
  2703 	
       
  2704 	Modes: Common */
       
  2705 		ENetworkSelectionUnknown,
       
  2706 	/** Network is selected automatically by phone.
       
  2707 	
       
  2708 	Modes: Common */
       
  2709 		ENetworkSelectionAutomatic,
       
  2710 	/** Network is selected manually by user.
       
  2711 	
       
  2712 	Modes: GSM/WCDMA */
       
  2713 		ENetworkSelectionManual,
       
  2714 	/** Network selection is restricted to home network only
       
  2715 	
       
  2716 	Modes: CDMA 
       
  2717 	@deprecated 9.5 
       
  2718 	*/
       
  2719 		ENetworkSelectionHomeOnly
       
  2720 		};
       
  2721 
       
  2722 /** The mobile phone band class preferences.
       
  2723 
       
  2724 Modes: CDMA 
       
  2725 @deprecated 9.5 
       
  2726 */
       
  2727 	enum TMobilePhoneBandClass
       
  2728 		{
       
  2729 	/** Band class selection is unknown. */
       
  2730 		ENetworkBandClassUnknown,
       
  2731 	/** Phone will select band class A only. */
       
  2732 		ENetworkBandClassAOnly,
       
  2733 	/** Phone will select band class B only. */
       
  2734 		ENetworkBandClassBOnly,
       
  2735 	/** Phone will prefer to select band class A. */
       
  2736 		ENetworkBandClassAPreferred,
       
  2737 	/** Phone will prefer to select band class B. */
       
  2738 		ENetworkBandClassBPreferred
       
  2739 		};
       
  2740 
       
  2741 /** The mobile phone network operation mode preferences.
       
  2742 
       
  2743 Modes: CDMA
       
  2744 @deprecated 9.5 */
       
  2745 	enum TMobilePhoneOperation
       
  2746 		{
       
  2747 	/** Network operation mode is unknown. */
       
  2748 		ENetworkOperationUnknown,
       
  2749 	/** Phone will select analog operation only. */
       
  2750 		ENetworkOperationAnalogOnly,
       
  2751 	/** Phone will select digital/CDMA operation only. */
       
  2752 		ENetworkOperationDigitalOnly,
       
  2753 	/** Phone will prefer to select analog operation. */
       
  2754 		ENetworkOperationAnalogPreferred,
       
  2755 	/** Phone will prefer to select digital/CDMA operation. */
       
  2756 		ENetworkOperationDigitalPreferred
       
  2757 		};
       
  2758 
       
  2759 	class TMobilePhoneNetworkSelectionV1 : public TMultimodeType
       
  2760 /** The mobile phone network selection preferences.
       
  2761 
       
  2762 @see GetNetworkSelectionSetting()
       
  2763 @see SetNetworkSelectionSetting()
       
  2764 @see NotifyNetworkSelectionSettingChange()
       
  2765 @publishedPartner
       
  2766 @released */
       
  2767 		{
       
  2768 	public:
       
  2769 		IMPORT_C TMobilePhoneNetworkSelectionV1();
       
  2770 	public:
       
  2771 	/** Phone's network selection function member.
       
  2772 	
       
  2773 	Modes: Common
       
  2774 	
       
  2775 	@see TMobilePhoneSelectionMethod */
       
  2776 		TMobilePhoneSelectionMethod	iMethod;
       
  2777 	/** Phone's band class setting.
       
  2778 	
       
  2779 	Modes: CDMA
       
  2780 	
       
  2781 	@see TMobilePhoneBandClass
       
  2782 	@deprecated 9.5
       
  2783 	 */
       
  2784 		TMobilePhoneBandClass		iBandClass;
       
  2785 	/** Phone's CDMA operation mode.
       
  2786 	
       
  2787 	Modes: CDMA
       
  2788 	
       
  2789 	@see TMobilePhoneOperation 
       
  2790 		@deprecated 9.5
       
  2791 		*/
       
  2792 		TMobilePhoneOperation		iOperationMode;
       
  2793 		};
       
  2794 
       
  2795 /** A typedef'd packaged TMobilePhoneNetworkSelectionV1 for passing through a generic 
       
  2796 API function member. */
       
  2797 	typedef TPckg<TMobilePhoneNetworkSelectionV1>  TMobilePhoneNetworkSelectionV1Pckg;
       
  2798 
       
  2799 	IMPORT_C TInt GetNetworkSelectionSetting(TDes8& aSetting) const;
       
  2800 	IMPORT_C void SetNetworkSelectionSetting(TRequestStatus& aReqStatus, const TDes8& aSetting) const;
       
  2801 	IMPORT_C void NotifyNetworkSelectionSettingChange(TRequestStatus& aReqStatus, TDes8& aSetting) const;
       
  2802 	
       
  2803 	struct TMobilePhoneNetworkManualSelection
       
  2804 /** The mobile phone manual network selection parameters.
       
  2805 
       
  2806 Modes: GSM/WCDMA
       
  2807 
       
  2808 @see TMobilePhoneNetworkCountryCode */
       
  2809 		{
       
  2810 	/** The MCC of the network
       
  2811 	
       
  2812 	@see TMobilePhoneNetworkCountryCode */
       
  2813 		TMobilePhoneNetworkCountryCode iCountry;
       
  2814 	/** The MNC of the network
       
  2815 	
       
  2816 	@see TMobilePhoneNetworkIdentity */
       
  2817 		TMobilePhoneNetworkIdentity iNetwork;
       
  2818 		};
       
  2819 	
       
  2820 	IMPORT_C void SelectNetwork(TRequestStatus& aReqStatus, TBool aIsManual, const TMobilePhoneNetworkManualSelection& aManualSelection) const;
       
  2821 
       
  2822 	
       
  2823 
       
  2824 	 // Used to indicate which TMobilePhoneNITZ fields are currently available
       
  2825 /** The Phone Network Time Zone Capabilities. */
       
  2826 	 enum TMobilePhoneNITZCaps
       
  2827 		{
       
  2828 	/** Universal Time is available in the current network mode. */
       
  2829 		KCapsTimeAvailable      = 0x00000001,
       
  2830 	/** Local time zone is available in the current network mode. */
       
  2831 		KCapsTimezoneAvailable  = 0x00000002,
       
  2832 	/** DST is available in the current network mode. */
       
  2833 		KCapsDSTAvailable       = 0x00000004,
       
  2834 	/** Short name is available in the current network mode. */
       
  2835 		KCapsShortNameAvailable = 0x00000008,
       
  2836 	/** Long name is available in the current network mode. */
       
  2837 		KCapsLongNameAvailable  = 0x00000010
       
  2838 		};
       
  2839 
       
  2840 	class TMobilePhoneNITZ : public TDateTime
       
  2841 /** Defines time and date information received from a mobile phone network.
       
  2842 
       
  2843 @see GetNITZInfo()
       
  2844 @see NotifyNITZInfoChange()
       
  2845 @publishedPartner
       
  2846 @released */
       
  2847 		{
       
  2848 	public:
       
  2849 		IMPORT_C TMobilePhoneNITZ();
       
  2850 		IMPORT_C TMobilePhoneNITZ(TInt aYear, TMonth aMonth, TInt aDay, TInt aHour, TInt aMinute, TInt aSecond, TInt aMicroSecond);		
       
  2851 	public:
       
  2852 	/** Bitwise sum of TMobilePhoneNITZCaps constants used to indicate which NITZ fields 
       
  2853 	are available.
       
  2854 	
       
  2855 	Modes: Common */
       
  2856 		TInt32	                     iNitzFieldsUsed;
       
  2857 	/** Time zone, expressed in +/- 15 minute offsets from GMT.
       
  2858 	
       
  2859 	Modes: Common */
       
  2860 		TInt                         iTimeZone;
       
  2861 	/** Daylight Saving Time adjustment for summer time. The adjustment for DST 
       
  2862 	can be +1h or +2h.
       
  2863 	
       
  2864 	Modes: GSM/WCDMA */
       
  2865 		TInt	                     iDST;
       
  2866 	/** Network name in "short" representation.
       
  2867 	
       
  2868 	Modes: GSM/WCDMA
       
  2869 	
       
  2870 	@see TMobilePhoneNetworkShortName */
       
  2871 		TMobilePhoneNetworkShortName iShortNetworkId;
       
  2872 	/** Network name in "long" representation.
       
  2873 	
       
  2874 	Modes: GSM/WCDMA
       
  2875 	
       
  2876 	@see TMobilePhoneNetworkLongName */
       
  2877 		TMobilePhoneNetworkLongName	 iLongNetworkId;
       
  2878 		};
       
  2879 
       
  2880 	IMPORT_C TInt GetNITZInfo(TMobilePhoneNITZ& aNITZInfo) const;
       
  2881 	IMPORT_C void NotifyNITZInfoChange(TRequestStatus& aReqStatus, TMobilePhoneNITZ& aNITZInfo) const;
       
  2882 
       
  2883 	enum { KMaxSPNameSize=16 };
       
  2884 	enum { KMaxPLMNFieldSize=251 };
       
  2885 
       
  2886 	enum TDisplayRequirements
       
  2887 		{
       
  2888 		KDisplayPLMNNotRequired	= 0x00000001,
       
  2889 		KDisplayPLMNRequired	= 0x00000002,
       
  2890 		KDisplaySPNRequired		= 0x00000004,
       
  2891 		KDisplaySPNNotRequired	= 0x00000008
       
  2892 		};
       
  2893 
       
  2894 	typedef TUint32 TDisplayRequirementsFlags;
       
  2895 
       
  2896 	class TMobilePhoneServiceProviderNameV2 : public TMultimodeType
       
  2897 /** Used to retrieve the Service Provider Name from the ICC. The 
       
  2898 SP is actually the entity that provides the service. The SP could have contractual 
       
  2899 agreements with several home PLMN that the ME can register to. The display 
       
  2900 preference of the registered PLMN and/or the SPN on the ME can be defined 
       
  2901 on the UICC.
       
  2902 @publishedPartner
       
  2903 @released */
       
  2904 		{
       
  2905 	public:
       
  2906 		IMPORT_C TMobilePhoneServiceProviderNameV2();
       
  2907 	public:
       
  2908 	/** This parameter specifies if the display of the registered PLMN is required. 
       
  2909 	Can contain a number of flags from RMobilePhone::TDisplayRequirements.
       
  2910 	*/
       
  2911 		TDisplayRequirementsFlags	iDisplayReq;
       
  2912 	/** The name of the service provider. */
       
  2913 		TBuf<KMaxSPNameSize>	iSPName;
       
  2914 		TBuf<KMaxPLMNFieldSize>	iPLMNField;
       
  2915 		}; 
       
  2916 
       
  2917 /** A typedef'd packaged TMobilePhoneServiceProviderNameV2 for passing through 
       
  2918 a generic API function member. */
       
  2919 	typedef TPckg<TMobilePhoneServiceProviderNameV2> TMobilePhoneServiceProviderNameV2Pckg;
       
  2920 
       
  2921 	IMPORT_C void GetServiceProviderName(TRequestStatus& aReqStatus, TDes8& aName) const;
       
  2922 	
       
  2923 	/**
       
  2924 	Network investigation scan settings.
       
  2925 	*/
       
  2926 	enum TMobilePhoneInvestigationScan
       
  2927 		{
       
  2928 		/**
       
  2929 		Network investigation setting in limited service mode.
       
  2930 		*/
       
  2931 		KNetworkInvLimited = 0x01,
       
  2932 		/**
       
  2933 		Network investigation setting after successful PLMN selection.
       
  2934 		*/
       
  2935 		KNetworkInvAfterPlmnSelection=0x02		
       
  2936 		};
       
  2937 		
       
  2938 	/**
       
  2939 	Network investigation scan events.
       
  2940 	*/
       
  2941 	enum TMobilePhoneInvestigationScanEvent
       
  2942 		{
       
  2943 		/**
       
  2944 		No investigation scan events available.
       
  2945 		*/
       
  2946 		ENetworkInvestigationNoEvent,
       
  2947 		/**
       
  2948 		A higher priority network has been detected, but it does not offer CS Voice.
       
  2949 		*/
       
  2950 		ENetworkInvestigationHighPriorityPlmn
       
  2951 		};
       
  2952 	
       
  2953 	IMPORT_C TInt GetNetworkInvScanSetting(TMobilePhoneInvestigationScan & aSetting) const;
       
  2954 	IMPORT_C void NotifyNetworkInvScanChange(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScan& aSetting) const;
       
  2955 	IMPORT_C void NotifyNetworkInvScanEvent(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScanEvent& aEvent) const;
       
  2956 
       
  2957 
       
  2958 	/** 251 bytes is the maximum number of octets in an L3 message as defined in3GPP TS 44.006. */
       
  2959 	enum { KMaxNetworkNameFieldSize = 251 };
       
  2960 	
       
  2961 	class TMobilePhoneNetworkNameV3 : public TMultimodeType
       
  2962 	/**
       
  2963 	Class containing short, long network names and location information for a PLMN.
       
  2964 	*/
       
  2965 		{
       
  2966 	public:
       
  2967 		IMPORT_C TMobilePhoneNetworkNameV3();
       
  2968 	public:
       
  2969 		/**
       
  2970 		The long name (up to 20 characters) of the network operator.
       
  2971 		*/
       
  2972 		TMobilePhoneNetworkLongName	 iLongName;
       
  2973 		/**
       
  2974 		The short name (up to 10 characters) of the network operator.
       
  2975 		*/
       
  2976 		TMobilePhoneNetworkShortName	 iShortName;
       
  2977 		/**
       
  2978 		This buffer contains other long and short names for the registered PLMN coded as TLV objects.
       
  2979 		*/
       
  2980 		TBuf<KMaxNetworkNameFieldSize>	 iOtherNames;
       
  2981 		};
       
  2982 		
       
  2983 	/**
       
  2984  	Packaging typedef for TMobilePhoneNetworkNameV3 class.
       
  2985  	*/	
       
  2986 	typedef TPckg<TMobilePhoneNetworkNameV3>  TMobilePhoneNetworkNameV3Pckg;
       
  2987 	
       
  2988 	
       
  2989 	class  TMobilePhoneOPlmnV3 : public TMultimodeType
       
  2990 	/**
       
  2991 	Class containing network name information.
       
  2992 	*/
       
  2993 		{
       
  2994 	public:
       
  2995 		IMPORT_C TMobilePhoneOPlmnV3();
       
  2996 	public:
       
  2997 		/**
       
  2998 		The MCC of the registered PLMN, with "wild" values specified for the particular digits of the code.
       
  2999 		*/
       
  3000 		TMobilePhoneNetworkCountryCode iCountryCode;
       
  3001 		/**
       
  3002 		The MNC of the registered PLMN, with "wild" values specified for the particular digits of the code.
       
  3003 		*/
       
  3004 		TMobilePhoneNetworkIdentity iNetworkId;
       
  3005 		/**
       
  3006 		The id of the Network Name to be displayed for the (following) location area codes.
       
  3007 		*/
       
  3008 		TUint32 iPNNid;
       
  3009 		/**
       
  3010 		First Location area code for defining the entire range of LACs for the registered PLMN.
       
  3011 		*/
       
  3012 		TUint iFirstLocationAreaCode;
       
  3013 		/**
       
  3014 		Last Location area code defining the entire range of LACs for the registered PLMN.
       
  3015 		*/
       
  3016 		TUint iLastLocationAreaCode;
       
  3017 		
       
  3018 		};
       
  3019 		
       
  3020 	/**
       
  3021  	Packaging typedef for TMobilePhoneOPlmnV3 class.
       
  3022  	*/	
       
  3023 	typedef TPckg<TMobilePhoneOPlmnV3>  TMobilePhoneOPlmnV3Pckg;
       
  3024 	
       
  3025 	IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName, TDes8& aLocInfo) const;
       
  3026 	
       
  3027 	/**
       
  3028 	Identifiers for different access technologies.
       
  3029 	*/
       
  3030 	enum TMobilePhoneNetworkAccessCaps
       
  3031 		{
       
  3032 		/**
       
  3033 		No network activity.
       
  3034 		*/
       
  3035 		KNetworkAccessUnknown=0x0000,
       
  3036 		/**
       
  3037 		Access technology is GSM.
       
  3038 		*/
       
  3039 		KNetworkAccessGsm=0x8000,
       
  3040 		/**
       
  3041 		Access technology is GSM COMPACT.
       
  3042 		*/
       
  3043 		KNetworkAccessGsmCompact=0x4000,
       
  3044 		/**
       
  3045 		Access technology is UTRAN (UMTS only).
       
  3046 		*/
       
  3047 		KNetworkAccessUtran=0x0080,
       
  3048 		/** 
       
  3049 		Indicates that a particular PLMN entry is a WLAN entry used for WLAN PLMN selection.
       
  3050 		*/
       
  3051 		KNetworkAccessWLAN=0x0040
       
  3052 		};
       
  3053 
       
  3054 	typedef TUint32 TMobilePhoneNetworkAccessCapsFlags;
       
  3055 		
       
  3056 	class TMobilePreferredNetworkEntryV3 : public TMultimodeType
       
  3057 	/**
       
  3058 	Defines information for a preferred network.
       
  3059 	*/
       
  3060 		{
       
  3061 	public:
       
  3062 		IMPORT_C TMobilePreferredNetworkEntryV3();
       
  3063 	public:
       
  3064 		void InternalizeL(RReadStream& aStream);
       
  3065 		void ExternalizeL(RWriteStream& aStream) const;
       
  3066 	public:
       
  3067 		/**
       
  3068 		Access Technology supported.
       
  3069 		Can contain a number of flags from RMobilePhone::TMobilePhoneNetworkAccessCaps.
       
  3070 		*/
       
  3071 		TMobilePhoneNetworkAccessCapsFlags iAccess;
       
  3072 		/**
       
  3073 		Editable preferences in the User-controlled Networks List with Access Technology.
       
  3074 		*/
       
  3075 		TBool iUserDefined;
       
  3076 		/**
       
  3077 		The MCC of the network.
       
  3078 		*/
       
  3079 		TMobilePhoneNetworkCountryCode iCountryCode;
       
  3080 		/**
       
  3081 		The MNC of the network.
       
  3082 		*/
       
  3083 		TMobilePhoneNetworkIdentity iNetworkId;
       
  3084 		};
       
  3085 		
       
  3086 	IMPORT_C void StorePreferredNetworksListL(TRequestStatus& aReqStatus, CMobilePhoneStoredNetworkList* aList) const;
       
  3087 	IMPORT_C void NotifyPreferredNetworksListChange(TRequestStatus& aReqStatus) const;
       
  3088 		
       
  3089 	/***********************************************************************************/		
       
  3090 	//
       
  3091 	// Mobile Multimedia Call Settings functional unit
       
  3092 	//
       
  3093 	/***********************************************************************************/
       
  3094 	
       
  3095 /** An enumerated list of settings for multimedia calls. */
       
  3096 	enum TMobilePhoneMultimediaSettings
       
  3097 		{
       
  3098 	/** Accept all incoming multimedia calls with the fallback option enabled. (default). */
       
  3099 		EAcceptMMCallsVoiceFallback,
       
  3100 	/** Accept all incoming multimedia calls, but do not accept voice fallback. */
       
  3101 		EAcceptMMCallsNoFallback,
       
  3102 	/** Reject all incoming multimedia calls. */
       
  3103 		ERejectMMCalls,
       
  3104 	/** Reject all incoming multimedia calls, but drop to voice instead. */
       
  3105 		EAnswerMMCallsAsVoice
       
  3106 		};
       
  3107 
       
  3108 	IMPORT_C void SetMultimediaCallPreference(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings aMmSettings) const;
       
  3109 	IMPORT_C TInt GetMultimediaCallPreference(TMobilePhoneMultimediaSettings& aMmSettings) const;
       
  3110 	IMPORT_C void NotifyMultimediaCallPreferenceChange(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings& aMmSettings);
       
  3111 
       
  3112 	/***********************************************************************************/	
       
  3113 	//
       
  3114 	// MobilePrivacy functional unit
       
  3115 	//
       
  3116 	/***********************************************************************************/
       
  3117 	
       
  3118 /** The mobile phone privacy settings.
       
  3119 
       
  3120 Modes: CDMA
       
  3121 @deprecated 9.5 */
       
  3122 	enum TMobilePhonePrivacy
       
  3123 		{
       
  3124 	/** The privacy setting is unspecified. */
       
  3125 		EPrivacyUnspecified,
       
  3126 	/** The privacy setting is set to ON. */
       
  3127 		EPrivacyOn,
       
  3128 	/** The privacy setting is set to OFF. */
       
  3129 		EPrivacyOff
       
  3130 		};
       
  3131 
       
  3132 	IMPORT_C TInt GetDefaultPrivacy(TMobilePhonePrivacy& aSetting) const;
       
  3133 	IMPORT_C void SetDefaultPrivacy(TRequestStatus& aReqStatus, TMobilePhonePrivacy aSetting) const;
       
  3134 	IMPORT_C void NotifyDefaultPrivacyChange(TRequestStatus& aReqStatus, TMobilePhonePrivacy& aSetting) const;
       
  3135 
       
  3136 	/***********************************************************************************/
       
  3137 	//
       
  3138 	// TSY Capabilities for supplementary call services
       
  3139 	// 
       
  3140 	/***********************************************************************************/
       
  3141 	
       
  3142 /** The call services.
       
  3143 
       
  3144 Modes: GSM/WCDMA */
       
  3145 	enum TMobilePhoneCallServiceCaps
       
  3146 		{
       
  3147 	/** Phone supports retrieval of call forwarding status from a cache on the phone.
       
  3148 	
       
  3149 	Modes: GSM/WCDMA */
       
  3150 		KCapsGetCFStatusCache				=0x00000001,
       
  3151 	/** Phone supports retrieval of call forwarding status from the network.
       
  3152 	
       
  3153 	Modes: GSM/WCDMA */
       
  3154 		KCapsGetCFStatusNetwork				=0x00000002,
       
  3155 	/** Phone supports setting of call forwarding status (and registered information) 
       
  3156 	in the network. */
       
  3157 		KCapsSetCFStatus					=0x00000004,
       
  3158 	/** Phone supports notification of change in status of any call forwarding service.
       
  3159 	
       
  3160 	Modes: GSM/WCDMA */
       
  3161 		KCapsNotifyCFStatus					=0x00000008,
       
  3162 	/** Phone supports retrieval of CLIP status from either a cache or the network.
       
  3163 	
       
  3164 	Modes: GSM/WCDMA */
       
  3165 		KCapsGetClipStatus					=0x00000010,
       
  3166 	/** Phone supports retrieval of CLIR status from either a cache or the network.
       
  3167 	
       
  3168 	Modes: GSM/WCDMA */
       
  3169 		KCapsGetClirStatus					=0x00000020,
       
  3170 	/** Phone supports retrieval of COLP status from either a cache or the network.
       
  3171 	
       
  3172 	Modes: GSM/WCDMA */
       
  3173 		KCapsGetColpStatus					=0x00000040,
       
  3174 	/** Phone supports retrieval of COLR status from either a cache or the network.
       
  3175 	
       
  3176 	Modes: GSM/WCDMA */
       
  3177 		KCapsGetColrStatus					=0x00000080,
       
  3178 	/** Phone supports retrieval of CNAP status from either a cache or the network.
       
  3179 
       
  3180 	Modes: GSM/WCDMA */
       
  3181 		KCapsGetCnapStatus					=0x00000100,
       
  3182 	/** Phone supports retrieval of call barring status from a cache on the phone.
       
  3183 	
       
  3184 	Modes: Common */
       
  3185 		KCapsGetCBStatusCache				=0x00000200,
       
  3186 	/** Phone supports retrieval of call barring status from the network.
       
  3187 	
       
  3188 	Modes: GSM/WCDMA */
       
  3189 		KCapsGetCBStatusNetwork				=0x00000400,
       
  3190 	/** Phone supports setting of call barring status in the network.
       
  3191 	
       
  3192 	Modes: Common */
       
  3193 		KCapsSetCBStatus					=0x00000800,
       
  3194 	/** Phone supports notification of change in call barring status for any service.
       
  3195 	
       
  3196 	Modes: Common */
       
  3197 		KCapsNotifyCBStatus					=0x00001000,
       
  3198 	/** Phone supports setting of a password for call barring service.
       
  3199 	
       
  3200 	Modes: Common */
       
  3201 		KCapsChangeCBPassword				=0x00002000,
       
  3202 	/** Phone supports BAIC call barring service.
       
  3203 	
       
  3204 	Modes: Common */
       
  3205 		KCapsBarAllIncoming					=0x00004000,
       
  3206 	/** Phone supports BIC-Roam call barring service.
       
  3207 	
       
  3208 	Modes: Common */
       
  3209 		KCapsBarIncomingRoaming				=0x00008000,
       
  3210 	/** Phone supports BAOC call barring service.
       
  3211 	
       
  3212 	Modes: Common */
       
  3213 		KCapsBarAllOutgoing					=0x00010000,
       
  3214 	/** Phone supports BOIC call barring service.
       
  3215 	
       
  3216 	Modes: Common */
       
  3217 		KCapsBarOutgoingInternational		=0x00020000,
       
  3218 	/** Phone supports BOIC-ExHC call barring service.
       
  3219 	
       
  3220 	Modes: Common */
       
  3221 		KCapsBarOutgoingInternationalExHC	=0x00040000,
       
  3222 	/** Phone supports barring all cases at once.
       
  3223 	
       
  3224 	Modes: Common */
       
  3225 		KCapsBarAllCases					=0x00080000,
       
  3226 	/** Phone supports retrieval of call waiting status from a cache on the phone.
       
  3227 	
       
  3228 	Modes: GSM/WCDMA */
       
  3229 		KCapsGetCWStatusCache				=0x00100000,
       
  3230 	/** Phone supports retrieval of call waiting status from the network.
       
  3231 	
       
  3232 	Modes: GSM/WCDMA */
       
  3233 		KCapsGetCWStatusNetwork				=0x00200000,
       
  3234 	/** Phone supports setting of call waiting status in the network.
       
  3235 	
       
  3236 	Modes: Common */
       
  3237 		KCapsSetCWStatus					=0x00400000,
       
  3238 	/** Phone supports notification of change in call waiting status for any service.
       
  3239 	
       
  3240 	Modes: GSM/WCDMA */
       
  3241 		KCapsNotifyCWStatus					=0x00800000,
       
  3242 	/** Phone supports retrieval of call completion (CCBS) status from a cache on the 
       
  3243 	phone.
       
  3244 	
       
  3245 	Modes: GSM/WCDMA */
       
  3246 		KCapsGetCCBSStatusCache				=0x01000000,
       
  3247 	/** Phone supports retrieval of call completion (CCBS) status from the network.
       
  3248 	
       
  3249 	Modes: GSM/WCDMA */
       
  3250 		KCapsGetCCBSStatusNetwork			=0x02000000,
       
  3251 	/** Phone supports deactivation of all CCBS requests at once.
       
  3252 	
       
  3253 	Modes: GSM/WCDMA */
       
  3254 		KCapsDeactivateAllCCBS				=0x04000000,
       
  3255 		KCapsDeactivateCCBS					=0x08000000,
       
  3256 	/** Phone supports retrieval of a list of active CCBS requests.
       
  3257 	
       
  3258 	Modes: GSM/WCDMA */
       
  3259 		KCapsRetrieveActiveCCBS				=0x10000000,
       
  3260 	/** The phone supports programming and retrieval of feature code against a CDMA 
       
  3261 	network service.
       
  3262 	
       
  3263 	Modes: CDMA
       
  3264 	@deprecated 9.5
       
  3265 	 */
       
  3266 		KCapsFeatureCode					=0x20000000,
       
  3267 	/** The phone supports sending of generic network service request strings.
       
  3268 	
       
  3269 	Modes: Common */
       
  3270 		KCapsNetworkServiceRequest			=0x40000000,
       
  3271 	/** The phone supports retrieval of called line identification status.
       
  3272 	
       
  3273 	Modes: GSM/WCDMA */
       
  3274 		KCapsGetCdipStatus					=0x80000000
       
  3275 		};
       
  3276 
       
  3277 	IMPORT_C TInt GetCallServiceCaps(TUint32& aCaps) const;
       
  3278 	IMPORT_C void NotifyCallServiceCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  3279 
       
  3280 	/***********************************************************************************/
       
  3281 	//
       
  3282 	// MobilePhoneUserNetworkAccess functional unit
       
  3283 	//
       
  3284 	/***********************************************************************************/
       
  3285 
       
  3286 /** Mobile Phone network services.
       
  3287 
       
  3288 Modes: CDMA 
       
  3289 @deprecated 9.5
       
  3290 */
       
  3291 	enum TMobilePhoneNetworkService
       
  3292 		{
       
  3293 	/** Network service is unspecified. */
       
  3294 		ENetworkServiceUnspecified,
       
  3295 	/** Feature code applies to call forwarding unconditional service. */
       
  3296 		ECFUService,
       
  3297 	/** Feature code applies to call forwarding on busy service. */
       
  3298 		ECFBService,
       
  3299 	/** Feature code applies to call forwarding on no reply service. */
       
  3300 		ECFNRyService,
       
  3301 	/** Feature code applies to call forwarding on not reachable service. */
       
  3302 		ECFNRcService,
       
  3303 	/** Feature code applies to user selective call forwarding service - when the 
       
  3304 	user wishes to forward incoming call to voicemail. */
       
  3305 		EDeflectToVoicemail,
       
  3306 	/** Feature code applies to user selective call forwarding service - when the
       
  3307 	user wishes to forward incoming call to a number supplied within the deflect 
       
  3308 	request. */
       
  3309 		EDeflectToNumber,
       
  3310 	/** Feature code applies to user selective call forwarding service - when the 
       
  3311 	user wishes to forward incoming call to a number pre-registered within the 
       
  3312 	network. */
       
  3313 		EDeflectToRegisteredNumber,
       
  3314 	/** Feature code applies to call waiting service. */
       
  3315 		ECWService,
       
  3316 		ENextCallShowCLI,
       
  3317 	/** Feature code applies to caller ID restriction service - when user wishes to 
       
  3318 	hide their ID for the next call they make. */
       
  3319 		ENextCallHideCLI
       
  3320 		};
       
  3321 
       
  3322 /** Mobile phone service actions.
       
  3323 
       
  3324 Modes: Common */
       
  3325 	enum TMobilePhoneServiceAction
       
  3326 		{
       
  3327 	/** The action is unspecified. */
       
  3328 		EServiceActionUnspecified,
       
  3329 	/** The client is registering new service information. If the service was not active 
       
  3330 	then this action also activates the service. */
       
  3331 		EServiceActionRegister,
       
  3332 	/** The client is activating the service. */
       
  3333 		EServiceActionActivate,
       
  3334 	/** The client is invoking the service. */
       
  3335 		EServiceActionInvoke,
       
  3336 	/** The client is deactivating the service. */
       
  3337 		EServiceActionDeactivate,
       
  3338 	/** The client is erasing the currently registered service information. If the service 
       
  3339 	was active then this action also deactivates the service. */
       
  3340 		EServiceActionErase
       
  3341 		};
       
  3342 		
       
  3343 	/**
       
  3344 	Defines the type of SS operation
       
  3345 	*/
       
  3346 	enum TMobilePhoneNotifySendSSOperation
       
  3347 		{
       
  3348 		/**
       
  3349 		SS Invoke operation.
       
  3350 		*/
       
  3351 		ESendSSInvoke,
       
  3352 		/**
       
  3353 		SS ReturnResult operation.
       
  3354 		*/
       
  3355 		ESendSSReturnResult,
       
  3356 		/**
       
  3357 		SS ReturnError operation.
       
  3358 		*/
       
  3359 		ESendSSReturnError,
       
  3360 		/**
       
  3361 		SS Reject operation.
       
  3362 		*/
       
  3363 		ESendSSReject		
       
  3364 		};
       
  3365 	
       
  3366 	/** Size of additional info buffer. */	
       
  3367 	enum{ KAdditionalInfoSize = 244 };
       
  3368 	
       
  3369 	class TMobilePhoneSendSSRequestV3 : public TMultimodeType
       
  3370 	/**
       
  3371 	Contains the operation code and buffer to hold any additional information when receiving a notification 
       
  3372 	about a network service request.
       
  3373 	*/
       
  3374 		{
       
  3375 	public:
       
  3376 		IMPORT_C TMobilePhoneSendSSRequestV3();
       
  3377 	public:
       
  3378 		/**
       
  3379 		This is the Operation Code for a Send SS Invoke or Return result events.
       
  3380 		This is the Error or Problem Code for a Send SS Return Error or Reject events.
       
  3381 		*/
       
  3382 		TUint8	iOpCode;
       
  3383 		/**
       
  3384 		The additional information (parameters) for a Send SS Invoke or Return result or Return Error events.
       
  3385 		This is not used for a Send SS Reject event
       
  3386 		*/
       
  3387 		TBuf<KAdditionalInfoSize>	iAdditionalInfo;
       
  3388 		};
       
  3389 	
       
  3390 	/**
       
  3391  	Packaging typedef for TMobilePhoneSendSSRequestV3 class.
       
  3392  	*/	
       
  3393 	typedef TPckg<TMobilePhoneSendSSRequestV3> TMobilePhoneSendSSRequestV3Pckg;
       
  3394 
       
  3395 	// API/TSY internal type
       
  3396 
       
  3397 	struct TNetworkServiceAndAction
       
  3398 		{
       
  3399 		TMobilePhoneNetworkService iService;
       
  3400 		TMobilePhoneServiceAction iAction;
       
  3401 		};
       
  3402 	
       
  3403 	IMPORT_C void ProgramFeatureCode(TRequestStatus& aReqStatus, const TDesC& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
       
  3404 	IMPORT_C void GetFeatureCode(TRequestStatus& aReqStatus, TDes& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
       
  3405 
       
  3406 	IMPORT_C void SendNetworkServiceRequest(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
       
  3407 	IMPORT_C void SendNetworkServiceRequestNoFdnCheck(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
       
  3408 	IMPORT_C void NotifySendNetworkServiceRequest(TRequestStatus& aReqStatus, const TMobilePhoneNotifySendSSOperation aOperation, TDes8& aRequestComplete) const;
       
  3409 	IMPORT_C void NotifyAllSendNetworkServiceRequest(TRequestStatus& aReqStatus, TMobilePhoneNotifySendSSOperation& aOperation, TDes8& aRequestComplete) const;
       
  3410 
       
  3411 	/***********************************************************************************/
       
  3412 	//
       
  3413 	// MobilePhoneCallForwarding functional unit
       
  3414 	// 
       
  3415 	/***********************************************************************************/
       
  3416 
       
  3417 /** The Call Forwarding flavours.
       
  3418 
       
  3419 Modes: GSM/WCDMA */
       
  3420 	enum TMobilePhoneCFCondition
       
  3421 		{
       
  3422 	/** The call forwarding service is unspecified. */
       
  3423 		ECallForwardingUnspecified,
       
  3424 	/** All calls to this subscriber are forwarded. */
       
  3425 		ECallForwardingUnconditional,
       
  3426 	/** Calls are forwarded when this subscriber is busy. */
       
  3427 		ECallForwardingBusy,
       
  3428 	/** Calls are forwarded when this subscriber does not reply within a time-out period. */
       
  3429 		ECallForwardingNoReply,
       
  3430 	/** Calls are forwarded when this subscriber is unreachable. */
       
  3431 		ECallForwardingNotReachable,
       
  3432 	/** All of above CF services. Can be used to check all 4 call forwarding Fs 
       
  3433 	at once. */
       
  3434 		ECallForwardingAllCases,			// combination of all four above cases
       
  3435 	/** All the conditional (busy, no reply, not reachable) CF services. Can be used 
       
  3436 	to check all 3 conditional call forwarding conditions at once. */
       
  3437 		ECallForwardingAllConditionalCases	// combination of CFB, CFNRy and CFNRc
       
  3438 		};
       
  3439 
       
  3440 /** The Call Forwarding status
       
  3441 
       
  3442 Modes: GSM/WCDMA */
       
  3443 	enum TMobilePhoneCFStatus
       
  3444 		{
       
  3445 	/** The CF service is currently active and operative. */
       
  3446 		ECallForwardingStatusActive,
       
  3447 	/** The CF service is currently deactivated. */
       
  3448 		ECallForwardingStatusNotActive,
       
  3449 	/** The CF service is not registered. */
       
  3450 		ECallForwardingStatusNotRegistered,
       
  3451 	/** The CF service is not provisioned. */
       
  3452 		ECallForwardingStatusNotProvisioned,
       
  3453 	/** The CF service is not available in the serving network. */
       
  3454 		ECallForwardingStatusNotAvailable,
       
  3455 	/** The phone can not determine CF service status. */
       
  3456 		ECallForwardingStatusUnknown,
       
  3457 	/** The Call Forwarding service is active and the presentation indicator is set 
       
  3458 	to allowed */
       
  3459 		ECallForwardingStatusActivePIAllowed,
       
  3460 	/** The Call Forwarding service is active and the presentation indicator is set 
       
  3461 	to not available */
       
  3462 		ECallForwardingStatusActivePINotAvailable,
       
  3463 	/** The Call Forwarding service is active and the presentation indicator is set 
       
  3464 	to restricted
       
  3465 	
       
  3466 	The Call Forwarding service is active and the presentation indicator is set 
       
  3467 	to restricted and screening returns "User provided, verified and passed". */
       
  3468 		ECallForwardingStatusActivePIClir,
       
  3469 	/** The Call Forwarding service is active and the presentation indicator is set 
       
  3470 	to restricted and screening returns "User provided, not screened". */
       
  3471 		ECallForwardingStatusActivePIClirSIVerified,
       
  3472 	/** The Call Forwarding service is active and the presentation indicator is set 
       
  3473 	to "restricted" and screening returns "Network provided". */
       
  3474 		ECallForwardingStatusActivePIClirSINotScreened,
       
  3475 	/** The Call Forwarding service is active and the presentation indicator is set 
       
  3476 	to "restricted" and screening returns "Network provided". */
       
  3477 		ECallForwardingStatusActivePIClirSINetwork,
       
  3478 	/** The CF service is currently in the quiescent state. */	
       
  3479 		ECallForwardingStatusQuiescent
       
  3480 		};
       
  3481 		
       
  3482 	
       
  3483 
       
  3484 	class TMobilePhoneCFInfoEntryV1 : public TMultimodeType
       
  3485 /** Defines information about the call forwarding service.
       
  3486 
       
  3487 Modes: GSM/WCDMA
       
  3488 
       
  3489 @see CMobilePhoneCFList
       
  3490 @publishedPartner
       
  3491 @released 
       
  3492 */
       
  3493 		{
       
  3494 	public:
       
  3495 		IMPORT_C TMobilePhoneCFInfoEntryV1();
       
  3496 	public:
       
  3497 		void InternalizeL(RReadStream& aStream);
       
  3498 		void ExternalizeL(RWriteStream& aStream) const;
       
  3499 	public:
       
  3500 	/** The CF service of this list entry.
       
  3501 	
       
  3502 	@see TMobilePhoneCFCondition */
       
  3503 		TMobilePhoneCFCondition iCondition;
       
  3504 	/** The basic service group associated to this CF service list entry.
       
  3505 	
       
  3506 	@see TMobileService */
       
  3507 		TMobileService iServiceGroup;
       
  3508 	/** The current status of the call forwarding condition.
       
  3509 	
       
  3510 	@see TMobilePhoneCFStatus */
       
  3511 		TMobilePhoneCFStatus iStatus;
       
  3512 	/** The "forward-to" telephone number registered for the call forwarding condition. 
       
  3513 	An empty string if CF service is not registered, not provisioned or not available.
       
  3514 	
       
  3515 	@see TMobileAddress */
       
  3516 		TMobileAddress iNumber;
       
  3517 	/** The "No Reply" time-out (in seconds) registered for the call forwarding no reply 
       
  3518 	condition.
       
  3519 	
       
  3520 	Equals to -1 if this value is not applicable. In GSM mode, will be between 
       
  3521 	5 and 30 and in steps of 5 if this value is applicable. */
       
  3522 		TInt iTimeout; // valid for CFRNy only
       
  3523 		};
       
  3524 
       
  3525 	IMPORT_C void NotifyCallForwardingStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCFCondition& aCondition) const;
       
  3526 
       
  3527 	class TMobilePhoneCFChangeV1 : public TMultimodeType
       
  3528 /** Defines the call forward information.
       
  3529 
       
  3530 @see SetCallForwardingStatus()
       
  3531 @publishedPartner
       
  3532 @released 
       
  3533 */
       
  3534 		{
       
  3535 	public:
       
  3536 		IMPORT_C TMobilePhoneCFChangeV1();
       
  3537 	public:
       
  3538 	/** The basic service group(s) to apply the CF status change to.
       
  3539 	
       
  3540 	@see TMobileService */
       
  3541 		TMobileService iServiceGroup;
       
  3542 	/** The service action for call forwarding.
       
  3543 	
       
  3544 	@see TMobilePhoneServiceAction */
       
  3545 		TMobilePhoneServiceAction iAction;
       
  3546 	/** A new "forward-to" number to be registered against the CF condition. This is 
       
  3547 	applicable if iAction=EServiceActionRegister. In other cases, it is set to
       
  3548 	an empty string.
       
  3549 	
       
  3550 	@see TMobileAddress */
       
  3551 		TMobileAddress iNumber;
       
  3552 	/** The new "No Reply" time-out in seconds to be registered. This is applicable 
       
  3553 	if the CF condition is CFNRy and iAction=EServiceActionRegister. Equals -1 
       
  3554 	if this value is not applicable. If applicable, in GSM mode will be between 
       
  3555 	5 and 30 and in steps of 5. */
       
  3556 		TInt iTimeout;
       
  3557 		};
       
  3558 
       
  3559 	IMPORT_C void SetCallForwardingStatus(TRequestStatus& aReqStatus, TMobilePhoneCFCondition aCondition, const TMobilePhoneCFChangeV1& aInfo) const;
       
  3560 
       
  3561 /** Call Forwarding Active Notification
       
  3562 
       
  3563 Modes: Common */
       
  3564 	enum TMobilePhoneCFActive
       
  3565 		{
       
  3566 	/** CF Unconditional is currently active. */
       
  3567 		ECFUnconditionalActive,
       
  3568 	/** CF Busy, CF No Reply or CF Not Reachable is currently active. */
       
  3569 		ECFConditionalActive
       
  3570 		};
       
  3571 
       
  3572 	IMPORT_C void NotifyCallForwardingActive(TRequestStatus& aReqStatus, TMobileService& aServiceGroup, TMobilePhoneCFActive& aActiveType) const;
       
  3573 	
       
  3574 	/**
       
  3575 	Current status indicators for unconditional call forwarding.
       
  3576 	*/
       
  3577 	enum TCFUIndicatorStatus
       
  3578 		{
       
  3579 		/**
       
  3580 		CFU Indicator status unknown.
       
  3581 		*/
       
  3582 		KCFUIndicatorUnknown = 0x0,
       
  3583 		/**
       
  3584 		CFU Indicator status for Voice (TMobileServiceGroup EVoice).
       
  3585 		*/
       
  3586 		KCFUIndicatorVoice=0x01,
       
  3587 		/**
       
  3588 		CFU Indicator status for Fax (TMobileServiceGroup EFax).
       
  3589 		*/
       
  3590 		KCFUIndicatorFax=0x02,
       
  3591 		/**
       
  3592 		CFU Indicator status for Data Teleservices(TMobileServiceGroup EData).
       
  3593 		*/
       
  3594 		KCFUIndicatorData=0x04,
       
  3595 		/**
       
  3596 		CFU Indicator status for Sms (TMobileServiceGroup ESms).
       
  3597 		*/
       
  3598 		KCFUIndicatorSms=0x08,
       
  3599 		/**
       
  3600 		CFU Indicator status for Data Bearer Services(TMobileServiceGroup EDataBearer).
       
  3601 		*/
       
  3602 		KCFUIndicatorDataBearer=0x10,
       
  3603 		/**
       
  3604 		CFU Indicator status for Auxiliary Voice (TMobileServiceGroup EAuxVoiceService).
       
  3605 		*/
       
  3606 		KCFUIndicatorAuxVoice=0x20
       
  3607 		};
       
  3608 
       
  3609 	typedef TUint32 TCFUIndicatorStatusFlags;
       
  3610 		
       
  3611 	class TMobilePhoneCFUIndicatorV3 : public TMultimodeType
       
  3612 	/**
       
  3613 	Contains indicator parameters for unconditional call forwarding.
       
  3614 	*/
       
  3615 		{
       
  3616 	public:
       
  3617 		IMPORT_C TMobilePhoneCFUIndicatorV3();
       
  3618 	public:
       
  3619 		/**
       
  3620 		Current setting for indicator status.
       
  3621 		Can contain a number of flags from RMobilePhone::TCFUIndicatorStatus.
       
  3622 		*/
       
  3623 		TCFUIndicatorStatusFlags iIndicator;		
       
  3624 		};
       
  3625 		
       
  3626 	typedef TPckg<TMobilePhoneCFUIndicatorV3> TMobilePhoneCFUIndicatorV3Pckg;
       
  3627 
       
  3628 	/**
       
  3629 	The MSP number contains the Profile Identity of the subscriber profile.
       
  3630 	The Profile Identity shall be any of the following enlisted.
       
  3631 	@see 3GPP TS 31.102 v7.4.1 section 4.2.64
       
  3632 	@see 3GPP TS 23.097 [36]
       
  3633 	*/
       
  3634 	enum TMultipleSubscriberProfileID
       
  3635 		{
       
  3636 		/**
       
  3637 		Profile Identity Unknown
       
  3638 		*/
       
  3639 		KProfileIdentityUnknown = 0x0,
       
  3640 		/**
       
  3641 		Profile Identity 1
       
  3642 		*/
       
  3643 		KProfileIdentityOne = 0x01,
       
  3644 		/**
       
  3645 		Profile Identity 2
       
  3646 		*/
       
  3647 		KProfileIdentityTwo = 0x02,
       
  3648 		/**
       
  3649 		Profile Identity 3
       
  3650 		*/
       
  3651 		KProfileIdentityThree = 0x04,
       
  3652 		/**
       
  3653 		Profile Identity 4
       
  3654 		*/
       
  3655 		KProfileIdentityFour = 0x08
       
  3656 		};
       
  3657 
       
  3658 	class TMobilePhoneCFUIndicatorV6 : public TMobilePhoneCFUIndicatorV3
       
  3659 	/**
       
  3660 	Contains the indicator parameters for unconditional call forwarding.
       
  3661 	The TMobilePhoneCFUIndicatorV6 supports MSP number(Multiple Subscriber Profile) and Call Forwarding Number.
       
  3662 	Upto four different profiles can be provisioned against a subscriber using the MSP feature.
       
  3663 	@see 3GPP TS 31.102 v7.4.1 section 4.2.64
       
  3664 	*/
       
  3665 		{
       
  3666 	public:
       
  3667 		IMPORT_C TMobilePhoneCFUIndicatorV6();
       
  3668 	public:
       
  3669 		/**
       
  3670 		@see RMoblie::TMobileAddress
       
  3671 		*/
       
  3672 		TMobileAddress iCFNumber;
       
  3673 		/**
       
  3674 		The profile IDs allow unambiguous identification of each profile. 
       
  3675 		This will allow the subscriber to select the preferred profile for outgoing calls and for subscriber actions. 
       
  3676 		For terminating calls the profile ID shall be part of the notification of the profile.
       
  3677 		*/
       
  3678 		TMultipleSubscriberProfileID iMultipleSubscriberProfileID;
       
  3679 		};
       
  3680 
       
  3681 	typedef TPckg<TMobilePhoneCFUIndicatorV6> TMobilePhoneCFUIndicatorV6Pckg;
       
  3682 
       
  3683 	IMPORT_C void GetCallForwardingIndicator(TRequestStatus& aReqStatus, TDes8& aIndicator) const;
       
  3684 
       
  3685 	/***********************************************************************************/
       
  3686 	//
       
  3687 	// Mobile Identity Service functional unit
       
  3688 	// 
       
  3689 	/***********************************************************************************/
       
  3690 
       
  3691 /** Phone ID services (CLIP/CNIP/CLIR).
       
  3692 
       
  3693 Modes: GSM/WCDMA */
       
  3694 	enum TMobilePhoneIdService
       
  3695 		{
       
  3696 	/** The identity service is unspecified */
       
  3697 		EIdServiceUnspecified,
       
  3698 	/** The caller's ID is presented to the called party. */
       
  3699 		EIdServiceCallerPresentation,
       
  3700 	/** The caller's ID is restricted to the called party. */
       
  3701 		EIdServiceCallerRestriction,
       
  3702 	/** The connected party's ID is presented to the calling party. */
       
  3703 		EIdServiceConnectedPresentation,
       
  3704 	/** The connected party's ID is restricted to the calling party. */
       
  3705 		EIdServiceConnectedRestriction,
       
  3706 	/** The caller's name is presented to the called party. */
       
  3707 		EIdServiceCallerName,
       
  3708 	/** The called party is presented with the caller's ID. This command enables a 
       
  3709 	called subscriber to get the called line identification of the called party 
       
  3710 	when receiving a mobile terminated call. - maps to +CDIP. */
       
  3711 		EIdServiceCalledPresentation
       
  3712 		};
       
  3713 
       
  3714 /** Service status of the Phone ID services (CLIP/CLIR/CNIP).
       
  3715 
       
  3716 Modes: GSM/WCDMA */
       
  3717 	enum TMobilePhoneIdServiceStatus
       
  3718 		{
       
  3719 	/** The interrogated Identity service is provisioned and active. This status is 
       
  3720 	used for all identity services and in the case of the CLIR service means that 
       
  3721 	it is permanently active with no subscription option set. */
       
  3722 		EIdServiceActivePermanent,
       
  3723 	/** This status is used for the CLIR service only and means that the service is 
       
  3724 	provisioned and active.
       
  3725 	
       
  3726 	The CLIR subscription option is set to "Temporary, default restricted", therefore 
       
  3727 	identity is always restricted unless over-ridden by the user during a call 
       
  3728 	set-up. */
       
  3729 		EIdServiceActiveDefaultRestricted,
       
  3730 	/** This status is used for the CLIR service only and means that the service is 
       
  3731 	provisioned and active.
       
  3732 	
       
  3733 	The CLIR subscription option is set to "Temporary, default allowed", therefore 
       
  3734 	identity is always allowed unless over-ridden by the user during a call set-up. */
       
  3735 		EIdServiceActiveDefaultAllowed,
       
  3736 	/** The interrogated Identity service is not provisioned. */
       
  3737 		EIdServiceNotProvisioned,
       
  3738 	/** The status of the interrogated Identity service is unknown. */
       
  3739 		EIdServiceUnknown
       
  3740 		};
       
  3741 
       
  3742 	// for use by client-side API code and TSY only
       
  3743 
       
  3744 	struct TIdServiceAndLocation
       
  3745 		{
       
  3746 		TMobilePhoneIdService iService;
       
  3747 		TMobileInfoLocation iLocation;
       
  3748 		};
       
  3749 
       
  3750 	/** This function member retrieves the current status of the identity service specified.
       
  3751 	
       
  3752 	The phone will retrieve this service status information from the location 
       
  3753 	specified by the client.
       
  3754 	
       
  3755 	If the client has requested EInfoLocationCache but there is no valid status 
       
  3756 	information in the cache then the request will return KErrNotFound.
       
  3757 	
       
  3758 	If the client has requested EInfoLocationCachePreferred, the network will 
       
  3759 	be interrogated if the cache is empty. Whenever the network is interrogated, 
       
  3760 	the cache will be refreshed with the information from the network.
       
  3761 	
       
  3762 	Use RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneGetIdentityServiceStatus) 
       
  3763 	to cancel a previously placed asynchronous GetIdentityServiceStatus() request.
       
  3764 	
       
  3765 	@param aReqStatus On return, KErrNone if successful.
       
  3766 	@param aService The identity service to be queried.
       
  3767 	@param aStatus On return, the service status.
       
  3768 	@param aLocation The location to use. */
       
  3769 	IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
       
  3770 	
       
  3771 	/**
       
  3772 	Identifies default service status for provisioned identity services.
       
  3773 	*/
       
  3774 	enum TMobilePhoneIdServiceSetting
       
  3775 		{
       
  3776 		/** Sets the default setting to network default (unknown). */
       
  3777 		EIdServiceNetworkDefault,
       
  3778 		/** Sets the default setting to presentation restricted. */
       
  3779 		EIdServicePresentationRestricted,
       
  3780 		/** Sets the default setting to presentation allowed. */
       
  3781 		EIdServicePresentationAllowed
       
  3782 		};
       
  3783 		
       
  3784 	IMPORT_C void SetIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, const TMobilePhoneIdServiceSetting aSetting) const;
       
  3785 	IMPORT_C void NotifyIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus) const;
       
  3786 	IMPORT_C void NotifyIdentitySuppressionRejected(TRequestStatus& aReqStatus) const;
       
  3787 
       
  3788 	/***********************************************************************************/
       
  3789 	//
       
  3790 	// Mobile Call Barring Functional Unit
       
  3791 	//
       
  3792 	/***********************************************************************************/
       
  3793 
       
  3794 /** Mobile Phone Call Baring Conditions.
       
  3795 
       
  3796 Modes: Common */
       
  3797 	enum TMobilePhoneCBCondition
       
  3798 		{
       
  3799 	/** The barring program is unspecified */
       
  3800 		EBarUnspecified,
       
  3801 	/** All incoming calls to this subscriber are barred (BAIC). */
       
  3802 		EBarAllIncoming,
       
  3803 	/** All incoming calls to this subscriber are barred when roaming outside the home 
       
  3804 	PLMN country (BIC-roam). */
       
  3805 		EBarIncomingRoaming,
       
  3806 	/** All outgoing calls by this subscriber are barred (BAOC). */
       
  3807 		EBarAllOutgoing,
       
  3808 	/** All outgoing international calls by this subscriber are barred (BOIC). */
       
  3809 		EBarOutgoingInternational,
       
  3810 	/** All outgoing international calls except those directed to the home PLMN country 
       
  3811 	by this subscriber are barred (BOIC-ExHC). */
       
  3812 		EBarOutgoingInternationalExHC,
       
  3813 	/** All of above CB services. */
       
  3814 		EBarAllCases,
       
  3815 		EBarAllOutgoingServices,
       
  3816 		EBarAllIncomingServices
       
  3817 		};
       
  3818 
       
  3819 /** Mobile Phone Call Barring Status and Information.
       
  3820 
       
  3821 Modes: Common */
       
  3822 	enum TMobilePhoneCBStatus
       
  3823 		{
       
  3824 	/** The CB service is currently active and operative. */
       
  3825 		ECallBarringStatusActive,
       
  3826 	/** The CB service is currently deactivated or quiescent. */
       
  3827 		ECallBarringStatusNotActive,
       
  3828 	/** In GSM/WCDMA mode, the CB service is not provisioned. In CDMA mode, this value 
       
  3829 	has no meaning. */
       
  3830 		ECallBarringStatusNotProvisioned,
       
  3831 	/** In GSM/WCDMA mode, the CB service is not available in serving network. In CDMA
       
  3832 	mode, the CB service is not available in the phone. */
       
  3833 		ECallBarringStatusNotAvailable,
       
  3834 	/** The phone can not determine CB service status. */
       
  3835 		ECallBarringStatusUnknown
       
  3836 		};
       
  3837 
       
  3838 	
       
  3839 
       
  3840 	class TMobilePhoneCBInfoEntryV1 : public TMultimodeType
       
  3841 /** Defines information about the call barring service.
       
  3842 
       
  3843 @see CMobilePhoneCBList
       
  3844 @publishedPartner
       
  3845 @released 
       
  3846 */
       
  3847 		{
       
  3848 	public:
       
  3849 		void InternalizeL(RReadStream& aStream);
       
  3850 		void ExternalizeL(RWriteStream& aStream) const;
       
  3851 	public:
       
  3852 		IMPORT_C TMobilePhoneCBInfoEntryV1();
       
  3853 	public:
       
  3854 	/** The CB service of this list entry.
       
  3855 	
       
  3856 	Modes: Common
       
  3857 	
       
  3858 	@see TMobilePhoneCBCondition */
       
  3859 		TMobilePhoneCBCondition iCondition;
       
  3860 	/** The service group associated to this list entry.
       
  3861 	
       
  3862 	Modes: Common
       
  3863 	
       
  3864 	@see TMobileService */
       
  3865 		TMobileService iServiceGroup;
       
  3866 	/** The CB service status of this list entry.
       
  3867 	
       
  3868 	Modes: Common
       
  3869 	
       
  3870 	@see TMobilePhoneCBStatus */
       
  3871 		TMobilePhoneCBStatus iStatus;
       
  3872 		};
       
  3873 		
       
  3874 	class TMobilePhoneCBInfoEntryV3 : public TMobilePhoneCBInfoEntryV1
       
  3875 	/**
       
  3876 	V3 class extending TMobilePhoneCBInfoEntryV1 to add a comparison method parameter.
       
  3877 	*/
       
  3878 		{
       
  3879 	public:
       
  3880 		void InternalizeL(RReadStream& aStream);
       
  3881 		void ExternalizeL(RWriteStream& aStream) const;
       
  3882 	public:
       
  3883 		IMPORT_C TMobilePhoneCBInfoEntryV3();
       
  3884 	public:
       
  3885 		/**
       
  3886 		The comparison method associated with this CB entry.
       
  3887 		*/
       
  3888 		TUint8 iCompMethod;
       
  3889 		};
       
  3890 		
       
  3891 	class TMobilePhoneCBChangeV1 : public TMultimodeType
       
  3892 /** Mobile Phone Call Barring Change.
       
  3893 
       
  3894 @see SetCallBarringStatus() 
       
  3895 */
       
  3896 		{
       
  3897 	public:
       
  3898 		IMPORT_C TMobilePhoneCBChangeV1();
       
  3899 	public:
       
  3900 	/** The basic service group(s) to apply the CB status change to.
       
  3901 	
       
  3902 	@see TMobileService */
       
  3903 		TMobileService iServiceGroup;
       
  3904 	/** The service action for call barring.
       
  3905 	
       
  3906 	@see TMobilePhoneServiceAction */
       
  3907 		TMobilePhoneServiceAction iAction;
       
  3908 	/** Password required to perform the call barring service action.
       
  3909 	
       
  3910 	@see TMobilePassword */
       
  3911 		TMobilePassword iPassword;
       
  3912 		};
       
  3913 
       
  3914 	IMPORT_C void SetCallBarringStatus(TRequestStatus& aReqStatus, TMobilePhoneCBCondition aCondition, const TMobilePhoneCBChangeV1& aInfo) const;
       
  3915 	IMPORT_C void NotifyCallBarringStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCBCondition& aCondition) const;
       
  3916 	
       
  3917 	class TMobilePhonePasswordChangeV1 : public TMultimodeType
       
  3918 /** Mobile phone password change.
       
  3919 
       
  3920 @see SetCallBarringPassword()
       
  3921 @see ChangeSecurityCode()
       
  3922 @publishedPartner
       
  3923 @released 
       
  3924 */
       
  3925 		{
       
  3926 	public:
       
  3927 		IMPORT_C TMobilePhonePasswordChangeV1();
       
  3928 	public:
       
  3929 	/** Old password.
       
  3930 	
       
  3931 	Modes: Common
       
  3932 	
       
  3933 	@see TMobilePassword */
       
  3934 		TMobilePassword iOldPassword;
       
  3935 	/** New password.
       
  3936 	
       
  3937 	Modes: Common
       
  3938 	
       
  3939 	@see TMobilePassword */
       
  3940 		TMobilePassword iNewPassword;
       
  3941 		};
       
  3942 
       
  3943 	IMPORT_C void SetCallBarringPassword(TRequestStatus& aReqStatus, const TMobilePhonePasswordChangeV1& aPassword) const;
       
  3944 
       
  3945 	class TMobilePhonePasswordChangeV2 : public TMobilePhonePasswordChangeV1
       
  3946 /** Mobile phone password change version 2. 
       
  3947 */
       
  3948 	{
       
  3949 	public:
       
  3950 		IMPORT_C TMobilePhonePasswordChangeV2();
       
  3951 	public:
       
  3952 	/** Verified password.
       
  3953 	
       
  3954 	Modes: Common
       
  3955 	
       
  3956 	@see TMobilePassword */
       
  3957 		TMobilePassword iVerifiedPassword;
       
  3958 	};
       
  3959 
       
  3960 /** A typedef'd packaged TMobilePhonePasswordChangeV2 passing through a generic 
       
  3961 API function member. */
       
  3962 	typedef TPckg<TMobilePhonePasswordChangeV2> TMobilePhonePasswordChangeV2Pckg;
       
  3963 
       
  3964 	IMPORT_C void SetSSPassword(TRequestStatus& aReqStatus, const TDesC8& aPassword, const TInt aService) const;
       
  3965 	
       
  3966 	IMPORT_C void GetCompMethodName(TRequestStatus& aReqStatus, TDes& aAlphaTag, const TUint8 aCmi) const;
       
  3967 
       
  3968 	/***********************************************************************************/
       
  3969 	//
       
  3970 	// Mobile Call Waiting Functional Unit
       
  3971 	//
       
  3972 	/***********************************************************************************/
       
  3973 
       
  3974 /** The mobile phone call waiting status.
       
  3975 
       
  3976 Modes: GSM/WCDMA */
       
  3977 	enum TMobilePhoneCWStatus
       
  3978 		{
       
  3979 	/** The CW service is currently active and operative. */
       
  3980 		ECallWaitingStatusActive,
       
  3981 	/** The CW service is currently deactivated or quiescent. */
       
  3982 		ECallWaitingStatusNotActive,
       
  3983 	/** The CW service is not provisioned. */
       
  3984 		ECallWaitingStatusNotProvisioned,
       
  3985 	/** The CW service is not available in the serving network. */
       
  3986 		ECallWaitingStatusNotAvailable,
       
  3987 	/** The phone can not determine CW service status. */
       
  3988 		ECallWaitingStatusUnknown
       
  3989 		};
       
  3990 
       
  3991 	
       
  3992 
       
  3993 	class TMobilePhoneCWInfoEntryV1 : public TMultimodeType
       
  3994 /** Defines information about the call waiting service.
       
  3995 
       
  3996 @see CMobilePhoneCWList 
       
  3997 */
       
  3998 		{
       
  3999 	public:
       
  4000 		void InternalizeL(RReadStream& aStream);
       
  4001 		void ExternalizeL(RWriteStream& aStream) const;
       
  4002 	public:
       
  4003 		IMPORT_C TMobilePhoneCWInfoEntryV1();
       
  4004 	public:
       
  4005 	/** The service group associated to this CW service list entry.
       
  4006 	
       
  4007 	Modes: GSM/WCDMA
       
  4008 	
       
  4009 	@see TMobileService */
       
  4010 		TMobileService iServiceGroup;
       
  4011 	/** The CW service status of this list entry.
       
  4012 	
       
  4013 	Modes: GSM/WCDMA
       
  4014 	
       
  4015 	@see TMobilePhoneCWStatus */
       
  4016 		TMobilePhoneCWStatus iStatus;
       
  4017 		};
       
  4018 
       
  4019 /** A typedef'd packaged TMobilePhoneCWInfoEntryV1 for passing through a generic 
       
  4020 API function member. */
       
  4021 	typedef TPckg<TMobilePhoneCWInfoEntryV1> TMobilePhoneCWInfoEntryV1Pckg;
       
  4022 
       
  4023 	IMPORT_C void SetCallWaitingStatus(TRequestStatus& aReqStatus, TMobileService aServiceGroup, TMobilePhoneServiceAction aAction) const;
       
  4024 	IMPORT_C void NotifyCallWaitingStatusChange(TRequestStatus& aReqStatus, TDes8& aCWStatus) const;
       
  4025 
       
  4026 	/***********************************************************************************/
       
  4027 	//
       
  4028 	// Mobile Call Completion Unit
       
  4029 	//
       
  4030 	/***********************************************************************************/
       
  4031 
       
  4032 /** The Call Completion Busy Subscriber status of the phone.
       
  4033 
       
  4034 Modes: GSM/WCDMA */
       
  4035 	enum TMobilePhoneCCBSStatus
       
  4036 		{
       
  4037 	/** User has CCBS provisioned and there is at least 1 (and up to 5) active CCBS 
       
  4038 	requests. */
       
  4039 		ECcbsActive,
       
  4040 	/** User has CCBS provisioned but there are currently no active CCBS requests. */
       
  4041 		ECcbsNotActive,
       
  4042 	/** User has not subscribed to the CCBS service. */
       
  4043 		ECcbsNotProvisioned,
       
  4044 	/** The CCBS service is not available in the serving network. */
       
  4045 		ECcbsNotAvailable,
       
  4046 	/** MS is unable to determine status of the CCBS service. */
       
  4047 		ECcbsUnknown
       
  4048 		};
       
  4049 
       
  4050 /** CCBS recall events.
       
  4051 
       
  4052 @see RMobilePhone::TMobilePhoneCCBSEntryV2 */
       
  4053 	enum TCCBSRecallEvent
       
  4054 		{
       
  4055 	/** Recall received. */
       
  4056 		ECcbsRecallReceived,
       
  4057 	/** Recall accepted. */
       
  4058 		ECcbsRecallAccepted,
       
  4059 	/** Recall refused. */
       
  4060 		ECcbsRecallRefused,
       
  4061 	/** Recall reason unspecified. */
       
  4062 		ECcbsRecallUnspecified
       
  4063 		};
       
  4064 
       
  4065 	
       
  4066 
       
  4067 	class TMobilePhoneCCBSEntryV1 : public TMultimodeType
       
  4068 /** Defines information about the call completion (CCBS) service.
       
  4069 
       
  4070 @see CMobilePhoneCcbsList
       
  4071 @publishedPartner
       
  4072 @released 
       
  4073 */
       
  4074 		{
       
  4075 	public:
       
  4076 		void InternalizeL(RReadStream& aStream);
       
  4077 		void ExternalizeL(RWriteStream& aStream) const;
       
  4078 	public:
       
  4079 		IMPORT_C TMobilePhoneCCBSEntryV1();
       
  4080 	public:
       
  4081 	/** The CCBS index - a number allocated by the network.
       
  4082 	
       
  4083 	Modes: GSM/WCDMA */
       
  4084 		TInt			iCcbsIndex;
       
  4085 	/** The basic service group (voice/data/fax) this CCBS request is applicable to.
       
  4086 	
       
  4087 	Modes: GSM/WCDMA
       
  4088 	
       
  4089 	@see TMobileService */
       
  4090 		TMobileService	iServiceGroup;
       
  4091 	/** The phone number of the remote party to whom the CCBS request is aimed.
       
  4092 	
       
  4093 	Modes: GSM/WCDMA
       
  4094 	
       
  4095 	@see TMobileAddress */
       
  4096 		TMobileAddress	iDestination;
       
  4097 
       
  4098 		};
       
  4099 
       
  4100 /** A typedef'd packaged TMobilePhoneCCBSEntryV1 for passing through a generic API 
       
  4101 function member. */
       
  4102 	typedef TPckg<TMobilePhoneCCBSEntryV1> TMobilePhoneCCBSEntryV1Pckg;
       
  4103 
       
  4104 
       
  4105 	class TMobilePhoneCCBSEntryV2 : public TMobilePhoneCCBSEntryV1
       
  4106 /** Defines information about the call completion (CCBS) service version 2. 
       
  4107 */
       
  4108 		{
       
  4109 	public:
       
  4110 		IMPORT_C	TMobilePhoneCCBSEntryV2();
       
  4111 	public:
       
  4112 		TCCBSRecallEvent	iEvent;
       
  4113 		}; 
       
  4114 	
       
  4115 /** A typedef'd packaged TMobilePhoneCCBSEntryV2 for passing through a generic API 
       
  4116 function member. */
       
  4117 	typedef TPckg<TMobilePhoneCCBSEntryV2> TMobilePhoneCCBSEntryV2Pckg;
       
  4118 	
       
  4119 	IMPORT_C void GetCCBSStatus(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
       
  4120 	IMPORT_C void NotifyCCBSStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus) const;
       
  4121 	IMPORT_C void DeactivateCCBS(TRequestStatus& aReqStatus, TInt aIndex) const;
       
  4122 	IMPORT_C void NotifyCCBSRecall(TRequestStatus& aReqStatus, TDes8& aCCBSEntry) const;
       
  4123 	IMPORT_C void AcceptCCBSRecall(TRequestStatus& aReqStatus, TInt aIndex, TName& aCallName) const;
       
  4124 	IMPORT_C TInt RefuseCCBSRecall(TInt aIndex) const;
       
  4125 
       
  4126 	/***********************************************************************************/
       
  4127 	//
       
  4128 	// Mobile Alternating Call Function Unit
       
  4129 	//
       
  4130 	/***********************************************************************************/
       
  4131 
       
  4132 /** Alternating Call Capabilities
       
  4133 
       
  4134 Modes: GSM */
       
  4135 	enum TMobilePhoneAlternatingCallCaps
       
  4136 		{
       
  4137 	/** Phone supports outgoing Voice/Data calls
       
  4138 	
       
  4139 	Modes: GSM */
       
  4140 		KCapsMOVoiceData = 0x00000001,
       
  4141 	/** Phone supports outgoing Voice Then Data calls.
       
  4142 	
       
  4143 	Modes: GSM */
       
  4144 		KCapsMOVoiceThenData = 0x00000002,
       
  4145 	/** Phone supports outgoing Voice/Fax calls.
       
  4146 	
       
  4147 	Modes: GSM/WCDMA */
       
  4148 		KCapsMOVoiceFax	= 0x00000004,
       
  4149 	/** Phone supports incoming Voice/Data calls.
       
  4150 	
       
  4151 	Modes: GSM */
       
  4152 		KCapsMTVoiceData = 0x00000008,
       
  4153 	/** Phone supports incoming Voice Then Data calls.
       
  4154 	
       
  4155 	Modes: GSM */
       
  4156 		KCapsMTVoiceThenData = 0x00000010,
       
  4157 	/** Phone supports incoming Voice/Fax calls
       
  4158 
       
  4159 	Modes: GSM/WCDMA */
       
  4160 		KCapsMTVoiceFax = 0x00000020
       
  4161 		};
       
  4162 
       
  4163 	IMPORT_C TInt GetAlternatingCallCaps(TUint32& aCaps) const;
       
  4164 	IMPORT_C void NotifyAlternatingCallCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  4165 
       
  4166 /** Alternating Call Mode.
       
  4167 
       
  4168 Modes: Common */
       
  4169 	enum TMobilePhoneAlternatingCallMode
       
  4170 		{
       
  4171 	/** The alternating call mode is unspecified
       
  4172 	
       
  4173 	Modes: Common */
       
  4174 		EAlternatingModeUnspecified,
       
  4175 	/** Next call will use a single bearer service - default setting
       
  4176 	
       
  4177 	Modes: Common */
       
  4178 		EAlternatingModeSingle,
       
  4179 	/** Next call will use voice/data alternating bearer service. 
       
  4180 	
       
  4181 	Modes: GSM */
       
  4182 		EAlternatingModeVoiceData,
       
  4183 	/** Next call will use voice then data alternating bearer service.
       
  4184 	
       
  4185 	Modes: GSM */
       
  4186 		EAlternatingModeVoiceThenData,
       
  4187 	/** Next call will use voice/fax alternating bearer service. 
       
  4188 	
       
  4189 	Modes: GSM/WCDMA */
       
  4190 		EAlternatingModeVoiceFax
       
  4191 		};
       
  4192 
       
  4193 	IMPORT_C TInt GetAlternatingCallMode(TMobilePhoneAlternatingCallMode& aMode, TMobileService& aFirstService) const;
       
  4194 	IMPORT_C void SetAlternatingCallMode(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode aMode, TMobileService aFirstService) const;
       
  4195 	IMPORT_C void NotifyAlternatingCallModeChange(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode& aMode,TMobileService& aFirstService) const;
       
  4196 
       
  4197 	/***********************************************************************************/
       
  4198 	//
       
  4199 	// Mobile Alternate Line Service Functional Unit
       
  4200 	//
       
  4201 	/***********************************************************************************/
       
  4202 
       
  4203 /** Alternate Line Primary settings.
       
  4204 
       
  4205 Modes: GSM */
       
  4206 	enum TMobilePhoneALSLine
       
  4207 		{
       
  4208 	/** Current ALS line selection is the "Primary" voice line. */
       
  4209 		EAlternateLinePrimary,
       
  4210 	/** Current ALS line selection is the "Auxiliary" voice line. */
       
  4211 		EAlternateLineAuxiliary,
       
  4212 	/** ALS is supported by ME and SIM, but the TSY can not determine which line is 
       
  4213 	currently selected. */
       
  4214 		EAlternateLineUnknown,
       
  4215 	/** The ME, SIM or serving network does not support ALS. */
       
  4216 		EAlternateLineNotAvailable
       
  4217 		};
       
  4218 
       
  4219 	IMPORT_C TInt GetALSLine(TMobilePhoneALSLine& aALSLine) const;
       
  4220 	IMPORT_C void SetALSLine(TRequestStatus& aReqStatus, TMobilePhoneALSLine aALSLine) const;
       
  4221 	IMPORT_C void NotifyALSLineChange(TRequestStatus& aReqStatus, TMobilePhoneALSLine& aALSLine) const;
       
  4222 
       
  4223 	/***********************************************************************************/	
       
  4224 	//
       
  4225 	// Mobile Network Security Functional Unit
       
  4226 	//
       
  4227 	/***********************************************************************************/
       
  4228 
       
  4229 /** Enumerated network security types.
       
  4230 
       
  4231 Mode: Common */
       
  4232 	enum TMobilePhoneNetworkSecurity
       
  4233 		{
       
  4234 	/** The encryption level is NONE.
       
  4235 	
       
  4236 	Mode: Common */
       
  4237 		ECipheringOff,
       
  4238 	/** The encryption level is GSM.(standard encryption algorithms for 2nd Generation 
       
  4239 	Mobile networks).
       
  4240 	
       
  4241 	Mode: GSM */
       
  4242 		ECipheringGSM,
       
  4243 	/** The encryption level is WCDMA.(standard encryption algorithms for 3rd Generation 
       
  4244 	Mobile networks).
       
  4245 	
       
  4246 	Mode: WCDMA */
       
  4247 		ECipheringWCDMA,
       
  4248 	/** The encryption level is CDMA.(standard encryption algorithms for 3rd Generation 
       
  4249 	Mobile networks).
       
  4250 	
       
  4251 	Mode: CDMA 
       
  4252 	@deprecated 9.5
       
  4253 	*/
       
  4254 		ECipheringCDMA
       
  4255 		};
       
  4256 
       
  4257 	IMPORT_C void GetNetworkSecurityLevel(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const;
       
  4258 	IMPORT_C void NotifyNetworkSecurityLevelChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const;
       
  4259 	
       
  4260 	/**
       
  4261 	Indicators for whether encryption status of the current call should be displayed.
       
  4262 	*/
       
  4263 	enum TMobileCallCipheringIndicator
       
  4264 		{
       
  4265 		/**
       
  4266 		The ME indication displaying the encryption status of the current call should be off.
       
  4267 		*/
       
  4268 		ECipheringDisplayOff,
       
  4269 		/**
       
  4270 		The ME indication displaying the encryption status of the current call should be on.
       
  4271 		*/
       
  4272 		ECipheringDisplayOn 
       
  4273 		};
       
  4274 		
       
  4275     IMPORT_C void GetCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const;
       
  4276     IMPORT_C void NotifyCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const;
       
  4277 
       
  4278 	/***********************************************************************************/
       
  4279 	//
       
  4280 	// Mobile Cost Functional Unit
       
  4281 	//
       
  4282 	/***********************************************************************************/
       
  4283 
       
  4284 /** Call Cost Capabilities.
       
  4285 
       
  4286 Modes: GSM/WCDMA */
       
  4287 	enum TMobilePhoneCostCaps
       
  4288 		{
       
  4289 	/** Indicates that the phone supports calculation and display of current and accumulated 
       
  4290 	call cost on an information-only basis. (The AoCI service in GSM) 
       
  4291 	
       
  4292 	Modes: GSM/WCDMA */
       
  4293 		KCapsCostInformation = 0x00000001,
       
  4294 	/** Indicates that the phone supports calculation and display of current and accumulated 
       
  4295 	call cost in order to support the charging service. (The AoCC service in GSM). 
       
  4296 
       
  4297 
       
  4298 	Modes: Common */
       
  4299 		KCapsCostCharging = 0x00000002,
       
  4300 	/** Indicates that the phone supports clearing of cost meters (ACM or CCM) to zero.
       
  4301 	
       
  4302 	Modes: Common */
       
  4303 		KCapsClearCost = 0x00000004,
       
  4304 	/** Indicates that the phone supports setting the maximum allowed cost (ACMmax) 
       
  4305 	to a non-zero value. 
       
  4306 	
       
  4307 	Modes: Common */
       
  4308 		KCapsSetMaxCost = 0x00000008,
       
  4309 	/** Indicates that the phone supports setting the currency and price per unit.
       
  4310 	
       
  4311 	Modes: GSM/WCDMA */
       
  4312 		KCapsSetPuct = 0x00000010,
       
  4313 	/** Indicates that the phone currently has call cost information available that 
       
  4314 	the client can retrieve.
       
  4315 	
       
  4316 	Modes: Common */
       
  4317 		KCapsGetCost = 0x00000020,
       
  4318 	/** Indicates that the phone can notify the client when the call cost information 
       
  4319 	changes. 
       
  4320 	
       
  4321 	Modes: Common */
       
  4322 		KCapsNotifyCostChange = 0x00000040
       
  4323 		};
       
  4324 
       
  4325 	IMPORT_C TInt GetCostCaps(TUint32& aCaps) const;
       
  4326 	IMPORT_C void NotifyCostCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  4327 
       
  4328 /** Clear Cost Meter.
       
  4329 
       
  4330 Modes: Common */
       
  4331 	enum TMobilePhoneCostMeters
       
  4332 		{
       
  4333 	/** Clear the Current Call Meter. */
       
  4334 		EClearCCM,
       
  4335 	/** Clear the Accumulated Charge Meter. */
       
  4336 		EClearACM,
       
  4337 	/** Clear all cost meters */
       
  4338 		EClearAll
       
  4339 		};
       
  4340 
       
  4341 	IMPORT_C void ClearCostMeter(TRequestStatus& aReqStatus, TMobilePhoneCostMeters aMeter) const;
       
  4342 	IMPORT_C void SetMaxCostMeter(TRequestStatus& aReqStatus, TUint aUnits) const;
       
  4343 
       
  4344 	
       
  4345 	
       
  4346 	class  TMobilePhonePuctV1 : public TMultimodeType
       
  4347 /** Defines the contents of the price/unit and currency table (PUCT) on the SIM.
       
  4348 
       
  4349 @see TMobilePhoneCostInfoV1
       
  4350 @see SetPuct() 
       
  4351 */
       
  4352 		{
       
  4353 	public:
       
  4354 		IMPORT_C TMobilePhonePuctV1();
       
  4355 	public:
       
  4356 	/** The Price per Unit. This floating point value is used to adjust the pricing 
       
  4357 	units supplied by the network into real currency values. 
       
  4358 	
       
  4359 	Modes: GSM/WCDMA */
       
  4360 		TReal   iPricePerUnit;
       
  4361 	/** The three character currency indicator.
       
  4362 	
       
  4363 	Modes: GSM/WCDMA */
       
  4364 		TBuf<4> iCurrencyName;
       
  4365 		};
       
  4366 
       
  4367 /** A typedef'd packaged TMobilePhonePuctV1 for passing through a generic API function 
       
  4368 member. */
       
  4369 	typedef TPckg<TMobilePhonePuctV1> TMobilePhonePuctV1Pckg;
       
  4370 	
       
  4371 	IMPORT_C void SetPuct(TRequestStatus& aReqStatus, const TDesC8& aPuct) const;
       
  4372 	
       
  4373 /** Cost Information
       
  4374 
       
  4375 Modes: GSM/WCDMA */
       
  4376 	enum TMobilePhoneCostService
       
  4377 		{
       
  4378 	/** Phone supports call cost service but no calls are currently in progress so the 
       
  4379 	network support and user subscription is unknown. */
       
  4380 		ECostServiceUnknown,
       
  4381 	/** The network or the phone does not support any of the call cost services. The 
       
  4382 	call can be either in progress or not. If the user is subscribed to AoCI they 
       
  4383 	will be able to continue to make calls but will not see any charging information. 
       
  4384 	If the user is subscribed to AoCC then they will be prevented from making 
       
  4385 	chargeable calls. */
       
  4386 		ECostServiceNotAvailable,
       
  4387 	/** Call is in progress and a call cost service is active but the phone is unable 
       
  4388 	to determine whether it is an AoCI or AoCC service. */
       
  4389 		ECostServiceAvailable,
       
  4390 	/** Call is in progress and the call cost information (AoCI) service is currently 
       
  4391 	operating.
       
  4392 	
       
  4393 	Modes: GSM/WCDMA */
       
  4394 		ECostServiceInformation,
       
  4395 	/** Call is in progress and the call cost charging (AoCC) service is currently operating.
       
  4396 	
       
  4397 	Modes: GSM/WCDMA */
       
  4398 		ECostServiceCharging
       
  4399 		};
       
  4400 
       
  4401 	
       
  4402 
       
  4403 	class TMobilePhoneCostInfoV1 : public TMultimodeType
       
  4404 /** Defines the information related to current billing costs.
       
  4405 
       
  4406 @see GetCostInfo()
       
  4407 @see NotifyCostInfoChange() 
       
  4408 */
       
  4409 		{
       
  4410 	public:
       
  4411 		IMPORT_C TMobilePhoneCostInfoV1();
       
  4412 	public:
       
  4413 	/** The current status and type of call cost service.
       
  4414 	
       
  4415 	@see TMobilePhoneCostService */
       
  4416 		TMobilePhoneCostService iService;
       
  4417 	/** The current number of charging units in the Current Call Meter. This is set 
       
  4418 	to zero if reset by the user or at the start of call set-up attempt. */
       
  4419 		TUint iCCM;
       
  4420 	/** The current number of charging units in the Accumulated Call Meter. This equals 
       
  4421 	the accumulation of previous and current calls. */
       
  4422 		TUint iACM;
       
  4423 	/** The maximum number of charging units that the ACM can rise to before chargeable 
       
  4424 	calls are stopped. Equals zero if Service != ECostServiceCharging. */
       
  4425 		TUint iACMmax;
       
  4426 	/** The Price per Unit and Currency Table.
       
  4427 	
       
  4428 	@see TMobilePhonePuctV1 */
       
  4429 		TMobilePhonePuctV1 iPuct;
       
  4430 		};
       
  4431 
       
  4432 /** A typedef'd packaged TMobilePhoneCostInfoV1 for passing through a generic API
       
  4433 function member. */
       
  4434 	typedef TPckg<TMobilePhoneCostInfoV1> TMobilePhoneCostInfoV1Pckg;
       
  4435 
       
  4436 	IMPORT_C void GetCostInfo(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
       
  4437 	IMPORT_C void NotifyCostInfoChange(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
       
  4438 
       
  4439 	/***********************************************************************************/
       
  4440 	//
       
  4441 	// Mobile Security Functional Unit
       
  4442 	//
       
  4443 	/***********************************************************************************/
       
  4444 
       
  4445 /** Security Capabilities.
       
  4446 
       
  4447 Modes: Common */
       
  4448 	enum TMobilePhoneSecurityCaps
       
  4449 		{
       
  4450 	/** The phone supports an overall "phone device lock" which can be enabled or disabled. 
       
  4451 	If enabled, user must enter phone password before the phone can be used. When 
       
  4452 	this capability is set the phone will support get lock info, notify lock info 
       
  4453 	change and set lock setting for phone device lock.
       
  4454 	
       
  4455 	Modes: Common */
       
  4456 		KCapsLockPhone = 0x0000001,
       
  4457 	/** The phone supports locking the ICC (using the PIN1 security code), which can 
       
  4458 	be enabled or disabled. If enabled, the user must enter PIN1 code before the 
       
  4459 	ICC can be used. When this capability is set the phone will support get lock 
       
  4460 	info, notify lock info change and set lock setting for ICC lock. 
       
  4461 	
       
  4462 	Modes: Common */
       
  4463 		KCapsLockICC = 0x00000002,
       
  4464 	/** The phone supports the "phone to ICC lock" which can be enabled or disabled. 
       
  4465 	If enabled, at power-up the phone will check whether current ICC is the one 
       
  4466 	the phone is locked to or not. If not, then the user must enter the phone
       
  4467 	password before phone can be used with this ICC. When this capability is set 
       
  4468 	the phone will support get lock info, notify lock info change and set lock 
       
  4469 	setting for Phone-ICC lock. 
       
  4470 	
       
  4471 	Modes: Common */
       
  4472 		KCapsLockPhoneToICC = 0x00000004,
       
  4473 	/** The phone supports the "phone to first ICC lock" which can be enabled or disabled. 
       
  4474 	If enabled, at power-up the phone will check whether current ICC is the one 
       
  4475 	the phone is first locked to or not. If not, then user must enter the phone 
       
  4476 	password before the phone can be used with this ICC. When this capability 
       
  4477 	is set the phone will support get lock info, notify lock info change and set 
       
  4478 	lock setting for Phone-First ICC lock.
       
  4479 
       
  4480 	Modes: Common */
       
  4481 		KCapsLockPhoneToFirstICC = 0x00000008,
       
  4482 	/** The phone supports the "Over The Air" programming lock which can be enabled 
       
  4483 	or disabled. If enabled, the phone will prevent OTA programming by the network. 
       
  4484 	If disabled, the phone will allow OTA programming by the network. When this 
       
  4485 	capability is set the phone will support get lock info, notify lock info change 
       
  4486 	and set lock setting for OTA lock. 
       
  4487 	
       
  4488 	Modes: CDMA 
       
  4489 	@deprecated 9.5
       
  4490 	*/
       
  4491 		KCapsLockOTA = 0x00000010,
       
  4492 	/** The phone supports access to the PIN 1 security code. When this capability is 
       
  4493 	set the phone will support verification of PIN1, unblocking PIN1, changing 
       
  4494 	PIN1 and notification of PIN1 required. 
       
  4495 	
       
  4496 	Modes: Common */
       
  4497 		KCapsAccessPin1 = 0x00000020,
       
  4498 	/** The phone supports access to the PIN 2 security code. When this capability is 
       
  4499 	set the phone will support verification of PIN2, unblocking PIN2, changing 
       
  4500 	PIN2 and notification of PIN2 required.
       
  4501 	
       
  4502 	Modes: GSM/WCDMA */
       
  4503 		KCapsAccessPin2 = 0x00000040,
       
  4504 	/** The phone supports access to the phone password security code. When this capability 
       
  4505 	is set the phone will support verification of the phone password, changing 
       
  4506 	the phone password and notification if the phone password is required. 
       
  4507 	
       
  4508 	Modes: Common */
       
  4509 		KCapsAccessPhonePassword = 0x00000080,
       
  4510 	/** The phone supports access to the SPC (Service Programming Code) security code. 
       
  4511 	This code may need to be verified before OTA can commence.
       
  4512 	
       
  4513 	Modes: CDMA 
       
  4514 	@deprecated 9.5
       
  4515 	*/
       
  4516 		KCapsAccessSPC = 0x00000100,
       
  4517 	/** The phone supports access to the hidden key. When this capability is set the
       
  4518 	phone will support verification of HiddenKey. 
       
  4519 	
       
  4520 	Modes: WCDMA */
       
  4521 		KCapsAccessHiddenKey=0x00000200,
       
  4522 	/** The phone supports access to the USIM Application PIN. An Application PIN allows 
       
  4523 	access to any file on the UICC where it is referenced in the access rules.
       
  4524 	
       
  4525 	Modes: WCDMA */
       
  4526 		KCapsAccessUSIMAppPin=0x00000400,
       
  4527 	/** The phone supports access to the second USIM Application PIN. The second Application 
       
  4528 	PIN allows access to files (where it is referenced in the access rules) within 
       
  4529 	one USIM Application on the UICC. This is a local PIN.
       
  4530 	
       
  4531 	Modes: WCDMA */
       
  4532 		KCapsAccessUSIMAppSecondPin =0x00000800,
       
  4533 	/** The phone supports access to the Universal PIN. A Universal PIN is a PIN that 
       
  4534 	is used in a multi-application UICC environment to allow several USIM applications 
       
  4535 	to share one common PIN.
       
  4536 	
       
  4537 	Modes: WCDMA */
       
  4538 		KCapsAccessUniversalPin =0x00001000
       
  4539 		};
       
  4540 
       
  4541 	IMPORT_C TInt GetSecurityCaps(TUint32& aCaps) const;
       
  4542 	IMPORT_C void NotifySecurityCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  4543 
       
  4544 /** Lock Information.
       
  4545 
       
  4546 Modes: Common */
       
  4547 	enum TMobilePhoneLock
       
  4548 		{
       
  4549 	/** Lock the whole device. Phone lock password is required to unlock when this lock 
       
  4550 	is enabled. 
       
  4551 
       
  4552 	Modes: Common */
       
  4553 		ELockPhoneDevice,
       
  4554 	/** Lock PIN1 on the ICC. PIN1 security code is required to unlock when this lock 
       
  4555 	is enabled. 
       
  4556 	
       
  4557 	Modes: Common */
       
  4558 		ELockICC,
       
  4559 	/** Lock the phone to the current ICC inserted in the phone Phone lock password 
       
  4560 	is required to unlock when this lock is enabled.
       
  4561 	
       
  4562 	Modes: Common */
       
  4563 		ELockPhoneToICC,
       
  4564 	/** Lock the phone to the first ICC inserted in the phone. Phone lock password is 
       
  4565 	required to unlock when this lock is enabled.
       
  4566 	
       
  4567 	Modes: Common */
       
  4568 		ELockPhoneToFirstICC,
       
  4569 	/** Lock the OTA facility on the phone. SPC security code may be required to unlock 
       
  4570 	when this lock is enabled.
       
  4571 	
       
  4572 	Modes: CDMA 
       
  4573 	@deprecated 9.5
       
  4574 	*/
       
  4575 		ELockOTA,
       
  4576 	/** Lock PIN2 on the ICC. PIN2 security code is required to unlock when this lock 
       
  4577 	is enabled.
       
  4578 	
       
  4579 	Modes: Common */
       
  4580 		ELockPin2,
       
  4581 	/** Lock the phonebook hidden entries on the phone. Hidden key security code may 
       
  4582 	be required to unlock when this lock is enabled.
       
  4583 	
       
  4584 	Modes: WCDMA */
       
  4585 		ELockHiddenKey,
       
  4586 	/** Lock the associated USIM Application. USIM Application PIN is required to unlock 
       
  4587 	when this lock is enabled.
       
  4588 	
       
  4589 	Modes: WCDMA */
       
  4590 		ELockUSimApp,
       
  4591 	/** Lock the associated USIM Application. The second USIM Application PIN is required 
       
  4592 	to unlock when this lock is enabled.
       
  4593 	
       
  4594 	Modes: WCDMA */
       
  4595 		ELockSecondUSimApp,
       
  4596 	/** Lock the associated USIM Application(s) that share this common lock. Universal 
       
  4597 	Pin is required to unlock when this lock is enabled.
       
  4598 	
       
  4599 	Modes: WCDMA */
       
  4600 		ELockUniversalPin,
       
  4601 	/** Lock for the NAM.  The SPC is required to unlock.
       
  4602 	
       
  4603 	Modes: CDMA 
       
  4604 	@deprecated 9.5
       
  4605 	*/
       
  4606 		ELockNam
       
  4607 		};
       
  4608 
       
  4609 /** Phone lock status.
       
  4610 
       
  4611 Modes: Common */
       
  4612 	enum TMobilePhoneLockStatus
       
  4613 		{
       
  4614 	/** The status of the lock is unknown. */
       
  4615 		EStatusLockUnknown,
       
  4616 	/** Lock is closed - user can not access functionality governed by this lock until 
       
  4617 	user correctly enters associated security code. */
       
  4618 		EStatusLocked,
       
  4619 	/** Lock is open - user can access functionality governed by this lock */
       
  4620 		EStatusUnlocked,
       
  4621 		EStatusBlocked
       
  4622 		};
       
  4623 
       
  4624 /** The phone lock setting.
       
  4625 
       
  4626 Modes: Common */
       
  4627 	enum TMobilePhoneLockSetting
       
  4628 		{
       
  4629 	/** The setting of the lock is unknown
       
  4630 	
       
  4631 	Modes: Common */
       
  4632 		ELockSetUnknown,
       
  4633 	/** Lock is enabled - associated security code will be required to unlock the 
       
  4634 	lock, the next time the lock's status is EStatusLocked. 
       
  4635 	
       
  4636 	Modes: Common */
       
  4637 		ELockSetEnabled,
       
  4638 	/** Lock is disabled - so its status is always EStatusUnlocked.
       
  4639 	
       
  4640 	Modes: Common */
       
  4641 		ELockSetDisabled,
       
  4642 	/** Lock of the current Application is replaced by the Universal PIN. Only the 
       
  4643 	Universal PIN is allowed as a replacement.
       
  4644 
       
  4645 	Modes: WCDMA */
       
  4646 		ELockReplaced
       
  4647 		};
       
  4648 
       
  4649 	
       
  4650 
       
  4651 	class TMobilePhoneLockInfoV1 : public TMultimodeType
       
  4652 /** Defines the status of a phone lock.
       
  4653 
       
  4654 @see GetLockInfo()
       
  4655 @see NotifyLockInfoChange()
       
  4656 @publishedPartner
       
  4657 @released
       
  4658 */
       
  4659 		{
       
  4660 	public:
       
  4661 		IMPORT_C TMobilePhoneLockInfoV1();
       
  4662 	public:
       
  4663 	/** The current status of the lock.
       
  4664 	
       
  4665 	Modes: Common
       
  4666 	
       
  4667 	@see TMobilePhoneLockStatus */
       
  4668 		TMobilePhoneLockStatus iStatus;
       
  4669 	/** The current setting of the lock.
       
  4670 	
       
  4671 	Modes: Common
       
  4672 	
       
  4673 	@see TMobilePhoneLockSetting */
       
  4674 		TMobilePhoneLockSetting iSetting;
       
  4675 		};
       
  4676 
       
  4677 /** A typedef'd packaged TMobilePhoneLockInfoV1 for passing through a generic API 
       
  4678 function member. */
       
  4679 	typedef TPckg<TMobilePhoneLockInfoV1> TMobilePhoneLockInfoV1Pckg;
       
  4680 
       
  4681 	IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TDes8& aLockInfo) const;
       
  4682 	IMPORT_C void NotifyLockInfoChange(TRequestStatus& aReqStatus, TMobilePhoneLock& aLock, TDes8& aLockInfo) const;
       
  4683 	IMPORT_C void SetLockSetting(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TMobilePhoneLockSetting aSetting) const;
       
  4684 
       
  4685 /** Change Security Code.
       
  4686 
       
  4687 Modes: Common */
       
  4688 	enum TMobilePhoneSecurityCode
       
  4689 		{
       
  4690 	/** PIN 1 code (between 4-8 digits).
       
  4691 
       
  4692 	Modes: Common */
       
  4693 		ESecurityCodePin1,
       
  4694 	/** PIN 2 code (between 4-8 digits)
       
  4695 	
       
  4696 	Modes: GSM/WCDMA */
       
  4697 		ESecurityCodePin2,
       
  4698 	/** PIN 1 unblocking code (always 8 digits).
       
  4699 	
       
  4700 	Modes: Common */
       
  4701 		ESecurityCodePuk1,
       
  4702 	/** PIN 2 unblocking code (always 8 digits)
       
  4703 	
       
  4704 	Modes: GSM/WCDMA */
       
  4705 		ESecurityCodePuk2,
       
  4706 	/** Password used for Phone-SIM Lock and Phone Device Lock (up to 8 digits) 
       
  4707 	
       
  4708 	Modes: Common */
       
  4709 		ESecurityCodePhonePassword,
       
  4710 	/** Service Programming Code (SPC)
       
  4711 	
       
  4712 	Modes: CDMA 
       
  4713 	@deprecated 9.5
       
  4714 	*/
       
  4715 		ESecurityCodeSPC,
       
  4716 	/** Phonebook key to display the hidden entries.
       
  4717 	
       
  4718 	Modes: WCDMA */
       
  4719 		ESecurityHiddenKey,
       
  4720 	/** USIM Application PIN.
       
  4721 	
       
  4722 	Modes: WCDMA */
       
  4723 		ESecurityUSIMAppPin,
       
  4724 	/** Second USIM Application PIN.
       
  4725 	
       
  4726 	Modes: WCDMA */
       
  4727 		ESecuritySecondUSIMAppPin,
       
  4728 	/** Universal PIN.
       
  4729 	
       
  4730 	Modes: WCDMA */
       
  4731 		ESecurityUniversalPin,
       
  4732 	/** Universal PIN unblocking code (always 8 digits).
       
  4733 	
       
  4734 	Modes: Common */
       
  4735 		ESecurityUniversalPuk
       
  4736 		};
       
  4737 
       
  4738 	IMPORT_C void ChangeSecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, const TMobilePhonePasswordChangeV1& aChange) const;
       
  4739 
       
  4740 	/** Defines the status of a security code.
       
  4741 
       
  4742 	@see GetSecurityCodeInfo()
       
  4743 	@see NotifySecurityCodeInfoChange()
       
  4744 	@publishedPartner
       
  4745 	@released
       
  4746 	*/
       
  4747 	class TMobilePhoneSecurityCodeInfoV5 : public TMultimodeType
       
  4748 		{
       
  4749 	public:
       
  4750 		IMPORT_C TMobilePhoneSecurityCodeInfoV5();
       
  4751 	public:
       
  4752 	/** Number of remaining security code entry attempts before the corresponding lock gets blocked
       
  4753 	
       
  4754 	Modes: Common
       
  4755 	*/
       
  4756 		TInt iRemainingEntryAttempts;
       
  4757 		};
       
  4758 	
       
  4759 	/** A typedef'd packaged TMobilePhoneSecurityCodeInfoV5 for passing through a generic API
       
  4760 	function member. */
       
  4761 	typedef TPckg<TMobilePhoneSecurityCodeInfoV5> TMobilePhoneSecurityCodeInfoV5Pckg;
       
  4762 	
       
  4763 	IMPORT_C void GetSecurityCodeInfo(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aSecurityCode, TDes8& aSecurityCodeInfo) const;
       
  4764 	IMPORT_C void NotifySecurityCodeInfoChange(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode& aSecurityCode, TDes8& aSecurityCodeInfo) const;
       
  4765 
       
  4766 /** Notify Security Events.
       
  4767 
       
  4768 Modes: Common */
       
  4769 	enum TMobilePhoneSecurityEvent
       
  4770 		{
       
  4771 	/** The phone has detected that there is no ICC present. 
       
  4772 	
       
  4773 	Modes: Common */
       
  4774 		ENoICCFound,
       
  4775 	/** The phone has detected that the ICC is unusable. 
       
  4776 	
       
  4777 	Modes: Common */
       
  4778 		EICCTerminated,
       
  4779 	/** The phone requires PIN1 to be entered. 
       
  4780 	
       
  4781 	Modes: Common */
       
  4782 		EPin1Required,
       
  4783 	/** The phone requires PUK1 to be entered.
       
  4784 	
       
  4785 	Modes: Common */
       
  4786 		EPuk1Required,
       
  4787 	/** The phone requires PIN2 to be entered.
       
  4788 	
       
  4789 	Modes: GSM/WCDMA */
       
  4790 		EPin2Required,
       
  4791 	/** The phone requires PUK2 to be entered.
       
  4792 	
       
  4793 	Modes: GSM/WCDMA */
       
  4794 		EPuk2Required,
       
  4795 	/** The phone requires the Phone Password to be entered. 
       
  4796 	
       
  4797 	Modes: Common */
       
  4798 		EPhonePasswordRequired,
       
  4799 	/** The phone requires the SPC to be entered. 
       
  4800 	
       
  4801 	Modes: CDMA 
       
  4802 	@deprecated 9.5
       
  4803 	*/
       
  4804 		ESPCRequired,
       
  4805 	/** The PIN1 verification procedure has passed. 
       
  4806 	
       
  4807 	Modes: Common */
       
  4808 		EPin1Verified,
       
  4809 	/** The PIN2 verification procedure has passed.
       
  4810 
       
  4811 	Modes: GSM/WCDMA */
       
  4812 		EPin2Verified,
       
  4813 	/** The PUK1 unblocking procedure has passed.
       
  4814 	
       
  4815 	Modes: Common */
       
  4816 		EPuk1Verified,
       
  4817 	/** The PUK2 unblocking procedure has passed. 
       
  4818 	
       
  4819 	Modes: GSM/WCDMA */
       
  4820 		EPuk2Verified,
       
  4821 	/** The Phone Password has been verified. 
       
  4822 	
       
  4823 	Modes: Common */
       
  4824 		EPhonePasswordVerified,
       
  4825 	/** The SPC verification procedure has passed.
       
  4826 	
       
  4827 	Modes: CDMA 
       
  4828 	@deprecated 9.5
       
  4829 	*/
       
  4830 		ESPCVerified,
       
  4831 	/** The phone requires the phonebook hidden key to be entered.
       
  4832 	
       
  4833 	Modes: WCDMA */
       
  4834 		EHiddenKeyRequired,
       
  4835 	/** The phonebook hidden key procedure has passed.
       
  4836 	
       
  4837 	Modes: WCDMA */
       
  4838 		EHiddenKeyVerified,
       
  4839 	/** The phone requires the currently active USIM Application PIN to be entered.
       
  4840 	
       
  4841 	Modes: WCDMA */
       
  4842 		EUSIMAppPinRequired,
       
  4843 	/** The currently active USIM Application PIN procedure has passed.
       
  4844 	
       
  4845 	Modes: WCDMA */
       
  4846 		EUSIMAppPinVerified,
       
  4847 	/** The phone requires the currently active USIM Application second PIN to be entered.
       
  4848 	
       
  4849 	Modes: WCDMA */
       
  4850 		ESecondUSIMAppPinRequired,
       
  4851 	/** The currently active USIM Application second PIN procedure has passed.
       
  4852 	
       
  4853 	Modes: WCDMA */
       
  4854 		ESecondUSIMAppPinVerified,
       
  4855 	/** The phone requires the Universal PIN to be entered.
       
  4856 	
       
  4857 	Modes: WCDMA */
       
  4858 		EUniversalPinRequired,
       
  4859 	/** The currently active Universal PIN procedure has passed.
       
  4860 	
       
  4861 	Modes: WCDMA */
       
  4862 		EUniversalPinVerified,
       
  4863 	/** The Service Programming Code has been changed.
       
  4864 	
       
  4865 	Modes: CDMA 
       
  4866 	@deprecated 9.5
       
  4867 	*/
       
  4868 		ESPCChanged,
       
  4869 	/** The phone requires Universal PUK to be entered.
       
  4870 	
       
  4871 	Modes: WCDMA */
       
  4872 		EUniversalPukRequired,
       
  4873 	/** The Universal PUK unblocking procedure has passed.
       
  4874 	
       
  4875 	Modes: WCDMA */
       
  4876 		EUniversalPukVerified
       
  4877 		};
       
  4878 
       
  4879 	IMPORT_C void NotifySecurityEvent(TRequestStatus& aReqStatus, TMobilePhoneSecurityEvent& aEvent) const;
       
  4880 
       
  4881 	// for use by client-side API code and TSY only
       
  4882 
       
  4883 	struct TCodeAndUnblockCode
       
  4884 		{
       
  4885 		TMobilePassword iCode;
       
  4886 		TMobilePassword iUnblockCode;
       
  4887 		};	
       
  4888 
       
  4889 	IMPORT_C void VerifySecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType,
       
  4890 		const TMobilePassword& aCode, const TMobilePassword& aUnblockCode) const;
       
  4891 	IMPORT_C TInt AbortSecurityCode(TMobilePhoneSecurityCode aType) const;
       
  4892 
       
  4893 	/***********************************************************************************/	
       
  4894 	// 
       
  4895 	// MobileMessageWaiting
       
  4896 	//
       
  4897 	/***********************************************************************************/
       
  4898 
       
  4899 /** Display indicators. */
       
  4900 	enum TMobilePhoneIndicatorDisplay
       
  4901 		{
       
  4902 	/** Display voicemail active. */
       
  4903 		KDisplayVoicemailActive = 0x01,
       
  4904 	/** Display fax active. */
       
  4905 		KDisplayFaxActive = 0x02,
       
  4906 	/** Display E-mail active. */
       
  4907 		KDisplayEmailActive = 0x04,
       
  4908 	/** Display other active. */
       
  4909 		KDisplayOtherActive = 0x08,
       
  4910 	/** Display Aux voicemail active. */
       
  4911 		KDisplayAuxVoicemailActive = 0x10,
       
  4912 	/** Display data active. */
       
  4913 		KDisplayDataActive = 0x20,
       
  4914 	/** Display Videomail active. */
       
  4915 		KDisplayVideomailActive = 0x40
       
  4916 		};
       
  4917 
       
  4918 	class TMobilePhoneMessageWaitingV1 : public TMultimodeType
       
  4919 /** Message Waiting Indicators. See 3GPP TS 31 102.
       
  4920 
       
  4921 @see GetIccMessageWaitingIndicators()
       
  4922 @see SetIccMessageWaitingIndicators()
       
  4923 @see NotifyIccMessageWaitingIndicatorsChange() 
       
  4924 */
       
  4925 		{
       
  4926 	public:
       
  4927 		IMPORT_C TMobilePhoneMessageWaitingV1();
       
  4928 	public:
       
  4929 	/** The flags for each indicator from TMobilePhoneIndicatorDisplay to specify whether 
       
  4930 	the indicator should be displayed or not. E.g. Messages of the specified type are waiting.
       
  4931 
       
  4932 	Modes: Common */
       
  4933 		TUint8	iDisplayStatus;
       
  4934 	/** The number of voicemail messages waiting for the "main" voice line.
       
  4935 	
       
  4936 	Modes: Common */
       
  4937 		TUint8	iVoiceMsgs;
       
  4938 	/** The number of voicemail messages waiting for the "auxiliary" voice line.
       
  4939 	
       
  4940 	Modes: GSM */
       
  4941 		TUint8	iAuxVoiceMsgs;
       
  4942 	/** The number of messages waiting for the data line.
       
  4943 	
       
  4944 	Modes: Common */
       
  4945 		TUint8	iDataMsgs;
       
  4946 	/** The number of messages waiting for the fax line.
       
  4947 	
       
  4948 	Modes: Common */
       
  4949 		TUint8	iFaxMsgs;
       
  4950 	/** The number of email messages waiting.
       
  4951 	
       
  4952 	Modes: WCDMA */
       
  4953 		TUint8	iEmailMsgs;
       
  4954 	/** Contains the number of "unspecified" messages waiting.
       
  4955 	
       
  4956 	Modes: WCDMA */
       
  4957 		TUint8	iOtherMsgs;
       
  4958 		};
       
  4959 
       
  4960 /** A typedef'd packaged TMobilePhoneMessageWaitingV1 for passing through a generic 
       
  4961 API function member. */
       
  4962 	typedef TPckg<TMobilePhoneMessageWaitingV1> TMobilePhoneMessageWaitingV1Pckg;
       
  4963 	
       
  4964 	class TMobilePhoneMessageWaitingV8 : public TMobilePhoneMessageWaitingV1
       
  4965 /** Message Waiting Indicators. See Section 4.2.63 of 3GPP TS 31 102 V6.18.0 .
       
  4966 @see GetIccMessageWaitingIndicators()
       
  4967 @see SetIccMessageWaitingIndicators()
       
  4968 @see NotifyIccMessageWaitingIndicatorsChange() 
       
  4969 */
       
  4970 		{
       
  4971 	public:
       
  4972 		IMPORT_C TMobilePhoneMessageWaitingV8();
       
  4973 	public:
       
  4974 	/** 
       
  4975 	Contains the number of video messages waiting.
       
  4976 	
       
  4977 	Modes: Common */
       
  4978 		TUint8	iVideoMsgs;
       
  4979 		};
       
  4980 
       
  4981 /** A typedef'd packaged TMobilePhoneMessageWaitingV8 for passing through a generic 
       
  4982 API function member. */
       
  4983 	typedef TPckg<TMobilePhoneMessageWaitingV8> TMobilePhoneMessageWaitingV8Pckg;
       
  4984 
       
  4985 	IMPORT_C void GetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
       
  4986 	IMPORT_C void SetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, const TDesC8& aMsgIndicators) const;
       
  4987 	IMPORT_C void NotifyIccMessageWaitingIndicatorsChange(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
       
  4988 
       
  4989 	IMPORT_C void NotifyMessageWaiting(TRequestStatus& aReqStatus, TInt& aCount) const;
       
  4990 
       
  4991 	/***********************************************************************************/
       
  4992 	//
       
  4993 	// Mobile Fixed Dialling Numbers Functional Unit
       
  4994 	//
       
  4995 	/***********************************************************************************/
       
  4996 
       
  4997 /** Fixed Dialling Numbers Status.
       
  4998 
       
  4999 Modes: Common */
       
  5000 	enum TMobilePhoneFdnStatus
       
  5001 		{
       
  5002 	/** Fixed Dialling Number mode is supported but is not currently active. */
       
  5003 		EFdnNotActive,
       
  5004 	/** Fixed Dialling Number mode is supported and is currently active. Deactivating 
       
  5005 	FDN mode is supported. */
       
  5006 		EFdnActive,
       
  5007 	/** Fixed Dialling Number mode is supported and is permanently active. Deactivating 
       
  5008 	FDN mode is NOT supported with this SIM. */
       
  5009 		EFdnPermanentlyActive,
       
  5010 	/** Fixed Dialling Number mode is not supported by ME and/or SIM. */
       
  5011 		EFdnNotSupported,
       
  5012 	/** ME is currently unable to determine the status of FDN mode. */
       
  5013 		EFdnUnknown
       
  5014 		};
       
  5015 
       
  5016 	IMPORT_C TInt GetFdnStatus(TMobilePhoneFdnStatus& aFdnStatus) const;
       
  5017 	IMPORT_C void GetFdnStatus(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
       
  5018 
       
  5019 /** Fixed Dialling Numbers Setting
       
  5020 
       
  5021 Modes: Common */
       
  5022 	enum TMobilePhoneFdnSetting
       
  5023 		{
       
  5024 	/** Activate the FDN service. */
       
  5025 		EFdnSetOn,
       
  5026 	/** Deactivate the FDN service. */
       
  5027 		EFdnSetOff
       
  5028 		};
       
  5029 
       
  5030 	IMPORT_C void SetFdnSetting(TRequestStatus& aReqStatus, TMobilePhoneFdnSetting aFdnSetting) const;
       
  5031 	IMPORT_C void NotifyFdnStatusChange(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
       
  5032 
       
  5033 	/***********************************************************************************/
       
  5034 	//
       
  5035 	// Multicall bearer settings
       
  5036 	//
       
  5037 	/***********************************************************************************/
       
  5038 
       
  5039 	class TMobilePhoneMulticallSettingsV1 : public TMultimodeType
       
  5040 /** Multi call settings for version v1.0.
       
  5041 
       
  5042 @see GetMulticallParams()
       
  5043 @see NotifyMulticallParamsChange() 
       
  5044 @publishedPartner
       
  5045 @released*/
       
  5046 		{
       
  5047 	public:
       
  5048 		IMPORT_C TMobilePhoneMulticallSettingsV1();
       
  5049 	public:
       
  5050 	/** Maximum number of simultaneous CS bearers allowed - defined by the user. 
       
  5051 	
       
  5052 	Modes: WCDMA */
       
  5053 		TInt iUserMaxBearers;
       
  5054 	/** Maximum number of simultaneous bearers allowed - defined by the service provider.
       
  5055 	
       
  5056 	Modes: WCDMA */
       
  5057 		TInt iServiceProviderMaxBearers;
       
  5058 	/** Maximum number of simultaneous CS bearers supported by the network.
       
  5059 	
       
  5060 	Modes: WCDMA */
       
  5061 		TInt iNetworkSupportedMaxBearers;
       
  5062 	/** Maximum number of simultaneous CS bearers supported by the UE.
       
  5063 	
       
  5064 	Modes: WCDMA */
       
  5065 		TInt iUESupportedMaxBearers;
       
  5066 		};
       
  5067 
       
  5068 /** A typedef'd packaged TMobilePhoneMulticallSettingsV1 for passing through a generic 
       
  5069 API function member. */
       
  5070 	typedef TPckg<TMobilePhoneMulticallSettingsV1> TMobilePhoneMulticallSettingsV1Pckg;
       
  5071 
       
  5072 	IMPORT_C void GetMulticallParams(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
       
  5073 	IMPORT_C void SetMulticallParams(TRequestStatus& aReqStatus, TInt aUserMaxBearers) const;
       
  5074 	IMPORT_C void NotifyMulticallParamsChange(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
       
  5075 	
       
  5076 	enum TMobilePhoneMulticallIndicator
       
  5077 	/**
       
  5078 	Indicators for exceeding allowed multiple active bearers.
       
  5079 	*/
       
  5080 		{
       
  5081 		/** The maximum number of multiple active bearers allowed by the service provider has been exceeded. */
       
  5082 		EBearerNetworProviderExceeded,
       
  5083 		/** The maximum number of multiple active bearers allowed by the mobile user  has been exceeded. */
       
  5084 		EBearerUserExceeded
       
  5085 		};
       
  5086 		
       
  5087 	IMPORT_C void NotifyMulticallIndicatorChange(TRequestStatus& aReqStatus, TMobilePhoneMulticallIndicator& aMulticallIndicator) const;
       
  5088 
       
  5089 	/***********************************************************************************/
       
  5090 	//
       
  5091 	// MobileNextIncomingCall Functional Unit
       
  5092 	//
       
  5093 	/***********************************************************************************/
       
  5094 
       
  5095 /** Incoming Call Types.
       
  5096 
       
  5097 Modes: Common */
       
  5098 	enum TMobilePhoneIncomingCallType
       
  5099 		{
       
  5100 	/** MS will receive any type of incoming call.
       
  5101 	
       
  5102 	Modes: Common */
       
  5103 		EIncomingTypeNotSpecified,
       
  5104 	/** MS will request voice bearer for incoming calls.
       
  5105 	
       
  5106 	Modes: Common */
       
  5107 		EIncomingVoice,
       
  5108 	/** MS will request fax bearer for incoming calls 
       
  5109 	
       
  5110 	Modes: Common */
       
  5111 		EIncomingFax,
       
  5112 	/** MS will request data bearer for incoming calls
       
  5113 	
       
  5114 	Modes: Common */
       
  5115 		EIncomingData,
       
  5116 	/** MS will request a data bearer for use by a Multimedia CS call (voice fall back 
       
  5117 	is acceptable) for incoming calls.
       
  5118 	
       
  5119 	Modes: GSM/WCDMA */
       
  5120 		EIncomingMultimediaVoiceFallback,
       
  5121 	/** MS will request a data bearer for use by a Multimedia CS call (voice fall back 
       
  5122 	NOT acceptable) for incoming calls 
       
  5123 	
       
  5124 	Modes: GSM/WCDMA */
       
  5125 		EIncomingMultimediaNoFallback,
       
  5126 	/** The single numbering scheme call mode is alternating voice to fax.
       
  5127 	
       
  5128 	Modes: GSM/WCDMA */
       
  5129 		EIncomingAlternatingVoiceFax,
       
  5130 	/** The single numbering scheme call mode is alternating voice to data.
       
  5131 	
       
  5132 	Modes: GSM */
       
  5133 		EIncomingAlternatingVoiceData,
       
  5134 	/** The single numbering scheme call mode is alternating fax to voice.
       
  5135 	
       
  5136 	Modes: GSM */
       
  5137 		EIncomingAlternatingFaxVoice,
       
  5138 	/** The single numbering scheme call mode is alternating data to voice.
       
  5139 	
       
  5140 	Modes: GSM */
       
  5141 		EIncomingAlternatingDataVoice,
       
  5142 	/** The single numbering scheme call mode is alternating voice then data.
       
  5143 	
       
  5144 	Modes: GSM */
       
  5145 		EIncomingAlternatingVoiceThenData
       
  5146 		};
       
  5147 
       
  5148 	IMPORT_C void GetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
       
  5149 	IMPORT_C void SetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType aCallType, TDes8& aDataParams) const;
       
  5150 	IMPORT_C void NotifyIncomingCallTypeChange(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
       
  5151 
       
  5152 	/***********************************************************************************/
       
  5153 	//
       
  5154 	// User-To-User Signalling Functional Unit
       
  5155 	//
       
  5156 	/***********************************************************************************/
       
  5157 
       
  5158 /** UUS Settings Requests.
       
  5159 
       
  5160 Modes: GSM/WCDMA */
       
  5161 	enum TMobilePhoneUUSSetting         // UUS settings of the phone
       
  5162 		{
       
  5163 	/** UUS is not specified. */
       
  5164 		EIncomingUUSNotSpecified,
       
  5165 	/** MS will accept incoming UUS activation request. */
       
  5166 		EIncomingUUSAccepted,
       
  5167 	/** MS will reject incoming UUS activation request. */
       
  5168 		EIncomingUUSRejected
       
  5169 		};
       
  5170 
       
  5171 	IMPORT_C void GetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
       
  5172 	IMPORT_C void SetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting aSetting) const;
       
  5173 	IMPORT_C void NotifyUUSSettingChange(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
       
  5174 	
       
  5175 	/***********************************************************************************/
       
  5176 	//
       
  5177 	// Mobile Smart Card Applications Functional Unit
       
  5178 	//
       
  5179 	/***********************************************************************************/
       
  5180 	
       
  5181 	
       
  5182 	enum { KSmartCardApplicationLabelMaxSize=32 };
       
  5183 	
       
  5184 	/** Smart card application info version v5.0. 
       
  5185 	Modes: Common
       
  5186 
       
  5187 	@see GetSmartCardApplicationInfo()
       
  5188 	@publishedPartner
       
  5189 	@released
       
  5190 	*/
       
  5191 	class TSmartCardApplicationInfoV5 : public TMultimodeType
       
  5192 		{
       
  5193 	public:
       
  5194 		IMPORT_C TSmartCardApplicationInfoV5();
       
  5195 	public:
       
  5196 		/** 
       
  5197 		Smart card application identifier.
       
  5198 		*/
       
  5199 		TAID iAID;
       
  5200 		/** 
       
  5201 		Smart card application label. 16 bit USC2 characters string provided by the application 
       
  5202 		provider to be shown to the user for information, e.g. operator name. It is 
       
  5203 		recommended by ETSI/3GPP spec that the application label does not exceed 32 
       
  5204 		bytes.
       
  5205 		
       
  5206 		The application label is optional. If no label is provided, the buffer should 
       
  5207 		be NULL.
       
  5208 		 */
       
  5209 		TBuf8<KSmartCardApplicationLabelMaxSize> iLabel;
       
  5210 		};
       
  5211 
       
  5212 	/**
       
  5213 	A typedef'd packaged TSmartCardApplicationInfoV5 for passing through a generic API 
       
  5214 	function member. 
       
  5215 	*/	
       
  5216 	typedef TPckg<TSmartCardApplicationInfoV5> TSmartCardApplicationInfoV5Pckg;
       
  5217 
       
  5218 	/**
       
  5219 	Specifies the max length of the buffer used to retrieve the smart
       
  5220 	card application's supported EAP method list.  Value 255 since EAP
       
  5221 	type list length fits into one byte (see table 5.1 of ETSI TS
       
  5222 	102.310 v6.2.0).
       
  5223 
       
  5224 	@see RMobilePhone::GetSmartCardApplicationInfo()
       
  5225 	@see RMobilePhone::TUiccApplicationEapInfoV6::iEapTypeList
       
  5226 	*/
       
  5227 	enum { KEapSupportedTypeListSize = 255 };
       
  5228 
       
  5229 	/**
       
  5230 	UICC application info version v6.0.  Is a
       
  5231 	TSmartCardApplicationInfoV5 object, but has an additional buffer
       
  5232 	(iEapTypeList) for retrieving a list supported EAP methods on the
       
  5233 	application.
       
  5234 
       
  5235 	Modes: GSM/WCDMA
       
  5236 
       
  5237 	@see RMobilePhone::GetSmartCardApplicationInfo()
       
  5238 	@publishedPartner
       
  5239 	@released
       
  5240 	*/
       
  5241 	class TUiccApplicationEapInfoV6 : public TSmartCardApplicationInfoV5
       
  5242 		{
       
  5243 	public:
       
  5244 		IMPORT_C TUiccApplicationEapInfoV6();
       
  5245 
       
  5246 	public:
       
  5247 		/**
       
  5248 		Application EAP support type list, defining the EAP methods
       
  5249 		supported by the UICC application (see RFC 3748 and
       
  5250 		http://www.iana.org/assignments/eap-numbers).
       
  5251 		
       
  5252 		As reference, also worth seeing section 5.2 of ETSI TS 102.310
       
  5253 		v6.2.0 and section 6.2 of RFC3748.
       
  5254 
       
  5255 		@see KETelSmartCardEapTypeMD5
       
  5256 		@see KETelSmartCardEapTypeTLS
       
  5257 		@see KETelSmartCardEapTypeSIM
       
  5258 		@see KETelSmartCardEapTypeAKA
       
  5259 		@see KETelSmartCardEapTypeTTLS
       
  5260 		*/
       
  5261 		TBuf8<KEapSupportedTypeListSize> iEapTypeList;	
       
  5262 		};
       
  5263 
       
  5264 	/**
       
  5265 	A typedef'd packaged TEapUiccApplicationInfoV6 for passing through
       
  5266 	a generic API function member.
       
  5267 
       
  5268 	@see RMobilePhone::GetSmartCardApplicationInfo()
       
  5269 	*/	
       
  5270 	typedef TPckg<TUiccApplicationEapInfoV6> TUiccApplicationEapInfoV6Pckg;
       
  5271 
       
  5272 	/**
       
  5273 	Smart card application notification events
       
  5274 	
       
  5275 	Modes: Common
       
  5276 	*/	
       
  5277 	enum TSmartCardApplicationEvent
       
  5278 		{
       
  5279 		/**
       
  5280 		Smart card application has been installed.
       
  5281 		*/
       
  5282 		EScApplicationInstalled,
       
  5283 		/**
       
  5284 		Smart card application has been removed.
       
  5285 		*/
       
  5286 		EScApplicationRemoved,
       
  5287 		/**
       
  5288 		Smart card application has been activated.
       
  5289 		*/
       
  5290 		EScApplicationActivated,
       
  5291 		/**
       
  5292 		Smart card application has been terminated.
       
  5293 		*/
       
  5294 		EScApplicationTerminated
       
  5295 		};
       
  5296 
       
  5297 	/**
       
  5298 	Smart card application status.
       
  5299 
       
  5300 	Modes: Common
       
  5301 	*/
       
  5302 	enum TSmartCardApplicationAction
       
  5303 		{
       
  5304 		/**
       
  5305 		Smart card application will be activated.
       
  5306 		*/
       
  5307 		EScApplicationActivate,
       
  5308 		/** 
       
  5309 		Smart card application will be terminated.
       
  5310 		*/
       
  5311 		EScTerminate
       
  5312 		};
       
  5313 
       
  5314 	/**
       
  5315 	Smart card application file types. For definitions see TS 102.221.
       
  5316 	
       
  5317 	Modes: Common
       
  5318 	*/		
       
  5319 	enum TScFileType
       
  5320 		{
       
  5321 		/**
       
  5322 		Smart card file type is unknown.
       
  5323 		*/
       
  5324 		EUnknown,
       
  5325 		/**
       
  5326 		Smart card file type is linear fixed. 
       
  5327 		
       
  5328 		This is a record-based file.
       
  5329 		*/
       
  5330 		ELinearFixed,
       
  5331 		/**
       
  5332 		Smart card file type is cyclic. 
       
  5333 		
       
  5334 		This is a record-based file.
       
  5335 		*/
       
  5336 		ECyclic,
       
  5337 		/**
       
  5338 		Smart card file type is transparent. 
       
  5339 		
       
  5340 		This is a binary file.
       
  5341 		*/
       
  5342 		ETransparent
       
  5343 		};
       
  5344 
       
  5345 	/**
       
  5346 	Typedef to hold a 2-byte file identifier.
       
  5347 	*/
       
  5348 	typedef TUint16 TScFileID;
       
  5349 
       
  5350 	/** Smart card application file info version v5.0.
       
  5351 	Modes: Common
       
  5352 
       
  5353 	@see GetScFileInfo()
       
  5354 	@publishedPartner
       
  5355 	@released
       
  5356 	*/
       
  5357 	class TScFileInfoV5 : public TMultimodeType
       
  5358 		{
       
  5359 	public:
       
  5360 		IMPORT_C TScFileInfoV5();
       
  5361 	public:
       
  5362 		/**
       
  5363 		Smart card file identifier.
       
  5364 		*/
       
  5365 		TScFileID iFileID;
       
  5366 		/**
       
  5367 		The type of the smart card file. Options are
       
  5368 		Linear Fixed, Cyclic or Transparent.
       
  5369 		*/
       
  5370 		TScFileType iType;
       
  5371 		/**
       
  5372 		Total length of the file.  As specified in TS 102.221 the maximum length of an EF is 0xFFF bytes.
       
  5373 		*/
       
  5374 		TInt iTotalLength;
       
  5375 		/**
       
  5376 		If the file is a record based file (e.g. file type is ELinearFixed or ECyclic) then this gives the fixed length of a record in the file.
       
  5377 		If file type is ETransparent then this value is unused and will be set to 0. 
       
  5378 		
       
  5379 		From TS 102.221 the maximum length of a record in an EF is 255 bytes.
       
  5380 		*/
       
  5381 		TInt iRecordLength;
       
  5382 		/**
       
  5383 		If the file is a record based file (e.g. file type is ELinearFixed or ECyclic) then this gives the number of records in the file.
       
  5384 		If file type is ETransparent then this value is unused and will be set to 0. 
       
  5385 		
       
  5386 		From TS 102.221 the maximum number of records in an EF is 254.
       
  5387 		*/
       
  5388 		TInt iNumberRecords;
       
  5389 		};
       
  5390 	
       
  5391 	
       
  5392 	/** A typedef'd packaged TScFileInfoV5 for passing through a generic API 
       
  5393 	function member. 
       
  5394 	*/
       
  5395 	typedef TPckg<TScFileInfoV5> TScFileInfoV5Pckg;
       
  5396 	
       
  5397 	/**
       
  5398 	This based on the maximum number of bytes in a command PDU 
       
  5399 	as defined in TS 102.221 however the actual path string is very unlikely to ever be this big.
       
  5400 	
       
  5401 	Modes: Common
       
  5402 	*/
       
  5403 	enum{ KMaxScFilePathLength = 256};
       
  5404 	
       
  5405 	/**
       
  5406 	A typedef'd buffer to hold the path to an EF file.  
       
  5407 	*/
       
  5408 	typedef TBuf8<KMaxScFilePathLength> TScFilePathReference;
       
  5409 	
       
  5410 	
       
  5411 	 /** 
       
  5412 	 Class that holds a smart card applications AID and associated file path string.
       
  5413 
       
  5414 	 Modes: Common
       
  5415 
       
  5416 	 @see GetScFileInfo()
       
  5417 	 @publishedPartner
       
  5418 	 @released
       
  5419 	 */
       
  5420 	 class TScFilePath
       
  5421 		{
       
  5422 	 public:
       
  5423 		IMPORT_C TScFilePath();
       
  5424      public:
       
  5425      	/** 
       
  5426      	AID of application. This may be empty implying the iPath is a path reference starting at the master file (MF).
       
  5427      	*/
       
  5428 		TAID iAID;
       
  5429 		/**
       
  5430 		Full path reference to file.  
       
  5431 		
       
  5432 		The iPath must define the file path using full path referencing. This is because the client does not know 
       
  5433 		what is the currently selected EF or DF and it is therefore necessary to select the file by full
       
  5434 		path referencing from the master file.  
       
  5435 		
       
  5436 		If iAID value is empty then the iPath reference starts from the MF file but should not include the file ID of the MF (3F00) itself.
       
  5437 		E.g. To reference the EF_DIR - iAID would be empty and iPath would be set to "2F00".
       
  5438 		E.g. To refefence the EF_SMS under DF_TELECOM on a 2G SIM ICC - iAID would be empty and iPath would be set to "7F106F3C".
       
  5439 		
       
  5440 		If iAID is non-empty then it refers to the AID of the application and iPath is a path reference to a file in that application,
       
  5441 		In this situation the path reference may start with the implicit FID of the application DF (7FFF).  
       
  5442 		E.g.  The path to reference to the EF_SMS file in a USIM application using implicit ADF FID would 
       
  5443 		be "7FFF6F3C".
       
  5444 		
       
  5445 		See TS102.221 section 8.4.2 for more information.  
       
  5446 		*/
       
  5447 		TScFilePathReference iPath;
       
  5448 		};
       
  5449 		
       
  5450 	/** Smart card application file identifier and access offsets.  This class is used to identify a file and the 
       
  5451 	location in a file to either read or write. Inherits attributes from TScFilePath which provide the 
       
  5452 	parent AID and full path reference.
       
  5453 	
       
  5454 	Modes: Common
       
  5455 
       
  5456 	@see TScFilePath
       
  5457 	@see ReadScFile()
       
  5458 	@see UpdateScFile()
       
  5459 	@publishedPartner
       
  5460 	@released
       
  5461 	*/
       
  5462 	class TScFilePathWithAccessOffsets : public TScFilePath
       
  5463 		{
       
  5464 	public:
       
  5465 		IMPORT_C TScFilePathWithAccessOffsets();
       
  5466 	public:
       
  5467 		/**
       
  5468 		The type of the smart card file. Options are
       
  5469 		Linear Fixed, Cyclic or Transparent.
       
  5470 		*/
       
  5471 		TScFileType iType;
       
  5472 		/**
       
  5473 		If file type is ELinearFixed or ECyclic then this is the starting record index to read or update.
       
  5474 		This must be less than the number of records in the file.
       
  5475 
       
  5476 		If file type is ETransparent then this is the offset (in bytes) from the start of the transparent file to read or update.
       
  5477 		This must be less than the total file size.
       
  5478 		*/
       
  5479 		TUint iStartOffset;
       
  5480 		/**
       
  5481 		If the file type is ELinearFixed or ECyclic then this is unused.
       
  5482 		NOTE: A call to ReadScFile or UpdateScFile for a record based file type will only read or update
       
  5483 		one record as described in TS 102.221 READ RECORD and UPDATE RECORD.
       
  5484 
       
  5485 		If file type is ETransparent then this is the number of bytes to read or update.
       
  5486 		*/
       
  5487 		TUint iCount;
       
  5488 		};
       
  5489 
       
  5490 	IMPORT_C void EnumerateSmartCardApplications(TRequestStatus& aReqStatus, TUint& aCount) const;
       
  5491 	IMPORT_C void GetSmartCardApplicationInfo(TRequestStatus& aReqStatus, TUint aAppIndex, TDes8& aInfo) const;
       
  5492 	IMPORT_C void NotifySmartCardApplicationInfoChange(TRequestStatus& aReqStatus, TAID& aAID, TSmartCardApplicationEvent& aEvent) const;
       
  5493 	IMPORT_C void SetSmartCardApplicationStatus(TRequestStatus& aReqStatus, const TAID& aAID, TSmartCardApplicationAction aAppAction) const;
       
  5494 	IMPORT_C void GetScFileInfo(TRequestStatus& aReqStatus, const TScFilePath& aFilePathId, TDes8& aInfo) const;
       
  5495 	IMPORT_C void ReadScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aReadBuffer) const;
       
  5496 	IMPORT_C void UpdateScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aUpdateBuffer) const;
       
  5497 	
       
  5498 	/***********************************************************************************/
       
  5499 	//
       
  5500 	// Mobile USIM Applications Functional Unit
       
  5501 	//
       
  5502 	/***********************************************************************************/
       
  5503 
       
  5504 	enum { KUSimApplicationLabelMaxSize=32 };
       
  5505 
       
  5506 	IMPORT_C void EnumerateUSimApplications(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1
       
  5507 
       
  5508 	class TUSimApplicationInfoV2 : public TMultimodeType
       
  5509 	/** USIM application information for version v2.0. 
       
  5510 		
       
  5511 	@deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead.
       
  5512 	*/
       
  5513 		{
       
  5514 	public:
       
  5515 		IMPORT_C TUSimApplicationInfoV2();
       
  5516 	public:
       
  5517 	/** USIM Application identifier.
       
  5518 
       
  5519 	Modes: WCDMA */
       
  5520 		TAID								iAID;
       
  5521 	/** USIM Application label. 16 bit USC2 characters string provided by the application 
       
  5522 	provider to be shown to the user for information, e.g. operator name. It is 
       
  5523 	recommended by ETSI/3GPP spec that the application label does not exceed 32 
       
  5524 	bytes.
       
  5525 	
       
  5526 	The application label is optional. If no label is provided, the buffer should 
       
  5527 	be NULL.
       
  5528 	
       
  5529 	Modes: WCDMA */
       
  5530 		TBuf8<KUSimApplicationLabelMaxSize> iLabel; 
       
  5531 	};
       
  5532 
       
  5533 	/** A typedef'd packaged TUSimApplicationInfoV2 for passing through a generic API 
       
  5534 	function member. 
       
  5535 
       
  5536 	@deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead.
       
  5537 	*/
       
  5538 	typedef TPckg<TUSimApplicationInfoV2> TUSimApplicationInfoV2Pckg;
       
  5539 
       
  5540 	IMPORT_C void GetUSimApplicationInfo(TRequestStatus& aReqStatus, TInt aUSimAppIndex, TDes8& aInfo) const; //deprecated 9.1
       
  5541 	IMPORT_C void NotifyUSimApplicationsInfoChange(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1
       
  5542 
       
  5543 	/** USIM Application Status.
       
  5544 
       
  5545 	Modes: WCDMA 
       
  5546 
       
  5547 	@deprecated 9.1 Use @see TSmartCardApplicationAction instead.
       
  5548 	*/
       
  5549 	enum TUSimAppAction
       
  5550 		{
       
  5551 	/** USIM application will be activated.
       
  5552 	
       
  5553 	Modes: WCDMA */
       
  5554 		EUSimActivate,
       
  5555 	/** USIM application will be terminated.
       
  5556 	
       
  5557 	Modes: WCDMA */
       
  5558 		EUSimTerminate
       
  5559 		};
       
  5560 
       
  5561 	IMPORT_C void SetUSimApplicationStatus(TRequestStatus& aReqStatus, const TAID aAID, TUSimAppAction aUsimAppAction) const; //deprecated 9.1
       
  5562 
       
  5563 	/** USIM Application selection mode.
       
  5564 
       
  5565 	Mode: WCDMA */
       
  5566 	enum TUSimSelectionMode
       
  5567 		{
       
  5568 	/** USIM application is selected automatically by phone.
       
  5569 	
       
  5570 	Mode: WCDMA */
       
  5571 		EUSimSelectionAutomatic,
       
  5572 	/** USIM application is selected manually by user.
       
  5573 	
       
  5574 	Mode: WCDMA */
       
  5575 		EUSimSelectionManual
       
  5576 		};
       
  5577 
       
  5578 	IMPORT_C TInt SetUSimAppsSelectionMode(TUSimSelectionMode aUSimSelectionMode) const;
       
  5579 	IMPORT_C TInt GetUSimAppsSelectionMode(TUSimSelectionMode& aUSimSelectionMode) const;
       
  5580 	IMPORT_C void NotifyUSimAppsSelectionModeChange(TRequestStatus& aReqStatus, TUSimSelectionMode& aUSimSelectionMode) const;
       
  5581 	IMPORT_C void GetCurrentActiveUSimApplication(TRequestStatus& aReqStatus, TAID& aAID) const;
       
  5582 
       
  5583 	/***********************************************************************************/
       
  5584 	//
       
  5585 	// Mobile MMS Functional Unit
       
  5586 	// 
       
  5587 	/***********************************************************************************/
       
  5588 	
       
  5589 	/** max size of MMS notification buffer. */
       
  5590 	
       
  5591 	enum{KMaxMmsNotification = 253};
       
  5592 	
       
  5593 	/**
       
  5594 	Identifies current status of MMS.
       
  5595 	*/
       
  5596 	enum TMmsStatus
       
  5597 		{
       
  5598 		/**
       
  5599 		The MMS has not been retrieved.
       
  5600 		*/
       
  5601 		EMmsNotRetrieved,
       
  5602 		/**
       
  5603 	    The MMS has been retrieved.
       
  5604 	    */
       
  5605 		EMmsRetrieved,
       
  5606 		/**
       
  5607 		The MMS has been rejected.
       
  5608 		*/
       
  5609 		EMmsRejected,
       
  5610 		/**
       
  5611 		The MMS has been forwarded.
       
  5612 		*/
       
  5613 		EMmsforwarded
       
  5614 		};
       
  5615 
       
  5616 	/** 
       
  5617 	MMS Implementation.
       
  5618 	*/
       
  5619 	enum TMmsImplementation
       
  5620 		{
       
  5621 		/**
       
  5622 		Unknown implementation for MMS.
       
  5623 		*/
       
  5624 		KMmsImplUnknwown=0x00,
       
  5625 		/**
       
  5626 		Wap implementation for MMS.
       
  5627 		*/
       
  5628 		KWapImplementation=0x01
       
  5629 		};
       
  5630 	
       
  5631 	/**
       
  5632 	MMS Connectivity settings.
       
  5633 	*/
       
  5634 	enum TMmsConnParams
       
  5635 		{
       
  5636 		/**
       
  5637 		MMS User Preferences.
       
  5638 		*/
       
  5639 		EUserPreferences,
       
  5640 		/**
       
  5641 		MMS Issuer Connectivity Parameters.
       
  5642 		*/
       
  5643 		EIssuerConnParams,
       
  5644 		/**
       
  5645 		MMS User Connectivity Parameters.
       
  5646 		*/
       
  5647 		EUserConnParams
       
  5648 		};
       
  5649 
       
  5650 	/**
       
  5651 	MMS field Id tags.
       
  5652 	*/
       
  5653 	enum TMobileMMSFieldTags
       
  5654 		{
       
  5655 		/**
       
  5656 		Tag id for MMS connectivity parameters.
       
  5657 		*/
       
  5658 		ETagMmsConnParams=0xAB,
       
  5659 		/**
       
  5660 		Tag id for MMS Implementation.
       
  5661 		*/
       
  5662 		ETagMmsImpl=0x80,
       
  5663 		/**
       
  5664 		Tag id for MMS Relay/Server.
       
  5665 		*/
       
  5666 		ETagMmsServer=0x81,
       
  5667 		/**
       
  5668 		Tag id for Interface to Core Network and Bearer.
       
  5669 		*/
       
  5670 		ETagMmsBearerIE=0x82,
       
  5671 		/**
       
  5672 		Tag id for Gateway.
       
  5673 		*/
       
  5674 		ETagMmsGateway=0x83 	  
       
  5675 		};
       
  5676 		
       
  5677 	class TMmsNotificationV3 : public TMultimodeType
       
  5678 	/**
       
  5679 	Class containing MMS notification paramters.
       
  5680 	*/
       
  5681 		{
       
  5682 		public :
       
  5683 			IMPORT_C TMmsNotificationV3();
       
  5684 		public :
       
  5685 			/**
       
  5686 			Free/Used space.
       
  5687 			*/
       
  5688 			TBool iSpace;
       
  5689 			/**
       
  5690 			Notification read/not read.
       
  5691 			*/
       
  5692 			TBool iNotification;
       
  5693 			/**
       
  5694 			MMS status.
       
  5695 			*/
       
  5696 			TMmsStatus iMmsStatus;
       
  5697 			/**
       
  5698 			MMS implementation.
       
  5699 			*/
       
  5700 			TMmsImplementation iImplementation;
       
  5701 			/**
       
  5702 			MMS notification buffer.
       
  5703 			*/
       
  5704 			TBuf8<KMaxMmsNotification> iNotify;
       
  5705 		};
       
  5706 	
       
  5707 	typedef TPckg<TMmsNotificationV3> TMmsNotificationV3Pckg;
       
  5708 
       
  5709 	//	MMS notification 	
       
  5710 	IMPORT_C void NotifyMmsUpdate(TRequestStatus& aReqStatus, TDes8& aNotification) const;
       
  5711 	IMPORT_C void SetMmsUserConnParams(TRequestStatus& aReqStatus, TDes8& aConnectivity) const;
       
  5712 	IMPORT_C void SetMmsUserPreferences(TRequestStatus& aReqStatus, TDes8& aPreferences) const;
       
  5713 	IMPORT_C void GetMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const;
       
  5714 	IMPORT_C void NotifyMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const;
       
  5715 	
       
  5716 	/***********************************************************************************/
       
  5717 	//
       
  5718 	// Mobile MailBox Numbers Functional Unit 
       
  5719 	// 
       
  5720 	/***********************************************************************************/
       
  5721 
       
  5722 	class TMobilePhoneVoicemailIdsV3 : public TMultimodeType
       
  5723 	/**
       
  5724 	Contains mailbox numbers.
       
  5725 	*/
       
  5726 		{
       
  5727 		public :
       
  5728 			IMPORT_C TMobilePhoneVoicemailIdsV3();
       
  5729 		public :
       
  5730 			/**
       
  5731 			Phonebook entry for "voicemail" mailbox number.
       
  5732 			*/
       
  5733 			TUint8	iVoice;
       
  5734 			/** 
       
  5735 			Phonebook entry for "data" mailbox number.
       
  5736 			*/
       
  5737 			TUint8	iData;
       
  5738 			/**
       
  5739 			Phonebook entry for "fax" mailbox number.
       
  5740 			*/
       
  5741 			TUint8	iFax;
       
  5742 			/**
       
  5743 			Phonebook entry for "other" mailbox number.
       
  5744 			*/
       
  5745 			TUint8	iOther;
       
  5746 		};
       
  5747 
       
  5748 /** A typedef'd packaged TMobilePhoneVoicemailIdsV3 for passing through a generic 
       
  5749 	API function member. */
       
  5750 	typedef TPckg<TMobilePhoneVoicemailIdsV3> TMobilePhoneVoicemailIdsV3Pckg;
       
  5751 
       
  5752 	class TMobilePhoneVoicemailIdsV8 : public TMobilePhoneVoicemailIdsV3
       
  5753 	/**
       
  5754 	Contains mailbox numbers see section 4.2.62 of 3GPP TS 31.102 V6.18.0.
       
  5755 	*/
       
  5756 		{
       
  5757 		public :
       
  5758 			IMPORT_C TMobilePhoneVoicemailIdsV8();
       
  5759 		public :
       
  5760 			/**
       
  5761 			Phonebook entry for "videomail" mailbox number.
       
  5762 			*/
       
  5763 			TUint8	 iVideo;
       
  5764 		};
       
  5765 		
       
  5766 	/** A typedef'd packaged TMobilePhoneVoicemailIdsV8 for passing through a generic 
       
  5767 	API function member. */
       
  5768 	typedef TPckg<TMobilePhoneVoicemailIdsV8> TMobilePhoneVoicemailIdsV8Pckg;
       
  5769 
       
  5770 	IMPORT_C void GetMailboxNumbers(TRequestStatus& aReqStatus, TDes8& aMailBox) const;
       
  5771 	IMPORT_C void NotifyMailboxNumbersChange(TRequestStatus& aReqStatus, TDes8& aMailBox) const;
       
  5772 
       
  5773 	/***********************************************************************************/
       
  5774 	//
       
  5775 	// Mobile APN Control List Functional Unit
       
  5776 	// 
       
  5777 	/***********************************************************************************/	
       
  5778 	
       
  5779 	enum { KMaxApnName = 100 };
       
  5780 	
       
  5781 	class TAPNEntryV3 : public TMultimodeType
       
  5782 	/**
       
  5783 	Contains parameters for an Access Point Name (APN) entry contained 
       
  5784 	within the Access Control List EFacl file in the UICC.
       
  5785 	*/
       
  5786 		{
       
  5787 	public:
       
  5788 		IMPORT_C TAPNEntryV3();
       
  5789 	public:
       
  5790 		/**
       
  5791 		GGSN DNS name.
       
  5792 		*/
       
  5793 		TBuf8<KMaxApnName> iApn;		
       
  5794 		};
       
  5795 		
       
  5796 	typedef TPckg<TAPNEntryV3> TAPNEntryV3Pckg;
       
  5797 	
       
  5798 	IMPORT_C void EnumerateAPNEntries(TRequestStatus& aReqStatus, TUint32 &aIndex) const;
       
  5799 	IMPORT_C void GetAPNname(TRequestStatus& aReqStatus, const TUint32 aIndex, TDes8& aAPN) const;
       
  5800 	IMPORT_C void AppendAPNName(TRequestStatus& aReqStatus, const TDes8& aAPN) const;
       
  5801 	IMPORT_C void DeleteAPNName(TRequestStatus& aReqStatus, TUint32 aIndex) const; 
       
  5802 	IMPORT_C void NotifyAPNListChanged(TRequestStatus& aReqStatus) const;
       
  5803 
       
  5804 	enum TAPNControlListServiceStatus {
       
  5805 		/**
       
  5806 		The APN control list service is disabled.
       
  5807 		*/
       
  5808 		EAPNControlListServiceDisabled,
       
  5809 		/**
       
  5810 		The APN control list service is enabled.
       
  5811 		*/
       
  5812 		EAPNControlListServiceEnabled
       
  5813 	};
       
  5814 
       
  5815 	IMPORT_C void SetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus aAPNControlListServiceStatus) const;
       
  5816 	IMPORT_C void GetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const;
       
  5817 	IMPORT_C void NotifyAPNControlListServiceStatusChange(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const;
       
  5818 
       
  5819 	/***********************************************************************************/
       
  5820 	//
       
  5821 	// Retrieve Total Air Time Duration Functional Unit
       
  5822 	//
       
  5823 	/***********************************************************************************/
       
  5824 	IMPORT_C TInt GetAirTimeDuration(TTimeIntervalSeconds& aTime) const;
       
  5825 	IMPORT_C void NotifyAirTimeDurationChange(TRequestStatus& aReqStatus,TTimeIntervalSeconds& aTime) const;
       
  5826 	/***********************************************************************************/
       
  5827 	//
       
  5828 	// Terminate All Calls
       
  5829 	//
       
  5830 	/***********************************************************************************/
       
  5831 	IMPORT_C void TerminateAllCalls(TRequestStatus& aReqStatus) const;
       
  5832 	
       
  5833 	/***********************************************************************************/
       
  5834 	//
       
  5835 	// Auto Redial Functional Unit
       
  5836 	//
       
  5837 	/***********************************************************************************/
       
  5838 	IMPORT_C void ClearBlacklist(TRequestStatus& aReqStatus) const;
       
  5839 
       
  5840 	/***********************************************************************************/
       
  5841 	//
       
  5842 	// Mobile Personalisation Functional Unit
       
  5843 	//
       
  5844 	/***********************************************************************************/
       
  5845 	
       
  5846 	/**
       
  5847 	Indentifies the personalisation scheme capabilities of the UICC/ME.
       
  5848 	*/
       
  5849 	enum TMobilePhonePersonalisationCaps
       
  5850 		{
       
  5851 		/**
       
  5852 		UICC/ME personalisation based on network (MCC, MNC) information is possible.
       
  5853 		*/
       
  5854 		KCapsPersonalisedNetwork=0x01,
       
  5855 		/**
       
  5856 		UICC/ME personalisation based on network (MCC, MNC, IMSI network code group) information is possible.
       
  5857 		*/
       
  5858 		KCapsPersonalisedNetworkSub=0x02,
       
  5859 		/**
       
  5860 		UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFCNL) information is possible.
       
  5861 		*/
       
  5862 		KCapsPersonalisedServiceProvider=0x04,
       
  5863 		/**
       
  5864 		UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFGID2, EFCNL) information is possible.
       
  5865 		*/
       
  5866 		KCapsPersonalisedCorporate=0x08,
       
  5867 		/**
       
  5868 		UICC/ME personalisation based on (IMSI SIM/USIM code group) information is possible.
       
  5869 		*/
       
  5870 		KCapsPersonalisedUSim=0x10
       
  5871 		};
       
  5872 		
       
  5873 	/**
       
  5874 	Identifies the current personalisation schemes that are active. 
       
  5875 	*/
       
  5876 	enum TMobilePhonePersonalisationScheme
       
  5877 		{
       
  5878 		/**
       
  5879 		The ME is personalised under the network scheme.
       
  5880 		*/
       
  5881 		KPersonalisedNetwork=0x01,
       
  5882 		/**
       
  5883 		The ME is personalised under the network sub scheme.
       
  5884 		*/
       
  5885 		KPersonalisedNetworkSub=0x02,
       
  5886 		/**
       
  5887 		The ME is personalised under the service provider scheme.
       
  5888 		*/
       
  5889 		KPersonalisedServiceProvider=0x04,
       
  5890 		/**
       
  5891 		The ME is personalised under the corprorate scheme.
       
  5892 		*/
       
  5893 		KPersonalisedCorporate=0x08,
       
  5894 		/**
       
  5895 		The ME is personalised under the  SIM/USIM scheme.
       
  5896 		*/
       
  5897 		KPersonalisedUSim=0x10	
       
  5898 		};
       
  5899 
       
  5900 	/**
       
  5901 	Identifies the personalisation scheme to be set.
       
  5902 	*/
       
  5903 	enum TMobilePhonePersonalisation
       
  5904 		{
       
  5905 		/**
       
  5906 		Personalise the ME using the network scheme.
       
  5907 		*/
       
  5908 		EPersonaliseNetwork,
       
  5909 		/**
       
  5910 		Personalise the ME using the network sub scheme.
       
  5911 		*/
       
  5912 		EPersonaliseNetworkSub,
       
  5913 		/**
       
  5914 		Personalise the ME using the service provider scheme.
       
  5915 		*/
       
  5916 		EPersonaliseServiceProvider,
       
  5917 		/**
       
  5918 		Personalise the ME using the corporate scheme.
       
  5919 		*/
       
  5920 		EPersonaliseCorporate,
       
  5921 		/**
       
  5922 		Personalise the ME using the SIM/USIM scheme.
       
  5923 		*/
       
  5924 		EPersonaliseUsim
       
  5925 		};
       
  5926 		
       
  5927 	IMPORT_C TInt GetPersonalisationCaps(TUint32& aCaps) const;
       
  5928 	IMPORT_C void GetPersonalisationStatus(TRequestStatus& aReqStatus, TUint32& aPersSchemes) const;
       
  5929 	IMPORT_C void SetPersonalisationStatus(TRequestStatus& aReqStatus, const TMobilePhonePersonalisation aPersSchemes, const TDes& aPersCode) const;
       
  5930 	
       
  5931 	/***********************************************************************************/
       
  5932 	//
       
  5933 	// Etel 3rd Party v1.0 Parameter classes
       
  5934 	//
       
  5935 	/***********************************************************************************/
       
  5936 	
       
  5937 	class TEtel3rdPartyMobileNetworkInfoV1 : public TMultimodeType
       
  5938 	/**
       
  5939 	Defines the parameters used to set-up of a call originated from an ETel 3rd Party client.
       
  5940 
       
  5941 	TEtel3rdPartyMobileNetworkInfoV1 was used to give an indication to the TSY of where the
       
  5942 	request was originating from; i.e. if the request is from an application using the ISV
       
  5943 	API or ETel API, which allowed the TSY to make a decision based on the origin.  This
       
  5944 	data type also provided further protection by not including any location information
       
  5945 	parameters.  With PlatSec being introduced in v9.0, there was no need to use this data
       
  5946 	structure, as each API is policed with the adequate PlatSec capabilities.  Therefore,
       
  5947 	in v9.0 TEtel3rdPartyMobileNetworkInfoV1 was deprecated and removed from the ETel ISV
       
  5948 	(ETel3rdParty) implementation.
       
  5949 
       
  5950 	TEtel3rdPartyMobileNetworkInfoV1 was only used internally by the ETel ISV API when calls
       
  5951 	are made to RMobilePhone::GetCurrentNetwork or RMobilePhone::NotifyCurrentNetworkChange.
       
  5952 	The TSY no longer needs to support this as ETel ISV now uses the TMobilePhoneNetworkInfoV2
       
  5953 	data structure and no distinction is required for ISV Apps.
       
  5954 
       
  5955 	@publishedPartner
       
  5956 	@deprecated 9.0 This class has been deprecated from 9.0 and should no longer be used.
       
  5957 	*/
       
  5958 		{
       
  5959 	public:
       
  5960 		IMPORT_C TEtel3rdPartyMobileNetworkInfoV1();
       
  5961 	public:
       
  5962 	/** Mode of the network.
       
  5963 	Modes: Common
       
  5964 	
       
  5965 	@see TMobilePhoneNetworkMode */
       
  5966 		TMobilePhoneNetworkMode iMode;
       
  5967 	/** Status of the network
       
  5968 	
       
  5969 	Modes: Common
       
  5970 	
       
  5971 	@see TMobilePhoneNetworkStatus */
       
  5972 		TMobilePhoneNetworkStatus iStatus;
       
  5973 	/** The band and band class of the CDMA network operator.
       
  5974 	
       
  5975 	Modes: CDMA
       
  5976 	
       
  5977 	@see TMobilePhoneNetworkBandInfo 
       
  5978 	@deprecated 9.5 */
       
  5979 		TMobilePhoneNetworkBandInfo iBandInfo;
       
  5980 	/** The MCC of the network.
       
  5981 	
       
  5982 	Modes: Common
       
  5983 	
       
  5984 	@see TMobilePhoneNetworkCountryCode */
       
  5985 		TMobilePhoneNetworkCountryCode iCountryCode;
       
  5986 	/** The system identity (SID) of the CDMA network or the system identity (SID) of the AMPS network.
       
  5987 	
       
  5988 	Modes: CDMA
       
  5989 
       
  5990 	@see TMobilePhoneNetworkIdentity 
       
  5991 	@deprecated 9.5 
       
  5992 	*/
       
  5993 		TMobilePhoneNetworkIdentity iCdmaSID;
       
  5994 	/** The network identity (NID in CDMA and MNC in GSM).
       
  5995 	
       
  5996 	Modes: Common
       
  5997 	
       
  5998 	@see TMobilePhoneNetworkIdentity */
       
  5999 		TMobilePhoneNetworkIdentity iNetworkId;
       
  6000 	/** The alpha-tag displayed when this is the serving network.
       
  6001 	
       
  6002 	Modes: Common
       
  6003 	
       
  6004 	@see TMobilePhoneNetworkDisplayTag */
       
  6005 		TMobilePhoneNetworkDisplayTag iDisplayTag;
       
  6006 	/** The short name (up to 10 characters) of the network operator.
       
  6007 	
       
  6008 	Modes: GSM/WCDMA
       
  6009 	
       
  6010 	@see TMobilePhoneNetworkShortName */
       
  6011 		TMobilePhoneNetworkShortName iShortName;
       
  6012 	/** The long name (up to 20 characters) of the network operator.
       
  6013 	
       
  6014 	Modes: GSM/WCDMA
       
  6015 	
       
  6016 	@see TMobilePhoneNetworkLongName */
       
  6017 		TMobilePhoneNetworkLongName iLongName;
       
  6018 	/** The type of network access.
       
  6019 	
       
  6020 	@see TMobilePhoneNetworkAccess */
       
  6021 		TMobilePhoneNetworkAccess iAccess;
       
  6022 		};
       
  6023 
       
  6024 /** A typedef'd packaged TEtel3rdPartyMobileNetworkInfoV1 for passing through a generic
       
  6025 API function member.
       
  6026 
       
  6027 @deprecated 9.0
       
  6028 */
       
  6029 	typedef TPckg<TEtel3rdPartyMobileNetworkInfoV1>  TEtel3rdPartyMobileNetworkInfoV1Pckg;
       
  6030 
       
  6031 	/** IMS Authenticate constants,in accordance to 3GPP TS 33.102,
       
  6032 	section 6.3.7, and RFC 3310*/
       
  6033 	enum TMobilePhoneAuthenticate
       
  6034 		{
       
  6035 		/** length of autn is 128bits - 16octets*/
       
  6036 		KAutnLength=16,
       
  6037 		/** length of RAND is 16 octets */
       
  6038 		KRandLength=16,
       
  6039 		/** length of RES is 16 octets*/
       
  6040 		KResLength=16,
       
  6041 		/** length of IK is 16 octets*/
       
  6042 		KIkLength=16,
       
  6043 		/** length of CK is 16 octets*/
       
  6044 		KCkLength=16,
       
  6045 		/** length of Kc (GSM cipher key) is 8 octets*/
       
  6046 		KKcLength=8,
       
  6047 		/** length of is 112 bits - 14 octets */
       
  6048 		KAutsLength=14,
       
  6049 		};
       
  6050 
       
  6051 	/** Maximum size of the record in an EF is 0xff( 255 bytes) according to TS 102.221, section 8.2.2.2
       
  6052 	*/
       
  6053 	enum TMobilePhoneRelease5EFMaxSize
       
  6054 	{
       
  6055 	 KRelease5EFMaxSize=255,
       
  6056 	};
       
  6057 	
       
  6058 	/** typedefs for encapsulation of the buffers that hold authorization data stored on the ISIM/USIM*/
       
  6059 	/** typedef for Internet Multimedia Public Identity*/	
       
  6060 	typedef TBuf8<KRelease5EFMaxSize> TIMPU;
       
  6061 	/** typedef for Internet Multimedia Private Identity*/
       
  6062 	typedef TBuf8<KRelease5EFMaxSize> TIMPI;
       
  6063 	/** typedef for Home Network Domain Name*/
       
  6064 	typedef TBuf8<KRelease5EFMaxSize> THNDN;
       
  6065 
       
  6066 
       
  6067 	/** IMS Authenticate API*/
       
  6068 	/** Class encapsulates data needed as an input/output for
       
  6069 	ISIM/USIM AUTHENTICATE command
       
  6070 	
       
  6071 	@publishedPartner
       
  6072 	@released
       
  6073 	*/
       
  6074 	class TImsAuthenticateDataV5: public TMultimodeType
       
  6075 		{
       
  6076 	public:
       
  6077 		IMPORT_C TImsAuthenticateDataV5();
       
  6078 		/** holds value of network challenge AUTN */
       
  6079 		TBuf8<KAutnLength> iAUTN;
       
  6080 		/** holds value of network challenge RAND */
       
  6081 		TBuf8<KRandLength> iRAND;
       
  6082 		/** holds result RES of AUTHENTICATE command when it's successfull*/
       
  6083 		TBuf8<KResLength> iRES;
       
  6084 		/** holds value of session key Integrity Key */
       
  6085 		TBuf8<KIkLength> iIK;
       
  6086 		/** holds value of session key Cipher Key */
       
  6087 		TBuf8<KCkLength> iCK;
       
  6088 		/** holds value of Authentication Token when  AUTHENTICATE fails*/
       
  6089 		TBuf8<KAutsLength> iAUTS;
       
  6090 		};
       
  6091 
       
  6092 	/** packaged version of TImsAuthenticateDataV5, used when this structure has to be passeed via IPC*/
       
  6093 	typedef TPckg<TImsAuthenticateDataV5> TImsAuthenticateDataV5Pckg;
       
  6094 	friend class CAsyncRetrieveAuthorizationInfo;
       
  6095 
       
  6096 	/** API that execute ISIM/USIM AUTHENTICATE command*/
       
  6097 	IMPORT_C void ImsAuthenticate (TRequestStatus& aReqStatus,TDes8& aAuthenticateDataPckgd) const;
       
  6098 
       
  6099 	IMPORT_C void NotifyImsAuthorizationInfoChange(TRequestStatus& aReqStatus) const;
       
  6100 
       
  6101 	/**
       
  6102 	Source location of IMS Authorization data.
       
  6103 	*/
       
  6104 	enum TAuthorizationDataSource
       
  6105 		{
       
  6106 		/** Authorization data source is USIM. */
       
  6107 		EFromUSIM,
       
  6108 		/** Authorization data source is ISIM. */
       
  6109 		EFromISIM
       
  6110 		};
       
  6111 
       
  6112 	/** 
       
  6113 	Class encapsulates IMS authorization data stored in the ISIM or USIM
       
  6114 
       
  6115 	@publishedPartner
       
  6116 	@released
       
  6117 	*/
       
  6118 	class CImsAuthorizationInfoV5 : public CBase	
       
  6119 		{
       
  6120 	public:
       
  6121 		IMPORT_C ~CImsAuthorizationInfoV5();
       
  6122 		IMPORT_C static CImsAuthorizationInfoV5* NewL();
       
  6123 		IMPORT_C virtual void ExternalizeL(HBufC8*& aBuffer);
       
  6124 		IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer);
       
  6125 		IMPORT_C TUint ExtensionId() const;
       
  6126 	public:
       
  6127 		/**Internet Multimedia Private Identity stored on the ISIM/USIM*/
       
  6128 		RMobilePhone::TIMPI iIMPI;
       
  6129 		/**Internet Multimedia Public Identity(ies) stored on the ISIM/USIM*/
       
  6130 		RArray<RMobilePhone::TIMPU> iIMPUArray;
       
  6131 		/**Home Network Domain Name stored on the ISIM/USIM*/
       
  6132 		RMobilePhone::THNDN iHomeNetworkDomainName;
       
  6133 		/**indicates whether authorization data has been retrieved from the ISIM*/
       
  6134 		TAuthorizationDataSource iAuthenticationDataSource;
       
  6135 	protected:
       
  6136 		CImsAuthorizationInfoV5();
       
  6137 		/** version of the data supported*/
       
  6138 		TUint iExtensionId;
       
  6139 		};
       
  6140 		
       
  6141 	/******************************************************************************************************/
       
  6142 	//
       
  6143 	//           UICC Authentication 
       
  6144 	//
       
  6145 	/******************************************************************************************************/		
       
  6146 	
       
  6147 	/**	
       
  6148 	Defines the input as well as the ouput parameters used when performing the
       
  6149 	(U)ICC AUTHENTICATE command.
       
  6150 
       
  6151 	@publishedPartner
       
  6152 	@released
       
  6153     */
       
  6154 	class TSmartCardAuthenticateDataV6 : public TImsAuthenticateDataV5
       
  6155 		{
       
  6156 	public:
       
  6157 		IMPORT_C TSmartCardAuthenticateDataV6();
       
  6158 
       
  6159 	public:
       
  6160 		TBuf8<KKcLength> iKc;
       
  6161 		};
       
  6162 
       
  6163 	/**
       
  6164 	Packaged version of TSmartCardAuthenticateDataV6, used when this
       
  6165 	structure has to be passeed via IPC.
       
  6166 	*/
       
  6167 	typedef TPckg<TSmartCardAuthenticateDataV6> TSmartCardAuthenticateDataV6Pckg;
       
  6168 
       
  6169 	IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, TDes8& aAuthDataPckgd) const;
       
  6170 	IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, const TAID& aAID, TDes8& aAuthDataPckgd) const;
       
  6171 	
       
  6172 	/******************************************************************************************************/
       
  6173 	//
       
  6174 	//     Generic Bootstrapping Architecture (GBA_U) Authentication 
       
  6175 	//
       
  6176 	/******************************************************************************************************/
       
  6177 	// used to set iExtensionId 
       
  6178 	/** The mobile phone GBA and MBMS authentication extension IDs.
       
  6179 
       
  6180 	Modes: Common */
       
  6181 	enum TMobilePhoneAuthDataExtId
       
  6182   		{
       
  6183 		/** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapAuthDataV8. */
       
  6184 		KETelMobileGbaBootstrapAuthDataV8 = KEtelExtMultimodeV8,
       
  6185 		/** The iExtensionId contents indicate that the packaged class is a TGbaNafAuthDataV8. */
       
  6186 		KETelMobileGbaNafAuthDataV8,
       
  6187 		/** The iExtensionId contents indicate that the packaged class is a TMbmsMskUpdateDataV8. */
       
  6188 		KETelMobileMbmsMskUpdateDataV8,
       
  6189 		/** The iExtensionId contents indicate that the packaged class is a TMbmsMtkGenerateDataV8. */
       
  6190 		KETelMobileMbmsMtkGenerateDataV8,
       
  6191 		/** The iExtensionId contents indicate that the packaged class is a TMbmsMskDeleteDataV8. */
       
  6192 		KETelMobileMbmsMskDeleteDataV8,
       
  6193 		/** The iExtensionId contents indicate that the packaged class is a TMbmsMukDeleteDataV8. */
       
  6194 		KETelMobileMbmsMukDeleteDataV8,
       
  6195 		/** The iExtensionId contents indicate that the packaged class is a TMbmsUserKeyV8. */
       
  6196 		KETelMobileMbmsUserKeyV8,
       
  6197 		/** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapParamsV8. */
       
  6198 		KETelMobileGbaBootstrapParamsV8
       
  6199   		};
       
  6200 		
       
  6201 	class TGbaBootstrapAuthDataV8 : public TImsAuthenticateDataV5
       
  6202 	/**
       
  6203 	The class is identical to its base class except for its GBA Bootstrapping specific V8 extension id.
       
  6204 	Contains parameters to hold the input as well as the output parameters for the GBA authentication 
       
  6205 	in the Bootstrapping mode. The parameters are used as follows: 
       
  6206 
       
  6207 	Input: RAND,AUTN
       
  6208 	Output: 
       
  6209 	RES (if the authentication procedure is successful) 
       
  6210 	or
       
  6211 	AUTS (contains the failure response in case of unsuccessful authentication procedure)
       
  6212 	See section 7.1.1.4 and 7.1.2.3 of 3GPP TS 31.102 v6.18.0
       
  6213 	 
       
  6214 	@see TImsAuthenticateDataV5
       
  6215 	 
       
  6216     @see RMobilePhone::SmartCardAuthenticate request
       
  6217 	 
       
  6218     @publishedPartner
       
  6219 	@released
       
  6220 	*/
       
  6221 		{
       
  6222 	public:
       
  6223 		IMPORT_C TGbaBootstrapAuthDataV8();
       
  6224 		};
       
  6225 	
       
  6226 	/**
       
  6227 	Packaged version of TGbaBootstrapAuthDataV8, used when this structure has to be passed via IPC.
       
  6228 	
       
  6229 	@publishedPartner
       
  6230 	@released
       
  6231 	*/	
       
  6232 	typedef TPckg<TGbaBootstrapAuthDataV8> TGbaBootstrapAuthDataV8Pckg;
       
  6233 	
       
  6234 	
       
  6235 	enum 
       
  6236 		{ 
       
  6237 		/** The Maximum permitted size of Bootstrapping Transaction Identifier(B-TID) of 
       
  6238 		the GBA_U bootstapped key 
       
  6239 		see section 4.2.79 of 3GPP TS 31.102 v6.18.0
       
  6240 		*/
       
  6241 		KBtidLength = 255,
       
  6242 		/** The Maximum permitted size of lifetime of the GBA_U bootstrapped keys 
       
  6243 		see section 4.2.79 of 3GPP TS 31.102 v6.18.0
       
  6244 		*/
       
  6245 		KKeyLifetimeLength = 255
       
  6246 		};
       
  6247 	
       
  6248 	class TBsfDataV8 : public TMultimodeType
       
  6249 	/**
       
  6250 	 Contains parameters to store B-TID and the Key lifetime that are supplied by the the BSF(EF_GBABP).
       
  6251 	 See section 4.2.79 of 3GPP TS 31.102 v6.18.0	
       
  6252 	 
       
  6253 	 @see RMobilePhone::SetGbaBootstrapParams request
       
  6254 	 
       
  6255 	 @publishedPartner
       
  6256 	 @released
       
  6257 	*/
       
  6258 		{
       
  6259 	 public:
       
  6260 	    IMPORT_C TBsfDataV8();	
       
  6261 	 public: 
       
  6262 	 	/** The Bootstrapping Transaction Identifier (B-TID) of the GBA_U bootstrapped key. */  	
       
  6263 	 	TBuf8<KBtidLength>			iBtid;
       
  6264 	 	/** The lifetime of the GBA_U bootstrapped keys. */  		
       
  6265 	 	TBuf8<KKeyLifetimeLength>	iKeyLifetime;
       
  6266 		};
       
  6267 		
       
  6268 	/**
       
  6269 	Packaged version of TBsfDataV8, used when this structure has to be passeed via IPC.
       
  6270 	
       
  6271 	@publishedPartner
       
  6272 	@released
       
  6273 	*/
       
  6274 	typedef TPckg<TBsfDataV8> TBsfDataV8Pckg;
       
  6275 	
       
  6276 	IMPORT_C void SetGbaBootstrapParams(TRequestStatus& aReqStatus, const TAID& aAID, const TDesC8& aParams) const;
       
  6277 
       
  6278 	enum 
       
  6279 		{ 
       
  6280 		/**  The Maximum permitted size of NAF_ID of the Network Application Function(NAF) 
       
  6281 		used in the GBA_U NAF derivation procedure 
       
  6282 		see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
       
  6283 		*/
       
  6284 		KNafIdLength = 255,
       
  6285 		/**  The Maximum permitted size of the private user identity of the GBA_U NAF
       
  6286 		see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
       
  6287 		*/
       
  6288 		KImpiLength = 255,
       
  6289 		/**  The The Maximum permitted size of the Ks_ext_Naf key returned by the UICC application 
       
  6290 		see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
       
  6291 		*/
       
  6292 		KKsExtNafLength = 255
       
  6293 		};
       
  6294 	 	
       
  6295 	class TGbaNafAuthDataV8 : public TMultimodeType
       
  6296 	/**
       
  6297 	 Contains parameters to hold the input as well as the output parameters for the GBA authentication 
       
  6298 	 in the NAF(Network Apllication Function) Derivation mode.
       
  6299 	 See section 7.1.1.5 and 7.1.2.4 of 3GPP TS 31.102 v6.18.0
       
  6300 	 
       
  6301 	 @see RMobilePhone::SmartCardAuthenticate request
       
  6302 	 
       
  6303 	 @publishedPartner
       
  6304   	 @released
       
  6305 	*/
       
  6306 		{
       
  6307 	 public:
       
  6308 	 	IMPORT_C TGbaNafAuthDataV8();
       
  6309 	 public:
       
  6310 	 	/** Input Parameter: The NAF_ID of the Network Application Function (NAF) used in the 
       
  6311 	 	GBA_U NAF Derivation procedure. */  	
       
  6312 	 	TBuf8<KNafIdLength>	iNafId;	
       
  6313 	  	/** Input Parameter: The Private user identity. */  			
       
  6314 	 	TBuf8<KImpiLength>	iImpi;
       
  6315 		/** Output Parameter: The Ks_ext_NAF key returned by the UICC app.  */  		 	
       
  6316 	 	TBuf8<KKsExtNafLength> iKsExtNaf;
       
  6317 		};
       
  6318 		
       
  6319 	/**
       
  6320 	Packaged version of TGbaNafAuthDataV8, used when this structure has to be passeed via IPC.
       
  6321 	
       
  6322 	@publishedPartner
       
  6323 	@released
       
  6324 	*/
       
  6325 	typedef TPckg <TGbaNafAuthDataV8> TGbaNafAuthDataV8Pckg;
       
  6326 	
       
  6327 	class TGbaBootstrapParamsV8 : public TMultimodeType
       
  6328 	/**
       
  6329 	 Contains parameters for the GBA Bootstrapping Parametres (EF_GBABP).
       
  6330 	 See section 4.2.79 of 3GPP TS 31.102 v6.18.0	
       
  6331 	 
       
  6332 	 @see RMobilePhone::GetAuthenticationParams request
       
  6333 	 
       
  6334 	 @publishedPartner
       
  6335 	 @released
       
  6336 	*/
       
  6337 		{
       
  6338 	public:
       
  6339 		IMPORT_C TGbaBootstrapParamsV8();
       
  6340 	public:
       
  6341 		/** The RAND (AKA Random challenge) value used in the GBA_U bootstrapping procedure. */  		
       
  6342 		TBuf8<KRandLength>		iRand;
       
  6343 		/** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U bootstrapped 
       
  6344 		keys. The client requesting the GBA Bootstrapping procedure receives this value from the network 
       
  6345 		(i.e. BSF) and it then stores it on the UICC. */  		
       
  6346 		TBuf8<KBtidLength>		iBtid;
       
  6347 		/** The lifetime of the GBA_U bootstrapped keys. The client requesting the GBA Bootstrapping
       
  6348 		 procedure receives this value from the network (i.e. BSF) and it then stores it on the UICC. */  		
       
  6349 		TBuf8<KKeyLifetimeLength>	iKeyLifetime;
       
  6350 		};
       
  6351 	
       
  6352 	/**
       
  6353 	Packaged version of TGbaBootstrapParamsV8, used when this structure has to be passeed via IPC.
       
  6354 	
       
  6355 	@publishedPartner
       
  6356 	@released
       
  6357 	*/
       
  6358 	typedef TPckg<TGbaBootstrapParamsV8> TGbaBootstrapParamsV8Pckg;
       
  6359 	
       
  6360 	enum TAuthData
       
  6361 	/**
       
  6362 	The type of the authentication related data that has been modified as a result of the 
       
  6363 	UICC authentication command.
       
  6364 	
       
  6365 	@see RMobilePhone::GetAuthenticationParams
       
  6366 	
       
  6367 	@publishedPartner
       
  6368 	@released
       
  6369 	*/	
       
  6370 		{
       
  6371 		/** The GBA Bootstrapping parameters. 
       
  6372 		The GBA Bootstrapping parameters are stored under EF_GBABP of the UICC app. */
       
  6373 		EGbaBootstrapParams,
       
  6374 		/** The list of the GBA Network Application Function (NAF) IDs and the Bootstrapping
       
  6375 		Transaction Identifiers (B-TIDs), associated with the previous GBA NAF derivation procedure.
       
  6376 		The list is stored under EF_GBANL of the UICC app.  */
       
  6377 		EGbaNafIdList,
       
  6378 		/** The list of MBMS Service Keys (MSKs) and corresponding time stamp counters, which are 
       
  6379 		related to an MBMS Key Domain. 
       
  6380 		This list is stored in the EF_MSK file of the UICC app. */
       
  6381 		EMbmsMskIdList,
       
  6382 		/** The identifier of the MBMS User Key (MUK) that is used to protect the transfer of MBMS 
       
  6383 		Service Keys (MSK). 
       
  6384 		The MUK ID is stored in the EF_MUK file of the UICC app.*/
       
  6385 		EMbmsMuk
       
  6386 		};
       
  6387 		
       
  6388 	class TAuthInfoV8 : public TMultimodeType
       
  6389 	/**
       
  6390 	 Contains parameters for Authentication related information
       
  6391 	 */	
       
  6392 		{
       
  6393 	public:
       
  6394 		IMPORT_C TAuthInfoV8();
       
  6395 	public:
       
  6396 		/** Application identifier (AID) of the UICC application performing the authentication. */
       
  6397 		TAID  	iAID;
       
  6398 		/** The type of the authentication related data that has been modified as a result of the 
       
  6399 		UICC authentication command*/
       
  6400 		TAuthData	iData;
       
  6401 		};
       
  6402 	
       
  6403 	/**
       
  6404 	Packaged version of TAuthInfoV8 
       
  6405 	*/	
       
  6406 	typedef TPckg<TAuthInfoV8>  TAuthInfoV8Pckg;
       
  6407 	
       
  6408 	IMPORT_C void NotifyAuthenticateDataChange(TRequestStatus& aReqstatus, TDes8& aAuthInfo) const;
       
  6409 	IMPORT_C void GetAuthenticationParams(TRequestStatus& aReqstatus, const TDesC8& aAuthInfo, TDes8& aParams) const;
       
  6410 	
       
  6411 	
       
  6412 	class TGbaNafEntryV8 : public TMultimodeType
       
  6413 	/**
       
  6414 	Contains parameters for the GBA NAF entry(EF_GBANL)
       
  6415 	See section 4.2.83 of 3GPP TS 31.102 v6.18.0
       
  6416 		
       
  6417 	@publishedPartner
       
  6418 	@released
       
  6419 	*/	
       
  6420 		{
       
  6421 	public:
       
  6422 		void InternalizeL(RReadStream& aStream);
       
  6423 		void ExternalizeL(RWriteStream& aStream) const;
       
  6424 	public:
       
  6425 		IMPORT_C TGbaNafEntryV8();
       
  6426 	public:
       
  6427 		/** The identifier of the Network Application Function (NAF) used in the GBA_U NAF 
       
  6428 		Derivation procedure. */  	
       
  6429 		TBuf8<KNafIdLength>		iNafId;
       
  6430 		/** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U 
       
  6431 		bootstrapped keys. The client requesting the GBA Bootstrapping procedure receives 
       
  6432 		this value from the network (i.e. BSF) and it then stores it on the UICC.  */  
       
  6433 		TBuf8<KBtidLength>		iBtid;
       
  6434 		};
       
  6435 	
       
  6436 	/**
       
  6437 	Packaged version of TGbaNafEntryV8, used when this structure has to be passeed via IPC.
       
  6438 	
       
  6439 	@publishedPartner
       
  6440 	@released
       
  6441 	*/	
       
  6442 	typedef TPckg<TGbaNafEntryV8> TGbaNafEntryV8Pckg;
       
  6443 	
       
  6444 	/************************************************************************************************/
       
  6445     //
       
  6446  	//    Multimedia Broadcast Multicast Service (MBMS) Authentication
       
  6447  	//  
       
  6448 	/************************************************************************************************/
       
  6449 	
       
  6450 	/** The Maximum permitted size of multimedia internet Keying message 
       
  6451 	see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0
       
  6452 	*/
       
  6453 	enum { KMikeyLength = 255 };
       
  6454 	typedef TBuf8<KMikeyLength> TMikey;
       
  6455 	
       
  6456 	class TMbmsMskUpdateDataV8 : public TMultimodeType
       
  6457 	/**
       
  6458 	Contains parameters to hold the input as well as the output parameters for the MBMS 
       
  6459 	authentication in the MSK Update mode.  
       
  6460 	See section 7.1.1.6 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
       
  6461 	
       
  6462 	@see RMobilePhone::SmartCardAuthenticate request
       
  6463 	
       
  6464 	@publishedPartner
       
  6465 	@released
       
  6466 	*/
       
  6467 		{
       
  6468 	public:
       
  6469 		IMPORT_C TMbmsMskUpdateDataV8();
       
  6470 	public:
       
  6471 	    /** Input Parameter:MIKEY (Multimedia Internet Keying) message containing the MSK update 
       
  6472 	    message from the network.  */
       
  6473 		TMikey  iInputMikey;
       
  6474 		/** Output Parameter: The output MIKEY (Multimedia Internet Keying) message containing 
       
  6475 		the MSK Verification message from the UICC as the command response.
       
  6476 		This is an optional parameter and it is only returned if the V-bit in the HDR field of 
       
  6477 		the received MIKEY message is set. */
       
  6478 		TMikey  iOutputMikey;
       
  6479 		};
       
  6480 		
       
  6481 	/**
       
  6482 	Packaged version of TMbmsMskUpdateDataV8, used when this structure has to be passeed via IPC.
       
  6483 	
       
  6484 	@publishedPartner
       
  6485 	@released
       
  6486 	*/		
       
  6487 	typedef TPckg<TMbmsMskUpdateDataV8> TMbmsMskUpdateDataV8Pckg;
       
  6488 	
       
  6489 	/**
       
  6490 	The Maximum permitted size of MTK length.
       
  6491 	see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0.
       
  6492 	*/
       
  6493 	enum {KMtkLength = 255};
       
  6494 	
       
  6495 	/**
       
  6496 	The Salt key length.
       
  6497 	see section 6.4.5.3 of 3GPP TS 33.246 v6.11.0.
       
  6498 	*/
       
  6499 	enum {KSaltLength = 14};
       
  6500 	
       
  6501 	class TMbmsMtkGenerateDataV8 : public TMultimodeType
       
  6502 	/**
       
  6503 	Contains parameters to hold the input as well as the output parameters for the MBMS 
       
  6504 	authentication in MTK Generation mode.  
       
  6505 	See section 7.1.1.7 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0  
       
  6506 	
       
  6507 	@see RMobilePhone::SmartCardAuthenticate request
       
  6508 	
       
  6509 	@publishedPartner
       
  6510 	@released 
       
  6511 	*/
       
  6512 		{
       
  6513 	public:
       
  6514 		IMPORT_C TMbmsMtkGenerateDataV8();
       
  6515 	public:
       
  6516 		/** Input Parameter: The input MIKEY message containing an MTK and a Salt key (if Salt key is available). */
       
  6517 		TMikey	iMikey;
       
  6518 		/** Output Parameter: The MBMS Traffic Key.  */
       
  6519 		TBuf8<KMtkLength>	iMtk;
       
  6520 		/** Output Parameter: A random or pseudo-random string used to protect against some off-line 
       
  6521 		pre computation attacks on the underlying security protocol.
       
  6522 		This is an optional parameter. */
       
  6523 		TBuf8<KSaltLength>	iSaltKey;
       
  6524 		};
       
  6525 	
       
  6526 	/**
       
  6527 	Packaged version of TMbmsMtkGenerateDataV8, used when this structure has to be passeed via IPC.
       
  6528 	
       
  6529 	@publishedPartner
       
  6530 	@released 
       
  6531 	*/		
       
  6532 	typedef TPckg<TMbmsMtkGenerateDataV8> TMbmsMtkGenerateDataV8Pckg;
       
  6533 	
       
  6534 	/**
       
  6535 	The Key domain id length.
       
  6536 	see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
       
  6537 	*/
       
  6538 	enum {KKeyDomainIdLength = 3};
       
  6539 	
       
  6540 	/**
       
  6541 	The Key group length.
       
  6542 	see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
       
  6543 	*/
       
  6544 	enum {KKeyGroupLength = 2};
       
  6545 	
       
  6546 	class TMbmsMskDeleteDataV8 : public TMultimodeType
       
  6547 	/**
       
  6548 	Contains parameters to hold the input as well as the output parameters for the MBMS authentication
       
  6549 	in the MSK Deletion mode.  
       
  6550 	See section 7.1.1.8 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0 
       
  6551 	
       
  6552 	@see RMobilePhone::SmartCardAuthenticate request
       
  6553 	
       
  6554 	@publishedPartner
       
  6555 	@released 
       
  6556 	*/	
       
  6557 		{
       
  6558 	public:
       
  6559 		IMPORT_C TMbmsMskDeleteDataV8();
       
  6560 	public:
       
  6561 		/** Input parameter : Every MSK is uniquely identifiable by its Key Domain ID and MSK ID. 
       
  6562 		Key Domain ID = MCC || MNC and is 3 bytes long. */
       
  6563 		TBuf8<KKeyDomainIdLength>	iKeyDomainId;
       
  6564 		/** Input Parameter: The Key Group part is used to group keys together in order to allow
       
  6565 		redundant MSKs to be deleted. 
       
  6566 		The Key group part is contained within bytes 0 and 1 of the MSK ID. */
       
  6567 		TBuf8<KKeyGroupLength>	iMskIdKeyGroup;
       
  6568 		};
       
  6569 	
       
  6570 	/**
       
  6571 	Packaged version of TMbmsMskDeleteDataV8, used when this structure has to be passeed via IPC.
       
  6572 	
       
  6573 	@publishedPartner
       
  6574 	@released 
       
  6575 	*/		
       
  6576 	typedef TPckg<TMbmsMskDeleteDataV8> TMbmsMskDeleteDataV8Pckg;
       
  6577 	
       
  6578 	/**
       
  6579 	The Maximum permitted size of MUK ID TLV length.
       
  6580 	see section 6.4.5 of 3GPP TS 33.246 v6.11.0
       
  6581 	*/
       
  6582 	enum {KMukIdTlvLength = 255};
       
  6583 	
       
  6584 	class TMbmsMukDeleteDataV8 : public TMultimodeType
       
  6585 	/**
       
  6586 	Contains parameters to hold the input as well as the output parameters for the MBMS 
       
  6587 	authentication in the MUK Deletion mode.  
       
  6588 	See section 7.1.1.9 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0  
       
  6589 	
       
  6590 	@see RMobilePhone::SmartCardAuthenticate request
       
  6591 	
       
  6592 	@publishedPartner
       
  6593 	@released 
       
  6594 	*/	
       
  6595 		{
       
  6596 	public:
       
  6597 		IMPORT_C TMbmsMukDeleteDataV8();
       
  6598 	public:
       
  6599 		/** Input parameter : The MUK ID TLV containing the MUK IDr and MUK IDi. 
       
  6600 		This field will contain the MUK ID as a TLV object containing the MUK IDr and MUK IDi.*/
       
  6601 		TBuf8<KMukIdTlvLength> iMukIdTlv;
       
  6602 		};
       
  6603 
       
  6604 	/**
       
  6605 	Packaged version of TMbmsMukDeleteDataV8, used when this structure has to be passeed via IPC.
       
  6606 	
       
  6607 	@publishedPartner
       
  6608 	@released 
       
  6609 	*/		
       
  6610 	typedef TPckg<TMbmsMukDeleteDataV8> TMbmsMukDeleteDataV8Pckg;
       
  6611 		
       
  6612 	/**
       
  6613 	The Maximum permitted size of MUK IDi length.
       
  6614 	see section 6.4.5 of 3GPP TS 33.246 v6.11.0
       
  6615 	*/
       
  6616 	enum { KMukIdiLength = 255 };
       
  6617 	
       
  6618 	/**
       
  6619 	The Maximum permitted size of MUK IDr length.
       
  6620 	see section 6.4.5 of 3GPP TS 33.246 v6.11.0
       
  6621 	*/
       
  6622 	enum { KMukIdrLength = 255 };
       
  6623 	
       
  6624 	/**
       
  6625 	The time stamp counter length.
       
  6626 	see section 6.4.3 of 3GPP TS 33.246 v6.11.0.
       
  6627 	*/
       
  6628 	enum { KTimeStampCounterLength = 4 };
       
  6629 	
       
  6630 	class TMbmsUserKeyV8 : public TMultimodeType
       
  6631 	/**
       
  6632 	Contains parameters for MBMS User Key(MUK)(EF_MUK).
       
  6633 	See section 4.2.81 of 3GPP TS 31.102 v6.18.0.  
       
  6634 	
       
  6635 	@see RMobilePhone::GetAuthenticationParams
       
  6636 	
       
  6637 	@publishedPartner
       
  6638 	@released  
       
  6639 	*/	
       
  6640 		{
       
  6641 	public:
       
  6642 		IMPORT_C TMbmsUserKeyV8();
       
  6643 	public:
       
  6644 		/** The IDi part of MBMS User Key (MUK). */
       
  6645 		TBuf8<KMukIdiLength>	iMukIdi;
       
  6646 		/** The IDr part of MBMS User Key (MUK). */
       
  6647 		TBuf8<KMukIdrLength>	iMukIdr;
       
  6648 		/** The counter for MIKEY replay protection in MSK delivery. The counter is associated 
       
  6649 		with the particular MUK. */
       
  6650 		TBuf8<KTimeStampCounterLength>	iTimeStampCounter;	
       
  6651 		};
       
  6652 		
       
  6653 	/**
       
  6654 	Packaged version of TMbmsUserKeyV8, used when this structure has to be passeed via IPC.
       
  6655 	
       
  6656 	@publishedPartner
       
  6657 	@released
       
  6658 	*/		
       
  6659 	typedef TPckg<TMbmsUserKeyV8> TMbmsUserKeyV8Pckg;
       
  6660 	
       
  6661 	/**
       
  6662 	The MSK id length.
       
  6663 	see section 6.3.2.1. TS 33.246 v6.11.0
       
  6664 	*/
       
  6665 	enum { KMskIdLength =4 };
       
  6666 
       
  6667 	class TMskEntryV8 : public TMultimodeType
       
  6668 	/**
       
  6669 	contains Parameters for MBMS MSK ID Entry (EF_MSK).
       
  6670 	See section 4.2.80 of 3GPP TS 31.102 v6.18.0. 
       
  6671 	 
       
  6672     @publishedPartner
       
  6673 	@released  
       
  6674 	*/		
       
  6675 		{
       
  6676 	public:
       
  6677 		void InternalizeL(RReadStream& aStream);
       
  6678 		void ExternalizeL(RWriteStream& aStream) const;
       
  6679 	public:
       
  6680 		IMPORT_C TMskEntryV8();
       
  6681 	public:
       
  6682 		/** Identifier of the Domain of the BM-SC providing MBMS service */
       
  6683 		TBuf8<KKeyDomainIdLength>	iKeyDomainId;
       
  6684 		/** Identifier of MBMS Service Key(MSK) with in a paricular Key Domain */
       
  6685 		TBuf8<KMskIdLength>		iMskId;
       
  6686 		/** Counter for MIKEY replay protection in MTK delivery.Each counter is
       
  6687 		 associated with a particular MSK */
       
  6688 		TBuf8<KTimeStampCounterLength>	iTimeStampCounter;
       
  6689 		};
       
  6690 
       
  6691 	/*************************************************************************************/
       
  6692 	//
       
  6693 	//    WLAN Parameters 
       
  6694 	//
       
  6695 	/*************************************************************************************/	
       
  6696 	
       
  6697 	/**
       
  6698 	This type indicates which of the following fields, within the WLAN data structure,
       
  6699 	contain valid data. 
       
  6700 	*/
       
  6701 	enum TUsimWlanDataFlags
       
  6702 		{
       
  6703 		/** The iPseudonym field is valid in the Wlan data class */
       
  6704 		KWlanPseudonym  =0x00000001,
       
  6705 		/** The iReauthenticationId field is valid in the Wlan data class */
       
  6706 		KWlanReauthenticationId  = 0x00000002,
       
  6707 		/** The iMasterKey field is valid in the Wlan data class */
       
  6708 		KWlanMasterKey   = 0x00000004,
       
  6709 		/** The iCounter field is valid in the Wlan data class */
       
  6710 		KWlanCounter     = 0x00000008
       
  6711 		};	
       
  6712 		
       
  6713 	/**
       
  6714 	Holds a Maximum permitted size of the temporary user Identity or 
       
  6715 	pseudonym stored in EF_Pseudo of the currently active USIM.
       
  6716 	see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0
       
  6717 	*/
       
  6718 	enum {	KWlanUserIdentity = 255 };
       
  6719 	typedef TBuf8 <KWlanUserIdentity> TWlanUserIdentity;
       
  6720 
       
  6721 	/**
       
  6722 	Holds a Maximum permitted size of re-authentication identity stored
       
  6723 	in EF_WRI of the currently active USIM.
       
  6724 	see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
       
  6725 	*/
       
  6726 	enum { KWlanMasterKeyLength = 255 };
       
  6727 
       
  6728 	/**
       
  6729 	Holds a Maximum permitted size of master key used in the process of re-authentication. 
       
  6730 	see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
       
  6731 	*/
       
  6732 	enum { KCounterLength = 255 };
       
  6733 
       
  6734 	/**
       
  6735 	Contains Parameters for Wlan Pseudonym(EF_Pseudo) and Reauthentication Id(EF_WRI).
       
  6736 	See section 4.4.5.1 and 4.4.5.6 of 3GPP TS 31.102 v6.18.0. 
       
  6737 	@see RMobilePhone::SetWlanData
       
  6738 	@see RMobilePhone::GetWlanData
       
  6739 	@see RMobilePhone::NotifyWlanDataChange
       
  6740 
       
  6741 	@publishedPartner
       
  6742 	@released  
       
  6743 	*/
       
  6744 	class TUsimWlanDataV8 : public TMultimodeType
       
  6745 		{
       
  6746 	public:
       
  6747 		IMPORT_C TUsimWlanDataV8();
       
  6748 	public:
       
  6749 		/** A bit-wise sum of TUsimWlanDataCaps constants indicating which of the following 
       
  6750 		fields, within the WLAN data structure, contain valid data. */
       
  6751 		TUint32 	iFieldsUsed;  
       
  6752 		/** Holds a buffer containing the temporary user Identity or pseudonym stored in EF_Pseudo 
       
  6753 		of the currently active USIM. */
       
  6754 		TWlanUserIdentity iPseudonym;
       
  6755 		/** Holds a buffer containing the re-authentication identity stored in EF_WRI of the 
       
  6756 		currently active USIM. */
       
  6757 		TWlanUserIdentity	iReauthenticationId;
       
  6758 		/** Holds the master key used in the process of re-authentication. */
       
  6759 		TBuf8<KWlanMasterKeyLength>	iMasterKey;
       
  6760 		/** A counter value to be used in the fast re-authentication. This value is provided as a 
       
  6761 		part of a previous authentication sequence. */ 
       
  6762 		TBuf8<KCounterLength>	iCounter; 
       
  6763 		};
       
  6764 			
       
  6765 	/** Packaged version of TUsimWlanDataV8, used when this structure has to be passeed via IPC.
       
  6766 	
       
  6767 	@publishedPartner
       
  6768 	@released
       
  6769 	*/	
       
  6770 	typedef TPckg<TUsimWlanDataV8> TUsimWlanDataV8Pckg;
       
  6771 
       
  6772 	IMPORT_C void SetWlanData(TRequestStatus& aReqStatus, const TDesC8& aData) const;
       
  6773 	IMPORT_C void GetWlanData(TRequestStatus& aReqStatus, TDes8& aData) const;
       
  6774 	IMPORT_C void NotifyWlanDataChange(TRequestStatus& aReqStatus, TDes8& aData) const;
       
  6775 
       
  6776 	/**
       
  6777 	Holds a Maximum permitted size of Wlan Specific Identifier.
       
  6778 	see section 4.4.5.4 of 31.102 v6.18.0. 
       
  6779 	*/	
       
  6780 	enum { KWlanSIDLength = 255 };
       
  6781 
       
  6782 	/**
       
  6783 	Contains Parameters for User controlled WLAN Specific IDentifier List (EF_UWSIDL) and Operator 
       
  6784 	controlled WLAN Specific IDentifier List(EF_OWSIDL).
       
  6785 	See section 4.4.5.4 and 4.4.5.5 of 3GPP TS 31.102 v6.18.0.
       
  6786 	 
       
  6787 	@see RMobilePhone::StorePreferredWlanSIDListL
       
  6788 	@see RMobilePhone::NotifyPreferredWlanSIDListChange
       
  6789 	
       
  6790 	@publishedPartner
       
  6791 	@released 
       
  6792 	*/
       
  6793 	class TWlanSIDV8 : public TMultimodeType	
       
  6794 		{
       
  6795 	public:
       
  6796 		IMPORT_C TWlanSIDV8();
       
  6797 	public:
       
  6798 		void InternalizeL(RReadStream& aStream);
       
  6799 		void ExternalizeL(RWriteStream& aStream) const;
       
  6800 	public:
       
  6801 		/** Holds a buffer containing WLAN Specific Identifier (SID)*/
       
  6802 		TBuf8<KWlanSIDLength>	iWSID;
       
  6803 		/** Editable preferences in the User-controlled WLAN Specific IDentifier List */
       
  6804 		TBool	iUserDefined;
       
  6805 		};
       
  6806 
       
  6807 	/** Packaged version of TWlanSIDV8, used when this structure has to be passeed via IPC.
       
  6808 	
       
  6809 	@publishedPartner
       
  6810 	@released
       
  6811 	*/	
       
  6812 	typedef TPckg<TWlanSIDV8> TWlanSIDV8Pckg;
       
  6813 
       
  6814 	IMPORT_C void StorePreferredWlanSIDListL(TRequestStatus& aReqStatus, CMobilePhoneStoredWlanSIDList* aList) const;
       
  6815 	IMPORT_C void NotifyPreferredWlanSIDListChange(TRequestStatus& aReqStatus) const;	
       
  6816 		
       
  6817 
       
  6818 private:
       
  6819 	CMobilePhonePtrHolder* iMmPtrHolder;
       
  6820 	RMobilePhone(const RMobilePhone& aPhone);
       
  6821 
       
  6822 protected:
       
  6823 	IMPORT_C void ConstructL();
       
  6824 	IMPORT_C void Destruct();
       
  6825 	};
       
  6826 
       
  6827 /*********************************************************/
       
  6828 //
       
  6829 // Phone Storage functionality (RMobilePhoneStore)
       
  6830 //
       
  6831 /*********************************************************/
       
  6832 
       
  6833 
       
  6834 
       
  6835 class CMobilePhoneStorePtrHolder;
       
  6836 class RMobilePhoneStore : public RTelSubSessionBase
       
  6837 /**
       
  6838 Abstract class used to define common phone storage actions and types
       
  6839 
       
  6840 Clients open one of the specialised phone store classes that are derived from RMobilePhoneStore
       
  6841 */
       
  6842 	{
       
  6843 public:
       
  6844 	friend class CAsyncRetrieveStoreList;
       
  6845 
       
  6846 /** Types of store.
       
  6847 
       
  6848 Modes: Common */
       
  6849 	enum TMobilePhoneStoreType
       
  6850 		{
       
  6851 	/** Store type is unknown.
       
  6852 	
       
  6853 	Modes: Common */
       
  6854 		EPhoneStoreTypeUnknown,
       
  6855 	/** Store contains SMS messages.
       
  6856 	
       
  6857 	Modes: Common */
       
  6858 		EShortMessageStore,
       
  6859 	/** Store contains NAM entries.
       
  6860 	
       
  6861 	Modes: CDMA 
       
  6862 	@deprecated 9.5 */
       
  6863 		ENamStore,
       
  6864 	/** Store contains PhoneBook entries.
       
  6865 	
       
  6866 	Modes: Common */
       
  6867 		EPhoneBookStore,
       
  6868 	/** Store contains emergency number entries.
       
  6869 	
       
  6870 	Modes: Common */
       
  6871 		EEmergencyNumberStore,
       
  6872 	/** Store contains own number entries.
       
  6873 
       
  6874 	Modes: Common */
       
  6875 		EOwnNumberStore
       
  6876 		};
       
  6877 
       
  6878 /** Store capabilities. */
       
  6879 	enum TMobilePhoneStoreCaps
       
  6880 		{
       
  6881 	/** The store can be accessed as a whole using the ReadAll() and StoreAll() member
       
  6882 	functions. */
       
  6883 		KCapsWholeStore			= 0x80000000,
       
  6884 	/** The store can be accessed one entry at a time using the RMobilePhoneStore::Read(), 
       
  6885 	RMobilePhoneStore::Write() and RMobilePhoneStore::Delete() member functions. */
       
  6886 		KCapsIndividualEntry	= 0x40000000,
       
  6887 	/** The store can be accessed in order to read entries. */
       
  6888 		KCapsReadAccess			= 0x20000000,
       
  6889 	/** The store can be accessed in order to write or delete entries. */
       
  6890 		KCapsWriteAccess		= 0x10000000,
       
  6891 	/** The TSY supports deleting all the store entries at once. */
       
  6892 		KCapsDeleteAll			= 0x08000000,
       
  6893 	/** The TSY supports notification of store events such as entries added, deleted
       
  6894 	or store becoming full. */
       
  6895 		KCapsNotifyEvent		= 0x04000000
       
  6896 		};
       
  6897 
       
  6898 /** The type of store information. As defined in TMobilePhoneStoreInfoV1::iExtensionId
       
  6899 
       
  6900 Modes: Common
       
  6901 
       
  6902 @see TMobilePhoneStoreInfoV1
       
  6903 @see RMobilePhone::TMultimodeType */
       
  6904 	enum TMobilePhoneStoreInfoExtId
       
  6905 		{
       
  6906 	/** The iExtensionId contents indicate that the packaged class is a RMobilePhoneStore::TMobilePhoneStoreInfoV1.
       
  6907 	Modes: Common */
       
  6908 		KETelMobilePhoneStoreV1=KETelExtMultimodeV1,
       
  6909 	/** The iExtensionId contents indicate that the packaged class is a RMobilePhoneBookStore::TMobilePhoneBookInfoV1.
       
  6910 	Modes: Common */
       
  6911 		KETelMobilePhonebookStoreV1,
       
  6912 	/** Reserved for SMS store specific information class.
       
  6913 	Modes: Common */
       
  6914 		KETelMobileSmsStoreV1,
       
  6915 	/** The iExtensionId contents indicate that the packaged class is a RMobileNamStore::TMobileNamStoreInfoV1.
       
  6916 	Modes: CDMA 
       
  6917 	@deprecated 9.5
       
  6918 	*/
       
  6919 		KETelMobileNamStoreV1,
       
  6920 	/** The iExtensionId contents indicate that the packaged class is a RMobileONStore::TMobileONStoreInfoV1.
       
  6921 	Modes: Common */
       
  6922 		KETelMobileONStoreV1,
       
  6923 	/** Reserved for Emergency Number store specific infoprmation class.
       
  6924 	Modes: Common */
       
  6925 		KETelMobileENStoreV1,
       
  6926 	/** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2.
       
  6927 	Modes: Common */
       
  6928 		KETelMobilePhonebookStoreV2=KETelExtMultimodeV2,
       
  6929 		
       
  6930 	/** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2.
       
  6931  	Modes: Common */
       
  6932  		KETelMobilePhonebookStoreV5=KEtelExtMultimodeV5
       
  6933 		};
       
  6934 
       
  6935 
       
  6936 
       
  6937 	class TMobilePhoneStoreInfoV1 : public RMobilePhone::TMultimodeType
       
  6938 /** Defines information and capabilities of a phone-side store.
       
  6939 @publishedPartner
       
  6940 @released */
       
  6941 		{
       
  6942 	public:
       
  6943 		IMPORT_C TMobilePhoneStoreInfoV1();
       
  6944 
       
  6945 	/** The type of entry in the phone-side store. 
       
  6946 	
       
  6947 	Modes: Common
       
  6948 
       
  6949 	@see TMobilePhoneStoreType */
       
  6950 		TMobilePhoneStoreType		iType;
       
  6951 	/** Indicates the total number of entries that may be held in this store. */
       
  6952 		TInt						iTotalEntries;
       
  6953 	/** Indicates the current number of entries held in this store.
       
  6954 	
       
  6955 	Is equal to KIndexNotUsed if the TSY is unable to determine current number 
       
  6956 	of entries.
       
  6957 	
       
  6958 	Modes: Common */
       
  6959 		TInt						iUsedEntries;
       
  6960 	/** Indicates the capabilities of the store. It is the sum of caps constants defined
       
  6961 	in TMobilePhoneStoreCaps and those defined for a specialised phone store.
       
  6962 	
       
  6963 	Modes: Common */
       
  6964 		TUint32						iCaps;
       
  6965 	/** The name of the phone-side store. A valid list of names is given in the description 
       
  6966 	of each specialised store. 
       
  6967 	
       
  6968 	Modes: Common
       
  6969 
       
  6970 	@see RMobilePhone::TMobileName */
       
  6971 		RMobilePhone::TMobileName	iName;
       
  6972 		};
       
  6973 
       
  6974 /** A typedef'd packaged TMobilePhoneStoreInfoV1 for passing through a generic
       
  6975 API member function. */
       
  6976 	typedef TPckg<TMobilePhoneStoreInfoV1> TMobilePhoneStoreInfoV1Pckg;
       
  6977 
       
  6978 	
       
  6979 
       
  6980 	class TMobilePhoneStoreEntryV1 : public RMobilePhone::TMultimodeType
       
  6981 /** Defines common contents of an entry in a phone-side store. 
       
  6982 */
       
  6983 		{
       
  6984 	public:
       
  6985 
       
  6986 		enum
       
  6987 			{
       
  6988 			KIndexNotUsed = -1
       
  6989 			};
       
  6990 
       
  6991 	protected:
       
  6992 		TMobilePhoneStoreEntryV1();
       
  6993 	public:
       
  6994 		void InternalizeL(RReadStream& aStream);
       
  6995 		void ExternalizeL(RWriteStream& aStream) const;
       
  6996 	public:
       
  6997 	/** The slot location of the entry within phone-side storage.
       
  6998 	
       
  6999 	Modes: Common */
       
  7000 		TInt  iIndex;
       
  7001 		};
       
  7002 
       
  7003 	IMPORT_C void GetInfo(TRequestStatus& aReqStatus, TDes8& aInfo) const;
       
  7004 
       
  7005 	IMPORT_C void Read(TRequestStatus& aReqStatus, TDes8& aEntry) const;
       
  7006 	IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aEntry) const;
       
  7007 
       
  7008 	IMPORT_C void Delete(TRequestStatus& aReqStatus, TInt aIndex) const;
       
  7009 	IMPORT_C void DeleteAll(TRequestStatus& aReqStatus) const;
       
  7010 
       
  7011 /** The store events. It is possible for more than one event to occur at the same 
       
  7012 time, therefore the events are a bitmask and should be tested as a bitmask.
       
  7013 
       
  7014 Modes: Common
       
  7015 
       
  7016 @see NotifyStoreEvent() */
       
  7017 	enum TMobileStoreEvent
       
  7018 		{
       
  7019 	/** The store has become full. This event will trigger after the last possible 
       
  7020 	entry in a store has been written. */
       
  7021 		KStoreFull =0x00000001,
       
  7022 	/** The store was full but now has some space. This event will trigger after one 
       
  7023 	or more entries have been deleted from a full store. */
       
  7024 		KStoreHasSpace =0x00000002,
       
  7025 	/** The store is empty. This event will trigger after the last entry in a store 
       
  7026 	has been deleted or if all entries are deleted at once. */
       
  7027 		KStoreEmpty =0x00000004,
       
  7028 	/** The store has a new entry, placed in the slot indicated by the aIndex parameter. */
       
  7029 		KStoreEntryAdded =0x00000008,
       
  7030 	/** The store has deleted the entry that was in the slot indicated by the aIndex 
       
  7031 	parameter. */
       
  7032 		KStoreEntryDeleted =0x00000010,
       
  7033 	/** The store has changed the entry that was in the slot indicated by the aIndex 
       
  7034 	parameter. */
       
  7035 		KStoreEntryChanged =0x00000020,
       
  7036 	/** The store contents have substantially changed and the TSY is recommending that 
       
  7037 	the client performs a refresh by reading all the contents again. */
       
  7038 		KStoreDoRefresh =0x00000040
       
  7039 		};
       
  7040 
       
  7041 	IMPORT_C void NotifyStoreEvent(TRequestStatus& aReqStatus, TUint32& aEvent, TInt& aIndex) const;
       
  7042 
       
  7043 protected:
       
  7044 	CMobilePhoneStorePtrHolder* iStorePtrHolder;
       
  7045 
       
  7046 protected:
       
  7047 	RMobilePhoneStore();
       
  7048 	IMPORT_C void BaseConstruct(CMobilePhoneStorePtrHolder* aPtrHolder);
       
  7049 	IMPORT_C void Destruct();
       
  7050 	};
       
  7051 
       
  7052 
       
  7053 /*********************************************************/
       
  7054 //
       
  7055 // Call based functionality (RMobileCall)
       
  7056 // 
       
  7057 /*********************************************************/
       
  7058 
       
  7059 
       
  7060 
       
  7061 class CMobileCallPtrHolder;
       
  7062 
       
  7063 class RMobileCall : public RCall
       
  7064 /** Provides access to the functionality associated with a specific mobile call.
       
  7065 
       
  7066 RMobileCall encapsulates access to a mobile phone. The functionality of RMobileCall 
       
  7067 is divided into a number of functional units, for the purpose of easier documentation 
       
  7068 and navigation and selectable support by TSY. 
       
  7069 
       
  7070 Note: Some RMobileCall function members must be supported by the TSY while 
       
  7071 others are part of optional "functional unit" and only need to be supported
       
  7072 if the TSY supports that functional unit. When a functional unit is mandatory 
       
  7073 then the TSY should at least support the Get...Caps() member function to indicate 
       
  7074 the member functions that are supported for this unit. 
       
  7075  */
       
  7076 	{
       
  7077 public:
       
  7078 	IMPORT_C RMobileCall();
       
  7079 	/***********************************************************************************/
       
  7080 	//
       
  7081 	//  Mobile call parameters - used within Dial/Answer API
       
  7082 	//
       
  7083 	/***********************************************************************************/
       
  7084 
       
  7085 	// used to set iExtensionId in RCall::TCallParams
       
  7086 /** The mobile call parameter extension IDs.
       
  7087 
       
  7088 Modes: Common */
       
  7089 	enum TMobileCallParamsExtensionId
       
  7090 		{
       
  7091 	/** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV1. */
       
  7092 		KETelMobileCallParamsV1=KETelExtMultimodeV1,
       
  7093 	/** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV1.
       
  7094 	
       
  7095 	Modes: Common */
       
  7096 		KETelMobileDataCallParamsV1,
       
  7097 	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV1.
       
  7098 	
       
  7099 	Modes: GSM/WCDMA */
       
  7100 		KETelMobileHscsdCallParamsV1,
       
  7101 	/** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV2.
       
  7102 	
       
  7103 	Modes: Common */
       
  7104 		KETelMobileCallParamsV2=KETelExtMultimodeV2,
       
  7105 	/** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV2.
       
  7106 	
       
  7107 	Modes: Common */
       
  7108 		KETelMobileDataCallParamsV2,
       
  7109 	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV2.
       
  7110 
       
  7111 	Modes: GSM/WCDMA */
       
  7112 		KETelMobileHscsdCallParamsV2,
       
  7113 	/** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV7.
       
  7114 
       
  7115 	Modes: GSM/WCDMA */ 
       
  7116 		KETelMobileCallParamsV7=KEtelExtMultimodeV7,
       
  7117 	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV7.
       
  7118 
       
  7119 	Modes: GSM/WCDMA */
       
  7120 		KETelMobileHscsdCallParamsV7,
       
  7121 		
       
  7122 	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV8.
       
  7123 
       
  7124 	Modes: GSM/WCDMA */
       
  7125 		KETelMobileHscsdCallParamsV8 = KEtelExtMultimodeV8,
       
  7126 
       
  7127 	/** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV8.
       
  7128 
       
  7129 	Modes: GSM/WCDMA */
       
  7130 		KETelMobileDataCallParamsV8,
       
  7131 		
       
  7132 	/** The iExtensionId contents indicate that the packaged class is a TEtel3rdPartyMobileCallParamsV1. 
       
  7133 			
       
  7134 	Modes: Common */	
       
  7135 	KETel3rdPartyCallParamsV1=KETelExt3rdPartyV1
       
  7136 		
       
  7137 		};
       
  7138 
       
  7139 /** Caller Id restriction settings.
       
  7140 
       
  7141 Modes: Common
       
  7142 
       
  7143 @see TMobileCallParamsV1 */
       
  7144 	enum TMobileCallIdRestriction
       
  7145 		{
       
  7146 	/** The default setting should be used if the user has not explicitly requested 
       
  7147 	their identity to be restricted/allowed. */
       
  7148 		EIdRestrictDefault,
       
  7149 	/** The user has explicitly requested their identity to be sent for this call. */
       
  7150 		ESendMyId,
       
  7151 	/** The user has explicitly requested their identity not to be sent for this call. */
       
  7152 		EDontSendMyId
       
  7153 		};
       
  7154 
       
  7155 	class TMobileCallCugV1 : public RMobilePhone::TMultimodeType
       
  7156 /** This class is used to set up a CUG (Closed User Group) call. 
       
  7157 
       
  7158 TMobileCallCugV1() is valid in GSM/WCDMA mode only. The client application 
       
  7159 should set the CUG settings for the call depending on the user's choice. If
       
  7160 the user has not explicitly requested a CUG call then this parameter should 
       
  7161 indicate that explicit CUG invoke is false. The TSY ignores this parameter 
       
  7162 if in CDMA mode. 
       
  7163 */
       
  7164 		{
       
  7165 	public:
       
  7166 		IMPORT_C TMobileCallCugV1();
       
  7167 	public:
       
  7168 	/** A boolean indicating whether Closed User Group is being explicitly invoked by 
       
  7169 	the client or not. If this parameter is false, the other entries in this structure 
       
  7170 	will be ignored. */
       
  7171 		TBool	iExplicitInvoke;
       
  7172 	/** The Closed User Group index that the user has specified for this call (if no
       
  7173 	index has been specified then this element will equal -1). */
       
  7174 		TInt	iCugIndex;
       
  7175 	/** A boolean indicating whether the user has suppressed their Outgoing Access option 
       
  7176 	or not. */
       
  7177 		TBool	iSuppressOA;
       
  7178 	/** A boolean indicating whether the user has suppressed the use of their preferential 
       
  7179 	Closed User Group or not. */
       
  7180 		TBool	iSuppressPrefCug;
       
  7181 		};
       
  7182 	
       
  7183 /** Multicall Operation set-up.
       
  7184 
       
  7185 Mode: WCDMA */
       
  7186 	enum TMobileCallMulticallBearerMode
       
  7187 		{
       
  7188 	/** Multicall is not supported. */
       
  7189 		EMulticallNotSupported,
       
  7190 	/** MS will accept incoming call and establish a connection using an existing bearer. */
       
  7191 		EMulticallShareBearer,
       
  7192 	/** MS will accept incoming call and establish a connection by creating a new bearer. */
       
  7193 		EMulticallNewBearer
       
  7194 		};
       
  7195 
       
  7196 	/** 
       
  7197 	 The originator of a call.
       
  7198 	 
       
  7199 	 @see RSat::TCallParamOrigin
       
  7200 	 */
       
  7201 	enum TCallParamOrigin
       
  7202 		{
       
  7203 		/** The call originator is unknown. */
       
  7204 		EOriginatorUnknown,
       
  7205 		/** The call originated/originates from the SIM. */
       
  7206 		EOriginatorSIM,
       
  7207 		/** The call originated/originates from an Etel Client. */
       
  7208 		EOriginatorEtelClient,
       
  7209 		/** The call originated/originates from an external device connected to the modem. */
       
  7210 		EOriginatorExternal 
       
  7211 		}; 
       
  7212 
       
  7213 	/** The maximum size of a sub-address.
       
  7214 
       
  7215 	 @see TSubAddress
       
  7216 
       
  7217 	 @see RSat::KSubAddressMaxSize*/
       
  7218 	enum {KSubAddressMaxSize=21};
       
  7219 
       
  7220 	/** A buffer to hold the sub-address of a telephone number. 
       
  7221 	 
       
  7222 	 @see KSubAddressMaxSize
       
  7223 	 
       
  7224 	 @see RSat::TSubAddress
       
  7225 	 */
       
  7226 	typedef TBuf<KSubAddressMaxSize> TSubAddress;	
       
  7227 
       
  7228 	/** The maximum size of the 8-bit capability configuration parameter buffer.
       
  7229 	 @see TCcp
       
  7230 	 
       
  7231 	 @see RSat::KCcpMaxSize
       
  7232 	 */
       
  7233 	enum {KCcpMaxSize=15};
       
  7234 
       
  7235 	/** TCcp ( Capability configuration parameters ) is an 8-bit data buffer that
       
  7236 	contains the bearer capabilities as coded in ETSI 24.008(Ver 04.11 2003-06) and 
       
  7237 	defined in ETSI 31.111. It is 15 bytes long as it does not include the IEI (Information 
       
  7238 	Element Identity).
       
  7239 	
       
  7240 	@see TMobileCallParamsV7
       
  7241 	
       
  7242 	@see RSat::TCcp
       
  7243 	*/
       
  7244 	typedef TBuf8<KCcpMaxSize> TCcp;
       
  7245 
       
  7246 	/** Bearer Capability Repeat Indicator.
       
  7247 	 
       
  7248 	 @see TMobileCallParamsV7
       
  7249 	 
       
  7250 	 @see RSat::TBCRepeatIndicator
       
  7251 	 */
       
  7252 	enum TBCRepeatIndicator
       
  7253 	        {
       
  7254 	        /** The alternate mode of the Bearer Capability Repeat Indicator. */
       
  7255 	        EBCAlternateMode,
       
  7256 	        /** Support of fallback - mode 1 preferred, mode 2 selected if setup of mode 1 fails. */
       
  7257 	        EBCFallbackMode,
       
  7258 	        /** Service change and fallback - mode 1 alternate mode 2, mode 1 preferred. */
       
  7259 	        EBCServiceChangeAndFallbackMode
       
  7260 	        };
       
  7261 
       
  7262 	/** Describes the state of the icon.
       
  7263 	    
       
  7264 	@see TIconId
       
  7265 	
       
  7266 	@see RSat::TIconQualifier
       
  7267 	*/
       
  7268 	enum TIconQualifier
       
  7269 	        {
       
  7270 	        /** Icon qualifier is not set. */
       
  7271 	        EIconQualifierNotSet,
       
  7272 	        /** Icon is not present. */
       
  7273 	        ENoIconId,
       
  7274 	        /** Icon is present; It is self explanatory. 
       
  7275 	         Display instead of the alpha ID or text string. */
       
  7276 	        ESelfExplanatory,
       
  7277 	        /** Icon is present; It is not self explanatory. 
       
  7278 	         Display both the icon and the alpha ID or text string. */
       
  7279 	        ENotSelfExplanatory
       
  7280 	        };
       
  7281 
       
  7282 	/** Holds details about an icon.
       
  7283 	
       
  7284 	@see TMobileCallParamsV7
       
  7285 	@see TMobileCallInfoV7
       
  7286 	
       
  7287 	@see RSat::TIconId
       
  7288 	*/
       
  7289 	struct TIconId
       
  7290 	        {
       
  7291 	        /** Describes the state of the icon. */
       
  7292 	        TIconQualifier iQualifier;
       
  7293 	        /** Icon identifier */
       
  7294 	        TUint8 iIdentifier;
       
  7295 	        };
       
  7296 
       
  7297 	/** The maximum size of the alpha ID buffer.
       
  7298 
       
  7299 	@see TAlphaIdBuf
       
  7300 	
       
  7301 	@see RSat::KAlphaIdMaxSize
       
  7302 	*/
       
  7303 	enum {KAlphaIdMaxSize=254};
       
  7304 
       
  7305 	/**
       
  7306 	A buffer to hold an alpha identifier. 
       
  7307 	
       
  7308 	@see TMobileCallParamsV7
       
  7309 	@see TMobileCallInfoV7
       
  7310 	
       
  7311 	@see RSat::TAlphaIdBuf
       
  7312 	*/
       
  7313 	typedef TBuf<KAlphaIdMaxSize> TAlphaIdBuf;
       
  7314 	
       
  7315 	 
       
  7316 	class TMobileCallParamsV1 : public RCall::TCallParams
       
  7317 /** Defines the parameters used for set-up of a call of any type. 
       
  7318 */
       
  7319 		{
       
  7320 	public:
       
  7321 		IMPORT_C TMobileCallParamsV1();
       
  7322 	public:
       
  7323 	/** Call Id restriction setting to be used for this call.
       
  7324 
       
  7325 	@see TMobileCallIdRestriction */
       
  7326 		TMobileCallIdRestriction iIdRestrict;
       
  7327 	/** Closed User Group setting to be used for this call.
       
  7328 	
       
  7329 	@see TMobileCallCugV1 */
       
  7330 		TMobileCallCugV1 iCug;
       
  7331 	/** Specifies whether this call attempt is user initiated (EFalse) or a client initiated 
       
  7332 	redial (ETrue). */
       
  7333 		TBool iAutoRedial;
       
  7334 		};
       
  7335 
       
  7336 	/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API function 
       
  7337 	member. */
       
  7338 	typedef TPckg<TMobileCallParamsV1> TMobileCallParamsV1Pckg;
       
  7339 
       
  7340 	
       
  7341  
       
  7342  	class TMobileCallParamsV2 : public TMobileCallParamsV1
       
  7343  	/** Defines the parameters used for set-up of a call of any type 
       
  7344 	for version v2.0 of the API.
       
  7345 	A new parameter (iBearerMode) is required to support Multicall.
       
  7346 	
       
  7347 	@publishedPartner
       
  7348 	@released 
       
  7349  	*/
       
  7350  		{
       
  7351  	public:
       
  7352  		IMPORT_C TMobileCallParamsV2();
       
  7353  	public:
       
  7354 	/** The bearer mode. */
       
  7355  		TMobileCallMulticallBearerMode iBearerMode;
       
  7356  		};
       
  7357  
       
  7358  	/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API 
       
  7359 	function member. */
       
  7360  	typedef TPckg<TMobileCallParamsV2> TMobileCallParamsV2Pckg;
       
  7361  
       
  7362 
       
  7363  	class TMobileCallParamsV7 : public TMobileCallParamsV2
       
  7364  	/** Defines the parameters used for set-up of a call of any type 
       
  7365 	for version v7.0 of the API.
       
  7366 
       
  7367 	@publishedPartner
       
  7368 	@released 
       
  7369  	*/
       
  7370  		{        
       
  7371  	public:
       
  7372  		IMPORT_C TMobileCallParamsV7();
       
  7373  	public:
       
  7374  		/**
       
  7375  		 The origin of the call.
       
  7376  		 */
       
  7377  		TCallParamOrigin iCallParamOrigin;        
       
  7378  		/**
       
  7379  		 The sub-address of the remote party. 
       
  7380  		 */
       
  7381  		TSubAddress iSubAddress;
       
  7382  		/**
       
  7383  		 Capability configuration parameters for the first bearer.
       
  7384  		 */
       
  7385  		TCcp iBearerCap1;
       
  7386  		/**
       
  7387  		 Capability configuration parameters for the second bearer. 		  
       
  7388  		 */
       
  7389  		TCcp iBearerCap2;
       
  7390  		/**
       
  7391  		 The bearer capability repeat indicator. 
       
  7392  		 */
       
  7393  		TBCRepeatIndicator iBCRepeatIndicator;
       
  7394  		/**
       
  7395  		 The icon identifier of the icon to display.  
       
  7396  		 This can be used, for example, to provide 
       
  7397  		 graphical notification that the call is taking place.
       
  7398  		 
       
  7399  		 @see TIconQualifier
       
  7400  		 */	 	
       
  7401  		TIconId iIconId;
       
  7402  		/**
       
  7403  		 Buffer to hold the alpha identifier.  This is used to describe
       
  7404  		 the icon stored in iIconId if iIconId.iQualifier is set to
       
  7405  		 RMobileCall::ENotSelfExplanatory, 
       
  7406  		 RMobileCall::EIconQualifierNotSet or 
       
  7407  		 RMobileCall::ENoIconId.
       
  7408  		 */
       
  7409 	 	TAlphaIdBuf iAlphaId;
       
  7410  		};
       
  7411  	
       
  7412  	/** A typedef'd packaged TMobileCallParamsV7 for passing through a generic API 
       
  7413 	function member. */
       
  7414  	typedef TPckg<TMobileCallParamsV7> TMobileCallParamsV7Pckg;
       
  7415  	
       
  7416 	/***********************************************************************************/
       
  7417 	//
       
  7418 	// Mobile Call Data Functional Unit
       
  7419 	//
       
  7420 	/***********************************************************************************/
       
  7421 
       
  7422 /** In GSM mode, maps to list of supported speeds returned in response to AT+CBST=?. 
       
  7423 In CDMA mode, maps to data rates supported by supported service options.
       
  7424 
       
  7425 @see TMobileCallDataCapsV1 */
       
  7426 	enum TMobileCallDataSpeedCaps
       
  7427 		{
       
  7428 	/** Call can support autobauding. */
       
  7429 		KCapsSpeedAutobauding = 0x00000001,
       
  7430 	/** Call can support a speed of 2400bps. */
       
  7431 		KCapsSpeed2400  = 0x00000002,
       
  7432 	/** Call can support a speed of 4800bps. */
       
  7433 		KCapsSpeed4800  = 0x00000004,
       
  7434 	/** Call can support a speed of 9600bps. */
       
  7435 		KCapsSpeed9600  = 0x00000008,
       
  7436 	/** Call can support a speed of 14400bps. */
       
  7437 		KCapsSpeed14400 = 0x00000010,
       
  7438 	/** Call can support a speed of 19200bps. */
       
  7439 		KCapsSpeed19200 = 0x00000020,
       
  7440 	/** Call can support a speed of 28800bps. */
       
  7441 		KCapsSpeed28800 = 0x00000040,
       
  7442 	/** Call can support a speed of 32000bps. */
       
  7443 		KCapsSpeed32000 = 0x00000080,
       
  7444 	/** Call can support a speed of 33600bps. */
       
  7445 		KCapsSpeed33600 = 0x00000100,
       
  7446 	/** Call can support a speed of 38400bps. */
       
  7447 		KCapsSpeed38400 = 0x00000200,
       
  7448 	/** Call can support a speed of 43200bps. */
       
  7449 		KCapsSpeed43200 = 0x00000400,
       
  7450 	/** Call can support a speed of 48000bps. */
       
  7451 		KCapsSpeed48000 = 0x00000800,
       
  7452 	/** Call can support a speed of 56000bps. */
       
  7453 		KCapsSpeed56000 = 0x00001000,
       
  7454 	/** Call can support a speed of 57600bps. */
       
  7455 		KCapsSpeed57600 = 0x00002000,
       
  7456 	/** Call can support a speed of 64000bps. */
       
  7457 		KCapsSpeed64000 = 0x00004000,
       
  7458 	/** Call can support extended data speed capabilities. This flag is reserved for 
       
  7459 	future expansion of API and should always be set to zero. */
       
  7460 		KCapsSpeedExtended = 0x80000000		
       
  7461 		};
       
  7462 
       
  7463 /** List of supported values of the <speed> parameter returned in response to AT+CBST=?
       
  7464 
       
  7465 Not applicable to CDMA mode
       
  7466 
       
  7467 @see TMobileDataCallParamsV1 */
       
  7468 	enum TMobileCallDataProtocolCaps
       
  7469 		{
       
  7470 	/** Call can support V.22bis standard
       
  7471 	
       
  7472 	Modes: COMMON */
       
  7473 		KCapsProtocolV22bis = 0x00000001,
       
  7474 	/** Call can support V.32 standard.
       
  7475 	
       
  7476 	Modes: COMMON */
       
  7477 		KCapsProtocolV32 = 0x00000002,
       
  7478 	/** Call can support V.34 standard.
       
  7479 	
       
  7480 	Modes: COMMON */
       
  7481 		KCapsProtocolV34 = 0x00000004,
       
  7482 	/** Call can support V.110 standard.
       
  7483 	
       
  7484 	Modes: GSM/WCDMA */
       
  7485 		KCapsProtocolV110 = 0x00000008,
       
  7486 	/** Call can support V.120 standard.
       
  7487 	
       
  7488 	Modes: GSM/WCDMA */
       
  7489 		KCapsProtocolV120 = 0x00000010,
       
  7490 	/** Call can support bit transparent service.
       
  7491 	
       
  7492 	Modes: GSM/WCDMA */
       
  7493 		KCapsProtocolBitTransparent = 0x00000020,
       
  7494 	/** Call can support X31 flag stuffing standard.
       
  7495 	
       
  7496 	Modes: GSM/WCDMA */
       
  7497 		KCapsProtocolX31FlagStuffing = 0x00000040,
       
  7498 	/** Call can support both PIAF standards (32000bps and 64000bps).
       
  7499 	
       
  7500 	Modes: GSM/WCDMA */
       
  7501 		KCapsProtocolPIAFS = 0x00000080,
       
  7502 	/** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN
       
  7503 	with voice fallback.
       
  7504 	
       
  7505 	Modes: WCDMA */
       
  7506 		KCapsPstnMultimediaVoiceFallback = 0x00000100,
       
  7507 	/** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN
       
  7508 	without voice fallback
       
  7509 	
       
  7510 	Modes: WCDMA */
       
  7511 		KCapsPstnMultimedia = 0x00000200,
       
  7512 	/** Call can support request for Multimedia protocol (3G-324M) over a call to ISDN 
       
  7513 	(voice fallback not possible).
       
  7514 	
       
  7515 	Modes: WCDMA */
       
  7516 		KCapsIsdnMultimedia = 0x00000400,
       
  7517 	/** Call can support extended data carrier capabilities. This flag is reserved for 
       
  7518 	future expansion and should always be set to zero for v1.0 of this API.
       
  7519 	
       
  7520 	Modes: COMMON */
       
  7521 		KCapsProtocolExtended = 0x80000000
       
  7522 		};
       
  7523 
       
  7524 /** In GSM mode, maps to list of supported <name> returned in response to AT+CBST=? 
       
  7525 In CDMA mode, maps to supported service options.
       
  7526 
       
  7527 Modes: COMMON
       
  7528 
       
  7529 @see TMobileCallDataCapsV1 */
       
  7530 	enum TMobileCallDataServiceCaps
       
  7531 		{
       
  7532 		KCapsDataCircuitAsynchronous = 0x00000001,
       
  7533 		KCapsDataCircuitAsynchronousRDI = 0x00000002,
       
  7534 		KCapsDataCircuitSynchronous = 0x00000004,
       
  7535 		KCapsDataCircuitSynchronousRDI = 0x00000008,
       
  7536 	/** Call can support "PAD Access (asynchronous) (UDI)".
       
  7537 	
       
  7538 	Modes: GSM/WCDMA */
       
  7539 		KCapsPADAsyncUDI = 0x00000010,
       
  7540 	/** Call can support "PAD Access (asynchronous) (RDI)"
       
  7541 
       
  7542 	Modes: GSM/WCDMA */
       
  7543 		KCapsPADAsyncRDI = 0x00000020,
       
  7544 	/** Call can support "Packet Access (synchronous) (UDI)" 
       
  7545 	
       
  7546 	Modes: GSM/WCDMA */
       
  7547 		KCapsPacketAccessSyncUDI = 0x00000040,
       
  7548 	/** Call can support "Packet Access (synchronous) (RDI)".
       
  7549 
       
  7550 	Modes: GSM/WCDMA */
       
  7551 		KCapsPacketAccessSyncRDI = 0x00000080,
       
  7552 	/** Call can support extended data service capabilities. This flag is reserved for 
       
  7553 	future expansion of this API and should always be set to zero for v1.0 of 
       
  7554 	this API.
       
  7555 	
       
  7556 	Modes: COMMON */
       
  7557 		KCapsServiceExtended = 0x80000000
       
  7558 		};
       
  7559 
       
  7560 /** Maps to list of supported <ce> returned in response to AT+CBST=?
       
  7561 
       
  7562 Not applicable to CDMA mode.
       
  7563 
       
  7564 @see TMobileCallDataCapsV1 */
       
  7565 	enum TMobileCallDataQoSCaps
       
  7566 		{
       
  7567 	/** Call can support a request for "transparent only" connection. */
       
  7568 		KCapsTransparent = 0x00000001,
       
  7569 	/** Call can support a request for "non-transparent only" connection. */
       
  7570 		KCapsNonTransparent = 0x00000002,
       
  7571 	/** Call can support a request for "transparent preferred" connection. */
       
  7572 		KCapsTransparentPreferred = 0x00000004,
       
  7573 	/** Call can support a request for "non-transparent preferred" connection. */
       
  7574 		KCapsNonTransparentPreferred = 0x00000008
       
  7575 		};
       
  7576 
       
  7577 /** Supported Air Interface User Rates. */
       
  7578 	enum TMobileCallAiurCodingCaps
       
  7579 		{
       
  7580 	/** Air interface user rate of 4.8k is supported. */
       
  7581 		KCapsAiurCoding48 = 0x01,
       
  7582 	/** Air interface user rate of 9.6k is supported. */
       
  7583 		KCapsAiurCoding96 = 0x04,
       
  7584 	/** Air interface user rate of 14.4k is supported. */
       
  7585 		KCapsAiurCoding144 = 0x08
       
  7586 		};
       
  7587 
       
  7588 /** HSCSD coding capabilities.
       
  7589 
       
  7590 Modes: GSM/WCDMA */
       
  7591 	enum TMobileCallTchCodingsCaps
       
  7592 		{
       
  7593 	/** Call supports HSCSD coding on 4.8K full rate data traffic channel. */
       
  7594 		KCapsTchCoding48  = 0x00000001,
       
  7595 	/** Call supports HSCSD coding on 9.6K full rate data traffic channel. */
       
  7596 		KCapsTchCoding96  = 0x00000004,
       
  7597 	/** Call supports HSCSD coding on 14.4K full rate data traffic channel. */
       
  7598 		KCapsTchCoding144 = 0x00000008,
       
  7599 	/** Call supports HSCSD coding on 28.8K full rate data traffic channel (only possible 
       
  7600 	when 14.4K is supported). */
       
  7601 		KCapsTchCoding288 = 0x00000010,
       
  7602 	/** Call supports HSCSD coding on 32.0K full rate data traffic channel (only possible 
       
  7603 	in a two-timeslot configuration). */
       
  7604 		KCapsTchCoding320 = 0x00000020,
       
  7605 	/** Call supports HSCSD coding on 43.2K full rate data traffic channel (only possible 
       
  7606 	when 14.4K is supported). */
       
  7607 		KCapsTchCoding432 = 0x00000040
       
  7608 		};
       
  7609 
       
  7610 /** The call asymmetry capabilities.
       
  7611 
       
  7612 Modes: GSM/WCDMA
       
  7613 
       
  7614 @see TMobileCallDataCapsV1 */
       
  7615 	enum TMobileCallAsymmetryCaps
       
  7616 		{
       
  7617 	/** Call supports "No Preference" option for asymmetry bias of a Non-Transparent
       
  7618 	ECSD call. */
       
  7619 		KCapsAsymmetryNoPreference= 0x00000001,
       
  7620 	/** Call supports "Downlink bias" option for asymmetry bias of a Non-Transparent 
       
  7621 	ECSD call. 
       
  7622 	
       
  7623 	This means 8-PSK modulation is preferred downlink and GMSK modulation uplink. */
       
  7624 		KCapsAsymmetryDownlink = 0x00000002,
       
  7625 	/** Call supports "Uplink bias" option for asymmetry bias of a Non-Transparent ECSD 
       
  7626 	call. 
       
  7627 	
       
  7628 	This means 8-PSK modulation is preferred uplink and GMSK modulation downlink. */
       
  7629 		KCapsAsymmetryUplink = 0x00000004
       
  7630 		};
       
  7631 
       
  7632 /** The supported Call RLP versions.
       
  7633 
       
  7634 Modes: GSM/WCDMA
       
  7635 
       
  7636 @see TMobileCallDataCapsV1 */
       
  7637 	enum TMobileCallRLPVersionCaps
       
  7638 		{
       
  7639 	/** Call supports the single link, basic RLP version 0. */
       
  7640 		KCapsRLPSingleLinkVersion0 = 0x00000001,
       
  7641 	/** Call supports the single link, extended RLP version 1. */
       
  7642 		KCapsRLPSingleLinkVersion1 = 0x00000002,
       
  7643 	/** Call supports the multi link, RLP version 2. */
       
  7644 		KCapsRLPMultiLinkVersion2  = 0x00000004
       
  7645 		};
       
  7646 
       
  7647 /** The supported V42bis options.
       
  7648 
       
  7649 Modes: GSM/WCDMA
       
  7650 
       
  7651 @see TMobileCallDataCapsV1 */
       
  7652 	enum TMobileCallV42bisCaps
       
  7653 		{
       
  7654 	/** Call supports V42bis compression in initiator-responder direction. */
       
  7655 		KCapsV42bisTxDirection = 0x00000001,
       
  7656 	/** Call supports V42bis compression in responder-initiator direction. */
       
  7657 		KCapsV42bisRxDirection = 0x00000002,
       
  7658 	/** Call supports V42bis compression in both directions. */
       
  7659 		KCapsV42bisBothDirections = 0x00000004
       
  7660 		};
       
  7661 
       
  7662 	
       
  7663 
       
  7664 	class TMobileCallDataCapsV1 : public RMobilePhone::TMultimodeType
       
  7665 	/** Defines the capabilities of a circuit switched data call. 
       
  7666 	@publishedPartner
       
  7667 	@released
       
  7668 	*/
       
  7669 		{
       
  7670 	public:
       
  7671 		IMPORT_C TMobileCallDataCapsV1();
       
  7672 	public:
       
  7673 	/** Data speed capabilities - a bit wise sum of the caps defined in TMobileCallDataSpeedCaps. */
       
  7674 		TUint32	iSpeedCaps;
       
  7675 	/** Data protocol capabilities - a bit wise sum of the caps defined in TMobileCallDataProtocolCaps. */
       
  7676 		TUint32	iProtocolCaps;
       
  7677 	/** Data service capabilities - a bit wise sum of the caps defined in TMobileCallDataServiceCaps. */
       
  7678 		TUint32	iServiceCaps;
       
  7679 	/** Data QoS capabilities - a bit wise sum of the caps defined in TMobileCallDataQoSCaps.
       
  7680 	
       
  7681 	Note: Only available in GSM/WCDMA mode. */
       
  7682 		TUint32	iQoSCaps;
       
  7683 	/** A boolean indicating whether or not the MS supports HSCSD for this call. If 
       
  7684 	this attribute equals EFalse all the following attributes are invalid.
       
  7685 
       
  7686 	Note: Only available in GSM/WCDMA mode. */
       
  7687 		TBool	iHscsdSupport;
       
  7688 	/** For HSCSD: The multi-slot class supported. */
       
  7689 		TInt	iMClass;
       
  7690 	/** For HSCSD: The maximum supported number of time-slots in the receive (down-link) 
       
  7691 	direction. */
       
  7692 		TInt	iMaxRxTimeSlots;
       
  7693 	/** For HSCSD: The maximum supported number of time-slots in the transmit (up-link) 
       
  7694 	direction. */
       
  7695 		TInt	iMaxTxTimeSlots;
       
  7696 	/** For HSCSD: The maximum supported total number of receive and transmit time-slots 
       
  7697 	that can be used at same time. */
       
  7698 		TInt	iTotalRxTxTimeSlots;
       
  7699 	/** For HSCSD: A bit-wise sum of the supported air interface channel codings defined 
       
  7700 	in TMobileCallAiurCodingCaps. */
       
  7701 		TUint32	iCodingCaps;
       
  7702 	/** For HSCSD: A bit-wise sum of the supported asymmetry bias defined in TMobileCallAsymmetryCaps. */
       
  7703 		TUint32 iAsymmetryCaps;
       
  7704 	/** For HSCSD: A boolean indicating whether or not the MS supports automatic user 
       
  7705 	initiated service level upgrading. */
       
  7706 		TBool 	iUserInitUpgrade;
       
  7707 	/** For HSCSD and CSD: A bit-wise sum of the supported Radio Link Protocol versions 
       
  7708 	defined in TMobileCallRLPVersionCaps. */
       
  7709 		TUint32	iRLPVersionCaps;
       
  7710 	/** For HSCSD and CSD: A bit-wise sum of the supported V42bis compression capabilities 
       
  7711 	defined in TMobileCallV42bisCaps . */
       
  7712 		TUint32	iV42bisCaps;
       
  7713 		};
       
  7714 
       
  7715 /** A typedef'd packaged TMobileCallDataCapsV1 for passing through a generic API 
       
  7716 function member. */
       
  7717 	typedef TPckg<TMobileCallDataCapsV1> TMobileCallDataCapsV1Pckg;
       
  7718 
       
  7719 	IMPORT_C TInt GetMobileDataCallCaps(TDes8& aCaps) const;
       
  7720 	IMPORT_C void NotifyMobileDataCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
       
  7721 
       
  7722 /** The call setup requested data speed.
       
  7723 
       
  7724 @see TMobileDataCallParamsV1 */
       
  7725 	enum TMobileCallDataSpeed
       
  7726 		{
       
  7727 	/** Call set-up will request speed depending on data carrier chosen. */
       
  7728 		ESpeedUnspecified,
       
  7729 	/** Call set-up will request autobauding. */
       
  7730 		ESpeedAutobauding,
       
  7731 	/** Call set-up will request 2400bps. */
       
  7732 		ESpeed2400,
       
  7733 	/** Call set-up will request 4800bps. */
       
  7734 		ESpeed4800,
       
  7735 	/** Call set-up will request 9600bps. */
       
  7736 		ESpeed9600,
       
  7737 	/** Call set-up will request 14400bps. */
       
  7738 		ESpeed14400,
       
  7739 	/** Call set-up will request 19200bps. */
       
  7740 		ESpeed19200,
       
  7741 	/** Call set-up will request 28800bps. */
       
  7742 		ESpeed28800,
       
  7743 	/** Call set-up will request 32000bps. */
       
  7744 		ESpeed32000,
       
  7745 	/** Call set-up will request 33600bps. */
       
  7746 		ESpeed33600,
       
  7747 	/** Call set-up will request 38400bps. */
       
  7748 		ESpeed38400,
       
  7749 	/** Call set-up will request 43200bps. */
       
  7750 		ESpeed43200,
       
  7751 	/** Call set-up will request 48000bps. */
       
  7752 		ESpeed48000,
       
  7753 	/** Call set-up will request 56000bps. */
       
  7754 		ESpeed56000,
       
  7755 	/** Call set-up will request 57600bps. */
       
  7756 		ESpeed57600,
       
  7757 	/** Call set-up will request 64000bps. */
       
  7758 		ESpeed64000
       
  7759 		};
       
  7760 
       
  7761 /** The call set-up requested data protocol.
       
  7762 
       
  7763 Modes: GSM/WCDMA */
       
  7764 	enum TMobileCallDataProtocol
       
  7765 		{
       
  7766 	/** Call set-up will request carrier depending on data speed chosen. */
       
  7767 		EProtocolUnspecified,
       
  7768 	/** Call set-up will request the V.22bis standard. */
       
  7769 		EProtocolV22bis,
       
  7770 	/** Call set-up will request the V.32 standard. */
       
  7771 		EProtocolV32,
       
  7772 	/** Call set-up will request the V.34 standard. */
       
  7773 		EProtocolV34,
       
  7774 	/** Call set-up will request the V.110 standard. */
       
  7775 		EProtocolV110,
       
  7776 	/** Call set-up will request the V.120 standard. */
       
  7777 		EProtocolV120,
       
  7778 	/** Call set-up will request the X31FlagStuffing standard. */
       
  7779 		EProtocolX31FlagStuffing,
       
  7780 	/** Call set-up will request the PIAFS standard. */
       
  7781 		EProtocolPIAFS,
       
  7782 	/** Call set-up will request the bit transparent service. */
       
  7783 		EProtocolBitTransparent,
       
  7784 	/** Call set-up will request a PSTN multimedia call with voice fallback if multimedia 
       
  7785 	fails.
       
  7786 	
       
  7787 	WCDMA mode only. */
       
  7788 		EProtocolPstnMultimediaVoiceFallback,
       
  7789 	/** Call set-up will request a PSTN multimedia call.
       
  7790 	
       
  7791 	WCDMA mode only. */
       
  7792 		EProtocolPstnMultimedia,
       
  7793 	/** Call set-up will request a ISDN multimedia call.
       
  7794 	
       
  7795 	WCDMA mode only. */
       
  7796 		EProtocolIsdnMultimedia
       
  7797 		};
       
  7798 
       
  7799 /** The call setup requested data services.
       
  7800 
       
  7801 Modes: Common
       
  7802 
       
  7803 @see TMobileDataCallParamsV1 */
       
  7804 	enum TMobileCallDataService
       
  7805 		{
       
  7806 	/** Call set-up will request its default service type.
       
  7807 	
       
  7808 	Modes: Common */
       
  7809 		EServiceUnspecified,
       
  7810 	/** Call set-up will request:
       
  7811 	
       
  7812 	GSM mode - Data circuit asynchronous (UDI or 3.1 KHz, ex PLMN) service 
       
  7813 
       
  7814 	In CDMA mode - Async Data service 
       
  7815 	
       
  7816 	Modes: Common */
       
  7817 		EServiceDataCircuitAsync,
       
  7818 	/** Call set-up will request Data circuit asynchronous (RDI) service.
       
  7819 	
       
  7820 	Modes: GSM/WCDMA */
       
  7821 		EServiceDataCircuitAsyncRdi,
       
  7822 	/** Call set-up will request Data circuit synchronous (UDI or 3.1 KHz, ex PLMN) 
       
  7823 	service.
       
  7824 	
       
  7825 	Modes: GSM/WCDMA */
       
  7826 		EServiceDataCircuitSync,
       
  7827 	/** Call set-up will request Data circuit synchronous (RDI) service.
       
  7828 	
       
  7829 	Modes: GSM/WCDMA */
       
  7830 		EServiceDataCircuitSyncRdi,
       
  7831 	/** Call set-up will request PAD asynchronous (UDI) service.
       
  7832 	
       
  7833 	Modes: GSM/WCDMA */
       
  7834 		EServicePADAsyncUDI,
       
  7835 	/** Call set-up will request PAD asynchronous (RDI) service.
       
  7836 	
       
  7837 	Modes: GSM/WCDMA */
       
  7838 		EServicePADAsyncRDI,
       
  7839 	/** Call set-up will request Packet Access synchronous (UDI) service.
       
  7840 	
       
  7841 	Modes: GSM/WCDMA */
       
  7842 		EServicePacketAccessSyncUDI,
       
  7843 	/** Call set-up will request Packet Access synchronous (RDI) service.
       
  7844 	
       
  7845 	Modes: GSM/WCDMA */
       
  7846 		EServicePacketAccessSyncRDI
       
  7847 		};
       
  7848 
       
  7849 /** The call set-up requested quality of service (QoS).
       
  7850 
       
  7851 Modes: GSM/WCDMA
       
  7852 
       
  7853 @see TMobileDataCallParamsV1 */
       
  7854 	enum TMobileCallDataQoS
       
  7855 		{
       
  7856 	/** Call set-up will request its default connection. */
       
  7857 		EQoSUnspecified,
       
  7858 	/** Call set-up will request a transparent connection. */
       
  7859 		EQoSTransparent,
       
  7860 	/** Call set-up will request a non-transparent connection. */
       
  7861 		EQoSNonTransparent,
       
  7862 	/** Call set-up will prefer a transparent connection. */
       
  7863 		EQosTransparentPreferred,
       
  7864 	/** Call set-up will prefer a non-transparent connection. */
       
  7865 		EQosNonTransparentPreferred
       
  7866 		};
       
  7867 
       
  7868 /** The call set-up requested RLP version.
       
  7869 
       
  7870 @see TMobileDataCallParamsV1 */
       
  7871 	enum TMobileCallDataRLPVersion
       
  7872 		{
       
  7873 	/** Call set-up will request no RLP version. */
       
  7874 		ERLPNotRequested,
       
  7875 	/** Call set-up will request single link basic RLP (version 0). */
       
  7876 		ERLPSingleLinkVersion0,
       
  7877 	/** Call set-up will request single link extended RLP (version 1). */
       
  7878 		ERLPSingleLinkVersion1,
       
  7879 	/** Call set-up will prefer multi link RLP (version 2). */
       
  7880 		ERLPMultiLinkVersion2
       
  7881 		};
       
  7882 
       
  7883 /** The V.42bis parameters used in the call set-up of a V.42bis data call.
       
  7884 
       
  7885 @see TMobileDataCallParamsV1 */
       
  7886 	enum TMobileCallDataV42bis
       
  7887 		{
       
  7888 	/** Call set-up will not request V.42bis compression. */
       
  7889 		EV42bisNeitherDirection,
       
  7890 	/** Call set-up will request V.42bis compression in initiator-responder direction 
       
  7891 	only. */
       
  7892 		EV42bisTxDirection,
       
  7893 	/** Call set-up will request V.42bis compression in responder-initiator direction 
       
  7894 	only. */
       
  7895 		EV42bisRxDirection,
       
  7896 	/** Call set-up will request V.42bis compression in both directions. */
       
  7897 		EV42bisBothDirections
       
  7898 		};
       
  7899 
       
  7900 	
       
  7901 	
       
  7902 
       
  7903 	class TMobileDataCallParamsV1 : public TMobileCallParamsV1
       
  7904 /** Defines the parameters used for setup of a circuit switched data call. 
       
  7905 */
       
  7906 		{
       
  7907 	public:
       
  7908 		IMPORT_C TMobileDataCallParamsV1();
       
  7909 	public:
       
  7910 	/** The type of data service.
       
  7911 	
       
  7912 	@see TMobileCallDataService */
       
  7913 		TMobileCallDataService iService;
       
  7914 	/** The data transfer rate.
       
  7915 
       
  7916 	@see TMobileCallDataSpeed */
       
  7917 		TMobileCallDataSpeed iSpeed;
       
  7918 	/** The ITU-T standard modulation protocol or higher application protocol. */
       
  7919 		TMobileCallDataProtocol iProtocol;
       
  7920 	/** The quality of data service.
       
  7921 	
       
  7922 	@see TMobileCallDataQoS */
       
  7923 		TMobileCallDataQoS iQoS;
       
  7924 	/** The version of Radio Link Protocol.
       
  7925 	
       
  7926 	Modes: GSM/WCDMA
       
  7927 	
       
  7928 	@see TMobileCallDataRLPVersion */
       
  7929 		TMobileCallDataRLPVersion iRLPVersion;
       
  7930 	/** The IWF to MS windows size.
       
  7931 	
       
  7932 	Modes: GSM/WCDMA */
       
  7933 		TInt iModemToMSWindowSize;
       
  7934 	/** The MS window to IWF size.
       
  7935 	
       
  7936 	Modes: GSM/WCDMA */
       
  7937 		TInt iMSToModemWindowSize;
       
  7938 	/** The acknowledgement timer.
       
  7939 	
       
  7940 	Modes: GSM/WCDMA */
       
  7941 		TInt iAckTimer;
       
  7942 	/** The number of retransmission attempts.
       
  7943 	
       
  7944 	Modes: GSM/WCDMA */
       
  7945 		TInt iRetransmissionAttempts;
       
  7946 	/** The resequencing period in integer format.
       
  7947 	
       
  7948 	Modes: GSM/WCDMA */
       
  7949 		TInt iResequencingPeriod;
       
  7950 	/** The V42bis compression request parameter.
       
  7951 	
       
  7952 	@see TMobileCallDataV42bis */
       
  7953 		TMobileCallDataV42bis iV42bisReq;
       
  7954 	/** The number of codewords in the algorithm. */
       
  7955 		TInt iV42bisCodewordsNum;
       
  7956 	/** The maximum encodable data string length. */
       
  7957 		TInt iV42bisMaxStringLength;
       
  7958 		TBool iUseEdge; // True for ECSD
       
  7959 		};
       
  7960 
       
  7961 /** A typedef'd packaged TMobileDataCallParamsV1 for passing through a generic API 
       
  7962 function member. */
       
  7963 	typedef TPckg<TMobileDataCallParamsV1> TMobileDataCallParamsV1Pckg;
       
  7964 
       
  7965 	class TMobileDataCallParamsV2 : public TMobileDataCallParamsV1
       
  7966 /** Defines the parameters used for setup of a circuit switched data call for version 
       
  7967 v2.0 of the API. 
       
  7968 */
       
  7969 		{
       
  7970 	public:
       
  7971 		IMPORT_C TMobileDataCallParamsV2();
       
  7972 	public:
       
  7973 	/** The bearer mode. */
       
  7974 		TMobileCallMulticallBearerMode iBearerMode;
       
  7975 		};
       
  7976 
       
  7977 /** A typedef'd packaged TMobileDataCallParamsV2 for passing through a generic 
       
  7978 API function member. */
       
  7979 	typedef TPckg<TMobileDataCallParamsV2> TMobileDataCallParamsV2Pckg;
       
  7980 
       
  7981 	class TMobileDataCallParamsV8 : public TMobileDataCallParamsV2
       
  7982 	/** Defines the parameters used for setup of a circuit switched data call for version 
       
  7983 	v8.0 of the API. 
       
  7984 	*/
       
  7985 		{
       
  7986 	public:
       
  7987 		IMPORT_C TMobileDataCallParamsV8();
       
  7988 	public:
       
  7989 	/** The origin of the call.
       
  7990 		
       
  7991 		@see TCallParamOrigin */
       
  7992 		TCallParamOrigin iCallParamOrigin;
       
  7993 	
       
  7994 	/** The sub-address of the remote party.
       
  7995 	 	
       
  7996 	 	@see TSubAddress */
       
  7997 		TSubAddress iSubAddress;
       
  7998 	
       
  7999 	/** Capability configuration parameters for the first bearer. 	 	
       
  8000 		
       
  8001 		@see TCcp */
       
  8002 		TCcp iBearerCap1;
       
  8003 	
       
  8004 	/** Capability configuration parameters for the second bearer.
       
  8005 		
       
  8006 		@see TCcp */
       
  8007 		TCcp iBearerCap2;
       
  8008 	
       
  8009 	/** The bearer capability repeat indicator. 
       
  8010 		
       
  8011 		@see TBCRepeatIndicator */
       
  8012 		TBCRepeatIndicator iBCRepeatIndicator;
       
  8013 	
       
  8014 	/**	The icon identifier of the icon to display.  
       
  8015 		This can be used, for example, to provide 
       
  8016 		graphical notification that the call is taking place.
       
  8017 		 
       
  8018 		@see TIconQualifier
       
  8019 		*/	 	
       
  8020 		TIconId iIconId;
       
  8021 		
       
  8022 	/** Buffer to hold the alpha identifier.  This is used to describe
       
  8023 		the icon stored in iIconId if iIconId.iQualifier is set to
       
  8024 		RMobileCall::ENotSelfExplanatory, 
       
  8025 		RMobileCall::EIconQualifierNotSet or 
       
  8026 		*/
       
  8027 	 	TAlphaIdBuf iAlphaId;
       
  8028 		};
       
  8029 
       
  8030 /** A typedef'd packaged TMobileDataCallParamsV8 for passing through a generic 
       
  8031 API function member. */
       
  8032 	typedef TPckg<TMobileDataCallParamsV8> TMobileDataCallParamsV8Pckg;
       
  8033 	
       
  8034 /** The Air interface user rate.
       
  8035 
       
  8036 Modes: GSM/WCDMA. */
       
  8037 	enum TMobileCallAiur
       
  8038 		{
       
  8039 	/** Air interface user rate is not set. */
       
  8040 		EAiurBpsUnspecified,
       
  8041 	/** Air interface user rate of 9.6Kbps. */
       
  8042 		EAiurBps9600,
       
  8043 	/** Air interface user rate of 14.4Kbps. */
       
  8044 		EAiurBps14400,
       
  8045 	/** Air interface user rate of 19.2Kbps. */
       
  8046 		EAiurBps19200,
       
  8047 	/** Air interface user rate of 28.8Kbps. */
       
  8048 		EAiurBps28800,
       
  8049 	/** Air interface user rate of 38.4Kbps. */
       
  8050 		EAiurBps38400,
       
  8051 	/** Air interface user rate of 43.2Kbps. */
       
  8052 		EAiurBps43200,
       
  8053 	/** Air interface user rate of 57.6Kbps. */
       
  8054 		EAiurBps57600
       
  8055 		};
       
  8056 
       
  8057 /** Call Asymmetry preferences.
       
  8058 
       
  8059 Modes: GSM/WCDMA
       
  8060 
       
  8061 @see TMobileHscsdCallParamsV1 */
       
  8062 	enum TMobileCallAsymmetry
       
  8063 		{
       
  8064 	/** There is no preference for Asymmetry Bias. */
       
  8065 		EAsymmetryNoPreference,
       
  8066 	/** Downlink Bias is preferred. */
       
  8067 		EAsymmetryDownlink,
       
  8068 	/** Uplink Bias is preferred. */
       
  8069 		EAsymmetryUplink
       
  8070 		};
       
  8071 
       
  8072 /** The call channel coding used.
       
  8073 
       
  8074 Modes: GSM/WCDMA */
       
  8075 	enum TMobileCallTchCoding
       
  8076 		{
       
  8077 	/** Channel coding is unspecified. */
       
  8078 		ETchCodingUnspecified,
       
  8079 	/** 4.8K full rate data traffic channel is used. */
       
  8080 		ETchCoding48,
       
  8081 	/** 9.6K full rate data traffic channel is used. */
       
  8082 		ETchCoding96,
       
  8083 	/** 14.4K full rate data traffic channel is used. */
       
  8084 		ETchCoding144,
       
  8085 	/** 28.8K full rate data traffic channel is used. */
       
  8086 		ETchCoding288,
       
  8087 	/** 32.0K full rate data traffic channel is used. */
       
  8088 		ETchCoding320,
       
  8089 	/** 43.2K full rate data traffic channel is used. */
       
  8090 		ETchCoding432
       
  8091 		};
       
  8092 
       
  8093 	
       
  8094 
       
  8095 	class TMobileDataRLPRangesV1 : public RMobilePhone::TMultimodeType
       
  8096 /** Defines the parameters for minimum and maximum RLP parameter ranges.
       
  8097 
       
  8098 Modes: GSM/WCDMA 
       
  8099 
       
  8100 */
       
  8101 		{
       
  8102 	public:
       
  8103 		IMPORT_C TMobileDataRLPRangesV1();
       
  8104 	public:
       
  8105 	/** Maximum modem to MS window size value. */
       
  8106 		TInt  iIWSMax;
       
  8107 	/** Minimum modem to MS window size value. */
       
  8108 		TInt  iIWSMin;
       
  8109 	/** Maximum MS to modem window size value. */
       
  8110 		TInt  iMWSMax;
       
  8111 	/** Minimum MS to modem window size value. */
       
  8112 		TInt  iMWSMin;
       
  8113 	/** Maximum acknowledgement timer value. */
       
  8114 		TInt  iT1Max;
       
  8115 	/** Minimum acknowledgement timer value. */
       
  8116 		TInt  iT1Min;
       
  8117 	/** Maximum retransmission attempts value. */
       
  8118 		TInt  iN2Max;
       
  8119 	/** Minimum retransmission attempts value. */
       
  8120 		TInt  iN2Min;
       
  8121 	/** Maximum resequencing period value. */
       
  8122 		TInt  iT4Max;
       
  8123 	/** Minimum resequencing period value. */
       
  8124 		TInt  iT4Min;
       
  8125 		};
       
  8126 
       
  8127 /** A typedef'd packaged TMobileDataRLPRangesV1 for passing through a generic API 
       
  8128 function member. */
       
  8129 	typedef TPckg<TMobileDataRLPRangesV1> TMobileDataRLPRangesV1Pckg;
       
  8130 
       
  8131 	IMPORT_C void GetMobileDataCallRLPRange(TRequestStatus& aReqStatus, TInt aRLPVersion, TDes8& aRLPRange) const;
       
  8132 	
       
  8133 	class TMobileHscsdCallParamsV1 : public TMobileDataCallParamsV1
       
  8134 /** The High Speed Circuit Switched Data parameters. 
       
  8135 */
       
  8136 		{
       
  8137 	public:
       
  8138 		IMPORT_C TMobileHscsdCallParamsV1();
       
  8139 	public:
       
  8140 	/** The wanted Air Interface Rate for the HSCSD call being set-up.
       
  8141 	
       
  8142 	Modes: GSM/WCDMA
       
  8143 
       
  8144 	@see TMobileCallAiur */
       
  8145 		TMobileCallAiur	iWantedAiur;
       
  8146 	/** The wanted number of receive timeslots for the HSCSD call being set-up.
       
  8147 	
       
  8148 	Modes: GSM/WCDMA */
       
  8149 		TInt iWantedRxTimeSlots;
       
  8150 		TInt iMaxTimeSlots;
       
  8151 	/** Bit-wise sum of acceptable air interface channel codings TMobileCallAiurCodingCaps 
       
  8152 	for the HSCSD call being set-up.
       
  8153 	
       
  8154 	Modes: GSM/WCDMA */
       
  8155 		TUint iCodings;
       
  8156 	/** The wanted asymmetry bias for the HSCSD call being set-up.
       
  8157 	
       
  8158 	Modes: GSM/WCDMA
       
  8159 	
       
  8160 	@see TMobileCallAsymmetry */
       
  8161 		TMobileCallAsymmetry  iAsymmetry;
       
  8162 	/** A boolean indicating whether or not automatic user initiated service level upgrading 
       
  8163 	is active for the HSCSD call being set-up. ETrue means enabled, EFalse means 
       
  8164 	disabled.
       
  8165 	
       
  8166 	Modes: GSM/WCDMA */
       
  8167 		TBool iUserInitUpgrade;
       
  8168 		};
       
  8169 
       
  8170 /** A typedef'd packaged TMobileHscsdCallParamsV1 for passing through a generic 
       
  8171 API function member. */
       
  8172 	typedef TPckg<TMobileHscsdCallParamsV1> TMobileHscsdCallParamsV1Pckg;
       
  8173 
       
  8174 	class TMobileHscsdCallParamsV2 : public TMobileHscsdCallParamsV1
       
  8175 /** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v2.0 
       
  8176 of the API. 
       
  8177 
       
  8178 */
       
  8179 		{
       
  8180 	public:
       
  8181 		IMPORT_C TMobileHscsdCallParamsV2();
       
  8182 	public:
       
  8183 	/** The bearer mode. */
       
  8184 		TMobileCallMulticallBearerMode iBearerMode;
       
  8185 		};
       
  8186 
       
  8187 /** A typedef'd packaged TMobileHscsdCallParamsV2 for passing through a generic 
       
  8188 API function member. */
       
  8189 	typedef TPckg<TMobileHscsdCallParamsV2> TMobileHscsdCallParamsV2Pckg;
       
  8190 
       
  8191 	
       
  8192 	class TMobileHscsdCallParamsV7 : public TMobileHscsdCallParamsV2
       
  8193 	/** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v7.0
       
  8194 	of the API. 
       
  8195 	*/
       
  8196 			{
       
  8197 		public:
       
  8198 			IMPORT_C TMobileHscsdCallParamsV7();
       
  8199 		public:
       
  8200 			/** The originator of the call. */
       
  8201 			TCallParamOrigin iCallParamOrigin;
       
  8202 	 		/**
       
  8203 	 		 The icon identifier of the icon to display.  
       
  8204 	 		 This can be used, for example, to provide 
       
  8205 	 		 graphical notification that the call is taking place.
       
  8206 	 		 
       
  8207 	 		 @see TIconQualifier
       
  8208 	 		 */	 	
       
  8209 	 		TIconId iIconId;
       
  8210 	 		/**
       
  8211 	 		 Buffer to hold the alpha identifier.  This is used to describe
       
  8212 	 		 the icon stored in iIconId if iIconId.iQualifier is set to
       
  8213 	 		 RMobileCall::ENotSelfExplanatory, 
       
  8214 	 		 RMobileCall::EIconQualifierNotSet or 
       
  8215 	 		 RMobileCall::ENoIconId.
       
  8216 	 		 */
       
  8217 		 	TAlphaIdBuf iAlphaId;
       
  8218 			};
       
  8219 
       
  8220 	/** A typedef'd packaged TMobileHscsdCallParamsV7 for passing through a generic 
       
  8221 	API function member. */
       
  8222 	typedef TPckg<TMobileHscsdCallParamsV7> TMobileHscsdCallParamsV7Pckg;
       
  8223 	
       
  8224 	class TMobileHscsdCallParamsV8 : public TMobileHscsdCallParamsV7
       
  8225 		/** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v8.0
       
  8226 		of the API. 
       
  8227 		*/
       
  8228 			{
       
  8229 		public:
       
  8230 			IMPORT_C TMobileHscsdCallParamsV8();
       
  8231 		public:
       
  8232 		
       
  8233 			/** The sub-address of the remote party.
       
  8234 				
       
  8235 			@see TSubAddress */
       
  8236 			TSubAddress iSubAddress;
       
  8237 			
       
  8238 	 		/** Capability configuration parameters for the first bearer. 
       
  8239 			
       
  8240 			@see TCcp */
       
  8241 	 		TCcp iBearerCap1;
       
  8242 	 		
       
  8243 	 		/** Capability configuration parameters for the second bearer. 	
       
  8244 	 		
       
  8245 	 		@see TCcp */
       
  8246 	 		TCcp iBearerCap2;
       
  8247 	 		
       
  8248 	 		/** The bearer capability repeat indicator. 
       
  8249 	 		
       
  8250 	 		@see TBCRepeatIndicator */
       
  8251 		 	TBCRepeatIndicator iBCRepeatIndicator;
       
  8252 			};
       
  8253 
       
  8254 	/** A typedef'd packaged TMobileHscsdCallParamsV8 for passing through a generic 
       
  8255 	API function member. */
       
  8256 	typedef TPckg<TMobileHscsdCallParamsV8> TMobileHscsdCallParamsV8Pckg;
       
  8257 	
       
  8258 	IMPORT_C void SetDynamicHscsdParams(TRequestStatus& aReqStatus, TMobileCallAiur aAiur, TInt aRxTimeslots) const;
       
  8259 
       
  8260 	class TMobileCallHscsdInfoV1 : public RMobilePhone::TMultimodeType
       
  8261 /** The HSCSD settings.
       
  8262 
       
  8263 Modes: GSM/WCDMA 
       
  8264 
       
  8265 */
       
  8266 		{
       
  8267 	public:
       
  8268 		IMPORT_C TMobileCallHscsdInfoV1();
       
  8269 	public:
       
  8270 	/** Current AIUR for the HSCSD call.
       
  8271 	
       
  8272 	@see TMobileCallAiur */
       
  8273 		TMobileCallAiur	iAiur;
       
  8274 	/** Current number of receive timeslots for the HSCSD call. */
       
  8275 		TInt iRxTimeSlots;
       
  8276 	/** Current number of transmit time slots for the HSCSD call. */
       
  8277 		TInt iTxTimeSlots;
       
  8278 	/** Current channel coding for the HSCSD call. */
       
  8279 		TMobileCallTchCoding iCodings;
       
  8280 		};
       
  8281 
       
  8282 /** A typedef'd packaged TMobileCallHscsdInfoV1 for passing through a generic API 
       
  8283 function member. */
       
  8284 	typedef TPckg<TMobileCallHscsdInfoV1> TMobileCallHscsdInfoV1Pckg;
       
  8285 
       
  8286 	class TMobileCallHscsdInfoV7 : public TMobileCallHscsdInfoV1
       
  8287 	/** Version 7 of the HSCSD settings.
       
  8288 
       
  8289 	Modes: GSM/WCDMA 
       
  8290 	*/
       
  8291 			{
       
  8292 		public:
       
  8293 			IMPORT_C TMobileCallHscsdInfoV7();
       
  8294 		public:
       
  8295 			/** The originator of the call. */
       
  8296 			TCallParamOrigin iCallParamOrigin;
       
  8297 	    	/**
       
  8298 	    	The icon identifier which can be used for indication that the 
       
  8299 	    	call is being made.
       
  8300 	     	*/
       
  8301 	    	TIconId iIconId;
       
  8302 	    	/**
       
  8303 	    	The alpha identifier to describe the icon.
       
  8304 	     	*/
       
  8305 	    	TAlphaIdBuf iAlphaId;
       
  8306 	    	/**
       
  8307 	    	An indication of whether the call parameters have been modified.  
       
  8308 	    	Set to ETrue if they have been modified, EFalse otherwise.
       
  8309 	     	*/
       
  8310 	    	TBool iParamsCallControlModified;
       
  8311 			};
       
  8312 
       
  8313 	/** A typedef'd packaged TMobileCallHscsdInfoV7 for passing through a generic API 
       
  8314 function member. */
       
  8315 	typedef TPckg<TMobileCallHscsdInfoV7> TMobileCallHscsdInfoV7Pckg;		
       
  8316 	
       
  8317 	class TMobileCallHscsdInfoV8 : public TMobileCallHscsdInfoV7
       
  8318 	/** Version 8 of the HSCSD settings.
       
  8319 
       
  8320 	Modes: GSM/WCDMA 
       
  8321 	*/
       
  8322 			{
       
  8323 		public:
       
  8324 			IMPORT_C TMobileCallHscsdInfoV8();
       
  8325 		public:
       
  8326 		
       
  8327 			/** The sub-address of the remote party.
       
  8328 				
       
  8329 			@see TSubAddress */
       
  8330 			TSubAddress iSubAddress;
       
  8331 			
       
  8332 	 		/** Capability configuration parameters for the first bearer. 
       
  8333 			
       
  8334 			@see TCcp */
       
  8335 	 		TCcp iBearerCap1;
       
  8336 	 		
       
  8337 	 		/** Capability configuration parameters for the second bearer. 	
       
  8338 	 		
       
  8339 	 		@see TCcp */
       
  8340 	 		TCcp iBearerCap2;
       
  8341 	 		
       
  8342 	 		/** The bearer capability repeat indicator. 
       
  8343 	 		
       
  8344 	 		@see TBCRepeatIndicator */
       
  8345 		 	TBCRepeatIndicator iBCRepeatIndicator;
       
  8346 			};
       
  8347 
       
  8348 	/** A typedef'd packaged TMobileCallHscsdInfoV8 for passing through a generic 
       
  8349 	API function member. */
       
  8350 	typedef TPckg<TMobileCallHscsdInfoV8> TMobileCallHscsdInfoV8Pckg;	
       
  8351 	
       
  8352 	
       
  8353 	IMPORT_C TInt GetCurrentHscsdInfo(TDes8& aHSCSDInfo) const;
       
  8354 	IMPORT_C void NotifyHscsdInfoChange(TRequestStatus& aReqStatus, TDes8& aHSCSDInfo) const;
       
  8355 
       
  8356 	/***********************************************************************************/
       
  8357 	//
       
  8358 	// Multimedia Calls
       
  8359 	//
       
  8360 	/***********************************************************************************/
       
  8361 
       
  8362 	IMPORT_C void AnswerMultimediaCallAsVoice(TRequestStatus& aReqStatus, const TDesC8& aCallParams, TName& aCallName) const;
       
  8363 	IMPORT_C void NotifyVoiceFallback(TRequestStatus& aReqStatus, TName& aCallName) const;
       
  8364 
       
  8365 	//
       
  8366 	// Mobile Alternating Call Functional Unit
       
  8367 	//
       
  8368 
       
  8369 	IMPORT_C void SwitchAlternatingCall(TRequestStatus& aReqStatus) const;
       
  8370 	IMPORT_C void NotifyAlternatingCallSwitch(TRequestStatus& aReqStatus) const;
       
  8371 
       
  8372 	/***********************************************************************************/
       
  8373 	//
       
  8374 	// MobileCallControl functional unit
       
  8375 	//
       
  8376 	/***********************************************************************************/
       
  8377 
       
  8378 /** Mobile call control capabilites.
       
  8379 
       
  8380 Modes: Common */
       
  8381 	enum TMobileCallControlCaps 
       
  8382 		{
       
  8383 		//KCapsData=0x00000001, // taken from etel.h
       
  8384 		//KCapsFax=0x00000002,
       
  8385 		//KCapsVoice=0x00000004,
       
  8386 		//KCapsDial=0x00000008,
       
  8387 		//KCapsConnect=0x00000010,
       
  8388 		//KCapsHangUp=0x00000020,
       
  8389 		//KCapsAnswer=0x00000040,
       
  8390 		//KCapsLoanDataPort=0x00000080, 
       
  8391 		//KCapsRecoverDataPort=0x00000100
       
  8392 	/** Indicates that this call can be put on hold. This implies that the call is currently 
       
  8393 	active and that there is no other held call. */
       
  8394 		KCapsHold = 0x00000200,
       
  8395 	/** Indicates that this call can be resumed. This implies that the call is currently 
       
  8396 	on hold and that there is no other active call. 
       
  8397 	
       
  8398 	Modes: Common */
       
  8399 		KCapsResume = 0x00000400,
       
  8400 	/** Indicates that this call's state can be swapped to the opposite state. This
       
  8401 	implies that this call is either active or held. There may be another call 
       
  8402 	in the opposite state and if this is the case then both calls will be simultaneously 
       
  8403 	swapped to their opposite state. 
       
  8404 	
       
  8405 	Modes: Common */
       
  8406 		KCapsSwap = 0x00000800,
       
  8407 	/** Indicates that this incoming call can be deflected to another destination. 
       
  8408 	
       
  8409 	Modes: GSM/WCDMA */
       
  8410 		KCapsDeflect = 0x00001000,
       
  8411 	/** Indicates that this call can be transferred to the remote party of another call. 
       
  8412 	For this capability to be set there must be one active call and one held or 
       
  8413 	dialing call.
       
  8414 	
       
  8415 	Modes: GSM/WCDMA */
       
  8416 		KCapsTransfer = 0x00002000,
       
  8417 	/** Indicates that this call can be joined either to another single call to form 
       
  8418 	a conference call or to an existing conference call.
       
  8419 	
       
  8420 	Modes: Common */
       
  8421 		KCapsJoin = 0x00004000,
       
  8422 	/** Indicates that this call (within a conference call) can go into One to One mode. 
       
  8423 	This action would put the rest of the conference call on hold. 
       
  8424 	
       
  8425 	Modes: GSM/WCDMA */
       
  8426 		KCapsOneToOne = 0x00008000,
       
  8427 	/** Indicates that the user can activate a CCBS request on this failed call set-up. 
       
  8428 	
       
  8429 	Modes: GSM/WCDMA */
       
  8430 		KCapsActivateCCBS = 0x00010000,
       
  8431 	/** Indicates that this call is part of an alternating call and the client can call 
       
  8432 	SwitchAlternatingCall() on this call in order to switch it to its other mode.
       
  8433 	
       
  8434 	Modes: GSM/WCDMA */
       
  8435 		KCapsSwitchAlternatingCall = 0x00020000,
       
  8436 	/** Indicates that this call can use/create a new bearer. This means that multiple 
       
  8437 	calls (multicall) can be active at the same time using no more that 7 bearers 
       
  8438 	simultaneously. The other option is to swap with an active call, therefore 
       
  8439 	it becomes held and shares the same bearer.
       
  8440 	
       
  8441 	Modes: WCDMA */
       
  8442 		KCapsMulticall = 0x00040000
       
  8443 		};
       
  8444 
       
  8445 
       
  8446 /** Mobile call events capabilities.
       
  8447 
       
  8448 Modes: Common */
       
  8449 	enum TMobileCallEventCaps
       
  8450 		{
       
  8451 	/** Indicates that local hold notifications are supported.
       
  8452 	
       
  8453 	Modes: Common */
       
  8454 		KCapsLocalHold = 0x00000001,
       
  8455 	/** Indicates that local resume notifications are supported. 
       
  8456 	
       
  8457 	Modes: Common */
       
  8458 		KCapsLocalResume = 0x00000002,
       
  8459 	/** Indicates that local deflect transfer notifications are supported. 
       
  8460 	
       
  8461 	Modes: GSM/WCDMA */
       
  8462 		KCapsLocalDeflectCall = 0x00000004,
       
  8463 	/** Indicates that local explicit transfer notifications are supported. 
       
  8464 	
       
  8465 	Modes: GSM/WCDMA */
       
  8466 		KCapsLocalTransfer = 0x00000008,
       
  8467 	/** Indicates that remote hold notifications are supported. 
       
  8468 
       
  8469 	Modes: GSM/WCDMA */
       
  8470 		KCapsRemoteHold = 0x00000010,
       
  8471 	/** Indicates that remote resume notifications are supported. 
       
  8472 	
       
  8473 	Modes: GSM/WCDMA */
       
  8474 		KCapsRemoteResume = 0x00000020,
       
  8475 	/** Indicates that remote termination notifications are supported. 
       
  8476 	
       
  8477 	Modes: Common */
       
  8478 		KCapsRemoteTerminate = 0x00000040,
       
  8479 	/** Indicates that remote conference invocation notifications are supported.
       
  8480 	
       
  8481 	Modes: GSM/WCDMA */
       
  8482 		KCapsRemoteConferenceCreate = 0x00000080
       
  8483 		};
       
  8484 
       
  8485 	
       
  8486 
       
  8487 	class TMobileCallCapsV1 : public RMobilePhone::TMultimodeType
       
  8488 /** Defines the dynamic capabilities of a mobile call. 
       
  8489 */
       
  8490 		{
       
  8491 	public:
       
  8492 		IMPORT_C TMobileCallCapsV1();
       
  8493 	public:
       
  8494 	/** Call control capability information - a bit wise sum of TMobileCallControlCaps 
       
  8495 	constants */
       
  8496 		TUint32 iCallControlCaps;
       
  8497 	/** Call event capability information - a bit wise sum of TMobileCallEventCaps constants. */
       
  8498 		TUint32 iCallEventCaps;
       
  8499 		};
       
  8500 
       
  8501 /** A typedef'd packaged TMobileCallCapsV1 for passing through a generic API function 
       
  8502 member. */
       
  8503 	typedef TPckg<TMobileCallCapsV1> TMobileCallCapsV1Pckg;
       
  8504 
       
  8505 	IMPORT_C TInt GetMobileCallCaps(TDes8& aCaps) const;
       
  8506 	IMPORT_C void NotifyMobileCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
       
  8507 
       
  8508 	IMPORT_C void Hold(TRequestStatus& aReqStatus) const;
       
  8509 	IMPORT_C void Resume(TRequestStatus& aReqStatus) const;
       
  8510 	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
       
  8511 	IMPORT_C void DialISV(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber);
       
  8512 	IMPORT_C void AnswerIncomingCallISV(TRequestStatus& aStatus,const TDesC8& aCallParams);
       
  8513 
       
  8514 /** The type of call deflection requested.
       
  8515 
       
  8516 @see Deflect() */
       
  8517 	enum TMobileCallDeflect
       
  8518 		{
       
  8519 	/** Destination is not specified. */
       
  8520 		EDeflectUnspecified,
       
  8521 	/** Call will be deflected to voicemail. */
       
  8522 		EDeflectVoicemail,
       
  8523 	/** Call will be deflected to the pre-registered number for the call forwarding 
       
  8524 	service. */
       
  8525 		EDeflectRegisteredNumber,
       
  8526 	/** Call will be deflected to the number supplied in the aDestination parameter. */
       
  8527 		EDeflectSuppliedNumber
       
  8528 		};
       
  8529 
       
  8530 	IMPORT_C void Deflect(TRequestStatus& aReqStatus, TMobileCallDeflect aDeflectType, const RMobilePhone::TMobileAddress& aDestination) const;
       
  8531 	IMPORT_C void Transfer(TRequestStatus& aReqStatus) const;
       
  8532 	IMPORT_C void GoOneToOne(TRequestStatus& aReqStatus) const;
       
  8533 
       
  8534 /** The mobile call events.
       
  8535 
       
  8536 Modes: Common */
       
  8537 	enum TMobileCallEvent
       
  8538 		{
       
  8539 	/** The call has been placed on hold as a result of a local action. 
       
  8540 	
       
  8541 	Modes: Common */
       
  8542 		ELocalHold,
       
  8543 	/** The call has been resumed as a result of a local action. 
       
  8544 	
       
  8545 	Modes: Common */
       
  8546 		ELocalResume,
       
  8547 	/** The call has been deflected to another remote party as a result of a local action. 
       
  8548 	
       
  8549 	
       
  8550 	Modes: GSM/WCDMA */
       
  8551 		ELocalDeflectCall,
       
  8552 	/** The call has been transferred to another remote party as a result of a local 
       
  8553 	action. 
       
  8554 	
       
  8555 	Modes: Common */
       
  8556 		ELocalTransfer,
       
  8557 	/** The call has been placed on hold by the remote connected party. 
       
  8558 	
       
  8559 	Modes: GSM/WCDMA */
       
  8560 		ERemoteHold,
       
  8561 	/** The call has been resumed by the remote connected party. 
       
  8562 	
       
  8563 	Modes: GSM/WCDMA */
       
  8564 		ERemoteResume,
       
  8565 	/** The call has been terminated by the remote party. 
       
  8566 	
       
  8567 	Modes: Common */
       
  8568 		ERemoteTerminated,
       
  8569 	/** The call has been joined by the remote connected party to other call(s) to create/add 
       
  8570 	to a conference call. 
       
  8571 	
       
  8572 	Modes: GSM/WCDMA */
       
  8573 		ERemoteConferenceCreate,
       
  8574 		ERemoteTransferring,
       
  8575 		ERemoteTransferAlerting,
       
  8576 	/** The outgoing call has been barred by the remote party. 
       
  8577 	
       
  8578 	Modes: GSM/WCDMA */
       
  8579 		ERemoteBarred,
       
  8580 	/** The call is being forwarded by the remote party. 
       
  8581 	
       
  8582 	Modes: GSM/WCDMA */
       
  8583 		ERemoteForwarding,
       
  8584 	/** The call is waiting at the remote end. 
       
  8585 	
       
  8586 	Modes: GSM/WCDMA */
       
  8587 		ERemoteWaiting,
       
  8588 	/** The outgoing call has been barred by the local party. 
       
  8589 	
       
  8590 	Modes: GSM/WCDMA */
       
  8591 		ELocalBarred
       
  8592 		};
       
  8593 
       
  8594 	IMPORT_C void NotifyCallEvent(TRequestStatus& aReqStatus, TMobileCallEvent& aEvent) const;
       
  8595 
       
  8596 /** Describes the possible call states. */
       
  8597 	enum TMobileCallStatus
       
  8598 		{
       
  8599 	/** Indicates that the call status is unknown. */
       
  8600 		EStatusUnknown,			// same as RCall::EStatusUnknown
       
  8601 	/** Indicates that the call is idle. */
       
  8602 		EStatusIdle,			// same as RCall::EStatusIdle
       
  8603 		EStatusDialling,		// same as RCall::EStatusDialling
       
  8604 	/** Indicates that the MT call is ringing but not answered yet by the local user. */
       
  8605 		EStatusRinging,			// same as RCall::EStatusRinging
       
  8606 	/** Indicates that the local user has answered the MT call but the network has not 
       
  8607 	acknowledged the call connection yet. */
       
  8608 		EStatusAnswering,		// same as RCall::EStatusAnswering
       
  8609 	/** MO Call: the network notifies to the MS that the remote party is now ringing. */
       
  8610 		EStatusConnecting,		// same as RCall::EStatusConnecting
       
  8611 	/** Indicates that call is connected and active. */
       
  8612 		EStatusConnected,		// same as RCall::EStatusConnected
       
  8613 	/** Indicates that call is disconnecting. */
       
  8614 		EStatusDisconnecting,	// same as RCall::EStatusHangingUp
       
  8615 	/** Indicates that the call is disconnecting with inband data (to enable the network 
       
  8616 	to send an audio tone), signifying that the call is not to be released until 
       
  8617 	the user terminates the call. */
       
  8618 		EStatusDisconnectingWithInband,
       
  8619 	/** Indicates that call is undergoing temporary channel loss and it may or may not 
       
  8620 	be reconnected. */
       
  8621 		EStatusReconnectPending,
       
  8622 	/** Indicates that the call is connected but on hold. */
       
  8623 		EStatusHold,
       
  8624 	/** Indicates that the call is the non-active half of an alternating call. This 
       
  8625 	call is waiting for its active half or the remote end to switch alternating 
       
  8626 	call mode. */
       
  8627 		EStatusWaitingAlternatingCallSwitch,
       
  8628 		EStatusTransferring,
       
  8629 		EStatusTransferAlerting
       
  8630 		};
       
  8631 
       
  8632 	IMPORT_C TInt GetMobileCallStatus(TMobileCallStatus& aStatus) const;
       
  8633 	IMPORT_C void NotifyMobileCallStatusChange(TRequestStatus& aReqStatus, TMobileCallStatus& aStatus) const;
       
  8634 
       
  8635 	IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC& aTelNumber) const;
       
  8636 	IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC8& aCallParams,const TDesC& aTelNumber) const;
       
  8637 	
       
  8638 	IMPORT_C void DialCallControl(TRequestStatus& aStatus, const TDesC8& aCallParams, const TTelNumberC& aTelNumber) const;
       
  8639 	
       
  8640 	/**
       
  8641 	Contains audio tone events.
       
  8642 	*/
       
  8643 	enum TMobileCallAudioToneEvent
       
  8644 		{
       
  8645 		/**
       
  8646 		Stop audio tone.
       
  8647 		*/
       
  8648 		EAudioStop,
       
  8649 		/**
       
  8650 		Start audio tone.
       
  8651 		*/
       
  8652 		EAudioStart		
       
  8653 		};
       
  8654 		
       
  8655 	/**
       
  8656 	List of 3GPP defined supervisory audio tones taken from technical specification 3GPP TS 22.001 v4.0.0 Annex F.
       
  8657 
       
  8658 	This enumeration is based on the signal information element specified in Table 10.5.130/3GPP TS 24.008 v5.15.0
       
  8659 	*/
       
  8660 	enum TMobileCallAudioTones	
       
  8661 		{
       
  8662 		/** 
       
  8663 		No tone.  Not defined in specification used for initialisation of 
       
  8664 		iTone class member variable during TAudioToneV3 construction.
       
  8665 		*/
       
  8666 		ENoTone,
       
  8667 		/**
       
  8668 		Dial tone.
       
  8669 		*/
       
  8670 		EDialTone,
       
  8671 		/**
       
  8672 		Subscriber busy tone.
       
  8673 		*/
       
  8674 		ESubscriberBusyTone,
       
  8675 		/**
       
  8676 		Congestion tone.
       
  8677 		*/
       
  8678 		ECongestionTone,
       
  8679 		/**
       
  8680 		Radio path acknowledgement tone.
       
  8681 		*/
       
  8682 		ERadioPathAcknowledgement,
       
  8683 		/**
       
  8684 		Radio path not available tone.
       
  8685 		*/
       
  8686 		ERadioPathNotAvailable,
       
  8687 		/**
       
  8688 		Call dropped (Mobile Originated only).
       
  8689 		*/
       
  8690  		EMOCallDropped,
       
  8691  		/**
       
  8692 		Error special information.
       
  8693 		*/
       
  8694  		EErrorSpecialInformation,
       
  8695  		/**
       
  8696 		Number unobtainable.
       
  8697 		*/
       
  8698  		ENumberUnobtainable,
       
  8699  		/**
       
  8700 		Authentication failure.
       
  8701 		*/
       
  8702  		EAuthenticationFailure,
       
  8703  		/**
       
  8704 		Call waiting.
       
  8705 		*/
       
  8706  		ECallWaiting,
       
  8707  		/**
       
  8708 		Ringback tone.
       
  8709 		*/
       
  8710 		ERingback
       
  8711 		};
       
  8712 
       
  8713 	class TAudioToneV3 :  public RMobilePhone::TMultimodeType
       
  8714 	/**
       
  8715 	Audio tone version 1 class. Contains information relating to the  call control playing of audio tones. 
       
  8716 	Tones maybe generated by the network (in-band) or signalled to be played locally by the ME.
       
  8717 	@publishedPartner
       
  8718 	@released
       
  8719 	*/
       
  8720 		{
       
  8721 	public:
       
  8722 		IMPORT_C TAudioToneV3();
       
  8723 		
       
  8724 	public:
       
  8725 		/**
       
  8726 		Indicates whether the tone is starting or stopping playing.
       
  8727 		
       
  8728 		@see TMobileCallAudioToneEvent
       
  8729 		*/
       
  8730 		TMobileCallAudioToneEvent iEvent;
       
  8731 		/**
       
  8732 		Indicates which tone is to be played.
       
  8733 		
       
  8734 		@see TMobileCallAudioTones
       
  8735 		*/
       
  8736 		TMobileCallAudioTones	iTone;
       
  8737 		/**
       
  8738 		Indicates whether the tone is played by the network or is to be played locally by the ME.
       
  8739 		*/
       
  8740 		TBool iPlayedLocally; 
       
  8741 		};
       
  8742 
       
  8743 	/**
       
  8744 	Packaging typedef for TAudioToneV3 class.
       
  8745 	*/
       
  8746 	typedef TPckg<TAudioToneV3> TAudioToneV3Pckg;
       
  8747 	
       
  8748 	IMPORT_C void NotifyAudioToneEvent(TRequestStatus& aReqStatus, TDes8& aToneInfo) const;
       
  8749 
       
  8750 	/***********************************************************************************/
       
  8751 	//
       
  8752 	// MobilePrivacy functional unit
       
  8753 	//
       
  8754 	/***********************************************************************************/
       
  8755 
       
  8756 	IMPORT_C TInt SetPrivacy(RMobilePhone::TMobilePhonePrivacy aPrivacySetting) const;
       
  8757 	IMPORT_C void NotifyPrivacyConfirmation(TRequestStatus& aReqStatus, RMobilePhone::TMobilePhonePrivacy& aPrivacySetting) const;
       
  8758 
       
  8759 	/***********************************************************************************/
       
  8760 	//
       
  8761 	// MobileTrafficChannel function unit
       
  8762 	//
       
  8763 	/***********************************************************************************/
       
  8764 
       
  8765 /** Call traffic channels.
       
  8766 
       
  8767 Modes: CDMA 
       
  8768 @deprecated 9.5
       
  8769 */
       
  8770 	enum TMobileCallTch
       
  8771 		{
       
  8772 	/** The traffic channel of the call is unknown. */
       
  8773 		ETchUnknown,
       
  8774 	/** The call has a digital traffic channel */
       
  8775 		ETchDigital,
       
  8776 	/** The call has an analog traffic channel */
       
  8777 		ETchAnalog
       
  8778 		};
       
  8779 
       
  8780 	IMPORT_C TInt SetTrafficChannel(TMobileCallTch aTchRequest) const;
       
  8781 	IMPORT_C void NotifyTrafficChannelConfirmation(TRequestStatus& aReqStatus, TMobileCallTch& aTchType) const;
       
  8782 
       
  8783 	/***********************************************************************************/
       
  8784 	//
       
  8785 	// MobileCallInformation functional unit
       
  8786 	//
       
  8787 	/***********************************************************************************/
       
  8788 
       
  8789 	/**
       
  8790 	Remote party Identity status.
       
  8791 
       
  8792 	Modes: Common
       
  8793 
       
  8794 	@see TMobileCallRemotePartyInfoV1
       
  8795 	*/
       
  8796 	enum TMobileCallRemoteIdentityStatus
       
  8797 		{
       
  8798 		/**
       
  8799 		The remote party's identity can not be determined.  Calling
       
  8800 		party's Binary Coded Decimal (BCD) number is not available.
       
  8801 		Cause of No CLI is "unavailable".
       
  8802 		*/
       
  8803 		ERemoteIdentityUnknown,
       
  8804 
       
  8805 		/**
       
  8806 		The remote party's identity, or BCD number, is available.
       
  8807 		However, cause of No CLI has not been set.
       
  8808 		*/
       
  8809 		ERemoteIdentityAvailable,
       
  8810 
       
  8811 		/**
       
  8812 		The remote party has suppressed the transmission of its
       
  8813 		identity; i.e. their BCD number is not available.  Cause of No
       
  8814 		CLI is "reject by user".
       
  8815 		*/
       
  8816 		ERemoteIdentitySuppressed,
       
  8817 		/**
       
  8818 		The remote party's identity, or BCD number, is available.  The
       
  8819 		cause of No CLI is "reject by user".
       
  8820 
       
  8821 		To be used where the network has specified that displaying of
       
  8822 		CLI information of the remote party has been rejected by the
       
  8823 		caller but the TMobileCallRemotePartyInfoV1::iRemoteNumber
       
  8824 		parameter has been populated with some other string which may
       
  8825 		be of use to the client.
       
  8826 		*/
       
  8827 		ERemoteIdentityAvailableNoCliRejectedByUser,
       
  8828 
       
  8829 		/**
       
  8830 		The remote party's identity is available; a BCD number is
       
  8831 		available.  The cause of No CLI is "Interaction with other
       
  8832 		service".
       
  8833 
       
  8834 		To be used where the network has specified that CLI information
       
  8835 		of the remote party is not available due to ineraction with
       
  8836 		another service.  However, the
       
  8837 		TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
       
  8838 		populated with some other string which may be of use to the
       
  8839 		client.
       
  8840 		*/
       
  8841 		ERemoteIdentityAvailableNoCliInteractionWithOtherService,
       
  8842 		/**
       
  8843 		The remote party's identity, or BCD number, is unavailable.
       
  8844 		Cause of No CLI is "interaction with other service".
       
  8845 		*/
       
  8846 		ERemoteIdentityUnavailableNoCliInteractionWithOtherService,
       
  8847 
       
  8848 		/**
       
  8849 		The remote party's identity, or BCD number, is available.
       
  8850 		Cause of No CLI is "Coin Line/ Payphone".
       
  8851 
       
  8852 		To be used where the network has specified that CLI information
       
  8853 		of the remote party is not available as the caller is calling
       
  8854 		from a coin/ payphone.  However, the
       
  8855 		TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
       
  8856 		populated with some other string which may be of use to the
       
  8857 		client.
       
  8858 		*/
       
  8859 		ERemoteIdentityAvailableNoCliCoinOrPayphone,
       
  8860 		/**
       
  8861 		The remote party's identity, or BCD number, is not available.
       
  8862 		Cause of No CLI is "Coin Line/ Payphone".
       
  8863 		*/
       
  8864 		ERemoteIdentityUnavailableNoCliCoinOrPayphone,
       
  8865 
       
  8866 		/**
       
  8867 		The remote party's identity, or BCD number, is available.
       
  8868 		Cause of No CLI is "unavailable".
       
  8869 
       
  8870 		To be used where the network has specified that the CLI
       
  8871 		information of the remote party is not available but the
       
  8872 		TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
       
  8873 		populated with some other string which may be of use to the
       
  8874 		client.
       
  8875 		*/
       
  8876 		ERemoteIdentityAvailableNoCliUnavailable
       
  8877 		};
       
  8878 
       
  8879 
       
  8880 	/**
       
  8881 	The direction of the mobile call.
       
  8882 
       
  8883 	Modes: Common
       
  8884 
       
  8885 	@see TMobileCallRemotePartyInfoV1
       
  8886 	*/
       
  8887 	enum TMobileCallDirection
       
  8888 		{
       
  8889 	/** The direction of the call is unknown. */
       
  8890 		EDirectionUnknown,
       
  8891 	/** The call was originated by this phone, i.e. it is an outgoing call. */
       
  8892 		EMobileOriginated,
       
  8893 	/** The call was terminated by this phone, i.e. it is an incoming call. */
       
  8894 		EMobileTerminated
       
  8895 		};
       
  8896 
       
  8897 	enum { KCallingNameSize=80 };
       
  8898 
       
  8899 	
       
  8900 
       
  8901 	class TMobileCallRemotePartyInfoV1 : public RMobilePhone::TMultimodeType
       
  8902 /** Defines information about the remote party of a mobile call. 
       
  8903 */
       
  8904 		{
       
  8905 	public:
       
  8906 		IMPORT_C TMobileCallRemotePartyInfoV1();
       
  8907 	public:
       
  8908 	/** Indicates whether the remote party information in the rest of this structure 
       
  8909 	is valid or not.
       
  8910 	
       
  8911 	Modes: Common
       
  8912 	
       
  8913 	@see TMobileCallRemoteIdentityStatus */
       
  8914 		TMobileCallRemoteIdentityStatus iRemoteIdStatus;
       
  8915 	/** The direction of the call and hence the role of the remote party, i.e. if the 
       
  8916 	call is mobile originated then the remote party is the called party whereas 
       
  8917 	if the call is mobile terminated then the remote party is the calling party.
       
  8918 	
       
  8919 	Modes: Common
       
  8920 	
       
  8921 	@see TMobileCallDirection */
       
  8922 		TMobileCallDirection iDirection;
       
  8923 	/** The phone number of the remote party if available.
       
  8924 	
       
  8925 	Modes: Common
       
  8926 	
       
  8927 	@see RMobilePhone::TMobileAddress */
       
  8928 		RMobilePhone::TMobileAddress iRemoteNumber;
       
  8929 	/** Calling party name available through the CNAP supplementary service (if provisioned). 
       
  8930 	
       
  8931 	
       
  8932 	Modes: Common */
       
  8933 		TBuf<KCallingNameSize> iCallingName;
       
  8934 		};
       
  8935 
       
  8936 /** A typedef'd packaged TMobileCallRemotePartyInfoV1 for passing through a generic 
       
  8937 API function member. */
       
  8938 	typedef TPckg<TMobileCallRemotePartyInfoV1> TMobileCallRemotePartyInfoV1Pckg;
       
  8939 
       
  8940 	IMPORT_C void NotifyRemotePartyInfoChange(TRequestStatus& aReqStatus, TDes8& aRemotePartyInfo) const;
       
  8941 
       
  8942 /** Determines which fields in the class are valid.
       
  8943 
       
  8944 @see TMobileCallInfoV1 */
       
  8945 	enum TMobileCallInfoFlags
       
  8946 		{
       
  8947 	/** The iStartTime field is valid in the call info class.
       
  8948 	
       
  8949 	Modes: COMMON */
       
  8950 		KCallStartTime		= 0x00000001,
       
  8951 	/** The iDuration field is valid in the call info class.
       
  8952 	
       
  8953 	Modes: COMMON */
       
  8954 		KCallDuration		= 0x00000002,
       
  8955 	/** The iCallId field is valid in the call info class.
       
  8956 	
       
  8957 	Modes: COMMON */
       
  8958 		KCallId				= 0x00000004,
       
  8959 	/** The iRemoteParty field is valid in the call info class.
       
  8960 	
       
  8961 	Modes: COMMON */
       
  8962 		KCallRemoteParty	= 0x00000008,
       
  8963 	/** The iDialledParty field is valid in the call info class.
       
  8964 	
       
  8965 	Modes: COMMON */
       
  8966 		KCallDialledParty	= 0x00000010,
       
  8967 	/** The iExitCode field is valid in the call info class.
       
  8968 	
       
  8969 	Modes: COMMON */
       
  8970 		KCallExitCode		= 0x00000020,
       
  8971 	/** The iEmergency field is valid in the call info class.
       
  8972 	
       
  8973 	Modes: COMMON */
       
  8974 		KCallEmergency		= 0x00000040,
       
  8975 	/** The iForwarded field is valid in the call info class.
       
  8976 	
       
  8977 	Modes: COMMON */
       
  8978 		KCallForwarded		= 0x00000080,
       
  8979 	/** The iPrivacy field is valid in the call info class.
       
  8980 	
       
  8981 	Modes: CDMA 
       
  8982 	@deprecated 9.5
       
  8983 	*/
       
  8984 		KCallPrivacy		= 0x00000100,
       
  8985 	/** The iTch field is valid in the call info class.
       
  8986 	
       
  8987 	Modes: CDMA 
       
  8988 	@deprecated 9.5
       
  8989 	*/
       
  8990 		KCallTch			= 0x00000200,
       
  8991 	/** The iAlternatingCall field is valid in the call info class.
       
  8992 	
       
  8993 	Modes: GSM/WCDMA */
       
  8994 		KCallAlternating	= 0x00000400,
       
  8995 	/** The iSecurity field is valid in the call info class.
       
  8996 	
       
  8997 	Modes: GSM/WCDMA */		
       
  8998 		KCallSecurity		= 0x00000800,
       
  8999 	/** The iCallParamOrigin field is valid in the call info class.
       
  9000 	
       
  9001 	Modes: GSM/WCDMA */		
       
  9002 		KCallParamOrigin	= 0x00001000,
       
  9003 	/** The iIconId field is valid in the call info class.
       
  9004 	
       
  9005 	Modes: GSM/WCDMA */		
       
  9006 		KCallIconId			= 0x00002000,
       
  9007 	/** The iAlphaId field is valid in the call info class.
       
  9008 	
       
  9009 	Modes: GSM/WCDMA */		
       
  9010 		KCallAlphaId		= 0x00004000,
       
  9011 	/** The iParamsCallControlModified field is valid in the call 
       
  9012 	info class.
       
  9013 	
       
  9014 	Modes: GSM/WCDMA */		
       
  9015 		KCallParamsCallControlModified	= 0x00008000,	
       
  9016 		
       
  9017 	/** The iSubAddress field is valid in the call 
       
  9018 	info class.
       
  9019 					
       
  9020 	Modes: GSM/WCDMA */		
       
  9021 		KCallSubAddress	= 0x0010000,	
       
  9022 				
       
  9023 	/** The iBearerCap1 field is valid in the call 
       
  9024 	info class.
       
  9025 							
       
  9026 	Modes: GSM/WCDMA */		
       
  9027 		KCallBearerCap1	= 0x0020000,	
       
  9028 			
       
  9029 	/** The iBearerCap2 field is valid in the call 
       
  9030 	info class.
       
  9031 									
       
  9032 	Modes: GSM/WCDMA */		
       
  9033 		KCallBearerCap2	= 0x0040000,	
       
  9034 			
       
  9035 	/** The iBCRepeatIndicator field is valid in the call 
       
  9036 	info class.
       
  9037 										
       
  9038 	Modes: GSM/WCDMA */		
       
  9039 		KCallBCRepeatIndicator	= 0x0080000,
       
  9040 				
       
  9041 		};
       
  9042 	
       
  9043 
       
  9044 	class TMobileCallInfoV1 : public RMobilePhone::TMultimodeType
       
  9045 /** Defines general information about a mobile call. 
       
  9046 */
       
  9047 		{
       
  9048 	public:
       
  9049 		IMPORT_C TMobileCallInfoV1();
       
  9050 	public:
       
  9051 	/** A bit-wise sum of TMobileCallInfoFlags indicating which of the following optional 
       
  9052 	fields contain valid data. */
       
  9053 		TUint32 iValid;
       
  9054 	/** The call service (voice, data, fax, aux. voice) that this call provides.
       
  9055 	
       
  9056 	@see RMobilePhone::TMobileService */
       
  9057 		RMobilePhone::TMobileService iService;
       
  9058 	/** The mobile call status.
       
  9059 	
       
  9060 	@see TMobileCallStatus */
       
  9061 		TMobileCallStatus iStatus;
       
  9062 	/** The call ID number assigned to an ongoing call. Will equal -1 if the call does 
       
  9063 	not have an allocated ID. */
       
  9064 		TInt iCallId;
       
  9065 	/** The reason for termination of a finished call. Will equal KErrNone if the call 
       
  9066 	ended normally and KErrNotFound if the call has not ended. */
       
  9067 		TInt iExitCode;
       
  9068 	/** ETrue if the call is an emergency call or EFalse if it is not. */
       
  9069 		TBool iEmergency;
       
  9070 	/** For a MT call, this attribute equals ETrue if the call has been forwarded to 
       
  9071 	this phone or EFalse if it has not. For a MO call, this attribute equals ETrue 
       
  9072 	if the call has been forwarded to another destination or EFalse if it has 
       
  9073 	not. If the phone can not determine whether the call has been forwarded or 
       
  9074 	not then the attribute will return EFalse. */
       
  9075 		TBool iForwarded;
       
  9076 	/** This attribute indicates whether privacy is on or off for this call.
       
  9077 	
       
  9078 	@see RMobilePhone::TMobilePhonePrivacy */
       
  9079 		RMobilePhone::TMobilePhonePrivacy iPrivacy;
       
  9080 	/** This attribute indicates whether this call is an alternating call or not.
       
  9081 	
       
  9082 	@see RMobilePhone::TMobilePhoneAlternatingCallMode */
       
  9083 		RMobilePhone::TMobilePhoneAlternatingCallMode iAlternatingCall;
       
  9084 	/** The current duration of the call.
       
  9085 	
       
  9086 	@see TTimeIntervalSeconds */
       
  9087 		TTimeIntervalSeconds iDuration;
       
  9088 	/** This attribute indicates whether a digital or analog traffic channel is being 
       
  9089 	used for this call.
       
  9090 	
       
  9091 	@see TMobileCallTch */
       
  9092 		TMobileCallTch iTch;
       
  9093 	/** Information about remote party of a connected call.
       
  9094 	
       
  9095 	@see TMobileCallRemotePartyInfoV1 */
       
  9096 		TMobileCallRemotePartyInfoV1 iRemoteParty;
       
  9097 	/** The original number (including DTMF) dialled for an outgoing call.
       
  9098 	
       
  9099 	@see RMobilePhone::TMobileAddress */
       
  9100 		RMobilePhone::TMobileAddress iDialledParty;
       
  9101 	/** The time and date the call started.
       
  9102 	
       
  9103 	@see TDateTime */
       
  9104 		TDateTime iStartTime;
       
  9105 	/** The name of the call.
       
  9106 	
       
  9107 	@see TName */
       
  9108 		TName iCallName;
       
  9109 	/** The name of the line on which the call is open.
       
  9110 	
       
  9111 	@see TName */
       
  9112 		TName iLineName;
       
  9113 		};
       
  9114 
       
  9115 /** A typedef'd packaged TMobileCallInfoV1 for passing through a generic API function 
       
  9116 member. */
       
  9117 	typedef TPckg<TMobileCallInfoV1> TMobileCallInfoV1Pckg;
       
  9118 	
       
  9119 	class TMobileCallInfoV3 : public TMobileCallInfoV1
       
  9120 	/**
       
  9121 	Extends the TMobileCallInfoV1 claass to include extra call info parameter relating to network security.
       
  9122 	@publishedPartner
       
  9123 	@released
       
  9124 	*/
       
  9125 		{
       
  9126 	public:
       
  9127 		IMPORT_C TMobileCallInfoV3();
       
  9128 	public:
       
  9129 		/**
       
  9130 		Indicates whether Ciphering Status of a call is enabled or disabled. 
       
  9131 		*/
       
  9132 		RMobilePhone::TMobilePhoneNetworkSecurity  iSecurity;
       
  9133 		};
       
  9134 		
       
  9135 	typedef TPckg<TMobileCallInfoV3> TMobileCallInfoV3Pckg; //< Package descriptor to hold a TMobileCallInfoV3.
       
  9136 
       
  9137 	
       
  9138 	class TMobileCallInfoV7 : public TMobileCallInfoV3
       
  9139 	/**
       
  9140 	Extends the TMobileCallInfoV3 claass to include extra parameters
       
  9141 	to indicate the origin of the call, an icon and identifier to 
       
  9142 	describe the call and an indication of whether the call parameters
       
  9143 	have been modified.
       
  9144 	
       
  9145 	@publishedPartner
       
  9146 	@released
       
  9147 	*/
       
  9148     	{        
       
  9149     public:
       
  9150     	IMPORT_C TMobileCallInfoV7();
       
  9151     public:
       
  9152     	/**
       
  9153     	The origin of the call.
       
  9154     	*/
       
  9155     	TCallParamOrigin iCallParamOrigin;
       
  9156     	/**
       
  9157     	The icon identifier which can be used for indication that the 
       
  9158     	call is being made.
       
  9159      	*/
       
  9160     	TIconId iIconId;
       
  9161     	/**
       
  9162     	The alpha identifier to describe the icon.
       
  9163      	*/
       
  9164     	TAlphaIdBuf iAlphaId;
       
  9165     	/**
       
  9166     	An indication of whether the call parameters have been modified.  
       
  9167     	Set to ETrue if they have been modified, EFalse otherwise.
       
  9168      	*/
       
  9169     	TBool iParamsCallControlModified;
       
  9170     };
       
  9171 	
       
  9172     typedef TPckg<TMobileCallInfoV7> TMobileCallInfoV7Pckg; //< Package descriptor to hold a TMobileCallInfoV7.
       
  9173 	
       
  9174     class TMobileCallInfoV8 : public TMobileCallInfoV7
       
  9175     	/**
       
  9176     	Extends the TMobileCallInfoV7 claass to include extra parameters
       
  9177     	to indicate the bearer capabilities, repeat indicator and sub address. 
       
  9178         	
       
  9179     	@publishedPartner
       
  9180     	@released
       
  9181     	*/
       
  9182         {        
       
  9183     public:
       
  9184        	IMPORT_C TMobileCallInfoV8();
       
  9185     public:
       
  9186         /** The sub-address of the remote party. 
       
  9187     	
       
  9188     	@see TSubAddress */
       
  9189         TSubAddress iSubAddress;
       
  9190         
       
  9191         /** Capability configuration parameters for the first bearer. 
       
  9192         
       
  9193         @see TCcp */
       
  9194        	TCcp iBearerCap1;
       
  9195         
       
  9196         /** Capability configuration parameters for the second bearer. 	 	
       
  9197        	
       
  9198         @see TCcp */
       
  9199        	TCcp iBearerCap2;
       
  9200        	
       
  9201         /** The bearer capability repeat indicator. 
       
  9202        	
       
  9203         @see TBCRepeatIndicator */
       
  9204         TBCRepeatIndicator iBCRepeatIndicator;
       
  9205         };
       
  9206     	
       
  9207     typedef TPckg<TMobileCallInfoV8> TMobileCallInfoV8Pckg; //< Package descriptor to hold a TMobileCallInfoV8.
       
  9208       
       
  9209 	IMPORT_C TInt GetMobileCallInfo(TDes8& aCallInfo) const;
       
  9210 
       
  9211 	/***********************************************************************************/
       
  9212 	//
       
  9213 	// MobileCallEmergency functional unit
       
  9214 	//
       
  9215 	/***********************************************************************************/
       
  9216 
       
  9217 	IMPORT_C void DialEmergencyCall(TRequestStatus& aReqStatus, const TDesC& aNumber) const;
       
  9218 
       
  9219 	/***********************************************************************************/
       
  9220 	//
       
  9221 	// MobileCallCompletion
       
  9222 	//
       
  9223 	/***********************************************************************************/
       
  9224 
       
  9225 	IMPORT_C void ActivateCCBS(TRequestStatus& aReqStatus, TInt& aIndex) const;
       
  9226 	IMPORT_C TInt RejectCCBS() const;
       
  9227 		//
       
  9228 	// User-To-User Signalling Functional Unit
       
  9229 	//
       
  9230 	/***********************************************************************************/
       
  9231 
       
  9232 /** The UUS capabilities of the call.
       
  9233 
       
  9234 Modes: GSM/WCDMA. */
       
  9235 	enum TMobileCallUUSCaps			// UUS capabilities of the call
       
  9236 		{
       
  9237 	/** Indicates that MS supports UUS1 implicit request. */
       
  9238 		KCapsSetupUUS1Implicit=0x00000001,
       
  9239 	/** Indicates that MS supports UUS1 explicit request. */
       
  9240 		KCapsSetupUUS1Explicit=0x00000002,
       
  9241 	/** Indicates that MS supports UUS2 request. */
       
  9242 		KCapsSetupUUS2=0x00000004,
       
  9243 	/** Indicates that MS supports UUS3 request. */
       
  9244 		KCapsSetupUUS3=0x00000008,
       
  9245 	/** Indicates that MS supports activating more than one UUS request at a time. */
       
  9246 		KCapsSetupMultipleUUS=0x00000010,
       
  9247 	/** Indicates that UUS1 is active for this call. */
       
  9248 		KCapsActiveUUS1=0x00000020,
       
  9249 	/** Indicates that UUS2 is active for this call. */
       
  9250 		KCapsActiveUUS2=0x00000040,
       
  9251 	/** Indicates that UUS3 is active for this call. */
       
  9252 		KCapsActiveUUS3=0x00000080
       
  9253 		};
       
  9254 
       
  9255 	IMPORT_C TInt GetUUSCaps(TUint32& aCaps) const;
       
  9256 	IMPORT_C void NotifyUUSCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
  9257 
       
  9258 /** UUS Service requests.
       
  9259 
       
  9260 Modes: GSM/WCDMA */
       
  9261 	enum TMobileCallUUSReqs			// UUS Service requests
       
  9262 		{
       
  9263 	/** UUS1 is implicitly requested. */
       
  9264 		KUUS1Implicit=0x00000001,
       
  9265 	/** UUS1 is explicitly requested, but it is not mandatory for this call to proceed. */
       
  9266 		KUUS1ExplicitRequested=0x00000002,
       
  9267 	/** UUS1 is explicitly requested and it is mandatory for this call to proceed. */
       
  9268 		KUUS1ExplicitRequired=0x00000004,
       
  9269 	/** UUS2 is (explicitly) requested, but it is not mandatory for this call to proceed. */
       
  9270 		KUUS2Requested=0x00000008,
       
  9271 	/** UUS2 is (explicitly) requested and it is mandatory for this call to proceed. */
       
  9272 		KUUS2Required=0x00000010,
       
  9273 	/** UUS3 is (explicitly) requested, but it is not mandatory for this call to proceed. */
       
  9274 		KUUS3Requested=0x00000020,
       
  9275 	/** UUS3 is (explicitly) requested and it is mandatory for this call to proceed. */
       
  9276 		KUUS3Required=0x00000040
       
  9277 		};
       
  9278 
       
  9279 	enum 
       
  9280 		{
       
  9281 		KMaxUUISize = 129,
       
  9282 		};
       
  9283 
       
  9284 /** Buffer for the UUI element. */
       
  9285 	typedef TBuf<KMaxUUISize> TMobileCallUUI;
       
  9286 
       
  9287 	class  TMobileCallUUSRequestV1 : public RMobilePhone::TMultimodeType
       
  9288 /** The mobile Call User-to-User Signaling request. 
       
  9289 */
       
  9290 		{
       
  9291 	public:
       
  9292 		IMPORT_C  TMobileCallUUSRequestV1();
       
  9293 	public:
       
  9294 	/** This field indicates whether the specified service is requested or required 
       
  9295 	for the call. */
       
  9296 		TUint             iServiceReq;
       
  9297 	/** The UUI element. This field only contains data if iServiceReq indicates UUS1.
       
  9298 	
       
  9299 	@see TMobileCallUUI */
       
  9300 		TMobileCallUUI	  iUUI;
       
  9301 		};
       
  9302 	
       
  9303 /** A typedef'd packaged TMobileCallUUSRequestV1 for passing through a generic API 
       
  9304 function member. */
       
  9305 	typedef TPckg<TMobileCallUUSRequestV1> TMobileCallUUSRequestV1Pckg;
       
  9306 
       
  9307 	IMPORT_C void ActivateUUS(TRequestStatus& aReqStatus, const TDesC8& aUUSRequest) const;
       
  9308 	IMPORT_C void SendUUI(TRequestStatus& aReqStatus, TBool aMore, const TMobileCallUUI& aUUI) const;
       
  9309 	IMPORT_C void ReceiveUUI(TRequestStatus& aReqStatus, TMobileCallUUI& aUUI) const;
       
  9310 	IMPORT_C void HangupWithUUI(TRequestStatus& aReqStatus, const TMobileCallUUI& aUUI) const;
       
  9311 	IMPORT_C void AnswerIncomingCallWithUUI(TRequestStatus& aReqStatus, const TDesC8& aCallParams, const TMobileCallUUI& aUUI) const;
       
  9312 	
       
  9313 	/***********************************************************************************/
       
  9314 	//
       
  9315 	// Etel 3rd Party v1.0 Parameter classes
       
  9316 	//
       
  9317 	/***********************************************************************************/
       
  9318 	
       
  9319 	class TEtel3rdPartyMobileCallParamsV1 : public RCall::TCallParams
       
  9320 /** Defines the parameters used to set-up of a call originated from an ETel 3rd Party client. 
       
  9321 @publishedPartner
       
  9322 @released
       
  9323 */
       
  9324 		{
       
  9325 	public:
       
  9326 		IMPORT_C TEtel3rdPartyMobileCallParamsV1();
       
  9327 	public:
       
  9328 	/** Call Id restriction setting to be used for this call.
       
  9329 	
       
  9330 	@see TMobileCallIdRestriction */
       
  9331 		TMobileCallIdRestriction iIdRestrict;
       
  9332 	/** Specifies whether this call attempt is user initiated (EFalse) or a client initiated 
       
  9333 	redial (ETrue). */
       
  9334 		TBool iAutoRedial;		
       
  9335 		};
       
  9336 		
       
  9337 /** A typedef'd packaged TEtel3rdPartyMobileCallParamsV1 for passing through a generic API 
       
  9338 function member. */
       
  9339 	typedef TPckg<TEtel3rdPartyMobileCallParamsV1>TEtel3rdPartyMobileCallParamsV1Pckg;	
       
  9340 	
       
  9341 private:
       
  9342 	RMobileCall(const RMobileCall& aCall);
       
  9343 	CMobileCallPtrHolder* iMmPtrHolder;
       
  9344 protected:
       
  9345 	IMPORT_C void ConstructL();
       
  9346 	IMPORT_C void Destruct();
       
  9347 	};
       
  9348 
       
  9349 
       
  9350 /*********************************************************/
       
  9351 //
       
  9352 // Line based functionality (RMobileLine)
       
  9353 // 
       
  9354 /*********************************************************/
       
  9355 
       
  9356 
       
  9357 
       
  9358 class CMobileLinePtrHolder;
       
  9359 
       
  9360 class RMobileLine : public RLine
       
  9361 /** Provides access to the functionality associated with a specific mobile line. 
       
  9362 */
       
  9363 	{
       
  9364 public:
       
  9365 	IMPORT_C RMobileLine();
       
  9366 
       
  9367 	/***********************************************************************************/
       
  9368 	//
       
  9369 	// MobileLineStatus functional unit
       
  9370 	// 
       
  9371 	/***********************************************************************************/
       
  9372 
       
  9373 	IMPORT_C TInt GetMobileLineStatus(RMobileCall::TMobileCallStatus& aStatus) const;
       
  9374 	IMPORT_C void NotifyMobileLineStatusChange(TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus) const;
       
  9375 
       
  9376 	//
       
  9377 	// Additional Caps
       
  9378 	//
       
  9379 /** Enumerated auxiliary capabilities. */
       
  9380 	enum TMobileLineAdditionalCaps
       
  9381 		{
       
  9382 	/** Indicates whether the line is a Primary or Auxiliary voice line offset added 
       
  9383 	so that core Etel and additional line caps can be returned in one TUint. */
       
  9384 		KCapsAuxVoice=0x00000008	
       
  9385 		};
       
  9386 
       
  9387 private:
       
  9388 	RMobileLine(const RMobileLine& aLine);
       
  9389 	CMobileLinePtrHolder* iMmPtrHolder;
       
  9390 protected:
       
  9391 	IMPORT_C void ConstructL();
       
  9392 	IMPORT_C void Destruct();
       
  9393 	};
       
  9394 
       
  9395 
       
  9396 /*********************************************************/
       
  9397 //
       
  9398 // SMS Messaging (RMobileSmsMessaging)
       
  9399 // 
       
  9400 /*********************************************************/
       
  9401 
       
  9402 
       
  9403 
       
  9404 class CMobilePhoneSmspList;
       
  9405 class CSmsMessagingPtrHolder;
       
  9406 
       
  9407 class RMobileSmsMessaging : public RTelSubSessionBase
       
  9408 /** Provides client access to SMS messaging functionality provided by TSY.
       
  9409 @publishedPartner
       
  9410 @released 
       
  9411 */
       
  9412 	{
       
  9413 public:
       
  9414 
       
  9415 	friend class CRetrieveMobilePhoneSmspList;
       
  9416 
       
  9417 	IMPORT_C RMobileSmsMessaging();
       
  9418 
       
  9419 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
  9420 	IMPORT_C void Close();
       
  9421 
       
  9422 /** Defines capabilities of SMS messaging.
       
  9423 
       
  9424 Modes: GSM/WCDMA */
       
  9425 	enum TMobileSmsModeCaps
       
  9426 		{
       
  9427 	/** SMS is supported in GSM and WCDMA modes. SMS are sent across MM ETel API in 
       
  9428 	a GSM 03.40 TPDU format.
       
  9429 	
       
  9430 	Modes: GSM/WCDMA */
       
  9431 		KCapsGsmSms=0x00000001,
       
  9432 	/** SMS is supported in CDMA mode. SMS are sent across MM ETel API in a IS-637 
       
  9433 	Teleservice message PDU format. 
       
  9434 	
       
  9435 	Modes: CDMA 
       
  9436 	@deprecated 9.5
       
  9437 	*/
       
  9438 		KCapsCdmaSms=0x00000002
       
  9439 		};
       
  9440 
       
  9441 /** Defines SMS control capabilities.
       
  9442 
       
  9443 Modes: Common */
       
  9444 	enum TMobileSmsControlCaps
       
  9445 		{
       
  9446 	/** TSY supports receiving incoming SMS that have been stored and acknowledged 
       
  9447 	by the phone prior to forwarding to the TSY. If this flag is set then KCapsReceiveEither 
       
  9448 	will not be set and the client can receive stored messages only while the 
       
  9449 	TSY-phone link is in "receive stored" mode.
       
  9450 	
       
  9451 	Modes: Common */
       
  9452 		KCapsReceiveStored=0x00000001,
       
  9453 	/** TSY supports receiving incoming SMS that have been acknowledged by the phone 
       
  9454 	but have NOT already been stored. It is the client's responsibility to do 
       
  9455 	the storage. If this flag is set then KCapsReceiveEither will not be set and 
       
  9456 	the client can receive unstored messages only while the TSY-phone link is 
       
  9457 	in "receive unstored with phone ack" mode.
       
  9458 	
       
  9459 	Modes: Common */
       
  9460 		KCapsReceiveUnstoredPhoneAck=0x00000002,
       
  9461 	/** TSY supports receiving incoming SMS that have NOT already been stored and acknowledged
       
  9462 	by the phone. It is the client's responsibility to do both the storage and 
       
  9463 	the acknowledgment or rejection. If this flag is set then KCapsReceiveEither 
       
  9464 	will not be set and the client can receive unstored messages only while the 
       
  9465 	TSY-phone link is in "receive unstored with client ack" mode.
       
  9466 	
       
  9467 	Modes: Common */
       
  9468 		KCapsReceiveUnstoredClientAck=0x00000004,
       
  9469 	/** TSY supports receiving either stored or unstored incoming SMS at any time. 
       
  9470 	If this flag is set then any other KCapsReceive... flags will not be set and 
       
  9471 	the client can receive stored or unstored messages while the TSY-phone link 
       
  9472 	is in "receive either" mode.
       
  9473 	
       
  9474 	Modes: Common */
       
  9475 		KCapsReceiveEither=0x00000008,
       
  9476 	/** TSY supports creating a default acknowledgment or rejection TPDU using only 
       
  9477 	a "cause code" supplied by the client. If this flag is not set then the client 
       
  9478 	must supply the full ack or nack TPDU if it calls RMobileSmsMessaging::AckSmsStored() 
       
  9479 	or RMobileSmsMessaging::NackSmsStored().
       
  9480 	
       
  9481 	Modes: Common */
       
  9482 		KCapsCreateAck=0x00000010,
       
  9483 	/** TSY supports sending SMS messages but does not support returning the service 
       
  9484 	centre's acknowledgment of the submitted message to the client.
       
  9485 	
       
  9486 	Modes: Common */
       
  9487 		KCapsSendNoAck=0x00000020,
       
  9488 	/** TSY supports sending SMS messages and also supports returning the service centre's 
       
  9489 	acknowledgment of the submitted message to the client.
       
  9490 	
       
  9491 	Modes: GSM/WCDMA */
       
  9492 		KCapsSendWithAck=0x00000040,
       
  9493 	/** TSY supports retrieval of the SMS parameter list.
       
  9494 	
       
  9495 	Modes: GSM/WCDMA */
       
  9496 		KCapsGetSmspList=0x00000080,
       
  9497 	/** TSY supports storage of the SMS parameter list
       
  9498 	
       
  9499 	Modes: GSM/WCDMA */
       
  9500 		KCapsSetSmspList=0x00000100
       
  9501 		};
       
  9502 
       
  9503 	class TMobileSmsCapsV1 : public RMobilePhone::TMultimodeType
       
  9504 /** Defines capabilities of SMS messaging.
       
  9505 */
       
  9506 		{
       
  9507 	public:
       
  9508 		IMPORT_C TMobileSmsCapsV1();
       
  9509 
       
  9510 	/** Sum of TMobileSmsModeCaps constants.
       
  9511 	
       
  9512 	Modes: Common */
       
  9513 		TUint32 iSmsMode;
       
  9514 	/** Sum of TMobileSmsControlCaps constants.
       
  9515 	
       
  9516 	Modes: Common */
       
  9517 		TUint32 iSmsControl;
       
  9518 		};
       
  9519 
       
  9520 /** A typedef'd packaged TMobileSmsCapsV1 for passing through a generic API member 
       
  9521 function. */
       
  9522 	typedef TPckg<TMobileSmsCapsV1> TMobileSmsCapsV1Pckg;
       
  9523 
       
  9524 	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
       
  9525 
       
  9526 	// Definitions for sizes of TPDU and User Data fields
       
  9527 	enum 
       
  9528 		{ 
       
  9529 		KGsmTpduSize = 165, // 140 bytes user data + 25 bytes TPDU header
       
  9530 		/*
       
  9531 		 * @deprecated 9.5
       
  9532 		 * */
       
  9533 		KCdmaTpduSize  = 256	// Max size of Bearer Data in Transport Layer message
       
  9534 		};
       
  9535 
       
  9536 /** A typedef'd buffer for GSM or WCDMA message data. */
       
  9537 	typedef TBuf8<KGsmTpduSize>			TMobileSmsGsmTpdu;
       
  9538 /** A typedef'd buffer for CDMA message data. 
       
  9539  @deprecated 9.5 
       
  9540  */
       
  9541 	typedef TBuf8<KCdmaTpduSize>		TMobileSmsCdmaTpdu;
       
  9542 
       
  9543 	/***********************************************************************************/
       
  9544 	//
       
  9545 	// Enum used by TSY to distinguish which SMS attribute class is used by client
       
  9546 	//
       
  9547 	/***********************************************************************************/
       
  9548 
       
  9549 /** Used by TSY to distinguish which SMS attribute class is used by client.
       
  9550 
       
  9551 Modes: Common
       
  9552 
       
  9553 @see RMobileSmsMessaging::TMobileSmsSendAttributesV1 */
       
  9554 	enum TMobileSmsAttributeExtensionId
       
  9555 		{
       
  9556 	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsAttributesV1. */
       
  9557 		KETelMobileSmsAttributesV1=KETelExtMultimodeV1,
       
  9558 	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsReceiveAttributesV1. */
       
  9559 		KETelMobileSmsReceiveAttributesV1,
       
  9560 	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsSendAttributesV1. */
       
  9561 		KETelMobileSmsSendAttributesV1,
       
  9562 	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsCdmaSendAttributesV4. 
       
  9563 	 @deprecated 9.5 
       
  9564 	 */
       
  9565 		KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4
       
  9566 		};
       
  9567 
       
  9568 /** Defines common attributes of all SMS messages.
       
  9569 
       
  9570 Modes: CDMA
       
  9571 
       
  9572 @see TMobileSmsAttributesV1 
       
  9573 @deprecated 9.5
       
  9574 */
       
  9575 	enum TMobileSmsAttributeFlags
       
  9576 		{
       
  9577 	/** The iCdmaTeleservice field is valid in the attribute class.
       
  9578 	
       
  9579 	Modes: CDMA 
       
  9580 	@deprecated 9.5
       
  9581 	*/
       
  9582 		KCdmaTeleservice = 0x00000001,
       
  9583 	/** The iCdmaServiceCategory field is valid in the attribute class.
       
  9584 	
       
  9585 	Modes: CDMA 
       
  9586 	@deprecated 9.5
       
  9587 	*/
       
  9588 		KCdmaServiceCategory = 0x00000002,
       
  9589 	/** The iGsmServiceCentre field is valid in the attribute class.
       
  9590 	
       
  9591 	Modes: GSM/WCDMA */
       
  9592 		KGsmServiceCentre = 0x00000004,
       
  9593 	/** The iDataFormat field is valid in the attribute class.
       
  9594 	
       
  9595 	Modes: Common */
       
  9596 		KSmsDataFormat = 0x00000008,	
       
  9597 	/** The iOriginator or iDestination field is valid in the attribute class.
       
  9598 	
       
  9599 	Modes: Common */
       
  9600 		KRemotePartyInfo = 0x00000010,
       
  9601 	/** The iStatus field is valid in the attribute class.
       
  9602 	
       
  9603 	Modes: Common */
       
  9604 		KIncomingStatus = 0x00000020,
       
  9605 	/** The iStore and iStoreIndex fields are valid in the attribute class.
       
  9606 	
       
  9607 	Modes: Common */
       
  9608 		KStorageLocation = 0x00000040,
       
  9609 	/** The iMsgRef field is valid in the attribute class.
       
  9610 
       
  9611 	Modes: Common */
       
  9612 		KMessageReference = 0x00000080,
       
  9613 	/** The iSubmitReport field is valid in the attribute class.
       
  9614 	
       
  9615 	Modes: GSM/WCDMA */
       
  9616 		KGsmSubmitReport = 0x00000100,
       
  9617 	/** The iMore field is valid in the attribute class.
       
  9618 	
       
  9619 	Modes: Common */
       
  9620 		KMoreToSend = 0x00000200,
       
  9621 	/** Indicates to the TSY that it should keep the traffic channel open since there is
       
  9622 	    another message ready to be sent immediately after this one (typically used when
       
  9623 	    sending messages to multiple recipients). TSY should then keep the channel open 
       
  9624 	    until a message is sent with this bit cleared.
       
  9625 	
       
  9626 	Modes: CDMA 
       
  9627 	@deprecated 9.5
       
  9628 	*/
       
  9629 		KCdmaKeepChannelOpen = 0x00000400,
       
  9630 	/** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network
       
  9631 	
       
  9632 	Modes: CDMA 
       
  9633 	@deprecated 9.5
       
  9634 	*/
       
  9635 		KCdmaTLAckRequired = 0x00000800,
       
  9636 	/** The iAddressAuthentication field is valid in the attribute class.
       
  9637 	
       
  9638 	Modes: CDMA 
       
  9639 	@deprecated 9.5
       
  9640 	*/
       
  9641 		KCdmaAddressAuthentication = 0x00001000
       
  9642 		};
       
  9643 
       
  9644 /** Defines the SMS data format.
       
  9645 
       
  9646 Modes: Common */
       
  9647 	enum TMobileSmsDataFormat
       
  9648 		{
       
  9649 	/** The format is not specified.
       
  9650 
       
  9651 	Modes: Common */
       
  9652 		EFormatUnspecified,
       
  9653 	/** The message data format complies to a SMS TPDU coded as octets according to 
       
  9654 	GSM 03.40.
       
  9655 	
       
  9656 	Modes: GSM/WCDMA */
       
  9657 		EFormatGsmTpdu,
       
  9658 	/** The message data format complies to a SMS Teleservice PDU coded as octets according 
       
  9659 	to IS-637.
       
  9660 	
       
  9661 	Modes: CDMA 
       
  9662 	@deprecated 9.5
       
  9663 	*/
       
  9664 		EFormatCdmaTpdu
       
  9665 		};
       
  9666 
       
  9667 	class TMobileSmsAttributesV1 : public RMobilePhone::TMultimodeType
       
  9668 	/** Defines common attributes of all SMS messages. 
       
  9669 	@publishedPartner
       
  9670 	@released
       
  9671 	*/
       
  9672 		{
       
  9673 	protected:
       
  9674 		TMobileSmsAttributesV1();
       
  9675 	public:
       
  9676 	/** The bit-mask flags from TMobileSmsAttributeFlags indicating which attributes 
       
  9677 	are present in this instance.
       
  9678 	
       
  9679 	Modes: Common */
       
  9680 		TUint32 iFlags;
       
  9681 	/** The format of the message data buffer .
       
  9682 	
       
  9683 	Modes: Common
       
  9684 	
       
  9685 	@see TMobileSmsDataFormat */
       
  9686 		TMobileSmsDataFormat iDataFormat;
       
  9687 	/** The teleservice this message belongs to, coded according to SMS teleservice 
       
  9688 	identifier values table in TIA/EIA-41-D.
       
  9689 	
       
  9690 	Modes: CDMA 
       
  9691 	@deprecated 9.5
       
  9692 	*/
       
  9693 		TInt iCdmaTeleservice;
       
  9694 	/** The service category this message belongs to.
       
  9695 	
       
  9696 	Modes: CDMA 
       
  9697 	@deprecated 9.5
       
  9698 		*/
       
  9699 		TInt iCdmaServiceCategory;
       
  9700 	/** The GSM service centre used for this SMS.
       
  9701 	
       
  9702 	Modes: GSM/WCDMA
       
  9703 	
       
  9704 	@see RMobilePhone::TMobileAddress */
       
  9705 		RMobilePhone::TMobileAddress iGsmServiceCentre;
       
  9706 		};
       
  9707 
       
  9708 /** A typedef'd packaged TMobileSmsAttributesV1 for passing through a generic 
       
  9709 API member function. */
       
  9710 	typedef TPckg<TMobileSmsAttributesV1> TMobileSmsAttributesV1Pckg;
       
  9711 
       
  9712 /** Defines attributes of incoming SMS messages.
       
  9713 
       
  9714 Modes: Common */
       
  9715 	enum TMobileSmsIncomingStatus
       
  9716 		{
       
  9717 	/** The status of the incoming SMS is unknown. */
       
  9718 		EMtMessageUnknownStatus,
       
  9719 	/** The incoming SMS is not stored phone-side but has already been acknowledged 
       
  9720 	by the phone. */
       
  9721 		EMtMessageUnstoredPhoneAck,
       
  9722 	/** The incoming SMS is not stored phone-side and needs to be acknowledged by the 
       
  9723 	client. */
       
  9724 		EMtMessageUnstoredClientAck,
       
  9725 	/** The incoming SMS is stored phone-side. */
       
  9726 		EMtMessageStored
       
  9727 		};
       
  9728 
       
  9729 	class TMobileSmsReceiveAttributesV1 : public TMobileSmsAttributesV1
       
  9730 	/** Defines attributes of incoming SMS messages. 
       
  9731 	@publishedPartner
       
  9732 	@released
       
  9733 	*/
       
  9734 		{
       
  9735 	public:
       
  9736 		IMPORT_C TMobileSmsReceiveAttributesV1();
       
  9737 	public:
       
  9738 	/** Indicates the status of the incoming message -whether it is stored phone-side 
       
  9739 	or has been acknowledged by the phone.
       
  9740 	
       
  9741 	Modes: Common
       
  9742 	
       
  9743 	@see TMobileSmsIncomingStatus */
       
  9744 		TMobileSmsIncomingStatus	 iStatus;	// indicates if MT message is stored phone-side
       
  9745 	/** If the message is stored phone-side, indicates the index (within the phone-side 
       
  9746 	store) where the message is stored.
       
  9747 	
       
  9748 	Modes: Common */
       
  9749 		TInt						 iStoreIndex;// used if MT message is stored phone-side
       
  9750 	/** If the message is stored phone-side, indicates the name of the appropriate 
       
  9751 	phone-side store.
       
  9752 	
       
  9753 	Modes: Common
       
  9754 	
       
  9755 	@see RMobilePhone::TMobileName */
       
  9756 		RMobilePhone::TMobileName	 iStore;		// used if MT message is stored phone-side
       
  9757 	/** The address of the originator of the SMS.
       
  9758 
       
  9759 	Modes: Common
       
  9760 	
       
  9761 	@see RMobilePhone::TMobileAddress */
       
  9762 		RMobilePhone::TMobileAddress iOriginator;
       
  9763 		};
       
  9764 
       
  9765 /** A typedef'd packaged TMobileSmsReceiveAttributesV1 for passing through a generic 
       
  9766 API member function. */
       
  9767 	typedef TPckg<TMobileSmsReceiveAttributesV1> TMobileSmsReceiveAttributesV1Pckg;
       
  9768 
       
  9769 	
       
  9770 
       
  9771 	class TMobileSmsSendAttributesV1 : public TMobileSmsAttributesV1
       
  9772 	/** Defines attributes of sent SMS messages.
       
  9773 	@publishedPartner
       
  9774 	@released */
       
  9775 		{
       
  9776 	public:
       
  9777 		IMPORT_C TMobileSmsSendAttributesV1();
       
  9778 	public:
       
  9779 	/** The message reference assigned to a sent message.
       
  9780 	
       
  9781 	Modes: Common */
       
  9782 		TUint16						 iMsgRef;
       
  9783 	/** A boolean indicating whether the client is going to send another SMS immediately 
       
  9784 	after this one. Equals ETrue if this is the case, EFalse if it is not.
       
  9785 	
       
  9786 	Modes: Common */
       
  9787 		TBool						 iMore;
       
  9788 	/** The SMS-SUBMIT-REPORT TPDU received from network in response to a sent message.
       
  9789 	
       
  9790 	Modes: GSM/WCDMA
       
  9791 	
       
  9792 	@see TMobileSmsGsmTpdu */
       
  9793 		TMobileSmsGsmTpdu			 iSubmitReport;
       
  9794 	/** The address of the destination of the SMS.
       
  9795 	
       
  9796 	Modes: Common
       
  9797 	
       
  9798 	@see RMobilePhone::TMobileAddress */
       
  9799 		RMobilePhone::TMobileAddress iDestination;
       
  9800 		};
       
  9801 	
       
  9802 /** A typedef'd packaged TMobileSmsSendAttributesV1 for passing through a generic 
       
  9803 API member function. */
       
  9804 	typedef TPckg<TMobileSmsSendAttributesV1> TMobileSmsSendAttributesV1Pckg;
       
  9805 
       
  9806 	class TMobileSmsCdmaSendAttributesV4 : public TMobileSmsAttributesV1
       
  9807 	/**
       
  9808 	Defines attributes of sent SMS messages (CDMA only).
       
  9809 
       
  9810 	@publishedPartner
       
  9811 	@released
       
  9812 	@deprecated 9.5
       
  9813 	*/
       
  9814 		{
       
  9815 	public:
       
  9816 		IMPORT_C TMobileSmsCdmaSendAttributesV4();
       
  9817 	public:
       
  9818 		/** 
       
  9819 		The message id allocated by the SMS stack. The TSY should
       
  9820 		retrieve the value from iCdmaTeleserviceId to determine
       
  9821 		which teleservice this message id corresponds to. 
       
  9822 		*/
       
  9823 		TUint16 iMsgRef;
       
  9824 		/** Indicates whether the client is going to send another 
       
  9825 		PDU immediately after this one (typically used when sending
       
  9826 		messages of more than one PDU). Equals ETrue if at least 
       
  9827 		one more PDU is needed to complete the message and EFalse
       
  9828 		otherwise.
       
  9829 		*/
       
  9830 		TBool iMore;
       
  9831 		/** TPDU received from network in response to a sent message */
       
  9832 		TMobileSmsCdmaTpdu iTLAck;
       
  9833 		/** The address of the destination of the SMS. */
       
  9834 		RMobilePhone::TMobileAddress iDestination;
       
  9835 		/** Transport layer authentication parameter */
       
  9836 		TUint32 iAddressAuthentication;
       
  9837 		};
       
  9838 
       
  9839 /** A typedef'd packaged TMobileSmsCdmaSendAttributesV4 for passing through a generic 
       
  9840 API member function. */
       
  9841 	typedef TPckg<TMobileSmsCdmaSendAttributesV4> TMobileSmsCdmaSendAttributesV4Pckg;
       
  9842 
       
  9843 	//
       
  9844 	// Setting up the storage & acknowledgement mode
       
  9845 	//
       
  9846 
       
  9847 /** Defines the SMS receive modes.
       
  9848 
       
  9849 Modes: Common */
       
  9850 	enum TMobileSmsReceiveMode
       
  9851 		{
       
  9852 	/** Receive mode is unspecified and phone will use its default. */
       
  9853 		EReceiveModeUnspecified,
       
  9854 	/** Phone will acknowledge but NOT store all incoming messages before passing them 
       
  9855 	onto TSY. It is client's responsibility to store the message. */
       
  9856 		EReceiveUnstoredPhoneAck,	// client stores but phone acknowledges message
       
  9857 	/** Phone will NOT acknowledge or store any incoming messages before passing them 
       
  9858 	onto TSY. It is client's responsibility to attempt storage and then either
       
  9859 	acknowledge or reject the message. */
       
  9860 		EReceiveUnstoredClientAck,	// client acknowledges and stores message
       
  9861 	/** Phone will store and acknowledge all incoming messages before passing them 
       
  9862 	onto TSY. */
       
  9863 		EReceiveStored,				// phone acknowledges and store message
       
  9864 	/** Phone may pass on either stored or unstored messages to TSY. It is client's 
       
  9865 	responsibility to check RMobileSmsMessaging::TMobileSmsReceiveAttributesV1::iStatus 
       
  9866 	to determine what action(s) the client needs to take for a message. */
       
  9867 		EReceiveEither				// client deals with stored & unstored messages
       
  9868 		};
       
  9869 		
       
  9870 	IMPORT_C void SetReceiveMode(TRequestStatus& aReqStatus, TMobileSmsReceiveMode aReceiveMode) const;
       
  9871 	IMPORT_C TInt GetReceiveMode(TMobileSmsReceiveMode& aReceiveMode) const;
       
  9872 	IMPORT_C void NotifyReceiveModeChange(TRequestStatus& aStatus, TMobileSmsReceiveMode& aReceiveMode);
       
  9873 
       
  9874 	/***********************************************************************************/
       
  9875 	//
       
  9876 	// Incoming SMS
       
  9877 	//
       
  9878 	/***********************************************************************************/
       
  9879 
       
  9880 	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
  9881 
       
  9882 	/***********************************************************************************/
       
  9883 	//
       
  9884 	// Responding to incoming SMS
       
  9885 	//
       
  9886 	/***********************************************************************************/
       
  9887 
       
  9888 	IMPORT_C void AckSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TBool aFull=EFalse) const;
       
  9889 	IMPORT_C void NackSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TInt aRpCause) const;
       
  9890 	IMPORT_C void ResumeSmsReception(TRequestStatus& aReqStatus) const;
       
  9891 
       
  9892 	/***********************************************************************************/
       
  9893 	//
       
  9894 	// Outgoing SMS
       
  9895 	//
       
  9896 	/***********************************************************************************/
       
  9897 
       
  9898 	IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
       
  9899 	IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
       
  9900 
       
  9901 /** Defines the SMS bearer.
       
  9902 
       
  9903 Modes: GSM */
       
  9904 	enum TMobileSmsBearer
       
  9905 		{
       
  9906 	/** SMS messages will only be sent over a packet-switched (GPRS) network. */
       
  9907 		ESmsBearerPacketOnly,
       
  9908 	/** SMS messages will only be sent over a circuit-switched (GSM) network. */
       
  9909 		ESmsBearerCircuitOnly,
       
  9910 	/** SMS messages will be sent over the packet-switched (GPRS) network if possible, 
       
  9911 	otherwise over circuit-switched (GSM) network. */
       
  9912 		ESmsBearerPacketPreferred,
       
  9913 	/** SMS messages will be sent over the circuit-switched (GSM) network if possible, 
       
  9914 	otherwise over packet-switched (GPRS) network. */
       
  9915 		ESmsBearerCircuitPreferred
       
  9916 		};
       
  9917 
       
  9918 	IMPORT_C void SetMoSmsBearer(TRequestStatus& aReqStatus, TMobileSmsBearer aBearer) const;
       
  9919 	IMPORT_C TInt GetMoSmsBearer(TMobileSmsBearer& aBearer) const;
       
  9920 	IMPORT_C void NotifyMoSmsBearerChange(TRequestStatus& aReqStatus, TMobileSmsBearer& aBearer);
       
  9921 
       
  9922 	/***********************************************************************************/
       
  9923 	//
       
  9924 	// Get information on phone-side SMS storage
       
  9925 	//
       
  9926 	/***********************************************************************************/
       
  9927 
       
  9928 	IMPORT_C TInt EnumerateMessageStores(TInt& aCount) const;
       
  9929 	IMPORT_C void GetMessageStoreInfo(TRequestStatus& aReqStatus, TInt aIndex, TDes8& aInfo) const;
       
  9930 
       
  9931 	/***********************************************************************************/
       
  9932 	//
       
  9933 	// Read/Write SMS parameters to phone-side storage
       
  9934 	//
       
  9935 	/***********************************************************************************/
       
  9936 
       
  9937 	enum { KMaxSmspTextSize=30 };
       
  9938 
       
  9939 /** Defines the valid SMS parameters store.
       
  9940 
       
  9941 Modes: GSM/WCDMA
       
  9942 
       
  9943 @see TMobileSmspEntryV1 */
       
  9944 	enum TMobileSmspStoreValidParams
       
  9945 		{
       
  9946 	/** The entry includes a valid iDestination field. */
       
  9947 		KDestinationIncluded=0x00000001,
       
  9948 	/** The entry includes a valid iServiceCentre field. */
       
  9949 		KSCAIncluded=0x00000002,
       
  9950 	/** The entry includes a valid iProtocolId field. */
       
  9951 		KProtocolIdIncluded=0x00000004,
       
  9952 	/** The entry includes a valid iDcs field. */
       
  9953 		KDcsIncluded=0x00000008,
       
  9954 	/** The entry includes a valid iValidityPeriod field. */
       
  9955 		KValidityPeriodIncluded=0x00000010
       
  9956  		};
       
  9957 
       
  9958 	class TMobileSmspEntryV1 : public RMobilePhone::TMultimodeType
       
  9959 
       
  9960 	/** Defines a set of SMS parameters. 
       
  9961 	@publishedPartner
       
  9962 	@released
       
  9963 	*/
       
  9964 		{
       
  9965 	public:
       
  9966 		IMPORT_C TMobileSmspEntryV1();
       
  9967 	public:
       
  9968 		void InternalizeL(RReadStream& aStream);
       
  9969 		void ExternalizeL(RWriteStream& aStream) const;
       
  9970 	public:
       
  9971 	/** The slot index where this SMSP entry is stored in the SIM's SMSP file. */
       
  9972 		TInt iIndex;
       
  9973 	/** A bit-wise sum of the constants defined in TMobileSmspStoreValidParams, that 
       
  9974 	specifies which parameters are valid within this entry. */
       
  9975 		TUint32	iValidParams;
       
  9976 	/** Default protocol ID. Coded according to GSM 03.40. */
       
  9977 		TUint8 iProtocolId;
       
  9978 	/** Default data coding scheme. Coded according to GSM 03.40. */
       
  9979 		TUint8 iDcs;
       
  9980 	/** Default validity period, in relative format and coded on 8 bits as defined 
       
  9981 	by GSM 03.40. */
       
  9982 		TUint8 iValidityPeriod;
       
  9983 	/** Reserved for future use. */
       
  9984 		TUint8 iReservedFiller;
       
  9985 	/** Default destination for outgoing SMS.
       
  9986 	
       
  9987 	@see RMobilePhone::TMobileAddress */
       
  9988 		RMobilePhone::TMobileAddress iDestination;
       
  9989 	/** Default service centre for outgoing SMS.
       
  9990 	
       
  9991 	@see RMobilePhone::TMobileAddress */
       
  9992 		RMobilePhone::TMobileAddress iServiceCentre;
       
  9993 	/** The alpha-tag associated with this SMSP entry, expressed as Unicode characters. */
       
  9994 		TBuf<KMaxSmspTextSize> iText;
       
  9995 		};
       
  9996 
       
  9997 /** A typedef'd packaged TMobileSmspEntryV1 for passing through a generic API member
       
  9998 function. */
       
  9999 	typedef TPckg<TMobileSmspEntryV1> TMobileSmspEntryV1Pckg;
       
 10000 	IMPORT_C void StoreSmspListL(TRequestStatus& aReqStatus, CMobilePhoneSmspList* aSmspList) const;
       
 10001 	IMPORT_C void NotifySmspListChange(TRequestStatus& aReqStatus) const;
       
 10002 
       
 10003 private:
       
 10004 	RMobileSmsMessaging(const RMobileSmsMessaging&);
       
 10005 	CSmsMessagingPtrHolder* iSmsMessagingPtrHolder;
       
 10006 protected:
       
 10007 	IMPORT_C void ConstructL();
       
 10008 	IMPORT_C void Destruct();
       
 10009 	};
       
 10010 
       
 10011 
       
 10012 /*********************************************************/
       
 10013 //
       
 10014 // Broadcast Messaging (RMobileBroadcastMessaging)
       
 10015 // 
       
 10016 /*********************************************************/
       
 10017 
       
 10018 
       
 10019 
       
 10020 class CMobilePhoneBroadcastIdList;
       
 10021 
       
 10022 class CCbsMessagingPtrHolder;
       
 10023 class RMobileBroadcastMessaging : public RTelSubSessionBase
       
 10024 /** This sub-session provides access to the broadcast message services provided 
       
 10025 by GSM/WCDMA and CDMA networks.
       
 10026 
       
 10027 Clients will open a RMobileBroadcastMessaging sub-session and then wait for 
       
 10028 incoming broadcast messages. The broadcast messages received can depend upon 
       
 10029 a "message filter" which defines the languages and/or identifiers of acceptable 
       
 10030 (or unacceptable) messages. This sub-session and the function members within 
       
 10031 this section must be supported if the TSY indicates that it supports the MobileBroadcastMessaging
       
 10032 functional unit. 
       
 10033 
       
 10034 @publishedPartner
       
 10035 @released*/
       
 10036 	{
       
 10037 public:
       
 10038 	
       
 10039 	friend class CRetrieveMobilePhoneBroadcastIdList;
       
 10040 
       
 10041 	IMPORT_C RMobileBroadcastMessaging();
       
 10042 
       
 10043 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 10044 	IMPORT_C void Close();
       
 10045 
       
 10046 	/***********************************************************************************/
       
 10047 	//
       
 10048 	// Broadcast messaging capabilities
       
 10049 	//
       
 10050 	/***********************************************************************************/
       
 10051 
       
 10052 /** Broadcast capabilities.
       
 10053 
       
 10054 Modes:GSM/WCDMA */
       
 10055 	enum TMobileBroadcastModeCaps
       
 10056 		{
       
 10057 	/** GSM 03.41 cell broadcast messages are supported.
       
 10058 	
       
 10059 	Modes:GSM/WCDMA */
       
 10060 		KCapsGsmTpduFormat = 0x00000001,
       
 10061 	/** IS-637-A broadcast messages are supported.
       
 10062 	
       
 10063 	Modes:CDMA 
       
 10064 	@deprecated 9.5
       
 10065 	*/
       
 10066 		KCapsCdmaTpduFormat = 0x00000002,
       
 10067 	/** 3GPP 25.324 Release 4 cell broadcast messages are supported.
       
 10068 	
       
 10069 	Modes: WCDMA */
       
 10070 		KCapsWcdmaTpduFormat = 0x00000004
       
 10071 		};
       
 10072 
       
 10073 /** Broadcast message filter capabilities.
       
 10074 
       
 10075 Modes: Common
       
 10076 
       
 10077 @see RMobileBroadcastMessaging::GetLanguageFilter() */
       
 10078 	enum TBroadcastMessagingFilterCaps
       
 10079 		{
       
 10080 	/** Phone supports switching broadcast messages on or off. This means the EbroadcastAcceptNone 
       
 10081 	and EBroadcastAcceptAll settings of TMobilePhoneBroadcastFilter are supported.
       
 10082 	
       
 10083 	Modes: Common */
       
 10084 		KCapsSimpleFilter = 0x00000001,
       
 10085 	/** Phone supports filtering of broadcast messages depending upon their language. 
       
 10086 	The language filter is a list of languages used only for broadcast filtering.
       
 10087 	
       
 10088 	Modes: Common
       
 10089 	
       
 10090 	@see RMobileBroadcastMessaging::GetLanguageFilter() */
       
 10091 		KCapsLangFilter = 0x00000002,
       
 10092 	/** Phone supports filtering of broadcast messages depending upon their subject. 
       
 10093 	The subject of a message is identified in GSM/WCDMA mode by the Cell Broadcast 
       
 10094 	Message Identifier (CBMI) and in CDMA mode by the Service Category.
       
 10095 	
       
 10096 	Modes: Common */
       
 10097 		KCapsIdFilter = 0x00000004
       
 10098 		};
       
 10099 
       
 10100 	
       
 10101 
       
 10102 	class TMobileBroadcastCapsV1 : public RMobilePhone::TMultimodeType
       
 10103 	/** Defines capabilities of Broadcast messaging. 
       
 10104 	@publishedPartner
       
 10105 	@released
       
 10106 	*/
       
 10107 		{
       
 10108 	public:
       
 10109 		IMPORT_C TMobileBroadcastCapsV1();
       
 10110 	public:
       
 10111 	/** Sum of TMobileBroadcastModeCaps constants.
       
 10112 	
       
 10113 	Modes: GSM/WCDMA */
       
 10114 		TUint32 iModeCaps;
       
 10115 	/** Sum of TBroadcastMessagingFilterCaps constants.
       
 10116 	
       
 10117 	Modes: GSM/WCDMA */
       
 10118 		TUint32 iFilterCaps;
       
 10119 		};
       
 10120 
       
 10121 /** A typedef'd packaged TMobileBroadcastCapsV1 for passing through a generic API 
       
 10122 function member. */
       
 10123 	typedef TPckg<TMobileBroadcastCapsV1> TMobileBroadcastCapsV1Pckg;
       
 10124 
       
 10125 	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
       
 10126 
       
 10127 /** Defines the broadcast attributes.
       
 10128 
       
 10129 Modes: Common */
       
 10130 	enum TMobileBroadcastAttributeFlags
       
 10131 		{
       
 10132 	/** The iFormat field is valid in the attribute class.
       
 10133 	
       
 10134 	Modes: Common */
       
 10135 		KBroadcastDataFormat = 0x00000001,
       
 10136 	/** The iServiceCategory field is valid in the attribute class.
       
 10137 	
       
 10138 	Modes: CDMA 
       
 10139 	@deprecated 9.5
       
 10140 	*/
       
 10141 		KCdmaServiceCategory = 0x00000002
       
 10142 		};
       
 10143 
       
 10144 /** The mobile broadcast data format, used byTMobileBroadcastAttributesV1.
       
 10145 
       
 10146 Modes: Common */
       
 10147 	enum TMobileBroadcastDataFormat
       
 10148 		{
       
 10149 	/** The message data format is not specified.
       
 10150 	
       
 10151 	Modes: Common */
       
 10152 		EFormatUnspecified,
       
 10153 	/** The message data format complies to a Cell Broadcast TPDU coded as 88 octets 
       
 10154 	(6 for header and 82 for message data) according to GSM 03.41.
       
 10155 	
       
 10156 	Modes: GSM/WCDMA */
       
 10157 		EFormatGsmTpdu,
       
 10158 	/** The message data format complies to IS-637-A encoding of the Bearer Data parameter 
       
 10159 	within the Transport Layer's SMS-Broadcast message.
       
 10160 	
       
 10161 	Modes: CDMA 
       
 10162 	@deprecated 9.5
       
 10163 	*/
       
 10164 		EFormatCdmaTpdu,
       
 10165 	/** The message data format complies to a Cell Broadcast TPDU coded as 1252 octets 
       
 10166 	(6 for header and a maximum of 1246 for message data) according to 3GPP 25.324.
       
 10167 	
       
 10168 	Modes: WCDMA */
       
 10169 		EFormatWcdmaTpdu
       
 10170 		};
       
 10171 
       
 10172 	
       
 10173 
       
 10174 	class TMobileBroadcastAttributesV1 : public RMobilePhone::TMultimodeType
       
 10175 	/** Defines attributes of a Broadcast message.
       
 10176 	@publishedPartner
       
 10177 	@released
       
 10178 	*/
       
 10179 		{
       
 10180 	public:
       
 10181 		IMPORT_C TMobileBroadcastAttributesV1();
       
 10182 	public:
       
 10183 	/** The bit-mask flags indicating which attributes are present in this instance.
       
 10184 	
       
 10185 	Modes: Common
       
 10186 	
       
 10187 	@see TMobileBroadcastAttributeFlags */
       
 10188 		TUint32	iFlags;
       
 10189 	/** Format of the message data buffer.
       
 10190 	
       
 10191 	Modes: Common
       
 10192 	
       
 10193 	@see TMobileBroadcastDataFormat */
       
 10194 		TMobileBroadcastDataFormat	iFormat;
       
 10195 	/** Service category of the message.
       
 10196 	
       
 10197 	Modes: CDMA 
       
 10198 	@deprecated 9.5 
       
 10199 	*/
       
 10200 		TInt iServiceCategory;
       
 10201 		};
       
 10202 
       
 10203 /** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic 
       
 10204 API function member. */
       
 10205 	typedef TPckg<TMobileBroadcastAttributesV1> TMobileBroadcastAttributesV1Pckg;
       
 10206 
       
 10207 
       
 10208 	
       
 10209 
       
 10210 	class TMobileBroadcastAttributesV2 : public TMobileBroadcastAttributesV1
       
 10211 	/** Defines attributes of a UMTS Broadcast message for version v2.0 of the API. 
       
 10212 	@publishedPartner
       
 10213 	@released
       
 10214 	*/
       
 10215 		{
       
 10216 	public:
       
 10217 		IMPORT_C TMobileBroadcastAttributesV2();
       
 10218 	public:
       
 10219 	/** The number of pages that the current broadcast message consists of. The maximum 
       
 10220 	number of pages for WCDMA Broadcast messages is 15. */
       
 10221 		TInt	 iNumberOfPages;
       
 10222 	/** This parameter is used to store the message type for this broadcast message. */
       
 10223 		TUint8	 iMessageType;
       
 10224 	/** This parameter is used to store the message id for this broadcast message.
       
 10225 	
       
 10226 	This parameter is used to store the serial number for this broadcast message.
       
 10227 	
       
 10228 	This parameter is used to store the data coding scheme for this broadcast 
       
 10229 	message. */
       
 10230 		TUint16	 iMessageId;
       
 10231 	/** This parameter is used to store the serial number for this broadcast message. */
       
 10232 		TUint16	 iSerialNum;
       
 10233 	/** This parameter is used to store the data coding scheme for this broadcast message. */
       
 10234 		TUint8	 iDCS;
       
 10235 		};
       
 10236 
       
 10237 /** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic 
       
 10238 API function member. */
       
 10239 	typedef TPckg<TMobileBroadcastAttributesV2> TMobileBroadcastAttributesV2Pckg;
       
 10240 
       
 10241 	/***********************************************************************************/
       
 10242 	//
       
 10243 	// Receiving broadcast messages
       
 10244  	//
       
 10245 	/***********************************************************************************/
       
 10246 
       
 10247 	/** A constant which defines the length of the buffer to be passed to ReceiveMessage.	
       
 10248 	
       
 10249 	This constant should be used for all message types: GSM, CDMA and WCDMA.*/
       
 10250 	enum
       
 10251 		{
       
 10252 		KBroadcastPageSize = 88	
       
 10253 		};
       
 10254 	
       
 10255 	/** Buffer for received messages. 
       
 10256 	
       
 10257 	This buffer should be used for all message types: GSM, CDMA and WCDMA.*/
       
 10258 	typedef TBuf8<KBroadcastPageSize> TBroadcastPageData;
       
 10259 
       
 10260 	/** Old buffer sizes.  KBroadcastPageSize should be used instead. */
       
 10261 	enum 
       
 10262 		{
       
 10263 		KGsmBroadcastDataSize = KBroadcastPageSize,
       
 10264 		/*
       
 10265 		 @deprecated 9.5
       
 10266 		 */
       
 10267 		KCdmaBroadcastDataSize = KBroadcastPageSize,
       
 10268 		KWCdmaBroadcastPageSize = KBroadcastPageSize
       
 10269 		};
       
 10270 
       
 10271 	/** Buffer for GSM messages.  TBroadcastPageData should be used instead. */
       
 10272 	typedef TBuf8<KGsmBroadcastDataSize>  TGsmBroadcastMessageData;
       
 10273 	/** Buffer for CDMA messages.  TBroadcastPageData should be used instead. 
       
 10274 	 @deprecated 9.5
       
 10275 	  */
       
 10276 	typedef TBuf8<KCdmaBroadcastDataSize> TCdmaBroadcastMessageData;
       
 10277 	/** Buffer for WCDMA messages.  TBroadcastPageData should be used instead. */
       
 10278 	typedef TBuf8<KWCdmaBroadcastPageSize> TWCdmaBroadcastPageData;
       
 10279 
       
 10280 	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
 10281 
       
 10282 	/***********************************************************************************/
       
 10283 	//
       
 10284 	// Filters
       
 10285 	//
       
 10286 	/***********************************************************************************/
       
 10287 
       
 10288 /** The filter settings of the mobile phone.
       
 10289 
       
 10290 Modes: Common */
       
 10291 	enum TMobilePhoneBroadcastFilter
       
 10292 		{
       
 10293 	/** The phone does not have a filter setting. */
       
 10294 		EBroadcastFilterUnspecified,
       
 10295 	/** The phone is not accepting any broadcast messages. */
       
 10296 		EBroadcastAcceptNone,
       
 10297 	/** The phone is accepting all broadcast messages. */
       
 10298 		EBroadcastAcceptAll,
       
 10299 	/** The phone is accepting those broadcast messages included within the language 
       
 10300 	and identifier filters. */
       
 10301 		EBroadcastAcceptFilter,
       
 10302 	/** The phone is rejecting those broadcast messages included within the language 
       
 10303 	or identifier filters. */
       
 10304 		EBroadcastRejectFilter
       
 10305 		};
       
 10306 
       
 10307 	IMPORT_C TInt GetFilterSetting(TMobilePhoneBroadcastFilter& aSetting) const;
       
 10308 	IMPORT_C void SetFilterSetting(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter aSetting) const;
       
 10309 	IMPORT_C void NotifyFilterSettingChange(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter& aSetting) const;
       
 10310 
       
 10311 	IMPORT_C void GetLanguageFilter(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
       
 10312 	IMPORT_C void SetLanguageFilter(TRequestStatus& aReqStatus, const TDesC16& aLangFilter) const;
       
 10313 	IMPORT_C void NotifyLanguageFilterChange(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
       
 10314 
       
 10315 	class TMobileBroadcastIdEntryV1 : public RMobilePhone::TMultimodeType
       
 10316 	/** In GSM - defines a Cell Broadcast Message Identifier (CBMI) list entry. In 
       
 10317 	CDMA - defines a Service Category list entry. 
       
 10318 	@publishedPartner
       
 10319 	@released
       
 10320 	*/
       
 10321 		{
       
 10322 	public:
       
 10323 		void InternalizeL(RReadStream& aStream);
       
 10324 		void ExternalizeL(RWriteStream& aStream) const;
       
 10325 		IMPORT_C TMobileBroadcastIdEntryV1();
       
 10326 	public:
       
 10327 	/** The value of the message identifier. */
       
 10328 		TUint16	iId;
       
 10329 		};
       
 10330 
       
 10331 /** Defines the broadcast types. */
       
 10332 	enum TMobileBroadcastIdType
       
 10333 		{
       
 10334 	/** GSM broadcast. */
       
 10335 		EGsmBroadcastId,
       
 10336 	/** CDMA broadcast.
       
 10337 	 @deprecated 9.5
       
 10338 	  */
       
 10339 		ECdmaBroadcastId
       
 10340 		};
       
 10341 
       
 10342 	IMPORT_C void StoreBroadcastIdListL(TRequestStatus& aReqStatus, CMobilePhoneBroadcastIdList* aIdList, TMobileBroadcastIdType aIdType);
       
 10343 	IMPORT_C void NotifyBroadcastIdListChange(TRequestStatus& aReqStatus) const;
       
 10344 
       
 10345 private:
       
 10346 	RMobileBroadcastMessaging(const RMobileBroadcastMessaging&);
       
 10347 	CCbsMessagingPtrHolder* iCbsMessagingPtrHolder;
       
 10348 protected:
       
 10349 	IMPORT_C void ConstructL();
       
 10350 	IMPORT_C void Destruct();
       
 10351 	};
       
 10352 
       
 10353 /*********************************************************/
       
 10354 //
       
 10355 // USSD Messaging (RMobileUssdMessaging)
       
 10356 // 
       
 10357 /*********************************************************/
       
 10358 
       
 10359 
       
 10360 
       
 10361 class CUssdMessagingPtrHolder;
       
 10362 class RMobileUssdMessaging : public RTelSubSessionBase
       
 10363 /** Provides client access to USSD functionality provided by TSY. 
       
 10364 */
       
 10365 	{
       
 10366 public:
       
 10367 	IMPORT_C RMobileUssdMessaging();
       
 10368 
       
 10369 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 10370 	IMPORT_C void Close();
       
 10371 
       
 10372 /** Defines the USSD Messaging Format Capabilities.
       
 10373 
       
 10374 Modes: GSM/WCDMA */
       
 10375 	enum TMobileUssdFormatCaps
       
 10376 		{
       
 10377 	/** USSD messages coded as a packed string within 160 octets, as defined for a 
       
 10378 	ussd-String within GSM 04.80 and GSM 03.38.
       
 10379 	
       
 10380 	Modes: GSM/WCDMA */
       
 10381 		KCapsPackedString=0x00000001
       
 10382 		};
       
 10383 
       
 10384 /** Defines the USSD Messaging Type Capabilities.
       
 10385 
       
 10386 Modes: GSM/WCDMA */
       
 10387 	enum TMobileUssdTypeCaps
       
 10388 		{
       
 10389 	/** Outgoing USSD messages are supported.
       
 10390 	
       
 10391 	Modes: GSM/WCDMA */
       
 10392 		KCapsMOUssd=0x00000001,
       
 10393 	/** Incoming USSD messages are supported.
       
 10394 	
       
 10395 	Modes: GSM/WCDMA */
       
 10396 		KCapsMTUssd=0x00000002
       
 10397 		};
       
 10398 
       
 10399 	
       
 10400 
       
 10401 	class TMobileUssdCapsV1 : public RMobilePhone::TMultimodeType
       
 10402 	/** Defines capabilities of USSD messaging. 
       
 10403 	@publishedPartner
       
 10404 	@released
       
 10405 	*/
       
 10406 		{
       
 10407 	public:
       
 10408 		IMPORT_C TMobileUssdCapsV1();
       
 10409 	/** Sum of TMobileUssdFormatCaps constants.
       
 10410 	
       
 10411 	Modes: GSM/WCDMA
       
 10412 
       
 10413 	@see TMobileUssdFormatCaps */
       
 10414 		TUint32 iUssdFormat;
       
 10415 	/** Sum of TMobileUssdTypeCaps constants.
       
 10416 	
       
 10417 	Modes: GSM/WCDMA
       
 10418 
       
 10419 	@see TMobileUssdTypeCaps */
       
 10420 		TUint32 iUssdTypes;
       
 10421 		};
       
 10422 
       
 10423 /** A typedef'd packaged TMobileUssdCapsV1 for passing through a generic API member 
       
 10424 function. */
       
 10425 	typedef TPckg<TMobileUssdCapsV1> TMobileUssdCapsV1Pckg;
       
 10426 
       
 10427 	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
       
 10428 
       
 10429 /** Defines the USSD Messaging Attributes.
       
 10430 
       
 10431 Modes: GSM/WCDMA
       
 10432 
       
 10433 @see TMobileUssdAttributesV1 */
       
 10434 	enum TMobileUssdAttributeFlags
       
 10435 		{
       
 10436 	/** The iFormat field is valid in the attribute class. */
       
 10437 		KUssdDataFormat = 0x00000001,
       
 10438 	/** The iType field is valid in the attribute class. */
       
 10439 		KUssdMessageType = 0x00000002,
       
 10440 	/** The iDcs field is valid in the attribute class. */
       
 10441 		KUssdMessageDcs = 0x00000004
       
 10442 		};
       
 10443 
       
 10444 /** Defines the USSD Data Formats.
       
 10445 
       
 10446 Modes: Common */
       
 10447 	enum TMobileUssdDataFormat
       
 10448 		{
       
 10449 	/** The message data format is unspecified.
       
 10450 	
       
 10451 	Modes: Common */
       
 10452 		EFormatUnspecified,
       
 10453 	/** The message data format complies to a USSD coded as 160 octets as defined for 
       
 10454 	a ussd-String within GSM 04.80 and GSM 03.38.
       
 10455 	
       
 10456 	Modes: GSM/WCDMA */
       
 10457 		EFormatPackedString
       
 10458 		};
       
 10459 
       
 10460 /** Defines the USSD Message Types.
       
 10461 
       
 10462 Modes: GSM/WCDMA */
       
 10463 	enum TMobileUssdMessageType
       
 10464 		{
       
 10465 	/** Message is an unknown type. */
       
 10466 		EUssdUnknown,
       
 10467 	/** Message is a mobile originated USSD request. The MS expects the network to 
       
 10468 	send a USSD MT reply. */
       
 10469 		EUssdMORequest,
       
 10470 	/** Message is a reply to a previously received network initiated USSD request. 
       
 10471 	It is a USSD MO reply. */
       
 10472 		EUssdMOReply,
       
 10473 	/** Message is a one-off network initiated USSD notification. The network expects the MS to
       
 10474 	send a USSD MO acknowledgement with empty message content. */
       
 10475 		EUssdMTNotify,
       
 10476 	/** Message is a network initiated USSD request. The network expects
       
 10477 	the MS to send a USSD MO reply. */
       
 10478 		EUssdMTRequest,
       
 10479 	/** Message is a network initiated reply to a previously sent MO USSD request. */
       
 10480 		EUssdMTReply,
       
 10481 	/** For acknowledging MT USSD notifications (empty message content). */
       
 10482 		EUssdMOAcknowledgement
       
 10483 		};
       
 10484 
       
 10485 	
       
 10486 
       
 10487 	class TMobileUssdAttributesV1 : public RMobilePhone::TMultimodeType
       
 10488 	/** Defines attributes of a USSD message. 
       
 10489 	@publishedPartner
       
 10490 	@released
       
 10491 	*/
       
 10492 		{
       
 10493 	public:
       
 10494 		IMPORT_C TMobileUssdAttributesV1();
       
 10495 	public:
       
 10496 	/** The TMobileUssdAttributeFlags bit-mask flags indicating which attributes are
       
 10497 	present in this instance.
       
 10498 	
       
 10499 	Modes: GSM/WCDMA
       
 10500 
       
 10501 	@see TMobileUssdAttributeFlags */
       
 10502 		TUint32 iFlags;
       
 10503 	/** Format of the message data buffer.
       
 10504 	
       
 10505 	Modes: GSM/WCDMA
       
 10506 	
       
 10507 	@see TMobileUssdDataFormat */
       
 10508 		TMobileUssdDataFormat iFormat;
       
 10509 	/** The type of USSD message.
       
 10510 	
       
 10511 	Modes: GSM/WCDMA
       
 10512 	
       
 10513 	@see TMobileUssdMessageType */
       
 10514 		TMobileUssdMessageType iType;
       
 10515 	/** The Data Coding Scheme of the USSD message.
       
 10516 	
       
 10517 	Modes: GSM/WCDMA */
       
 10518 		TUint8 iDcs;
       
 10519 		};
       
 10520 	
       
 10521 /** A typedef'd packaged TMobileUssdAttributesV1 for passing through a generic 
       
 10522 API member function. */
       
 10523 	typedef TPckg<TMobileUssdAttributesV1> TMobileUssdAttributesV1Pckg;
       
 10524 
       
 10525 	/***********************************************************************************/
       
 10526 	//
       
 10527 	// Receiving USSD messages
       
 10528  	//
       
 10529 	/***********************************************************************************/
       
 10530 
       
 10531 	enum 
       
 10532 		{
       
 10533 		KGsmUssdDataSize = 160
       
 10534 		};
       
 10535 
       
 10536 /** A typedef'd buffer to hold the message data. */
       
 10537 	typedef TBuf8<KGsmUssdDataSize> TGsmUssdMessageData;
       
 10538 
       
 10539 	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
 10540 
       
 10541 	/***********************************************************************************/
       
 10542 	//
       
 10543 	// Sending USSD messages
       
 10544 	//
       
 10545 	/***********************************************************************************/
       
 10546 
       
 10547 	IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
       
 10548 	IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
       
 10549 	
       
 10550 	IMPORT_C void SendRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const;
       
 10551 	IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const;
       
 10552 	IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
       
 10553 
       
 10554 private:
       
 10555 	RMobileUssdMessaging(const RMobileUssdMessaging&);
       
 10556 	CUssdMessagingPtrHolder* iUssdMessagingPtrHolder;
       
 10557 protected:
       
 10558 	IMPORT_C void ConstructL();
       
 10559 	IMPORT_C void Destruct();
       
 10560 	};
       
 10561 
       
 10562 
       
 10563 
       
 10564 /*********************************************************/
       
 10565 //
       
 10566 // SMS Message Storage (RMobileSmsStore)
       
 10567 //
       
 10568 /*********************************************************/
       
 10569 
       
 10570 
       
 10571 
       
 10572 class CSmsStorePtrHolder;
       
 10573 class CMobilePhoneSmsList;
       
 10574 class RMobileSmsStore : public RMobilePhoneStore
       
 10575 /** Provides client access to SMS storage functionality provided by TSY.
       
 10576 @publishedPartner
       
 10577 @released
       
 10578 */
       
 10579 	{
       
 10580 public:
       
 10581 
       
 10582 	IMPORT_C RMobileSmsStore();
       
 10583 	IMPORT_C TInt Open(RMobileSmsMessaging& aMessaging, const TDesC& aStoreName);
       
 10584 	IMPORT_C void Close();
       
 10585 
       
 10586 /** Defines the SMS Store Capabilities.
       
 10587 
       
 10588 Modes: Common */
       
 10589 	enum TMobileSmsStoreCaps
       
 10590 		{
       
 10591 	/** The store contains unread, incoming SMS entries.
       
 10592 	
       
 10593 	Modes: Common */
       
 10594 		KCapsUnreadMessages = 0x00000001,
       
 10595 	/** The store contains read, incoming SMS entries.
       
 10596 	
       
 10597 	Modes: Common */
       
 10598 		KCapsReadMessages = 0x00000002,
       
 10599 	/** The store contains sent SMS entries.
       
 10600 	
       
 10601 	Modes: Common */
       
 10602 		KCapsSentMessages = 0x00000004,
       
 10603 	/** The store contains un sent SMS entries. */
       
 10604 		KCapsUnsentMessages = 0x00000008,
       
 10605 	/** The store contains GSM SMS message entries – so TMobileGsmSmsEntryV1 class 
       
 10606 	should be used.
       
 10607 	
       
 10608 	Modes: GSM/WCDMA */
       
 10609 		KCapsGsmMessages = 0x00000010,
       
 10610 	/** The store contains CDMA SMS message entries – so TMobileCdmaSmsEntryV1 class 
       
 10611 	should be used.
       
 10612 	
       
 10613 	Modes: CDMA 
       
 10614 	@deprecated 9.5
       
 10615 	*/
       
 10616 		KCapsCdmaMessages = 0x00000020
       
 10617 		};
       
 10618 
       
 10619 /** Defines contents of a fixed-size, stored SMS entry.
       
 10620 
       
 10621 Modes: Common */
       
 10622 	enum TMobileSmsStoreStatus
       
 10623 		{
       
 10624 	/** The status of the SMS is unknown. */
       
 10625 		EStoredMessageUnknownStatus,
       
 10626 	/** The SMS is stored phone-side. It is an incoming message that has not been read 
       
 10627 	yet. */
       
 10628 		EStoredMessageUnread,
       
 10629 	/** The SMS is stored phone-side. It is an incoming message that has already been 
       
 10630 	read. */
       
 10631 		EStoredMessageRead,
       
 10632 	/** The SMS is stored phone-side. It is an outgoing message that has not been sent 
       
 10633 	yet. */
       
 10634 		EStoredMessageUnsent,
       
 10635 	/** The SMS is stored phone-side. It is an outgoing message that has already been 
       
 10636 	sent but a delivery/status report has either not been received yet or was 
       
 10637 	not requested in the first place. */
       
 10638 		EStoredMessageSent,
       
 10639 	/** The SMS is stored phone-side. It is an outgoing message that has already been 
       
 10640 	sent and a delivery/status report has been received */
       
 10641 		EStoredMessageDelivered
       
 10642 		};
       
 10643 
       
 10644 	//
       
 10645 	// Enum used by TSY to distinguish which SMS entry class is used by client
       
 10646 	//
       
 10647 
       
 10648 /** Used by TSY to distinguish which SMS entry class is used by client. */
       
 10649 	enum TMobileSmsEntryExtensionId
       
 10650 		{
       
 10651 	/** Type is unknown. */
       
 10652 		KETelMobileSmsEntryV1=KETelExtMultimodeV1,
       
 10653 	/** The iExtensionId contents indicate that the packaged class is a TMobileGsmSmsEntryV1.
       
 10654 	
       
 10655 	Also used to indicate that GSM SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */
       
 10656 		KETelMobileGsmSmsEntryV1,
       
 10657 	/** The iExtensionId contents indicate that the packaged class is a TMobileCdmaSmsEntryV1.
       
 10658 	
       
 10659 	Also used to indicate that CDMA SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. 
       
 10660 	@deprecated 9.5
       
 10661 	*/
       
 10662 		KETelMobileCdmaSmsEntryV1
       
 10663 		};
       
 10664 
       
 10665 	class TMobileSmsEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
 10666 	/** Defines contents of a fixed-size, stored SMS entry.
       
 10667 	@publishedPartner
       
 10668 	@released 
       
 10669 	*/
       
 10670 		{
       
 10671 	public:
       
 10672 		void InternalizeL(RReadStream& aStream);
       
 10673 		void ExternalizeL(RWriteStream& aStream) const;
       
 10674 	protected:
       
 10675 		TMobileSmsEntryV1();
       
 10676 	public:
       
 10677 	/** The status of the stored message.
       
 10678 	
       
 10679 	Modes: Common
       
 10680 	
       
 10681 	@see TMobileSmsStoreStatus */
       
 10682 		TMobileSmsStoreStatus	iMsgStatus;	
       
 10683 		};
       
 10684 
       
 10685 /** A typedef'd packaged TMobileSmsEntryV1 for passing through a generic API 
       
 10686 member function. */
       
 10687 	typedef TPckg<TMobileSmsEntryV1> TMobileSmsEntryV1Pckg;
       
 10688 	
       
 10689 	class TMobileGsmSmsEntryV1 : public TMobileSmsEntryV1
       
 10690 /** Defines contents of a fixed-size, stored GSM SMS entry.
       
 10691 @publishedPartner
       
 10692 @released */
       
 10693 		{
       
 10694 	public:
       
 10695 		void InternalizeL(RReadStream& aStream);
       
 10696 		void ExternalizeL(RWriteStream& aStream) const;
       
 10697 	public:
       
 10698 		IMPORT_C TMobileGsmSmsEntryV1();
       
 10699 	public:
       
 10700 	/** The service centre to use (or used) for the message.
       
 10701 	
       
 10702 	Modes: GSM/WCDMA
       
 10703 	
       
 10704 	@see RMobilePhone::TMobileAddress */
       
 10705 		RMobilePhone::TMobileAddress iServiceCentre;
       
 10706 	/** The GSM 03.40 TPDU.
       
 10707 	
       
 10708 	Modes: GSM/WCDMA
       
 10709 	
       
 10710 	@see RMobileSmsMessaging::TMobileSmsGsmTpdu */
       
 10711 		RMobileSmsMessaging::TMobileSmsGsmTpdu	iMsgData;	
       
 10712 		};
       
 10713 
       
 10714 /** A typedef'd packaged TMobileGsmSmsEntryV1 for passing through a generic API 
       
 10715 member function. */
       
 10716 	typedef TPckg<TMobileGsmSmsEntryV1> TMobileGsmSmsEntryV1Pckg;
       
 10717 
       
 10718 	class TMobileCdmaSmsEntryV1 : public TMobileSmsEntryV1
       
 10719 	/** Defines contents of a fixed-size, stored CDMA SMS entry. 
       
 10720 	@publishedPartner
       
 10721 	@released
       
 10722 	
       
 10723 	@deprecated 9.5
       
 10724 	*/
       
 10725 		{
       
 10726 	public:
       
 10727 		void InternalizeL(RReadStream& aStream);
       
 10728 		void ExternalizeL(RWriteStream& aStream) const;
       
 10729 	public:
       
 10730 		IMPORT_C TMobileCdmaSmsEntryV1();
       
 10731 	public:
       
 10732 	/** The teleservice identifier of the stored message.
       
 10733 	
       
 10734 	Modes: CDMA
       
 10735 	@deprecated 9.5
       
 10736 	 */
       
 10737 		TInt iTeleservice;
       
 10738 	/** The service category of the stored message.
       
 10739 	
       
 10740 	Modes: CDMA */
       
 10741 		TInt iServiceCategory;
       
 10742 	/** The remote party (destination or originator) of the stored message.
       
 10743 	
       
 10744 	Modes: CDMA
       
 10745 	
       
 10746 	@see RMobilePhone::TMobileAddress */
       
 10747 		RMobilePhone::TMobileAddress iRemoteParty;
       
 10748 	/** The teleservice layer bearer data of the stored message.
       
 10749 	
       
 10750 	Modes: CDMA
       
 10751 	
       
 10752 	@see RMobileSmsMessaging::TMobileSmsCdmaTpdu */
       
 10753 		RMobileSmsMessaging::TMobileSmsCdmaTpdu iMsgData;	
       
 10754 		};
       
 10755 
       
 10756 /** A typedef'd packaged TMobileCdmaSmsEntryV1 for passing through a generic API 
       
 10757 member function.
       
 10758 @deprecated 9.5 
       
 10759 */
       
 10760 	typedef TPckg<TMobileCdmaSmsEntryV1> TMobileCdmaSmsEntryV1Pckg;
       
 10761 
       
 10762 protected:
       
 10763 	IMPORT_C void ConstructL();
       
 10764 private:
       
 10765 	RMobileSmsStore(const RMobileSmsStore&);
       
 10766 	};
       
 10767 
       
 10768 /*********************************************************/
       
 10769 //
       
 10770 // NAM Storage (RMobileNamStore)
       
 10771 //
       
 10772 /*********************************************************/
       
 10773 
       
 10774 
       
 10775 
       
 10776 class CNamStorePtrHolder;
       
 10777 class CMobilePhoneNamList;
       
 10778 class CMobilePhoneNamListV4;
       
 10779 
       
 10780 class RMobileNamStore : public RMobilePhoneStore
       
 10781 /**
       
 10782 Provides client access to NAM storage functionality provided by TSY
       
 10783 
       
 10784 	@deprecated 9.5
       
 10785 
       
 10786 */
       
 10787 	{
       
 10788 public:
       
 10789 	IMPORT_C RMobileNamStore();
       
 10790 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 10791 	IMPORT_C void Close();
       
 10792 
       
 10793 
       
 10794 
       
 10795 	class TMobileNamStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
       
 10796 	/**
       
 10797 	Defines information about a NAM store
       
 10798 	
       
 10799 	@publishedPartner
       
 10800     @released
       
 10801 	*/
       
 10802 		{
       
 10803 	public:
       
 10804 		IMPORT_C TMobileNamStoreInfoV1();
       
 10805 	public:
       
 10806 	/** The number of enabled NAMs within the NAM store.
       
 10807 	
       
 10808 	Modes: CDMA */
       
 10809 		TInt iNamCount;
       
 10810 	/** The index of the NAM that is currently the active NAM, will be between 0 and 
       
 10811 	iNamCount-1.
       
 10812 	
       
 10813 	Modes: CDMA */
       
 10814 		TInt iActiveNam;
       
 10815 		};
       
 10816 
       
 10817 /** A typedef'd packaged TMobileNamStoreInfoV1 for passing through a generic API 
       
 10818 member function. */
       
 10819 	typedef TPckg<TMobileNamStoreInfoV1> TMobileNamStoreInfoV1Pckg;
       
 10820 
       
 10821 	IMPORT_C void SetActiveNam(TRequestStatus& aReqStatus, TInt aNamId) const;
       
 10822 
       
 10823 	enum
       
 10824 		{
       
 10825 		/* The original maximum NAM parameter size for a TMobileNamEntryV1 */
       
 10826 		KMaxNamParamSize = 64,
       
 10827 		/* Updated maximum NAM parameter size for TMobileNamEntryV4 */
       
 10828 		KMaxNamParamSizeV4 = 256
       
 10829 		};
       
 10830 
       
 10831 	class TMobileNamEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
 10832 	/**
       
 10833 	Defines contents of a NAM store entry
       
 10834 	
       
 10835 	@publishedPartner
       
 10836 	@released
       
 10837 	*/
       
 10838 		{
       
 10839 	public:
       
 10840 		IMPORT_C TMobileNamEntryV1();
       
 10841 	public:
       
 10842 		void InternalizeL(RReadStream& aStream);
       
 10843 		void ExternalizeL(RWriteStream& aStream) const;
       
 10844 	public:
       
 10845 	/** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfoV1::iNamCount-1.
       
 10846 	
       
 10847 	Modes: CDMA */
       
 10848 		TInt iNamId;
       
 10849 	/** The identifier of the NAM parameter to be accessed.
       
 10850 	
       
 10851 	TSY must define values of parameter identifiers.
       
 10852 	
       
 10853 	Modes: CDMA */
       
 10854 		TInt iParamIdentifier;
       
 10855 	/** The data contents of the selected parameter.
       
 10856 	
       
 10857 	Modes: CDMA
       
 10858 	
       
 10859 	@see KMaxNamParamSize */
       
 10860 		TBuf8<KMaxNamParamSize> iData;
       
 10861 		};
       
 10862 
       
 10863 	/** A typedef'd packaged TMobileNamEntryV1 for passing through a generic API member 
       
 10864 	function. */
       
 10865 	typedef TPckg<TMobileNamEntryV1> TMobileNamEntryV1Pckg;
       
 10866 
       
 10867 	/** Enumeration for the standard NAM parameters (see 3GPP2 C.S0005-A appendix F.3)
       
 10868 	Modes: CDMA */
       
 10869 	enum TStandardNamParameters
       
 10870 		{
       
 10871 		/** The 64-bit pattern stored in the Mobile Station and 
       
 10872 			Home Location Register/Authentication Centre used to generate/update the 
       
 10873 			mobile station’s Shared Secret Data
       
 10874 			Corresponds to NAM Indicator 'A_KEY' */
       
 10875 		EAKey,
       
 10876 		/** 64-bit key used for authentication
       
 10877 			Corresponds to NAM Indicator 'SSD_A(s-p)' */
       
 10878 		ESharedSecretDataA,
       
 10879 		/** 64-bit key used as input to generate encryption mask and long code
       
 10880 			Corresponds to NAM Indicator 'SSD_B(s-p)' */
       
 10881 		ESharedSecretDataB,
       
 10882 		/** Modulo-64 event counter maintained by the mobile station and Authentication Center 
       
 10883 			used for clone detection
       
 10884 			Corresponds to NAM Indicator 'COUNT(s-p)' */
       
 10885 		EParameterUpdateReceivedCount,
       
 10886 		/** Class of the International Mobile Station Identity (IMSI) containing a MIN as 
       
 10887 			the lower 10 digits 
       
 10888 			Corresponds to NAM Indicator 'IMSI_M_CLASS(p)' */
       
 10889 		EMinBasedImsiClass,
       
 10890 		/** The class of the International Mobile Station Identity (IMSI) not containing a MIN as 
       
 10891 			the lower 10 digits 
       
 10892 			Corresponds to NAM Indicator 'IMSI_T_CLASS(p)' */
       
 10893 		ETrueImsiClass,
       
 10894 		/** 34-bit number derived from the IMSI M used as input for authentication
       
 10895 			Corresponds to NAM Indicator 'IMSI_M_S(p)' */
       
 10896 		EMinBasedImsiS,
       
 10897 		/** 34-bit number derived from the IMSI T used as input for authentication
       
 10898 			Corresponds to NAM Indicator 'IMSI_T_S(p)' */
       
 10899 		ETrueImsiS,
       
 10900 		/** Number of digits in the IMSI M minus 4
       
 10901 			Corresponds to NAM Indicator 'IMSI_M_ADDR_NUM(p)' */
       
 10902 		EMinBasedImsiAddressNum,
       
 10903 		/** The number of digits in the IMSI T minus 4
       
 10904 			Corresponds to NAM Indicator 'IMSI_T_ADDR_NUM(p)' */
       
 10905 		ETrueImsiAddressNum,
       
 10906 		/** The 11th and 12th digits in the IMSI M
       
 10907 			Corresponds to NAM Indicator 'IMSI_M_11_12(p)' */
       
 10908 		EMinBasedImsiDigits11and12,
       
 10909 		/** The 11th and 12th digits in the IMSI T
       
 10910 			Corresponds to NAM Indicator 'IMSI_T_11_12(p)' */
       
 10911 		ETrueImsiDigits11and12,
       
 10912 		/** The country code for the IMSI M
       
 10913 			Corresponds to NAM Indicator 'MCC_M(p)' */
       
 10914 		EMinBasedMobileCountryCode,
       
 10915 		/** The country code for the IMSI T
       
 10916 			Corresponds to NAM Indicator 'MCC_T(p)' */
       
 10917 		ETrueMobileCountryCode,
       
 10918 		/** Up to 15 digit dialable number associated with the mobile station through a service 
       
 10919 			subscription
       
 10920 			Corresponds to NAM Indicator 'MDN(p)' */
       
 10921 		EMobileDirectoryNumber,
       
 10922 		/** 4-bit number giving the length of the assigning Temporary Mobile Station Identity (TMSI) zone 
       
 10923 			(can range from 1 to 8 octets)
       
 10924 			Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE_LEN(s-p)' */
       
 10925 		EAssigningTmsiZoneLen,
       
 10926 		/** Temporary Mobile Station Identity (TMSI) zone is an arbitrary set of base stations 
       
 10927 			for the administrative assignment of TMSI
       
 10928 			Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE(s-p)' */
       
 10929 		EAssigningTmsiZone,
       
 10930 		/** The uniquely assigned number to a mobile station inside a TMSI zone
       
 10931 			Corresponds to NAM Indicator 'TMSI_CODE(s-p)' */
       
 10932 		ETmsiCode,
       
 10933 		/** The expiration time used to automatically delete the assigned TMSI
       
 10934 			Corresponds to NAM Indicator 'TMSI_EXP_TIME(s-p)' */
       
 10935 		ETmsiExpTime,
       
 10936 		/** Mobile station's home System Id for 800MHz analog operation
       
 10937 			Corresponds to NAM Indicator 'HOME_SID(p)' */
       
 10938 		EHomeSystemIdAnalog,
       
 10939 		/** Mobile station's home System Id
       
 10940 			Corresponds to NAM Indicator 'SID(p)' */
       
 10941 		EHomeSystemId,
       
 10942 		/** Mobile station's home Network Id
       
 10943 			Corresponds to NAM Indicator 'NID(p)' */
       
 10944 		EHomeNetworkId,
       
 10945 		/** Mobile station is configured to receive mobile station terminated calls when 
       
 10946 			using a home (SID, NID) pair
       
 10947 			Corresponds to NAM Indicator 'MOB_TERM_HOME(p)' */
       
 10948 		EReceiveCallsHome,
       
 10949 		/** The mobile station is configured to receive mobile station terminated calls when 
       
 10950 			it is a foreign SID roamer
       
 10951 			Corresponds to NAM Indicator 'MOB_TERM_FOR_SID(p)' */
       
 10952 		EReceiveCallsForeignSystem,
       
 10953 		/** The mobile station is configured to receive mobile station terminated calls when 
       
 10954 			it is a foreign NID roamer
       
 10955 			Corresponds to NAM Indicator 'MOB_TERM_FOR_NID(p)' */
       
 10956 		EReceiveCallsForeignNetwork,
       
 10957 		/**	A TSY may use this as the first TSY-defined non-standard NAM parameter */
       
 10958 		ENumStandardNamParameters
       
 10959 		};
       
 10960 
       
 10961 	class TMobileNamEntryV4 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
 10962 	/**
       
 10963 	Defines contents of a NAM store entry
       
 10964 
       
 10965 	The differences between the original TMobileNamEntryV1, and updated TMobileNamEntryV4 are:
       
 10966 	- the maximum mobile NAM parameter size is KMaxNamParamSize(64) for TMobileNamEntryV1
       
 10967 	  and KMaxNamParamSizeV4(256) for TMobileNamEntryV4
       
 10968 	- TMobileNamEntryV4 defines a set of standard NAM parameters for the iParamIdentifier as
       
 10969 	  described in 3GPP2 C.S0005-A appendix F.3
       
 10970 	
       
 10971 	@publishedPartner
       
 10972 	@released
       
 10973 	*/
       
 10974 		{
       
 10975 	public:
       
 10976 		IMPORT_C TMobileNamEntryV4();
       
 10977 	public:
       
 10978 		void InternalizeL(RReadStream& aStream);
       
 10979 		void ExternalizeL(RWriteStream& aStream) const;
       
 10980 	public:
       
 10981 	/** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfo::iNamCount-1.
       
 10982 	
       
 10983 	Modes: CDMA */
       
 10984 		TInt iNamId;
       
 10985 
       
 10986 	/** The identifier of the NAM parameter to be accessed.
       
 10987 	iParamIdentifier will be a TStandardNamParameters value if a standard NAM parameter is being accessed, 
       
 10988 	however a TSY may support and define NAM parameters in addition to those given by TStandardNamParameters	
       
 10989 	Modes: CDMA */
       
 10990 		TInt iParamIdentifier;
       
 10991 
       
 10992 	/** The data contents of the selected parameter.
       
 10993 	
       
 10994 	Modes: CDMA
       
 10995 	
       
 10996 	@see KMaxNamParamSizeV4 */
       
 10997 		TBuf8<KMaxNamParamSizeV4> iData;
       
 10998 		};
       
 10999 
       
 11000 	/** A typedef'd packaged TMobileNamEntryV4 for passing through a generic API member 
       
 11001 	function. */
       
 11002 	typedef TPckg<TMobileNamEntryV4> TMobileNamEntryV4Pckg;
       
 11003 
       
 11004 	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamList* aNamList) const;
       
 11005 	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamListV4* aNamList) const;
       
 11006 
       
 11007 protected:
       
 11008 	IMPORT_C void ConstructL();
       
 11009 private:
       
 11010 	RMobileNamStore(const RMobileNamStore&);
       
 11011 	};
       
 11012 
       
 11013 
       
 11014 /*********************************************************/
       
 11015 //
       
 11016 // Own Number Storage (RMobileONStore)
       
 11017 //
       
 11018 /*********************************************************/
       
 11019 
       
 11020 
       
 11021 
       
 11022 class CONStorePtrHolder;
       
 11023 class CMobilePhoneONList;
       
 11024 	
       
 11025 class RMobileONStore : public RMobilePhoneStore
       
 11026 /**
       
 11027 Provides client access to Own Number storage functionality provided by TSY
       
 11028 
       
 11029 */
       
 11030 	{
       
 11031 public:
       
 11032 	IMPORT_C RMobileONStore();
       
 11033 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 11034 	IMPORT_C void Close();
       
 11035 
       
 11036 	
       
 11037 
       
 11038 	class TMobileONStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
       
 11039 	/**
       
 11040 	Defines information about an Own Number store
       
 11041 	
       
 11042 	@publishedPartner
       
 11043 	@released
       
 11044 	*/
       
 11045 		{
       
 11046 	public:
       
 11047 		IMPORT_C TMobileONStoreInfoV1();
       
 11048 	public:
       
 11049 	/** The maximum length of the own phone number can be. */
       
 11050 		TInt iNumberLen;
       
 11051 	/** The maximum length the text field can be. */
       
 11052 		TInt iTextLen;
       
 11053 		};
       
 11054 
       
 11055 /** A typedef'd packaged TMobileONStoreInfoV1 for passing through a generic API 
       
 11056 member function. */
       
 11057 	typedef TPckg<TMobileONStoreInfoV1> TMobileONStoreInfoV1Pckg;
       
 11058 
       
 11059 	enum
       
 11060 		{
       
 11061 		KOwnNumberTextSize = 20
       
 11062 		};
       
 11063 
       
 11064 	
       
 11065 
       
 11066 	class TMobileONEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
 11067 	/**
       
 11068 	Defines contents of a Own Number store entry
       
 11069 	
       
 11070 	@publishedPartner
       
 11071 	@released
       
 11072 	*/
       
 11073 		{
       
 11074 	public:
       
 11075 		IMPORT_C TMobileONEntryV1();
       
 11076 	public:
       
 11077 		void InternalizeL(RReadStream& aStream);
       
 11078 		void ExternalizeL(RWriteStream& aStream) const;
       
 11079 	public:
       
 11080 	/** Network mode. */
       
 11081 		RMobilePhone::TMobilePhoneNetworkMode iMode;
       
 11082 	/** Mobile call service type.
       
 11083 	
       
 11084 	@see RMobilePhone::TMobileService */
       
 11085 		RMobilePhone::TMobileService iService;
       
 11086 	/** Own number.
       
 11087 	
       
 11088 	@see RMobilePhone::TMobileAddress */
       
 11089 		RMobilePhone::TMobileAddress iNumber;
       
 11090 	/** The name-tag associated with own number (e.g. "Voice Number"). */
       
 11091 		TBuf<KOwnNumberTextSize> iText;
       
 11092 		};
       
 11093 
       
 11094 /** A typedef'd packaged TMobileONEntryV1 for passing through a generic API member 
       
 11095 function. */
       
 11096 	typedef TPckg<TMobileONEntryV1> TMobileONEntryV1Pckg;
       
 11097 
       
 11098 	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, CMobilePhoneONList* aONList) const;
       
 11099 
       
 11100 protected:
       
 11101 	IMPORT_C void ConstructL();
       
 11102 private:
       
 11103 	RMobileONStore(const RMobileONStore&);
       
 11104 	};
       
 11105 
       
 11106 /*********************************************************/
       
 11107 //
       
 11108 // Emergency Number Storage (RMobileENStore)
       
 11109 //
       
 11110 /*********************************************************/
       
 11111 
       
 11112 
       
 11113 
       
 11114 class CMobilePhoneENList;
       
 11115 
       
 11116 class RMobileENStore : public RMobilePhoneStore
       
 11117 /**
       
 11118 Provides client access to Emergency Number storage functionality provided by TSY
       
 11119 
       
 11120 */
       
 11121 	{
       
 11122 public:
       
 11123 	IMPORT_C RMobileENStore();
       
 11124 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 11125 	IMPORT_C void Close();
       
 11126 
       
 11127 	enum 
       
 11128 		{
       
 11129 		KEmergencyNumberSize  = 6,
       
 11130 		KEmergencyAlphaTagSize = 20
       
 11131 		};
       
 11132 
       
 11133 /** Enumerated list of Emergency Number entries.
       
 11134 
       
 11135 Mode: WCDMA */
       
 11136 	enum TMobilePhoneENServiceCategory
       
 11137 		{
       
 11138 	/** This number provides emergency care by the police department. */
       
 11139 		KServiceCatPolice =0x0001,
       
 11140 	/** This number provides emergency care by the ambulance department. */
       
 11141 		KServiceCatAmbulance =0x0002,
       
 11142 	/** This number provides emergency care by the fire brigade department. */
       
 11143 		KServiceCatFireBrigade =0x0004,
       
 11144 	/** This number provides emergency care by the marine guard department. */
       
 11145 		KServiceCatMarineGuard =0x0008,
       
 11146 	/** This number provides emergency care by the mountain rescue department. */
       
 11147 		KServiceCatMountainRescue =0x0010
       
 11148 		// Reserved types: 0x0020,0x0040,
       
 11149 		};
       
 11150 
       
 11151 	
       
 11152 
       
 11153 /** Buffer to hold the emergency number in. */
       
 11154 	typedef TBuf<KEmergencyNumberSize> TEmergencyNumber;
       
 11155 
       
 11156 	class TMobileENEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
       
 11157 	/**
       
 11158 	Defines contents of a Emergency Number store entry
       
 11159 	@publishedPartner
       
 11160 	@released
       
 11161 	*/
       
 11162 		{
       
 11163 	public:
       
 11164 		IMPORT_C TMobileENEntryV1();
       
 11165 	public:
       
 11166 		void InternalizeL(RReadStream& aStream);
       
 11167 		void ExternalizeL(RWriteStream& aStream) const;
       
 11168 	public:
       
 11169 	/** Indicates whether the emergency number is applicable in all situations (=EFalse) 
       
 11170 	or only when the MS is registered to a specific GSM or CDMA network (=ETrue). */
       
 11171 		TBool iNetworkSpecific;
       
 11172 	/** The network mode. Only applicable if iNetworkSpecific equals ETrue.
       
 11173 
       
 11174 	Modes: Common
       
 11175 	
       
 11176 	@see RMobilePhone::TMobilePhoneNetworkMode */
       
 11177 		RMobilePhone::TMobilePhoneNetworkMode iMode;
       
 11178 	/** Country code. Only applicable if iNetworkSpecific equals ETrue.
       
 11179 	
       
 11180 	Modes: Common
       
 11181 	
       
 11182 	@see RMobilePhone::TMobilePhoneNetworkCountryCode */
       
 11183 		RMobilePhone::TMobilePhoneNetworkCountryCode iCountryCode;
       
 11184 	/** Network identity. Only applicable if iNetworkSpecific equals ETrue.
       
 11185 	
       
 11186 	Modes: Common
       
 11187 	
       
 11188 	@see RMobilePhone::TMobilePhoneNetworkIdentity */
       
 11189 		RMobilePhone::TMobilePhoneNetworkIdentity iIdentity;
       
 11190 	/** Emergency number.
       
 11191 	
       
 11192 	Modes: Common
       
 11193 	
       
 11194 	@see TEmergencyNumber */
       
 11195 		TEmergencyNumber             iNumber;
       
 11196 	/** Emergency call number type. It is used to display information about the dialed 
       
 11197 	emergency number (e.g. "Police", "Ambulance", "Fire brigade", etc.)
       
 11198 	
       
 11199 	Modes: WCDMA */
       
 11200 		TBuf<KEmergencyAlphaTagSize> iAlphaId;
       
 11201 		//TInt should map to TMobilePhoneENServiceCategory.
       
 11202 		//It was not changed to maintain source compatibility
       
 11203 		
       
 11204 	/** Emergency call type indicator, which contains information to be sent to the 
       
 11205 	network indicating the type of emergency call.
       
 11206 	
       
 11207 	The field is for future reference only and it is set to RFU (Reserved for
       
 11208 	Future Use) as it is currently not being used, as specified in section 4.2.21 
       
 11209 	TS 31.102 v3.3.0 Rel 99.
       
 11210 	
       
 11211 	Modes: WCDMA */
       
 11212 		TInt	                     iCallType; 
       
 11213 		};
       
 11214 
       
 11215 	typedef TPckg<TMobileENEntryV1> TMobileENEntryV1Pckg;
       
 11216 
       
 11217 protected:
       
 11218 	IMPORT_C void ConstructL();
       
 11219 private:
       
 11220 	RMobileENStore(const RMobileENStore&);
       
 11221 	};
       
 11222 
       
 11223 
       
 11224 /*********************************************************/
       
 11225 //
       
 11226 // RMobilePhoneBookStore 
       
 11227 //
       
 11228 /*********************************************************/
       
 11229 
       
 11230 
       
 11231 
       
 11232 class CPhoneBookStorePtrHolder;
       
 11233 class CMobilePhoneBookList;
       
 11234 
       
 11235 class RMobilePhoneBookStore : public RMobilePhoneStore
       
 11236 /** Provides member functions for clients to access phone 
       
 11237 books that are stored in ICC memory or in non-volatile memory on the phone 
       
 11238 itself. This sub-session and the member functions within this section must 
       
 11239 be supported if the TSY indicates that it supports the MobilePhonebookStore 
       
 11240 functional unit.
       
 11241 @publishedPartner
       
 11242 @released 
       
 11243 */
       
 11244 	{
       
 11245 public:
       
 11246 	IMPORT_C RMobilePhoneBookStore();
       
 11247 	IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore);
       
 11248 	IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore, const TDesC& aMode);
       
 11249 	IMPORT_C void Close();
       
 11250 
       
 11251 /** Describes the specialized phone book capabilities.
       
 11252 
       
 11253 Modes: Common */
       
 11254 	enum TMobilePhoneBookCaps
       
 11255 		{
       
 11256 	/** New entries can only be written to (or deleted from) the phone book with the 
       
 11257 	PIN2 password or equivalent.
       
 11258 	
       
 11259 	Modes: Common */
       
 11260 		KCapsRestrictedWriteAccess = 0x00000001,
       
 11261 	/** The phonebook supports the second name field.
       
 11262 	
       
 11263 	Modes: WCDMA */
       
 11264 		KCapsSecondNameUsed        = 0x00000002,
       
 11265 	/** The phonebook supports the additional number (with optional Text, TON, NPI 
       
 11266 	and Bearer Capability) field.
       
 11267 	
       
 11268 	Modes: WCDMA */
       
 11269 		KCapsAdditionalNumUsed     = 0x00000004,
       
 11270 	/** The phonebook supports the group name field.
       
 11271 	
       
 11272 	Modes: WCDMA */
       
 11273 		KCapsGroupingUsed		   = 0x00000008,
       
 11274 	/** The phonebook supports entry control and hidden flag fields.
       
 11275 
       
 11276 	Modes: WCDMA */
       
 11277 		KCapsEntryControlUsed      = 0x00000010,
       
 11278 	/** The phonebook supports the email address field.
       
 11279 	
       
 11280 	Modes: WCDMA */
       
 11281 		KCapsEmailAddressUsed      = 0x00000020,
       
 11282 	/** The phonebook supports the bearer capability IE field.
       
 11283 	
       
 11284 	Modes: WCDMA */
       
 11285 		KCapsBearerCapUsed		   = 0x00000040,
       
 11286 	/** The phonebook supports retrieval of the phonebook's PBID and Change Counter 
       
 11287 	- and for each entry its UID field.
       
 11288 	
       
 11289 	Modes: WCDMA */
       
 11290 		KCapsSynchronisationUsed   = 0x00000080
       
 11291 		};
       
 11292 
       
 11293 /** Described the location of the phone book.
       
 11294 
       
 11295 Modes: Common for all */
       
 11296 	enum TMobilePhoneBookLocation
       
 11297 		{
       
 11298 	/** The phonebook's location is unknown. */
       
 11299 		ELocationUnknown,
       
 11300 	/** The phonebook is located in ICC (SIM/R-UIM) memory. */
       
 11301 		ELocationIccMemory,
       
 11302 	/** The phonebook is located in Phone (ME) memory. */
       
 11303 		ELocationPhoneMemory,
       
 11304 	/** The phonebook is located in an external memory. */
       
 11305 		ELocationExternalMemory,
       
 11306 	/** The phonebook entries are dispersed over a combination of memory locations. */
       
 11307 		ELocationCombinedMemory
       
 11308 		};
       
 11309 
       
 11310 	enum
       
 11311 		{
       
 11312 		KMaxPBIDSize=15
       
 11313 		};
       
 11314 
       
 11315 /** Defines a modifiable buffer descriptor to contain the phone book identity. 
       
 11316 Used in TMobilePhoneBookInfoV1. */
       
 11317 	typedef TBuf8<KMaxPBIDSize> TMobilePhoneBookIdentity;
       
 11318 
       
 11319 	
       
 11320 
       
 11321 	class TMobilePhoneBookInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
       
 11322 	/**
       
 11323 	Defines information about a Phonebook store.
       
 11324 	@publishedPartner
       
 11325 	@released
       
 11326 	*/
       
 11327 		{
       
 11328 	public:
       
 11329 	/** Trivial constructor. Initializes iMaxNumLength=-1; iMaxTextLength=-1; iLocation=ELocationUnknown; 
       
 11330 	iChangeCounter=0; iExtensionId=KETelMobilePhonebookStoreV1; */
       
 11331 		IMPORT_C TMobilePhoneBookInfoV1();
       
 11332 	public:
       
 11333 	/** The maximum number of characters for the number in a phonebook entry.
       
 11334 	
       
 11335 	Modes: Common */
       
 11336 		TInt    iMaxNumLength;
       
 11337 	/** The maximum number of characters for the text tag in a phonebook entry.
       
 11338 	
       
 11339 	Modes: Common */
       
 11340 		TInt    iMaxTextLength;
       
 11341 	/** The memory location of this phonebook.
       
 11342 	
       
 11343 	Modes: Common
       
 11344 	
       
 11345 	@see TMobilePhoneBookLocation */
       
 11346 		TMobilePhoneBookLocation iLocation;
       
 11347 	/** The contents of the Change Counter file in a USIM phonebook.
       
 11348 	
       
 11349 	Modes: WCDMA */
       
 11350 		TUint16 iChangeCounter;
       
 11351 	/** A unique identity for this type of phonebook.
       
 11352 	
       
 11353 	If this is a SIM or R-UIM phonebook then it will equal the ICCID of the card.
       
 11354 	
       
 11355 	If this is a USIM phonebook then it will equal the PBID of the phonebook. 
       
 11356 	
       
 11357 	Modes: Common
       
 11358 	
       
 11359 	@see TMobilePhoneBookIdentity */
       
 11360 		TMobilePhoneBookIdentity iIdentity; 
       
 11361 		};
       
 11362 
       
 11363 /** Packages the TMobilePhoneBookInfoV1 into a TMobilePhoneBookInfoV1Pckg. */
       
 11364 	typedef TPckg<TMobilePhoneBookInfoV1> TMobilePhoneBookInfoV1Pckg;
       
 11365 
       
 11366 	
       
 11367 	class TMobilePhoneBookInfoV2 : public TMobilePhoneBookInfoV1
       
 11368 /** Defines information about a Phonebook store for version v2.0 of the API.
       
 11369 @publishedPartner
       
 11370 @released */
       
 11371 		{
       
 11372 	public:
       
 11373 		IMPORT_C TMobilePhoneBookInfoV2();
       
 11374 	public:
       
 11375 	/** The type of the phonebook which relates to its location (ICC/UICC/CDMA).
       
 11376 	
       
 11377 	Mode: Common */
       
 11378 		TName iPhBkMode; 
       
 11379 		};
       
 11380 
       
 11381 /** Packages the TMobilePhoneBookInfoV2 into a TMobilePhoneBookInfoV1Pckg. */
       
 11382 	typedef TPckg<TMobilePhoneBookInfoV2> TMobilePhoneBookInfoV2Pckg;
       
 11383 
       
 11384 
       
 11385 	/** Defines information about a Phonebook store for version v5.0 of the API.
       
 11386 
       
 11387 	Extends the v2.0 API to allow additional information about the phonebook
       
 11388 	(Maximum number of second name fields, Maximum number of additional number fields,
       
 11389 	Maximum number of additional group name fields, Maximum number of email address fields)
       
 11390 	to be retieved where available. 
       
 11391 
       
 11392 	@publishedPartner
       
 11393 	@released*/
       
 11394 	class TMobilePhoneBookInfoV5 : public TMobilePhoneBookInfoV2
       
 11395 		{
       
 11396 	public:
       
 11397 		IMPORT_C TMobilePhoneBookInfoV5();
       
 11398 	public:
       
 11399 		/** The maximum number of Second Name fields that can be used. */
       
 11400 		TInt iMaxSecondNames;
       
 11401 		
       
 11402 		/** The maximum text length for Second Name fields. */
       
 11403 		TInt iMaxTextLengthSecondName;
       
 11404 
       
 11405 		/** The maximum number of additional number fields that can be used. */
       
 11406 		TInt iMaxAdditionalNumbers;
       
 11407 		
       
 11408 		/** The maximum number length for Additional Number fields. */
       
 11409 		TInt iMaxNumLengthAdditionalNumber;
       
 11410 		
       
 11411 		/** The maximum text length for Additonal Number fields. */
       
 11412 		TInt iMaxTextLengthAdditionalNumber;
       
 11413 
       
 11414 		/** The maximum number of additional Group Name fields that can be used. */
       
 11415 		TInt iMaxGroupNames;
       
 11416 		
       
 11417 		/** The maximum text length for Group Name fields. */
       
 11418 		TInt iMaxTextLengthGroupName;
       
 11419 		
       
 11420 		/** The maximum number of additional E-Mail address fields that can be used. */
       
 11421 		TInt iMaxEmailAddr;
       
 11422 		
       
 11423 		/** The maximum text length for Email Address fields. */
       
 11424 		TInt iMaxTextLengthEmailAddr;
       
 11425 		};
       
 11426 
       
 11427 	/** Packages the TMobilePhoneBookInfoV5 into a TMobilePhoneBookInfoV5Pckg. */
       
 11428 	typedef TPckg<TMobilePhoneBookInfoV5> TMobilePhoneBookInfoV5Pckg;
       
 11429 
       
 11430 
       
 11431 	// check these fields - not sure all are correct
       
 11432 /** The following Tag IDs are used to encode/decode the phonebook entries to/from 
       
 11433 the TLV format. Each field will have a unique identifier and will be followed 
       
 11434 by the field length. The type of data associated with the field is also specified 
       
 11435 below. 
       
 11436 
       
 11437 Some fields do not have any data and just serve as separators within the buffer 
       
 11438 - in these cases the Data Type column is set to not applicable (n/a).
       
 11439 
       
 11440 Modes: Common */
       
 11441 	enum TMobilePBFieldTags
       
 11442 		{
       
 11443 	/** Tag id for the beginning of a new phonebook entry.
       
 11444 	
       
 11445 	Data type: n/a.
       
 11446 	
       
 11447 	Modes: Common */
       
 11448 		ETagPBNewEntry		=0xA0,
       
 11449 	/** Tag id for the Unique ID field.
       
 11450 	
       
 11451 	Data type: TUint16
       
 11452 
       
 11453 	Modes: WCDMA */
       
 11454 		ETagPBUniqueId		=0xB0,
       
 11455 	/** Tag id for the Index within the ADN record.
       
 11456 	
       
 11457 	Data type: TUint16
       
 11458 
       
 11459 	Modes: Common */
       
 11460 		ETagPBAdnIndex		=0xC0,
       
 11461 	/** Tag id for a Text field within the ADN/ANR record.
       
 11462 	
       
 11463 	Data type: TDes16
       
 11464 	
       
 11465 	Modes: Common */
       
 11466 		ETagPBText			=0xC1,
       
 11467 	/** Tag id for a Number field within the ADN/ANR record.
       
 11468 	
       
 11469 	Data type: TDes16
       
 11470 	
       
 11471 	Modes: Common */
       
 11472 		ETagPBNumber		=0xC2,
       
 11473 	/** Tag id for a TON/NPI byte within the ADN/ANR record.
       
 11474 	
       
 11475 	Data type: TUint8
       
 11476 	
       
 11477 	Modes: Common */
       
 11478 		ETagPBTonNpi		=0xC3,
       
 11479 	/** Tag id for a Bearer Capability IE associated to the ADN/ANR record.
       
 11480 	
       
 11481 	Data type: TDes8
       
 11482 	
       
 11483 	Modes: GSM/WCDMA */
       
 11484 		ETagPBBearerCap		=0xC4,
       
 11485 	/** Tag id for the beginning of an Additional Number entry within the phonebook 
       
 11486 	entry.
       
 11487 	
       
 11488 	Data type: n/a
       
 11489 	
       
 11490 	Modes: WCDMA */
       
 11491 		ETagPBAnrStart		=0xC5,
       
 11492 	/** Tag id for the Second Name associated to the ADN record.
       
 11493 	
       
 11494 	Data type: TDes16
       
 11495 	
       
 11496 	Modes: WCDMA */
       
 11497 		ETagPBSecondName	=0xC6,
       
 11498 	/** Tag id for a Group Name associated to the ADN record.
       
 11499 	
       
 11500 	Data type:TDes16
       
 11501 	
       
 11502 	Modes: WCDMA */
       
 11503 		ETagPBGroupName		=0xC7,
       
 11504 	/** Tag id for an Email Address associated to the ADN record.
       
 11505 	
       
 11506 	Data type: TDes16
       
 11507 	
       
 11508 	Modes: WCDMA */
       
 11509 		ETagPBEmailAddress	=0xC8,
       
 11510 	/** Tag id for the Entry Control byte associated to the ADN record.
       
 11511 	
       
 11512 	Data type: TUint8
       
 11513 	
       
 11514 	Modes: WCDMA */
       
 11515 		ETagPBEntryControl	=0xC9,
       
 11516 	/** Tag id for the Hidden Information byte associated to the ADN record.
       
 11517 	
       
 11518 	Data type: TUint8
       
 11519 	
       
 11520 	Modes: WCDMA */
       
 11521 		ETagPBHiddenInfo	=0xCA,
       
 11522 		ETagPBDateTime		=0xCB,
       
 11523 		ETagPBDuration		=0xCC,
       
 11524 		ETagPBCallStatus	=0xCD,
       
 11525 		ETagPBEntryStatus	=0xCE
       
 11526 		};
       
 11527 
       
 11528 
       
 11529 	// API/TSY internal type
       
 11530 	struct TPBIndexAndNumEntries
       
 11531 /** A structure to hold the phone book index and number of entries. */
       
 11532 		{
       
 11533 	/** Index for the phone book. */
       
 11534 		TInt iIndex;
       
 11535 		TInt iNumSlots;
       
 11536 		};
       
 11537 
       
 11538 	IMPORT_C void Read(TRequestStatus& aReqStatus, TInt aIndex, TInt aNumSlots, TDes8& aPBData) const;
       
 11539 	IMPORT_C void Write(TRequestStatus& aReqStatus, const TDesC8& aPBData, TInt& aIndex) const;
       
 11540 
       
 11541 protected:
       
 11542 	IMPORT_C void ConstructL();
       
 11543 private:
       
 11544 	RMobilePhoneBookStore(const RMobilePhoneBookStore&);
       
 11545 	};
       
 11546 
       
 11547 /*********************************************************/
       
 11548 //
       
 11549 // RMobileConferenceCall
       
 11550 //
       
 11551 /*********************************************************/
       
 11552 
       
 11553 
       
 11554 
       
 11555 class CMobileConferenceCallPtrHolder;
       
 11556 
       
 11557 class RMobileConferenceCall : public RTelSubSessionBase
       
 11558 /** Provides access to conference call functionality provided by TSY.
       
 11559 
       
 11560 Conference calls allow users to conduct multi-connection voice calls, for example
       
 11561 simultaneous communication to more than one remote party. All participants 
       
 11562 within a conference call can hear and speak to each other. There is a controlling 
       
 11563 party that initiates and manages the conference.
       
 11564 
       
 11565 Conference calling is possible in both GSM and CDMA mode and the actions to 
       
 11566 initiate a 3-way conference are the same in either mode. However, GSM conference 
       
 11567 calls offer more functionality and the number of remote parties is limited 
       
 11568 in CDMA mode to 2 and in GSM mode to 5.
       
 11569 
       
 11570 The Multimode ETel API uses a new sub-session called RMobileConferenceCall 
       
 11571 as a model for a conference call. The conference call object will be an aggregation 
       
 11572 of all the RMobileCall objects that are part of the conference call. It will 
       
 11573 be possible for clients to manipulate both the conference call as a whole 
       
 11574 and individual calls within a conference call depending on the dynamic capabilities 
       
 11575 of each of these objects.
       
 11576 
       
 11577 Please note that RMobileConferenceCall is replacing the RCallGroup abstraction 
       
 11578 used in the GSM API. This was an optimisation decision. The call group abstraction 
       
 11579 placed a large burden on a TSY to create call groups, monitor the calls in 
       
 11580 each group and trigger notification when calls were added or moved, probably 
       
 11581 even when a conference call was not ongoing. Clients will probably only open 
       
 11582 a RMobileConferenceCall when the user has decided to make a conference call 
       
 11583 and by having just one object replace three call groups it will also reduce 
       
 11584 the number of notifications that would trigger in response to conference call 
       
 11585 events. With a view to the future, without call groups there are also no longer 
       
 11586 any restrictions to the allowed types of active calls (simultaneous, separate 
       
 11587 voice and data calls are possible).
       
 11588 
       
 11589 The methods within this section must be supported if the TSY supports MobileConferenceCall 
       
 11590 functional unit. 
       
 11591 
       
 11592 */
       
 11593 	{
       
 11594 public:
       
 11595 	IMPORT_C RMobileConferenceCall();
       
 11596 	IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 11597 	IMPORT_C void Close();
       
 11598 
       
 11599 /** Conference call capabilities. */
       
 11600 	enum TMobileConferenceCallCaps
       
 11601 		{
       
 11602 	/** Indicates that a conference call can be created. */
       
 11603 		KCapsCreate = 0x00000001,
       
 11604 	/** Indicates that a conference call can be terminated. */
       
 11605 		KCapsHangUp = 0x00000002,
       
 11606 	/** Indicates that a conference call exists and can be swapped to the opposite 
       
 11607 	state (active or hold). */
       
 11608 		KCapsSwap = 0x00000004
       
 11609 		};
       
 11610 
       
 11611 	IMPORT_C TInt GetCaps(TUint32& aCaps) const;
       
 11612 	IMPORT_C void NotifyCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
       
 11613 
       
 11614 	IMPORT_C void CreateConference(TRequestStatus& aReqStatus) const;
       
 11615 	IMPORT_C void AddCall(TRequestStatus& aReqStatus, const TName& aCallName) const;
       
 11616 	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
       
 11617 	IMPORT_C void HangUp(TRequestStatus& aReqStatus) const;
       
 11618 	IMPORT_C TInt EnumerateCalls(TInt& aCount) const;
       
 11619 	IMPORT_C TInt GetMobileCallInfo(TInt aIndex, TDes8& aCallInfo) const;
       
 11620 
       
 11621 /** Conference call status. */
       
 11622 	enum TMobileConferenceStatus
       
 11623 		{
       
 11624 	/** The conference call is in the idle state. */
       
 11625 		EConferenceIdle,
       
 11626 	/** The conference call is in the active, connected state. */
       
 11627 		EConferenceActive,
       
 11628 	/** The conference call is in the held, connected state. */
       
 11629 		EConferenceHold
       
 11630 		};
       
 11631 	
       
 11632 	IMPORT_C TInt GetConferenceStatus(TMobileConferenceStatus& aStatus) const;
       
 11633 	IMPORT_C void NotifyConferenceStatusChange(TRequestStatus& aReqStatus, TMobileConferenceStatus& aStatus) const;
       
 11634 
       
 11635 /** Conference events. */
       
 11636 	enum TMobileConferenceEvent
       
 11637 		{
       
 11638 	/** A call has been added to the conference. */
       
 11639 		EConferenceCallAdded,		// Name of the call added returned in aCallName
       
 11640 	/** A call has been removed from the conference. */
       
 11641 		EConferenceCallRemoved,		// Name of the call terminated returned in aCallName
       
 11642 	/** Names of the two calls used to build the conference call returned in aCallName. */
       
 11643 		EConferenceBuilt,		// Names of the two calls used to build the conference call returned in aCallName
       
 11644 	/** No name provided */
       
 11645 		EConferenceTerminated,	// No name provided
       
 11646 	/** No name provided. */
       
 11647 		EConferenceSwapped,		// No name provided
       
 11648 	/** Name of the call being seperated. */
       
 11649 		EConferenceSplit		// Name of the call being seperated
       
 11650 		};
       
 11651 
       
 11652 	IMPORT_C void NotifyConferenceEvent(TRequestStatus& aReqStatus, TMobileConferenceEvent& aEvent, TName& aCallName) const;
       
 11653 
       
 11654 private:
       
 11655 	CMobileConferenceCallPtrHolder* iMmPtrHolder;
       
 11656 	RMobileConferenceCall(const RMobileConferenceCall&);
       
 11657 protected:
       
 11658 	IMPORT_C void ConstructL();
       
 11659 	IMPORT_C void Destruct();
       
 11660 	};
       
 11661 
       
 11662 
       
 11663 //
       
 11664 //
       
 11665 // EAP-SIM Authentication functional unit
       
 11666 //
       
 11667 //
       
 11668 
       
 11669 class CMobileSmartCardEapPtrHolder;
       
 11670 
       
 11671 /**
       
 11672 This sub-session opens under RMobilePhone.
       
 11673 
       
 11674 RMobileSmartCardEap provides the client with access to a Smart Card
       
 11675 Application's EAP-capability (if one exists).
       
 11676 
       
 11677 (See ETSI TS 102.310 v6.2.0 and RFC3748)
       
 11678 
       
 11679 To submit authentication challenges or requests, a client must use
       
 11680 CAsyncSmartCardEapAuthentication in conjunction with this sub-session.
       
 11681 
       
 11682 @see CAsyncSmartCardEapAuthentication
       
 11683 @publishedPartner
       
 11684 @released
       
 11685 */
       
 11686 class RMobileSmartCardEap : public RTelSubSessionBase
       
 11687 	{
       
 11688 	friend class CAsyncSmartCardEapAuthentication;
       
 11689 
       
 11690 public:
       
 11691 	/**
       
 11692 	Class encapsulates EAP request packet data for authentication.
       
 11693 
       
 11694 	@see CAsyncSmartCardEapAuthentication
       
 11695 
       
 11696 	@publishedPartner
       
 11697 	@released
       
 11698 	*/
       
 11699 	class CEapAuthenticateRequestDataV6 : public CBase
       
 11700 		{
       
 11701 	public:
       
 11702 		IMPORT_C static CEapAuthenticateRequestDataV6* NewL();
       
 11703 		IMPORT_C virtual void ExternalizeL(TPtr8& aBuffer);
       
 11704 		IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer);
       
 11705 		IMPORT_C TUint VersionId() const;
       
 11706 		IMPORT_C TPtr8 GetEapReqPacket() const;
       
 11707 		IMPORT_C void SetEapReqPacketL(const TDesC8& aData);
       
 11708 		IMPORT_C ~CEapAuthenticateRequestDataV6();
       
 11709 
       
 11710 	private:
       
 11711 		CEapAuthenticateRequestDataV6();
       
 11712 		void ConstructL();
       
 11713 
       
 11714 	protected:
       
 11715 		/**
       
 11716 		ETelMM's supported version.
       
 11717 		*/
       
 11718 		TUint iVersionId;
       
 11719 
       
 11720 	public:
       
 11721 		/**
       
 11722 		EAP-request packet in a flat buffer.
       
 11723 		*/
       
 11724 		CBufFlat* iEapReqPacket;
       
 11725 		};
       
 11726 
       
 11727 	IMPORT_C RMobileSmartCardEap();
       
 11728 
       
 11729 	/**
       
 11730 	EAP types are represented by one byte for standard EAP methods, and
       
 11731 	eight bytes for extended methods.  Each byte specified in the
       
 11732 	TEapType buffer should represent one semi-octet.  Therefore, a
       
 11733 	maximum of 16-chars are needed for representing any possible EAP
       
 11734 	type.  (See section 5.2 of ETSI TS 102.310 v6.2.0.)
       
 11735 
       
 11736 	@see RMobileSmartCardEap::TEapType
       
 11737 
       
 11738 	@publishedPartner
       
 11739 	@released
       
 11740 	*/
       
 11741 	enum { KEapTypeSize = 16 };
       
 11742 
       
 11743 	/**
       
 11744 	A typedef'd buffer to hold the EAP type for the subsequent
       
 11745 	authentication that will be carried out on the Smart Card
       
 11746 	Application.
       
 11747 
       
 11748 	The value specified must correspond to the pre-allocated type
       
 11749 	identifiers for various EAPs (see
       
 11750 	http://www.iana.org/assignments/eap-numbers).  Some known values
       
 11751 	are given in etelmm.h.
       
 11752 
       
 11753 	The type must be specified in hexadecimal format, where each
       
 11754 	character represents one semi-octet.
       
 11755 
       
 11756 	@see KETelSmartCardEapTypeMD5
       
 11757 	@see KETelSmartCardEapTypeTLS
       
 11758 	@see KETelSmartCardEapTypeSIM
       
 11759 	@see KETelSmartCardEapTypeAKA
       
 11760 	@see KETelSmartCardEapTypeTTLS
       
 11761 	@see RMobileSmartCardEap::Open()
       
 11762 
       
 11763 	@publishedPartner
       
 11764 	@released
       
 11765 	*/
       
 11766 	typedef TBuf8<KEapTypeSize> TEapType;
       
 11767 
       
 11768 	IMPORT_C TInt Open(RMobilePhone& aPhone, const RMobilePhone::TAID& aAID, const TEapType& aEapType);
       
 11769 	IMPORT_C void InitialiseEapMethod(TRequestStatus& aReqStatus);
       
 11770 	IMPORT_C void Close();
       
 11771 
       
 11772 	/**
       
 11773 	Authentication status of the EAP supporting UICC application (See
       
 11774 	section 7.2 of ETSI TS 102.310 v6.2.0).  One of these values is
       
 11775 	returned on completion of an
       
 11776 	RMobileSmartCardEap::GetAuthenticationStatus() request.
       
 11777 
       
 11778 	@see RMobileSmartCardEap::GetAuthenticationStatus()
       
 11779 
       
 11780 	@publishedPartner
       
 11781 	@released
       
 11782 	*/
       
 11783 	enum TEapAuthStatus
       
 11784 		{
       
 11785 		/**
       
 11786 		No authentication started
       
 11787 		*/
       
 11788 		ENoAuthStarted,    // 0
       
 11789 		/**
       
 11790 		Authenticating
       
 11791 		*/
       
 11792 		EAuthenticating,   // 1
       
 11793 		/**
       
 11794 		Authentication complete
       
 11795 		*/
       
 11796 		EAuthenticated,    // 2
       
 11797 		/**
       
 11798 		Held (authentication failure)
       
 11799 		*/
       
 11800 		EHeld              // 3
       
 11801 		};
       
 11802 
       
 11803 	IMPORT_C void GetAuthenticationStatus(TRequestStatus& aReqStatus, TEapAuthStatus& aAuthStatus);
       
 11804 
       
 11805 	/**
       
 11806 	TEapUserIdType should be used to request an identity from EF_PUId
       
 11807 	or EF_Ps, when making an RMobileSmartCardEap::GetUserIdentity()
       
 11808 	request.
       
 11809 	(See sections 7.3 and 7.4, respectively, of ETSI TS	102.310 v6.2.0,
       
 11810 	and RFC2486 - The Network Access Identifier).
       
 11811 
       
 11812 	@see RMobileSmartCardEap::GetUserIdentity()
       
 11813 	@see RMobileSmartCardEap::TEapUserIdentityV6
       
 11814 
       
 11815 	@publishedPartner
       
 11816 	@released
       
 11817 	*/
       
 11818 	enum TEapUserIdType
       
 11819 		{
       
 11820 		/** Identity is permanent type */
       
 11821 		EPermanentIdentity,   // 0
       
 11822 		/** Identity is pseudonym type */
       
 11823 		EPseudonymIdentity    // 1
       
 11824 		};
       
 11825 
       
 11826 	/**
       
 11827 	Maximum permitted size of identity data.
       
 11828 	*/
       
 11829 	enum { KEapIdentityMaxSize = 255 };
       
 11830 
       
 11831 	/**
       
 11832 	EAP User Identity data.  Ids are stored in EF_PUId or EF_Ps
       
 11833 	(specified in sections 7.3 and 7.4, respectively, of ETSI TS
       
 11834 	102.310 v6.2.0).
       
 11835 
       
 11836 	@see RMobileSmartCardEap::GetUserIdentity()
       
 11837 
       
 11838 	@publishedPartner
       
 11839 	@released
       
 11840 	*/
       
 11841 	class TEapUserIdentityV6 : public RMobilePhone::TMultimodeType
       
 11842 		{
       
 11843 	public:
       
 11844 		IMPORT_C TEapUserIdentityV6();
       
 11845 	public:
       
 11846 		/**
       
 11847 		EAP-IDENTITY Data.
       
 11848 		*/
       
 11849 		TBuf8<KEapIdentityMaxSize> iEapId;
       
 11850 		};
       
 11851 
       
 11852 	/**
       
 11853 	A typedef'd packaged TEapUserIdentityV6 for passing through a
       
 11854 	generic API method.
       
 11855 
       
 11856 	@publishedPartner
       
 11857 	@released
       
 11858 	*/
       
 11859 	typedef TPckg<TEapUserIdentityV6> TEapUserIdentityV6Pckg;
       
 11860 
       
 11861 	IMPORT_C void GetUserIdentity(TRequestStatus& aReqStatus,
       
 11862 	                              TEapUserIdType aRequestedIdType,
       
 11863 	                              TDes8& aUserId);
       
 11864 
       
 11865 	/**
       
 11866 	TEapKeyV6 should be used to request one of (currently) two keys
       
 11867 	available on the EF_EAPKEYS of the UICC application (see section
       
 11868 	7.1 of ETSI TS 102.310 v6.2.0).  This enumeration type should be
       
 11869 	used in RMobileSmartCardEap::GetEapKey() to specify the key to be
       
 11870 	retrieved.
       
 11871 
       
 11872 	@see RMobileSmartCardEap::TEapKeyV6
       
 11873 	@see RMobileSmartCardEap::GetEapKey()
       
 11874 
       
 11875 	@publishedPartner
       
 11876 	@released
       
 11877 	*/
       
 11878 	enum TEapKeyTag
       
 11879 		{
       
 11880 		/**
       
 11881 		Used to request Master Session Key.
       
 11882 		*/
       
 11883 		EEapKeyMSK =  0x80,
       
 11884 		/**
       
 11885 		Used to request Extended Master Session Key.
       
 11886 		*/
       
 11887 		EEapKeyEMSK = 0x81
       
 11888 		};
       
 11889 
       
 11890 	/**
       
 11891 	Maximum size of an EAP Key stored on the DF_EAP's EF_EAPKEYS.
       
 11892 	255 as each key has a length that can be specified by exactly one
       
 11893 	byte (see section 7.1 of ETSI TS 102.310 v6.2.0).
       
 11894 
       
 11895 	@publishedPartner
       
 11896 	@released
       
 11897 	*/
       
 11898 	enum { KEapKeyMaxSize = 255 };
       
 11899 
       
 11900 	/** 
       
 11901 	EAP authentication key data.
       
 11902 
       
 11903 	@see RMobileSmartCardEap::GetEapKey()
       
 11904 
       
 11905 	@publishedPartner
       
 11906 	@released
       
 11907 	*/
       
 11908 	class TEapKeyV6 : public RMobilePhone::TMultimodeType
       
 11909 		{
       
 11910 	public:
       
 11911 		IMPORT_C TEapKeyV6();
       
 11912 	public:
       
 11913 		/**
       
 11914 		EAP-KEY Data.
       
 11915 		*/
       
 11916 		TBuf8<KEapKeyMaxSize> iEapKey;
       
 11917 		};
       
 11918 
       
 11919 	/**
       
 11920 	A typedef'd packaged TEapKeyV6 for passing through a generic API
       
 11921 	method.
       
 11922 
       
 11923 	@publishedPartner
       
 11924 	@released
       
 11925 	*/
       
 11926 	typedef TPckg<TEapKeyV6> TEapKeyV6Pckg;
       
 11927 
       
 11928 	IMPORT_C void GetEapKey(TRequestStatus& aReqStatus, const TEapKeyTag aRequestedKey, TDes8& aKey);
       
 11929 
       
 11930 	/**
       
 11931 	Status of the DF_EAP this subsession refers to.  The status is
       
 11932 	basically an indication of whether the DF is in use by another sub-
       
 11933 	session client instance.
       
 11934 
       
 11935 	NotifyEapMethodAccessStatusChange() will give a notification when
       
 11936 	the status changes.
       
 11937 
       
 11938 	Status will change when the first client calls
       
 11939 	InitialiseEapMethod() on this sub-session.  When the same client
       
 11940 	calls ReleaseEapMethod() (or Close()), the status will change
       
 11941 	again.  This allows mutually exclusive access to the DF_EAP.  All
       
 11942 	other RMobileSmartCardEap hanles will get an error if they attempt
       
 11943 	to make requests that access the same DF_EAP.
       
 11944 
       
 11945 	@see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange()
       
 11946 	@see RMobileSmartCardEap::ReleaseEapMethod()
       
 11947 	@see RMobileSmartCardEap::InitialiseEapMethod()
       
 11948 
       
 11949 	@publishedPartner
       
 11950 	@released
       
 11951 	*/
       
 11952 	enum TEapMethodAccessStatus
       
 11953 		{
       
 11954 		/**
       
 11955 		AID/DF_EAP has been reset, and the DF_EAP has not been
       
 11956 		initialised by any other instance of RMobileSmartCardEap.
       
 11957 		*/
       
 11958 		EEapMethodAvailable,
       
 11959 		/**
       
 11960 		Another instance of RMobileSmartCardEap has initialised first
       
 11961 		and taken ownership of the DF_EAP.  The DF_EAP is currently
       
 11962 		active and EAP requests can be made.
       
 11963 		*/
       
 11964 		EEapMethodInUseApplicationActive,
       
 11965 		/**
       
 11966 		This instance of RMobileSmartCardEap still owns the lock on the
       
 11967 		DF_EAP, but the application has been deactivated elsewhere.
       
 11968 		The client should re-initialise before making further EAP
       
 11969 		requests.
       
 11970 
       
 11971 		@see RMobileSmartCardEap::InitialiseEapMethod()
       
 11972 		*/
       
 11973 		EEapMethodInUseApplicationInactive,
       
 11974 		/**
       
 11975 		Lock on the DF_EAP has been released, but another DF_EAP method
       
 11976 		is in use under the same AID, thus, cannot reset/initialise
       
 11977 		this subsessions EAP method.  Client can only post a
       
 11978 		notification and wait till status changes to
       
 11979 		EEapMethodAvailable.
       
 11980 
       
 11981 		@see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange()
       
 11982 		*/
       
 11983 		EEapMethodUnableToInitialise
       
 11984 		};
       
 11985 
       
 11986 	IMPORT_C TInt ReleaseEapMethod();
       
 11987 	IMPORT_C TInt GetEapMethodAccessStatus(TEapMethodAccessStatus& aEapMethodStatus);
       
 11988 	IMPORT_C void NotifyEapMethodAccessStatusChange(TRequestStatus& aReqStatus, TEapMethodAccessStatus& aEapMethodStatus);
       
 11989 	IMPORT_C TBool IsEapMethodOwner() const;
       
 11990 
       
 11991 protected:
       
 11992 	IMPORT_C void ConstructL();
       
 11993 	IMPORT_C void Destruct();
       
 11994 
       
 11995 private:
       
 11996 	RMobileSmartCardEap(const RMobileSmartCardEap&);
       
 11997 
       
 11998 	TChar SeptChar(TInt aDigit);
       
 11999 	void ConvertBinToText(const TDesC8& aBinData, TDes& aText);
       
 12000 
       
 12001 private:
       
 12002 	/**
       
 12003 	Pointer Holder for the RMobileSmartCardEap sub-session requests.
       
 12004 	*/
       
 12005 	CMobileSmartCardEapPtrHolder* iMmPtrHolder;
       
 12006 	/**
       
 12007 	True if this object is the first to request	InitialiseEapMethod()
       
 12008 	on its <AID,EAPType> when the status is EEapMethodAvailable.
       
 12009 	I.e. True only for the instance of RMobileSmartCardEap that
       
 12010 	successfully passes the Wait() on iSemaphore.
       
 12011 	*/
       
 12012 	TBool iOwnsEapMethodLock;
       
 12013 	/**
       
 12014 	Semaphore is actually owned by TSY, and used by all instances of
       
 12015 	RMobileSmartCardEap	to stop multiple access to the same EAP method
       
 12016 	on any one application.
       
 12017 	*/
       
 12018 	RSemaphore iSemaphore;
       
 12019 
       
 12020 	};	// RMobileSmartCardEap
       
 12021 
       
 12022 //
       
 12023 //
       
 12024 // LCS-MO-LR AND LCS-MT-LR
       
 12025 //
       
 12026 //
       
 12027 class CMobileLocationServicesPtrHolder;
       
 12028 
       
 12029 /**
       
 12030 This sub-session opens under RMobilePhone.
       
 12031 
       
 12032 A new RMobileLocationServices class is used to add the ETelMM Support for Mobile Terminating Location Request,
       
 12033 Mobile Originating Location Requests, A-Gps assistance data for the LBS Framework.
       
 12034 
       
 12035 RMobileLocationServices is derived from RTelSubSessionBase.RMobileLocationServices lists the 
       
 12036 APIs,which provided the support for Mtlr, Molr, A-Gps assistance data requests.
       
 12037 */
       
 12038 class RMobileLocationServices : public RTelSubSessionBase
       
 12039 	{
       
 12040 public:
       
 12041 	
       
 12042 	IMPORT_C RMobileLocationServices();
       
 12043     IMPORT_C TInt Open(RMobilePhone& aPhone);
       
 12044     IMPORT_C void Close();
       
 12045  	/** 
       
 12046  	Maximum length of the array used for TLcsRequestorIdString.
       
 12047  	*/
       
 12048 	enum { KLcsMaxRequestorIdStringSize = 256 };
       
 12049 	/** 
       
 12050 	Maximum length of the array used for TLcsClientBufferName.
       
 12051  	*/
       
 12052 	enum { KLcsMaxClientNameBufferSize = 256 };
       
 12053 	/** 
       
 12054 	Maximum length of the array used for TLcsClientExternalID.
       
 12055 	*/
       
 12056 	enum { KLcsMaxClientExternalIdSize = 64 };
       
 12057 	/** 
       
 12058 	Maximum length of the array used for TLcsLocationEstimate.
       
 12059 	*/
       
 12060 	enum { KLcsMaxLocationEstimateSize = 64 };
       
 12061 	/** 
       
 12062 	Maximum length of the array used for TLcsVelocityEstimate.
       
 12063 	*/
       
 12064 	enum { KLcsMaxVelocityEstimateSize = 64 };
       
 12065 	/** 
       
 12066 	Maximum length of the array used for TLcsGpsAssistanceData.
       
 12067 	*/
       
 12068 	enum { KLcsMaxGpsAssistanceDataSize = 64 };
       
 12069 	/** 
       
 12070 	A typedef'd buffer which holds the External ClientName Buffer.
       
 12071 	@see KLcsMaxClientNameBufferSize
       
 12072 	*/
       
 12073 	typedef TBuf8<KLcsMaxClientNameBufferSize> TLcsClientNameBuffer;
       
 12074 	/** 
       
 12075 	A typedef'd buffer which holds the RequestorId String.
       
 12076 	@see KLcsMaxRequestorIdStringSize
       
 12077 	*/
       
 12078 	typedef TBuf8<KLcsMaxRequestorIdStringSize> TLcsRequestorIdString;
       
 12079 	/**
       
 12080 	A typedef'd buffer which holds the Gps Assistance Data.
       
 12081 	@see KLcsMaxGpsAssistanceDataSize
       
 12082 	*/
       
 12083 	typedef TBuf8<KLcsMaxGpsAssistanceDataSize> TGpsAssistanceData;
       
 12084 	/**
       
 12085 	A typedef'd buffer which holds the External ClientId.
       
 12086 	@see KLcsMaxClientExternalIdSize
       
 12087 	*/
       
 12088 	typedef TBuf8<KLcsMaxClientExternalIdSize> TLcsClientExternalID;
       
 12089 	/**
       
 12090 	A typedef'd TUint8 which holds the Data Coding Scheme information.
       
 12091 	*/
       
 12092 	typedef TUint8 TLcsDataCodingScheme;
       
 12093 	/**
       
 12094 	A typedef'd buffer which holds the Location Estimate.
       
 12095 	@see KLcsMaxLocationEstimateSize
       
 12096  	*/
       
 12097 	typedef TBuf8<KLcsMaxLocationEstimateSize> TLcsLocationEstimate;
       
 12098 	/**
       
 12099 	A typedef'd buffer which holds the Velocity Estimate.
       
 12100 	@see KLcsMaxVelocityEstimateSize
       
 12101 	*/
       
 12102 	typedef TBuf8<KLcsMaxVelocityEstimateSize> TLcsVelocityEstimate;
       
 12103 
       
 12104 	typedef TUint8 TTransactionIdentifier;
       
 12105 	typedef TUint8 TGPSI;
       
 12106  	 /**
       
 12107      Note:Refer to 3GPP TS 23.271(Functional stage 2 description of Location Services (LCS)),
       
 12108      3GPP TS 24.030(Location Services (LCS); Supplementary service operations - Stage 3) and
       
 12109      3GPP TS 24.080(Mobile radio interface layer 3 supplementary services specification; Formats and coding)
       
 12110      for further details of MTLR and MOLR member data.
       
 12111      */
       
 12112  /*********************************************************************/ 
       
 12113  //                  MTLR                                             //
       
 12114  /*********************************************************************/   
       
 12115     /**
       
 12116     TNotificationType lists the various types of Notification
       
 12117     that can be expected from any MTLR-Location Notification coming from the Network,
       
 12118     These types depend on the Subscription Profile of the UE. 
       
 12119     
       
 12120     One of the TNotificationType is expected to be retrieved from the Network,
       
 12121     when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.
       
 12122     @publishedPartner
       
 12123     */
       
 12124     enum TNotificationType
       
 12125 		{
       
 12126 		/**
       
 12127 		Notification Type Unknown
       
 12128 		*/
       
 12129 		ENotificationTypeUnknown,
       
 12130 		/**
       
 12131 		The Location Request is accepted by default
       
 12132 		*/
       
 12133 		ENotifyLocationAllowed,
       
 12134 		/**
       
 12135         This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, 
       
 12136         and that the user is expected to respond by granting/denying the request. By defualt, if the user 
       
 12137         does not provide a response, the request is granted
       
 12138 		*/
       
 12139 		ENotifyAndVerify_LocationAllowedIfNoResponse,
       
 12140 		/**
       
 12141         This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, 
       
 12142         and that the user is expected to respond by granting/denying the request. By defualt, if the 
       
 12143         user does not provide a response, the request is denied.
       
 12144 		*/
       
 12145 		ENotifyAndVerify_LocationNotAllowedIfNoResponse,
       
 12146         /**
       
 12147         The network sends the information to the UE that the external client has privacy overide capability,
       
 12148         This indicator is received when an authenticated or emergency client had sent the request.
       
 12149 		*/     
       
 12150         ELocationPrivacyOverride,  
       
 12151         /**
       
 12152         This enum is used to notify the UE that an incoming MTLR request was denied by the network for any of various 
       
 12153         reasons.
       
 12154 		*/
       
 12155 		ELocationNotAllowed                                      
       
 12156         };
       
 12157 
       
 12158     
       
 12159     /**
       
 12160     TLocationEstimateType lists the various types of LocationEstimate
       
 12161     that can be expected from any MTLR-Location Notification request coming from the Network,
       
 12162     These types depend on the Subscription Profile of the UE.
       
 12163     
       
 12164     One of the TLocationEstimateType is expected to be retrieved from the Network,
       
 12165     when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.
       
 12166     @publishedPartner
       
 12167     */
       
 12168     enum TLocationEstimateType
       
 12169 		{
       
 12170 		/**
       
 12171 		Location Estimate Type Unknown.
       
 12172 		*/
       
 12173 		ELocationEstimateTypeUnknown,
       
 12174 		/**
       
 12175 		The External Client has requested for the Current Location of
       
 12176 		the UE.
       
 12177 		*/
       
 12178 		ECurrentLocation,
       
 12179 		/**
       
 12180 		The External Client has requested for the Current Location of
       
 12181 		the UE.Incase,if the request is accepted,But still it fails to
       
 12182 		generate the Location report because of Measurement Control Failure.
       
 12183 		The Client receives the Last Known Location.
       
 12184 		*/
       
 12185 		ECurrentOrLastKnownLocation,
       
 12186 		/**
       
 12187 		The External Client has requested for the initial location of the UE. The current 
       
 12188 		location of the UE may or may not be the initial location.
       
 12189 		*/
       
 12190 		EInitialLocation
       
 12191 		};	
       
 12192     
       
 12193     /**
       
 12194     TLcsClientNameV1 holds the details of the name of the External client, 
       
 12195     who is making the request via Network.
       
 12196     TLcsClientNameV1 is used by RMobileLocationServices::NotifyMtlr() request.
       
 12197     @see TLcsDataCodingScheme
       
 12198     @see TLcsClientNameBuffer
       
 12199     @publishedPartner
       
 12200     */
       
 12201     class TLcsClientNameV1
       
 12202     	{
       
 12203     public:
       
 12204     	/**
       
 12205     	TLcsDataCodingScheme holds the Data Coding Scheme information which is used
       
 12206     	to extract the ExternalClient name.
       
 12207     	*/
       
 12208     	TLcsDataCodingScheme iLcsDataCodingScheme;
       
 12209     	/**
       
 12210     	TLcsClientNameBuffer holds the Client name 		
       
 12211     	*/
       
 12212     	TLcsClientNameBuffer       iLcsClientNameBuffer;	
       
 12213     	};
       
 12214     
       
 12215     /**
       
 12216     TLcsRequestorIDV1 holds the details of the RequestorId i.e the details of the 
       
 12217     Network,Which is carrying the request of External Client to UE
       
 12218     TLcsRequestorIDV1 is used by RMobileLocationServices::NotifyMtlr() request.
       
 12219     @see TLcsDataCodingScheme
       
 12220     @see TLcsRequestorIdString 
       
 12221     @publishedPartner
       
 12222     */
       
 12223     class TLcsRequestorIDV1
       
 12224     	{
       
 12225     public:
       
 12226         /**
       
 12227     	TLcsDataCodingScheme holds the Data Coding Scheme information which is used
       
 12228     	to extract the RequestorId String.
       
 12229     	*/
       
 12230     	TLcsDataCodingScheme        iLcsDataCodingScheme;
       
 12231     	/**
       
 12232     	TLcsRequestorIdString holds the RequestorId String 		
       
 12233     	*/
       
 12234     	TLcsRequestorIdString       iLcsRequestorIdString;	
       
 12235     	};
       
 12236     
       
 12237     /**
       
 12238     TLocationExternalInfoV1 holds the details of the External client and the Requestor
       
 12239     TLocationExternalInfoV1 is used by RMobileLocationServices::NotifyMtlr() request
       
 12240     @see TLcsClientExternalID
       
 12241     @see TLcsClientNameV1
       
 12242     @see TLcsRequestorIDV1
       
 12243     @publishedPartner
       
 12244     */
       
 12245     class TLocationExternalInfoV1
       
 12246 		{
       
 12247 	public:
       
 12248 		/**
       
 12249 		TLcsClientExternalID gives the id of the External client.
       
 12250 		*/
       
 12251 		TLcsClientExternalID     iLcsClientID;
       
 12252 		/**
       
 12253 		TLcsClientNameV1 holds the name of the External Client.
       
 12254 		*/
       
 12255 		TLcsClientNameV1           iLcsClientName;
       
 12256 		/**
       
 12257 		TLcsRequestorIDV1 gives the details of requestor id
       
 12258 		*/
       
 12259 		TLcsRequestorIDV1          iLcsRequestorID;
       
 12260 		};
       
 12261 	
       
 12262 	/**
       
 12263 	TNotifyMtlrV7 holds the details of the MTLR request made by the External client.
       
 12264 	TNotifyMtlrV7 is used by RMobileLocationServices::NotifyMtlr() request
       
 12265 	@see TNotificationType
       
 12266 	@see TLocationEstimateType
       
 12267 	@see TLocationExternalInfoV1
       
 12268 	@publishedPartner
       
 12269 	*/
       
 12270 	class TNotifyMtlrV7: public RMobilePhone::TMultimodeType 
       
 12271 		{
       
 12272 	public:
       
 12273 		IMPORT_C TNotifyMtlrV7();
       
 12274 	public:
       
 12275 		/**
       
 12276 		TNotificationType holds the type of notification request being made
       
 12277 		*/
       
 12278 		TNotificationType          iNotificationType;
       
 12279 		/**
       
 12280 		TLocationEstimateType holds the type of LocationEstimate is requested 
       
 12281 		*/
       
 12282 		TLocationEstimateType      iMtlrLocationEstimateType;
       
 12283 		/**
       
 12284 		TLocationExternalInfoV7  holds the details of the External client. 
       
 12285 		*/
       
 12286 		TLocationExternalInfoV1      iLocationInfo;
       
 12287         };
       
 12288 	
       
 12289    	/**
       
 12290 	A typedef'd packaged TNotifyMtlrV7 for passing through a
       
 12291 	generic API method.
       
 12292 
       
 12293 	@publishedPartner
       
 12294 	*/
       
 12295 	typedef TPckg<TNotifyMtlrV7> TNotifyMtlrV7Pckg;
       
 12296 	
       
 12297  //MTLR-RESPONSE
       
 12298  	/**
       
 12299  	TMtlrResponse is used by the OverLoaded RMobileLocationServices::SendMtlrResponse() API
       
 12300  	It holds the type of response being sent back for the MTLR request made.
       
 12301  	@publishedPartner
       
 12302  	*/
       
 12303 	
       
 12304 	enum TMtlrResponse
       
 12305 		{
       
 12306 		/**
       
 12307 		Mtlr Response Unknown.
       
 12308 		*/
       
 12309 		EMtlrResponseUnknown,
       
 12310 		/**
       
 12311 		The UE has denied the Location Request  of the External client.
       
 12312 		@see RMobileLocationServices::SendMtlrResponse()
       
 12313 		*/
       
 12314 		EPermissionDenied ,
       
 12315 		/**
       
 12316 		The UE has granted  the Location Request  of the External client.
       
 12317 		@see RMobileLocationServices::SendMtlrResponse()
       
 12318 		*/
       
 12319 		EPermissionGranted
       
 12320 		};
       
 12321 	
       
 12322 	/**
       
 12323  	TMtlrError is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API
       
 12324  	It holds the type of Error response being sent back for the MTLR request made.
       
 12325  	@publishedPartner
       
 12326  	*/
       
 12327  	enum TMtlrError
       
 12328 		{
       
 12329 		/**
       
 12330 		Mtlr Error Unknown.
       
 12331 		*/
       
 12332 		EMtlrErrorUnknown,
       
 12333 		/**
       
 12334 		This response is sent back to the network when System has failed to 
       
 12335 		do the privacy check due to some Miscellaneous reasons
       
 12336 		*/
       
 12337 		ESystemFailure ,
       
 12338 		/**
       
 12339 		The response is sent when the privacy verification has failed because of Unexpected data 
       
 12340 		values retrieved from the Location Notification request generated by the Network.
       
 12341 		This generates an Error-Prone response from UE
       
 12342 		*/
       
 12343 		EUnexpectedDataValue	
       
 12344 		};
       
 12345 	
       
 12346 	/**
       
 12347  	TMtlrReject is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API
       
 12348  	It holds the details of the Response being rejected due to one of the problems reported to the UE
       
 12349  	for the MTLR request being made.
       
 12350  	@publishedPartner
       
 12351  	*/
       
 12352  	enum TMtlrReject
       
 12353 		{
       
 12354 		/**
       
 12355 		Mtlr Reject Unknown.
       
 12356 		*/
       
 12357 		EMtlrRejectUnknown,
       
 12358 		/**
       
 12359 		This indication is given under a scenario where the UE wants to reject a request,
       
 12360 		It is done by invoking Duplicate ID's.
       
 12361 		*/
       
 12362 		EDuplicateInvokeID,
       
 12363 		/**
       
 12364 		This indication is given under a scenario where the UE wants to reject a request, 
       
 12365 		It is done by saying the operation is not recognized
       
 12366 		*/
       
 12367 		EUnrecognizedOperation,
       
 12368 		/**
       
 12369 		This invokes a problem indicating Resource Limitation.
       
 12370 		*/
       
 12371 		EResourceLimitation,
       
 12372 		/**
       
 12373 		This Invokes a problem initiating release.
       
 12374 		*/
       
 12375 		EInitiatingRelease,
       
 12376 		/**
       
 12377 		This invokes a problem indicating that  the ID linked with the Client information 
       
 12378 		is unrecognized
       
 12379 		*/
       
 12380 		EUnrecognizedLinkedID,
       
 12381 		/**
       
 12382 		This invokes a problem of Linked Response Unexpected
       
 12383 		*/
       
 12384 		ELinkedResponseUnexpected,
       
 12385 		/**
       
 12386 		This invokes a problem of Unexpected Linked Operation
       
 12387 		*/
       
 12388 		EUnexpectedLinkedOperation,
       
 12389 		/**
       
 12390 		This invokes a problem of Mistyped Parameter.
       
 12391 		*/
       
 12392 		EMistypedParameter	
       
 12393 		};
       
 12394 	
       
 12395    /**************************************************************/
       
 12396    //                  MOLR                                      //
       
 12397    /**************************************************************/
       
 12398  
       
 12399  	/**
       
 12400  	TMolrType is used by the SendMolr() API.
       
 12401  	This gives an indication of type of Molr request the UE wants to invoke
       
 12402  	@publishedPartner
       
 12403  	*/
       
 12404  	enum TMolrType
       
 12405 		{
       
 12406 		/**
       
 12407 		MolrType UnKnown
       
 12408 		*/
       
 12409 		EMolrTypeUnknown,
       
 12410 		/**
       
 12411 		UE is requesting the Network for its Location Estimate  
       
 12412 		*/
       
 12413 		ELocationEstimate,
       
 12414 		/**
       
 12415 		UE is requesting the Network for  GPS Assistance data
       
 12416 		*/
       
 12417 		EAssistanceData,
       
 12418 		/**
       
 12419 		UE is requesting the Network for  DecipheringKeys
       
 12420 		*/
       
 12421 		EDecipheringKeys
       
 12422 		};
       
 12423 
       
 12424  	/**
       
 12425  	TResponseTime is used by SendMolr() API
       
 12426  	This enum holds the various types of delay that an UE is expecting.
       
 12427  	@publishedPartner
       
 12428  	*/
       
 12429  	enum TResponseTime
       
 12430   		{
       
 12431   		/**
       
 12432   		Response Time Unknown.
       
 12433 		*/
       
 12434   		EResponseTimeunknown,
       
 12435   		/**
       
 12436   		This enum value indicates that the UE expects a Less Time Delay
       
 12437   		from Network in responding to its request
       
 12438   		*/
       
 12439   		ELowDelay,
       
 12440   		/**
       
 12441   		This enum value indicates that the UE expects a Long Time Delay
       
 12442   		from Network in responding to its request and is tolerant to it.
       
 12443   		*/
       
 12444   		EDelayTolerant		
       
 12445   		};
       
 12446  	
       
 12447  	/**
       
 12448  	TLocationMethod is used by SendMolr() API
       
 12449  	This is an enum which lists out all different types of Location methods that an UE can request
       
 12450  	@publishedPartner
       
 12451  	*/
       
 12452  	enum TLocationMethod
       
 12453   		{
       
 12454   		/**
       
 12455   		Location Method Unknown
       
 12456 		*/
       
 12457   		ELocationMethodunknown,
       
 12458   		/**
       
 12459   		This indication is given under a scenario where the UE wants a MS (Mobile Station) Based Location Fix.
       
 12460   		This can be termed as UE Assisted Location Fix(EOTD-Enhanced observed time difference).
       
 12461   		*/
       
 12462   		EMSBasedEOTD,
       
 12463   		/**
       
 12464   		This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted Location Fix.
       
 12465   		This can be termed out as UE based location fix.
       
 12466   		*/
       
 12467   		EMSAssistedEOTD,
       
 12468   		/**
       
 12469   		This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted GPS data.
       
 12470   		*/
       
 12471   		EMSAssistedGPS,
       
 12472   		/**
       
 12473   		This indication is given under a scenario where the UE wants a MS (Mobile Station) based location fix 
       
 12474   		(OTDOA-Observed time difference of arrival).
       
 12475   		*/
       
 12476   		EMSBasedOTDOA
       
 12477   		}; 
       
 12478    
       
 12479     /**
       
 12480     TQosV1 is used by SendMolr() API
       
 12481     This is a class with details of accuracy of Position information, Response Time, 
       
 12482     expected to be received from the network.
       
 12483     @see TResponseTime
       
 12484     @publishedPartner
       
 12485     */
       
 12486  	class TQosV1
       
 12487    		{
       
 12488    	public:
       
 12489     	/**
       
 12490     	This gives an information of the amount of Horizontal accuracy that the UE is expecting.
       
 12491     	*/
       
 12492     	TUint8 iHorizontalAccuracy;
       
 12493     	/**
       
 12494     	This gives an information of the amount of Vertical accuracy that the UE is expecting. 
       
 12495     	*/
       
 12496     	TUint8 iVerticalAccuracy;
       
 12497     	/**
       
 12498     	This enum indicates the Response Time expected by the UE to receive a response for its MOlr request.
       
 12499     	*/
       
 12500     	TResponseTime iResponseTime;
       
 12501     	};
       
 12502     
       
 12503     /**
       
 12504     TMolrErrors is used by SendMolr() API
       
 12505     This is an enum which lists out all the possible errors that can be 
       
 12506     reported to UE by an External Client or the Network.
       
 12507     @publishedPartner
       
 12508     */
       
 12509    	enum TMolrErrors
       
 12510     	{
       
 12511     	/**
       
 12512     	Molr Error Unknown
       
 12513 		*/
       
 12514     	EMolrErrorUnknown,
       
 12515     	/**
       
 12516     	This indication is given to the UE when the Location Report is unable to reach the 
       
 12517     	External Client due to some failure in the Network Connections.
       
 12518     	*/
       
 12519         EMolrSystemFailure, 
       
 12520         /**
       
 12521         This indication is given back to the UE by the Network to the UE or by the 
       
 12522         External Client to the UE,where the UE generated MOLR has some unexpected values. 
       
 12523         */
       
 12524         EMolrUnexpectedDataValue,  
       
 12525         /**
       
 12526         This indication is given back to the UE by the Network to the UE or by the 
       
 12527         External Client to the UE,where the UE generated MOLR had a data discrepancy
       
 12528         */
       
 12529         EMolrDataMissing, 
       
 12530         /**
       
 12531         This indication is given by the Network to the UE, 
       
 12532         when the UE is not given a facility to make a MOLR request
       
 12533         */
       
 12534         EMolrFacilityNotSupported, 
       
 12535         /**
       
 12536         This indication is given by the Network to the UE, 
       
 12537         when the subscription profile of the UE doesn't match with the requests made by it.
       
 12538         */
       
 12539         EMolrSS_SubscriptionViolation, 
       
 12540         /**
       
 12541         This indication is given by the Network to the UE, 
       
 12542         when the UE or the Network failed to generate the Location estimate
       
 12543         */ 
       
 12544         EMolrPositionMethodFailure 
       
 12545         };
       
 12546 
       
 12547 	/**
       
 12548 	TStartMolrV7 is used by SendMolr() API
       
 12549 	This class lists the details send by UE to Network when a Molr request is being made.
       
 12550 	@see TMolrType
       
 12551 	@see TQosV1
       
 12552 	@see TLocationEstimateType
       
 12553 	@see TLcsClientExternalID
       
 12554 	@see TGpsAssistanceData
       
 12555 	@see TLocationMethod
       
 12556 	@publishedPartner
       
 12557 	*/
       
 12558 	class TStartMolrV7: public RMobilePhone::TMultimodeType
       
 12559 		{
       
 12560 	public:
       
 12561 		IMPORT_C TStartMolrV7();
       
 12562 	public:
       
 12563 		/**
       
 12564 		TMolrType holds the type of Molr request being made
       
 12565 		*/
       
 12566 		TMolrType             iMolrType;
       
 12567 		/**
       
 12568 		TQosV1 lists out the Quality of Service expected by UE
       
 12569 		*/
       
 12570 		TQosV1                iQos;
       
 12571 		/**
       
 12572 		Type of Location Estimate requested
       
 12573 		*/
       
 12574 		TLocationEstimateType iMolrLocationEstimateType;
       
 12575 		/**
       
 12576 		Id of the External client
       
 12577 		*/
       
 12578 		TLcsClientExternalID  iLcsClientExternalID;
       
 12579 		/**
       
 12580 		Type of GpsAssistanceData
       
 12581 		*/
       
 12582 		TGpsAssistanceData    iGpsAssistanceData;
       
 12583 		/**
       
 12584 		Type of Location method requested
       
 12585 		*/
       
 12586 		TLocationMethod       iLocationMethod ;
       
 12587 		/**
       
 12588 		Type of Service requested
       
 12589 		*/
       
 12590 		TUint8                 iLcsServiceTypeID;
       
 12591 		};
       
 12592 	/**
       
 12593 	A typedef'd packaged TStartMolrV7 for passing through a
       
 12594 	generic API method.
       
 12595 
       
 12596 	@publishedPartner
       
 12597 	*/
       
 12598 	typedef TPckg<TStartMolrV7> TStartMolrV7Pckg;
       
 12599 	
       
 12600 	/**
       
 12601 	TMolrReturnResultV7 is used by SendMolr() API
       
 12602 	This class lists all the Molr return results that can be expected for the Molr request
       
 12603 	being made.
       
 12604 	@see TLcsLocationEstimate 
       
 12605 	@see TLcsVelocityEstimate
       
 12606 	@see TMolrErrors
       
 12607 	@publishedPartner
       
 12608 	*/
       
 12609     class TMolrReturnResultV7: public RMobilePhone::TMultimodeType
       
 12610     	{
       
 12611     public:
       
 12612 		IMPORT_C TMolrReturnResultV7();
       
 12613     public:
       
 12614     	/**
       
 12615     	This gives the Location Estimate of the UE
       
 12616     	*/
       
 12617     	TLcsLocationEstimate    iLocationEstimate;
       
 12618     	/**
       
 12619     	This gives the Velocity Estimate of the UE
       
 12620     	*/
       
 12621     	TLcsVelocityEstimate	iVelocityEstimate;
       
 12622     	/**
       
 12623     	This gives the indication of the type of error occured
       
 12624     	*/
       
 12625     	TMolrErrors             iMolrErrors;
       
 12626     	};
       
 12627 
       
 12628 	/**
       
 12629 	A typedef'd packaged TMolrReturnResultV7 for passing through a
       
 12630 	generic API method.
       
 12631 
       
 12632 	@publishedPartner
       
 12633 	*/
       
 12634 	typedef TPckg<TMolrReturnResultV7> TMolrReturnResultV7Pckg;
       
 12635 	
       
 12636 	//**************************************//
       
 12637 	// Measurement Control Data structures	//
       
 12638 	//**************************************//
       
 12639 
       
 12640 	enum 
       
 12641 		{
       
 12642 		/**Maximum number of monitored cells RACH*/
       
 12643 		KMaxMonitoredCells = 8,
       
 12644 		/**Maximum number of satellites*/
       
 12645 		KMaxSat = 16,
       
 12646 		/**GlobalHealth size. 364 bits =46 bytes (Rounded) */
       
 12647 		KGlobalHealthSize	= 46
       
 12648 		};
       
 12649 
       
 12650 	/**This enum contains the possible types of measurement commands.*/
       
 12651 	enum TMeasurementCmd
       
 12652 		{
       
 12653 		/**Measurement Command Unknown*/
       
 12654 		EMeasCommandUnknown,
       
 12655 		/**Setup a new measurement*/
       
 12656 		ESetup,
       
 12657 		/**Modify a previously defined measurement, e.g. to change the reporting criteria*/
       
 12658 		EModify,
       
 12659 		/**Indicates to stop a measurement and clear all information in the UE that are related to that measurement */
       
 12660 		ERelease,
       
 12661 		};
       
 12662 
       
 12663 	/**This enum contains the possible positioning method types*/
       
 12664 	enum TUePosMethodType
       
 12665 		{
       
 12666 		/**Positioning Method Type unknown*/
       
 12667 		EPosMethodTypeUnknown,
       
 12668 		/**UE Assisted : The network computes the location of the UE.*/
       
 12669 		EUeAssisted,
       
 12670 		/**UE Based : The UE computes the location of itself*/
       
 12671 		EUeBased,
       
 12672 		};
       
 12673 
       
 12674 	/**This enum contains the possible positioning methods*/
       
 12675 	enum TPosMethod
       
 12676 		{
       
 12677 		/**Positioning Method unknown*/
       
 12678 		EPosMethodUnknown,
       
 12679 		/**OTDOA may be selected by the SRNC as the method to be used on receipt of an LCS positioning request from the CN */
       
 12680 		EOtdoa,
       
 12681 		/**These methods make use of UEs, which are equipped with radio receivers capable of receiving GPS signals*/
       
 12682 		EGps,
       
 12683 		/**Use either OTDOA or GPS positioning method.*/
       
 12684 		EOtdoaOrGps,
       
 12685 		/**
       
 12686 		In the cell ID based (i.e. cell coverage) method, the position of an UE is 
       
 12687 		estimated with the knowledge of its serving Node B. The information about the serving 
       
 12688 		Node B and cell may be obtained by paging,locating area update, cell update, URA update, or routing area update.
       
 12689 		*/
       
 12690 		ECellID
       
 12691 		};
       
 12692 
       
 12693 	/**
       
 12694 	This class contains the information which is part of the Navigation Model.
       
 12695 	This can be requested by the UE as part of additional request.
       
 12696 	*/
       
 12697 	class TSatDataV1
       
 12698 		{
       
 12699 	public:
       
 12700 		/**Satellite identity*/
       
 12701 		TUint8		iSatID;
       
 12702 		/**Issue of Data Ephemeris for SatID*/
       
 12703 		TUint8		iIode;
       
 12704 		};
       
 12705 	
       
 12706 	/**
       
 12707 	This class contains the additional information that can be requested by the UE.
       
 12708 	*/
       
 12709 	class TNavModelAddlDataReqV1	
       
 12710 		{
       
 12711 	public:
       
 12712 		/**GPS time in weeks*/
       
 12713 		TUint16		iGpsWeek;
       
 12714 		/**GPS time of ephemeris in hours of the latest ephemeris set contained by the UE.*/
       
 12715 		TUint8		iGpsToe;
       
 12716 		/**Ephemeris age tolerance of the UE to UTRAN in hours.*/
       
 12717 		TUint8		iTToeLimit;
       
 12718 		/**Satellite Identities
       
 12719 		@see TSatDataV1*/
       
 12720 		TSatDataV1	iSatData[KMaxSat];
       
 12721 		};
       
 12722 
       
 12723 	/**This class contains the indicators to request for additional assistance data from the network.*/
       
 12724 	class TGpsAddlAssistDataReqV1
       
 12725 		{
       
 12726 	public:
       
 12727 		/**ETrue indicates Almanac Data is requested
       
 12728 		@see	TAlmanacV1*/
       
 12729 		TBool	iAlmanacRequest;
       
 12730 		/**ETrue indicates UTC model Data is requested
       
 12731 		@see	TUtcModelV1*/
       
 12732 		TBool	iUtcModelRequest;
       
 12733 		/**ETrue indicates Ionospheric Model Data is requested
       
 12734 		@see	TUtcModelV1*/
       
 12735 		TBool	iIonosphericModelRequest;
       
 12736 		/**ETrue indicates Navigation model Data is requested
       
 12737 		@see	TIonosphericModelV1*/
       
 12738 		TBool	iNavigationModelRequest;
       
 12739 		/**ETrue indicates DGPS corrections Data is requested
       
 12740 		@see	TNavigationModelSatInfoV1*/
       
 12741 		TBool	iDgpsCorrectionsRequest;
       
 12742 		/**ETrue indicates Reference location Data is requested
       
 12743 		@see	TDgpsCorrectionsV1*/
       
 12744 		TBool	iReferenceLocationRequest;
       
 12745 		/**ETrue indicates Reference time Data is requested
       
 12746 		@see	TReferenceLocationV1*/
       
 12747 		TBool	iReferenceTimeRequest;
       
 12748 		/**ETrue indicates Acquisition assistance Data is requested
       
 12749 		@see	TReferenceTimeV1*/
       
 12750 		TBool	iAcquisitionAssistanceReq;
       
 12751 		/**ETrue indicates Realtime integrity Data is requested
       
 12752 		@see	TAcquisitionAssistanceV1*/
       
 12753 		TBool	iRealTimeIntegrityRequest;
       
 12754 		/**This member is included only if Navigagion Model Data is requested (iNavigationModelRequest is ETrue).
       
 12755 		@see	TNavModelAddlDataReqV1*/
       
 12756 		TNavModelAddlDataReqV1	iNavModelAddlDataReq;
       
 12757 		};
       
 12758 
       
 12759 	/**This class contains the UE positioning reporting quantity*/
       
 12760 	class TUePosReportingQuantityV1
       
 12761 		{
       
 12762 	public:
       
 12763 		/**Holds the positioning method type*/
       
 12764 		TUePosMethodType	 iUePosMethodType;
       
 12765 		/**Holds the positioning method*/
       
 12766 		TPosMethod 	iPosMethod;
       
 12767 		/**Holds the horizontal accuracy*/
       
 12768 		TInt8	iHorzAccuracy;
       
 12769 		/**Holds the vertical accuracy*/
       
 12770 		TInt8	iVertAccuracy;
       
 12771 		/**If true the SRNC wants the UE to report the SFN-GPS timing of the reference cell.*/ 
       
 12772 		TBool 	iGpsTimingOfCellWanted;
       
 12773 		/**ETrue indicates that the UE is requested to send the IE "Additional assistance Data Request" 
       
 12774 		when the IE "UE positioning Error" is present in the UE positioning measured results.
       
 12775 		EFalse indicates that the UE shall use the assistance data available.
       
 12776 		*/
       
 12777 		TBool	iAddlAssistanceDataReq;
       
 12778 		};
       
 12779 
       
 12780 	/**This enum contains the states in which measurements are valid*/
       
 12781 	enum TMeasurementValidity
       
 12782 		{
       
 12783 		/**Measurement Validity Unknown*/
       
 12784 		EMeasValidityUnknown,
       
 12785 		/**Indicates measurement is valid in CellDCH state*/
       
 12786 		ECellDCH,
       
 12787 		/**Indicates measurement is valid except in CellDCH state*/
       
 12788 		EAllButCellDCH,
       
 12789 		/**Indicates measurement is valid in all state*/
       
 12790 		EAllStates
       
 12791 		};
       
 12792 
       
 12793 	/**This enum list the SfnTow uncertainity*/
       
 12794 	enum TSfnTowUncertainity
       
 12795 		{
       
 12796 		/**Sfn Tow Uncertainity unknown*/
       
 12797 		ESfnTowUncertainityUnknown,
       
 12798 		/**SfnTowUncertainity < 10*/
       
 12799 		ELessThan10,
       
 12800 		/**SfnTowUncertainity > 10*/
       
 12801 		EMoreThan10
       
 12802 		};
       
 12803 	
       
 12804 	/**This enum lists the different GPS drift rates*/
       
 12805 	enum TUtranGpsDriftRate
       
 12806 		{
       
 12807 		/**GPS Drift rate unknown*/
       
 12808 		EDriftRateUnknown,
       
 12809 		/**Drift = 0*/
       
 12810 		EUtranGpsDrift0,
       
 12811 		/**Drift = 1*/
       
 12812 		EUtranGpsDrift1,
       
 12813 		/**Drift = 2*/
       
 12814 		EUtranGpsDrift2,
       
 12815 		/**Drift = 5*/
       
 12816 		EUtranGpsDrift5,
       
 12817 		/**Drift = 10*/
       
 12818 		EUtranGpsDrift10,
       
 12819 		/**Drift = 15*/
       
 12820 		EUtranGpsDrift15,
       
 12821 		/**Drift = 25*/
       
 12822 		EUtranGpsDrift25,
       
 12823 		/**Drift = 50*/
       
 12824 		EUtranGpsDrift50,
       
 12825 		/**Drift = -1*/
       
 12826 		EUtranGpsDriftMinus1,
       
 12827 		/**Drift = -2*/
       
 12828 		EUtranGpsDriftMinus2,
       
 12829 		/**Drift = -5*/
       
 12830 		EUtranGpsDriftMinus5,
       
 12831 		/**Drift = -10*/
       
 12832 		EUtranGpsDriftMinus10,
       
 12833 		/**Drift = -15*/
       
 12834 		EUtranGpsDriftMinus15,
       
 12835 		/**Drift = -25*/
       
 12836 		EUtranGpsDriftMinus25,
       
 12837 		/**Drift = -50*/
       
 12838 		EUtranGpsDriftMinus50,
       
 12839 		};
       
 12840 
       
 12841 	/**This enum lists the different Udre values*/
       
 12842 	enum TDiffCorrectionsStatus
       
 12843 		{
       
 12844 		/**Diff Corrections Status unknown*/
       
 12845 		ECorrectionStatusUnknown,
       
 12846 		/**UDRE 1.0 */
       
 12847 		EUdre1Point0,
       
 12848 		/**UDRE 0.75 */
       
 12849 		EUdre0Point75,
       
 12850 		/**UDRE 0.5 */
       
 12851 		EUdre0Point5,
       
 12852 		/**UDRE 0.3 */
       
 12853 		EUdre0Point3,
       
 12854 		/**UDRE 0.2 */
       
 12855 		EUdre0Point2,
       
 12856 		/**UDRE 0.1 */
       
 12857 		EUdre0Point1,
       
 12858 		/**UDRE No Data */
       
 12859 		ENoData,
       
 12860 		/**UDRE Invalid Data */
       
 12861 		EInvalidData
       
 12862 		};
       
 12863 	
       
 12864 	/**This class reserves members for future use*/
       
 12865 	class TSubFrame1ReservedV1
       
 12866 		{
       
 12867 	public:
       
 12868 		/**Reserve member 1*/
       
 12869 		TUint	iReserved1;
       
 12870 		/**Reserve member 2*/
       
 12871 		TUint	iReserved2;
       
 12872 		/**Reserve member 3*/
       
 12873 		TUint	iReserved3;
       
 12874 		/**Reserve member 4*/
       
 12875 		TUint	iReserved4;
       
 12876 		};
       
 12877 
       
 12878 	/**This class contains information for GPS ephemeris and clock correction.*/
       
 12879 	class TEphemerisParameterV1
       
 12880 		{
       
 12881 	public:
       
 12882 		/**Code(s) on L2 Channel */
       
 12883 		TUint8	iCodeOnL2;
       
 12884 		/**User Range Accuracy */
       
 12885 		TUint8	iUraIndex;
       
 12886 		/**Health of Satellite*/
       
 12887 		TUint8	iSatHealth;
       
 12888 		/**Issue of Data, Clock */
       
 12889 		TUint16	iIodc;
       
 12890 		/**L2 channel flag*/
       
 12891 		TUint8	iL2Flag;
       
 12892 		TSubFrame1ReservedV1	iSubFrame1Reserved;
       
 12893 		/**Estimated group delay differential */
       
 12894 		TUint8	iTGd;
       
 12895 		/**Apparent clock correction*/
       
 12896 		TUint16	iTOc;
       
 12897 		/**Apparent clock correction*/
       
 12898 		TUint8	iAf2;
       
 12899 		/**Apparent clock correction*/
       
 12900 		TUint16	iAf1;
       
 12901 		/**Apparent clock correction*/
       
 12902 		TUint	iAf0;
       
 12903 		/**Amplitude of the Sine Harmonic Correction Term to the Orbit Radius (meters)*/
       
 12904 		TUint16	iCRs;
       
 12905 		/**Mean Motion Difference From Computed Value (semi-circles/sec)*/
       
 12906 		TUint16	iDeltaN;
       
 12907 		/**Mean Anomaly at Reference Time (semi-circles)*/
       
 12908 		TUint	iM0;
       
 12909 		/**Amplitude of the Cosine Harmonic Correction Term To The Argument Of Latitude (radians)*/
       
 12910 		TUint16	iCUc;
       
 12911 		/**Eccentricity*/
       
 12912 		TUint	iE;
       
 12913 		/**Amplitude of the Sine Harmonic Correction Term To The Argument Of Latitude (radians)*/
       
 12914 		TUint16	iCUs;
       
 12915 		/**Semi-Major Axis in squareroot(meters) */
       
 12916 		TUint	iASqrt;
       
 12917 		/**Reference Time Ephemeris */
       
 12918 		TUint16	iTOe;
       
 12919 		/**
       
 12920 		Fit interval flag
       
 12921 		@see ICD-GPS-200
       
 12922 		*/
       
 12923 		TUint8	iFitInterval;
       
 12924 		/**Age Of Data Offset */
       
 12925 		TUint8	iAodo;
       
 12926 		/**Amplitude of the Cosine Harmonic Correction Term To The Angle Of Inclination (radians)*/
       
 12927 		TUint16	iCIc;
       
 12928 		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */
       
 12929 		TUint	iOmega0;
       
 12930 		/**Amplitude of the Sine Harmonic Correction Term To The Angle Of Inclination (radians) */
       
 12931 		TUint16	iCIs;
       
 12932 		/**Inclination Angle at Reference Time (semi-circles) */
       
 12933 		TUint	i0;
       
 12934 		/**Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius (meters) */
       
 12935 		TUint16	iCRc;
       
 12936 		/**Argument of Perigee (semi-circles) */
       
 12937 		TUint	iOmega;
       
 12938 		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */
       
 12939 		TUint	iOmegaDot;
       
 12940 		/**Rate of Inclination Angle (semi-circles/sec) */
       
 12941 		TUint16	iDot;
       
 12942 		};
       
 12943 
       
 12944 	/**This enum specifies the possible status of a satellite*/
       
 12945 	enum TSatelliteStatus
       
 12946 		{
       
 12947 		/**Satellite Status unknown*/
       
 12948 		ESatStatusUnknown,
       
 12949 		/**New satellite, new Navigation Model*/
       
 12950 		ENsNnU,
       
 12951 		/**Existing satellite, same Navigation Model*/
       
 12952 		EEsSn,
       
 12953 		/**Existing satellite, new Navigation Model*/
       
 12954 		EEsNnU,
       
 12955 		/**Reserved*/
       
 12956 		ERev2,
       
 12957 		/**Reserved*/
       
 12958 		ERev
       
 12959 		};
       
 12960 
       
 12961 	/**This class contains the navigation model satellite information*/
       
 12962 	class TNavigationModelSatInfoV1
       
 12963 		{
       
 12964 	public:
       
 12965 		/**Satellite identification*/
       
 12966 		TUint8				iSatID;
       
 12967 		/**Status of the satellite*/
       
 12968 		TSatelliteStatus	iSatelliteStatus;
       
 12969 		/**Contains information for GPS ephemeris and clock correction.*/
       
 12970 		TEphemerisParameterV1	iEphemerisParameter;
       
 12971 		};
       
 12972 
       
 12973 	/**
       
 12974 	This class contains the ionospheric model information needed to model
       
 12975 	the propagation delays of the GPS signals through the ionosphere
       
 12976 	*/
       
 12977 	class TIonosphericModelV1
       
 12978 		{
       
 12979 	public:
       
 12980 		/**
       
 12981 		The parameters *n are the coefficients of a cubic equation 
       
 12982 		representing the amplitude of the vertical delay.
       
 12983 		@see ICD-GPS-200
       
 12984 		*/
       
 12985 		/**Alfa = 0*/
       
 12986 		TUint8	iAlfa0;
       
 12987 		/**Alfa = 1*/
       
 12988 		TUint8	iAlfa1;
       
 12989 		/**Alfa = 2*/
       
 12990 		TUint8	iAlfa2;
       
 12991 		/**Alfa = 3*/
       
 12992 		TUint8	iAlfa3;
       
 12993 		/**
       
 12994 		The parameters *n are the coefficients of a cubic equation 
       
 12995 		representing the period of the ionospheric model 
       
 12996 		@see ICD-GPS-200
       
 12997 		*/
       
 12998 		/**Beta = 0*/
       
 12999 		TUint8	iBeta0;
       
 13000 		/**Beta = 1*/
       
 13001 		TUint8	iBeta1;
       
 13002 		/**Beta = 2*/
       
 13003 		TUint8	iBeta2;
       
 13004 		/**Beta = 3*/
       
 13005 		TUint8	iBeta3;
       
 13006 		};
       
 13007 		
       
 13008 	/**
       
 13009 	This class contains the UTC model information needed to relate GPS time to Universal Time Coordinate (UTC)
       
 13010 	@see ICD-GPS-200
       
 13011 	*/
       
 13012 	class TUtcModelV1
       
 13013 		{
       
 13014 	public:
       
 13015 		/**
       
 13016 		Time in seconds. 
       
 13017 		@see ICD-GPS-200.
       
 13018 		*/
       
 13019 		TUint	iA1;
       
 13020 		/**
       
 13021 		Time in seconds. 
       
 13022 		@see ICD-GPS-200.
       
 13023 		*/
       
 13024 		TUint	iA2;
       
 13025 		/**Time in seconds
       
 13026 		@see ICD-GPS-200
       
 13027 		*/
       
 13028 		TUint8	iTOt;
       
 13029 		/**weeks
       
 13030 		@see ICD-GPS-200
       
 13031 		*/
       
 13032 		TUint8	iWnT;
       
 13033 		/**Time in seconds
       
 13034 		@see ICD-GPS-200
       
 13035 		*/
       
 13036 		TUint8	iDeltaTLs;
       
 13037 		/**Weeks
       
 13038 		@see ICD-GPS-200
       
 13039 		*/
       
 13040 		TUint8	iWnLsf;
       
 13041 		/**Days
       
 13042 		@see ICD-GPS-200
       
 13043 		*/
       
 13044 		TUint8	iDn;
       
 13045 		/**Seconds
       
 13046 		@see ICD-GPS-200
       
 13047 		*/
       
 13048 		TUint8	iDeltaTLsf;
       
 13049 		};
       
 13050 
       
 13051 	/**This class contains a reduced-precision subset of the ephemeris and clock correction parameters.*/
       
 13052 	class TAlmanacSatInfoV1
       
 13053 		{
       
 13054 	public:
       
 13055 		/**Data identification*/
       
 13056 		TUint8	iDataID;
       
 13057 		/**Eccentricity*/
       
 13058 		TUint16	iE;
       
 13059 		/**Reference Time of Almanac */
       
 13060 		TUint8 	iTOa;
       
 13061 		/**@see ICD-GPS-200*/
       
 13062 		TUint16	iDeltaI;
       
 13063 		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */
       
 13064 		TUint16	iOmegaDot;
       
 13065 		/**Satellite health*/
       
 13066 		TUint8	iSatHealth;
       
 13067 		/**Semi-Major Axis in squareroot(meters)*/
       
 13068 		TUint	iASqrt;
       
 13069 		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */
       
 13070 		TUint	iOmega0;
       
 13071 		/**Mean Anomaly at Reference Time (semi-circles) */
       
 13072 		TUint	iM0;
       
 13073 		/**Argument of Perigee (semi-circles) */
       
 13074 		TUint	iOmega;
       
 13075 		/**Apparent clock correction */
       
 13076 		TUint16	iAf0;
       
 13077 		/**Apparent clock correction */
       
 13078 		TUint16	iAf1;
       
 13079 		};
       
 13080 
       
 13081 	/**This class holds the coarse, long-term model of the satellite positions and clocks.*/
       
 13082 	class TAlmanacV1
       
 13083 		{
       
 13084 	public:
       
 13085 		/**Almanac Reference Week */
       
 13086 		TUint8	iWnA;
       
 13087 		TAlmanacSatInfoV1	iAlmanacSatInfoList[KMaxSat]; 
       
 13088 		/**This enables GPS time recovery and possibly extended GPS correlation intervals.*/
       
 13089 		TUint16	iSvGlobalHealth[KGlobalHealthSize]; 
       
 13090 		};
       
 13091 
       
 13092 	/**This union contains the information specific to mode - FDD/TDD*/
       
 13093 	union TModeSpecificInfoV1
       
 13094 		{
       
 13095 		/**Used in FDD mode*/
       
 13096 		TUint16	iPrimaryScramblingCode;
       
 13097 		/**Used in TDD mode*/
       
 13098 		TUint16	iCellParametersID;
       
 13099 		};
       
 13100 
       
 13101 	/**This class contains parameters that enable fast acquisition of the GPS 
       
 13102 	   signals in UE-assisted GPS positioning.*/
       
 13103 	class TAcquisitionAssistanceV1
       
 13104 		{
       
 13105 	public:
       
 13106 		/**Specifies GPS reference time*/
       
 13107 		TUint				iGpsReferenceTime;
       
 13108 		/**Specifies GPS reference time specific to mode - FDD/TDD*/
       
 13109 		TModeSpecificInfoV1	iUtranGpsReferenceTime;
       
 13110 		/**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. 
       
 13111 		EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/
       
 13112 		TBool	iUtranGpsRefTimeStatus;
       
 13113 		};
       
 13114 
       
 13115 	/**
       
 13116 	The UDRE provides an estimate of the uncertainty (1-*) in the corrections for 
       
 13117 	the particular satellite. The value in this field shall be multiplied by the 
       
 13118 	UDRE Scale Factor in the common Corrections Status/Health field to determine the 
       
 13119 	final UDRE estimate for the particular satellite. 
       
 13120 	@see 3GPP TS 25.305
       
 13121 	*/
       
 13122 	enum TUdre
       
 13123 		{
       
 13124 		/**Udre unknown*/
       
 13125 		EUdreUnknown,
       
 13126 		/** UDRE < 1*/
       
 13127 		ELessThan1,
       
 13128 		/** 1> UDRE < 4*/
       
 13129 		EBtw1And4,
       
 13130 		/** 1> UDRE < 8*/
       
 13131 		EBtw1And8,
       
 13132 		/** UDRE > 8*/
       
 13133 		EOver8
       
 13134 		};
       
 13135 
       
 13136 	/**This class contains DGPS corrections to be used by the UE*/
       
 13137 	class TDgpsCorrectionSatInfoV1
       
 13138 		{
       
 13139 	public:
       
 13140 		/**Satellite identification*/
       
 13141 		TUint8	iSatID;
       
 13142 		/**Issue of Data Ephemeris for SatID.*/
       
 13143 		TUint8	iIode;
       
 13144 		/**
       
 13145 		The UDRE provides an estimate of the uncertainty (1-*) in the corrections for 
       
 13146 		the particular satellite. The value in this field shall be multiplied by the 
       
 13147 		UDRE Scale Factor in the common Corrections Status/Health field to determine the 
       
 13148 		final UDRE estimate for the particular satellite. 
       
 13149 		@see 3GPP TS 25.305
       
 13150 		*/
       
 13151 		TUdre	iUdre;
       
 13152 		/**The PRC indicates the correction to the pseudorange for the particular satellite at the GPS Reference Time*/
       
 13153 		TInt16	iPrc;
       
 13154 		/**
       
 13155 		This information indicates the rate-of-change of the pseudorange correction for the particular satellite,
       
 13156 		using the satellite ephemeris identified by the IODE IE
       
 13157 		*/
       
 13158 		TInt8	iRrc;
       
 13159 		/**For future use*/
       
 13160 		TInt8	iDummy1;
       
 13161 		/**For future use*/
       
 13162 		TInt8	iDummy2;
       
 13163 		};
       
 13164 
       
 13165 	/**This class contains the DGPS corrections information*/
       
 13166 	class TDgpsCorrectionsV1
       
 13167 		{
       
 13168 	public:
       
 13169 		/**GPS time of week*/
       
 13170 		TUint16				iGpsTow;
       
 13171 		/**This information indicates the status of the differential corrections contained in the message.*/
       
 13172 		TDiffCorrectionsStatus	iStatusHealth;
       
 13173 		/**This member data contains DGPS corrections of the satellites to be used by the UE*/
       
 13174 		TDgpsCorrectionSatInfoV1	iDgpsCorrectionSatInfoList[KMaxSat];
       
 13175 		};
       
 13176 
       
 13177 	/**This enum containst the possible signs of latitude*/
       
 13178 	enum TLatitudeSign
       
 13179 		{
       
 13180 		/**Latitude Sign Unknown*/
       
 13181 		ELatitudeSignUnknown,
       
 13182 		/**Latitude sign is north*/
       
 13183 		ENorth,
       
 13184 		/**Latitude sign is south*/
       
 13185 		ESouth
       
 13186 		};
       
 13187 	
       
 13188 	/**This enum contains the possible directions of altitudes for reference location*/
       
 13189 	enum TAltDirection
       
 13190 		{
       
 13191 		/**Altitude Direction Unknown*/
       
 13192 		EAltDirectionUnknown,
       
 13193 		/**Indicates Altitude direction is height-wise*/
       
 13194 		EHeight,
       
 13195 		/**Indicates Altitude direction is depth-wise*/
       
 13196 		EDepth
       
 13197 		};
       
 13198 
       
 13199 	/**This class contains a 3-D location (with uncertainty)*/
       
 13200 	class TReferenceLocationV1
       
 13201 		{
       
 13202 	public:
       
 13203 		/**Specifies the sign - North/South*/
       
 13204 		TLatitudeSign	iLatitudeSign;
       
 13205 		/**Degree of latitude*/
       
 13206 		TUint16			iLatitude;
       
 13207 		/**Degree of longitude*/
       
 13208 		TInt16			iLongitude;
       
 13209 		/**Direction of altitude*/
       
 13210 		TAltDirection	iAltDirection;
       
 13211 		/**Degree of altitude*/
       
 13212 		TUint16			iAltitude;
       
 13213 		/**Uncertainty semi major axis*/
       
 13214 		TUint8			iUncertainitySemiMajor;
       
 13215 		/**Uncertainty semi minor axis*/
       
 13216 		TUint8			iUncertainitySemiMinor;
       
 13217 		/**Orientation of major axis*/
       
 13218 		TUint8			iOrientationMajorAxis;
       
 13219 		/**The uncertainty in altitude, h, expressed in metres*/
       
 13220 		TUint8			iUncertainityAltitude;
       
 13221 		/**The confidence by which the position of a target entity is known to be within the shape description*/
       
 13222 		TUint8			iConfidence;
       
 13223 		};
       
 13224 
       
 13225 	/**
       
 13226 	Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) 
       
 13227 	that are currently being broadcast by the respective GPS satellites. Combining this information 
       
 13228 	with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
       
 13229 	*/
       
 13230 	class TGpsTowAssistV1
       
 13231 		{
       
 13232 	public:
       
 13233 		/**Satellite identification*/
       
 13234 		TUint8				iSatID;
       
 13235 		/**
       
 13236 		Contains a 14-bit value representing the Telemetry Message (TLM) 
       
 13237 		being broadcast by the GPS satellite identified by the particular SatID, 
       
 13238 		with the MSB occurring first in the satellite transmission.
       
 13239 		*/
       
 13240 		TUint16				iTlmMsg;
       
 13241 		/**
       
 13242 		Contains the two reserved bits in the TLM Word 
       
 13243 		being broadcast by the GPS satellite identified by SatID, 
       
 13244 		with the MSB occurring first in the satellite transmission.
       
 13245 		*/
       
 13246 		TUint8				iTlmReserved;
       
 13247 		/**Contain the Alert flags that are being broadcast by the GPS satellite identified by SatID.*/
       
 13248 		TBool				iAlert;
       
 13249 		/**Contain the Anti-Spoof that are being broadcast by the GPS satellite identified by SatID.*/
       
 13250 		TBool				iAntiSpoof;
       
 13251 		};
       
 13252 
       
 13253 	/**This class contains information that may be used to provide a mapping between UTRAN and GPS time*/
       
 13254 	class TUtranGpsRefTimeV1
       
 13255 		{
       
 13256 	public:
       
 13257 		/**UE-GPS timing of cell ms-part*/
       
 13258 		TUint16 			iMsPart;
       
 13259 		/**UE-GPS timing of cell ls-part*/
       
 13260 		TUint16				iLsPart;
       
 13261 		/**System frame number*/
       
 13262 		TUint16				iSfn;
       
 13263 		/**Specifies GPS reference time specific to mode - FDD/TDD*/
       
 13264 		TModeSpecificInfoV1	iModeSpecificInfo;
       
 13265 		/**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. 
       
 13266 		EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/
       
 13267 		TBool	iModeSpecificInfoStatus;
       
 13268 		};
       
 13269 
       
 13270 	/**
       
 13271 	This class contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) 
       
 13272 	that are currently being broadcast by the respective GPS satellites. Combining this information 
       
 13273 	with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
       
 13274 	*/
       
 13275 	class TReferenceTimeV1
       
 13276 		{
       
 13277 	public:
       
 13278 		/**GPS time in weeks*/
       
 13279 		TUint16				iGpsWeek;
       
 13280 		/**GPS Time of Week in milliseconds */
       
 13281 		TUint16				iGpsTowOneMsec;
       
 13282 		/**GPS reference time may be used to provide a mapping between UTRAN and GPS time*/
       
 13283 		TUtranGpsRefTimeV1	iUtranGpsRefTime;
       
 13284 		/**
       
 13285 		This field indicates the uncertainty of the relation GPS TOW/SFN. 
       
 13286 		ELessThan10 means the relation is accurate to at least 10 ms.
       
 13287 		*/
       
 13288 		TSfnTowUncertainity	iSfnTowUncertainity;
       
 13289 		/**Drift rate of the NODE B clock relative to GPS time.*/
       
 13290 		TUtranGpsDriftRate	iUtranGpsDriftRate;
       
 13291 		/**
       
 13292 		Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) 
       
 13293 		that are currently being broadcast by the respective GPS satellites. Combining this information 
       
 13294 		with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
       
 13295 		*/
       
 13296 		TGpsTowAssistV1		iGpsTowAssistList[KMaxSat];
       
 13297 		};
       
 13298 
       
 13299 	/**This class contains the GPS Assistance Data received from network*/
       
 13300 	class TUePosGpsAssistanceDataV1
       
 13301 		{
       
 13302 	public:
       
 13303 		/**GPS reference time may be used to provide a mapping between UTRAN and GPS time.*/
       
 13304 		TReferenceTimeV1 			iReferencTime;
       
 13305 		/**The Reference Location contains a 3-D location (with uncertainty)*/
       
 13306 		TReferenceLocationV1		iReferenceLocation;
       
 13307 		/**
       
 13308 		Holds information to allow a UE to estimate its position more accurate,
       
 13309 		biases in the pseudorange measurements may be provided to the UE.
       
 13310 		*/
       
 13311 		TDgpsCorrectionsV1			iDgpsCorrections;
       
 13312 		/**Holds navigation model satellite information*/
       
 13313 		TNavigationModelSatInfoV1	iNavigationModel;
       
 13314 		/**
       
 13315 		The Ionospheric Model contains information needed to model
       
 13316 		the propagation delays of the GPS signals through the ionosphere.
       
 13317 		*/
       
 13318 		TIonosphericModelV1			iIonosphericModel;
       
 13319 		/**UTC parameters may be used to provide Coordinated Universal Time to the UE.*/
       
 13320 		TUtcModelV1					iUtcModel;
       
 13321 		/**Holds the coarse, long-term model of the satellite positions and clocks.*/
       
 13322 		TAlmanacV1					iAlmanac;
       
 13323 		/**Holds the acquistions assistance information of the UE*/
       
 13324 		TAcquisitionAssistanceV1	iAcquisitionAssistance;
       
 13325 		/**Holds the list of bad satellites*/
       
 13326 		TUint8						iBadSatList[KMaxSat];
       
 13327 		/**
       
 13328 		This member specifies which of the above additional data structures are populated.
       
 13329 		*/
       
 13330 		TGpsAddlAssistDataReqV1 iGpsAddlDataStatus;
       
 13331 		};
       
 13332 
       
 13333 	/**This class contains the GPS assistance data required to compute the UE Postioning information*/
       
 13334 	class TUePosMeasurementV1
       
 13335 		{
       
 13336 	public:
       
 13337 		/**
       
 13338 		The purpose of the element is to express the allowed/required location method(s), 
       
 13339 		and to provide information desired QoS.
       
 13340 		*/
       
 13341 		TUePosReportingQuantityV1	iUePosReportingQuantity;
       
 13342 		/**This member data defines in which UE states the measurement is valid.*/
       
 13343 		TMeasurementValidity		iMeasurementValidity;
       
 13344 		/**This member data holds the GPS Assistance Data sent by the network*/
       
 13345 		TUePosGpsAssistanceDataV1	iUePosGpsAssistanceData;
       
 13346 		};
       
 13347 
       
 13348 	/**This holds the possible types of measurement commands that can be specified*/
       
 13349 	union TMeasurementCommandV1
       
 13350 		{
       
 13351 		/**Setup a new measurement*/
       
 13352 		TUePosMeasurementV1	iSetup;
       
 13353 		/**Modify a previously defined measurement*/
       
 13354 		TUePosMeasurementV1	iModify;
       
 13355 		/**Stop the measurement and clear all information in the UE that are related to that measurement.*/
       
 13356 		TBool	iRelease;
       
 13357 		};
       
 13358 
       
 13359 	/**This enum specifies the mode the UE shall use to transmit the measurement report*/
       
 13360 	enum TMeasReportTransferMode
       
 13361 		{
       
 13362 		/**Transfer mode unknown*/
       
 13363 		ETransferModeUnknown,
       
 13364 		/**The UE shall transmit the measurement report using Acknowledged RLC mode*/
       
 13365 		EAckModeRlc,
       
 13366 		/**The UE shall transmit the measurement report using Unacknowledged RLC mode*/
       
 13367 		EUnAckModeRlc
       
 13368 		};
       
 13369 
       
 13370 	/**
       
 13371 	This class contains the GPS assistance data needed by the UE to compute the location 
       
 13372 	of the UE. The UE computes the location once it receives all required information.
       
 13373 	*/
       
 13374 	class TMeasurementControlV7 : public RMobilePhone::TMultimodeType
       
 13375 		{
       
 13376 	public:
       
 13377 		IMPORT_C TMeasurementControlV7();
       
 13378 	public:
       
 13379 		/**
       
 13380 		A reference number that should be used by the UTRAN when setting up, 
       
 13381 		modifying or releasing the measurement and by the UE in the measurement report.
       
 13382 		*/
       
 13383 		TUint8	iMeasurementIdentity;
       
 13384 		/**Specifies the Measurement Setup / Modify / Release*/
       
 13385 		TMeasurementCommandV1	iMeasurementCommand;
       
 13386 		/**This specifies whether the UE shall transmit the measurement report using AM or UM RLC.*/
       
 13387 		TMeasReportTransferMode iMeasReportTransferMode;
       
 13388 		/**ETrue indicates velocity estimate is requested. EFalse indicates velocity estimate is not requested*/
       
 13389 		TBool	iVelocityRequested;
       
 13390 		/**Holds the type of measurement command being used*/
       
 13391 		TMeasurementCmd	iMeasurementCmdStatus;
       
 13392 		};
       
 13393    	/**
       
 13394 	A typedef'd packaged TMeasurementControlV7 for passing through a
       
 13395 	generic API method.
       
 13396 
       
 13397 	@publishedPartner
       
 13398 	*/
       
 13399 	typedef TPckg<TMeasurementControlV7> TMeasurementControlV7Pckg;
       
 13400 	
       
 13401 	//**************************************//
       
 13402 	// Measurement Report Data structures	//
       
 13403 	//**************************************//
       
 13404 
       
 13405 	
       
 13406 	/**
       
 13407 	This enum contains the indicators thta specify which 
       
 13408 	union members of TMeasurementQuantityV1 are included
       
 13409 	*/
       
 13410 	enum TMeasQnty
       
 13411 		{
       
 13412 		/**Measurement Quantity unknown*/
       
 13413 		EMeasQntyUnknown,
       
 13414 		/**Indicates that CpichEcN0 is present*/
       
 13415 		EMeasQntyCpichEcN0Present,
       
 13416 		/**Indicates that CpichRscp is present*/
       
 13417 		EMeasQntyCpichRscpPresent,
       
 13418 		/**Indicates that path loss is present*/
       
 13419 		EMeasQntyPathLossPresent,
       
 13420 		};
       
 13421 
       
 13422 	/**
       
 13423 	This enum contains the indicators that specify which 
       
 13424 	union members of TPosEstimateRefTime and  TPositionEstimateV1 are included
       
 13425 	*/
       
 13426 	enum TPosEstimateInfo
       
 13427 		{
       
 13428 		/**Position Estimate Info Unknown*/
       
 13429 		EPosEstimateInfoUnknown,
       
 13430 		/**
       
 13431 		NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPosEstimateRefTime
       
 13432 		Indicates that UE positioning estimate reference time is populated
       
 13433 		*/
       
 13434 		EUtranGpsRefTimeResultPresent,
       
 13435 		/**Indicates that GPS reference time is populated*/
       
 13436 		EGpsRefTimeOnlyPresent,
       
 13437 		/**Indicates that cell timing is populated*/
       
 13438 		ECellTimingPresent,
       
 13439 		/**
       
 13440 		NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPositionEstimateV1.
       
 13441 		Indicates EllipsoidPoint is populated
       
 13442 		*/
       
 13443 		EEllipsoidPointPresent,
       
 13444 		/**Indicates EllipsoidPoint with uncertainty circle is populated*/
       
 13445 		EEllipsoidPointUncertCirclePresent,
       
 13446 		/**Indicates EllipsoidPoint with uncertainty ellipse is populated*/
       
 13447 		EEllipsoidPointUncertEllipsePresent,
       
 13448 		/**Indicates EllipsoidPoint with altitude is populated*/
       
 13449 		EEllipsoidPointAltitudePresent,
       
 13450 		/**Indicates EllipsoidPoint with altitude and ellipse is populated*/
       
 13451 		EEllipsoidPointAltEllipsePresent,
       
 13452 		};
       
 13453 
       
 13454 	/**This enum contains the possible types of velocity estimates*/
       
 13455 	enum TVelEstimate
       
 13456 		{
       
 13457 		/**Velocity Estimate Unknown*/
       
 13458 		EVelEstimateUnknown,
       
 13459 		/**Velocity Estimate is not present*/
       
 13460 		EVelEstimateNotPresent,
       
 13461 		/**Horizontal velocity is included*/
       
 13462 		EHorzVelPresent,
       
 13463 		/**Horizontal and vertical velocity is included*/
       
 13464 		EHorzWithVertVelPresent,
       
 13465 		/**Horizontal velocity with uncertainty is included*/
       
 13466 		EHorzVelWithUncertPresent,
       
 13467 		/**Horizontal and vertical velocity with uncertainty is included*/
       
 13468 		EHorzWithVertVelAndUncertPresent,
       
 13469 		};
       
 13470 
       
 13471 	/**This contains the measurement quantities of the UE*/
       
 13472 	union TMeasurementQuantityV1
       
 13473 		{
       
 13474 	public:
       
 13475 		/**
       
 13476 		@see 3GPP TS 25.133.
       
 13477 		@see 3GPP TS 25.123.
       
 13478 		*/
       
 13479 		TUint8	iCpichEcN0;
       
 13480 		/**
       
 13481 		@see 3GPP TS 25.133.
       
 13482 		@see 3GPP TS 25.123.
       
 13483 		*/
       
 13484 		TUint8	iCpichRscp;
       
 13485 		/**Measurement path loss in dB.*/
       
 13486 		TUint8	iPathLoss;
       
 13487 		/**Extra for future use*/
       
 13488 		TBool	iSpare;
       
 13489 		};
       
 13490 
       
 13491 	/**This class contains the current cell informations in TDD mode*/
       
 13492 	class TTddV1
       
 13493 		{
       
 13494 	public:
       
 13495 		/**
       
 13496 		Time slot Interference on Signal Code Power
       
 13497 		@see 3GPP TS 25.123
       
 13498 		*/
       
 13499 		TUint8	iTimeSlotIscp;
       
 13500 		/**Primary Common Control Physical CHannel received signal code power*/
       
 13501 		TUint8	iPrimaryCcpchRscp;
       
 13502 		};
       
 13503 
       
 13504 	/**This class contains the information in FDD mode*/
       
 13505 	class TFddV1
       
 13506 		{
       
 13507 	public:
       
 13508 		/**Holds the measurement quantities of the UE*/
       
 13509 		TMeasurementQuantityV1	iMeasurementQuantity;
       
 13510 		/**Holds the field that would be populated in iMeasurementQuantity*/
       
 13511 		TMeasQnty	iMeasQntyStatus;
       
 13512 		};
       
 13513 
       
 13514 	/**This contains the current cell information in specific modes - FDD/TDD*/
       
 13515 	union TCurrentCellV1 
       
 13516 		{
       
 13517 		/**Current cell information in FDD mode*/
       
 13518 		TFddV1	iFdd;
       
 13519 		/**Current cell information in TDD mode*/
       
 13520 		TTddV1	iTdd;
       
 13521 		};
       
 13522 
       
 13523 	/**This contains the type of sfn-sfn observed time difference*/
       
 13524 	union TSfnSfnObsTimeDifferenceV1
       
 13525 		{
       
 13526 		/**Sfn-Sfn observed time difference -type1*/
       
 13527 		TUint16	iSfnSfnObsTimeDiff1;
       
 13528 		/**Sfn-Sfn observed time difference -type2*/
       
 13529 		TUint16	iSfnSfnObsTimeDiff2;
       
 13530 		};
       
 13531 
       
 13532 	/**This class contains the FDD mode information of monitored cells*/
       
 13533 	class TMonitoredCellFddV1
       
 13534 		{
       
 13535 	public:
       
 13536 		/**Primary Common Control Physical CHannel information*/
       
 13537 		TUint16		iPrimaryCpichInfo;
       
 13538 		/**Holds the measurement quantities of the UE*/
       
 13539 		TMeasurementQuantityV1 iMeasurementQuantity;
       
 13540 		/**Holds the field that would be populated in iMeasurementQuantity*/
       
 13541 		TMeasQnty	iMeasQntyStatus;
       
 13542 		};
       
 13543 
       
 13544 	/**This class contains the TDD mode information of monitored cells*/
       
 13545 	class TMonitoredCellTddV1
       
 13546 		{
       
 13547 	public:
       
 13548 		/**Cell identification*/
       
 13549 		TUint8	iCellParametersID;
       
 13550 		/**Primary Common Control Physical CHannel received signal code power*/
       
 13551 		TUint8	iPrimaryCcpchRscp;
       
 13552 		};
       
 13553 
       
 13554 	/**This contains the monitored cells information in specific mode -  FDD/TDD*/
       
 13555 	union TMonitoredCellModeSpecificInfoV1
       
 13556 		{
       
 13557 		/**Monitored Cell information in FDD mode*/
       
 13558 		TMonitoredCellFddV1	iMonitoredCellFdd;
       
 13559 		/**Monitored Cell information in TDD mode*/
       
 13560 		TMonitoredCellTddV1	iMonitoredCellTdd;
       
 13561 		};
       
 13562 
       
 13563 	/**This class contains the measured results for monitored cells on Random Access Channel*/
       
 13564 	class TMonitoredCellRachResultV1
       
 13565 		{
       
 13566 	public:
       
 13567 		/**Holds the sfn-sfn observed time difference*/
       
 13568 		TSfnSfnObsTimeDifferenceV1 iSfnSfnObsTimeDiff;
       
 13569 		/**Holds the monitored cells specific info mode - FDD/TDD*/
       
 13570 		TMonitoredCellModeSpecificInfoV1 iMonitoredCellModeSpecificInfo;
       
 13571 		/**ETrue indicates iMonitoredCellModeSpecificInfo is iMonitoredCellFdd.
       
 13572 		EFalse indicates iMonitoredCellModeSpecificInfo is iMonitoredCellTdd*/
       
 13573 		TBool	iSfnSfnObsTimeDiffStatus;
       
 13574 		};
       
 13575 	/**
       
 13576 	Horizontal velocity is characterised by the horizontal speed and bearing. 
       
 13577 	The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. 
       
 13578 	The bearing provides the direction of the horizontal component of velocity taken clockwise from North.
       
 13579 	@see 3GPP TS 23.032
       
 13580 	*/
       
 13581 	class THorzVelocityV1
       
 13582 		{
       
 13583 	public:
       
 13584 		/**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
       
 13585 		TUint16		iBearing;
       
 13586 		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
       
 13587 		TUint16		iHorzSpeed;
       
 13588 		};
       
 13589 
       
 13590 	/**This enum holds vertical speed direction*/
       
 13591 	enum TVertSpeedDirection
       
 13592 		{
       
 13593 		/**Speed direction unknown*/
       
 13594 		ESpeedDirectionUnknown,
       
 13595 		/**Upward direction*/
       
 13596 		EUpward,
       
 13597 		/**Downward direction*/
       
 13598 		EDownward
       
 13599 		};
       
 13600 
       
 13601 	/**
       
 13602 	Horizontal velocity is characterised by the horizontal speed and bearing. 
       
 13603 	The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. 
       
 13604 	The vertical speed and direction provides the component of velocity of a UE in a vertical direction.
       
 13605 	The bearing provides the direction of the horizontal component of velocity taken clockwise from North.
       
 13606 	@see 3GPP TS 23.032
       
 13607 	*/
       
 13608 	class THorzWithVertVelocityV1
       
 13609 		{
       
 13610 	public:
       
 13611 		/**Direction of vertical speed*/
       
 13612 		TVertSpeedDirection	iVertSpeedDirection;
       
 13613 		/**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
       
 13614 		TUint16		iBearing;
       
 13615 		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
       
 13616 		TUint16		iHorzSpeed;
       
 13617 		/**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/
       
 13618 		TUint8		iVertSpeed;
       
 13619 		};
       
 13620 
       
 13621 	/**
       
 13622 	Horizontal velocity with uncertainty is characterised by a horizontal speed and bearing,
       
 13623 	giving a horizontal velocity vector V, and an uncertainty speed s.
       
 13624 	@see 3GPP TS 23.032
       
 13625 	*/
       
 13626 	class THorzVelocityWithUncertaintyV1
       
 13627 		{
       
 13628 	public:
       
 13629 		/**	The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
       
 13630 		TUint16		iBearing;
       
 13631 		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
       
 13632 		TUint16		iHorzSpeed;
       
 13633 		/**
       
 13634 		Horizontal speed uncertainty.
       
 13635 		*/
       
 13636 		TUint8		iHorzSpeedUncertainty;
       
 13637 		};
       
 13638 
       
 13639 	/**
       
 13640 	Horizontal and vertical velocity with uncertainty is characterised by a horizontal speed and bearing, 
       
 13641 	giving a horizontal velocity vector Vx,y, a vertical speed and direction giving a vertical velocity component Vz,
       
 13642 	and uncertainty speeds s1 and s2. 
       
 13643 	@see 3GPP TS 23.032
       
 13644 	*/
       
 13645 	class THorzWithVertVelocityAndUncertaintyV1
       
 13646 		{	
       
 13647 	public:
       
 13648 		/**
       
 13649 		The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.
       
 13650 		*/
       
 13651 		TUint16		iBearing;
       
 13652 		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
       
 13653 		TUint16		iHorzSpeed;
       
 13654 		/**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/
       
 13655 		TUint8		iVertSpeed;
       
 13656 		/**Horizontal speed uncertainty.*/
       
 13657 		TUint8		iHorzSpeedUncertainty;
       
 13658 		};
       
 13659 
       
 13660 	/**
       
 13661 	This class contains the possible ways of velocity estimates
       
 13662 	@see 3GPP TS 23.032
       
 13663 	*/
       
 13664 	union TVelocityEstimateV1
       
 13665 		{
       
 13666 		/**Horizontal velocity*/
       
 13667 		THorzVelocityV1					iHorzVelocity;
       
 13668 		/**Horizontal velockity and vertical velocity*/
       
 13669 		THorzWithVertVelocityV1			iHorzWithVertVelocity;
       
 13670 		/**Horizontal velocity with uncertainty*/
       
 13671 		THorzVelocityWithUncertaintyV1	iHorzVelocityWithUncertainty;
       
 13672 		/**Horizontal and vertical velocity with uncertainty*/
       
 13673 		THorzWithVertVelocityAndUncertaintyV1	iHorzWithVertVelocityAndUncertainty;
       
 13674 		};
       
 13675 
       
 13676 	/**This class contains the measured results on Random Access Channel*/
       
 13677 	class TMeasuredResultsOnRachV1
       
 13678 		{
       
 13679 	public:
       
 13680 		/**Current cell information*/
       
 13681 		TCurrentCellV1	iCurrentCell;
       
 13682 		/**Monitored Cell information*/
       
 13683 		TMonitoredCellRachResultV1	iMonitoredCellsRachList[KMaxMonitoredCells];
       
 13684 		/**ETrue indicates iCurrentCell is iFdd.
       
 13685 		EFalse indicates iCurrentCell is iTdd*/
       
 13686 		TBool	iCurrentCellStatus;
       
 13687 		};
       
 13688 
       
 13689 	/**
       
 13690 	Identifies the channel in combination with the Midamble shift and slot number.
       
 13691 	It is not used in 1.28 Mcps TDD and may be set to either value and should be ignored by the receiver.
       
 13692 	*/
       
 13693 	enum TBurstType
       
 13694 		{
       
 13695 		/**Burst type 1*/
       
 13696 		EType1,
       
 13697 		/**Burst type 2*/
       
 13698 		EType2
       
 13699 		};
       
 13700 
       
 13701 	/**This class contains UE positioning estimates specific to TDD*/
       
 13702 	class TPosEstimateTddV1
       
 13703 		{
       
 13704 	public:
       
 13705 		/**Identifies the channel in combination with the Midamble shift and slot number.*/
       
 13706 		TBurstType	iBurstType;
       
 13707 		/**Midamble shift*/
       
 13708 		TUint8	iMidambleShift;
       
 13709 		/**
       
 13710 		This member data is present only if no IPDL scheme is configured in the reference cell.
       
 13711 		Otherwise the slot is defined by the IPDL configuration.
       
 13712 		*/
       
 13713 		TUint8	iTimeSlotNumber;
       
 13714 		/**
       
 13715 		Cell identification
       
 13716 		*/
       
 13717 		TUint8	iCellParametersID;
       
 13718 		};
       
 13719 
       
 13720 	/**This class contains UE positioning estimates specific to FDD/TDD*/
       
 13721 	union TPosEstimateModeSpecificInfoV1
       
 13722 		{
       
 13723 		/**Identifies the reference cell for the GPS TOW-SFN relationship.*/
       
 13724 		TUint16		iPrimaryCpichInfo;
       
 13725 		/**Holds the cell and channel identification*/
       
 13726 		TPosEstimateTddV1	iCellAndChannelID;
       
 13727 		};
       
 13728 
       
 13729 	/**This class contains the cell timing information*/
       
 13730 	class TCellTimingV1
       
 13731 		{
       
 13732 	public:
       
 13733 		/**
       
 13734 		SFN during which the position was calculated.
       
 13735 		*/
       
 13736 		TUint16		iSfn;
       
 13737 		/**Holds the UE positioning estimates specific to mode - FDD or TDD*/
       
 13738 		TPosEstimateModeSpecificInfoV1	iPosEstimateModeSpecificInfo;
       
 13739 		/**ETrue indicates iPosEstimateModeSpecificInfo is iPrimaryCpichInfo.
       
 13740 		EFalse indicates iPosEstimateModeSpecificInfo is iCellAndChannelID.*/
       
 13741 		TBool	iPosEstimateModeStatus;
       
 13742 		};
       
 13743 
       
 13744 	/**This class captures the GPS measurement specific to FDD or TDD*/
       
 13745 	union TGpsMeasModeSpecificInfoV1
       
 13746 		{
       
 13747 		/**Frequency Division Duplex identification*/
       
 13748 		TUint16	iFddRefID;
       
 13749 		/**Time Division Duplex identification*/
       
 13750 		TUint8	iTddRefID;
       
 13751 		};
       
 13752 
       
 13753 	/**This class contains results of the GPS reference time*/
       
 13754 	class TUtranGpsRefTimeResultV1
       
 13755 		{
       
 13756 	public:
       
 13757 		/**UE-GPS timing of cell ms-part*/
       
 13758 		TUint16		iMsPart;
       
 13759 		/**UE-GPS timing of cell ls-part*/
       
 13760 		TUint16		iLsPart;
       
 13761 		/**Holds the GPS measurement specific to FDD or TDD*/
       
 13762 		TGpsMeasModeSpecificInfoV1	iGpsMeasModeSpecificInfo;
       
 13763 		/**Cell System Frame Number*/
       
 13764 		TUint16		iSfn;
       
 13765 		/**ETrue indicates iGpsMeasModeSpecificInfo is iFddRefID. 
       
 13766 		 EFalse indicates iGpsMeasModeSpecificInfo is iTddRefID*/
       
 13767 		TBool	iGpsMeasModeStatus;
       
 13768 		};
       
 13769 
       
 13770 	/**This union contains the UE positioning reference time*/
       
 13771 	union TPosReferenceTimeV1
       
 13772 		{
       
 13773 		/**Contains the results of GPS reference time*/
       
 13774 		TUtranGpsRefTimeResultV1	iUtranGpsRefTimeResult;
       
 13775 		/**Contains the GPS reference time*/
       
 13776 		TUint16		iGpsRefTimeOnly;
       
 13777 		};
       
 13778 	
       
 13779 	/**
       
 13780 	This class contains the information of ellipsoid.
       
 13781 	It consists of a latitude and a longitude.
       
 13782 	@see 3GPP TS 23.032
       
 13783 	*/
       
 13784 	class TEllipsoidPointV1
       
 13785 		{
       
 13786 	public:
       
 13787 		/**Specifies the sign - North/South*/
       
 13788 		TLatitudeSign	iLatitudeSign;
       
 13789 		/**
       
 13790 		A north/south angular measurement of position relative to the equator, 
       
 13791 		in the meridian plane which contains the earth's rotation axis
       
 13792 		*/
       
 13793 		TUint16	iLatitude;
       
 13794 		/**
       
 13795 		An east/west angular measurement of position in relation to the Prime Meridian. 
       
 13796 		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
       
 13797 		and the other a meridian passing through the point of interest.
       
 13798 		*/
       
 13799 		TInt16	iLongitude;
       
 13800 		};
       
 13801 
       
 13802 	/**
       
 13803 	It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r
       
 13804 	@see 3GPP TS 23.032
       
 13805 	*/
       
 13806 	class TEllipsoidPointUncertCircleV1
       
 13807 		{
       
 13808 	public:
       
 13809 		/**Specifies the sign - North/South*/
       
 13810 		TLatitudeSign	iLatitudeSign;
       
 13811 		/**
       
 13812 		A north/south angular measurement of position relative to the equator, 
       
 13813 		in the meridian plane which contains the earth's rotation axis
       
 13814 		*/
       
 13815 		TUint16	iLatitude;
       
 13816 		/**
       
 13817 		An east/west angular measurement of position in relation to the Prime Meridian. 
       
 13818 		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
       
 13819 		and the other a meridian passing through the point of interest.
       
 13820 		*/
       
 13821 		TInt16	iLongitude;
       
 13822 		/**Uncertainty code*/
       
 13823 		TUint8	iUncertaintyCode;
       
 13824 		};
       
 13825 
       
 13826 	/**
       
 13827 	It is characterised by the co-ordinates of an ellipsoid point (the origin), 
       
 13828 	distances r1 and r2 and an angle of orientation A
       
 13829 	@see 3GPP TS 23.032
       
 13830 	*/
       
 13831 	class TEllipsoidPointUncertEllipseV1
       
 13832 		{
       
 13833 	public:
       
 13834 		/**Specifies the sign - North/South*/
       
 13835 		TLatitudeSign	iLatitudeSign;
       
 13836 		/**
       
 13837 		A north/south angular measurement of position relative to the equator, 
       
 13838 		in the meridian plane which contains the earth's rotation axis
       
 13839 		*/
       
 13840 		TUint16	iLatitude;
       
 13841 		/**
       
 13842 		An east/west angular measurement of position in relation to the Prime Meridian. 
       
 13843 		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
       
 13844 		and the other a meridian passing through the point of interest.
       
 13845 		*/
       
 13846 		TInt16	iLongitude;
       
 13847 		/**Uncertainty semi major axis*/
       
 13848 		TUint8	iUncertaintySemiMajor;
       
 13849 		/**Uncertainty semi minor axis*/
       
 13850 		TUint8	iUncertaintySemiMinor;
       
 13851 		/**Orientation of major axis*/
       
 13852 		TUint8	iOrientationMajorAxis;
       
 13853 		/**The confidence by which the position of a target entity is known to be within the shape description*/
       
 13854 		TUint8	iConfidence;
       
 13855 		};
       
 13856 
       
 13857 	/**
       
 13858 	The description of an ellipsoid point with altitude is that of a point at a specified distance 
       
 13859 	above or below a point on the earth's surface. This is defined by an ellipsoid point 
       
 13860 	with the given longitude and latitude and the altitude above or below the ellipsoid point.
       
 13861 	@see 3GPP TS 23.032
       
 13862 	*/
       
 13863 	class TEllipsoidPointAltitudeV1
       
 13864 		{
       
 13865 	public:
       
 13866 		/**Specifies the sign - North/South*/
       
 13867 		TLatitudeSign	iLatitudeSign;
       
 13868 		/**
       
 13869 		A north/south angular measurement of position relative to the equator, 
       
 13870 		in the meridian plane which contains the earth's rotation axis
       
 13871 		*/
       
 13872 		TUint16	iLatitude;
       
 13873 		/**
       
 13874 		An east/west angular measurement of position in relation to the Prime Meridian. 
       
 13875 		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
       
 13876 		and the other a meridian passing through the point of interest.
       
 13877 		*/
       
 13878 		TInt16	iLongitude;
       
 13879 		/**Direction of altitude*/
       
 13880 		TAltDirection	iAltDirection;
       
 13881 		/**Degree of altitude*/
       
 13882 		TUint16	iAltitude;
       
 13883 		};
       
 13884 	
       
 13885 	/**
       
 13886 	characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"),
       
 13887 	r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A 
       
 13888 	(the "angle of the major axis")
       
 13889 	@see 3GPP TS 23.032
       
 13890 	*/
       
 13891 	class TEllipsoidPointAltitudeEllipseV1
       
 13892 		{
       
 13893 	public:
       
 13894 		/**Specifies the sign - North/South*/
       
 13895 		TLatitudeSign	iLatitudeSign;
       
 13896 		/**
       
 13897 		A north/south angular measurement of position relative to the equator, 
       
 13898 		in the meridian plane which contains the earth's rotation axis
       
 13899 		*/
       
 13900 		TUint16	iLatitude;
       
 13901 		/**
       
 13902 		An east/west angular measurement of position in relation to the Prime Meridian. 
       
 13903 		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
       
 13904 		and the other a meridian passing through the point of interest.
       
 13905 		*/
       
 13906 		TInt16	iLongitude;
       
 13907 		/**Direction of altitude*/
       
 13908 		TAltDirection	iAltDirection;
       
 13909 		/**Degree of latitude*/
       
 13910 		TUint16	iAltitude;
       
 13911 		/**Uncertainty semi major axis*/
       
 13912 		TUint8	iUncertaintySemiMajor;
       
 13913 		/**Uncertainty semi minor axis*/
       
 13914 		TUint8	iUncertaintySemiMinor;
       
 13915 		/**Orientation of major axis*/
       
 13916 		TUint8	iOrientationMajorAxis;
       
 13917 		/**The confidence by which the position of a target entity is known to be within the shape description*/
       
 13918 		TUint8	iConfidence;
       
 13919 		};
       
 13920 
       
 13921 	/**This union holds the possible forms of position estimate of the UE that can be captured.*/
       
 13922 	union TPositionEstimateV1
       
 13923 		{
       
 13924 		/**
       
 13925 		The description of an ellipsoid point is that of a point
       
 13926 		on the surface of the ellipsoid, and consists of a latitude and a longitude.
       
 13927 		@see 3GPP TS 23.032
       
 13928 		*/
       
 13929 		TEllipsoidPointV1					iEllipsoidPoint;
       
 13930 		/**
       
 13931 		It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r
       
 13932 		@see 3GPP TS 23.032
       
 13933 		*/
       
 13934 		TEllipsoidPointUncertCircleV1		iEllipsoidPointUncertCircle;
       
 13935 		/**
       
 13936 		It is characterised by the co-ordinates of an ellipsoid point (the origin), 
       
 13937 		distances r1 and r2 and an angle of orientation A
       
 13938 		@see 3GPP TS 23.032
       
 13939 		*/
       
 13940 		TEllipsoidPointUncertEllipseV1		iEllipsoidPointUncertEllipse;
       
 13941 		/**
       
 13942 		The description of an ellipsoid point with altitude is that of a point at a specified distance 
       
 13943 		above or below a point on the earth's surface. This is defined by an ellipsoid point 
       
 13944 		with the given longitude and latitude and the altitude above or below the ellipsoid point.
       
 13945 		@see 3GPP TS 23.032
       
 13946 		*/
       
 13947 		TEllipsoidPointAltitudeV1			iEllipsoidPointAltitude;
       
 13948 		/**
       
 13949 		characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"),
       
 13950 		r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A 
       
 13951 		(the "angle of the major axis")
       
 13952 		@see 3GPP TS 23.032
       
 13953 		*/
       
 13954 		TEllipsoidPointAltitudeEllipseV1	iEllipsoidPointAltitudeEllipsoide;
       
 13955 		};
       
 13956 
       
 13957 	/**This contains the positioning estimate reference time*/
       
 13958 	union TPosEstimateRefTime
       
 13959 		{
       
 13960 		/**Contains results of the GPS reference time*/
       
 13961 		TUtranGpsRefTimeResultV1	iUtranGpsRefTimeResult;
       
 13962 		/**Contains the GPS reference time */
       
 13963 		TUint16		iGpsRefTimeOnly;
       
 13964 		/**Contains the cell timing*/
       
 13965 		TCellTimingV1	iCellTiming;
       
 13966 		};
       
 13967 
       
 13968 	/**
       
 13969 	Provides the position estimate from the UE to the network, 
       
 13970 	if the UE is capable of determining its own position.
       
 13971 	*/
       
 13972 	class TUePosPositionEstimateInfoV1
       
 13973 		{
       
 13974 	public:
       
 13975 		/**UE positioning estimate reference time*/
       
 13976 		TPosEstimateRefTime	iPosEstimateRefTime;
       
 13977 		/**Holds the UE's position estimate
       
 13978 		@see TPositionEstimateV1
       
 13979 		*/
       
 13980 		TPositionEstimateV1	iPostionEstimate;
       
 13981 		/**Holds the field that would be populated in iPosEstimateRefTime*/
       
 13982 		TPosEstimateInfo	iPosEstimateRefTimeStatus;
       
 13983 		/**Holds the field that would be populated in iPosEstimate*/
       
 13984 		TPosEstimateInfo	iPosEstimateStatus;
       
 13985 		};
       
 13986 	
       
 13987 	/**This enum contains the multipath indicators*/
       
 13988 	enum TMultipathIndicator
       
 13989 		{
       
 13990 		/**
       
 13991 		Multipath indicator unknown
       
 13992 		This is an invalid indicator. 
       
 13993 		*/
       
 13994 		EMPUnknown,
       
 13995 		/**Not measured*/
       
 13996 		ENm,
       
 13997 		/**MP error < 5m*/
       
 13998 		ELow,
       
 13999 		/**5m < MP error < 43m*/
       
 14000 		EMedium,
       
 14001 		/**MP error > 43m*/
       
 14002 		EHigh
       
 14003 		};
       
 14004 
       
 14005 	/**This class contains the GPS measurement parameters of the UE*/
       
 14006 	class TGpsMeasMeasurementParamV1
       
 14007 		{
       
 14008 	public:
       
 14009 		/**Satellite Identification*/
       
 14010 		TUint8		iSatID;
       
 14011 		/**
       
 14012 		The estimate of the carrier-to-noise ratio of the received signal from the particular 
       
 14013 		satellite used in the measurement. It is given in units of dB-Hz (typical levels will 
       
 14014 		be in the range of 20 - 50 dB-Hz).
       
 14015 		*/
       
 14016 		TUint8		iCN0;
       
 14017 		/**
       
 14018 		It is the instantaneous frequency difference between the receiver's internal oscillator 
       
 14019 		and the received carrier from the satellite. Hz, scale factor 0.2.
       
 14020 		*/
       
 14021 		TInt16		iDoppler;
       
 14022 		/**
       
 14023 		Unit in GPS chips.
       
 14024 		Whole value of the UE GPS code-phase measurement, where increasing binary values of the field 
       
 14025 		signify increasing measured pseudoranges.
       
 14026 		*/
       
 14027 		TUint16		iWholeGpsChips;
       
 14028 		/**
       
 14029 		The UE GPS code-phase measurement is divided into the fields "Whole GPS Chips" and "Fractional GPS Chips".
       
 14030 		Scale factor 2-10 Fractional value of the UE GPS code-phase measurement.
       
 14031 		*/
       
 14032 		TUint16		iFractionalGpsChips;
       
 14033 		/**
       
 14034 		Contains the possible multipath indicators. Multipath error is usually caused by one path being bounced or 
       
 14035 		reflected. The impact on a pseudo-range measurement may be up to a few metres. In the case of carrier phase,
       
 14036 		this is of the order of a few centimetres.
       
 14037 		*/
       
 14038 		TMultipathIndicator	iMultipathIndicator;
       
 14039 		/**
       
 14040 		A distance measurement based on the correlation of a satellite's transmitted code (may be the C/A-Code or 
       
 14041 		the encrypted P-Code) and the local receiver's reference code (for that PRN satellite number), 
       
 14042 		that has not been corrected for errors in synchronisation between the transmitter's clock and the receiver's clock.
       
 14043 		Hence a pseudo-range measurement is a time-error biased distance measurement.
       
 14044 		*/
       
 14045 		TUint8		iPseudorangeRmsError;
       
 14046 		};
       
 14047 
       
 14048 	/**This class contains the GPS measurement parameters and the positioning reference time*/
       
 14049 	class TUePosGpsMeasurementResultsV1
       
 14050 		{
       
 14051 	public:
       
 14052 		/**UE positioning reference time*/
       
 14053 		TPosReferenceTimeV1	iPosGpsMeasRefTime;
       
 14054 		/**Holds the GPS measurement parameters from all the active satellites*/
       
 14055 		TGpsMeasMeasurementParamV1	iGpsMeasurementParamList[KMaxSat];
       
 14056 		/**ETrue indicates TPosReferenceTimeV1::iUtranGpsRefTimeResult is populated. 
       
 14057 		 EFalse indicates TPosReferenceTimeV1::iGpsRefTimeOnly is populated*/
       
 14058 		TBool	iPosGpsMeasRefTimeStatus;
       
 14059 		};
       
 14060 
       
 14061 	/**
       
 14062 	This enum lists all the possible errors that UE can report to the network
       
 14063 	*/
       
 14064 	enum TPosErrorCause
       
 14065 		{
       
 14066 		/**
       
 14067 		Error Cause Unknown. This is an invalid error cause and is set if the UE does not set with 
       
 14068 		any of the underlying valid error causes
       
 14069 		*/
       
 14070 		EErrorCauseUnknown,
       
 14071 		/**Indicates that enought number of GPS satellites are healthy and active.*/
       
 14072 		ENotEnoughGpsSatellites,
       
 14073 		/**Assistance data required to compute location of the UE is missing in the measurement control.
       
 14074 		If the Additional data request flag is true in the measurement control only then additional assistance
       
 14075 		data can be requested otherwise measurements need to be done using the existing assistance data
       
 14076 		@see TGpsAddlAssistDataReqV1
       
 14077 		@see TUePosReportingQuantityV1
       
 14078 		 */
       
 14079 		EAssistanceDataMissing,
       
 14080 		/**
       
 14081 		Cell Frames Timings are not accomplished
       
 14082 		*/
       
 14083 		ENotAccomplishedGpsTimingOfCellFrames,
       
 14084 		/**
       
 14085 		UE can set this error in case other than the above mentioned is encountered 
       
 14086 		*/
       
 14087 		EUndefinedError,
       
 14088 		/**
       
 14089 		UE denies Location information
       
 14090 		*/
       
 14091 		ERequestDeniedByUser,
       
 14092 		};
       
 14093 
       
 14094 	/**
       
 14095 	This class contains the positioning errors that might have encountered during 
       
 14096 	measurement of location of the UE.
       
 14097 	*/
       
 14098 	class TUePosError
       
 14099 		{
       
 14100 	public:
       
 14101 		/**Indicates the error cause encountered while computing GPS Assistance data*/
       
 14102 		TPosErrorCause		iPosErrorCause;
       
 14103 		/**If error cause is "Assistance Data Missing" and iAddlAssistanceDataReq is set to ETrue then
       
 14104 		then this member shall indicate what additional assistance data is needed.
       
 14105 		If iAddlAssistanceDataReq is set to EFalse then existing assistance data is used to compute location
       
 14106 		information of the UE.
       
 14107 		@see TUePosReportingQuantityV1::iAddlAssistanceDataReq*/
       
 14108 		TGpsAddlAssistDataReqV1	iGpsAddlAssistDataReq;
       
 14109 		};
       
 14110 
       
 14111 	/**
       
 14112 	This class contains the measurement results computed by the UE.
       
 14113 	*/
       
 14114 	class TUePosMeasuredResultsV1
       
 14115 		{
       
 14116 	public:
       
 14117 		/**The purpose of this is to provide the position estimate from the UE to the network, 
       
 14118 		if the UE is capable of determining its own position.*/
       
 14119 		TUePosPositionEstimateInfoV1	iUePosPositionEstimateInfo;
       
 14120 		/**Contains the GPS measurement parameters and the positioning reference time*/
       
 14121 		TUePosGpsMeasurementResultsV1	iUePosGpsMeasurement;
       
 14122 		/**Indicates the error cause and/or additional assistance data is required*/
       
 14123 		TUePosError						iUePosError;
       
 14124 		/**
       
 14125 		ETrue indicates some error has encountered. iUePosError will be populated.
       
 14126 		EFalse indicates Gps Assistance Data is received and no error has encountered while processing.
       
 14127 		Hence iUePosPositionEstimateInfo and iUePosGpsMeasurement will be populated
       
 14128 		*/
       
 14129 		TBool	iPosErrorStatus;
       
 14130 		};
       
 14131 
       
 14132 	/**Contains the measured location information of the UE*/
       
 14133 	union TMeasuredResultsV1
       
 14134 		{
       
 14135 		/**
       
 14136 		This member either contains the measurement results or the error that might have 
       
 14137 		encountered during measurements.
       
 14138 		*/
       
 14139 		TUePosMeasuredResultsV1		iTUePosMeasuredResults;
       
 14140 		/**
       
 14141 		A spare member for future use.
       
 14142 		*/
       
 14143 		TBool						iSpare;
       
 14144 		};
       
 14145 
       
 14146 	/**
       
 14147 	This class contains the measurement report expected as response to the measurement control sent by the 
       
 14148 	network. Veloctiy estimates are included if requested in measurement control.
       
 14149 	*/
       
 14150 	class TMeasurementReportV7 : public RMobilePhone::TMultimodeType
       
 14151 		{
       
 14152 	public:
       
 14153 		IMPORT_C TMeasurementReportV7();
       
 14154 	public:
       
 14155 		/**A reference number that should be used by the UTRAN when setting up, 
       
 14156 		modifying or releasing the measurement and by the UE in the measurement report.
       
 14157 		*/
       
 14158 		TUint8 iMeasurementIdentity;
       
 14159 		/**Contains the measured location information of the UE*/
       
 14160 		TMeasuredResultsV1 iMeasuredResults;
       
 14161 		/**Contains the measured results on Random Access Channel*/
       
 14162 		TMeasuredResultsOnRachV1	iMeasuredResultsOnRach;
       
 14163 		/**Contains the velocity estimates of the UE*/
       
 14164 		TVelocityEstimateV1		iVelocityEstimate;
       
 14165 		/**
       
 14166 		Indicates the populated member in iVelocityEstimate if velocity estimate is computed.
       
 14167 		Otherwise indicates that velocity estimate is not computed.
       
 14168 		*/
       
 14169 		TVelEstimate	iVelEstimateStatus;
       
 14170 		};
       
 14171 	/**
       
 14172 	A typedef'd packaged TMeasurementReportV7 for passing through a
       
 14173 	generic API method.
       
 14174 
       
 14175 	@publishedPartner
       
 14176 	*/
       
 14177 	typedef TPckg<TMeasurementReportV7> TMeasurementReportV7Pckg;
       
 14178 	
       
 14179 	//*********************************************//	
       
 14180 	//  Measurement Control Failure data structure //
       
 14181 	//*********************************************//
       
 14182 
       
 14183 	/**
       
 14184 	This enum contains the list of errors that the UE can specify.
       
 14185 	The Measurement control failure is caused only when the the UE 
       
 14186 	cannot initiate a measurement as instructed by the network.
       
 14187 	*/
       
 14188 	enum TMeasurementControlFailure
       
 14189 		{
       
 14190 		/**
       
 14191 		Unknown Measurement Control Failure.
       
 14192 		This is an invalid failure state whic will be set if the UE does not set with the 
       
 14193 		underlying valid error reasons.
       
 14194 		*/
       
 14195 		EControlFailureUnknown,
       
 14196 		/**Indicates ASN1.0 encoding is incorrect*/
       
 14197 		EAsn1ViolationOrEncoding,
       
 14198 		/**Messsgae type specified is not existent*/
       
 14199 		EMsgTypeNonExistent,
       
 14200 		/**Message is not compatible*/
       
 14201 		EMsgNotCompatibleWithReceiverState,
       
 14202 		/**Information sent cannot be understood*/
       
 14203 		EIeValueNotComprehend,
       
 14204 		/**Information expected is not present*/
       
 14205 		EInformationElementMissing,
       
 14206 		/*Message extension cannot be understood*/
       
 14207 		EMsgExtnNotComprehend
       
 14208 		}; 
       
 14209 		
       
 14210 	/**
       
 14211 	This enum contains the possible domains used by MOLR 
       
 14212 	*/
       
 14213 	enum TDomain
       
 14214    		{
       
 14215 		/**Packet switch domain is the default domain that will be used by Molr*/
       
 14216    		EPacketSwitchedDomain,
       
 14217 		/**UE shall set the domain to Circuit switch whenever Molr is intended to use it*/
       
 14218   	 	ECircuitSwitchedDomain
       
 14219    		};
       
 14220 
       
 14221 	/**
       
 14222 	The UE Positioning Technology value, as defined in 3GPP TS 34.109 V7.2.0 Section 6.10
       
 14223 	@publishedPartner
       
 14224 	@released
       
 14225 	*/
       
 14226 	enum TUePosTechnology
       
 14227 		{
       
 14228 		/** A-GPS */
       
 14229 		KUePosTechnologyAGPS = 0
       
 14230 		};
       
 14231 
       
 14232 	IMPORT_C void NotifyMtlr(TRequestStatus& aReqStatus,TDes8& aNotifyMtlr);
       
 14233 	IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrResponse aMtlrResponse);
       
 14234 	IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrError aMtlrResponse);
       
 14235 	IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrReject aMtlrResponse);
       
 14236     IMPORT_C void SendMolr(TRequestStatus& aReqStatus,const TDesC8& aStartMolr,TDes8& aMolrReturnResult);
       
 14237 	IMPORT_C void NotifyMeasurementControl(TRequestStatus& aReqStatus,TDes8& aMeasurementControl);
       
 14238 	IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TDesC8& aMeasurementReport);
       
 14239 	IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TMeasurementControlFailure aMeasurementControlFailure);
       
 14240 	IMPORT_C TInt SetLcsDomain(const TDomain aDomain);	
       
 14241 	IMPORT_C void NotifyResetUePositioningInformation(TRequestStatus& aReqStatus, TUePosTechnology& aUePosTechnology) const;
       
 14242 
       
 14243 private:
       
 14244 	void ConstructL();
       
 14245 	void Destruct();
       
 14246 private:
       
 14247 	/**
       
 14248 	Pointer Holder for the RMobileLocationServices sub-session requests.
       
 14249 	*/
       
 14250 	CMobileLocationServicesPtrHolder* iMmPtrHolder;
       
 14251 	};
       
 14252 
       
 14253 #endif // __ETELMM_H__