epoc32/include/etel3rdparty.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2009 Sony Ericsson Mobile Communications AB
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@4
     5
* under the terms of "Eclipse Public License v1.0"
williamr@2
     6
* which accompanies this distribution, and is available
williamr@4
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Sony Ericsson Mobile Communications AB - initial contribution.
williamr@2
    11
* Nokia Corporation - additional changes.
williamr@2
    12
* 
williamr@2
    13
* Contributors:
williamr@2
    14
* 
williamr@2
    15
* Description:
williamr@2
    16
* Etel3rdParty.dll interface, using CTelephony class defined here.
williamr@2
    17
* Etel 3rd Party API Header file
williamr@2
    18
* Describes the Etel 3rd Party API - classes, methods and types.
williamr@2
    19
*
williamr@2
    20
*/
williamr@2
    21
williamr@2
    22
williamr@2
    23
/**
williamr@2
    24
 @file
williamr@2
    25
*/
williamr@2
    26
williamr@2
    27
williamr@2
    28
#ifndef ETEL3RDPARTY_H__
williamr@2
    29
#define ETEL3RDPARTY_H__
williamr@2
    30
williamr@2
    31
#include <e32base.h>
williamr@2
    32
williamr@2
    33
const TInt	KTelephonyMajorVersionNumber=7; ///< Major version-number
williamr@2
    34
const TInt	KTelephonyMinorVersionNumber=0; ///< Minor version-number
williamr@2
    35
const TInt	KTelephonyBuildVersionNumber=0; ///< Build version-number
williamr@2
    36
williamr@2
    37
// Panic numbers returned to applications. 0 upwards...
williamr@2
    38
const TInt KTelephonyPanicIllegalReuse = 0;	///< Client code has attempted to re-post an asynchronous request before the original request has completed.
williamr@2
    39
williamr@2
    40
class CTelephonyFunctions;		// forward declaration
williamr@2
    41
williamr@2
    42
/**
williamr@2
    43
This class provides a simple interface to the phone's telephony
williamr@2
    44
system. It provides two services:
williamr@2
    45
williamr@2
    46
1. You can find out information about the phone. This class
williamr@2
    47
provides support for retrieving Phone Settings, Line Information, Call
williamr@2
    48
Functionality, Network Information and (basic) Supplementary Service
williamr@2
    49
Settings.
williamr@2
    50
williamr@2
    51
2. You can dial, answer and control voice calls.  You cannot make fax or data calls.
williamr@2
    52
williamr@2
    53
Architecturally, CTelephony provides an interface to the Telephony
williamr@2
    54
Multimode API.  This interface exposes only a subset of the complete
williamr@2
    55
Multimode functionality.
williamr@2
    56
williamr@2
    57
Note that a CActiveScheduler is required to be installed for all asynchronous CTelephony calls. 
williamr@2
    58
williamr@2
    59
@publishedAll
williamr@2
    60
@released
williamr@2
    61
 */
williamr@2
    62
