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