epoc32/include/etelpckt.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
     1.1 --- a/epoc32/include/etelpckt.h	Wed Mar 31 12:27:01 2010 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,1923 +0,0 @@
     1.4 -// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 -// All rights reserved.
     1.6 -// This component and the accompanying materials are made available
     1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     1.8 -// which accompanies this distribution, and is available
     1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
    1.10 -//
    1.11 -// Initial Contributors:
    1.12 -// Nokia Corporation - initial contribution.
    1.13 -//
    1.14 -// Contributors:
    1.15 -//
    1.16 -// Description:
    1.17 -// ETel Multimode Packet Data API 
    1.18 -// MBMS Broadcast,GPRS Release 97/98, CDMAOne, CDMA2000, Release 99 and Release 4.
    1.19 -// 
    1.20 -//
    1.21 -
    1.22 -#if !defined(__ETELPCKT_H__)
    1.23 -#define __ETELPCKT_H__
    1.24 -
    1.25 -#include <e32base.h>
    1.26 -#include <s32mem.h>
    1.27 -#include <etel.h>
    1.28 -#include <cdblen.h>
    1.29 -#include <exterror.h>
    1.30 -#include <etelutils.h>
    1.31 -#include <mbmstypes.h>
    1.32 -
    1.33 -//
    1.34 -//  Global constants and types
    1.35 -// 
    1.36 -
    1.37 -// General
    1.38 -// Passed into RTelServer::IsSupportedByModule()
    1.39 -/**
    1.40 -Unique Packet Data API Identifier for Packet API version 1.0.
    1.41 -
    1.42 -@publishedPartner
    1.43 -@released
    1.44 -*/
    1.45 -const TInt KETelExtPcktV1 = 4000;	
    1.46 -/**
    1.47 -Unique Packet Data API Identifier for Packet API version 2.0.
    1.48 -
    1.49 -@publishedPartner
    1.50 -@released
    1.51 -*/
    1.52 -
    1.53 -const TInt KETelExtPcktV2 = 8000;	 
    1.54 -
    1.55 -
    1.56 -/**
    1.57 -Unique Packet Data API Identifier for Packet API version 3.0.
    1.58 -aka 3GPP Release 5 support
    1.59 -
    1.60 -@publishedPartner
    1.61 -@released
    1.62 -*/
    1.63 -const TInt KETelExtPcktV3 = 12000;	 
    1.64 - 
    1.65 -
    1.66 -// GPRS-specific causes for Session Management (Annex I, 3GPP TS 24.008)
    1.67 -/** This cause is sent to the MS if it requests an IMSI attachment for GPRS services, 
    1.68 -but is not allowed to operate GPRS services.  
    1.69 -
    1.70 -@publishedPartner
    1.71 -@released
    1.72 -*/
    1.73 -const TInt KErrGprsServicesNotAllowed=KErrGsmMobilityManagementBase-7;
    1.74 -/** This cause is sent to the MS if it requests a combined IMSI attach for GPRS 
    1.75 -and non-GPRS services, but is not allowed to operate either of them. 
    1.76 -
    1.77 -@publishedPartner
    1.78 -@released
    1.79 -*/
    1.80 -const TInt KErrGprsAndNonGprsServicesNotAllowed=KErrGsmMobilityManagementBase-8;
    1.81 -/** This cause is sent to the MS when the network cannot derive the MS's identity 
    1.82 -from the P-TMSI in case of an inter-SGSN routing area update.  
    1.83 -
    1.84 -@publishedPartner
    1.85 -@released
    1.86 -*/
    1.87 -const TInt KErrGprsMSIdentityCannotBeDerivedByTheNetwork=KErrGsmMobilityManagementBase-9;
    1.88 -/** This cause is sent to the MS either if the network has implicitly detached 
    1.89 -the MS, e.g. some while after the Mobile reachable timer has expired, or if 
    1.90 -the GMM context data relating to the subscription does not exist in the SGSN, 
    1.91 -e.g. because of a SGSN restart.  
    1.92 -
    1.93 -@publishedPartner
    1.94 -@released
    1.95 -*/
    1.96 -const TInt KErrGprsMSImplicitlyDetached=KErrGsmMobilityManagementBase-10;
    1.97 -/** This cause is sent to the MS if it requests a combined GPRS attachment or routing 
    1.98 -is updating in a PLMN where the MSC is temporarily not reachable via the GPRS 
    1.99 -part of the GSM network.  
   1.100 -
   1.101 -@publishedPartner
   1.102 -@released
   1.103 -*/
   1.104 -const TInt KErrGprsMSCTemporarilyNotReachable=KErrGsmMobilityManagementBase-16;
   1.105 -/** The PDP context is deactivated because of a LLC or SNDCP failure.  
   1.106 -
   1.107 -@publishedPartner
   1.108 -@released
   1.109 -*/
   1.110 -const TInt KErrGprsLlcOrSndcpFailure=KErrGsmMobilityManagementBase-25;
   1.111 -/** Insufficient GPRS resources are available for the request to complete successfully.  
   1.112 -
   1.113 -@publishedPartner
   1.114 -@released
   1.115 -*/
   1.116 -const TInt KErrGprsInsufficientResources=KErrGsmMobilityManagementBase-26;
   1.117 -/** Access Point Name is either missing from the Activation request or is unknown.  
   1.118 -
   1.119 -@publishedPartner
   1.120 -@released
   1.121 -*/
   1.122 -const TInt KErrGprsMissingorUnknownAPN=KErrGsmMobilityManagementBase-27;
   1.123 -/** The PDP address supplied with the Activation request is unknown.  
   1.124 -
   1.125 -@publishedPartner
   1.126 -@released
   1.127 -*/
   1.128 -const TInt KErrGprsUnknownPDPAddress=KErrGsmMobilityManagementBase-28;
   1.129 -/** User authentication has failed.  
   1.130 -
   1.131 -@publishedPartner
   1.132 -@released
   1.133 -*/
   1.134 -const TInt KErrGprsUserAuthenticationFailure=KErrGsmMobilityManagementBase-29;
   1.135 -/** The GGSN has rejected the activation request for some reason.  
   1.136 -
   1.137 -@publishedPartner
   1.138 -@released
   1.139 -*/
   1.140 -const TInt KErrGprsActivationRejectedByGGSN=KErrGsmMobilityManagementBase-30;
   1.141 -/** The activation request has been rejected for an unspecified reason.  
   1.142 -
   1.143 -@publishedPartner
   1.144 -@released
   1.145 -*/
   1.146 -const TInt KErrGprsActivationRejected=KErrGsmMobilityManagementBase-31;
   1.147 -/** The requested service is not supported by the PLMN.
   1.148 -
   1.149 -@publishedPartner
   1.150 -@released
   1.151 -*/
   1.152 -const TInt KErrGprsServiceOptionNotSupported=KErrGsmMobilityManagementBase-32;
   1.153 -/** There is no active subscription to the requested service.
   1.154 -
   1.155 -@publishedPartner
   1.156 -@released
   1.157 -*/
   1.158 -const TInt KErrGprsRequestedServiceOptionNotSubscribed=KErrGsmMobilityManagementBase-33;
   1.159 -/** The service is temporarily out of order.
   1.160 -
   1.161 -@publishedPartner
   1.162 -@released
   1.163 -*/
   1.164 -const TInt KErrGprsServiceOptionTemporarilyOutOfOrder=KErrGsmMobilityManagementBase-34;
   1.165 -/** The NSAPI supplied with the activation request is not unique.  
   1.166 -
   1.167 -@publishedPartner
   1.168 -@released
   1.169 -*/
   1.170 -const TInt KErrGprsNSAPIAlreadyUsed=KErrGsmMobilityManagementBase-35;
   1.171 -/** The context has been deactivated successfully.  
   1.172 -
   1.173 -@publishedPartner
   1.174 -@released
   1.175 -*/
   1.176 -const TInt KErrGprsRegularContextDeactivation=KErrGsmMobilityManagementBase-36;
   1.177 -/** The Quality of Service requested has not been accepted.  
   1.178 -
   1.179 -@publishedPartner
   1.180 -@released
   1.181 -*/
   1.182 -const TInt KErrGprsQoSNotAccepted=KErrGsmMobilityManagementBase-37;	
   1.183 -/** The GPRS network is requesting reactivation of a context.  
   1.184 -
   1.185 -@publishedPartner
   1.186 -@released
   1.187 -*/
   1.188 -const TInt KErrGprsReactivationRequested=KErrGsmMobilityManagementBase-39;
   1.189 -/** The feature is not supported.  
   1.190 -
   1.191 -@publishedPartner
   1.192 -@released
   1.193 -*/
   1.194 -const TInt KErrGprsFeatureNotSupported=KErrGsmMobilityManagementBase-40;
   1.195 -/** There is a semantic error in the TFT operation.
   1.196 -
   1.197 -@publishedPartner
   1.198 -@released
   1.199 -*/
   1.200 -const TInt KErrGprsSemanticErrorInTFTOperation=KErrGsmMobilityManagementBase-41;
   1.201 -/** There is a syntactical error in the TFT operation.
   1.202 -
   1.203 -@publishedPartner
   1.204 -@released
   1.205 -*/
   1.206 -const TInt KErrGprsSyntacticalErrorInTFTOperation=KErrGsmMobilityManagementBase-42;
   1.207 -/** The PDP context activation request is not active. 
   1.208 -
   1.209 -@publishedPartner
   1.210 -@released
   1.211 -*/
   1.212 -const TInt KErrGprsUnknownPDPContext=KErrGsmMobilityManagementBase-43;
   1.213 -/** There is one or more semantic errors in packet filter(s) of the TFT.
   1.214 - 
   1.215 -@publishedPartner
   1.216 -@released
   1.217 -*/
   1.218 -const TInt KErrGprsSemanticErrorsInPacketFilters=KErrGsmMobilityManagementBase-44;
   1.219 -/** There is one or more syntactical errors in packet filter(s) of the TFT.
   1.220 -
   1.221 -@publishedPartner
   1.222 -@released
   1.223 -*/
   1.224 -const TInt KErrGprsSyntacticalErrorInPacketFilters=KErrGsmMobilityManagementBase-45;
   1.225 -/** The GPRS network has already activated a PDP context without TFT.
   1.226 -
   1.227 -@publishedPartner
   1.228 -@released
   1.229 -*/
   1.230 -const TInt KErrGprsPDPContextWithoutTFTAlreadyActivated=KErrGsmMobilityManagementBase-46;
   1.231 -
   1.232 -// UMTS-specific cause values for Call control (Annex H, 3GPP TS 24.008)
   1.233 -/** QoS not available.
   1.234 -
   1.235 -@publishedPartner
   1.236 -@released
   1.237 -*/
   1.238 -const TInt KErrUmtsQoSNotAvailable=KErrGsmMobilityManagementBase-49;
   1.239 -
   1.240 -/** Maximum number of PDP contexts supported by phone exceeded.  
   1.241 -
   1.242 -@publishedPartner
   1.243 -@released
   1.244 -*/
   1.245 -const TInt KErrUmtsMaxNumOfContextExceededByPhone=KErrGsmMobilityManagementBase-50;
   1.246 -/** Maximum number of PDP contexts supported by the network exceeded.  
   1.247 -
   1.248 -@publishedPartner
   1.249 -@released
   1.250 -*/
   1.251 -const TInt KErrUmtsMaxNumOfContextExceededByNetwork=KErrGsmMobilityManagementBase-51;
   1.252 -/** Phone is in offline mode.  
   1.253 -
   1.254 -@publishedPartner
   1.255 -@released
   1.256 -*/
   1.257 -const TInt KErrGprsOfflineMode=KErrGsmMobilityManagementBase-52;
   1.258 -/** 
   1.259 - * MBMS network support does not exist.
   1.260 - * @publishedPartner
   1.261 - * @released
   1.262 - */
   1.263 -const TInt KErrMbmsNotSupported=KErrGsmMobilityManagementBase-53;
   1.264 -/**
   1.265 - * Specific MBMS service is not available.  
   1.266 - * @publishedPartner
   1.267 - * @released
   1.268 - */
   1.269 -const TInt KErrMbmsServiceUnavailable=KErrGsmMobilityManagementBase-54;
   1.270 -/**
   1.271 - * Preempts low priority MBMS/Non-MBMS service.  
   1.272 - * @publishedPartner
   1.273 - * @released
   1.274 - */
   1.275 -const TInt KErrMbmsServicePreempted=KErrGsmMobilityManagementBase-55;
   1.276 -/**
   1.277 - * One or more invalid MBMS service entry supplied.  
   1.278 - * @publishedPartner
   1.279 - * @released
   1.280 - */
   1.281 -const TInt KErrMbmsImpreciseServiceEntries=KErrGsmMobilityManagementBase-56;
   1.282 -
   1.283 -class TPacketDataConfigBase 
   1.284 -/** Base class for the packet configuration classes.
   1.285 -
   1.286 -The Context configuration, QoS profile (Requested and Negotiated) and QoS 
   1.287 -Capabilities classes inherit from this class. It is outside the scope of all 
   1.288 -the Packet data classes. 
   1.289 -
   1.290 -To allow future configuration structures (e.g. TContextConfigWCDMA, 
   1.291 -TContextConfigPDC, etc.) to be added in such a way that a completely different 
   1.292 -structure may be defined and passed into the same functions as this one, all 
   1.293 -existing configuration structures are derived from this thin base class 
   1.294 -which provides just one function, ExtensionId(). This function returns the 
   1.295 -one protected member variable, iExtensionId. A new structure would define an 
   1.296 -associated new constant to be set in iExtensionId on construction, which would 
   1.297 -then be queried by the TSY prior to unpackaging the structure. 
   1.298 -
   1.299 -@see RPacketContext::TContextConfigCDMA 
   1.300 -@see RPacketContext::TContextConfigR99_R4  
   1.301 -@see RPacketContext::TContextConfig_R5
   1.302 -@see RPacketContext::TContextConfigMbmsV1
   1.303 -
   1.304 -@publishedPartner
   1.305 -@released
   1.306 -
   1.307 -*/
   1.308 -	{
   1.309 -public:
   1.310 -	/**
   1.311 -	Flags identifying the different packet networks.
   1.312 -	*/
   1.313 -	enum 
   1.314 -		{
   1.315 -		/**
   1.316 -		GPRS Release 97/98 packet network.
   1.317 -		*/
   1.318 -		KConfigGPRS= 0x01,				
   1.319 -		/**
   1.320 -		CDMA and CDMA2000 packet networks.
   1.321 -		*/
   1.322 -		KConfigCDMA = 0x02,		
   1.323 -		/**
   1.324 -		GPRS/UMTS Release 99 and UMTS Release 4 networks.
   1.325 -		*/ 
   1.326 -		KConfigRel99Rel4 = 0x04,
   1.327 -		/**
   1.328 -		UMTS/IMS 3GPP Release 5 networks.
   1.329 -		*/ 
   1.330 -		KConfigRel5 = 0x05,	
   1.331 -		/**
   1.332 -		MBMS networks
   1.333 -		*/
   1.334 -		KConfigMBMS = 0x06		
   1.335 -		};
   1.336 -		
   1.337 -	/** This member returns the type of class.
   1.338 -	
   1.339 -	@return The type of class. */
   1.340 -	inline TInt ExtensionId(){return iExtensionId;};
   1.341 -protected:
   1.342 -	/**
   1.343 -	Defines the type of class: either KConfigGPRS, KConfigCDMA or KConfigRel99Rel4,
   1.344 -	which identifies the type of packet network (GPRS R97/98, CDMA, Release 99 or 4 or 5)
   1.345 -	*/
   1.346 -	TInt iExtensionId;	
   1.347 -	};
   1.348 -
   1.349 -class TConnectionInfoBase 
   1.350 -/** Base class for the configuration info classes. It is outside the scope of 
   1.351 -all the Packet data classes. 
   1.352 -
   1.353 -To allow future connection information structures (e.g. TConnectionInfoV2, 
   1.354 -TConnectionInfoV3, etc.) to be added and as a result information carried by the 
   1.355 -structure can be increased. All information structures are derived from this 
   1.356 -thin base class which provides just one function, ExtensionId(). This function 
   1.357 -returns the protected member variable, iExtensionId. A new structure would 
   1.358 -define an associated new constant to be set in iExtensionId on construction, 
   1.359 -which would then be queried by the TSY prior to unpackaging the structure. 
   1.360 -
   1.361 -@see RPacketContext::TConnectionInfoV1
   1.362 -
   1.363 -@publishedPartner
   1.364 -@released
   1.365 -*/
   1.366 -	{
   1.367 -public:
   1.368 -	/**
   1.369 -	Flags identifying the different connection information structures
   1.370 -	*/
   1.371 -	enum 
   1.372 -		{
   1.373 -		/**
   1.374 -		Connection information version 1.
   1.375 -		*/
   1.376 -		KConnectionInfoV1 = 0x01
   1.377 -		};
   1.378 -		
   1.379 -	/** Return the type of class.
   1.380 -	*
   1.381 -	@return The version of class. 
   1.382 -	*/
   1.383 -	inline TInt ExtensionId(){return iExtensionId;};
   1.384 -	
   1.385 -public:
   1.386 -	/** A bit-wise sum of TConnectionInfoFlags indicating which of the optional 
   1.387 -	fields contain valid data. */
   1.388 -    TUint32 iValid;        	
   1.389 -	
   1.390 -protected:
   1.391 -	/** Defines the type of class. */
   1.392 -	TInt iExtensionId;	
   1.393 -	};
   1.394 -
   1.395 -class TPacketBase
   1.396 -/** 
   1.397 -Base class for the Packet data ETel API parameters which are version dependent
   1.398 -(version 2 onwards). Note that even though the 7.0 version of the API does not define
   1.399 -version dependent classes, this implementation HAS been employed in the v7.0S version
   1.400 -(V2.0) of the API.
   1.401 -
   1.402 -The TPacketBase::ExtensionId() method is used to determine which version of a packaged
   1.403 -parameter has been created. 
   1.404 -Note that the TPacketDataConfigBase::ExtensionId() method returns a packet network 
   1.405 -type.
   1.406 -
   1.407 -@publishedPartner
   1.408 -@released
   1.409 -*/
   1.410 -	{
   1.411 -public:
   1.412 -	IMPORT_C TInt ExtensionId() const;
   1.413 -protected:
   1.414 -	TPacketBase();
   1.415 -	TInt iExtensionId;					///< Extension identifier
   1.416 -	};
   1.417 -											   
   1.418 -class TPacketType
   1.419 -/**
   1.420 -Base class for all the V1 parameter types.
   1.421 -
   1.422 -@publishedPartner
   1.423 -@released
   1.424 -*/
   1.425 -{
   1.426 -public:
   1.427 -	IMPORT_C TInt ExtensionId() const;
   1.428 -protected:
   1.429 -	TPacketType();
   1.430 -	void InternalizeL(RReadStream& aStream);
   1.431 -	void ExternalizeL(RWriteStream& aStream) const;
   1.432 -protected:
   1.433 -	TInt iExtensionId;
   1.434 -};
   1.435 -	
   1.436 -struct TClientId
   1.437 -/**Holds the session and subsession handles which would be used  
   1.438 -within the 2-phase list retrieval mechanism. During both the phases, 
   1.439 -the client-side API code will pass down the TClientId so that TSY can use
   1.440 -this information to match the first phase of the request to the second phase. */
   1.441 -	{
   1.442 -	/** The handle to the underlying RTelServer session. */
   1.443 -	TInt iSessionHandle;
   1.444 -	/** The handle to the sub-session to which this API request relates. */
   1.445 -	TInt iSubSessionHandle;
   1.446 -	};	
   1.447 -		
   1.448 -class RPacketService;
   1.449 -class CPacketContextPtrHolder;
   1.450 -class RPacketContext : public RTelSubSessionBase
   1.451 -/** Defines the context and the configuration of a connection to the network's 
   1.452 -packet-switched service. 
   1.453 -
   1.454 -The functionality associated with the context of a packet-switched connection 
   1.455 -(configuring, modifying, activating, etc) are encapsulated within this class.
   1.456 -
   1.457 -Each instance of this class has an RPacketService parent, to which it belongs.
   1.458 -
   1.459 -@publishedPartner
   1.460 -@released
   1.461 -*/
   1.462 -	{
   1.463 -public:
   1.464 -	IMPORT_C RPacketContext();
   1.465 -	IMPORT_C TInt OpenNewContext(RPacketService& aPacketNetwork, TDes& aContextName);	
   1.466 -	IMPORT_C TInt OpenExistingContext(RPacketService& aPacketNetwork,const TDesC& aContextName);	
   1.467 -	IMPORT_C void Close();
   1.468 -// 
   1.469 -//	Nested classes dealing with context configurations for each network type
   1.470 -//
   1.471 -	enum {KGSNNameLength = 252};	// 3GPP TS 24.008, section 10.5.6.1 gives a range of 3 - 102 octets for the APN. 252 has been chosen as an adequate value for practical purposes.
   1.472 -	enum {KMaxPDPAddressLength = KCommsDbSvrMaxFieldLength}; 
   1.473 -	enum 
   1.474 -		{
   1.475 -		KPdpDataCompression		= 0x01,
   1.476 -		KPdpHeaderCompression	= 0x02
   1.477 -		};
   1.478 -
   1.479 -/** Buffer to hold the GSN address.
   1.480 -
   1.481 -@see KGSNNameLength */
   1.482 -	typedef TBuf8<KGSNNameLength> TGSNAddress;				///< GPRS Support Node (GSN) name
   1.483 -/** Buffer to hold the protocol address.
   1.484 -
   1.485 -@see KMaxPDPAddressLength */
   1.486 -	typedef TBuf8<KMaxPDPAddressLength> TProtocolAddress;	///< GPRS Rel97/98, CDMA, Rel99 and Rel4.
   1.487 -
   1.488 -	//
   1.489 -	// TProtocolType - defines the protocol used to connect to the packet data gateway
   1.490 -	// 
   1.491 -/** Defines the protocol used to connect to the packet data gateway.
   1.492 -
   1.493 -Modes: GRPS */
   1.494 -	enum TProtocolType
   1.495 -		{
   1.496 -	/** IPv4 type gateway.
   1.497 -	
   1.498 -	Modes: GRPS */
   1.499 -		EPdpTypeIPv4,	
   1.500 -	/** IPv6 type gateway.
   1.501 -	
   1.502 -	Modes: GPRS */
   1.503 -		EPdpTypeIPv6,	
   1.504 -	/** X.25 type gateway.
   1.505 -	
   1.506 -	Modes: GPRS */
   1.507 -		EPdpTypeX25,	
   1.508 -	/** PPP type gateway.
   1.509 -	
   1.510 -	Modes: GRPS, CDMA */
   1.511 -		EPdpTypePPP,	
   1.512 -	/** CDPD type gateway.
   1.513 -	
   1.514 -	Modes: CDMA */
   1.515 -		EPdpTypeCDPD
   1.516 -		};
   1.517 -
   1.518 -	//
   1.519 -	// TServiceOption - service option numbers are CDMA specific and used in the API to 
   1.520 -	// identify the various packet data services available on the CDMA packet network.
   1.521 -	// 
   1.522 -/** Service option numbers identify the various packet data services available 
   1.523 -on the CDMA packet network.
   1.524 -
   1.525 -Modes: CDMA */
   1.526 -	enum TServiceOption
   1.527 -		{
   1.528 -	/** Service Options 7 and 15, 8-16. */
   1.529 -		KLowSpeedData		   = 0x01,	
   1.530 -	/** Service Options 22-25 IP and 26-29 CDPD. */
   1.531 -		KHighSpeedData	 	   = 0x02,	
   1.532 -	/** Service Option 33 on CDMA2000 network only. */
   1.533 -		KHighSpeedCDMA2000Data = 0x04	
   1.534 -		};
   1.535 -
   1.536 -	/** Anonymous access required.
   1.537 -
   1.538 -	Modes: GRPS, CDMA */
   1.539 -	enum TAnonymousAccess
   1.540 -		{
   1.541 -	/** Anonymous access not applicable.
   1.542 -	
   1.543 -	Modes: GRPS, CDMA */
   1.544 -		ENotApplicable,
   1.545 -	/** Anonymous access required.
   1.546 -	
   1.547 -	Modes: GRPS */
   1.548 -		ERequired,		
   1.549 -	/** Anonymous access not required.
   1.550 -	
   1.551 -	Modes: GPRS */
   1.552 -		ENotRequired	
   1.553 -		};
   1.554 -
   1.555 -	enum { KMaxAuthDataLength = 50 };
   1.556 -	/** Buffer for various sorts of authorisation data since version 2 of the API.
   1.557 -	
   1.558 -	Supported from v7.0S.
   1.559 -	*/
   1.560 -	typedef TBuf8<KMaxAuthDataLength> TAuthData;
   1.561 -
   1.562 -	//
   1.563 -	// TAuthProtocol - this enables the client to set the protocol type used on the context
   1.564 -	// 
   1.565 -	enum TAuthProtocol
   1.566 -        {
   1.567 -        EProtocolNone,
   1.568 -        EProtocolPAP,
   1.569 -        EProtocolCHAP
   1.570 -        };
   1.571 -
   1.572 -	//
   1.573 -	// TAuthInfo - this enables the client to set the authentication data used on the context
   1.574 -	//
   1.575 -	struct TAuthInfo
   1.576 -		{
   1.577 -		TAuthProtocol iProtocol;
   1.578 -        TAuthData iUsername;
   1.579 -        TAuthData iPassword;
   1.580 -		};
   1.581 -
   1.582 -	//
   1.583 -	// TDnsInfoV2 - this class enables the client to set the primary and secondary DNS server
   1.584 -	// names used on the context 
   1.585 -	//
   1.586 -	class TDnsInfoV2 : public TPacketBase
   1.587 -	/**
   1.588 -	Enables the client to set the primary and secondary DNS server
   1.589 -	names used on the context since version 2 of the API.
   1.590 -	
   1.591 -	Supported from v7.0S.
   1.592 -
   1.593 -	@publishedPartner
   1.594 -	@released
   1.595 -	*/
   1.596 -		{
   1.597 -	public:
   1.598 -		IMPORT_C TDnsInfoV2();
   1.599 -	public:
   1.600 -		/** Primary DNS server name.*/
   1.601 -		TProtocolAddress iPrimaryDns;
   1.602 -		/** Secondary DNS server name.*/
   1.603 -		TProtocolAddress iSecondaryDns;
   1.604 -		};
   1.605 -	/**
   1.606 -	DNS information package since version 2 of the API.
   1.607 -	
   1.608 -	Supported from v7.0S.
   1.609 -	*/
   1.610 -	typedef TPckg<TDnsInfoV2> TTDnsInfoV2Pckg;
   1.611 -
   1.612 -	//
   1.613 -	//  - this buffer can be used to store protocol related data
   1.614 -	// (such as "PPP config options") which do not fit into the other fields of the
   1.615 -	// TProtocolConfigOptionV2 class (see below).  The length of the buffer is based on
   1.616 -	// the previous buffer used (before TProtocolConfigOptionV2 was implemented), which 
   1.617 -	// was based on 3GPP TS 24.008 (253 octets).
   1.618 -	//
   1.619 -	enum {KMiscProtocolBufferLength = 253};
   1.620 -	typedef TBuf8<KMiscProtocolBufferLength> TMiscProtocolBuffer;
   1.621 -		
   1.622 -	class TProtocolConfigOptionV2 : public TPacketBase
   1.623 -	/**
   1.624 -	Holds authentication data encapsulated in TAuthInfo, as 
   1.625 -	well as further data that may be required for CHAP protocol 
   1.626 -	authentication, such a challenge and response, since version
   1.627 -	2 of the API.
   1.628 -	
   1.629 -	Can contain the DNS server names, the username, password, 
   1.630 -	and CHAP associated data.
   1.631 -
   1.632 -	Normal authentication uses only TAuthInfo::iUsername and 
   1.633 -	TAuthInfo::iPassword. The other parameters are for secure 
   1.634 -	authentication. 
   1.635 -
   1.636 -	The maximum combined length of the TAuthInfo::iUsername 
   1.637 -	and the secure information (iPassword or iResponse) is 50 bytes.
   1.638 -	
   1.639 -	Rather than keep the Protocol Config Option as a buffer it 
   1.640 -	is encapsulated as a class. This enables data extraction to 
   1.641 -	occur easily.
   1.642 -	
   1.643 -	Supported from v7.0S. 
   1.644 -
   1.645 -	@publishedPartner
   1.646 -	@released
   1.647 -	*/
   1.648 -		{
   1.649 -	public:
   1.650 -		IMPORT_C TProtocolConfigOptionV2();
   1.651 -	public:
   1.652 -		/** Authentication data.*/
   1.653 -		TAuthInfo iAuthInfo;
   1.654 -		/** The pseudorandom data that is chosen by the client.*/
   1.655 -		TAuthData iChallenge;
   1.656 -		/** Calculated by the client with the MD5 algorithm using 
   1.657 -		iChallenge, iId and iPassword.*/
   1.658 -		TAuthData iResponse;
   1.659 -		/** A one byte identifier that is chosen by the client.*/
   1.660 -		TUint8 iId;
   1.661 -		/** Primary and secondary DNS server names since version 2 
   1.662 -		of the API.*/
   1.663 -		TDnsInfoV2 iDnsAddresses;
   1.664 -		TMiscProtocolBuffer iMiscBuffer;
   1.665 -		};
   1.666 -		
   1.667 -	
   1.668 -	class TContextConfigGPRS : public TPacketDataConfigBase
   1.669 -	/**
   1.670 -	Context configurations for GPRS packet data support. 
   1.671 -	
   1.672 -	Contains all the data necessary to configure a context on a GPRS network or 
   1.673 -	UMTS packet network.
   1.674 -
   1.675 -	@publishedPartner
   1.676 -	@released
   1.677 -	*/
   1.678 -		{
   1.679 -	public:
   1.680 -		IMPORT_C TContextConfigGPRS();
   1.681 -	public:
   1.682 -		/** The GPRS protocol type. The default value is EpdpTypeIPv4.
   1.683 -	
   1.684 -		@see TProtocolType */
   1.685 -		TProtocolType iPdpType;
   1.686 -		/** The GPRS Access point name. The default value is an empty string.
   1.687 -	
   1.688 -		@see TGSNAddress */
   1.689 -		TGSNAddress iAccessPointName;
   1.690 -		/** The GPRS protocol address. The default value is an empty string.
   1.691 -	
   1.692 -		@see TProtocolAddress */
   1.693 -		TProtocolAddress iPdpAddress;		
   1.694 -		/** The GRPS compression. This is a bit-wise sum of the wanted compression. The 
   1.695 -		default value is 0.
   1.696 -	
   1.697 -		@see KPdpDataCompression
   1.698 -		@see KPdpHeaderCompression */
   1.699 -		TUint iPdpCompression;
   1.700 -		/** Anonymous access requested. The default value is ENotRequired.
   1.701 -	
   1.702 -		@see TAnonymousAccess */
   1.703 -		TAnonymousAccess iAnonymousAccessReqd;
   1.704 -		/** Use Edge. The default value is EFalse. True for EGPRS.*/
   1.705 -		TBool iUseEdge; // 
   1.706 -		/** Protocol configuration options for version 2 of the API.
   1.707 -		
   1.708 -		Supported from v7.0S.*/
   1.709 -		TProtocolConfigOptionV2 iProtocolConfigOption;
   1.710 -		/** Network initiated context indication. */
   1.711 -		TBool iNWIContext;
   1.712 -		};
   1.713 -	
   1.714 -  	
   1.715 -   	/**
   1.716 -	Identifiers for Packet Flow Context.  See Table 10.5.161/3GPP TS 24.008.
   1.717 -   	*/
   1.718 -   	enum TPacketFlowIdentifier
   1.719 -   		{
   1.720 -   		/**
   1.721 -   		Best Effort
   1.722 -   		*/
   1.723 -   		EBestEffort,
   1.724 -		/**
   1.725 -		Signalling
   1.726 -		*/
   1.727 -		ESignalling,
   1.728 -		/**
   1.729 -		Sms
   1.730 -		*/
   1.731 -   		ESms
   1.732 -   		};
   1.733 -   		
   1.734 -  	class TContextConfigR99_R4 : public TPacketDataConfigBase
   1.735 -	/**
   1.736 -	Enables Release 99 and Release 4 context configuration for version 2 of 
   1.737 -  	the API.
   1.738 -  	
   1.739 -  	Contains all the data necessary to configure a context on a R99/R4 packet 
   1.740 -  	network. 
   1.741 -  	
   1.742 -  	Supported from v7.0S.
   1.743 -
   1.744 -	@publishedPartner
   1.745 -	@released
   1.746 -  	*/
   1.747 -  		{
   1.748 -  	public:
   1.749 -  		IMPORT_C TContextConfigR99_R4();
   1.750 -  	public:
   1.751 -  		/** The Rel99/Rel4 protocol type. The default value is EpdpTypeIPv4.*/
   1.752 -  		TProtocolType iPdpType;
   1.753 -  		/** The Rel99/Rel4 access point name. The default is an empty string.*/
   1.754 -  		TGSNAddress iAccessPointName;
   1.755 -  		/** The Rel99/Rel4 protocol address. The default value is an empty string.*/
   1.756 -  		TProtocolAddress iPdpAddress;		
   1.757 -  		/** Use Edge. The default is EFalse. True for EGPRS.*/
   1.758 -   		TBool iUseEdge; 
   1.759 -   		/** Protocol configuration options.*/
   1.760 -		TProtocolConfigOptionV2 iProtocolConfigOption;
   1.761 -		TBool iNWIContext; // Network initiated context indication.
   1.762 -		TPacketFlowIdentifier iPFI; // Packet Flow indicator.
   1.763 -		};
   1.764 -
   1.765 -	class TContextConfigCDMA : public TPacketDataConfigBase
   1.766 -	/**
   1.767 -	Enables context configurations for CDMA and CDMA2000 packet data 
   1.768 -	and high speed packet data support. 
   1.769 -	
   1.770 -	Contains all the data necessary to configure a context on a CDMA packet 
   1.771 -	network.
   1.772 -
   1.773 -	@publishedPartner
   1.774 -	@released
   1.775 -	*/
   1.776 -		{
   1.777 -	public:
   1.778 -		IMPORT_C TContextConfigCDMA();
   1.779 -	public:
   1.780 -	/** Identifies the CDMA packet service option range (Low, High, High CDMA2000). 
   1.781 -	The default value is KLowSpeedData.
   1.782 -	
   1.783 -	@see TServiceOption */
   1.784 -		TUint			iServiceOption; 
   1.785 -	/** The CDMA protocol type, either PPP or CDPD. The default value is EPdpTypePPP.
   1.786 -	
   1.787 -	@see TProtocolType */
   1.788 -		TProtocolType	iProtocolType;	
   1.789 -		};
   1.790 -
   1.791 -	// Configuration-related calls
   1.792 -	IMPORT_C void SetConfig(TRequestStatus& aStatus, const TDesC8& aConfig) const;
   1.793 -	IMPORT_C void GetConfig(TRequestStatus& aStatus, TDes8& aConfig) const;
   1.794 -	IMPORT_C void NotifyConfigChanged(TRequestStatus& aStatus, TDes8& aConfig) const;
   1.795 -	IMPORT_C void Activate(TRequestStatus& aStatus) const;
   1.796 -	IMPORT_C void Deactivate(TRequestStatus& aStatus) const;
   1.797 -	IMPORT_C void Delete(TRequestStatus& aStatus) const;
   1.798 -	IMPORT_C void LoanCommPort(TRequestStatus& aStatus, RCall::TCommPort& aDataPort) const; // Deprecated method.
   1.799 -	IMPORT_C void RecoverCommPort(TRequestStatus& aStatus) const; // Deprecated method.
   1.800 -	IMPORT_C void GetDnsInfo(TRequestStatus& aStatus, TDes8& aDnsInfo) const; 
   1.801 -
   1.802 -
   1.803 -
   1.804 -	enum TContextStatus
   1.805 -		{
   1.806 -	/** Current status is unknown. */
   1.807 -		EStatusUnknown,
   1.808 -	/** Context is not activated. */
   1.809 -		EStatusInactive,
   1.810 -	/** Context is currently being activated. */
   1.811 -		EStatusActivating,
   1.812 -	/** Context is active. */
   1.813 -		EStatusActive,
   1.814 -	/** Context is currently being deactivated. */
   1.815 -		EStatusDeactivating,		
   1.816 -	/** Context is suspended. */
   1.817 -		EStatusSuspended,
   1.818 -	/** Context has been deleted. */
   1.819 -		EStatusDeleted,
   1.820 -	/** Context is currently in data receiving mode.The service transitions 
   1.821 -		to this state when the data transmission starts.This is expected 
   1.822 -		to happen after some time of arrival of SESSION START message from the network.
   1.823 -	    Note : Applicable only to MBMS context */	
   1.824 -		EStatusReceiving
   1.825 -		};
   1.826 -
   1.827 -	IMPORT_C TInt GetStatus(TContextStatus& aContextStatus) const;
   1.828 -	IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,TContextStatus& aContextStatus);
   1.829 -	IMPORT_C TInt GetProfileName(TName& aQoSProfile) const;
   1.830 -
   1.831 -	struct TDataVolume 
   1.832 -/** Holds the amount of sent and received data.
   1.833 -
   1.834 -The total number of bytes sent is: iOverflowCounterSent*(2^32)+iOverflowCounterSent */
   1.835 -		{
   1.836 -		TUint32 iBytesSent;
   1.837 -	/** Overflow counter for the bytes sent.
   1.838 -	
   1.839 -	The total number of bytes sent is: iOverflowCounterSent*(2^32)+iOverflowCounterSent */
   1.840 -		TUint32 iOverflowCounterSent;
   1.841 -	/** The number of bytes received.
   1.842 -	
   1.843 -	The total number of bytes received is: iOverflowCounterReceived*(2^32)+iOverflowCounterReceived */
   1.844 -		TUint32 iBytesReceived;
   1.845 -	/** Overflow counter for the bytes received.
   1.846 -	
   1.847 -	The total number of bytes received is: iOverflowCounterReceived*(2^32)+iOverflowCounterReceived */
   1.848 -		TUint32 iOverflowCounterReceived;
   1.849 -		};
   1.850 -
   1.851 -	struct TNotifyDataTransferredRequest
   1.852 -		{
   1.853 -		TUint iRcvdGranularity;
   1.854 -		TUint iSentGranularity;
   1.855 -		};
   1.856 -
   1.857 -    /** 
   1.858 -    Determines which fields in the TConnectionInfoXXX parameter class are valid.
   1.859 -    
   1.860 -    @see TConnectionInfoV1 
   1.861 -    */
   1.862 -	enum TConnectionInfoFlags
   1.863 -		{
   1.864 -    	/** The HSDPA category field is valid in the connection info class.
   1.865 -    	
   1.866 -    	Modes: WCDMA */
   1.867 -		KHSDPACategory		= 0x00000001,
   1.868 -		
   1.869 -    	/** The HSUPA category field is valid in the connection info class.
   1.870 -    	
   1.871 -    	Modes: WCDMA */		
   1.872 -		KHSUPACategory		= 0x00000002
   1.873 -        };
   1.874 -
   1.875 -  	class TConnectionInfoV1 : public TConnectionInfoBase
   1.876 -	/**
   1.877 -	Connection info class is used to carry miscellaneous information about data connection.
   1.878 -  	
   1.879 -  	Contains all kind of packet data connection related information that is useful for
   1.880 -  	ETel API clients.
   1.881 -  	
   1.882 -  	Supported from v9.5.
   1.883 -
   1.884 -	@publishedPartner
   1.885 -	@released
   1.886 -  	*/
   1.887 -  		{
   1.888 -  	public:
   1.889 -  		IMPORT_C TConnectionInfoV1();
   1.890 -  	public:
   1.891 -        /**HSDPA UE category as defined in 3GPP TS 25.306 Table 5.1a: "FDD 
   1.892 -        HS-DSCH physical layer categories". Value "0" means HSDPA is not used,
   1.893 -        value "1" means category 1, value "2" means category 2 etc.*/
   1.894 -        TUint iHSDPACategory;
   1.895 - 
   1.896 -        /*HSUPA (E-DCH) UE category as defined in 3GPP TS 25.306 Table 5.1g: 
   1.897 -        "FDD E-DCH physical layer categories". Value "0" means HSUPA is not used,
   1.898 -        value "1" means category 1, value "2" means category 2 etc.*/       
   1.899 -        TUint iHSUPACategory;
   1.900 -		};
   1.901 -
   1.902 -
   1.903 -	IMPORT_C TInt GetDataVolumeTransferred(TDataVolume& aVolume) const; // Deprecated method.
   1.904 -	IMPORT_C void NotifyDataTransferred(TRequestStatus& aStatus, TDataVolume& aVolume, TUint aRcvdGranularity=0x1000,TUint aSentGranularity=0x1000) const; 
   1.905 -	IMPORT_C void GetConnectionSpeed(TRequestStatus& aStatus, TUint& aRate) const; // get the current speed (bits per second) of the connection
   1.906 -	IMPORT_C void NotifyConnectionSpeedChange(TRequestStatus& aStatus, TUint& aRate) const;  // notify client if there's a change in the connection speed
   1.907 -
   1.908 -	// N.B. the following 2 methoda are only supported if telephony was built with SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW macro
   1.909 -    IMPORT_C void GetConnectionInfo(TRequestStatus& aStatus, TDes8& aInfo) const; // get connection information
   1.910 -	IMPORT_C void NotifyConnectionInfoChange(TRequestStatus &aStatus, TDes8& aInfo) const; // notify client if connection information changes	
   1.911 -
   1.912 -	IMPORT_C TInt GetLastErrorCause(TInt& aError) const;
   1.913 -
   1.914 -	IMPORT_C void GetDataVolumeTransferred(TRequestStatus& aStatus, TDataVolume& aVolume) const; // Recommended method variant.
   1.915 -	
   1.916 -	class TDataChannelV2 : public TPacketBase
   1.917 -	/**
   1.918 -	Contains data channel parameters.
   1.919 -	
   1.920 -	Contains the information previously returned by	LoanCommPort() 
   1.921 -	(iCsy and iPort), as well as the new information which is generated 
   1.922 -	by context creation, e.g. the context (data channel) identity, 
   1.923 -	for version 2 of the API.  
   1.924 -
   1.925 -	It is passed as a packaged parameter to RPacketContext::InitialiseContext().
   1.926 -	
   1.927 -	@publishedPartner
   1.928 -	@released
   1.929 -	*/
   1.930 -		{
   1.931 -	public:
   1.932 -		IMPORT_C TDataChannelV2();
   1.933 -	public:
   1.934 -		/**CSY name.
   1.935 -		@deprecated Data previously used by LoanDataPort() in version 1 of the API.*/
   1.936 -		TFileName iCsy;		
   1.937 -		/**Port name 
   1.938 -		@deprecated Data previously used by LoanDataPort(). */
   1.939 -		TName iPort;			
   1.940 -		/**Context Identity.
   1.941 -		The Channel name information returned by the lower layers (Nif). */
   1.942 -		TName iChannelId;	
   1.943 -		};
   1.944 -	/** 
   1.945 -	Data channel package since version 2 of the API.
   1.946 -
   1.947 -	Supported from v7.0S.
   1.948 -	*/
   1.949 -	typedef TPckg<TDataChannelV2> TDataChannelV2Pckg;	
   1.950 -
   1.951 -	IMPORT_C void InitialiseContext(TRequestStatus& aStatus, TDes8& aDataChannelV2Pckg) const; // This method supersedes the LoanCommPort() and RecoverCommPort() methods.
   1.952 -
   1.953 -	enum {KIPAddressSize = 16};				   ///< TIPAddress size
   1.954 -	/**
   1.955 -	Array to hold either IPv4 or IPv6 address or Subnet mask since version 2 of the API.
   1.956 -	
   1.957 -	Supported from v7.0S.
   1.958 -	*/	
   1.959 -	typedef TUint8 TIPAddress[KIPAddressSize]; 
   1.960 -	
   1.961 -	
   1.962 -	class TPacketFilterV2 : public TPacketBase
   1.963 -	/**
   1.964 -	Packet filter package since version 2 of the API.
   1.965 -
   1.966 -	Contains member data compatible with parameters required for configuring 
   1.967 -	a packet filter on a Rel99/R4 packet network. 
   1.968 -
   1.969 -	Inherits from the TPacketBase class to make it future 
   1.970 -	proof (extensible).
   1.971 -
   1.972 -	Supported from v7.0S.
   1.973 -
   1.974 -	@publishedPartner
   1.975 -	@released
   1.976 -	*/
   1.977 -
   1.978 -		{
   1.979 -	public:
   1.980 -		IMPORT_C TPacketFilterV2();
   1.981 -	public:
   1.982 -		/** Packet filter identifier. Value range: 1 - 8.*/
   1.983 -		TInt iId;						
   1.984 -		/** Evaluation Precedence Index. Value range: 255 (lowest) - 0 (highest).*/
   1.985 -		TInt iEvaluationPrecedenceIndex;	
   1.986 -		/** Domain Source address.*/
   1.987 -		TIPAddress iSrcAddr;				
   1.988 -		/** Domain Subnet mask.*/
   1.989 -		TIPAddress iSrcAddrSubnetMask;		
   1.990 -		/** Protocol number (IPv4) or Next Header (IPv6) field of incoming packets. 
   1.991 -		Value range 0 - 255.*/
   1.992 -		TInt iProtocolNumberOrNextHeader;	 
   1.993 -		/** Minimum source port number of incoming packets. Value range 0 - 65535.*/
   1.994 -		TInt iSrcPortMin;					 
   1.995 -		/** Maximum source port number of incoming packets. Value range 0 - 65535.*/
   1.996 -		TInt iSrcPortMax;					 
   1.997 -		/** Lowest destination port number of incoming packets. Value range 0 - 65535.*/
   1.998 -		TInt iDestPortMin;					
   1.999 -		/** Maximum destination port number of incoming packets. Value range 0 - 65535.*/
  1.1000 -		TInt iDestPortMax;					 
  1.1001 -		/** Security Parameter Index, 32-bit field.*/
  1.1002 -		TUint32 iIPSecSPI;					
  1.1003 -		/** Type of Service (IPv4) or Traffic Class (IPv6). 
  1.1004 -		1 octet TOS/Traffic class + 1 octet TOS/Traffic class Mask.*/
  1.1005 -		TUint16 iTOSorTrafficClass;			 
  1.1006 -		/** Flow label (IPv6 only) of incoming packets. 3 octets with 20-bit field 
  1.1007 -		containing the flow label.*/
  1.1008 -		TUint32 iFlowLabel;					
  1.1009 -		};
  1.1010 -	/** Packaged TPacketFilterV2.*/
  1.1011 -	typedef TPckg<TPacketFilterV2> TPacketFilterV2Pckg;	
  1.1012 -		
  1.1013 -	
  1.1014 -	/**
  1.1015 -	Maximum length of DNS Fully Qualified Domain Name (RFC 1123)
  1.1016 -	
  1.1017 -	@internalComponent
  1.1018 -	*/
  1.1019 -	enum TFQDNLength
  1.1020 -	{
  1.1021 -	KMaxFQDNLength=255,
  1.1022 -	};
  1.1023 -	
  1.1024 -	typedef TBuf8<KMaxFQDNLength> TAuthorizationToken;
  1.1025 -	
  1.1026 -	/**
  1.1027 -	Packet Filter type identifier.
  1.1028 -	
  1.1029 -	@publishedPartner
  1.1030 -	@released
  1.1031 -	*/
  1.1032 -	enum TPacketFilterType
  1.1033 -		{
  1.1034 -		/** Unknown filter type.*/
  1.1035 -		EPacketFilterTypeUnknown,
  1.1036 -		/** Filter Type One.*/
  1.1037 -		EPacketFilterTypeOne,
  1.1038 -		/** Filter Type Two.*/
  1.1039 -		EPacketFilterTypeTwo,
  1.1040 -		/** Filter Type Three.*/
  1.1041 -		EPacketFilterTypeThree,
  1.1042 -		};
  1.1043 -		
  1.1044 -	class TPacketFilterV3 : public TPacketFilterV2
  1.1045 -	/**
  1.1046 -	Packet filter that supports packet filter types.
  1.1047 -	Contains member data compatible with parameters required
  1.1048 -    for configuring a packet filter on a Rel99/R4/R5 packet network. . 
  1.1049 -
  1.1050 -	Inherits from the TPacketFilterV2 class.
  1.1051 -
  1.1052 -	Supported from 9.1
  1.1053 -
  1.1054 -	@publishedPartner
  1.1055 -	@released
  1.1056 -	*/
  1.1057 -		{
  1.1058 -	public:
  1.1059 -		IMPORT_C TPacketFilterV3(TPacketFilterType aType);
  1.1060 -		IMPORT_C TPacketFilterV3();
  1.1061 -		enum TPacketFilterDataBitmapPos
  1.1062 -			{
  1.1063 -			/** Bitmap for Domain Source address.*/
  1.1064 -			EPacketFilterSrcAddr						= 0x001,
  1.1065 -			/** Bitmap for Domain Subnet mask.*/
  1.1066 -			EPacketFilterSrcAddrSubnetMask			= 0x002,
  1.1067 -			/** Bitmap for Protocol number (IPv4) or Next Header (IPv6) field of incoming packets.*/
  1.1068 -			EPacketFilterProtocolNumberOrNextHeader	= 0x004,
  1.1069 -			/** Bitmap for Minimum source port number of incoming packets.*/
  1.1070 -			EPacketFilterSrcPortMin					= 0x008,
  1.1071 -			/** Bitmap for Maximum source port number of incoming packets.*/
  1.1072 -			EPacketFilterSrcPortMax					= 0x010,
  1.1073 -			/** Bitmap for Lowest destination port number of incoming packets.*/
  1.1074 -			EPacketFilterDestPortMin					= 0x020,
  1.1075 -			/** Bitmap for Maximum destination port number of incoming packets.*/
  1.1076 -			EPacketFilterDestPortMax					= 0x040,
  1.1077 -			/** Bitmap for Security Parameter Index.*/
  1.1078 -			EPacketFilterIPSecSPI					= 0x080,
  1.1079 -			/** Bitmap for Type of Service (IPv4) or Traffic Class (IPv6).*/
  1.1080 -			EPacketFilterTOSorTrafficClass			= 0x100,
  1.1081 -			/** Bitmap for Flow label (IPv6 only) of incoming packets.*/
  1.1082 -			EPacketFilterFlowLabel					= 0x200,
  1.1083 -			};
  1.1084 -			
  1.1085 -		inline TBool IsPresent(TPacketFilterDataBitmapPos aDataMemberBitmapPos);
  1.1086 -		inline void Reset(TPacketFilterDataBitmapPos aDataMemberBitmapPos);
  1.1087 -		inline void Reset();
  1.1088 -	public:
  1.1089 -		/** Packet filter identifier. Value range: 1 - 8.*/
  1.1090 -		using TPacketFilterV2::iId;
  1.1091 -		/** Evaluation Precedence Index. Value range: 255 (lowest) - 0 (highest).*/
  1.1092 -		using TPacketFilterV2::iEvaluationPrecedenceIndex;
  1.1093 -	
  1.1094 -	public:
  1.1095 -		
  1.1096 -		IMPORT_C TBool SetSrcAddr(TIPAddress &aSrcAddr);
  1.1097 -		IMPORT_C TBool SetSrcAddrSubnetMask(TIPAddress &aSrcAddrSubnetMask);
  1.1098 -		
  1.1099 -		IMPORT_C TBool SetProtocolNumberOrNextHeader(TInt aProtocolNumberOrNextHeader);
  1.1100 -		
  1.1101 -		IMPORT_C TBool SetSrcPortMin(TInt aSrcPortMin);
  1.1102 -		IMPORT_C TBool SetSrcPortMax(TInt aSrcPortMax);
  1.1103 -		
  1.1104 -		IMPORT_C TBool SetDestPortMin(TInt aDestPortMin);
  1.1105 -		IMPORT_C TBool SetDestPortMax(TInt aDestPortMax);
  1.1106 -		
  1.1107 -		IMPORT_C TBool SetSPI(TUint32 aIPSecSPI);
  1.1108 -		
  1.1109 -		IMPORT_C TBool SetTOSorTrafficClass(TUint16 aTOSorTrafficClass);
  1.1110 -		IMPORT_C TBool SetFlowLabel(TUint32 aFlowLabel);
  1.1111 -		
  1.1112 -	
  1.1113 -	public:
  1.1114 -	
  1.1115 -		/** Return the Domain Source address. 
  1.1116 -		
  1.1117 -		@return Domain Source address.
  1.1118 -		*/
  1.1119 -		inline const TIPAddress& SrcAddr()
  1.1120 -		{
  1.1121 -			return iSrcAddr;
  1.1122 -		};
  1.1123 -		
  1.1124 -		/** Return the Domain Subnet mask.
  1.1125 -		
  1.1126 -		@return Domain Subnet mask.
  1.1127 -		*/
  1.1128 -		inline const TIPAddress& SrcAddrSubnetMask()
  1.1129 -		{
  1.1130 -			return iSrcAddrSubnetMask;
  1.1131 -		};
  1.1132 -				
  1.1133 -		inline TInt ProtocolNumberOrNextHeader();
  1.1134 -		
  1.1135 -		inline TInt SrcPortMin();
  1.1136 -		inline TInt SrcPortMax();
  1.1137 -		
  1.1138 -		inline TInt DestPortMin();
  1.1139 -		inline TInt DestPortMax();
  1.1140 -		
  1.1141 -		inline TUint32 SPI(); 
  1.1142 -		
  1.1143 -		inline TUint16 TOSorTrafficClass();
  1.1144 -		inline TUint32 FlowLabel();
  1.1145 -	protected:
  1.1146 -		/** Initialised in the constructor - type can be I, II or III
  1.1147 -		*/
  1.1148 -		TPacketFilterType iType;
  1.1149 -		/** Bitmap of allowed attributes set in the constructor in accordance to type
  1.1150 -		of the filter as defined in TS 23.060.
  1.1151 -		*/
  1.1152 -		TUint16 iAllowedDataBitmap;
  1.1153 -		/** Bitmap of data members that are set(initialised) - data member can be set
  1.1154 -		in allowed for the specified type of the filter only.
  1.1155 -		*/
  1.1156 -		TUint16 iPresentDataBitmap;
  1.1157 -		};
  1.1158 -	/** Packaged TPacketFilterV3.*/
  1.1159 -	typedef TPckg<TPacketFilterV3> TPacketFilterV3Pckg;	
  1.1160 -	
  1.1161 -	/**
  1.1162 -	Contains Authorization Token and associated Flow Identifiers.
  1.1163 -	Defines member data needed to set media authorization TFT parameters - single Authorization Token parameter 
  1.1164 -	followed by the list of Flow Identifier parameter(s), as defined in 3GPP TS 24.008. 
  1.1165 -	
  1.1166 -	Contains data member that's instance of TPacketBase class to make it future proof (extensible); In order to support serialization,
  1.1167 -	present implementation of TPacketBase has to be extended so that it supports methods needed (ExternalizeL()/InternalizeL()).
  1.1168 -	Supported from 9.1.
  1.1169 -
  1.1170 -	@publishedPartner
  1.1171 -	@released
  1.1172 -	*/
  1.1173 -	class CTFTMediaAuthorizationV3 : public CBase	
  1.1174 -		{
  1.1175 -	public:
  1.1176 -		IMPORT_C ~CTFTMediaAuthorizationV3();
  1.1177 -		IMPORT_C static CTFTMediaAuthorizationV3* NewL();			
  1.1178 -	public:	
  1.1179 -		IMPORT_C virtual void ExternalizeL(HBufC8*& aBuffer) const;
  1.1180 -		IMPORT_C virtual void InternalizeL(TDes8& aBuffer);
  1.1181 -		IMPORT_C TUint ExtensionId()const;
  1.1182 -
  1.1183 -
  1.1184 -		/** Flow identifier */	
  1.1185 -		struct TFlowIdentifier
  1.1186 -			{
  1.1187 -			/** Media component number. */
  1.1188 -			TUint16 iMediaComponentNumber;
  1.1189 -			/** IP flow number. */
  1.1190 -			TUint16 iIPFlowNumber;
  1.1191 -			};				
  1.1192 -		/** Authorization token */		
  1.1193 -		TAuthorizationToken iAuthorizationToken;			 
  1.1194 -		/** List of flow identifiers authorization token is granted for*/
  1.1195 -		RArray<TFlowIdentifier>	iFlowIds;
  1.1196 -	protected:
  1.1197 -		CTFTMediaAuthorizationV3();
  1.1198 -		TUint iExtensionId;
  1.1199 -		};
  1.1200 -	
  1.1201 -	IMPORT_C void AddMediaAuthorizationL(TRequestStatus& aStatus, CTFTMediaAuthorizationV3& aMediaAuthorization) const;
  1.1202 -	IMPORT_C void RemoveMediaAuthorization(TRequestStatus& aStatus, TAuthorizationToken& aAuthorizationToken) const;
  1.1203 -
  1.1204 -
  1.1205 -	IMPORT_C TInt OpenNewSecondaryContext(RPacketService& aPacketService, const TDesC& aExistingContextName, TDes& aNewContextName);
  1.1206 -	IMPORT_C void EnumeratePacketFilters(TRequestStatus& aStatus, TInt& aCount) const;
  1.1207 -	IMPORT_C void GetPacketFilterInfo(TRequestStatus& aStatus, TInt aIndex, TDes8& aPacketFilterInfo) const;
  1.1208 -	IMPORT_C void AddPacketFilter(TRequestStatus& aStatus, const TDesC8& aPacketFilterInfo) const;
  1.1209 -	IMPORT_C void RemovePacketFilter(TRequestStatus& aStatus, TInt aId) const;
  1.1210 -	IMPORT_C void ModifyActiveContext(TRequestStatus& aStatus) const;
  1.1211 -	IMPORT_C void CreateNewTFT(TRequestStatus& aStatus, const TInt aSize) const;
  1.1212 -	IMPORT_C void DeleteTFT(TRequestStatus& aStatus) const;
  1.1213 -	
  1.1214 -	
  1.1215 -	
  1.1216 -	/**
  1.1217 -	Protocol identifiers, as defined in 24.008, section 10.5.6.3
  1.1218 -	*/
  1.1219 -	enum TPcoProtocolId
  1.1220 -	{
  1.1221 -	/** PCO identifier for LCP.*/
  1.1222 -	EETelPcktProtocolLcpId = 0xc021,	
  1.1223 -	/** PCO identifier for PAP.*/
  1.1224 -	EETelPcktProtocolPapId = 0xc023,
  1.1225 -	/** PCO identifier for CHAP.*/
  1.1226 -	EETelPcktProtocolChapId = 0xc223,
  1.1227 -	/** PCO identifier for IPCP.*/
  1.1228 -	EETelPcktProtocolIpcpId = 0x8021
  1.1229 -	};
  1.1230 -
  1.1231 -	/**
  1.1232 -	PCO additional parameter identifiers in MS to network direction, as defined in 3GPP TS 24.008, section 10.5.6.3
  1.1233 -	*/
  1.1234 -	enum TPcoIDMSToNetwork
  1.1235 -	{
  1.1236 -	/** PCO MS additional parameter identifier for a PCSCF address request.*/
  1.1237 -	EEtelPcktPCSCFAddressRequest = 0x01,
  1.1238 -	/** PCO MS additional parameter identifier for an IM CN subsystem signalling flag.*/
  1.1239 -	EEtelPcktIMCNMSSubsystemSignallingFlag = 0x02,
  1.1240 -	/** PCO MS additional parameter identifier for a DNS server address request.*/
  1.1241 -	EEtelPcktDNSServerAddressRequest = 0x03,
  1.1242 -	/** Not currently supported.*/
  1.1243 -	EEtelPcktNotSupported = 0x04,
  1.1244 -	};
  1.1245 -
  1.1246 -	/**
  1.1247 -	PCO additional parameter identifiers in  network to MS direction, as defined in 3GPP TS 24.008, section 10.5.6.3
  1.1248 -	*/
  1.1249 -	enum TPcoIDNetworkToMS
  1.1250 -	{
  1.1251 -	/** PCO network additional parameter identifier for a PCSCF address.*/
  1.1252 -	EEtelPcktPCSCFAddress = 0x01,
  1.1253 -	/** PCO network additional parameter identifier for an IM CN subsystem signalling flag.*/
  1.1254 -	EEtelPcktIMCNNetworkSubsystemSignallingFlag = 0x02,
  1.1255 -	/** PCO network additional parameter identifier for a DNS server address.*/
  1.1256 -	EEtePcktDNSServerAddress= 0x03,
  1.1257 -	/** PCO network additional parameter identifier for a policy control rejection code.*/
  1.1258 -	EEtelPcktPolicyControlRejectionCode = 0x04,
  1.1259 -	};
  1.1260 -
  1.1261 -
  1.1262 -	/** 
  1.1263 -	Helper class that implements PCO IE identifier.
  1.1264 -	
  1.1265 -	@publishedPartner
  1.1266 -	@released
  1.1267 -	*/
  1.1268 -	class TPcoId : public MTlvItemIdType
  1.1269 -	{
  1.1270 -	public:
  1.1271 -		inline TPcoId();
  1.1272 -		inline TPcoId(TUint16 aId);
  1.1273 -		inline void ExternalizeL(TDes8&)const;
  1.1274 -		inline void InternalizeL(TDesC8&);
  1.1275 -		inline TUint SerializedLength() const;	
  1.1276 -		inline TUint16 Id()const;
  1.1277 -		inline void SetId(TUint16);
  1.1278 -		inline TBool IsEqual(const MTlvItemIdType& aOtherIdType)const;	
  1.1279 -	protected:
  1.1280 -		/** PCO Id*/
  1.1281 -  		TUint16 iId;
  1.1282 -	};
  1.1283 -	
  1.1284 -	/** 
  1.1285 -	Helper class that implements PCO IE identifier length.
  1.1286 -	
  1.1287 -	@publishedPartner
  1.1288 -	@released
  1.1289 -	*/
  1.1290 -	class TPcoItemDataLength: public MTlvItemDataLengthType
  1.1291 -	{
  1.1292 -	public:
  1.1293 -		inline TPcoItemDataLength();
  1.1294 -		inline TPcoItemDataLength(TUint8 aLen);
  1.1295 -		inline void SetDataLength(TUint aLength);
  1.1296 -		inline TUint DataLength() const;
  1.1297 -		inline void ExternalizeL(TDes8&) const;
  1.1298 -		inline void InternalizeL(TDesC8&);
  1.1299 -		inline TUint SerializedLength()const;
  1.1300 -	protected:
  1.1301 -		/** length of associated item data*/
  1.1302 -  		TUint8 iDataLength;
  1.1303 -	};
  1.1304 -
  1.1305 -	/** 
  1.1306 -	Identifiers for the type of data data compression applicable for SNDCP only, 
  1.1307 -	as defined in 3GPP TS  44.065, section 6.6.1.1.4. 
  1.1308 -	Values listed in the enumeration do not hold same numerical values as those defined in the specifications, 
  1.1309 -	as ENoDataComression and EManufacturerDefaultDataComression are introduced in order to be utilised when no 
  1.1310 -	compression and device default compression algorithm are needed, respectively. 
  1.1311 -	*/ 
  1.1312 -	enum TDataCompression 
  1.1313 -		{ 
  1.1314 -		/** 
  1.1315 -		No compression 
  1.1316 -		*/ 
  1.1317 -		ENoDataCompression,         
  1.1318 -		/** 
  1.1319 -		Compression algorithm preferred by the device manufacturer 
  1.1320 -		*/ 
  1.1321 -		EManufacturerDefaultDataCompression,         
  1.1322 -		/** 
  1.1323 -		V.42 bis 
  1.1324 -		*/ 
  1.1325 -		EV42, 
  1.1326 -        /** 
  1.1327 -        V.44   
  1.1328 -        */ 
  1.1329 -        EV44, 
  1.1330 -        };
  1.1331 -        
  1.1332 -	/** 
  1.1333 -	Identifiers for type of SNDCP & PDCP header compression as defined 
  1.1334 -	in 3GPP TS  44.065, section 6.5.1.1.4, 
  1.1335 -	Values listed in the enumeration do not hold same numerical values as those defined in the specifications, 
  1.1336 -	as ENoHeaderCompression and EManufacturerDefaultHeaderCompression are introduced in order to be utilised when no 
  1.1337 -	compression and device default compression algorithm are needed, respectively. 
  1.1338 -	*/ 
  1.1339 -	enum THeaderCompression 
  1.1340 -		{ 
  1.1341 -		/** 
  1.1342 -		No compression 
  1.1343 -		*/ 
  1.1344 -		ENoHeaderCompression,         
  1.1345 -		/** 
  1.1346 -		Compression algorithm preferred by the device manufacturer 
  1.1347 -		*/ 
  1.1348 -		EManufacturerDefaultHeaderCompression,         
  1.1349 -		/** 
  1.1350 -		Compression algorithm defined in RFC 1144 
  1.1351 -		*/ 
  1.1352 -		ERfc1144,         
  1.1353 -		/** 
  1.1354 -		Compression algorithm defined in RFC 2507 
  1.1355 -		*/ 
  1.1356 -		ERfc2507,         
  1.1357 -		/** 
  1.1358 -		Robust header compression algorithm defined in RFC 3095 
  1.1359 -		*/ 
  1.1360 -		ERohc,         
  1.1361 -		};
  1.1362 -
  1.1363 -	class TContextConfig_R5 : public TContextConfigR99_R4 
  1.1364 -	/** 
  1.1365 -	Reintroduces support for setting of header/data compression in SNDCP & PDCP         
  1.1366 -	Supported from v9.1. 
  1.1367 -	@publishedPartner 
  1.1368 -	@released
  1.1369 -	*/ 
  1.1370 -		{ 
  1.1371 -	public: 
  1.1372 -		IMPORT_C TContextConfig_R5(); 
  1.1373 -	         
  1.1374 -	public: 
  1.1375 -		/** defines whether SNDCP & PDCP header compression shall be utilised or not. 
  1.1376 -		If former is the case, it holds value of that defines compression algorithm to be exercised. 
  1.1377 -		The default value is ENone - no compression is needed. 
  1.1378 -		*/ 
  1.1379 -		THeaderCompression iPdpHeaderCompression; 
  1.1380 -		/** defines whether SNDCP data compression shall be utilised or not. 
  1.1381 -		If former is the case, it holds value of that defines compression algorithm to be exercised.                   
  1.1382 -		The default value is ENone - no compression is needed. 
  1.1383 -		*/ 
  1.1384 -		TDataCompression iPdpDataCompression; 
  1.1385 -		}; 
  1.1386 -	
  1.1387 -protected:
  1.1388 -	IMPORT_C virtual void ConstructL();
  1.1389 -	IMPORT_C virtual void Destruct();
  1.1390 -protected:
  1.1391 -	CPacketContextPtrHolder* iEtelPacketContextPtrHolder;
  1.1392 -	};
  1.1393 -
  1.1394 -///////////////////////////////////////////////////////////////////
  1.1395 -//                       MBMS Context 
  1.1396 -///////////////////////////////////////////////////////////////////
  1.1397 -class RPacketMbmsContext : public RPacketContext
  1.1398 -/** 
  1.1399 -Defines the MBMS context and the configuration of a connection to the network's 
  1.1400 -packet-switched service. 
  1.1401 -The functionality associated with the context of a MBMS connection is inherited 
  1.1402 -from RPacketContext class.
  1.1403 -The behaviour of OpenNewContext API is redefined.
  1.1404 -Every instance of this class has RPacketService as a base class.
  1.1405 -
  1.1406 -@publishedPartner
  1.1407 -@released
  1.1408 -*/	
  1.1409 -	{
  1.1410 -public:
  1.1411 -	IMPORT_C RPacketMbmsContext();
  1.1412 -	IMPORT_C TInt OpenNewContext(RPacketService& aPacketNetwork, TDes& aContextName);	
  1.1413 -	IMPORT_C void Close();
  1.1414 -	friend class CRetrievePcktMbmsSessionList;
  1.1415 -	
  1.1416 -	class TContextConfigMbmsV1: public TPacketDataConfigBase
  1.1417 -	/**
  1.1418 -	Context configurations for MBMS support. 
  1.1419 -	
  1.1420 -	Contains all the data necessary to configure a context on a MBMS network.
  1.1421 -	
  1.1422 -	@see RPacketContext::SetConfig()
  1.1423 -	
  1.1424 -   	@publishedPartner
  1.1425 -	@released
  1.1426 -	*/	
  1.1427 -		{
  1.1428 -	public:
  1.1429 -		IMPORT_C TContextConfigMbmsV1();
  1.1430 -	public:
  1.1431 -		/** Input parameter : Temporary mobile group identity 
  1.1432 -		 * A unique name to an MBMS service
  1.1433 -		 */
  1.1434 -		TTmgi   iTmgi;
  1.1435 -		
  1.1436 -		/** Input Parameter : MBMS access bearer information 
  1.1437 -		 * @see TMbmsScope
  1.1438 -		 */
  1.1439 -		TMbmsScope	iMbmsAccessBearer;
  1.1440 -		
  1.1441 -		/** Input parameter : MBMS service priority options 
  1.1442 -		 * Specifies the priority of the MBMS service to be received.
  1.1443 -		 * @see  TMbmsServicePriority
  1.1444 -		 */
  1.1445 -		TMbmsServicePriority	iMbmsServicePriority;
  1.1446 -		
  1.1447 -		/** Input parameter : MBMS service mode 
  1.1448 -		 * @see TMbmsServiceMode
  1.1449 -		 */
  1.1450 -		TMbmsServiceMode	iMbmsServiceMode;
  1.1451 -		
  1.1452 -		/** Input parameter : MBMS session flag 
  1.1453 -		 * ETrue indicates that an MBMS service has one or more sessions. 
  1.1454 -		 */
  1.1455 -		TBool	iMbmsSessionFlag;
  1.1456 -     	};
  1.1457 -		
  1.1458 -    
  1.1459 -	//Packaged version of TContextConfigMbmsV1, used when this structure has to be passed via IPC.
  1.1460 -	typedef TPckg<TContextConfigMbmsV1> TContextConfigMbmsV1Pckg;
  1.1461 -	
  1.1462 -	IMPORT_C void UpdateMbmsSessionList(TRequestStatus& aStatus,const TMbmsAction aAction, const TMbmsSessionId aSessionId = 0) const;	
  1.1463 -	
  1.1464 -	class CMbmsSession : public CBase
  1.1465 -	/**
  1.1466 -	 * Captures the list of session(s) of an MBMS service.
  1.1467 -	 * @publishedPartner
  1.1468 -	 * @released
  1.1469 -	 */
  1.1470 -     	{
  1.1471 -     public:
  1.1472 -	     IMPORT_C static CMbmsSession* NewL();
  1.1473 -	     IMPORT_C void InternalizeL(const TDesC8& aBuffer);
  1.1474 -	     IMPORT_C void ExternalizeL(HBufC8*& aBuffer);
  1.1475 -	     IMPORT_C TUint ExtensionId() const;
  1.1476 -	     IMPORT_C ~CMbmsSession();
  1.1477 -     public:
  1.1478 -     	/**
  1.1479 -     	 * Output Parameter.
  1.1480 -     	 * Contains the list of sessions pertaining to the MBMS service.
  1.1481 -     	 */
  1.1482 -     	TMbmsSessionIdList iSessionIdList;
  1.1483 -     	/**
  1.1484 -     	 * Defines the type of the class
  1.1485 -     	 */
  1.1486 -     	TUint iExtensionId;
  1.1487 -     protected:
  1.1488 -     	CMbmsSession();
  1.1489 -     	};
  1.1490 -     
  1.1491 -	};
  1.1492 -
  1.1493 -class CPacketPtrHolder;
  1.1494 -class CPcktMbmsMonitoredServiceList;
  1.1495 -class RPacketService : public RTelSubSessionBase
  1.1496 -/**
  1.1497 -Defines a packet-switched connection to a packet network.
  1.1498 -
  1.1499 -This is the main packet network class. 
  1.1500 -It encapsulates functionality associated with controlling a packet-switched connection: 
  1.1501 -attaching, detaching, querying packet network capabilities, etc.
  1.1502 -@publishedPartner
  1.1503 -@released
  1.1504 -*/
  1.1505 -	{
  1.1506 -public:
  1.1507 -	IMPORT_C RPacketService();
  1.1508 -	IMPORT_C TInt Open(RPhone& aPhone);
  1.1509 -	IMPORT_C void Close();
  1.1510 -
  1.1511 -	IMPORT_C void NotifyContextAdded(TRequestStatus& aStatus, TDes& aContextId) const;
  1.1512 -	IMPORT_C void Attach(TRequestStatus& aStatus) const;	
  1.1513 -	IMPORT_C void Detach(TRequestStatus& aStatus) const;	
  1.1514 -
  1.1515 -	friend TInt RPacketContext::OpenNewSecondaryContext(RPacketService& aPacketService, const TDesC& aExistingContextName, TDes& aNewContextName);	///< This method calls the internal method RPacketService::PrepareOpenSecondary(const TDesC& aOriginalContextName)
  1.1516 -	friend TInt RPacketContext::OpenNewContext(RPacketService& aPacketNetwork, TDes& aContextName);	
  1.1517 -	friend TInt RPacketMbmsContext::OpenNewContext(RPacketService& aPacketNetwork, TDes& aContextName);	
  1.1518 -
  1.1519 -	friend class CRetrievePcktMbmsMonitoredServices;
  1.1520 -	
  1.1521 -/** Defines the packet data connection status. */
  1.1522 -	enum TStatus
  1.1523 -		{
  1.1524 -	/** Unattached to network and inactive packet data connection. */
  1.1525 -		EStatusUnattached,	
  1.1526 -	/** Attached to network and inactive packet data connection. */
  1.1527 -		EStatusAttached,	
  1.1528 -	/** Attached to network and active packet data connection. */
  1.1529 -		EStatusActive,		
  1.1530 -	/** Attached to network and suspended packet data connection. */
  1.1531 -		EStatusSuspended	
  1.1532 -		};
  1.1533 -
  1.1534 -	IMPORT_C TInt GetStatus(TStatus& aPacketStatus) const;
  1.1535 -	IMPORT_C void NotifyStatusChange(TRequestStatus& aStatus,TStatus& aPacketStatus) const;
  1.1536 -	IMPORT_C void NotifyContextActivationRequested(TRequestStatus& aStatus, TDes8& aContextParameters) const;
  1.1537 -	IMPORT_C void RejectActivationRequest(TRequestStatus& aStatus) const;
  1.1538 -
  1.1539 -	struct TContextInfo
  1.1540 -	/** Struct to contain the context information.
  1.1541 -
  1.1542 -	@see GetContextInfo() */
  1.1543 -		{
  1.1544 -		/** The name of the context.
  1.1545 -		
  1.1546 -		@see TName */
  1.1547 -		TName iName;
  1.1548 -		/** The current status of the context.
  1.1549 -		
  1.1550 -		@see RPacketContext::TContextStatus */
  1.1551 -		RPacketContext::TContextStatus iStatus;
  1.1552 -		};
  1.1553 -
  1.1554 -	IMPORT_C void EnumerateContexts(TRequestStatus& aStatus,TInt& aCount, TInt& aMaxAllowed) const; ///< Enumerate all Primary and Secondary contexts (whether active or inactive)
  1.1555 -	IMPORT_C void GetContextInfo(TRequestStatus& aStatus, TInt aIndex, TContextInfo& aInfo) const;
  1.1556 -
  1.1557 -	//
  1.1558 -	//	Packet Network Registration and Availability
  1.1559 -	//
  1.1560 -	/** Packet Network Registration/Availability. */
  1.1561 -	enum TRegistrationStatus
  1.1562 -		{
  1.1563 -		/** Not registered and not searching for a network. A network may or may not be 
  1.1564 -		available. */
  1.1565 -		ENotRegisteredNotSearching,
  1.1566 -		/** Registered on a home network. */
  1.1567 -		ERegisteredOnHomeNetwork,
  1.1568 -		/** Not registered but searching for a network. */
  1.1569 -		ENotRegisteredSearching,
  1.1570 -		/** Registration denied. */
  1.1571 -		ERegistrationDenied,
  1.1572 -		/** Registration status unknown. */
  1.1573 -		EUnknown,
  1.1574 -		/** Registered on foreign network. */
  1.1575 -		ERegisteredRoaming,
  1.1576 -		/** Not registered or searching, but network available. */
  1.1577 -		ENotRegisteredButAvailable,	
  1.1578 -		/** Not registered or searching, and network not available. */
  1.1579 -		ENotRegisteredAndNotAvailable
  1.1580 -		};
  1.1581 -
  1.1582 -	IMPORT_C void GetNtwkRegStatus(TRequestStatus& aStatus, TRegistrationStatus& aRegistrationStatus) const;
  1.1583 -	IMPORT_C void NotifyChangeOfNtwkRegStatus(TRequestStatus& aStatus,TRegistrationStatus& aRegistrationStatus) const;
  1.1584 -
  1.1585 -	/** MS class configuration. */
  1.1586 -	enum TMSClass
  1.1587 -		{
  1.1588 -		/** Active simultaneous PS and CS calls supported (Class A). */
  1.1589 -		EMSClassDualMode,			
  1.1590 -		/** Active CS and Suspended PS simultaneous calls supported (Class B). */
  1.1591 -		EMSClassSuspensionRequired, 
  1.1592 -		/** Active CS or Active PS only call supported (Class C). */
  1.1593 -		EMSClassAlternateMode,		
  1.1594 -		/** Active CS only call supported (Class C). */
  1.1595 -		EMSClassCircuitSwitchedOnly,
  1.1596 -		/** Active PS only call supported (Class C) */
  1.1597 -		EMSClassPacketSwitchedOnly, 
  1.1598 -		/** Unknown what configuration is supported */
  1.1599 -		EMSClassUnknown				
  1.1600 -		};
  1.1601 -
  1.1602 -	IMPORT_C void GetMSClass(TRequestStatus& aStatus, TMSClass& aCurrentClass, TMSClass& aMaxClass) const;
  1.1603 -	IMPORT_C void SetMSClass(TRequestStatus& aStatus, TMSClass aClass) const;
  1.1604 -	IMPORT_C void NotifyMSClassChange(TRequestStatus& aStatus, TMSClass& aNewClass) const;
  1.1605 -
  1.1606 -	/** Static capabilities.
  1.1607 -
  1.1608 -	Modes: GPRS */
  1.1609 -	enum TStaticMiscCaps
  1.1610 -			{
  1.1611 -		//
  1.1612 -		// GPRS-specific
  1.1613 -		//
  1.1614 -			/** Suspend supported.
  1.1615 -			
  1.1616 -			Modes: GPRS */
  1.1617 -			KCapsSuspendSupported=0x0001,
  1.1618 -			/** Anonymous Access supported.
  1.1619 -			
  1.1620 -			Modes: GPRS */
  1.1621 -			KCapsAASupported=0x0002,
  1.1622 -			/** Network availability supported.
  1.1623 -			
  1.1624 -			Modes: GPRS */
  1.1625 -			KCapsNetworkAvailabilitySupported=0x0004,
  1.1626 -			/** Set default context supported.
  1.1627 -			
  1.1628 -			Modes: GPRS */
  1.1629 -			KCapsSetDefaultContextSupported=0x0008,
  1.1630 -			/** Change attach mode supported.
  1.1631 -			
  1.1632 -			Modes: GPRS */
  1.1633 -			KCapsChangeAttachModeSupported=0x0010,
  1.1634 -			/** Get data transferred supported.
  1.1635 -			
  1.1636 -			Modes: GPRS */
  1.1637 -			KCapsGetDataTransferredSupported=0x0020,
  1.1638 -			/** Notify data transferred supported
  1.1639 -			
  1.1640 -			Modes: GPRS */
  1.1641 -			KCapsNotifyDataTransferredSupported=0x0040,
  1.1642 -			/** Preferred bearer supported.
  1.1643 -			
  1.1644 -			Modes: GPRS */
  1.1645 -			KCapsPreferredBearerSupported=0x0080,
  1.1646 -			/** PDP data compression supported.
  1.1647 -			
  1.1648 -			Modes: GPRS */
  1.1649 -			KCapsPdpDataCompSupported=0x0100,
  1.1650 -			/** PDP header compression supported
  1.1651 -			
  1.1652 -			Modes: GPRS */
  1.1653 -			KCapsPdpHeaderCompSupported=0x0200,
  1.1654 -			/** MS class supported.
  1.1655 -			
  1.1656 -			Modes: GPRS */
  1.1657 -			KCapsMSClassSupported=0x0400,
  1.1658 -			/** Notify MS class changes supported.
  1.1659 -			
  1.1660 -			Modes: GPRS */
  1.1661 -			KCapsNotifyMSClassSupported=0x0800,
  1.1662 -		//
  1.1663 -		// CDMA Specific
  1.1664 -		//
  1.1665 -			/** Service Option (7,15) or (8,16).
  1.1666 -			
  1.1667 -			Modes: CDMA2000 */
  1.1668 -			KCapsCDMAOneLowSpeedDataSupported=0x00001000,	
  1.1669 -			/** Service Option (22-25) or (26-29).
  1.1670 -			
  1.1671 -			Modes: CDMA2000 */
  1.1672 -			KCapsCDMAOneHighSpeedDataSupported=0x00002000,	
  1.1673 -			/** Service Option 33 or 34.
  1.1674 -			
  1.1675 -			Modes: CDMA2000 */
  1.1676 -			KCapsCDMA2000HighSpeedDataSupported=0x00004000,	
  1.1677 -			/** PPP protocol supported.
  1.1678 -			
  1.1679 -			Modes: CDMA2000 */
  1.1680 -			KCapsProtocolPPPSupported=0x00008000,
  1.1681 -			/** CDPD protocol supported
  1.1682 -			
  1.1683 -			Modes: CDMA2000 */
  1.1684 -			KCapsProtocolCDPDSupported=0x00010000,
  1.1685 -			KCapsPacketReleaseModeSupported=0x00020000,
  1.1686 -			KCapsNotifyReleaseModeChangeSupported=0x00040000,
  1.1687 -			
  1.1688 -			/** The phone supports HSDPA
  1.1689 -			
  1.1690 -			Modes: WCDMA */
  1.1691 -			KCapsHSDPASupported=0x00080000,
  1.1692 -			
  1.1693 -			/** The phone supports EGPRS
  1.1694 -			
  1.1695 -			Modes: GPRS/WCDMA */
  1.1696 -			KCapsEGPRSSupported=0x00100000,
  1.1697 -			
  1.1698 -			/** The phone supports HSUPA
  1.1699 -			
  1.1700 -			Modes: WCDMA */
  1.1701 -			KCapsHSUPASupported=0x00200000,
  1.1702 -			/** The phone supports MBMS
  1.1703 -			
  1.1704 -			Modes: GPRS/WCDMA */
  1.1705 -			KCapsMBMSSupported=0x00400000
  1.1706 -			};
  1.1707 -
  1.1708 -	IMPORT_C TInt GetStaticCaps(TUint& aCaps, RPacketContext::TProtocolType aPdpType) const;
  1.1709 -
  1.1710 -	/** Dynamic capabilities.
  1.1711 -
  1.1712 -	Modes: GPRS/CDMA */
  1.1713 -	enum TDynamicCaps
  1.1714 -		{
  1.1715 -		// Common GPRS and CDMA caps
  1.1716 -		/** Activate supported.
  1.1717 -		
  1.1718 -		Modes: GPRS/CDMA */
  1.1719 -		KCapsActivate=0x00000001,
  1.1720 -		/** Rx Circuit Switched call supported.
  1.1721 -		
  1.1722 -		Modes: GPRS/CDMA */
  1.1723 -		KCapsRxCSCall=0x00000002,
  1.1724 -		/** RX context activation request supported.
  1.1725 -		
  1.1726 -		Modes: GPRS/CDMA */
  1.1727 -		KCapsRxContextActivationReq=0x00000004,
  1.1728 -		// GPRS-specific caps
  1.1729 -		/** Manual attach supported.
  1.1730 -		
  1.1731 -		Modes: GPRS */
  1.1732 -		KCapsManualAttach=0x00000008,
  1.1733 -		/** Manual detach supported.
  1.1734 -		
  1.1735 -		Modes: GPRS */
  1.1736 -		KCapsManualDetach=0x00000010,
  1.1737 -		/** SMS transfer supported.
  1.1738 -		
  1.1739 -		Modes: GPRS */
  1.1740 -		KCapsSMSTransfer=0x00000020,
  1.1741 -		// CDMA-specific caps
  1.1742 -		/** Service Option (7,15) or (8,16).
  1.1743 -		
  1.1744 -		Modes: CDMA */
  1.1745 -		KCapsCDMAOneLowSpeedDataAllowed=0x00000040,
  1.1746 -		/** Service Option (22-25) or (26-29).
  1.1747 -		
  1.1748 -		Modes: CDMA */
  1.1749 -		KCapsCDMAOneHighSpeedDataAllowed=0x00000080,
  1.1750 -		/** Service Option 33 or 34.
  1.1751 -		
  1.1752 -		Modes: CDMA */
  1.1753 -		KCapsCDMA2000HighSpeedDataAllowed=0x00000100,
  1.1754 -		
  1.1755 -		/** HSDPA is currently being used
  1.1756 -		
  1.1757 -		Modes: WCDMA */
  1.1758 -		KCapsHSDPA=0x00000200,
  1.1759 -		
  1.1760 -		/** EGPRS is currently being used
  1.1761 -		
  1.1762 -		Modes: GPRS/WCDMA  */
  1.1763 -		KCapsEGPRS=0x00000400,
  1.1764 -		
  1.1765 -		/** HSUPA is currently being used
  1.1766 -		
  1.1767 -		Modes: WCDMA */
  1.1768 -		KCapsHSUPA=0x00000800,
  1.1769 -		
  1.1770 -		/** MBMS is currently being used
  1.1771 -		
  1.1772 -		Modes: GPRS/WCDMA */
  1.1773 -		KCapsMBMS=0x00001000
  1.1774 -		
  1.1775 -		};
  1.1776 -	
  1.1777 -	/** Typedef to hold the RPacketService::TDynamicCaps. */
  1.1778 -	typedef TUint TDynamicCapsFlags;
  1.1779 -
  1.1780 -	IMPORT_C TInt GetDynamicCaps(TDynamicCapsFlags& aCaps) const;
  1.1781 -	IMPORT_C void NotifyDynamicCapsChange(TRequestStatus& aStatus, TDynamicCapsFlags& aCaps) const;
  1.1782 -
  1.1783 -	/** The preferred bearer. */
  1.1784 -	enum TPreferredBearer
  1.1785 -		{
  1.1786 -		/** Packet Switched (PS) bearer preferred. */
  1.1787 -		EBearerPacketSwitched,
  1.1788 -		/** Circuit Switched (CS) bearer preferred. */
  1.1789 -		EBearerCircuitSwitched
  1.1790 -		};
  1.1791 -
  1.1792 -	IMPORT_C void SetPreferredBearer(TRequestStatus& aStatus, TPreferredBearer aBearer) const;
  1.1793 -	IMPORT_C TInt GetPreferredBearer(TPreferredBearer& aBearer) const;// Deprecated method.
  1.1794 -	
  1.1795 -	IMPORT_C void GetPreferredBearer(TRequestStatus& aStatus, TPreferredBearer& aBearer) const; // Recommended method variant
  1.1796 -
  1.1797 -	/** Defines when the attachment to the GPRS network should occur.
  1.1798 -
  1.1799 -	Modes: GPRS */
  1.1800 -	enum TAttachMode
  1.1801 -		{
  1.1802 -		/** The phone will attach to the packet network whenever it can. */
  1.1803 -		EAttachWhenPossible,// instruct phone stack to attach to packet network whenever it can
  1.1804 -		/** The phone will attach to the packet network only when required (e.g. when activating 
  1.1805 -		a connection). */
  1.1806 -		EAttachWhenNeeded	// instruct phone stack to attach to network only when required
  1.1807 -		};
  1.1808 -
  1.1809 -	IMPORT_C TInt SetAttachMode(TAttachMode aMode) const;  // Deprecated method.
  1.1810 -	IMPORT_C TInt GetAttachMode(TAttachMode& aMode) const; // Deprecated method.
  1.1811 -	IMPORT_C TInt SetDefaultContextParams(const TDesC8& aPckg) const; // Deprecated method.
  1.1812 -	IMPORT_C TInt GetDefaultContextParams(TDes8& aPckg) const; // Deprecated method.
  1.1813 -
  1.1814 -	IMPORT_C void SetAttachMode(TRequestStatus& aStatus, TAttachMode aMode) const; // Recommended method variant
  1.1815 -	IMPORT_C void GetAttachMode(TRequestStatus& aStatus, TAttachMode& aMode) const; // Recommended method variant
  1.1816 -	IMPORT_C void NotifyAttachModeChange(TRequestStatus& aStatus, TAttachMode& aMode) const;
  1.1817 -	IMPORT_C void SetDefaultContextParams(TRequestStatus& aStatus, const TDesC8& aPckg) const; // Recommended method variant
  1.1818 -	IMPORT_C void GetDefaultContextParams(TRequestStatus& aStatus, TDes8& aPckg) const; // Recommended method variant
  1.1819 -
  1.1820 -	enum TPacketReleaseMode
  1.1821 -		{
  1.1822 -		EReleaseModeUnknown,
  1.1823 -		EReleaseModeUnregistered,
  1.1824 -		EReleaseMode97_98,
  1.1825 -		EReleaseMode99,
  1.1826 -		EReleaseMode4,
  1.1827 -		EReleaseModeCDMA2000
  1.1828 -		};
  1.1829 -
  1.1830 -	IMPORT_C void GetCurrentReleaseMode(TRequestStatus& aStatus, TPacketReleaseMode& aReleaseMode) const;
  1.1831 -	IMPORT_C void NotifyReleaseModeChange(TRequestStatus& aStatus, TPacketReleaseMode& aReleaseMode) const;
  1.1832 -
  1.1833 -	enum TContextType
  1.1834 -		{
  1.1835 -		EUnspecified,		///< Unspecified context type
  1.1836 -		EInternalContext,	///< Internally created context
  1.1837 -		EExternalContext	///< Externally created context
  1.1838 -		};
  1.1839 -
  1.1840 -	
  1.1841 -	class TNifInfoV2 : public TPacketBase
  1.1842 -	/**
  1.1843 -	Rel99/R4 Network information class. This V2 class inherits from the 
  1.1844 -	TPacketBase class to make it future proof (extensible).
  1.1845 -	@publishedPartner
  1.1846 -	@released
  1.1847 -	*/
  1.1848 -		{
  1.1849 -	public:
  1.1850 -		IMPORT_C TNifInfoV2();							///< Constructor
  1.1851 -	public:
  1.1852 -		TName iContextName;								///< The name of any defined context for this Network Interface
  1.1853 -		TInt iNumberOfContexts;							///< Number of contexts belonging to the Network Interface
  1.1854 -		RPacketContext::TContextStatus iNifStatus;		///< Status of the Network Interface
  1.1855 -		RPacketContext::TProtocolAddress iPdpAddress;	///< PDP address of the interface
  1.1856 -		TContextType iContextType;						///< Context type (internally or externally created)
  1.1857 -		};
  1.1858 -	typedef TPckg<TNifInfoV2> TNifInfoV2Pckg;			///< TNifInfoV2 package
  1.1859 -
  1.1860 -	// Internal API/TSY struct, used by GetContextNameInNif() method
  1.1861 -	struct TContextNameInNif
  1.1862 -		{
  1.1863 -		TInt iIndex;				///< Integer specifying a context within a Nif.
  1.1864 -		TName iExistingContextName;	///< Existing Context name.
  1.1865 -		};
  1.1866 -
  1.1867 -	IMPORT_C void EnumerateNifs(TRequestStatus& aStatus, TInt& aCount) const;
  1.1868 -	IMPORT_C void GetNifInfo(TRequestStatus& aStatus, TInt aIndex, TDes8& aNifInfoV2) const;
  1.1869 -	IMPORT_C void EnumerateContextsInNif(TRequestStatus& aStatus, const TDesC& aExistingContextName, TInt& aCount) const;
  1.1870 -	IMPORT_C void GetContextNameInNif(TRequestStatus& aStatus,  const TDesC& aExistingContextName, TInt aIndex, TDes& aContextName) const;
  1.1871 -	IMPORT_C void DeactivateNIF(TRequestStatus& aStatus, const TDesC& aContextName) const;
  1.1872 -
  1.1873 -////////////////////////////////////////////////////////
  1.1874 -//
  1.1875 -// MBMS Service Availability
  1.1876 -//
  1.1877 -////////////////////////////////////////////////////////
  1.1878 -	
  1.1879 -	class TMbmsServiceAvailabilityV1 : public TPacketType
  1.1880 -	/**
  1.1881 -	Holds the service availability parameters needed to register with TSY
  1.1882 -	for the services to be monitored.
  1.1883 -	
  1.1884 -	@publishedPartner
  1.1885 -	@released
  1.1886 -	*/
  1.1887 -		{
  1.1888 -	public:	
  1.1889 -		IMPORT_C TMbmsServiceAvailabilityV1();
  1.1890 -	public:
  1.1891 -		void InternalizeL(RReadStream& aStream);
  1.1892 -		void ExternalizeL(RWriteStream& aStream) const;
  1.1893 -	public:
  1.1894 -		/** Input Parameter : Temporary Mobile Group Identity */
  1.1895 -		TTmgi	iTmgi;
  1.1896 -		
  1.1897 -		/** Input Parameter : MBMS service mode */
  1.1898 -		TMbmsServiceMode iMbmsServiceMode;
  1.1899 -		
  1.1900 -		/** Output Parameter : MBMS availability status */
  1.1901 -		TMbmsAvailabilityStatus iMbmsAvailabilityStatus;
  1.1902 -		
  1.1903 -		/** Input Parameter : MBMS access bearer information */
  1.1904 -		TMbmsScope iMbmsAccessBearer;
  1.1905 -		};
  1.1906 -	
  1.1907 -	//Packaged version of TMbmsServiceAvailabilityV1, used when this structure has to be passed via IPC.
  1.1908 -	typedef TPckg<TMbmsServiceAvailabilityV1> TMbmsServiceAvailabilityV1Pckg;
  1.1909 -		
  1.1910 -	IMPORT_C void NotifyMbmsServiceAvailabilityChange(TRequestStatus& aReqStatus) const;
  1.1911 -	IMPORT_C void UpdateMbmsMonitorServiceListL (TRequestStatus& aReqStatus, const TMbmsAction aAction, CPcktMbmsMonitoredServiceList* aList = NULL) const;		
  1.1912 -	IMPORT_C void GetMbmsNetworkServiceStatus(TRequestStatus& aStatus, TBool aAttemptAttach, TMbmsNetworkServiceStatus& aServiceStatus) const;
  1.1913 -	IMPORT_C void NotifyMbmsNetworkServiceStatusChange(TRequestStatus& aStatus, TMbmsNetworkServiceStatus& aServiceStatus) const;
  1.1914 -	IMPORT_C void EnumerateMbmsMonitorServiceList(TRequestStatus& aStatus, TInt& aCount, TInt& aMaxAllowed) const;
  1.1915 -	IMPORT_C void EnumerateMbmsActiveServiceList(TRequestStatus& aStatus, TInt& aCount, TInt& aMaxAllowed) const;
  1.1916 -protected:
  1.1917 -	IMPORT_C virtual void ConstructL();
  1.1918 -	IMPORT_C virtual void Destruct();
  1.1919 -private:
  1.1920 -	TInt PrepareOpenSecondary(const TDesC& aOriginalContextName); ///< Internal method, not for Client use
  1.1921 -	CPacketPtrHolder* iEtelPacketPtrHolder;
  1.1922 -	RMutex iMutex;   ///< Internal mutex, used to prevent concurent use of PrepareOpenSecondary() and OpenNewContext()
  1.1923 -	};
  1.1924 -	
  1.1925 -#include <etelpckt.inl>
  1.1926 -#endif