class CTelephony : public CBase
williamr@2
    63
	{
williamr@2
    64
public:
williamr@2
    65
williamr@2
    66
//////////////////////////////////////////////////////////
williamr@2
    67
//General Functionality
williamr@2
    68
//////////////////////////////////////////////////////////
williamr@2
    69
williamr@2
    70
	/**
williamr@2
    71
	Unique parameter class identifier.
williamr@2
    72
	*/
williamr@2
    73
	enum
williamr@2
    74
		{
williamr@2
    75
		/**
williamr@2
    76
		Unique reference identifier for Etel 3rd Party v1.0 parameter classes.
williamr@2
    77
		*/
williamr@2
    78
		KEtelISVV1 = 1,
williamr@2
    79
		/**
williamr@2
    80
		Unique reference identifier for Etel 3rd Party v2.0 parameter classes.
williamr@2
    81
		*/
williamr@2
    82
		KEtelISVV2 = 2
williamr@2
    83
		};
williamr@2
    84
williamr@2
    85
	class TEtelISVType
williamr@2
    86
	/**
williamr@2
    87
	Specifies which version of an API parameter a client has used.
williamr@2
    88
 	For most ETel ISV v1.0/2.0 parameters this will equal KETelISV1.
williamr@2
    89
	*/
williamr@2
    90
		{
williamr@2
    91
	public:
williamr@2
    92
		IMPORT_C TInt VersionId() const;
williamr@2
    93
	protected:
williamr@2
    94
		TEtelISVType();
williamr@2
    95
	protected:
williamr@2
    96
		TInt iVersionId;
williamr@2
    97
		};
williamr@2
    98
williamr@2
    99
	/**
williamr@2
   100
	The maximum number of digits allowed in a multimode telephone number.
williamr@2
   101
	*/
williamr@2
   102
	enum { KMaxTelNumberSize = 100 };
williamr@2
   103
williamr@2
   104
	/**
williamr@2
   105
	Address types.
williamr@2
   106
	*/
williamr@2
   107
	enum TTelNumberTON
williamr@2
   108
		{
williamr@2
   109
		/**
williamr@2
   110
		User or the network has no knowledge of the type of number.
williamr@2
   111
	    */
williamr@2
   112
		EUnknownNumber,
williamr@2
   113
		/**
williamr@2
   114
		International number.
williamr@2
   115
	    */
williamr@2
   116
		EInternationalNumber,
williamr@2
   117
		/**
williamr@2
   118
		National number.
williamr@2
   119
	    */
williamr@2
   120
		ENationalNumber,
williamr@2
   121
		/**
williamr@2
   122
		Administration/service number specific to the serving network, e.g. used to
williamr@2
   123
		access an operator.
williamr@2
   124
	    */
williamr@2
   125
		ENetworkSpecificNumber,
williamr@2
   126
		/**
williamr@2
   127
		Subscriber number.
williamr@2
   128
	    */
williamr@2
   129
		ESubscriberNumber,
williamr@2
   130
		/**
williamr@2
   131
		Alphanumeric number.
williamr@2
   132
	    */
williamr@2
   133
		EAlphanumericNumber,
williamr@2
   134
		/**
williamr@2
   135
		Abbreviated number.
williamr@2
   136
	    */
williamr@2
   137
		EAbbreviatedNumber
williamr@2
   138
		};
williamr@2
   139
williamr@2
   140
	/**
williamr@2
   141
	Number Plan Indicator.
williamr@2
   142
	*/
williamr@2
   143
	enum TTelNumberNPI
williamr@2
   144
		{
williamr@2
   145
		/**
williamr@2
   146
		User or the network has no knowledge of the numbering plan.
williamr@2
   147
	    */
williamr@2
   148
		EUnknownNumberingPlan		= 0,
williamr@2
   149
		/**
williamr@2
   150
		ISDN/telephony numbering plan.
williamr@2
   151
	    */
williamr@2
   152
		EIsdnNumberPlan				= 1,
williamr@2
   153
		/**
williamr@2
   154
		Data numbering plan.
williamr@2
   155
	    */
williamr@2
   156
		EDataNumberPlan				= 3,
williamr@2
   157
		/**
williamr@2
   158
		Telex numbering plan.
williamr@2
   159
	    */
williamr@2
   160
		ETelexNumberPlan			= 4,
williamr@2
   161
		/**
williamr@2
   162
		Service centre specific plan used to indicate a numbering plan specific to external
williamr@2
   163
		Short Message entities attached to the SMSC.
williamr@2
   164
	    */
williamr@2
   165
		EServiceCentreSpecificPlan1	= 5,
williamr@2
   166
		/**
williamr@2
   167
		Service centre specific plan used to indicate a numbering plan specific to external
williamr@2
   168
		Short Message entities attached to the SMSC.
williamr@2
   169
	    */
williamr@2
   170
		EServiceCentreSpecificPlan2	= 6,
williamr@2
   171
		/**
williamr@2
   172
		National numbering plan.
williamr@2
   173
	    */
williamr@2
   174
		ENationalNumberPlan			= 8,
williamr@2
   175
		/**
williamr@2
   176
		Private numbering plan.
williamr@2
   177
	    */
williamr@2
   178
		EPrivateNumberPlan			= 9,
williamr@2
   179
		/**
williamr@2
   180
		ERMES numbering plan.
williamr@2
   181
	    */
williamr@2
   182
		EERMESNumberPlan			= 10
williamr@2
   183
		};
williamr@2
   184
williamr@2
   185
	/**
williamr@2
   186
	A typedef to hold the telephone number.
williamr@2
   187
	*/
williamr@2
   188
	typedef TBuf<KMaxTelNumberSize> TTelNumber;
williamr@2
   189
williamr@2
   190
	class TTelAddress
williamr@2
   191
	/**
williamr@2
   192
	Defines API abstraction of a mobile telephone number.
williamr@2
   193
	*/
williamr@2
   194
		{
williamr@2
   195
	public:
williamr@2
   196
		IMPORT_C TTelAddress();
williamr@2
   197
	public:
williamr@2
   198
		/**
williamr@2
   199
		Type of number.
williamr@2
   200
		*/
williamr@2
   201
		TTelNumberTON 				iTypeOfNumber;
williamr@2
   202
		/**
williamr@2
   203
		Number plan.
williamr@2
   204
		*/
williamr@2
   205
		TTelNumberNPI 				iNumberPlan;
williamr@2
   206
		/**
williamr@2
   207
		Telephone number.
williamr@2
   208
		*/
williamr@2
   209
		TTelNumber					iTelNumber;
williamr@2
   210
		};
williamr@2
   211
williamr@2
   212
//////////////////////////////////////////////////////////
williamr@2
   213
// Phone Functionality
williamr@2
   214
//////////////////////////////////////////////////////////
williamr@2
   215
williamr@2
   216
	/**
williamr@2
   217
	Max size of Manufacturer Id.
williamr@2
   218
	*/
williamr@2
   219
	enum { KPhoneManufacturerIdSize = 50 };
williamr@2
   220
	/**
williamr@2
   221
	Max size of Phone Model Id.
williamr@2
   222
	*/
williamr@2
   223
	enum { KPhoneModelIdSize 		= 50 };
williamr@2
   224
	/**
williamr@2
   225
	Max size ofSerial Number.
williamr@2
   226
	*/
williamr@2
   227
	enum { KPhoneSerialNumberSize 	= 50 };
williamr@2
   228
williamr@2
   229
williamr@2
   230
	class TPhoneIdV1 : public TEtelISVType
williamr@2
   231
	/**
williamr@2
   232
	Defines the mobile phone identity.
williamr@2
   233
	*/
williamr@2
   234
		{
williamr@2
   235
	public:
williamr@2
   236
		IMPORT_C TPhoneIdV1();
williamr@2
   237
	public:
williamr@2
   238
		/**
williamr@2
   239
		Phone manufacturer identification, in character string format.
williamr@2
   240
		*/
williamr@2
   241
		TBuf<KPhoneManufacturerIdSize> 	iManufacturer;
williamr@2
   242
		/**
williamr@2
   243
		Phone model identification, in character string format.
williamr@2
   244
		*/
williamr@2
   245
		TBuf<KPhoneModelIdSize> 		iModel;
williamr@2
   246
		/**
williamr@2
   247
		Phone serial number (IMEI or ESN), in character string format.
williamr@2
   248
		*/
williamr@2
   249
		TBuf<KPhoneSerialNumberSize> 	iSerialNumber;
williamr@2
   250
		};
williamr@2
   251
williamr@2
   252
	/**
williamr@2
   253
	A typedef'd packaged CTelephony::TPhoneIdV1 for passing through a generic API method
williamr@2
   254
	*/
williamr@2
   255
	typedef TPckg<TPhoneIdV1> TPhoneIdV1Pckg;
williamr@2
   256
williamr@2
   257
	/**
williamr@2
   258
	Maximum size of IMSI identifier.
williamr@2
   259
	*/
williamr@2
   260
	enum { KIMSISize = 15 };
williamr@2
   261
williamr@2
   262
	class TSubscriberIdV1 : public TEtelISVType
williamr@2
   263
	/**
williamr@2
   264
	Defines the Subscriber (IMSI) Id
williamr@2
   265
	*/
williamr@2
   266
		{
williamr@2
   267
	public:
williamr@2
   268
		IMPORT_C TSubscriberIdV1();
williamr@2
   269
	public:
williamr@2
   270
		/**
williamr@2
   271
		IMSI identifier.
williamr@2
   272
		*/
williamr@2
   273
		TBuf<KIMSISize> iSubscriberId;
williamr@2
   274
		};
williamr@2
   275
williamr@2
   276
	/**
williamr@2
   277
	A typedef'd packaged CTelephony::TSubscriberIdV1 for passing through a generic API method.
williamr@2
   278
	*/
williamr@2
   279
	typedef TPckg<TSubscriberIdV1> TSubscriberIdV1Pckg;
williamr@2
   280
williamr@2
   281
	/**
williamr@2
   282
	The flight mode status.
williamr@2
   283
	*/
williamr@2
   284
	enum TFlightModeStatus
williamr@2
   285
		{
williamr@2
   286
		/**
williamr@2
   287
		Flight mode is off.
williamr@2
   288
		*/
williamr@2
   289
		EFlightModeOff	= 0,
williamr@2
   290
		/**
williamr@2
   291
		Flight mode is on.
williamr@2
   292
		*/
williamr@2
   293
		EFlightModeOn	= 1,
williamr@2
   294
		};
williamr@2
   295
williamr@2
   296
	class TFlightModeV1 : public TEtelISVType
williamr@2
   297
	/**
williamr@2
   298
	Defines the flight mode status.
williamr@2
   299
	*/
williamr@2
   300
		{
williamr@2
   301
	public:
williamr@2
   302
		IMPORT_C TFlightModeV1();
williamr@2
   303
	public:
williamr@2
   304
		/**
williamr@2
   305
		The current status of the mobile radio interface and bluetooth.
williamr@2
   306
		*/
williamr@2
   307
		TFlightModeStatus iFlightModeStatus;
williamr@2
   308
		};
williamr@2
   309
williamr@2
   310
	/**
williamr@2
   311
	A typedef'd packaged CTelephony::TFlightModeV1 for passing through a generic API method.
williamr@2
   312
	*/
williamr@2
   313
	typedef TPckg<TFlightModeV1> TFlightModeV1Pckg;
williamr@2
   314
williamr@2
   315
	/**
williamr@2
   316
	The mobile phone indicators.
williamr@2
   317
	*/
williamr@2
   318
	enum TPhoneIndicators
williamr@2
   319
		{
williamr@2
   320
		/**
williamr@2
   321
		If bit-flag is set to '1' indicates that the battery charger
williamr@2
   322
		is connected to the phone. If bit-flag is set to '0' indicates
williamr@2
   323
		that the battery charger is disconnected
williamr@2
   324
williamr@2
   325
		For capability: If bit-flag is set to '0' indicates that the
williamr@2
   326
		battery charger indication reporting is unavailable.
williamr@2
   327
		*/
williamr@2
   328
		KIndChargerConnected	= 0x00000001,
williamr@2
   329
		/**
williamr@2
   330
		If bit-flag is set to '1' indicates that network service is
williamr@2
   331
		available. If bit-flag is set to '0' indicates that network
williamr@2
   332
		service is unavailable
williamr@2
   333
williamr@2
   334
		For capability: If bit-flag is set to '0' indicates that the
williamr@2
   335
		network availability indication reporting is unavailable.
williamr@2
   336
		*/
williamr@2
   337
		KIndNetworkAvailable	= 0x00000002,
williamr@2
   338
		/**
williamr@2
   339
		If bit-flag is set to '1' indicates that a call is in
williamr@2
   340
		progress. If set to '0' indicates that a call is not in
williamr@2
   341
		progress
williamr@2
   342
williamr@2
   343
		For capability: If bit-flag is set to '0' indicates
williamr@2
   344
		that the call is in progress indication reporting is
williamr@2
   345
		unavailable.
williamr@2
   346
		*/
williamr@2
   347
		KIndCallInProgress		= 0x00000004
williamr@2
   348
		};
williamr@2
   349
williamr@2
   350
	class TIndicatorV1 : public TEtelISVType
williamr@2
   351
	/**
williamr@2
   352
	Contains indicator parameters:
williamr@2
   353
	@see TPhoneIndicators
williamr@2
   354
	*/
williamr@2
   355
		{
williamr@2
   356
	public:
williamr@2
   357
		IMPORT_C TIndicatorV1();
williamr@2
   358
	public:
williamr@2
   359
		/**
williamr@2
   360
		The value of the indicators.  It is the sum
williamr@2
   361
		of CTelephony::TPhoneIndicators constants.
williamr@2
   362
		*/
williamr@2
   363
		TUint32 iIndicator;
williamr@2
   364
		/**
williamr@2
   365
		The supported (available) indicator capability that the telephony service module offers.
williamr@2
   366
		It is the sum of CTelephony::TPhoneIndicators constants.
williamr@2
   367
		*/
williamr@2
   368
		TUint32 iCapabilities;
williamr@2
   369
		};
williamr@2
   370
williamr@2
   371
	/**
williamr@2
   372
	A typedef'd packaged CTelephony::TIndicatorV1 for passing through a generic API method.
williamr@2
   373
	*/
williamr@2
   374
	typedef TPckg<TIndicatorV1> TIndicatorV1Pckg;
williamr@2
   375
williamr@2
   376
	/**
williamr@2
   377
	The mobile phone battery status.
williamr@2
   378
	*/
williamr@2
   379
	enum TBatteryStatus
williamr@2
   380
		{
williamr@2
   381
		/**
williamr@2
   382
		The phone software can not determine the phone's current power status.
williamr@2
   383
		*/
williamr@2
   384
		EPowerStatusUnknown,
williamr@2
   385
		/**
williamr@2
   386
		The phone is powered by the battery.
williamr@2
   387
		*/
williamr@2
   388
		EPoweredByBattery,
williamr@2
   389
		/**
williamr@2
   390
		A battery is connected, but the phone is externally powered.
williamr@2
   391
		*/
williamr@2
   392
		EBatteryConnectedButExternallyPowered,
williamr@2
   393
		/**
williamr@2
   394
		No battery is connected.
williamr@2
   395
		*/
williamr@2
   396
		ENoBatteryConnected,
williamr@2
   397
		/**
williamr@2
   398
		Power fault.
williamr@2
   399
		*/
williamr@2
   400
		EPowerFault
williamr@2
   401
		};
williamr@2
   402
williamr@2
   403
	class TBatteryInfoV1 : public TEtelISVType
williamr@2
   404
	/**
williamr@2
   405
	Defines contents of the battery status of the phone.
williamr@2
   406
	*/
williamr@2
   407
		{
williamr@2
   408
	public:
williamr@2
   409
		IMPORT_C TBatteryInfoV1();
williamr@2
   410
	public:
williamr@2
   411
		/**
williamr@2
   412
		The power and battery status.
williamr@2
   413
		*/
williamr@2
   414
		TBatteryStatus iStatus;
williamr@2
   415
		/**
williamr@2
   416
		The percentage battery charge level.
williamr@2
   417
		*/
williamr@2
   418
		TUint iChargeLevel;
williamr@2
   419
		};
williamr@2
   420
williamr@2
   421
	/**
williamr@2
   422
	A typedef'd packaged CTelephony::TBatteryInfoV1 for passing through a generic API method.
williamr@2
   423
	*/
williamr@2
   424
	typedef TPckg<TBatteryInfoV1> TBatteryInfoV1Pckg;
williamr@2
   425
williamr@2
   426
	class TSignalStrengthV1 : public TEtelISVType
williamr@2
   427
	/**
williamr@2
   428
	Defines the phone's current signal strength.
williamr@2
   429
	*/
williamr@2
   430
		{
williamr@2
   431
	public:
williamr@2
   432
		IMPORT_C TSignalStrengthV1();
williamr@2
   433
	public:
williamr@2
   434
		/**
williamr@2
   435
		The value of signal strength.
williamr@2
   436
		*/
williamr@2
   437
		TInt32 iSignalStrength;
williamr@2
   438
		/**
williamr@2
   439
		The absolute number of signal "bars" that the phone should display.
williamr@2
   440
		*/
williamr@2
   441
		TInt8 iBar;
williamr@2
   442
		};
williamr@2
   443
williamr@2
   444
	/**
williamr@2
   445
	A typedef'd packaged CTelephony::TSignalStrengthV1 for passing through a generic API method.
williamr@2
   446
	*/
williamr@2
   447
	typedef TPckg<TSignalStrengthV1> TSignalStrengthV1Pckg;
williamr@2
   448
williamr@2
   449
	/**
williamr@2
   450
	Pin 1/Pin 2 security
williamr@2
   451
	*/
williamr@2
   452
	enum TIccLock
williamr@2
   453
		{
williamr@2
   454
		/**
williamr@2
   455
		Lock PIN1 on the ICC.
williamr@2
   456
		*/
williamr@2
   457
		ELockPin1,
williamr@2
   458
		/**
williamr@2
   459
		Lock PIN2 on the ICC.
williamr@2
   460
		*/
williamr@2
   461
		ELockPin2
williamr@2
   462
		};
williamr@2
   463
williamr@2
   464
	/**
williamr@2
   465
	Status of an ICC lock.
williamr@2
   466
	*/
williamr@2
   467
	enum TIccLockStatus
williamr@2
   468
		{
williamr@2
   469
		/**
williamr@2
   470
		The status of the lock is unknown.
williamr@2
   471
		*/
williamr@2
   472
		EStatusLockUnknown,
williamr@2
   473
		/**
williamr@2
   474
		Lock is closed.
williamr@2
   475
williamr@2
   476
		User can not access functionality governed by this lock until
williamr@2
   477
		user correctly enters associated security code.
williamr@2
   478
		*/
williamr@2
   479
		EStatusLocked,
williamr@2
   480
		/**
williamr@2
   481
		Lock is open.
williamr@2
   482
williamr@2
   483
		User can access functionality governed by this lock
williamr@2
   484
		*/
williamr@2
   485
		EStatusUnlocked,
williamr@2
   486
		/**
williamr@2
   487
		Lock is blocked.
williamr@2
   488
williamr@2
   489
		User should enter the unblocking code to be able to switch back to the unlocked mode.
williamr@2
   490
		Blocking is enabled after a number of unsuccessful attempts to verify PIN1/2.
williamr@2
   491
		*/
williamr@2
   492
		EStatusBlocked
williamr@2
   493
		};
williamr@2
   494
williamr@2
   495
	/**
williamr@2
   496
	Setting of the ICC lock.
williamr@2
   497
	*/
williamr@2
   498
	enum TIccLockSetting
williamr@2
   499
		{
williamr@2
   500
		/**
williamr@2
   501
		The setting of the lock is unknown.
williamr@2
   502
		*/
williamr@2
   503
		ELockSetUnknown,
williamr@2
   504
		/**
williamr@2
   505
		Lock is enabled, and is available for use. Its status may be
williamr@2
   506
		CTelephony::EStatusLocked, CTelephony::EStatusUnlocked,
williamr@2
   507
		or CTelephony::EStatusBlocked.
williamr@2
   508
williamr@2
   509
		The associated security code will be required to unlock the lock
williamr@2
   510
		the next time the lock's status is CTelephony::EStatusLocked.
williamr@2
   511
		*/
williamr@2
   512
		ELockSetEnabled,
williamr@2
   513
		/**
williamr@2
   514
		Lock is disabled.  It is not available for use, so its status
williamr@2
   515
		is always CTelephony::EStatusUnlocked.
williamr@2
   516
		*/
williamr@2
   517
		ELockSetDisabled
williamr@2
   518
		};
williamr@2
   519
williamr@2
   520
	class TIccLockInfoV1 : public TEtelISVType
williamr@2
   521
	/**
williamr@2
   522
	Defines the Icc Lock parameters.
williamr@2
   523
	*/
williamr@2
   524
		{
williamr@2
   525
	public:
williamr@2
   526
		IMPORT_C TIccLockInfoV1();
williamr@2
   527
	public:
williamr@2
   528
		/**
williamr@2
   529
		The current status of the lock.
williamr@2
   530
		*/
williamr@2
   531
		TIccLockStatus iStatus;
williamr@2
   532
		/**
williamr@2
   533
		The current availability of the lock. When not available (i.e. the
williamr@2
   534
		lock is not in use) then its status will always be CTelephony::EStatusUnlocked.
williamr@2
   535
		*/
williamr@2
   536
		TIccLockSetting iSetting;
williamr@2
   537
		};
williamr@2
   538
williamr@2
   539
	/**
williamr@2
   540
	A typedef'd packaged CTelephony::TIccLockInfoV1 for passing through a generic API method.
williamr@2
   541
	*/
williamr@2
   542
	typedef TPckg<TIccLockInfoV1> TIccLockInfoV1Pckg;
williamr@2
   543
williamr@2
   544
//////////////////////////////////////////////////////////
williamr@2
   545
// Line Functionality
williamr@2
   546
//////////////////////////////////////////////////////////
williamr@2
   547
williamr@2
   548
	/**
williamr@2
   549
	Line types
williamr@2
   550
	*/
williamr@2
   551
	enum TPhoneLine
williamr@2
   552
		{
williamr@2
   553
		/**
williamr@2
   554
		Voice line.
williamr@2
   555
		*/
williamr@2
   556
		EVoiceLine,
williamr@2
   557
		/**
williamr@2
   558
		Data line.
williamr@2
   559
		*/
williamr@2
   560
		EDataLine,
williamr@2
   561
		/**
williamr@2
   562
		Fax line.
williamr@2
   563
		*/
williamr@2
   564
		EFaxLine,
williamr@2
   565
		};
williamr@2
   566
williamr@2
   567
	/**
williamr@2
   568
	Describes the possible call or line states.
williamr@2
   569
	*/
williamr@2
   570
	enum TCallStatus
williamr@2
   571
		{
williamr@2
   572
		/**
williamr@2
   573
		Indicates that the status is unknown.
williamr@2
   574
		*/
williamr@2
   575
		EStatusUnknown,
williamr@2
   576
		/**
williamr@2
   577
		Idle line status (no active calls).
williamr@2
   578
		*/
williamr@2
   579
		EStatusIdle,
williamr@2
   580
		/**
williamr@2
   581
		Call dialling status .
williamr@2
   582
		*/
williamr@2
   583
		EStatusDialling,
williamr@2
   584
		/**
williamr@2
   585
		Call ringing status.
williamr@2
   586
		*/
williamr@2
   587
		EStatusRinging,
williamr@2
   588
		/**
williamr@2
   589
		Call answering status.
williamr@2
   590
		*/
williamr@2
   591
		EStatusAnswering,
williamr@2
   592
		/**
williamr@2
   593
		Call connecting status.
williamr@2
   594
		*/
williamr@2
   595
		EStatusConnecting,
williamr@2
   596
		/**
williamr@2
   597
		Call connected status.
williamr@2
   598
		*/
williamr@2
   599
		EStatusConnected,
williamr@2
   600
		/**
williamr@2
   601
		Call is undergoing temporary channel loss and it may or may not be reconnected.
williamr@2
   602
		*/
williamr@2
   603
		EStatusReconnectPending,
williamr@2
   604
		/**
williamr@2
   605
		Call disconnecting status.
williamr@2
   606
		*/
williamr@2
   607
		EStatusDisconnecting,
williamr@2
   608
		/**
williamr@2
   609
		Call on hold.
williamr@2
   610
		*/
williamr@2
   611
		EStatusHold,
williamr@2
   612
		/**
williamr@2
   613
		Call is transferring.
williamr@2
   614
		*/
williamr@2
   615
		EStatusTransferring,
williamr@2
   616
		/**
williamr@2
   617
		Call in transfer is alerting the remote party.
williamr@2
   618
		*/
williamr@2
   619
		EStatusTransferAlerting
williamr@2
   620
		};
williamr@2
   621
williamr@2
   622
	class TCallStatusV1 : public TEtelISVType
williamr@2
   623
	/**
williamr@2
   624
	Defines the current call or line status.
williamr@2
   625
	*/
williamr@2
   626
		{
williamr@2
   627
	public:
williamr@2
   628
		IMPORT_C TCallStatusV1();
williamr@2
   629
	public:
williamr@2
   630
		/**
williamr@2
   631
		The current call or line status.
williamr@2
   632
		*/
williamr@2
   633
		TCallStatus iStatus;
williamr@2
   634
		};
williamr@2
   635
williamr@2
   636
	/**
williamr@2
   637
	A typedef'd packaged CTelephony::TCallStatusV1 for passing through a generic API method.
williamr@2
   638
	*/
williamr@2
   639
	typedef TPckg<TCallStatusV1> TCallStatusV1Pckg;
williamr@2
   640
williamr@2
   641
	/**
williamr@2
   642
	Select a call defined by it current stats.
williamr@2
   643
	*/
williamr@2
   644
	enum TCallSelect
williamr@2
   645
		{
williamr@2
   646
		/**
williamr@2
   647
		Currently active call.
williamr@2
   648
		*/
williamr@2
   649
		EActiveCall,
williamr@2
   650
		/**
williamr@2
   651
		Currently held (applicable only for voice) call.
williamr@2
   652
		*/
williamr@2
   653
		EHeldCall,
williamr@2
   654
		/**
williamr@2
   655
		Call during the setup/disconnecting process - (dialling/connecting/answering/hanging up).
williamr@2
   656
		*/
williamr@2
   657
		EInProgressCall
williamr@2
   658
		};
williamr@2
   659
williamr@2
   660
	class TCallSelectionV1 : public TEtelISVType
williamr@2
   661
	/**
williamr@2
   662
	Defines parameters to select a call, determined by its call state for a specific line
williamr@2
   663
	*/
williamr@2
   664
		{
williamr@2
   665
	public:
williamr@2
   666
		IMPORT_C TCallSelectionV1();
williamr@2
   667
	public:
williamr@2
   668
		/**
williamr@2
   669
		The current phone line selection.
williamr@2
   670
		*/
williamr@2
   671
		TPhoneLine iLine;
williamr@2
   672
		/**
williamr@2
   673
		The current call selection.
williamr@2
   674
		*/
williamr@2
   675
		TCallSelect iSelect;
williamr@2
   676
		};
williamr@2
   677
williamr@2
   678
	/**
williamr@2
   679
	A typedef'd packaged CTelephony::TCallSelectionV1 for passing through a generic API method.
williamr@2
   680
	*/
williamr@2
   681
	typedef TPckg<TCallSelectionV1> TCallSelectionV1Pckg;
williamr@2
   682
williamr@2
   683
	/**
williamr@2
   684
	Etel 3rd Party owned call identifiers
williamr@2
   685
	*/
williamr@2
   686
	enum TCallId
williamr@2
   687
		{
williamr@2
   688
		/**
williamr@2
   689
		Call owned by this ISV application.
williamr@2
   690
		*/
williamr@2
   691
		EISVCall1,
williamr@2
   692
		/**
williamr@2
   693
		Call owned by this ISV application.
williamr@2
   694
		*/
williamr@2
   695
		EISVCall2,
williamr@2
   696
		/**
williamr@2
   697
		Max number of calls supported by Etel 3rd Party.
williamr@2
   698
		*/
williamr@2
   699
		EISVMaxNumOfCalls
williamr@2
   700
		};
williamr@2
   701
williamr@2
   702
	/**
williamr@2
   703
	Remote party identity status.
williamr@2
   704
	*/
williamr@2
   705
	enum TCallRemoteIdentityStatus
williamr@2
   706
		{
williamr@2
   707
		/**
williamr@2
   708
		The remote party's identity can not be determined.
williamr@2
   709
		*/
williamr@2
   710
		ERemoteIdentityUnknown,
williamr@2
   711
		/**
williamr@2
   712
		The remote party's identity is available.
williamr@2
   713
		*/
williamr@2
   714
		ERemoteIdentityAvailable,
williamr@2
   715
		/**
williamr@2
   716
		The remote party has suppressed the transmission of its identity.
williamr@2
   717
		*/
williamr@2
   718
		ERemoteIdentitySuppressed
williamr@2
   719
		};
williamr@2
   720
williamr@2
   721
	/**
williamr@2
   722
	The direction of the call.
williamr@2
   723
	*/
williamr@2
   724
	enum TCallDirection
williamr@2
   725
		{
williamr@2
   726
		/**
williamr@2
   727
		The direction of the call is unknown.
williamr@2
   728
		*/
williamr@2
   729
		EDirectionUnknown,
williamr@2
   730
		/**
williamr@2
   731
		The call was originated by this phone, i.e. it is an outgoing call.
williamr@2
   732
		*/
williamr@2
   733
		EMobileOriginated,
williamr@2
   734
		/**
williamr@2
   735
		The call was terminated by this phone, i.e. it is an incoming call.
williamr@2
   736
		*/
williamr@2
   737
		EMobileTerminated
williamr@2
   738
		};
williamr@2
   739
williamr@2
   740
	/**
williamr@2
   741
	Enumerated network security types.
williamr@2
   742
	*/
williamr@2
   743
	enum TPhoneNetworkSecurity
williamr@2
   744
		{
williamr@2
   745
		/**
williamr@2
   746
		The encryption level is NONE.
williamr@2
   747
		*/
williamr@2
   748
		ECipheringOff,
williamr@2
   749
		/**
williamr@2
   750
		The encryption level is GSM.(standard encryption algorithms for 2nd Generation Mobile networks).
williamr@2
   751
		*/
williamr@2
   752
		ECipheringGSM,
williamr@2
   753
		/**
williamr@2
   754
		The encryption level is WDCMA.(standard encryption algorithms for 3rd Generation Mobile networks).
williamr@2
   755
		*/
williamr@2
   756
		ECipheringWCDMA
williamr@2
   757
		};
williamr@2
   758
williamr@2
   759
	class TCallInfoV1 : public TEtelISVType
williamr@2
   760
	/**
williamr@2
   761
	Defines general information about a call.
williamr@2
   762
	*/
williamr@2
   763
		{
williamr@2
   764
	public:
williamr@2
   765
		IMPORT_C TCallInfoV1();
williamr@2
   766
	public:
williamr@2
   767
		/**
williamr@2
   768
		The current status of the call.
williamr@2
   769
		*/
williamr@2
   770
		TCallStatus iStatus;
williamr@2
   771
		/**
williamr@2
   772
		The time & date the call started.
williamr@2
   773
		*/
williamr@2
   774
		TDateTime iStartTime;
williamr@2
   775
		/**
williamr@2
   776
		The current duration of the call.
williamr@2
   777
		*/
williamr@2
   778
		TTimeIntervalSeconds iDuration;
williamr@2
   779
		/**
williamr@2
   780
		The original number (including DTMF) dialled for an outgoing call.
williamr@2
   781
		*/
williamr@2
   782
		TTelAddress iDialledParty;
williamr@2
   783
		/**
williamr@2
   784
		The reason for termination of a finished call.
williamr@2
   785
		Will equal KErrNone if the call ended normally and KErrNotFound if the call has not ended.
williamr@2
   786
		*/
williamr@2
   787
		TInt iExitCode;
williamr@2
   788
		/**
williamr@2
   789
		This attribute indicates whether Ciphering Status of a Call is enabled or disabled.
williamr@2
   790
		*/
williamr@2
   791
		TPhoneNetworkSecurity iSecurity;
williamr@2
   792
		/**
williamr@2
   793
		The call id of an ISV application owned call. For calls not owned by this ISV application (-1) is returned.
williamr@2
   794
		*/
williamr@2
   795
		TInt iCallId;
williamr@2
   796
		};
williamr@2
   797
williamr@2
   798
	/**
williamr@2
   799
	A typedef'd packaged CTelephony::TCallInfoV1 for passing through a generic API method.
williamr@2
   800
	*/
williamr@2
   801
	typedef TPckg<TCallInfoV1> TCallInfoV1Pckg;
williamr@2
   802
williamr@2
   803
	/**
williamr@2
   804
	Maximum size of the calling party name.
williamr@2
   805
	*/
williamr@2
   806
	enum { KCallingNameSize = 80 };
williamr@2
   807
williamr@2
   808
	class TRemotePartyInfoV1 : public TEtelISVType
williamr@2
   809
		{
williamr@2
   810
		/**
williamr@2
   811
		Defines information about the remote party of a call.
williamr@2
   812
		*/
williamr@2
   813
	public:
williamr@2
   814
		IMPORT_C TRemotePartyInfoV1();
williamr@2
   815
	public:
williamr@2
   816
		/**
williamr@2
   817
		Indicates whether the remote party information in the rest of this structure is valid or not.
williamr@2
   818
		*/
williamr@2
   819
		TCallRemoteIdentityStatus iRemoteIdStatus;
williamr@2
   820
		/**
williamr@2
   821
		Calling party name available through the CNAP supplementary service (if provisioned).
williamr@2
   822
		*/
williamr@2
   823
		TBuf<KCallingNameSize> iCallingName;
williamr@2
   824
		/**
williamr@2
   825
		The phone number of the remote party if available.
williamr@2
   826
		*/
williamr@2
   827
		TTelAddress iRemoteNumber;
williamr@2
   828
		/**
williamr@2
   829
		The direction of the call and hence the role of the remote party.
williamr@2
   830
		i.e. if the call is mobile originated then the remote party is the called party.
williamr@2
   831
		Whereas if the call is mobile terminated then the remote party is the calling party.
williamr@2
   832
		*/
williamr@2
   833
		TCallDirection iDirection;
williamr@2
   834
		};
williamr@2
   835
williamr@2
   836
	/**
williamr@2
   837
	A typedef'd packaged CTelephony::TRemotePartyInfoV1 for passing through a generic API method.
williamr@2
   838
	*/
williamr@2
   839
	typedef TPckg<TRemotePartyInfoV1> TRemotePartyInfoV1Pckg;
williamr@2
   840
williamr@2
   841
//////////////////////////////////////////////////////////
williamr@2
   842
// Call Functionality
williamr@2
   843
//////////////////////////////////////////////////////////
williamr@2
   844
williamr@2
   845
	/**
williamr@2
   846
	Caller Id restriction settings.
williamr@2
   847
	*/
williamr@2
   848
	enum TCallerIdentityRestrict
williamr@2
   849
		{
williamr@2
   850
		/**
williamr@2
   851
		The default setting should be used if the user has not explicitly requested their identity to be restricted/allowed.
williamr@2
   852
		*/
williamr@2
   853
		EIdRestrictDefault,
williamr@2
   854
		/**
williamr@2
   855
		The user has explicitly requested their identity to be sent for this call.
williamr@2
   856
		*/
williamr@2
   857
		ESendMyId,
williamr@2
   858
		/**
williamr@2
   859
		The user has explicitly requested their identity not to be sent for this call.
williamr@2
   860
		*/
williamr@2
   861
		EDontSendMyId
williamr@2
   862
		};
williamr@2
   863
williamr@2
   864
	class TCallParamsV1 : public TEtelISVType
williamr@2
   865
		{
williamr@2
   866
		/**
williamr@2
   867
		Defines the parameters used for set-up of a call.
williamr@2
   868
		*/
williamr@2
   869
	public:
williamr@2
   870
		IMPORT_C TCallParamsV1();
williamr@2
   871
	public:
williamr@2
   872
		/**
williamr@2
   873
		Call Id restriction setting to be used for this call.
williamr@2
   874
		*/
williamr@2
   875
		TCallerIdentityRestrict iIdRestrict;
williamr@2
   876
		};
williamr@2
   877
williamr@2
   878
	/**
williamr@2
   879
	A typedef'd packaged CTelephony::TCallParamsV1 for passing through a generic API method.
williamr@2
   880
	*/
williamr@2
   881
	typedef TPckg<TCallParamsV1> TCallParamsV1Pckg;
williamr@2
   882
williamr@2
   883
	/**
williamr@2
   884
	Mobile call control capabilities.
williamr@2
   885
	*/
williamr@2
   886
	enum TMobileCallControlCaps
williamr@2
   887
		{
williamr@2
   888
		/**
williamr@2
   889
		Indicates that this call can be put on hold.
williamr@2
   890
		This implies that the call is currently active and that there is no other held call.
williamr@2
   891
		*/
williamr@2
   892
		KCapsHold 	= 0x00000200,
williamr@2
   893
		/**
williamr@2
   894
		Indicates that this call can be resumed.
williamr@2
   895
		This implies that the call is currently on hold and that there is no other active call.
williamr@2
   896
		*/
williamr@2
   897
		KCapsResume = 0x00000400,
williamr@2
   898
		/**
williamr@2
   899
		Indicates that this call's state can be swapped to the opposite state.
williamr@2
   900
		This implies that this call is either active or held.
williamr@2
   901
		There may be another call in the opposite state and if this is the case then both calls will be simultaneously swapped to their opposite state.
williamr@2
   902
		*/
williamr@2
   903
		KCapsSwap 	= 0x00000800
williamr@2
   904
		};
williamr@2
   905
williamr@2
   906
	class TCallCapsV1 : public TEtelISVType
williamr@2
   907
		{
williamr@2
   908
		/**
williamr@2
   909
		Defines the dynamic capabilities of a call.
williamr@2
   910
		@see TMobileCallControlCaps
williamr@2
   911
		*/
williamr@2
   912
	public:
williamr@2
   913
		IMPORT_C TCallCapsV1();
williamr@2
   914
	public:
williamr@2
   915
		/**
williamr@2
   916
		Call Id restriction setting to be used for this call.
williamr@2
   917
		It is the sum of CTelephony::TMobileCallControlCaps constants.
williamr@2
   918
		*/
williamr@2
   919
		TUint32 iControlCaps;
williamr@2
   920
		};
williamr@2
   921
williamr@2
   922
	/**
williamr@2
   923
	A typedef'd packaged CTelephony::TCallParamsV1 for passing through a generic API method.
williamr@2
   924
	*/
williamr@2
   925
	typedef TPckg<TCallCapsV1> TCallCapsV1Pckg;
williamr@2
   926
williamr@2
   927
williamr@2
   928
//////////////////////////////////////////////////////////
williamr@2
   929
// Network Functionality
williamr@2
   930
//////////////////////////////////////////////////////////
williamr@2
   931
williamr@2
   932
	/**
williamr@2
   933
	The registration status of the phone.
williamr@2
   934
	*/
williamr@2
   935
	enum TRegistrationStatus
williamr@2
   936
		{
williamr@2
   937
		/**
williamr@2
   938
		Registration status is unknown.
williamr@2
   939
		*/
williamr@2
   940
		ERegistrationUnknown,
williamr@2
   941
		/**
williamr@2
   942
		Not registered. The ME can not detect any other networks and is not currently searching a new operator to register to.
williamr@2
   943
		*/
williamr@2
   944
		ENotRegisteredNoService,
williamr@2
   945
		/**
williamr@2
   946
		Not registered. The ME can detect other networks on which it is possible to make emergency calls only.
williamr@2
   947
		*/
williamr@2
   948
		ENotRegisteredEmergencyOnly,
williamr@2
   949
		/**
williamr@2
   950
		Not registered, but the ME is currently searching a new operator to register to.
williamr@2
   951
		*/
williamr@2
   952
		ENotRegisteredSearching,
williamr@2
   953
		/**
williamr@2
   954
		Registered, network busy.
williamr@2
   955
		*/
williamr@2
   956
		ERegisteredBusy,
williamr@2
   957
		/**
williamr@2
   958
		Registered on home network.
williamr@2
   959
		*/
williamr@2
   960
		ERegisteredOnHomeNetwork,
williamr@2
   961
		/**
williamr@2
   962
		Registration denied.
williamr@2
   963
		*/
williamr@2
   964
		ERegistrationDenied,
williamr@2
   965
		/**
williamr@2
   966
		Registered, roaming.
williamr@2
   967
		*/
williamr@2
   968
		ERegisteredRoaming
williamr@2
   969
		};
williamr@2
   970
williamr@2
   971
	class TNetworkRegistrationV1 : public TEtelISVType
williamr@2
   972
		/**
williamr@2
   973
		Defines the current network registration status
williamr@2
   974
		*/
williamr@2
   975
		{
williamr@2
   976
	public:
williamr@2
   977
		IMPORT_C TNetworkRegistrationV1();
williamr@2
   978
	public:
williamr@2
   979
		/**
williamr@2
   980
        The current network registration status.
williamr@2
   981
		*/
williamr@2
   982
		TRegistrationStatus iRegStatus;
williamr@2
   983
		};
williamr@2
   984
williamr@2
   985
	/**
williamr@2
   986
	A typedef'd packaged CTelephony::TNetworkRegistrationV1 for passing through a generic API method.
williamr@2
   987
	*/
williamr@2
   988
	typedef TPckg<TNetworkRegistrationV1> TNetworkRegistrationV1Pckg;
williamr@2
   989
williamr@2
   990
	/***********************************************/
williamr@2
   991
	// CTelephony::TNetworkInfoV1
williamr@2
   992
williamr@2
   993
	/**
williamr@2
   994
	Maximum size of the network country code.
williamr@2
   995
	*/
williamr@2
   996
	enum { KNetworkCountryCodeSize 	= 4  };
williamr@2
   997
	/**
williamr@2
   998
	Maximum size of the network identity..
williamr@2
   999
	*/
williamr@2
  1000
	enum { KNetworkIdentitySize 	= 8  };
williamr@2
  1001
	/**
williamr@2
  1002
	Maximum size of the network display tag..
williamr@2
  1003
	*/
williamr@2
  1004
	enum { KNetworkDisplayTagSize 	= 32 };
williamr@2
  1005
	/**
williamr@2
  1006
	Maximum size of the short network name.
williamr@2
  1007
	*/
williamr@2
  1008
	enum { KNetworkShortNameSize 	= 8  };
williamr@2
  1009
	/**
williamr@2
  1010
	Maximum size of the long network name.
williamr@2
  1011
	*/
williamr@2
  1012
	enum { KNetworkLongNameSize 	= 16 };
williamr@2
  1013
	/**
williamr@2
  1014
	Maximum size of the short network name version 2.
williamr@2
  1015
	*/
williamr@2
  1016
	enum { KNetworkShortNameSizeV2 	= 10  };
williamr@2
  1017
	/**
williamr@2
  1018
	Maximum size of the long network name version 2.
williamr@2
  1019
	*/
williamr@2
  1020
	enum { KNetworkLongNameSizeV2 	= 20 };
williamr@2
  1021
williamr@2
  1022
	/**
williamr@2
  1023
	Defines Current Network Modes.
williamr@2
  1024
	*/
williamr@2
  1025
	enum TNetworkMode
williamr@2
  1026
		{
williamr@2
  1027
		/**
williamr@2
  1028
		Network mode is unknown.
williamr@2
  1029
		*/
williamr@2
  1030
		ENetworkModeUnknown,
williamr@2
  1031
		/**
williamr@2
  1032
		Mobile device is not registered.
williamr@2
  1033
		*/
williamr@2
  1034
		ENetworkModeUnregistered,
williamr@2
  1035
		/**
williamr@2
  1036
		GSM/GPRS or DCS1800 network.
williamr@2
  1037
		*/
williamr@2
  1038
		ENetworkModeGsm,
williamr@2
  1039
		/**
williamr@2
  1040
		AMPS network.
williamr@2
  1041
		*/
williamr@2
  1042
		ENetworkModeAmps,
williamr@2
  1043
		/**
williamr@2
  1044
		CDMA (IS-95) network.
williamr@2
  1045
		*/
williamr@2
  1046
		ENetworkModeCdma95,
williamr@2
  1047
		/**
williamr@2
  1048
		CDMA (cdma2000) network.
williamr@2
  1049
		*/
williamr@2
  1050
		ENetworkModeCdma2000,
williamr@2
  1051
		/**
williamr@2
  1052
		WCDMA (UTRA Frequency Division Duplex (FDD)) network.
williamr@2
  1053
		*/
williamr@2
  1054
		ENetworkModeWcdma,
williamr@2
  1055
		/**
williamr@2
  1056
		TD-CDMA (UTRA Time Division Duplex (TDD)) network.
williamr@2
  1057
		 */
williamr@2
  1058
		ENetworkModeTdcdma
williamr@2
  1059
		};
williamr@2
  1060
williamr@2
  1061
	/**
williamr@2
  1062
	The access technology that the network is based on.
williamr@2
  1063
	*/
williamr@2
  1064
	enum TNetworkAccess
williamr@2
  1065
		{
williamr@2
  1066
		/**
williamr@2
  1067
		This is used when there is no network activity and therefore no RAT active.
williamr@2
  1068
		*/
williamr@2
  1069
		ENetworkAccessUnknown,
williamr@2
  1070
		/**
williamr@2
  1071
		The access technology is GSM.
williamr@2
  1072
		*/
williamr@2
  1073
		ENetworkAccessGsm,
williamr@2
  1074
		/**
williamr@2
  1075
		The access technology is GSM COMPACT.
williamr@2
  1076
		However GSM COMPACT systems which use GSM frequency bands but with the CBPCCH broadcast channel are considered as a separate access technology from GSM.
williamr@2
  1077
		*/
williamr@2
  1078
		ENetworkAccessGsmCompact,
williamr@2
  1079
		/**
williamr@2
  1080
		The access technology is UTRAN (UMTS Network).
williamr@2
  1081
		*/
williamr@2
  1082
		ENetworkAccessUtran
williamr@2
  1083
		};
williamr@2
  1084
williamr@2
  1085
	/**
williamr@2
  1086
	Phone network status.
williamr@2
  1087
	*/
williamr@2
  1088
	enum TNetworkStatus
williamr@2
  1089
		{
williamr@2
  1090
		/**
williamr@2
  1091
		Status is unknown.
williamr@2
  1092
		*/
williamr@2
  1093
		ENetworkStatusUnknown,
williamr@2
  1094
		/**
williamr@2
  1095
		A network that the mobile device is allowed to register to.
williamr@2
  1096
		*/
williamr@2
  1097
		ENetworkStatusAvailable,
williamr@2
  1098
		/**
williamr@2
  1099
		Currently registered network.
williamr@2
  1100
		*/
williamr@2
  1101
		ENetworkStatusCurrent,
williamr@2
  1102
		/**
williamr@2
  1103
		A network that the ME is not allowed to register to.
williamr@2
  1104
		*/
williamr@2
  1105
		ENetworkStatusForbidden
williamr@2
  1106
		};
williamr@2
  1107
williamr@2
  1108
	/**
williamr@2
  1109
	Mobile phone network band information.
williamr@2
  1110
	*/
williamr@2
  1111
	enum TNetworkBandInfo
williamr@2
  1112
		{
williamr@2
  1113
		/**
williamr@2
  1114
		The current band and band class is unknown.
williamr@2
  1115
		*/
williamr@2
  1116
		EBandUnknown,
williamr@2
  1117
		/**
williamr@2
  1118
		The network operates at 800MHz on Band A.
williamr@2
  1119
		*/
williamr@2
  1120
		E800BandA,
williamr@2
  1121
		/**
williamr@2
  1122
		The network operates at 800MHz on Band B.
williamr@2
  1123
		*/
williamr@2
  1124
		E800BandB,
williamr@2
  1125
		/**
williamr@2
  1126
		The network operates at 800MHz on Band C.
williamr@2
  1127
		*/
williamr@2
  1128
		E800BandC,
williamr@2
  1129
		/**
williamr@2
  1130
		The network operates at 1900MHz on Band A.
williamr@2
  1131
		*/
williamr@2
  1132
		E1900BandA,
williamr@2
  1133
		/**
williamr@2
  1134
		The network operates at 1900MHz on Band B.
williamr@2
  1135
		*/
williamr@2
  1136
		E1900BandB,
williamr@2
  1137
		/**
williamr@2
  1138
		The network operates at 1900MHz on Band C.
williamr@2
  1139
		*/
williamr@2
  1140
		E1900BandC,
williamr@2
  1141
		/**
williamr@2
  1142
		The network operates at 1900MHz on Band D.
williamr@2
  1143
		*/
williamr@2
  1144
		E1900BandD,
williamr@2
  1145
		/**
williamr@2
  1146
		The network operates at 1900MHz on Band E.
williamr@2
  1147
		*/
williamr@2
  1148
		E1900BandE,
williamr@2
  1149
		/**
williamr@2
  1150
		The network operates at 1900MHz on Band F.
williamr@2
  1151
		*/
williamr@2
  1152
		E1900BandF
williamr@2
  1153
		};
williamr@2
  1154
williamr@2
  1155
	/**
williamr@2
  1156
	Defines information related to a mobile phone network.
williamr@2
  1157
williamr@2
  1158
	@see CTelephony::TNetworkInfoV2
williamr@2
  1159
	*/
williamr@2
  1160
	class TNetworkInfoV1 : public TEtelISVType
williamr@2
  1161
		{
williamr@2
  1162
	public:
williamr@2
  1163
		IMPORT_C TNetworkInfoV1();
williamr@2
  1164
	public:
williamr@2
  1165
		/**
williamr@2
  1166
		Mode of the network.
williamr@2
  1167
		*/
williamr@2
  1168
		TNetworkMode iMode;
williamr@2
  1169
		/**
williamr@2
  1170
		Status of the network
williamr@2
  1171
		*/
williamr@2
  1172
		TNetworkStatus iStatus;
williamr@2
  1173
		/**
williamr@2
  1174
		The MCC of the network.
williamr@2
  1175
		*/
williamr@2
  1176
		TBuf<KNetworkCountryCodeSize> 	iCountryCode;
williamr@2
  1177
		/**
williamr@2
  1178
		The network identity (NID in CDMA and MNC in GSM).
williamr@2
  1179
		*/
williamr@2
  1180
		TBuf<KNetworkIdentitySize> 		iNetworkId;
williamr@2
  1181
		/**
williamr@2
  1182
		The alpha-tag displayed when this is the serving network.
williamr@2
  1183
		*/
williamr@2
  1184
		TBuf<KNetworkDisplayTagSize> 	iDisplayTag;
williamr@2
  1185
		/**
williamr@2
  1186
		On GSM/WCDMA networks, the short name (up to 8 characters) of the network operator.
williamr@2
  1187
		*/
williamr@2
  1188
		TBuf<KNetworkShortNameSize> 	iShortName;
williamr@2
  1189
		/**
williamr@2
  1190
		On CDMA networks, the band and band class of the CDMA network operator.
williamr@2
  1191
		*/
williamr@2
  1192
		TNetworkBandInfo iBandInfo;
williamr@2
  1193
		/**
williamr@2
  1194
		On CDMA networks, the system identity (SID) of the CDMA or AMPS network
williamr@2
  1195
		*/
williamr@2
  1196
		TBuf<KNetworkIdentitySize> 		iCdmaSID;
williamr@2
  1197
		/**
williamr@2
  1198
		On GSM/WCDMA networks, the long name (up to 16 characters) of the network operator.
williamr@2
  1199
		*/
williamr@2
  1200
		TBuf<KNetworkLongNameSize> 		iLongName;
williamr@2
  1201
		/**
williamr@2
  1202
		On GSM/WCDMA networks, the type of network access.
williamr@2
  1203
		*/
williamr@2
  1204
		TNetworkAccess iAccess;
williamr@2
  1205
		/**
williamr@2
  1206
		On GSM/WCDMA networks, boolean indicating whether the location area is known.
williamr@2
  1207
		*/
williamr@2
  1208
		TBool iAreaKnown;
williamr@2
  1209
		/**
williamr@2
  1210
		On GSM/WCDMA networks, the location area code.  Only valid when iAreaKnown is true.		
williamr@2
  1211
		*/
williamr@2
  1212
		TUint iLocationAreaCode;
williamr@2
  1213
		/**
williamr@2
  1214
		On GSM/WCDMA networks, the cell identity code.  Only valid when iAreaKnown is true.		
williamr@2
  1215
		*/
williamr@2
  1216
		TUint iCellId;
williamr@2
  1217
		};
williamr@2
  1218
williamr@2
  1219
	/**
williamr@2
  1220
	A typedef'd packaged CTelephony::TNetworkInfoV1 for passing through a generic API method.
williamr@2
  1221
	*/
williamr@2
  1222
	typedef TPckg<TNetworkInfoV1> TNetworkInfoV1Pckg;
williamr@2
  1223
williamr@2
  1224
	class TNetworkNameV1 : public TEtelISVType
williamr@2
  1225
	/**
williamr@2
  1226
	Defines the name network name.
williamr@2
  1227
williamr@2
  1228
    Note: This information is only available on GSM/WCDMA networks.
williamr@2
  1229
	*/
williamr@2
  1230
		{
williamr@2
  1231
	public:
williamr@2
  1232
		IMPORT_C TNetworkNameV1();
williamr@2
  1233
	public:
williamr@2
  1234
		/**
williamr@2
  1235
		The displayed name (up to 16 characters) of the network provider.
williamr@2
  1236
		*/
williamr@2
  1237
		TBuf<KNetworkLongNameSize> 		iNetworkName;
williamr@2
  1238
		};
williamr@2
  1239
williamr@2
  1240
	/**
williamr@2
  1241
	A typedef'd packaged CTelephony::TNetworkNameV1 for passing through a generic API method.
williamr@2
  1242
	*/
williamr@2
  1243
	typedef TPckg<TNetworkNameV1> TNetworkNameV1Pckg;
williamr@2
  1244
williamr@2
  1245
	class TOperatorNameV1 : public TEtelISVType
williamr@2
  1246
	/**
williamr@2
  1247
	Defines the current operator.
williamr@2
  1248
williamr@2
  1249
    Note: This information is only available on GSM/WCDMA networks.
williamr@2
  1250
	*/
williamr@2
  1251
		{
williamr@2
  1252
	public:
williamr@2
  1253
		IMPORT_C TOperatorNameV1();
williamr@2
  1254
	public:
williamr@2
  1255
		/**
williamr@2
  1256
		 The displayed name (up to 16 characters) of the network operator.
williamr@2
  1257
		*/
williamr@2
  1258
		TBuf<KNetworkLongNameSize> 		iOperatorName;
williamr@2
  1259
		};
williamr@2
  1260
williamr@2
  1261
	/**
williamr@2
  1262
	A typedef'd packaged CTelephony::TOperatorNameV1 for passing through a generic API method.
williamr@2
  1263
	*/
williamr@2
  1264
	typedef TPckg<TOperatorNameV1> TOperatorNameV1Pckg;
williamr@2
  1265
williamr@2
  1266
williamr@2
  1267
	/**
williamr@2
  1268
	Defines information related to a mobile phone network.
williamr@2
  1269
	TNetworkInfoV2 differs from Version 1 (TNetworkInfoV1) in that the
williamr@2
  1270
	length of iShortName and iLongName are 10 and 20 respectively
williamr@2
  1271
	(rather than 8 and 16).
williamr@2
  1272
williamr@2
  1273
	TNetworkInfoV2 should be used in preference to TNetworkInfoV1.  The
williamr@2
  1274
	short and long network names provided in this V2 class are of the
williamr@2
  1275
	length supplied by the platform.  The V1 class's names will be
williamr@2
  1276
	truncated if the platform provides names longer than its limits.
williamr@2
  1277
	*/
williamr@2
  1278
	class TNetworkInfoV2 : public TEtelISVType
williamr@2
  1279
		{
williamr@2
  1280
	public:
williamr@2
  1281
		IMPORT_C TNetworkInfoV2();
williamr@2
  1282
	public:
williamr@2
  1283
		/**
williamr@2
  1284
		Mode of the network.
williamr@2
  1285
		*/
williamr@2
  1286
		TNetworkMode iMode;
williamr@2
  1287
		/**
williamr@2
  1288
		Status of the network.
williamr@2
  1289
		*/
williamr@2
  1290
		TNetworkStatus iStatus;
williamr@2
  1291
		/**
williamr@2
  1292
		The MCC of the network.
williamr@2
  1293
		*/
williamr@2
  1294
		TBuf<KNetworkCountryCodeSize>    iCountryCode;
williamr@2
  1295
		/**
williamr@2
  1296
		The network identity (NID in CDMA and MNC in GSM).
williamr@2
  1297
		*/
williamr@2
  1298
		TBuf<KNetworkIdentitySize>       iNetworkId;
williamr@2
  1299
		/**
williamr@2
  1300
		The alpha-tag displayed when this is the serving network.
williamr@2
  1301
		*/
williamr@2
  1302
		TBuf<KNetworkDisplayTagSize>     iDisplayTag;
williamr@2
  1303
		/**
williamr@2
  1304
		On GSM/WCDMA networks, the short name (up to 10 characters) of the network operator.
williamr@2
  1305
		*/
williamr@2
  1306
		TBuf<KNetworkShortNameSizeV2>    iShortName;
williamr@2
  1307
		/**
williamr@2
  1308
		On CDMA networks, the band and band class of the CDMA network operator.
williamr@2
  1309
		*/
williamr@2
  1310
		TNetworkBandInfo                 iBandInfo;
williamr@2
  1311
		/**
williamr@2
  1312
		On CDMA networks, the system identity (SID) of the CDMA or AMPS network.
williamr@2
  1313
		*/
williamr@2
  1314
		TBuf<KNetworkIdentitySize>       iCdmaSID;
williamr@2
  1315
		/**
williamr@2
  1316
		On GSM/WCDMA networks, the long name (up to 20 characters) of the network operator.
williamr@2
  1317
		*/
williamr@2
  1318
		TBuf<KNetworkLongNameSizeV2>     iLongName;
williamr@2
  1319
		/**
williamr@2
  1320
		On GSM/WCDMA networks, the type of network access.
williamr@2
  1321
		*/
williamr@2
  1322
		TNetworkAccess                   iAccess;
williamr@2
  1323
		/**
williamr@2
  1324
		On GSM/WCDMA networks, boolean indicating whether the location area is known.
williamr@2
  1325
		*/
williamr@2
  1326
		TBool                            iAreaKnown;
williamr@2
  1327
		/**
williamr@2
  1328
		On GSM/WCDMA networks, the location area code.  Only valid when iAreaKnown is true.		
williamr@2
  1329
		*/
williamr@2
  1330
		TUint                            iLocationAreaCode;
williamr@2
  1331
		/**
williamr@2
  1332
		On GSM/WCDMA networks, the cell identity code.  Only valid when iAreaKnown is true.		
williamr@2
  1333
		*/
williamr@2
  1334
		TUint                            iCellId;
williamr@2
  1335
		};
williamr@2
  1336
williamr@2
  1337
	/**
williamr@2
  1338
	A typedef'd packaged CTelephony::TNetworkInfoV2 for passing
williamr@2
  1339
	through a generic API method.
williamr@2
  1340
	*/
williamr@2
  1341
	typedef TPckg<TNetworkInfoV2> TNetworkInfoV2Pckg;
williamr@2
  1342
williamr@2
  1343
	/**
williamr@2
  1344
	Defines the name network name.
williamr@2
  1345
	TNetworkNameV2 differs from Version 1 (TNetworkNameV1) in that the
williamr@2
  1346
	length of iNetworkName is 20 (rather than 16).
williamr@2
  1347
williamr@2
  1348
	TNetworkNameV2 should be used in preference to TNetworkNameV1.  The
williamr@2
  1349
	network name provided in this V2 class is of the length supplied
williamr@2
  1350
	by the platform.  The V1 class' network name will be truncated if
williamr@2
  1351
	the platform provides a name longer than V1 name's limit.
williamr@2
  1352
williamr@2
  1353
   Note: This information is only available on GSM/WCDMA networks.
williamr@2
  1354
	*/
williamr@2
  1355
	class TNetworkNameV2 : public TEtelISVType
williamr@2
  1356
		{
williamr@2
  1357
	public:
williamr@2
  1358
		IMPORT_C TNetworkNameV2();
williamr@2
  1359
	public:
williamr@2
  1360
		/**
williamr@2
  1361
		The displayed name (up to 20 characters) of the network provider.
williamr@2
  1362
		*/
williamr@2
  1363
		TBuf<KNetworkLongNameSizeV2> iNetworkName;
williamr@2
  1364
		};
williamr@2
  1365
williamr@2
  1366
	/**
williamr@2
  1367
	A typedef'd packaged CTelephony::TNetworkNameV2 for passing through
williamr@2
  1368
	a generic API method.  TNetworkNameV2 differs from Version 1 in
williamr@2
  1369
	that the length of iNetworkName is 20 rather than 16.
williamr@2
  1370
	*/
williamr@2
  1371
	typedef TPckg<TNetworkNameV2> TNetworkNameV2Pckg;
williamr@2
  1372
williamr@2
  1373
//////////////////////////////////////////////////////////
williamr@2
  1374
// (Basic) Supplementary Services Functionality
williamr@2
  1375
//////////////////////////////////////////////////////////
williamr@2
  1376
williamr@2
  1377
	/**
williamr@2
  1378
	Supplementary Service status.
williamr@2
  1379
	*/
williamr@2
  1380
	enum TSupplServiceStatus
williamr@2
  1381
		{
williamr@2
  1382
		/**
williamr@2
  1383
		The supplementary service is currently active and operative.
williamr@2
  1384
		*/
williamr@2
  1385
		EStatusActive,
williamr@2
  1386
		/**
williamr@2
  1387
		The supplementary service is currently deactivated or quiescent.
williamr@2
  1388
		*/
williamr@2
  1389
		ENotActive,
williamr@2
  1390
		/**
williamr@2
  1391
		In GSM/WCDMA mode, the supplementary service is not provisioned.
williamr@2
  1392
		In CDMA mode, this value has no meaning.
williamr@2
  1393
		*/
williamr@2
  1394
		ENotProvisioned,
williamr@2
  1395
		/**
williamr@2
  1396
		In GSM/WCDMA mode, the supplementary service is not available in serving network.
williamr@2
  1397
		In CDMA mode, the supplementary service is not available in the phone.
williamr@2
  1398
		*/
williamr@2
  1399
		ENotAvailable,
williamr@2
  1400
		/**
williamr@2
  1401
		The phone can not determine supplementary service status.
williamr@2
  1402
		*/
williamr@2
  1403
		EUnknown
williamr@2
  1404
		};
williamr@2
  1405
williamr@2
  1406
	/**
williamr@2
  1407
	Call Forwarding conditions.
williamr@2
  1408
	*/
williamr@2
  1409
	enum TCallForwardingCondition
williamr@2
  1410
		{
williamr@2
  1411
		/**
williamr@2
  1412
		All calls to this subscriber are forwarded.
williamr@2
  1413
		*/
williamr@2
  1414
		ECallForwardingUnconditional,
williamr@2
  1415
		/**
williamr@2
  1416
		Calls are forwarded when this subscriber is busy.
williamr@2
  1417
		*/
williamr@2
  1418
		ECallForwardingBusy,
williamr@2
  1419
		/**
williamr@2
  1420
		Calls are forwarded when this subscriber does not reply within a timeout period.
williamr@2
  1421
		*/
williamr@2
  1422
		ECallForwardingNoReply,
williamr@2
  1423
		/**
williamr@2
  1424
		Calls are forwarded when this subscriber is unreachable.
williamr@2
  1425
		*/
williamr@2
  1426
		ECallForwardingNotReachable
williamr@2
  1427
		};
williamr@2
  1428
williamr@2
  1429
	class TCallForwardingSupplServicesV1 : public TEtelISVType
williamr@2
  1430
	/**
williamr@2
  1431
	Defines information about the call forwarding service.
williamr@2
  1432
williamr@2
  1433
    Note: This information is only available on GSM/WCDMA networks.
williamr@2
  1434
	*/
williamr@2
  1435
		{
williamr@2
  1436
	public:
williamr@2
  1437
		IMPORT_C TCallForwardingSupplServicesV1();
williamr@2
  1438
	public:
williamr@2
  1439
		/**
williamr@2
  1440
		The status of the call forwarding supplementary service.
williamr@2
  1441
		It applies to the condition in iCallForwardingCondition and
williamr@2
  1442
		to the line specified to CTelephony::GetCallForwardingStatus().
williamr@2
  1443
		*/
williamr@2
  1444
		TSupplServiceStatus iCallForwarding;
williamr@2
  1445
		/**
williamr@2
  1446
		The provisioned call forwarding condition to which iCallForwarding applies.
williamr@2
  1447
		*/
williamr@2
  1448
		TCallForwardingCondition iCallForwardingCondition;
williamr@2
  1449
		};
williamr@2
  1450
williamr@2
  1451
	/**
williamr@2
  1452
	A typedef'd packaged CTelephony::TCallForwardingSupplServicesV1 for passing through a generic API method.
williamr@2
  1453
	*/
williamr@2
  1454
	typedef TPckg<TCallForwardingSupplServicesV1> TCallForwardingSupplServicesV1Pckg;
williamr@2
  1455
williamr@2
  1456
williamr@2
  1457
	/**
williamr@2
  1458
	Call Barring conditions.
williamr@2
  1459
	*/
williamr@2
  1460
	enum TCallBarringCondition
williamr@2
  1461
		{
williamr@2
  1462
		/**
williamr@2
  1463
		All incoming calls to this subscriber are barred (BAIC).
williamr@2
  1464
		*/
williamr@2
  1465
		EBarAllIncoming,
williamr@2
  1466
		/**
williamr@2
  1467
		All incoming calls to this subscriber are barred when roaming outside the home PLMN country (BAIC-roam).
williamr@2
  1468
		*/
williamr@2
  1469
		EBarIncomingRoaming,
williamr@2
  1470
		/**
williamr@2
  1471
		All outgoing calls by this subscriber are barred (BAOC).
williamr@2
  1472
		*/
williamr@2
  1473
		EBarAllOutgoing,
williamr@2
  1474
		/**
williamr@2
  1475
		All outgoing international calls by this subscriber are barred (BOIC).
williamr@2
  1476
		*/
williamr@2
  1477
		EBarOutgoingInternational,
williamr@2
  1478
		/**
williamr@2
  1479
		All outgoing international calls except those directed to the home PLMN country by this subscriber are barred (BOIC-ExHC).
williamr@2
  1480
		*/
williamr@2
  1481
		EBarOutgoingInternationalExHC
williamr@2
  1482
		};
williamr@2
  1483
williamr@2
  1484
	class TCallBarringSupplServicesV1 : public TEtelISVType
williamr@2
  1485
	/**
williamr@2
  1486
	Defines information about the call barring service.
williamr@2
  1487
	*/
williamr@2
  1488
		{
williamr@2
  1489
	public:
williamr@2
  1490
		IMPORT_C TCallBarringSupplServicesV1();
williamr@2
  1491
	public:
williamr@2
  1492
		/**
williamr@2
  1493
		The status of the call barring supplementary service.
williamr@2
  1494
		It applies to the condition in iCallBarringCondition and
williamr@2
  1495
		to the service group specified to CTelephony::GetCallBarringStatus().
williamr@2
  1496
		*/
williamr@2
  1497
		TSupplServiceStatus iCallBarring;
williamr@2
  1498
		/**
williamr@2
  1499
	    The provisioned call barring condition to which iCallBarring applies.
williamr@2
  1500
		*/
williamr@2
  1501
		TCallBarringCondition iCallBarringCondition;
williamr@2
  1502
		};
williamr@2
  1503
williamr@2
  1504
	/**
williamr@2
  1505
	A typedef'd packaged CTelephony::TCallBarringSupplServicesV1 for passing through a generic API method.
williamr@2
  1506
	*/
williamr@2
  1507
	typedef TPckg<TCallBarringSupplServicesV1> TCallBarringSupplServicesV1Pckg;
williamr@2
  1508
williamr@2
  1509
	class TCallWaitingSupplServicesV1 : public TEtelISVType
williamr@2
  1510
	/**
williamr@2
  1511
	Defines information about the call waiting service.
williamr@2
  1512
	*/
williamr@2
  1513
		{
williamr@2
  1514
	public:
williamr@2
  1515
		IMPORT_C TCallWaitingSupplServicesV1();
williamr@2
  1516
	public:
williamr@2
  1517
		/**
williamr@2
  1518
		The status of the call waiting supplementary service
williamr@2
  1519
		for the service group specified to CTelephony::GetCallWaitingStatus().
williamr@2
  1520
		*/
williamr@2
  1521
		TSupplServiceStatus iCallWaiting;
williamr@2
  1522
		};
williamr@2
  1523
williamr@2
  1524
	/**
williamr@2
  1525
	A typedef'd packaged CTelephony::TCallWaitingSupplServicesV1 for passing through a generic API method.
williamr@2
  1526
	*/
williamr@2
  1527
	typedef TPckg<TCallWaitingSupplServicesV1> TCallWaitingSupplServicesV1Pckg;
williamr@2
  1528
williamr@2
  1529
	/**
williamr@2
  1530
	Phone ID services.
williamr@2
  1531
	*/
williamr@2
  1532
	enum TIdentityService
williamr@2
  1533
		{
williamr@2
  1534
		/**
williamr@2
  1535
		The identity service is unspecified.
williamr@2
  1536
		*/
williamr@2
  1537
		EIdServiceUnspecified,
williamr@2
  1538
		/**
williamr@2
  1539
		The caller's ID is presented to the called party.
williamr@2
  1540
		*/
williamr@2
  1541
		EIdServiceCallerPresentation,
williamr@2
  1542
		/**
williamr@2
  1543
		The caller's ID is restricted to the called party.
williamr@2
  1544
		*/
williamr@2
  1545
		EIdServiceCallerRestriction
williamr@2
  1546
		};
williamr@2
  1547
williamr@2
  1548
	/**
williamr@2
  1549
	Service status of the Phone ID services.
williamr@2
  1550
	*/
williamr@2
  1551
	enum TIdentityServiceStatus
williamr@2
  1552
		{
williamr@2
  1553
		/**
williamr@2
  1554
		The interrogated identity service is provisioned and permanently active.
williamr@2
  1555
		*/
williamr@2
  1556
		EIdServiceActivePermanent,
williamr@2
  1557
		/**
williamr@2
  1558
		The interrogated identity service is provisioned and active.
williamr@2
  1559
		By default, the number is restricted unless overridden by the user.
williamr@2
  1560
		*/
williamr@2
  1561
		EIdServiceActiveDefaultRestricted,
williamr@2
  1562
		/**
williamr@2
  1563
		The interrogated identity service is provisioned and active.
williamr@2
  1564
		By default, the number is displayed unless specifically restricted by the user.
williamr@2
  1565
		*/
williamr@2
  1566
		EIdServiceActiveDefaultAllowed,
williamr@2
  1567
		/**
williamr@2
  1568
		The interrogated identity service is not provisioned.
williamr@2
  1569
		*/
williamr@2
  1570
		EIdServiceNotProvisioned,
williamr@2
  1571
		/**
williamr@2
  1572
		The status of the interrogated Identity service is unknown.
williamr@2
  1573
		*/
williamr@2
  1574
		EIdServiceUnknown
williamr@2
  1575
		};
williamr@2
  1576
williamr@2
  1577
	class TIdentityServiceV1 : public TEtelISVType
williamr@2
  1578
	/**
williamr@2
  1579
	Defines the call identity service status.
williamr@2
  1580
williamr@2
  1581
    Note: This information is only available on GSM/WCDMA networks.
williamr@2
  1582
	*/
williamr@2
  1583
		{
williamr@2
  1584
	public:
williamr@2
  1585
		IMPORT_C TIdentityServiceV1();
williamr@2
  1586
	public:
williamr@2
  1587
		/**
williamr@2
  1588
		The status of the call identity service.
williamr@2
  1589
		*/
williamr@2
  1590
		TIdentityServiceStatus iIdentityStatus;
williamr@2
  1591
		};
williamr@2
  1592
williamr@2
  1593
	/**
williamr@2
  1594
	A typedef'd packaged CTelephony::TIdentityServiceV1 for passing through a generic API method.
williamr@2
  1595
	*/
williamr@2
  1596
	typedef TPckg<TIdentityServiceV1> TIdentityServiceV1Pckg;
williamr@2
  1597
williamr@2
  1598
	/**
williamr@2
  1599
	Service group identifier.
williamr@2
  1600
	*/
williamr@2
  1601
	enum TServiceGroup
williamr@2
  1602
		{
williamr@2
  1603
		/**
williamr@2
  1604
		Voice service group
williamr@2
  1605
		*/
williamr@2
  1606
		EVoiceService,
williamr@2
  1607
		/**
williamr@2
  1608
		Fax service group
williamr@2
  1609
		*/
williamr@2
  1610
		EFaxService,
williamr@2
  1611
		/**
williamr@2
  1612
		Data service group
williamr@2
  1613
		*/
williamr@2
  1614
		EDataService
williamr@2
  1615
		};
williamr@2
  1616
williamr@2
  1617
	/**
williamr@2
  1618
	Cancel apending request
williamr@2
  1619
	*/
williamr@2
  1620
	enum TCancellationRequest
williamr@2
  1621
		{
williamr@2
  1622
		/**
williamr@2
  1623
		Cancel a pending GetPhoneId request.
williamr@2
  1624
		*/
williamr@2
  1625
		EGetPhoneIdCancel,                             // 0
williamr@2
  1626
		/**
williamr@2
  1627
		Cancel a pending GetSubscriberId request.
williamr@2
  1628
		*/
williamr@2
  1629
		EGetSubscriberIdCancel,                        // 1
williamr@2
  1630
		/**
williamr@2
  1631
		Cancel a pending GetFlightMode request.
williamr@2
  1632
		*/
williamr@2
  1633
		EGetFlightModeCancel,                          // 2
williamr@2
  1634
		/**
williamr@2
  1635
		Cancel a pending FlightModeChange request.
williamr@2
  1636
		*/
williamr@2
  1637
		EFlightModeChangeCancel,                       // 3
williamr@2
  1638
		/**
williamr@2
  1639
		Cancel a pending GetIndicator request.
williamr@2
  1640
		*/
williamr@2
  1641
		EGetIndicatorCancel,                           // 4
williamr@2
  1642
		/**
williamr@2
  1643
		Cancel a pending IndicatorChange request.
williamr@2
  1644
		*/
williamr@2
  1645
		EIndicatorChangeCancel,                        // 5
williamr@2
  1646
		/**
williamr@2
  1647
		Cancel a pending GetBatteryInfo request.
williamr@2
  1648
		*/
williamr@2
  1649
		EGetBatteryInfoCancel,                         // 6
williamr@2
  1650
		/**
williamr@2
  1651
		Cancel a pending BatteryInfoChange request.
williamr@2
  1652
		*/
williamr@2
  1653
		EBatteryInfoChangeCancel,                      // 7
williamr@2
  1654
		/**
williamr@2
  1655
		Cancel a pending GetSignalStrength request.
williamr@2
  1656
		*/
williamr@2
  1657
		EGetSignalStrengthCancel,                      // 8
williamr@2
  1658
		/**
williamr@2
  1659
		Cancel a pending SignalStrengthChange request.
williamr@2
  1660
		*/
williamr@2
  1661
		ESignalStrengthChangeCancel,                   // 9
williamr@2
  1662
		/**
williamr@2
  1663
		Cancel a pending GetLockInfo request.
williamr@2
  1664
		*/
williamr@2
  1665
		EGetLockInfoCancel,                            // 10
williamr@2
  1666
		/**
williamr@2
  1667
		Cancel a pending Pin 1 LockInfoChange request.
williamr@2
  1668
		*/
williamr@2
  1669
		EPin1LockInfoChangeCancel,                     // 11
williamr@2
  1670
		/**
williamr@2
  1671
		Cancel a pending Pin 2 LockInfoChange request.
williamr@2
  1672
		*/
williamr@2
  1673
		EPin2LockInfoChangeCancel,                     // 12
williamr@2
  1674
		/**
williamr@2
  1675
		Cancel a pending VoiceLineStatusChange request.
williamr@2
  1676
		*/
williamr@2
  1677
		EVoiceLineStatusChangeCancel,                  // 13
williamr@2
  1678
		/**
williamr@2
  1679
		Cancel a pending Call1StatusChange request.
williamr@2
  1680
		*/
williamr@2
  1681
		EOwnedCall1StatusChangeCancel,                 // 14
williamr@2
  1682
		/**
williamr@2
  1683
		Cancel a pending Call2StatusChange request.
williamr@2
  1684
		*/
williamr@2
  1685
		EOwnedCall2StatusChangeCancel,                 // 15
williamr@2
  1686
		/**
williamr@2
  1687
		Cancel a pending OwnedCall1RemotePartyInfoChange request.
williamr@2
  1688
		*/
williamr@2
  1689
		EOwnedCall1RemotePartyInfoChangeCancel,        // 16
williamr@2
  1690
		/**
williamr@2
  1691
		Cancel a pending OwnedCall2RemotePartyInfoChange request.
williamr@2
  1692
		*/
williamr@2
  1693
		EOwnedCall2RemotePartyInfoChangeCancel,        // 17
williamr@2
  1694
		/**
williamr@2
  1695
		Cancel a pending SendDTMFTones request.
williamr@2
  1696
		*/
williamr@2
  1697
		ESendDTMFTonesCancel,                          // 18
williamr@2
  1698
		/**
williamr@2
  1699
		Cancel a pending DialNewCall request.
williamr@2
  1700
		*/
williamr@2
  1701
		EDialNewCallCancel,                            // 19
williamr@2
  1702
		/**
williamr@2
  1703
		Cancel a pending Hold request.
williamr@2
  1704
		*/
williamr@2
  1705
		EHoldCancel,                                   // 20
williamr@2
  1706
		/**
williamr@2
  1707
		Cancel a pending Resume request.
williamr@2
  1708
		*/
williamr@2
  1709
		EResumeCancel,                                 // 21
williamr@2
  1710
		/**
williamr@2
  1711
		Cancel a pending Swap request.
williamr@2
  1712
		*/
williamr@2
  1713
		ESwapCancel,                                   // 22
williamr@2
  1714
		/**
williamr@2
  1715
		Cancel a pending Hangup request.
williamr@2
  1716
		*/
williamr@2
  1717
		EHangupCancel,                                 // 23
williamr@2
  1718
		/**
williamr@2
  1719
		Cancel a pending AnswerIncomingCall request.
williamr@2
  1720
		*/
williamr@2
  1721
		EAnswerIncomingCallCancel,                     // 24
williamr@2
  1722
		/**
williamr@2
  1723
		Cancel a pending GetNetworkRegistrationStatus request.
williamr@2
  1724
		*/
williamr@2
  1725
		EGetNetworkRegistrationStatusCancel,           // 25
williamr@2
  1726
		/**
williamr@2
  1727
		Cancel a pending NetworkRegistrationStatusChange request.
williamr@2
  1728
		*/
williamr@2
  1729
		ENetworkRegistrationStatusChangeCancel,        // 26
williamr@2
  1730
		/**
williamr@2
  1731
		Cancel a pending GetCurrentNetworkInfo request.
williamr@2
  1732
		*/
williamr@2
  1733
		EGetCurrentNetworkInfoCancel,                  // 27
williamr@2
  1734
		/**
williamr@2
  1735
		Cancel a pending CurrentNetworkInfoChange request.
williamr@2
  1736
		*/
williamr@2
  1737
		ECurrentNetworkInfoChangeCancel,               // 28
williamr@2
  1738
		/**
williamr@2
  1739
		Cancel a pending GetCurrentNetworkName request.
williamr@2
  1740
		*/
williamr@2
  1741
		EGetCurrentNetworkNameCancel,                  // 29
williamr@2
  1742
		/**
williamr@2
  1743
		Cancel a pending GetOperatorName request.
williamr@2
  1744
		*/
williamr@2
  1745
		EGetOperatorNameCancel,                        // 30
williamr@2
  1746
		/**
williamr@2
  1747
		Cancel a pending GetCallForwardingStatus request.
williamr@2
  1748
		*/
williamr@2
  1749
		EGetCallForwardingStatusCancel,                // 31
williamr@2
  1750
		/**
williamr@2
  1751
		Cancel a pending GetCallBarringStatus request.
williamr@2
  1752
		*/
williamr@2
  1753
		EGetCallBarringStatusCancel,                   // 32
williamr@2
  1754
		/**
williamr@2
  1755
		Cancel a pending GetCallWaitingStatus request.
williamr@2
  1756
		*/
williamr@2
  1757
		EGetCallWaitingStatusCancel,                   // 33
williamr@2
  1758
		/**
williamr@2
  1759
		Cancel a pending GetIdentityServiceStatus request.
williamr@2
  1760
		*/
williamr@2
  1761
	 	EGetIdentityServiceStatusCancel,               // 34
williamr@2
  1762
		/**
williamr@2
  1763
		Cancel a pending FaxLineStatusChange request.
williamr@2
  1764
		*/
williamr@2
  1765
	 	EFaxLineStatusChangeCancel,                    // 35
williamr@2
  1766
		/**
williamr@2
  1767
		Cancel a pending DataLineStatusChange request.
williamr@2
  1768
		*/
williamr@2
  1769
	 	EDataLineStatusChangeCancel                    // 36
williamr@2
  1770
		};
williamr@2
  1771
williamr@2
  1772
//////////////////////////////////////////////////////////
williamr@2
  1773
// Notification Functionality
williamr@2
  1774
//////////////////////////////////////////////////////////
williamr@2
  1775
williamr@2
  1776
	/**
williamr@2
  1777
	Notification events
williamr@2
  1778
	*/
williamr@2
  1779
	enum TNotificationEvent
williamr@2
  1780
		{
williamr@2
  1781
		/**
williamr@2
  1782
		Register interest for receiving a notification for flight mode changes.
williamr@2
  1783
williamr@2
  1784
        New flight mode returned in a CTelephony::TFlightModeV1Pckg, a packaged CTelephony::TFlightModeV1.
williamr@2
  1785
williamr@2
  1786
		Pass CancelAsync() CTelephony::EFlightModeChangeCancel to cancel.
williamr@2
  1787
		
williamr@2
  1788
		@capability None
williamr@2
  1789
		@ref CTelephony::NotifyChange
williamr@2
  1790
		*/
williamr@2
  1791
		EFlightModeChange,                   // 0
williamr@2
  1792
		/**
williamr@2
  1793
		Register interest for receiving a notification for phone indicator changes.
williamr@2
  1794
williamr@2
  1795
		New indicators returned in a CTelephony::TIndicatorV1Pckg, a packaged CTelephony::TIndicatorV1.
williamr@2
  1796
williamr@2
  1797
        Pass CancelAsync() CTelephony::EIndicatorChangeCancel to cancel.
williamr@2
  1798
		
williamr@2
  1799
		@capability None
williamr@2
  1800
		@ref CTelephony::NotifyChange
williamr@2
  1801
		*/
williamr@2
  1802
		EIndicatorChange,                    // 1
williamr@2
  1803
		/**
williamr@2
  1804
		Register interest for receiving a notification for Battery information changes.
williamr@2
  1805
williamr@2
  1806
		New Battery information returned in a CTelephony::TBatteryInfoV1Pckg, a packaged CTelephony::TBatteryInfoV1.
williamr@2
  1807
williamr@2
  1808
        Pass CancelAsync() CTelephony::EBatteryInfoChangeCancel to cancel.
williamr@2
  1809
		
williamr@2
  1810
		@capability None
williamr@2
  1811
		@ref CTelephony::NotifyChange
williamr@2
  1812
		*/
williamr@2
  1813
		EBatteryInfoChange,                  // 2
williamr@2
  1814
		/**
williamr@2
  1815
		Register interest for receiving a notification for Signal Strength changes.
williamr@2
  1816
williamr@2
  1817
		New Signal Strength returned in a CTelephony::TSignalStrengthV1Pckg, a packaged CTelephony::TSignalStrengthV1.
williamr@2
  1818
williamr@2
  1819
        Pass CancelAsync() CTelephony::ESignalStrengthChangeCancel to cancel.
williamr@2
  1820
		
williamr@2
  1821
		@capability None
williamr@2
  1822
		@ref CTelephony::NotifyChange
williamr@2
  1823
		*/
williamr@2
  1824
		ESignalStrengthChange,               // 3
williamr@2
  1825
		/**
williamr@2
  1826
		Register interest for receiving a notification for Icc Pin1 Lock Information changes.
williamr@2
  1827
williamr@2
  1828
		New Icc Pin1 Lock Information returned in a CTelephony::TIccLockInfoV1Pckg, a packaged CTelephony::TIccLockInfoV1.
williamr@2
  1829
williamr@2
  1830
        Pass CancelAsync() CTelephony::EPin1LockInfoChangeCancel to cancel.
williamr@2
  1831
		
williamr@2
  1832
		@capability ReadDeviceData
williamr@2
  1833
		@ref CTelephony::NotifyChange
williamr@2
  1834
		*/
williamr@2
  1835
		EPin1LockInfoChange,                 // 4
williamr@2
  1836
		/**
williamr@2
  1837
		Register interest for receiving a notification for Icc Pin2 Lock Information changes.
williamr@2
  1838
williamr@2
  1839
		New Icc Pin2 Lock Information returned in a CTelephony::TIccLockInfoV1Pckg, a packaged CTelephony::TIccLockInfoV1.
williamr@2
  1840
williamr@2
  1841
        Pass CancelAsync() CTelephony::EPin2LockInfoChangeCancel to cancel.
williamr@2
  1842
		
williamr@2
  1843
		@capability ReadDeviceData
williamr@2
  1844
		@ref CTelephony::NotifyChange
williamr@2
  1845
		*/
williamr@2
  1846
		EPin2LockInfoChange,                 // 5
williamr@2
  1847
		/**
williamr@2
  1848
		Register interest for receiving a notification for Voice Line Status changes.
williamr@2
  1849
williamr@2
  1850
		New Voice Line Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
williamr@2
  1851
williamr@2
  1852
        Pass CancelAsync() CTelephony::EVoiceLineStatusChangeCancel to cancel.
williamr@2
  1853
		
williamr@2
  1854
		@capability None
williamr@2
  1855
		@ref CTelephony::NotifyChange
williamr@2
  1856
		*/
williamr@2
  1857
		EVoiceLineStatusChange,              // 6
williamr@2
  1858
		/**
williamr@2
  1859
		Register interest for receiving a notification for owned Call 1 Status changes.
williamr@2
  1860
williamr@2
  1861
		New Call 1 Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
williamr@2
  1862
williamr@2
  1863
        Pass CancelAsync() CTelephony::EOwnedCall1StatusChangeCancel to cancel.
williamr@2
  1864
		
williamr@2
  1865
		@capability None
williamr@2
  1866
		@ref CTelephony::NotifyChange
williamr@2
  1867
		*/
williamr@2
  1868
		EOwnedCall1StatusChange,             // 7
williamr@2
  1869
		/**
williamr@2
  1870
		Register interest for receiving a notification for owned Call 2 Status changes.
williamr@2
  1871
williamr@2
  1872
		New Call 2 Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
williamr@2
  1873
williamr@2
  1874
        Pass CancelAsync() CTelephony::EOwnedCall2StatusChangeCancel to cancel.
williamr@2
  1875
		
williamr@2
  1876
		@capability None
williamr@2
  1877
		@ref CTelephony::NotifyChange
williamr@2
  1878
		*/
williamr@2
  1879
		EOwnedCall2StatusChange,             // 8
williamr@2
  1880
		/**
williamr@2
  1881
		Register interest for receiving a notification for Call 1 Remote Party Info changes.
williamr@2
  1882
williamr@2
  1883
		New Call 1 Remote Party Info returned in a CTelephony::TRemotePartyInfoV1Pckg, a packaged CTelephony::TRemotePartyInfoV1.
williamr@2
  1884
williamr@2
  1885
        Pass CancelAsync() CTelephony::EOwnedCall1RemotePartyInfoChangeCancel to cancel.
williamr@2
  1886
		
williamr@2
  1887
		@capability ReadUserData
williamr@2
  1888
		@ref CTelephony::NotifyChange
williamr@2
  1889
		*/
williamr@2
  1890
		EOwnedCall1RemotePartyInfoChange,    // 9
williamr@2
  1891
		/**
williamr@2
  1892
		Register interest for receiving a notification for Call 2 Remote Party Info changes.
williamr@2
  1893
williamr@2
  1894
		New Call 2 Remote Party Info returned in a CTelephony::TRemotePartyInfoV1Pckg, a packaged CTelephony::TRemotePartyInfoV1.
williamr@2
  1895
williamr@2
  1896
        Pass CancelAsync() CTelephony::EOwnedCall2RemotePartyInfoChangeCancel to cancel.
williamr@2
  1897
		
williamr@2
  1898
		@capability ReadUserData
williamr@2
  1899
		@ref CTelephony::NotifyChange
williamr@2
  1900
		*/
williamr@2
  1901
		EOwnedCall2RemotePartyInfoChange,    // 10
williamr@2
  1902
		/**
williamr@2
  1903
		Register interest for receiving a notification for Network registration status changes.
williamr@2
  1904
williamr@2
  1905
		New Network registration status returned in a CTelephony::TNetworkRegistrationV1Pckg, a packaged CTelephony::TNetworkRegistrationV1.
williamr@2
  1906
williamr@2
  1907
        Pass CancelAsync() CTelephony::ENetworkRegistrationStatusChangeCancel to cancel.
williamr@2
  1908
		
williamr@2
  1909
		@capability None
williamr@2
  1910
		@ref CTelephony::NotifyChange
williamr@2
  1911
		*/
williamr@2
  1912
		ENetworkRegistrationStatusChange,    // 11
williamr@2
  1913
		/**
williamr@2
  1914
		Register interest for receiving a notification for Network information changes.
williamr@2
  1915
williamr@2
  1916
		New Network information returned in a CTelephony::TNetworkInfoV1Pckg, a packaged CTelephony::TNetworkInfoV1.
williamr@2
  1917
williamr@2
  1918
        Pass CancelAsync() CTelephony::ECurrentNetworkInfoChangeCancel to cancel.
williamr@2
  1919
		
williamr@2
  1920
		@capability ReadDeviceData
williamr@2
  1921
		@ref CTelephony::NotifyChange
williamr@2
  1922
		*/
williamr@2
  1923
		ECurrentNetworkInfoChange,           // 12
williamr@2
  1924
		/**
williamr@2
  1925
		Register interest for receiving a notification for Fax Line Status changes.
williamr@2
  1926
williamr@2
  1927
		New Fax Line Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
williamr@2
  1928
williamr@2
  1929
        Pass CancelAsync() CTelephony::EFaxLineStatusChangeCancel to cancel.
williamr@2
  1930
		
williamr@2
  1931
		@capability None
williamr@2
  1932
		@ref CTelephony::NotifyChange
williamr@2
  1933
		*/
williamr@2
  1934
		EFaxLineStatusChange,                // 13
williamr@2
  1935
		/**
williamr@2
  1936
		Register interest for receiving a notification for Data Line Status changes.
williamr@2
  1937
williamr@2
  1938
		New Data Line Status returned in a CTelephony::TCallStatusV1Pckg, a packaged CTelephony::TCallStatusV1.
williamr@2
  1939
williamr@2
  1940
        Pass CancelAsync() CTelephony::EDataLineStatusChangeCancel to cancel.
williamr@2
  1941
		
williamr@2
  1942
		@capability None
williamr@2
  1943
		@ref CTelephony::NotifyChange
williamr@2
  1944
		*/
williamr@2
  1945
		EDataLineStatusChange                // 14
williamr@2
  1946
		};
williamr@2
  1947
williamr@2
  1948
public:
williamr@2
  1949
	// Constructors
williamr@2
  1950
	IMPORT_C static CTelephony* NewLC();
williamr@2
  1951
	IMPORT_C static CTelephony* NewL();
williamr@2
  1952
williamr@2
  1953
	// Destructor - virtual and class not intended
williamr@2
  1954
	// for derivation, so not exported
williamr@2
  1955
williamr@2
  1956
	~CTelephony();
williamr@2
  1957
williamr@2
  1958
	// General Functionality
williamr@2
  1959
	inline TVersion Version() const;
williamr@2
  1960
williamr@2
  1961
	// Phone Functionality
williamr@2
  1962
	IMPORT_C void GetPhoneId(TRequestStatus& aReqStatus, TDes8& aId) const;
williamr@2
  1963
	IMPORT_C void GetSubscriberId(TRequestStatus& aReqStatus, TDes8& aId) const;
williamr@2
  1964
	IMPORT_C void GetFlightMode(TRequestStatus& aReqStatus, TDes8& aMode) const;
williamr@2
  1965
	IMPORT_C void GetIndicator(TRequestStatus& aReqStatus, TDes8& aIndicator) const;
williamr@2
  1966
	IMPORT_C void GetBatteryInfo(TRequestStatus& aReqStatus, TDes8& aBatteryInfo) const;
williamr@2
  1967
	IMPORT_C void GetSignalStrength(TRequestStatus& aReqStatus, TDes8& aSignalStrength) const;
williamr@2
  1968
	IMPORT_C void GetLockInfo(TRequestStatus& aReqStatus, const TIccLock& aLock, TDes8& aLockInfo) const;
williamr@2
  1969
	IMPORT_C void SendDTMFTones(TRequestStatus& aReqStatus, const TDesC& aTones) const;
williamr@2
  1970
	// Line Functionality
williamr@2
  1971
	IMPORT_C TInt GetLineStatus(const TPhoneLine& aLine, TDes8& aStatus) const;
williamr@2
  1972
	IMPORT_C TInt GetCallInfo(TDes8& aCallSelect, TDes8& aCallInfo, TDes8& aRemoteInfo) const;
williamr@2
  1973
	// Call Functionality
williamr@2
  1974
	IMPORT_C void DialNewCall(TRequestStatus& aStatus, TDes8& aCallParams,
williamr@2
  1975
		const TTelNumber& aTelNumber, TCallId& aCallId, const TPhoneLine aLine=EVoiceLine) const;
williamr@2
  1976
	IMPORT_C TInt GetCallDynamicCaps(const TCallId& aCallId, TDes8& aCallCaps) const;
williamr@2
  1977
	IMPORT_C TInt GetCallStatus(const TCallId& aCallId, TDes8& aCallStatus) const;
williamr@2
  1978
	IMPORT_C void Hold(TRequestStatus& aReqStatus, const TCallId& aCallId) const;
williamr@2
  1979
	IMPORT_C void Resume(TRequestStatus& aReqStatus, const TCallId& aCallId) const;
williamr@2
  1980
	IMPORT_C void Swap(TRequestStatus& aReqStatus, const TCallId& aCallId1,
williamr@2
  1981
		const TCallId& aCallId2) const;
williamr@2
  1982
	IMPORT_C void Hangup(TRequestStatus& aReqStatus, const TCallId& aCallId) const;
williamr@2
  1983
	IMPORT_C void AnswerIncomingCall(TRequestStatus& aReqStatus, TCallId& aCallId,
williamr@2
  1984
		const TPhoneLine aLine=EVoiceLine) const;
williamr@2
  1985
	// Network Functionality
williamr@2
  1986
	IMPORT_C void GetNetworkRegistrationStatus(TRequestStatus& aReqStatus, TDes8& aStatus) const;
williamr@2
  1987
	IMPORT_C void GetCurrentNetworkInfo(TRequestStatus& aReqStatus, TDes8& aNetworkInfo) const;
williamr@2
  1988
	IMPORT_C void GetCurrentNetworkName(TRequestStatus& aReqStatus, TDes8& aNetworkName) const;
williamr@2
  1989
	IMPORT_C void GetOperatorName(TRequestStatus& aReqStatus, TDes8& aOperator) const;
williamr@2
  1990
 	// (Basic) Supplementary Services Functionality
williamr@2
  1991
	IMPORT_C void GetCallForwardingStatus(TRequestStatus& aRequestStatus, const	TCallForwardingCondition aCondition, TDes8& aSSInfo, const TServiceGroup aServiceGroup=EVoiceService) const;
williamr@2
  1992
	IMPORT_C void GetCallBarringStatus(TRequestStatus& aRequestStatus, const TCallBarringCondition aCondition, TDes8& aSSInfo, const TServiceGroup aServiceGroup=EVoiceService) const;
williamr@2
  1993
	IMPORT_C void GetCallWaitingStatus(TRequestStatus& aRequestStatus, TDes8& aSSInfo, const TServiceGroup aServiceGroup=EVoiceService) const;
williamr@2
  1994
	IMPORT_C void GetIdentityServiceStatus(TRequestStatus& aReqStatus, const TIdentityService& aService, TDes8& aStatus) const;
williamr@2
  1995
  	// Cancel Request Functionality
williamr@2
  1996
	IMPORT_C TInt CancelAsync(TCancellationRequest aCancel) const;
williamr@2
  1997
 	// Notification Functionality
williamr@2
  1998
	IMPORT_C void NotifyChange(TRequestStatus& aReqStatus, const TNotificationEvent& aEvent, TDes8& aDes) const;
williamr@2
  1999
williamr@2
  2000
	IMPORT_C TInt FindDeviceStatus(TInt& aCallStatus);
williamr@2
  2001
	IMPORT_C TInt EstablishDataCall(TInt& aDataChannel, const TDesC& aDialNumber);
williamr@2
  2002
	IMPORT_C void EstablishDataCall(TRequestStatus& aRequestStatus, TInt& aDataChannel, const TDesC& aDialNumber);
williamr@2
  2003
	IMPORT_C TInt TerminateDataCall();
williamr@2
  2004
	IMPORT_C TInt ReceiveDataCall(TInt& aDataChannel);
williamr@2
  2005
	IMPORT_C void ReceiveDataCall(TRequestStatus& aRequestStatus, TInt& aDataChannel);
williamr@2
  2006
	IMPORT_C void CancelEstablishDataCall();
williamr@2
  2007
	IMPORT_C void CancelReceiveDataCall();
williamr@2
  2008
williamr@2
  2009
private:
williamr@2
  2010
	CTelephony();	// C++ constructor - not exported. Called from NewLC()
williamr@2
  2011
	void ConstructL();	// second-phase constructor
williamr@2
  2012
	CTelephonyFunctions*	iTelephonyFunctions;	///< Object to do the real work
williamr@2
  2013
	};
williamr@2
  2014
williamr@2
  2015
#include <telephony.inl>
williamr@2
  2016
#endif	// ETEL3RDPARTY_H__