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__