epoc32/include/etelmm.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
     1.1 --- a/epoc32/include/etelmm.h	Tue Nov 24 13:55:44 2009 +0000
     1.2 +++ b/epoc32/include/etelmm.h	Tue Mar 16 16:12:26 2010 +0000
     1.3 @@ -1,1 +1,14103 @@
     1.4 -etelmm.h
     1.5 +// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +// All rights reserved.
     1.7 +// This component and the accompanying materials are made available
     1.8 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.9 +// which accompanies this distribution, and is available
    1.10 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.11 +//
    1.12 +// Initial Contributors:
    1.13 +// Nokia Corporation - initial contribution.
    1.14 +//
    1.15 +// Contributors:
    1.16 +//
    1.17 +// Description:
    1.18 +// Multimode ETel API header file.
    1.19 +// Describes the MM ETel API - classes, methods and types.
    1.20 +// 
    1.21 +//
    1.22 +
    1.23 +
    1.24 +
    1.25 +/**
    1.26 + @file
    1.27 + @publishedPartner
    1.28 + @released
    1.29 +*/
    1.30 +
    1.31 +#ifndef __ETELMM_H__
    1.32 +#define __ETELMM_H__
    1.33 +
    1.34 +#include <e32base.h>
    1.35 +#include <s32mem.h>
    1.36 +#include <etel.h>
    1.37 +#include <etelmmcs.h>
    1.38 +
    1.39 +
    1.40 +/** 
    1.41 +Internal API/TSY delimiter used to pass the phonebook type
    1.42 +*/
    1.43 +#define PHBOOK_DELIMITER		_L("//")
    1.44 +/** The size of the phone book delimiter string.
    1.45 +@internalComponent
    1.46 + */
    1.47 +const TInt KSizeOfPhbookDelimiter=2;
    1.48 +
    1.49 +/**
    1.50 +Names for Multimode ETel sub-sessions
    1.51 +*/
    1.52 +_LIT(KETelMeAdnPhoneBook,"S1");
    1.53 +_LIT(KETelMeDialledPhoneBook,"S2");
    1.54 +_LIT(KETelMeMissedPhoneBook,"S3");
    1.55 +_LIT(KETelMeReceivedPhoneBook,"S4");
    1.56 +_LIT(KETelCombinedAdnPhoneBook,"S5");
    1.57 +_LIT(KETelTaAdnPhoneBook,"S6");
    1.58 +_LIT(KETelIccAdnPhoneBook,"S7");
    1.59 +_LIT(KETelIccFdnPhoneBook,"S8");
    1.60 +_LIT(KETelIccSdnPhoneBook,"S9");
    1.61 +_LIT(KETelIccBdnPhoneBook,"S10");
    1.62 +_LIT(KETelIccLndPhoneBook,"S11");
    1.63 +_LIT(KETelIccVoiceMailBox,"S12");
    1.64 +
    1.65 +_LIT(KETelMeSmsStore,"S13");
    1.66 +_LIT(KETelIccSmsStore,"S14");
    1.67 +_LIT(KETelCombinedSmsStore,"S15");
    1.68 +
    1.69 +_LIT(KETelNamStore,"S16");
    1.70 +_LIT(KETelOwnNumberStore,"S17");
    1.71 +_LIT(KETelEmergencyNumberStore,"S18");
    1.72 +
    1.73 +_LIT(KETelSmsMessaging,"S19");
    1.74 +_LIT(KETelBroadcastMessaging,"S20");
    1.75 +_LIT(KETelUssdMessaging,"S21");
    1.76 +
    1.77 +_LIT(KETelConferenceCall,"S22");
    1.78 +
    1.79 +_LIT(KETelIccMbdnPhoneBook, "S23");
    1.80 +_LIT(KETelIccMsisdnPhoneBook, "S24");
    1.81 +_LIT(KETelIccOciPhoneBook, "S25");
    1.82 +_LIT(KETelIccIciPhoneBook, "S26");
    1.83 +_LIT(KETelIccNamStore ,"S27");
    1.84 +_LIT(KETelIccInfoPhoneBook, "S28");
    1.85 +
    1.86 +_LIT(KETelLocationServices,"S29");
    1.87 +
    1.88 +// Types for Multimode ETel sub-sessions
    1.89 +
    1.90 +_LIT(KEtelCdmaPhoneBookType,"T1");
    1.91 +_LIT(KEtelGsmPhoneBookType,"T2");
    1.92 +_LIT(KEtelUSimPhoneBookType,"T3");
    1.93 +
    1.94 +// Types for SmartCardEap sub-sessions
    1.95 +
    1.96 +/**
    1.97 +The prefix to all RMobileSmartCardEap sub-session names.
    1.98 +*/
    1.99 +_LIT(KETelSmartCardEapSession, "ScEap");
   1.100 +/**
   1.101 +The length of KETelSmartCardEapSession.  Used to obtain a const value
   1.102 +for this length at compile-time.
   1.103 +*/
   1.104 +#define SCEAP_SSN_LENGTH 5
   1.105 +
   1.106 +/**
   1.107 +EAP-MD5 type identifier.  Value taken from section 5 of RFC 3748 Jun 2004.
   1.108 +This should be used as the EAP type identifier value of
   1.109 +RMobileSmartCardEap::Open() if standard EAP-MD5 challenges are to be used.
   1.110 +
   1.111 +This value corresponds to one of the possible values returned in the type
   1.112 +list of TUiccApplicationEapInfoV6.
   1.113 +
   1.114 +(Decimal value = 4)
   1.115 +
   1.116 +@see RMobileSmartCardEap::Open()
   1.117 +@see RMobilePhone::TUiccApplicationEapInfoV6
   1.118 +*/
   1.119 +_LIT8(KETelSmartCardEapTypeMD5, "04");
   1.120 +
   1.121 +/**
   1.122 +EAP-TLS type identifier.  Value taken from section 4.1 of RFC 2716 Oct 1999.
   1.123 +This should be used as the EAP type identifier value of
   1.124 +RMobileSmartCardEap::Open() if standard EAP-TLS is to be used.
   1.125 +
   1.126 +This value corresponds to one of the possible values returned in the type
   1.127 +list of TUiccApplicationEapInfoV6.
   1.128 +
   1.129 +(Decimal value = 13)
   1.130 +
   1.131 +@see RMobileSmartCardEap::Open()
   1.132 +@see RMobilePhone::TUiccApplicationEapInfoV6
   1.133 +*/
   1.134 +_LIT8(KETelSmartCardEapTypeTLS, "0D");
   1.135 +
   1.136 +/**
   1.137 +EAP-SIM type identifier.
   1.138 +This should be used as the EAP type identifier value of
   1.139 +RMobileSmartCardEap::Open() if standard EAP-SIM is to be used.
   1.140 +
   1.141 +This value corresponds to one of the possible values returned in the type
   1.142 +list of TUiccApplicationEapInfoV6.
   1.143 +
   1.144 +(Decimal value = 18)
   1.145 +
   1.146 +@see RMobileSmartCardEap::Open()
   1.147 +@see RMobilePhone::TUiccApplicationEapInfoV6
   1.148 +*/
   1.149 +_LIT8(KETelSmartCardEapTypeSIM, "12");
   1.150 +
   1.151 +/**
   1.152 +EAP-AKA type identifier.
   1.153 +This should be used as the EAP type identifier value of
   1.154 +RMobileSmartCardEap::Open() if standard EAP-AKA is to be used.
   1.155 +
   1.156 +This value corresponds to one of the possible values returned in the type
   1.157 +list of TUiccApplicationEapInfoV6.
   1.158 +
   1.159 +(Decimal value = 23)
   1.160 +
   1.161 +@see RMobileSmartCardEap::Open()
   1.162 +@see RMobilePhone::TUiccApplicationEapInfoV6
   1.163 +*/
   1.164 +_LIT8(KETelSmartCardEapTypeAKA, "17");
   1.165 +
   1.166 +/**
   1.167 +EAP-TTLS type identifier.
   1.168 +This should be used as the EAP type identifier value of
   1.169 +RMobileSmartCardEap::Open() if standard EAP-TTLS is to be used.
   1.170 +
   1.171 +This value corresponds to one of the possible values returned in the type
   1.172 +list of TUiccApplicationEapInfoV6.
   1.173 +
   1.174 +(Decimal value = 21)
   1.175 +
   1.176 +@see RMobileSmartCardEap::Open()
   1.177 +@see RMobilePhone::TUiccApplicationEapInfoV6
   1.178 +*/
   1.179 +_LIT8(KETelSmartCardEapTypeTTLS, "15");
   1.180 +
   1.181 +/***********************************************************************************/
   1.182 +//
   1.183 +//  Global Multimode constants and types
   1.184 +// 
   1.185 +/***********************************************************************************/
   1.186 +
   1.187 +/**
   1.188 +Unique API identifier and Functional Unit constants
   1.189 +Modes: Common 
   1.190 +*/
   1.191 +enum TMultimodeETelV1Api
   1.192 +	{
   1.193 +	/** TSY supports the Multimode ETel v1.0 API.
   1.194 +	
   1.195 +	Modes: Common */
   1.196 +	KETelExtMultimodeV1=3000,  // 3000 is unique reference for Multimode Etel v1.0 API
   1.197 +	/** TSY supports the MobileSimAccess functional unit.
   1.198 +	
   1.199 +	Modes: Common */
   1.200 +	KETelFuncMobileIccAccess,
   1.201 +	/** TSY supports the MobileNetwork functional unit.
   1.202 +	
   1.203 +	Modes: Common */
   1.204 +	KETelFuncMobileNetwork,
   1.205 +	/** TSY supports the MobileIdentity functional unit.
   1.206 +	
   1.207 +	Modes: Common */
   1.208 +	KETelFuncMobileIdentity,
   1.209 +	/** TSY supports the MobilePower functional unit.
   1.210 +	
   1.211 +	Modes: Common */
   1.212 +	KETelFuncMobilePower,
   1.213 +	/** TSY supports the MobileSignal functional unit.
   1.214 +	
   1.215 +	Modes: GSM/WCDMA */
   1.216 +	KETelFuncMobileSignal,
   1.217 +	/** TSY supports the MobileIndicator functional unit.
   1.218 +	
   1.219 +	Modes: Common */
   1.220 +	KETelFuncMobileIndicator,
   1.221 +	/** TSY supports the MobileDTMF functional unit.
   1.222 +	
   1.223 +	Modes: Common */
   1.224 +	KETelFuncMobileDTMF,
   1.225 +	/** TSY supports the MobileUserNetworkAccess functional unit.
   1.226 +	
   1.227 +	Modes: Common */
   1.228 +	KETelFuncMobileUserNetworkAccess,
   1.229 +	/** TSY supports the MobileIdentityService functional unit.
   1.230 +	
   1.231 +	Modes: Common */
   1.232 +	KETelFuncMobileIdentityService,
   1.233 +	/** TSY supports the MobileCallForwarding functional unit.
   1.234 +	
   1.235 +	Modes: Common */
   1.236 +	KETelFuncMobileCallForwarding,
   1.237 +	/** TSY supports the MobileCallBarring functional unit.
   1.238 +	
   1.239 +	Modes: GSM/WCDMA */
   1.240 +	KETelFuncMobileCallBarring,
   1.241 +	/** TSY supports the MobileCallWaiting functional unit.
   1.242 +	
   1.243 +	Modes: Common */
   1.244 +	KETelFuncMobileCallWaiting,
   1.245 +	/** TSY supports the MobileCallCompletion functional unit. */
   1.246 +	KETelFuncMobileCallCompletion,
   1.247 +	/** TSY supports the MobileAlternatingCall functional unit.
   1.248 +	
   1.249 +	Modes: GSM/WCDMA */
   1.250 +	KETelFuncMobileAlternatingCall,
   1.251 +	/** TSY supports the MobileCost functional unit.
   1.252 +	
   1.253 +	Modes: GSM/WCDMA */
   1.254 +	KETelFuncMobileCost,
   1.255 +	/** TSY supports the MobileSecurity functional unit.
   1.256 +	
   1.257 +	Modes: Common */
   1.258 +	KETelFuncMobileSecurity,
   1.259 +	/** TSY supports the MobileAlternateLineService functional unit.
   1.260 +	
   1.261 +	Modes: GSM/WCDMA */
   1.262 +	KETelFuncMobileAlternateLineService,
   1.263 +	/** TSY supports the MobileMessageWaiting functional unit.
   1.264 +	
   1.265 +	Modes: Common */
   1.266 +	KETelFuncMobileMessageWaiting,
   1.267 +	/** TSY supports the MobileFixedDiallingNumbers functional unit.
   1.268 +	
   1.269 +	Modes: GSM/WCDMA */
   1.270 +	KETelFuncMobileFixedDiallingNumbers,
   1.271 +	/** TSY supports the MobileDataCall functional unit.
   1.272 +	
   1.273 +	Modes: Common */
   1.274 +	KETelFuncMobileDataCall,
   1.275 +	/** TSY supports the MobilePrivacy functional unit.
   1.276 +	
   1.277 +	Modes: CDMA */
   1.278 +	KETelFuncMobilePrivacy,
   1.279 +	/** TSY supports the MobileEmergencyCall functional unit.
   1.280 +	
   1.281 +	Modes: Common */
   1.282 +	KETelFuncMobileEmergencyCall,
   1.283 +	/** TSY supports the MobileSmsMessaging functional unit.
   1.284 +	
   1.285 +	Modes: Common */
   1.286 +	KETelFuncMobileSmsMessaging,
   1.287 +	/** TSY supports the MobileBroadcastMessaging functional unit.
   1.288 +	
   1.289 +	Modes: Common */
   1.290 +	KETelFuncMobileBroadcastMessaging,
   1.291 +	/** TSY supports the MobileUssdMessaging functional unit.
   1.292 +	
   1.293 +	Modes: GSM/WCDMA */
   1.294 +	KETelFuncMobileUssdMessaging,
   1.295 +	/** TSY supports the MobileConferenceCall functional unit.
   1.296 +	
   1.297 +	Modes: Common */
   1.298 +	KETelFuncMobileConferenceCall,
   1.299 +	/** TSY supports the MobilePhonebookStore functional unit.
   1.300 +	
   1.301 +	Modes: Common */
   1.302 +	KETelFuncMobilePhonebook,
   1.303 +	/** TSY supports the MobileSmsStore functional unit.
   1.304 +	
   1.305 +	Modes: Common */
   1.306 +	KETelFuncMobileSmsStore,
   1.307 +	/** TSY supports the MobileNamStore functional unit.
   1.308 +	
   1.309 +	Modes: CDMA */
   1.310 +	KETelFuncMobileNamStore,
   1.311 +	/** TSY supports the MobileONStore functional unit.
   1.312 +	
   1.313 +	Modes: Common */
   1.314 +	KETelFuncMobileOwnNumberStore,
   1.315 +	/** TSY supports the MobileENStore functional unit.
   1.316 +	
   1.317 +	Modes: Common */
   1.318 +	KETelFuncMobileEmergencyNumberStore,
   1.319 +	/** TSY supports the MobileMultimedia functional unit.
   1.320 +	
   1.321 +	Modes: GSM/WCDMA */
   1.322 +	KETelFuncMobileMulticall,
   1.323 +	/** TSY supports the MobileNextIncomingCall functional unit.
   1.324 +	
   1.325 +	Modes: GSM/WCDMA */
   1.326 +	KETelFuncMobileNextIncomingCall,
   1.327 +	/** TSY supports the MobileMultimediaCall functional unit.
   1.328 +	
   1.329 +	Modes: GSM/WCDMA */
   1.330 +	KETelFuncMobileMultimediaCall,
   1.331 +	/** TSY supports the MobileUserSignalling functional unit.
   1.332 +	
   1.333 +	Modes: GSM/WCDMA */
   1.334 +	KETelFuncMobileUserSignalling
   1.335 +	};
   1.336 +
   1.337 +/** Unique API identifier and Functional Unit constants.
   1.338 +Modes: WCDMA 
   1.339 +
   1.340 +*/
   1.341 +enum TMultimodeETelV2Api
   1.342 +	{
   1.343 +	/** TSY supports the Multimode ETel v2.0 API.
   1.344 +	
   1.345 +	Modes: WCDMA */
   1.346 +	KETelExtMultimodeV2=7000,  // 7000 is unique reference for Multimode Etel v2.0 API
   1.347 +	/** TSY supports the MobileMultimediaCallSettings functional unit.
   1.348 +	
   1.349 +	Modes: WCDMA */
   1.350 +	KEtelFuncMobileMultimediaCallSettings,
   1.351 +	/** TSY supports the MobileNetworkSecurity functional unit.
   1.352 +	
   1.353 +	Modes: WCDMA */
   1.354 +	KEtelFuncMobileNetworkSecurity,
   1.355 +	KEtelFuncMobileUSIMApplications
   1.356 +	};
   1.357 +	
   1.358 +/**
   1.359 +Enum to define the v3.0 API additions
   1.360 +
   1.361 +*/
   1.362 +enum TMultimodeETelV3Api
   1.363 +	{
   1.364 +	/**
   1.365 +	Indicator that the TSY supports the Multimode ETel v3.0 API.
   1.366 +	*/
   1.367 +	KETelExtMultimodeV3 = 10000,	
   1.368 +	/**
   1.369 +	TSY supports the MobileMMSInformation functional unit.
   1.370 +	*/
   1.371 +	KEtelFuncMobileMMSInformation,       // 10001
   1.372 +	/**
   1.373 +	TSY supports the KEtelFuncMobileAirTime functional unit.
   1.374 +	*/
   1.375 +	KEtelFuncMobileAirTime,              // 10002
   1.376 +	/**
   1.377 +	TSY supports the KEtelFuncMobileAutoRedial functional unit.
   1.378 +	*/
   1.379 +	KEtelFuncMobileAutoRedial,           // 10003
   1.380 +	/**
   1.381 +	TSY supports the KEtelFuncMobilePersonalisation functional unit.
   1.382 +	*/
   1.383 +	KEtelFuncMobilePersonalisation,      // 10004
   1.384 +	/**
   1.385 +	TSY supports the KEtelMobileMailboxNumbers functional unit.
   1.386 +	*/
   1.387 +	KEtelFuncMobileMailboxNumbers,       // 10005
   1.388 +	/**
   1.389 +	TSY supports the Mobile APN Control List functional unit.
   1.390 +	*/
   1.391 +	KEtelFuncMobileAPNControlList        // 10006
   1.392 +	};
   1.393 +
   1.394 +/**
   1.395 +Enum to define the v4.0 API additions
   1.396 +
   1.397 +*/
   1.398 +enum TMultimodeETelV4Api
   1.399 +	{
   1.400 +	/**
   1.401 +	Indicator that the TSY supports the Multimode ETel v4.0 API.
   1.402 +	*/
   1.403 +	KETelExtMultimodeV4	= 15000
   1.404 +	};
   1.405 +
   1.406 +
   1.407 +/** Enum to define Release 5 enabling API and data structures
   1.408 +*/
   1.409 +enum TMultimodeEtelV5Api
   1.410 +	{
   1.411 +	/**
   1.412 +	Indicator that the TSY supports the Multimode ETel v5.0 API.
   1.413 +	*/	
   1.414 +	KEtelExtMultimodeV5=20000,
   1.415 +	/**
   1.416 +	Indicator that the TSY supports the IMS functional unit.
   1.417 +	*/	
   1.418 +	KEtelFuncMobileIMS,                  // 20001
   1.419 +	/**
   1.420 +	TSY supports the KEtelFuncMobileSmartCardApplications functional unit.
   1.421 +	*/
   1.422 +	KEtelFuncMobileSmartCardApplications // 20002
   1.423 +	};
   1.424 +
   1.425 +
   1.426 +/**
   1.427 +Enum to define the v6.0 API additions.
   1.428 +*/
   1.429 +enum TMultimodeEtelV6Api
   1.430 +	{
   1.431 +	/**
   1.432 +	Indicator that the TSY supports the Multimode ETel v6.0 API.
   1.433 +	*/	
   1.434 +	KEtelExtMultimodeV6=25000,
   1.435 +	/**
   1.436 +	Indicator that the TSY supports the EAP supporting functional unit.
   1.437 +	*/	
   1.438 +	KEtelSmartCardEap                    // 25001
   1.439 +	};
   1.440 +	
   1.441 +/**
   1.442 +Enum to define the v7.0 API additions.
   1.443 +*/
   1.444 +enum TMultimodeEtelV7Api
   1.445 +	{
   1.446 +	/**
   1.447 +	Indicator that the TSY supports the Multimode ETel v7.0 API.
   1.448 +	*/	
   1.449 +	KEtelExtMultimodeV7=30000,
   1.450 +	/**
   1.451 +	Indicator that the TSY supports the LocationServices supporting functional unit.
   1.452 +	*/	
   1.453 +	KEtelLocationControlServices                    // 30001
   1.454 +	};
   1.455 +
   1.456 +/**
   1.457 +Enum to define the v8.0 API additions.
   1.458 +*/
   1.459 +enum TMultimodeEtelV8Api
   1.460 +	{
   1.461 +	/**
   1.462 +	Indicator that the TSY supports the Multimode ETel v8.0 API.
   1.463 +	*/	
   1.464 +	KEtelExtMultimodeV8=35000,
   1.465 +	/**
   1.466 +	Indicator that the TSY supports HSUPA.
   1.467 +	*/	
   1.468 +	KEtelHsupa,                   // 35001
   1.469 +	/**
   1.470 +	Indicator that the TSY supports GBA authentication functional unit
   1.471 +	*/
   1.472 +	KEtelFuncGenericBootstrapArchitecture,
   1.473 +	/**
   1.474 +	Indicator that the TSY supports MBMS authentication functional unit 
   1.475 +	*/
   1.476 +	KEtelFuncMBMS,
   1.477 +	/*
   1.478 +	Indicator that the TSY supports WLAN parameters on the USIM functional unit 
   1.479 +	*/
   1.480 +	KEtelFuncWLan
   1.481 +	};
   1.482 +			
   1.483 +/**
   1.484 +Enum to define the v9.0 API additions.
   1.485 +*/
   1.486 +enum TMultimodeEtelV9Api
   1.487 +	{
   1.488 +	/**
   1.489 +	Indicator that the TSY supports the Multimode ETel v9.0 API.
   1.490 +	*/	
   1.491 +	KEtelExtMultimodeV9=45000,
   1.492 +	/**
   1.493 +	Indicator that the TSY supports the Cell Information functional unit.
   1.494 +	*/	
   1.495 +	KEtelFuncCellInfo,                   // 45001
   1.496 +	};
   1.497 +		
   1.498 +/**
   1.499 +Enum to define the Etel 3rdParty V1 API additions
   1.500 +
   1.501 +*/
   1.502 +enum TMultimodeETel3rdPartyV1Api 
   1.503 +	{
   1.504 +	/**
   1.505 +	Indicator that the TSY supports the Etel 3rd Party v1.0 API
   1.506 +	*/
   1.507 +	KETelExt3rdPartyV1 = 40000
   1.508 +	};
   1.509 +
   1.510 +	
   1.511 +/*********************************************************/
   1.512 +//
   1.513 +// Phone based functionality (RMobilePhone)
   1.514 +// 
   1.515 +/*********************************************************/
   1.516 +
   1.517 +
   1.518 +class CMobilePhonePtrHolder;
   1.519 +class CMobilePhoneStoredNetworkList;
   1.520 +class CMobilePhoneStoredWlanSIDList;
   1.521 +class RMobileSmartCardEap;
   1.522 +
   1.523 +class RMobilePhone : public RPhone
   1.524 +/**
   1.525 +Provides client access to mobile phone functionality provided by TSY.
   1.526 +
   1.527 +Encapsulates access to a mobile phone. The functionality of RMobilePhone 
   1.528 +is divided into a number of functional units, for the purpose of easier documentation 
   1.529 +and navigation and selectable support by TSY.
   1.530 +
   1.531 +Note: Some RMobilePhone function members must be supported by the TSY while 
   1.532 +others are part of optional "functional unit" and only need to be supported 
   1.533 +if the TSY supports that functional unit. When a functional unit is mandatory 
   1.534 +then the unit should at least support the Get...Caps() member function to 
   1.535 +indicate the member functions that are supported for this unit.
   1.536 + 
   1.537 +*/
   1.538 +	{
   1.539 +public:
   1.540 +	friend class CAsyncRetrievePhoneList;
   1.541 +	IMPORT_C RMobilePhone();
   1.542 +
   1.543 +	// Global multimode types
   1.544 +
   1.545 +	
   1.546 +	class TMultimodeType
   1.547 +	/**
   1.548 +	Base class for all the V1 parameter types defined within the API.
   1.549 +	
   1.550 +	@publishedPartner
   1.551 +	@released
   1.552 +	*/
   1.553 +		{
   1.554 +	public:
   1.555 +		IMPORT_C TInt ExtensionId() const;
   1.556 +	protected:
   1.557 +		TMultimodeType();
   1.558 +		void InternalizeL(RReadStream& aStream);
   1.559 +		void ExternalizeL(RWriteStream& aStream) const;
   1.560 +	protected:
   1.561 +		TInt iExtensionId;
   1.562 +		};
   1.563 +		
   1.564 +	/** A typedef'd packaged TMultimodeType for passing through a generic API 
   1.565 +	function member. */
   1.566 +	typedef TPckg<TMultimodeType> TMultimodeTypePckg;
   1.567 +
   1.568 +	// Types used in RMobilePhone::TMobileAddress
   1.569 +
   1.570 +/** Address types.
   1.571 +
   1.572 +Modes: Common */
   1.573 +	enum TMobileTON
   1.574 +		{
   1.575 +	/** User or the network has no knowledge of the type of number.
   1.576 +	
   1.577 +	Modes: Common */
   1.578 +		EUnknownNumber,			// 0
   1.579 +	/** International number.
   1.580 +	
   1.581 +	Modes: Common */
   1.582 +		EInternationalNumber,	// 1
   1.583 +	/** National number.
   1.584 +	
   1.585 +	Modes: Common */
   1.586 +		ENationalNumber,		// 2
   1.587 +	/** Administration/service number specific to the serving network, e.g. used to 
   1.588 +	access an operator.
   1.589 +	
   1.590 +	Modes: Common */
   1.591 +		ENetworkSpecificNumber, // 3
   1.592 +	/** Subscriber number.
   1.593 +	
   1.594 +	Modes: Common */
   1.595 +		ESubscriberNumber,		// 4 - Also defined as "dedicated, short code" in GSM 04.08
   1.596 +	/** Alphanumeric number coded according to 3GPP TS 123 038 GSM 7-bit default alphabet.
   1.597 +	
   1.598 +	Modes: GSM/WCDMA */
   1.599 +		EAlphanumericNumber,	// 5
   1.600 +	/** Abbreviated number.
   1.601 +	
   1.602 +	Modes: Common */
   1.603 +		EAbbreviatedNumber		// 6
   1.604 +		};
   1.605 +
   1.606 +/** Number Plan Indicator.
   1.607 +
   1.608 +Modes: Common */
   1.609 +	enum TMobileNPI
   1.610 +		{
   1.611 +	/** User or the network has no knowledge of the numbering plan.
   1.612 +	
   1.613 +	Modes: Common */
   1.614 +		EUnknownNumberingPlan =0,
   1.615 +	/** ISDN/telephony numbering plan.
   1.616 +	
   1.617 +	Modes: Common */
   1.618 +		EIsdnNumberPlan=1,		
   1.619 +	/** Data numbering plan.
   1.620 +
   1.621 +	Modes: Common */
   1.622 +		EDataNumberPlan=3,		
   1.623 +	/** Telex numbering plan.
   1.624 +
   1.625 +	Modes: Common */
   1.626 +		ETelexNumberPlan=4,	
   1.627 +	/** Service centre specific plan used to indicate a numbering plan specific to external 
   1.628 +	Short Message entities attached to the SMSC. */
   1.629 +		EServiceCentreSpecificPlan1=5,
   1.630 +	/** Service centre specific plan used to indicate a numbering plan specific to external 
   1.631 +	Short Message entities attached to the SMSC.
   1.632 +	
   1.633 +	Modes: GSM/WCDMA */
   1.634 +		EServiceCentreSpecificPlan2=6,
   1.635 +	/** National numbering plan.
   1.636 +	
   1.637 +	Modes: GSM/WCDMA */
   1.638 +		ENationalNumberPlan=8,
   1.639 +	/** Private numbering plan.
   1.640 +	
   1.641 +	Modes: Common */
   1.642 +		EPrivateNumberPlan=9,
   1.643 +	/** ERMES numbering plan.
   1.644 +	
   1.645 +	Modes: GSM/WCDMA */
   1.646 +		EERMESNumberPlan=10
   1.647 +		};
   1.648 +
   1.649 +	enum 
   1.650 +		{
   1.651 +		KMaxMobilePasswordSize=10,
   1.652 +		KMaxMobileNameSize=32,
   1.653 +		KMaxMobileTelNumberSize=100
   1.654 +		};
   1.655 +
   1.656 +	struct TMMTableSettings
   1.657 +		{
   1.658 +		TUint32 iLocId;
   1.659 +		};
   1.660 +
   1.661 +	typedef TPckg<TMMTableSettings> TMMTableSettingsPckg;
   1.662 +
   1.663 +	
   1.664 +
   1.665 +	class TMobileAddress
   1.666 +	/**
   1.667 +	Defines API abstraction of a mobile telephone number.
   1.668 +	
   1.669 +	@publishedPartner
   1.670 +	@released
   1.671 +	*/
   1.672 +		{
   1.673 +	public:
   1.674 +		IMPORT_C TMobileAddress();
   1.675 +			
   1.676 +		void InternalizeL(RReadStream& aStream);
   1.677 +		void ExternalizeL(RWriteStream& aStream) const;
   1.678 +			
   1.679 +	public:
   1.680 +		/** Type of number.
   1.681 +		
   1.682 +		@see TMobileTON */
   1.683 +		TMobileTON iTypeOfNumber;
   1.684 +		/** Number plan.
   1.685 +		
   1.686 +		@see TMobileNPI */
   1.687 +		TMobileNPI iNumberPlan;
   1.688 +		/** Telephone number. */
   1.689 +		TBuf<KMaxMobileTelNumberSize> iTelNumber;
   1.690 +		};
   1.691 +
   1.692 +	// Mobile information location type
   1.693 +
   1.694 +	/** Defines Location of service information.
   1.695 +
   1.696 +	Modes: Common */
   1.697 +	enum TMobileInfoLocation
   1.698 +		{
   1.699 +		/** Retrieve the service information ONLY from the cache on the phone. Return KErrNotFound 
   1.700 +		if the cache does not exist or it is empty. */
   1.701 +		EInfoLocationCache,
   1.702 +		/** Retrieve the service information from the cache, but if this is empty or does 
   1.703 +		not exist then interrogate the network. */
   1.704 +		EInfoLocationCachePreferred,
   1.705 +		/** Retrieve the service information from the network (and refresh the cache if 
   1.706 +		there is one). */
   1.707 +		EInfoLocationNetwork
   1.708 +		};
   1.709 +
   1.710 +	// Mobile call service type
   1.711 +
   1.712 +	/** Applicability of request to a mobile service group.
   1.713 +
   1.714 +	Modes: Common */
   1.715 +	enum TMobileService
   1.716 +		{
   1.717 +		/** The call service has not been specified.
   1.718 +		
   1.719 +		Modes: Common */
   1.720 +		EServiceUnspecified,
   1.721 +		/** The API request applies to voice call services.
   1.722 +
   1.723 +		Modes: Common */
   1.724 +		EVoiceService,
   1.725 +		/** The API request applies to auxiliary voice call services.
   1.726 +
   1.727 +		Modes: GSM/WCDMA */
   1.728 +		EAuxVoiceService,
   1.729 +		/** The API request applies to circuit switched data call services.
   1.730 +		
   1.731 +		Modes: Common */
   1.732 +		ECircuitDataService,
   1.733 +		/** The API request applies to packet data services.
   1.734 +	
   1.735 +		Modes: Common */
   1.736 +		EPacketDataService,
   1.737 +		/** The API request applies to fax call services.
   1.738 +	
   1.739 +		Modes: Common */
   1.740 +		EFaxService,
   1.741 +		/** The API request applies to short message services.
   1.742 +	
   1.743 +		Modes: Common */
   1.744 +		EShortMessageService,
   1.745 +		/** The API request applies to all mobile services.
   1.746 +	
   1.747 +		Modes: Common */
   1.748 +		EAllServices,
   1.749 +		/** All teleservices
   1.750 +	
   1.751 +		Modes: Common */
   1.752 +		EAllTele,
   1.753 +		/** Telephony
   1.754 +	
   1.755 +		Modes: Common */
   1.756 +		ETelephony,
   1.757 +		/** All data teleservices
   1.758 +	
   1.759 +		Modes: Common */
   1.760 +		EAllDataTele,
   1.761 +		/** Voice Broadcast Service (VBS) Bearer Service
   1.762 +	
   1.763 +		Modes: Common */
   1.764 +		EAllDataExSms,
   1.765 +		/** All teleservices except SMS
   1.766 +	
   1.767 +		Modes: Common */
   1.768 +		EAllTeleExcSms,
   1.769 +		/** All PLMN specific teleservices
   1.770 +	
   1.771 +		Modes: Common */
   1.772 +		EAllPlmnTele,
   1.773 +		/** PLMN specific teleservice 1
   1.774 +	
   1.775 +		Modes: Common */
   1.776 +		EPlmnTele1,
   1.777 +		/** PLMN specific teleservice 2
   1.778 +	
   1.779 +		Modes: Common */
   1.780 +		EPlmnTele2,
   1.781 +		/** PLMN specific teleservice 3
   1.782 +	
   1.783 +		Modes: Common */
   1.784 +		EPlmnTele3,
   1.785 +		/** PLMN specific teleservice 4
   1.786 +	
   1.787 +		Modes: Common */
   1.788 +		EPlmnTele4,
   1.789 +		/** PLMN specific teleservice 5
   1.790 +
   1.791 +		Modes: Common */
   1.792 +		EPlmnTele5,
   1.793 +		/** PLMN specific teleservice 6
   1.794 +
   1.795 +		Modes: Common */
   1.796 +		EPlmnTele6,
   1.797 +		/** PLMN specific teleservice 7
   1.798 +	
   1.799 +		Modes: Common */
   1.800 +		EPlmnTele7,
   1.801 +		/** PLMN specific teleservice 8
   1.802 +	
   1.803 +		Modes: Common */
   1.804 +		EPlmnTele8,
   1.805 +		/** PLMN specific teleservice 9
   1.806 +	
   1.807 +		Modes: Common */
   1.808 +		EPlmnTele9,
   1.809 +		/** PLMN specific teleservice 10
   1.810 +	
   1.811 +		Modes: Common */
   1.812 +		EPlmnTeleA,
   1.813 +		/** PLMN specific teleservice 11
   1.814 +	
   1.815 +		Modes: Common */
   1.816 +		EPlmnTeleB,
   1.817 +		/** PLMN specific teleservice 12
   1.818 +	
   1.819 +		Modes: Common */
   1.820 +		EPlmnTeleC,
   1.821 +		/** PLMN specific teleservice 13
   1.822 +	
   1.823 +		Modes: Common */
   1.824 +		EPlmnTeleD,
   1.825 +		/** PLMN specific teleservice 14
   1.826 +	
   1.827 +		Modes: Common */
   1.828 +		EPlmnTeleE,
   1.829 +		/** PLMN specific teleservice 15
   1.830 +	
   1.831 +		Modes: Common */
   1.832 +		EPlmnTeleF,
   1.833 +		/** All bearer services
   1.834 +		
   1.835 +		Modes: Common */
   1.836 +		EAllBearer,
   1.837 +		/** All async services
   1.838 +	
   1.839 +		Modes: Common */
   1.840 +		EAllAsync,
   1.841 +		/** All sync services
   1.842 +	
   1.843 +		Modes: Common */
   1.844 +		EAllSync,
   1.845 +		/** All data circuit sync
   1.846 +	
   1.847 +		Modes: Common */
   1.848 +		ESyncData,
   1.849 +		/** All data circuit async
   1.850 +	
   1.851 +		Modes: Common */
   1.852 +		EAsyncData,
   1.853 +		/** All packet data services
   1.854 +	
   1.855 +		Modes: Common */
   1.856 +		EPacketData,
   1.857 +		/** All pad access services
   1.858 +
   1.859 +		Modes: Common */
   1.860 +		EPadAccess,
   1.861 +		/** All PLMN specific bearer services
   1.862 +
   1.863 +		Modes: Common */
   1.864 +		EAllPlmnBearer,
   1.865 +		/** PLMN specific bearer service 1
   1.866 +	
   1.867 +		Modes: Common */
   1.868 +		EPlmnBearerServ1,
   1.869 +		/** PLMN specific bearer service 2
   1.870 +	
   1.871 +		Modes: Common */
   1.872 +		EPlmnBearerServ2,
   1.873 +		/** PLMN specific bearer service 3
   1.874 +	
   1.875 +		Modes: Common */
   1.876 +		EPlmnBearerServ3,
   1.877 +		/** PLMN specific bearer service 4
   1.878 +	
   1.879 +		Modes: Common */
   1.880 +		EPlmnBearerServ4,
   1.881 +		/** PLMN specific bearer service 5
   1.882 +	
   1.883 +		Modes: Common */
   1.884 +		EPlmnBearerServ5,
   1.885 +		/** PLMN specific bearer service 6
   1.886 +	
   1.887 +		Modes: Common */
   1.888 +		EPlmnBearerServ6,
   1.889 +		/** PLMN specific bearer service 7
   1.890 +	
   1.891 +		Modes: Common */
   1.892 +		EPlmnBearerServ7,
   1.893 +		/** PLMN specific bearer service 8
   1.894 +	
   1.895 +		Modes: Common */
   1.896 +		EPlmnBearerServ8,
   1.897 +		/** PLMN specific bearer service 9
   1.898 +	
   1.899 +		Modes: Common */
   1.900 +		EPlmnBearerServ9,
   1.901 +		/** PLMN specific bearer service 10
   1.902 +	
   1.903 +		Modes: Common */
   1.904 +		EPlmnBearerServA,
   1.905 +		/** PLMN specific bearer service 11
   1.906 +	
   1.907 +		Modes: Common */
   1.908 +		EPlmnBearerServB,
   1.909 +		/** PLMN specific bearer service 12
   1.910 +	
   1.911 +		Modes: Common */
   1.912 +		EPlmnBearerServC,
   1.913 +		/** PLMN specific bearer service 13
   1.914 +	
   1.915 +		Modes: Common */
   1.916 +		EPlmnBearerServD,
   1.917 +		/** PLMN specific bearer service 14
   1.918 +	
   1.919 +		Modes: Common */
   1.920 +		EPlmnBearerServE,
   1.921 +		/** PLMN specific bearer service 15
   1.922 +	
   1.923 +		Modes: Common */
   1.924 +		EPlmnBearerServF,
   1.925 +		/** Alternative tele services
   1.926 +
   1.927 +		Modes: Common */
   1.928 +		EAltTele,
   1.929 +		/** Voice Group Call Service (VGCS)
   1.930 +
   1.931 +		Modes: Common */
   1.932 +		EVoiceGroupCall,
   1.933 +		/** Voice Broadcast Service (VBS)
   1.934 +
   1.935 +		Modes: Common */
   1.936 +		EVoiceBroadcast,
   1.937 +		/** All GPRS Bearer Services
   1.938 +
   1.939 +		Modes: Common */
   1.940 +		EAllGprsBearer
   1.941 +		};
   1.942 +
   1.943 +	// Mobile name type
   1.944 +
   1.945 +	/** A typedef to hold the names of API sub-sessions. The names are coded as ASCII 
   1.946 +	characters. */
   1.947 +	typedef TBuf<KMaxMobileNameSize> TMobileName;
   1.948 +
   1.949 +	// Mobile password type
   1.950 +
   1.951 +	/** A typedef for the standard password used by mobile phones for secure access 
   1.952 +	to services (phone lock, SIM lock, call barring password). The password is 
   1.953 +	coded as Unicode characters. */
   1.954 +	typedef TBuf<KMaxMobilePasswordSize> TMobilePassword;
   1.955 +
   1.956 +	// for use by client-side API code and TSY only
   1.957 +
   1.958 +	struct TClientId
   1.959 +	/** This type is used within the 2-phase list retrieval classes. During both phases, 
   1.960 +	the client-side API code will pass down the TClientId so that TSY can use
   1.961 +	this information to match the first phase of the request to the second phase. */
   1.962 +		{
   1.963 +		/** The handle to the underlying RTelServer session. */
   1.964 +		TInt iSessionHandle;
   1.965 +		/** The handle to the sub-session to which this API request relates. */
   1.966 +		TInt iSubSessionHandle;
   1.967 +		};
   1.968 +
   1.969 +	/** Phone air interface capabilities. */
   1.970 +	enum TMobilePhoneModeCaps
   1.971 +		{
   1.972 +		/** Phone can operate in GSM mode on 900/1800/1900 MHz bands. */
   1.973 +		KCapsGsmSupported=0x00000001,
   1.974 +		/** Phone can operate in GPRS mode on 900/1800/1900 MHz bands. */
   1.975 +		KCapsGprsSupported=0x00000002,
   1.976 +		/** Phone can operate in AMPS mode on 800MHz band. */
   1.977 +		KCapsAmpsSupported=0x00000004,
   1.978 +		/** Phone can operate in CDMA (IS-95) mode on 800/1900 MHz bands. */
   1.979 +		KCapsCdma95Supported=0x00000008,
   1.980 +		/** Phone can operate in CDMA (cdma2000) mode on 800/1900 MHz bands. */
   1.981 +		KCapsCdma2000Supported=0x00000010,
   1.982 +		/** Phone can operate in W-CDMA (UTRA Frequency Division Duplex (FDD)) mode. */
   1.983 +		KCapsWcdmaSupported=0x00000020,
   1.984 +		/** Phone can operate in TDMA/CDMA (UTRA Time Division Duplex (TDD)) mode. */
   1.985 +		KCapsTdcdmaSupported=0x00000040,
   1.986 +		/** 
   1.987 +		Phone can access Smart Card functionality required for an EAP. 
   1.988 +		@deprecated 9.3
   1.989 +		*/
   1.990 +		KCapsEapSupported=0x00000080
   1.991 +		};
   1.992 +
   1.993 +	/** Version number of the multimode ETel API. */
   1.994 +	 enum TMultimodeEtelAPIVersion
   1.995 +		{
   1.996 +		/** Multimode Etel API version 1. */
   1.997 +		 TMultimodeETelApiV1
   1.998 +		};
   1.999 +
  1.1000 +	 //
  1.1001 +	 //  API/TSY internal type
  1.1002 +	 //
  1.1003 +	
  1.1004 +	 struct TPhoneStoreNameAndIccType
  1.1005 +	/** Structure that holds the phone store name and ICC type.
  1.1006 +
  1.1007 +	Mode: Common */
  1.1008 +		{
  1.1009 +		/** This parameter is used to set the name of the storage. */
  1.1010 +		TName iStoreName;
  1.1011 +		/** This parameter is used to set the type of the ICC card. */
  1.1012 +		TName iMode;
  1.1013 +		};
  1.1014 +
  1.1015 +	IMPORT_C TInt GetMultimodeAPIVersion(TInt& aVersion) const;
  1.1016 +
  1.1017 +	IMPORT_C TInt GetMultimodeCaps(TUint32& aCaps) const;
  1.1018 +
  1.1019 +	IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aReqStatus, TDes8& aInfo, const TDesC& aStoreName) const;
  1.1020 +
  1.1021 +	IMPORT_C void GetPhoneStoreInfo(TRequestStatus& aStatus, TDes8& aInfo, const TDesC& aStoreName, const TDesC& aMode) const;
  1.1022 +
  1.1023 +	// explicit phone initialisation
  1.1024 +	IMPORT_C void InitialiseMM(TRequestStatus& aReqStatus, TDes8& aTableSettings) const; 
  1.1025 +
  1.1026 +	/***********************************************************************************/
  1.1027 +	//
  1.1028 +	// MobilePhoneIccAccess functional unit
  1.1029 +	//
  1.1030 +	/***********************************************************************************/
  1.1031 +	
  1.1032 +/** ICC access capabilities.
  1.1033 +
  1.1034 +Modes: GSM */
  1.1035 +	enum TMobilePhoneIccCaps
  1.1036 +		{
  1.1037 +	/** Phone has a SIM and it currently supports SIM access by clients.
  1.1038 +	
  1.1039 +	Modes: GSM */
  1.1040 +		KCapsSimAccessSupported=0x00000001,
  1.1041 +	/** Phone has a R-UIM and it currently supports R-UIM access by clients.
  1.1042 +	
  1.1043 +	Modes: CDMA */
  1.1044 +		KCapsRUimAccessSupported=0x00000002,
  1.1045 +	/** Phone has a USIM and it currently supports USIM access by clients.
  1.1046 +	
  1.1047 +	Modes: WCDMA */
  1.1048 +		KCapsUSimAccessSupported=0x00000004
  1.1049 +		};
  1.1050 +		
  1.1051 +
  1.1052 +	enum 
  1.1053 +	{
  1.1054 +	/**
  1.1055 +	Maximum size of an ICC identity. 
  1.1056 +	
  1.1057 +	NOTE: TS102.221 defines the maximum size of the ICC Identity as held in EF_ICCID as 10 bytes, however
  1.1058 +	TS 51.011 mentions that network operators may issue a SIM with an identification number of 20 bytes.  
  1.1059 +	Therefore to cover this possibility the higher figure of 20 bytes has been chosen as the maximum size of the ICC identity.
  1.1060 +	*/
  1.1061 +	KMaxSizeIccIdentity	= 20
  1.1062 +	};
  1.1063 +	
  1.1064 +	/** A typedef to hold the ICC identity.*/
  1.1065 +	typedef TBuf8<KMaxSizeIccIdentity> TIccIdentity; 
  1.1066 +
  1.1067 +	IMPORT_C TInt GetIccAccessCaps(TUint32& aCaps) const;
  1.1068 +	IMPORT_C void NotifyIccAccessCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.1069 +	IMPORT_C void GetIccIdentity(TRequestStatus& aReqStatus, TIccIdentity& aIdentity) const;
  1.1070 +
  1.1071 +/** The Call Transfer/Call Forward options that are supported by the CSP.
  1.1072 +
  1.1073 +Modes: WCDMA/GSM */
  1.1074 +	enum TCspCallOffering
  1.1075 +		{
  1.1076 +	/** Indicates that "Call Transfer" is supported by the CSP. */
  1.1077 +		KCspCT=0x08,
  1.1078 +	/** Indicates that "Call Forwarding on Not Reachable" is supported by the CSP. */
  1.1079 +		KCspCFNRc=0x10,
  1.1080 +	/** Indicates that "Call Forwarding on No Reply" is supported by the CSP. */
  1.1081 +		KCspCFNRy=0x20,
  1.1082 +	/** Indicates that "Call Forwarding on Busy" is supported by the CSP. */
  1.1083 +		KCspCFB=0x40,
  1.1084 +	/** Indicates that "Call Forwarding Unconditional" is supported by the CSP. */
  1.1085 +		KCspCFU=0x80
  1.1086 +		};
  1.1087 +
  1.1088 +/** The call restrictions supported by the CSP.
  1.1089 +
  1.1090 +Modes: GSM/WCDMA */
  1.1091 +	enum TCspCallRestriction
  1.1092 +		{
  1.1093 +	/** Indicates that "Barring of Incoming Calls when roaming outside the home PLMN 
  1.1094 +	country" is supported by CSP. */
  1.1095 +		KCspBICRoam=0x08,
  1.1096 +	/** Indicates that "Barring of All Incoming Calls" is supported by CSP. */
  1.1097 +		KCspBAIC=0x10,
  1.1098 +	/** Indicates that "Barring of Outgoing International Calls except those directed 
  1.1099 +	to the home PLMN country" is supported by CSP. */
  1.1100 +		KCspBOICexHC=0x20,
  1.1101 +	/** Indicates that "Barring of Outgoing International Calls" is supported by CSP. */
  1.1102 +		KCspBOIC=0x40,
  1.1103 +	/** Indicates that "Barring of All Outgoing Calls" is supported by CSP. */
  1.1104 +		KCspBOAC=0x80
  1.1105 +		};
  1.1106 +
  1.1107 +/** Other services supported by the CSP.
  1.1108 +
  1.1109 +Modes: GSM/WCDMA */
  1.1110 +	enum TCspOtherSuppServices
  1.1111 +		{
  1.1112 +	/** Indicates that the Outgoing Access option of the Closed User Group service is 
  1.1113 +	supported by the CSP. */
  1.1114 +		KCspCUGOA=0x08,
  1.1115 +	/** Indicates that the Preferential CUG option of the Closed User Group service 
  1.1116 +	is supported by the CSP. */
  1.1117 +		KCspPrefCUG=0x10,
  1.1118 +	/** Indicates that the Advice of Charge service is supported by the CSP. */
  1.1119 +		KCspAoC=0x20,
  1.1120 +	/** Indicates that the Closed User Group service is supported by the CSP. */
  1.1121 +		KCspCUG=0x40,
  1.1122 +	/** Indicates that the Multiparty call service is supported by the CSP */
  1.1123 +		KCspMPTY=0x80,
  1.1124 +		};
  1.1125 +
  1.1126 +/** Call completion modes supported by this CSP.
  1.1127 +
  1.1128 +Modes: GSM/WCDMA */
  1.1129 +	enum TCspCallCompletion
  1.1130 +		{
  1.1131 +	/** Indicates that the Call Completion to Busy Subscriber service is supported by 
  1.1132 +	the CSP. */
  1.1133 +		KCspCCBS=0x20,
  1.1134 +	/** Indicates that the Call Waiting service is supported by the CSP. */
  1.1135 +		KCspCW=0x40,
  1.1136 +	/** Indicates that the Call Hold service is supported by the CSP. */
  1.1137 +		KCspHOLD=0x80,
  1.1138 +		};
  1.1139 +
  1.1140 +/** SMS Teleservices supported by the CSP.
  1.1141 +
  1.1142 +Modes: GSM/WCDMA */
  1.1143 +	enum TCspTeleservices
  1.1144 +		{
  1.1145 +	/** Indicates that display of Validity Period menu options for SMS is supported 
  1.1146 +	by the CSP. */
  1.1147 +		KCspValidityPeriod=0x02,
  1.1148 +	/** Indicates that display of Protocol ID menu options for SMS is supported by the 
  1.1149 +	CSP. */
  1.1150 +		KCspProtocolID=0x04,
  1.1151 +	/** Indicates that SMS Delivery Confirmation is supported by the CSP. */
  1.1152 +		KCspDelConf=0x08,
  1.1153 +	/** Indicates that display of Reply Path menu options for outgoing SMS is supported 
  1.1154 +	by the CSP. */
  1.1155 +		KCspReplyPath=0x10,
  1.1156 +	/** Indicates that the Cell Broadcast service is supported by the CSP. */
  1.1157 +		KCspSMCB=0x20,
  1.1158 +	/** Indicates mobile originated Short Messages are supported by CSP. */
  1.1159 +		KCspSMMO=0x40,
  1.1160 +	/** Indicates mobile terminated Short Messages are supported by CSP. */
  1.1161 +		KCspSMMT=0x80,
  1.1162 +		};
  1.1163 +
  1.1164 +/** Alternate Line Services */
  1.1165 +	enum TCspCPHSTeleservices
  1.1166 +		{
  1.1167 +	/** Indicates that Alternate Line Service is supported by the CSP. */
  1.1168 +		KCspALS=0x80
  1.1169 +		};
  1.1170 +
  1.1171 +/** Currently not used. */
  1.1172 +	enum TCspCPHSFeatures
  1.1173 +		{
  1.1174 +	/** This bit value is reserved for SST in Phase 1 CPHS. */
  1.1175 +		KCspReservedSST=0x80
  1.1176 +		};
  1.1177 +
  1.1178 +/** Number Identification option supported by the CSP.
  1.1179 +
  1.1180 +Modes: GSM/WCDMA */
  1.1181 +	enum TCspNumberIdentification
  1.1182 +		{
  1.1183 +	/** Indicates that Calling Line Identity Presentation blocking per call (CLI sent 
  1.1184 +	by default) is supported by the CSP. */
  1.1185 +		KCspCLIBlock=0x01,
  1.1186 +	/** Indicates that Calling Line Identity Presentation per call (CLI blocked by default) 
  1.1187 +	is supported by the CSP. */
  1.1188 +		KCspCLISend=0x02,
  1.1189 +	/** Indicates that Connected Line Identification Presentation is supported by the 
  1.1190 +	CSP. */
  1.1191 +		KCspCOLP=0x10,
  1.1192 +	/** Indicates that Connected Line Identification Restriction is supported by the 
  1.1193 +	CSP. */
  1.1194 +		KCspCOLR=0x20,
  1.1195 +	/** Indicates that Calling Line Identification Presentation is supported by the CSP. */
  1.1196 +		KCspCLIP=0x80,
  1.1197 +		};
  1.1198 +
  1.1199 +/** Phase 2+ services supported by the CSP.
  1.1200 +
  1.1201 +Modes: GSM/WCDMA */
  1.1202 +	enum TCspPhase2PlusServices
  1.1203 +		{
  1.1204 +	/** Indicates that Multiple Band roaming is supported by CSP. */
  1.1205 +		KCspMultipleband=0x04,
  1.1206 +	/** Indicates that Multiple Subscriber Profile is supported by CSP.
  1.1207 +	
  1.1208 +	v1.0 of Multimode ETel API does not support this feature */
  1.1209 +		KCspMSP=0x08,
  1.1210 +	/** Indicates that Voice Broadcast is supported by CSP.
  1.1211 +	
  1.1212 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1213 +		KCspVoiceBroadcast=0x10,
  1.1214 +	/** Indicates that Voice Group Call is supported by CSP. 
  1.1215 +	
  1.1216 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1217 +		KCspVoiceGroupCall=0x20,
  1.1218 +	/** Indicates that High Speed Circuit Switched Data is supported by CSP. */
  1.1219 +		KCspHscsd=0x40,
  1.1220 +	/** Indicates that General Packet Radio Service is supported by CSP. */
  1.1221 +		KCspGprs=0x80
  1.1222 +		};
  1.1223 +
  1.1224 +/** Value added services supported by this CSP.
  1.1225 +
  1.1226 +Modes: GSM/WCDMA */
  1.1227 +	enum TCspValueAdded
  1.1228 +		{
  1.1229 +	/** Indicates that display of language selection menus is supported by the CSP.
  1.1230 +	
  1.1231 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1232 +		KCspLanguage=0x01,
  1.1233 +	/** Indicates that display of data call option menu is supported by the CSP. */
  1.1234 +		KCspData=0x04,
  1.1235 +	/** Indicates that display of fax call option menu is supported by the CSP. */
  1.1236 +		KCspFax=0x08,
  1.1237 +	/** Indicates that display of the menu option to send a Short Message of type Email 
  1.1238 +	is supported by the CSP. */
  1.1239 +		KCspSMMOEmail=0x10,
  1.1240 +	/** Indicates that display of the menu option to send a Short Message of type Paging 
  1.1241 +	is supported by the CSP. */
  1.1242 +		KCspSMMOPaging=0x20,
  1.1243 +	/** Indicates that display of the menu option for manual PLMN selection is supported 
  1.1244 +	by the CSP. */
  1.1245 +		KCspPLMNMode=0x80,
  1.1246 +		};
  1.1247 +
  1.1248 +	
  1.1249 +
  1.1250 +	class TMobilePhoneCspFileV1 : public TMultimodeType
  1.1251 +	/** Defines contents of the CSP (Customer Service Profile) on the SIM. The profile 
  1.1252 +	consists of the sum of the respective enums.
  1.1253 +
  1.1254 +	@see GetCustomerServiceProfile()
  1.1255 +	@publishedPartner
  1.1256 +	@released*/
  1.1257 +		{
  1.1258 +	public:
  1.1259 +	/** Constructor. */
  1.1260 +		IMPORT_C TMobilePhoneCspFileV1();
  1.1261 +
  1.1262 +	/** Sum of the TCspCallOffering. */
  1.1263 +		TUint8	iCallOfferingServices;
  1.1264 +	/** Sum of the TCspCallRestriction. */
  1.1265 +		TUint8	iCallRestrictionServices;
  1.1266 +	/** Sum of the TCspOtherSuppServices. */
  1.1267 +		TUint8	iOtherSuppServices;
  1.1268 +	/** Sum of the TCspCallCompletion. */
  1.1269 +		TUint8	iCallCompletionServices;
  1.1270 +	/** Sum of the TCspTeleservices. */
  1.1271 +		TUint8  iTeleservices;
  1.1272 +	/** Sum of the TCspCPHSTeleservices. */
  1.1273 +		TUint8	iCphsTeleservices;
  1.1274 +	/** Sum of the TCspCPHSFeatures. */
  1.1275 +		TUint8	iCphsFeatures;
  1.1276 +	/** Sum of the TCspNumberIdentification. */
  1.1277 +		TUint8	iNumberIdentServices;
  1.1278 +	/** Sum of the TCspPhase2PlusServices. */
  1.1279 +		TUint8	iPhase2PlusServices;
  1.1280 +	/** Sum of the TCspValueAdded. */
  1.1281 +		TUint8	iValueAddedServices;
  1.1282 +		};
  1.1283 +
  1.1284 +/** A typedef'd packaged TMobilePhoneCspFileV1 for passing through a generic API 
  1.1285 +function member. */
  1.1286 +	typedef TPckg<TMobilePhoneCspFileV1> TMobilePhoneCspFileV1Pckg;
  1.1287 +
  1.1288 +	IMPORT_C void GetCustomerServiceProfile(TRequestStatus& aReqStatus, TDes8& aCsp) const;
  1.1289 +
  1.1290 +/** SIM/USIM/CDMA Service Table.
  1.1291 +
  1.1292 +Modes: Common */
  1.1293 +	enum TSSTServices1To8
  1.1294 +		{
  1.1295 +	/** Indicates that disabling PIN1 is supported by the ICC. */
  1.1296 +		KSstPin1Disable=0x01,
  1.1297 +	/** Indicates that storage of Abbreviated Dialling Numbers within this ICC is supported. */
  1.1298 +		KSstADN=0x02,
  1.1299 +	/** Indicates that the Fixed Dialling Numbers service and the storage of FDN numbers
  1.1300 +	within this ICC is supported. */
  1.1301 +		KSstFDN=0x04,
  1.1302 +	/** Indicates that the Short Message Service and the storage of short messages within 
  1.1303 +	this ICC is supported.
  1.1304 +	
  1.1305 +	Modes: Common */
  1.1306 +		KSstSMS=0x08,
  1.1307 +	/** Indicates that the Advice of Charge service is supported by this ICC.
  1.1308 +	
  1.1309 +	Modes: GSM/WCDMA */
  1.1310 +		KSstAoC=0x10,
  1.1311 +	/** Indicates that the storage of Configuration Capability Parameters associated 
  1.1312 +	with an AND, FDN, MSISDN, LND or SDN is supported by this ICC.
  1.1313 +	
  1.1314 +	Modes: GSM/WCDMA */
  1.1315 +		KSstCCP=0x20,
  1.1316 +	/** Indicates that storage of a preferred network list is supported by this ICC.
  1.1317 +	
  1.1318 +	v1.0 of Multimode ETel API does not support this feature
  1.1319 +	
  1.1320 +	Modes: GSM/WCDMA */
  1.1321 +		KSstPLMNSelector=0x40
  1.1322 +		};
  1.1323 +
  1.1324 +/** SIM/USIM/CDMA Service Table (continued).
  1.1325 +
  1.1326 +Modes: GSM/WCDMA */
  1.1327 +	enum TSSTServices9To16
  1.1328 +		{
  1.1329 +	/** Indicates that storage of MSISDN (own numbers) numbers within this ICC is supported.
  1.1330 +	
  1.1331 +	Modes: GSM/WCDMA */
  1.1332 +		KSstMSISDN=0x01,
  1.1333 +	/** Indicates that storage of extended (greater than 20 digits) ADN, LND and MSISDN
  1.1334 +	numbers within this ICC is supported.
  1.1335 +	
  1.1336 +	Modes: Common */
  1.1337 +		KSstExt1=0x02,
  1.1338 +	/** Indicates that storage of extended (greater than 20 digits) FDN numbers within 
  1.1339 +	this ICC is supported.
  1.1340 +	
  1.1341 +	Modes: Common */
  1.1342 +		KSstExt2=0x04,
  1.1343 +	/** Indicates that storage of SMS parameter records within this ICC is supported.
  1.1344 +	
  1.1345 +	Modes: Common */
  1.1346 +		KSstSMSP=0x08,
  1.1347 +	/** Indicates that storage of Last Numbers Dialled within this ICC is supported.
  1.1348 +	
  1.1349 +	Modes: Common */
  1.1350 +		KSstLND=0x10,
  1.1351 +	/** Indicates that the storage of Cell Broadcast message identifiers is supported 
  1.1352 +	within this ICC.
  1.1353 +	
  1.1354 +	Modes: GSM/WCDMA */
  1.1355 +		KSstCBMI=0x20,
  1.1356 +	/** Indicates that access to the GID1 file is supported within this ICC.
  1.1357 +	
  1.1358 +	v1.0 of Multimode ETel API does not support this feature
  1.1359 +	
  1.1360 +	Modes: GSM/WCDMA */
  1.1361 +		KSstGID1=0x40,
  1.1362 +	/** Indicates that access to the GID2 file is supported within this ICC.
  1.1363 +	
  1.1364 +	v1.0 of Multimode ETel API does not support this feature
  1.1365 +	
  1.1366 +	Modes: GSM/WCDMA */
  1.1367 +		KSstGID2=0x80
  1.1368 +		};
  1.1369 +	
  1.1370 +/** SIM/USIM/CDMA Service Table (continued).
  1.1371 +
  1.1372 +v1.0 of Multimode ETel API does not support this feature
  1.1373 +
  1.1374 +Modes: Common */
  1.1375 +	enum TSSTServices17To24
  1.1376 +		{
  1.1377 +	/** Indicates that access to the Service Provider Name within ICC is supported.
  1.1378 +	
  1.1379 +	v1.0 of Multimode ETel API does not support this feature
  1.1380 +	
  1.1381 +	Modes: Common */
  1.1382 +		KSstSPName=0x01,
  1.1383 +	/** Indicates that storage of Service Dialling Numbers within ICC is supported.
  1.1384 +	
  1.1385 +	Modes: Common */
  1.1386 +		KSstSDN=0x02,
  1.1387 +	/** Indicates that storage of extended (greater than 20 digits) SDN numbers within 
  1.1388 +	this ICC/RUIM is supported.
  1.1389 +	
  1.1390 +	Modes: Common */
  1.1391 +		KSstExt3=0x04,
  1.1392 +	/** Indicates that access to the VGCS group identifier list within ICC is supported.
  1.1393 +	
  1.1394 +	v1.0 of Multimode ETel API does not support this feature
  1.1395 +	
  1.1396 +	Modes: GSM/WCDMA */
  1.1397 +		KSstVGCSList=0x10,
  1.1398 +	/** Indicates that access to the VBS group identifier list within ICC is supported.
  1.1399 +	
  1.1400 +	v1.0 of Multimode ETel API does not support this feature
  1.1401 +
  1.1402 +	Modes: GSM/WCDMA */
  1.1403 +		KSstVBSList=0x20,
  1.1404 +	/** Indicates that the enhanced Multi-Level Precedence and Pre-emption service is 
  1.1405 +	supported by ICC
  1.1406 +	
  1.1407 +	v1.0 of Multimode ETel API does not support this feature
  1.1408 +	
  1.1409 +	Modes: GSM/WCDMA */
  1.1410 +		KSsteMLPP=0x40,
  1.1411 +	/** Indicates that automatic answer for eMLPP is supported by ICC
  1.1412 +	
  1.1413 +	v1.0 of Multimode ETel API does not support this feature
  1.1414 +	
  1.1415 +	Modes: GSM/WCDMA */
  1.1416 +		KSstAnswereMLPP=0x80
  1.1417 +		};
  1.1418 +
  1.1419 +/** SIM/USIM/CDMA Service Table (continued).
  1.1420 +
  1.1421 +Modes: GSM/WCDMA */
  1.1422 +	enum TSSTServices25To32
  1.1423 +		{
  1.1424 +	/** Indicates that SAT SMS-CB data download is supported by ICC. */
  1.1425 +		KSstSmsCbDataDownload=0x01,
  1.1426 +	/** Indicates that SAT SMS-PP data download is supported by ICC. */
  1.1427 +		KSstSmsPpDataDownload=0x02,
  1.1428 +	/** Indicates that SAT menu selection is supported by ICC.
  1.1429 +	
  1.1430 +	SAT ETel API provides this feature. */
  1.1431 +		KSstMenuSelection=0x04,
  1.1432 +	/** Indicates that SAT call control is supported by ICC.
  1.1433 +	
  1.1434 +	SAT ETel API provides this feature. */
  1.1435 +		KSstCallControl=0x08,
  1.1436 +	/** Indicates that SAT pro-active SIM is supported by ICC.
  1.1437 +	
  1.1438 +	SAT ETel API provides this feature. */
  1.1439 +		KSstProactiveSim=0x10,
  1.1440 +	/** Indicates ICC storage of ranges of Cell Broadcast Message Identifiers is supported. */
  1.1441 +		KSstCBMIRanges=0x20,
  1.1442 +	/** Indicates ICC storage of Barred Dialling Numbers is supported. */
  1.1443 +		KSstBDN=0x40,
  1.1444 +	/** Indicates ICC storage of extended (greater than 20 digits) BDN numbers is supported. */
  1.1445 +		KSstExt4=0x80
  1.1446 +		};
  1.1447 +
  1.1448 +/** SIM/USIM/CDMA Service Table (continued).
  1.1449 +
  1.1450 +Modes: GSM/WCDMA */
  1.1451 +	enum TSSTServices33To40
  1.1452 +		{
  1.1453 +	/** Indicates depersonalisation control keys are supported by ICC.
  1.1454 +	
  1.1455 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1456 +		KSstDepersonalisationKeys=0x01,
  1.1457 +	/** Indicates co-operative network list are supported by this ICC.
  1.1458 +	
  1.1459 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1460 +		KSstCooperativeNetworks=0x02,
  1.1461 +	/** Indicates Short Message Status Reports are supported by ICC. */
  1.1462 +		KSstSMStatusReports=0x04,
  1.1463 +	/** Indicates network's indication of alerting is supported by ICC.
  1.1464 +	
  1.1465 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1466 +		KSstNetworkIndAlerting=0x08,
  1.1467 +	/** Indicates outgoing SM control by SAT is supported by ICC.
  1.1468 +	
  1.1469 +	SAT ETel API provides this feature. */
  1.1470 +		KSstMoSmControlBySim=0x10,
  1.1471 +	/** Indicates that GPRS is supported by this ICC.
  1.1472 +	
  1.1473 +	GPRS ETel API provides GPRS functionality. */
  1.1474 +		KSstGprs=0x20,
  1.1475 +	/** Indicates that Image files are supported by this ICC.
  1.1476 +	
  1.1477 +	SAT ETel API provides this feature. */
  1.1478 +		KSstImage=0x40,
  1.1479 +	/** Indicates that SoLSA in supported by this ICC.
  1.1480 +	
  1.1481 +	v1.0 of Multimode ETel API does not support this feature */
  1.1482 +		KSstSoLSA=0x80
  1.1483 +		};
  1.1484 +
  1.1485 +/** SIM/USIM/CDMA Service Table (continued).
  1.1486 +
  1.1487 +Modes: GSM/WCDMA */
  1.1488 +	enum TSSTServices41To48
  1.1489 +		{
  1.1490 +	/** Indicates that USSD string data is supported in SAT Call Control by this ICC.
  1.1491 +	
  1.1492 +	SAT ETel API provides this feature. */
  1.1493 +		KSstUssdStringInCallControl=0x01,
  1.1494 +	/** Indicates that RUN AT COMMAND is supported in SAT by this ICC.
  1.1495 +	
  1.1496 +	v1.0 of Multimode ETel API does not support this feature */
  1.1497 +		KSstRunATCommand=0x02,
  1.1498 +	/** Indicates that PLMN selector list with access technology is supported by this 
  1.1499 +	ICC.
  1.1500 +	
  1.1501 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1502 +		KSstPlmnSelectorListWithAccessTechnology=0x04,
  1.1503 +	/** Indicates that OPLMN selector list with access technology is supported by this
  1.1504 +	ICC.
  1.1505 +	
  1.1506 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1507 +		KSstOplmnSelectorListWithAccessTechnology=0x08,
  1.1508 +	/** Indicates that HPLMN access technology is supported by this ICC.
  1.1509 +	
  1.1510 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1511 +		KSstHplmnAccessTechnology=0x10,
  1.1512 +	/** Indicates that CPBCCH information is supported by this ICC.
  1.1513 +	
  1.1514 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1515 +		KSstCpbcchInformation=0x20,
  1.1516 +	/** Indicates that Investigation Scan is supported by this ICC.
  1.1517 +	
  1.1518 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1519 +		KSstInvestigationScan=0x40,
  1.1520 +	/** Indicates that extended capability configuration parameters are supported by 
  1.1521 +	this ICC.
  1.1522 +	
  1.1523 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1524 +		KSstExtendedCcp=0x80
  1.1525 +		};
  1.1526 +
  1.1527 +/** SIM/USIM/CDMA Service Table (continued).
  1.1528 +
  1.1529 +Modes: GSM/WCDMA */
  1.1530 +	enum TSSTServices49To56
  1.1531 +		{
  1.1532 +	/** Indicates Mobile Execution Environment services are supported by this ICC */
  1.1533 +		KSstMExE=0x01,
  1.1534 +	/** Indicates that RPLMN last used access technology is supported by this ICC.
  1.1535 +	
  1.1536 +	v1.0 of Multimode ETel API does not support this feature. */
  1.1537 +		KSstRplmnLastUsedAccessTechnology=0x02
  1.1538 +		};
  1.1539 +
  1.1540 +/** USIM service table. */
  1.1541 +	enum TUSTServices1To8
  1.1542 +		{
  1.1543 +	/** Indicates that the local phonebook is supported by the USIM. Local phonebook 
  1.1544 +	means a phonebook that is specific to a USIM Application, as opposed to the 
  1.1545 +	global phonebook which is located at the DF Telecom level on the UICC and 
  1.1546 +	not attached to a USIM Application. */
  1.1547 +		KUstLocalPhBk=0x01,
  1.1548 +	/** Indicates that the Fixed Dialling Numbers (FDN) service and the storage of 
  1.1549 +	FDN numbers within this USIM is supported. */
  1.1550 +		KUstFDN=0x02,
  1.1551 +	/** Indicates that the Extension 2 is supported by the USIM. Extension 2 provides 
  1.1552 +	extension data for Fixed Dialling Numbers. */
  1.1553 +		KUstExt2=0x04,
  1.1554 +	/** Indicates that the Service Dialling Numbers are supported by the USIM. */
  1.1555 +		KUstSDN=0x08,
  1.1556 +	/** Indicates that the Extension 3 is supported by the USIM. Extension 3 provides 
  1.1557 +	extension data for Service Dialling Numbers. */
  1.1558 +		KUstExt3=0x10,
  1.1559 +	/** Indicates that the Barred Dialling Numbers are supported by the USIM. */
  1.1560 +		KUstBDN=0x20,
  1.1561 +	/** Indicates that the Extension 4 is supported by the USIM. Extension 4 provides 
  1.1562 +	extension data for Barred Dialling Numbers. */
  1.1563 +		KUstExt4=0x40,
  1.1564 +	/** Indicates that the outgoing call information (OCI and OCT) are supported by 
  1.1565 +	the USIM.
  1.1566 +	
  1.1567 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1568 +		KUstOugoingCallInfo=0x80
  1.1569 +		};
  1.1570 +	
  1.1571 +/** USIM service table (continued). */
  1.1572 +	enum TUSTServices9To16
  1.1573 +		{
  1.1574 +	/** Indicates that the incoming call information (ICI and ICT) are supported by 
  1.1575 +	the USIM
  1.1576 +	
  1.1577 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1578 +		KUstIncomingCallInfo=0x01,
  1.1579 +	/** Indicates that Short Message Storage is supported by the USIM. */
  1.1580 +		KUstSMS=0x02,
  1.1581 +	/** Indicates that Short Message Status Reports are supported by the USIM. */
  1.1582 +		KUstSMSR=0x04,
  1.1583 +	/** Indicates that Short Message Service Parameters are supported by the USIM. */
  1.1584 +		KUstSMSP=0x08,
  1.1585 +	/** Indicates that Advice Of Charge is supported by the USIM. */
  1.1586 +		KUstAoC=0x10,
  1.1587 +	/** Indicates that Capability Configuration Parameters are supported by the USIM. */
  1.1588 +		KUstCCP=0x20,
  1.1589 +	/** Indicates that Cell Broadcast Message Identifier is supported by the USIM. */
  1.1590 +		KUstCBMI=0x40,
  1.1591 +	/** Indicates that Cell Broadcast Message Identifier Ranges are supported by the 
  1.1592 +	USIM. */
  1.1593 +		KUstCBMIRanges=0x80
  1.1594 +		};
  1.1595 +
  1.1596 +/** USIM service table (continued). */
  1.1597 +	enum TUSTServices17To24
  1.1598 +		{
  1.1599 +	/** Indicates that Group Identifier Level 1 is supported by the USIM.
  1.1600 +	
  1.1601 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1602 +		KUstGID1=0x01,
  1.1603 +	/** Indicates that Group Identifier Level 2 is supported by the USIM.
  1.1604 +	
  1.1605 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1606 +		KUstGID2=0x02,
  1.1607 +	/** Indicates that Service Provider Name is supported by the USIM. */
  1.1608 +		KUstSPN=0x04,
  1.1609 +	/** Indicates that user controlled PLMN selector with Access Technology is supported
  1.1610 +	by the USIM.
  1.1611 +	
  1.1612 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1613 +		KUstPLMNSelAccessTech=0x08,
  1.1614 +	/** Indicates that MSISDN is supported by the USIM. */
  1.1615 +		KUstMSISDN=0x10,
  1.1616 +	/** Indicates that Image is supported by the USIM.
  1.1617 +	
  1.1618 +	Note: (U)SAT ETel API provides this feature. This enum value is reserved for 
  1.1619 +	future API use. */
  1.1620 +		KUstIMG=0x20,
  1.1621 +		//0x40 is a reserved value
  1.1622 +	/** Indicates that enhanced Multi Level Precedence and Pre-emption Service is supported 
  1.1623 +	by the USIM.
  1.1624 +	
  1.1625 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1626 +		KUsteMLPP=0x80
  1.1627 +		};
  1.1628 +
  1.1629 +/** USIM service table (continued). */
  1.1630 +	enum TUSTServices25To32
  1.1631 +		{
  1.1632 +	/** Indicates that Automatic Answer for eMLPP is supported by the USIM.
  1.1633 +	
  1.1634 +	Note: v1.0 and v2.0 of Multimode ETel API do not support this feature. */
  1.1635 +		KUstAnswereMLPP=0x01,
  1.1636 +		//0x02 is a reserved value
  1.1637 +	/** Indicates that GSM Access is supported by the USIM */
  1.1638 +		KUstGSMAccess=0x04,
  1.1639 +	/** Indicates that Data download via SMS-PP is supported by the USIM.
  1.1640 +	
  1.1641 +	Note: (U)SAT ETel API provides this feature. */
  1.1642 +		KUstSMSPpDataDownload=0x08,
  1.1643 +	/** Indicates that Data download via SMS-CB is supported by the USIM.
  1.1644 +	
  1.1645 +	Note: (U)SAT ETel API provides this feature. */
  1.1646 +		KUstSMSCbDataDownload=0x10,
  1.1647 +	/** Indicates that Call Control by USIM is supported by the USIM.
  1.1648 +	
  1.1649 +	Note: (U)SAT ETel API provides this feature. */
  1.1650 +		KUstCallControl=0x20,
  1.1651 +	/** Indicates that MO-SMS Control by USIM is supported by the USIM.
  1.1652 +	
  1.1653 +	Note: (U)SAT ETel API provides this feature. */
  1.1654 +		KUstMoSmControl=0x40,
  1.1655 +	/** Indicates that the proactive command RUN AT COMMAND is supported by the USIM.
  1.1656 +	
  1.1657 +	Note: (U)SAT ETel API provides this feature. */
  1.1658 +		KUstPCmdRunAtCommand=0x80		
  1.1659 +		};
  1.1660 +
  1.1661 +/** USIM service table (continued). */
  1.1662 +	enum TUSTServices33To40
  1.1663 +		{
  1.1664 +	/** Should always be present as specified by 3 GPP spec. */
  1.1665 +		KUstAlways=0x10,
  1.1666 +	/** Indicates that the Enabled Service Table is supported by the USIM. */
  1.1667 +		KUstEST=0x02,
  1.1668 +	/** Indicates that APN Control List is supported by the USIM.
  1.1669 +	
  1.1670 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1671 +		KUstACL=0x04,
  1.1672 +	/** Indicates that the Depersonalisation Control Keys are supported by the USIM.
  1.1673 +	
  1.1674 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1675 +		KIstDepersonalisationKeys =0x08,
  1.1676 +	/** Indicates that the Co-operative Network List is supported by the USIM.
  1.1677 +
  1.1678 +	Note: v2.0 of Multimode ETel API does not support this feature. */
  1.1679 +		KUstCooperativeNetwork=0x10,
  1.1680 +	/** Indicates that GSM Security Context is supported by the USIM. */
  1.1681 +		KUstGSMSecurityContext=0x20,
  1.1682 +	/** Indicates that CPBCCH Information is supported by the USIM.
  1.1683 +	
  1.1684 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1685 +		KUstCPBCCHInfo=0x40,
  1.1686 +	/** Indicates that Investigation Scan is supported by the USIM.
  1.1687 +	
  1.1688 +	Note:v2.0 of Multimode ETel API do not support this feature. */
  1.1689 +		KUstInvestigationScan=0x80
  1.1690 +		};
  1.1691 +
  1.1692 +/** USIM service table (continued). */
  1.1693 +	enum TUSTServices41To48
  1.1694 +		{
  1.1695 +	/** Indicates that MExE is supported by the USIM.
  1.1696 +	
  1.1697 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1698 +		KUstMExE=0x01,
  1.1699 +	/** Indicates that Operator controlled PLMN selector with Access Technology is 
  1.1700 +	supported by the USIM.
  1.1701 +	
  1.1702 +	N.B .v2.0 of Multimode ETel API do not support this feature. */
  1.1703 +		KUstOperatorPLMNSelector=0x02,
  1.1704 +	/** Indicates that HPLMN selector with Access Technology is supported by the USIM.
  1.1705 +	
  1.1706 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1707 +		KUstHPLMNSelAccessTech=0x04,
  1.1708 +	/** Indicates that Extension 5 is supported by the USIM. Provides support for extension 
  1.1709 +	data for MSISDN. */
  1.1710 +		KUstExt5=0x08,
  1.1711 +	/** Indicates that PLMN Network Name is supported by the USIM.
  1.1712 +	
  1.1713 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1714 +		KUstPLMNNetworkName=0x10,
  1.1715 +	/** Indicates that Operator PLMN List is supported by the USIM.
  1.1716 +	
  1.1717 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1718 +		KUstOperatorPLMNList=0x20,
  1.1719 +	/** Indicates that Mailbox Dialling Numbers are supported by the USIM. */
  1.1720 +		KUstMDN=0x40,
  1.1721 +	/** Indicates that Message Waiting Indication Status is supported by the USIM. */
  1.1722 +		KUstMWISo=0x80
  1.1723 +		};
  1.1724 +
  1.1725 +/** USIM service table (continued). */
  1.1726 +	enum TUSTServices49To56
  1.1727 +		{
  1.1728 +	/** Indicates that Call forwarding indication status is supported by the USIM.
  1.1729 +	
  1.1730 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1731 +		KUstCFIS=0x01,
  1.1732 +	/** Indicates that RPLMN last-used access technology is supported by the USIM (Release 5).
  1.1733 +	From Release 6 this service is "Reserved and shall be ignored".
  1.1734 +	
  1.1735 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1736 +		KUstRPLMN=0x02,
  1.1737 +	/** Indicates that Service provider display information is supported by the USIM.
  1.1738 +	
  1.1739 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1740 +		KUstSPDI=0x04,
  1.1741 +	    KUstMMS=0x08,
  1.1742 +	    KUstExt8=0x10,
  1.1743 +	    KUstCConGPRS=0x20,
  1.1744 +	    KUstMMSUCP=0x40
  1.1745 +		};
  1.1746 +
  1.1747 +
  1.1748 +/** USIM service table (continued). */
  1.1749 +	enum TUSTServices57To64
  1.1750 +		{
  1.1751 +	/** Indicates that VGCS Group Identifier List ( VGCS and VGCSS) is supported by the USIM.
  1.1752 +	
  1.1753 +	Note: v8.0 of Multimode ETel API does not support this feature. */
  1.1754 +		KUstVGCSGroupIdList=0x01,
  1.1755 +	/** Indicates that VBS Group Identifier List ( VBS and VBSS ) is supported by the USIM.
  1.1756 +	
  1.1757 +	Note: v8.0 of Multimode ETel API does not support this feature. */
  1.1758 +		KUstVBSGroupIdList=0x02,
  1.1759 +	/** Indicates that Pseudonym  is supported by the USIM.*/
  1.1760 +		KUstPseudonym=0x04,
  1.1761 +	/** Indicates that User controlled PLMN selector for WLAN Access is supported by the USIM. */	
  1.1762 +	    KUstUserPLMNSelectorWLAN=0x08,
  1.1763 +	/** Indicates that Operator controlled PLMN selector for WLAN Access is supported by the USIM.*/    
  1.1764 +	    KUstOperatorPLMNSelectorWLAN =0x10,
  1.1765 +	/** Indicates that User controlled WLAN specific identifier list  is supported by the USIM.*/    
  1.1766 +	    KUstUserWSIDList=0x20,
  1.1767 +	/** Indicates that Opertor controlled WLAN specific identifier list  is supported by the USIM. */    
  1.1768 +  	    KUstOperatorWSIDList=0x40,
  1.1769 +	/** Indicates that Voice Group Call Service Ciphering Algorithm is supported by the USIM.
  1.1770 +	
  1.1771 +	Note: v8.0 of Multimode ETel API does not support this feature. */  
  1.1772 +	    KUstVGCSSecurity=0x80
  1.1773 +		};
  1.1774 +
  1.1775 +/** USIM service table (continued). */
  1.1776 +	enum TUSTServices65To72
  1.1777 +		{
  1.1778 +	/** Indicates that Voice Broadcast Service Ciphering Algorithm is supported by the USIM.
  1.1779 +	
  1.1780 +	 Note: v8.0 of Multimode ETel API does not support this feature. */  
  1.1781 +		KUstVBSSecurity=0x01,
  1.1782 +	/** Indicates that the WLAN Reauthentication Identity is supported by the USIM.*/
  1.1783 +		KUstWLANReAuthenId=0x02,
  1.1784 +	/** Indicates that Multimedia Message Storage is supported by the USIM.
  1.1785 +	
  1.1786 +	Note: v8.0 of Multimode ETel API does not support this feature. */  
  1.1787 +		KUstMMStorage=0x04,
  1.1788 +	/** Indicates that Generic Bootstrapping Architecture (GBA) is supported by the USIM */  
  1.1789 +			
  1.1790 +	    KUstGBA=0x08,
  1.1791 +	/** Indicates that Multimedia Broadcast Multicast Service (MBMS) Security is supported by the USIM.*/  
  1.1792 +	
  1.1793 +	    KUstMBMSSecurity =0x10,
  1.1794 +	 /** Indicates that USSD Data Dowload feature is supported by the USIM.
  1.1795 +	
  1.1796 +	Note: v8.0 of Multimode ETel API does not support this feature. */  
  1.1797 +	
  1.1798 +	    KUstUSSDDataDownload=0x20,
  1.1799 +	/** Indicates that Additional TERMINAL PROFILE after UICC activation is supported by the USIM */  
  1.1800 +	    KUstTerminalProfileUICCActivation=0x80
  1.1801 +		};
  1.1802 +
  1.1803 +/** Enabled Services Table. */
  1.1804 +	enum TESTServices1To8
  1.1805 +		{
  1.1806 +	/** Indicates that FDN service is activated. */
  1.1807 +		KEstFDN=0x01,
  1.1808 +	/** Indicates that BDN service is activated. */
  1.1809 +		KEstBDN=0x02,
  1.1810 +	/** Indicates that the APN Control List service is activated.
  1.1811 +	
  1.1812 +	Note: v2.0 of Multimode ETel API do not support this feature. */
  1.1813 +		KEstACL=0x04
  1.1814 +		};
  1.1815 +
  1.1816 + /** ISIM Service Table*/
  1.1817 +	enum TISTServices1To8
  1.1818 +		{
  1.1819 +	/** Indicates that EFP-CSCF is present in the ISIM. */	
  1.1820 +		KIstPCSCF=0x01,
  1.1821 +	/** Indicates that the Generic Bootstrapping Architecture (GBA) is supported by the ISIM. */
  1.1822 +		KIstGBA=0x02,
  1.1823 +	/** Indicates that the ISIM supports operations in HTTP-Digest security context. */
  1.1824 +		KIstHTTPDigest=0x04
  1.1825 +		};
  1.1826 +
  1.1827 +
  1.1828 +/** Get Service Table.
  1.1829 +
  1.1830 +Modes: GSM/WCDMA */
  1.1831 +	enum TMobilePhoneServiceTable
  1.1832 +		{
  1.1833 +	/** Retrieve SIM service table on SIM (or from GSM application on UICC).
  1.1834 +	
  1.1835 +	Modes: GSM/WCDMA */
  1.1836 +		ESIMServiceTable,
  1.1837 +	/** Retrieve USIM service table from active USIM application on UICC.
  1.1838 +	
  1.1839 +	Modes: WCDMA */
  1.1840 +		EUSIMServiceTable,
  1.1841 +	/** Retrieve CDMA service table on R-UIM.
  1.1842 +	
  1.1843 +	Modes: CDMA */
  1.1844 +		ECDMAServiceTable,
  1.1845 +	/** USIM Enabled Services Table to be used in conjunction with the USIM Service 
  1.1846 +	Table.
  1.1847 +	
  1.1848 +	Modes: WCDMA */
  1.1849 +		EUSIMEnabledServiceTable,
  1.1850 +	/** ISIM Service Table (IST) for the currently active ISIM application on the UICC is selected.
  1.1851 +	
  1.1852 +	Modes: WCDMA */	
  1.1853 +		EISIMServiceTable
  1.1854 +		};
  1.1855 +
  1.1856 +	
  1.1857 +	class TMobilePhoneServiceTableV1 : public TMultimodeType
  1.1858 +	/** Defines contents of the specified Service Table on the ICC.
  1.1859 +
  1.1860 +	@see GetServiceTable()
  1.1861 +	@publishedPartner
  1.1862 +	@released
  1.1863 +	 */
  1.1864 +		{
  1.1865 +	public:
  1.1866 +		IMPORT_C TMobilePhoneServiceTableV1();
  1.1867 +
  1.1868 +	/** Sum of the TSSTServices1To8 capability constants. */
  1.1869 +		TUint8 iServices1To8;
  1.1870 +	/** Sum of the TSSTServices9To16 capability constants. */
  1.1871 +		TUint8 iServices9To16;
  1.1872 +	/** Sum of the TSSTServices17To24 capability constants. */
  1.1873 +		TUint8 iServices17To24;
  1.1874 +	/** Sum of the TSSTServices25To32 capability constants. */
  1.1875 +		TUint8 iServices25To32;
  1.1876 +	/** Sum of the TSSTServices33To40 capability constants. */
  1.1877 +		TUint8 iServices33To40;
  1.1878 +	/** Sum of the TSSTServices41To48 capability constants. */
  1.1879 +		TUint8 iServices41To48;
  1.1880 +	/** Sum of the TSSTServices49To56 capability constants. */
  1.1881 +		TUint8 iServices49To56;
  1.1882 +		};
  1.1883 +
  1.1884 +/** A typedef'd packaged TMobilePhoneServiceTableV1 passing through a generic API 
  1.1885 +function member. */
  1.1886 +	typedef TPckg<TMobilePhoneServiceTableV1> TMobilePhoneServiceTableV1Pckg;
  1.1887 +
  1.1888 +	enum { KAIDSize=16 };
  1.1889 +
  1.1890 +/** A typedef'd buffer to hold the application identifier (AID) that identifies 
  1.1891 +the USIM application in a UICC. The AID consists of a Registered application 
  1.1892 +provider IDentifier (RID) of 5 bytes and a Proprietary application Identifier 
  1.1893 +eXtension (PIX) of up to 11 bytes. */
  1.1894 +	typedef TBuf8<KAIDSize> TAID; 
  1.1895 +
  1.1896 +	class TMobilePhoneServiceTableV2 : public TMobilePhoneServiceTableV1
  1.1897 +/** Defines contents of the specified Service Table on the ICC for the v2.0 version 
  1.1898 +of the API. 
  1.1899 +*/
  1.1900 +		{
  1.1901 +	public:
  1.1902 +		IMPORT_C TMobilePhoneServiceTableV2();
  1.1903 +	public:
  1.1904 +	/** The application identifier. */
  1.1905 +		TAID   iAID;
  1.1906 +		};
  1.1907 +
  1.1908 +/** A typedef'd packaged TMobilePhoneServiceTableV2 passing through a generic API 
  1.1909 +function member. */
  1.1910 +	typedef TPckg<TMobilePhoneServiceTableV2> TMobilePhoneServiceTableV2Pckg;
  1.1911 +	
  1.1912 +	class TMobilePhoneServiceTableV8 : public TMobilePhoneServiceTableV2
  1.1913 +	/** Defines contents of the specified Service Table on the UICC for the v8.0 version 
  1.1914 +	of the API.
  1.1915 +	See section 4.2.8 of 3GPP TS 31.102 v6.18.0 of the API. 
  1.1916 +	*/	
  1.1917 +		{
  1.1918 +	public:
  1.1919 +		IMPORT_C TMobilePhoneServiceTableV8();	
  1.1920 +	public:
  1.1921 +	/** Sum of the TSSTServices57To64 capability constants. */
  1.1922 +		TUint8 	iServices57To64;
  1.1923 +	/** Sum of the TSSTServices65To72 capability constants. */		
  1.1924 +		TUint8	iServices65To72;	
  1.1925 +		};
  1.1926 +	
  1.1927 +/** A typedef'd packaged TMobilePhoneServiceTableV8 passing through a generic API 
  1.1928 +function member. */	
  1.1929 +	typedef TPckg<TMobilePhoneServiceTableV8> TMobilePhoneServiceTableV8Pckg;	
  1.1930 + 
  1.1931 +	IMPORT_C void GetServiceTable(TRequestStatus& aReqStatus, TMobilePhoneServiceTable aTable, TDes8& aTableData) const;
  1.1932 +	
  1.1933 +	
  1.1934 +	/***********************************************************************************/
  1.1935 +	//
  1.1936 +	// MobilePhonePower functional unit
  1.1937 +	//
  1.1938 +	/***********************************************************************************/
  1.1939 +
  1.1940 +/** Phone supported battery information.
  1.1941 +
  1.1942 +Modes: Common */
  1.1943 +	enum TMobilePhoneBatteryCaps
  1.1944 +		{
  1.1945 +	/** Phone supports requests to get the current battery information. */
  1.1946 +		KCapsGetBatteryInfo=0x00000001,
  1.1947 +	/** Phone supports requests for notification of change in battery information. */
  1.1948 +		KCapsNotifyBatteryInfoChange=0x00000002
  1.1949 +		};
  1.1950 +
  1.1951 +	IMPORT_C TInt GetBatteryCaps(TUint32& aCaps) const; 
  1.1952 +
  1.1953 +/** The mobile phone battery status.
  1.1954 +
  1.1955 +Modes: Common */
  1.1956 +	enum TMobilePhoneBatteryStatus
  1.1957 +		{
  1.1958 +	/** The TSY can not determine the phone's current power status. */
  1.1959 +		EPowerStatusUnknown,
  1.1960 +	/** The phone is currently powered by a battery. */
  1.1961 +		EPoweredByBattery,
  1.1962 +	/** A battery is connected, but the phone is externally powered. */
  1.1963 +		EBatteryConnectedButExternallyPowered,
  1.1964 +	/** No battery is connected. */
  1.1965 +		ENoBatteryConnected,
  1.1966 +	/** Power fault. */
  1.1967 +		EPowerFault
  1.1968 +		};
  1.1969 +
  1.1970 +	class TMobilePhoneBatteryInfoV1 : public TMultimodeType
  1.1971 +/** Defines contents of the battery status of the phone.
  1.1972 +
  1.1973 +@see GetBatteryInfo()
  1.1974 +@see NotifyBatteryInfoChange()
  1.1975 +*/
  1.1976 +		{
  1.1977 +	public:
  1.1978 +		IMPORT_C TMobilePhoneBatteryInfoV1();
  1.1979 +	public:
  1.1980 +	/** The power and battery status.
  1.1981 +	
  1.1982 +	@see TMobilePhoneBatteryStatus */
  1.1983 +		TMobilePhoneBatteryStatus iStatus;
  1.1984 +	/** The percentage battery charge level. */
  1.1985 +		TUint iChargeLevel;
  1.1986 +		};
  1.1987 +
  1.1988 +	IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
  1.1989 +	IMPORT_C void NotifyBatteryInfoChange(TRequestStatus& aReqStatus, TMobilePhoneBatteryInfoV1& aInfo) const;
  1.1990 +
  1.1991 +	
  1.1992 +	/***********************************************************************************/
  1.1993 +	//
  1.1994 +	// MobilePhoneSignal functional unit
  1.1995 +	//	
  1.1996 +	/***********************************************************************************/
  1.1997 +
  1.1998 +/** The mobile phone signal strength capabilities.
  1.1999 +
  1.2000 +Modes: Common */
  1.2001 +	enum TMobilePhoneSignalCaps
  1.2002 +		{
  1.2003 +	/** Phone supports requests to get the current signal strength. */
  1.2004 +		KCapsGetSignalStrength=0x00000001,
  1.2005 +	/** Phone supports requests for notification of change in signal strength. */
  1.2006 +		KCapsNotifySignalStrengthChange=0x00000002
  1.2007 +		};
  1.2008 +
  1.2009 +	IMPORT_C TInt GetSignalCaps(TUint32& aCaps) const; 
  1.2010 +	IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
  1.2011 +	IMPORT_C void NotifySignalStrengthChange(TRequestStatus& aReqStatus, TInt32& aSignalStrength, TInt8& aBar) const;
  1.2012 +
  1.2013 +	/***********************************************************************************/
  1.2014 +	//
  1.2015 +	// MobilePhoneIndicator functional unit
  1.2016 +	//
  1.2017 +	/***********************************************************************************/
  1.2018 +	
  1.2019 +/** The mobile phone indicator capabilities supported.
  1.2020 +
  1.2021 +Modes: Common */
  1.2022 +	enum TMobilePhoneIndicatorCaps
  1.2023 +		{
  1.2024 +	/** Phone supports requests to get the current value of all supported indicators. */
  1.2025 +		KCapsGetIndicator=0x00000001,
  1.2026 +	/** Phone supports requests for notification of change in the supported indicators. */
  1.2027 +		KCapsNotifyIndicatorChange=0x00000002
  1.2028 +		};
  1.2029 +
  1.2030 +/** The mobile phone indicators.
  1.2031 +
  1.2032 +Modes Common */
  1.2033 +	enum TMobilePhoneIndicators
  1.2034 +		{
  1.2035 +	/** If bit-flag is set to '1' indicates that the battery charger is connected to 
  1.2036 +	the phone. If bit-flag is set to '0' indicates that the battery charger is 
  1.2037 +	disconnected. */
  1.2038 +		KIndChargerConnected=0x00000001,
  1.2039 +	/** If bit-flag is set to '1' indicates that network service is available. If bit-flag 
  1.2040 +	is set to '0' indicates that network service is unavailable. */
  1.2041 +		KIndNetworkAvailable=0x00000002,
  1.2042 +	/** If bit-flag is set to '1' indicates that a call is in progress. If set to '0' 
  1.2043 +	indicates that a call is not in progress. */
  1.2044 +		KIndCallInProgress=0x00000004
  1.2045 +		};
  1.2046 +
  1.2047 +	IMPORT_C TInt GetIndicatorCaps(TUint32& aActionCaps, TUint32& aIndCaps) const; 
  1.2048 +	IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
  1.2049 +	IMPORT_C void NotifyIndicatorChange(TRequestStatus& aReqStatus, TUint32& aIndicator) const;
  1.2050 +
  1.2051 +	
  1.2052 +	/***********************************************************************************/
  1.2053 +	//
  1.2054 +	// MobilePhoneIdentity functional unit
  1.2055 +	//
  1.2056 +	/***********************************************************************************/
  1.2057 +	
  1.2058 +/** Defines Identity Capabilities.
  1.2059 +
  1.2060 +Modes: Common */
  1.2061 +	enum TMobilePhoneIdentityCaps
  1.2062 +		{
  1.2063 +	/** Phone can return the identity of its manufacturer. */
  1.2064 +		KCapsGetManufacturer=0x00000001,
  1.2065 +	/** Phone can return the identity of its model. */
  1.2066 +		KCapsGetModel=0x00000002,
  1.2067 +	/** Phone can return the identity of its revision. */
  1.2068 +		KCapsGetRevision=0x00000004,
  1.2069 +	/** Phone can return the identity of its serial number. */
  1.2070 +		KCapsGetSerialNumber=0x00000008,
  1.2071 +	/** Phone can return the identity of its subscriber. */
  1.2072 +		KCapsGetSubscriberId=0x00000010
  1.2073 +		};
  1.2074 +
  1.2075 +	IMPORT_C TInt GetIdentityCaps(TUint32& aCaps) const;
  1.2076 +
  1.2077 +	enum {	KPhoneManufacturerIdSize=50	};
  1.2078 +	enum {	KPhoneModelIdSize=50 };
  1.2079 +	enum {	KPhoneRevisionIdSize=50	};
  1.2080 +	enum {	KPhoneSerialNumberSize=50 };
  1.2081 +	
  1.2082 +	class TMobilePhoneIdentityV1 : public TMultimodeType
  1.2083 +/** Defines the mobile phone identity.
  1.2084 +
  1.2085 +@see GetPhoneId() */
  1.2086 +		{
  1.2087 +	public:
  1.2088 +		IMPORT_C TMobilePhoneIdentityV1();
  1.2089 +	public:
  1.2090 +	/** Phone manufacturer identification, in character string format. */
  1.2091 +		TBuf<KPhoneManufacturerIdSize> iManufacturer;
  1.2092 +	/** Phone model identification, in character string format. */
  1.2093 +		TBuf<KPhoneModelIdSize> iModel;
  1.2094 +	/** Phone revision identification, in character string format. */
  1.2095 +		TBuf<KPhoneRevisionIdSize> iRevision;
  1.2096 +	/** Phone serial number (IMEI or ESN), in character string format. */
  1.2097 +		TBuf<KPhoneSerialNumberSize> iSerialNumber;
  1.2098 +		};
  1.2099 +
  1.2100 +	IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TMobilePhoneIdentityV1& aId) const;
  1.2101 +
  1.2102 +	enum {	KIMSISize = 15 };
  1.2103 +
  1.2104 +/** A typedef'd buffer to hold the mobile phone subscriber id. */
  1.2105 +	typedef TBuf<KIMSISize> TMobilePhoneSubscriberId;
  1.2106 +
  1.2107 +	IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TMobilePhoneSubscriberId& aId) const;
  1.2108 +
  1.2109 +	/***********************************************************************************/
  1.2110 +	//
  1.2111 +	// MobilePhoneDTMF functional unit
  1.2112 +	//
  1.2113 +	/***********************************************************************************/
  1.2114 +	
  1.2115 +/** DTMF Capabilities.
  1.2116 +
  1.2117 +Modes: Common */
  1.2118 +	enum TMobilePhoneDTMFCaps
  1.2119 +		{
  1.2120 +	/** Capability to send a string of DTMF tones, containing one or more tone(s). */
  1.2121 +		KCapsSendDTMFString=0x00000001,
  1.2122 +	/** Capability to send one DTMF tone, using start and stop DTMF tone function member. */
  1.2123 +		KCapsSendDTMFSingleTone=0x00000002,
  1.2124 +		};
  1.2125 +		
  1.2126 +	/**
  1.2127 +	DTMF tone operation event.
  1.2128 +	*/
  1.2129 +	enum TMobilePhoneDTMFEvent
  1.2130 +		{
  1.2131 +		/**
  1.2132 +		 Start sending of a Dtmf tone operation has been acknowledged from the MSC.
  1.2133 +		*/
  1.2134 +		EStartDtmfTone,
  1.2135 +		/**
  1.2136 +		 Stop sending of a Dtmf tone operation has been acknowledged from the MSC.
  1.2137 +		*/
  1.2138 +		EStopDtmfTone,
  1.2139 +		};
  1.2140 +		
  1.2141 +
  1.2142 +	IMPORT_C TInt GetDTMFCaps(TUint32& aCaps) const; 
  1.2143 +	IMPORT_C void NotifyDTMFCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.2144 +
  1.2145 +	IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const;
  1.2146 +	IMPORT_C void ReadDTMFTones(TRequestStatus& aReqStatus, TDes& aTones) const;
  1.2147 +	IMPORT_C TInt StartDTMFTone(TChar aTone) const;
  1.2148 +	IMPORT_C TInt StopDTMFTone() const;
  1.2149 +
  1.2150 +	IMPORT_C void NotifyStopInDTMFString(TRequestStatus& aRequestStatus) const;
  1.2151 +	IMPORT_C TInt ContinueDTMFStringSending(TBool aContinue) const;
  1.2152 +	IMPORT_C void NotifyDTMFEvent(TRequestStatus& aReqStatus, TMobilePhoneDTMFEvent& aEvent) const;
  1.2153 +
  1.2154 +	/***********************************************************************************/
  1.2155 +	//
  1.2156 +	// MobilePhoneNetwork functional unit
  1.2157 +	//
  1.2158 +	/***********************************************************************************/
  1.2159 +	
  1.2160 +/** Defines Network Capabilities.
  1.2161 +
  1.2162 +Modes: Common */
  1.2163 +	enum TMobilePhoneNetworkCaps
  1.2164 +		{
  1.2165 +	/** The phone supports retrieval of current registration status. */
  1.2166 +		KCapsGetRegistrationStatus=0x00000001,
  1.2167 +	/** The phone supports notifications of change in registration status. */
  1.2168 +		KCapsNotifyRegistrationStatus=0x00000002,
  1.2169 +	/** The phone supports retrieval of current mode. */
  1.2170 +		KCapsGetCurrentMode=0x00000004,
  1.2171 +	/** The phone supports notification of change in mode. */
  1.2172 +		KCapsNotifyMode=0x00000008,
  1.2173 +	/** The phone supports retrieval of current network information. */
  1.2174 +		KCapsGetCurrentNetwork=0x00000010,
  1.2175 +	/** The phone supports notification of change of current network. */
  1.2176 +		KCapsNotifyCurrentNetwork=0x00000020,
  1.2177 +	/** The phone supports retrieval of home network information. */
  1.2178 +		KCapsGetHomeNetwork=0x00000040,
  1.2179 +	/** The phone supports retrieval of a list of detected networks. */
  1.2180 +		KCapsGetDetectedNetworks=0x00000080,
  1.2181 +	/** The phone supports manual network selection mode. */
  1.2182 +		KCapsManualNetworkSelection=0x00000100,
  1.2183 +	/** The phone supports retrieval of time and date information (NITZ) received from 
  1.2184 +	the network. */
  1.2185 +		KCapsGetNITZInfo=0x00000200,
  1.2186 +	/** The phone supports notification of new updates of time & date information (NITZ) 
  1.2187 +	received from the network. */
  1.2188 +		KCapsNotifyNITZInfo=0x00000400
  1.2189 +		};
  1.2190 +
  1.2191 +	IMPORT_C TInt GetNetworkCaps(TUint32& aCaps) const;
  1.2192 +
  1.2193 +/** Defines Current Network Modes.
  1.2194 +
  1.2195 +Modes: Common */
  1.2196 +	enum TMobilePhoneNetworkMode
  1.2197 +		{
  1.2198 +	/** Network mode is unknown.
  1.2199 +	
  1.2200 +	Modes: Common */
  1.2201 +		ENetworkModeUnknown,
  1.2202 +	/** ME is not registered.
  1.2203 +	
  1.2204 +	Modes: Common */
  1.2205 +		ENetworkModeUnregistered,
  1.2206 +	/** GSM/GPRS or DCS1800 network. */
  1.2207 +		ENetworkModeGsm,
  1.2208 +	/** AMPS network.
  1.2209 +	
  1.2210 +	Modes: CDMA */
  1.2211 +		ENetworkModeAmps,
  1.2212 +	/** CDMA (IS-95) network.
  1.2213 +	
  1.2214 +	Modes: CDMA */
  1.2215 +		ENetworkModeCdma95,
  1.2216 +	/** CDMA (cdma2000) network.
  1.2217 +	
  1.2218 +	Modes: CDMA */
  1.2219 +		ENetworkModeCdma2000,
  1.2220 +	/** WCDMA  (UTRA Frequency Division Duplex (FDD)) network.
  1.2221 +	
  1.2222 +	Modes: WCDMA */
  1.2223 +		ENetworkModeWcdma,
  1.2224 +	/** TD-CDMA (UTRA Time Division Duplex (TDD)) network.
  1.2225 +	
  1.2226 +	Modes: WCDMA */	
  1.2227 +		ENetworkModeTdcdma
  1.2228 +		};
  1.2229 +
  1.2230 +	IMPORT_C TInt GetCurrentMode(TMobilePhoneNetworkMode& aNetworkMode) const;
  1.2231 +	IMPORT_C void NotifyModeChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkMode& aNetworkMode) const;
  1.2232 +
  1.2233 +/** Phone network status.
  1.2234 +
  1.2235 +Modes: Common */
  1.2236 +	enum TMobilePhoneNetworkStatus
  1.2237 +		{
  1.2238 +	/** Status is unknown. */
  1.2239 +		ENetworkStatusUnknown,
  1.2240 +	/** A network that the ME is allowed to register to. */
  1.2241 +		ENetworkStatusAvailable,
  1.2242 +	/** The currently registered network. */
  1.2243 +		ENetworkStatusCurrent,
  1.2244 +	/** A network that the ME is not allowed to register to. */
  1.2245 +		ENetworkStatusForbidden
  1.2246 +		};
  1.2247 +
  1.2248 +/** Mobile phone network band information.
  1.2249 +
  1.2250 +Modes: CDMA */
  1.2251 +	enum TMobilePhoneNetworkBandInfo
  1.2252 +		{
  1.2253 +	/** The current band and band class is unknown. */
  1.2254 +		EBandUnknown,
  1.2255 +	/** The network operates at 800MHz on Band A. */
  1.2256 +		E800BandA,
  1.2257 +	/** The network operates at 800MHz on Band B. */
  1.2258 +		E800BandB,
  1.2259 +	/** The network operates at 800MHz on Band C. */
  1.2260 +		E800BandC,
  1.2261 +	/** The network operates at 1900MHz on Band A. */
  1.2262 +		E1900BandA,
  1.2263 +	/** The network operates at 1900MHz on Band B. */
  1.2264 +		E1900BandB,
  1.2265 +	/** The network operates at 1900MHz on Band C. */
  1.2266 +		E1900BandC,
  1.2267 +	/** The network operates at 1900MHz on Band D. */
  1.2268 +		E1900BandD,
  1.2269 +	/** The network operates at 1900MHz on Band E. */
  1.2270 +		E1900BandE,
  1.2271 +	/** The network operates at 1900MHz on Band F. */
  1.2272 +		E1900BandF
  1.2273 +		};
  1.2274 +
  1.2275 +/** A typedef'd buffer to hold the network display tag */
  1.2276 +	typedef TBuf<30> TMobilePhoneNetworkDisplayTag;
  1.2277 +/** A typedef'd buffer to hold the network long name. */
  1.2278 +	typedef TBuf<20> TMobilePhoneNetworkLongName;		
  1.2279 +/** A typedef'd buffer to hold the network short name. */
  1.2280 +	typedef TBuf<10> TMobilePhoneNetworkShortName;
  1.2281 +
  1.2282 +/** A typedef'd buffer to hold the network country code. */
  1.2283 +	typedef TBuf<4> TMobilePhoneNetworkCountryCode;		// MCC in GSM and CDMA
  1.2284 +/** A typedef'd buffer to hold the network identity. */
  1.2285 +	typedef TBuf<8> TMobilePhoneNetworkIdentity;		// MNC in GSM and SID or NID in CDMA 
  1.2286 +
  1.2287 +	
  1.2288 +
  1.2289 +	class TMobilePhoneNetworkInfoV1 : public TMultimodeType
  1.2290 +	/** Defines information related to a mobile phone network.
  1.2291 +
  1.2292 +	@see GetCurrentNetwork()
  1.2293 +	@see NotifyCurrentNetworkChange()
  1.2294 +	@see GetHomeNetwork()
  1.2295 +	@publishedPartner
  1.2296 +	@released */
  1.2297 +		{
  1.2298 +	public:
  1.2299 +		IMPORT_C TMobilePhoneNetworkInfoV1();
  1.2300 +	public:
  1.2301 +		void InternalizeL(RReadStream& aStream);
  1.2302 +		void ExternalizeL(RWriteStream& aStream) const;
  1.2303 +	public:
  1.2304 +	/** Mode of the network.
  1.2305 +	
  1.2306 +	Modes: Common
  1.2307 +	
  1.2308 +	@see TMobilePhoneNetworkMode */
  1.2309 +		TMobilePhoneNetworkMode iMode;
  1.2310 +	/** Status of the network
  1.2311 +	
  1.2312 +	Modes: Common
  1.2313 +	
  1.2314 +	@see TMobilePhoneNetworkStatus */
  1.2315 +		TMobilePhoneNetworkStatus iStatus;
  1.2316 +	/** The band and band class of the CDMA network operator.
  1.2317 +
  1.2318 +	Modes: CDMA
  1.2319 +	
  1.2320 +	@see TMobilePhoneNetworkBandInfo */
  1.2321 +		TMobilePhoneNetworkBandInfo iBandInfo;
  1.2322 +	/** The MCC of the network.
  1.2323 +	
  1.2324 +	Modes: Common
  1.2325 +	
  1.2326 +	@see TMobilePhoneNetworkCountryCode */
  1.2327 +		TMobilePhoneNetworkCountryCode iCountryCode;
  1.2328 +	/** The system identity (SID) of the CDMA network.
  1.2329 +	
  1.2330 +	Modes: CDMA
  1.2331 +	
  1.2332 +	@see TMobilePhoneNetworkIdentity */
  1.2333 +		TMobilePhoneNetworkIdentity iCdmaSID;
  1.2334 +	/** The system identity (SID) of the AMPS network.
  1.2335 +	
  1.2336 +	Modes: CDMA
  1.2337 +	
  1.2338 +	@see TMobilePhoneNetworkIdentity */
  1.2339 +		TMobilePhoneNetworkIdentity iAnalogSID;
  1.2340 +	/** The network identity (NID in CDMA and MNC in GSM).
  1.2341 +	
  1.2342 +	Modes: Common
  1.2343 +	
  1.2344 +	@see TMobilePhoneNetworkIdentity */
  1.2345 +		TMobilePhoneNetworkIdentity iNetworkId;
  1.2346 +	/** The alpha-tag displayed when this is the serving network.
  1.2347 +	
  1.2348 +	Modes: Common
  1.2349 +	
  1.2350 +	@see TMobilePhoneNetworkDisplayTag */
  1.2351 +		TMobilePhoneNetworkDisplayTag iDisplayTag;
  1.2352 +	/** The short name (up to 10 characters) of the network operator.
  1.2353 +	
  1.2354 +	Modes: GSM/WCDMA
  1.2355 +	
  1.2356 +	@see TMobilePhoneNetworkShortName */
  1.2357 +		TMobilePhoneNetworkShortName iShortName;
  1.2358 +	/** The long name (up to 20 characters) of the network operator.
  1.2359 +	
  1.2360 +	Modes: GSM/WCDMA
  1.2361 +	
  1.2362 +	@see TMobilePhoneNetworkLongName */
  1.2363 +		TMobilePhoneNetworkLongName iLongName;
  1.2364 +		};
  1.2365 +	
  1.2366 +/** A typedef'd packaged TMobilePhoneNetworkInfoV1 for passing through a generic 
  1.2367 +API function member. */
  1.2368 +	typedef TPckg<TMobilePhoneNetworkInfoV1>  TMobilePhoneNetworkInfoV1Pckg;
  1.2369 +	
  1.2370 +/** The access technology that the network is based on.
  1.2371 +
  1.2372 +Modes: Common */
  1.2373 +	enum TMobilePhoneNetworkAccess
  1.2374 +		{
  1.2375 +	/** This is used when there is no network activity and therefore no RAT active.
  1.2376 +	
  1.2377 +	Modes: Common */
  1.2378 +		ENetworkAccessUnknown,
  1.2379 +	/** The access technology is GSM.
  1.2380 +	
  1.2381 +	Modes: GSM */
  1.2382 +		ENetworkAccessGsm,
  1.2383 +	/** The access technology is GSM COMPACT. However GSM COMPACT systems which use 
  1.2384 +	GSM frequency bands but with the CBPCCH broadcast channel are considered as 
  1.2385 +	a separate access technology from GSM.
  1.2386 +	
  1.2387 +	Modes: GSM */
  1.2388 +		ENetworkAccessGsmCompact,
  1.2389 +	/** The access technology is UTRAN (UMTS Network).
  1.2390 +	
  1.2391 +	Modes: WCDMA */
  1.2392 +		ENetworkAccessUtran,					
  1.2393 +	/** Analogue Cellular 
  1.2394 +	
  1.2395 +	Modes: CDMA */
  1.2396 +		ENetworkAccessAmpsCellular,
  1.2397 +	/** CDMA Cellular - Standard channels 
  1.2398 +
  1.2399 +	Modes: CDMA */
  1.2400 +		 ENetworkAccessCdmaCellularStdChannel,
  1.2401 +	/** CDMA Cellular - Custom channels 
  1.2402 +
  1.2403 +	Modes: CDMA */
  1.2404 +		ENetworkAccessCdmaCellularCustomChannel,
  1.2405 +	/** CDMA/Analogue Cellular (cdma first then analogue)
  1.2406 +
  1.2407 +	Modes: CDMA */
  1.2408 +		ENetworkAccessCdmaAmpsCellular,
  1.2409 +	/** CDMA PCS - Using blocks 
  1.2410 +	
  1.2411 +	Modes: CDMA */
  1.2412 +		ENetworkAccessCdmaPcsUsingBlocks,
  1.2413 +	/** CDMA PCS - Using channels 
  1.2414 +	
  1.2415 +	Modes: CDMA */
  1.2416 +		ENetworkAccessCdmaPcsUsingNetworkAccessChannels,
  1.2417 +	/** CDMA JTACS - Standard channels 
  1.2418 +	
  1.2419 +	Modes: CDMA */
  1.2420 +		ENetworkAccessJTacsStdChannels,
  1.2421 +	/** CDMA JTACS - Custom channels 
  1.2422 +	
  1.2423 +	Modes: CDMA */
  1.2424 +		ENetworkAccessJTacsCustomChannels,
  1.2425 +	/** CDMA 2GHz band - Using channels 
  1.2426 +	
  1.2427 +	Modes: CDMA */
  1.2428 +		ENetworkAccess2GHzBandUsingChannels,
  1.2429 +	/** Generic Acquisition Record for IS-2000 and IS-95 
  1.2430 +	
  1.2431 +	Modes: CDMA */
  1.2432 +		ENetworkAccessGenericAcqRecord2000and95,
  1.2433 +	/** Generic Acquisition Record for IS-856
  1.2434 +	
  1.2435 +	Modes: CDMA */
  1.2436 +		ENetworkAccessGenericAcqRecord856,
  1.2437 +	/** The access technology is GSM and UTRAN (UMTS Network).
  1.2438 +		
  1.2439 +	Modes: GSM and WCDMA */
  1.2440 +		ENetworkAccessGsmAndUtran
  1.2441 +		};
  1.2442 +
  1.2443 +	
  1.2444 +
  1.2445 +	class TMobilePhoneNetworkInfoV2 : public TMobilePhoneNetworkInfoV1
  1.2446 +	/** The access technology that the network is based on in version v2.0 of the API. 
  1.2447 +	@publishedPartner
  1.2448 +	@released*/
  1.2449 +		{
  1.2450 +	public:
  1.2451 +	/** Default constructor. Network access is set to ENetworkAccessUnknown and iExtensionId 
  1.2452 +	is set to KETelExtMultimodeV2. */
  1.2453 +		IMPORT_C TMobilePhoneNetworkInfoV2();
  1.2454 +	
  1.2455 +	public:
  1.2456 +		void InternalizeL(RReadStream& aStream);
  1.2457 +		void ExternalizeL(RWriteStream& aStream) const;
  1.2458 +	
  1.2459 +	public:
  1.2460 +	/** The type of network access.
  1.2461 +	
  1.2462 +	@see TMobilePhoneNetworkAccess */
  1.2463 +		TMobilePhoneNetworkAccess iAccess;
  1.2464 +		};
  1.2465 +	
  1.2466 +/** A typedef'd packaged TMobilePhoneNetworkInfoV2 for passing through a generic 
  1.2467 +API function member. */
  1.2468 +	typedef TPckg<TMobilePhoneNetworkInfoV2>  TMobilePhoneNetworkInfoV2Pckg;
  1.2469 +
  1.2470 +
  1.2471 +	class TMobilePhoneNetworkInfoV5 : public TMobilePhoneNetworkInfoV2
  1.2472 +	/** The access technology that the network is based on in version v2.0 of the API. 
  1.2473 +	@publishedPartner
  1.2474 +	@released*/
  1.2475 +		{
  1.2476 +	public:
  1.2477 +		IMPORT_C TMobilePhoneNetworkInfoV5();
  1.2478 +		
  1.2479 +	public:
  1.2480 +		void InternalizeL(RReadStream& aStream);
  1.2481 +		void ExternalizeL(RWriteStream& aStream) const;
  1.2482 +		
  1.2483 +	public:
  1.2484 +	/** HSDPA availability indicator. This information is for display 
  1.2485 +	indication only and shall not be used for any other purpose.
  1.2486 +		
  1.2487 +	Modes: WCDMA */
  1.2488 +		TBool iHsdpaAvailableIndicator;
  1.2489 +
  1.2490 +	/** EGPRS availability indicator. This information is for display
  1.2491 +	indication only and shall not be used for any other purpose.
  1.2492 +		
  1.2493 +	Modes: GPRS */
  1.2494 +		TBool iEgprsAvailableIndicator;
  1.2495 +		};
  1.2496 +
  1.2497 +/** A typedef'd packaged TMobilePhoneNetworkInfoV5 for passing through a generic 
  1.2498 +API function member. */		
  1.2499 +	typedef TPckg<TMobilePhoneNetworkInfoV5> TMobilePhoneNetworkInfoV5Pckg;
  1.2500 +	
  1.2501 +		
  1.2502 +	class TMobilePhoneNetworkInfoV8 : public TMobilePhoneNetworkInfoV5
  1.2503 +	/** The access technology that the network is based on in version v8.0 of the API. 
  1.2504 +	@publishedPartner
  1.2505 +	@released*/
  1.2506 +		{
  1.2507 +	public:
  1.2508 +		IMPORT_C TMobilePhoneNetworkInfoV8();
  1.2509 +		
  1.2510 +	public:
  1.2511 +		void InternalizeL(RReadStream& aStream);
  1.2512 +		void ExternalizeL(RWriteStream& aStream) const;
  1.2513 +		
  1.2514 +	public:
  1.2515 +	/** HSUPA availability indicator. This information is for display 
  1.2516 +	indication only and shall not be used for any other purpose.
  1.2517 +		
  1.2518 +	Modes: WCDMA */
  1.2519 +		TBool iHsupaAvailableIndicator;
  1.2520 +
  1.2521 +		};
  1.2522 +		
  1.2523 +/** A typedef'd packaged TMobilePhoneNetworkInfoV8 for passing through a generic 
  1.2524 +API function member. */		
  1.2525 +	typedef TPckg<TMobilePhoneNetworkInfoV8> TMobilePhoneNetworkInfoV8Pckg;
  1.2526 +
  1.2527 +	class TMobilePhoneLocationAreaV1 : public TMultimodeType
  1.2528 +/** Defines the mobile phone location area.
  1.2529 +
  1.2530 +@see GetCurrentNetwork()
  1.2531 +@see NotifyCurrentNetworkChange() */
  1.2532 +		{
  1.2533 +	public:
  1.2534 +	/** Constructor. */
  1.2535 +		IMPORT_C TMobilePhoneLocationAreaV1();
  1.2536 +	public:
  1.2537 +	/** Boolean indicating whether the location area is known.
  1.2538 +	
  1.2539 +	Modes: Common */
  1.2540 +		TBool	iAreaKnown;
  1.2541 +	/** Location area code.
  1.2542 +	
  1.2543 +	Modes: GSM/WCDMA */
  1.2544 +		TUint	iLocationAreaCode;
  1.2545 +	/** Cell identity code.
  1.2546 +	
  1.2547 +	Modes: GSM/WCDMA */
  1.2548 +		TUint	iCellId;
  1.2549 +		};
  1.2550 +
  1.2551 +	IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
  1.2552 +	IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo, TMobilePhoneLocationAreaV1& aArea) const;
  1.2553 +	IMPORT_C void GetCurrentNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
  1.2554 +	IMPORT_C void NotifyCurrentNetworkChange(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
  1.2555 +
  1.2556 +	IMPORT_C void GetHomeNetwork(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
  1.2557 +	IMPORT_C void GetHomeNetworkSearchPeriod(TRequestStatus& aReqStatus, TInt& aSearchIntv) const;
  1.2558 +	IMPORT_C void GetLastUsedAccessTechnology(TRequestStatus& aReqStatus, TMobilePhoneNetworkAccess& aAccessTech) const;
  1.2559 +	
  1.2560 +	/** Cell mode */
  1.2561 +	enum TCellMode
  1.2562 +		{
  1.2563 +		/** Unknown mode */
  1.2564 +		ECellModeUnknown,
  1.2565 +		/** GSM mode */
  1.2566 +		ECellModeGsm,
  1.2567 +		/** WCDMA mode */
  1.2568 +		ECellModeWcdma
  1.2569 +		};
  1.2570 +
  1.2571 +	/** Cell Information Status 
  1.2572 +	@publishedPartner	
  1.2573 +	@released */
  1.2574 +	enum TCellInfoStatus
  1.2575 +		{
  1.2576 +		/** Unknown status: not known if Cell ID is current or not */
  1.2577 +		ECellInfoStatusUnknown,
  1.2578 +		/** Not current status: the Cell ID value is the ID of the last known cell */
  1.2579 +		ECellInfoStatusNotCurrent,
  1.2580 +		/** Current Status: the Cell ID value is the ID of the present cell */
  1.2581 +		ECellInfoStatusCurrent
  1.2582 +		};
  1.2583 +	
  1.2584 +	/** Defined type to represent the Timing Advance. See 3GPP TS 04.18, section 10.5.2.40. 
  1.2585 +	 * Valid values for the Timing Advance are 0-255. A negative value indicates that
  1.2586 +	 * no Timing Advance information is available. */
  1.2587 +	typedef TInt16 TGsmTimingAdvance;
  1.2588 +	
  1.2589 +	/**	Encapsulates cell specific information.	
  1.2590 +	@publishedPartner	
  1.2591 +	@released */
  1.2592 +	class TMobilePhoneCellInfoV9 : public TMultimodeType
  1.2593 +		{
  1.2594 +	public:
  1.2595 +		IMPORT_C TMobilePhoneCellInfoV9();
  1.2596 +		
  1.2597 +	public:
  1.2598 +		/** The cell mode 
  1.2599 +		@see TCellMode */
  1.2600 +		TCellMode iMode;
  1.2601 +		/** The current cell ID */
  1.2602 +		TUint iCellId;
  1.2603 +		/** The Timing Advance. Relevant only if iMode is ECellModeGsm.
  1.2604 +		 @see TGsmTimingAdvance */
  1.2605 +		TGsmTimingAdvance iTimingAdvance;
  1.2606 +		/** The status of the cell information. Indicates whether the Cell ID is
  1.2607 +		 * up-to-date.
  1.2608 +		 @see TCellInfoStatus */
  1.2609 +		TCellInfoStatus iStatus;
  1.2610 +		};				
  1.2611 +
  1.2612 +	/** Packaged TMobilePhoneCellInfoV9 data structure. 
  1.2613 +	@see TMobilePhoneCellInfoV9 */
  1.2614 +	typedef TPckg<TMobilePhoneCellInfoV9> TMobilePhoneCellInfoV9Pckg;
  1.2615 +	
  1.2616 +	IMPORT_C void GetCellInfo(TRequestStatus& aReqStatus, TDes8& aCellInfo) const;
  1.2617 +	IMPORT_C void NotifyCellInfoChange(TRequestStatus& aReqStatus, TDes8& aCellInfo) const;
  1.2618 +
  1.2619 +	
  1.2620 +/** The registration status of the mobile phone.
  1.2621 +
  1.2622 +Modes: WCDMA */
  1.2623 +	enum TMobilePhoneRegistrationStatus
  1.2624 +		{
  1.2625 +	/** Registration status is unknown. */
  1.2626 +		ERegistrationUnknown,
  1.2627 +	/** Not registered. The ME can not detect any other networks and is not currently 
  1.2628 +	searching a new operator to register to. */
  1.2629 +		ENotRegisteredNoService,
  1.2630 +	/** Not registered. The ME can detect other networks on which it is possible to 
  1.2631 +	make emergency calls only. */
  1.2632 +		ENotRegisteredEmergencyOnly,
  1.2633 +	/** Not registered, but the ME is currently searching a new operator to register to. */
  1.2634 +		ENotRegisteredSearching,
  1.2635 +	/** Registered, network busy.
  1.2636 +	
  1.2637 +	Modes: WCDMA */
  1.2638 +		ERegisteredBusy,
  1.2639 +	/** Registered on home network. */
  1.2640 +		ERegisteredOnHomeNetwork,
  1.2641 +	/** Registration denied. */
  1.2642 +		ERegistrationDenied,
  1.2643 +	/** Registered, roaming. */
  1.2644 +		ERegisteredRoaming
  1.2645 +		};
  1.2646 +
  1.2647 +	IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
  1.2648 +	IMPORT_C void NotifyNetworkRegistrationStatusChange(TRequestStatus& aReqStatus, TMobilePhoneRegistrationStatus& aStatus) const;
  1.2649 +
  1.2650 +/** The network selection function member.
  1.2651 +
  1.2652 +Modes: Common */
  1.2653 +	enum TMobilePhoneSelectionMethod
  1.2654 +		{
  1.2655 +	/** Network selection function member is unknown.
  1.2656 +	
  1.2657 +	Modes: Common */
  1.2658 +		ENetworkSelectionUnknown,
  1.2659 +	/** Network is selected automatically by phone.
  1.2660 +	
  1.2661 +	Modes: Common */
  1.2662 +		ENetworkSelectionAutomatic,
  1.2663 +	/** Network is selected manually by user.
  1.2664 +	
  1.2665 +	Modes: GSM/WCDMA */
  1.2666 +		ENetworkSelectionManual,
  1.2667 +	/** Network selection is restricted to home network only
  1.2668 +	
  1.2669 +	Modes: CDMA */
  1.2670 +		ENetworkSelectionHomeOnly
  1.2671 +		};
  1.2672 +
  1.2673 +/** The mobile phone band class preferences.
  1.2674 +
  1.2675 +Modes: CDMA */
  1.2676 +	enum TMobilePhoneBandClass
  1.2677 +		{
  1.2678 +	/** Band class selection is unknown. */
  1.2679 +		ENetworkBandClassUnknown,
  1.2680 +	/** Phone will select band class A only. */
  1.2681 +		ENetworkBandClassAOnly,
  1.2682 +	/** Phone will select band class B only. */
  1.2683 +		ENetworkBandClassBOnly,
  1.2684 +	/** Phone will prefer to select band class A. */
  1.2685 +		ENetworkBandClassAPreferred,
  1.2686 +	/** Phone will prefer to select band class B. */
  1.2687 +		ENetworkBandClassBPreferred
  1.2688 +		};
  1.2689 +
  1.2690 +/** The mobile phone network operation mode preferences.
  1.2691 +
  1.2692 +Modes: CDMA */
  1.2693 +	enum TMobilePhoneOperation
  1.2694 +		{
  1.2695 +	/** Network operation mode is unknown. */
  1.2696 +		ENetworkOperationUnknown,
  1.2697 +	/** Phone will select analog operation only. */
  1.2698 +		ENetworkOperationAnalogOnly,
  1.2699 +	/** Phone will select digital/CDMA operation only. */
  1.2700 +		ENetworkOperationDigitalOnly,
  1.2701 +	/** Phone will prefer to select analog operation. */
  1.2702 +		ENetworkOperationAnalogPreferred,
  1.2703 +	/** Phone will prefer to select digital/CDMA operation. */
  1.2704 +		ENetworkOperationDigitalPreferred
  1.2705 +		};
  1.2706 +
  1.2707 +	class TMobilePhoneNetworkSelectionV1 : public TMultimodeType
  1.2708 +/** The mobile phone network selection preferences.
  1.2709 +
  1.2710 +@see GetNetworkSelectionSetting()
  1.2711 +@see SetNetworkSelectionSetting()
  1.2712 +@see NotifyNetworkSelectionSettingChange()
  1.2713 +@publishedPartner
  1.2714 +@released */
  1.2715 +		{
  1.2716 +	public:
  1.2717 +		IMPORT_C TMobilePhoneNetworkSelectionV1();
  1.2718 +	public:
  1.2719 +	/** Phone's network selection function member.
  1.2720 +	
  1.2721 +	Modes: Common
  1.2722 +	
  1.2723 +	@see TMobilePhoneSelectionMethod */
  1.2724 +		TMobilePhoneSelectionMethod	iMethod;
  1.2725 +	/** Phone's band class setting.
  1.2726 +	
  1.2727 +	Modes: CDMA
  1.2728 +	
  1.2729 +	@see TMobilePhoneBandClass */
  1.2730 +		TMobilePhoneBandClass		iBandClass;
  1.2731 +	/** Phone's CDMA operation mode.
  1.2732 +	
  1.2733 +	Modes: CDMA
  1.2734 +	
  1.2735 +	@see TMobilePhoneOperation */
  1.2736 +		TMobilePhoneOperation		iOperationMode;
  1.2737 +		};
  1.2738 +
  1.2739 +/** A typedef'd packaged TMobilePhoneNetworkSelectionV1 for passing through a generic 
  1.2740 +API function member. */
  1.2741 +	typedef TPckg<TMobilePhoneNetworkSelectionV1>  TMobilePhoneNetworkSelectionV1Pckg;
  1.2742 +
  1.2743 +	IMPORT_C TInt GetNetworkSelectionSetting(TDes8& aSetting) const;
  1.2744 +	IMPORT_C void SetNetworkSelectionSetting(TRequestStatus& aReqStatus, const TDes8& aSetting) const;
  1.2745 +	IMPORT_C void NotifyNetworkSelectionSettingChange(TRequestStatus& aReqStatus, TDes8& aSetting) const;
  1.2746 +	
  1.2747 +	struct TMobilePhoneNetworkManualSelection
  1.2748 +/** The mobile phone manual network selection parameters.
  1.2749 +
  1.2750 +Modes: GSM/WCDMA
  1.2751 +
  1.2752 +@see TMobilePhoneNetworkCountryCode */
  1.2753 +		{
  1.2754 +	/** The MCC of the network
  1.2755 +	
  1.2756 +	@see TMobilePhoneNetworkCountryCode */
  1.2757 +		TMobilePhoneNetworkCountryCode iCountry;
  1.2758 +	/** The MNC of the network
  1.2759 +	
  1.2760 +	@see TMobilePhoneNetworkIdentity */
  1.2761 +		TMobilePhoneNetworkIdentity iNetwork;
  1.2762 +		};
  1.2763 +	
  1.2764 +	IMPORT_C void SelectNetwork(TRequestStatus& aReqStatus, TBool aIsManual, const TMobilePhoneNetworkManualSelection& aManualSelection) const;
  1.2765 +
  1.2766 +	
  1.2767 +
  1.2768 +	 // Used to indicate which TMobilePhoneNITZ fields are currently available
  1.2769 +/** The Phone Network Time Zone Capabilities. */
  1.2770 +	 enum TMobilePhoneNITZCaps
  1.2771 +		{
  1.2772 +	/** Universal Time is available in the current network mode. */
  1.2773 +		KCapsTimeAvailable      = 0x00000001,
  1.2774 +	/** Local time zone is available in the current network mode. */
  1.2775 +		KCapsTimezoneAvailable  = 0x00000002,
  1.2776 +	/** DST is available in the current network mode. */
  1.2777 +		KCapsDSTAvailable       = 0x00000004,
  1.2778 +	/** Short name is available in the current network mode. */
  1.2779 +		KCapsShortNameAvailable = 0x00000008,
  1.2780 +	/** Long name is available in the current network mode. */
  1.2781 +		KCapsLongNameAvailable  = 0x00000010
  1.2782 +		};
  1.2783 +
  1.2784 +	class TMobilePhoneNITZ : public TDateTime
  1.2785 +/** Defines time and date information received from a mobile phone network.
  1.2786 +
  1.2787 +@see GetNITZInfo()
  1.2788 +@see NotifyNITZInfoChange()
  1.2789 +@publishedPartner
  1.2790 +@released */
  1.2791 +		{
  1.2792 +	public:
  1.2793 +		IMPORT_C TMobilePhoneNITZ();
  1.2794 +		IMPORT_C TMobilePhoneNITZ(TInt aYear, TMonth aMonth, TInt aDay, TInt aHour, TInt aMinute, TInt aSecond, TInt aMicroSecond);		
  1.2795 +	public:
  1.2796 +	/** Bitwise sum of TMobilePhoneNITZCaps constants used to indicate which NITZ fields 
  1.2797 +	are available.
  1.2798 +	
  1.2799 +	Modes: Common */
  1.2800 +		TInt32	                     iNitzFieldsUsed;
  1.2801 +	/** Time zone, expressed in +/- 15 minute offsets from GMT.
  1.2802 +	
  1.2803 +	Modes: Common */
  1.2804 +		TInt                         iTimeZone;
  1.2805 +	/** Daylight Saving Time adjustment for summer time. The adjustment for DST 
  1.2806 +	can be +1h or +2h.
  1.2807 +	
  1.2808 +	Modes: GSM/WCDMA */
  1.2809 +		TInt	                     iDST;
  1.2810 +	/** Network name in "short" representation.
  1.2811 +	
  1.2812 +	Modes: GSM/WCDMA
  1.2813 +	
  1.2814 +	@see TMobilePhoneNetworkShortName */
  1.2815 +		TMobilePhoneNetworkShortName iShortNetworkId;
  1.2816 +	/** Network name in "long" representation.
  1.2817 +	
  1.2818 +	Modes: GSM/WCDMA
  1.2819 +	
  1.2820 +	@see TMobilePhoneNetworkLongName */
  1.2821 +		TMobilePhoneNetworkLongName	 iLongNetworkId;
  1.2822 +		};
  1.2823 +
  1.2824 +	IMPORT_C TInt GetNITZInfo(TMobilePhoneNITZ& aNITZInfo) const;
  1.2825 +	IMPORT_C void NotifyNITZInfoChange(TRequestStatus& aReqStatus, TMobilePhoneNITZ& aNITZInfo) const;
  1.2826 +
  1.2827 +	enum { KMaxSPNameSize=16 };
  1.2828 +	enum { KMaxPLMNFieldSize=251 };
  1.2829 +
  1.2830 +	enum TDisplayRequirements
  1.2831 +		{
  1.2832 +		KDisplayPLMNNotRequired	= 0x00000001,
  1.2833 +		KDisplayPLMNRequired	= 0x00000002,
  1.2834 +		KDisplaySPNRequired		= 0x00000004,
  1.2835 +		KDisplaySPNNotRequired	= 0x00000008
  1.2836 +		};
  1.2837 +
  1.2838 +	typedef TUint32 TDisplayRequirementsFlags;
  1.2839 +
  1.2840 +	class TMobilePhoneServiceProviderNameV2 : public TMultimodeType
  1.2841 +/** Used to retrieve the Service Provider Name from the ICC. The 
  1.2842 +SP is actually the entity that provides the service. The SP could have contractual 
  1.2843 +agreements with several home PLMN that the ME can register to. The display 
  1.2844 +preference of the registered PLMN and/or the SPN on the ME can be defined 
  1.2845 +on the UICC.
  1.2846 +@publishedPartner
  1.2847 +@released */
  1.2848 +		{
  1.2849 +	public:
  1.2850 +		IMPORT_C TMobilePhoneServiceProviderNameV2();
  1.2851 +	public:
  1.2852 +	/** This parameter specifies if the display of the registered PLMN is required. 
  1.2853 +	Can contain a number of flags from RMobilePhone::TDisplayRequirements.
  1.2854 +	*/
  1.2855 +		TDisplayRequirementsFlags	iDisplayReq;
  1.2856 +	/** The name of the service provider. */
  1.2857 +		TBuf<KMaxSPNameSize>	iSPName;
  1.2858 +		TBuf<KMaxPLMNFieldSize>	iPLMNField;
  1.2859 +		}; 
  1.2860 +
  1.2861 +/** A typedef'd packaged TMobilePhoneServiceProviderNameV2 for passing through 
  1.2862 +a generic API function member. */
  1.2863 +	typedef TPckg<TMobilePhoneServiceProviderNameV2> TMobilePhoneServiceProviderNameV2Pckg;
  1.2864 +
  1.2865 +	IMPORT_C void GetServiceProviderName(TRequestStatus& aReqStatus, TDes8& aName) const;
  1.2866 +	
  1.2867 +	/**
  1.2868 +	Network investigation scan settings.
  1.2869 +	*/
  1.2870 +	enum TMobilePhoneInvestigationScan
  1.2871 +		{
  1.2872 +		/**
  1.2873 +		Network investigation setting in limited service mode.
  1.2874 +		*/
  1.2875 +		KNetworkInvLimited = 0x01,
  1.2876 +		/**
  1.2877 +		Network investigation setting after successful PLMN selection.
  1.2878 +		*/
  1.2879 +		KNetworkInvAfterPlmnSelection=0x02		
  1.2880 +		};
  1.2881 +		
  1.2882 +	/**
  1.2883 +	Network investigation scan events.
  1.2884 +	*/
  1.2885 +	enum TMobilePhoneInvestigationScanEvent
  1.2886 +		{
  1.2887 +		/**
  1.2888 +		No investigation scan events available.
  1.2889 +		*/
  1.2890 +		ENetworkInvestigationNoEvent,
  1.2891 +		/**
  1.2892 +		A higher priority network has been detected, but it does not offer CS Voice.
  1.2893 +		*/
  1.2894 +		ENetworkInvestigationHighPriorityPlmn
  1.2895 +		};
  1.2896 +	
  1.2897 +	IMPORT_C TInt GetNetworkInvScanSetting(TMobilePhoneInvestigationScan & aSetting) const;
  1.2898 +	IMPORT_C void NotifyNetworkInvScanChange(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScan& aSetting) const;
  1.2899 +	IMPORT_C void NotifyNetworkInvScanEvent(TRequestStatus& aReqStatus, TMobilePhoneInvestigationScanEvent& aEvent) const;
  1.2900 +
  1.2901 +
  1.2902 +	/** 251 bytes is the maximum number of octets in an L3 message as defined in3GPP TS 44.006. */
  1.2903 +	enum { KMaxNetworkNameFieldSize = 251 };
  1.2904 +	
  1.2905 +	class TMobilePhoneNetworkNameV3 : public TMultimodeType
  1.2906 +	/**
  1.2907 +	Class containing short, long network names and location information for a PLMN.
  1.2908 +	*/
  1.2909 +		{
  1.2910 +	public:
  1.2911 +		IMPORT_C TMobilePhoneNetworkNameV3();
  1.2912 +	public:
  1.2913 +		/**
  1.2914 +		The long name (up to 20 characters) of the network operator.
  1.2915 +		*/
  1.2916 +		TMobilePhoneNetworkLongName	 iLongName;
  1.2917 +		/**
  1.2918 +		The short name (up to 10 characters) of the network operator.
  1.2919 +		*/
  1.2920 +		TMobilePhoneNetworkShortName	 iShortName;
  1.2921 +		/**
  1.2922 +		This buffer contains other long and short names for the registered PLMN coded as TLV objects.
  1.2923 +		*/
  1.2924 +		TBuf<KMaxNetworkNameFieldSize>	 iOtherNames;
  1.2925 +		};
  1.2926 +		
  1.2927 +	/**
  1.2928 + 	Packaging typedef for TMobilePhoneNetworkNameV3 class.
  1.2929 + 	*/	
  1.2930 +	typedef TPckg<TMobilePhoneNetworkNameV3>  TMobilePhoneNetworkNameV3Pckg;
  1.2931 +	
  1.2932 +	
  1.2933 +	class  TMobilePhoneOPlmnV3 : public TMultimodeType
  1.2934 +	/**
  1.2935 +	Class containing network name information.
  1.2936 +	*/
  1.2937 +		{
  1.2938 +	public:
  1.2939 +		IMPORT_C TMobilePhoneOPlmnV3();
  1.2940 +	public:
  1.2941 +		/**
  1.2942 +		The MCC of the registered PLMN, with "wild" values specified for the particular digits of the code.
  1.2943 +		*/
  1.2944 +		TMobilePhoneNetworkCountryCode iCountryCode;
  1.2945 +		/**
  1.2946 +		The MNC of the registered PLMN, with "wild" values specified for the particular digits of the code.
  1.2947 +		*/
  1.2948 +		TMobilePhoneNetworkIdentity iNetworkId;
  1.2949 +		/**
  1.2950 +		The id of the Network Name to be displayed for the (following) location area codes.
  1.2951 +		*/
  1.2952 +		TUint32 iPNNid;
  1.2953 +		/**
  1.2954 +		First Location area code for defining the entire range of LACs for the registered PLMN.
  1.2955 +		*/
  1.2956 +		TUint iFirstLocationAreaCode;
  1.2957 +		/**
  1.2958 +		Last Location area code defining the entire range of LACs for the registered PLMN.
  1.2959 +		*/
  1.2960 +		TUint iLastLocationAreaCode;
  1.2961 +		
  1.2962 +		};
  1.2963 +		
  1.2964 +	/**
  1.2965 + 	Packaging typedef for TMobilePhoneOPlmnV3 class.
  1.2966 + 	*/	
  1.2967 +	typedef TPckg<TMobilePhoneOPlmnV3>  TMobilePhoneOPlmnV3Pckg;
  1.2968 +	
  1.2969 +	IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName, TDes8& aLocInfo) const;
  1.2970 +	
  1.2971 +	/**
  1.2972 +	Identifiers for different access technologies.
  1.2973 +	*/
  1.2974 +	enum TMobilePhoneNetworkAccessCaps
  1.2975 +		{
  1.2976 +		/**
  1.2977 +		No network activity.
  1.2978 +		*/
  1.2979 +		KNetworkAccessUnknown=0x0000,
  1.2980 +		/**
  1.2981 +		Access technology is GSM.
  1.2982 +		*/
  1.2983 +		KNetworkAccessGsm=0x8000,
  1.2984 +		/**
  1.2985 +		Access technology is GSM COMPACT.
  1.2986 +		*/
  1.2987 +		KNetworkAccessGsmCompact=0x4000,
  1.2988 +		/**
  1.2989 +		Access technology is UTRAN (UMTS only).
  1.2990 +		*/
  1.2991 +		KNetworkAccessUtran=0x0080,
  1.2992 +		/** 
  1.2993 +		Indicates that a particular PLMN entry is a WLAN entry used for WLAN PLMN selection.
  1.2994 +		*/
  1.2995 +		KNetworkAccessWLAN=0x0040
  1.2996 +		};
  1.2997 +
  1.2998 +	typedef TUint32 TMobilePhoneNetworkAccessCapsFlags;
  1.2999 +		
  1.3000 +	class TMobilePreferredNetworkEntryV3 : public TMultimodeType
  1.3001 +	/**
  1.3002 +	Defines information for a preferred network.
  1.3003 +	*/
  1.3004 +		{
  1.3005 +	public:
  1.3006 +		IMPORT_C TMobilePreferredNetworkEntryV3();
  1.3007 +	public:
  1.3008 +		void InternalizeL(RReadStream& aStream);
  1.3009 +		void ExternalizeL(RWriteStream& aStream) const;
  1.3010 +	public:
  1.3011 +		/**
  1.3012 +		Access Technology supported.
  1.3013 +		Can contain a number of flags from RMobilePhone::TMobilePhoneNetworkAccessCaps.
  1.3014 +		*/
  1.3015 +		TMobilePhoneNetworkAccessCapsFlags iAccess;
  1.3016 +		/**
  1.3017 +		Editable preferences in the User-controlled Networks List with Access Technology.
  1.3018 +		*/
  1.3019 +		TBool iUserDefined;
  1.3020 +		/**
  1.3021 +		The MCC of the network.
  1.3022 +		*/
  1.3023 +		TMobilePhoneNetworkCountryCode iCountryCode;
  1.3024 +		/**
  1.3025 +		The MNC of the network.
  1.3026 +		*/
  1.3027 +		TMobilePhoneNetworkIdentity iNetworkId;
  1.3028 +		};
  1.3029 +		
  1.3030 +	IMPORT_C void StorePreferredNetworksListL(TRequestStatus& aReqStatus, CMobilePhoneStoredNetworkList* aList) const;
  1.3031 +	IMPORT_C void NotifyPreferredNetworksListChange(TRequestStatus& aReqStatus) const;
  1.3032 +		
  1.3033 +	/***********************************************************************************/		
  1.3034 +	//
  1.3035 +	// Mobile Multimedia Call Settings functional unit
  1.3036 +	//
  1.3037 +	/***********************************************************************************/
  1.3038 +	
  1.3039 +/** An enumerated list of settings for multimedia calls. */
  1.3040 +	enum TMobilePhoneMultimediaSettings
  1.3041 +		{
  1.3042 +	/** Accept all incoming multimedia calls with the fallback option enabled. (default). */
  1.3043 +		EAcceptMMCallsVoiceFallback,
  1.3044 +	/** Accept all incoming multimedia calls, but do not accept voice fallback. */
  1.3045 +		EAcceptMMCallsNoFallback,
  1.3046 +	/** Reject all incoming multimedia calls. */
  1.3047 +		ERejectMMCalls,
  1.3048 +	/** Reject all incoming multimedia calls, but drop to voice instead. */
  1.3049 +		EAnswerMMCallsAsVoice
  1.3050 +		};
  1.3051 +
  1.3052 +	IMPORT_C void SetMultimediaCallPreference(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings aMmSettings) const;
  1.3053 +	IMPORT_C TInt GetMultimediaCallPreference(TMobilePhoneMultimediaSettings& aMmSettings) const;
  1.3054 +	IMPORT_C void NotifyMultimediaCallPreferenceChange(TRequestStatus& aReqStatus, TMobilePhoneMultimediaSettings& aMmSettings);
  1.3055 +
  1.3056 +	/***********************************************************************************/	
  1.3057 +	//
  1.3058 +	// MobilePrivacy functional unit
  1.3059 +	//
  1.3060 +	/***********************************************************************************/
  1.3061 +	
  1.3062 +/** The mobile phone privacy settings.
  1.3063 +
  1.3064 +Modes: CDMA */
  1.3065 +	enum TMobilePhonePrivacy
  1.3066 +		{
  1.3067 +	/** The privacy setting is unspecified. */
  1.3068 +		EPrivacyUnspecified,
  1.3069 +	/** The privacy setting is set to ON. */
  1.3070 +		EPrivacyOn,
  1.3071 +	/** The privacy setting is set to OFF. */
  1.3072 +		EPrivacyOff
  1.3073 +		};
  1.3074 +
  1.3075 +	IMPORT_C TInt GetDefaultPrivacy(TMobilePhonePrivacy& aSetting) const;
  1.3076 +	IMPORT_C void SetDefaultPrivacy(TRequestStatus& aReqStatus, TMobilePhonePrivacy aSetting) const;
  1.3077 +	IMPORT_C void NotifyDefaultPrivacyChange(TRequestStatus& aReqStatus, TMobilePhonePrivacy& aSetting) const;
  1.3078 +
  1.3079 +	/***********************************************************************************/
  1.3080 +	//
  1.3081 +	// TSY Capabilities for supplementary call services
  1.3082 +	// 
  1.3083 +	/***********************************************************************************/
  1.3084 +	
  1.3085 +/** The call services.
  1.3086 +
  1.3087 +Modes: GSM/WCDMA */
  1.3088 +	enum TMobilePhoneCallServiceCaps
  1.3089 +		{
  1.3090 +	/** Phone supports retrieval of call forwarding status from a cache on the phone.
  1.3091 +	
  1.3092 +	Modes: GSM/WCDMA */
  1.3093 +		KCapsGetCFStatusCache				=0x00000001,
  1.3094 +	/** Phone supports retrieval of call forwarding status from the network.
  1.3095 +	
  1.3096 +	Modes: GSM/WCDMA */
  1.3097 +		KCapsGetCFStatusNetwork				=0x00000002,
  1.3098 +	/** Phone supports setting of call forwarding status (and registered information) 
  1.3099 +	in the network. */
  1.3100 +		KCapsSetCFStatus					=0x00000004,
  1.3101 +	/** Phone supports notification of change in status of any call forwarding service.
  1.3102 +	
  1.3103 +	Modes: GSM/WCDMA */
  1.3104 +		KCapsNotifyCFStatus					=0x00000008,
  1.3105 +	/** Phone supports retrieval of CLIP status from either a cache or the network.
  1.3106 +	
  1.3107 +	Modes: GSM/WCDMA */
  1.3108 +		KCapsGetClipStatus					=0x00000010,
  1.3109 +	/** Phone supports retrieval of CLIR status from either a cache or the network.
  1.3110 +	
  1.3111 +	Modes: GSM/WCDMA */
  1.3112 +		KCapsGetClirStatus					=0x00000020,
  1.3113 +	/** Phone supports retrieval of COLP status from either a cache or the network.
  1.3114 +	
  1.3115 +	Modes: GSM/WCDMA */
  1.3116 +		KCapsGetColpStatus					=0x00000040,
  1.3117 +	/** Phone supports retrieval of COLR status from either a cache or the network.
  1.3118 +	
  1.3119 +	Modes: GSM/WCDMA */
  1.3120 +		KCapsGetColrStatus					=0x00000080,
  1.3121 +	/** Phone supports retrieval of CNAP status from either a cache or the network.
  1.3122 +
  1.3123 +	Modes: GSM/WCDMA */
  1.3124 +		KCapsGetCnapStatus					=0x00000100,
  1.3125 +	/** Phone supports retrieval of call barring status from a cache on the phone.
  1.3126 +	
  1.3127 +	Modes: Common */
  1.3128 +		KCapsGetCBStatusCache				=0x00000200,
  1.3129 +	/** Phone supports retrieval of call barring status from the network.
  1.3130 +	
  1.3131 +	Modes: GSM/WCDMA */
  1.3132 +		KCapsGetCBStatusNetwork				=0x00000400,
  1.3133 +	/** Phone supports setting of call barring status in the network.
  1.3134 +	
  1.3135 +	Modes: Common */
  1.3136 +		KCapsSetCBStatus					=0x00000800,
  1.3137 +	/** Phone supports notification of change in call barring status for any service.
  1.3138 +	
  1.3139 +	Modes: Common */
  1.3140 +		KCapsNotifyCBStatus					=0x00001000,
  1.3141 +	/** Phone supports setting of a password for call barring service.
  1.3142 +	
  1.3143 +	Modes: Common */
  1.3144 +		KCapsChangeCBPassword				=0x00002000,
  1.3145 +	/** Phone supports BAIC call barring service.
  1.3146 +	
  1.3147 +	Modes: Common */
  1.3148 +		KCapsBarAllIncoming					=0x00004000,
  1.3149 +	/** Phone supports BIC-Roam call barring service.
  1.3150 +	
  1.3151 +	Modes: Common */
  1.3152 +		KCapsBarIncomingRoaming				=0x00008000,
  1.3153 +	/** Phone supports BAOC call barring service.
  1.3154 +	
  1.3155 +	Modes: Common */
  1.3156 +		KCapsBarAllOutgoing					=0x00010000,
  1.3157 +	/** Phone supports BOIC call barring service.
  1.3158 +	
  1.3159 +	Modes: Common */
  1.3160 +		KCapsBarOutgoingInternational		=0x00020000,
  1.3161 +	/** Phone supports BOIC-ExHC call barring service.
  1.3162 +	
  1.3163 +	Modes: Common */
  1.3164 +		KCapsBarOutgoingInternationalExHC	=0x00040000,
  1.3165 +	/** Phone supports barring all cases at once.
  1.3166 +	
  1.3167 +	Modes: Common */
  1.3168 +		KCapsBarAllCases					=0x00080000,
  1.3169 +	/** Phone supports retrieval of call waiting status from a cache on the phone.
  1.3170 +	
  1.3171 +	Modes: GSM/WCDMA */
  1.3172 +		KCapsGetCWStatusCache				=0x00100000,
  1.3173 +	/** Phone supports retrieval of call waiting status from the network.
  1.3174 +	
  1.3175 +	Modes: GSM/WCDMA */
  1.3176 +		KCapsGetCWStatusNetwork				=0x00200000,
  1.3177 +	/** Phone supports setting of call waiting status in the network.
  1.3178 +	
  1.3179 +	Modes: Common */
  1.3180 +		KCapsSetCWStatus					=0x00400000,
  1.3181 +	/** Phone supports notification of change in call waiting status for any service.
  1.3182 +	
  1.3183 +	Modes: GSM/WCDMA */
  1.3184 +		KCapsNotifyCWStatus					=0x00800000,
  1.3185 +	/** Phone supports retrieval of call completion (CCBS) status from a cache on the 
  1.3186 +	phone.
  1.3187 +	
  1.3188 +	Modes: GSM/WCDMA */
  1.3189 +		KCapsGetCCBSStatusCache				=0x01000000,
  1.3190 +	/** Phone supports retrieval of call completion (CCBS) status from the network.
  1.3191 +	
  1.3192 +	Modes: GSM/WCDMA */
  1.3193 +		KCapsGetCCBSStatusNetwork			=0x02000000,
  1.3194 +	/** Phone supports deactivation of all CCBS requests at once.
  1.3195 +	
  1.3196 +	Modes: GSM/WCDMA */
  1.3197 +		KCapsDeactivateAllCCBS				=0x04000000,
  1.3198 +		KCapsDeactivateCCBS					=0x08000000,
  1.3199 +	/** Phone supports retrieval of a list of active CCBS requests.
  1.3200 +	
  1.3201 +	Modes: GSM/WCDMA */
  1.3202 +		KCapsRetrieveActiveCCBS				=0x10000000,
  1.3203 +	/** The phone supports programming and retrieval of feature code against a CDMA 
  1.3204 +	network service.
  1.3205 +	
  1.3206 +	Modes: CDMA */
  1.3207 +		KCapsFeatureCode					=0x20000000,
  1.3208 +	/** The phone supports sending of generic network service request strings.
  1.3209 +	
  1.3210 +	Modes: Common */
  1.3211 +		KCapsNetworkServiceRequest			=0x40000000,
  1.3212 +	/** The phone supports retrieval of called line identification status.
  1.3213 +	
  1.3214 +	Modes: GSM/WCDMA */
  1.3215 +		KCapsGetCdipStatus					=0x80000000
  1.3216 +		};
  1.3217 +
  1.3218 +	IMPORT_C TInt GetCallServiceCaps(TUint32& aCaps) const;
  1.3219 +	IMPORT_C void NotifyCallServiceCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.3220 +
  1.3221 +	/***********************************************************************************/
  1.3222 +	//
  1.3223 +	// MobilePhoneUserNetworkAccess functional unit
  1.3224 +	//
  1.3225 +	/***********************************************************************************/
  1.3226 +
  1.3227 +/** Mobile Phone network services.
  1.3228 +
  1.3229 +Modes: CDMA */
  1.3230 +	enum TMobilePhoneNetworkService
  1.3231 +		{
  1.3232 +	/** Network service is unspecified. */
  1.3233 +		ENetworkServiceUnspecified,
  1.3234 +	/** Feature code applies to call forwarding unconditional service. */
  1.3235 +		ECFUService,
  1.3236 +	/** Feature code applies to call forwarding on busy service. */
  1.3237 +		ECFBService,
  1.3238 +	/** Feature code applies to call forwarding on no reply service. */
  1.3239 +		ECFNRyService,
  1.3240 +	/** Feature code applies to call forwarding on not reachable service. */
  1.3241 +		ECFNRcService,
  1.3242 +	/** Feature code applies to user selective call forwarding service - when the 
  1.3243 +	user wishes to forward incoming call to voicemail. */
  1.3244 +		EDeflectToVoicemail,
  1.3245 +	/** Feature code applies to user selective call forwarding service - when the
  1.3246 +	user wishes to forward incoming call to a number supplied within the deflect 
  1.3247 +	request. */
  1.3248 +		EDeflectToNumber,
  1.3249 +	/** Feature code applies to user selective call forwarding service - when the 
  1.3250 +	user wishes to forward incoming call to a number pre-registered within the 
  1.3251 +	network. */
  1.3252 +		EDeflectToRegisteredNumber,
  1.3253 +	/** Feature code applies to call waiting service. */
  1.3254 +		ECWService,
  1.3255 +		ENextCallShowCLI,
  1.3256 +	/** Feature code applies to caller ID restriction service - when user wishes to 
  1.3257 +	hide their ID for the next call they make. */
  1.3258 +		ENextCallHideCLI
  1.3259 +		};
  1.3260 +
  1.3261 +/** Mobile phone service actions.
  1.3262 +
  1.3263 +Modes: Common */
  1.3264 +	enum TMobilePhoneServiceAction
  1.3265 +		{
  1.3266 +	/** The action is unspecified. */
  1.3267 +		EServiceActionUnspecified,
  1.3268 +	/** The client is registering new service information. If the service was not active 
  1.3269 +	then this action also activates the service. */
  1.3270 +		EServiceActionRegister,
  1.3271 +	/** The client is activating the service. */
  1.3272 +		EServiceActionActivate,
  1.3273 +	/** The client is invoking the service. */
  1.3274 +		EServiceActionInvoke,
  1.3275 +	/** The client is deactivating the service. */
  1.3276 +		EServiceActionDeactivate,
  1.3277 +	/** The client is erasing the currently registered service information. If the service 
  1.3278 +	was active then this action also deactivates the service. */
  1.3279 +		EServiceActionErase
  1.3280 +		};
  1.3281 +		
  1.3282 +	/**
  1.3283 +	Defines the type of SS operation
  1.3284 +	*/
  1.3285 +	enum TMobilePhoneNotifySendSSOperation
  1.3286 +		{
  1.3287 +		/**
  1.3288 +		SS Invoke operation.
  1.3289 +		*/
  1.3290 +		ESendSSInvoke,
  1.3291 +		/**
  1.3292 +		SS ReturnResult operation.
  1.3293 +		*/
  1.3294 +		ESendSSReturnResult,
  1.3295 +		/**
  1.3296 +		SS ReturnError operation.
  1.3297 +		*/
  1.3298 +		ESendSSReturnError,
  1.3299 +		/**
  1.3300 +		SS Reject operation.
  1.3301 +		*/
  1.3302 +		ESendSSReject		
  1.3303 +		};
  1.3304 +	
  1.3305 +	/** Size of additional info buffer. */	
  1.3306 +	enum{ KAdditionalInfoSize = 244 };
  1.3307 +	
  1.3308 +	class TMobilePhoneSendSSRequestV3 : public TMultimodeType
  1.3309 +	/**
  1.3310 +	Contains the operation code and buffer to hold any additional information when receiving a notification 
  1.3311 +	about a network service request.
  1.3312 +	*/
  1.3313 +		{
  1.3314 +	public:
  1.3315 +		IMPORT_C TMobilePhoneSendSSRequestV3();
  1.3316 +	public:
  1.3317 +		/**
  1.3318 +		This is the Operation Code for a Send SS Invoke or Return result events.
  1.3319 +		This is the Error or Problem Code for a Send SS Return Error or Reject events.
  1.3320 +		*/
  1.3321 +		TUint8	iOpCode;
  1.3322 +		/**
  1.3323 +		The additional information (parameters) for a Send SS Invoke or Return result or Return Error events.
  1.3324 +		This is not used for a Send SS Reject event
  1.3325 +		*/
  1.3326 +		TBuf<KAdditionalInfoSize>	iAdditionalInfo;
  1.3327 +		};
  1.3328 +	
  1.3329 +	/**
  1.3330 + 	Packaging typedef for TMobilePhoneSendSSRequestV3 class.
  1.3331 + 	*/	
  1.3332 +	typedef TPckg<TMobilePhoneSendSSRequestV3> TMobilePhoneSendSSRequestV3Pckg;
  1.3333 +
  1.3334 +	// API/TSY internal type
  1.3335 +
  1.3336 +	struct TNetworkServiceAndAction
  1.3337 +		{
  1.3338 +		TMobilePhoneNetworkService iService;
  1.3339 +		TMobilePhoneServiceAction iAction;
  1.3340 +		};
  1.3341 +	
  1.3342 +	IMPORT_C void ProgramFeatureCode(TRequestStatus& aReqStatus, const TDesC& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
  1.3343 +	IMPORT_C void GetFeatureCode(TRequestStatus& aReqStatus, TDes& aFCString, TMobilePhoneNetworkService aService, TMobilePhoneServiceAction aAction) const;
  1.3344 +
  1.3345 +	IMPORT_C void SendNetworkServiceRequest(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
  1.3346 +	IMPORT_C void SendNetworkServiceRequestNoFdnCheck(TRequestStatus& aReqStatus, const TDesC& aServiceString) const;
  1.3347 +	IMPORT_C void NotifySendNetworkServiceRequest(TRequestStatus& aReqStatus, const TMobilePhoneNotifySendSSOperation aOperation, TDes8& aRequestComplete) const;
  1.3348 +	IMPORT_C void NotifyAllSendNetworkServiceRequest(TRequestStatus& aReqStatus, TMobilePhoneNotifySendSSOperation& aOperation, TDes8& aRequestComplete) const;
  1.3349 +
  1.3350 +	/***********************************************************************************/
  1.3351 +	//
  1.3352 +	// MobilePhoneCallForwarding functional unit
  1.3353 +	// 
  1.3354 +	/***********************************************************************************/
  1.3355 +
  1.3356 +/** The Call Forwarding flavours.
  1.3357 +
  1.3358 +Modes: GSM/WCDMA */
  1.3359 +	enum TMobilePhoneCFCondition
  1.3360 +		{
  1.3361 +	/** The call forwarding service is unspecified. */
  1.3362 +		ECallForwardingUnspecified,
  1.3363 +	/** All calls to this subscriber are forwarded. */
  1.3364 +		ECallForwardingUnconditional,
  1.3365 +	/** Calls are forwarded when this subscriber is busy. */
  1.3366 +		ECallForwardingBusy,
  1.3367 +	/** Calls are forwarded when this subscriber does not reply within a time-out period. */
  1.3368 +		ECallForwardingNoReply,
  1.3369 +	/** Calls are forwarded when this subscriber is unreachable. */
  1.3370 +		ECallForwardingNotReachable,
  1.3371 +	/** All of above CF services. Can be used to check all 4 call forwarding Fs 
  1.3372 +	at once. */
  1.3373 +		ECallForwardingAllCases,			// combination of all four above cases
  1.3374 +	/** All the conditional (busy, no reply, not reachable) CF services. Can be used 
  1.3375 +	to check all 3 conditional call forwarding conditions at once. */
  1.3376 +		ECallForwardingAllConditionalCases	// combination of CFB, CFNRy and CFNRc
  1.3377 +		};
  1.3378 +
  1.3379 +/** The Call Forwarding status
  1.3380 +
  1.3381 +Modes: GSM/WCDMA */
  1.3382 +	enum TMobilePhoneCFStatus
  1.3383 +		{
  1.3384 +	/** The CF service is currently active and operative. */
  1.3385 +		ECallForwardingStatusActive,
  1.3386 +	/** The CF service is currently deactivated. */
  1.3387 +		ECallForwardingStatusNotActive,
  1.3388 +	/** The CF service is not registered. */
  1.3389 +		ECallForwardingStatusNotRegistered,
  1.3390 +	/** The CF service is not provisioned. */
  1.3391 +		ECallForwardingStatusNotProvisioned,
  1.3392 +	/** The CF service is not available in the serving network. */
  1.3393 +		ECallForwardingStatusNotAvailable,
  1.3394 +	/** The phone can not determine CF service status. */
  1.3395 +		ECallForwardingStatusUnknown,
  1.3396 +	/** The Call Forwarding service is active and the presentation indicator is set 
  1.3397 +	to allowed */
  1.3398 +		ECallForwardingStatusActivePIAllowed,
  1.3399 +	/** The Call Forwarding service is active and the presentation indicator is set 
  1.3400 +	to not available */
  1.3401 +		ECallForwardingStatusActivePINotAvailable,
  1.3402 +	/** The Call Forwarding service is active and the presentation indicator is set 
  1.3403 +	to restricted
  1.3404 +	
  1.3405 +	The Call Forwarding service is active and the presentation indicator is set 
  1.3406 +	to restricted and screening returns "User provided, verified and passed". */
  1.3407 +		ECallForwardingStatusActivePIClir,
  1.3408 +	/** The Call Forwarding service is active and the presentation indicator is set 
  1.3409 +	to restricted and screening returns "User provided, not screened". */
  1.3410 +		ECallForwardingStatusActivePIClirSIVerified,
  1.3411 +	/** The Call Forwarding service is active and the presentation indicator is set 
  1.3412 +	to "restricted" and screening returns "Network provided". */
  1.3413 +		ECallForwardingStatusActivePIClirSINotScreened,
  1.3414 +	/** The Call Forwarding service is active and the presentation indicator is set 
  1.3415 +	to "restricted" and screening returns "Network provided". */
  1.3416 +		ECallForwardingStatusActivePIClirSINetwork,
  1.3417 +	/** The CF service is currently in the quiescent state. */	
  1.3418 +		ECallForwardingStatusQuiescent
  1.3419 +		};
  1.3420 +		
  1.3421 +	
  1.3422 +
  1.3423 +	class TMobilePhoneCFInfoEntryV1 : public TMultimodeType
  1.3424 +/** Defines information about the call forwarding service.
  1.3425 +
  1.3426 +Modes: GSM/WCDMA
  1.3427 +
  1.3428 +@see CMobilePhoneCFList
  1.3429 +@publishedPartner
  1.3430 +@released 
  1.3431 +*/
  1.3432 +		{
  1.3433 +	public:
  1.3434 +		IMPORT_C TMobilePhoneCFInfoEntryV1();
  1.3435 +	public:
  1.3436 +		void InternalizeL(RReadStream& aStream);
  1.3437 +		void ExternalizeL(RWriteStream& aStream) const;
  1.3438 +	public:
  1.3439 +	/** The CF service of this list entry.
  1.3440 +	
  1.3441 +	@see TMobilePhoneCFCondition */
  1.3442 +		TMobilePhoneCFCondition iCondition;
  1.3443 +	/** The basic service group associated to this CF service list entry.
  1.3444 +	
  1.3445 +	@see TMobileService */
  1.3446 +		TMobileService iServiceGroup;
  1.3447 +	/** The current status of the call forwarding condition.
  1.3448 +	
  1.3449 +	@see TMobilePhoneCFStatus */
  1.3450 +		TMobilePhoneCFStatus iStatus;
  1.3451 +	/** The "forward-to" telephone number registered for the call forwarding condition. 
  1.3452 +	An empty string if CF service is not registered, not provisioned or not available.
  1.3453 +	
  1.3454 +	@see TMobileAddress */
  1.3455 +		TMobileAddress iNumber;
  1.3456 +	/** The "No Reply" time-out (in seconds) registered for the call forwarding no reply 
  1.3457 +	condition.
  1.3458 +	
  1.3459 +	Equals to -1 if this value is not applicable. In GSM mode, will be between 
  1.3460 +	5 and 30 and in steps of 5 if this value is applicable. */
  1.3461 +		TInt iTimeout; // valid for CFRNy only
  1.3462 +		};
  1.3463 +
  1.3464 +	IMPORT_C void NotifyCallForwardingStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCFCondition& aCondition) const;
  1.3465 +
  1.3466 +	class TMobilePhoneCFChangeV1 : public TMultimodeType
  1.3467 +/** Defines the call forward information.
  1.3468 +
  1.3469 +@see SetCallForwardingStatus()
  1.3470 +@publishedPartner
  1.3471 +@released 
  1.3472 +*/
  1.3473 +		{
  1.3474 +	public:
  1.3475 +		IMPORT_C TMobilePhoneCFChangeV1();
  1.3476 +	public:
  1.3477 +	/** The basic service group(s) to apply the CF status change to.
  1.3478 +	
  1.3479 +	@see TMobileService */
  1.3480 +		TMobileService iServiceGroup;
  1.3481 +	/** The service action for call forwarding.
  1.3482 +	
  1.3483 +	@see TMobilePhoneServiceAction */
  1.3484 +		TMobilePhoneServiceAction iAction;
  1.3485 +	/** A new "forward-to" number to be registered against the CF condition. This is 
  1.3486 +	applicable if iAction=EServiceActionRegister. In other cases, it is set to
  1.3487 +	an empty string.
  1.3488 +	
  1.3489 +	@see TMobileAddress */
  1.3490 +		TMobileAddress iNumber;
  1.3491 +	/** The new "No Reply" time-out in seconds to be registered. This is applicable 
  1.3492 +	if the CF condition is CFNRy and iAction=EServiceActionRegister. Equals -1 
  1.3493 +	if this value is not applicable. If applicable, in GSM mode will be between 
  1.3494 +	5 and 30 and in steps of 5. */
  1.3495 +		TInt iTimeout;
  1.3496 +		};
  1.3497 +
  1.3498 +	IMPORT_C void SetCallForwardingStatus(TRequestStatus& aReqStatus, TMobilePhoneCFCondition aCondition, const TMobilePhoneCFChangeV1& aInfo) const;
  1.3499 +
  1.3500 +/** Call Forwarding Active Notification
  1.3501 +
  1.3502 +Modes: Common */
  1.3503 +	enum TMobilePhoneCFActive
  1.3504 +		{
  1.3505 +	/** CF Unconditional is currently active. */
  1.3506 +		ECFUnconditionalActive,
  1.3507 +	/** CF Busy, CF No Reply or CF Not Reachable is currently active. */
  1.3508 +		ECFConditionalActive
  1.3509 +		};
  1.3510 +
  1.3511 +	IMPORT_C void NotifyCallForwardingActive(TRequestStatus& aReqStatus, TMobileService& aServiceGroup, TMobilePhoneCFActive& aActiveType) const;
  1.3512 +	
  1.3513 +	/**
  1.3514 +	Current status indicators for unconditional call forwarding.
  1.3515 +	*/
  1.3516 +	enum TCFUIndicatorStatus
  1.3517 +		{
  1.3518 +		/**
  1.3519 +		CFU Indicator status unknown.
  1.3520 +		*/
  1.3521 +		KCFUIndicatorUnknown = 0x0,
  1.3522 +		/**
  1.3523 +		CFU Indicator status for Voice (TMobileServiceGroup EVoice).
  1.3524 +		*/
  1.3525 +		KCFUIndicatorVoice=0x01,
  1.3526 +		/**
  1.3527 +		CFU Indicator status for Fax (TMobileServiceGroup EFax).
  1.3528 +		*/
  1.3529 +		KCFUIndicatorFax=0x02,
  1.3530 +		/**
  1.3531 +		CFU Indicator status for Data Teleservices(TMobileServiceGroup EData).
  1.3532 +		*/
  1.3533 +		KCFUIndicatorData=0x04,
  1.3534 +		/**
  1.3535 +		CFU Indicator status for Sms (TMobileServiceGroup ESms).
  1.3536 +		*/
  1.3537 +		KCFUIndicatorSms=0x08,
  1.3538 +		/**
  1.3539 +		CFU Indicator status for Data Bearer Services(TMobileServiceGroup EDataBearer).
  1.3540 +		*/
  1.3541 +		KCFUIndicatorDataBearer=0x10,
  1.3542 +		/**
  1.3543 +		CFU Indicator status for Auxiliary Voice (TMobileServiceGroup EAuxVoiceService).
  1.3544 +		*/
  1.3545 +		KCFUIndicatorAuxVoice=0x20
  1.3546 +		};
  1.3547 +
  1.3548 +	typedef TUint32 TCFUIndicatorStatusFlags;
  1.3549 +		
  1.3550 +	class TMobilePhoneCFUIndicatorV3 : public TMultimodeType
  1.3551 +	/**
  1.3552 +	Contains indicator parameters for unconditional call forwarding.
  1.3553 +	*/
  1.3554 +		{
  1.3555 +	public:
  1.3556 +		IMPORT_C TMobilePhoneCFUIndicatorV3();
  1.3557 +	public:
  1.3558 +		/**
  1.3559 +		Current setting for indicator status.
  1.3560 +		Can contain a number of flags from RMobilePhone::TCFUIndicatorStatus.
  1.3561 +		*/
  1.3562 +		TCFUIndicatorStatusFlags iIndicator;		
  1.3563 +		};
  1.3564 +		
  1.3565 +	typedef TPckg<TMobilePhoneCFUIndicatorV3> TMobilePhoneCFUIndicatorV3Pckg;
  1.3566 +
  1.3567 +	/**
  1.3568 +	The MSP number contains the Profile Identity of the subscriber profile.
  1.3569 +	The Profile Identity shall be any of the following enlisted.
  1.3570 +	@see 3GPP TS 31.102 v7.4.1 section 4.2.64
  1.3571 +	@see 3GPP TS 23.097 [36]
  1.3572 +	*/
  1.3573 +	enum TMultipleSubscriberProfileID
  1.3574 +		{
  1.3575 +		/**
  1.3576 +		Profile Identity Unknown
  1.3577 +		*/
  1.3578 +		KProfileIdentityUnknown = 0x0,
  1.3579 +		/**
  1.3580 +		Profile Identity 1
  1.3581 +		*/
  1.3582 +		KProfileIdentityOne = 0x01,
  1.3583 +		/**
  1.3584 +		Profile Identity 2
  1.3585 +		*/
  1.3586 +		KProfileIdentityTwo = 0x02,
  1.3587 +		/**
  1.3588 +		Profile Identity 3
  1.3589 +		*/
  1.3590 +		KProfileIdentityThree = 0x04,
  1.3591 +		/**
  1.3592 +		Profile Identity 4
  1.3593 +		*/
  1.3594 +		KProfileIdentityFour = 0x08
  1.3595 +		};
  1.3596 +
  1.3597 +	class TMobilePhoneCFUIndicatorV6 : public TMobilePhoneCFUIndicatorV3
  1.3598 +	/**
  1.3599 +	Contains the indicator parameters for unconditional call forwarding.
  1.3600 +	The TMobilePhoneCFUIndicatorV6 supports MSP number(Multiple Subscriber Profile) and Call Forwarding Number.
  1.3601 +	Upto four different profiles can be provisioned against a subscriber using the MSP feature.
  1.3602 +	@see 3GPP TS 31.102 v7.4.1 section 4.2.64
  1.3603 +	*/
  1.3604 +		{
  1.3605 +	public:
  1.3606 +		IMPORT_C TMobilePhoneCFUIndicatorV6();
  1.3607 +	public:
  1.3608 +		/**
  1.3609 +		@see RMoblie::TMobileAddress
  1.3610 +		*/
  1.3611 +		TMobileAddress iCFNumber;
  1.3612 +		/**
  1.3613 +		The profile IDs allow unambiguous identification of each profile. 
  1.3614 +		This will allow the subscriber to select the preferred profile for outgoing calls and for subscriber actions. 
  1.3615 +		For terminating calls the profile ID shall be part of the notification of the profile.
  1.3616 +		*/
  1.3617 +		TMultipleSubscriberProfileID iMultipleSubscriberProfileID;
  1.3618 +		};
  1.3619 +
  1.3620 +	typedef TPckg<TMobilePhoneCFUIndicatorV6> TMobilePhoneCFUIndicatorV6Pckg;
  1.3621 +
  1.3622 +	IMPORT_C void GetCallForwardingIndicator(TRequestStatus& aReqStatus, TDes8& aIndicator) const;
  1.3623 +
  1.3624 +	/***********************************************************************************/
  1.3625 +	//
  1.3626 +	// Mobile Identity Service functional unit
  1.3627 +	// 
  1.3628 +	/***********************************************************************************/
  1.3629 +
  1.3630 +/** Phone ID services (CLIP/CNIP/CLIR).
  1.3631 +
  1.3632 +Modes: GSM/WCDMA */
  1.3633 +	enum TMobilePhoneIdService
  1.3634 +		{
  1.3635 +	/** The identity service is unspecified */
  1.3636 +		EIdServiceUnspecified,
  1.3637 +	/** The caller's ID is presented to the called party. */
  1.3638 +		EIdServiceCallerPresentation,
  1.3639 +	/** The caller's ID is restricted to the called party. */
  1.3640 +		EIdServiceCallerRestriction,
  1.3641 +	/** The connected party's ID is presented to the calling party. */
  1.3642 +		EIdServiceConnectedPresentation,
  1.3643 +	/** The connected party's ID is restricted to the calling party. */
  1.3644 +		EIdServiceConnectedRestriction,
  1.3645 +	/** The caller's name is presented to the called party. */
  1.3646 +		EIdServiceCallerName,
  1.3647 +	/** The called party is presented with the caller's ID. This command enables a 
  1.3648 +	called subscriber to get the called line identification of the called party 
  1.3649 +	when receiving a mobile terminated call. - maps to +CDIP. */
  1.3650 +		EIdServiceCalledPresentation
  1.3651 +		};
  1.3652 +
  1.3653 +/** Service status of the Phone ID services (CLIP/CLIR/CNIP).
  1.3654 +
  1.3655 +Modes: GSM/WCDMA */
  1.3656 +	enum TMobilePhoneIdServiceStatus
  1.3657 +		{
  1.3658 +	/** The interrogated Identity service is provisioned and active. This status is 
  1.3659 +	used for all identity services and in the case of the CLIR service means that 
  1.3660 +	it is permanently active with no subscription option set. */
  1.3661 +		EIdServiceActivePermanent,
  1.3662 +	/** This status is used for the CLIR service only and means that the service is 
  1.3663 +	provisioned and active.
  1.3664 +	
  1.3665 +	The CLIR subscription option is set to "Temporary, default restricted", therefore 
  1.3666 +	identity is always restricted unless over-ridden by the user during a call 
  1.3667 +	set-up. */
  1.3668 +		EIdServiceActiveDefaultRestricted,
  1.3669 +	/** This status is used for the CLIR service only and means that the service is 
  1.3670 +	provisioned and active.
  1.3671 +	
  1.3672 +	The CLIR subscription option is set to "Temporary, default allowed", therefore 
  1.3673 +	identity is always allowed unless over-ridden by the user during a call set-up. */
  1.3674 +		EIdServiceActiveDefaultAllowed,
  1.3675 +	/** The interrogated Identity service is not provisioned. */
  1.3676 +		EIdServiceNotProvisioned,
  1.3677 +	/** The status of the interrogated Identity service is unknown. */
  1.3678 +		EIdServiceUnknown
  1.3679 +		};
  1.3680 +
  1.3681 +	// for use by client-side API code and TSY only
  1.3682 +
  1.3683 +	struct TIdServiceAndLocation
  1.3684 +		{
  1.3685 +		TMobilePhoneIdService iService;
  1.3686 +		TMobileInfoLocation iLocation;
  1.3687 +		};
  1.3688 +
  1.3689 +	/** This function member retrieves the current status of the identity service specified.
  1.3690 +	
  1.3691 +	The phone will retrieve this service status information from the location 
  1.3692 +	specified by the client.
  1.3693 +	
  1.3694 +	If the client has requested EInfoLocationCache but there is no valid status 
  1.3695 +	information in the cache then the request will return KErrNotFound.
  1.3696 +	
  1.3697 +	If the client has requested EInfoLocationCachePreferred, the network will 
  1.3698 +	be interrogated if the cache is empty. Whenever the network is interrogated, 
  1.3699 +	the cache will be refreshed with the information from the network.
  1.3700 +	
  1.3701 +	Use RTelSubSessionBase::CancelAsyncRequest(EMobilePhoneGetIdentityServiceStatus) 
  1.3702 +	to cancel a previously placed asynchronous GetIdentityServiceStatus() request.
  1.3703 +	
  1.3704 +	@param aReqStatus On return, KErrNone if successful.
  1.3705 +	@param aService The identity service to be queried.
  1.3706 +	@param aStatus On return, the service status.
  1.3707 +	@param aLocation The location to use. */
  1.3708 +	IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
  1.3709 +	
  1.3710 +	/**
  1.3711 +	Identifies default service status for provisioned identity services.
  1.3712 +	*/
  1.3713 +	enum TMobilePhoneIdServiceSetting
  1.3714 +		{
  1.3715 +		/** Sets the default setting to network default (unknown). */
  1.3716 +		EIdServiceNetworkDefault,
  1.3717 +		/** Sets the default setting to presentation restricted. */
  1.3718 +		EIdServicePresentationRestricted,
  1.3719 +		/** Sets the default setting to presentation allowed. */
  1.3720 +		EIdServicePresentationAllowed
  1.3721 +		};
  1.3722 +		
  1.3723 +	IMPORT_C void SetIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, const TMobilePhoneIdServiceSetting aSetting) const;
  1.3724 +	IMPORT_C void NotifyIdentityServiceStatus(TRequestStatus& aReqStatus, const TMobilePhoneIdService aService, TMobilePhoneIdServiceStatus& aStatus) const;
  1.3725 +	IMPORT_C void NotifyIdentitySuppressionRejected(TRequestStatus& aReqStatus) const;
  1.3726 +
  1.3727 +	/***********************************************************************************/
  1.3728 +	//
  1.3729 +	// Mobile Call Barring Functional Unit
  1.3730 +	//
  1.3731 +	/***********************************************************************************/
  1.3732 +
  1.3733 +/** Mobile Phone Call Baring Conditions.
  1.3734 +
  1.3735 +Modes: Common */
  1.3736 +	enum TMobilePhoneCBCondition
  1.3737 +		{
  1.3738 +	/** The barring program is unspecified */
  1.3739 +		EBarUnspecified,
  1.3740 +	/** All incoming calls to this subscriber are barred (BAIC). */
  1.3741 +		EBarAllIncoming,
  1.3742 +	/** All incoming calls to this subscriber are barred when roaming outside the home 
  1.3743 +	PLMN country (BIC-roam). */
  1.3744 +		EBarIncomingRoaming,
  1.3745 +	/** All outgoing calls by this subscriber are barred (BAOC). */
  1.3746 +		EBarAllOutgoing,
  1.3747 +	/** All outgoing international calls by this subscriber are barred (BOIC). */
  1.3748 +		EBarOutgoingInternational,
  1.3749 +	/** All outgoing international calls except those directed to the home PLMN country 
  1.3750 +	by this subscriber are barred (BOIC-ExHC). */
  1.3751 +		EBarOutgoingInternationalExHC,
  1.3752 +	/** All of above CB services. */
  1.3753 +		EBarAllCases,
  1.3754 +		EBarAllOutgoingServices,
  1.3755 +		EBarAllIncomingServices
  1.3756 +		};
  1.3757 +
  1.3758 +/** Mobile Phone Call Barring Status and Information.
  1.3759 +
  1.3760 +Modes: Common */
  1.3761 +	enum TMobilePhoneCBStatus
  1.3762 +		{
  1.3763 +	/** The CB service is currently active and operative. */
  1.3764 +		ECallBarringStatusActive,
  1.3765 +	/** The CB service is currently deactivated or quiescent. */
  1.3766 +		ECallBarringStatusNotActive,
  1.3767 +	/** In GSM/WCDMA mode, the CB service is not provisioned. In CDMA mode, this value 
  1.3768 +	has no meaning. */
  1.3769 +		ECallBarringStatusNotProvisioned,
  1.3770 +	/** In GSM/WCDMA mode, the CB service is not available in serving network. In CDMA
  1.3771 +	mode, the CB service is not available in the phone. */
  1.3772 +		ECallBarringStatusNotAvailable,
  1.3773 +	/** The phone can not determine CB service status. */
  1.3774 +		ECallBarringStatusUnknown
  1.3775 +		};
  1.3776 +
  1.3777 +	
  1.3778 +
  1.3779 +	class TMobilePhoneCBInfoEntryV1 : public TMultimodeType
  1.3780 +/** Defines information about the call barring service.
  1.3781 +
  1.3782 +@see CMobilePhoneCBList
  1.3783 +@publishedPartner
  1.3784 +@released 
  1.3785 +*/
  1.3786 +		{
  1.3787 +	public:
  1.3788 +		void InternalizeL(RReadStream& aStream);
  1.3789 +		void ExternalizeL(RWriteStream& aStream) const;
  1.3790 +	public:
  1.3791 +		IMPORT_C TMobilePhoneCBInfoEntryV1();
  1.3792 +	public:
  1.3793 +	/** The CB service of this list entry.
  1.3794 +	
  1.3795 +	Modes: Common
  1.3796 +	
  1.3797 +	@see TMobilePhoneCBCondition */
  1.3798 +		TMobilePhoneCBCondition iCondition;
  1.3799 +	/** The service group associated to this list entry.
  1.3800 +	
  1.3801 +	Modes: Common
  1.3802 +	
  1.3803 +	@see TMobileService */
  1.3804 +		TMobileService iServiceGroup;
  1.3805 +	/** The CB service status of this list entry.
  1.3806 +	
  1.3807 +	Modes: Common
  1.3808 +	
  1.3809 +	@see TMobilePhoneCBStatus */
  1.3810 +		TMobilePhoneCBStatus iStatus;
  1.3811 +		};
  1.3812 +		
  1.3813 +	class TMobilePhoneCBInfoEntryV3 : public TMobilePhoneCBInfoEntryV1
  1.3814 +	/**
  1.3815 +	V3 class extending TMobilePhoneCBInfoEntryV1 to add a comparison method parameter.
  1.3816 +	*/
  1.3817 +		{
  1.3818 +	public:
  1.3819 +		void InternalizeL(RReadStream& aStream);
  1.3820 +		void ExternalizeL(RWriteStream& aStream) const;
  1.3821 +	public:
  1.3822 +		IMPORT_C TMobilePhoneCBInfoEntryV3();
  1.3823 +	public:
  1.3824 +		/**
  1.3825 +		The comparison method associated with this CB entry.
  1.3826 +		*/
  1.3827 +		TUint8 iCompMethod;
  1.3828 +		};
  1.3829 +		
  1.3830 +	class TMobilePhoneCBChangeV1 : public TMultimodeType
  1.3831 +/** Mobile Phone Call Barring Change.
  1.3832 +
  1.3833 +@see SetCallBarringStatus() 
  1.3834 +*/
  1.3835 +		{
  1.3836 +	public:
  1.3837 +		IMPORT_C TMobilePhoneCBChangeV1();
  1.3838 +	public:
  1.3839 +	/** The basic service group(s) to apply the CB status change to.
  1.3840 +	
  1.3841 +	@see TMobileService */
  1.3842 +		TMobileService iServiceGroup;
  1.3843 +	/** The service action for call barring.
  1.3844 +	
  1.3845 +	@see TMobilePhoneServiceAction */
  1.3846 +		TMobilePhoneServiceAction iAction;
  1.3847 +	/** Password required to perform the call barring service action.
  1.3848 +	
  1.3849 +	@see TMobilePassword */
  1.3850 +		TMobilePassword iPassword;
  1.3851 +		};
  1.3852 +
  1.3853 +	IMPORT_C void SetCallBarringStatus(TRequestStatus& aReqStatus, TMobilePhoneCBCondition aCondition, const TMobilePhoneCBChangeV1& aInfo) const;
  1.3854 +	IMPORT_C void NotifyCallBarringStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCBCondition& aCondition) const;
  1.3855 +	
  1.3856 +	class TMobilePhonePasswordChangeV1 : public TMultimodeType
  1.3857 +/** Mobile phone password change.
  1.3858 +
  1.3859 +@see SetCallBarringPassword()
  1.3860 +@see ChangeSecurityCode()
  1.3861 +@publishedPartner
  1.3862 +@released 
  1.3863 +*/
  1.3864 +		{
  1.3865 +	public:
  1.3866 +		IMPORT_C TMobilePhonePasswordChangeV1();
  1.3867 +	public:
  1.3868 +	/** Old password.
  1.3869 +	
  1.3870 +	Modes: Common
  1.3871 +	
  1.3872 +	@see TMobilePassword */
  1.3873 +		TMobilePassword iOldPassword;
  1.3874 +	/** New password.
  1.3875 +	
  1.3876 +	Modes: Common
  1.3877 +	
  1.3878 +	@see TMobilePassword */
  1.3879 +		TMobilePassword iNewPassword;
  1.3880 +		};
  1.3881 +
  1.3882 +	IMPORT_C void SetCallBarringPassword(TRequestStatus& aReqStatus, const TMobilePhonePasswordChangeV1& aPassword) const;
  1.3883 +
  1.3884 +	class TMobilePhonePasswordChangeV2 : public TMobilePhonePasswordChangeV1
  1.3885 +/** Mobile phone password change version 2. 
  1.3886 +*/
  1.3887 +	{
  1.3888 +	public:
  1.3889 +		IMPORT_C TMobilePhonePasswordChangeV2();
  1.3890 +	public:
  1.3891 +	/** Verified password.
  1.3892 +	
  1.3893 +	Modes: Common
  1.3894 +	
  1.3895 +	@see TMobilePassword */
  1.3896 +		TMobilePassword iVerifiedPassword;
  1.3897 +	};
  1.3898 +
  1.3899 +/** A typedef'd packaged TMobilePhonePasswordChangeV2 passing through a generic 
  1.3900 +API function member. */
  1.3901 +	typedef TPckg<TMobilePhonePasswordChangeV2> TMobilePhonePasswordChangeV2Pckg;
  1.3902 +
  1.3903 +	IMPORT_C void SetSSPassword(TRequestStatus& aReqStatus, const TDesC8& aPassword, const TInt aService) const;
  1.3904 +	
  1.3905 +	IMPORT_C void GetCompMethodName(TRequestStatus& aReqStatus, TDes& aAlphaTag, const TUint8 aCmi) const;
  1.3906 +
  1.3907 +	/***********************************************************************************/
  1.3908 +	//
  1.3909 +	// Mobile Call Waiting Functional Unit
  1.3910 +	//
  1.3911 +	/***********************************************************************************/
  1.3912 +
  1.3913 +/** The mobile phone call waiting status.
  1.3914 +
  1.3915 +Modes: GSM/WCDMA */
  1.3916 +	enum TMobilePhoneCWStatus
  1.3917 +		{
  1.3918 +	/** The CW service is currently active and operative. */
  1.3919 +		ECallWaitingStatusActive,
  1.3920 +	/** The CW service is currently deactivated or quiescent. */
  1.3921 +		ECallWaitingStatusNotActive,
  1.3922 +	/** The CW service is not provisioned. */
  1.3923 +		ECallWaitingStatusNotProvisioned,
  1.3924 +	/** The CW service is not available in the serving network. */
  1.3925 +		ECallWaitingStatusNotAvailable,
  1.3926 +	/** The phone can not determine CW service status. */
  1.3927 +		ECallWaitingStatusUnknown
  1.3928 +		};
  1.3929 +
  1.3930 +	
  1.3931 +
  1.3932 +	class TMobilePhoneCWInfoEntryV1 : public TMultimodeType
  1.3933 +/** Defines information about the call waiting service.
  1.3934 +
  1.3935 +@see CMobilePhoneCWList 
  1.3936 +*/
  1.3937 +		{
  1.3938 +	public:
  1.3939 +		void InternalizeL(RReadStream& aStream);
  1.3940 +		void ExternalizeL(RWriteStream& aStream) const;
  1.3941 +	public:
  1.3942 +		IMPORT_C TMobilePhoneCWInfoEntryV1();
  1.3943 +	public:
  1.3944 +	/** The service group associated to this CW service list entry.
  1.3945 +	
  1.3946 +	Modes: GSM/WCDMA
  1.3947 +	
  1.3948 +	@see TMobileService */
  1.3949 +		TMobileService iServiceGroup;
  1.3950 +	/** The CW service status of this list entry.
  1.3951 +	
  1.3952 +	Modes: GSM/WCDMA
  1.3953 +	
  1.3954 +	@see TMobilePhoneCWStatus */
  1.3955 +		TMobilePhoneCWStatus iStatus;
  1.3956 +		};
  1.3957 +
  1.3958 +/** A typedef'd packaged TMobilePhoneCWInfoEntryV1 for passing through a generic 
  1.3959 +API function member. */
  1.3960 +	typedef TPckg<TMobilePhoneCWInfoEntryV1> TMobilePhoneCWInfoEntryV1Pckg;
  1.3961 +
  1.3962 +	IMPORT_C void SetCallWaitingStatus(TRequestStatus& aReqStatus, TMobileService aServiceGroup, TMobilePhoneServiceAction aAction) const;
  1.3963 +	IMPORT_C void NotifyCallWaitingStatusChange(TRequestStatus& aReqStatus, TDes8& aCWStatus) const;
  1.3964 +
  1.3965 +	/***********************************************************************************/
  1.3966 +	//
  1.3967 +	// Mobile Call Completion Unit
  1.3968 +	//
  1.3969 +	/***********************************************************************************/
  1.3970 +
  1.3971 +/** The Call Completion Busy Subscriber status of the phone.
  1.3972 +
  1.3973 +Modes: GSM/WCDMA */
  1.3974 +	enum TMobilePhoneCCBSStatus
  1.3975 +		{
  1.3976 +	/** User has CCBS provisioned and there is at least 1 (and up to 5) active CCBS 
  1.3977 +	requests. */
  1.3978 +		ECcbsActive,
  1.3979 +	/** User has CCBS provisioned but there are currently no active CCBS requests. */
  1.3980 +		ECcbsNotActive,
  1.3981 +	/** User has not subscribed to the CCBS service. */
  1.3982 +		ECcbsNotProvisioned,
  1.3983 +	/** The CCBS service is not available in the serving network. */
  1.3984 +		ECcbsNotAvailable,
  1.3985 +	/** MS is unable to determine status of the CCBS service. */
  1.3986 +		ECcbsUnknown
  1.3987 +		};
  1.3988 +
  1.3989 +/** CCBS recall events.
  1.3990 +
  1.3991 +@see RMobilePhone::TMobilePhoneCCBSEntryV2 */
  1.3992 +	enum TCCBSRecallEvent
  1.3993 +		{
  1.3994 +	/** Recall received. */
  1.3995 +		ECcbsRecallReceived,
  1.3996 +	/** Recall accepted. */
  1.3997 +		ECcbsRecallAccepted,
  1.3998 +	/** Recall refused. */
  1.3999 +		ECcbsRecallRefused,
  1.4000 +	/** Recall reason unspecified. */
  1.4001 +		ECcbsRecallUnspecified
  1.4002 +		};
  1.4003 +
  1.4004 +	
  1.4005 +
  1.4006 +	class TMobilePhoneCCBSEntryV1 : public TMultimodeType
  1.4007 +/** Defines information about the call completion (CCBS) service.
  1.4008 +
  1.4009 +@see CMobilePhoneCcbsList
  1.4010 +@publishedPartner
  1.4011 +@released 
  1.4012 +*/
  1.4013 +		{
  1.4014 +	public:
  1.4015 +		void InternalizeL(RReadStream& aStream);
  1.4016 +		void ExternalizeL(RWriteStream& aStream) const;
  1.4017 +	public:
  1.4018 +		IMPORT_C TMobilePhoneCCBSEntryV1();
  1.4019 +	public:
  1.4020 +	/** The CCBS index - a number allocated by the network.
  1.4021 +	
  1.4022 +	Modes: GSM/WCDMA */
  1.4023 +		TInt			iCcbsIndex;
  1.4024 +	/** The basic service group (voice/data/fax) this CCBS request is applicable to.
  1.4025 +	
  1.4026 +	Modes: GSM/WCDMA
  1.4027 +	
  1.4028 +	@see TMobileService */
  1.4029 +		TMobileService	iServiceGroup;
  1.4030 +	/** The phone number of the remote party to whom the CCBS request is aimed.
  1.4031 +	
  1.4032 +	Modes: GSM/WCDMA
  1.4033 +	
  1.4034 +	@see TMobileAddress */
  1.4035 +		TMobileAddress	iDestination;
  1.4036 +
  1.4037 +		};
  1.4038 +
  1.4039 +/** A typedef'd packaged TMobilePhoneCCBSEntryV1 for passing through a generic API 
  1.4040 +function member. */
  1.4041 +	typedef TPckg<TMobilePhoneCCBSEntryV1> TMobilePhoneCCBSEntryV1Pckg;
  1.4042 +
  1.4043 +
  1.4044 +	class TMobilePhoneCCBSEntryV2 : public TMobilePhoneCCBSEntryV1
  1.4045 +/** Defines information about the call completion (CCBS) service version 2. 
  1.4046 +*/
  1.4047 +		{
  1.4048 +	public:
  1.4049 +		IMPORT_C	TMobilePhoneCCBSEntryV2();
  1.4050 +	public:
  1.4051 +		TCCBSRecallEvent	iEvent;
  1.4052 +		}; 
  1.4053 +	
  1.4054 +/** A typedef'd packaged TMobilePhoneCCBSEntryV2 for passing through a generic API 
  1.4055 +function member. */
  1.4056 +	typedef TPckg<TMobilePhoneCCBSEntryV2> TMobilePhoneCCBSEntryV2Pckg;
  1.4057 +	
  1.4058 +	IMPORT_C void GetCCBSStatus(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus, TMobileInfoLocation aLocation = EInfoLocationCachePreferred) const;
  1.4059 +	IMPORT_C void NotifyCCBSStatusChange(TRequestStatus& aReqStatus, TMobilePhoneCCBSStatus& aCcbsStatus) const;
  1.4060 +	IMPORT_C void DeactivateCCBS(TRequestStatus& aReqStatus, TInt aIndex) const;
  1.4061 +	IMPORT_C void NotifyCCBSRecall(TRequestStatus& aReqStatus, TDes8& aCCBSEntry) const;
  1.4062 +	IMPORT_C void AcceptCCBSRecall(TRequestStatus& aReqStatus, TInt aIndex, TName& aCallName) const;
  1.4063 +	IMPORT_C TInt RefuseCCBSRecall(TInt aIndex) const;
  1.4064 +
  1.4065 +	/***********************************************************************************/
  1.4066 +	//
  1.4067 +	// Mobile Alternating Call Function Unit
  1.4068 +	//
  1.4069 +	/***********************************************************************************/
  1.4070 +
  1.4071 +/** Alternating Call Capabilities
  1.4072 +
  1.4073 +Modes: GSM */
  1.4074 +	enum TMobilePhoneAlternatingCallCaps
  1.4075 +		{
  1.4076 +	/** Phone supports outgoing Voice/Data calls
  1.4077 +	
  1.4078 +	Modes: GSM */
  1.4079 +		KCapsMOVoiceData = 0x00000001,
  1.4080 +	/** Phone supports outgoing Voice Then Data calls.
  1.4081 +	
  1.4082 +	Modes: GSM */
  1.4083 +		KCapsMOVoiceThenData = 0x00000002,
  1.4084 +	/** Phone supports outgoing Voice/Fax calls.
  1.4085 +	
  1.4086 +	Modes: GSM/WCDMA */
  1.4087 +		KCapsMOVoiceFax	= 0x00000004,
  1.4088 +	/** Phone supports incoming Voice/Data calls.
  1.4089 +	
  1.4090 +	Modes: GSM */
  1.4091 +		KCapsMTVoiceData = 0x00000008,
  1.4092 +	/** Phone supports incoming Voice Then Data calls.
  1.4093 +	
  1.4094 +	Modes: GSM */
  1.4095 +		KCapsMTVoiceThenData = 0x00000010,
  1.4096 +	/** Phone supports incoming Voice/Fax calls
  1.4097 +
  1.4098 +	Modes: GSM/WCDMA */
  1.4099 +		KCapsMTVoiceFax = 0x00000020
  1.4100 +		};
  1.4101 +
  1.4102 +	IMPORT_C TInt GetAlternatingCallCaps(TUint32& aCaps) const;
  1.4103 +	IMPORT_C void NotifyAlternatingCallCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.4104 +
  1.4105 +/** Alternating Call Mode.
  1.4106 +
  1.4107 +Modes: Common */
  1.4108 +	enum TMobilePhoneAlternatingCallMode
  1.4109 +		{
  1.4110 +	/** The alternating call mode is unspecified
  1.4111 +	
  1.4112 +	Modes: Common */
  1.4113 +		EAlternatingModeUnspecified,
  1.4114 +	/** Next call will use a single bearer service - default setting
  1.4115 +	
  1.4116 +	Modes: Common */
  1.4117 +		EAlternatingModeSingle,
  1.4118 +	/** Next call will use voice/data alternating bearer service. 
  1.4119 +	
  1.4120 +	Modes: GSM */
  1.4121 +		EAlternatingModeVoiceData,
  1.4122 +	/** Next call will use voice then data alternating bearer service.
  1.4123 +	
  1.4124 +	Modes: GSM */
  1.4125 +		EAlternatingModeVoiceThenData,
  1.4126 +	/** Next call will use voice/fax alternating bearer service. 
  1.4127 +	
  1.4128 +	Modes: GSM/WCDMA */
  1.4129 +		EAlternatingModeVoiceFax
  1.4130 +		};
  1.4131 +
  1.4132 +	IMPORT_C TInt GetAlternatingCallMode(TMobilePhoneAlternatingCallMode& aMode, TMobileService& aFirstService) const;
  1.4133 +	IMPORT_C void SetAlternatingCallMode(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode aMode, TMobileService aFirstService) const;
  1.4134 +	IMPORT_C void NotifyAlternatingCallModeChange(TRequestStatus& aReqStatus, TMobilePhoneAlternatingCallMode& aMode,TMobileService& aFirstService) const;
  1.4135 +
  1.4136 +	/***********************************************************************************/
  1.4137 +	//
  1.4138 +	// Mobile Alternate Line Service Functional Unit
  1.4139 +	//
  1.4140 +	/***********************************************************************************/
  1.4141 +
  1.4142 +/** Alternate Line Primary settings.
  1.4143 +
  1.4144 +Modes: GSM */
  1.4145 +	enum TMobilePhoneALSLine
  1.4146 +		{
  1.4147 +	/** Current ALS line selection is the "Primary" voice line. */
  1.4148 +		EAlternateLinePrimary,
  1.4149 +	/** Current ALS line selection is the "Auxiliary" voice line. */
  1.4150 +		EAlternateLineAuxiliary,
  1.4151 +	/** ALS is supported by ME and SIM, but the TSY can not determine which line is 
  1.4152 +	currently selected. */
  1.4153 +		EAlternateLineUnknown,
  1.4154 +	/** The ME, SIM or serving network does not support ALS. */
  1.4155 +		EAlternateLineNotAvailable
  1.4156 +		};
  1.4157 +
  1.4158 +	IMPORT_C TInt GetALSLine(TMobilePhoneALSLine& aALSLine) const;
  1.4159 +	IMPORT_C void SetALSLine(TRequestStatus& aReqStatus, TMobilePhoneALSLine aALSLine) const;
  1.4160 +	IMPORT_C void NotifyALSLineChange(TRequestStatus& aReqStatus, TMobilePhoneALSLine& aALSLine) const;
  1.4161 +
  1.4162 +	/***********************************************************************************/	
  1.4163 +	//
  1.4164 +	// Mobile Network Security Functional Unit
  1.4165 +	//
  1.4166 +	/***********************************************************************************/
  1.4167 +
  1.4168 +/** Enumerated network security types.
  1.4169 +
  1.4170 +Mode: Common */
  1.4171 +	enum TMobilePhoneNetworkSecurity
  1.4172 +		{
  1.4173 +	/** The encryption level is NONE.
  1.4174 +	
  1.4175 +	Mode: Common */
  1.4176 +		ECipheringOff,
  1.4177 +	/** The encryption level is GSM.(standard encryption algorithms for 2nd Generation 
  1.4178 +	Mobile networks).
  1.4179 +	
  1.4180 +	Mode: GSM */
  1.4181 +		ECipheringGSM,
  1.4182 +	/** The encryption level is WCDMA.(standard encryption algorithms for 3rd Generation 
  1.4183 +	Mobile networks).
  1.4184 +	
  1.4185 +	Mode: WCDMA */
  1.4186 +		ECipheringWCDMA,
  1.4187 +	/** The encryption level is CDMA.(standard encryption algorithms for 3rd Generation 
  1.4188 +	Mobile networks).
  1.4189 +	
  1.4190 +	Mode: CDMA */
  1.4191 +		ECipheringCDMA
  1.4192 +		};
  1.4193 +
  1.4194 +	IMPORT_C void GetNetworkSecurityLevel(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const;
  1.4195 +	IMPORT_C void NotifyNetworkSecurityLevelChange(TRequestStatus& aReqStatus, TMobilePhoneNetworkSecurity& aSecurity) const;
  1.4196 +	
  1.4197 +	/**
  1.4198 +	Indicators for whether encryption status of the current call should be displayed.
  1.4199 +	*/
  1.4200 +	enum TMobileCallCipheringIndicator
  1.4201 +		{
  1.4202 +		/**
  1.4203 +		The ME indication displaying the encryption status of the current call should be off.
  1.4204 +		*/
  1.4205 +		ECipheringDisplayOff,
  1.4206 +		/**
  1.4207 +		The ME indication displaying the encryption status of the current call should be on.
  1.4208 +		*/
  1.4209 +		ECipheringDisplayOn 
  1.4210 +		};
  1.4211 +		
  1.4212 +    IMPORT_C void GetCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const;
  1.4213 +    IMPORT_C void NotifyCipheringIndicatorStatus(TRequestStatus& aReqStatus, TMobileCallCipheringIndicator& aIndicatorStatus) const;
  1.4214 +
  1.4215 +	/***********************************************************************************/
  1.4216 +	//
  1.4217 +	// Mobile Cost Functional Unit
  1.4218 +	//
  1.4219 +	/***********************************************************************************/
  1.4220 +
  1.4221 +/** Call Cost Capabilities.
  1.4222 +
  1.4223 +Modes: GSM/WCDMA */
  1.4224 +	enum TMobilePhoneCostCaps
  1.4225 +		{
  1.4226 +	/** Indicates that the phone supports calculation and display of current and accumulated 
  1.4227 +	call cost on an information-only basis. (The AoCI service in GSM) 
  1.4228 +	
  1.4229 +	Modes: GSM/WCDMA */
  1.4230 +		KCapsCostInformation = 0x00000001,
  1.4231 +	/** Indicates that the phone supports calculation and display of current and accumulated 
  1.4232 +	call cost in order to support the charging service. (The AoCC service in GSM). 
  1.4233 +
  1.4234 +
  1.4235 +	Modes: Common */
  1.4236 +		KCapsCostCharging = 0x00000002,
  1.4237 +	/** Indicates that the phone supports clearing of cost meters (ACM or CCM) to zero.
  1.4238 +	
  1.4239 +	Modes: Common */
  1.4240 +		KCapsClearCost = 0x00000004,
  1.4241 +	/** Indicates that the phone supports setting the maximum allowed cost (ACMmax) 
  1.4242 +	to a non-zero value. 
  1.4243 +	
  1.4244 +	Modes: Common */
  1.4245 +		KCapsSetMaxCost = 0x00000008,
  1.4246 +	/** Indicates that the phone supports setting the currency and price per unit.
  1.4247 +	
  1.4248 +	Modes: GSM/WCDMA */
  1.4249 +		KCapsSetPuct = 0x00000010,
  1.4250 +	/** Indicates that the phone currently has call cost information available that 
  1.4251 +	the client can retrieve.
  1.4252 +	
  1.4253 +	Modes: Common */
  1.4254 +		KCapsGetCost = 0x00000020,
  1.4255 +	/** Indicates that the phone can notify the client when the call cost information 
  1.4256 +	changes. 
  1.4257 +	
  1.4258 +	Modes: Common */
  1.4259 +		KCapsNotifyCostChange = 0x00000040
  1.4260 +		};
  1.4261 +
  1.4262 +	IMPORT_C TInt GetCostCaps(TUint32& aCaps) const;
  1.4263 +	IMPORT_C void NotifyCostCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.4264 +
  1.4265 +/** Clear Cost Meter.
  1.4266 +
  1.4267 +Modes: Common */
  1.4268 +	enum TMobilePhoneCostMeters
  1.4269 +		{
  1.4270 +	/** Clear the Current Call Meter. */
  1.4271 +		EClearCCM,
  1.4272 +	/** Clear the Accumulated Charge Meter. */
  1.4273 +		EClearACM,
  1.4274 +	/** Clear all cost meters */
  1.4275 +		EClearAll
  1.4276 +		};
  1.4277 +
  1.4278 +	IMPORT_C void ClearCostMeter(TRequestStatus& aReqStatus, TMobilePhoneCostMeters aMeter) const;
  1.4279 +	IMPORT_C void SetMaxCostMeter(TRequestStatus& aReqStatus, TUint aUnits) const;
  1.4280 +
  1.4281 +	
  1.4282 +	
  1.4283 +	class  TMobilePhonePuctV1 : public TMultimodeType
  1.4284 +/** Defines the contents of the price/unit and currency table (PUCT) on the SIM.
  1.4285 +
  1.4286 +@see TMobilePhoneCostInfoV1
  1.4287 +@see SetPuct() 
  1.4288 +*/
  1.4289 +		{
  1.4290 +	public:
  1.4291 +		IMPORT_C TMobilePhonePuctV1();
  1.4292 +	public:
  1.4293 +	/** The Price per Unit. This floating point value is used to adjust the pricing 
  1.4294 +	units supplied by the network into real currency values. 
  1.4295 +	
  1.4296 +	Modes: GSM/WCDMA */
  1.4297 +		TReal   iPricePerUnit;
  1.4298 +	/** The three character currency indicator.
  1.4299 +	
  1.4300 +	Modes: GSM/WCDMA */
  1.4301 +		TBuf<4> iCurrencyName;
  1.4302 +		};
  1.4303 +
  1.4304 +/** A typedef'd packaged TMobilePhonePuctV1 for passing through a generic API function 
  1.4305 +member. */
  1.4306 +	typedef TPckg<TMobilePhonePuctV1> TMobilePhonePuctV1Pckg;
  1.4307 +	
  1.4308 +	IMPORT_C void SetPuct(TRequestStatus& aReqStatus, const TDesC8& aPuct) const;
  1.4309 +	
  1.4310 +/** Cost Information
  1.4311 +
  1.4312 +Modes: GSM/WCDMA */
  1.4313 +	enum TMobilePhoneCostService
  1.4314 +		{
  1.4315 +	/** Phone supports call cost service but no calls are currently in progress so the 
  1.4316 +	network support and user subscription is unknown. */
  1.4317 +		ECostServiceUnknown,
  1.4318 +	/** The network or the phone does not support any of the call cost services. The 
  1.4319 +	call can be either in progress or not. If the user is subscribed to AoCI they 
  1.4320 +	will be able to continue to make calls but will not see any charging information. 
  1.4321 +	If the user is subscribed to AoCC then they will be prevented from making 
  1.4322 +	chargeable calls. */
  1.4323 +		ECostServiceNotAvailable,
  1.4324 +	/** Call is in progress and a call cost service is active but the phone is unable 
  1.4325 +	to determine whether it is an AoCI or AoCC service. */
  1.4326 +		ECostServiceAvailable,
  1.4327 +	/** Call is in progress and the call cost information (AoCI) service is currently 
  1.4328 +	operating.
  1.4329 +	
  1.4330 +	Modes: GSM/WCDMA */
  1.4331 +		ECostServiceInformation,
  1.4332 +	/** Call is in progress and the call cost charging (AoCC) service is currently operating.
  1.4333 +	
  1.4334 +	Modes: GSM/WCDMA */
  1.4335 +		ECostServiceCharging
  1.4336 +		};
  1.4337 +
  1.4338 +	
  1.4339 +
  1.4340 +	class TMobilePhoneCostInfoV1 : public TMultimodeType
  1.4341 +/** Defines the information related to current billing costs.
  1.4342 +
  1.4343 +@see GetCostInfo()
  1.4344 +@see NotifyCostInfoChange() 
  1.4345 +*/
  1.4346 +		{
  1.4347 +	public:
  1.4348 +		IMPORT_C TMobilePhoneCostInfoV1();
  1.4349 +	public:
  1.4350 +	/** The current status and type of call cost service.
  1.4351 +	
  1.4352 +	@see TMobilePhoneCostService */
  1.4353 +		TMobilePhoneCostService iService;
  1.4354 +	/** The current number of charging units in the Current Call Meter. This is set 
  1.4355 +	to zero if reset by the user or at the start of call set-up attempt. */
  1.4356 +		TUint iCCM;
  1.4357 +	/** The current number of charging units in the Accumulated Call Meter. This equals 
  1.4358 +	the accumulation of previous and current calls. */
  1.4359 +		TUint iACM;
  1.4360 +	/** The maximum number of charging units that the ACM can rise to before chargeable 
  1.4361 +	calls are stopped. Equals zero if Service != ECostServiceCharging. */
  1.4362 +		TUint iACMmax;
  1.4363 +	/** The Price per Unit and Currency Table.
  1.4364 +	
  1.4365 +	@see TMobilePhonePuctV1 */
  1.4366 +		TMobilePhonePuctV1 iPuct;
  1.4367 +		};
  1.4368 +
  1.4369 +/** A typedef'd packaged TMobilePhoneCostInfoV1 for passing through a generic API
  1.4370 +function member. */
  1.4371 +	typedef TPckg<TMobilePhoneCostInfoV1> TMobilePhoneCostInfoV1Pckg;
  1.4372 +
  1.4373 +	IMPORT_C void GetCostInfo(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
  1.4374 +	IMPORT_C void NotifyCostInfoChange(TRequestStatus& aReqStatus, TDes8& aCostInfo) const;
  1.4375 +
  1.4376 +	/***********************************************************************************/
  1.4377 +	//
  1.4378 +	// Mobile Security Functional Unit
  1.4379 +	//
  1.4380 +	/***********************************************************************************/
  1.4381 +
  1.4382 +/** Security Capabilities.
  1.4383 +
  1.4384 +Modes: Common */
  1.4385 +	enum TMobilePhoneSecurityCaps
  1.4386 +		{
  1.4387 +	/** The phone supports an overall "phone device lock" which can be enabled or disabled. 
  1.4388 +	If enabled, user must enter phone password before the phone can be used. When 
  1.4389 +	this capability is set the phone will support get lock info, notify lock info 
  1.4390 +	change and set lock setting for phone device lock.
  1.4391 +	
  1.4392 +	Modes: Common */
  1.4393 +		KCapsLockPhone = 0x0000001,
  1.4394 +	/** The phone supports locking the ICC (using the PIN1 security code), which can 
  1.4395 +	be enabled or disabled. If enabled, the user must enter PIN1 code before the 
  1.4396 +	ICC can be used. When this capability is set the phone will support get lock 
  1.4397 +	info, notify lock info change and set lock setting for ICC lock. 
  1.4398 +	
  1.4399 +	Modes: Common */
  1.4400 +		KCapsLockICC = 0x00000002,
  1.4401 +	/** The phone supports the "phone to ICC lock" which can be enabled or disabled. 
  1.4402 +	If enabled, at power-up the phone will check whether current ICC is the one 
  1.4403 +	the phone is locked to or not. If not, then the user must enter the phone
  1.4404 +	password before phone can be used with this ICC. When this capability is set 
  1.4405 +	the phone will support get lock info, notify lock info change and set lock 
  1.4406 +	setting for Phone-ICC lock. 
  1.4407 +	
  1.4408 +	Modes: Common */
  1.4409 +		KCapsLockPhoneToICC = 0x00000004,
  1.4410 +	/** The phone supports the "phone to first ICC lock" which can be enabled or disabled. 
  1.4411 +	If enabled, at power-up the phone will check whether current ICC is the one 
  1.4412 +	the phone is first locked to or not. If not, then user must enter the phone 
  1.4413 +	password before the phone can be used with this ICC. When this capability 
  1.4414 +	is set the phone will support get lock info, notify lock info change and set 
  1.4415 +	lock setting for Phone-First ICC lock.
  1.4416 +
  1.4417 +	Modes: Common */
  1.4418 +		KCapsLockPhoneToFirstICC = 0x00000008,
  1.4419 +	/** The phone supports the "Over The Air" programming lock which can be enabled 
  1.4420 +	or disabled. If enabled, the phone will prevent OTA programming by the network. 
  1.4421 +	If disabled, the phone will allow OTA programming by the network. When this 
  1.4422 +	capability is set the phone will support get lock info, notify lock info change 
  1.4423 +	and set lock setting for OTA lock. 
  1.4424 +	
  1.4425 +	Modes: CDMA */
  1.4426 +		KCapsLockOTA = 0x00000010,
  1.4427 +	/** The phone supports access to the PIN 1 security code. When this capability is 
  1.4428 +	set the phone will support verification of PIN1, unblocking PIN1, changing 
  1.4429 +	PIN1 and notification of PIN1 required. 
  1.4430 +	
  1.4431 +	Modes: Common */
  1.4432 +		KCapsAccessPin1 = 0x00000020,
  1.4433 +	/** The phone supports access to the PIN 2 security code. When this capability is 
  1.4434 +	set the phone will support verification of PIN2, unblocking PIN2, changing 
  1.4435 +	PIN2 and notification of PIN2 required.
  1.4436 +	
  1.4437 +	Modes: GSM/WCDMA */
  1.4438 +		KCapsAccessPin2 = 0x00000040,
  1.4439 +	/** The phone supports access to the phone password security code. When this capability 
  1.4440 +	is set the phone will support verification of the phone password, changing 
  1.4441 +	the phone password and notification if the phone password is required. 
  1.4442 +	
  1.4443 +	Modes: Common */
  1.4444 +		KCapsAccessPhonePassword = 0x00000080,
  1.4445 +	/** The phone supports access to the SPC (Service Programming Code) security code. 
  1.4446 +	This code may need to be verified before OTA can commence.
  1.4447 +	
  1.4448 +	Modes: CDMA */
  1.4449 +		KCapsAccessSPC = 0x00000100,
  1.4450 +	/** The phone supports access to the hidden key. When this capability is set the
  1.4451 +	phone will support verification of HiddenKey. 
  1.4452 +	
  1.4453 +	Modes: WCDMA */
  1.4454 +		KCapsAccessHiddenKey=0x00000200,
  1.4455 +	/** The phone supports access to the USIM Application PIN. An Application PIN allows 
  1.4456 +	access to any file on the UICC where it is referenced in the access rules.
  1.4457 +	
  1.4458 +	Modes: WCDMA */
  1.4459 +		KCapsAccessUSIMAppPin=0x00000400,
  1.4460 +	/** The phone supports access to the second USIM Application PIN. The second Application 
  1.4461 +	PIN allows access to files (where it is referenced in the access rules) within 
  1.4462 +	one USIM Application on the UICC. This is a local PIN.
  1.4463 +	
  1.4464 +	Modes: WCDMA */
  1.4465 +		KCapsAccessUSIMAppSecondPin =0x00000800,
  1.4466 +	/** The phone supports access to the Universal PIN. A Universal PIN is a PIN that 
  1.4467 +	is used in a multi-application UICC environment to allow several USIM applications 
  1.4468 +	to share one common PIN.
  1.4469 +	
  1.4470 +	Modes: WCDMA */
  1.4471 +		KCapsAccessUniversalPin =0x00001000
  1.4472 +		};
  1.4473 +
  1.4474 +	IMPORT_C TInt GetSecurityCaps(TUint32& aCaps) const;
  1.4475 +	IMPORT_C void NotifySecurityCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.4476 +
  1.4477 +/** Lock Information.
  1.4478 +
  1.4479 +Modes: Common */
  1.4480 +	enum TMobilePhoneLock
  1.4481 +		{
  1.4482 +	/** Lock the whole device. Phone lock password is required to unlock when this lock 
  1.4483 +	is enabled. 
  1.4484 +
  1.4485 +	Modes: Common */
  1.4486 +		ELockPhoneDevice,
  1.4487 +	/** Lock PIN1 on the ICC. PIN1 security code is required to unlock when this lock 
  1.4488 +	is enabled. 
  1.4489 +	
  1.4490 +	Modes: Common */
  1.4491 +		ELockICC,
  1.4492 +	/** Lock the phone to the current ICC inserted in the phone Phone lock password 
  1.4493 +	is required to unlock when this lock is enabled.
  1.4494 +	
  1.4495 +	Modes: Common */
  1.4496 +		ELockPhoneToICC,
  1.4497 +	/** Lock the phone to the first ICC inserted in the phone. Phone lock password is 
  1.4498 +	required to unlock when this lock is enabled.
  1.4499 +	
  1.4500 +	Modes: Common */
  1.4501 +		ELockPhoneToFirstICC,
  1.4502 +	/** Lock the OTA facility on the phone. SPC security code may be required to unlock 
  1.4503 +	when this lock is enabled.
  1.4504 +	
  1.4505 +	Modes: CDMA */
  1.4506 +		ELockOTA,
  1.4507 +	/** Lock PIN2 on the ICC. PIN2 security code is required to unlock when this lock 
  1.4508 +	is enabled.
  1.4509 +	
  1.4510 +	Modes: Common */
  1.4511 +		ELockPin2,
  1.4512 +	/** Lock the phonebook hidden entries on the phone. Hidden key security code may 
  1.4513 +	be required to unlock when this lock is enabled.
  1.4514 +	
  1.4515 +	Modes: WCDMA */
  1.4516 +		ELockHiddenKey,
  1.4517 +	/** Lock the associated USIM Application. USIM Application PIN is required to unlock 
  1.4518 +	when this lock is enabled.
  1.4519 +	
  1.4520 +	Modes: WCDMA */
  1.4521 +		ELockUSimApp,
  1.4522 +	/** Lock the associated USIM Application. The second USIM Application PIN is required 
  1.4523 +	to unlock when this lock is enabled.
  1.4524 +	
  1.4525 +	Modes: WCDMA */
  1.4526 +		ELockSecondUSimApp,
  1.4527 +	/** Lock the associated USIM Application(s) that share this common lock. Universal 
  1.4528 +	Pin is required to unlock when this lock is enabled.
  1.4529 +	
  1.4530 +	Modes: WCDMA */
  1.4531 +		ELockUniversalPin,
  1.4532 +	/** Lock for the NAM.  The SPC is required to unlock.
  1.4533 +	
  1.4534 +	Modes: CDMA */
  1.4535 +		ELockNam
  1.4536 +		};
  1.4537 +
  1.4538 +/** Phone lock status.
  1.4539 +
  1.4540 +Modes: Common */
  1.4541 +	enum TMobilePhoneLockStatus
  1.4542 +		{
  1.4543 +	/** The status of the lock is unknown. */
  1.4544 +		EStatusLockUnknown,
  1.4545 +	/** Lock is closed - user can not access functionality governed by this lock until 
  1.4546 +	user correctly enters associated security code. */
  1.4547 +		EStatusLocked,
  1.4548 +	/** Lock is open - user can access functionality governed by this lock */
  1.4549 +		EStatusUnlocked,
  1.4550 +		EStatusBlocked
  1.4551 +		};
  1.4552 +
  1.4553 +/** The phone lock setting.
  1.4554 +
  1.4555 +Modes: Common */
  1.4556 +	enum TMobilePhoneLockSetting
  1.4557 +		{
  1.4558 +	/** The setting of the lock is unknown
  1.4559 +	
  1.4560 +	Modes: Common */
  1.4561 +		ELockSetUnknown,
  1.4562 +	/** Lock is enabled - associated security code will be required to unlock the 
  1.4563 +	lock, the next time the lock's status is EStatusLocked. 
  1.4564 +	
  1.4565 +	Modes: Common */
  1.4566 +		ELockSetEnabled,
  1.4567 +	/** Lock is disabled - so its status is always EStatusUnlocked.
  1.4568 +	
  1.4569 +	Modes: Common */
  1.4570 +		ELockSetDisabled,
  1.4571 +	/** Lock of the current Application is replaced by the Universal PIN. Only the 
  1.4572 +	Universal PIN is allowed as a replacement.
  1.4573 +
  1.4574 +	Modes: WCDMA */
  1.4575 +		ELockReplaced
  1.4576 +		};
  1.4577 +
  1.4578 +	
  1.4579 +
  1.4580 +	class TMobilePhoneLockInfoV1 : public TMultimodeType
  1.4581 +/** Defines the status of a phone lock.
  1.4582 +
  1.4583 +@see GetLockInfo()
  1.4584 +@see NotifyLockInfoChange()
  1.4585 +@publishedPartner
  1.4586 +@released
  1.4587 +*/
  1.4588 +		{
  1.4589 +	public:
  1.4590 +		IMPORT_C TMobilePhoneLockInfoV1();
  1.4591 +	public:
  1.4592 +	/** The current status of the lock.
  1.4593 +	
  1.4594 +	Modes: Common
  1.4595 +	
  1.4596 +	@see TMobilePhoneLockStatus */
  1.4597 +		TMobilePhoneLockStatus iStatus;
  1.4598 +	/** The current setting of the lock.
  1.4599 +	
  1.4600 +	Modes: Common
  1.4601 +	
  1.4602 +	@see TMobilePhoneLockSetting */
  1.4603 +		TMobilePhoneLockSetting iSetting;
  1.4604 +		};
  1.4605 +
  1.4606 +/** A typedef'd packaged TMobilePhoneLockInfoV1 for passing through a generic API 
  1.4607 +function member. */
  1.4608 +	typedef TPckg<TMobilePhoneLockInfoV1> TMobilePhoneLockInfoV1Pckg;
  1.4609 +
  1.4610 +	IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TDes8& aLockInfo) const;
  1.4611 +	IMPORT_C void NotifyLockInfoChange(TRequestStatus& aReqStatus, TMobilePhoneLock& aLock, TDes8& aLockInfo) const;
  1.4612 +	IMPORT_C void SetLockSetting(TRequestStatus& aReqStatus, TMobilePhoneLock aLock, TMobilePhoneLockSetting aSetting) const;
  1.4613 +
  1.4614 +/** Change Security Code.
  1.4615 +
  1.4616 +Modes: Common */
  1.4617 +	enum TMobilePhoneSecurityCode
  1.4618 +		{
  1.4619 +	/** PIN 1 code (between 4-8 digits).
  1.4620 +
  1.4621 +	Modes: Common */
  1.4622 +		ESecurityCodePin1,
  1.4623 +	/** PIN 2 code (between 4-8 digits)
  1.4624 +	
  1.4625 +	Modes: GSM/WCDMA */
  1.4626 +		ESecurityCodePin2,
  1.4627 +	/** PIN 1 unblocking code (always 8 digits).
  1.4628 +	
  1.4629 +	Modes: Common */
  1.4630 +		ESecurityCodePuk1,
  1.4631 +	/** PIN 2 unblocking code (always 8 digits)
  1.4632 +	
  1.4633 +	Modes: GSM/WCDMA */
  1.4634 +		ESecurityCodePuk2,
  1.4635 +	/** Password used for Phone-SIM Lock and Phone Device Lock (up to 8 digits) 
  1.4636 +	
  1.4637 +	Modes: Common */
  1.4638 +		ESecurityCodePhonePassword,
  1.4639 +	/** Service Programming Code (SPC)
  1.4640 +	
  1.4641 +	Modes: CDMA */
  1.4642 +		ESecurityCodeSPC,
  1.4643 +	/** Phonebook key to display the hidden entries.
  1.4644 +	
  1.4645 +	Modes: WCDMA */
  1.4646 +		ESecurityHiddenKey,
  1.4647 +	/** USIM Application PIN.
  1.4648 +	
  1.4649 +	Modes: WCDMA */
  1.4650 +		ESecurityUSIMAppPin,
  1.4651 +	/** Second USIM Application PIN.
  1.4652 +	
  1.4653 +	Modes: WCDMA */
  1.4654 +		ESecuritySecondUSIMAppPin,
  1.4655 +	/** Universal PIN.
  1.4656 +	
  1.4657 +	Modes: WCDMA */
  1.4658 +		ESecurityUniversalPin,
  1.4659 +	/** Universal PIN unblocking code (always 8 digits).
  1.4660 +	
  1.4661 +	Modes: Common */
  1.4662 +		ESecurityUniversalPuk
  1.4663 +		};
  1.4664 +
  1.4665 +	IMPORT_C void ChangeSecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType, const TMobilePhonePasswordChangeV1& aChange) const;
  1.4666 +
  1.4667 +	/** Defines the status of a security code.
  1.4668 +
  1.4669 +	@see GetSecurityCodeInfo()
  1.4670 +	@see NotifySecurityCodeInfoChange()
  1.4671 +	@publishedPartner
  1.4672 +	@released
  1.4673 +	*/
  1.4674 +	class TMobilePhoneSecurityCodeInfoV5 : public TMultimodeType
  1.4675 +		{
  1.4676 +	public:
  1.4677 +		IMPORT_C TMobilePhoneSecurityCodeInfoV5();
  1.4678 +	public:
  1.4679 +	/** Number of remaining security code entry attempts before the corresponding lock gets blocked
  1.4680 +	
  1.4681 +	Modes: Common
  1.4682 +	*/
  1.4683 +		TInt iRemainingEntryAttempts;
  1.4684 +		};
  1.4685 +	
  1.4686 +	/** A typedef'd packaged TMobilePhoneSecurityCodeInfoV5 for passing through a generic API
  1.4687 +	function member. */
  1.4688 +	typedef TPckg<TMobilePhoneSecurityCodeInfoV5> TMobilePhoneSecurityCodeInfoV5Pckg;
  1.4689 +	
  1.4690 +	IMPORT_C void GetSecurityCodeInfo(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aSecurityCode, TDes8& aSecurityCodeInfo) const;
  1.4691 +	IMPORT_C void NotifySecurityCodeInfoChange(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode& aSecurityCode, TDes8& aSecurityCodeInfo) const;
  1.4692 +
  1.4693 +/** Notify Security Events.
  1.4694 +
  1.4695 +Modes: Common */
  1.4696 +	enum TMobilePhoneSecurityEvent
  1.4697 +		{
  1.4698 +	/** The phone has detected that there is no ICC present. 
  1.4699 +	
  1.4700 +	Modes: Common */
  1.4701 +		ENoICCFound,
  1.4702 +	/** The phone has detected that the ICC is unusable. 
  1.4703 +	
  1.4704 +	Modes: Common */
  1.4705 +		EICCTerminated,
  1.4706 +	/** The phone requires PIN1 to be entered. 
  1.4707 +	
  1.4708 +	Modes: Common */
  1.4709 +		EPin1Required,
  1.4710 +	/** The phone requires PUK1 to be entered.
  1.4711 +	
  1.4712 +	Modes: Common */
  1.4713 +		EPuk1Required,
  1.4714 +	/** The phone requires PIN2 to be entered.
  1.4715 +	
  1.4716 +	Modes: GSM/WCDMA */
  1.4717 +		EPin2Required,
  1.4718 +	/** The phone requires PUK2 to be entered.
  1.4719 +	
  1.4720 +	Modes: GSM/WCDMA */
  1.4721 +		EPuk2Required,
  1.4722 +	/** The phone requires the Phone Password to be entered. 
  1.4723 +	
  1.4724 +	Modes: Common */
  1.4725 +		EPhonePasswordRequired,
  1.4726 +	/** The phone requires the SPC to be entered. 
  1.4727 +	
  1.4728 +	Modes: CDMA */
  1.4729 +		ESPCRequired,
  1.4730 +	/** The PIN1 verification procedure has passed. 
  1.4731 +	
  1.4732 +	Modes: Common */
  1.4733 +		EPin1Verified,
  1.4734 +	/** The PIN2 verification procedure has passed.
  1.4735 +
  1.4736 +	Modes: GSM/WCDMA */
  1.4737 +		EPin2Verified,
  1.4738 +	/** The PUK1 unblocking procedure has passed.
  1.4739 +	
  1.4740 +	Modes: Common */
  1.4741 +		EPuk1Verified,
  1.4742 +	/** The PUK2 unblocking procedure has passed. 
  1.4743 +	
  1.4744 +	Modes: GSM/WCDMA */
  1.4745 +		EPuk2Verified,
  1.4746 +	/** The Phone Password has been verified. 
  1.4747 +	
  1.4748 +	Modes: Common */
  1.4749 +		EPhonePasswordVerified,
  1.4750 +	/** The SPC verification procedure has passed.
  1.4751 +	
  1.4752 +	Modes: CDMA */
  1.4753 +		ESPCVerified,
  1.4754 +	/** The phone requires the phonebook hidden key to be entered.
  1.4755 +	
  1.4756 +	Modes: WCDMA */
  1.4757 +		EHiddenKeyRequired,
  1.4758 +	/** The phonebook hidden key procedure has passed.
  1.4759 +	
  1.4760 +	Modes: WCDMA */
  1.4761 +		EHiddenKeyVerified,
  1.4762 +	/** The phone requires the currently active USIM Application PIN to be entered.
  1.4763 +	
  1.4764 +	Modes: WCDMA */
  1.4765 +		EUSIMAppPinRequired,
  1.4766 +	/** The currently active USIM Application PIN procedure has passed.
  1.4767 +	
  1.4768 +	Modes: WCDMA */
  1.4769 +		EUSIMAppPinVerified,
  1.4770 +	/** The phone requires the currently active USIM Application second PIN to be entered.
  1.4771 +	
  1.4772 +	Modes: WCDMA */
  1.4773 +		ESecondUSIMAppPinRequired,
  1.4774 +	/** The currently active USIM Application second PIN procedure has passed.
  1.4775 +	
  1.4776 +	Modes: WCDMA */
  1.4777 +		ESecondUSIMAppPinVerified,
  1.4778 +	/** The phone requires the Universal PIN to be entered.
  1.4779 +	
  1.4780 +	Modes: WCDMA */
  1.4781 +		EUniversalPinRequired,
  1.4782 +	/** The currently active Universal PIN procedure has passed.
  1.4783 +	
  1.4784 +	Modes: WCDMA */
  1.4785 +		EUniversalPinVerified,
  1.4786 +	/** The Service Programming Code has been changed.
  1.4787 +	
  1.4788 +	Modes: CDMA */
  1.4789 +		ESPCChanged,
  1.4790 +	/** The phone requires Universal PUK to be entered.
  1.4791 +	
  1.4792 +	Modes: WCDMA */
  1.4793 +		EUniversalPukRequired,
  1.4794 +	/** The Universal PUK unblocking procedure has passed.
  1.4795 +	
  1.4796 +	Modes: WCDMA */
  1.4797 +		EUniversalPukVerified
  1.4798 +		};
  1.4799 +
  1.4800 +	IMPORT_C void NotifySecurityEvent(TRequestStatus& aReqStatus, TMobilePhoneSecurityEvent& aEvent) const;
  1.4801 +
  1.4802 +	// for use by client-side API code and TSY only
  1.4803 +
  1.4804 +	struct TCodeAndUnblockCode
  1.4805 +		{
  1.4806 +		TMobilePassword iCode;
  1.4807 +		TMobilePassword iUnblockCode;
  1.4808 +		};	
  1.4809 +
  1.4810 +	IMPORT_C void VerifySecurityCode(TRequestStatus& aReqStatus, TMobilePhoneSecurityCode aType,
  1.4811 +		const TMobilePassword& aCode, const TMobilePassword& aUnblockCode) const;
  1.4812 +	IMPORT_C TInt AbortSecurityCode(TMobilePhoneSecurityCode aType) const;
  1.4813 +
  1.4814 +	/***********************************************************************************/	
  1.4815 +	// 
  1.4816 +	// MobileMessageWaiting
  1.4817 +	//
  1.4818 +	/***********************************************************************************/
  1.4819 +
  1.4820 +/** Display indicators. */
  1.4821 +	enum TMobilePhoneIndicatorDisplay
  1.4822 +		{
  1.4823 +	/** Display voicemail active. */
  1.4824 +		KDisplayVoicemailActive = 0x01,
  1.4825 +	/** Display fax active. */
  1.4826 +		KDisplayFaxActive = 0x02,
  1.4827 +	/** Display E-mail active. */
  1.4828 +		KDisplayEmailActive = 0x04,
  1.4829 +	/** Display other active. */
  1.4830 +		KDisplayOtherActive = 0x08,
  1.4831 +	/** Display Aux voicemail active. */
  1.4832 +		KDisplayAuxVoicemailActive = 0x10,
  1.4833 +	/** Display data active. */
  1.4834 +		KDisplayDataActive = 0x20,
  1.4835 +	/** Display Videomail active. */
  1.4836 +		KDisplayVideomailActive = 0x40
  1.4837 +		};
  1.4838 +
  1.4839 +	class TMobilePhoneMessageWaitingV1 : public TMultimodeType
  1.4840 +/** Message Waiting Indicators. See 3GPP TS 31 102.
  1.4841 +
  1.4842 +@see GetIccMessageWaitingIndicators()
  1.4843 +@see SetIccMessageWaitingIndicators()
  1.4844 +@see NotifyIccMessageWaitingIndicatorsChange() 
  1.4845 +*/
  1.4846 +		{
  1.4847 +	public:
  1.4848 +		IMPORT_C TMobilePhoneMessageWaitingV1();
  1.4849 +	public:
  1.4850 +	/** The flags for each indicator from TMobilePhoneIndicatorDisplay to specify whether 
  1.4851 +	the indicator should be displayed or not. E.g. Messages of the specified type are waiting.
  1.4852 +
  1.4853 +	Modes: Common */
  1.4854 +		TUint8	iDisplayStatus;
  1.4855 +	/** The number of voicemail messages waiting for the "main" voice line.
  1.4856 +	
  1.4857 +	Modes: Common */
  1.4858 +		TUint8	iVoiceMsgs;
  1.4859 +	/** The number of voicemail messages waiting for the "auxiliary" voice line.
  1.4860 +	
  1.4861 +	Modes: GSM */
  1.4862 +		TUint8	iAuxVoiceMsgs;
  1.4863 +	/** The number of messages waiting for the data line.
  1.4864 +	
  1.4865 +	Modes: Common */
  1.4866 +		TUint8	iDataMsgs;
  1.4867 +	/** The number of messages waiting for the fax line.
  1.4868 +	
  1.4869 +	Modes: Common */
  1.4870 +		TUint8	iFaxMsgs;
  1.4871 +	/** The number of email messages waiting.
  1.4872 +	
  1.4873 +	Modes: WCDMA */
  1.4874 +		TUint8	iEmailMsgs;
  1.4875 +	/** Contains the number of "unspecified" messages waiting.
  1.4876 +	
  1.4877 +	Modes: WCDMA */
  1.4878 +		TUint8	iOtherMsgs;
  1.4879 +		};
  1.4880 +
  1.4881 +/** A typedef'd packaged TMobilePhoneMessageWaitingV1 for passing through a generic 
  1.4882 +API function member. */
  1.4883 +	typedef TPckg<TMobilePhoneMessageWaitingV1> TMobilePhoneMessageWaitingV1Pckg;
  1.4884 +	
  1.4885 +	class TMobilePhoneMessageWaitingV8 : public TMobilePhoneMessageWaitingV1
  1.4886 +/** Message Waiting Indicators. See Section 4.2.63 of 3GPP TS 31 102 V6.18.0 .
  1.4887 +@see GetIccMessageWaitingIndicators()
  1.4888 +@see SetIccMessageWaitingIndicators()
  1.4889 +@see NotifyIccMessageWaitingIndicatorsChange() 
  1.4890 +*/
  1.4891 +		{
  1.4892 +	public:
  1.4893 +		IMPORT_C TMobilePhoneMessageWaitingV8();
  1.4894 +	public:
  1.4895 +	/** 
  1.4896 +	Contains the number of video messages waiting.
  1.4897 +	
  1.4898 +	Modes: Common */
  1.4899 +		TUint8	iVideoMsgs;
  1.4900 +		};
  1.4901 +
  1.4902 +/** A typedef'd packaged TMobilePhoneMessageWaitingV8 for passing through a generic 
  1.4903 +API function member. */
  1.4904 +	typedef TPckg<TMobilePhoneMessageWaitingV8> TMobilePhoneMessageWaitingV8Pckg;
  1.4905 +
  1.4906 +	IMPORT_C void GetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
  1.4907 +	IMPORT_C void SetIccMessageWaitingIndicators(TRequestStatus& aReqStatus, const TDesC8& aMsgIndicators) const;
  1.4908 +	IMPORT_C void NotifyIccMessageWaitingIndicatorsChange(TRequestStatus& aReqStatus, TDes8& aMsgIndicators) const;
  1.4909 +
  1.4910 +	IMPORT_C void NotifyMessageWaiting(TRequestStatus& aReqStatus, TInt& aCount) const;
  1.4911 +
  1.4912 +	/***********************************************************************************/
  1.4913 +	//
  1.4914 +	// Mobile Fixed Dialling Numbers Functional Unit
  1.4915 +	//
  1.4916 +	/***********************************************************************************/
  1.4917 +
  1.4918 +/** Fixed Dialling Numbers Status.
  1.4919 +
  1.4920 +Modes: Common */
  1.4921 +	enum TMobilePhoneFdnStatus
  1.4922 +		{
  1.4923 +	/** Fixed Dialling Number mode is supported but is not currently active. */
  1.4924 +		EFdnNotActive,
  1.4925 +	/** Fixed Dialling Number mode is supported and is currently active. Deactivating 
  1.4926 +	FDN mode is supported. */
  1.4927 +		EFdnActive,
  1.4928 +	/** Fixed Dialling Number mode is supported and is permanently active. Deactivating 
  1.4929 +	FDN mode is NOT supported with this SIM. */
  1.4930 +		EFdnPermanentlyActive,
  1.4931 +	/** Fixed Dialling Number mode is not supported by ME and/or SIM. */
  1.4932 +		EFdnNotSupported,
  1.4933 +	/** ME is currently unable to determine the status of FDN mode. */
  1.4934 +		EFdnUnknown
  1.4935 +		};
  1.4936 +
  1.4937 +	IMPORT_C TInt GetFdnStatus(TMobilePhoneFdnStatus& aFdnStatus) const;
  1.4938 +	IMPORT_C void GetFdnStatus(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
  1.4939 +
  1.4940 +/** Fixed Dialling Numbers Setting
  1.4941 +
  1.4942 +Modes: Common */
  1.4943 +	enum TMobilePhoneFdnSetting
  1.4944 +		{
  1.4945 +	/** Activate the FDN service. */
  1.4946 +		EFdnSetOn,
  1.4947 +	/** Deactivate the FDN service. */
  1.4948 +		EFdnSetOff
  1.4949 +		};
  1.4950 +
  1.4951 +	IMPORT_C void SetFdnSetting(TRequestStatus& aReqStatus, TMobilePhoneFdnSetting aFdnSetting) const;
  1.4952 +	IMPORT_C void NotifyFdnStatusChange(TRequestStatus& aReqStatus, TMobilePhoneFdnStatus& aFdnStatus) const;
  1.4953 +
  1.4954 +	/***********************************************************************************/
  1.4955 +	//
  1.4956 +	// Multicall bearer settings
  1.4957 +	//
  1.4958 +	/***********************************************************************************/
  1.4959 +
  1.4960 +	class TMobilePhoneMulticallSettingsV1 : public TMultimodeType
  1.4961 +/** Multi call settings for version v1.0.
  1.4962 +
  1.4963 +@see GetMulticallParams()
  1.4964 +@see NotifyMulticallParamsChange() 
  1.4965 +@publishedPartner
  1.4966 +@released*/
  1.4967 +		{
  1.4968 +	public:
  1.4969 +		IMPORT_C TMobilePhoneMulticallSettingsV1();
  1.4970 +	public:
  1.4971 +	/** Maximum number of simultaneous CS bearers allowed - defined by the user. 
  1.4972 +	
  1.4973 +	Modes: WCDMA */
  1.4974 +		TInt iUserMaxBearers;
  1.4975 +	/** Maximum number of simultaneous bearers allowed - defined by the service provider.
  1.4976 +	
  1.4977 +	Modes: WCDMA */
  1.4978 +		TInt iServiceProviderMaxBearers;
  1.4979 +	/** Maximum number of simultaneous CS bearers supported by the network.
  1.4980 +	
  1.4981 +	Modes: WCDMA */
  1.4982 +		TInt iNetworkSupportedMaxBearers;
  1.4983 +	/** Maximum number of simultaneous CS bearers supported by the UE.
  1.4984 +	
  1.4985 +	Modes: WCDMA */
  1.4986 +		TInt iUESupportedMaxBearers;
  1.4987 +		};
  1.4988 +
  1.4989 +/** A typedef'd packaged TMobilePhoneMulticallSettingsV1 for passing through a generic 
  1.4990 +API function member. */
  1.4991 +	typedef TPckg<TMobilePhoneMulticallSettingsV1> TMobilePhoneMulticallSettingsV1Pckg;
  1.4992 +
  1.4993 +	IMPORT_C void GetMulticallParams(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
  1.4994 +	IMPORT_C void SetMulticallParams(TRequestStatus& aReqStatus, TInt aUserMaxBearers) const;
  1.4995 +	IMPORT_C void NotifyMulticallParamsChange(TRequestStatus& aReqStatus, TDes8& aMulticallParams) const;
  1.4996 +	
  1.4997 +	enum TMobilePhoneMulticallIndicator
  1.4998 +	/**
  1.4999 +	Indicators for exceeding allowed multiple active bearers.
  1.5000 +	*/
  1.5001 +		{
  1.5002 +		/** The maximum number of multiple active bearers allowed by the service provider has been exceeded. */
  1.5003 +		EBearerNetworProviderExceeded,
  1.5004 +		/** The maximum number of multiple active bearers allowed by the mobile user  has been exceeded. */
  1.5005 +		EBearerUserExceeded
  1.5006 +		};
  1.5007 +		
  1.5008 +	IMPORT_C void NotifyMulticallIndicatorChange(TRequestStatus& aReqStatus, TMobilePhoneMulticallIndicator& aMulticallIndicator) const;
  1.5009 +
  1.5010 +	/***********************************************************************************/
  1.5011 +	//
  1.5012 +	// MobileNextIncomingCall Functional Unit
  1.5013 +	//
  1.5014 +	/***********************************************************************************/
  1.5015 +
  1.5016 +/** Incoming Call Types.
  1.5017 +
  1.5018 +Modes: Common */
  1.5019 +	enum TMobilePhoneIncomingCallType
  1.5020 +		{
  1.5021 +	/** MS will receive any type of incoming call.
  1.5022 +	
  1.5023 +	Modes: Common */
  1.5024 +		EIncomingTypeNotSpecified,
  1.5025 +	/** MS will request voice bearer for incoming calls.
  1.5026 +	
  1.5027 +	Modes: Common */
  1.5028 +		EIncomingVoice,
  1.5029 +	/** MS will request fax bearer for incoming calls 
  1.5030 +	
  1.5031 +	Modes: Common */
  1.5032 +		EIncomingFax,
  1.5033 +	/** MS will request data bearer for incoming calls
  1.5034 +	
  1.5035 +	Modes: Common */
  1.5036 +		EIncomingData,
  1.5037 +	/** MS will request a data bearer for use by a Multimedia CS call (voice fall back 
  1.5038 +	is acceptable) for incoming calls.
  1.5039 +	
  1.5040 +	Modes: GSM/WCDMA */
  1.5041 +		EIncomingMultimediaVoiceFallback,
  1.5042 +	/** MS will request a data bearer for use by a Multimedia CS call (voice fall back 
  1.5043 +	NOT acceptable) for incoming calls 
  1.5044 +	
  1.5045 +	Modes: GSM/WCDMA */
  1.5046 +		EIncomingMultimediaNoFallback,
  1.5047 +	/** The single numbering scheme call mode is alternating voice to fax.
  1.5048 +	
  1.5049 +	Modes: GSM/WCDMA */
  1.5050 +		EIncomingAlternatingVoiceFax,
  1.5051 +	/** The single numbering scheme call mode is alternating voice to data.
  1.5052 +	
  1.5053 +	Modes: GSM */
  1.5054 +		EIncomingAlternatingVoiceData,
  1.5055 +	/** The single numbering scheme call mode is alternating fax to voice.
  1.5056 +	
  1.5057 +	Modes: GSM */
  1.5058 +		EIncomingAlternatingFaxVoice,
  1.5059 +	/** The single numbering scheme call mode is alternating data to voice.
  1.5060 +	
  1.5061 +	Modes: GSM */
  1.5062 +		EIncomingAlternatingDataVoice,
  1.5063 +	/** The single numbering scheme call mode is alternating voice then data.
  1.5064 +	
  1.5065 +	Modes: GSM */
  1.5066 +		EIncomingAlternatingVoiceThenData
  1.5067 +		};
  1.5068 +
  1.5069 +	IMPORT_C void GetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
  1.5070 +	IMPORT_C void SetIncomingCallType(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType aCallType, TDes8& aDataParams) const;
  1.5071 +	IMPORT_C void NotifyIncomingCallTypeChange(TRequestStatus& aReqStatus, TMobilePhoneIncomingCallType& aCallType, TDes8& aDataParams) const;
  1.5072 +
  1.5073 +	/***********************************************************************************/
  1.5074 +	//
  1.5075 +	// User-To-User Signalling Functional Unit
  1.5076 +	//
  1.5077 +	/***********************************************************************************/
  1.5078 +
  1.5079 +/** UUS Settings Requests.
  1.5080 +
  1.5081 +Modes: GSM/WCDMA */
  1.5082 +	enum TMobilePhoneUUSSetting         // UUS settings of the phone
  1.5083 +		{
  1.5084 +	/** UUS is not specified. */
  1.5085 +		EIncomingUUSNotSpecified,
  1.5086 +	/** MS will accept incoming UUS activation request. */
  1.5087 +		EIncomingUUSAccepted,
  1.5088 +	/** MS will reject incoming UUS activation request. */
  1.5089 +		EIncomingUUSRejected
  1.5090 +		};
  1.5091 +
  1.5092 +	IMPORT_C void GetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
  1.5093 +	IMPORT_C void SetUUSSetting(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting aSetting) const;
  1.5094 +	IMPORT_C void NotifyUUSSettingChange(TRequestStatus& aReqStatus, TMobilePhoneUUSSetting& aSetting) const;
  1.5095 +	
  1.5096 +	/***********************************************************************************/
  1.5097 +	//
  1.5098 +	// Mobile Smart Card Applications Functional Unit
  1.5099 +	//
  1.5100 +	/***********************************************************************************/
  1.5101 +	
  1.5102 +	
  1.5103 +	enum { KSmartCardApplicationLabelMaxSize=32 };
  1.5104 +	
  1.5105 +	/** Smart card application info version v5.0. 
  1.5106 +	Modes: Common
  1.5107 +
  1.5108 +	@see GetSmartCardApplicationInfo()
  1.5109 +	@publishedPartner
  1.5110 +	@released
  1.5111 +	*/
  1.5112 +	class TSmartCardApplicationInfoV5 : public TMultimodeType
  1.5113 +		{
  1.5114 +	public:
  1.5115 +		IMPORT_C TSmartCardApplicationInfoV5();
  1.5116 +	public:
  1.5117 +		/** 
  1.5118 +		Smart card application identifier.
  1.5119 +		*/
  1.5120 +		TAID iAID;
  1.5121 +		/** 
  1.5122 +		Smart card application label. 16 bit USC2 characters string provided by the application 
  1.5123 +		provider to be shown to the user for information, e.g. operator name. It is 
  1.5124 +		recommended by ETSI/3GPP spec that the application label does not exceed 32 
  1.5125 +		bytes.
  1.5126 +		
  1.5127 +		The application label is optional. If no label is provided, the buffer should 
  1.5128 +		be NULL.
  1.5129 +		 */
  1.5130 +		TBuf8<KSmartCardApplicationLabelMaxSize> iLabel;
  1.5131 +		};
  1.5132 +
  1.5133 +	/**
  1.5134 +	A typedef'd packaged TSmartCardApplicationInfoV5 for passing through a generic API 
  1.5135 +	function member. 
  1.5136 +	*/	
  1.5137 +	typedef TPckg<TSmartCardApplicationInfoV5> TSmartCardApplicationInfoV5Pckg;
  1.5138 +
  1.5139 +	/**
  1.5140 +	Specifies the max length of the buffer used to retrieve the smart
  1.5141 +	card application's supported EAP method list.  Value 255 since EAP
  1.5142 +	type list length fits into one byte (see table 5.1 of ETSI TS
  1.5143 +	102.310 v6.2.0).
  1.5144 +
  1.5145 +	@see RMobilePhone::GetSmartCardApplicationInfo()
  1.5146 +	@see RMobilePhone::TUiccApplicationEapInfoV6::iEapTypeList
  1.5147 +	*/
  1.5148 +	enum { KEapSupportedTypeListSize = 255 };
  1.5149 +
  1.5150 +	/**
  1.5151 +	UICC application info version v6.0.  Is a
  1.5152 +	TSmartCardApplicationInfoV5 object, but has an additional buffer
  1.5153 +	(iEapTypeList) for retrieving a list supported EAP methods on the
  1.5154 +	application.
  1.5155 +
  1.5156 +	Modes: GSM/WCDMA
  1.5157 +
  1.5158 +	@see RMobilePhone::GetSmartCardApplicationInfo()
  1.5159 +	@publishedPartner
  1.5160 +	@released
  1.5161 +	*/
  1.5162 +	class TUiccApplicationEapInfoV6 : public TSmartCardApplicationInfoV5
  1.5163 +		{
  1.5164 +	public:
  1.5165 +		IMPORT_C TUiccApplicationEapInfoV6();
  1.5166 +
  1.5167 +	public:
  1.5168 +		/**
  1.5169 +		Application EAP support type list, defining the EAP methods
  1.5170 +		supported by the UICC application (see RFC 3748 and
  1.5171 +		http://www.iana.org/assignments/eap-numbers).
  1.5172 +		
  1.5173 +		As reference, also worth seeing section 5.2 of ETSI TS 102.310
  1.5174 +		v6.2.0 and section 6.2 of RFC3748.
  1.5175 +
  1.5176 +		@see KETelSmartCardEapTypeMD5
  1.5177 +		@see KETelSmartCardEapTypeTLS
  1.5178 +		@see KETelSmartCardEapTypeSIM
  1.5179 +		@see KETelSmartCardEapTypeAKA
  1.5180 +		@see KETelSmartCardEapTypeTTLS
  1.5181 +		*/
  1.5182 +		TBuf8<KEapSupportedTypeListSize> iEapTypeList;	
  1.5183 +		};
  1.5184 +
  1.5185 +	/**
  1.5186 +	A typedef'd packaged TEapUiccApplicationInfoV6 for passing through
  1.5187 +	a generic API function member.
  1.5188 +
  1.5189 +	@see RMobilePhone::GetSmartCardApplicationInfo()
  1.5190 +	*/	
  1.5191 +	typedef TPckg<TUiccApplicationEapInfoV6> TUiccApplicationEapInfoV6Pckg;
  1.5192 +
  1.5193 +	/**
  1.5194 +	Smart card application notification events
  1.5195 +	
  1.5196 +	Modes: Common
  1.5197 +	*/	
  1.5198 +	enum TSmartCardApplicationEvent
  1.5199 +		{
  1.5200 +		/**
  1.5201 +		Smart card application has been installed.
  1.5202 +		*/
  1.5203 +		EScApplicationInstalled,
  1.5204 +		/**
  1.5205 +		Smart card application has been removed.
  1.5206 +		*/
  1.5207 +		EScApplicationRemoved,
  1.5208 +		/**
  1.5209 +		Smart card application has been activated.
  1.5210 +		*/
  1.5211 +		EScApplicationActivated,
  1.5212 +		/**
  1.5213 +		Smart card application has been terminated.
  1.5214 +		*/
  1.5215 +		EScApplicationTerminated
  1.5216 +		};
  1.5217 +
  1.5218 +	/**
  1.5219 +	Smart card application status.
  1.5220 +
  1.5221 +	Modes: Common
  1.5222 +	*/
  1.5223 +	enum TSmartCardApplicationAction
  1.5224 +		{
  1.5225 +		/**
  1.5226 +		Smart card application will be activated.
  1.5227 +		*/
  1.5228 +		EScApplicationActivate,
  1.5229 +		/** 
  1.5230 +		Smart card application will be terminated.
  1.5231 +		*/
  1.5232 +		EScTerminate
  1.5233 +		};
  1.5234 +
  1.5235 +	/**
  1.5236 +	Smart card application file types. For definitions see TS 102.221.
  1.5237 +	
  1.5238 +	Modes: Common
  1.5239 +	*/		
  1.5240 +	enum TScFileType
  1.5241 +		{
  1.5242 +		/**
  1.5243 +		Smart card file type is unknown.
  1.5244 +		*/
  1.5245 +		EUnknown,
  1.5246 +		/**
  1.5247 +		Smart card file type is linear fixed. 
  1.5248 +		
  1.5249 +		This is a record-based file.
  1.5250 +		*/
  1.5251 +		ELinearFixed,
  1.5252 +		/**
  1.5253 +		Smart card file type is cyclic. 
  1.5254 +		
  1.5255 +		This is a record-based file.
  1.5256 +		*/
  1.5257 +		ECyclic,
  1.5258 +		/**
  1.5259 +		Smart card file type is transparent. 
  1.5260 +		
  1.5261 +		This is a binary file.
  1.5262 +		*/
  1.5263 +		ETransparent
  1.5264 +		};
  1.5265 +
  1.5266 +	/**
  1.5267 +	Typedef to hold a 2-byte file identifier.
  1.5268 +	*/
  1.5269 +	typedef TUint16 TScFileID;
  1.5270 +
  1.5271 +	/** Smart card application file info version v5.0.
  1.5272 +	Modes: Common
  1.5273 +
  1.5274 +	@see GetScFileInfo()
  1.5275 +	@publishedPartner
  1.5276 +	@released
  1.5277 +	*/
  1.5278 +	class TScFileInfoV5 : public TMultimodeType
  1.5279 +		{
  1.5280 +	public:
  1.5281 +		IMPORT_C TScFileInfoV5();
  1.5282 +	public:
  1.5283 +		/**
  1.5284 +		Smart card file identifier.
  1.5285 +		*/
  1.5286 +		TScFileID iFileID;
  1.5287 +		/**
  1.5288 +		The type of the smart card file. Options are
  1.5289 +		Linear Fixed, Cyclic or Transparent.
  1.5290 +		*/
  1.5291 +		TScFileType iType;
  1.5292 +		/**
  1.5293 +		Total length of the file.  As specified in TS 102.221 the maximum length of an EF is 0xFFF bytes.
  1.5294 +		*/
  1.5295 +		TInt iTotalLength;
  1.5296 +		/**
  1.5297 +		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.
  1.5298 +		If file type is ETransparent then this value is unused and will be set to 0. 
  1.5299 +		
  1.5300 +		From TS 102.221 the maximum length of a record in an EF is 255 bytes.
  1.5301 +		*/
  1.5302 +		TInt iRecordLength;
  1.5303 +		/**
  1.5304 +		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.
  1.5305 +		If file type is ETransparent then this value is unused and will be set to 0. 
  1.5306 +		
  1.5307 +		From TS 102.221 the maximum number of records in an EF is 254.
  1.5308 +		*/
  1.5309 +		TInt iNumberRecords;
  1.5310 +		};
  1.5311 +	
  1.5312 +	
  1.5313 +	/** A typedef'd packaged TScFileInfoV5 for passing through a generic API 
  1.5314 +	function member. 
  1.5315 +	*/
  1.5316 +	typedef TPckg<TScFileInfoV5> TScFileInfoV5Pckg;
  1.5317 +	
  1.5318 +	/**
  1.5319 +	This based on the maximum number of bytes in a command PDU 
  1.5320 +	as defined in TS 102.221 however the actual path string is very unlikely to ever be this big.
  1.5321 +	
  1.5322 +	Modes: Common
  1.5323 +	*/
  1.5324 +	enum{ KMaxScFilePathLength = 256};
  1.5325 +	
  1.5326 +	/**
  1.5327 +	A typedef'd buffer to hold the path to an EF file.  
  1.5328 +	*/
  1.5329 +	typedef TBuf8<KMaxScFilePathLength> TScFilePathReference;
  1.5330 +	
  1.5331 +	
  1.5332 +	 /** 
  1.5333 +	 Class that holds a smart card applications AID and associated file path string.
  1.5334 +
  1.5335 +	 Modes: Common
  1.5336 +
  1.5337 +	 @see GetScFileInfo()
  1.5338 +	 @publishedPartner
  1.5339 +	 @released
  1.5340 +	 */
  1.5341 +	 class TScFilePath
  1.5342 +		{
  1.5343 +	 public:
  1.5344 +		IMPORT_C TScFilePath();
  1.5345 +     public:
  1.5346 +     	/** 
  1.5347 +     	AID of application. This may be empty implying the iPath is a path reference starting at the master file (MF).
  1.5348 +     	*/
  1.5349 +		TAID iAID;
  1.5350 +		/**
  1.5351 +		Full path reference to file.  
  1.5352 +		
  1.5353 +		The iPath must define the file path using full path referencing. This is because the client does not know 
  1.5354 +		what is the currently selected EF or DF and it is therefore necessary to select the file by full
  1.5355 +		path referencing from the master file.  
  1.5356 +		
  1.5357 +		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.
  1.5358 +		E.g. To reference the EF_DIR - iAID would be empty and iPath would be set to "2F00".
  1.5359 +		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".
  1.5360 +		
  1.5361 +		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,
  1.5362 +		In this situation the path reference may start with the implicit FID of the application DF (7FFF).  
  1.5363 +		E.g.  The path to reference to the EF_SMS file in a USIM application using implicit ADF FID would 
  1.5364 +		be "7FFF6F3C".
  1.5365 +		
  1.5366 +		See TS102.221 section 8.4.2 for more information.  
  1.5367 +		*/
  1.5368 +		TScFilePathReference iPath;
  1.5369 +		};
  1.5370 +		
  1.5371 +	/** Smart card application file identifier and access offsets.  This class is used to identify a file and the 
  1.5372 +	location in a file to either read or write. Inherits attributes from TScFilePath which provide the 
  1.5373 +	parent AID and full path reference.
  1.5374 +	
  1.5375 +	Modes: Common
  1.5376 +
  1.5377 +	@see TScFilePath
  1.5378 +	@see ReadScFile()
  1.5379 +	@see UpdateScFile()
  1.5380 +	@publishedPartner
  1.5381 +	@released
  1.5382 +	*/
  1.5383 +	class TScFilePathWithAccessOffsets : public TScFilePath
  1.5384 +		{
  1.5385 +	public:
  1.5386 +		IMPORT_C TScFilePathWithAccessOffsets();
  1.5387 +	public:
  1.5388 +		/**
  1.5389 +		The type of the smart card file. Options are
  1.5390 +		Linear Fixed, Cyclic or Transparent.
  1.5391 +		*/
  1.5392 +		TScFileType iType;
  1.5393 +		/**
  1.5394 +		If file type is ELinearFixed or ECyclic then this is the starting record index to read or update.
  1.5395 +		This must be less than the number of records in the file.
  1.5396 +
  1.5397 +		If file type is ETransparent then this is the offset (in bytes) from the start of the transparent file to read or update.
  1.5398 +		This must be less than the total file size.
  1.5399 +		*/
  1.5400 +		TUint iStartOffset;
  1.5401 +		/**
  1.5402 +		If the file type is ELinearFixed or ECyclic then this is unused.
  1.5403 +		NOTE: A call to ReadScFile or UpdateScFile for a record based file type will only read or update
  1.5404 +		one record as described in TS 102.221 READ RECORD and UPDATE RECORD.
  1.5405 +
  1.5406 +		If file type is ETransparent then this is the number of bytes to read or update.
  1.5407 +		*/
  1.5408 +		TUint iCount;
  1.5409 +		};
  1.5410 +
  1.5411 +	IMPORT_C void EnumerateSmartCardApplications(TRequestStatus& aReqStatus, TUint& aCount) const;
  1.5412 +	IMPORT_C void GetSmartCardApplicationInfo(TRequestStatus& aReqStatus, TUint aAppIndex, TDes8& aInfo) const;
  1.5413 +	IMPORT_C void NotifySmartCardApplicationInfoChange(TRequestStatus& aReqStatus, TAID& aAID, TSmartCardApplicationEvent& aEvent) const;
  1.5414 +	IMPORT_C void SetSmartCardApplicationStatus(TRequestStatus& aReqStatus, const TAID& aAID, TSmartCardApplicationAction aAppAction) const;
  1.5415 +	IMPORT_C void GetScFileInfo(TRequestStatus& aReqStatus, const TScFilePath& aFilePathId, TDes8& aInfo) const;
  1.5416 +	IMPORT_C void ReadScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aReadBuffer) const;
  1.5417 +	IMPORT_C void UpdateScFile(TRequestStatus& aReqStatus, const TScFilePathWithAccessOffsets& aFilePathOffsets, TDes8& aUpdateBuffer) const;
  1.5418 +	
  1.5419 +	/***********************************************************************************/
  1.5420 +	//
  1.5421 +	// Mobile USIM Applications Functional Unit
  1.5422 +	//
  1.5423 +	/***********************************************************************************/
  1.5424 +
  1.5425 +	enum { KUSimApplicationLabelMaxSize=32 };
  1.5426 +
  1.5427 +	IMPORT_C void EnumerateUSimApplications(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1
  1.5428 +
  1.5429 +	class TUSimApplicationInfoV2 : public TMultimodeType
  1.5430 +	/** USIM application information for version v2.0. 
  1.5431 +		
  1.5432 +	@deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead.
  1.5433 +	*/
  1.5434 +		{
  1.5435 +	public:
  1.5436 +		IMPORT_C TUSimApplicationInfoV2();
  1.5437 +	public:
  1.5438 +	/** USIM Application identifier.
  1.5439 +
  1.5440 +	Modes: WCDMA */
  1.5441 +		TAID								iAID;
  1.5442 +	/** USIM Application label. 16 bit USC2 characters string provided by the application 
  1.5443 +	provider to be shown to the user for information, e.g. operator name. It is 
  1.5444 +	recommended by ETSI/3GPP spec that the application label does not exceed 32 
  1.5445 +	bytes.
  1.5446 +	
  1.5447 +	The application label is optional. If no label is provided, the buffer should 
  1.5448 +	be NULL.
  1.5449 +	
  1.5450 +	Modes: WCDMA */
  1.5451 +		TBuf8<KUSimApplicationLabelMaxSize> iLabel; 
  1.5452 +	};
  1.5453 +
  1.5454 +	/** A typedef'd packaged TUSimApplicationInfoV2 for passing through a generic API 
  1.5455 +	function member. 
  1.5456 +
  1.5457 +	@deprecated 9.1 Use @see TSmartCardApplicationInfoV5 instead.
  1.5458 +	*/
  1.5459 +	typedef TPckg<TUSimApplicationInfoV2> TUSimApplicationInfoV2Pckg;
  1.5460 +
  1.5461 +	IMPORT_C void GetUSimApplicationInfo(TRequestStatus& aReqStatus, TInt aUSimAppIndex, TDes8& aInfo) const; //deprecated 9.1
  1.5462 +	IMPORT_C void NotifyUSimApplicationsInfoChange(TRequestStatus& aReqStatus, TInt& aCount, TAID& aActiveAID) const; //deprecated 9.1
  1.5463 +
  1.5464 +	/** USIM Application Status.
  1.5465 +
  1.5466 +	Modes: WCDMA 
  1.5467 +
  1.5468 +	@deprecated 9.1 Use @see TSmartCardApplicationAction instead.
  1.5469 +	*/
  1.5470 +	enum TUSimAppAction
  1.5471 +		{
  1.5472 +	/** USIM application will be activated.
  1.5473 +	
  1.5474 +	Modes: WCDMA */
  1.5475 +		EUSimActivate,
  1.5476 +	/** USIM application will be terminated.
  1.5477 +	
  1.5478 +	Modes: WCDMA */
  1.5479 +		EUSimTerminate
  1.5480 +		};
  1.5481 +
  1.5482 +	IMPORT_C void SetUSimApplicationStatus(TRequestStatus& aReqStatus, const TAID aAID, TUSimAppAction aUsimAppAction) const; //deprecated 9.1
  1.5483 +
  1.5484 +	/** USIM Application selection mode.
  1.5485 +
  1.5486 +	Mode: WCDMA */
  1.5487 +	enum TUSimSelectionMode
  1.5488 +		{
  1.5489 +	/** USIM application is selected automatically by phone.
  1.5490 +	
  1.5491 +	Mode: WCDMA */
  1.5492 +		EUSimSelectionAutomatic,
  1.5493 +	/** USIM application is selected manually by user.
  1.5494 +	
  1.5495 +	Mode: WCDMA */
  1.5496 +		EUSimSelectionManual
  1.5497 +		};
  1.5498 +
  1.5499 +	IMPORT_C TInt SetUSimAppsSelectionMode(TUSimSelectionMode aUSimSelectionMode) const;
  1.5500 +	IMPORT_C TInt GetUSimAppsSelectionMode(TUSimSelectionMode& aUSimSelectionMode) const;
  1.5501 +	IMPORT_C void NotifyUSimAppsSelectionModeChange(TRequestStatus& aReqStatus, TUSimSelectionMode& aUSimSelectionMode) const;
  1.5502 +	IMPORT_C void GetCurrentActiveUSimApplication(TRequestStatus& aReqStatus, TAID& aAID) const;
  1.5503 +
  1.5504 +	/***********************************************************************************/
  1.5505 +	//
  1.5506 +	// Mobile MMS Functional Unit
  1.5507 +	// 
  1.5508 +	/***********************************************************************************/
  1.5509 +	
  1.5510 +	/** max size of MMS notification buffer. */
  1.5511 +	
  1.5512 +	enum{KMaxMmsNotification = 253};
  1.5513 +	
  1.5514 +	/**
  1.5515 +	Identifies current status of MMS.
  1.5516 +	*/
  1.5517 +	enum TMmsStatus
  1.5518 +		{
  1.5519 +		/**
  1.5520 +		The MMS has not been retrieved.
  1.5521 +		*/
  1.5522 +		EMmsNotRetrieved,
  1.5523 +		/**
  1.5524 +	    The MMS has been retrieved.
  1.5525 +	    */
  1.5526 +		EMmsRetrieved,
  1.5527 +		/**
  1.5528 +		The MMS has been rejected.
  1.5529 +		*/
  1.5530 +		EMmsRejected,
  1.5531 +		/**
  1.5532 +		The MMS has been forwarded.
  1.5533 +		*/
  1.5534 +		EMmsforwarded
  1.5535 +		};
  1.5536 +
  1.5537 +	/** 
  1.5538 +	MMS Implementation.
  1.5539 +	*/
  1.5540 +	enum TMmsImplementation
  1.5541 +		{
  1.5542 +		/**
  1.5543 +		Unknown implementation for MMS.
  1.5544 +		*/
  1.5545 +		KMmsImplUnknwown=0x00,
  1.5546 +		/**
  1.5547 +		Wap implementation for MMS.
  1.5548 +		*/
  1.5549 +		KWapImplementation=0x01
  1.5550 +		};
  1.5551 +	
  1.5552 +	/**
  1.5553 +	MMS Connectivity settings.
  1.5554 +	*/
  1.5555 +	enum TMmsConnParams
  1.5556 +		{
  1.5557 +		/**
  1.5558 +		MMS User Preferences.
  1.5559 +		*/
  1.5560 +		EUserPreferences,
  1.5561 +		/**
  1.5562 +		MMS Issuer Connectivity Parameters.
  1.5563 +		*/
  1.5564 +		EIssuerConnParams,
  1.5565 +		/**
  1.5566 +		MMS User Connectivity Parameters.
  1.5567 +		*/
  1.5568 +		EUserConnParams
  1.5569 +		};
  1.5570 +
  1.5571 +	/**
  1.5572 +	MMS field Id tags.
  1.5573 +	*/
  1.5574 +	enum TMobileMMSFieldTags
  1.5575 +		{
  1.5576 +		/**
  1.5577 +		Tag id for MMS connectivity parameters.
  1.5578 +		*/
  1.5579 +		ETagMmsConnParams=0xAB,
  1.5580 +		/**
  1.5581 +		Tag id for MMS Implementation.
  1.5582 +		*/
  1.5583 +		ETagMmsImpl=0x80,
  1.5584 +		/**
  1.5585 +		Tag id for MMS Relay/Server.
  1.5586 +		*/
  1.5587 +		ETagMmsServer=0x81,
  1.5588 +		/**
  1.5589 +		Tag id for Interface to Core Network and Bearer.
  1.5590 +		*/
  1.5591 +		ETagMmsBearerIE=0x82,
  1.5592 +		/**
  1.5593 +		Tag id for Gateway.
  1.5594 +		*/
  1.5595 +		ETagMmsGateway=0x83 	  
  1.5596 +		};
  1.5597 +		
  1.5598 +	class TMmsNotificationV3 : public TMultimodeType
  1.5599 +	/**
  1.5600 +	Class containing MMS notification paramters.
  1.5601 +	*/
  1.5602 +		{
  1.5603 +		public :
  1.5604 +			IMPORT_C TMmsNotificationV3();
  1.5605 +		public :
  1.5606 +			/**
  1.5607 +			Free/Used space.
  1.5608 +			*/
  1.5609 +			TBool iSpace;
  1.5610 +			/**
  1.5611 +			Notification read/not read.
  1.5612 +			*/
  1.5613 +			TBool iNotification;
  1.5614 +			/**
  1.5615 +			MMS status.
  1.5616 +			*/
  1.5617 +			TMmsStatus iMmsStatus;
  1.5618 +			/**
  1.5619 +			MMS implementation.
  1.5620 +			*/
  1.5621 +			TMmsImplementation iImplementation;
  1.5622 +			/**
  1.5623 +			MMS notification buffer.
  1.5624 +			*/
  1.5625 +			TBuf8<KMaxMmsNotification> iNotify;
  1.5626 +		};
  1.5627 +	
  1.5628 +	typedef TPckg<TMmsNotificationV3> TMmsNotificationV3Pckg;
  1.5629 +
  1.5630 +	//	MMS notification 	
  1.5631 +	IMPORT_C void NotifyMmsUpdate(TRequestStatus& aReqStatus, TDes8& aNotification) const;
  1.5632 +	IMPORT_C void SetMmsUserConnParams(TRequestStatus& aReqStatus, TDes8& aConnectivity) const;
  1.5633 +	IMPORT_C void SetMmsUserPreferences(TRequestStatus& aReqStatus, TDes8& aPreferences) const;
  1.5634 +	IMPORT_C void GetMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const;
  1.5635 +	IMPORT_C void NotifyMmsConfig(TRequestStatus& aReqStatus, const TMmsConnParams aType, TDes8& aConnectivity) const;
  1.5636 +	
  1.5637 +	/***********************************************************************************/
  1.5638 +	//
  1.5639 +	// Mobile MailBox Numbers Functional Unit 
  1.5640 +	// 
  1.5641 +	/***********************************************************************************/
  1.5642 +
  1.5643 +	class TMobilePhoneVoicemailIdsV3 : public TMultimodeType
  1.5644 +	/**
  1.5645 +	Contains mailbox numbers.
  1.5646 +	*/
  1.5647 +		{
  1.5648 +		public :
  1.5649 +			IMPORT_C TMobilePhoneVoicemailIdsV3();
  1.5650 +		public :
  1.5651 +			/**
  1.5652 +			Phonebook entry for "voicemail" mailbox number.
  1.5653 +			*/
  1.5654 +			TUint8	iVoice;
  1.5655 +			/** 
  1.5656 +			Phonebook entry for "data" mailbox number.
  1.5657 +			*/
  1.5658 +			TUint8	iData;
  1.5659 +			/**
  1.5660 +			Phonebook entry for "fax" mailbox number.
  1.5661 +			*/
  1.5662 +			TUint8	iFax;
  1.5663 +			/**
  1.5664 +			Phonebook entry for "other" mailbox number.
  1.5665 +			*/
  1.5666 +			TUint8	iOther;
  1.5667 +		};
  1.5668 +
  1.5669 +/** A typedef'd packaged TMobilePhoneVoicemailIdsV3 for passing through a generic 
  1.5670 +	API function member. */
  1.5671 +	typedef TPckg<TMobilePhoneVoicemailIdsV3> TMobilePhoneVoicemailIdsV3Pckg;
  1.5672 +
  1.5673 +	class TMobilePhoneVoicemailIdsV8 : public TMobilePhoneVoicemailIdsV3
  1.5674 +	/**
  1.5675 +	Contains mailbox numbers see section 4.2.62 of 3GPP TS 31.102 V6.18.0.
  1.5676 +	*/
  1.5677 +		{
  1.5678 +		public :
  1.5679 +			IMPORT_C TMobilePhoneVoicemailIdsV8();
  1.5680 +		public :
  1.5681 +			/**
  1.5682 +			Phonebook entry for "videomail" mailbox number.
  1.5683 +			*/
  1.5684 +			TUint8	 iVideo;
  1.5685 +		};
  1.5686 +		
  1.5687 +	/** A typedef'd packaged TMobilePhoneVoicemailIdsV8 for passing through a generic 
  1.5688 +	API function member. */
  1.5689 +	typedef TPckg<TMobilePhoneVoicemailIdsV8> TMobilePhoneVoicemailIdsV8Pckg;
  1.5690 +
  1.5691 +	IMPORT_C void GetMailboxNumbers(TRequestStatus& aReqStatus, TDes8& aMailBox) const;
  1.5692 +	IMPORT_C void NotifyMailboxNumbersChange(TRequestStatus& aReqStatus, TDes8& aMailBox) const;
  1.5693 +
  1.5694 +	/***********************************************************************************/
  1.5695 +	//
  1.5696 +	// Mobile APN Control List Functional Unit
  1.5697 +	// 
  1.5698 +	/***********************************************************************************/	
  1.5699 +	
  1.5700 +	enum { KMaxApnName = 100 };
  1.5701 +	
  1.5702 +	class TAPNEntryV3 : public TMultimodeType
  1.5703 +	/**
  1.5704 +	Contains parameters for an Access Point Name (APN) entry contained 
  1.5705 +	within the Access Control List EFacl file in the UICC.
  1.5706 +	*/
  1.5707 +		{
  1.5708 +	public:
  1.5709 +		IMPORT_C TAPNEntryV3();
  1.5710 +	public:
  1.5711 +		/**
  1.5712 +		GGSN DNS name.
  1.5713 +		*/
  1.5714 +		TBuf8<KMaxApnName> iApn;		
  1.5715 +		};
  1.5716 +		
  1.5717 +	typedef TPckg<TAPNEntryV3> TAPNEntryV3Pckg;
  1.5718 +	
  1.5719 +	IMPORT_C void EnumerateAPNEntries(TRequestStatus& aReqStatus, TUint32 &aIndex) const;
  1.5720 +	IMPORT_C void GetAPNname(TRequestStatus& aReqStatus, const TUint32 aIndex, TDes8& aAPN) const;
  1.5721 +	IMPORT_C void AppendAPNName(TRequestStatus& aReqStatus, const TDes8& aAPN) const;
  1.5722 +	IMPORT_C void DeleteAPNName(TRequestStatus& aReqStatus, TUint32 aIndex) const; 
  1.5723 +	IMPORT_C void NotifyAPNListChanged(TRequestStatus& aReqStatus) const;
  1.5724 +
  1.5725 +	enum TAPNControlListServiceStatus {
  1.5726 +		/**
  1.5727 +		The APN control list service is disabled.
  1.5728 +		*/
  1.5729 +		EAPNControlListServiceDisabled,
  1.5730 +		/**
  1.5731 +		The APN control list service is enabled.
  1.5732 +		*/
  1.5733 +		EAPNControlListServiceEnabled
  1.5734 +	};
  1.5735 +
  1.5736 +	IMPORT_C void SetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus aAPNControlListServiceStatus) const;
  1.5737 +	IMPORT_C void GetAPNControlListServiceStatus(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const;
  1.5738 +	IMPORT_C void NotifyAPNControlListServiceStatusChange(TRequestStatus& aReqStatus, TAPNControlListServiceStatus& aAPNControlListServiceStatus) const;
  1.5739 +
  1.5740 +	/***********************************************************************************/
  1.5741 +	//
  1.5742 +	// Retrieve Total Air Time Duration Functional Unit
  1.5743 +	//
  1.5744 +	/***********************************************************************************/
  1.5745 +	IMPORT_C TInt GetAirTimeDuration(TTimeIntervalSeconds& aTime) const;
  1.5746 +	IMPORT_C void NotifyAirTimeDurationChange(TRequestStatus& aReqStatus,TTimeIntervalSeconds& aTime) const;
  1.5747 +	/***********************************************************************************/
  1.5748 +	//
  1.5749 +	// Terminate All Calls
  1.5750 +	//
  1.5751 +	/***********************************************************************************/
  1.5752 +	IMPORT_C void TerminateAllCalls(TRequestStatus& aReqStatus) const;
  1.5753 +	
  1.5754 +	/***********************************************************************************/
  1.5755 +	//
  1.5756 +	// Auto Redial Functional Unit
  1.5757 +	//
  1.5758 +	/***********************************************************************************/
  1.5759 +	IMPORT_C void ClearBlacklist(TRequestStatus& aReqStatus) const;
  1.5760 +
  1.5761 +	/***********************************************************************************/
  1.5762 +	//
  1.5763 +	// Mobile Personalisation Functional Unit
  1.5764 +	//
  1.5765 +	/***********************************************************************************/
  1.5766 +	
  1.5767 +	/**
  1.5768 +	Indentifies the personalisation scheme capabilities of the UICC/ME.
  1.5769 +	*/
  1.5770 +	enum TMobilePhonePersonalisationCaps
  1.5771 +		{
  1.5772 +		/**
  1.5773 +		UICC/ME personalisation based on network (MCC, MNC) information is possible.
  1.5774 +		*/
  1.5775 +		KCapsPersonalisedNetwork=0x01,
  1.5776 +		/**
  1.5777 +		UICC/ME personalisation based on network (MCC, MNC, IMSI network code group) information is possible.
  1.5778 +		*/
  1.5779 +		KCapsPersonalisedNetworkSub=0x02,
  1.5780 +		/**
  1.5781 +		UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFCNL) information is possible.
  1.5782 +		*/
  1.5783 +		KCapsPersonalisedServiceProvider=0x04,
  1.5784 +		/**
  1.5785 +		UICC/ME personalisation based on network (MCC, MNC, EFGID1, EFGID2, EFCNL) information is possible.
  1.5786 +		*/
  1.5787 +		KCapsPersonalisedCorporate=0x08,
  1.5788 +		/**
  1.5789 +		UICC/ME personalisation based on (IMSI SIM/USIM code group) information is possible.
  1.5790 +		*/
  1.5791 +		KCapsPersonalisedUSim=0x10
  1.5792 +		};
  1.5793 +		
  1.5794 +	/**
  1.5795 +	Identifies the current personalisation schemes that are active. 
  1.5796 +	*/
  1.5797 +	enum TMobilePhonePersonalisationScheme
  1.5798 +		{
  1.5799 +		/**
  1.5800 +		The ME is personalised under the network scheme.
  1.5801 +		*/
  1.5802 +		KPersonalisedNetwork=0x01,
  1.5803 +		/**
  1.5804 +		The ME is personalised under the network sub scheme.
  1.5805 +		*/
  1.5806 +		KPersonalisedNetworkSub=0x02,
  1.5807 +		/**
  1.5808 +		The ME is personalised under the service provider scheme.
  1.5809 +		*/
  1.5810 +		KPersonalisedServiceProvider=0x04,
  1.5811 +		/**
  1.5812 +		The ME is personalised under the corprorate scheme.
  1.5813 +		*/
  1.5814 +		KPersonalisedCorporate=0x08,
  1.5815 +		/**
  1.5816 +		The ME is personalised under the  SIM/USIM scheme.
  1.5817 +		*/
  1.5818 +		KPersonalisedUSim=0x10	
  1.5819 +		};
  1.5820 +
  1.5821 +	/**
  1.5822 +	Identifies the personalisation scheme to be set.
  1.5823 +	*/
  1.5824 +	enum TMobilePhonePersonalisation
  1.5825 +		{
  1.5826 +		/**
  1.5827 +		Personalise the ME using the network scheme.
  1.5828 +		*/
  1.5829 +		EPersonaliseNetwork,
  1.5830 +		/**
  1.5831 +		Personalise the ME using the network sub scheme.
  1.5832 +		*/
  1.5833 +		EPersonaliseNetworkSub,
  1.5834 +		/**
  1.5835 +		Personalise the ME using the service provider scheme.
  1.5836 +		*/
  1.5837 +		EPersonaliseServiceProvider,
  1.5838 +		/**
  1.5839 +		Personalise the ME using the corporate scheme.
  1.5840 +		*/
  1.5841 +		EPersonaliseCorporate,
  1.5842 +		/**
  1.5843 +		Personalise the ME using the SIM/USIM scheme.
  1.5844 +		*/
  1.5845 +		EPersonaliseUsim
  1.5846 +		};
  1.5847 +		
  1.5848 +	IMPORT_C TInt GetPersonalisationCaps(TUint32& aCaps) const;
  1.5849 +	IMPORT_C void GetPersonalisationStatus(TRequestStatus& aReqStatus, TUint32& aPersSchemes) const;
  1.5850 +	IMPORT_C void SetPersonalisationStatus(TRequestStatus& aReqStatus, const TMobilePhonePersonalisation aPersSchemes, const TDes& aPersCode) const;
  1.5851 +	
  1.5852 +	/***********************************************************************************/
  1.5853 +	//
  1.5854 +	// Etel 3rd Party v1.0 Parameter classes
  1.5855 +	//
  1.5856 +	/***********************************************************************************/
  1.5857 +	
  1.5858 +	class TEtel3rdPartyMobileNetworkInfoV1 : public TMultimodeType
  1.5859 +	/**
  1.5860 +	Defines the parameters used to set-up of a call originated from an ETel 3rd Party client.
  1.5861 +
  1.5862 +	TEtel3rdPartyMobileNetworkInfoV1 was used to give an indication to the TSY of where the
  1.5863 +	request was originating from; i.e. if the request is from an application using the ISV
  1.5864 +	API or ETel API, which allowed the TSY to make a decision based on the origin.  This
  1.5865 +	data type also provided further protection by not including any location information
  1.5866 +	parameters.  With PlatSec being introduced in v9.0, there was no need to use this data
  1.5867 +	structure, as each API is policed with the adequate PlatSec capabilities.  Therefore,
  1.5868 +	in v9.0 TEtel3rdPartyMobileNetworkInfoV1 was deprecated and removed from the ETel ISV
  1.5869 +	(ETel3rdParty) implementation.
  1.5870 +
  1.5871 +	TEtel3rdPartyMobileNetworkInfoV1 was only used internally by the ETel ISV API when calls
  1.5872 +	are made to RMobilePhone::GetCurrentNetwork or RMobilePhone::NotifyCurrentNetworkChange.
  1.5873 +	The TSY no longer needs to support this as ETel ISV now uses the TMobilePhoneNetworkInfoV2
  1.5874 +	data structure and no distinction is required for ISV Apps.
  1.5875 +
  1.5876 +	@publishedPartner
  1.5877 +	@deprecated 9.0 This class has been deprecated from 9.0 and should no longer be used.
  1.5878 +	*/
  1.5879 +		{
  1.5880 +	public:
  1.5881 +		IMPORT_C TEtel3rdPartyMobileNetworkInfoV1();
  1.5882 +	public:
  1.5883 +	/** Mode of the network.
  1.5884 +	Modes: Common
  1.5885 +	
  1.5886 +	@see TMobilePhoneNetworkMode */
  1.5887 +		TMobilePhoneNetworkMode iMode;
  1.5888 +	/** Status of the network
  1.5889 +	
  1.5890 +	Modes: Common
  1.5891 +	
  1.5892 +	@see TMobilePhoneNetworkStatus */
  1.5893 +		TMobilePhoneNetworkStatus iStatus;
  1.5894 +	/** The band and band class of the CDMA network operator.
  1.5895 +	
  1.5896 +	Modes: CDMA
  1.5897 +	
  1.5898 +	@see TMobilePhoneNetworkBandInfo */
  1.5899 +		TMobilePhoneNetworkBandInfo iBandInfo;
  1.5900 +	/** The MCC of the network.
  1.5901 +	
  1.5902 +	Modes: Common
  1.5903 +	
  1.5904 +	@see TMobilePhoneNetworkCountryCode */
  1.5905 +		TMobilePhoneNetworkCountryCode iCountryCode;
  1.5906 +	/** The system identity (SID) of the CDMA network or the system identity (SID) of the AMPS network.
  1.5907 +	
  1.5908 +	Modes: CDMA
  1.5909 +
  1.5910 +	@see TMobilePhoneNetworkIdentity */
  1.5911 +		TMobilePhoneNetworkIdentity iCdmaSID;
  1.5912 +	/** The network identity (NID in CDMA and MNC in GSM).
  1.5913 +	
  1.5914 +	Modes: Common
  1.5915 +	
  1.5916 +	@see TMobilePhoneNetworkIdentity */
  1.5917 +		TMobilePhoneNetworkIdentity iNetworkId;
  1.5918 +	/** The alpha-tag displayed when this is the serving network.
  1.5919 +	
  1.5920 +	Modes: Common
  1.5921 +	
  1.5922 +	@see TMobilePhoneNetworkDisplayTag */
  1.5923 +		TMobilePhoneNetworkDisplayTag iDisplayTag;
  1.5924 +	/** The short name (up to 10 characters) of the network operator.
  1.5925 +	
  1.5926 +	Modes: GSM/WCDMA
  1.5927 +	
  1.5928 +	@see TMobilePhoneNetworkShortName */
  1.5929 +		TMobilePhoneNetworkShortName iShortName;
  1.5930 +	/** The long name (up to 20 characters) of the network operator.
  1.5931 +	
  1.5932 +	Modes: GSM/WCDMA
  1.5933 +	
  1.5934 +	@see TMobilePhoneNetworkLongName */
  1.5935 +		TMobilePhoneNetworkLongName iLongName;
  1.5936 +	/** The type of network access.
  1.5937 +	
  1.5938 +	@see TMobilePhoneNetworkAccess */
  1.5939 +		TMobilePhoneNetworkAccess iAccess;
  1.5940 +		};
  1.5941 +
  1.5942 +/** A typedef'd packaged TEtel3rdPartyMobileNetworkInfoV1 for passing through a generic
  1.5943 +API function member.
  1.5944 +
  1.5945 +@deprecated 9.0
  1.5946 +*/
  1.5947 +	typedef TPckg<TEtel3rdPartyMobileNetworkInfoV1>  TEtel3rdPartyMobileNetworkInfoV1Pckg;
  1.5948 +
  1.5949 +	/** IMS Authenticate constants,in accordance to 3GPP TS 33.102,
  1.5950 +	section 6.3.7, and RFC 3310*/
  1.5951 +	enum TMobilePhoneAuthenticate
  1.5952 +		{
  1.5953 +		/** length of autn is 128bits - 16octets*/
  1.5954 +		KAutnLength=16,
  1.5955 +		/** length of RAND is 16 octets */
  1.5956 +		KRandLength=16,
  1.5957 +		/** length of RES is 16 octets*/
  1.5958 +		KResLength=16,
  1.5959 +		/** length of IK is 16 octets*/
  1.5960 +		KIkLength=16,
  1.5961 +		/** length of CK is 16 octets*/
  1.5962 +		KCkLength=16,
  1.5963 +		/** length of Kc (GSM cipher key) is 8 octets*/
  1.5964 +		KKcLength=8,
  1.5965 +		/** length of is 112 bits - 14 octets */
  1.5966 +		KAutsLength=14,
  1.5967 +		};
  1.5968 +
  1.5969 +	/** Maximum size of the record in an EF is 0xff( 255 bytes) according to TS 102.221, section 8.2.2.2
  1.5970 +	*/
  1.5971 +	enum TMobilePhoneRelease5EFMaxSize
  1.5972 +	{
  1.5973 +	 KRelease5EFMaxSize=255,
  1.5974 +	};
  1.5975 +	
  1.5976 +	/** typedefs for encapsulation of the buffers that hold authorization data stored on the ISIM/USIM*/
  1.5977 +	/** typedef for Internet Multimedia Public Identity*/	
  1.5978 +	typedef TBuf8<KRelease5EFMaxSize> TIMPU;
  1.5979 +	/** typedef for Internet Multimedia Private Identity*/
  1.5980 +	typedef TBuf8<KRelease5EFMaxSize> TIMPI;
  1.5981 +	/** typedef for Home Network Domain Name*/
  1.5982 +	typedef TBuf8<KRelease5EFMaxSize> THNDN;
  1.5983 +
  1.5984 +
  1.5985 +	/** IMS Authenticate API*/
  1.5986 +	/** Class encapsulates data needed as an input/output for
  1.5987 +	ISIM/USIM AUTHENTICATE command
  1.5988 +	
  1.5989 +	@publishedPartner
  1.5990 +	@released
  1.5991 +	*/
  1.5992 +	class TImsAuthenticateDataV5: public TMultimodeType
  1.5993 +		{
  1.5994 +	public:
  1.5995 +		IMPORT_C TImsAuthenticateDataV5();
  1.5996 +		/** holds value of network challenge AUTN */
  1.5997 +		TBuf8<KAutnLength> iAUTN;
  1.5998 +		/** holds value of network challenge RAND */
  1.5999 +		TBuf8<KRandLength> iRAND;
  1.6000 +		/** holds result RES of AUTHENTICATE command when it's successfull*/
  1.6001 +		TBuf8<KResLength> iRES;
  1.6002 +		/** holds value of session key Integrity Key */
  1.6003 +		TBuf8<KIkLength> iIK;
  1.6004 +		/** holds value of session key Cipher Key */
  1.6005 +		TBuf8<KCkLength> iCK;
  1.6006 +		/** holds value of Authentication Token when  AUTHENTICATE fails*/
  1.6007 +		TBuf8<KAutsLength> iAUTS;
  1.6008 +		};
  1.6009 +
  1.6010 +	/** packaged version of TImsAuthenticateDataV5, used when this structure has to be passeed via IPC*/
  1.6011 +	typedef TPckg<TImsAuthenticateDataV5> TImsAuthenticateDataV5Pckg;
  1.6012 +	friend class CAsyncRetrieveAuthorizationInfo;
  1.6013 +
  1.6014 +	/** API that execute ISIM/USIM AUTHENTICATE command*/
  1.6015 +	IMPORT_C void ImsAuthenticate (TRequestStatus& aReqStatus,TDes8& aAuthenticateDataPckgd) const;
  1.6016 +
  1.6017 +	IMPORT_C void NotifyImsAuthorizationInfoChange(TRequestStatus& aReqStatus) const;
  1.6018 +
  1.6019 +	/**
  1.6020 +	Source location of IMS Authorization data.
  1.6021 +	*/
  1.6022 +	enum TAuthorizationDataSource
  1.6023 +		{
  1.6024 +		/** Authorization data source is USIM. */
  1.6025 +		EFromUSIM,
  1.6026 +		/** Authorization data source is ISIM. */
  1.6027 +		EFromISIM
  1.6028 +		};
  1.6029 +
  1.6030 +	/** 
  1.6031 +	Class encapsulates IMS authorization data stored in the ISIM or USIM
  1.6032 +
  1.6033 +	@publishedPartner
  1.6034 +	@released
  1.6035 +	*/
  1.6036 +	class CImsAuthorizationInfoV5 : public CBase	
  1.6037 +		{
  1.6038 +	public:
  1.6039 +		IMPORT_C ~CImsAuthorizationInfoV5();
  1.6040 +		IMPORT_C static CImsAuthorizationInfoV5* NewL();
  1.6041 +		IMPORT_C virtual void ExternalizeL(HBufC8*& aBuffer);
  1.6042 +		IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer);
  1.6043 +		IMPORT_C TUint ExtensionId() const;
  1.6044 +	public:
  1.6045 +		/**Internet Multimedia Private Identity stored on the ISIM/USIM*/
  1.6046 +		RMobilePhone::TIMPI iIMPI;
  1.6047 +		/**Internet Multimedia Public Identity(ies) stored on the ISIM/USIM*/
  1.6048 +		RArray<RMobilePhone::TIMPU> iIMPUArray;
  1.6049 +		/**Home Network Domain Name stored on the ISIM/USIM*/
  1.6050 +		RMobilePhone::THNDN iHomeNetworkDomainName;
  1.6051 +		/**indicates whether authorization data has been retrieved from the ISIM*/
  1.6052 +		TAuthorizationDataSource iAuthenticationDataSource;
  1.6053 +	protected:
  1.6054 +		CImsAuthorizationInfoV5();
  1.6055 +		/** version of the data supported*/
  1.6056 +		TUint iExtensionId;
  1.6057 +		};
  1.6058 +		
  1.6059 +	/******************************************************************************************************/
  1.6060 +	//
  1.6061 +	//           UICC Authentication 
  1.6062 +	//
  1.6063 +	/******************************************************************************************************/		
  1.6064 +	
  1.6065 +	/**	
  1.6066 +	Defines the input as well as the ouput parameters used when performing the
  1.6067 +	(U)ICC AUTHENTICATE command.
  1.6068 +
  1.6069 +	@publishedPartner
  1.6070 +	@released
  1.6071 +    */
  1.6072 +	class TSmartCardAuthenticateDataV6 : public TImsAuthenticateDataV5
  1.6073 +		{
  1.6074 +	public:
  1.6075 +		IMPORT_C TSmartCardAuthenticateDataV6();
  1.6076 +
  1.6077 +	public:
  1.6078 +		TBuf8<KKcLength> iKc;
  1.6079 +		};
  1.6080 +
  1.6081 +	/**
  1.6082 +	Packaged version of TSmartCardAuthenticateDataV6, used when this
  1.6083 +	structure has to be passeed via IPC.
  1.6084 +	*/
  1.6085 +	typedef TPckg<TSmartCardAuthenticateDataV6> TSmartCardAuthenticateDataV6Pckg;
  1.6086 +
  1.6087 +	IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, TDes8& aAuthDataPckgd) const;
  1.6088 +	IMPORT_C void SmartCardAuthenticate(TRequestStatus& aReqStatus, const TAID& aAID, TDes8& aAuthDataPckgd) const;
  1.6089 +	
  1.6090 +	/******************************************************************************************************/
  1.6091 +	//
  1.6092 +	//     Generic Bootstrapping Architecture (GBA_U) Authentication 
  1.6093 +	//
  1.6094 +	/******************************************************************************************************/
  1.6095 +	// used to set iExtensionId 
  1.6096 +	/** The mobile phone GBA and MBMS authentication extension IDs.
  1.6097 +
  1.6098 +	Modes: Common */
  1.6099 +	enum TMobilePhoneAuthDataExtId
  1.6100 +  		{
  1.6101 +		/** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapAuthDataV8. */
  1.6102 +		KETelMobileGbaBootstrapAuthDataV8 = KEtelExtMultimodeV8,
  1.6103 +		/** The iExtensionId contents indicate that the packaged class is a TGbaNafAuthDataV8. */
  1.6104 +		KETelMobileGbaNafAuthDataV8,
  1.6105 +		/** The iExtensionId contents indicate that the packaged class is a TMbmsMskUpdateDataV8. */
  1.6106 +		KETelMobileMbmsMskUpdateDataV8,
  1.6107 +		/** The iExtensionId contents indicate that the packaged class is a TMbmsMtkGenerateDataV8. */
  1.6108 +		KETelMobileMbmsMtkGenerateDataV8,
  1.6109 +		/** The iExtensionId contents indicate that the packaged class is a TMbmsMskDeleteDataV8. */
  1.6110 +		KETelMobileMbmsMskDeleteDataV8,
  1.6111 +		/** The iExtensionId contents indicate that the packaged class is a TMbmsMukDeleteDataV8. */
  1.6112 +		KETelMobileMbmsMukDeleteDataV8,
  1.6113 +		/** The iExtensionId contents indicate that the packaged class is a TMbmsUserKeyV8. */
  1.6114 +		KETelMobileMbmsUserKeyV8,
  1.6115 +		/** The iExtensionId contents indicate that the packaged class is a TGbaBootstrapParamsV8. */
  1.6116 +		KETelMobileGbaBootstrapParamsV8
  1.6117 +  		};
  1.6118 +		
  1.6119 +	class TGbaBootstrapAuthDataV8 : public TImsAuthenticateDataV5
  1.6120 +	/**
  1.6121 +	The class is identical to its base class except for its GBA Bootstrapping specific V8 extension id.
  1.6122 +	Contains parameters to hold the input as well as the output parameters for the GBA authentication 
  1.6123 +	in the Bootstrapping mode. The parameters are used as follows: 
  1.6124 +
  1.6125 +	Input: RAND,AUTN
  1.6126 +	Output: 
  1.6127 +	RES (if the authentication procedure is successful) 
  1.6128 +	or
  1.6129 +	AUTS (contains the failure response in case of unsuccessful authentication procedure)
  1.6130 +	See section 7.1.1.4 and 7.1.2.3 of 3GPP TS 31.102 v6.18.0
  1.6131 +	 
  1.6132 +	@see TImsAuthenticateDataV5
  1.6133 +	 
  1.6134 +    @see RMobilePhone::SmartCardAuthenticate request
  1.6135 +	 
  1.6136 +    @publishedPartner
  1.6137 +	@released
  1.6138 +	*/
  1.6139 +		{
  1.6140 +	public:
  1.6141 +		IMPORT_C TGbaBootstrapAuthDataV8();
  1.6142 +		};
  1.6143 +	
  1.6144 +	/**
  1.6145 +	Packaged version of TGbaBootstrapAuthDataV8, used when this structure has to be passed via IPC.
  1.6146 +	
  1.6147 +	@publishedPartner
  1.6148 +	@released
  1.6149 +	*/	
  1.6150 +	typedef TPckg<TGbaBootstrapAuthDataV8> TGbaBootstrapAuthDataV8Pckg;
  1.6151 +	
  1.6152 +	
  1.6153 +	enum 
  1.6154 +		{ 
  1.6155 +		/** The Maximum permitted size of Bootstrapping Transaction Identifier(B-TID) of 
  1.6156 +		the GBA_U bootstapped key 
  1.6157 +		see section 4.2.79 of 3GPP TS 31.102 v6.18.0
  1.6158 +		*/
  1.6159 +		KBtidLength = 255,
  1.6160 +		/** The Maximum permitted size of lifetime of the GBA_U bootstrapped keys 
  1.6161 +		see section 4.2.79 of 3GPP TS 31.102 v6.18.0
  1.6162 +		*/
  1.6163 +		KKeyLifetimeLength = 255
  1.6164 +		};
  1.6165 +	
  1.6166 +	class TBsfDataV8 : public TMultimodeType
  1.6167 +	/**
  1.6168 +	 Contains parameters to store B-TID and the Key lifetime that are supplied by the the BSF(EF_GBABP).
  1.6169 +	 See section 4.2.79 of 3GPP TS 31.102 v6.18.0	
  1.6170 +	 
  1.6171 +	 @see RMobilePhone::SetGbaBootstrapParams request
  1.6172 +	 
  1.6173 +	 @publishedPartner
  1.6174 +	 @released
  1.6175 +	*/
  1.6176 +		{
  1.6177 +	 public:
  1.6178 +	    IMPORT_C TBsfDataV8();	
  1.6179 +	 public: 
  1.6180 +	 	/** The Bootstrapping Transaction Identifier (B-TID) of the GBA_U bootstrapped key. */  	
  1.6181 +	 	TBuf8<KBtidLength>			iBtid;
  1.6182 +	 	/** The lifetime of the GBA_U bootstrapped keys. */  		
  1.6183 +	 	TBuf8<KKeyLifetimeLength>	iKeyLifetime;
  1.6184 +		};
  1.6185 +		
  1.6186 +	/**
  1.6187 +	Packaged version of TBsfDataV8, used when this structure has to be passeed via IPC.
  1.6188 +	
  1.6189 +	@publishedPartner
  1.6190 +	@released
  1.6191 +	*/
  1.6192 +	typedef TPckg<TBsfDataV8> TBsfDataV8Pckg;
  1.6193 +	
  1.6194 +	IMPORT_C void SetGbaBootstrapParams(TRequestStatus& aReqStatus, const TAID& aAID, const TDesC8& aParams) const;
  1.6195 +
  1.6196 +	enum 
  1.6197 +		{ 
  1.6198 +		/**  The Maximum permitted size of NAF_ID of the Network Application Function(NAF) 
  1.6199 +		used in the GBA_U NAF derivation procedure 
  1.6200 +		see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
  1.6201 +		*/
  1.6202 +		KNafIdLength = 255,
  1.6203 +		/**  The Maximum permitted size of the private user identity of the GBA_U NAF
  1.6204 +		see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
  1.6205 +		*/
  1.6206 +		KImpiLength = 255,
  1.6207 +		/**  The The Maximum permitted size of the Ks_ext_Naf key returned by the UICC application 
  1.6208 +		see section 7.1.2.4 of 3GPP TS 31.102 v6.18.0
  1.6209 +		*/
  1.6210 +		KKsExtNafLength = 255
  1.6211 +		};
  1.6212 +	 	
  1.6213 +	class TGbaNafAuthDataV8 : public TMultimodeType
  1.6214 +	/**
  1.6215 +	 Contains parameters to hold the input as well as the output parameters for the GBA authentication 
  1.6216 +	 in the NAF(Network Apllication Function) Derivation mode.
  1.6217 +	 See section 7.1.1.5 and 7.1.2.4 of 3GPP TS 31.102 v6.18.0
  1.6218 +	 
  1.6219 +	 @see RMobilePhone::SmartCardAuthenticate request
  1.6220 +	 
  1.6221 +	 @publishedPartner
  1.6222 +  	 @released
  1.6223 +	*/
  1.6224 +		{
  1.6225 +	 public:
  1.6226 +	 	IMPORT_C TGbaNafAuthDataV8();
  1.6227 +	 public:
  1.6228 +	 	/** Input Parameter: The NAF_ID of the Network Application Function (NAF) used in the 
  1.6229 +	 	GBA_U NAF Derivation procedure. */  	
  1.6230 +	 	TBuf8<KNafIdLength>	iNafId;	
  1.6231 +	  	/** Input Parameter: The Private user identity. */  			
  1.6232 +	 	TBuf8<KImpiLength>	iImpi;
  1.6233 +		/** Output Parameter: The Ks_ext_NAF key returned by the UICC app.  */  		 	
  1.6234 +	 	TBuf8<KKsExtNafLength> iKsExtNaf;
  1.6235 +		};
  1.6236 +		
  1.6237 +	/**
  1.6238 +	Packaged version of TGbaNafAuthDataV8, used when this structure has to be passeed via IPC.
  1.6239 +	
  1.6240 +	@publishedPartner
  1.6241 +	@released
  1.6242 +	*/
  1.6243 +	typedef TPckg <TGbaNafAuthDataV8> TGbaNafAuthDataV8Pckg;
  1.6244 +	
  1.6245 +	class TGbaBootstrapParamsV8 : public TMultimodeType
  1.6246 +	/**
  1.6247 +	 Contains parameters for the GBA Bootstrapping Parametres (EF_GBABP).
  1.6248 +	 See section 4.2.79 of 3GPP TS 31.102 v6.18.0	
  1.6249 +	 
  1.6250 +	 @see RMobilePhone::GetAuthenticationParams request
  1.6251 +	 
  1.6252 +	 @publishedPartner
  1.6253 +	 @released
  1.6254 +	*/
  1.6255 +		{
  1.6256 +	public:
  1.6257 +		IMPORT_C TGbaBootstrapParamsV8();
  1.6258 +	public:
  1.6259 +		/** The RAND (AKA Random challenge) value used in the GBA_U bootstrapping procedure. */  		
  1.6260 +		TBuf8<KRandLength>		iRand;
  1.6261 +		/** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U bootstrapped 
  1.6262 +		keys. The client requesting the GBA Bootstrapping procedure receives this value from the network 
  1.6263 +		(i.e. BSF) and it then stores it on the UICC. */  		
  1.6264 +		TBuf8<KBtidLength>		iBtid;
  1.6265 +		/** The lifetime of the GBA_U bootstrapped keys. The client requesting the GBA Bootstrapping
  1.6266 +		 procedure receives this value from the network (i.e. BSF) and it then stores it on the UICC. */  		
  1.6267 +		TBuf8<KKeyLifetimeLength>	iKeyLifetime;
  1.6268 +		};
  1.6269 +	
  1.6270 +	/**
  1.6271 +	Packaged version of TGbaBootstrapParamsV8, used when this structure has to be passeed via IPC.
  1.6272 +	
  1.6273 +	@publishedPartner
  1.6274 +	@released
  1.6275 +	*/
  1.6276 +	typedef TPckg<TGbaBootstrapParamsV8> TGbaBootstrapParamsV8Pckg;
  1.6277 +	
  1.6278 +	enum TAuthData
  1.6279 +	/**
  1.6280 +	The type of the authentication related data that has been modified as a result of the 
  1.6281 +	UICC authentication command.
  1.6282 +	
  1.6283 +	@see RMobilePhone::GetAuthenticationParams
  1.6284 +	
  1.6285 +	@publishedPartner
  1.6286 +	@released
  1.6287 +	*/	
  1.6288 +		{
  1.6289 +		/** The GBA Bootstrapping parameters. 
  1.6290 +		The GBA Bootstrapping parameters are stored under EF_GBABP of the UICC app. */
  1.6291 +		EGbaBootstrapParams,
  1.6292 +		/** The list of the GBA Network Application Function (NAF) IDs and the Bootstrapping
  1.6293 +		Transaction Identifiers (B-TIDs), associated with the previous GBA NAF derivation procedure.
  1.6294 +		The list is stored under EF_GBANL of the UICC app.  */
  1.6295 +		EGbaNafIdList,
  1.6296 +		/** The list of MBMS Service Keys (MSKs) and corresponding time stamp counters, which are 
  1.6297 +		related to an MBMS Key Domain. 
  1.6298 +		This list is stored in the EF_MSK file of the UICC app. */
  1.6299 +		EMbmsMskIdList,
  1.6300 +		/** The identifier of the MBMS User Key (MUK) that is used to protect the transfer of MBMS 
  1.6301 +		Service Keys (MSK). 
  1.6302 +		The MUK ID is stored in the EF_MUK file of the UICC app.*/
  1.6303 +		EMbmsMuk
  1.6304 +		};
  1.6305 +		
  1.6306 +	class TAuthInfoV8 : public TMultimodeType
  1.6307 +	/**
  1.6308 +	 Contains parameters for Authentication related information
  1.6309 +	 */	
  1.6310 +		{
  1.6311 +	public:
  1.6312 +		IMPORT_C TAuthInfoV8();
  1.6313 +	public:
  1.6314 +		/** Application identifier (AID) of the UICC application performing the authentication. */
  1.6315 +		TAID  	iAID;
  1.6316 +		/** The type of the authentication related data that has been modified as a result of the 
  1.6317 +		UICC authentication command*/
  1.6318 +		TAuthData	iData;
  1.6319 +		};
  1.6320 +	
  1.6321 +	/**
  1.6322 +	Packaged version of TAuthInfoV8 
  1.6323 +	*/	
  1.6324 +	typedef TPckg<TAuthInfoV8>  TAuthInfoV8Pckg;
  1.6325 +	
  1.6326 +	IMPORT_C void NotifyAuthenticateDataChange(TRequestStatus& aReqstatus, TDes8& aAuthInfo) const;
  1.6327 +	IMPORT_C void GetAuthenticationParams(TRequestStatus& aReqstatus, const TDesC8& aAuthInfo, TDes8& aParams) const;
  1.6328 +	
  1.6329 +	
  1.6330 +	class TGbaNafEntryV8 : public TMultimodeType
  1.6331 +	/**
  1.6332 +	Contains parameters for the GBA NAF entry(EF_GBANL)
  1.6333 +	See section 4.2.83 of 3GPP TS 31.102 v6.18.0
  1.6334 +		
  1.6335 +	@publishedPartner
  1.6336 +	@released
  1.6337 +	*/	
  1.6338 +		{
  1.6339 +	public:
  1.6340 +		void InternalizeL(RReadStream& aStream);
  1.6341 +		void ExternalizeL(RWriteStream& aStream) const;
  1.6342 +	public:
  1.6343 +		IMPORT_C TGbaNafEntryV8();
  1.6344 +	public:
  1.6345 +		/** The identifier of the Network Application Function (NAF) used in the GBA_U NAF 
  1.6346 +		Derivation procedure. */  	
  1.6347 +		TBuf8<KNafIdLength>		iNafId;
  1.6348 +		/** The Bootstrapping Transaction Identifier (B-TID) associated with the GBA_U 
  1.6349 +		bootstrapped keys. The client requesting the GBA Bootstrapping procedure receives 
  1.6350 +		this value from the network (i.e. BSF) and it then stores it on the UICC.  */  
  1.6351 +		TBuf8<KBtidLength>		iBtid;
  1.6352 +		};
  1.6353 +	
  1.6354 +	/**
  1.6355 +	Packaged version of TGbaNafEntryV8, used when this structure has to be passeed via IPC.
  1.6356 +	
  1.6357 +	@publishedPartner
  1.6358 +	@released
  1.6359 +	*/	
  1.6360 +	typedef TPckg<TGbaNafEntryV8> TGbaNafEntryV8Pckg;
  1.6361 +	
  1.6362 +	/************************************************************************************************/
  1.6363 +    //
  1.6364 + 	//    Multimedia Broadcast Multicast Service (MBMS) Authentication
  1.6365 + 	//  
  1.6366 +	/************************************************************************************************/
  1.6367 +	
  1.6368 +	/** The Maximum permitted size of multimedia internet Keying message 
  1.6369 +	see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0
  1.6370 +	*/
  1.6371 +	enum { KMikeyLength = 255 };
  1.6372 +	typedef TBuf8<KMikeyLength> TMikey;
  1.6373 +	
  1.6374 +	class TMbmsMskUpdateDataV8 : public TMultimodeType
  1.6375 +	/**
  1.6376 +	Contains parameters to hold the input as well as the output parameters for the MBMS 
  1.6377 +	authentication in the MSK Update mode.  
  1.6378 +	See section 7.1.1.6 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0
  1.6379 +	
  1.6380 +	@see RMobilePhone::SmartCardAuthenticate request
  1.6381 +	
  1.6382 +	@publishedPartner
  1.6383 +	@released
  1.6384 +	*/
  1.6385 +		{
  1.6386 +	public:
  1.6387 +		IMPORT_C TMbmsMskUpdateDataV8();
  1.6388 +	public:
  1.6389 +	    /** Input Parameter:MIKEY (Multimedia Internet Keying) message containing the MSK update 
  1.6390 +	    message from the network.  */
  1.6391 +		TMikey  iInputMikey;
  1.6392 +		/** Output Parameter: The output MIKEY (Multimedia Internet Keying) message containing 
  1.6393 +		the MSK Verification message from the UICC as the command response.
  1.6394 +		This is an optional parameter and it is only returned if the V-bit in the HDR field of 
  1.6395 +		the received MIKEY message is set. */
  1.6396 +		TMikey  iOutputMikey;
  1.6397 +		};
  1.6398 +		
  1.6399 +	/**
  1.6400 +	Packaged version of TMbmsMskUpdateDataV8, used when this structure has to be passeed via IPC.
  1.6401 +	
  1.6402 +	@publishedPartner
  1.6403 +	@released
  1.6404 +	*/		
  1.6405 +	typedef TPckg<TMbmsMskUpdateDataV8> TMbmsMskUpdateDataV8Pckg;
  1.6406 +	
  1.6407 +	/**
  1.6408 +	The Maximum permitted size of MTK length.
  1.6409 +	see section 7.1.2.5 of 3GPP TS 31.102 v6.18.0.
  1.6410 +	*/
  1.6411 +	enum {KMtkLength = 255};
  1.6412 +	
  1.6413 +	/**
  1.6414 +	The Salt key length.
  1.6415 +	see section 6.4.5.3 of 3GPP TS 33.246 v6.11.0.
  1.6416 +	*/
  1.6417 +	enum {KSaltLength = 14};
  1.6418 +	
  1.6419 +	class TMbmsMtkGenerateDataV8 : public TMultimodeType
  1.6420 +	/**
  1.6421 +	Contains parameters to hold the input as well as the output parameters for the MBMS 
  1.6422 +	authentication in MTK Generation mode.  
  1.6423 +	See section 7.1.1.7 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0  
  1.6424 +	
  1.6425 +	@see RMobilePhone::SmartCardAuthenticate request
  1.6426 +	
  1.6427 +	@publishedPartner
  1.6428 +	@released 
  1.6429 +	*/
  1.6430 +		{
  1.6431 +	public:
  1.6432 +		IMPORT_C TMbmsMtkGenerateDataV8();
  1.6433 +	public:
  1.6434 +		/** Input Parameter: The input MIKEY message containing an MTK and a Salt key (if Salt key is available). */
  1.6435 +		TMikey	iMikey;
  1.6436 +		/** Output Parameter: The MBMS Traffic Key.  */
  1.6437 +		TBuf8<KMtkLength>	iMtk;
  1.6438 +		/** Output Parameter: A random or pseudo-random string used to protect against some off-line 
  1.6439 +		pre computation attacks on the underlying security protocol.
  1.6440 +		This is an optional parameter. */
  1.6441 +		TBuf8<KSaltLength>	iSaltKey;
  1.6442 +		};
  1.6443 +	
  1.6444 +	/**
  1.6445 +	Packaged version of TMbmsMtkGenerateDataV8, used when this structure has to be passeed via IPC.
  1.6446 +	
  1.6447 +	@publishedPartner
  1.6448 +	@released 
  1.6449 +	*/		
  1.6450 +	typedef TPckg<TMbmsMtkGenerateDataV8> TMbmsMtkGenerateDataV8Pckg;
  1.6451 +	
  1.6452 +	/**
  1.6453 +	The Key domain id length.
  1.6454 +	see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
  1.6455 +	*/
  1.6456 +	enum {KKeyDomainIdLength = 3};
  1.6457 +	
  1.6458 +	/**
  1.6459 +	The Key group length.
  1.6460 +	see section 6.3.2.1. 3GPP TS 33.246 v6.11.0
  1.6461 +	*/
  1.6462 +	enum {KKeyGroupLength = 2};
  1.6463 +	
  1.6464 +	class TMbmsMskDeleteDataV8 : public TMultimodeType
  1.6465 +	/**
  1.6466 +	Contains parameters to hold the input as well as the output parameters for the MBMS authentication
  1.6467 +	in the MSK Deletion mode.  
  1.6468 +	See section 7.1.1.8 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0 
  1.6469 +	
  1.6470 +	@see RMobilePhone::SmartCardAuthenticate request
  1.6471 +	
  1.6472 +	@publishedPartner
  1.6473 +	@released 
  1.6474 +	*/	
  1.6475 +		{
  1.6476 +	public:
  1.6477 +		IMPORT_C TMbmsMskDeleteDataV8();
  1.6478 +	public:
  1.6479 +		/** Input parameter : Every MSK is uniquely identifiable by its Key Domain ID and MSK ID. 
  1.6480 +		Key Domain ID = MCC || MNC and is 3 bytes long. */
  1.6481 +		TBuf8<KKeyDomainIdLength>	iKeyDomainId;
  1.6482 +		/** Input Parameter: The Key Group part is used to group keys together in order to allow
  1.6483 +		redundant MSKs to be deleted. 
  1.6484 +		The Key group part is contained within bytes 0 and 1 of the MSK ID. */
  1.6485 +		TBuf8<KKeyGroupLength>	iMskIdKeyGroup;
  1.6486 +		};
  1.6487 +	
  1.6488 +	/**
  1.6489 +	Packaged version of TMbmsMskDeleteDataV8, used when this structure has to be passeed via IPC.
  1.6490 +	
  1.6491 +	@publishedPartner
  1.6492 +	@released 
  1.6493 +	*/		
  1.6494 +	typedef TPckg<TMbmsMskDeleteDataV8> TMbmsMskDeleteDataV8Pckg;
  1.6495 +	
  1.6496 +	/**
  1.6497 +	The Maximum permitted size of MUK ID TLV length.
  1.6498 +	see section 6.4.5 of 3GPP TS 33.246 v6.11.0
  1.6499 +	*/
  1.6500 +	enum {KMukIdTlvLength = 255};
  1.6501 +	
  1.6502 +	class TMbmsMukDeleteDataV8 : public TMultimodeType
  1.6503 +	/**
  1.6504 +	Contains parameters to hold the input as well as the output parameters for the MBMS 
  1.6505 +	authentication in the MUK Deletion mode.  
  1.6506 +	See section 7.1.1.9 and 7.1.2.5 of 3GPP TS 31.102 v6.18.0  
  1.6507 +	
  1.6508 +	@see RMobilePhone::SmartCardAuthenticate request
  1.6509 +	
  1.6510 +	@publishedPartner
  1.6511 +	@released 
  1.6512 +	*/	
  1.6513 +		{
  1.6514 +	public:
  1.6515 +		IMPORT_C TMbmsMukDeleteDataV8();
  1.6516 +	public:
  1.6517 +		/** Input parameter : The MUK ID TLV containing the MUK IDr and MUK IDi. 
  1.6518 +		This field will contain the MUK ID as a TLV object containing the MUK IDr and MUK IDi.*/
  1.6519 +		TBuf8<KMukIdTlvLength> iMukIdTlv;
  1.6520 +		};
  1.6521 +
  1.6522 +	/**
  1.6523 +	Packaged version of TMbmsMukDeleteDataV8, used when this structure has to be passeed via IPC.
  1.6524 +	
  1.6525 +	@publishedPartner
  1.6526 +	@released 
  1.6527 +	*/		
  1.6528 +	typedef TPckg<TMbmsMukDeleteDataV8> TMbmsMukDeleteDataV8Pckg;
  1.6529 +		
  1.6530 +	/**
  1.6531 +	The Maximum permitted size of MUK IDi length.
  1.6532 +	see section 6.4.5 of 3GPP TS 33.246 v6.11.0
  1.6533 +	*/
  1.6534 +	enum { KMukIdiLength = 255 };
  1.6535 +	
  1.6536 +	/**
  1.6537 +	The Maximum permitted size of MUK IDr length.
  1.6538 +	see section 6.4.5 of 3GPP TS 33.246 v6.11.0
  1.6539 +	*/
  1.6540 +	enum { KMukIdrLength = 255 };
  1.6541 +	
  1.6542 +	/**
  1.6543 +	The time stamp counter length.
  1.6544 +	see section 6.4.3 of 3GPP TS 33.246 v6.11.0.
  1.6545 +	*/
  1.6546 +	enum { KTimeStampCounterLength = 4 };
  1.6547 +	
  1.6548 +	class TMbmsUserKeyV8 : public TMultimodeType
  1.6549 +	/**
  1.6550 +	Contains parameters for MBMS User Key(MUK)(EF_MUK).
  1.6551 +	See section 4.2.81 of 3GPP TS 31.102 v6.18.0.  
  1.6552 +	
  1.6553 +	@see RMobilePhone::GetAuthenticationParams
  1.6554 +	
  1.6555 +	@publishedPartner
  1.6556 +	@released  
  1.6557 +	*/	
  1.6558 +		{
  1.6559 +	public:
  1.6560 +		IMPORT_C TMbmsUserKeyV8();
  1.6561 +	public:
  1.6562 +		/** The IDi part of MBMS User Key (MUK). */
  1.6563 +		TBuf8<KMukIdiLength>	iMukIdi;
  1.6564 +		/** The IDr part of MBMS User Key (MUK). */
  1.6565 +		TBuf8<KMukIdrLength>	iMukIdr;
  1.6566 +		/** The counter for MIKEY replay protection in MSK delivery. The counter is associated 
  1.6567 +		with the particular MUK. */
  1.6568 +		TBuf8<KTimeStampCounterLength>	iTimeStampCounter;	
  1.6569 +		};
  1.6570 +		
  1.6571 +	/**
  1.6572 +	Packaged version of TMbmsUserKeyV8, used when this structure has to be passeed via IPC.
  1.6573 +	
  1.6574 +	@publishedPartner
  1.6575 +	@released
  1.6576 +	*/		
  1.6577 +	typedef TPckg<TMbmsUserKeyV8> TMbmsUserKeyV8Pckg;
  1.6578 +	
  1.6579 +	/**
  1.6580 +	The MSK id length.
  1.6581 +	see section 6.3.2.1. TS 33.246 v6.11.0
  1.6582 +	*/
  1.6583 +	enum { KMskIdLength =4 };
  1.6584 +
  1.6585 +	class TMskEntryV8 : public TMultimodeType
  1.6586 +	/**
  1.6587 +	contains Parameters for MBMS MSK ID Entry (EF_MSK).
  1.6588 +	See section 4.2.80 of 3GPP TS 31.102 v6.18.0. 
  1.6589 +	 
  1.6590 +    @publishedPartner
  1.6591 +	@released  
  1.6592 +	*/		
  1.6593 +		{
  1.6594 +	public:
  1.6595 +		void InternalizeL(RReadStream& aStream);
  1.6596 +		void ExternalizeL(RWriteStream& aStream) const;
  1.6597 +	public:
  1.6598 +		IMPORT_C TMskEntryV8();
  1.6599 +	public:
  1.6600 +		/** Identifier of the Domain of the BM-SC providing MBMS service */
  1.6601 +		TBuf8<KKeyDomainIdLength>	iKeyDomainId;
  1.6602 +		/** Identifier of MBMS Service Key(MSK) with in a paricular Key Domain */
  1.6603 +		TBuf8<KMskIdLength>		iMskId;
  1.6604 +		/** Counter for MIKEY replay protection in MTK delivery.Each counter is
  1.6605 +		 associated with a particular MSK */
  1.6606 +		TBuf8<KTimeStampCounterLength>	iTimeStampCounter;
  1.6607 +		};
  1.6608 +
  1.6609 +	/*************************************************************************************/
  1.6610 +	//
  1.6611 +	//    WLAN Parameters 
  1.6612 +	//
  1.6613 +	/*************************************************************************************/	
  1.6614 +	
  1.6615 +	/**
  1.6616 +	This type indicates which of the following fields, within the WLAN data structure,
  1.6617 +	contain valid data. 
  1.6618 +	*/
  1.6619 +	enum TUsimWlanDataFlags
  1.6620 +		{
  1.6621 +		/** The iPseudonym field is valid in the Wlan data class */
  1.6622 +		KWlanPseudonym  =0x00000001,
  1.6623 +		/** The iReauthenticationId field is valid in the Wlan data class */
  1.6624 +		KWlanReauthenticationId  = 0x00000002,
  1.6625 +		/** The iMasterKey field is valid in the Wlan data class */
  1.6626 +		KWlanMasterKey   = 0x00000004,
  1.6627 +		/** The iCounter field is valid in the Wlan data class */
  1.6628 +		KWlanCounter     = 0x00000008
  1.6629 +		};	
  1.6630 +		
  1.6631 +	/**
  1.6632 +	Holds a Maximum permitted size of the temporary user Identity or 
  1.6633 +	pseudonym stored in EF_Pseudo of the currently active USIM.
  1.6634 +	see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0
  1.6635 +	*/
  1.6636 +	enum {	KWlanUserIdentity = 255 };
  1.6637 +	typedef TBuf8 <KWlanUserIdentity> TWlanUserIdentity;
  1.6638 +
  1.6639 +	/**
  1.6640 +	Holds a Maximum permitted size of re-authentication identity stored
  1.6641 +	in EF_WRI of the currently active USIM.
  1.6642 +	see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
  1.6643 +	*/
  1.6644 +	enum { KWlanMasterKeyLength = 255 };
  1.6645 +
  1.6646 +	/**
  1.6647 +	Holds a Maximum permitted size of master key used in the process of re-authentication. 
  1.6648 +	see section 4.4.5.6 of 3GPP TS 31.102 v6.18.0.
  1.6649 +	*/
  1.6650 +	enum { KCounterLength = 255 };
  1.6651 +
  1.6652 +	/**
  1.6653 +	Contains Parameters for Wlan Pseudonym(EF_Pseudo) and Reauthentication Id(EF_WRI).
  1.6654 +	See section 4.4.5.1 and 4.4.5.6 of 3GPP TS 31.102 v6.18.0. 
  1.6655 +	@see RMobilePhone::SetWlanData
  1.6656 +	@see RMobilePhone::GetWlanData
  1.6657 +	@see RMobilePhone::NotifyWlanDataChange
  1.6658 +
  1.6659 +	@publishedPartner
  1.6660 +	@released  
  1.6661 +	*/
  1.6662 +	class TUsimWlanDataV8 : public TMultimodeType
  1.6663 +		{
  1.6664 +	public:
  1.6665 +		IMPORT_C TUsimWlanDataV8();
  1.6666 +	public:
  1.6667 +		/** A bit-wise sum of TUsimWlanDataCaps constants indicating which of the following 
  1.6668 +		fields, within the WLAN data structure, contain valid data. */
  1.6669 +		TUint32 	iFieldsUsed;  
  1.6670 +		/** Holds a buffer containing the temporary user Identity or pseudonym stored in EF_Pseudo 
  1.6671 +		of the currently active USIM. */
  1.6672 +		TWlanUserIdentity iPseudonym;
  1.6673 +		/** Holds a buffer containing the re-authentication identity stored in EF_WRI of the 
  1.6674 +		currently active USIM. */
  1.6675 +		TWlanUserIdentity	iReauthenticationId;
  1.6676 +		/** Holds the master key used in the process of re-authentication. */
  1.6677 +		TBuf8<KWlanMasterKeyLength>	iMasterKey;
  1.6678 +		/** A counter value to be used in the fast re-authentication. This value is provided as a 
  1.6679 +		part of a previous authentication sequence. */ 
  1.6680 +		TBuf8<KCounterLength>	iCounter; 
  1.6681 +		};
  1.6682 +			
  1.6683 +	/** Packaged version of TUsimWlanDataV8, used when this structure has to be passeed via IPC.
  1.6684 +	
  1.6685 +	@publishedPartner
  1.6686 +	@released
  1.6687 +	*/	
  1.6688 +	typedef TPckg<TUsimWlanDataV8> TUsimWlanDataV8Pckg;
  1.6689 +
  1.6690 +	IMPORT_C void SetWlanData(TRequestStatus& aReqStatus, const TDesC8& aData) const;
  1.6691 +	IMPORT_C void GetWlanData(TRequestStatus& aReqStatus, TDes8& aData) const;
  1.6692 +	IMPORT_C void NotifyWlanDataChange(TRequestStatus& aReqStatus, TDes8& aData) const;
  1.6693 +
  1.6694 +	/**
  1.6695 +	Holds a Maximum permitted size of Wlan Specific Identifier.
  1.6696 +	see section 4.4.5.4 of 31.102 v6.18.0. 
  1.6697 +	*/	
  1.6698 +	enum { KWlanSIDLength = 255 };
  1.6699 +
  1.6700 +	/**
  1.6701 +	Contains Parameters for User controlled WLAN Specific IDentifier List (EF_UWSIDL) and Operator 
  1.6702 +	controlled WLAN Specific IDentifier List(EF_OWSIDL).
  1.6703 +	See section 4.4.5.4 and 4.4.5.5 of 3GPP TS 31.102 v6.18.0.
  1.6704 +	 
  1.6705 +	@see RMobilePhone::StorePreferredWlanSIDListL
  1.6706 +	@see RMobilePhone::NotifyPreferredWlanSIDListChange
  1.6707 +	
  1.6708 +	@publishedPartner
  1.6709 +	@released 
  1.6710 +	*/
  1.6711 +	class TWlanSIDV8 : public TMultimodeType	
  1.6712 +		{
  1.6713 +	public:
  1.6714 +		IMPORT_C TWlanSIDV8();
  1.6715 +	public:
  1.6716 +		void InternalizeL(RReadStream& aStream);
  1.6717 +		void ExternalizeL(RWriteStream& aStream) const;
  1.6718 +	public:
  1.6719 +		/** Holds a buffer containing WLAN Specific Identifier (SID)*/
  1.6720 +		TBuf8<KWlanSIDLength>	iWSID;
  1.6721 +		/** Editable preferences in the User-controlled WLAN Specific IDentifier List */
  1.6722 +		TBool	iUserDefined;
  1.6723 +		};
  1.6724 +
  1.6725 +	/** Packaged version of TWlanSIDV8, used when this structure has to be passeed via IPC.
  1.6726 +	
  1.6727 +	@publishedPartner
  1.6728 +	@released
  1.6729 +	*/	
  1.6730 +	typedef TPckg<TWlanSIDV8> TWlanSIDV8Pckg;
  1.6731 +
  1.6732 +	IMPORT_C void StorePreferredWlanSIDListL(TRequestStatus& aReqStatus, CMobilePhoneStoredWlanSIDList* aList) const;
  1.6733 +	IMPORT_C void NotifyPreferredWlanSIDListChange(TRequestStatus& aReqStatus) const;	
  1.6734 +		
  1.6735 +
  1.6736 +private:
  1.6737 +	CMobilePhonePtrHolder* iMmPtrHolder;
  1.6738 +	RMobilePhone(const RMobilePhone& aPhone);
  1.6739 +
  1.6740 +protected:
  1.6741 +	IMPORT_C void ConstructL();
  1.6742 +	IMPORT_C void Destruct();
  1.6743 +	};
  1.6744 +
  1.6745 +/*********************************************************/
  1.6746 +//
  1.6747 +// Phone Storage functionality (RMobilePhoneStore)
  1.6748 +//
  1.6749 +/*********************************************************/
  1.6750 +
  1.6751 +
  1.6752 +
  1.6753 +class CMobilePhoneStorePtrHolder;
  1.6754 +class RMobilePhoneStore : public RTelSubSessionBase
  1.6755 +/**
  1.6756 +Abstract class used to define common phone storage actions and types
  1.6757 +
  1.6758 +Clients open one of the specialised phone store classes that are derived from RMobilePhoneStore
  1.6759 +*/
  1.6760 +	{
  1.6761 +public:
  1.6762 +	friend class CAsyncRetrieveStoreList;
  1.6763 +
  1.6764 +/** Types of store.
  1.6765 +
  1.6766 +Modes: Common */
  1.6767 +	enum TMobilePhoneStoreType
  1.6768 +		{
  1.6769 +	/** Store type is unknown.
  1.6770 +	
  1.6771 +	Modes: Common */
  1.6772 +		EPhoneStoreTypeUnknown,
  1.6773 +	/** Store contains SMS messages.
  1.6774 +	
  1.6775 +	Modes: Common */
  1.6776 +		EShortMessageStore,
  1.6777 +	/** Store contains NAM entries.
  1.6778 +	
  1.6779 +	Modes: CDMA */
  1.6780 +		ENamStore,
  1.6781 +	/** Store contains PhoneBook entries.
  1.6782 +	
  1.6783 +	Modes: Common */
  1.6784 +		EPhoneBookStore,
  1.6785 +	/** Store contains emergency number entries.
  1.6786 +	
  1.6787 +	Modes: Common */
  1.6788 +		EEmergencyNumberStore,
  1.6789 +	/** Store contains own number entries.
  1.6790 +
  1.6791 +	Modes: Common */
  1.6792 +		EOwnNumberStore
  1.6793 +		};
  1.6794 +
  1.6795 +/** Store capabilities. */
  1.6796 +	enum TMobilePhoneStoreCaps
  1.6797 +		{
  1.6798 +	/** The store can be accessed as a whole using the ReadAll() and StoreAll() member
  1.6799 +	functions. */
  1.6800 +		KCapsWholeStore			= 0x80000000,
  1.6801 +	/** The store can be accessed one entry at a time using the RMobilePhoneStore::Read(), 
  1.6802 +	RMobilePhoneStore::Write() and RMobilePhoneStore::Delete() member functions. */
  1.6803 +		KCapsIndividualEntry	= 0x40000000,
  1.6804 +	/** The store can be accessed in order to read entries. */
  1.6805 +		KCapsReadAccess			= 0x20000000,
  1.6806 +	/** The store can be accessed in order to write or delete entries. */
  1.6807 +		KCapsWriteAccess		= 0x10000000,
  1.6808 +	/** The TSY supports deleting all the store entries at once. */
  1.6809 +		KCapsDeleteAll			= 0x08000000,
  1.6810 +	/** The TSY supports notification of store events such as entries added, deleted
  1.6811 +	or store becoming full. */
  1.6812 +		KCapsNotifyEvent		= 0x04000000
  1.6813 +		};
  1.6814 +
  1.6815 +/** The type of store information. As defined in TMobilePhoneStoreInfoV1::iExtensionId
  1.6816 +
  1.6817 +Modes: Common
  1.6818 +
  1.6819 +@see TMobilePhoneStoreInfoV1
  1.6820 +@see RMobilePhone::TMultimodeType */
  1.6821 +	enum TMobilePhoneStoreInfoExtId
  1.6822 +		{
  1.6823 +	/** The iExtensionId contents indicate that the packaged class is a RMobilePhoneStore::TMobilePhoneStoreInfoV1.
  1.6824 +	Modes: Common */
  1.6825 +		KETelMobilePhoneStoreV1=KETelExtMultimodeV1,
  1.6826 +	/** The iExtensionId contents indicate that the packaged class is a RMobilePhoneBookStore::TMobilePhoneBookInfoV1.
  1.6827 +	Modes: Common */
  1.6828 +		KETelMobilePhonebookStoreV1,
  1.6829 +	/** Reserved for SMS store specific information class.
  1.6830 +	Modes: Common */
  1.6831 +		KETelMobileSmsStoreV1,
  1.6832 +	/** The iExtensionId contents indicate that the packaged class is a RMobileNamStore::TMobileNamStoreInfoV1.
  1.6833 +	Modes: CDMA */
  1.6834 +		KETelMobileNamStoreV1,
  1.6835 +	/** The iExtensionId contents indicate that the packaged class is a RMobileONStore::TMobileONStoreInfoV1.
  1.6836 +	Modes: Common */
  1.6837 +		KETelMobileONStoreV1,
  1.6838 +	/** Reserved for Emergency Number store specific infoprmation class.
  1.6839 +	Modes: Common */
  1.6840 +		KETelMobileENStoreV1,
  1.6841 +	/** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2.
  1.6842 +	Modes: Common */
  1.6843 +		KETelMobilePhonebookStoreV2=KETelExtMultimodeV2,
  1.6844 +		
  1.6845 +	/** The iExtensionId contents indicate that the packaged class is a TMobilePhoneBookInfoV2.
  1.6846 + 	Modes: Common */
  1.6847 + 		KETelMobilePhonebookStoreV5=KEtelExtMultimodeV5
  1.6848 +		};
  1.6849 +
  1.6850 +
  1.6851 +
  1.6852 +	class TMobilePhoneStoreInfoV1 : public RMobilePhone::TMultimodeType
  1.6853 +/** Defines information and capabilities of a phone-side store.
  1.6854 +@publishedPartner
  1.6855 +@released */
  1.6856 +		{
  1.6857 +	public:
  1.6858 +		IMPORT_C TMobilePhoneStoreInfoV1();
  1.6859 +
  1.6860 +	/** The type of entry in the phone-side store. 
  1.6861 +	
  1.6862 +	Modes: Common
  1.6863 +
  1.6864 +	@see TMobilePhoneStoreType */
  1.6865 +		TMobilePhoneStoreType		iType;
  1.6866 +	/** Indicates the total number of entries that may be held in this store. */
  1.6867 +		TInt						iTotalEntries;
  1.6868 +	/** Indicates the current number of entries held in this store.
  1.6869 +	
  1.6870 +	Is equal to KIndexNotUsed if the TSY is unable to determine current number 
  1.6871 +	of entries.
  1.6872 +	
  1.6873 +	Modes: Common */
  1.6874 +		TInt						iUsedEntries;
  1.6875 +	/** Indicates the capabilities of the store. It is the sum of caps constants defined
  1.6876 +	in TMobilePhoneStoreCaps and those defined for a specialised phone store.
  1.6877 +	
  1.6878 +	Modes: Common */
  1.6879 +		TUint32						iCaps;
  1.6880 +	/** The name of the phone-side store. A valid list of names is given in the description 
  1.6881 +	of each specialised store. 
  1.6882 +	
  1.6883 +	Modes: Common
  1.6884 +
  1.6885 +	@see RMobilePhone::TMobileName */
  1.6886 +		RMobilePhone::TMobileName	iName;
  1.6887 +		};
  1.6888 +
  1.6889 +/** A typedef'd packaged TMobilePhoneStoreInfoV1 for passing through a generic
  1.6890 +API member function. */
  1.6891 +	typedef TPckg<TMobilePhoneStoreInfoV1> TMobilePhoneStoreInfoV1Pckg;
  1.6892 +
  1.6893 +	
  1.6894 +
  1.6895 +	class TMobilePhoneStoreEntryV1 : public RMobilePhone::TMultimodeType
  1.6896 +/** Defines common contents of an entry in a phone-side store. 
  1.6897 +*/
  1.6898 +		{
  1.6899 +	public:
  1.6900 +
  1.6901 +		enum
  1.6902 +			{
  1.6903 +			KIndexNotUsed = -1
  1.6904 +			};
  1.6905 +
  1.6906 +	protected:
  1.6907 +		TMobilePhoneStoreEntryV1();
  1.6908 +	public:
  1.6909 +		void InternalizeL(RReadStream& aStream);
  1.6910 +		void ExternalizeL(RWriteStream& aStream) const;
  1.6911 +	public:
  1.6912 +	/** The slot location of the entry within phone-side storage.
  1.6913 +	
  1.6914 +	Modes: Common */
  1.6915 +		TInt  iIndex;
  1.6916 +		};
  1.6917 +
  1.6918 +	IMPORT_C void GetInfo(TRequestStatus& aReqStatus, TDes8& aInfo) const;
  1.6919 +
  1.6920 +	IMPORT_C void Read(TRequestStatus& aReqStatus, TDes8& aEntry) const;
  1.6921 +	IMPORT_C void Write(TRequestStatus& aReqStatus, TDes8& aEntry) const;
  1.6922 +
  1.6923 +	IMPORT_C void Delete(TRequestStatus& aReqStatus, TInt aIndex) const;
  1.6924 +	IMPORT_C void DeleteAll(TRequestStatus& aReqStatus) const;
  1.6925 +
  1.6926 +/** The store events. It is possible for more than one event to occur at the same 
  1.6927 +time, therefore the events are a bitmask and should be tested as a bitmask.
  1.6928 +
  1.6929 +Modes: Common
  1.6930 +
  1.6931 +@see NotifyStoreEvent() */
  1.6932 +	enum TMobileStoreEvent
  1.6933 +		{
  1.6934 +	/** The store has become full. This event will trigger after the last possible 
  1.6935 +	entry in a store has been written. */
  1.6936 +		KStoreFull =0x00000001,
  1.6937 +	/** The store was full but now has some space. This event will trigger after one 
  1.6938 +	or more entries have been deleted from a full store. */
  1.6939 +		KStoreHasSpace =0x00000002,
  1.6940 +	/** The store is empty. This event will trigger after the last entry in a store 
  1.6941 +	has been deleted or if all entries are deleted at once. */
  1.6942 +		KStoreEmpty =0x00000004,
  1.6943 +	/** The store has a new entry, placed in the slot indicated by the aIndex parameter. */
  1.6944 +		KStoreEntryAdded =0x00000008,
  1.6945 +	/** The store has deleted the entry that was in the slot indicated by the aIndex 
  1.6946 +	parameter. */
  1.6947 +		KStoreEntryDeleted =0x00000010,
  1.6948 +	/** The store has changed the entry that was in the slot indicated by the aIndex 
  1.6949 +	parameter. */
  1.6950 +		KStoreEntryChanged =0x00000020,
  1.6951 +	/** The store contents have substantially changed and the TSY is recommending that 
  1.6952 +	the client performs a refresh by reading all the contents again. */
  1.6953 +		KStoreDoRefresh =0x00000040
  1.6954 +		};
  1.6955 +
  1.6956 +	IMPORT_C void NotifyStoreEvent(TRequestStatus& aReqStatus, TUint32& aEvent, TInt& aIndex) const;
  1.6957 +
  1.6958 +protected:
  1.6959 +	CMobilePhoneStorePtrHolder* iStorePtrHolder;
  1.6960 +
  1.6961 +protected:
  1.6962 +	RMobilePhoneStore();
  1.6963 +	IMPORT_C void BaseConstruct(CMobilePhoneStorePtrHolder* aPtrHolder);
  1.6964 +	IMPORT_C void Destruct();
  1.6965 +	};
  1.6966 +
  1.6967 +
  1.6968 +/*********************************************************/
  1.6969 +//
  1.6970 +// Call based functionality (RMobileCall)
  1.6971 +// 
  1.6972 +/*********************************************************/
  1.6973 +
  1.6974 +
  1.6975 +
  1.6976 +class CMobileCallPtrHolder;
  1.6977 +
  1.6978 +class RMobileCall : public RCall
  1.6979 +/** Provides access to the functionality associated with a specific mobile call.
  1.6980 +
  1.6981 +RMobileCall encapsulates access to a mobile phone. The functionality of RMobileCall 
  1.6982 +is divided into a number of functional units, for the purpose of easier documentation 
  1.6983 +and navigation and selectable support by TSY. 
  1.6984 +
  1.6985 +Note: Some RMobileCall function members must be supported by the TSY while 
  1.6986 +others are part of optional "functional unit" and only need to be supported
  1.6987 +if the TSY supports that functional unit. When a functional unit is mandatory 
  1.6988 +then the TSY should at least support the Get...Caps() member function to indicate 
  1.6989 +the member functions that are supported for this unit. 
  1.6990 + */
  1.6991 +	{
  1.6992 +public:
  1.6993 +	IMPORT_C RMobileCall();
  1.6994 +	/***********************************************************************************/
  1.6995 +	//
  1.6996 +	//  Mobile call parameters - used within Dial/Answer API
  1.6997 +	//
  1.6998 +	/***********************************************************************************/
  1.6999 +
  1.7000 +	// used to set iExtensionId in RCall::TCallParams
  1.7001 +/** The mobile call parameter extension IDs.
  1.7002 +
  1.7003 +Modes: Common */
  1.7004 +	enum TMobileCallParamsExtensionId
  1.7005 +		{
  1.7006 +	/** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV1. */
  1.7007 +		KETelMobileCallParamsV1=KETelExtMultimodeV1,
  1.7008 +	/** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV1.
  1.7009 +	
  1.7010 +	Modes: Common */
  1.7011 +		KETelMobileDataCallParamsV1,
  1.7012 +	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV1.
  1.7013 +	
  1.7014 +	Modes: GSM/WCDMA */
  1.7015 +		KETelMobileHscsdCallParamsV1,
  1.7016 +	/** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV2.
  1.7017 +	
  1.7018 +	Modes: Common */
  1.7019 +		KETelMobileCallParamsV2=KETelExtMultimodeV2,
  1.7020 +	/** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV2.
  1.7021 +	
  1.7022 +	Modes: Common */
  1.7023 +		KETelMobileDataCallParamsV2,
  1.7024 +	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV2.
  1.7025 +
  1.7026 +	Modes: GSM/WCDMA */
  1.7027 +		KETelMobileHscsdCallParamsV2,
  1.7028 +	/** The iExtensionId contents indicate that the packaged class is a TMobileCallParamsV7.
  1.7029 +
  1.7030 +	Modes: GSM/WCDMA */ 
  1.7031 +		KETelMobileCallParamsV7=KEtelExtMultimodeV7,
  1.7032 +	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV7.
  1.7033 +
  1.7034 +	Modes: GSM/WCDMA */
  1.7035 +		KETelMobileHscsdCallParamsV7,
  1.7036 +		
  1.7037 +	/** The iExtensionId contents indicate that the packaged class is a TMobileHscsdCallParamsV8.
  1.7038 +
  1.7039 +	Modes: GSM/WCDMA */
  1.7040 +		KETelMobileHscsdCallParamsV8 = KEtelExtMultimodeV8,
  1.7041 +
  1.7042 +	/** The iExtensionId contents indicate that the packaged class is a TMobileDataCallParamsV8.
  1.7043 +
  1.7044 +	Modes: GSM/WCDMA */
  1.7045 +		KETelMobileDataCallParamsV8,
  1.7046 +		
  1.7047 +	/** The iExtensionId contents indicate that the packaged class is a TEtel3rdPartyMobileCallParamsV1. 
  1.7048 +			
  1.7049 +	Modes: Common */	
  1.7050 +	KETel3rdPartyCallParamsV1=KETelExt3rdPartyV1
  1.7051 +		
  1.7052 +		};
  1.7053 +
  1.7054 +/** Caller Id restriction settings.
  1.7055 +
  1.7056 +Modes: Common
  1.7057 +
  1.7058 +@see TMobileCallParamsV1 */
  1.7059 +	enum TMobileCallIdRestriction
  1.7060 +		{
  1.7061 +	/** The default setting should be used if the user has not explicitly requested 
  1.7062 +	their identity to be restricted/allowed. */
  1.7063 +		EIdRestrictDefault,
  1.7064 +	/** The user has explicitly requested their identity to be sent for this call. */
  1.7065 +		ESendMyId,
  1.7066 +	/** The user has explicitly requested their identity not to be sent for this call. */
  1.7067 +		EDontSendMyId
  1.7068 +		};
  1.7069 +
  1.7070 +	class TMobileCallCugV1 : public RMobilePhone::TMultimodeType
  1.7071 +/** This class is used to set up a CUG (Closed User Group) call. 
  1.7072 +
  1.7073 +TMobileCallCugV1() is valid in GSM/WCDMA mode only. The client application 
  1.7074 +should set the CUG settings for the call depending on the user's choice. If
  1.7075 +the user has not explicitly requested a CUG call then this parameter should 
  1.7076 +indicate that explicit CUG invoke is false. The TSY ignores this parameter 
  1.7077 +if in CDMA mode. 
  1.7078 +*/
  1.7079 +		{
  1.7080 +	public:
  1.7081 +		IMPORT_C TMobileCallCugV1();
  1.7082 +	public:
  1.7083 +	/** A boolean indicating whether Closed User Group is being explicitly invoked by 
  1.7084 +	the client or not. If this parameter is false, the other entries in this structure 
  1.7085 +	will be ignored. */
  1.7086 +		TBool	iExplicitInvoke;
  1.7087 +	/** The Closed User Group index that the user has specified for this call (if no
  1.7088 +	index has been specified then this element will equal -1). */
  1.7089 +		TInt	iCugIndex;
  1.7090 +	/** A boolean indicating whether the user has suppressed their Outgoing Access option 
  1.7091 +	or not. */
  1.7092 +		TBool	iSuppressOA;
  1.7093 +	/** A boolean indicating whether the user has suppressed the use of their preferential 
  1.7094 +	Closed User Group or not. */
  1.7095 +		TBool	iSuppressPrefCug;
  1.7096 +		};
  1.7097 +	
  1.7098 +/** Multicall Operation set-up.
  1.7099 +
  1.7100 +Mode: WCDMA */
  1.7101 +	enum TMobileCallMulticallBearerMode
  1.7102 +		{
  1.7103 +	/** Multicall is not supported. */
  1.7104 +		EMulticallNotSupported,
  1.7105 +	/** MS will accept incoming call and establish a connection using an existing bearer. */
  1.7106 +		EMulticallShareBearer,
  1.7107 +	/** MS will accept incoming call and establish a connection by creating a new bearer. */
  1.7108 +		EMulticallNewBearer
  1.7109 +		};
  1.7110 +
  1.7111 +	/** 
  1.7112 +	 The originator of a call.
  1.7113 +	 
  1.7114 +	 @see RSat::TCallParamOrigin
  1.7115 +	 */
  1.7116 +	enum TCallParamOrigin
  1.7117 +		{
  1.7118 +		/** The call originator is unknown. */
  1.7119 +		EOriginatorUnknown,
  1.7120 +		/** The call originated/originates from the SIM. */
  1.7121 +		EOriginatorSIM,
  1.7122 +		/** The call originated/originates from an Etel Client. */
  1.7123 +		EOriginatorEtelClient,
  1.7124 +		/** The call originated/originates from an external device connected to the modem. */
  1.7125 +		EOriginatorExternal 
  1.7126 +		}; 
  1.7127 +
  1.7128 +	/** The maximum size of a sub-address.
  1.7129 +
  1.7130 +	 @see TSubAddress
  1.7131 +
  1.7132 +	 @see RSat::KSubAddressMaxSize*/
  1.7133 +	enum {KSubAddressMaxSize=21};
  1.7134 +
  1.7135 +	/** A buffer to hold the sub-address of a telephone number. 
  1.7136 +	 
  1.7137 +	 @see KSubAddressMaxSize
  1.7138 +	 
  1.7139 +	 @see RSat::TSubAddress
  1.7140 +	 */
  1.7141 +	typedef TBuf<KSubAddressMaxSize> TSubAddress;	
  1.7142 +
  1.7143 +	/** The maximum size of the 8-bit capability configuration parameter buffer.
  1.7144 +	 @see TCcp
  1.7145 +	 
  1.7146 +	 @see RSat::KCcpMaxSize
  1.7147 +	 */
  1.7148 +	enum {KCcpMaxSize=15};
  1.7149 +
  1.7150 +	/** TCcp ( Capability configuration parameters ) is an 8-bit data buffer that
  1.7151 +	contains the bearer capabilities as coded in ETSI 24.008(Ver 04.11 2003-06) and 
  1.7152 +	defined in ETSI 31.111. It is 15 bytes long as it does not include the IEI (Information 
  1.7153 +	Element Identity).
  1.7154 +	
  1.7155 +	@see TMobileCallParamsV7
  1.7156 +	
  1.7157 +	@see RSat::TCcp
  1.7158 +	*/
  1.7159 +	typedef TBuf8<KCcpMaxSize> TCcp;
  1.7160 +
  1.7161 +	/** Bearer Capability Repeat Indicator.
  1.7162 +	 
  1.7163 +	 @see TMobileCallParamsV7
  1.7164 +	 
  1.7165 +	 @see RSat::TBCRepeatIndicator
  1.7166 +	 */
  1.7167 +	enum TBCRepeatIndicator
  1.7168 +	        {
  1.7169 +	        /** The alternate mode of the Bearer Capability Repeat Indicator. */
  1.7170 +	        EBCAlternateMode,
  1.7171 +	        /** Support of fallback - mode 1 preferred, mode 2 selected if setup of mode 1 fails. */
  1.7172 +	        EBCFallbackMode,
  1.7173 +	        /** Service change and fallback - mode 1 alternate mode 2, mode 1 preferred. */
  1.7174 +	        EBCServiceChangeAndFallbackMode
  1.7175 +	        };
  1.7176 +
  1.7177 +	/** Describes the state of the icon.
  1.7178 +	    
  1.7179 +	@see TIconId
  1.7180 +	
  1.7181 +	@see RSat::TIconQualifier
  1.7182 +	*/
  1.7183 +	enum TIconQualifier
  1.7184 +	        {
  1.7185 +	        /** Icon qualifier is not set. */
  1.7186 +	        EIconQualifierNotSet,
  1.7187 +	        /** Icon is not present. */
  1.7188 +	        ENoIconId,
  1.7189 +	        /** Icon is present; It is self explanatory. 
  1.7190 +	         Display instead of the alpha ID or text string. */
  1.7191 +	        ESelfExplanatory,
  1.7192 +	        /** Icon is present; It is not self explanatory. 
  1.7193 +	         Display both the icon and the alpha ID or text string. */
  1.7194 +	        ENotSelfExplanatory
  1.7195 +	        };
  1.7196 +
  1.7197 +	/** Holds details about an icon.
  1.7198 +	
  1.7199 +	@see TMobileCallParamsV7
  1.7200 +	@see TMobileCallInfoV7
  1.7201 +	
  1.7202 +	@see RSat::TIconId
  1.7203 +	*/
  1.7204 +	struct TIconId
  1.7205 +	        {
  1.7206 +	        /** Describes the state of the icon. */
  1.7207 +	        TIconQualifier iQualifier;
  1.7208 +	        /** Icon identifier */
  1.7209 +	        TUint8 iIdentifier;
  1.7210 +	        };
  1.7211 +
  1.7212 +	/** The maximum size of the alpha ID buffer.
  1.7213 +
  1.7214 +	@see TAlphaIdBuf
  1.7215 +	
  1.7216 +	@see RSat::KAlphaIdMaxSize
  1.7217 +	*/
  1.7218 +	enum {KAlphaIdMaxSize=254};
  1.7219 +
  1.7220 +	/**
  1.7221 +	A buffer to hold an alpha identifier. 
  1.7222 +	
  1.7223 +	@see TMobileCallParamsV7
  1.7224 +	@see TMobileCallInfoV7
  1.7225 +	
  1.7226 +	@see RSat::TAlphaIdBuf
  1.7227 +	*/
  1.7228 +	typedef TBuf<KAlphaIdMaxSize> TAlphaIdBuf;
  1.7229 +	
  1.7230 +	 
  1.7231 +	class TMobileCallParamsV1 : public RCall::TCallParams
  1.7232 +/** Defines the parameters used for set-up of a call of any type. 
  1.7233 +*/
  1.7234 +		{
  1.7235 +	public:
  1.7236 +		IMPORT_C TMobileCallParamsV1();
  1.7237 +	public:
  1.7238 +	/** Call Id restriction setting to be used for this call.
  1.7239 +
  1.7240 +	@see TMobileCallIdRestriction */
  1.7241 +		TMobileCallIdRestriction iIdRestrict;
  1.7242 +	/** Closed User Group setting to be used for this call.
  1.7243 +	
  1.7244 +	@see TMobileCallCugV1 */
  1.7245 +		TMobileCallCugV1 iCug;
  1.7246 +	/** Specifies whether this call attempt is user initiated (EFalse) or a client initiated 
  1.7247 +	redial (ETrue). */
  1.7248 +		TBool iAutoRedial;
  1.7249 +		};
  1.7250 +
  1.7251 +	/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API function 
  1.7252 +	member. */
  1.7253 +	typedef TPckg<TMobileCallParamsV1> TMobileCallParamsV1Pckg;
  1.7254 +
  1.7255 +	
  1.7256 + 
  1.7257 + 	class TMobileCallParamsV2 : public TMobileCallParamsV1
  1.7258 + 	/** Defines the parameters used for set-up of a call of any type 
  1.7259 +	for version v2.0 of the API.
  1.7260 +	A new parameter (iBearerMode) is required to support Multicall.
  1.7261 +	
  1.7262 +	@publishedPartner
  1.7263 +	@released 
  1.7264 + 	*/
  1.7265 + 		{
  1.7266 + 	public:
  1.7267 + 		IMPORT_C TMobileCallParamsV2();
  1.7268 + 	public:
  1.7269 +	/** The bearer mode. */
  1.7270 + 		TMobileCallMulticallBearerMode iBearerMode;
  1.7271 + 		};
  1.7272 + 
  1.7273 + 	/** A typedef'd packaged TMobileCallParamsV1 for passing through a generic API 
  1.7274 +	function member. */
  1.7275 + 	typedef TPckg<TMobileCallParamsV2> TMobileCallParamsV2Pckg;
  1.7276 + 
  1.7277 +
  1.7278 + 	class TMobileCallParamsV7 : public TMobileCallParamsV2
  1.7279 + 	/** Defines the parameters used for set-up of a call of any type 
  1.7280 +	for version v7.0 of the API.
  1.7281 +
  1.7282 +	@publishedPartner
  1.7283 +	@released 
  1.7284 + 	*/
  1.7285 + 		{        
  1.7286 + 	public:
  1.7287 + 		IMPORT_C TMobileCallParamsV7();
  1.7288 + 	public:
  1.7289 + 		/**
  1.7290 + 		 The origin of the call.
  1.7291 + 		 */
  1.7292 + 		TCallParamOrigin iCallParamOrigin;        
  1.7293 + 		/**
  1.7294 + 		 The sub-address of the remote party. 
  1.7295 + 		 */
  1.7296 + 		TSubAddress iSubAddress;
  1.7297 + 		/**
  1.7298 + 		 Capability configuration parameters for the first bearer.
  1.7299 + 		 */
  1.7300 + 		TCcp iBearerCap1;
  1.7301 + 		/**
  1.7302 + 		 Capability configuration parameters for the second bearer. 		  
  1.7303 + 		 */
  1.7304 + 		TCcp iBearerCap2;
  1.7305 + 		/**
  1.7306 + 		 The bearer capability repeat indicator. 
  1.7307 + 		 */
  1.7308 + 		TBCRepeatIndicator iBCRepeatIndicator;
  1.7309 + 		/**
  1.7310 + 		 The icon identifier of the icon to display.  
  1.7311 + 		 This can be used, for example, to provide 
  1.7312 + 		 graphical notification that the call is taking place.
  1.7313 + 		 
  1.7314 + 		 @see TIconQualifier
  1.7315 + 		 */	 	
  1.7316 + 		TIconId iIconId;
  1.7317 + 		/**
  1.7318 + 		 Buffer to hold the alpha identifier.  This is used to describe
  1.7319 + 		 the icon stored in iIconId if iIconId.iQualifier is set to
  1.7320 + 		 RMobileCall::ENotSelfExplanatory, 
  1.7321 + 		 RMobileCall::EIconQualifierNotSet or 
  1.7322 + 		 RMobileCall::ENoIconId.
  1.7323 + 		 */
  1.7324 +	 	TAlphaIdBuf iAlphaId;
  1.7325 + 		};
  1.7326 + 	
  1.7327 + 	/** A typedef'd packaged TMobileCallParamsV7 for passing through a generic API 
  1.7328 +	function member. */
  1.7329 + 	typedef TPckg<TMobileCallParamsV7> TMobileCallParamsV7Pckg;
  1.7330 + 	
  1.7331 +	/***********************************************************************************/
  1.7332 +	//
  1.7333 +	// Mobile Call Data Functional Unit
  1.7334 +	//
  1.7335 +	/***********************************************************************************/
  1.7336 +
  1.7337 +/** In GSM mode, maps to list of supported speeds returned in response to AT+CBST=?. 
  1.7338 +In CDMA mode, maps to data rates supported by supported service options.
  1.7339 +
  1.7340 +@see TMobileCallDataCapsV1 */
  1.7341 +	enum TMobileCallDataSpeedCaps
  1.7342 +		{
  1.7343 +	/** Call can support autobauding. */
  1.7344 +		KCapsSpeedAutobauding = 0x00000001,
  1.7345 +	/** Call can support a speed of 2400bps. */
  1.7346 +		KCapsSpeed2400  = 0x00000002,
  1.7347 +	/** Call can support a speed of 4800bps. */
  1.7348 +		KCapsSpeed4800  = 0x00000004,
  1.7349 +	/** Call can support a speed of 9600bps. */
  1.7350 +		KCapsSpeed9600  = 0x00000008,
  1.7351 +	/** Call can support a speed of 14400bps. */
  1.7352 +		KCapsSpeed14400 = 0x00000010,
  1.7353 +	/** Call can support a speed of 19200bps. */
  1.7354 +		KCapsSpeed19200 = 0x00000020,
  1.7355 +	/** Call can support a speed of 28800bps. */
  1.7356 +		KCapsSpeed28800 = 0x00000040,
  1.7357 +	/** Call can support a speed of 32000bps. */
  1.7358 +		KCapsSpeed32000 = 0x00000080,
  1.7359 +	/** Call can support a speed of 33600bps. */
  1.7360 +		KCapsSpeed33600 = 0x00000100,
  1.7361 +	/** Call can support a speed of 38400bps. */
  1.7362 +		KCapsSpeed38400 = 0x00000200,
  1.7363 +	/** Call can support a speed of 43200bps. */
  1.7364 +		KCapsSpeed43200 = 0x00000400,
  1.7365 +	/** Call can support a speed of 48000bps. */
  1.7366 +		KCapsSpeed48000 = 0x00000800,
  1.7367 +	/** Call can support a speed of 56000bps. */
  1.7368 +		KCapsSpeed56000 = 0x00001000,
  1.7369 +	/** Call can support a speed of 57600bps. */
  1.7370 +		KCapsSpeed57600 = 0x00002000,
  1.7371 +	/** Call can support a speed of 64000bps. */
  1.7372 +		KCapsSpeed64000 = 0x00004000,
  1.7373 +	/** Call can support extended data speed capabilities. This flag is reserved for 
  1.7374 +	future expansion of API and should always be set to zero. */
  1.7375 +		KCapsSpeedExtended = 0x80000000		
  1.7376 +		};
  1.7377 +
  1.7378 +/** List of supported values of the <speed> parameter returned in response to AT+CBST=?
  1.7379 +
  1.7380 +Not applicable to CDMA mode
  1.7381 +
  1.7382 +@see TMobileDataCallParamsV1 */
  1.7383 +	enum TMobileCallDataProtocolCaps
  1.7384 +		{
  1.7385 +	/** Call can support V.22bis standard
  1.7386 +	
  1.7387 +	Modes: COMMON */
  1.7388 +		KCapsProtocolV22bis = 0x00000001,
  1.7389 +	/** Call can support V.32 standard.
  1.7390 +	
  1.7391 +	Modes: COMMON */
  1.7392 +		KCapsProtocolV32 = 0x00000002,
  1.7393 +	/** Call can support V.34 standard.
  1.7394 +	
  1.7395 +	Modes: COMMON */
  1.7396 +		KCapsProtocolV34 = 0x00000004,
  1.7397 +	/** Call can support V.110 standard.
  1.7398 +	
  1.7399 +	Modes: GSM/WCDMA */
  1.7400 +		KCapsProtocolV110 = 0x00000008,
  1.7401 +	/** Call can support V.120 standard.
  1.7402 +	
  1.7403 +	Modes: GSM/WCDMA */
  1.7404 +		KCapsProtocolV120 = 0x00000010,
  1.7405 +	/** Call can support bit transparent service.
  1.7406 +	
  1.7407 +	Modes: GSM/WCDMA */
  1.7408 +		KCapsProtocolBitTransparent = 0x00000020,
  1.7409 +	/** Call can support X31 flag stuffing standard.
  1.7410 +	
  1.7411 +	Modes: GSM/WCDMA */
  1.7412 +		KCapsProtocolX31FlagStuffing = 0x00000040,
  1.7413 +	/** Call can support both PIAF standards (32000bps and 64000bps).
  1.7414 +	
  1.7415 +	Modes: GSM/WCDMA */
  1.7416 +		KCapsProtocolPIAFS = 0x00000080,
  1.7417 +	/** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN
  1.7418 +	with voice fallback.
  1.7419 +	
  1.7420 +	Modes: WCDMA */
  1.7421 +		KCapsPstnMultimediaVoiceFallback = 0x00000100,
  1.7422 +	/** Call can support request for Multimedia protocol (3G-324M) over a call to PSTN
  1.7423 +	without voice fallback
  1.7424 +	
  1.7425 +	Modes: WCDMA */
  1.7426 +		KCapsPstnMultimedia = 0x00000200,
  1.7427 +	/** Call can support request for Multimedia protocol (3G-324M) over a call to ISDN 
  1.7428 +	(voice fallback not possible).
  1.7429 +	
  1.7430 +	Modes: WCDMA */
  1.7431 +		KCapsIsdnMultimedia = 0x00000400,
  1.7432 +	/** Call can support extended data carrier capabilities. This flag is reserved for 
  1.7433 +	future expansion and should always be set to zero for v1.0 of this API.
  1.7434 +	
  1.7435 +	Modes: COMMON */
  1.7436 +		KCapsProtocolExtended = 0x80000000
  1.7437 +		};
  1.7438 +
  1.7439 +/** In GSM mode, maps to list of supported <name> returned in response to AT+CBST=? 
  1.7440 +In CDMA mode, maps to supported service options.
  1.7441 +
  1.7442 +Modes: COMMON
  1.7443 +
  1.7444 +@see TMobileCallDataCapsV1 */
  1.7445 +	enum TMobileCallDataServiceCaps
  1.7446 +		{
  1.7447 +		KCapsDataCircuitAsynchronous = 0x00000001,
  1.7448 +		KCapsDataCircuitAsynchronousRDI = 0x00000002,
  1.7449 +		KCapsDataCircuitSynchronous = 0x00000004,
  1.7450 +		KCapsDataCircuitSynchronousRDI = 0x00000008,
  1.7451 +	/** Call can support "PAD Access (asynchronous) (UDI)".
  1.7452 +	
  1.7453 +	Modes: GSM/WCDMA */
  1.7454 +		KCapsPADAsyncUDI = 0x00000010,
  1.7455 +	/** Call can support "PAD Access (asynchronous) (RDI)"
  1.7456 +
  1.7457 +	Modes: GSM/WCDMA */
  1.7458 +		KCapsPADAsyncRDI = 0x00000020,
  1.7459 +	/** Call can support "Packet Access (synchronous) (UDI)" 
  1.7460 +	
  1.7461 +	Modes: GSM/WCDMA */
  1.7462 +		KCapsPacketAccessSyncUDI = 0x00000040,
  1.7463 +	/** Call can support "Packet Access (synchronous) (RDI)".
  1.7464 +
  1.7465 +	Modes: GSM/WCDMA */
  1.7466 +		KCapsPacketAccessSyncRDI = 0x00000080,
  1.7467 +	/** Call can support extended data service capabilities. This flag is reserved for 
  1.7468 +	future expansion of this API and should always be set to zero for v1.0 of 
  1.7469 +	this API.
  1.7470 +	
  1.7471 +	Modes: COMMON */
  1.7472 +		KCapsServiceExtended = 0x80000000
  1.7473 +		};
  1.7474 +
  1.7475 +/** Maps to list of supported <ce> returned in response to AT+CBST=?
  1.7476 +
  1.7477 +Not applicable to CDMA mode.
  1.7478 +
  1.7479 +@see TMobileCallDataCapsV1 */
  1.7480 +	enum TMobileCallDataQoSCaps
  1.7481 +		{
  1.7482 +	/** Call can support a request for "transparent only" connection. */
  1.7483 +		KCapsTransparent = 0x00000001,
  1.7484 +	/** Call can support a request for "non-transparent only" connection. */
  1.7485 +		KCapsNonTransparent = 0x00000002,
  1.7486 +	/** Call can support a request for "transparent preferred" connection. */
  1.7487 +		KCapsTransparentPreferred = 0x00000004,
  1.7488 +	/** Call can support a request for "non-transparent preferred" connection. */
  1.7489 +		KCapsNonTransparentPreferred = 0x00000008
  1.7490 +		};
  1.7491 +
  1.7492 +/** Supported Air Interface User Rates. */
  1.7493 +	enum TMobileCallAiurCodingCaps
  1.7494 +		{
  1.7495 +	/** Air interface user rate of 4.8k is supported. */
  1.7496 +		KCapsAiurCoding48 = 0x01,
  1.7497 +	/** Air interface user rate of 9.6k is supported. */
  1.7498 +		KCapsAiurCoding96 = 0x04,
  1.7499 +	/** Air interface user rate of 14.4k is supported. */
  1.7500 +		KCapsAiurCoding144 = 0x08
  1.7501 +		};
  1.7502 +
  1.7503 +/** HSCSD coding capabilities.
  1.7504 +
  1.7505 +Modes: GSM/WCDMA */
  1.7506 +	enum TMobileCallTchCodingsCaps
  1.7507 +		{
  1.7508 +	/** Call supports HSCSD coding on 4.8K full rate data traffic channel. */
  1.7509 +		KCapsTchCoding48  = 0x00000001,
  1.7510 +	/** Call supports HSCSD coding on 9.6K full rate data traffic channel. */
  1.7511 +		KCapsTchCoding96  = 0x00000004,
  1.7512 +	/** Call supports HSCSD coding on 14.4K full rate data traffic channel. */
  1.7513 +		KCapsTchCoding144 = 0x00000008,
  1.7514 +	/** Call supports HSCSD coding on 28.8K full rate data traffic channel (only possible 
  1.7515 +	when 14.4K is supported). */
  1.7516 +		KCapsTchCoding288 = 0x00000010,
  1.7517 +	/** Call supports HSCSD coding on 32.0K full rate data traffic channel (only possible 
  1.7518 +	in a two-timeslot configuration). */
  1.7519 +		KCapsTchCoding320 = 0x00000020,
  1.7520 +	/** Call supports HSCSD coding on 43.2K full rate data traffic channel (only possible 
  1.7521 +	when 14.4K is supported). */
  1.7522 +		KCapsTchCoding432 = 0x00000040
  1.7523 +		};
  1.7524 +
  1.7525 +/** The call asymmetry capabilities.
  1.7526 +
  1.7527 +Modes: GSM/WCDMA
  1.7528 +
  1.7529 +@see TMobileCallDataCapsV1 */
  1.7530 +	enum TMobileCallAsymmetryCaps
  1.7531 +		{
  1.7532 +	/** Call supports "No Preference" option for asymmetry bias of a Non-Transparent
  1.7533 +	ECSD call. */
  1.7534 +		KCapsAsymmetryNoPreference= 0x00000001,
  1.7535 +	/** Call supports "Downlink bias" option for asymmetry bias of a Non-Transparent 
  1.7536 +	ECSD call. 
  1.7537 +	
  1.7538 +	This means 8-PSK modulation is preferred downlink and GMSK modulation uplink. */
  1.7539 +		KCapsAsymmetryDownlink = 0x00000002,
  1.7540 +	/** Call supports "Uplink bias" option for asymmetry bias of a Non-Transparent ECSD 
  1.7541 +	call. 
  1.7542 +	
  1.7543 +	This means 8-PSK modulation is preferred uplink and GMSK modulation downlink. */
  1.7544 +		KCapsAsymmetryUplink = 0x00000004
  1.7545 +		};
  1.7546 +
  1.7547 +/** The supported Call RLP versions.
  1.7548 +
  1.7549 +Modes: GSM/WCDMA
  1.7550 +
  1.7551 +@see TMobileCallDataCapsV1 */
  1.7552 +	enum TMobileCallRLPVersionCaps
  1.7553 +		{
  1.7554 +	/** Call supports the single link, basic RLP version 0. */
  1.7555 +		KCapsRLPSingleLinkVersion0 = 0x00000001,
  1.7556 +	/** Call supports the single link, extended RLP version 1. */
  1.7557 +		KCapsRLPSingleLinkVersion1 = 0x00000002,
  1.7558 +	/** Call supports the multi link, RLP version 2. */
  1.7559 +		KCapsRLPMultiLinkVersion2  = 0x00000004
  1.7560 +		};
  1.7561 +
  1.7562 +/** The supported V42bis options.
  1.7563 +
  1.7564 +Modes: GSM/WCDMA
  1.7565 +
  1.7566 +@see TMobileCallDataCapsV1 */
  1.7567 +	enum TMobileCallV42bisCaps
  1.7568 +		{
  1.7569 +	/** Call supports V42bis compression in initiator-responder direction. */
  1.7570 +		KCapsV42bisTxDirection = 0x00000001,
  1.7571 +	/** Call supports V42bis compression in responder-initiator direction. */
  1.7572 +		KCapsV42bisRxDirection = 0x00000002,
  1.7573 +	/** Call supports V42bis compression in both directions. */
  1.7574 +		KCapsV42bisBothDirections = 0x00000004
  1.7575 +		};
  1.7576 +
  1.7577 +	
  1.7578 +
  1.7579 +	class TMobileCallDataCapsV1 : public RMobilePhone::TMultimodeType
  1.7580 +	/** Defines the capabilities of a circuit switched data call. 
  1.7581 +	@publishedPartner
  1.7582 +	@released
  1.7583 +	*/
  1.7584 +		{
  1.7585 +	public:
  1.7586 +		IMPORT_C TMobileCallDataCapsV1();
  1.7587 +	public:
  1.7588 +	/** Data speed capabilities - a bit wise sum of the caps defined in TMobileCallDataSpeedCaps. */
  1.7589 +		TUint32	iSpeedCaps;
  1.7590 +	/** Data protocol capabilities - a bit wise sum of the caps defined in TMobileCallDataProtocolCaps. */
  1.7591 +		TUint32	iProtocolCaps;
  1.7592 +	/** Data service capabilities - a bit wise sum of the caps defined in TMobileCallDataServiceCaps. */
  1.7593 +		TUint32	iServiceCaps;
  1.7594 +	/** Data QoS capabilities - a bit wise sum of the caps defined in TMobileCallDataQoSCaps.
  1.7595 +	
  1.7596 +	Note: Only available in GSM/WCDMA mode. */
  1.7597 +		TUint32	iQoSCaps;
  1.7598 +	/** A boolean indicating whether or not the MS supports HSCSD for this call. If 
  1.7599 +	this attribute equals EFalse all the following attributes are invalid.
  1.7600 +
  1.7601 +	Note: Only available in GSM/WCDMA mode. */
  1.7602 +		TBool	iHscsdSupport;
  1.7603 +	/** For HSCSD: The multi-slot class supported. */
  1.7604 +		TInt	iMClass;
  1.7605 +	/** For HSCSD: The maximum supported number of time-slots in the receive (down-link) 
  1.7606 +	direction. */
  1.7607 +		TInt	iMaxRxTimeSlots;
  1.7608 +	/** For HSCSD: The maximum supported number of time-slots in the transmit (up-link) 
  1.7609 +	direction. */
  1.7610 +		TInt	iMaxTxTimeSlots;
  1.7611 +	/** For HSCSD: The maximum supported total number of receive and transmit time-slots 
  1.7612 +	that can be used at same time. */
  1.7613 +		TInt	iTotalRxTxTimeSlots;
  1.7614 +	/** For HSCSD: A bit-wise sum of the supported air interface channel codings defined 
  1.7615 +	in TMobileCallAiurCodingCaps. */
  1.7616 +		TUint32	iCodingCaps;
  1.7617 +	/** For HSCSD: A bit-wise sum of the supported asymmetry bias defined in TMobileCallAsymmetryCaps. */
  1.7618 +		TUint32 iAsymmetryCaps;
  1.7619 +	/** For HSCSD: A boolean indicating whether or not the MS supports automatic user 
  1.7620 +	initiated service level upgrading. */
  1.7621 +		TBool 	iUserInitUpgrade;
  1.7622 +	/** For HSCSD and CSD: A bit-wise sum of the supported Radio Link Protocol versions 
  1.7623 +	defined in TMobileCallRLPVersionCaps. */
  1.7624 +		TUint32	iRLPVersionCaps;
  1.7625 +	/** For HSCSD and CSD: A bit-wise sum of the supported V42bis compression capabilities 
  1.7626 +	defined in TMobileCallV42bisCaps . */
  1.7627 +		TUint32	iV42bisCaps;
  1.7628 +		};
  1.7629 +
  1.7630 +/** A typedef'd packaged TMobileCallDataCapsV1 for passing through a generic API 
  1.7631 +function member. */
  1.7632 +	typedef TPckg<TMobileCallDataCapsV1> TMobileCallDataCapsV1Pckg;
  1.7633 +
  1.7634 +	IMPORT_C TInt GetMobileDataCallCaps(TDes8& aCaps) const;
  1.7635 +	IMPORT_C void NotifyMobileDataCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
  1.7636 +
  1.7637 +/** The call setup requested data speed.
  1.7638 +
  1.7639 +@see TMobileDataCallParamsV1 */
  1.7640 +	enum TMobileCallDataSpeed
  1.7641 +		{
  1.7642 +	/** Call set-up will request speed depending on data carrier chosen. */
  1.7643 +		ESpeedUnspecified,
  1.7644 +	/** Call set-up will request autobauding. */
  1.7645 +		ESpeedAutobauding,
  1.7646 +	/** Call set-up will request 2400bps. */
  1.7647 +		ESpeed2400,
  1.7648 +	/** Call set-up will request 4800bps. */
  1.7649 +		ESpeed4800,
  1.7650 +	/** Call set-up will request 9600bps. */
  1.7651 +		ESpeed9600,
  1.7652 +	/** Call set-up will request 14400bps. */
  1.7653 +		ESpeed14400,
  1.7654 +	/** Call set-up will request 19200bps. */
  1.7655 +		ESpeed19200,
  1.7656 +	/** Call set-up will request 28800bps. */
  1.7657 +		ESpeed28800,
  1.7658 +	/** Call set-up will request 32000bps. */
  1.7659 +		ESpeed32000,
  1.7660 +	/** Call set-up will request 33600bps. */
  1.7661 +		ESpeed33600,
  1.7662 +	/** Call set-up will request 38400bps. */
  1.7663 +		ESpeed38400,
  1.7664 +	/** Call set-up will request 43200bps. */
  1.7665 +		ESpeed43200,
  1.7666 +	/** Call set-up will request 48000bps. */
  1.7667 +		ESpeed48000,
  1.7668 +	/** Call set-up will request 56000bps. */
  1.7669 +		ESpeed56000,
  1.7670 +	/** Call set-up will request 57600bps. */
  1.7671 +		ESpeed57600,
  1.7672 +	/** Call set-up will request 64000bps. */
  1.7673 +		ESpeed64000
  1.7674 +		};
  1.7675 +
  1.7676 +/** The call set-up requested data protocol.
  1.7677 +
  1.7678 +Modes: GSM/WCDMA */
  1.7679 +	enum TMobileCallDataProtocol
  1.7680 +		{
  1.7681 +	/** Call set-up will request carrier depending on data speed chosen. */
  1.7682 +		EProtocolUnspecified,
  1.7683 +	/** Call set-up will request the V.22bis standard. */
  1.7684 +		EProtocolV22bis,
  1.7685 +	/** Call set-up will request the V.32 standard. */
  1.7686 +		EProtocolV32,
  1.7687 +	/** Call set-up will request the V.34 standard. */
  1.7688 +		EProtocolV34,
  1.7689 +	/** Call set-up will request the V.110 standard. */
  1.7690 +		EProtocolV110,
  1.7691 +	/** Call set-up will request the V.120 standard. */
  1.7692 +		EProtocolV120,
  1.7693 +	/** Call set-up will request the X31FlagStuffing standard. */
  1.7694 +		EProtocolX31FlagStuffing,
  1.7695 +	/** Call set-up will request the PIAFS standard. */
  1.7696 +		EProtocolPIAFS,
  1.7697 +	/** Call set-up will request the bit transparent service. */
  1.7698 +		EProtocolBitTransparent,
  1.7699 +	/** Call set-up will request a PSTN multimedia call with voice fallback if multimedia 
  1.7700 +	fails.
  1.7701 +	
  1.7702 +	WCDMA mode only. */
  1.7703 +		EProtocolPstnMultimediaVoiceFallback,
  1.7704 +	/** Call set-up will request a PSTN multimedia call.
  1.7705 +	
  1.7706 +	WCDMA mode only. */
  1.7707 +		EProtocolPstnMultimedia,
  1.7708 +	/** Call set-up will request a ISDN multimedia call.
  1.7709 +	
  1.7710 +	WCDMA mode only. */
  1.7711 +		EProtocolIsdnMultimedia
  1.7712 +		};
  1.7713 +
  1.7714 +/** The call setup requested data services.
  1.7715 +
  1.7716 +Modes: Common
  1.7717 +
  1.7718 +@see TMobileDataCallParamsV1 */
  1.7719 +	enum TMobileCallDataService
  1.7720 +		{
  1.7721 +	/** Call set-up will request its default service type.
  1.7722 +	
  1.7723 +	Modes: Common */
  1.7724 +		EServiceUnspecified,
  1.7725 +	/** Call set-up will request:
  1.7726 +	
  1.7727 +	GSM mode - Data circuit asynchronous (UDI or 3.1 KHz, ex PLMN) service 
  1.7728 +
  1.7729 +	In CDMA mode - Async Data service 
  1.7730 +	
  1.7731 +	Modes: Common */
  1.7732 +		EServiceDataCircuitAsync,
  1.7733 +	/** Call set-up will request Data circuit asynchronous (RDI) service.
  1.7734 +	
  1.7735 +	Modes: GSM/WCDMA */
  1.7736 +		EServiceDataCircuitAsyncRdi,
  1.7737 +	/** Call set-up will request Data circuit synchronous (UDI or 3.1 KHz, ex PLMN) 
  1.7738 +	service.
  1.7739 +	
  1.7740 +	Modes: GSM/WCDMA */
  1.7741 +		EServiceDataCircuitSync,
  1.7742 +	/** Call set-up will request Data circuit synchronous (RDI) service.
  1.7743 +	
  1.7744 +	Modes: GSM/WCDMA */
  1.7745 +		EServiceDataCircuitSyncRdi,
  1.7746 +	/** Call set-up will request PAD asynchronous (UDI) service.
  1.7747 +	
  1.7748 +	Modes: GSM/WCDMA */
  1.7749 +		EServicePADAsyncUDI,
  1.7750 +	/** Call set-up will request PAD asynchronous (RDI) service.
  1.7751 +	
  1.7752 +	Modes: GSM/WCDMA */
  1.7753 +		EServicePADAsyncRDI,
  1.7754 +	/** Call set-up will request Packet Access synchronous (UDI) service.
  1.7755 +	
  1.7756 +	Modes: GSM/WCDMA */
  1.7757 +		EServicePacketAccessSyncUDI,
  1.7758 +	/** Call set-up will request Packet Access synchronous (RDI) service.
  1.7759 +	
  1.7760 +	Modes: GSM/WCDMA */
  1.7761 +		EServicePacketAccessSyncRDI
  1.7762 +		};
  1.7763 +
  1.7764 +/** The call set-up requested quality of service (QoS).
  1.7765 +
  1.7766 +Modes: GSM/WCDMA
  1.7767 +
  1.7768 +@see TMobileDataCallParamsV1 */
  1.7769 +	enum TMobileCallDataQoS
  1.7770 +		{
  1.7771 +	/** Call set-up will request its default connection. */
  1.7772 +		EQoSUnspecified,
  1.7773 +	/** Call set-up will request a transparent connection. */
  1.7774 +		EQoSTransparent,
  1.7775 +	/** Call set-up will request a non-transparent connection. */
  1.7776 +		EQoSNonTransparent,
  1.7777 +	/** Call set-up will prefer a transparent connection. */
  1.7778 +		EQosTransparentPreferred,
  1.7779 +	/** Call set-up will prefer a non-transparent connection. */
  1.7780 +		EQosNonTransparentPreferred
  1.7781 +		};
  1.7782 +
  1.7783 +/** The call set-up requested RLP version.
  1.7784 +
  1.7785 +@see TMobileDataCallParamsV1 */
  1.7786 +	enum TMobileCallDataRLPVersion
  1.7787 +		{
  1.7788 +	/** Call set-up will request no RLP version. */
  1.7789 +		ERLPNotRequested,
  1.7790 +	/** Call set-up will request single link basic RLP (version 0). */
  1.7791 +		ERLPSingleLinkVersion0,
  1.7792 +	/** Call set-up will request single link extended RLP (version 1). */
  1.7793 +		ERLPSingleLinkVersion1,
  1.7794 +	/** Call set-up will prefer multi link RLP (version 2). */
  1.7795 +		ERLPMultiLinkVersion2
  1.7796 +		};
  1.7797 +
  1.7798 +/** The V.42bis parameters used in the call set-up of a V.42bis data call.
  1.7799 +
  1.7800 +@see TMobileDataCallParamsV1 */
  1.7801 +	enum TMobileCallDataV42bis
  1.7802 +		{
  1.7803 +	/** Call set-up will not request V.42bis compression. */
  1.7804 +		EV42bisNeitherDirection,
  1.7805 +	/** Call set-up will request V.42bis compression in initiator-responder direction 
  1.7806 +	only. */
  1.7807 +		EV42bisTxDirection,
  1.7808 +	/** Call set-up will request V.42bis compression in responder-initiator direction 
  1.7809 +	only. */
  1.7810 +		EV42bisRxDirection,
  1.7811 +	/** Call set-up will request V.42bis compression in both directions. */
  1.7812 +		EV42bisBothDirections
  1.7813 +		};
  1.7814 +
  1.7815 +	
  1.7816 +	
  1.7817 +
  1.7818 +	class TMobileDataCallParamsV1 : public TMobileCallParamsV1
  1.7819 +/** Defines the parameters used for setup of a circuit switched data call. 
  1.7820 +*/
  1.7821 +		{
  1.7822 +	public:
  1.7823 +		IMPORT_C TMobileDataCallParamsV1();
  1.7824 +	public:
  1.7825 +	/** The type of data service.
  1.7826 +	
  1.7827 +	@see TMobileCallDataService */
  1.7828 +		TMobileCallDataService iService;
  1.7829 +	/** The data transfer rate.
  1.7830 +
  1.7831 +	@see TMobileCallDataSpeed */
  1.7832 +		TMobileCallDataSpeed iSpeed;
  1.7833 +	/** The ITU-T standard modulation protocol or higher application protocol. */
  1.7834 +		TMobileCallDataProtocol iProtocol;
  1.7835 +	/** The quality of data service.
  1.7836 +	
  1.7837 +	@see TMobileCallDataQoS */
  1.7838 +		TMobileCallDataQoS iQoS;
  1.7839 +	/** The version of Radio Link Protocol.
  1.7840 +	
  1.7841 +	Modes: GSM/WCDMA
  1.7842 +	
  1.7843 +	@see TMobileCallDataRLPVersion */
  1.7844 +		TMobileCallDataRLPVersion iRLPVersion;
  1.7845 +	/** The IWF to MS windows size.
  1.7846 +	
  1.7847 +	Modes: GSM/WCDMA */
  1.7848 +		TInt iModemToMSWindowSize;
  1.7849 +	/** The MS window to IWF size.
  1.7850 +	
  1.7851 +	Modes: GSM/WCDMA */
  1.7852 +		TInt iMSToModemWindowSize;
  1.7853 +	/** The acknowledgement timer.
  1.7854 +	
  1.7855 +	Modes: GSM/WCDMA */
  1.7856 +		TInt iAckTimer;
  1.7857 +	/** The number of retransmission attempts.
  1.7858 +	
  1.7859 +	Modes: GSM/WCDMA */
  1.7860 +		TInt iRetransmissionAttempts;
  1.7861 +	/** The resequencing period in integer format.
  1.7862 +	
  1.7863 +	Modes: GSM/WCDMA */
  1.7864 +		TInt iResequencingPeriod;
  1.7865 +	/** The V42bis compression request parameter.
  1.7866 +	
  1.7867 +	@see TMobileCallDataV42bis */
  1.7868 +		TMobileCallDataV42bis iV42bisReq;
  1.7869 +	/** The number of codewords in the algorithm. */
  1.7870 +		TInt iV42bisCodewordsNum;
  1.7871 +	/** The maximum encodable data string length. */
  1.7872 +		TInt iV42bisMaxStringLength;
  1.7873 +		TBool iUseEdge; // True for ECSD
  1.7874 +		};
  1.7875 +
  1.7876 +/** A typedef'd packaged TMobileDataCallParamsV1 for passing through a generic API 
  1.7877 +function member. */
  1.7878 +	typedef TPckg<TMobileDataCallParamsV1> TMobileDataCallParamsV1Pckg;
  1.7879 +
  1.7880 +	class TMobileDataCallParamsV2 : public TMobileDataCallParamsV1
  1.7881 +/** Defines the parameters used for setup of a circuit switched data call for version 
  1.7882 +v2.0 of the API. 
  1.7883 +*/
  1.7884 +		{
  1.7885 +	public:
  1.7886 +		IMPORT_C TMobileDataCallParamsV2();
  1.7887 +	public:
  1.7888 +	/** The bearer mode. */
  1.7889 +		TMobileCallMulticallBearerMode iBearerMode;
  1.7890 +		};
  1.7891 +
  1.7892 +/** A typedef'd packaged TMobileDataCallParamsV2 for passing through a generic 
  1.7893 +API function member. */
  1.7894 +	typedef TPckg<TMobileDataCallParamsV2> TMobileDataCallParamsV2Pckg;
  1.7895 +
  1.7896 +	class TMobileDataCallParamsV8 : public TMobileDataCallParamsV2
  1.7897 +	/** Defines the parameters used for setup of a circuit switched data call for version 
  1.7898 +	v8.0 of the API. 
  1.7899 +	*/
  1.7900 +		{
  1.7901 +	public:
  1.7902 +		IMPORT_C TMobileDataCallParamsV8();
  1.7903 +	public:
  1.7904 +	/** The origin of the call.
  1.7905 +		
  1.7906 +		@see TCallParamOrigin */
  1.7907 +		TCallParamOrigin iCallParamOrigin;
  1.7908 +	
  1.7909 +	/** The sub-address of the remote party.
  1.7910 +	 	
  1.7911 +	 	@see TSubAddress */
  1.7912 +		TSubAddress iSubAddress;
  1.7913 +	
  1.7914 +	/** Capability configuration parameters for the first bearer. 	 	
  1.7915 +		
  1.7916 +		@see TCcp */
  1.7917 +		TCcp iBearerCap1;
  1.7918 +	
  1.7919 +	/** Capability configuration parameters for the second bearer.
  1.7920 +		
  1.7921 +		@see TCcp */
  1.7922 +		TCcp iBearerCap2;
  1.7923 +	
  1.7924 +	/** The bearer capability repeat indicator. 
  1.7925 +		
  1.7926 +		@see TBCRepeatIndicator */
  1.7927 +		TBCRepeatIndicator iBCRepeatIndicator;
  1.7928 +	
  1.7929 +	/**	The icon identifier of the icon to display.  
  1.7930 +		This can be used, for example, to provide 
  1.7931 +		graphical notification that the call is taking place.
  1.7932 +		 
  1.7933 +		@see TIconQualifier
  1.7934 +		*/	 	
  1.7935 +		TIconId iIconId;
  1.7936 +		
  1.7937 +	/** Buffer to hold the alpha identifier.  This is used to describe
  1.7938 +		the icon stored in iIconId if iIconId.iQualifier is set to
  1.7939 +		RMobileCall::ENotSelfExplanatory, 
  1.7940 +		RMobileCall::EIconQualifierNotSet or 
  1.7941 +		*/
  1.7942 +	 	TAlphaIdBuf iAlphaId;
  1.7943 +		};
  1.7944 +
  1.7945 +/** A typedef'd packaged TMobileDataCallParamsV8 for passing through a generic 
  1.7946 +API function member. */
  1.7947 +	typedef TPckg<TMobileDataCallParamsV8> TMobileDataCallParamsV8Pckg;
  1.7948 +	
  1.7949 +/** The Air interface user rate.
  1.7950 +
  1.7951 +Modes: GSM/WCDMA. */
  1.7952 +	enum TMobileCallAiur
  1.7953 +		{
  1.7954 +	/** Air interface user rate is not set. */
  1.7955 +		EAiurBpsUnspecified,
  1.7956 +	/** Air interface user rate of 9.6Kbps. */
  1.7957 +		EAiurBps9600,
  1.7958 +	/** Air interface user rate of 14.4Kbps. */
  1.7959 +		EAiurBps14400,
  1.7960 +	/** Air interface user rate of 19.2Kbps. */
  1.7961 +		EAiurBps19200,
  1.7962 +	/** Air interface user rate of 28.8Kbps. */
  1.7963 +		EAiurBps28800,
  1.7964 +	/** Air interface user rate of 38.4Kbps. */
  1.7965 +		EAiurBps38400,
  1.7966 +	/** Air interface user rate of 43.2Kbps. */
  1.7967 +		EAiurBps43200,
  1.7968 +	/** Air interface user rate of 57.6Kbps. */
  1.7969 +		EAiurBps57600
  1.7970 +		};
  1.7971 +
  1.7972 +/** Call Asymmetry preferences.
  1.7973 +
  1.7974 +Modes: GSM/WCDMA
  1.7975 +
  1.7976 +@see TMobileHscsdCallParamsV1 */
  1.7977 +	enum TMobileCallAsymmetry
  1.7978 +		{
  1.7979 +	/** There is no preference for Asymmetry Bias. */
  1.7980 +		EAsymmetryNoPreference,
  1.7981 +	/** Downlink Bias is preferred. */
  1.7982 +		EAsymmetryDownlink,
  1.7983 +	/** Uplink Bias is preferred. */
  1.7984 +		EAsymmetryUplink
  1.7985 +		};
  1.7986 +
  1.7987 +/** The call channel coding used.
  1.7988 +
  1.7989 +Modes: GSM/WCDMA */
  1.7990 +	enum TMobileCallTchCoding
  1.7991 +		{
  1.7992 +	/** Channel coding is unspecified. */
  1.7993 +		ETchCodingUnspecified,
  1.7994 +	/** 4.8K full rate data traffic channel is used. */
  1.7995 +		ETchCoding48,
  1.7996 +	/** 9.6K full rate data traffic channel is used. */
  1.7997 +		ETchCoding96,
  1.7998 +	/** 14.4K full rate data traffic channel is used. */
  1.7999 +		ETchCoding144,
  1.8000 +	/** 28.8K full rate data traffic channel is used. */
  1.8001 +		ETchCoding288,
  1.8002 +	/** 32.0K full rate data traffic channel is used. */
  1.8003 +		ETchCoding320,
  1.8004 +	/** 43.2K full rate data traffic channel is used. */
  1.8005 +		ETchCoding432
  1.8006 +		};
  1.8007 +
  1.8008 +	
  1.8009 +
  1.8010 +	class TMobileDataRLPRangesV1 : public RMobilePhone::TMultimodeType
  1.8011 +/** Defines the parameters for minimum and maximum RLP parameter ranges.
  1.8012 +
  1.8013 +Modes: GSM/WCDMA 
  1.8014 +
  1.8015 +*/
  1.8016 +		{
  1.8017 +	public:
  1.8018 +		IMPORT_C TMobileDataRLPRangesV1();
  1.8019 +	public:
  1.8020 +	/** Maximum modem to MS window size value. */
  1.8021 +		TInt  iIWSMax;
  1.8022 +	/** Minimum modem to MS window size value. */
  1.8023 +		TInt  iIWSMin;
  1.8024 +	/** Maximum MS to modem window size value. */
  1.8025 +		TInt  iMWSMax;
  1.8026 +	/** Minimum MS to modem window size value. */
  1.8027 +		TInt  iMWSMin;
  1.8028 +	/** Maximum acknowledgement timer value. */
  1.8029 +		TInt  iT1Max;
  1.8030 +	/** Minimum acknowledgement timer value. */
  1.8031 +		TInt  iT1Min;
  1.8032 +	/** Maximum retransmission attempts value. */
  1.8033 +		TInt  iN2Max;
  1.8034 +	/** Minimum retransmission attempts value. */
  1.8035 +		TInt  iN2Min;
  1.8036 +	/** Maximum resequencing period value. */
  1.8037 +		TInt  iT4Max;
  1.8038 +	/** Minimum resequencing period value. */
  1.8039 +		TInt  iT4Min;
  1.8040 +		};
  1.8041 +
  1.8042 +/** A typedef'd packaged TMobileDataRLPRangesV1 for passing through a generic API 
  1.8043 +function member. */
  1.8044 +	typedef TPckg<TMobileDataRLPRangesV1> TMobileDataRLPRangesV1Pckg;
  1.8045 +
  1.8046 +	IMPORT_C void GetMobileDataCallRLPRange(TRequestStatus& aReqStatus, TInt aRLPVersion, TDes8& aRLPRange) const;
  1.8047 +	
  1.8048 +	class TMobileHscsdCallParamsV1 : public TMobileDataCallParamsV1
  1.8049 +/** The High Speed Circuit Switched Data parameters. 
  1.8050 +*/
  1.8051 +		{
  1.8052 +	public:
  1.8053 +		IMPORT_C TMobileHscsdCallParamsV1();
  1.8054 +	public:
  1.8055 +	/** The wanted Air Interface Rate for the HSCSD call being set-up.
  1.8056 +	
  1.8057 +	Modes: GSM/WCDMA
  1.8058 +
  1.8059 +	@see TMobileCallAiur */
  1.8060 +		TMobileCallAiur	iWantedAiur;
  1.8061 +	/** The wanted number of receive timeslots for the HSCSD call being set-up.
  1.8062 +	
  1.8063 +	Modes: GSM/WCDMA */
  1.8064 +		TInt iWantedRxTimeSlots;
  1.8065 +		TInt iMaxTimeSlots;
  1.8066 +	/** Bit-wise sum of acceptable air interface channel codings TMobileCallAiurCodingCaps 
  1.8067 +	for the HSCSD call being set-up.
  1.8068 +	
  1.8069 +	Modes: GSM/WCDMA */
  1.8070 +		TUint iCodings;
  1.8071 +	/** The wanted asymmetry bias for the HSCSD call being set-up.
  1.8072 +	
  1.8073 +	Modes: GSM/WCDMA
  1.8074 +	
  1.8075 +	@see TMobileCallAsymmetry */
  1.8076 +		TMobileCallAsymmetry  iAsymmetry;
  1.8077 +	/** A boolean indicating whether or not automatic user initiated service level upgrading 
  1.8078 +	is active for the HSCSD call being set-up. ETrue means enabled, EFalse means 
  1.8079 +	disabled.
  1.8080 +	
  1.8081 +	Modes: GSM/WCDMA */
  1.8082 +		TBool iUserInitUpgrade;
  1.8083 +		};
  1.8084 +
  1.8085 +/** A typedef'd packaged TMobileHscsdCallParamsV1 for passing through a generic 
  1.8086 +API function member. */
  1.8087 +	typedef TPckg<TMobileHscsdCallParamsV1> TMobileHscsdCallParamsV1Pckg;
  1.8088 +
  1.8089 +	class TMobileHscsdCallParamsV2 : public TMobileHscsdCallParamsV1
  1.8090 +/** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v2.0 
  1.8091 +of the API. 
  1.8092 +
  1.8093 +*/
  1.8094 +		{
  1.8095 +	public:
  1.8096 +		IMPORT_C TMobileHscsdCallParamsV2();
  1.8097 +	public:
  1.8098 +	/** The bearer mode. */
  1.8099 +		TMobileCallMulticallBearerMode iBearerMode;
  1.8100 +		};
  1.8101 +
  1.8102 +/** A typedef'd packaged TMobileHscsdCallParamsV2 for passing through a generic 
  1.8103 +API function member. */
  1.8104 +	typedef TPckg<TMobileHscsdCallParamsV2> TMobileHscsdCallParamsV2Pckg;
  1.8105 +
  1.8106 +	
  1.8107 +	class TMobileHscsdCallParamsV7 : public TMobileHscsdCallParamsV2
  1.8108 +	/** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v7.0
  1.8109 +	of the API. 
  1.8110 +	*/
  1.8111 +			{
  1.8112 +		public:
  1.8113 +			IMPORT_C TMobileHscsdCallParamsV7();
  1.8114 +		public:
  1.8115 +			/** The originator of the call. */
  1.8116 +			TCallParamOrigin iCallParamOrigin;
  1.8117 +	 		/**
  1.8118 +	 		 The icon identifier of the icon to display.  
  1.8119 +	 		 This can be used, for example, to provide 
  1.8120 +	 		 graphical notification that the call is taking place.
  1.8121 +	 		 
  1.8122 +	 		 @see TIconQualifier
  1.8123 +	 		 */	 	
  1.8124 +	 		TIconId iIconId;
  1.8125 +	 		/**
  1.8126 +	 		 Buffer to hold the alpha identifier.  This is used to describe
  1.8127 +	 		 the icon stored in iIconId if iIconId.iQualifier is set to
  1.8128 +	 		 RMobileCall::ENotSelfExplanatory, 
  1.8129 +	 		 RMobileCall::EIconQualifierNotSet or 
  1.8130 +	 		 RMobileCall::ENoIconId.
  1.8131 +	 		 */
  1.8132 +		 	TAlphaIdBuf iAlphaId;
  1.8133 +			};
  1.8134 +
  1.8135 +	/** A typedef'd packaged TMobileHscsdCallParamsV7 for passing through a generic 
  1.8136 +	API function member. */
  1.8137 +	typedef TPckg<TMobileHscsdCallParamsV7> TMobileHscsdCallParamsV7Pckg;
  1.8138 +	
  1.8139 +	class TMobileHscsdCallParamsV8 : public TMobileHscsdCallParamsV7
  1.8140 +		/** Call parameters for High Speed Circuit Switched Data (HSCSD) for version v8.0
  1.8141 +		of the API. 
  1.8142 +		*/
  1.8143 +			{
  1.8144 +		public:
  1.8145 +			IMPORT_C TMobileHscsdCallParamsV8();
  1.8146 +		public:
  1.8147 +		
  1.8148 +			/** The sub-address of the remote party.
  1.8149 +				
  1.8150 +			@see TSubAddress */
  1.8151 +			TSubAddress iSubAddress;
  1.8152 +			
  1.8153 +	 		/** Capability configuration parameters for the first bearer. 
  1.8154 +			
  1.8155 +			@see TCcp */
  1.8156 +	 		TCcp iBearerCap1;
  1.8157 +	 		
  1.8158 +	 		/** Capability configuration parameters for the second bearer. 	
  1.8159 +	 		
  1.8160 +	 		@see TCcp */
  1.8161 +	 		TCcp iBearerCap2;
  1.8162 +	 		
  1.8163 +	 		/** The bearer capability repeat indicator. 
  1.8164 +	 		
  1.8165 +	 		@see TBCRepeatIndicator */
  1.8166 +		 	TBCRepeatIndicator iBCRepeatIndicator;
  1.8167 +			};
  1.8168 +
  1.8169 +	/** A typedef'd packaged TMobileHscsdCallParamsV8 for passing through a generic 
  1.8170 +	API function member. */
  1.8171 +	typedef TPckg<TMobileHscsdCallParamsV8> TMobileHscsdCallParamsV8Pckg;
  1.8172 +	
  1.8173 +	IMPORT_C void SetDynamicHscsdParams(TRequestStatus& aReqStatus, TMobileCallAiur aAiur, TInt aRxTimeslots) const;
  1.8174 +
  1.8175 +	class TMobileCallHscsdInfoV1 : public RMobilePhone::TMultimodeType
  1.8176 +/** The HSCSD settings.
  1.8177 +
  1.8178 +Modes: GSM/WCDMA 
  1.8179 +
  1.8180 +*/
  1.8181 +		{
  1.8182 +	public:
  1.8183 +		IMPORT_C TMobileCallHscsdInfoV1();
  1.8184 +	public:
  1.8185 +	/** Current AIUR for the HSCSD call.
  1.8186 +	
  1.8187 +	@see TMobileCallAiur */
  1.8188 +		TMobileCallAiur	iAiur;
  1.8189 +	/** Current number of receive timeslots for the HSCSD call. */
  1.8190 +		TInt iRxTimeSlots;
  1.8191 +	/** Current number of transmit time slots for the HSCSD call. */
  1.8192 +		TInt iTxTimeSlots;
  1.8193 +	/** Current channel coding for the HSCSD call. */
  1.8194 +		TMobileCallTchCoding iCodings;
  1.8195 +		};
  1.8196 +
  1.8197 +/** A typedef'd packaged TMobileCallHscsdInfoV1 for passing through a generic API 
  1.8198 +function member. */
  1.8199 +	typedef TPckg<TMobileCallHscsdInfoV1> TMobileCallHscsdInfoV1Pckg;
  1.8200 +
  1.8201 +	class TMobileCallHscsdInfoV7 : public TMobileCallHscsdInfoV1
  1.8202 +	/** Version 7 of the HSCSD settings.
  1.8203 +
  1.8204 +	Modes: GSM/WCDMA 
  1.8205 +	*/
  1.8206 +			{
  1.8207 +		public:
  1.8208 +			IMPORT_C TMobileCallHscsdInfoV7();
  1.8209 +		public:
  1.8210 +			/** The originator of the call. */
  1.8211 +			TCallParamOrigin iCallParamOrigin;
  1.8212 +	    	/**
  1.8213 +	    	The icon identifier which can be used for indication that the 
  1.8214 +	    	call is being made.
  1.8215 +	     	*/
  1.8216 +	    	TIconId iIconId;
  1.8217 +	    	/**
  1.8218 +	    	The alpha identifier to describe the icon.
  1.8219 +	     	*/
  1.8220 +	    	TAlphaIdBuf iAlphaId;
  1.8221 +	    	/**
  1.8222 +	    	An indication of whether the call parameters have been modified.  
  1.8223 +	    	Set to ETrue if they have been modified, EFalse otherwise.
  1.8224 +	     	*/
  1.8225 +	    	TBool iParamsCallControlModified;
  1.8226 +			};
  1.8227 +
  1.8228 +	/** A typedef'd packaged TMobileCallHscsdInfoV7 for passing through a generic API 
  1.8229 +function member. */
  1.8230 +	typedef TPckg<TMobileCallHscsdInfoV7> TMobileCallHscsdInfoV7Pckg;		
  1.8231 +	
  1.8232 +	class TMobileCallHscsdInfoV8 : public TMobileCallHscsdInfoV7
  1.8233 +	/** Version 8 of the HSCSD settings.
  1.8234 +
  1.8235 +	Modes: GSM/WCDMA 
  1.8236 +	*/
  1.8237 +			{
  1.8238 +		public:
  1.8239 +			IMPORT_C TMobileCallHscsdInfoV8();
  1.8240 +		public:
  1.8241 +		
  1.8242 +			/** The sub-address of the remote party.
  1.8243 +				
  1.8244 +			@see TSubAddress */
  1.8245 +			TSubAddress iSubAddress;
  1.8246 +			
  1.8247 +	 		/** Capability configuration parameters for the first bearer. 
  1.8248 +			
  1.8249 +			@see TCcp */
  1.8250 +	 		TCcp iBearerCap1;
  1.8251 +	 		
  1.8252 +	 		/** Capability configuration parameters for the second bearer. 	
  1.8253 +	 		
  1.8254 +	 		@see TCcp */
  1.8255 +	 		TCcp iBearerCap2;
  1.8256 +	 		
  1.8257 +	 		/** The bearer capability repeat indicator. 
  1.8258 +	 		
  1.8259 +	 		@see TBCRepeatIndicator */
  1.8260 +		 	TBCRepeatIndicator iBCRepeatIndicator;
  1.8261 +			};
  1.8262 +
  1.8263 +	/** A typedef'd packaged TMobileCallHscsdInfoV8 for passing through a generic 
  1.8264 +	API function member. */
  1.8265 +	typedef TPckg<TMobileCallHscsdInfoV8> TMobileCallHscsdInfoV8Pckg;	
  1.8266 +	
  1.8267 +	
  1.8268 +	IMPORT_C TInt GetCurrentHscsdInfo(TDes8& aHSCSDInfo) const;
  1.8269 +	IMPORT_C void NotifyHscsdInfoChange(TRequestStatus& aReqStatus, TDes8& aHSCSDInfo) const;
  1.8270 +
  1.8271 +	/***********************************************************************************/
  1.8272 +	//
  1.8273 +	// Multimedia Calls
  1.8274 +	//
  1.8275 +	/***********************************************************************************/
  1.8276 +
  1.8277 +	IMPORT_C void AnswerMultimediaCallAsVoice(TRequestStatus& aReqStatus, const TDesC8& aCallParams, TName& aCallName) const;
  1.8278 +	IMPORT_C void NotifyVoiceFallback(TRequestStatus& aReqStatus, TName& aCallName) const;
  1.8279 +
  1.8280 +	//
  1.8281 +	// Mobile Alternating Call Functional Unit
  1.8282 +	//
  1.8283 +
  1.8284 +	IMPORT_C void SwitchAlternatingCall(TRequestStatus& aReqStatus) const;
  1.8285 +	IMPORT_C void NotifyAlternatingCallSwitch(TRequestStatus& aReqStatus) const;
  1.8286 +
  1.8287 +	/***********************************************************************************/
  1.8288 +	//
  1.8289 +	// MobileCallControl functional unit
  1.8290 +	//
  1.8291 +	/***********************************************************************************/
  1.8292 +
  1.8293 +/** Mobile call control capabilites.
  1.8294 +
  1.8295 +Modes: Common */
  1.8296 +	enum TMobileCallControlCaps 
  1.8297 +		{
  1.8298 +		//KCapsData=0x00000001, // taken from etel.h
  1.8299 +		//KCapsFax=0x00000002,
  1.8300 +		//KCapsVoice=0x00000004,
  1.8301 +		//KCapsDial=0x00000008,
  1.8302 +		//KCapsConnect=0x00000010,
  1.8303 +		//KCapsHangUp=0x00000020,
  1.8304 +		//KCapsAnswer=0x00000040,
  1.8305 +		//KCapsLoanDataPort=0x00000080, 
  1.8306 +		//KCapsRecoverDataPort=0x00000100
  1.8307 +	/** Indicates that this call can be put on hold. This implies that the call is currently 
  1.8308 +	active and that there is no other held call. */
  1.8309 +		KCapsHold = 0x00000200,
  1.8310 +	/** Indicates that this call can be resumed. This implies that the call is currently 
  1.8311 +	on hold and that there is no other active call. 
  1.8312 +	
  1.8313 +	Modes: Common */
  1.8314 +		KCapsResume = 0x00000400,
  1.8315 +	/** Indicates that this call's state can be swapped to the opposite state. This
  1.8316 +	implies that this call is either active or held. There may be another call 
  1.8317 +	in the opposite state and if this is the case then both calls will be simultaneously 
  1.8318 +	swapped to their opposite state. 
  1.8319 +	
  1.8320 +	Modes: Common */
  1.8321 +		KCapsSwap = 0x00000800,
  1.8322 +	/** Indicates that this incoming call can be deflected to another destination. 
  1.8323 +	
  1.8324 +	Modes: GSM/WCDMA */
  1.8325 +		KCapsDeflect = 0x00001000,
  1.8326 +	/** Indicates that this call can be transferred to the remote party of another call. 
  1.8327 +	For this capability to be set there must be one active call and one held or 
  1.8328 +	dialing call.
  1.8329 +	
  1.8330 +	Modes: GSM/WCDMA */
  1.8331 +		KCapsTransfer = 0x00002000,
  1.8332 +	/** Indicates that this call can be joined either to another single call to form 
  1.8333 +	a conference call or to an existing conference call.
  1.8334 +	
  1.8335 +	Modes: Common */
  1.8336 +		KCapsJoin = 0x00004000,
  1.8337 +	/** Indicates that this call (within a conference call) can go into One to One mode. 
  1.8338 +	This action would put the rest of the conference call on hold. 
  1.8339 +	
  1.8340 +	Modes: GSM/WCDMA */
  1.8341 +		KCapsOneToOne = 0x00008000,
  1.8342 +	/** Indicates that the user can activate a CCBS request on this failed call set-up. 
  1.8343 +	
  1.8344 +	Modes: GSM/WCDMA */
  1.8345 +		KCapsActivateCCBS = 0x00010000,
  1.8346 +	/** Indicates that this call is part of an alternating call and the client can call 
  1.8347 +	SwitchAlternatingCall() on this call in order to switch it to its other mode.
  1.8348 +	
  1.8349 +	Modes: GSM/WCDMA */
  1.8350 +		KCapsSwitchAlternatingCall = 0x00020000,
  1.8351 +	/** Indicates that this call can use/create a new bearer. This means that multiple 
  1.8352 +	calls (multicall) can be active at the same time using no more that 7 bearers 
  1.8353 +	simultaneously. The other option is to swap with an active call, therefore 
  1.8354 +	it becomes held and shares the same bearer.
  1.8355 +	
  1.8356 +	Modes: WCDMA */
  1.8357 +		KCapsMulticall = 0x00040000
  1.8358 +		};
  1.8359 +
  1.8360 +
  1.8361 +/** Mobile call events capabilities.
  1.8362 +
  1.8363 +Modes: Common */
  1.8364 +	enum TMobileCallEventCaps
  1.8365 +		{
  1.8366 +	/** Indicates that local hold notifications are supported.
  1.8367 +	
  1.8368 +	Modes: Common */
  1.8369 +		KCapsLocalHold = 0x00000001,
  1.8370 +	/** Indicates that local resume notifications are supported. 
  1.8371 +	
  1.8372 +	Modes: Common */
  1.8373 +		KCapsLocalResume = 0x00000002,
  1.8374 +	/** Indicates that local deflect transfer notifications are supported. 
  1.8375 +	
  1.8376 +	Modes: GSM/WCDMA */
  1.8377 +		KCapsLocalDeflectCall = 0x00000004,
  1.8378 +	/** Indicates that local explicit transfer notifications are supported. 
  1.8379 +	
  1.8380 +	Modes: GSM/WCDMA */
  1.8381 +		KCapsLocalTransfer = 0x00000008,
  1.8382 +	/** Indicates that remote hold notifications are supported. 
  1.8383 +
  1.8384 +	Modes: GSM/WCDMA */
  1.8385 +		KCapsRemoteHold = 0x00000010,
  1.8386 +	/** Indicates that remote resume notifications are supported. 
  1.8387 +	
  1.8388 +	Modes: GSM/WCDMA */
  1.8389 +		KCapsRemoteResume = 0x00000020,
  1.8390 +	/** Indicates that remote termination notifications are supported. 
  1.8391 +	
  1.8392 +	Modes: Common */
  1.8393 +		KCapsRemoteTerminate = 0x00000040,
  1.8394 +	/** Indicates that remote conference invocation notifications are supported.
  1.8395 +	
  1.8396 +	Modes: GSM/WCDMA */
  1.8397 +		KCapsRemoteConferenceCreate = 0x00000080
  1.8398 +		};
  1.8399 +
  1.8400 +	
  1.8401 +
  1.8402 +	class TMobileCallCapsV1 : public RMobilePhone::TMultimodeType
  1.8403 +/** Defines the dynamic capabilities of a mobile call. 
  1.8404 +*/
  1.8405 +		{
  1.8406 +	public:
  1.8407 +		IMPORT_C TMobileCallCapsV1();
  1.8408 +	public:
  1.8409 +	/** Call control capability information - a bit wise sum of TMobileCallControlCaps 
  1.8410 +	constants */
  1.8411 +		TUint32 iCallControlCaps;
  1.8412 +	/** Call event capability information - a bit wise sum of TMobileCallEventCaps constants. */
  1.8413 +		TUint32 iCallEventCaps;
  1.8414 +		};
  1.8415 +
  1.8416 +/** A typedef'd packaged TMobileCallCapsV1 for passing through a generic API function 
  1.8417 +member. */
  1.8418 +	typedef TPckg<TMobileCallCapsV1> TMobileCallCapsV1Pckg;
  1.8419 +
  1.8420 +	IMPORT_C TInt GetMobileCallCaps(TDes8& aCaps) const;
  1.8421 +	IMPORT_C void NotifyMobileCallCapsChange(TRequestStatus& aReqStatus, TDes8& aCaps) const;
  1.8422 +
  1.8423 +	IMPORT_C void Hold(TRequestStatus& aReqStatus) const;
  1.8424 +	IMPORT_C void Resume(TRequestStatus& aReqStatus) const;
  1.8425 +	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
  1.8426 +	IMPORT_C void DialISV(TRequestStatus& aStatus,const TDesC8& aCallParams,const TTelNumberC& aTelNumber);
  1.8427 +	IMPORT_C void AnswerIncomingCallISV(TRequestStatus& aStatus,const TDesC8& aCallParams);
  1.8428 +
  1.8429 +/** The type of call deflection requested.
  1.8430 +
  1.8431 +@see Deflect() */
  1.8432 +	enum TMobileCallDeflect
  1.8433 +		{
  1.8434 +	/** Destination is not specified. */
  1.8435 +		EDeflectUnspecified,
  1.8436 +	/** Call will be deflected to voicemail. */
  1.8437 +		EDeflectVoicemail,
  1.8438 +	/** Call will be deflected to the pre-registered number for the call forwarding 
  1.8439 +	service. */
  1.8440 +		EDeflectRegisteredNumber,
  1.8441 +	/** Call will be deflected to the number supplied in the aDestination parameter. */
  1.8442 +		EDeflectSuppliedNumber
  1.8443 +		};
  1.8444 +
  1.8445 +	IMPORT_C void Deflect(TRequestStatus& aReqStatus, TMobileCallDeflect aDeflectType, const RMobilePhone::TMobileAddress& aDestination) const;
  1.8446 +	IMPORT_C void Transfer(TRequestStatus& aReqStatus) const;
  1.8447 +	IMPORT_C void GoOneToOne(TRequestStatus& aReqStatus) const;
  1.8448 +
  1.8449 +/** The mobile call events.
  1.8450 +
  1.8451 +Modes: Common */
  1.8452 +	enum TMobileCallEvent
  1.8453 +		{
  1.8454 +	/** The call has been placed on hold as a result of a local action. 
  1.8455 +	
  1.8456 +	Modes: Common */
  1.8457 +		ELocalHold,
  1.8458 +	/** The call has been resumed as a result of a local action. 
  1.8459 +	
  1.8460 +	Modes: Common */
  1.8461 +		ELocalResume,
  1.8462 +	/** The call has been deflected to another remote party as a result of a local action. 
  1.8463 +	
  1.8464 +	
  1.8465 +	Modes: GSM/WCDMA */
  1.8466 +		ELocalDeflectCall,
  1.8467 +	/** The call has been transferred to another remote party as a result of a local 
  1.8468 +	action. 
  1.8469 +	
  1.8470 +	Modes: Common */
  1.8471 +		ELocalTransfer,
  1.8472 +	/** The call has been placed on hold by the remote connected party. 
  1.8473 +	
  1.8474 +	Modes: GSM/WCDMA */
  1.8475 +		ERemoteHold,
  1.8476 +	/** The call has been resumed by the remote connected party. 
  1.8477 +	
  1.8478 +	Modes: GSM/WCDMA */
  1.8479 +		ERemoteResume,
  1.8480 +	/** The call has been terminated by the remote party. 
  1.8481 +	
  1.8482 +	Modes: Common */
  1.8483 +		ERemoteTerminated,
  1.8484 +	/** The call has been joined by the remote connected party to other call(s) to create/add 
  1.8485 +	to a conference call. 
  1.8486 +	
  1.8487 +	Modes: GSM/WCDMA */
  1.8488 +		ERemoteConferenceCreate,
  1.8489 +		ERemoteTransferring,
  1.8490 +		ERemoteTransferAlerting,
  1.8491 +	/** The outgoing call has been barred by the remote party. 
  1.8492 +	
  1.8493 +	Modes: GSM/WCDMA */
  1.8494 +		ERemoteBarred,
  1.8495 +	/** The call is being forwarded by the remote party. 
  1.8496 +	
  1.8497 +	Modes: GSM/WCDMA */
  1.8498 +		ERemoteForwarding,
  1.8499 +	/** The call is waiting at the remote end. 
  1.8500 +	
  1.8501 +	Modes: GSM/WCDMA */
  1.8502 +		ERemoteWaiting,
  1.8503 +	/** The outgoing call has been barred by the local party. 
  1.8504 +	
  1.8505 +	Modes: GSM/WCDMA */
  1.8506 +		ELocalBarred
  1.8507 +		};
  1.8508 +
  1.8509 +	IMPORT_C void NotifyCallEvent(TRequestStatus& aReqStatus, TMobileCallEvent& aEvent) const;
  1.8510 +
  1.8511 +/** Describes the possible call states. */
  1.8512 +	enum TMobileCallStatus
  1.8513 +		{
  1.8514 +	/** Indicates that the call status is unknown. */
  1.8515 +		EStatusUnknown,			// same as RCall::EStatusUnknown
  1.8516 +	/** Indicates that the call is idle. */
  1.8517 +		EStatusIdle,			// same as RCall::EStatusIdle
  1.8518 +		EStatusDialling,		// same as RCall::EStatusDialling
  1.8519 +	/** Indicates that the MT call is ringing but not answered yet by the local user. */
  1.8520 +		EStatusRinging,			// same as RCall::EStatusRinging
  1.8521 +	/** Indicates that the local user has answered the MT call but the network has not 
  1.8522 +	acknowledged the call connection yet. */
  1.8523 +		EStatusAnswering,		// same as RCall::EStatusAnswering
  1.8524 +	/** MO Call: the network notifies to the MS that the remote party is now ringing. */
  1.8525 +		EStatusConnecting,		// same as RCall::EStatusConnecting
  1.8526 +	/** Indicates that call is connected and active. */
  1.8527 +		EStatusConnected,		// same as RCall::EStatusConnected
  1.8528 +	/** Indicates that call is disconnecting. */
  1.8529 +		EStatusDisconnecting,	// same as RCall::EStatusHangingUp
  1.8530 +	/** Indicates that the call is disconnecting with inband data (to enable the network 
  1.8531 +	to send an audio tone), signifying that the call is not to be released until 
  1.8532 +	the user terminates the call. */
  1.8533 +		EStatusDisconnectingWithInband,
  1.8534 +	/** Indicates that call is undergoing temporary channel loss and it may or may not 
  1.8535 +	be reconnected. */
  1.8536 +		EStatusReconnectPending,
  1.8537 +	/** Indicates that the call is connected but on hold. */
  1.8538 +		EStatusHold,
  1.8539 +	/** Indicates that the call is the non-active half of an alternating call. This 
  1.8540 +	call is waiting for its active half or the remote end to switch alternating 
  1.8541 +	call mode. */
  1.8542 +		EStatusWaitingAlternatingCallSwitch,
  1.8543 +		EStatusTransferring,
  1.8544 +		EStatusTransferAlerting
  1.8545 +		};
  1.8546 +
  1.8547 +	IMPORT_C TInt GetMobileCallStatus(TMobileCallStatus& aStatus) const;
  1.8548 +	IMPORT_C void NotifyMobileCallStatusChange(TRequestStatus& aReqStatus, TMobileCallStatus& aStatus) const;
  1.8549 +
  1.8550 +	IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC& aTelNumber) const;
  1.8551 +	IMPORT_C void DialNoFdnCheck(TRequestStatus& aStatus,const TDesC8& aCallParams,const TDesC& aTelNumber) const;
  1.8552 +	
  1.8553 +	IMPORT_C void DialCallControl(TRequestStatus& aStatus, const TDesC8& aCallParams, const TTelNumberC& aTelNumber) const;
  1.8554 +	
  1.8555 +	/**
  1.8556 +	Contains audio tone events.
  1.8557 +	*/
  1.8558 +	enum TMobileCallAudioToneEvent
  1.8559 +		{
  1.8560 +		/**
  1.8561 +		Stop audio tone.
  1.8562 +		*/
  1.8563 +		EAudioStop,
  1.8564 +		/**
  1.8565 +		Start audio tone.
  1.8566 +		*/
  1.8567 +		EAudioStart		
  1.8568 +		};
  1.8569 +		
  1.8570 +	/**
  1.8571 +	List of 3GPP defined supervisory audio tones taken from technical specification 3GPP TS 22.001 v4.0.0 Annex F.
  1.8572 +
  1.8573 +	This enumeration is based on the signal information element specified in Table 10.5.130/3GPP TS 24.008 v5.15.0
  1.8574 +	*/
  1.8575 +	enum TMobileCallAudioTones	
  1.8576 +		{
  1.8577 +		/** 
  1.8578 +		No tone.  Not defined in specification used for initialisation of 
  1.8579 +		iTone class member variable during TAudioToneV3 construction.
  1.8580 +		*/
  1.8581 +		ENoTone,
  1.8582 +		/**
  1.8583 +		Dial tone.
  1.8584 +		*/
  1.8585 +		EDialTone,
  1.8586 +		/**
  1.8587 +		Subscriber busy tone.
  1.8588 +		*/
  1.8589 +		ESubscriberBusyTone,
  1.8590 +		/**
  1.8591 +		Congestion tone.
  1.8592 +		*/
  1.8593 +		ECongestionTone,
  1.8594 +		/**
  1.8595 +		Radio path acknowledgement tone.
  1.8596 +		*/
  1.8597 +		ERadioPathAcknowledgement,
  1.8598 +		/**
  1.8599 +		Radio path not available tone.
  1.8600 +		*/
  1.8601 +		ERadioPathNotAvailable,
  1.8602 +		/**
  1.8603 +		Call dropped (Mobile Originated only).
  1.8604 +		*/
  1.8605 + 		EMOCallDropped,
  1.8606 + 		/**
  1.8607 +		Error special information.
  1.8608 +		*/
  1.8609 + 		EErrorSpecialInformation,
  1.8610 + 		/**
  1.8611 +		Number unobtainable.
  1.8612 +		*/
  1.8613 + 		ENumberUnobtainable,
  1.8614 + 		/**
  1.8615 +		Authentication failure.
  1.8616 +		*/
  1.8617 + 		EAuthenticationFailure,
  1.8618 + 		/**
  1.8619 +		Call waiting.
  1.8620 +		*/
  1.8621 + 		ECallWaiting,
  1.8622 + 		/**
  1.8623 +		Ringback tone.
  1.8624 +		*/
  1.8625 +		ERingback
  1.8626 +		};
  1.8627 +
  1.8628 +	class TAudioToneV3 :  public RMobilePhone::TMultimodeType
  1.8629 +	/**
  1.8630 +	Audio tone version 1 class. Contains information relating to the  call control playing of audio tones. 
  1.8631 +	Tones maybe generated by the network (in-band) or signalled to be played locally by the ME.
  1.8632 +	@publishedPartner
  1.8633 +	@released
  1.8634 +	*/
  1.8635 +		{
  1.8636 +	public:
  1.8637 +		IMPORT_C TAudioToneV3();
  1.8638 +		
  1.8639 +	public:
  1.8640 +		/**
  1.8641 +		Indicates whether the tone is starting or stopping playing.
  1.8642 +		
  1.8643 +		@see TMobileCallAudioToneEvent
  1.8644 +		*/
  1.8645 +		TMobileCallAudioToneEvent iEvent;
  1.8646 +		/**
  1.8647 +		Indicates which tone is to be played.
  1.8648 +		
  1.8649 +		@see TMobileCallAudioTones
  1.8650 +		*/
  1.8651 +		TMobileCallAudioTones	iTone;
  1.8652 +		/**
  1.8653 +		Indicates whether the tone is played by the network or is to be played locally by the ME.
  1.8654 +		*/
  1.8655 +		TBool iPlayedLocally; 
  1.8656 +		};
  1.8657 +
  1.8658 +	/**
  1.8659 +	Packaging typedef for TAudioToneV3 class.
  1.8660 +	*/
  1.8661 +	typedef TPckg<TAudioToneV3> TAudioToneV3Pckg;
  1.8662 +	
  1.8663 +	IMPORT_C void NotifyAudioToneEvent(TRequestStatus& aReqStatus, TDes8& aToneInfo) const;
  1.8664 +
  1.8665 +	/***********************************************************************************/
  1.8666 +	//
  1.8667 +	// MobilePrivacy functional unit
  1.8668 +	//
  1.8669 +	/***********************************************************************************/
  1.8670 +
  1.8671 +	IMPORT_C TInt SetPrivacy(RMobilePhone::TMobilePhonePrivacy aPrivacySetting) const;
  1.8672 +	IMPORT_C void NotifyPrivacyConfirmation(TRequestStatus& aReqStatus, RMobilePhone::TMobilePhonePrivacy& aPrivacySetting) const;
  1.8673 +
  1.8674 +	/***********************************************************************************/
  1.8675 +	//
  1.8676 +	// MobileTrafficChannel function unit
  1.8677 +	//
  1.8678 +	/***********************************************************************************/
  1.8679 +
  1.8680 +/** Call traffic channels.
  1.8681 +
  1.8682 +Modes: CDMA */
  1.8683 +	enum TMobileCallTch
  1.8684 +		{
  1.8685 +	/** The traffic channel of the call is unknown. */
  1.8686 +		ETchUnknown,
  1.8687 +	/** The call has a digital traffic channel */
  1.8688 +		ETchDigital,
  1.8689 +	/** The call has an analog traffic channel */
  1.8690 +		ETchAnalog
  1.8691 +		};
  1.8692 +
  1.8693 +	IMPORT_C TInt SetTrafficChannel(TMobileCallTch aTchRequest) const;
  1.8694 +	IMPORT_C void NotifyTrafficChannelConfirmation(TRequestStatus& aReqStatus, TMobileCallTch& aTchType) const;
  1.8695 +
  1.8696 +	/***********************************************************************************/
  1.8697 +	//
  1.8698 +	// MobileCallInformation functional unit
  1.8699 +	//
  1.8700 +	/***********************************************************************************/
  1.8701 +
  1.8702 +	/**
  1.8703 +	Remote party Identity status.
  1.8704 +
  1.8705 +	Modes: Common
  1.8706 +
  1.8707 +	@see TMobileCallRemotePartyInfoV1
  1.8708 +	*/
  1.8709 +	enum TMobileCallRemoteIdentityStatus
  1.8710 +		{
  1.8711 +		/**
  1.8712 +		The remote party's identity can not be determined.  Calling
  1.8713 +		party's Binary Coded Decimal (BCD) number is not available.
  1.8714 +		Cause of No CLI is "unavailable".
  1.8715 +		*/
  1.8716 +		ERemoteIdentityUnknown,
  1.8717 +
  1.8718 +		/**
  1.8719 +		The remote party's identity, or BCD number, is available.
  1.8720 +		However, cause of No CLI has not been set.
  1.8721 +		*/
  1.8722 +		ERemoteIdentityAvailable,
  1.8723 +
  1.8724 +		/**
  1.8725 +		The remote party has suppressed the transmission of its
  1.8726 +		identity; i.e. their BCD number is not available.  Cause of No
  1.8727 +		CLI is "reject by user".
  1.8728 +		*/
  1.8729 +		ERemoteIdentitySuppressed,
  1.8730 +		/**
  1.8731 +		The remote party's identity, or BCD number, is available.  The
  1.8732 +		cause of No CLI is "reject by user".
  1.8733 +
  1.8734 +		To be used where the network has specified that displaying of
  1.8735 +		CLI information of the remote party has been rejected by the
  1.8736 +		caller but the TMobileCallRemotePartyInfoV1::iRemoteNumber
  1.8737 +		parameter has been populated with some other string which may
  1.8738 +		be of use to the client.
  1.8739 +		*/
  1.8740 +		ERemoteIdentityAvailableNoCliRejectedByUser,
  1.8741 +
  1.8742 +		/**
  1.8743 +		The remote party's identity is available; a BCD number is
  1.8744 +		available.  The cause of No CLI is "Interaction with other
  1.8745 +		service".
  1.8746 +
  1.8747 +		To be used where the network has specified that CLI information
  1.8748 +		of the remote party is not available due to ineraction with
  1.8749 +		another service.  However, the
  1.8750 +		TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
  1.8751 +		populated with some other string which may be of use to the
  1.8752 +		client.
  1.8753 +		*/
  1.8754 +		ERemoteIdentityAvailableNoCliInteractionWithOtherService,
  1.8755 +		/**
  1.8756 +		The remote party's identity, or BCD number, is unavailable.
  1.8757 +		Cause of No CLI is "interaction with other service".
  1.8758 +		*/
  1.8759 +		ERemoteIdentityUnavailableNoCliInteractionWithOtherService,
  1.8760 +
  1.8761 +		/**
  1.8762 +		The remote party's identity, or BCD number, is available.
  1.8763 +		Cause of No CLI is "Coin Line/ Payphone".
  1.8764 +
  1.8765 +		To be used where the network has specified that CLI information
  1.8766 +		of the remote party is not available as the caller is calling
  1.8767 +		from a coin/ payphone.  However, the
  1.8768 +		TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
  1.8769 +		populated with some other string which may be of use to the
  1.8770 +		client.
  1.8771 +		*/
  1.8772 +		ERemoteIdentityAvailableNoCliCoinOrPayphone,
  1.8773 +		/**
  1.8774 +		The remote party's identity, or BCD number, is not available.
  1.8775 +		Cause of No CLI is "Coin Line/ Payphone".
  1.8776 +		*/
  1.8777 +		ERemoteIdentityUnavailableNoCliCoinOrPayphone,
  1.8778 +
  1.8779 +		/**
  1.8780 +		The remote party's identity, or BCD number, is available.
  1.8781 +		Cause of No CLI is "unavailable".
  1.8782 +
  1.8783 +		To be used where the network has specified that the CLI
  1.8784 +		information of the remote party is not available but the
  1.8785 +		TMobileCallRemotePartyInfoV1::iRemoteNumber parameter has been
  1.8786 +		populated with some other string which may be of use to the
  1.8787 +		client.
  1.8788 +		*/
  1.8789 +		ERemoteIdentityAvailableNoCliUnavailable
  1.8790 +		};
  1.8791 +
  1.8792 +
  1.8793 +	/**
  1.8794 +	The direction of the mobile call.
  1.8795 +
  1.8796 +	Modes: Common
  1.8797 +
  1.8798 +	@see TMobileCallRemotePartyInfoV1
  1.8799 +	*/
  1.8800 +	enum TMobileCallDirection
  1.8801 +		{
  1.8802 +	/** The direction of the call is unknown. */
  1.8803 +		EDirectionUnknown,
  1.8804 +	/** The call was originated by this phone, i.e. it is an outgoing call. */
  1.8805 +		EMobileOriginated,
  1.8806 +	/** The call was terminated by this phone, i.e. it is an incoming call. */
  1.8807 +		EMobileTerminated
  1.8808 +		};
  1.8809 +
  1.8810 +	enum { KCallingNameSize=80 };
  1.8811 +
  1.8812 +	
  1.8813 +
  1.8814 +	class TMobileCallRemotePartyInfoV1 : public RMobilePhone::TMultimodeType
  1.8815 +/** Defines information about the remote party of a mobile call. 
  1.8816 +*/
  1.8817 +		{
  1.8818 +	public:
  1.8819 +		IMPORT_C TMobileCallRemotePartyInfoV1();
  1.8820 +	public:
  1.8821 +	/** Indicates whether the remote party information in the rest of this structure 
  1.8822 +	is valid or not.
  1.8823 +	
  1.8824 +	Modes: Common
  1.8825 +	
  1.8826 +	@see TMobileCallRemoteIdentityStatus */
  1.8827 +		TMobileCallRemoteIdentityStatus iRemoteIdStatus;
  1.8828 +	/** The direction of the call and hence the role of the remote party, i.e. if the 
  1.8829 +	call is mobile originated then the remote party is the called party whereas 
  1.8830 +	if the call is mobile terminated then the remote party is the calling party.
  1.8831 +	
  1.8832 +	Modes: Common
  1.8833 +	
  1.8834 +	@see TMobileCallDirection */
  1.8835 +		TMobileCallDirection iDirection;
  1.8836 +	/** The phone number of the remote party if available.
  1.8837 +	
  1.8838 +	Modes: Common
  1.8839 +	
  1.8840 +	@see RMobilePhone::TMobileAddress */
  1.8841 +		RMobilePhone::TMobileAddress iRemoteNumber;
  1.8842 +	/** Calling party name available through the CNAP supplementary service (if provisioned). 
  1.8843 +	
  1.8844 +	
  1.8845 +	Modes: Common */
  1.8846 +		TBuf<KCallingNameSize> iCallingName;
  1.8847 +		};
  1.8848 +
  1.8849 +/** A typedef'd packaged TMobileCallRemotePartyInfoV1 for passing through a generic 
  1.8850 +API function member. */
  1.8851 +	typedef TPckg<TMobileCallRemotePartyInfoV1> TMobileCallRemotePartyInfoV1Pckg;
  1.8852 +
  1.8853 +	IMPORT_C void NotifyRemotePartyInfoChange(TRequestStatus& aReqStatus, TDes8& aRemotePartyInfo) const;
  1.8854 +
  1.8855 +/** Determines which fields in the class are valid.
  1.8856 +
  1.8857 +@see TMobileCallInfoV1 */
  1.8858 +	enum TMobileCallInfoFlags
  1.8859 +		{
  1.8860 +	/** The iStartTime field is valid in the call info class.
  1.8861 +	
  1.8862 +	Modes: COMMON */
  1.8863 +		KCallStartTime		= 0x00000001,
  1.8864 +	/** The iDuration field is valid in the call info class.
  1.8865 +	
  1.8866 +	Modes: COMMON */
  1.8867 +		KCallDuration		= 0x00000002,
  1.8868 +	/** The iCallId field is valid in the call info class.
  1.8869 +	
  1.8870 +	Modes: COMMON */
  1.8871 +		KCallId				= 0x00000004,
  1.8872 +	/** The iRemoteParty field is valid in the call info class.
  1.8873 +	
  1.8874 +	Modes: COMMON */
  1.8875 +		KCallRemoteParty	= 0x00000008,
  1.8876 +	/** The iDialledParty field is valid in the call info class.
  1.8877 +	
  1.8878 +	Modes: COMMON */
  1.8879 +		KCallDialledParty	= 0x00000010,
  1.8880 +	/** The iExitCode field is valid in the call info class.
  1.8881 +	
  1.8882 +	Modes: COMMON */
  1.8883 +		KCallExitCode		= 0x00000020,
  1.8884 +	/** The iEmergency field is valid in the call info class.
  1.8885 +	
  1.8886 +	Modes: COMMON */
  1.8887 +		KCallEmergency		= 0x00000040,
  1.8888 +	/** The iForwarded field is valid in the call info class.
  1.8889 +	
  1.8890 +	Modes: COMMON */
  1.8891 +		KCallForwarded		= 0x00000080,
  1.8892 +	/** The iPrivacy field is valid in the call info class.
  1.8893 +	
  1.8894 +	Modes: CDMA */
  1.8895 +		KCallPrivacy		= 0x00000100,
  1.8896 +	/** The iTch field is valid in the call info class.
  1.8897 +	
  1.8898 +	Modes: CDMA */
  1.8899 +		KCallTch			= 0x00000200,
  1.8900 +	/** The iAlternatingCall field is valid in the call info class.
  1.8901 +	
  1.8902 +	Modes: GSM/WCDMA */
  1.8903 +		KCallAlternating	= 0x00000400,
  1.8904 +	/** The iSecurity field is valid in the call info class.
  1.8905 +	
  1.8906 +	Modes: GSM/WCDMA */		
  1.8907 +		KCallSecurity		= 0x00000800,
  1.8908 +	/** The iCallParamOrigin field is valid in the call info class.
  1.8909 +	
  1.8910 +	Modes: GSM/WCDMA */		
  1.8911 +		KCallParamOrigin	= 0x00001000,
  1.8912 +	/** The iIconId field is valid in the call info class.
  1.8913 +	
  1.8914 +	Modes: GSM/WCDMA */		
  1.8915 +		KCallIconId			= 0x00002000,
  1.8916 +	/** The iAlphaId field is valid in the call info class.
  1.8917 +	
  1.8918 +	Modes: GSM/WCDMA */		
  1.8919 +		KCallAlphaId		= 0x00004000,
  1.8920 +	/** The iParamsCallControlModified field is valid in the call 
  1.8921 +	info class.
  1.8922 +	
  1.8923 +	Modes: GSM/WCDMA */		
  1.8924 +		KCallParamsCallControlModified	= 0x00008000,	
  1.8925 +		
  1.8926 +	/** The iSubAddress field is valid in the call 
  1.8927 +	info class.
  1.8928 +					
  1.8929 +	Modes: GSM/WCDMA */		
  1.8930 +		KCallSubAddress	= 0x0010000,	
  1.8931 +				
  1.8932 +	/** The iBearerCap1 field is valid in the call 
  1.8933 +	info class.
  1.8934 +							
  1.8935 +	Modes: GSM/WCDMA */		
  1.8936 +		KCallBearerCap1	= 0x0020000,	
  1.8937 +			
  1.8938 +	/** The iBearerCap2 field is valid in the call 
  1.8939 +	info class.
  1.8940 +									
  1.8941 +	Modes: GSM/WCDMA */		
  1.8942 +		KCallBearerCap2	= 0x0040000,	
  1.8943 +			
  1.8944 +	/** The iBCRepeatIndicator field is valid in the call 
  1.8945 +	info class.
  1.8946 +										
  1.8947 +	Modes: GSM/WCDMA */		
  1.8948 +		KCallBCRepeatIndicator	= 0x0080000,
  1.8949 +				
  1.8950 +		};
  1.8951 +	
  1.8952 +
  1.8953 +	class TMobileCallInfoV1 : public RMobilePhone::TMultimodeType
  1.8954 +/** Defines general information about a mobile call. 
  1.8955 +*/
  1.8956 +		{
  1.8957 +	public:
  1.8958 +		IMPORT_C TMobileCallInfoV1();
  1.8959 +	public:
  1.8960 +	/** A bit-wise sum of TMobileCallInfoFlags indicating which of the following optional 
  1.8961 +	fields contain valid data. */
  1.8962 +		TUint32 iValid;
  1.8963 +	/** The call service (voice, data, fax, aux. voice) that this call provides.
  1.8964 +	
  1.8965 +	@see RMobilePhone::TMobileService */
  1.8966 +		RMobilePhone::TMobileService iService;
  1.8967 +	/** The mobile call status.
  1.8968 +	
  1.8969 +	@see TMobileCallStatus */
  1.8970 +		TMobileCallStatus iStatus;
  1.8971 +	/** The call ID number assigned to an ongoing call. Will equal -1 if the call does 
  1.8972 +	not have an allocated ID. */
  1.8973 +		TInt iCallId;
  1.8974 +	/** The reason for termination of a finished call. Will equal KErrNone if the call 
  1.8975 +	ended normally and KErrNotFound if the call has not ended. */
  1.8976 +		TInt iExitCode;
  1.8977 +	/** ETrue if the call is an emergency call or EFalse if it is not. */
  1.8978 +		TBool iEmergency;
  1.8979 +	/** For a MT call, this attribute equals ETrue if the call has been forwarded to 
  1.8980 +	this phone or EFalse if it has not. For a MO call, this attribute equals ETrue 
  1.8981 +	if the call has been forwarded to another destination or EFalse if it has 
  1.8982 +	not. If the phone can not determine whether the call has been forwarded or 
  1.8983 +	not then the attribute will return EFalse. */
  1.8984 +		TBool iForwarded;
  1.8985 +	/** This attribute indicates whether privacy is on or off for this call.
  1.8986 +	
  1.8987 +	@see RMobilePhone::TMobilePhonePrivacy */
  1.8988 +		RMobilePhone::TMobilePhonePrivacy iPrivacy;
  1.8989 +	/** This attribute indicates whether this call is an alternating call or not.
  1.8990 +	
  1.8991 +	@see RMobilePhone::TMobilePhoneAlternatingCallMode */
  1.8992 +		RMobilePhone::TMobilePhoneAlternatingCallMode iAlternatingCall;
  1.8993 +	/** The current duration of the call.
  1.8994 +	
  1.8995 +	@see TTimeIntervalSeconds */
  1.8996 +		TTimeIntervalSeconds iDuration;
  1.8997 +	/** This attribute indicates whether a digital or analog traffic channel is being 
  1.8998 +	used for this call.
  1.8999 +	
  1.9000 +	@see TMobileCallTch */
  1.9001 +		TMobileCallTch iTch;
  1.9002 +	/** Information about remote party of a connected call.
  1.9003 +	
  1.9004 +	@see TMobileCallRemotePartyInfoV1 */
  1.9005 +		TMobileCallRemotePartyInfoV1 iRemoteParty;
  1.9006 +	/** The original number (including DTMF) dialled for an outgoing call.
  1.9007 +	
  1.9008 +	@see RMobilePhone::TMobileAddress */
  1.9009 +		RMobilePhone::TMobileAddress iDialledParty;
  1.9010 +	/** The time and date the call started.
  1.9011 +	
  1.9012 +	@see TDateTime */
  1.9013 +		TDateTime iStartTime;
  1.9014 +	/** The name of the call.
  1.9015 +	
  1.9016 +	@see TName */
  1.9017 +		TName iCallName;
  1.9018 +	/** The name of the line on which the call is open.
  1.9019 +	
  1.9020 +	@see TName */
  1.9021 +		TName iLineName;
  1.9022 +		};
  1.9023 +
  1.9024 +/** A typedef'd packaged TMobileCallInfoV1 for passing through a generic API function 
  1.9025 +member. */
  1.9026 +	typedef TPckg<TMobileCallInfoV1> TMobileCallInfoV1Pckg;
  1.9027 +	
  1.9028 +	class TMobileCallInfoV3 : public TMobileCallInfoV1
  1.9029 +	/**
  1.9030 +	Extends the TMobileCallInfoV1 claass to include extra call info parameter relating to network security.
  1.9031 +	@publishedPartner
  1.9032 +	@released
  1.9033 +	*/
  1.9034 +		{
  1.9035 +	public:
  1.9036 +		IMPORT_C TMobileCallInfoV3();
  1.9037 +	public:
  1.9038 +		/**
  1.9039 +		Indicates whether Ciphering Status of a call is enabled or disabled. 
  1.9040 +		*/
  1.9041 +		RMobilePhone::TMobilePhoneNetworkSecurity  iSecurity;
  1.9042 +		};
  1.9043 +		
  1.9044 +	typedef TPckg<TMobileCallInfoV3> TMobileCallInfoV3Pckg; ///< Package descriptor to hold a TMobileCallInfoV3.
  1.9045 +
  1.9046 +	
  1.9047 +	class TMobileCallInfoV7 : public TMobileCallInfoV3
  1.9048 +	/**
  1.9049 +	Extends the TMobileCallInfoV3 claass to include extra parameters
  1.9050 +	to indicate the origin of the call, an icon and identifier to 
  1.9051 +	describe the call and an indication of whether the call parameters
  1.9052 +	have been modified.
  1.9053 +	
  1.9054 +	@publishedPartner
  1.9055 +	@released
  1.9056 +	*/
  1.9057 +    	{        
  1.9058 +    public:
  1.9059 +    	IMPORT_C TMobileCallInfoV7();
  1.9060 +    public:
  1.9061 +    	/**
  1.9062 +    	The origin of the call.
  1.9063 +    	*/
  1.9064 +    	TCallParamOrigin iCallParamOrigin;
  1.9065 +    	/**
  1.9066 +    	The icon identifier which can be used for indication that the 
  1.9067 +    	call is being made.
  1.9068 +     	*/
  1.9069 +    	TIconId iIconId;
  1.9070 +    	/**
  1.9071 +    	The alpha identifier to describe the icon.
  1.9072 +     	*/
  1.9073 +    	TAlphaIdBuf iAlphaId;
  1.9074 +    	/**
  1.9075 +    	An indication of whether the call parameters have been modified.  
  1.9076 +    	Set to ETrue if they have been modified, EFalse otherwise.
  1.9077 +     	*/
  1.9078 +    	TBool iParamsCallControlModified;
  1.9079 +    };
  1.9080 +	
  1.9081 +    typedef TPckg<TMobileCallInfoV7> TMobileCallInfoV7Pckg; ///< Package descriptor to hold a TMobileCallInfoV7.
  1.9082 +	
  1.9083 +    class TMobileCallInfoV8 : public TMobileCallInfoV7
  1.9084 +    	/**
  1.9085 +    	Extends the TMobileCallInfoV7 claass to include extra parameters
  1.9086 +    	to indicate the bearer capabilities, repeat indicator and sub address. 
  1.9087 +        	
  1.9088 +    	@publishedPartner
  1.9089 +    	@released
  1.9090 +    	*/
  1.9091 +        {        
  1.9092 +    public:
  1.9093 +       	IMPORT_C TMobileCallInfoV8();
  1.9094 +    public:
  1.9095 +        /** The sub-address of the remote party. 
  1.9096 +    	
  1.9097 +    	@see TSubAddress */
  1.9098 +        TSubAddress iSubAddress;
  1.9099 +        
  1.9100 +        /** Capability configuration parameters for the first bearer. 
  1.9101 +        
  1.9102 +        @see TCcp */
  1.9103 +       	TCcp iBearerCap1;
  1.9104 +        
  1.9105 +        /** Capability configuration parameters for the second bearer. 	 	
  1.9106 +       	
  1.9107 +        @see TCcp */
  1.9108 +       	TCcp iBearerCap2;
  1.9109 +       	
  1.9110 +        /** The bearer capability repeat indicator. 
  1.9111 +       	
  1.9112 +        @see TBCRepeatIndicator */
  1.9113 +        TBCRepeatIndicator iBCRepeatIndicator;
  1.9114 +        };
  1.9115 +    	
  1.9116 +    typedef TPckg<TMobileCallInfoV8> TMobileCallInfoV8Pckg; ///< Package descriptor to hold a TMobileCallInfoV8.
  1.9117 +      
  1.9118 +	IMPORT_C TInt GetMobileCallInfo(TDes8& aCallInfo) const;
  1.9119 +
  1.9120 +	/***********************************************************************************/
  1.9121 +	//
  1.9122 +	// MobileCallEmergency functional unit
  1.9123 +	//
  1.9124 +	/***********************************************************************************/
  1.9125 +
  1.9126 +	IMPORT_C void DialEmergencyCall(TRequestStatus& aReqStatus, const TDesC& aNumber) const;
  1.9127 +
  1.9128 +	/***********************************************************************************/
  1.9129 +	//
  1.9130 +	// MobileCallCompletion
  1.9131 +	//
  1.9132 +	/***********************************************************************************/
  1.9133 +
  1.9134 +	IMPORT_C void ActivateCCBS(TRequestStatus& aReqStatus, TInt& aIndex) const;
  1.9135 +	IMPORT_C TInt RejectCCBS() const;
  1.9136 +		//
  1.9137 +	// User-To-User Signalling Functional Unit
  1.9138 +	//
  1.9139 +	/***********************************************************************************/
  1.9140 +
  1.9141 +/** The UUS capabilities of the call.
  1.9142 +
  1.9143 +Modes: GSM/WCDMA. */
  1.9144 +	enum TMobileCallUUSCaps			// UUS capabilities of the call
  1.9145 +		{
  1.9146 +	/** Indicates that MS supports UUS1 implicit request. */
  1.9147 +		KCapsSetupUUS1Implicit=0x00000001,
  1.9148 +	/** Indicates that MS supports UUS1 explicit request. */
  1.9149 +		KCapsSetupUUS1Explicit=0x00000002,
  1.9150 +	/** Indicates that MS supports UUS2 request. */
  1.9151 +		KCapsSetupUUS2=0x00000004,
  1.9152 +	/** Indicates that MS supports UUS3 request. */
  1.9153 +		KCapsSetupUUS3=0x00000008,
  1.9154 +	/** Indicates that MS supports activating more than one UUS request at a time. */
  1.9155 +		KCapsSetupMultipleUUS=0x00000010,
  1.9156 +	/** Indicates that UUS1 is active for this call. */
  1.9157 +		KCapsActiveUUS1=0x00000020,
  1.9158 +	/** Indicates that UUS2 is active for this call. */
  1.9159 +		KCapsActiveUUS2=0x00000040,
  1.9160 +	/** Indicates that UUS3 is active for this call. */
  1.9161 +		KCapsActiveUUS3=0x00000080
  1.9162 +		};
  1.9163 +
  1.9164 +	IMPORT_C TInt GetUUSCaps(TUint32& aCaps) const;
  1.9165 +	IMPORT_C void NotifyUUSCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
  1.9166 +
  1.9167 +/** UUS Service requests.
  1.9168 +
  1.9169 +Modes: GSM/WCDMA */
  1.9170 +	enum TMobileCallUUSReqs			// UUS Service requests
  1.9171 +		{
  1.9172 +	/** UUS1 is implicitly requested. */
  1.9173 +		KUUS1Implicit=0x00000001,
  1.9174 +	/** UUS1 is explicitly requested, but it is not mandatory for this call to proceed. */
  1.9175 +		KUUS1ExplicitRequested=0x00000002,
  1.9176 +	/** UUS1 is explicitly requested and it is mandatory for this call to proceed. */
  1.9177 +		KUUS1ExplicitRequired=0x00000004,
  1.9178 +	/** UUS2 is (explicitly) requested, but it is not mandatory for this call to proceed. */
  1.9179 +		KUUS2Requested=0x00000008,
  1.9180 +	/** UUS2 is (explicitly) requested and it is mandatory for this call to proceed. */
  1.9181 +		KUUS2Required=0x00000010,
  1.9182 +	/** UUS3 is (explicitly) requested, but it is not mandatory for this call to proceed. */
  1.9183 +		KUUS3Requested=0x00000020,
  1.9184 +	/** UUS3 is (explicitly) requested and it is mandatory for this call to proceed. */
  1.9185 +		KUUS3Required=0x00000040
  1.9186 +		};
  1.9187 +
  1.9188 +	enum 
  1.9189 +		{
  1.9190 +		KMaxUUISize = 129,
  1.9191 +		};
  1.9192 +
  1.9193 +/** Buffer for the UUI element. */
  1.9194 +	typedef TBuf<KMaxUUISize> TMobileCallUUI;
  1.9195 +
  1.9196 +	class  TMobileCallUUSRequestV1 : public RMobilePhone::TMultimodeType
  1.9197 +/** The mobile Call User-to-User Signaling request. 
  1.9198 +*/
  1.9199 +		{
  1.9200 +	public:
  1.9201 +		IMPORT_C  TMobileCallUUSRequestV1();
  1.9202 +	public:
  1.9203 +	/** This field indicates whether the specified service is requested or required 
  1.9204 +	for the call. */
  1.9205 +		TUint             iServiceReq;
  1.9206 +	/** The UUI element. This field only contains data if iServiceReq indicates UUS1.
  1.9207 +	
  1.9208 +	@see TMobileCallUUI */
  1.9209 +		TMobileCallUUI	  iUUI;
  1.9210 +		};
  1.9211 +	
  1.9212 +/** A typedef'd packaged TMobileCallUUSRequestV1 for passing through a generic API 
  1.9213 +function member. */
  1.9214 +	typedef TPckg<TMobileCallUUSRequestV1> TMobileCallUUSRequestV1Pckg;
  1.9215 +
  1.9216 +	IMPORT_C void ActivateUUS(TRequestStatus& aReqStatus, const TDesC8& aUUSRequest) const;
  1.9217 +	IMPORT_C void SendUUI(TRequestStatus& aReqStatus, TBool aMore, const TMobileCallUUI& aUUI) const;
  1.9218 +	IMPORT_C void ReceiveUUI(TRequestStatus& aReqStatus, TMobileCallUUI& aUUI) const;
  1.9219 +	IMPORT_C void HangupWithUUI(TRequestStatus& aReqStatus, const TMobileCallUUI& aUUI) const;
  1.9220 +	IMPORT_C void AnswerIncomingCallWithUUI(TRequestStatus& aReqStatus, const TDesC8& aCallParams, const TMobileCallUUI& aUUI) const;
  1.9221 +	
  1.9222 +	/***********************************************************************************/
  1.9223 +	//
  1.9224 +	// Etel 3rd Party v1.0 Parameter classes
  1.9225 +	//
  1.9226 +	/***********************************************************************************/
  1.9227 +	
  1.9228 +	class TEtel3rdPartyMobileCallParamsV1 : public RCall::TCallParams
  1.9229 +/** Defines the parameters used to set-up of a call originated from an ETel 3rd Party client. 
  1.9230 +@publishedPartner
  1.9231 +@released
  1.9232 +*/
  1.9233 +		{
  1.9234 +	public:
  1.9235 +		IMPORT_C TEtel3rdPartyMobileCallParamsV1();
  1.9236 +	public:
  1.9237 +	/** Call Id restriction setting to be used for this call.
  1.9238 +	
  1.9239 +	@see TMobileCallIdRestriction */
  1.9240 +		TMobileCallIdRestriction iIdRestrict;
  1.9241 +	/** Specifies whether this call attempt is user initiated (EFalse) or a client initiated 
  1.9242 +	redial (ETrue). */
  1.9243 +		TBool iAutoRedial;		
  1.9244 +		};
  1.9245 +		
  1.9246 +/** A typedef'd packaged TEtel3rdPartyMobileCallParamsV1 for passing through a generic API 
  1.9247 +function member. */
  1.9248 +	typedef TPckg<TEtel3rdPartyMobileCallParamsV1>TEtel3rdPartyMobileCallParamsV1Pckg;	
  1.9249 +	
  1.9250 +private:
  1.9251 +	RMobileCall(const RMobileCall& aCall);
  1.9252 +	CMobileCallPtrHolder* iMmPtrHolder;
  1.9253 +protected:
  1.9254 +	IMPORT_C void ConstructL();
  1.9255 +	IMPORT_C void Destruct();
  1.9256 +	};
  1.9257 +
  1.9258 +
  1.9259 +/*********************************************************/
  1.9260 +//
  1.9261 +// Line based functionality (RMobileLine)
  1.9262 +// 
  1.9263 +/*********************************************************/
  1.9264 +
  1.9265 +
  1.9266 +
  1.9267 +class CMobileLinePtrHolder;
  1.9268 +
  1.9269 +class RMobileLine : public RLine
  1.9270 +/** Provides access to the functionality associated with a specific mobile line. 
  1.9271 +*/
  1.9272 +	{
  1.9273 +public:
  1.9274 +	IMPORT_C RMobileLine();
  1.9275 +
  1.9276 +	/***********************************************************************************/
  1.9277 +	//
  1.9278 +	// MobileLineStatus functional unit
  1.9279 +	// 
  1.9280 +	/***********************************************************************************/
  1.9281 +
  1.9282 +	IMPORT_C TInt GetMobileLineStatus(RMobileCall::TMobileCallStatus& aStatus) const;
  1.9283 +	IMPORT_C void NotifyMobileLineStatusChange(TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus) const;
  1.9284 +
  1.9285 +	//
  1.9286 +	// Additional Caps
  1.9287 +	//
  1.9288 +/** Enumerated auxiliary capabilities. */
  1.9289 +	enum TMobileLineAdditionalCaps
  1.9290 +		{
  1.9291 +	/** Indicates whether the line is a Primary or Auxiliary voice line offset added 
  1.9292 +	so that core Etel and additional line caps can be returned in one TUint. */
  1.9293 +		KCapsAuxVoice=0x00000008	
  1.9294 +		};
  1.9295 +
  1.9296 +private:
  1.9297 +	RMobileLine(const RMobileLine& aLine);
  1.9298 +	CMobileLinePtrHolder* iMmPtrHolder;
  1.9299 +protected:
  1.9300 +	IMPORT_C void ConstructL();
  1.9301 +	IMPORT_C void Destruct();
  1.9302 +	};
  1.9303 +
  1.9304 +
  1.9305 +/*********************************************************/
  1.9306 +//
  1.9307 +// SMS Messaging (RMobileSmsMessaging)
  1.9308 +// 
  1.9309 +/*********************************************************/
  1.9310 +
  1.9311 +
  1.9312 +
  1.9313 +class CMobilePhoneSmspList;
  1.9314 +class CSmsMessagingPtrHolder;
  1.9315 +
  1.9316 +class RMobileSmsMessaging : public RTelSubSessionBase
  1.9317 +/** Provides client access to SMS messaging functionality provided by TSY.
  1.9318 +@publishedPartner
  1.9319 +@released 
  1.9320 +*/
  1.9321 +	{
  1.9322 +public:
  1.9323 +
  1.9324 +	friend class CRetrieveMobilePhoneSmspList;
  1.9325 +
  1.9326 +	IMPORT_C RMobileSmsMessaging();
  1.9327 +
  1.9328 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
  1.9329 +	IMPORT_C void Close();
  1.9330 +
  1.9331 +/** Defines capabilities of SMS messaging.
  1.9332 +
  1.9333 +Modes: GSM/WCDMA */
  1.9334 +	enum TMobileSmsModeCaps
  1.9335 +		{
  1.9336 +	/** SMS is supported in GSM and WCDMA modes. SMS are sent across MM ETel API in 
  1.9337 +	a GSM 03.40 TPDU format.
  1.9338 +	
  1.9339 +	Modes: GSM/WCDMA */
  1.9340 +		KCapsGsmSms=0x00000001,
  1.9341 +	/** SMS is supported in CDMA mode. SMS are sent across MM ETel API in a IS-637 
  1.9342 +	Teleservice message PDU format. 
  1.9343 +	
  1.9344 +	Modes: CDMA */
  1.9345 +		KCapsCdmaSms=0x00000002
  1.9346 +		};
  1.9347 +
  1.9348 +/** Defines SMS control capabilities.
  1.9349 +
  1.9350 +Modes: Common */
  1.9351 +	enum TMobileSmsControlCaps
  1.9352 +		{
  1.9353 +	/** TSY supports receiving incoming SMS that have been stored and acknowledged 
  1.9354 +	by the phone prior to forwarding to the TSY. If this flag is set then KCapsReceiveEither 
  1.9355 +	will not be set and the client can receive stored messages only while the 
  1.9356 +	TSY-phone link is in "receive stored" mode.
  1.9357 +	
  1.9358 +	Modes: Common */
  1.9359 +		KCapsReceiveStored=0x00000001,
  1.9360 +	/** TSY supports receiving incoming SMS that have been acknowledged by the phone 
  1.9361 +	but have NOT already been stored. It is the client's responsibility to do 
  1.9362 +	the storage. If this flag is set then KCapsReceiveEither will not be set and 
  1.9363 +	the client can receive unstored messages only while the TSY-phone link is 
  1.9364 +	in "receive unstored with phone ack" mode.
  1.9365 +	
  1.9366 +	Modes: Common */
  1.9367 +		KCapsReceiveUnstoredPhoneAck=0x00000002,
  1.9368 +	/** TSY supports receiving incoming SMS that have NOT already been stored and acknowledged
  1.9369 +	by the phone. It is the client's responsibility to do both the storage and 
  1.9370 +	the acknowledgment or rejection. If this flag is set then KCapsReceiveEither 
  1.9371 +	will not be set and the client can receive unstored messages only while the 
  1.9372 +	TSY-phone link is in "receive unstored with client ack" mode.
  1.9373 +	
  1.9374 +	Modes: Common */
  1.9375 +		KCapsReceiveUnstoredClientAck=0x00000004,
  1.9376 +	/** TSY supports receiving either stored or unstored incoming SMS at any time. 
  1.9377 +	If this flag is set then any other KCapsReceive... flags will not be set and 
  1.9378 +	the client can receive stored or unstored messages while the TSY-phone link 
  1.9379 +	is in "receive either" mode.
  1.9380 +	
  1.9381 +	Modes: Common */
  1.9382 +		KCapsReceiveEither=0x00000008,
  1.9383 +	/** TSY supports creating a default acknowledgment or rejection TPDU using only 
  1.9384 +	a "cause code" supplied by the client. If this flag is not set then the client 
  1.9385 +	must supply the full ack or nack TPDU if it calls RMobileSmsMessaging::AckSmsStored() 
  1.9386 +	or RMobileSmsMessaging::NackSmsStored().
  1.9387 +	
  1.9388 +	Modes: Common */
  1.9389 +		KCapsCreateAck=0x00000010,
  1.9390 +	/** TSY supports sending SMS messages but does not support returning the service 
  1.9391 +	centre's acknowledgment of the submitted message to the client.
  1.9392 +	
  1.9393 +	Modes: Common */
  1.9394 +		KCapsSendNoAck=0x00000020,
  1.9395 +	/** TSY supports sending SMS messages and also supports returning the service centre's 
  1.9396 +	acknowledgment of the submitted message to the client.
  1.9397 +	
  1.9398 +	Modes: GSM/WCDMA */
  1.9399 +		KCapsSendWithAck=0x00000040,
  1.9400 +	/** TSY supports retrieval of the SMS parameter list.
  1.9401 +	
  1.9402 +	Modes: GSM/WCDMA */
  1.9403 +		KCapsGetSmspList=0x00000080,
  1.9404 +	/** TSY supports storage of the SMS parameter list
  1.9405 +	
  1.9406 +	Modes: GSM/WCDMA */
  1.9407 +		KCapsSetSmspList=0x00000100
  1.9408 +		};
  1.9409 +
  1.9410 +	class TMobileSmsCapsV1 : public RMobilePhone::TMultimodeType
  1.9411 +/** Defines capabilities of SMS messaging.
  1.9412 +*/
  1.9413 +		{
  1.9414 +	public:
  1.9415 +		IMPORT_C TMobileSmsCapsV1();
  1.9416 +
  1.9417 +	/** Sum of TMobileSmsModeCaps constants.
  1.9418 +	
  1.9419 +	Modes: Common */
  1.9420 +		TUint32 iSmsMode;
  1.9421 +	/** Sum of TMobileSmsControlCaps constants.
  1.9422 +	
  1.9423 +	Modes: Common */
  1.9424 +		TUint32 iSmsControl;
  1.9425 +		};
  1.9426 +
  1.9427 +/** A typedef'd packaged TMobileSmsCapsV1 for passing through a generic API member 
  1.9428 +function. */
  1.9429 +	typedef TPckg<TMobileSmsCapsV1> TMobileSmsCapsV1Pckg;
  1.9430 +
  1.9431 +	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
  1.9432 +
  1.9433 +	// Definitions for sizes of TPDU and User Data fields
  1.9434 +	enum 
  1.9435 +		{ 
  1.9436 +		KGsmTpduSize = 165,		// 140 bytes user data + 25 bytes TPDU header
  1.9437 +		KCdmaTpduSize  = 256	// Max size of Bearer Data in Transport Layer message
  1.9438 +		};
  1.9439 +
  1.9440 +/** A typedef'd buffer for GSM or WCDMA message data. */
  1.9441 +	typedef TBuf8<KGsmTpduSize>			TMobileSmsGsmTpdu;
  1.9442 +/** A typedef'd buffer for CDMA message data. */
  1.9443 +	typedef TBuf8<KCdmaTpduSize>		TMobileSmsCdmaTpdu;
  1.9444 +
  1.9445 +	/***********************************************************************************/
  1.9446 +	//
  1.9447 +	// Enum used by TSY to distinguish which SMS attribute class is used by client
  1.9448 +	//
  1.9449 +	/***********************************************************************************/
  1.9450 +
  1.9451 +/** Used by TSY to distinguish which SMS attribute class is used by client.
  1.9452 +
  1.9453 +Modes: Common
  1.9454 +
  1.9455 +@see RMobileSmsMessaging::TMobileSmsSendAttributesV1 */
  1.9456 +	enum TMobileSmsAttributeExtensionId
  1.9457 +		{
  1.9458 +	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsAttributesV1. */
  1.9459 +		KETelMobileSmsAttributesV1=KETelExtMultimodeV1,
  1.9460 +	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsReceiveAttributesV1. */
  1.9461 +		KETelMobileSmsReceiveAttributesV1,
  1.9462 +	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsSendAttributesV1. */
  1.9463 +		KETelMobileSmsSendAttributesV1,
  1.9464 +	/** The iExtensionId contents indicate that the packaged class is a TMobileSmsCdmaSendAttributesV4. */
  1.9465 +		KETelMobileSmsCdmaSendAttributesV4=KETelExtMultimodeV4
  1.9466 +		};
  1.9467 +
  1.9468 +/** Defines common attributes of all SMS messages.
  1.9469 +
  1.9470 +Modes: CDMA
  1.9471 +
  1.9472 +@see TMobileSmsAttributesV1 */
  1.9473 +	enum TMobileSmsAttributeFlags
  1.9474 +		{
  1.9475 +	/** The iCdmaTeleservice field is valid in the attribute class.
  1.9476 +	
  1.9477 +	Modes: CDMA */
  1.9478 +		KCdmaTeleservice = 0x00000001,
  1.9479 +	/** The iCdmaServiceCategory field is valid in the attribute class.
  1.9480 +	
  1.9481 +	Modes: CDMA */
  1.9482 +		KCdmaServiceCategory = 0x00000002,
  1.9483 +	/** The iGsmServiceCentre field is valid in the attribute class.
  1.9484 +	
  1.9485 +	Modes: GSM/WCDMA */
  1.9486 +		KGsmServiceCentre = 0x00000004,
  1.9487 +	/** The iDataFormat field is valid in the attribute class.
  1.9488 +	
  1.9489 +	Modes: Common */
  1.9490 +		KSmsDataFormat = 0x00000008,	
  1.9491 +	/** The iOriginator or iDestination field is valid in the attribute class.
  1.9492 +	
  1.9493 +	Modes: Common */
  1.9494 +		KRemotePartyInfo = 0x00000010,
  1.9495 +	/** The iStatus field is valid in the attribute class.
  1.9496 +	
  1.9497 +	Modes: Common */
  1.9498 +		KIncomingStatus = 0x00000020,
  1.9499 +	/** The iStore and iStoreIndex fields are valid in the attribute class.
  1.9500 +	
  1.9501 +	Modes: Common */
  1.9502 +		KStorageLocation = 0x00000040,
  1.9503 +	/** The iMsgRef field is valid in the attribute class.
  1.9504 +
  1.9505 +	Modes: Common */
  1.9506 +		KMessageReference = 0x00000080,
  1.9507 +	/** The iSubmitReport field is valid in the attribute class.
  1.9508 +	
  1.9509 +	Modes: GSM/WCDMA */
  1.9510 +		KGsmSubmitReport = 0x00000100,
  1.9511 +	/** The iMore field is valid in the attribute class.
  1.9512 +	
  1.9513 +	Modes: Common */
  1.9514 +		KMoreToSend = 0x00000200,
  1.9515 +	/** Indicates to the TSY that it should keep the traffic channel open since there is
  1.9516 +	    another message ready to be sent immediately after this one (typically used when
  1.9517 +	    sending messages to multiple recipients). TSY should then keep the channel open 
  1.9518 +	    until a message is sent with this bit cleared.
  1.9519 +	
  1.9520 +	Modes: CDMA */
  1.9521 +		KCdmaKeepChannelOpen = 0x00000400,
  1.9522 +	/** Indicates to the TSY that it must wait for the Transport Layer Acknowledgement from the network
  1.9523 +	
  1.9524 +	Modes: CDMA */
  1.9525 +		KCdmaTLAckRequired = 0x00000800,
  1.9526 +	/** The iAddressAuthentication field is valid in the attribute class.
  1.9527 +	
  1.9528 +	Modes: CDMA */
  1.9529 +		KCdmaAddressAuthentication = 0x00001000
  1.9530 +		};
  1.9531 +
  1.9532 +/** Defines the SMS data format.
  1.9533 +
  1.9534 +Modes: Common */
  1.9535 +	enum TMobileSmsDataFormat
  1.9536 +		{
  1.9537 +	/** The format is not specified.
  1.9538 +
  1.9539 +	Modes: Common */
  1.9540 +		EFormatUnspecified,
  1.9541 +	/** The message data format complies to a SMS TPDU coded as octets according to 
  1.9542 +	GSM 03.40.
  1.9543 +	
  1.9544 +	Modes: GSM/WCDMA */
  1.9545 +		EFormatGsmTpdu,
  1.9546 +	/** The message data format complies to a SMS Teleservice PDU coded as octets according 
  1.9547 +	to IS-637.
  1.9548 +	
  1.9549 +	Modes: CDMA */
  1.9550 +		EFormatCdmaTpdu
  1.9551 +		};
  1.9552 +
  1.9553 +	class TMobileSmsAttributesV1 : public RMobilePhone::TMultimodeType
  1.9554 +	/** Defines common attributes of all SMS messages. 
  1.9555 +	@publishedPartner
  1.9556 +	@released
  1.9557 +	*/
  1.9558 +		{
  1.9559 +	protected:
  1.9560 +		TMobileSmsAttributesV1();
  1.9561 +	public:
  1.9562 +	/** The bit-mask flags from TMobileSmsAttributeFlags indicating which attributes 
  1.9563 +	are present in this instance.
  1.9564 +	
  1.9565 +	Modes: Common */
  1.9566 +		TUint32 iFlags;
  1.9567 +	/** The format of the message data buffer .
  1.9568 +	
  1.9569 +	Modes: Common
  1.9570 +	
  1.9571 +	@see TMobileSmsDataFormat */
  1.9572 +		TMobileSmsDataFormat iDataFormat;
  1.9573 +	/** The teleservice this message belongs to, coded according to SMS teleservice 
  1.9574 +	identifier values table in TIA/EIA-41-D.
  1.9575 +	
  1.9576 +	Modes: CDMA */
  1.9577 +		TInt iCdmaTeleservice;
  1.9578 +	/** The service category this message belongs to.
  1.9579 +	
  1.9580 +	Modes: CDMA */
  1.9581 +		TInt iCdmaServiceCategory;
  1.9582 +	/** The GSM service centre used for this SMS.
  1.9583 +	
  1.9584 +	Modes: GSM/WCDMA
  1.9585 +	
  1.9586 +	@see RMobilePhone::TMobileAddress */
  1.9587 +		RMobilePhone::TMobileAddress iGsmServiceCentre;
  1.9588 +		};
  1.9589 +
  1.9590 +/** A typedef'd packaged TMobileSmsAttributesV1 for passing through a generic 
  1.9591 +API member function. */
  1.9592 +	typedef TPckg<TMobileSmsAttributesV1> TMobileSmsAttributesV1Pckg;
  1.9593 +
  1.9594 +/** Defines attributes of incoming SMS messages.
  1.9595 +
  1.9596 +Modes: Common */
  1.9597 +	enum TMobileSmsIncomingStatus
  1.9598 +		{
  1.9599 +	/** The status of the incoming SMS is unknown. */
  1.9600 +		EMtMessageUnknownStatus,
  1.9601 +	/** The incoming SMS is not stored phone-side but has already been acknowledged 
  1.9602 +	by the phone. */
  1.9603 +		EMtMessageUnstoredPhoneAck,
  1.9604 +	/** The incoming SMS is not stored phone-side and needs to be acknowledged by the 
  1.9605 +	client. */
  1.9606 +		EMtMessageUnstoredClientAck,
  1.9607 +	/** The incoming SMS is stored phone-side. */
  1.9608 +		EMtMessageStored
  1.9609 +		};
  1.9610 +
  1.9611 +	class TMobileSmsReceiveAttributesV1 : public TMobileSmsAttributesV1
  1.9612 +	/** Defines attributes of incoming SMS messages. 
  1.9613 +	@publishedPartner
  1.9614 +	@released
  1.9615 +	*/
  1.9616 +		{
  1.9617 +	public:
  1.9618 +		IMPORT_C TMobileSmsReceiveAttributesV1();
  1.9619 +	public:
  1.9620 +	/** Indicates the status of the incoming message -whether it is stored phone-side 
  1.9621 +	or has been acknowledged by the phone.
  1.9622 +	
  1.9623 +	Modes: Common
  1.9624 +	
  1.9625 +	@see TMobileSmsIncomingStatus */
  1.9626 +		TMobileSmsIncomingStatus	 iStatus;	// indicates if MT message is stored phone-side
  1.9627 +	/** If the message is stored phone-side, indicates the index (within the phone-side 
  1.9628 +	store) where the message is stored.
  1.9629 +	
  1.9630 +	Modes: Common */
  1.9631 +		TInt						 iStoreIndex;// used if MT message is stored phone-side
  1.9632 +	/** If the message is stored phone-side, indicates the name of the appropriate 
  1.9633 +	phone-side store.
  1.9634 +	
  1.9635 +	Modes: Common
  1.9636 +	
  1.9637 +	@see RMobilePhone::TMobileName */
  1.9638 +		RMobilePhone::TMobileName	 iStore;		// used if MT message is stored phone-side
  1.9639 +	/** The address of the originator of the SMS.
  1.9640 +
  1.9641 +	Modes: Common
  1.9642 +	
  1.9643 +	@see RMobilePhone::TMobileAddress */
  1.9644 +		RMobilePhone::TMobileAddress iOriginator;
  1.9645 +		};
  1.9646 +
  1.9647 +/** A typedef'd packaged TMobileSmsReceiveAttributesV1 for passing through a generic 
  1.9648 +API member function. */
  1.9649 +	typedef TPckg<TMobileSmsReceiveAttributesV1> TMobileSmsReceiveAttributesV1Pckg;
  1.9650 +
  1.9651 +	
  1.9652 +
  1.9653 +	class TMobileSmsSendAttributesV1 : public TMobileSmsAttributesV1
  1.9654 +	/** Defines attributes of sent SMS messages.
  1.9655 +	@publishedPartner
  1.9656 +	@released */
  1.9657 +		{
  1.9658 +	public:
  1.9659 +		IMPORT_C TMobileSmsSendAttributesV1();
  1.9660 +	public:
  1.9661 +	/** The message reference assigned to a sent message.
  1.9662 +	
  1.9663 +	Modes: Common */
  1.9664 +		TUint16						 iMsgRef;
  1.9665 +	/** A boolean indicating whether the client is going to send another SMS immediately 
  1.9666 +	after this one. Equals ETrue if this is the case, EFalse if it is not.
  1.9667 +	
  1.9668 +	Modes: Common */
  1.9669 +		TBool						 iMore;
  1.9670 +	/** The SMS-SUBMIT-REPORT TPDU received from network in response to a sent message.
  1.9671 +	
  1.9672 +	Modes: GSM/WCDMA
  1.9673 +	
  1.9674 +	@see TMobileSmsGsmTpdu */
  1.9675 +		TMobileSmsGsmTpdu			 iSubmitReport;
  1.9676 +	/** The address of the destination of the SMS.
  1.9677 +	
  1.9678 +	Modes: Common
  1.9679 +	
  1.9680 +	@see RMobilePhone::TMobileAddress */
  1.9681 +		RMobilePhone::TMobileAddress iDestination;
  1.9682 +		};
  1.9683 +	
  1.9684 +/** A typedef'd packaged TMobileSmsSendAttributesV1 for passing through a generic 
  1.9685 +API member function. */
  1.9686 +	typedef TPckg<TMobileSmsSendAttributesV1> TMobileSmsSendAttributesV1Pckg;
  1.9687 +
  1.9688 +	class TMobileSmsCdmaSendAttributesV4 : public TMobileSmsAttributesV1
  1.9689 +	/**
  1.9690 +	Defines attributes of sent SMS messages (CDMA only).
  1.9691 +
  1.9692 +	@publishedPartner
  1.9693 +	@released
  1.9694 +	*/
  1.9695 +		{
  1.9696 +	public:
  1.9697 +		IMPORT_C TMobileSmsCdmaSendAttributesV4();
  1.9698 +	public:
  1.9699 +		/** 
  1.9700 +		The message id allocated by the SMS stack. The TSY should
  1.9701 +		retrieve the value from iCdmaTeleserviceId to determine
  1.9702 +		which teleservice this message id corresponds to. 
  1.9703 +		*/
  1.9704 +		TUint16 iMsgRef;
  1.9705 +		/** Indicates whether the client is going to send another 
  1.9706 +		PDU immediately after this one (typically used when sending
  1.9707 +		messages of more than one PDU). Equals ETrue if at least 
  1.9708 +		one more PDU is needed to complete the message and EFalse
  1.9709 +		otherwise.
  1.9710 +		*/
  1.9711 +		TBool iMore;
  1.9712 +		/** TPDU received from network in response to a sent message */
  1.9713 +		TMobileSmsCdmaTpdu iTLAck;
  1.9714 +		/** The address of the destination of the SMS. */
  1.9715 +		RMobilePhone::TMobileAddress iDestination;
  1.9716 +		/** Transport layer authentication parameter */
  1.9717 +		TUint32 iAddressAuthentication;
  1.9718 +		};
  1.9719 +
  1.9720 +/** A typedef'd packaged TMobileSmsCdmaSendAttributesV4 for passing through a generic 
  1.9721 +API member function. */
  1.9722 +	typedef TPckg<TMobileSmsCdmaSendAttributesV4> TMobileSmsCdmaSendAttributesV4Pckg;
  1.9723 +
  1.9724 +	//
  1.9725 +	// Setting up the storage & acknowledgement mode
  1.9726 +	//
  1.9727 +
  1.9728 +/** Defines the SMS receive modes.
  1.9729 +
  1.9730 +Modes: Common */
  1.9731 +	enum TMobileSmsReceiveMode
  1.9732 +		{
  1.9733 +	/** Receive mode is unspecified and phone will use its default. */
  1.9734 +		EReceiveModeUnspecified,
  1.9735 +	/** Phone will acknowledge but NOT store all incoming messages before passing them 
  1.9736 +	onto TSY. It is client's responsibility to store the message. */
  1.9737 +		EReceiveUnstoredPhoneAck,	// client stores but phone acknowledges message
  1.9738 +	/** Phone will NOT acknowledge or store any incoming messages before passing them 
  1.9739 +	onto TSY. It is client's responsibility to attempt storage and then either
  1.9740 +	acknowledge or reject the message. */
  1.9741 +		EReceiveUnstoredClientAck,	// client acknowledges and stores message
  1.9742 +	/** Phone will store and acknowledge all incoming messages before passing them 
  1.9743 +	onto TSY. */
  1.9744 +		EReceiveStored,				// phone acknowledges and store message
  1.9745 +	/** Phone may pass on either stored or unstored messages to TSY. It is client's 
  1.9746 +	responsibility to check RMobileSmsMessaging::TMobileSmsReceiveAttributesV1::iStatus 
  1.9747 +	to determine what action(s) the client needs to take for a message. */
  1.9748 +		EReceiveEither				// client deals with stored & unstored messages
  1.9749 +		};
  1.9750 +		
  1.9751 +	IMPORT_C void SetReceiveMode(TRequestStatus& aReqStatus, TMobileSmsReceiveMode aReceiveMode) const;
  1.9752 +	IMPORT_C TInt GetReceiveMode(TMobileSmsReceiveMode& aReceiveMode) const;
  1.9753 +	IMPORT_C void NotifyReceiveModeChange(TRequestStatus& aStatus, TMobileSmsReceiveMode& aReceiveMode);
  1.9754 +
  1.9755 +	/***********************************************************************************/
  1.9756 +	//
  1.9757 +	// Incoming SMS
  1.9758 +	//
  1.9759 +	/***********************************************************************************/
  1.9760 +
  1.9761 +	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
  1.9762 +
  1.9763 +	/***********************************************************************************/
  1.9764 +	//
  1.9765 +	// Responding to incoming SMS
  1.9766 +	//
  1.9767 +	/***********************************************************************************/
  1.9768 +
  1.9769 +	IMPORT_C void AckSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TBool aFull=EFalse) const;
  1.9770 +	IMPORT_C void NackSmsStored(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TInt aRpCause) const;
  1.9771 +	IMPORT_C void ResumeSmsReception(TRequestStatus& aReqStatus) const;
  1.9772 +
  1.9773 +	/***********************************************************************************/
  1.9774 +	//
  1.9775 +	// Outgoing SMS
  1.9776 +	//
  1.9777 +	/***********************************************************************************/
  1.9778 +
  1.9779 +	IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
  1.9780 +	IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, TDes8& aMsgAttributes) const;
  1.9781 +
  1.9782 +/** Defines the SMS bearer.
  1.9783 +
  1.9784 +Modes: GSM */
  1.9785 +	enum TMobileSmsBearer
  1.9786 +		{
  1.9787 +	/** SMS messages will only be sent over a packet-switched (GPRS) network. */
  1.9788 +		ESmsBearerPacketOnly,
  1.9789 +	/** SMS messages will only be sent over a circuit-switched (GSM) network. */
  1.9790 +		ESmsBearerCircuitOnly,
  1.9791 +	/** SMS messages will be sent over the packet-switched (GPRS) network if possible, 
  1.9792 +	otherwise over circuit-switched (GSM) network. */
  1.9793 +		ESmsBearerPacketPreferred,
  1.9794 +	/** SMS messages will be sent over the circuit-switched (GSM) network if possible, 
  1.9795 +	otherwise over packet-switched (GPRS) network. */
  1.9796 +		ESmsBearerCircuitPreferred
  1.9797 +		};
  1.9798 +
  1.9799 +	IMPORT_C void SetMoSmsBearer(TRequestStatus& aReqStatus, TMobileSmsBearer aBearer) const;
  1.9800 +	IMPORT_C TInt GetMoSmsBearer(TMobileSmsBearer& aBearer) const;
  1.9801 +	IMPORT_C void NotifyMoSmsBearerChange(TRequestStatus& aReqStatus, TMobileSmsBearer& aBearer);
  1.9802 +
  1.9803 +	/***********************************************************************************/
  1.9804 +	//
  1.9805 +	// Get information on phone-side SMS storage
  1.9806 +	//
  1.9807 +	/***********************************************************************************/
  1.9808 +
  1.9809 +	IMPORT_C TInt EnumerateMessageStores(TInt& aCount) const;
  1.9810 +	IMPORT_C void GetMessageStoreInfo(TRequestStatus& aReqStatus, TInt aIndex, TDes8& aInfo) const;
  1.9811 +
  1.9812 +	/***********************************************************************************/
  1.9813 +	//
  1.9814 +	// Read/Write SMS parameters to phone-side storage
  1.9815 +	//
  1.9816 +	/***********************************************************************************/
  1.9817 +
  1.9818 +	enum { KMaxSmspTextSize=30 };
  1.9819 +
  1.9820 +/** Defines the valid SMS parameters store.
  1.9821 +
  1.9822 +Modes: GSM/WCDMA
  1.9823 +
  1.9824 +@see TMobileSmspEntryV1 */
  1.9825 +	enum TMobileSmspStoreValidParams
  1.9826 +		{
  1.9827 +	/** The entry includes a valid iDestination field. */
  1.9828 +		KDestinationIncluded=0x00000001,
  1.9829 +	/** The entry includes a valid iServiceCentre field. */
  1.9830 +		KSCAIncluded=0x00000002,
  1.9831 +	/** The entry includes a valid iProtocolId field. */
  1.9832 +		KProtocolIdIncluded=0x00000004,
  1.9833 +	/** The entry includes a valid iDcs field. */
  1.9834 +		KDcsIncluded=0x00000008,
  1.9835 +	/** The entry includes a valid iValidityPeriod field. */
  1.9836 +		KValidityPeriodIncluded=0x00000010
  1.9837 + 		};
  1.9838 +
  1.9839 +	class TMobileSmspEntryV1 : public RMobilePhone::TMultimodeType
  1.9840 +
  1.9841 +	/** Defines a set of SMS parameters. 
  1.9842 +	@publishedPartner
  1.9843 +	@released
  1.9844 +	*/
  1.9845 +		{
  1.9846 +	public:
  1.9847 +		IMPORT_C TMobileSmspEntryV1();
  1.9848 +	public:
  1.9849 +		void InternalizeL(RReadStream& aStream);
  1.9850 +		void ExternalizeL(RWriteStream& aStream) const;
  1.9851 +	public:
  1.9852 +	/** The slot index where this SMSP entry is stored in the SIM's SMSP file. */
  1.9853 +		TInt iIndex;
  1.9854 +	/** A bit-wise sum of the constants defined in TMobileSmspStoreValidParams, that 
  1.9855 +	specifies which parameters are valid within this entry. */
  1.9856 +		TUint32	iValidParams;
  1.9857 +	/** Default protocol ID. Coded according to GSM 03.40. */
  1.9858 +		TUint8 iProtocolId;
  1.9859 +	/** Default data coding scheme. Coded according to GSM 03.40. */
  1.9860 +		TUint8 iDcs;
  1.9861 +	/** Default validity period, in relative format and coded on 8 bits as defined 
  1.9862 +	by GSM 03.40. */
  1.9863 +		TUint8 iValidityPeriod;
  1.9864 +	/** Reserved for future use. */
  1.9865 +		TUint8 iReservedFiller;
  1.9866 +	/** Default destination for outgoing SMS.
  1.9867 +	
  1.9868 +	@see RMobilePhone::TMobileAddress */
  1.9869 +		RMobilePhone::TMobileAddress iDestination;
  1.9870 +	/** Default service centre for outgoing SMS.
  1.9871 +	
  1.9872 +	@see RMobilePhone::TMobileAddress */
  1.9873 +		RMobilePhone::TMobileAddress iServiceCentre;
  1.9874 +	/** The alpha-tag associated with this SMSP entry, expressed as Unicode characters. */
  1.9875 +		TBuf<KMaxSmspTextSize> iText;
  1.9876 +		};
  1.9877 +
  1.9878 +/** A typedef'd packaged TMobileSmspEntryV1 for passing through a generic API member
  1.9879 +function. */
  1.9880 +	typedef TPckg<TMobileSmspEntryV1> TMobileSmspEntryV1Pckg;
  1.9881 +	IMPORT_C void StoreSmspListL(TRequestStatus& aReqStatus, CMobilePhoneSmspList* aSmspList) const;
  1.9882 +	IMPORT_C void NotifySmspListChange(TRequestStatus& aReqStatus) const;
  1.9883 +
  1.9884 +private:
  1.9885 +	RMobileSmsMessaging(const RMobileSmsMessaging&);
  1.9886 +	CSmsMessagingPtrHolder* iSmsMessagingPtrHolder;
  1.9887 +protected:
  1.9888 +	IMPORT_C void ConstructL();
  1.9889 +	IMPORT_C void Destruct();
  1.9890 +	};
  1.9891 +
  1.9892 +
  1.9893 +/*********************************************************/
  1.9894 +//
  1.9895 +// Broadcast Messaging (RMobileBroadcastMessaging)
  1.9896 +// 
  1.9897 +/*********************************************************/
  1.9898 +
  1.9899 +
  1.9900 +
  1.9901 +class CMobilePhoneBroadcastIdList;
  1.9902 +
  1.9903 +class CCbsMessagingPtrHolder;
  1.9904 +class RMobileBroadcastMessaging : public RTelSubSessionBase
  1.9905 +/** This sub-session provides access to the broadcast message services provided 
  1.9906 +by GSM/WCDMA and CDMA networks.
  1.9907 +
  1.9908 +Clients will open a RMobileBroadcastMessaging sub-session and then wait for 
  1.9909 +incoming broadcast messages. The broadcast messages received can depend upon 
  1.9910 +a "message filter" which defines the languages and/or identifiers of acceptable 
  1.9911 +(or unacceptable) messages. This sub-session and the function members within 
  1.9912 +this section must be supported if the TSY indicates that it supports the MobileBroadcastMessaging
  1.9913 +functional unit. 
  1.9914 +
  1.9915 +@publishedPartner
  1.9916 +@released*/
  1.9917 +	{
  1.9918 +public:
  1.9919 +	
  1.9920 +	friend class CRetrieveMobilePhoneBroadcastIdList;
  1.9921 +
  1.9922 +	IMPORT_C RMobileBroadcastMessaging();
  1.9923 +
  1.9924 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
  1.9925 +	IMPORT_C void Close();
  1.9926 +
  1.9927 +	/***********************************************************************************/
  1.9928 +	//
  1.9929 +	// Broadcast messaging capabilities
  1.9930 +	//
  1.9931 +	/***********************************************************************************/
  1.9932 +
  1.9933 +/** Broadcast capabilities.
  1.9934 +
  1.9935 +Modes:GSM/WCDMA */
  1.9936 +	enum TMobileBroadcastModeCaps
  1.9937 +		{
  1.9938 +	/** GSM 03.41 cell broadcast messages are supported.
  1.9939 +	
  1.9940 +	Modes:GSM/WCDMA */
  1.9941 +		KCapsGsmTpduFormat = 0x00000001,
  1.9942 +	/** IS-637-A broadcast messages are supported.
  1.9943 +	
  1.9944 +	Modes:CDMA */
  1.9945 +		KCapsCdmaTpduFormat = 0x00000002,
  1.9946 +	/** 3GPP 25.324 Release 4 cell broadcast messages are supported.
  1.9947 +	
  1.9948 +	Modes: WCDMA */
  1.9949 +		KCapsWcdmaTpduFormat = 0x00000004
  1.9950 +		};
  1.9951 +
  1.9952 +/** Broadcast message filter capabilities.
  1.9953 +
  1.9954 +Modes: Common
  1.9955 +
  1.9956 +@see RMobileBroadcastMessaging::GetLanguageFilter() */
  1.9957 +	enum TBroadcastMessagingFilterCaps
  1.9958 +		{
  1.9959 +	/** Phone supports switching broadcast messages on or off. This means the EbroadcastAcceptNone 
  1.9960 +	and EBroadcastAcceptAll settings of TMobilePhoneBroadcastFilter are supported.
  1.9961 +	
  1.9962 +	Modes: Common */
  1.9963 +		KCapsSimpleFilter = 0x00000001,
  1.9964 +	/** Phone supports filtering of broadcast messages depending upon their language. 
  1.9965 +	The language filter is a list of languages used only for broadcast filtering.
  1.9966 +	
  1.9967 +	Modes: Common
  1.9968 +	
  1.9969 +	@see RMobileBroadcastMessaging::GetLanguageFilter() */
  1.9970 +		KCapsLangFilter = 0x00000002,
  1.9971 +	/** Phone supports filtering of broadcast messages depending upon their subject. 
  1.9972 +	The subject of a message is identified in GSM/WCDMA mode by the Cell Broadcast 
  1.9973 +	Message Identifier (CBMI) and in CDMA mode by the Service Category.
  1.9974 +	
  1.9975 +	Modes: Common */
  1.9976 +		KCapsIdFilter = 0x00000004
  1.9977 +		};
  1.9978 +
  1.9979 +	
  1.9980 +
  1.9981 +	class TMobileBroadcastCapsV1 : public RMobilePhone::TMultimodeType
  1.9982 +	/** Defines capabilities of Broadcast messaging. 
  1.9983 +	@publishedPartner
  1.9984 +	@released
  1.9985 +	*/
  1.9986 +		{
  1.9987 +	public:
  1.9988 +		IMPORT_C TMobileBroadcastCapsV1();
  1.9989 +	public:
  1.9990 +	/** Sum of TMobileBroadcastModeCaps constants.
  1.9991 +	
  1.9992 +	Modes: GSM/WCDMA */
  1.9993 +		TUint32 iModeCaps;
  1.9994 +	/** Sum of TBroadcastMessagingFilterCaps constants.
  1.9995 +	
  1.9996 +	Modes: GSM/WCDMA */
  1.9997 +		TUint32 iFilterCaps;
  1.9998 +		};
  1.9999 +
 1.10000 +/** A typedef'd packaged TMobileBroadcastCapsV1 for passing through a generic API 
 1.10001 +function member. */
 1.10002 +	typedef TPckg<TMobileBroadcastCapsV1> TMobileBroadcastCapsV1Pckg;
 1.10003 +
 1.10004 +	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
 1.10005 +
 1.10006 +/** Defines the broadcast attributes.
 1.10007 +
 1.10008 +Modes: Common */
 1.10009 +	enum TMobileBroadcastAttributeFlags
 1.10010 +		{
 1.10011 +	/** The iFormat field is valid in the attribute class.
 1.10012 +	
 1.10013 +	Modes: Common */
 1.10014 +		KBroadcastDataFormat = 0x00000001,
 1.10015 +	/** The iServiceCategory field is valid in the attribute class.
 1.10016 +	
 1.10017 +	Modes: CDMA */
 1.10018 +		KCdmaServiceCategory = 0x00000002
 1.10019 +		};
 1.10020 +
 1.10021 +/** The mobile broadcast data format, used byTMobileBroadcastAttributesV1.
 1.10022 +
 1.10023 +Modes: Common */
 1.10024 +	enum TMobileBroadcastDataFormat
 1.10025 +		{
 1.10026 +	/** The message data format is not specified.
 1.10027 +	
 1.10028 +	Modes: Common */
 1.10029 +		EFormatUnspecified,
 1.10030 +	/** The message data format complies to a Cell Broadcast TPDU coded as 88 octets 
 1.10031 +	(6 for header and 82 for message data) according to GSM 03.41.
 1.10032 +	
 1.10033 +	Modes: GSM/WCDMA */
 1.10034 +		EFormatGsmTpdu,
 1.10035 +	/** The message data format complies to IS-637-A encoding of the Bearer Data parameter 
 1.10036 +	within the Transport Layer's SMS-Broadcast message.
 1.10037 +	
 1.10038 +	Modes: CDMA */
 1.10039 +		EFormatCdmaTpdu,
 1.10040 +	/** The message data format complies to a Cell Broadcast TPDU coded as 1252 octets 
 1.10041 +	(6 for header and a maximum of 1246 for message data) according to 3GPP 25.324.
 1.10042 +	
 1.10043 +	Modes: WCDMA */
 1.10044 +		EFormatWcdmaTpdu
 1.10045 +		};
 1.10046 +
 1.10047 +	
 1.10048 +
 1.10049 +	class TMobileBroadcastAttributesV1 : public RMobilePhone::TMultimodeType
 1.10050 +	/** Defines attributes of a Broadcast message.
 1.10051 +	@publishedPartner
 1.10052 +	@released
 1.10053 +	*/
 1.10054 +		{
 1.10055 +	public:
 1.10056 +		IMPORT_C TMobileBroadcastAttributesV1();
 1.10057 +	public:
 1.10058 +	/** The bit-mask flags indicating which attributes are present in this instance.
 1.10059 +	
 1.10060 +	Modes: Common
 1.10061 +	
 1.10062 +	@see TMobileBroadcastAttributeFlags */
 1.10063 +		TUint32	iFlags;
 1.10064 +	/** Format of the message data buffer.
 1.10065 +	
 1.10066 +	Modes: Common
 1.10067 +	
 1.10068 +	@see TMobileBroadcastDataFormat */
 1.10069 +		TMobileBroadcastDataFormat	iFormat;
 1.10070 +	/** Service category of the message.
 1.10071 +	
 1.10072 +	Modes: CDMA */
 1.10073 +		TInt iServiceCategory;
 1.10074 +		};
 1.10075 +
 1.10076 +/** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic 
 1.10077 +API function member. */
 1.10078 +	typedef TPckg<TMobileBroadcastAttributesV1> TMobileBroadcastAttributesV1Pckg;
 1.10079 +
 1.10080 +
 1.10081 +	
 1.10082 +
 1.10083 +	class TMobileBroadcastAttributesV2 : public TMobileBroadcastAttributesV1
 1.10084 +	/** Defines attributes of a UMTS Broadcast message for version v2.0 of the API. 
 1.10085 +	@publishedPartner
 1.10086 +	@released
 1.10087 +	*/
 1.10088 +		{
 1.10089 +	public:
 1.10090 +		IMPORT_C TMobileBroadcastAttributesV2();
 1.10091 +	public:
 1.10092 +	/** The number of pages that the current broadcast message consists of. The maximum 
 1.10093 +	number of pages for WCDMA Broadcast messages is 15. */
 1.10094 +		TInt	 iNumberOfPages;
 1.10095 +	/** This parameter is used to store the message type for this broadcast message. */
 1.10096 +		TUint8	 iMessageType;
 1.10097 +	/** This parameter is used to store the message id for this broadcast message.
 1.10098 +	
 1.10099 +	This parameter is used to store the serial number for this broadcast message.
 1.10100 +	
 1.10101 +	This parameter is used to store the data coding scheme for this broadcast 
 1.10102 +	message. */
 1.10103 +		TUint16	 iMessageId;
 1.10104 +	/** This parameter is used to store the serial number for this broadcast message. */
 1.10105 +		TUint16	 iSerialNum;
 1.10106 +	/** This parameter is used to store the data coding scheme for this broadcast message. */
 1.10107 +		TUint8	 iDCS;
 1.10108 +		};
 1.10109 +
 1.10110 +/** A typedef'd packaged TMobileBroadcastAttributesV1 for passing through a generic 
 1.10111 +API function member. */
 1.10112 +	typedef TPckg<TMobileBroadcastAttributesV2> TMobileBroadcastAttributesV2Pckg;
 1.10113 +
 1.10114 +	/***********************************************************************************/
 1.10115 +	//
 1.10116 +	// Receiving broadcast messages
 1.10117 + 	//
 1.10118 +	/***********************************************************************************/
 1.10119 +
 1.10120 +	/** A constant which defines the length of the buffer to be passed to ReceiveMessage.	
 1.10121 +	
 1.10122 +	This constant should be used for all message types: GSM, CDMA and WCDMA.*/
 1.10123 +	enum
 1.10124 +		{
 1.10125 +		KBroadcastPageSize = 88	
 1.10126 +		};
 1.10127 +	
 1.10128 +	/** Buffer for received messages. 
 1.10129 +	
 1.10130 +	This buffer should be used for all message types: GSM, CDMA and WCDMA.*/
 1.10131 +	typedef TBuf8<KBroadcastPageSize> TBroadcastPageData;
 1.10132 +
 1.10133 +	/** Old buffer sizes.  KBroadcastPageSize should be used instead. */
 1.10134 +	enum 
 1.10135 +		{
 1.10136 +		KGsmBroadcastDataSize = KBroadcastPageSize,
 1.10137 +		KCdmaBroadcastDataSize = KBroadcastPageSize,
 1.10138 +		KWCdmaBroadcastPageSize = KBroadcastPageSize
 1.10139 +		};
 1.10140 +
 1.10141 +	/** Buffer for GSM messages.  TBroadcastPageData should be used instead. */
 1.10142 +	typedef TBuf8<KGsmBroadcastDataSize>  TGsmBroadcastMessageData;
 1.10143 +	/** Buffer for CDMA messages.  TBroadcastPageData should be used instead.  */
 1.10144 +	typedef TBuf8<KCdmaBroadcastDataSize> TCdmaBroadcastMessageData;
 1.10145 +	/** Buffer for WCDMA messages.  TBroadcastPageData should be used instead. */
 1.10146 +	typedef TBuf8<KWCdmaBroadcastPageSize> TWCdmaBroadcastPageData;
 1.10147 +
 1.10148 +	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
 1.10149 +
 1.10150 +	/***********************************************************************************/
 1.10151 +	//
 1.10152 +	// Filters
 1.10153 +	//
 1.10154 +	/***********************************************************************************/
 1.10155 +
 1.10156 +/** The filter settings of the mobile phone.
 1.10157 +
 1.10158 +Modes: Common */
 1.10159 +	enum TMobilePhoneBroadcastFilter
 1.10160 +		{
 1.10161 +	/** The phone does not have a filter setting. */
 1.10162 +		EBroadcastFilterUnspecified,
 1.10163 +	/** The phone is not accepting any broadcast messages. */
 1.10164 +		EBroadcastAcceptNone,
 1.10165 +	/** The phone is accepting all broadcast messages. */
 1.10166 +		EBroadcastAcceptAll,
 1.10167 +	/** The phone is accepting those broadcast messages included within the language 
 1.10168 +	and identifier filters. */
 1.10169 +		EBroadcastAcceptFilter,
 1.10170 +	/** The phone is rejecting those broadcast messages included within the language 
 1.10171 +	or identifier filters. */
 1.10172 +		EBroadcastRejectFilter
 1.10173 +		};
 1.10174 +
 1.10175 +	IMPORT_C TInt GetFilterSetting(TMobilePhoneBroadcastFilter& aSetting) const;
 1.10176 +	IMPORT_C void SetFilterSetting(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter aSetting) const;
 1.10177 +	IMPORT_C void NotifyFilterSettingChange(TRequestStatus& aReqStatus, TMobilePhoneBroadcastFilter& aSetting) const;
 1.10178 +
 1.10179 +	IMPORT_C void GetLanguageFilter(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
 1.10180 +	IMPORT_C void SetLanguageFilter(TRequestStatus& aReqStatus, const TDesC16& aLangFilter) const;
 1.10181 +	IMPORT_C void NotifyLanguageFilterChange(TRequestStatus& aReqStatus, TDes16& aLangFilter) const;
 1.10182 +
 1.10183 +	class TMobileBroadcastIdEntryV1 : public RMobilePhone::TMultimodeType
 1.10184 +	/** In GSM - defines a Cell Broadcast Message Identifier (CBMI) list entry. In 
 1.10185 +	CDMA - defines a Service Category list entry. 
 1.10186 +	@publishedPartner
 1.10187 +	@released
 1.10188 +	*/
 1.10189 +		{
 1.10190 +	public:
 1.10191 +		void InternalizeL(RReadStream& aStream);
 1.10192 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10193 +		IMPORT_C TMobileBroadcastIdEntryV1();
 1.10194 +	public:
 1.10195 +	/** The value of the message identifier. */
 1.10196 +		TUint16	iId;
 1.10197 +		};
 1.10198 +
 1.10199 +/** Defines the broadcast types. */
 1.10200 +	enum TMobileBroadcastIdType
 1.10201 +		{
 1.10202 +	/** GSM broadcast. */
 1.10203 +		EGsmBroadcastId,
 1.10204 +	/** CDMA broadcast. */
 1.10205 +		ECdmaBroadcastId
 1.10206 +		};
 1.10207 +
 1.10208 +	IMPORT_C void StoreBroadcastIdListL(TRequestStatus& aReqStatus, CMobilePhoneBroadcastIdList* aIdList, TMobileBroadcastIdType aIdType);
 1.10209 +	IMPORT_C void NotifyBroadcastIdListChange(TRequestStatus& aReqStatus) const;
 1.10210 +
 1.10211 +private:
 1.10212 +	RMobileBroadcastMessaging(const RMobileBroadcastMessaging&);
 1.10213 +	CCbsMessagingPtrHolder* iCbsMessagingPtrHolder;
 1.10214 +protected:
 1.10215 +	IMPORT_C void ConstructL();
 1.10216 +	IMPORT_C void Destruct();
 1.10217 +	};
 1.10218 +
 1.10219 +/*********************************************************/
 1.10220 +//
 1.10221 +// USSD Messaging (RMobileUssdMessaging)
 1.10222 +// 
 1.10223 +/*********************************************************/
 1.10224 +
 1.10225 +
 1.10226 +
 1.10227 +class CUssdMessagingPtrHolder;
 1.10228 +class RMobileUssdMessaging : public RTelSubSessionBase
 1.10229 +/** Provides client access to USSD functionality provided by TSY. 
 1.10230 +*/
 1.10231 +	{
 1.10232 +public:
 1.10233 +	IMPORT_C RMobileUssdMessaging();
 1.10234 +
 1.10235 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
 1.10236 +	IMPORT_C void Close();
 1.10237 +
 1.10238 +/** Defines the USSD Messaging Format Capabilities.
 1.10239 +
 1.10240 +Modes: GSM/WCDMA */
 1.10241 +	enum TMobileUssdFormatCaps
 1.10242 +		{
 1.10243 +	/** USSD messages coded as a packed string within 160 octets, as defined for a 
 1.10244 +	ussd-String within GSM 04.80 and GSM 03.38.
 1.10245 +	
 1.10246 +	Modes: GSM/WCDMA */
 1.10247 +		KCapsPackedString=0x00000001
 1.10248 +		};
 1.10249 +
 1.10250 +/** Defines the USSD Messaging Type Capabilities.
 1.10251 +
 1.10252 +Modes: GSM/WCDMA */
 1.10253 +	enum TMobileUssdTypeCaps
 1.10254 +		{
 1.10255 +	/** Outgoing USSD messages are supported.
 1.10256 +	
 1.10257 +	Modes: GSM/WCDMA */
 1.10258 +		KCapsMOUssd=0x00000001,
 1.10259 +	/** Incoming USSD messages are supported.
 1.10260 +	
 1.10261 +	Modes: GSM/WCDMA */
 1.10262 +		KCapsMTUssd=0x00000002
 1.10263 +		};
 1.10264 +
 1.10265 +	
 1.10266 +
 1.10267 +	class TMobileUssdCapsV1 : public RMobilePhone::TMultimodeType
 1.10268 +	/** Defines capabilities of USSD messaging. 
 1.10269 +	@publishedPartner
 1.10270 +	@released
 1.10271 +	*/
 1.10272 +		{
 1.10273 +	public:
 1.10274 +		IMPORT_C TMobileUssdCapsV1();
 1.10275 +	/** Sum of TMobileUssdFormatCaps constants.
 1.10276 +	
 1.10277 +	Modes: GSM/WCDMA
 1.10278 +
 1.10279 +	@see TMobileUssdFormatCaps */
 1.10280 +		TUint32 iUssdFormat;
 1.10281 +	/** Sum of TMobileUssdTypeCaps constants.
 1.10282 +	
 1.10283 +	Modes: GSM/WCDMA
 1.10284 +
 1.10285 +	@see TMobileUssdTypeCaps */
 1.10286 +		TUint32 iUssdTypes;
 1.10287 +		};
 1.10288 +
 1.10289 +/** A typedef'd packaged TMobileUssdCapsV1 for passing through a generic API member 
 1.10290 +function. */
 1.10291 +	typedef TPckg<TMobileUssdCapsV1> TMobileUssdCapsV1Pckg;
 1.10292 +
 1.10293 +	IMPORT_C TInt GetCaps(TDes8& aCaps) const;
 1.10294 +
 1.10295 +/** Defines the USSD Messaging Attributes.
 1.10296 +
 1.10297 +Modes: GSM/WCDMA
 1.10298 +
 1.10299 +@see TMobileUssdAttributesV1 */
 1.10300 +	enum TMobileUssdAttributeFlags
 1.10301 +		{
 1.10302 +	/** The iFormat field is valid in the attribute class. */
 1.10303 +		KUssdDataFormat = 0x00000001,
 1.10304 +	/** The iType field is valid in the attribute class. */
 1.10305 +		KUssdMessageType = 0x00000002,
 1.10306 +	/** The iDcs field is valid in the attribute class. */
 1.10307 +		KUssdMessageDcs = 0x00000004
 1.10308 +		};
 1.10309 +
 1.10310 +/** Defines the USSD Data Formats.
 1.10311 +
 1.10312 +Modes: Common */
 1.10313 +	enum TMobileUssdDataFormat
 1.10314 +		{
 1.10315 +	/** The message data format is unspecified.
 1.10316 +	
 1.10317 +	Modes: Common */
 1.10318 +		EFormatUnspecified,
 1.10319 +	/** The message data format complies to a USSD coded as 160 octets as defined for 
 1.10320 +	a ussd-String within GSM 04.80 and GSM 03.38.
 1.10321 +	
 1.10322 +	Modes: GSM/WCDMA */
 1.10323 +		EFormatPackedString
 1.10324 +		};
 1.10325 +
 1.10326 +/** Defines the USSD Message Types.
 1.10327 +
 1.10328 +Modes: GSM/WCDMA */
 1.10329 +	enum TMobileUssdMessageType
 1.10330 +		{
 1.10331 +	/** Message is an unknown type. */
 1.10332 +		EUssdUnknown,
 1.10333 +	/** Message is a mobile originated USSD request. The MS expects the network to 
 1.10334 +	send a USSD MT reply. */
 1.10335 +		EUssdMORequest,
 1.10336 +	/** Message is a reply to a previously received network initiated USSD request. 
 1.10337 +	It is a USSD MO reply. */
 1.10338 +		EUssdMOReply,
 1.10339 +	/** Message is a one-off network initiated USSD notification. The network expects the MS to
 1.10340 +	send a USSD MO acknowledgement with empty message content. */
 1.10341 +		EUssdMTNotify,
 1.10342 +	/** Message is a network initiated USSD request. The network expects
 1.10343 +	the MS to send a USSD MO reply. */
 1.10344 +		EUssdMTRequest,
 1.10345 +	/** Message is a network initiated reply to a previously sent MO USSD request. */
 1.10346 +		EUssdMTReply,
 1.10347 +	/** For acknowledging MT USSD notifications (empty message content). */
 1.10348 +		EUssdMOAcknowledgement
 1.10349 +		};
 1.10350 +
 1.10351 +	
 1.10352 +
 1.10353 +	class TMobileUssdAttributesV1 : public RMobilePhone::TMultimodeType
 1.10354 +	/** Defines attributes of a USSD message. 
 1.10355 +	@publishedPartner
 1.10356 +	@released
 1.10357 +	*/
 1.10358 +		{
 1.10359 +	public:
 1.10360 +		IMPORT_C TMobileUssdAttributesV1();
 1.10361 +	public:
 1.10362 +	/** The TMobileUssdAttributeFlags bit-mask flags indicating which attributes are
 1.10363 +	present in this instance.
 1.10364 +	
 1.10365 +	Modes: GSM/WCDMA
 1.10366 +
 1.10367 +	@see TMobileUssdAttributeFlags */
 1.10368 +		TUint32 iFlags;
 1.10369 +	/** Format of the message data buffer.
 1.10370 +	
 1.10371 +	Modes: GSM/WCDMA
 1.10372 +	
 1.10373 +	@see TMobileUssdDataFormat */
 1.10374 +		TMobileUssdDataFormat iFormat;
 1.10375 +	/** The type of USSD message.
 1.10376 +	
 1.10377 +	Modes: GSM/WCDMA
 1.10378 +	
 1.10379 +	@see TMobileUssdMessageType */
 1.10380 +		TMobileUssdMessageType iType;
 1.10381 +	/** The Data Coding Scheme of the USSD message.
 1.10382 +	
 1.10383 +	Modes: GSM/WCDMA */
 1.10384 +		TUint8 iDcs;
 1.10385 +		};
 1.10386 +	
 1.10387 +/** A typedef'd packaged TMobileUssdAttributesV1 for passing through a generic 
 1.10388 +API member function. */
 1.10389 +	typedef TPckg<TMobileUssdAttributesV1> TMobileUssdAttributesV1Pckg;
 1.10390 +
 1.10391 +	/***********************************************************************************/
 1.10392 +	//
 1.10393 +	// Receiving USSD messages
 1.10394 + 	//
 1.10395 +	/***********************************************************************************/
 1.10396 +
 1.10397 +	enum 
 1.10398 +		{
 1.10399 +		KGsmUssdDataSize = 160
 1.10400 +		};
 1.10401 +
 1.10402 +/** A typedef'd buffer to hold the message data. */
 1.10403 +	typedef TBuf8<KGsmUssdDataSize> TGsmUssdMessageData;
 1.10404 +
 1.10405 +	IMPORT_C void ReceiveMessage(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
 1.10406 +
 1.10407 +	/***********************************************************************************/
 1.10408 +	//
 1.10409 +	// Sending USSD messages
 1.10410 +	//
 1.10411 +	/***********************************************************************************/
 1.10412 +
 1.10413 +	IMPORT_C void SendMessage(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
 1.10414 +	IMPORT_C void SendMessageNoFdnCheck(TRequestStatus& aReqStatus, const TDesC8& aMsgData, const TDesC8& aMsgAttributes) const;
 1.10415 +	
 1.10416 +	IMPORT_C void SendRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const;
 1.10417 +	IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aReturnResult) const;
 1.10418 +	IMPORT_C void NotifyNetworkRelease(TRequestStatus& aReqStatus, TDes8& aMsgData, TDes8& aMsgAttributes) const;
 1.10419 +
 1.10420 +private:
 1.10421 +	RMobileUssdMessaging(const RMobileUssdMessaging&);
 1.10422 +	CUssdMessagingPtrHolder* iUssdMessagingPtrHolder;
 1.10423 +protected:
 1.10424 +	IMPORT_C void ConstructL();
 1.10425 +	IMPORT_C void Destruct();
 1.10426 +	};
 1.10427 +
 1.10428 +
 1.10429 +
 1.10430 +/*********************************************************/
 1.10431 +//
 1.10432 +// SMS Message Storage (RMobileSmsStore)
 1.10433 +//
 1.10434 +/*********************************************************/
 1.10435 +
 1.10436 +
 1.10437 +
 1.10438 +class CSmsStorePtrHolder;
 1.10439 +class CMobilePhoneSmsList;
 1.10440 +class RMobileSmsStore : public RMobilePhoneStore
 1.10441 +/** Provides client access to SMS storage functionality provided by TSY.
 1.10442 +@publishedPartner
 1.10443 +@released
 1.10444 +*/
 1.10445 +	{
 1.10446 +public:
 1.10447 +
 1.10448 +	IMPORT_C RMobileSmsStore();
 1.10449 +	IMPORT_C TInt Open(RMobileSmsMessaging& aMessaging, const TDesC& aStoreName);
 1.10450 +	IMPORT_C void Close();
 1.10451 +
 1.10452 +/** Defines the SMS Store Capabilities.
 1.10453 +
 1.10454 +Modes: Common */
 1.10455 +	enum TMobileSmsStoreCaps
 1.10456 +		{
 1.10457 +	/** The store contains unread, incoming SMS entries.
 1.10458 +	
 1.10459 +	Modes: Common */
 1.10460 +		KCapsUnreadMessages = 0x00000001,
 1.10461 +	/** The store contains read, incoming SMS entries.
 1.10462 +	
 1.10463 +	Modes: Common */
 1.10464 +		KCapsReadMessages = 0x00000002,
 1.10465 +	/** The store contains sent SMS entries.
 1.10466 +	
 1.10467 +	Modes: Common */
 1.10468 +		KCapsSentMessages = 0x00000004,
 1.10469 +	/** The store contains un sent SMS entries. */
 1.10470 +		KCapsUnsentMessages = 0x00000008,
 1.10471 +	/** The store contains GSM SMS message entries – so TMobileGsmSmsEntryV1 class 
 1.10472 +	should be used.
 1.10473 +	
 1.10474 +	Modes: GSM/WCDMA */
 1.10475 +		KCapsGsmMessages = 0x00000010,
 1.10476 +	/** The store contains CDMA SMS message entries – so TMobileCdmaSmsEntryV1 class 
 1.10477 +	should be used.
 1.10478 +	
 1.10479 +	Modes: CDMA */
 1.10480 +		KCapsCdmaMessages = 0x00000020
 1.10481 +		};
 1.10482 +
 1.10483 +/** Defines contents of a fixed-size, stored SMS entry.
 1.10484 +
 1.10485 +Modes: Common */
 1.10486 +	enum TMobileSmsStoreStatus
 1.10487 +		{
 1.10488 +	/** The status of the SMS is unknown. */
 1.10489 +		EStoredMessageUnknownStatus,
 1.10490 +	/** The SMS is stored phone-side. It is an incoming message that has not been read 
 1.10491 +	yet. */
 1.10492 +		EStoredMessageUnread,
 1.10493 +	/** The SMS is stored phone-side. It is an incoming message that has already been 
 1.10494 +	read. */
 1.10495 +		EStoredMessageRead,
 1.10496 +	/** The SMS is stored phone-side. It is an outgoing message that has not been sent 
 1.10497 +	yet. */
 1.10498 +		EStoredMessageUnsent,
 1.10499 +	/** The SMS is stored phone-side. It is an outgoing message that has already been 
 1.10500 +	sent but a delivery/status report has either not been received yet or was 
 1.10501 +	not requested in the first place. */
 1.10502 +		EStoredMessageSent,
 1.10503 +	/** The SMS is stored phone-side. It is an outgoing message that has already been 
 1.10504 +	sent and a delivery/status report has been received */
 1.10505 +		EStoredMessageDelivered
 1.10506 +		};
 1.10507 +
 1.10508 +	//
 1.10509 +	// Enum used by TSY to distinguish which SMS entry class is used by client
 1.10510 +	//
 1.10511 +
 1.10512 +/** Used by TSY to distinguish which SMS entry class is used by client. */
 1.10513 +	enum TMobileSmsEntryExtensionId
 1.10514 +		{
 1.10515 +	/** Type is unknown. */
 1.10516 +		KETelMobileSmsEntryV1=KETelExtMultimodeV1,
 1.10517 +	/** The iExtensionId contents indicate that the packaged class is a TMobileGsmSmsEntryV1.
 1.10518 +	
 1.10519 +	Also used to indicate that GSM SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */
 1.10520 +		KETelMobileGsmSmsEntryV1,
 1.10521 +	/** The iExtensionId contents indicate that the packaged class is a TMobileCdmaSmsEntryV1.
 1.10522 +	
 1.10523 +	Also used to indicate that CDMA SMS entries will be retrieved by CRetrieveMobilePhoneSmsList. */
 1.10524 +		KETelMobileCdmaSmsEntryV1
 1.10525 +		};
 1.10526 +
 1.10527 +	class TMobileSmsEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
 1.10528 +	/** Defines contents of a fixed-size, stored SMS entry.
 1.10529 +	@publishedPartner
 1.10530 +	@released 
 1.10531 +	*/
 1.10532 +		{
 1.10533 +	public:
 1.10534 +		void InternalizeL(RReadStream& aStream);
 1.10535 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10536 +	protected:
 1.10537 +		TMobileSmsEntryV1();
 1.10538 +	public:
 1.10539 +	/** The status of the stored message.
 1.10540 +	
 1.10541 +	Modes: Common
 1.10542 +	
 1.10543 +	@see TMobileSmsStoreStatus */
 1.10544 +		TMobileSmsStoreStatus	iMsgStatus;	
 1.10545 +		};
 1.10546 +
 1.10547 +/** A typedef'd packaged TMobileSmsEntryV1 for passing through a generic API 
 1.10548 +member function. */
 1.10549 +	typedef TPckg<TMobileSmsEntryV1> TMobileSmsEntryV1Pckg;
 1.10550 +	
 1.10551 +	class TMobileGsmSmsEntryV1 : public TMobileSmsEntryV1
 1.10552 +/** Defines contents of a fixed-size, stored GSM SMS entry.
 1.10553 +@publishedPartner
 1.10554 +@released */
 1.10555 +		{
 1.10556 +	public:
 1.10557 +		void InternalizeL(RReadStream& aStream);
 1.10558 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10559 +	public:
 1.10560 +		IMPORT_C TMobileGsmSmsEntryV1();
 1.10561 +	public:
 1.10562 +	/** The service centre to use (or used) for the message.
 1.10563 +	
 1.10564 +	Modes: GSM/WCDMA
 1.10565 +	
 1.10566 +	@see RMobilePhone::TMobileAddress */
 1.10567 +		RMobilePhone::TMobileAddress iServiceCentre;
 1.10568 +	/** The GSM 03.40 TPDU.
 1.10569 +	
 1.10570 +	Modes: GSM/WCDMA
 1.10571 +	
 1.10572 +	@see RMobileSmsMessaging::TMobileSmsGsmTpdu */
 1.10573 +		RMobileSmsMessaging::TMobileSmsGsmTpdu	iMsgData;	
 1.10574 +		};
 1.10575 +
 1.10576 +/** A typedef'd packaged TMobileGsmSmsEntryV1 for passing through a generic API 
 1.10577 +member function. */
 1.10578 +	typedef TPckg<TMobileGsmSmsEntryV1> TMobileGsmSmsEntryV1Pckg;
 1.10579 +
 1.10580 +	class TMobileCdmaSmsEntryV1 : public TMobileSmsEntryV1
 1.10581 +	/** Defines contents of a fixed-size, stored CDMA SMS entry. 
 1.10582 +	@publishedPartner
 1.10583 +	@released
 1.10584 +	*/
 1.10585 +		{
 1.10586 +	public:
 1.10587 +		void InternalizeL(RReadStream& aStream);
 1.10588 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10589 +	public:
 1.10590 +		IMPORT_C TMobileCdmaSmsEntryV1();
 1.10591 +	public:
 1.10592 +	/** The teleservice identifier of the stored message.
 1.10593 +	
 1.10594 +	Modes: CDMA */
 1.10595 +		TInt iTeleservice;
 1.10596 +	/** The service category of the stored message.
 1.10597 +	
 1.10598 +	Modes: CDMA */
 1.10599 +		TInt iServiceCategory;
 1.10600 +	/** The remote party (destination or originator) of the stored message.
 1.10601 +	
 1.10602 +	Modes: CDMA
 1.10603 +	
 1.10604 +	@see RMobilePhone::TMobileAddress */
 1.10605 +		RMobilePhone::TMobileAddress iRemoteParty;
 1.10606 +	/** The teleservice layer bearer data of the stored message.
 1.10607 +	
 1.10608 +	Modes: CDMA
 1.10609 +	
 1.10610 +	@see RMobileSmsMessaging::TMobileSmsCdmaTpdu */
 1.10611 +		RMobileSmsMessaging::TMobileSmsCdmaTpdu iMsgData;	
 1.10612 +		};
 1.10613 +
 1.10614 +/** A typedef'd packaged TMobileCdmaSmsEntryV1 for passing through a generic API 
 1.10615 +member function. */
 1.10616 +	typedef TPckg<TMobileCdmaSmsEntryV1> TMobileCdmaSmsEntryV1Pckg;
 1.10617 +
 1.10618 +protected:
 1.10619 +	IMPORT_C void ConstructL();
 1.10620 +private:
 1.10621 +	RMobileSmsStore(const RMobileSmsStore&);
 1.10622 +	};
 1.10623 +
 1.10624 +/*********************************************************/
 1.10625 +//
 1.10626 +// NAM Storage (RMobileNamStore)
 1.10627 +//
 1.10628 +/*********************************************************/
 1.10629 +
 1.10630 +
 1.10631 +
 1.10632 +class CNamStorePtrHolder;
 1.10633 +class CMobilePhoneNamList;
 1.10634 +class CMobilePhoneNamListV4;
 1.10635 +
 1.10636 +class RMobileNamStore : public RMobilePhoneStore
 1.10637 +/**
 1.10638 +Provides client access to NAM storage functionality provided by TSY
 1.10639 +
 1.10640 +*/
 1.10641 +	{
 1.10642 +public:
 1.10643 +	IMPORT_C RMobileNamStore();
 1.10644 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
 1.10645 +	IMPORT_C void Close();
 1.10646 +
 1.10647 +
 1.10648 +
 1.10649 +	class TMobileNamStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
 1.10650 +	/**
 1.10651 +	Defines information about a NAM store
 1.10652 +	
 1.10653 +	@publishedPartner
 1.10654 +    @released
 1.10655 +	*/
 1.10656 +		{
 1.10657 +	public:
 1.10658 +		IMPORT_C TMobileNamStoreInfoV1();
 1.10659 +	public:
 1.10660 +	/** The number of enabled NAMs within the NAM store.
 1.10661 +	
 1.10662 +	Modes: CDMA */
 1.10663 +		TInt iNamCount;
 1.10664 +	/** The index of the NAM that is currently the active NAM, will be between 0 and 
 1.10665 +	iNamCount-1.
 1.10666 +	
 1.10667 +	Modes: CDMA */
 1.10668 +		TInt iActiveNam;
 1.10669 +		};
 1.10670 +
 1.10671 +/** A typedef'd packaged TMobileNamStoreInfoV1 for passing through a generic API 
 1.10672 +member function. */
 1.10673 +	typedef TPckg<TMobileNamStoreInfoV1> TMobileNamStoreInfoV1Pckg;
 1.10674 +
 1.10675 +	IMPORT_C void SetActiveNam(TRequestStatus& aReqStatus, TInt aNamId) const;
 1.10676 +
 1.10677 +	enum
 1.10678 +		{
 1.10679 +		/* The original maximum NAM parameter size for a TMobileNamEntryV1 */
 1.10680 +		KMaxNamParamSize = 64,
 1.10681 +		/* Updated maximum NAM parameter size for TMobileNamEntryV4 */
 1.10682 +		KMaxNamParamSizeV4 = 256
 1.10683 +		};
 1.10684 +
 1.10685 +	class TMobileNamEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
 1.10686 +	/**
 1.10687 +	Defines contents of a NAM store entry
 1.10688 +	
 1.10689 +	@publishedPartner
 1.10690 +	@released
 1.10691 +	*/
 1.10692 +		{
 1.10693 +	public:
 1.10694 +		IMPORT_C TMobileNamEntryV1();
 1.10695 +	public:
 1.10696 +		void InternalizeL(RReadStream& aStream);
 1.10697 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10698 +	public:
 1.10699 +	/** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfoV1::iNamCount-1.
 1.10700 +	
 1.10701 +	Modes: CDMA */
 1.10702 +		TInt iNamId;
 1.10703 +	/** The identifier of the NAM parameter to be accessed.
 1.10704 +	
 1.10705 +	TSY must define values of parameter identifiers.
 1.10706 +	
 1.10707 +	Modes: CDMA */
 1.10708 +		TInt iParamIdentifier;
 1.10709 +	/** The data contents of the selected parameter.
 1.10710 +	
 1.10711 +	Modes: CDMA
 1.10712 +	
 1.10713 +	@see KMaxNamParamSize */
 1.10714 +		TBuf8<KMaxNamParamSize> iData;
 1.10715 +		};
 1.10716 +
 1.10717 +	/** A typedef'd packaged TMobileNamEntryV1 for passing through a generic API member 
 1.10718 +	function. */
 1.10719 +	typedef TPckg<TMobileNamEntryV1> TMobileNamEntryV1Pckg;
 1.10720 +
 1.10721 +	/** Enumeration for the standard NAM parameters (see 3GPP2 C.S0005-A appendix F.3)
 1.10722 +	Modes: CDMA */
 1.10723 +	enum TStandardNamParameters
 1.10724 +		{
 1.10725 +		/** The 64-bit pattern stored in the Mobile Station and 
 1.10726 +			Home Location Register/Authentication Centre used to generate/update the 
 1.10727 +			mobile station’s Shared Secret Data
 1.10728 +			Corresponds to NAM Indicator 'A_KEY' */
 1.10729 +		EAKey,
 1.10730 +		/** 64-bit key used for authentication
 1.10731 +			Corresponds to NAM Indicator 'SSD_A(s-p)' */
 1.10732 +		ESharedSecretDataA,
 1.10733 +		/** 64-bit key used as input to generate encryption mask and long code
 1.10734 +			Corresponds to NAM Indicator 'SSD_B(s-p)' */
 1.10735 +		ESharedSecretDataB,
 1.10736 +		/** Modulo-64 event counter maintained by the mobile station and Authentication Center 
 1.10737 +			used for clone detection
 1.10738 +			Corresponds to NAM Indicator 'COUNT(s-p)' */
 1.10739 +		EParameterUpdateReceivedCount,
 1.10740 +		/** Class of the International Mobile Station Identity (IMSI) containing a MIN as 
 1.10741 +			the lower 10 digits 
 1.10742 +			Corresponds to NAM Indicator 'IMSI_M_CLASS(p)' */
 1.10743 +		EMinBasedImsiClass,
 1.10744 +		/** The class of the International Mobile Station Identity (IMSI) not containing a MIN as 
 1.10745 +			the lower 10 digits 
 1.10746 +			Corresponds to NAM Indicator 'IMSI_T_CLASS(p)' */
 1.10747 +		ETrueImsiClass,
 1.10748 +		/** 34-bit number derived from the IMSI M used as input for authentication
 1.10749 +			Corresponds to NAM Indicator 'IMSI_M_S(p)' */
 1.10750 +		EMinBasedImsiS,
 1.10751 +		/** 34-bit number derived from the IMSI T used as input for authentication
 1.10752 +			Corresponds to NAM Indicator 'IMSI_T_S(p)' */
 1.10753 +		ETrueImsiS,
 1.10754 +		/** Number of digits in the IMSI M minus 4
 1.10755 +			Corresponds to NAM Indicator 'IMSI_M_ADDR_NUM(p)' */
 1.10756 +		EMinBasedImsiAddressNum,
 1.10757 +		/** The number of digits in the IMSI T minus 4
 1.10758 +			Corresponds to NAM Indicator 'IMSI_T_ADDR_NUM(p)' */
 1.10759 +		ETrueImsiAddressNum,
 1.10760 +		/** The 11th and 12th digits in the IMSI M
 1.10761 +			Corresponds to NAM Indicator 'IMSI_M_11_12(p)' */
 1.10762 +		EMinBasedImsiDigits11and12,
 1.10763 +		/** The 11th and 12th digits in the IMSI T
 1.10764 +			Corresponds to NAM Indicator 'IMSI_T_11_12(p)' */
 1.10765 +		ETrueImsiDigits11and12,
 1.10766 +		/** The country code for the IMSI M
 1.10767 +			Corresponds to NAM Indicator 'MCC_M(p)' */
 1.10768 +		EMinBasedMobileCountryCode,
 1.10769 +		/** The country code for the IMSI T
 1.10770 +			Corresponds to NAM Indicator 'MCC_T(p)' */
 1.10771 +		ETrueMobileCountryCode,
 1.10772 +		/** Up to 15 digit dialable number associated with the mobile station through a service 
 1.10773 +			subscription
 1.10774 +			Corresponds to NAM Indicator 'MDN(p)' */
 1.10775 +		EMobileDirectoryNumber,
 1.10776 +		/** 4-bit number giving the length of the assigning Temporary Mobile Station Identity (TMSI) zone 
 1.10777 +			(can range from 1 to 8 octets)
 1.10778 +			Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE_LEN(s-p)' */
 1.10779 +		EAssigningTmsiZoneLen,
 1.10780 +		/** Temporary Mobile Station Identity (TMSI) zone is an arbitrary set of base stations 
 1.10781 +			for the administrative assignment of TMSI
 1.10782 +			Corresponds to NAM Indicator 'ASSIGNING_TMSI_ZONE(s-p)' */
 1.10783 +		EAssigningTmsiZone,
 1.10784 +		/** The uniquely assigned number to a mobile station inside a TMSI zone
 1.10785 +			Corresponds to NAM Indicator 'TMSI_CODE(s-p)' */
 1.10786 +		ETmsiCode,
 1.10787 +		/** The expiration time used to automatically delete the assigned TMSI
 1.10788 +			Corresponds to NAM Indicator 'TMSI_EXP_TIME(s-p)' */
 1.10789 +		ETmsiExpTime,
 1.10790 +		/** Mobile station's home System Id for 800MHz analog operation
 1.10791 +			Corresponds to NAM Indicator 'HOME_SID(p)' */
 1.10792 +		EHomeSystemIdAnalog,
 1.10793 +		/** Mobile station's home System Id
 1.10794 +			Corresponds to NAM Indicator 'SID(p)' */
 1.10795 +		EHomeSystemId,
 1.10796 +		/** Mobile station's home Network Id
 1.10797 +			Corresponds to NAM Indicator 'NID(p)' */
 1.10798 +		EHomeNetworkId,
 1.10799 +		/** Mobile station is configured to receive mobile station terminated calls when 
 1.10800 +			using a home (SID, NID) pair
 1.10801 +			Corresponds to NAM Indicator 'MOB_TERM_HOME(p)' */
 1.10802 +		EReceiveCallsHome,
 1.10803 +		/** The mobile station is configured to receive mobile station terminated calls when 
 1.10804 +			it is a foreign SID roamer
 1.10805 +			Corresponds to NAM Indicator 'MOB_TERM_FOR_SID(p)' */
 1.10806 +		EReceiveCallsForeignSystem,
 1.10807 +		/** The mobile station is configured to receive mobile station terminated calls when 
 1.10808 +			it is a foreign NID roamer
 1.10809 +			Corresponds to NAM Indicator 'MOB_TERM_FOR_NID(p)' */
 1.10810 +		EReceiveCallsForeignNetwork,
 1.10811 +		/**	A TSY may use this as the first TSY-defined non-standard NAM parameter */
 1.10812 +		ENumStandardNamParameters
 1.10813 +		};
 1.10814 +
 1.10815 +	class TMobileNamEntryV4 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
 1.10816 +	/**
 1.10817 +	Defines contents of a NAM store entry
 1.10818 +
 1.10819 +	The differences between the original TMobileNamEntryV1, and updated TMobileNamEntryV4 are:
 1.10820 +	- the maximum mobile NAM parameter size is KMaxNamParamSize(64) for TMobileNamEntryV1
 1.10821 +	  and KMaxNamParamSizeV4(256) for TMobileNamEntryV4
 1.10822 +	- TMobileNamEntryV4 defines a set of standard NAM parameters for the iParamIdentifier as
 1.10823 +	  described in 3GPP2 C.S0005-A appendix F.3
 1.10824 +	
 1.10825 +	@publishedPartner
 1.10826 +	@released
 1.10827 +	*/
 1.10828 +		{
 1.10829 +	public:
 1.10830 +		IMPORT_C TMobileNamEntryV4();
 1.10831 +	public:
 1.10832 +		void InternalizeL(RReadStream& aStream);
 1.10833 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10834 +	public:
 1.10835 +	/** The NAM that is to be accessed, will be between 0 and TMobileNamStoreInfo::iNamCount-1.
 1.10836 +	
 1.10837 +	Modes: CDMA */
 1.10838 +		TInt iNamId;
 1.10839 +
 1.10840 +	/** The identifier of the NAM parameter to be accessed.
 1.10841 +	iParamIdentifier will be a TStandardNamParameters value if a standard NAM parameter is being accessed, 
 1.10842 +	however a TSY may support and define NAM parameters in addition to those given by TStandardNamParameters	
 1.10843 +	Modes: CDMA */
 1.10844 +		TInt iParamIdentifier;
 1.10845 +
 1.10846 +	/** The data contents of the selected parameter.
 1.10847 +	
 1.10848 +	Modes: CDMA
 1.10849 +	
 1.10850 +	@see KMaxNamParamSizeV4 */
 1.10851 +		TBuf8<KMaxNamParamSizeV4> iData;
 1.10852 +		};
 1.10853 +
 1.10854 +	/** A typedef'd packaged TMobileNamEntryV4 for passing through a generic API member 
 1.10855 +	function. */
 1.10856 +	typedef TPckg<TMobileNamEntryV4> TMobileNamEntryV4Pckg;
 1.10857 +
 1.10858 +	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamList* aNamList) const;
 1.10859 +	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, TInt aNamId, CMobilePhoneNamListV4* aNamList) const;
 1.10860 +
 1.10861 +protected:
 1.10862 +	IMPORT_C void ConstructL();
 1.10863 +private:
 1.10864 +	RMobileNamStore(const RMobileNamStore&);
 1.10865 +	};
 1.10866 +
 1.10867 +
 1.10868 +/*********************************************************/
 1.10869 +//
 1.10870 +// Own Number Storage (RMobileONStore)
 1.10871 +//
 1.10872 +/*********************************************************/
 1.10873 +
 1.10874 +
 1.10875 +
 1.10876 +class CONStorePtrHolder;
 1.10877 +class CMobilePhoneONList;
 1.10878 +	
 1.10879 +class RMobileONStore : public RMobilePhoneStore
 1.10880 +/**
 1.10881 +Provides client access to Own Number storage functionality provided by TSY
 1.10882 +
 1.10883 +*/
 1.10884 +	{
 1.10885 +public:
 1.10886 +	IMPORT_C RMobileONStore();
 1.10887 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
 1.10888 +	IMPORT_C void Close();
 1.10889 +
 1.10890 +	
 1.10891 +
 1.10892 +	class TMobileONStoreInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
 1.10893 +	/**
 1.10894 +	Defines information about an Own Number store
 1.10895 +	
 1.10896 +	@publishedPartner
 1.10897 +	@released
 1.10898 +	*/
 1.10899 +		{
 1.10900 +	public:
 1.10901 +		IMPORT_C TMobileONStoreInfoV1();
 1.10902 +	public:
 1.10903 +	/** The maximum length of the own phone number can be. */
 1.10904 +		TInt iNumberLen;
 1.10905 +	/** The maximum length the text field can be. */
 1.10906 +		TInt iTextLen;
 1.10907 +		};
 1.10908 +
 1.10909 +/** A typedef'd packaged TMobileONStoreInfoV1 for passing through a generic API 
 1.10910 +member function. */
 1.10911 +	typedef TPckg<TMobileONStoreInfoV1> TMobileONStoreInfoV1Pckg;
 1.10912 +
 1.10913 +	enum
 1.10914 +		{
 1.10915 +		KOwnNumberTextSize = 20
 1.10916 +		};
 1.10917 +
 1.10918 +	
 1.10919 +
 1.10920 +	class TMobileONEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
 1.10921 +	/**
 1.10922 +	Defines contents of a Own Number store entry
 1.10923 +	
 1.10924 +	@publishedPartner
 1.10925 +	@released
 1.10926 +	*/
 1.10927 +		{
 1.10928 +	public:
 1.10929 +		IMPORT_C TMobileONEntryV1();
 1.10930 +	public:
 1.10931 +		void InternalizeL(RReadStream& aStream);
 1.10932 +		void ExternalizeL(RWriteStream& aStream) const;
 1.10933 +	public:
 1.10934 +	/** Network mode. */
 1.10935 +		RMobilePhone::TMobilePhoneNetworkMode iMode;
 1.10936 +	/** Mobile call service type.
 1.10937 +	
 1.10938 +	@see RMobilePhone::TMobileService */
 1.10939 +		RMobilePhone::TMobileService iService;
 1.10940 +	/** Own number.
 1.10941 +	
 1.10942 +	@see RMobilePhone::TMobileAddress */
 1.10943 +		RMobilePhone::TMobileAddress iNumber;
 1.10944 +	/** The name-tag associated with own number (e.g. "Voice Number"). */
 1.10945 +		TBuf<KOwnNumberTextSize> iText;
 1.10946 +		};
 1.10947 +
 1.10948 +/** A typedef'd packaged TMobileONEntryV1 for passing through a generic API member 
 1.10949 +function. */
 1.10950 +	typedef TPckg<TMobileONEntryV1> TMobileONEntryV1Pckg;
 1.10951 +
 1.10952 +	IMPORT_C void StoreAllL(TRequestStatus& aReqStatus, CMobilePhoneONList* aONList) const;
 1.10953 +
 1.10954 +protected:
 1.10955 +	IMPORT_C void ConstructL();
 1.10956 +private:
 1.10957 +	RMobileONStore(const RMobileONStore&);
 1.10958 +	};
 1.10959 +
 1.10960 +/*********************************************************/
 1.10961 +//
 1.10962 +// Emergency Number Storage (RMobileENStore)
 1.10963 +//
 1.10964 +/*********************************************************/
 1.10965 +
 1.10966 +
 1.10967 +
 1.10968 +class CMobilePhoneENList;
 1.10969 +
 1.10970 +class RMobileENStore : public RMobilePhoneStore
 1.10971 +/**
 1.10972 +Provides client access to Emergency Number storage functionality provided by TSY
 1.10973 +
 1.10974 +*/
 1.10975 +	{
 1.10976 +public:
 1.10977 +	IMPORT_C RMobileENStore();
 1.10978 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
 1.10979 +	IMPORT_C void Close();
 1.10980 +
 1.10981 +	enum 
 1.10982 +		{
 1.10983 +		KEmergencyNumberSize  = 6,
 1.10984 +		KEmergencyAlphaTagSize = 20
 1.10985 +		};
 1.10986 +
 1.10987 +/** Enumerated list of Emergency Number entries.
 1.10988 +
 1.10989 +Mode: WCDMA */
 1.10990 +	enum TMobilePhoneENServiceCategory
 1.10991 +		{
 1.10992 +	/** This number provides emergency care by the police department. */
 1.10993 +		KServiceCatPolice =0x0001,
 1.10994 +	/** This number provides emergency care by the ambulance department. */
 1.10995 +		KServiceCatAmbulance =0x0002,
 1.10996 +	/** This number provides emergency care by the fire brigade department. */
 1.10997 +		KServiceCatFireBrigade =0x0004,
 1.10998 +	/** This number provides emergency care by the marine guard department. */
 1.10999 +		KServiceCatMarineGuard =0x0008,
 1.11000 +	/** This number provides emergency care by the mountain rescue department. */
 1.11001 +		KServiceCatMountainRescue =0x0010
 1.11002 +		// Reserved types: 0x0020,0x0040,
 1.11003 +		};
 1.11004 +
 1.11005 +	
 1.11006 +
 1.11007 +/** Buffer to hold the emergency number in. */
 1.11008 +	typedef TBuf<KEmergencyNumberSize> TEmergencyNumber;
 1.11009 +
 1.11010 +	class TMobileENEntryV1 : public RMobilePhoneStore::TMobilePhoneStoreEntryV1
 1.11011 +	/**
 1.11012 +	Defines contents of a Emergency Number store entry
 1.11013 +	@publishedPartner
 1.11014 +	@released
 1.11015 +	*/
 1.11016 +		{
 1.11017 +	public:
 1.11018 +		IMPORT_C TMobileENEntryV1();
 1.11019 +	public:
 1.11020 +		void InternalizeL(RReadStream& aStream);
 1.11021 +		void ExternalizeL(RWriteStream& aStream) const;
 1.11022 +	public:
 1.11023 +	/** Indicates whether the emergency number is applicable in all situations (=EFalse) 
 1.11024 +	or only when the MS is registered to a specific GSM or CDMA network (=ETrue). */
 1.11025 +		TBool iNetworkSpecific;
 1.11026 +	/** The network mode. Only applicable if iNetworkSpecific equals ETrue.
 1.11027 +
 1.11028 +	Modes: Common
 1.11029 +	
 1.11030 +	@see RMobilePhone::TMobilePhoneNetworkMode */
 1.11031 +		RMobilePhone::TMobilePhoneNetworkMode iMode;
 1.11032 +	/** Country code. Only applicable if iNetworkSpecific equals ETrue.
 1.11033 +	
 1.11034 +	Modes: Common
 1.11035 +	
 1.11036 +	@see RMobilePhone::TMobilePhoneNetworkCountryCode */
 1.11037 +		RMobilePhone::TMobilePhoneNetworkCountryCode iCountryCode;
 1.11038 +	/** Network identity. Only applicable if iNetworkSpecific equals ETrue.
 1.11039 +	
 1.11040 +	Modes: Common
 1.11041 +	
 1.11042 +	@see RMobilePhone::TMobilePhoneNetworkIdentity */
 1.11043 +		RMobilePhone::TMobilePhoneNetworkIdentity iIdentity;
 1.11044 +	/** Emergency number.
 1.11045 +	
 1.11046 +	Modes: Common
 1.11047 +	
 1.11048 +	@see TEmergencyNumber */
 1.11049 +		TEmergencyNumber             iNumber;
 1.11050 +	/** Emergency call number type. It is used to display information about the dialed 
 1.11051 +	emergency number (e.g. "Police", "Ambulance", "Fire brigade", etc.)
 1.11052 +	
 1.11053 +	Modes: WCDMA */
 1.11054 +		TBuf<KEmergencyAlphaTagSize> iAlphaId;
 1.11055 +		//TInt should map to TMobilePhoneENServiceCategory.
 1.11056 +		//It was not changed to maintain source compatibility
 1.11057 +		
 1.11058 +	/** Emergency call type indicator, which contains information to be sent to the 
 1.11059 +	network indicating the type of emergency call.
 1.11060 +	
 1.11061 +	The field is for future reference only and it is set to RFU (Reserved for
 1.11062 +	Future Use) as it is currently not being used, as specified in section 4.2.21 
 1.11063 +	TS 31.102 v3.3.0 Rel 99.
 1.11064 +	
 1.11065 +	Modes: WCDMA */
 1.11066 +		TInt	                     iCallType; 
 1.11067 +		};
 1.11068 +
 1.11069 +	typedef TPckg<TMobileENEntryV1> TMobileENEntryV1Pckg;
 1.11070 +
 1.11071 +protected:
 1.11072 +	IMPORT_C void ConstructL();
 1.11073 +private:
 1.11074 +	RMobileENStore(const RMobileENStore&);
 1.11075 +	};
 1.11076 +
 1.11077 +
 1.11078 +/*********************************************************/
 1.11079 +//
 1.11080 +// RMobilePhoneBookStore 
 1.11081 +//
 1.11082 +/*********************************************************/
 1.11083 +
 1.11084 +
 1.11085 +
 1.11086 +class CPhoneBookStorePtrHolder;
 1.11087 +class CMobilePhoneBookList;
 1.11088 +
 1.11089 +class RMobilePhoneBookStore : public RMobilePhoneStore
 1.11090 +/** Provides member functions for clients to access phone 
 1.11091 +books that are stored in ICC memory or in non-volatile memory on the phone 
 1.11092 +itself. This sub-session and the member functions within this section must 
 1.11093 +be supported if the TSY indicates that it supports the MobilePhonebookStore 
 1.11094 +functional unit.
 1.11095 +@publishedPartner
 1.11096 +@released 
 1.11097 +*/
 1.11098 +	{
 1.11099 +public:
 1.11100 +	IMPORT_C RMobilePhoneBookStore();
 1.11101 +	IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore);
 1.11102 +	IMPORT_C TInt Open(RMobilePhone& aPhone, const TDesC& aStore, const TDesC& aMode);
 1.11103 +	IMPORT_C void Close();
 1.11104 +
 1.11105 +/** Describes the specialized phone book capabilities.
 1.11106 +
 1.11107 +Modes: Common */
 1.11108 +	enum TMobilePhoneBookCaps
 1.11109 +		{
 1.11110 +	/** New entries can only be written to (or deleted from) the phone book with the 
 1.11111 +	PIN2 password or equivalent.
 1.11112 +	
 1.11113 +	Modes: Common */
 1.11114 +		KCapsRestrictedWriteAccess = 0x00000001,
 1.11115 +	/** The phonebook supports the second name field.
 1.11116 +	
 1.11117 +	Modes: WCDMA */
 1.11118 +		KCapsSecondNameUsed        = 0x00000002,
 1.11119 +	/** The phonebook supports the additional number (with optional Text, TON, NPI 
 1.11120 +	and Bearer Capability) field.
 1.11121 +	
 1.11122 +	Modes: WCDMA */
 1.11123 +		KCapsAdditionalNumUsed     = 0x00000004,
 1.11124 +	/** The phonebook supports the group name field.
 1.11125 +	
 1.11126 +	Modes: WCDMA */
 1.11127 +		KCapsGroupingUsed		   = 0x00000008,
 1.11128 +	/** The phonebook supports entry control and hidden flag fields.
 1.11129 +
 1.11130 +	Modes: WCDMA */
 1.11131 +		KCapsEntryControlUsed      = 0x00000010,
 1.11132 +	/** The phonebook supports the email address field.
 1.11133 +	
 1.11134 +	Modes: WCDMA */
 1.11135 +		KCapsEmailAddressUsed      = 0x00000020,
 1.11136 +	/** The phonebook supports the bearer capability IE field.
 1.11137 +	
 1.11138 +	Modes: WCDMA */
 1.11139 +		KCapsBearerCapUsed		   = 0x00000040,
 1.11140 +	/** The phonebook supports retrieval of the phonebook's PBID and Change Counter 
 1.11141 +	- and for each entry its UID field.
 1.11142 +	
 1.11143 +	Modes: WCDMA */
 1.11144 +		KCapsSynchronisationUsed   = 0x00000080
 1.11145 +		};
 1.11146 +
 1.11147 +/** Described the location of the phone book.
 1.11148 +
 1.11149 +Modes: Common for all */
 1.11150 +	enum TMobilePhoneBookLocation
 1.11151 +		{
 1.11152 +	/** The phonebook's location is unknown. */
 1.11153 +		ELocationUnknown,
 1.11154 +	/** The phonebook is located in ICC (SIM/R-UIM) memory. */
 1.11155 +		ELocationIccMemory,
 1.11156 +	/** The phonebook is located in Phone (ME) memory. */
 1.11157 +		ELocationPhoneMemory,
 1.11158 +	/** The phonebook is located in an external memory. */
 1.11159 +		ELocationExternalMemory,
 1.11160 +	/** The phonebook entries are dispersed over a combination of memory locations. */
 1.11161 +		ELocationCombinedMemory
 1.11162 +		};
 1.11163 +
 1.11164 +	enum
 1.11165 +		{
 1.11166 +		KMaxPBIDSize=15
 1.11167 +		};
 1.11168 +
 1.11169 +/** Defines a modifiable buffer descriptor to contain the phone book identity. 
 1.11170 +Used in TMobilePhoneBookInfoV1. */
 1.11171 +	typedef TBuf8<KMaxPBIDSize> TMobilePhoneBookIdentity;
 1.11172 +
 1.11173 +	
 1.11174 +
 1.11175 +	class TMobilePhoneBookInfoV1 : public RMobilePhoneStore::TMobilePhoneStoreInfoV1
 1.11176 +	/**
 1.11177 +	Defines information about a Phonebook store.
 1.11178 +	@publishedPartner
 1.11179 +	@released
 1.11180 +	*/
 1.11181 +		{
 1.11182 +	public:
 1.11183 +	/** Trivial constructor. Initializes iMaxNumLength=-1; iMaxTextLength=-1; iLocation=ELocationUnknown; 
 1.11184 +	iChangeCounter=0; iExtensionId=KETelMobilePhonebookStoreV1; */
 1.11185 +		IMPORT_C TMobilePhoneBookInfoV1();
 1.11186 +	public:
 1.11187 +	/** The maximum number of characters for the number in a phonebook entry.
 1.11188 +	
 1.11189 +	Modes: Common */
 1.11190 +		TInt    iMaxNumLength;
 1.11191 +	/** The maximum number of characters for the text tag in a phonebook entry.
 1.11192 +	
 1.11193 +	Modes: Common */
 1.11194 +		TInt    iMaxTextLength;
 1.11195 +	/** The memory location of this phonebook.
 1.11196 +	
 1.11197 +	Modes: Common
 1.11198 +	
 1.11199 +	@see TMobilePhoneBookLocation */
 1.11200 +		TMobilePhoneBookLocation iLocation;
 1.11201 +	/** The contents of the Change Counter file in a USIM phonebook.
 1.11202 +	
 1.11203 +	Modes: WCDMA */
 1.11204 +		TUint16 iChangeCounter;
 1.11205 +	/** A unique identity for this type of phonebook.
 1.11206 +	
 1.11207 +	If this is a SIM or R-UIM phonebook then it will equal the ICCID of the card.
 1.11208 +	
 1.11209 +	If this is a USIM phonebook then it will equal the PBID of the phonebook. 
 1.11210 +	
 1.11211 +	Modes: Common
 1.11212 +	
 1.11213 +	@see TMobilePhoneBookIdentity */
 1.11214 +		TMobilePhoneBookIdentity iIdentity; 
 1.11215 +		};
 1.11216 +
 1.11217 +/** Packages the TMobilePhoneBookInfoV1 into a TMobilePhoneBookInfoV1Pckg. */
 1.11218 +	typedef TPckg<TMobilePhoneBookInfoV1> TMobilePhoneBookInfoV1Pckg;
 1.11219 +
 1.11220 +	
 1.11221 +	class TMobilePhoneBookInfoV2 : public TMobilePhoneBookInfoV1
 1.11222 +/** Defines information about a Phonebook store for version v2.0 of the API.
 1.11223 +@publishedPartner
 1.11224 +@released */
 1.11225 +		{
 1.11226 +	public:
 1.11227 +		IMPORT_C TMobilePhoneBookInfoV2();
 1.11228 +	public:
 1.11229 +	/** The type of the phonebook which relates to its location (ICC/UICC/CDMA).
 1.11230 +	
 1.11231 +	Mode: Common */
 1.11232 +		TName iPhBkMode; 
 1.11233 +		};
 1.11234 +
 1.11235 +/** Packages the TMobilePhoneBookInfoV2 into a TMobilePhoneBookInfoV1Pckg. */
 1.11236 +	typedef TPckg<TMobilePhoneBookInfoV2> TMobilePhoneBookInfoV2Pckg;
 1.11237 +
 1.11238 +
 1.11239 +	/** Defines information about a Phonebook store for version v5.0 of the API.
 1.11240 +
 1.11241 +	Extends the v2.0 API to allow additional information about the phonebook
 1.11242 +	(Maximum number of second name fields, Maximum number of additional number fields,
 1.11243 +	Maximum number of additional group name fields, Maximum number of email address fields)
 1.11244 +	to be retieved where available. 
 1.11245 +
 1.11246 +	@publishedPartner
 1.11247 +	@released*/
 1.11248 +	class TMobilePhoneBookInfoV5 : public TMobilePhoneBookInfoV2
 1.11249 +		{
 1.11250 +	public:
 1.11251 +		IMPORT_C TMobilePhoneBookInfoV5();
 1.11252 +	public:
 1.11253 +		/** The maximum number of Second Name fields that can be used. */
 1.11254 +		TInt iMaxSecondNames;
 1.11255 +		
 1.11256 +		/** The maximum text length for Second Name fields. */
 1.11257 +		TInt iMaxTextLengthSecondName;
 1.11258 +
 1.11259 +		/** The maximum number of additional number fields that can be used. */
 1.11260 +		TInt iMaxAdditionalNumbers;
 1.11261 +		
 1.11262 +		/** The maximum number length for Additional Number fields. */
 1.11263 +		TInt iMaxNumLengthAdditionalNumber;
 1.11264 +		
 1.11265 +		/** The maximum text length for Additonal Number fields. */
 1.11266 +		TInt iMaxTextLengthAdditionalNumber;
 1.11267 +
 1.11268 +		/** The maximum number of additional Group Name fields that can be used. */
 1.11269 +		TInt iMaxGroupNames;
 1.11270 +		
 1.11271 +		/** The maximum text length for Group Name fields. */
 1.11272 +		TInt iMaxTextLengthGroupName;
 1.11273 +		
 1.11274 +		/** The maximum number of additional E-Mail address fields that can be used. */
 1.11275 +		TInt iMaxEmailAddr;
 1.11276 +		
 1.11277 +		/** The maximum text length for Email Address fields. */
 1.11278 +		TInt iMaxTextLengthEmailAddr;
 1.11279 +		};
 1.11280 +
 1.11281 +	/** Packages the TMobilePhoneBookInfoV5 into a TMobilePhoneBookInfoV5Pckg. */
 1.11282 +	typedef TPckg<TMobilePhoneBookInfoV5> TMobilePhoneBookInfoV5Pckg;
 1.11283 +
 1.11284 +
 1.11285 +	// check these fields - not sure all are correct
 1.11286 +/** The following Tag IDs are used to encode/decode the phonebook entries to/from 
 1.11287 +the TLV format. Each field will have a unique identifier and will be followed 
 1.11288 +by the field length. The type of data associated with the field is also specified 
 1.11289 +below. 
 1.11290 +
 1.11291 +Some fields do not have any data and just serve as separators within the buffer 
 1.11292 +- in these cases the Data Type column is set to not applicable (n/a).
 1.11293 +
 1.11294 +Modes: Common */
 1.11295 +	enum TMobilePBFieldTags
 1.11296 +		{
 1.11297 +	/** Tag id for the beginning of a new phonebook entry.
 1.11298 +	
 1.11299 +	Data type: n/a.
 1.11300 +	
 1.11301 +	Modes: Common */
 1.11302 +		ETagPBNewEntry		=0xA0,
 1.11303 +	/** Tag id for the Unique ID field.
 1.11304 +	
 1.11305 +	Data type: TUint16
 1.11306 +
 1.11307 +	Modes: WCDMA */
 1.11308 +		ETagPBUniqueId		=0xB0,
 1.11309 +	/** Tag id for the Index within the ADN record.
 1.11310 +	
 1.11311 +	Data type: TUint16
 1.11312 +
 1.11313 +	Modes: Common */
 1.11314 +		ETagPBAdnIndex		=0xC0,
 1.11315 +	/** Tag id for a Text field within the ADN/ANR record.
 1.11316 +	
 1.11317 +	Data type: TDes16
 1.11318 +	
 1.11319 +	Modes: Common */
 1.11320 +		ETagPBText			=0xC1,
 1.11321 +	/** Tag id for a Number field within the ADN/ANR record.
 1.11322 +	
 1.11323 +	Data type: TDes16
 1.11324 +	
 1.11325 +	Modes: Common */
 1.11326 +		ETagPBNumber		=0xC2,
 1.11327 +	/** Tag id for a TON/NPI byte within the ADN/ANR record.
 1.11328 +	
 1.11329 +	Data type: TUint8
 1.11330 +	
 1.11331 +	Modes: Common */
 1.11332 +		ETagPBTonNpi		=0xC3,
 1.11333 +	/** Tag id for a Bearer Capability IE associated to the ADN/ANR record.
 1.11334 +	
 1.11335 +	Data type: TDes8
 1.11336 +	
 1.11337 +	Modes: GSM/WCDMA */
 1.11338 +		ETagPBBearerCap		=0xC4,
 1.11339 +	/** Tag id for the beginning of an Additional Number entry within the phonebook 
 1.11340 +	entry.
 1.11341 +	
 1.11342 +	Data type: n/a
 1.11343 +	
 1.11344 +	Modes: WCDMA */
 1.11345 +		ETagPBAnrStart		=0xC5,
 1.11346 +	/** Tag id for the Second Name associated to the ADN record.
 1.11347 +	
 1.11348 +	Data type: TDes16
 1.11349 +	
 1.11350 +	Modes: WCDMA */
 1.11351 +		ETagPBSecondName	=0xC6,
 1.11352 +	/** Tag id for a Group Name associated to the ADN record.
 1.11353 +	
 1.11354 +	Data type:TDes16
 1.11355 +	
 1.11356 +	Modes: WCDMA */
 1.11357 +		ETagPBGroupName		=0xC7,
 1.11358 +	/** Tag id for an Email Address associated to the ADN record.
 1.11359 +	
 1.11360 +	Data type: TDes16
 1.11361 +	
 1.11362 +	Modes: WCDMA */
 1.11363 +		ETagPBEmailAddress	=0xC8,
 1.11364 +	/** Tag id for the Entry Control byte associated to the ADN record.
 1.11365 +	
 1.11366 +	Data type: TUint8
 1.11367 +	
 1.11368 +	Modes: WCDMA */
 1.11369 +		ETagPBEntryControl	=0xC9,
 1.11370 +	/** Tag id for the Hidden Information byte associated to the ADN record.
 1.11371 +	
 1.11372 +	Data type: TUint8
 1.11373 +	
 1.11374 +	Modes: WCDMA */
 1.11375 +		ETagPBHiddenInfo	=0xCA,
 1.11376 +		ETagPBDateTime		=0xCB,
 1.11377 +		ETagPBDuration		=0xCC,
 1.11378 +		ETagPBCallStatus	=0xCD,
 1.11379 +		ETagPBEntryStatus	=0xCE
 1.11380 +		};
 1.11381 +
 1.11382 +
 1.11383 +	// API/TSY internal type
 1.11384 +	struct TPBIndexAndNumEntries
 1.11385 +/** A structure to hold the phone book index and number of entries. */
 1.11386 +		{
 1.11387 +	/** Index for the phone book. */
 1.11388 +		TInt iIndex;
 1.11389 +		TInt iNumSlots;
 1.11390 +		};
 1.11391 +
 1.11392 +	IMPORT_C void Read(TRequestStatus& aReqStatus, TInt aIndex, TInt aNumSlots, TDes8& aPBData) const;
 1.11393 +	IMPORT_C void Write(TRequestStatus& aReqStatus, const TDesC8& aPBData, TInt& aIndex) const;
 1.11394 +
 1.11395 +protected:
 1.11396 +	IMPORT_C void ConstructL();
 1.11397 +private:
 1.11398 +	RMobilePhoneBookStore(const RMobilePhoneBookStore&);
 1.11399 +	};
 1.11400 +
 1.11401 +/*********************************************************/
 1.11402 +//
 1.11403 +// RMobileConferenceCall
 1.11404 +//
 1.11405 +/*********************************************************/
 1.11406 +
 1.11407 +
 1.11408 +
 1.11409 +class CMobileConferenceCallPtrHolder;
 1.11410 +
 1.11411 +class RMobileConferenceCall : public RTelSubSessionBase
 1.11412 +/** Provides access to conference call functionality provided by TSY.
 1.11413 +
 1.11414 +Conference calls allow users to conduct multi-connection voice calls, for example
 1.11415 +simultaneous communication to more than one remote party. All participants 
 1.11416 +within a conference call can hear and speak to each other. There is a controlling 
 1.11417 +party that initiates and manages the conference.
 1.11418 +
 1.11419 +Conference calling is possible in both GSM and CDMA mode and the actions to 
 1.11420 +initiate a 3-way conference are the same in either mode. However, GSM conference 
 1.11421 +calls offer more functionality and the number of remote parties is limited 
 1.11422 +in CDMA mode to 2 and in GSM mode to 5.
 1.11423 +
 1.11424 +The Multimode ETel API uses a new sub-session called RMobileConferenceCall 
 1.11425 +as a model for a conference call. The conference call object will be an aggregation 
 1.11426 +of all the RMobileCall objects that are part of the conference call. It will 
 1.11427 +be possible for clients to manipulate both the conference call as a whole 
 1.11428 +and individual calls within a conference call depending on the dynamic capabilities 
 1.11429 +of each of these objects.
 1.11430 +
 1.11431 +Please note that RMobileConferenceCall is replacing the RCallGroup abstraction 
 1.11432 +used in the GSM API. This was an optimisation decision. The call group abstraction 
 1.11433 +placed a large burden on a TSY to create call groups, monitor the calls in 
 1.11434 +each group and trigger notification when calls were added or moved, probably 
 1.11435 +even when a conference call was not ongoing. Clients will probably only open 
 1.11436 +a RMobileConferenceCall when the user has decided to make a conference call 
 1.11437 +and by having just one object replace three call groups it will also reduce 
 1.11438 +the number of notifications that would trigger in response to conference call 
 1.11439 +events. With a view to the future, without call groups there are also no longer 
 1.11440 +any restrictions to the allowed types of active calls (simultaneous, separate 
 1.11441 +voice and data calls are possible).
 1.11442 +
 1.11443 +The methods within this section must be supported if the TSY supports MobileConferenceCall 
 1.11444 +functional unit. 
 1.11445 +
 1.11446 +*/
 1.11447 +	{
 1.11448 +public:
 1.11449 +	IMPORT_C RMobileConferenceCall();
 1.11450 +	IMPORT_C TInt Open(RMobilePhone& aPhone);
 1.11451 +	IMPORT_C void Close();
 1.11452 +
 1.11453 +/** Conference call capabilities. */
 1.11454 +	enum TMobileConferenceCallCaps
 1.11455 +		{
 1.11456 +	/** Indicates that a conference call can be created. */
 1.11457 +		KCapsCreate = 0x00000001,
 1.11458 +	/** Indicates that a conference call can be terminated. */
 1.11459 +		KCapsHangUp = 0x00000002,
 1.11460 +	/** Indicates that a conference call exists and can be swapped to the opposite 
 1.11461 +	state (active or hold). */
 1.11462 +		KCapsSwap = 0x00000004
 1.11463 +		};
 1.11464 +
 1.11465 +	IMPORT_C TInt GetCaps(TUint32& aCaps) const;
 1.11466 +	IMPORT_C void NotifyCapsChange(TRequestStatus& aReqStatus, TUint32& aCaps) const;
 1.11467 +
 1.11468 +	IMPORT_C void CreateConference(TRequestStatus& aReqStatus) const;
 1.11469 +	IMPORT_C void AddCall(TRequestStatus& aReqStatus, const TName& aCallName) const;
 1.11470 +	IMPORT_C void Swap(TRequestStatus& aReqStatus) const;
 1.11471 +	IMPORT_C void HangUp(TRequestStatus& aReqStatus) const;
 1.11472 +	IMPORT_C TInt EnumerateCalls(TInt& aCount) const;
 1.11473 +	IMPORT_C TInt GetMobileCallInfo(TInt aIndex, TDes8& aCallInfo) const;
 1.11474 +
 1.11475 +/** Conference call status. */
 1.11476 +	enum TMobileConferenceStatus
 1.11477 +		{
 1.11478 +	/** The conference call is in the idle state. */
 1.11479 +		EConferenceIdle,
 1.11480 +	/** The conference call is in the active, connected state. */
 1.11481 +		EConferenceActive,
 1.11482 +	/** The conference call is in the held, connected state. */
 1.11483 +		EConferenceHold
 1.11484 +		};
 1.11485 +	
 1.11486 +	IMPORT_C TInt GetConferenceStatus(TMobileConferenceStatus& aStatus) const;
 1.11487 +	IMPORT_C void NotifyConferenceStatusChange(TRequestStatus& aReqStatus, TMobileConferenceStatus& aStatus) const;
 1.11488 +
 1.11489 +/** Conference events. */
 1.11490 +	enum TMobileConferenceEvent
 1.11491 +		{
 1.11492 +	/** A call has been added to the conference. */
 1.11493 +		EConferenceCallAdded,		// Name of the call added returned in aCallName
 1.11494 +	/** A call has been removed from the conference. */
 1.11495 +		EConferenceCallRemoved,		// Name of the call terminated returned in aCallName
 1.11496 +	/** Names of the two calls used to build the conference call returned in aCallName. */
 1.11497 +		EConferenceBuilt,		// Names of the two calls used to build the conference call returned in aCallName
 1.11498 +	/** No name provided */
 1.11499 +		EConferenceTerminated,	// No name provided
 1.11500 +	/** No name provided. */
 1.11501 +		EConferenceSwapped,		// No name provided
 1.11502 +	/** Name of the call being seperated. */
 1.11503 +		EConferenceSplit		// Name of the call being seperated
 1.11504 +		};
 1.11505 +
 1.11506 +	IMPORT_C void NotifyConferenceEvent(TRequestStatus& aReqStatus, TMobileConferenceEvent& aEvent, TName& aCallName) const;
 1.11507 +
 1.11508 +private:
 1.11509 +	CMobileConferenceCallPtrHolder* iMmPtrHolder;
 1.11510 +	RMobileConferenceCall(const RMobileConferenceCall&);
 1.11511 +protected:
 1.11512 +	IMPORT_C void ConstructL();
 1.11513 +	IMPORT_C void Destruct();
 1.11514 +	};
 1.11515 +
 1.11516 +
 1.11517 +/////////////////////////////////////////////////////////////////////////////////////
 1.11518 +//
 1.11519 +// EAP-SIM Authentication functional unit
 1.11520 +//
 1.11521 +/////////////////////////////////////////////////////////////////////////////////////
 1.11522 +
 1.11523 +class CMobileSmartCardEapPtrHolder;
 1.11524 +
 1.11525 +/**
 1.11526 +This sub-session opens under RMobilePhone.
 1.11527 +
 1.11528 +RMobileSmartCardEap provides the client with access to a Smart Card
 1.11529 +Application's EAP-capability (if one exists).
 1.11530 +
 1.11531 +(See ETSI TS 102.310 v6.2.0 and RFC3748)
 1.11532 +
 1.11533 +To submit authentication challenges or requests, a client must use
 1.11534 +CAsyncSmartCardEapAuthentication in conjunction with this sub-session.
 1.11535 +
 1.11536 +@see CAsyncSmartCardEapAuthentication
 1.11537 +@publishedPartner
 1.11538 +@released
 1.11539 +*/
 1.11540 +class RMobileSmartCardEap : public RTelSubSessionBase
 1.11541 +	{
 1.11542 +	friend class CAsyncSmartCardEapAuthentication;
 1.11543 +
 1.11544 +public:
 1.11545 +	/**
 1.11546 +	Class encapsulates EAP request packet data for authentication.
 1.11547 +
 1.11548 +	@see CAsyncSmartCardEapAuthentication
 1.11549 +
 1.11550 +	@publishedPartner
 1.11551 +	@released
 1.11552 +	*/
 1.11553 +	class CEapAuthenticateRequestDataV6 : public CBase
 1.11554 +		{
 1.11555 +	public:
 1.11556 +		IMPORT_C static CEapAuthenticateRequestDataV6* NewL();
 1.11557 +		IMPORT_C virtual void ExternalizeL(TPtr8& aBuffer);
 1.11558 +		IMPORT_C virtual void InternalizeL(const TDesC8& aBuffer);
 1.11559 +		IMPORT_C TUint VersionId() const;
 1.11560 +		IMPORT_C TPtr8 GetEapReqPacket() const;
 1.11561 +		IMPORT_C void SetEapReqPacketL(const TDesC8& aData);
 1.11562 +		IMPORT_C ~CEapAuthenticateRequestDataV6();
 1.11563 +
 1.11564 +	private:
 1.11565 +		CEapAuthenticateRequestDataV6();
 1.11566 +		void ConstructL();
 1.11567 +
 1.11568 +	protected:
 1.11569 +		/**
 1.11570 +		ETelMM's supported version.
 1.11571 +		*/
 1.11572 +		TUint iVersionId;
 1.11573 +
 1.11574 +	public:
 1.11575 +		/**
 1.11576 +		EAP-request packet in a flat buffer.
 1.11577 +		*/
 1.11578 +		CBufFlat* iEapReqPacket;
 1.11579 +		};
 1.11580 +
 1.11581 +	IMPORT_C RMobileSmartCardEap();
 1.11582 +
 1.11583 +	/**
 1.11584 +	EAP types are represented by one byte for standard EAP methods, and
 1.11585 +	eight bytes for extended methods.  Each byte specified in the
 1.11586 +	TEapType buffer should represent one semi-octet.  Therefore, a
 1.11587 +	maximum of 16-chars are needed for representing any possible EAP
 1.11588 +	type.  (See section 5.2 of ETSI TS 102.310 v6.2.0.)
 1.11589 +
 1.11590 +	@see RMobileSmartCardEap::TEapType
 1.11591 +
 1.11592 +	@publishedPartner
 1.11593 +	@released
 1.11594 +	*/
 1.11595 +	enum { KEapTypeSize = 16 };
 1.11596 +
 1.11597 +	/**
 1.11598 +	A typedef'd buffer to hold the EAP type for the subsequent
 1.11599 +	authentication that will be carried out on the Smart Card
 1.11600 +	Application.
 1.11601 +
 1.11602 +	The value specified must correspond to the pre-allocated type
 1.11603 +	identifiers for various EAPs (see
 1.11604 +	http://www.iana.org/assignments/eap-numbers).  Some known values
 1.11605 +	are given in etelmm.h.
 1.11606 +
 1.11607 +	The type must be specified in hexadecimal format, where each
 1.11608 +	character represents one semi-octet.
 1.11609 +
 1.11610 +	@see KETelSmartCardEapTypeMD5
 1.11611 +	@see KETelSmartCardEapTypeTLS
 1.11612 +	@see KETelSmartCardEapTypeSIM
 1.11613 +	@see KETelSmartCardEapTypeAKA
 1.11614 +	@see KETelSmartCardEapTypeTTLS
 1.11615 +	@see RMobileSmartCardEap::Open()
 1.11616 +
 1.11617 +	@publishedPartner
 1.11618 +	@released
 1.11619 +	*/
 1.11620 +	typedef TBuf8<KEapTypeSize> TEapType;
 1.11621 +
 1.11622 +	IMPORT_C TInt Open(RMobilePhone& aPhone, const RMobilePhone::TAID& aAID, const TEapType& aEapType);
 1.11623 +	IMPORT_C void InitialiseEapMethod(TRequestStatus& aReqStatus);
 1.11624 +	IMPORT_C void Close();
 1.11625 +
 1.11626 +	/**
 1.11627 +	Authentication status of the EAP supporting UICC application (See
 1.11628 +	section 7.2 of ETSI TS 102.310 v6.2.0).  One of these values is
 1.11629 +	returned on completion of an
 1.11630 +	RMobileSmartCardEap::GetAuthenticationStatus() request.
 1.11631 +
 1.11632 +	@see RMobileSmartCardEap::GetAuthenticationStatus()
 1.11633 +
 1.11634 +	@publishedPartner
 1.11635 +	@released
 1.11636 +	*/
 1.11637 +	enum TEapAuthStatus
 1.11638 +		{
 1.11639 +		/**
 1.11640 +		No authentication started
 1.11641 +		*/
 1.11642 +		ENoAuthStarted,    // 0
 1.11643 +		/**
 1.11644 +		Authenticating
 1.11645 +		*/
 1.11646 +		EAuthenticating,   // 1
 1.11647 +		/**
 1.11648 +		Authentication complete
 1.11649 +		*/
 1.11650 +		EAuthenticated,    // 2
 1.11651 +		/**
 1.11652 +		Held (authentication failure)
 1.11653 +		*/
 1.11654 +		EHeld              // 3
 1.11655 +		};
 1.11656 +
 1.11657 +	IMPORT_C void GetAuthenticationStatus(TRequestStatus& aReqStatus, TEapAuthStatus& aAuthStatus);
 1.11658 +
 1.11659 +	/**
 1.11660 +	TEapUserIdType should be used to request an identity from EF_PUId
 1.11661 +	or EF_Ps, when making an RMobileSmartCardEap::GetUserIdentity()
 1.11662 +	request.
 1.11663 +	(See sections 7.3 and 7.4, respectively, of ETSI TS	102.310 v6.2.0,
 1.11664 +	and RFC2486 - The Network Access Identifier).
 1.11665 +
 1.11666 +	@see RMobileSmartCardEap::GetUserIdentity()
 1.11667 +	@see RMobileSmartCardEap::TEapUserIdentityV6
 1.11668 +
 1.11669 +	@publishedPartner
 1.11670 +	@released
 1.11671 +	*/
 1.11672 +	enum TEapUserIdType
 1.11673 +		{
 1.11674 +		/** Identity is permanent type */
 1.11675 +		EPermanentIdentity,   // 0
 1.11676 +		/** Identity is pseudonym type */
 1.11677 +		EPseudonymIdentity    // 1
 1.11678 +		};
 1.11679 +
 1.11680 +	/**
 1.11681 +	Maximum permitted size of identity data.
 1.11682 +	*/
 1.11683 +	enum { KEapIdentityMaxSize = 255 };
 1.11684 +
 1.11685 +	/**
 1.11686 +	EAP User Identity data.  Ids are stored in EF_PUId or EF_Ps
 1.11687 +	(specified in sections 7.3 and 7.4, respectively, of ETSI TS
 1.11688 +	102.310 v6.2.0).
 1.11689 +
 1.11690 +	@see RMobileSmartCardEap::GetUserIdentity()
 1.11691 +
 1.11692 +	@publishedPartner
 1.11693 +	@released
 1.11694 +	*/
 1.11695 +	class TEapUserIdentityV6 : public RMobilePhone::TMultimodeType
 1.11696 +		{
 1.11697 +	public:
 1.11698 +		IMPORT_C TEapUserIdentityV6();
 1.11699 +	public:
 1.11700 +		/**
 1.11701 +		EAP-IDENTITY Data.
 1.11702 +		*/
 1.11703 +		TBuf8<KEapIdentityMaxSize> iEapId;
 1.11704 +		};
 1.11705 +
 1.11706 +	/**
 1.11707 +	A typedef'd packaged TEapUserIdentityV6 for passing through a
 1.11708 +	generic API method.
 1.11709 +
 1.11710 +	@publishedPartner
 1.11711 +	@released
 1.11712 +	*/
 1.11713 +	typedef TPckg<TEapUserIdentityV6> TEapUserIdentityV6Pckg;
 1.11714 +
 1.11715 +	IMPORT_C void GetUserIdentity(TRequestStatus& aReqStatus,
 1.11716 +	                              TEapUserIdType aRequestedIdType,
 1.11717 +	                              TDes8& aUserId);
 1.11718 +
 1.11719 +	/**
 1.11720 +	TEapKeyV6 should be used to request one of (currently) two keys
 1.11721 +	available on the EF_EAPKEYS of the UICC application (see section
 1.11722 +	7.1 of ETSI TS 102.310 v6.2.0).  This enumeration type should be
 1.11723 +	used in RMobileSmartCardEap::GetEapKey() to specify the key to be
 1.11724 +	retrieved.
 1.11725 +
 1.11726 +	@see RMobileSmartCardEap::TEapKeyV6
 1.11727 +	@see RMobileSmartCardEap::GetEapKey()
 1.11728 +
 1.11729 +	@publishedPartner
 1.11730 +	@released
 1.11731 +	*/
 1.11732 +	enum TEapKeyTag
 1.11733 +		{
 1.11734 +		/**
 1.11735 +		Used to request Master Session Key.
 1.11736 +		*/
 1.11737 +		EEapKeyMSK =  0x80,
 1.11738 +		/**
 1.11739 +		Used to request Extended Master Session Key.
 1.11740 +		*/
 1.11741 +		EEapKeyEMSK = 0x81
 1.11742 +		};
 1.11743 +
 1.11744 +	/**
 1.11745 +	Maximum size of an EAP Key stored on the DF_EAP's EF_EAPKEYS.
 1.11746 +	255 as each key has a length that can be specified by exactly one
 1.11747 +	byte (see section 7.1 of ETSI TS 102.310 v6.2.0).
 1.11748 +
 1.11749 +	@publishedPartner
 1.11750 +	@released
 1.11751 +	*/
 1.11752 +	enum { KEapKeyMaxSize = 255 };
 1.11753 +
 1.11754 +	/** 
 1.11755 +	EAP authentication key data.
 1.11756 +
 1.11757 +	@see RMobileSmartCardEap::GetEapKey()
 1.11758 +
 1.11759 +	@publishedPartner
 1.11760 +	@released
 1.11761 +	*/
 1.11762 +	class TEapKeyV6 : public RMobilePhone::TMultimodeType
 1.11763 +		{
 1.11764 +	public:
 1.11765 +		IMPORT_C TEapKeyV6();
 1.11766 +	public:
 1.11767 +		/**
 1.11768 +		EAP-KEY Data.
 1.11769 +		*/
 1.11770 +		TBuf8<KEapKeyMaxSize> iEapKey;
 1.11771 +		};
 1.11772 +
 1.11773 +	/**
 1.11774 +	A typedef'd packaged TEapKeyV6 for passing through a generic API
 1.11775 +	method.
 1.11776 +
 1.11777 +	@publishedPartner
 1.11778 +	@released
 1.11779 +	*/
 1.11780 +	typedef TPckg<TEapKeyV6> TEapKeyV6Pckg;
 1.11781 +
 1.11782 +	IMPORT_C void GetEapKey(TRequestStatus& aReqStatus, const TEapKeyTag aRequestedKey, TDes8& aKey);
 1.11783 +
 1.11784 +	/**
 1.11785 +	Status of the DF_EAP this subsession refers to.  The status is
 1.11786 +	basically an indication of whether the DF is in use by another sub-
 1.11787 +	session client instance.
 1.11788 +
 1.11789 +	NotifyEapMethodAccessStatusChange() will give a notification when
 1.11790 +	the status changes.
 1.11791 +
 1.11792 +	Status will change when the first client calls
 1.11793 +	InitialiseEapMethod() on this sub-session.  When the same client
 1.11794 +	calls ReleaseEapMethod() (or Close()), the status will change
 1.11795 +	again.  This allows mutually exclusive access to the DF_EAP.  All
 1.11796 +	other RMobileSmartCardEap hanles will get an error if they attempt
 1.11797 +	to make requests that access the same DF_EAP.
 1.11798 +
 1.11799 +	@see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange()
 1.11800 +	@see RMobileSmartCardEap::ReleaseEapMethod()
 1.11801 +	@see RMobileSmartCardEap::InitialiseEapMethod()
 1.11802 +
 1.11803 +	@publishedPartner
 1.11804 +	@released
 1.11805 +	*/
 1.11806 +	enum TEapMethodAccessStatus
 1.11807 +		{
 1.11808 +		/**
 1.11809 +		AID/DF_EAP has been reset, and the DF_EAP has not been
 1.11810 +		initialised by any other instance of RMobileSmartCardEap.
 1.11811 +		*/
 1.11812 +		EEapMethodAvailable,
 1.11813 +		/**
 1.11814 +		Another instance of RMobileSmartCardEap has initialised first
 1.11815 +		and taken ownership of the DF_EAP.  The DF_EAP is currently
 1.11816 +		active and EAP requests can be made.
 1.11817 +		*/
 1.11818 +		EEapMethodInUseApplicationActive,
 1.11819 +		/**
 1.11820 +		This instance of RMobileSmartCardEap still owns the lock on the
 1.11821 +		DF_EAP, but the application has been deactivated elsewhere.
 1.11822 +		The client should re-initialise before making further EAP
 1.11823 +		requests.
 1.11824 +
 1.11825 +		@see RMobileSmartCardEap::InitialiseEapMethod()
 1.11826 +		*/
 1.11827 +		EEapMethodInUseApplicationInactive,
 1.11828 +		/**
 1.11829 +		Lock on the DF_EAP has been released, but another DF_EAP method
 1.11830 +		is in use under the same AID, thus, cannot reset/initialise
 1.11831 +		this subsessions EAP method.  Client can only post a
 1.11832 +		notification and wait till status changes to
 1.11833 +		EEapMethodAvailable.
 1.11834 +
 1.11835 +		@see RMobileSmartCardEap::NotifyEapMethodAccessStatusChange()
 1.11836 +		*/
 1.11837 +		EEapMethodUnableToInitialise
 1.11838 +		};
 1.11839 +
 1.11840 +	IMPORT_C TInt ReleaseEapMethod();
 1.11841 +	IMPORT_C TInt GetEapMethodAccessStatus(TEapMethodAccessStatus& aEapMethodStatus);
 1.11842 +	IMPORT_C void NotifyEapMethodAccessStatusChange(TRequestStatus& aReqStatus, TEapMethodAccessStatus& aEapMethodStatus);
 1.11843 +	IMPORT_C TBool IsEapMethodOwner() const;
 1.11844 +
 1.11845 +protected:
 1.11846 +	IMPORT_C void ConstructL();
 1.11847 +	IMPORT_C void Destruct();
 1.11848 +
 1.11849 +private:
 1.11850 +	RMobileSmartCardEap(const RMobileSmartCardEap&);
 1.11851 +
 1.11852 +	TChar SeptChar(TInt aDigit);
 1.11853 +	void ConvertBinToText(const TDesC8& aBinData, TDes& aText);
 1.11854 +
 1.11855 +private:
 1.11856 +	/**
 1.11857 +	Pointer Holder for the RMobileSmartCardEap sub-session requests.
 1.11858 +	*/
 1.11859 +	CMobileSmartCardEapPtrHolder* iMmPtrHolder;
 1.11860 +	/**
 1.11861 +	True if this object is the first to request	InitialiseEapMethod()
 1.11862 +	on its <AID,EAPType> when the status is EEapMethodAvailable.
 1.11863 +	I.e. True only for the instance of RMobileSmartCardEap that
 1.11864 +	successfully passes the Wait() on iSemaphore.
 1.11865 +	*/
 1.11866 +	TBool iOwnsEapMethodLock;
 1.11867 +	/**
 1.11868 +	Semaphore is actually owned by TSY, and used by all instances of
 1.11869 +	RMobileSmartCardEap	to stop multiple access to the same EAP method
 1.11870 +	on any one application.
 1.11871 +	*/
 1.11872 +	RSemaphore iSemaphore;
 1.11873 +
 1.11874 +	};	// RMobileSmartCardEap
 1.11875 +
 1.11876 +/////////////////////////////////////////////////////////////////////////////////////
 1.11877 +//
 1.11878 +// LCS-MO-LR AND LCS-MT-LR
 1.11879 +//
 1.11880 +/////////////////////////////////////////////////////////////////////////////////////
 1.11881 +class CMobileLocationServicesPtrHolder;
 1.11882 +
 1.11883 +/**
 1.11884 +This sub-session opens under RMobilePhone.
 1.11885 +
 1.11886 +A new RMobileLocationServices class is used to add the ETelMM Support for Mobile Terminating Location Request,
 1.11887 +Mobile Originating Location Requests, A-Gps assistance data for the LBS Framework.
 1.11888 +
 1.11889 +RMobileLocationServices is derived from RTelSubSessionBase.RMobileLocationServices lists the 
 1.11890 +APIs,which provided the support for Mtlr, Molr, A-Gps assistance data requests.
 1.11891 +*/
 1.11892 +class RMobileLocationServices : public RTelSubSessionBase
 1.11893 +	{
 1.11894 +public:
 1.11895 +	
 1.11896 +	IMPORT_C RMobileLocationServices();
 1.11897 +    IMPORT_C TInt Open(RMobilePhone& aPhone);
 1.11898 +    IMPORT_C void Close();
 1.11899 + 	/** 
 1.11900 + 	Maximum length of the array used for TLcsRequestorIdString.
 1.11901 + 	*/
 1.11902 +	enum { KLcsMaxRequestorIdStringSize = 256 };
 1.11903 +	/** 
 1.11904 +	Maximum length of the array used for TLcsClientBufferName.
 1.11905 + 	*/
 1.11906 +	enum { KLcsMaxClientNameBufferSize = 256 };
 1.11907 +	/** 
 1.11908 +	Maximum length of the array used for TLcsClientExternalID.
 1.11909 +	*/
 1.11910 +	enum { KLcsMaxClientExternalIdSize = 64 };
 1.11911 +	/** 
 1.11912 +	Maximum length of the array used for TLcsLocationEstimate.
 1.11913 +	*/
 1.11914 +	enum { KLcsMaxLocationEstimateSize = 64 };
 1.11915 +	/** 
 1.11916 +	Maximum length of the array used for TLcsVelocityEstimate.
 1.11917 +	*/
 1.11918 +	enum { KLcsMaxVelocityEstimateSize = 64 };
 1.11919 +	/** 
 1.11920 +	Maximum length of the array used for TLcsGpsAssistanceData.
 1.11921 +	*/
 1.11922 +	enum { KLcsMaxGpsAssistanceDataSize = 64 };
 1.11923 +	/** 
 1.11924 +	A typedef'd buffer which holds the External ClientName Buffer.
 1.11925 +	@see KLcsMaxClientNameBufferSize
 1.11926 +	*/
 1.11927 +	typedef TBuf8<KLcsMaxClientNameBufferSize> TLcsClientNameBuffer;
 1.11928 +	/** 
 1.11929 +	A typedef'd buffer which holds the RequestorId String.
 1.11930 +	@see KLcsMaxRequestorIdStringSize
 1.11931 +	*/
 1.11932 +	typedef TBuf8<KLcsMaxRequestorIdStringSize> TLcsRequestorIdString;
 1.11933 +	/**
 1.11934 +	A typedef'd buffer which holds the Gps Assistance Data.
 1.11935 +	@see KLcsMaxGpsAssistanceDataSize
 1.11936 +	*/
 1.11937 +	typedef TBuf8<KLcsMaxGpsAssistanceDataSize> TGpsAssistanceData;
 1.11938 +	/**
 1.11939 +	A typedef'd buffer which holds the External ClientId.
 1.11940 +	@see KLcsMaxClientExternalIdSize
 1.11941 +	*/
 1.11942 +	typedef TBuf8<KLcsMaxClientExternalIdSize> TLcsClientExternalID;
 1.11943 +	/**
 1.11944 +	A typedef'd TUint8 which holds the Data Coding Scheme information.
 1.11945 +	*/
 1.11946 +	typedef TUint8 TLcsDataCodingScheme;
 1.11947 +	/**
 1.11948 +	A typedef'd buffer which holds the Location Estimate.
 1.11949 +	@see KLcsMaxLocationEstimateSize
 1.11950 + 	*/
 1.11951 +	typedef TBuf8<KLcsMaxLocationEstimateSize> TLcsLocationEstimate;
 1.11952 +	/**
 1.11953 +	A typedef'd buffer which holds the Velocity Estimate.
 1.11954 +	@see KLcsMaxVelocityEstimateSize
 1.11955 +	*/
 1.11956 +	typedef TBuf8<KLcsMaxVelocityEstimateSize> TLcsVelocityEstimate;
 1.11957 +
 1.11958 +	typedef TUint8 TTransactionIdentifier;
 1.11959 +	typedef TUint8 TGPSI;
 1.11960 + 	 /**
 1.11961 +     Note:Refer to 3GPP TS 23.271(Functional stage 2 description of Location Services (LCS)),
 1.11962 +     3GPP TS 24.030(Location Services (LCS); Supplementary service operations - Stage 3) and
 1.11963 +     3GPP TS 24.080(Mobile radio interface layer 3 supplementary services specification; Formats and coding)
 1.11964 +     for further details of MTLR and MOLR member data.
 1.11965 +     */
 1.11966 + /*********************************************************************/ 
 1.11967 + //                  MTLR                                             //
 1.11968 + /*********************************************************************/   
 1.11969 +    /**
 1.11970 +    TNotificationType lists the various types of Notification
 1.11971 +    that can be expected from any MTLR-Location Notification coming from the Network,
 1.11972 +    These types depend on the Subscription Profile of the UE. 
 1.11973 +    
 1.11974 +    One of the TNotificationType is expected to be retrieved from the Network,
 1.11975 +    when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.
 1.11976 +    @internalAll
 1.11977 +    */
 1.11978 +    enum TNotificationType
 1.11979 +		{
 1.11980 +		/**
 1.11981 +		Notification Type Unknown
 1.11982 +		*/
 1.11983 +		ENotificationTypeUnknown,
 1.11984 +		/**
 1.11985 +		The Location Request is accepted by default
 1.11986 +		*/
 1.11987 +		ENotifyLocationAllowed,
 1.11988 +		/**
 1.11989 +        This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, 
 1.11990 +        and that the user is expected to respond by granting/denying the request. By defualt, if the user 
 1.11991 +        does not provide a response, the request is granted
 1.11992 +		*/
 1.11993 +		ENotifyAndVerify_LocationAllowedIfNoResponse,
 1.11994 +		/**
 1.11995 +        This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, 
 1.11996 +        and that the user is expected to respond by granting/denying the request. By defualt, if the 
 1.11997 +        user does not provide a response, the request is denied.
 1.11998 +		*/
 1.11999 +		ENotifyAndVerify_LocationNotAllowedIfNoResponse,
 1.12000 +        /**
 1.12001 +        The network sends the information to the UE that the external client has privacy overide capability,
 1.12002 +        This indicator is received when an authenticated or emergency client had sent the request.
 1.12003 +		*/     
 1.12004 +        ELocationPrivacyOverride,  
 1.12005 +        /**
 1.12006 +        This enum is used to notify the UE that an incoming MTLR request was denied by the network for any of various 
 1.12007 +        reasons.
 1.12008 +		*/
 1.12009 +		ELocationNotAllowed                                      
 1.12010 +        };
 1.12011 +
 1.12012 +    
 1.12013 +    /**
 1.12014 +    TLocationEstimateType lists the various types of LocationEstimate
 1.12015 +    that can be expected from any MTLR-Location Notification request coming from the Network,
 1.12016 +    These types depend on the Subscription Profile of the UE.
 1.12017 +    
 1.12018 +    One of the TLocationEstimateType is expected to be retrieved from the Network,
 1.12019 +    when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.
 1.12020 +    @internalAll
 1.12021 +    */
 1.12022 +    enum TLocationEstimateType
 1.12023 +		{
 1.12024 +		/**
 1.12025 +		Location Estimate Type Unknown.
 1.12026 +		*/
 1.12027 +		ELocationEstimateTypeUnknown,
 1.12028 +		/**
 1.12029 +		The External Client has requested for the Current Location of
 1.12030 +		the UE.
 1.12031 +		*/
 1.12032 +		ECurrentLocation,
 1.12033 +		/**
 1.12034 +		The External Client has requested for the Current Location of
 1.12035 +		the UE.Incase,if the request is accepted,But still it fails to
 1.12036 +		generate the Location report because of Measurement Control Failure.
 1.12037 +		The Client receives the Last Known Location.
 1.12038 +		*/
 1.12039 +		ECurrentOrLastKnownLocation,
 1.12040 +		/**
 1.12041 +		The External Client has requested for the initial location of the UE. The current 
 1.12042 +		location of the UE may or may not be the initial location.
 1.12043 +		*/
 1.12044 +		EInitialLocation
 1.12045 +		};	
 1.12046 +    
 1.12047 +    /**
 1.12048 +    TLcsClientNameV1 holds the details of the name of the External client, 
 1.12049 +    who is making the request via Network.
 1.12050 +    TLcsClientNameV1 is used by RMobileLocationServices::NotifyMtlr() request.
 1.12051 +    @see TLcsDataCodingScheme
 1.12052 +    @see TLcsClientNameBuffer
 1.12053 +    @internalAll
 1.12054 +    */
 1.12055 +    class TLcsClientNameV1
 1.12056 +    	{
 1.12057 +    public:
 1.12058 +    	/**
 1.12059 +    	TLcsDataCodingScheme holds the Data Coding Scheme information which is used
 1.12060 +    	to extract the ExternalClient name.
 1.12061 +    	*/
 1.12062 +    	TLcsDataCodingScheme iLcsDataCodingScheme;
 1.12063 +    	/**
 1.12064 +    	TLcsClientNameBuffer holds the Client name 		
 1.12065 +    	*/
 1.12066 +    	TLcsClientNameBuffer       iLcsClientNameBuffer;	
 1.12067 +    	};
 1.12068 +    
 1.12069 +    /**
 1.12070 +    TLcsRequestorIDV1 holds the details of the RequestorId i.e the details of the 
 1.12071 +    Network,Which is carrying the request of External Client to UE
 1.12072 +    TLcsRequestorIDV1 is used by RMobileLocationServices::NotifyMtlr() request.
 1.12073 +    @see TLcsDataCodingScheme
 1.12074 +    @see TLcsRequestorIdString 
 1.12075 +    @internalAll
 1.12076 +    */
 1.12077 +    class TLcsRequestorIDV1
 1.12078 +    	{
 1.12079 +    public:
 1.12080 +        /**
 1.12081 +    	TLcsDataCodingScheme holds the Data Coding Scheme information which is used
 1.12082 +    	to extract the RequestorId String.
 1.12083 +    	*/
 1.12084 +    	TLcsDataCodingScheme        iLcsDataCodingScheme;
 1.12085 +    	/**
 1.12086 +    	TLcsRequestorIdString holds the RequestorId String 		
 1.12087 +    	*/
 1.12088 +    	TLcsRequestorIdString       iLcsRequestorIdString;	
 1.12089 +    	};
 1.12090 +    
 1.12091 +    /**
 1.12092 +    TLocationExternalInfoV1 holds the details of the External client and the Requestor
 1.12093 +    TLocationExternalInfoV1 is used by RMobileLocationServices::NotifyMtlr() request
 1.12094 +    @see TLcsClientExternalID
 1.12095 +    @see TLcsClientNameV1
 1.12096 +    @see TLcsRequestorIDV1
 1.12097 +    @internalAll
 1.12098 +    */
 1.12099 +    class TLocationExternalInfoV1
 1.12100 +		{
 1.12101 +	public:
 1.12102 +		/**
 1.12103 +		TLcsClientExternalID gives the id of the External client.
 1.12104 +		*/
 1.12105 +		TLcsClientExternalID     iLcsClientID;
 1.12106 +		/**
 1.12107 +		TLcsClientNameV1 holds the name of the External Client.
 1.12108 +		*/
 1.12109 +		TLcsClientNameV1           iLcsClientName;
 1.12110 +		/**
 1.12111 +		TLcsRequestorIDV1 gives the details of requestor id
 1.12112 +		*/
 1.12113 +		TLcsRequestorIDV1          iLcsRequestorID;
 1.12114 +		};
 1.12115 +	
 1.12116 +	/**
 1.12117 +	TNotifyMtlrV7 holds the details of the MTLR request made by the External client.
 1.12118 +	TNotifyMtlrV7 is used by RMobileLocationServices::NotifyMtlr() request
 1.12119 +	@see TNotificationType
 1.12120 +	@see TLocationEstimateType
 1.12121 +	@see TLocationExternalInfoV1
 1.12122 +	@internalAll
 1.12123 +	*/
 1.12124 +	class TNotifyMtlrV7: public RMobilePhone::TMultimodeType 
 1.12125 +		{
 1.12126 +	public:
 1.12127 +		IMPORT_C TNotifyMtlrV7();
 1.12128 +	public:
 1.12129 +		/**
 1.12130 +		TNotificationType holds the type of notification request being made
 1.12131 +		*/
 1.12132 +		TNotificationType          iNotificationType;
 1.12133 +		/**
 1.12134 +		TLocationEstimateType holds the type of LocationEstimate is requested 
 1.12135 +		*/
 1.12136 +		TLocationEstimateType      iMtlrLocationEstimateType;
 1.12137 +		/**
 1.12138 +		TLocationExternalInfoV7  holds the details of the External client. 
 1.12139 +		*/
 1.12140 +		TLocationExternalInfoV1      iLocationInfo;
 1.12141 +        };
 1.12142 +	
 1.12143 +   	/**
 1.12144 +	A typedef'd packaged TNotifyMtlrV7 for passing through a
 1.12145 +	generic API method.
 1.12146 +
 1.12147 +	@internalAll
 1.12148 +	*/
 1.12149 +	typedef TPckg<TNotifyMtlrV7> TNotifyMtlrV7Pckg;
 1.12150 +	
 1.12151 + //MTLR-RESPONSE
 1.12152 + 	/**
 1.12153 + 	TMtlrResponse is used by the OverLoaded RMobileLocationServices::SendMtlrResponse() API
 1.12154 + 	It holds the type of response being sent back for the MTLR request made.
 1.12155 + 	@internalAll
 1.12156 + 	*/
 1.12157 +	
 1.12158 +	enum TMtlrResponse
 1.12159 +		{
 1.12160 +		/**
 1.12161 +		Mtlr Response Unknown.
 1.12162 +		*/
 1.12163 +		EMtlrResponseUnknown,
 1.12164 +		/**
 1.12165 +		The UE has denied the Location Request  of the External client.
 1.12166 +		@see RMobileLocationServices::SendMtlrResponse()
 1.12167 +		*/
 1.12168 +		EPermissionDenied ,
 1.12169 +		/**
 1.12170 +		The UE has granted  the Location Request  of the External client.
 1.12171 +		@see RMobileLocationServices::SendMtlrResponse()
 1.12172 +		*/
 1.12173 +		EPermissionGranted
 1.12174 +		};
 1.12175 +	
 1.12176 +	/**
 1.12177 + 	TMtlrError is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API
 1.12178 + 	It holds the type of Error response being sent back for the MTLR request made.
 1.12179 + 	@internalAll
 1.12180 + 	*/
 1.12181 + 	enum TMtlrError
 1.12182 +		{
 1.12183 +		/**
 1.12184 +		Mtlr Error Unknown.
 1.12185 +		*/
 1.12186 +		EMtlrErrorUnknown,
 1.12187 +		/**
 1.12188 +		This response is sent back to the network when System has failed to 
 1.12189 +		do the privacy check due to some Miscellaneous reasons
 1.12190 +		*/
 1.12191 +		ESystemFailure ,
 1.12192 +		/**
 1.12193 +		The response is sent when the privacy verification has failed because of Unexpected data 
 1.12194 +		values retrieved from the Location Notification request generated by the Network.
 1.12195 +		This generates an Error-Prone response from UE
 1.12196 +		*/
 1.12197 +		EUnexpectedDataValue	
 1.12198 +		};
 1.12199 +	
 1.12200 +	/**
 1.12201 + 	TMtlrReject is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API
 1.12202 + 	It holds the details of the Response being rejected due to one of the problems reported to the UE
 1.12203 + 	for the MTLR request being made.
 1.12204 + 	@internalAll
 1.12205 + 	*/
 1.12206 + 	enum TMtlrReject
 1.12207 +		{
 1.12208 +		/**
 1.12209 +		Mtlr Reject Unknown.
 1.12210 +		*/
 1.12211 +		EMtlrRejectUnknown,
 1.12212 +		/**
 1.12213 +		This indication is given under a scenario where the UE wants to reject a request,
 1.12214 +		It is done by invoking Duplicate ID's.
 1.12215 +		*/
 1.12216 +		EDuplicateInvokeID,
 1.12217 +		/**
 1.12218 +		This indication is given under a scenario where the UE wants to reject a request, 
 1.12219 +		It is done by saying the operation is not recognized
 1.12220 +		*/
 1.12221 +		EUnrecognizedOperation,
 1.12222 +		/**
 1.12223 +		This invokes a problem indicating Resource Limitation.
 1.12224 +		*/
 1.12225 +		EResourceLimitation,
 1.12226 +		/**
 1.12227 +		This Invokes a problem initiating release.
 1.12228 +		*/
 1.12229 +		EInitiatingRelease,
 1.12230 +		/**
 1.12231 +		This invokes a problem indicating that  the ID linked with the Client information 
 1.12232 +		is unrecognized
 1.12233 +		*/
 1.12234 +		EUnrecognizedLinkedID,
 1.12235 +		/**
 1.12236 +		This invokes a problem of Linked Response Unexpected
 1.12237 +		*/
 1.12238 +		ELinkedResponseUnexpected,
 1.12239 +		/**
 1.12240 +		This invokes a problem of Unexpected Linked Operation
 1.12241 +		*/
 1.12242 +		EUnexpectedLinkedOperation,
 1.12243 +		/**
 1.12244 +		This invokes a problem of Mistyped Parameter.
 1.12245 +		*/
 1.12246 +		EMistypedParameter	
 1.12247 +		};
 1.12248 +	
 1.12249 +   /**************************************************************/
 1.12250 +   //                  MOLR                                      //
 1.12251 +   /**************************************************************/
 1.12252 + 
 1.12253 + 	/**
 1.12254 + 	TMolrType is used by the SendMolr() API.
 1.12255 + 	This gives an indication of type of Molr request the UE wants to invoke
 1.12256 + 	@internalAll
 1.12257 + 	*/
 1.12258 + 	enum TMolrType
 1.12259 +		{
 1.12260 +		/**
 1.12261 +		MolrType UnKnown
 1.12262 +		*/
 1.12263 +		EMolrTypeUnknown,
 1.12264 +		/**
 1.12265 +		UE is requesting the Network for its Location Estimate  
 1.12266 +		*/
 1.12267 +		ELocationEstimate,
 1.12268 +		/**
 1.12269 +		UE is requesting the Network for  GPS Assistance data
 1.12270 +		*/
 1.12271 +		EAssistanceData,
 1.12272 +		/**
 1.12273 +		UE is requesting the Network for  DecipheringKeys
 1.12274 +		*/
 1.12275 +		EDecipheringKeys
 1.12276 +		};
 1.12277 +
 1.12278 + 	/**
 1.12279 + 	TResponseTime is used by SendMolr() API
 1.12280 + 	This enum holds the various types of delay that an UE is expecting.
 1.12281 + 	@internalAll
 1.12282 + 	*/
 1.12283 + 	enum TResponseTime
 1.12284 +  		{
 1.12285 +  		/**
 1.12286 +  		Response Time Unknown.
 1.12287 +		*/
 1.12288 +  		EResponseTimeunknown,
 1.12289 +  		/**
 1.12290 +  		This enum value indicates that the UE expects a Less Time Delay
 1.12291 +  		from Network in responding to its request
 1.12292 +  		*/
 1.12293 +  		ELowDelay,
 1.12294 +  		/**
 1.12295 +  		This enum value indicates that the UE expects a Long Time Delay
 1.12296 +  		from Network in responding to its request and is tolerant to it.
 1.12297 +  		*/
 1.12298 +  		EDelayTolerant		
 1.12299 +  		};
 1.12300 + 	
 1.12301 + 	/**
 1.12302 + 	TLocationMethod is used by SendMolr() API
 1.12303 + 	This is an enum which lists out all different types of Location methods that an UE can request
 1.12304 + 	@internalAll
 1.12305 + 	*/
 1.12306 + 	enum TLocationMethod
 1.12307 +  		{
 1.12308 +  		/**
 1.12309 +  		Location Method Unknown
 1.12310 +		*/
 1.12311 +  		ELocationMethodunknown,
 1.12312 +  		/**
 1.12313 +  		This indication is given under a scenario where the UE wants a MS (Mobile Station) Based Location Fix.
 1.12314 +  		This can be termed as UE Assisted Location Fix(EOTD-Enhanced observed time difference).
 1.12315 +  		*/
 1.12316 +  		EMSBasedEOTD,
 1.12317 +  		/**
 1.12318 +  		This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted Location Fix.
 1.12319 +  		This can be termed out as UE based location fix.
 1.12320 +  		*/
 1.12321 +  		EMSAssistedEOTD,
 1.12322 +  		/**
 1.12323 +  		This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted GPS data.
 1.12324 +  		*/
 1.12325 +  		EMSAssistedGPS,
 1.12326 +  		/**
 1.12327 +  		This indication is given under a scenario where the UE wants a MS (Mobile Station) based location fix 
 1.12328 +  		(OTDOA-Observed time difference of arrival).
 1.12329 +  		*/
 1.12330 +  		EMSBasedOTDOA
 1.12331 +  		}; 
 1.12332 +   
 1.12333 +    /**
 1.12334 +    TQosV1 is used by SendMolr() API
 1.12335 +    This is a class with details of accuracy of Position information, Response Time, 
 1.12336 +    expected to be received from the network.
 1.12337 +    @see TResponseTime
 1.12338 +    @internalAll
 1.12339 +    */
 1.12340 + 	class TQosV1
 1.12341 +   		{
 1.12342 +   	public:
 1.12343 +    	/**
 1.12344 +    	This gives an information of the amount of Horizontal accuracy that the UE is expecting.
 1.12345 +    	*/
 1.12346 +    	TUint8 iHorizontalAccuracy;
 1.12347 +    	/**
 1.12348 +    	This gives an information of the amount of Vertical accuracy that the UE is expecting. 
 1.12349 +    	*/
 1.12350 +    	TUint8 iVerticalAccuracy;
 1.12351 +    	/**
 1.12352 +    	This enum indicates the Response Time expected by the UE to receive a response for its MOlr request.
 1.12353 +    	*/
 1.12354 +    	TResponseTime iResponseTime;
 1.12355 +    	};
 1.12356 +    
 1.12357 +    /**
 1.12358 +    TMolrErrors is used by SendMolr() API
 1.12359 +    This is an enum which lists out all the possible errors that can be 
 1.12360 +    reported to UE by an External Client or the Network.
 1.12361 +    @internalAll
 1.12362 +    */
 1.12363 +   	enum TMolrErrors
 1.12364 +    	{
 1.12365 +    	/**
 1.12366 +    	Molr Error Unknown
 1.12367 +		*/
 1.12368 +    	EMolrErrorUnknown,
 1.12369 +    	/**
 1.12370 +    	This indication is given to the UE when the Location Report is unable to reach the 
 1.12371 +    	External Client due to some failure in the Network Connections.
 1.12372 +    	*/
 1.12373 +        EMolrSystemFailure, 
 1.12374 +        /**
 1.12375 +        This indication is given back to the UE by the Network to the UE or by the 
 1.12376 +        External Client to the UE,where the UE generated MOLR has some unexpected values. 
 1.12377 +        */
 1.12378 +        EMolrUnexpectedDataValue,  
 1.12379 +        /**
 1.12380 +        This indication is given back to the UE by the Network to the UE or by the 
 1.12381 +        External Client to the UE,where the UE generated MOLR had a data discrepancy
 1.12382 +        */
 1.12383 +        EMolrDataMissing, 
 1.12384 +        /**
 1.12385 +        This indication is given by the Network to the UE, 
 1.12386 +        when the UE is not given a facility to make a MOLR request
 1.12387 +        */
 1.12388 +        EMolrFacilityNotSupported, 
 1.12389 +        /**
 1.12390 +        This indication is given by the Network to the UE, 
 1.12391 +        when the subscription profile of the UE doesn't match with the requests made by it.
 1.12392 +        */
 1.12393 +        EMolrSS_SubscriptionViolation, 
 1.12394 +        /**
 1.12395 +        This indication is given by the Network to the UE, 
 1.12396 +        when the UE or the Network failed to generate the Location estimate
 1.12397 +        */ 
 1.12398 +        EMolrPositionMethodFailure 
 1.12399 +        };
 1.12400 +
 1.12401 +	/**
 1.12402 +	TStartMolrV7 is used by SendMolr() API
 1.12403 +	This class lists the details send by UE to Network when a Molr request is being made.
 1.12404 +	@see TMolrType
 1.12405 +	@see TQosV1
 1.12406 +	@see TLocationEstimateType
 1.12407 +	@see TLcsClientExternalID
 1.12408 +	@see TGpsAssistanceData
 1.12409 +	@see TLocationMethod
 1.12410 +	@internalAll
 1.12411 +	*/
 1.12412 +	class TStartMolrV7: public RMobilePhone::TMultimodeType
 1.12413 +		{
 1.12414 +	public:
 1.12415 +		IMPORT_C TStartMolrV7();
 1.12416 +	public:
 1.12417 +		/**
 1.12418 +		TMolrType holds the type of Molr request being made
 1.12419 +		*/
 1.12420 +		TMolrType             iMolrType;
 1.12421 +		/**
 1.12422 +		TQosV1 lists out the Quality of Service expected by UE
 1.12423 +		*/
 1.12424 +		TQosV1                iQos;
 1.12425 +		/**
 1.12426 +		Type of Location Estimate requested
 1.12427 +		*/
 1.12428 +		TLocationEstimateType iMolrLocationEstimateType;
 1.12429 +		/**
 1.12430 +		Id of the External client
 1.12431 +		*/
 1.12432 +		TLcsClientExternalID  iLcsClientExternalID;
 1.12433 +		/**
 1.12434 +		Type of GpsAssistanceData
 1.12435 +		*/
 1.12436 +		TGpsAssistanceData    iGpsAssistanceData;
 1.12437 +		/**
 1.12438 +		Type of Location method requested
 1.12439 +		*/
 1.12440 +		TLocationMethod       iLocationMethod ;
 1.12441 +		/**
 1.12442 +		Type of Service requested
 1.12443 +		*/
 1.12444 +		TUint8                 iLcsServiceTypeID;
 1.12445 +		};
 1.12446 +	/**
 1.12447 +	A typedef'd packaged TStartMolrV7 for passing through a
 1.12448 +	generic API method.
 1.12449 +
 1.12450 +	@internalAll
 1.12451 +	*/
 1.12452 +	typedef TPckg<TStartMolrV7> TStartMolrV7Pckg;
 1.12453 +	
 1.12454 +	/**
 1.12455 +	TMolrReturnResultV7 is used by SendMolr() API
 1.12456 +	This class lists all the Molr return results that can be expected for the Molr request
 1.12457 +	being made.
 1.12458 +	@see TLcsLocationEstimate 
 1.12459 +	@see TLcsVelocityEstimate
 1.12460 +	@see TMolrErrors
 1.12461 +	@internalAll
 1.12462 +	*/
 1.12463 +    class TMolrReturnResultV7: public RMobilePhone::TMultimodeType
 1.12464 +    	{
 1.12465 +    public:
 1.12466 +		IMPORT_C TMolrReturnResultV7();
 1.12467 +    public:
 1.12468 +    	/**
 1.12469 +    	This gives the Location Estimate of the UE
 1.12470 +    	*/
 1.12471 +    	TLcsLocationEstimate    iLocationEstimate;
 1.12472 +    	/**
 1.12473 +    	This gives the Velocity Estimate of the UE
 1.12474 +    	*/
 1.12475 +    	TLcsVelocityEstimate	iVelocityEstimate;
 1.12476 +    	/**
 1.12477 +    	This gives the indication of the type of error occured
 1.12478 +    	*/
 1.12479 +    	TMolrErrors             iMolrErrors;
 1.12480 +    	};
 1.12481 +
 1.12482 +	/**
 1.12483 +	A typedef'd packaged TMolrReturnResultV7 for passing through a
 1.12484 +	generic API method.
 1.12485 +
 1.12486 +	@internalAll
 1.12487 +	*/
 1.12488 +	typedef TPckg<TMolrReturnResultV7> TMolrReturnResultV7Pckg;
 1.12489 +	
 1.12490 +	//**************************************//
 1.12491 +	// Measurement Control Data structures	//
 1.12492 +	//**************************************//
 1.12493 +
 1.12494 +	enum 
 1.12495 +		{
 1.12496 +		/**Maximum number of monitored cells RACH*/
 1.12497 +		KMaxMonitoredCells = 8,
 1.12498 +		/**Maximum number of satellites*/
 1.12499 +		KMaxSat = 16,
 1.12500 +		/**GlobalHealth size. 364 bits =46 bytes (Rounded) */
 1.12501 +		KGlobalHealthSize	= 46
 1.12502 +		};
 1.12503 +
 1.12504 +	/**This enum contains the possible types of measurement commands.*/
 1.12505 +	enum TMeasurementCmd
 1.12506 +		{
 1.12507 +		/**Measurement Command Unknown*/
 1.12508 +		EMeasCommandUnknown,
 1.12509 +		/**Setup a new measurement*/
 1.12510 +		ESetup,
 1.12511 +		/**Modify a previously defined measurement, e.g. to change the reporting criteria*/
 1.12512 +		EModify,
 1.12513 +		/**Indicates to stop a measurement and clear all information in the UE that are related to that measurement */
 1.12514 +		ERelease,
 1.12515 +		};
 1.12516 +
 1.12517 +	/**This enum contains the possible positioning method types*/
 1.12518 +	enum TUePosMethodType
 1.12519 +		{
 1.12520 +		/**Positioning Method Type unknown*/
 1.12521 +		EPosMethodTypeUnknown,
 1.12522 +		/**UE Assisted : The network computes the location of the UE.*/
 1.12523 +		EUeAssisted,
 1.12524 +		/**UE Based : The UE computes the location of itself*/
 1.12525 +		EUeBased,
 1.12526 +		};
 1.12527 +
 1.12528 +	/**This enum contains the possible positioning methods*/
 1.12529 +	enum TPosMethod
 1.12530 +		{
 1.12531 +		/**Positioning Method unknown*/
 1.12532 +		EPosMethodUnknown,
 1.12533 +		/**OTDOA may be selected by the SRNC as the method to be used on receipt of an LCS positioning request from the CN */
 1.12534 +		EOtdoa,
 1.12535 +		/**These methods make use of UEs, which are equipped with radio receivers capable of receiving GPS signals*/
 1.12536 +		EGps,
 1.12537 +		/**Use either OTDOA or GPS positioning method.*/
 1.12538 +		EOtdoaOrGps,
 1.12539 +		/**
 1.12540 +		In the cell ID based (i.e. cell coverage) method, the position of an UE is 
 1.12541 +		estimated with the knowledge of its serving Node B. The information about the serving 
 1.12542 +		Node B and cell may be obtained by paging,locating area update, cell update, URA update, or routing area update.
 1.12543 +		*/
 1.12544 +		ECellID
 1.12545 +		};
 1.12546 +
 1.12547 +	/**
 1.12548 +	This class contains the information which is part of the Navigation Model.
 1.12549 +	This can be requested by the UE as part of additional request.
 1.12550 +	*/
 1.12551 +	class TSatDataV1
 1.12552 +		{
 1.12553 +	public:
 1.12554 +		/**Satellite identity*/
 1.12555 +		TUint8		iSatID;
 1.12556 +		/**Issue of Data Ephemeris for SatID*/
 1.12557 +		TUint8		iIode;
 1.12558 +		};
 1.12559 +	
 1.12560 +	/**
 1.12561 +	This class contains the additional information that can be requested by the UE.
 1.12562 +	*/
 1.12563 +	class TNavModelAddlDataReqV1	
 1.12564 +		{
 1.12565 +	public:
 1.12566 +		/**GPS time in weeks*/
 1.12567 +		TUint16		iGpsWeek;
 1.12568 +		/**GPS time of ephemeris in hours of the latest ephemeris set contained by the UE.*/
 1.12569 +		TUint8		iGpsToe;
 1.12570 +		/**Ephemeris age tolerance of the UE to UTRAN in hours.*/
 1.12571 +		TUint8		iTToeLimit;
 1.12572 +		/**Satellite Identities
 1.12573 +		@see TSatDataV1*/
 1.12574 +		TSatDataV1	iSatData[KMaxSat];
 1.12575 +		};
 1.12576 +
 1.12577 +	/**This class contains the indicators to request for additional assistance data from the network.*/
 1.12578 +	class TGpsAddlAssistDataReqV1
 1.12579 +		{
 1.12580 +	public:
 1.12581 +		/**ETrue indicates Almanac Data is requested
 1.12582 +		@see	TAlmanacV1*/
 1.12583 +		TBool	iAlmanacRequest;
 1.12584 +		/**ETrue indicates UTC model Data is requested
 1.12585 +		@see	TUtcModelV1*/
 1.12586 +		TBool	iUtcModelRequest;
 1.12587 +		/**ETrue indicates Ionospheric Model Data is requested
 1.12588 +		@see	TUtcModelV1*/
 1.12589 +		TBool	iIonosphericModelRequest;
 1.12590 +		/**ETrue indicates Navigation model Data is requested
 1.12591 +		@see	TIonosphericModelV1*/
 1.12592 +		TBool	iNavigationModelRequest;
 1.12593 +		/**ETrue indicates DGPS corrections Data is requested
 1.12594 +		@see	TNavigationModelSatInfoV1*/
 1.12595 +		TBool	iDgpsCorrectionsRequest;
 1.12596 +		/**ETrue indicates Reference location Data is requested
 1.12597 +		@see	TDgpsCorrectionsV1*/
 1.12598 +		TBool	iReferenceLocationRequest;
 1.12599 +		/**ETrue indicates Reference time Data is requested
 1.12600 +		@see	TReferenceLocationV1*/
 1.12601 +		TBool	iReferenceTimeRequest;
 1.12602 +		/**ETrue indicates Acquisition assistance Data is requested
 1.12603 +		@see	TReferenceTimeV1*/
 1.12604 +		TBool	iAcquisitionAssistanceReq;
 1.12605 +		/**ETrue indicates Realtime integrity Data is requested
 1.12606 +		@see	TAcquisitionAssistanceV1*/
 1.12607 +		TBool	iRealTimeIntegrityRequest;
 1.12608 +		/**This member is included only if Navigagion Model Data is requested (iNavigationModelRequest is ETrue).
 1.12609 +		@see	TNavModelAddlDataReqV1*/
 1.12610 +		TNavModelAddlDataReqV1	iNavModelAddlDataReq;
 1.12611 +		};
 1.12612 +
 1.12613 +	/**This class contains the UE positioning reporting quantity*/
 1.12614 +	class TUePosReportingQuantityV1
 1.12615 +		{
 1.12616 +	public:
 1.12617 +		/**Holds the positioning method type*/
 1.12618 +		TUePosMethodType	 iUePosMethodType;
 1.12619 +		/**Holds the positioning method*/
 1.12620 +		TPosMethod 	iPosMethod;
 1.12621 +		/**Holds the horizontal accuracy*/
 1.12622 +		TInt8	iHorzAccuracy;
 1.12623 +		/**Holds the vertical accuracy*/
 1.12624 +		TInt8	iVertAccuracy;
 1.12625 +		/**If true the SRNC wants the UE to report the SFN-GPS timing of the reference cell.*/ 
 1.12626 +		TBool 	iGpsTimingOfCellWanted;
 1.12627 +		/**ETrue indicates that the UE is requested to send the IE "Additional assistance Data Request" 
 1.12628 +		when the IE "UE positioning Error" is present in the UE positioning measured results.
 1.12629 +		EFalse indicates that the UE shall use the assistance data available.
 1.12630 +		*/
 1.12631 +		TBool	iAddlAssistanceDataReq;
 1.12632 +		};
 1.12633 +
 1.12634 +	/**This enum contains the states in which measurements are valid*/
 1.12635 +	enum TMeasurementValidity
 1.12636 +		{
 1.12637 +		/**Measurement Validity Unknown*/
 1.12638 +		EMeasValidityUnknown,
 1.12639 +		/**Indicates measurement is valid in CellDCH state*/
 1.12640 +		ECellDCH,
 1.12641 +		/**Indicates measurement is valid except in CellDCH state*/
 1.12642 +		EAllButCellDCH,
 1.12643 +		/**Indicates measurement is valid in all state*/
 1.12644 +		EAllStates
 1.12645 +		};
 1.12646 +
 1.12647 +	/**This enum list the SfnTow uncertainity*/
 1.12648 +	enum TSfnTowUncertainity
 1.12649 +		{
 1.12650 +		/**Sfn Tow Uncertainity unknown*/
 1.12651 +		ESfnTowUncertainityUnknown,
 1.12652 +		/**SfnTowUncertainity < 10*/
 1.12653 +		ELessThan10,
 1.12654 +		/**SfnTowUncertainity > 10*/
 1.12655 +		EMoreThan10
 1.12656 +		};
 1.12657 +	
 1.12658 +	/**This enum lists the different GPS drift rates*/
 1.12659 +	enum TUtranGpsDriftRate
 1.12660 +		{
 1.12661 +		/**GPS Drift rate unknown*/
 1.12662 +		EDriftRateUnknown,
 1.12663 +		/**Drift = 0*/
 1.12664 +		EUtranGpsDrift0,
 1.12665 +		/**Drift = 1*/
 1.12666 +		EUtranGpsDrift1,
 1.12667 +		/**Drift = 2*/
 1.12668 +		EUtranGpsDrift2,
 1.12669 +		/**Drift = 5*/
 1.12670 +		EUtranGpsDrift5,
 1.12671 +		/**Drift = 10*/
 1.12672 +		EUtranGpsDrift10,
 1.12673 +		/**Drift = 15*/
 1.12674 +		EUtranGpsDrift15,
 1.12675 +		/**Drift = 25*/
 1.12676 +		EUtranGpsDrift25,
 1.12677 +		/**Drift = 50*/
 1.12678 +		EUtranGpsDrift50,
 1.12679 +		/**Drift = -1*/
 1.12680 +		EUtranGpsDriftMinus1,
 1.12681 +		/**Drift = -2*/
 1.12682 +		EUtranGpsDriftMinus2,
 1.12683 +		/**Drift = -5*/
 1.12684 +		EUtranGpsDriftMinus5,
 1.12685 +		/**Drift = -10*/
 1.12686 +		EUtranGpsDriftMinus10,
 1.12687 +		/**Drift = -15*/
 1.12688 +		EUtranGpsDriftMinus15,
 1.12689 +		/**Drift = -25*/
 1.12690 +		EUtranGpsDriftMinus25,
 1.12691 +		/**Drift = -50*/
 1.12692 +		EUtranGpsDriftMinus50,
 1.12693 +		};
 1.12694 +
 1.12695 +	/**This enum lists the different Udre values*/
 1.12696 +	enum TDiffCorrectionsStatus
 1.12697 +		{
 1.12698 +		/**Diff Corrections Status unknown*/
 1.12699 +		ECorrectionStatusUnknown,
 1.12700 +		/**UDRE 1.0 */
 1.12701 +		EUdre1Point0,
 1.12702 +		/**UDRE 0.75 */
 1.12703 +		EUdre0Point75,
 1.12704 +		/**UDRE 0.5 */
 1.12705 +		EUdre0Point5,
 1.12706 +		/**UDRE 0.3 */
 1.12707 +		EUdre0Point3,
 1.12708 +		/**UDRE 0.2 */
 1.12709 +		EUdre0Point2,
 1.12710 +		/**UDRE 0.1 */
 1.12711 +		EUdre0Point1,
 1.12712 +		/**UDRE No Data */
 1.12713 +		ENoData,
 1.12714 +		/**UDRE Invalid Data */
 1.12715 +		EInvalidData
 1.12716 +		};
 1.12717 +	
 1.12718 +	/**This class reserves members for future use*/
 1.12719 +	class TSubFrame1ReservedV1
 1.12720 +		{
 1.12721 +	public:
 1.12722 +		/**Reserve member 1*/
 1.12723 +		TUint	iReserved1;
 1.12724 +		/**Reserve member 2*/
 1.12725 +		TUint	iReserved2;
 1.12726 +		/**Reserve member 3*/
 1.12727 +		TUint	iReserved3;
 1.12728 +		/**Reserve member 4*/
 1.12729 +		TUint	iReserved4;
 1.12730 +		};
 1.12731 +
 1.12732 +	/**This class contains information for GPS ephemeris and clock correction.*/
 1.12733 +	class TEphemerisParameterV1
 1.12734 +		{
 1.12735 +	public:
 1.12736 +		/**Code(s) on L2 Channel */
 1.12737 +		TUint8	iCodeOnL2;
 1.12738 +		/**User Range Accuracy */
 1.12739 +		TUint8	iUraIndex;
 1.12740 +		/**Health of Satellite*/
 1.12741 +		TUint8	iSatHealth;
 1.12742 +		/**Issue of Data, Clock */
 1.12743 +		TUint16	iIodc;
 1.12744 +		/**L2 channel flag*/
 1.12745 +		TUint8	iL2Flag;
 1.12746 +		TSubFrame1ReservedV1	iSubFrame1Reserved;
 1.12747 +		/**Estimated group delay differential */
 1.12748 +		TUint8	iTGd;
 1.12749 +		/**Apparent clock correction*/
 1.12750 +		TUint16	iTOc;
 1.12751 +		/**Apparent clock correction*/
 1.12752 +		TUint8	iAf2;
 1.12753 +		/**Apparent clock correction*/
 1.12754 +		TUint16	iAf1;
 1.12755 +		/**Apparent clock correction*/
 1.12756 +		TUint	iAf0;
 1.12757 +		/**Amplitude of the Sine Harmonic Correction Term to the Orbit Radius (meters)*/
 1.12758 +		TUint16	iCRs;
 1.12759 +		/**Mean Motion Difference From Computed Value (semi-circles/sec)*/
 1.12760 +		TUint16	iDeltaN;
 1.12761 +		/**Mean Anomaly at Reference Time (semi-circles)*/
 1.12762 +		TUint	iM0;
 1.12763 +		/**Amplitude of the Cosine Harmonic Correction Term To The Argument Of Latitude (radians)*/
 1.12764 +		TUint16	iCUc;
 1.12765 +		/**Eccentricity*/
 1.12766 +		TUint	iE;
 1.12767 +		/**Amplitude of the Sine Harmonic Correction Term To The Argument Of Latitude (radians)*/
 1.12768 +		TUint16	iCUs;
 1.12769 +		/**Semi-Major Axis in squareroot(meters) */
 1.12770 +		TUint	iASqrt;
 1.12771 +		/**Reference Time Ephemeris */
 1.12772 +		TUint16	iTOe;
 1.12773 +		/**
 1.12774 +		Fit interval flag
 1.12775 +		@see ICD-GPS-200
 1.12776 +		*/
 1.12777 +		TUint8	iFitInterval;
 1.12778 +		/**Age Of Data Offset */
 1.12779 +		TUint8	iAodo;
 1.12780 +		/**Amplitude of the Cosine Harmonic Correction Term To The Angle Of Inclination (radians)*/
 1.12781 +		TUint16	iCIc;
 1.12782 +		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */
 1.12783 +		TUint	iOmega0;
 1.12784 +		/**Amplitude of the Sine Harmonic Correction Term To The Angle Of Inclination (radians) */
 1.12785 +		TUint16	iCIs;
 1.12786 +		/**Inclination Angle at Reference Time (semi-circles) */
 1.12787 +		TUint	i0;
 1.12788 +		/**Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius (meters) */
 1.12789 +		TUint16	iCRc;
 1.12790 +		/**Argument of Perigee (semi-circles) */
 1.12791 +		TUint	iOmega;
 1.12792 +		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */
 1.12793 +		TUint	iOmegaDot;
 1.12794 +		/**Rate of Inclination Angle (semi-circles/sec) */
 1.12795 +		TUint16	iDot;
 1.12796 +		};
 1.12797 +
 1.12798 +	/**This enum specifies the possible status of a satellite*/
 1.12799 +	enum TSatelliteStatus
 1.12800 +		{
 1.12801 +		/**Satellite Status unknown*/
 1.12802 +		ESatStatusUnknown,
 1.12803 +		/**New satellite, new Navigation Model*/
 1.12804 +		ENsNnU,
 1.12805 +		/**Existing satellite, same Navigation Model*/
 1.12806 +		EEsSn,
 1.12807 +		/**Existing satellite, new Navigation Model*/
 1.12808 +		EEsNnU,
 1.12809 +		/**Reserved*/
 1.12810 +		ERev2,
 1.12811 +		/**Reserved*/
 1.12812 +		ERev
 1.12813 +		};
 1.12814 +
 1.12815 +	/**This class contains the navigation model satellite information*/
 1.12816 +	class TNavigationModelSatInfoV1
 1.12817 +		{
 1.12818 +	public:
 1.12819 +		/**Satellite identification*/
 1.12820 +		TUint8				iSatID;
 1.12821 +		/**Status of the satellite*/
 1.12822 +		TSatelliteStatus	iSatelliteStatus;
 1.12823 +		/**Contains information for GPS ephemeris and clock correction.*/
 1.12824 +		TEphemerisParameterV1	iEphemerisParameter;
 1.12825 +		};
 1.12826 +
 1.12827 +	/**
 1.12828 +	This class contains the ionospheric model information needed to model
 1.12829 +	the propagation delays of the GPS signals through the ionosphere
 1.12830 +	*/
 1.12831 +	class TIonosphericModelV1
 1.12832 +		{
 1.12833 +	public:
 1.12834 +		/**
 1.12835 +		The parameters *n are the coefficients of a cubic equation 
 1.12836 +		representing the amplitude of the vertical delay.
 1.12837 +		@see ICD-GPS-200
 1.12838 +		*/
 1.12839 +		/**Alfa = 0*/
 1.12840 +		TUint8	iAlfa0;
 1.12841 +		/**Alfa = 1*/
 1.12842 +		TUint8	iAlfa1;
 1.12843 +		/**Alfa = 2*/
 1.12844 +		TUint8	iAlfa2;
 1.12845 +		/**Alfa = 3*/
 1.12846 +		TUint8	iAlfa3;
 1.12847 +		/**
 1.12848 +		The parameters *n are the coefficients of a cubic equation 
 1.12849 +		representing the period of the ionospheric model 
 1.12850 +		@see ICD-GPS-200
 1.12851 +		*/
 1.12852 +		/**Beta = 0*/
 1.12853 +		TUint8	iBeta0;
 1.12854 +		/**Beta = 1*/
 1.12855 +		TUint8	iBeta1;
 1.12856 +		/**Beta = 2*/
 1.12857 +		TUint8	iBeta2;
 1.12858 +		/**Beta = 3*/
 1.12859 +		TUint8	iBeta3;
 1.12860 +		};
 1.12861 +		
 1.12862 +	/**
 1.12863 +	This class contains the UTC model information needed to relate GPS time to Universal Time Coordinate (UTC)
 1.12864 +	@see ICD-GPS-200
 1.12865 +	*/
 1.12866 +	class TUtcModelV1
 1.12867 +		{
 1.12868 +	public:
 1.12869 +		/**
 1.12870 +		Time in seconds. 
 1.12871 +		@see ICD-GPS-200.
 1.12872 +		*/
 1.12873 +		TUint	iA1;
 1.12874 +		/**
 1.12875 +		Time in seconds. 
 1.12876 +		@see ICD-GPS-200.
 1.12877 +		*/
 1.12878 +		TUint	iA2;
 1.12879 +		/**Time in seconds
 1.12880 +		@see ICD-GPS-200
 1.12881 +		*/
 1.12882 +		TUint8	iTOt;
 1.12883 +		/**weeks
 1.12884 +		@see ICD-GPS-200
 1.12885 +		*/
 1.12886 +		TUint8	iWnT;
 1.12887 +		/**Time in seconds
 1.12888 +		@see ICD-GPS-200
 1.12889 +		*/
 1.12890 +		TUint8	iDeltaTLs;
 1.12891 +		/**Weeks
 1.12892 +		@see ICD-GPS-200
 1.12893 +		*/
 1.12894 +		TUint8	iWnLsf;
 1.12895 +		/**Days
 1.12896 +		@see ICD-GPS-200
 1.12897 +		*/
 1.12898 +		TUint8	iDn;
 1.12899 +		/**Seconds
 1.12900 +		@see ICD-GPS-200
 1.12901 +		*/
 1.12902 +		TUint8	iDeltaTLsf;
 1.12903 +		};
 1.12904 +
 1.12905 +	/**This class contains a reduced-precision subset of the ephemeris and clock correction parameters.*/
 1.12906 +	class TAlmanacSatInfoV1
 1.12907 +		{
 1.12908 +	public:
 1.12909 +		/**Data identification*/
 1.12910 +		TUint8	iDataID;
 1.12911 +		/**Eccentricity*/
 1.12912 +		TUint16	iE;
 1.12913 +		/**Reference Time of Almanac */
 1.12914 +		TUint8 	iTOa;
 1.12915 +		/**@see ICD-GPS-200*/
 1.12916 +		TUint16	iDeltaI;
 1.12917 +		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles/sec) */
 1.12918 +		TUint16	iOmegaDot;
 1.12919 +		/**Satellite health*/
 1.12920 +		TUint8	iSatHealth;
 1.12921 +		/**Semi-Major Axis in squareroot(meters)*/
 1.12922 +		TUint	iASqrt;
 1.12923 +		/**Longitude of Ascending Node of Orbit Plane at Weekly Epoch (semi-circles) */
 1.12924 +		TUint	iOmega0;
 1.12925 +		/**Mean Anomaly at Reference Time (semi-circles) */
 1.12926 +		TUint	iM0;
 1.12927 +		/**Argument of Perigee (semi-circles) */
 1.12928 +		TUint	iOmega;
 1.12929 +		/**Apparent clock correction */
 1.12930 +		TUint16	iAf0;
 1.12931 +		/**Apparent clock correction */
 1.12932 +		TUint16	iAf1;
 1.12933 +		};
 1.12934 +
 1.12935 +	/**This class holds the coarse, long-term model of the satellite positions and clocks.*/
 1.12936 +	class TAlmanacV1
 1.12937 +		{
 1.12938 +	public:
 1.12939 +		/**Almanac Reference Week */
 1.12940 +		TUint8	iWnA;
 1.12941 +		TAlmanacSatInfoV1	iAlmanacSatInfoList[KMaxSat]; 
 1.12942 +		/**This enables GPS time recovery and possibly extended GPS correlation intervals.*/
 1.12943 +		TUint16	iSvGlobalHealth[KGlobalHealthSize]; 
 1.12944 +		};
 1.12945 +
 1.12946 +	/**This union contains the information specific to mode - FDD/TDD*/
 1.12947 +	union TModeSpecificInfoV1
 1.12948 +		{
 1.12949 +		/**Used in FDD mode*/
 1.12950 +		TUint16	iPrimaryScramblingCode;
 1.12951 +		/**Used in TDD mode*/
 1.12952 +		TUint16	iCellParametersID;
 1.12953 +		};
 1.12954 +
 1.12955 +	/**This class contains parameters that enable fast acquisition of the GPS 
 1.12956 +	   signals in UE-assisted GPS positioning.*/
 1.12957 +	class TAcquisitionAssistanceV1
 1.12958 +		{
 1.12959 +	public:
 1.12960 +		/**Specifies GPS reference time*/
 1.12961 +		TUint				iGpsReferenceTime;
 1.12962 +		/**Specifies GPS reference time specific to mode - FDD/TDD*/
 1.12963 +		TModeSpecificInfoV1	iUtranGpsReferenceTime;
 1.12964 +		/**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. 
 1.12965 +		EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/
 1.12966 +		TBool	iUtranGpsRefTimeStatus;
 1.12967 +		};
 1.12968 +
 1.12969 +	/**
 1.12970 +	The UDRE provides an estimate of the uncertainty (1-*) in the corrections for 
 1.12971 +	the particular satellite. The value in this field shall be multiplied by the 
 1.12972 +	UDRE Scale Factor in the common Corrections Status/Health field to determine the 
 1.12973 +	final UDRE estimate for the particular satellite. 
 1.12974 +	@see 3GPP TS 25.305
 1.12975 +	*/
 1.12976 +	enum TUdre
 1.12977 +		{
 1.12978 +		/**Udre unknown*/
 1.12979 +		EUdreUnknown,
 1.12980 +		/** UDRE < 1*/
 1.12981 +		ELessThan1,
 1.12982 +		/** 1> UDRE < 4*/
 1.12983 +		EBtw1And4,
 1.12984 +		/** 1> UDRE < 8*/
 1.12985 +		EBtw1And8,
 1.12986 +		/** UDRE > 8*/
 1.12987 +		EOver8
 1.12988 +		};
 1.12989 +
 1.12990 +	/**This class contains DGPS corrections to be used by the UE*/
 1.12991 +	class TDgpsCorrectionSatInfoV1
 1.12992 +		{
 1.12993 +	public:
 1.12994 +		/**Satellite identification*/
 1.12995 +		TUint8	iSatID;
 1.12996 +		/**Issue of Data Ephemeris for SatID.*/
 1.12997 +		TUint8	iIode;
 1.12998 +		/**
 1.12999 +		The UDRE provides an estimate of the uncertainty (1-*) in the corrections for 
 1.13000 +		the particular satellite. The value in this field shall be multiplied by the 
 1.13001 +		UDRE Scale Factor in the common Corrections Status/Health field to determine the 
 1.13002 +		final UDRE estimate for the particular satellite. 
 1.13003 +		@see 3GPP TS 25.305
 1.13004 +		*/
 1.13005 +		TUdre	iUdre;
 1.13006 +		/**The PRC indicates the correction to the pseudorange for the particular satellite at the GPS Reference Time*/
 1.13007 +		TInt16	iPrc;
 1.13008 +		/**
 1.13009 +		This information indicates the rate-of-change of the pseudorange correction for the particular satellite,
 1.13010 +		using the satellite ephemeris identified by the IODE IE
 1.13011 +		*/
 1.13012 +		TInt8	iRrc;
 1.13013 +		/**For future use*/
 1.13014 +		TInt8	iDummy1;
 1.13015 +		/**For future use*/
 1.13016 +		TInt8	iDummy2;
 1.13017 +		};
 1.13018 +
 1.13019 +	/**This class contains the DGPS corrections information*/
 1.13020 +	class TDgpsCorrectionsV1
 1.13021 +		{
 1.13022 +	public:
 1.13023 +		/**GPS time of week*/
 1.13024 +		TUint16				iGpsTow;
 1.13025 +		/**This information indicates the status of the differential corrections contained in the message.*/
 1.13026 +		TDiffCorrectionsStatus	iStatusHealth;
 1.13027 +		/**This member data contains DGPS corrections of the satellites to be used by the UE*/
 1.13028 +		TDgpsCorrectionSatInfoV1	iDgpsCorrectionSatInfoList[KMaxSat];
 1.13029 +		};
 1.13030 +
 1.13031 +	/**This enum containst the possible signs of latitude*/
 1.13032 +	enum TLatitudeSign
 1.13033 +		{
 1.13034 +		/**Latitude Sign Unknown*/
 1.13035 +		ELatitudeSignUnknown,
 1.13036 +		/**Latitude sign is north*/
 1.13037 +		ENorth,
 1.13038 +		/**Latitude sign is south*/
 1.13039 +		ESouth
 1.13040 +		};
 1.13041 +	
 1.13042 +	/**This enum contains the possible directions of altitudes for reference location*/
 1.13043 +	enum TAltDirection
 1.13044 +		{
 1.13045 +		/**Altitude Direction Unknown*/
 1.13046 +		EAltDirectionUnknown,
 1.13047 +		/**Indicates Altitude direction is height-wise*/
 1.13048 +		EHeight,
 1.13049 +		/**Indicates Altitude direction is depth-wise*/
 1.13050 +		EDepth
 1.13051 +		};
 1.13052 +
 1.13053 +	/**This class contains a 3-D location (with uncertainty)*/
 1.13054 +	class TReferenceLocationV1
 1.13055 +		{
 1.13056 +	public:
 1.13057 +		/**Specifies the sign - North/South*/
 1.13058 +		TLatitudeSign	iLatitudeSign;
 1.13059 +		/**Degree of latitude*/
 1.13060 +		TUint16			iLatitude;
 1.13061 +		/**Degree of longitude*/
 1.13062 +		TInt16			iLongitude;
 1.13063 +		/**Direction of altitude*/
 1.13064 +		TAltDirection	iAltDirection;
 1.13065 +		/**Degree of altitude*/
 1.13066 +		TUint16			iAltitude;
 1.13067 +		/**Uncertainty semi major axis*/
 1.13068 +		TUint8			iUncertainitySemiMajor;
 1.13069 +		/**Uncertainty semi minor axis*/
 1.13070 +		TUint8			iUncertainitySemiMinor;
 1.13071 +		/**Orientation of major axis*/
 1.13072 +		TUint8			iOrientationMajorAxis;
 1.13073 +		/**The uncertainty in altitude, h, expressed in metres*/
 1.13074 +		TUint8			iUncertainityAltitude;
 1.13075 +		/**The confidence by which the position of a target entity is known to be within the shape description*/
 1.13076 +		TUint8			iConfidence;
 1.13077 +		};
 1.13078 +
 1.13079 +	/**
 1.13080 +	Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) 
 1.13081 +	that are currently being broadcast by the respective GPS satellites. Combining this information 
 1.13082 +	with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
 1.13083 +	*/
 1.13084 +	class TGpsTowAssistV1
 1.13085 +		{
 1.13086 +	public:
 1.13087 +		/**Satellite identification*/
 1.13088 +		TUint8				iSatID;
 1.13089 +		/**
 1.13090 +		Contains a 14-bit value representing the Telemetry Message (TLM) 
 1.13091 +		being broadcast by the GPS satellite identified by the particular SatID, 
 1.13092 +		with the MSB occurring first in the satellite transmission.
 1.13093 +		*/
 1.13094 +		TUint16				iTlmMsg;
 1.13095 +		/**
 1.13096 +		Contains the two reserved bits in the TLM Word 
 1.13097 +		being broadcast by the GPS satellite identified by SatID, 
 1.13098 +		with the MSB occurring first in the satellite transmission.
 1.13099 +		*/
 1.13100 +		TUint8				iTlmReserved;
 1.13101 +		/**Contain the Alert flags that are being broadcast by the GPS satellite identified by SatID.*/
 1.13102 +		TBool				iAlert;
 1.13103 +		/**Contain the Anti-Spoof that are being broadcast by the GPS satellite identified by SatID.*/
 1.13104 +		TBool				iAntiSpoof;
 1.13105 +		};
 1.13106 +
 1.13107 +	/**This class contains information that may be used to provide a mapping between UTRAN and GPS time*/
 1.13108 +	class TUtranGpsRefTimeV1
 1.13109 +		{
 1.13110 +	public:
 1.13111 +		/**UE-GPS timing of cell ms-part*/
 1.13112 +		TUint16 			iMsPart;
 1.13113 +		/**UE-GPS timing of cell ls-part*/
 1.13114 +		TUint16				iLsPart;
 1.13115 +		/**System frame number*/
 1.13116 +		TUint16				iSfn;
 1.13117 +		/**Specifies GPS reference time specific to mode - FDD/TDD*/
 1.13118 +		TModeSpecificInfoV1	iModeSpecificInfo;
 1.13119 +		/**ETrue indicates iUtranGpsReferenceTime is iPrimaryScramblingCode. 
 1.13120 +		EFalse indicates iUtranGpsReferenceTime is iCellParametersID*/
 1.13121 +		TBool	iModeSpecificInfoStatus;
 1.13122 +		};
 1.13123 +
 1.13124 +	/**
 1.13125 +	This class contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) 
 1.13126 +	that are currently being broadcast by the respective GPS satellites. Combining this information 
 1.13127 +	with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
 1.13128 +	*/
 1.13129 +	class TReferenceTimeV1
 1.13130 +		{
 1.13131 +	public:
 1.13132 +		/**GPS time in weeks*/
 1.13133 +		TUint16				iGpsWeek;
 1.13134 +		/**GPS Time of Week in milliseconds */
 1.13135 +		TUint16				iGpsTowOneMsec;
 1.13136 +		/**GPS reference time may be used to provide a mapping between UTRAN and GPS time*/
 1.13137 +		TUtranGpsRefTimeV1	iUtranGpsRefTime;
 1.13138 +		/**
 1.13139 +		This field indicates the uncertainty of the relation GPS TOW/SFN. 
 1.13140 +		ELessThan10 means the relation is accurate to at least 10 ms.
 1.13141 +		*/
 1.13142 +		TSfnTowUncertainity	iSfnTowUncertainity;
 1.13143 +		/**Drift rate of the NODE B clock relative to GPS time.*/
 1.13144 +		TUtranGpsDriftRate	iUtranGpsDriftRate;
 1.13145 +		/**
 1.13146 +		Contains several fields in the Telemetry (TLM) Word and Handover Word (HOW) 
 1.13147 +		that are currently being broadcast by the respective GPS satellites. Combining this information 
 1.13148 +		with GPS TOW helps the UE with time-recovery needed to predict satellite signal.
 1.13149 +		*/
 1.13150 +		TGpsTowAssistV1		iGpsTowAssistList[KMaxSat];
 1.13151 +		};
 1.13152 +
 1.13153 +	/**This class contains the GPS Assistance Data received from network*/
 1.13154 +	class TUePosGpsAssistanceDataV1
 1.13155 +		{
 1.13156 +	public:
 1.13157 +		/**GPS reference time may be used to provide a mapping between UTRAN and GPS time.*/
 1.13158 +		TReferenceTimeV1 			iReferencTime;
 1.13159 +		/**The Reference Location contains a 3-D location (with uncertainty)*/
 1.13160 +		TReferenceLocationV1		iReferenceLocation;
 1.13161 +		/**
 1.13162 +		Holds information to allow a UE to estimate its position more accurate,
 1.13163 +		biases in the pseudorange measurements may be provided to the UE.
 1.13164 +		*/
 1.13165 +		TDgpsCorrectionsV1			iDgpsCorrections;
 1.13166 +		/**Holds navigation model satellite information*/
 1.13167 +		TNavigationModelSatInfoV1	iNavigationModel;
 1.13168 +		/**
 1.13169 +		The Ionospheric Model contains information needed to model
 1.13170 +		the propagation delays of the GPS signals through the ionosphere.
 1.13171 +		*/
 1.13172 +		TIonosphericModelV1			iIonosphericModel;
 1.13173 +		/**UTC parameters may be used to provide Coordinated Universal Time to the UE.*/
 1.13174 +		TUtcModelV1					iUtcModel;
 1.13175 +		/**Holds the coarse, long-term model of the satellite positions and clocks.*/
 1.13176 +		TAlmanacV1					iAlmanac;
 1.13177 +		/**Holds the acquistions assistance information of the UE*/
 1.13178 +		TAcquisitionAssistanceV1	iAcquisitionAssistance;
 1.13179 +		/**Holds the list of bad satellites*/
 1.13180 +		TUint8						iBadSatList[KMaxSat];
 1.13181 +		/**
 1.13182 +		This member specifies which of the above additional data structures are populated.
 1.13183 +		*/
 1.13184 +		TGpsAddlAssistDataReqV1 iGpsAddlDataStatus;
 1.13185 +		};
 1.13186 +
 1.13187 +	/**This class contains the GPS assistance data required to compute the UE Postioning information*/
 1.13188 +	class TUePosMeasurementV1
 1.13189 +		{
 1.13190 +	public:
 1.13191 +		/**
 1.13192 +		The purpose of the element is to express the allowed/required location method(s), 
 1.13193 +		and to provide information desired QoS.
 1.13194 +		*/
 1.13195 +		TUePosReportingQuantityV1	iUePosReportingQuantity;
 1.13196 +		/**This member data defines in which UE states the measurement is valid.*/
 1.13197 +		TMeasurementValidity		iMeasurementValidity;
 1.13198 +		/**This member data holds the GPS Assistance Data sent by the network*/
 1.13199 +		TUePosGpsAssistanceDataV1	iUePosGpsAssistanceData;
 1.13200 +		};
 1.13201 +
 1.13202 +	/**This holds the possible types of measurement commands that can be specified*/
 1.13203 +	union TMeasurementCommandV1
 1.13204 +		{
 1.13205 +		/**Setup a new measurement*/
 1.13206 +		TUePosMeasurementV1	iSetup;
 1.13207 +		/**Modify a previously defined measurement*/
 1.13208 +		TUePosMeasurementV1	iModify;
 1.13209 +		/**Stop the measurement and clear all information in the UE that are related to that measurement.*/
 1.13210 +		TBool	iRelease;
 1.13211 +		};
 1.13212 +
 1.13213 +	/**This enum specifies the mode the UE shall use to transmit the measurement report*/
 1.13214 +	enum TMeasReportTransferMode
 1.13215 +		{
 1.13216 +		/**Transfer mode unknown*/
 1.13217 +		ETransferModeUnknown,
 1.13218 +		/**The UE shall transmit the measurement report using Acknowledged RLC mode*/
 1.13219 +		EAckModeRlc,
 1.13220 +		/**The UE shall transmit the measurement report using Unacknowledged RLC mode*/
 1.13221 +		EUnAckModeRlc
 1.13222 +		};
 1.13223 +
 1.13224 +	/**
 1.13225 +	This class contains the GPS assistance data needed by the UE to compute the location 
 1.13226 +	of the UE. The UE computes the location once it receives all required information.
 1.13227 +	*/
 1.13228 +	class TMeasurementControlV7 : public RMobilePhone::TMultimodeType
 1.13229 +		{
 1.13230 +	public:
 1.13231 +		IMPORT_C TMeasurementControlV7();
 1.13232 +	public:
 1.13233 +		/**
 1.13234 +		A reference number that should be used by the UTRAN when setting up, 
 1.13235 +		modifying or releasing the measurement and by the UE in the measurement report.
 1.13236 +		*/
 1.13237 +		TUint8	iMeasurementIdentity;
 1.13238 +		/**Specifies the Measurement Setup / Modify / Release*/
 1.13239 +		TMeasurementCommandV1	iMeasurementCommand;
 1.13240 +		/**This specifies whether the UE shall transmit the measurement report using AM or UM RLC.*/
 1.13241 +		TMeasReportTransferMode iMeasReportTransferMode;
 1.13242 +		/**ETrue indicates velocity estimate is requested. EFalse indicates velocity estimate is not requested*/
 1.13243 +		TBool	iVelocityRequested;
 1.13244 +		/**Holds the type of measurement command being used*/
 1.13245 +		TMeasurementCmd	iMeasurementCmdStatus;
 1.13246 +		};
 1.13247 +   	/**
 1.13248 +	A typedef'd packaged TMeasurementControlV7 for passing through a
 1.13249 +	generic API method.
 1.13250 +
 1.13251 +	@internalAll
 1.13252 +	*/
 1.13253 +	typedef TPckg<TMeasurementControlV7> TMeasurementControlV7Pckg;
 1.13254 +	
 1.13255 +	//**************************************//
 1.13256 +	// Measurement Report Data structures	//
 1.13257 +	//**************************************//
 1.13258 +
 1.13259 +	
 1.13260 +	/**
 1.13261 +	This enum contains the indicators thta specify which 
 1.13262 +	union members of TMeasurementQuantityV1 are included
 1.13263 +	*/
 1.13264 +	enum TMeasQnty
 1.13265 +		{
 1.13266 +		/**Measurement Quantity unknown*/
 1.13267 +		EMeasQntyUnknown,
 1.13268 +		/**Indicates that CpichEcN0 is present*/
 1.13269 +		EMeasQntyCpichEcN0Present,
 1.13270 +		/**Indicates that CpichRscp is present*/
 1.13271 +		EMeasQntyCpichRscpPresent,
 1.13272 +		/**Indicates that path loss is present*/
 1.13273 +		EMeasQntyPathLossPresent,
 1.13274 +		};
 1.13275 +
 1.13276 +	/**
 1.13277 +	This enum contains the indicators that specify which 
 1.13278 +	union members of TPosEstimateRefTime and  TPositionEstimateV1 are included
 1.13279 +	*/
 1.13280 +	enum TPosEstimateInfo
 1.13281 +		{
 1.13282 +		/**Position Estimate Info Unknown*/
 1.13283 +		EPosEstimateInfoUnknown,
 1.13284 +		/**
 1.13285 +		NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPosEstimateRefTime
 1.13286 +		Indicates that UE positioning estimate reference time is populated
 1.13287 +		*/
 1.13288 +		EUtranGpsRefTimeResultPresent,
 1.13289 +		/**Indicates that GPS reference time is populated*/
 1.13290 +		EGpsRefTimeOnlyPresent,
 1.13291 +		/**Indicates that cell timing is populated*/
 1.13292 +		ECellTimingPresent,
 1.13293 +		/**
 1.13294 +		NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPositionEstimateV1.
 1.13295 +		Indicates EllipsoidPoint is populated
 1.13296 +		*/
 1.13297 +		EEllipsoidPointPresent,
 1.13298 +		/**Indicates EllipsoidPoint with uncertainty circle is populated*/
 1.13299 +		EEllipsoidPointUncertCirclePresent,
 1.13300 +		/**Indicates EllipsoidPoint with uncertainty ellipse is populated*/
 1.13301 +		EEllipsoidPointUncertEllipsePresent,
 1.13302 +		/**Indicates EllipsoidPoint with altitude is populated*/
 1.13303 +		EEllipsoidPointAltitudePresent,
 1.13304 +		/**Indicates EllipsoidPoint with altitude and ellipse is populated*/
 1.13305 +		EEllipsoidPointAltEllipsePresent,
 1.13306 +		};
 1.13307 +
 1.13308 +	/**This enum contains the possible types of velocity estimates*/
 1.13309 +	enum TVelEstimate
 1.13310 +		{
 1.13311 +		/**Velocity Estimate Unknown*/
 1.13312 +		EVelEstimateUnknown,
 1.13313 +		/**Velocity Estimate is not present*/
 1.13314 +		EVelEstimateNotPresent,
 1.13315 +		/**Horizontal velocity is included*/
 1.13316 +		EHorzVelPresent,
 1.13317 +		/**Horizontal and vertical velocity is included*/
 1.13318 +		EHorzWithVertVelPresent,
 1.13319 +		/**Horizontal velocity with uncertainty is included*/
 1.13320 +		EHorzVelWithUncertPresent,
 1.13321 +		/**Horizontal and vertical velocity with uncertainty is included*/
 1.13322 +		EHorzWithVertVelAndUncertPresent,
 1.13323 +		};
 1.13324 +
 1.13325 +	/**This contains the measurement quantities of the UE*/
 1.13326 +	union TMeasurementQuantityV1
 1.13327 +		{
 1.13328 +	public:
 1.13329 +		/**
 1.13330 +		@see 3GPP TS 25.133.
 1.13331 +		@see 3GPP TS 25.123.
 1.13332 +		*/
 1.13333 +		TUint8	iCpichEcN0;
 1.13334 +		/**
 1.13335 +		@see 3GPP TS 25.133.
 1.13336 +		@see 3GPP TS 25.123.
 1.13337 +		*/
 1.13338 +		TUint8	iCpichRscp;
 1.13339 +		/**Measurement path loss in dB.*/
 1.13340 +		TUint8	iPathLoss;
 1.13341 +		/**Extra for future use*/
 1.13342 +		TBool	iSpare;
 1.13343 +		};
 1.13344 +
 1.13345 +	/**This class contains the current cell informations in TDD mode*/
 1.13346 +	class TTddV1
 1.13347 +		{
 1.13348 +	public:
 1.13349 +		/**
 1.13350 +		Time slot Interference on Signal Code Power
 1.13351 +		@see 3GPP TS 25.123
 1.13352 +		*/
 1.13353 +		TUint8	iTimeSlotIscp;
 1.13354 +		/**Primary Common Control Physical CHannel received signal code power*/
 1.13355 +		TUint8	iPrimaryCcpchRscp;
 1.13356 +		};
 1.13357 +
 1.13358 +	/**This class contains the information in FDD mode*/
 1.13359 +	class TFddV1
 1.13360 +		{
 1.13361 +	public:
 1.13362 +		/**Holds the measurement quantities of the UE*/
 1.13363 +		TMeasurementQuantityV1	iMeasurementQuantity;
 1.13364 +		/**Holds the field that would be populated in iMeasurementQuantity*/
 1.13365 +		TMeasQnty	iMeasQntyStatus;
 1.13366 +		};
 1.13367 +
 1.13368 +	/**This contains the current cell information in specific modes - FDD/TDD*/
 1.13369 +	union TCurrentCellV1 
 1.13370 +		{
 1.13371 +		/**Current cell information in FDD mode*/
 1.13372 +		TFddV1	iFdd;
 1.13373 +		/**Current cell information in TDD mode*/
 1.13374 +		TTddV1	iTdd;
 1.13375 +		};
 1.13376 +
 1.13377 +	/**This contains the type of sfn-sfn observed time difference*/
 1.13378 +	union TSfnSfnObsTimeDifferenceV1
 1.13379 +		{
 1.13380 +		/**Sfn-Sfn observed time difference -type1*/
 1.13381 +		TUint16	iSfnSfnObsTimeDiff1;
 1.13382 +		/**Sfn-Sfn observed time difference -type2*/
 1.13383 +		TUint16	iSfnSfnObsTimeDiff2;
 1.13384 +		};
 1.13385 +
 1.13386 +	/**This class contains the FDD mode information of monitored cells*/
 1.13387 +	class TMonitoredCellFddV1
 1.13388 +		{
 1.13389 +	public:
 1.13390 +		/**Primary Common Control Physical CHannel information*/
 1.13391 +		TUint16		iPrimaryCpichInfo;
 1.13392 +		/**Holds the measurement quantities of the UE*/
 1.13393 +		TMeasurementQuantityV1 iMeasurementQuantity;
 1.13394 +		/**Holds the field that would be populated in iMeasurementQuantity*/
 1.13395 +		TMeasQnty	iMeasQntyStatus;
 1.13396 +		};
 1.13397 +
 1.13398 +	/**This class contains the TDD mode information of monitored cells*/
 1.13399 +	class TMonitoredCellTddV1
 1.13400 +		{
 1.13401 +	public:
 1.13402 +		/**Cell identification*/
 1.13403 +		TUint8	iCellParametersID;
 1.13404 +		/**Primary Common Control Physical CHannel received signal code power*/
 1.13405 +		TUint8	iPrimaryCcpchRscp;
 1.13406 +		};
 1.13407 +
 1.13408 +	/**This contains the monitored cells information in specific mode -  FDD/TDD*/
 1.13409 +	union TMonitoredCellModeSpecificInfoV1
 1.13410 +		{
 1.13411 +		/**Monitored Cell information in FDD mode*/
 1.13412 +		TMonitoredCellFddV1	iMonitoredCellFdd;
 1.13413 +		/**Monitored Cell information in TDD mode*/
 1.13414 +		TMonitoredCellTddV1	iMonitoredCellTdd;
 1.13415 +		};
 1.13416 +
 1.13417 +	/**This class contains the measured results for monitored cells on Random Access Channel*/
 1.13418 +	class TMonitoredCellRachResultV1
 1.13419 +		{
 1.13420 +	public:
 1.13421 +		/**Holds the sfn-sfn observed time difference*/
 1.13422 +		TSfnSfnObsTimeDifferenceV1 iSfnSfnObsTimeDiff;
 1.13423 +		/**Holds the monitored cells specific info mode - FDD/TDD*/
 1.13424 +		TMonitoredCellModeSpecificInfoV1 iMonitoredCellModeSpecificInfo;
 1.13425 +		/**ETrue indicates iMonitoredCellModeSpecificInfo is iMonitoredCellFdd.
 1.13426 +		EFalse indicates iMonitoredCellModeSpecificInfo is iMonitoredCellTdd*/
 1.13427 +		TBool	iSfnSfnObsTimeDiffStatus;
 1.13428 +		};
 1.13429 +	/**
 1.13430 +	Horizontal velocity is characterised by the horizontal speed and bearing. 
 1.13431 +	The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. 
 1.13432 +	The bearing provides the direction of the horizontal component of velocity taken clockwise from North.
 1.13433 +	@see 3GPP TS 23.032
 1.13434 +	*/
 1.13435 +	class THorzVelocityV1
 1.13436 +		{
 1.13437 +	public:
 1.13438 +		/**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
 1.13439 +		TUint16		iBearing;
 1.13440 +		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
 1.13441 +		TUint16		iHorzSpeed;
 1.13442 +		};
 1.13443 +
 1.13444 +	/**This enum holds vertical speed direction*/
 1.13445 +	enum TVertSpeedDirection
 1.13446 +		{
 1.13447 +		/**Speed direction unknown*/
 1.13448 +		ESpeedDirectionUnknown,
 1.13449 +		/**Upward direction*/
 1.13450 +		EUpward,
 1.13451 +		/**Downward direction*/
 1.13452 +		EDownward
 1.13453 +		};
 1.13454 +
 1.13455 +	/**
 1.13456 +	Horizontal velocity is characterised by the horizontal speed and bearing. 
 1.13457 +	The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE. 
 1.13458 +	The vertical speed and direction provides the component of velocity of a UE in a vertical direction.
 1.13459 +	The bearing provides the direction of the horizontal component of velocity taken clockwise from North.
 1.13460 +	@see 3GPP TS 23.032
 1.13461 +	*/
 1.13462 +	class THorzWithVertVelocityV1
 1.13463 +		{
 1.13464 +	public:
 1.13465 +		/**Direction of vertical speed*/
 1.13466 +		TVertSpeedDirection	iVertSpeedDirection;
 1.13467 +		/**The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
 1.13468 +		TUint16		iBearing;
 1.13469 +		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
 1.13470 +		TUint16		iHorzSpeed;
 1.13471 +		/**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/
 1.13472 +		TUint8		iVertSpeed;
 1.13473 +		};
 1.13474 +
 1.13475 +	/**
 1.13476 +	Horizontal velocity with uncertainty is characterised by a horizontal speed and bearing,
 1.13477 +	giving a horizontal velocity vector V, and an uncertainty speed s.
 1.13478 +	@see 3GPP TS 23.032
 1.13479 +	*/
 1.13480 +	class THorzVelocityWithUncertaintyV1
 1.13481 +		{
 1.13482 +	public:
 1.13483 +		/**	The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.*/
 1.13484 +		TUint16		iBearing;
 1.13485 +		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
 1.13486 +		TUint16		iHorzSpeed;
 1.13487 +		/**
 1.13488 +		Horizontal speed uncertainty.
 1.13489 +		*/
 1.13490 +		TUint8		iHorzSpeedUncertainty;
 1.13491 +		};
 1.13492 +
 1.13493 +	/**
 1.13494 +	Horizontal and vertical velocity with uncertainty is characterised by a horizontal speed and bearing, 
 1.13495 +	giving a horizontal velocity vector Vx,y, a vertical speed and direction giving a vertical velocity component Vz,
 1.13496 +	and uncertainty speeds s1 and s2. 
 1.13497 +	@see 3GPP TS 23.032
 1.13498 +	*/
 1.13499 +	class THorzWithVertVelocityAndUncertaintyV1
 1.13500 +		{	
 1.13501 +	public:
 1.13502 +		/**
 1.13503 +		The direction of movement is given in degrees where '0' represents North, '90' represents East, etc.
 1.13504 +		*/
 1.13505 +		TUint16		iBearing;
 1.13506 +		/**The horizontal speed gives the magnitude of the horizontal component of the velocity of a UE*/
 1.13507 +		TUint16		iHorzSpeed;
 1.13508 +		/**The vertical speed and direction provides the component of velocity of a UE in a vertical direction.*/
 1.13509 +		TUint8		iVertSpeed;
 1.13510 +		/**Horizontal speed uncertainty.*/
 1.13511 +		TUint8		iHorzSpeedUncertainty;
 1.13512 +		};
 1.13513 +
 1.13514 +	/**
 1.13515 +	This class contains the possible ways of velocity estimates
 1.13516 +	@see 3GPP TS 23.032
 1.13517 +	*/
 1.13518 +	union TVelocityEstimateV1
 1.13519 +		{
 1.13520 +		/**Horizontal velocity*/
 1.13521 +		THorzVelocityV1					iHorzVelocity;
 1.13522 +		/**Horizontal velockity and vertical velocity*/
 1.13523 +		THorzWithVertVelocityV1			iHorzWithVertVelocity;
 1.13524 +		/**Horizontal velocity with uncertainty*/
 1.13525 +		THorzVelocityWithUncertaintyV1	iHorzVelocityWithUncertainty;
 1.13526 +		/**Horizontal and vertical velocity with uncertainty*/
 1.13527 +		THorzWithVertVelocityAndUncertaintyV1	iHorzWithVertVelocityAndUncertainty;
 1.13528 +		};
 1.13529 +
 1.13530 +	/**This class contains the measured results on Random Access Channel*/
 1.13531 +	class TMeasuredResultsOnRachV1
 1.13532 +		{
 1.13533 +	public:
 1.13534 +		/**Current cell information*/
 1.13535 +		TCurrentCellV1	iCurrentCell;
 1.13536 +		/**Monitored Cell information*/
 1.13537 +		TMonitoredCellRachResultV1	iMonitoredCellsRachList[KMaxMonitoredCells];
 1.13538 +		/**ETrue indicates iCurrentCell is iFdd.
 1.13539 +		EFalse indicates iCurrentCell is iTdd*/
 1.13540 +		TBool	iCurrentCellStatus;
 1.13541 +		};
 1.13542 +
 1.13543 +	/**
 1.13544 +	Identifies the channel in combination with the Midamble shift and slot number.
 1.13545 +	It is not used in 1.28 Mcps TDD and may be set to either value and should be ignored by the receiver.
 1.13546 +	*/
 1.13547 +	enum TBurstType
 1.13548 +		{
 1.13549 +		/**Burst type 1*/
 1.13550 +		EType1,
 1.13551 +		/**Burst type 2*/
 1.13552 +		EType2
 1.13553 +		};
 1.13554 +
 1.13555 +	/**This class contains UE positioning estimates specific to TDD*/
 1.13556 +	class TPosEstimateTddV1
 1.13557 +		{
 1.13558 +	public:
 1.13559 +		/**Identifies the channel in combination with the Midamble shift and slot number.*/
 1.13560 +		TBurstType	iBurstType;
 1.13561 +		/**Midamble shift*/
 1.13562 +		TUint8	iMidambleShift;
 1.13563 +		/**
 1.13564 +		This member data is present only if no IPDL scheme is configured in the reference cell.
 1.13565 +		Otherwise the slot is defined by the IPDL configuration.
 1.13566 +		*/
 1.13567 +		TUint8	iTimeSlotNumber;
 1.13568 +		/**
 1.13569 +		Cell identification
 1.13570 +		*/
 1.13571 +		TUint8	iCellParametersID;
 1.13572 +		};
 1.13573 +
 1.13574 +	/**This class contains UE positioning estimates specific to FDD/TDD*/
 1.13575 +	union TPosEstimateModeSpecificInfoV1
 1.13576 +		{
 1.13577 +		/**Identifies the reference cell for the GPS TOW-SFN relationship.*/
 1.13578 +		TUint16		iPrimaryCpichInfo;
 1.13579 +		/**Holds the cell and channel identification*/
 1.13580 +		TPosEstimateTddV1	iCellAndChannelID;
 1.13581 +		};
 1.13582 +
 1.13583 +	/**This class contains the cell timing information*/
 1.13584 +	class TCellTimingV1
 1.13585 +		{
 1.13586 +	public:
 1.13587 +		/**
 1.13588 +		SFN during which the position was calculated.
 1.13589 +		*/
 1.13590 +		TUint16		iSfn;
 1.13591 +		/**Holds the UE positioning estimates specific to mode - FDD or TDD*/
 1.13592 +		TPosEstimateModeSpecificInfoV1	iPosEstimateModeSpecificInfo;
 1.13593 +		/**ETrue indicates iPosEstimateModeSpecificInfo is iPrimaryCpichInfo.
 1.13594 +		EFalse indicates iPosEstimateModeSpecificInfo is iCellAndChannelID.*/
 1.13595 +		TBool	iPosEstimateModeStatus;
 1.13596 +		};
 1.13597 +
 1.13598 +	/**This class captures the GPS measurement specific to FDD or TDD*/
 1.13599 +	union TGpsMeasModeSpecificInfoV1
 1.13600 +		{
 1.13601 +		/**Frequency Division Duplex identification*/
 1.13602 +		TUint16	iFddRefID;
 1.13603 +		/**Time Division Duplex identification*/
 1.13604 +		TUint8	iTddRefID;
 1.13605 +		};
 1.13606 +
 1.13607 +	/**This class contains results of the GPS reference time*/
 1.13608 +	class TUtranGpsRefTimeResultV1
 1.13609 +		{
 1.13610 +	public:
 1.13611 +		/**UE-GPS timing of cell ms-part*/
 1.13612 +		TUint16		iMsPart;
 1.13613 +		/**UE-GPS timing of cell ls-part*/
 1.13614 +		TUint16		iLsPart;
 1.13615 +		/**Holds the GPS measurement specific to FDD or TDD*/
 1.13616 +		TGpsMeasModeSpecificInfoV1	iGpsMeasModeSpecificInfo;
 1.13617 +		/**Cell System Frame Number*/
 1.13618 +		TUint16		iSfn;
 1.13619 +		/**ETrue indicates iGpsMeasModeSpecificInfo is iFddRefID. 
 1.13620 +		 EFalse indicates iGpsMeasModeSpecificInfo is iTddRefID*/
 1.13621 +		TBool	iGpsMeasModeStatus;
 1.13622 +		};
 1.13623 +
 1.13624 +	/**This union contains the UE positioning reference time*/
 1.13625 +	union TPosReferenceTimeV1
 1.13626 +		{
 1.13627 +		/**Contains the results of GPS reference time*/
 1.13628 +		TUtranGpsRefTimeResultV1	iUtranGpsRefTimeResult;
 1.13629 +		/**Contains the GPS reference time*/
 1.13630 +		TUint16		iGpsRefTimeOnly;
 1.13631 +		};
 1.13632 +	
 1.13633 +	/**
 1.13634 +	This class contains the information of ellipsoid.
 1.13635 +	It consists of a latitude and a longitude.
 1.13636 +	@see 3GPP TS 23.032
 1.13637 +	*/
 1.13638 +	class TEllipsoidPointV1
 1.13639 +		{
 1.13640 +	public:
 1.13641 +		/**Specifies the sign - North/South*/
 1.13642 +		TLatitudeSign	iLatitudeSign;
 1.13643 +		/**
 1.13644 +		A north/south angular measurement of position relative to the equator, 
 1.13645 +		in the meridian plane which contains the earth's rotation axis
 1.13646 +		*/
 1.13647 +		TUint16	iLatitude;
 1.13648 +		/**
 1.13649 +		An east/west angular measurement of position in relation to the Prime Meridian. 
 1.13650 +		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
 1.13651 +		and the other a meridian passing through the point of interest.
 1.13652 +		*/
 1.13653 +		TInt16	iLongitude;
 1.13654 +		};
 1.13655 +
 1.13656 +	/**
 1.13657 +	It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r
 1.13658 +	@see 3GPP TS 23.032
 1.13659 +	*/
 1.13660 +	class TEllipsoidPointUncertCircleV1
 1.13661 +		{
 1.13662 +	public:
 1.13663 +		/**Specifies the sign - North/South*/
 1.13664 +		TLatitudeSign	iLatitudeSign;
 1.13665 +		/**
 1.13666 +		A north/south angular measurement of position relative to the equator, 
 1.13667 +		in the meridian plane which contains the earth's rotation axis
 1.13668 +		*/
 1.13669 +		TUint16	iLatitude;
 1.13670 +		/**
 1.13671 +		An east/west angular measurement of position in relation to the Prime Meridian. 
 1.13672 +		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
 1.13673 +		and the other a meridian passing through the point of interest.
 1.13674 +		*/
 1.13675 +		TInt16	iLongitude;
 1.13676 +		/**Uncertainty code*/
 1.13677 +		TUint8	iUncertaintyCode;
 1.13678 +		};
 1.13679 +
 1.13680 +	/**
 1.13681 +	It is characterised by the co-ordinates of an ellipsoid point (the origin), 
 1.13682 +	distances r1 and r2 and an angle of orientation A
 1.13683 +	@see 3GPP TS 23.032
 1.13684 +	*/
 1.13685 +	class TEllipsoidPointUncertEllipseV1
 1.13686 +		{
 1.13687 +	public:
 1.13688 +		/**Specifies the sign - North/South*/
 1.13689 +		TLatitudeSign	iLatitudeSign;
 1.13690 +		/**
 1.13691 +		A north/south angular measurement of position relative to the equator, 
 1.13692 +		in the meridian plane which contains the earth's rotation axis
 1.13693 +		*/
 1.13694 +		TUint16	iLatitude;
 1.13695 +		/**
 1.13696 +		An east/west angular measurement of position in relation to the Prime Meridian. 
 1.13697 +		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
 1.13698 +		and the other a meridian passing through the point of interest.
 1.13699 +		*/
 1.13700 +		TInt16	iLongitude;
 1.13701 +		/**Uncertainty semi major axis*/
 1.13702 +		TUint8	iUncertaintySemiMajor;
 1.13703 +		/**Uncertainty semi minor axis*/
 1.13704 +		TUint8	iUncertaintySemiMinor;
 1.13705 +		/**Orientation of major axis*/
 1.13706 +		TUint8	iOrientationMajorAxis;
 1.13707 +		/**The confidence by which the position of a target entity is known to be within the shape description*/
 1.13708 +		TUint8	iConfidence;
 1.13709 +		};
 1.13710 +
 1.13711 +	/**
 1.13712 +	The description of an ellipsoid point with altitude is that of a point at a specified distance 
 1.13713 +	above or below a point on the earth's surface. This is defined by an ellipsoid point 
 1.13714 +	with the given longitude and latitude and the altitude above or below the ellipsoid point.
 1.13715 +	@see 3GPP TS 23.032
 1.13716 +	*/
 1.13717 +	class TEllipsoidPointAltitudeV1
 1.13718 +		{
 1.13719 +	public:
 1.13720 +		/**Specifies the sign - North/South*/
 1.13721 +		TLatitudeSign	iLatitudeSign;
 1.13722 +		/**
 1.13723 +		A north/south angular measurement of position relative to the equator, 
 1.13724 +		in the meridian plane which contains the earth's rotation axis
 1.13725 +		*/
 1.13726 +		TUint16	iLatitude;
 1.13727 +		/**
 1.13728 +		An east/west angular measurement of position in relation to the Prime Meridian. 
 1.13729 +		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
 1.13730 +		and the other a meridian passing through the point of interest.
 1.13731 +		*/
 1.13732 +		TInt16	iLongitude;
 1.13733 +		/**Direction of altitude*/
 1.13734 +		TAltDirection	iAltDirection;
 1.13735 +		/**Degree of altitude*/
 1.13736 +		TUint16	iAltitude;
 1.13737 +		};
 1.13738 +	
 1.13739 +	/**
 1.13740 +	characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"),
 1.13741 +	r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A 
 1.13742 +	(the "angle of the major axis")
 1.13743 +	@see 3GPP TS 23.032
 1.13744 +	*/
 1.13745 +	class TEllipsoidPointAltitudeEllipseV1
 1.13746 +		{
 1.13747 +	public:
 1.13748 +		/**Specifies the sign - North/South*/
 1.13749 +		TLatitudeSign	iLatitudeSign;
 1.13750 +		/**
 1.13751 +		A north/south angular measurement of position relative to the equator, 
 1.13752 +		in the meridian plane which contains the earth's rotation axis
 1.13753 +		*/
 1.13754 +		TUint16	iLatitude;
 1.13755 +		/**
 1.13756 +		An east/west angular measurement of position in relation to the Prime Meridian. 
 1.13757 +		The angle between the two great circles, one being the Prime (or Greenwich) Meridian 
 1.13758 +		and the other a meridian passing through the point of interest.
 1.13759 +		*/
 1.13760 +		TInt16	iLongitude;
 1.13761 +		/**Direction of altitude*/
 1.13762 +		TAltDirection	iAltDirection;
 1.13763 +		/**Degree of latitude*/
 1.13764 +		TUint16	iAltitude;
 1.13765 +		/**Uncertainty semi major axis*/
 1.13766 +		TUint8	iUncertaintySemiMajor;
 1.13767 +		/**Uncertainty semi minor axis*/
 1.13768 +		TUint8	iUncertaintySemiMinor;
 1.13769 +		/**Orientation of major axis*/
 1.13770 +		TUint8	iOrientationMajorAxis;
 1.13771 +		/**The confidence by which the position of a target entity is known to be within the shape description*/
 1.13772 +		TUint8	iConfidence;
 1.13773 +		};
 1.13774 +
 1.13775 +	/**This union holds the possible forms of position estimate of the UE that can be captured.*/
 1.13776 +	union TPositionEstimateV1
 1.13777 +		{
 1.13778 +		/**
 1.13779 +		The description of an ellipsoid point is that of a point
 1.13780 +		on the surface of the ellipsoid, and consists of a latitude and a longitude.
 1.13781 +		@see 3GPP TS 23.032
 1.13782 +		*/
 1.13783 +		TEllipsoidPointV1					iEllipsoidPoint;
 1.13784 +		/**
 1.13785 +		It is characterised by the co-ordinates of an ellipsoid point (the origin) and a distance r
 1.13786 +		@see 3GPP TS 23.032
 1.13787 +		*/
 1.13788 +		TEllipsoidPointUncertCircleV1		iEllipsoidPointUncertCircle;
 1.13789 +		/**
 1.13790 +		It is characterised by the co-ordinates of an ellipsoid point (the origin), 
 1.13791 +		distances r1 and r2 and an angle of orientation A
 1.13792 +		@see 3GPP TS 23.032
 1.13793 +		*/
 1.13794 +		TEllipsoidPointUncertEllipseV1		iEllipsoidPointUncertEllipse;
 1.13795 +		/**
 1.13796 +		The description of an ellipsoid point with altitude is that of a point at a specified distance 
 1.13797 +		above or below a point on the earth's surface. This is defined by an ellipsoid point 
 1.13798 +		with the given longitude and latitude and the altitude above or below the ellipsoid point.
 1.13799 +		@see 3GPP TS 23.032
 1.13800 +		*/
 1.13801 +		TEllipsoidPointAltitudeV1			iEllipsoidPointAltitude;
 1.13802 +		/**
 1.13803 +		characterised by the co-ordinates of an ellipsoid point with altitude, distances r1 (the "semi-major uncertainty"),
 1.13804 +		r2 (the "semi-minor uncertainty") and r3 (the "vertical uncertainty") and an angle of orientation A 
 1.13805 +		(the "angle of the major axis")
 1.13806 +		@see 3GPP TS 23.032
 1.13807 +		*/
 1.13808 +		TEllipsoidPointAltitudeEllipseV1	iEllipsoidPointAltitudeEllipsoide;
 1.13809 +		};
 1.13810 +
 1.13811 +	/**This contains the positioning estimate reference time*/
 1.13812 +	union TPosEstimateRefTime
 1.13813 +		{
 1.13814 +		/**Contains results of the GPS reference time*/
 1.13815 +		TUtranGpsRefTimeResultV1	iUtranGpsRefTimeResult;
 1.13816 +		/**Contains the GPS reference time */
 1.13817 +		TUint16		iGpsRefTimeOnly;
 1.13818 +		/**Contains the cell timing*/
 1.13819 +		TCellTimingV1	iCellTiming;
 1.13820 +		};
 1.13821 +
 1.13822 +	/**
 1.13823 +	Provides the position estimate from the UE to the network, 
 1.13824 +	if the UE is capable of determining its own position.
 1.13825 +	*/
 1.13826 +	class TUePosPositionEstimateInfoV1
 1.13827 +		{
 1.13828 +	public:
 1.13829 +		/**UE positioning estimate reference time*/
 1.13830 +		TPosEstimateRefTime	iPosEstimateRefTime;
 1.13831 +		/**Holds the UE's position estimate
 1.13832 +		@see TPositionEstimateV1
 1.13833 +		*/
 1.13834 +		TPositionEstimateV1	iPostionEstimate;
 1.13835 +		/**Holds the field that would be populated in iPosEstimateRefTime*/
 1.13836 +		TPosEstimateInfo	iPosEstimateRefTimeStatus;
 1.13837 +		/**Holds the field that would be populated in iPosEstimate*/
 1.13838 +		TPosEstimateInfo	iPosEstimateStatus;
 1.13839 +		};
 1.13840 +	
 1.13841 +	/**This enum contains the multipath indicators*/
 1.13842 +	enum TMultipathIndicator
 1.13843 +		{
 1.13844 +		/**
 1.13845 +		Multipath indicator unknown
 1.13846 +		This is an invalid indicator. 
 1.13847 +		*/
 1.13848 +		EMPUnknown,
 1.13849 +		/**Not measured*/
 1.13850 +		ENm,
 1.13851 +		/**MP error < 5m*/
 1.13852 +		ELow,
 1.13853 +		/**5m < MP error < 43m*/
 1.13854 +		EMedium,
 1.13855 +		/**MP error > 43m*/
 1.13856 +		EHigh
 1.13857 +		};
 1.13858 +
 1.13859 +	/**This class contains the GPS measurement parameters of the UE*/
 1.13860 +	class TGpsMeasMeasurementParamV1
 1.13861 +		{
 1.13862 +	public:
 1.13863 +		/**Satellite Identification*/
 1.13864 +		TUint8		iSatID;
 1.13865 +		/**
 1.13866 +		The estimate of the carrier-to-noise ratio of the received signal from the particular 
 1.13867 +		satellite used in the measurement. It is given in units of dB-Hz (typical levels will 
 1.13868 +		be in the range of 20 - 50 dB-Hz).
 1.13869 +		*/
 1.13870 +		TUint8		iCN0;
 1.13871 +		/**
 1.13872 +		It is the instantaneous frequency difference between the receiver's internal oscillator 
 1.13873 +		and the received carrier from the satellite. Hz, scale factor 0.2.
 1.13874 +		*/
 1.13875 +		TInt16		iDoppler;
 1.13876 +		/**
 1.13877 +		Unit in GPS chips.
 1.13878 +		Whole value of the UE GPS code-phase measurement, where increasing binary values of the field 
 1.13879 +		signify increasing measured pseudoranges.
 1.13880 +		*/
 1.13881 +		TUint16		iWholeGpsChips;
 1.13882 +		/**
 1.13883 +		The UE GPS code-phase measurement is divided into the fields "Whole GPS Chips" and "Fractional GPS Chips".
 1.13884 +		Scale factor 2-10 Fractional value of the UE GPS code-phase measurement.
 1.13885 +		*/
 1.13886 +		TUint16		iFractionalGpsChips;
 1.13887 +		/**
 1.13888 +		Contains the possible multipath indicators. Multipath error is usually caused by one path being bounced or 
 1.13889 +		reflected. The impact on a pseudo-range measurement may be up to a few metres. In the case of carrier phase,
 1.13890 +		this is of the order of a few centimetres.
 1.13891 +		*/
 1.13892 +		TMultipathIndicator	iMultipathIndicator;
 1.13893 +		/**
 1.13894 +		A distance measurement based on the correlation of a satellite's transmitted code (may be the C/A-Code or 
 1.13895 +		the encrypted P-Code) and the local receiver's reference code (for that PRN satellite number), 
 1.13896 +		that has not been corrected for errors in synchronisation between the transmitter's clock and the receiver's clock.
 1.13897 +		Hence a pseudo-range measurement is a time-error biased distance measurement.
 1.13898 +		*/
 1.13899 +		TUint8		iPseudorangeRmsError;
 1.13900 +		};
 1.13901 +
 1.13902 +	/**This class contains the GPS measurement parameters and the positioning reference time*/
 1.13903 +	class TUePosGpsMeasurementResultsV1
 1.13904 +		{
 1.13905 +	public:
 1.13906 +		/**UE positioning reference time*/
 1.13907 +		TPosReferenceTimeV1	iPosGpsMeasRefTime;
 1.13908 +		/**Holds the GPS measurement parameters from all the active satellites*/
 1.13909 +		TGpsMeasMeasurementParamV1	iGpsMeasurementParamList[KMaxSat];
 1.13910 +		/**ETrue indicates TPosReferenceTimeV1::iUtranGpsRefTimeResult is populated. 
 1.13911 +		 EFalse indicates TPosReferenceTimeV1::iGpsRefTimeOnly is populated*/
 1.13912 +		TBool	iPosGpsMeasRefTimeStatus;
 1.13913 +		};
 1.13914 +
 1.13915 +	/**
 1.13916 +	This enum lists all the possible errors that UE can report to the network
 1.13917 +	*/
 1.13918 +	enum TPosErrorCause
 1.13919 +		{
 1.13920 +		/**
 1.13921 +		Error Cause Unknown. This is an invalid error cause and is set if the UE does not set with 
 1.13922 +		any of the underlying valid error causes
 1.13923 +		*/
 1.13924 +		EErrorCauseUnknown,
 1.13925 +		/**Indicates that enought number of GPS satellites are healthy and active.*/
 1.13926 +		ENotEnoughGpsSatellites,
 1.13927 +		/**Assistance data required to compute location of the UE is missing in the measurement control.
 1.13928 +		If the Additional data request flag is true in the measurement control only then additional assistance
 1.13929 +		data can be requested otherwise measurements need to be done using the existing assistance data
 1.13930 +		@see TGpsAddlAssistDataReqV1
 1.13931 +		@see TUePosReportingQuantityV1
 1.13932 +		 */
 1.13933 +		EAssistanceDataMissing,
 1.13934 +		/**
 1.13935 +		Cell Frames Timings are not accomplished
 1.13936 +		*/
 1.13937 +		ENotAccomplishedGpsTimingOfCellFrames,
 1.13938 +		/**
 1.13939 +		UE can set this error in case other than the above mentioned is encountered 
 1.13940 +		*/
 1.13941 +		EUndefinedError,
 1.13942 +		/**
 1.13943 +		UE denies Location information
 1.13944 +		*/
 1.13945 +		ERequestDeniedByUser,
 1.13946 +		};
 1.13947 +
 1.13948 +	/**
 1.13949 +	This class contains the positioning errors that might have encountered during 
 1.13950 +	measurement of location of the UE.
 1.13951 +	*/
 1.13952 +	class TUePosError
 1.13953 +		{
 1.13954 +	public:
 1.13955 +		/**Indicates the error cause encountered while computing GPS Assistance data*/
 1.13956 +		TPosErrorCause		iPosErrorCause;
 1.13957 +		/**If error cause is "Assistance Data Missing" and iAddlAssistanceDataReq is set to ETrue then
 1.13958 +		then this member shall indicate what additional assistance data is needed.
 1.13959 +		If iAddlAssistanceDataReq is set to EFalse then existing assistance data is used to compute location
 1.13960 +		information of the UE.
 1.13961 +		@see TUePosReportingQuantityV1::iAddlAssistanceDataReq*/
 1.13962 +		TGpsAddlAssistDataReqV1	iGpsAddlAssistDataReq;
 1.13963 +		};
 1.13964 +
 1.13965 +	/**
 1.13966 +	This class contains the measurement results computed by the UE.
 1.13967 +	*/
 1.13968 +	class TUePosMeasuredResultsV1
 1.13969 +		{
 1.13970 +	public:
 1.13971 +		/**The purpose of this is to provide the position estimate from the UE to the network, 
 1.13972 +		if the UE is capable of determining its own position.*/
 1.13973 +		TUePosPositionEstimateInfoV1	iUePosPositionEstimateInfo;
 1.13974 +		/**Contains the GPS measurement parameters and the positioning reference time*/
 1.13975 +		TUePosGpsMeasurementResultsV1	iUePosGpsMeasurement;
 1.13976 +		/**Indicates the error cause and/or additional assistance data is required*/
 1.13977 +		TUePosError						iUePosError;
 1.13978 +		/**
 1.13979 +		ETrue indicates some error has encountered. iUePosError will be populated.
 1.13980 +		EFalse indicates Gps Assistance Data is received and no error has encountered while processing.
 1.13981 +		Hence iUePosPositionEstimateInfo and iUePosGpsMeasurement will be populated
 1.13982 +		*/
 1.13983 +		TBool	iPosErrorStatus;
 1.13984 +		};
 1.13985 +
 1.13986 +	/**Contains the measured location information of the UE*/
 1.13987 +	union TMeasuredResultsV1
 1.13988 +		{
 1.13989 +		/**
 1.13990 +		This member either contains the measurement results or the error that might have 
 1.13991 +		encountered during measurements.
 1.13992 +		*/
 1.13993 +		TUePosMeasuredResultsV1		iTUePosMeasuredResults;
 1.13994 +		/**
 1.13995 +		A spare member for future use.
 1.13996 +		*/
 1.13997 +		TBool						iSpare;
 1.13998 +		};
 1.13999 +
 1.14000 +	/**
 1.14001 +	This class contains the measurement report expected as response to the measurement control sent by the 
 1.14002 +	network. Veloctiy estimates are included if requested in measurement control.
 1.14003 +	*/
 1.14004 +	class TMeasurementReportV7 : public RMobilePhone::TMultimodeType
 1.14005 +		{
 1.14006 +	public:
 1.14007 +		IMPORT_C TMeasurementReportV7();
 1.14008 +	public:
 1.14009 +		/**A reference number that should be used by the UTRAN when setting up, 
 1.14010 +		modifying or releasing the measurement and by the UE in the measurement report.
 1.14011 +		*/
 1.14012 +		TUint8 iMeasurementIdentity;
 1.14013 +		/**Contains the measured location information of the UE*/
 1.14014 +		TMeasuredResultsV1 iMeasuredResults;
 1.14015 +		/**Contains the measured results on Random Access Channel*/
 1.14016 +		TMeasuredResultsOnRachV1	iMeasuredResultsOnRach;
 1.14017 +		/**Contains the velocity estimates of the UE*/
 1.14018 +		TVelocityEstimateV1		iVelocityEstimate;
 1.14019 +		/**
 1.14020 +		Indicates the populated member in iVelocityEstimate if velocity estimate is computed.
 1.14021 +		Otherwise indicates that velocity estimate is not computed.
 1.14022 +		*/
 1.14023 +		TVelEstimate	iVelEstimateStatus;
 1.14024 +		};
 1.14025 +	/**
 1.14026 +	A typedef'd packaged TMeasurementReportV7 for passing through a
 1.14027 +	generic API method.
 1.14028 +
 1.14029 +	@internalAll
 1.14030 +	*/
 1.14031 +	typedef TPckg<TMeasurementReportV7> TMeasurementReportV7Pckg;
 1.14032 +	
 1.14033 +	//*********************************************//	
 1.14034 +	//  Measurement Control Failure data structure //
 1.14035 +	//*********************************************//
 1.14036 +
 1.14037 +	/**
 1.14038 +	This enum contains the list of errors that the UE can specify.
 1.14039 +	The Measurement control failure is caused only when the the UE 
 1.14040 +	cannot initiate a measurement as instructed by the network.
 1.14041 +	*/
 1.14042 +	enum TMeasurementControlFailure
 1.14043 +		{
 1.14044 +		/**
 1.14045 +		Unknown Measurement Control Failure.
 1.14046 +		This is an invalid failure state whic will be set if the UE does not set with the 
 1.14047 +		underlying valid error reasons.
 1.14048 +		*/
 1.14049 +		EControlFailureUnknown,
 1.14050 +		/**Indicates ASN1.0 encoding is incorrect*/
 1.14051 +		EAsn1ViolationOrEncoding,
 1.14052 +		/**Messsgae type specified is not existent*/
 1.14053 +		EMsgTypeNonExistent,
 1.14054 +		/**Message is not compatible*/
 1.14055 +		EMsgNotCompatibleWithReceiverState,
 1.14056 +		/**Information sent cannot be understood*/
 1.14057 +		EIeValueNotComprehend,
 1.14058 +		/**Information expected is not present*/
 1.14059 +		EInformationElementMissing,
 1.14060 +		/*Message extension cannot be understood*/
 1.14061 +		EMsgExtnNotComprehend
 1.14062 +		}; 
 1.14063 +		
 1.14064 +	/**
 1.14065 +	This enum contains the possible domains used by MOLR 
 1.14066 +	*/
 1.14067 +	enum TDomain
 1.14068 +   		{
 1.14069 +		/**Packet switch domain is the default domain that will be used by Molr*/
 1.14070 +   		EPacketSwitchedDomain,
 1.14071 +		/**UE shall set the domain to Circuit switch whenever Molr is intended to use it*/
 1.14072 +  	 	ECircuitSwitchedDomain
 1.14073 +   		};
 1.14074 +
 1.14075 +	/**
 1.14076 +	The UE Positioning Technology value, as defined in 3GPP TS 34.109 V7.2.0 Section 6.10
 1.14077 +	@publishedPartner
 1.14078 +	@released
 1.14079 +	*/
 1.14080 +	enum TUePosTechnology
 1.14081 +		{
 1.14082 +		/** A-GPS */
 1.14083 +		KUePosTechnologyAGPS = 0
 1.14084 +		};
 1.14085 +
 1.14086 +	IMPORT_C void NotifyMtlr(TRequestStatus& aReqStatus,TDes8& aNotifyMtlr);
 1.14087 +	IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrResponse aMtlrResponse);
 1.14088 +	IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrError aMtlrResponse);
 1.14089 +	IMPORT_C void SendMtlrResponse(TRequestStatus& aReqStatus,const TMtlrReject aMtlrResponse);
 1.14090 +    IMPORT_C void SendMolr(TRequestStatus& aReqStatus,const TDesC8& aStartMolr,TDes8& aMolrReturnResult);
 1.14091 +	IMPORT_C void NotifyMeasurementControl(TRequestStatus& aReqStatus,TDes8& aMeasurementControl);
 1.14092 +	IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TDesC8& aMeasurementReport);
 1.14093 +	IMPORT_C void SendMeasurementReport(TRequestStatus& aReqStatus,const TMeasurementControlFailure aMeasurementControlFailure);
 1.14094 +	IMPORT_C TInt SetLcsDomain(const TDomain aDomain);	
 1.14095 +	IMPORT_C void NotifyResetUePositioningInformation(TRequestStatus& aReqStatus, TUePosTechnology& aUePosTechnology) const;
 1.14096 +
 1.14097 +private:
 1.14098 +	void ConstructL();
 1.14099 +	void Destruct();
 1.14100 +private:
 1.14101 +	/**
 1.14102 +	Pointer Holder for the RMobileLocationServices sub-session requests.
 1.14103 +	*/
 1.14104 +	CMobileLocationServicesPtrHolder* iMmPtrHolder;
 1.14105 +	};
 1.14106 +
 1.14107 +#endif // __ETELMM_H__