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