RPacketContext Class Reference

class RPacketContext : public RTelSubSessionBase

Defines the context and the configuration of a connection to the network's packet-switched service.

The functionality associated with the context of a packet-switched connection (configuring, modifying, activating, etc) are encapsulated within this class.

Each instance of this class has an RPacketService parent, to which it belongs.

Inherits from

Public Member Functions
RPacketContext()
IMPORT_C voidActivate(TRequestStatus &)
IMPORT_C voidAddMediaAuthorizationL(TRequestStatus &, CTFTMediaAuthorizationV3 &)
IMPORT_C voidAddPacketFilter(TRequestStatus &, const TDesC8 &)
IMPORT_C voidClose()
IMPORT_C voidCreateNewTFT(TRequestStatus &, const TInt)
IMPORT_C voidDeactivate(TRequestStatus &)
IMPORT_C voidDelete(TRequestStatus &)
IMPORT_C voidDeleteTFT(TRequestStatus &)
IMPORT_C voidEnumeratePacketFilters(TRequestStatus &, TInt &)
IMPORT_C voidGetConfig(TRequestStatus &, TDes8 &)
IMPORT_C voidGetConnectionInfo(TRequestStatus &, TDes8 &)
IMPORT_C voidGetConnectionSpeed(TRequestStatus &, TUint &)
IMPORT_C TIntGetDataVolumeTransferred(TDataVolume &)
IMPORT_C voidGetDataVolumeTransferred(TRequestStatus &, TDataVolume &)
IMPORT_C voidGetDnsInfo(TRequestStatus &, TDes8 &)
IMPORT_C TIntGetLastErrorCause(TInt &)
IMPORT_C voidGetPacketFilterInfo(TRequestStatus &, TInt, TDes8 &)
IMPORT_C TIntGetProfileName(TName &)
IMPORT_C TIntGetStatus(TContextStatus &)
IMPORT_C voidInitialiseContext(TRequestStatus &, TDes8 &)
IMPORT_C voidLoanCommPort(TRequestStatus &, RCall::TCommPort &)
IMPORT_C voidModifyActiveContext(TRequestStatus &)
IMPORT_C voidNotifyConfigChanged(TRequestStatus &, TDes8 &)
IMPORT_C voidNotifyConnectionInfoChange(TRequestStatus &, TDes8 &)
IMPORT_C voidNotifyConnectionSpeedChange(TRequestStatus &, TUint &)
IMPORT_C voidNotifyDataTransferred(TRequestStatus &, TDataVolume &, TUint, TUint)
IMPORT_C voidNotifyStatusChange(TRequestStatus &, TContextStatus &)
IMPORT_C TIntOpenExistingContext(RPacketService &, const TDesC &)
IMPORT_C TIntOpenNewContext(RPacketService &, TDes &)
IMPORT_C TIntOpenNewSecondaryContext(RPacketService &, const TDesC &, TDes &)
IMPORT_C voidRecoverCommPort(TRequestStatus &)
IMPORT_C voidRemoveMediaAuthorization(TRequestStatus &, TAuthorizationToken &)
IMPORT_C voidRemovePacketFilter(TRequestStatus &, TInt)
IMPORT_C voidSetConfig(TRequestStatus &, const TDesC8 &)
Protected Member Functions
IMPORT_C voidConstructL()
IMPORT_C voidDestruct()
Inherited Functions
RSubSessionBase::CloseSubSession(TInt)
RSubSessionBase::CreateAutoCloseSubSession(RSessionBase &,TInt,const TIpcArgs &)
RSubSessionBase::CreateSubSession(const RSessionBase &,TInt)
RSubSessionBase::CreateSubSession(const RSessionBase &,TInt,const TIpcArgs &)
RSubSessionBase::RSubSessionBase()
RSubSessionBase::Send(TInt)const
RSubSessionBase::Send(TInt,const TIpcArgs &)const
RSubSessionBase::SendReceive(TInt)const
RSubSessionBase::SendReceive(TInt,TRequestStatus &)const
RSubSessionBase::SendReceive(TInt,const TIpcArgs &)const
RSubSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
RSubSessionBase::Session()const
RSubSessionBase::SubSessionHandle()const
RTelSubSessionBase::Blank(const TInt,TReqPriorityType)const
RTelSubSessionBase::Blank(const TInt,TRequestStatus &,TReqPriorityType)const
RTelSubSessionBase::CancelAsyncRequest(TInt)const
RTelSubSessionBase::CancelReq(const TInt,const TInt)const
RTelSubSessionBase::CancelSubSession()const
RTelSubSessionBase::Get(const TInt,TDes16 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes8 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes8 &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes16 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::Get(const TInt,TRequestStatus &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::RTelSubSessionBase()
RTelSubSessionBase::ResetSessionHandle()
RTelSubSessionBase::SessionHandle()const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC16 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,TRequestStatus &,const TDesC8 &,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const RFile &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC16 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC8 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::Set(const TInt,const TDesC8 &,const TDesC8 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,TDes8 &,const TDesC16 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC16 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC8 &,TDes16 &,TReqPriorityType)const
RTelSubSessionBase::SetAndGet(const TInt,TRequestStatus &,const TDesC8 &,TDes8 &,TReqPriorityType)const
RTelSubSessionBase::SetSessionHandle(RSessionBase &)
RTelSubSessionBase::SubSessionHandle()
Public Member Enumerations
enumanonymous { KPdpDataCompression = 0x01, KPdpHeaderCompression = 0x02 }
enumTAnonymousAccess { ENotApplicable, ERequired, ENotRequired }
enumTAuthProtocol { EProtocolNone, EProtocolPAP, EProtocolCHAP }
enumTConnectionInfoFlags { KHSDPACategory = 0x00000001, KHSUPACategory = 0x00000002 }
enumTContextStatus {
EStatusUnknown, EStatusInactive, EStatusActivating, EStatusActive, EStatusDeactivating, EStatusSuspended, EStatusDeleted, EStatusReceiving
}
enumTDataCompression { ENoDataCompression, EManufacturerDefaultDataCompression, EV42, EV44 }
enumTFQDNLength { KMaxFQDNLength = 255 }
enumTHeaderCompression { ENoHeaderCompression, EManufacturerDefaultHeaderCompression, ERfc1144, ERfc2507, ERohc }
enumTPacketFilterType { EPacketFilterTypeUnknown, EPacketFilterTypeOne, EPacketFilterTypeTwo, EPacketFilterTypeThree }
enumTPacketFlowIdentifier { EBestEffort, ESignalling, ESms }
enumTPcoIDMSToNetwork { EEtelPcktPCSCFAddressRequest = 0x01, EEtelPcktIMCNMSSubsystemSignallingFlag = 0x02, EEtelPcktDNSServerAddressRequest = 0x03, EEtelPcktNotSupported = 0x04 }
enumTPcoIDNetworkToMS { EEtelPcktPCSCFAddress = 0x01, EEtelPcktIMCNNetworkSubsystemSignallingFlag = 0x02, EEtePcktDNSServerAddress = 0x03, EEtelPcktPolicyControlRejectionCode = 0x04 }
enumTPcoProtocolId { EETelPcktProtocolLcpId = 0xc021, EETelPcktProtocolPapId = 0xc023, EETelPcktProtocolChapId = 0xc223, EETelPcktProtocolIpcpId = 0x8021 }
enumTProtocolType { EPdpTypeIPv4, EPdpTypeIPv6, EPdpTypeX25, EPdpTypePPP, EPdpTypeCDPD }
enumTServiceOption { KLowSpeedData = 0x01, KHighSpeedData = 0x02, KHighSpeedCDMA2000Data = 0x04 }
Inherited Enumerations
RTelSubSessionBase:TReqPriorityType
Public Member Type Definitions
typedef TBuf8< KMaxAuthDataLength > TAuthData
typedef TBuf8< KMaxFQDNLength > TAuthorizationToken
typedef TPckg< TDataChannelV2 > TDataChannelV2Pckg
typedef TBuf8< KGSNNameLength > TGSNAddress
typedef TUint8 TIPAddress
typedef TBuf8< KMiscProtocolBufferLength > TMiscProtocolBuffer
typedef TPckg< TPacketFilterV2 > TPacketFilterV2Pckg
typedef TPckg< TPacketFilterV3 > TPacketFilterV3Pckg
typedef TBuf8< KMaxPDPAddressLength > TProtocolAddress
typedef TPckg< TDnsInfoV2 > TTDnsInfoV2Pckg
Protected Attributes
CPacketContextPtrHolder *iEtelPacketContextPtrHolder
Inherited Attributes
RTelSubSessionBase::iPtrHolder

Constructor & Destructor Documentation

RPacketContext()

IMPORT_CRPacketContext()

Standard constructor.

Member Functions Documentation

Activate(TRequestStatus &)

IMPORT_C voidActivate(TRequestStatus &aStatus)const

Activates a context that has been previously configured using SetConfig(). Once this function completes, the context will remain in an 'Activating' state until a layer 2 connection (e.g.: PPP or SLIP) has been successfully negotiated between the phone and the packet network gateway. Once the link layer has been negotiated, the context can be considered to be 'Activated'.

This is an asynchronous function.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextActivate) to cancel a previously placed asynchronous Activate() request.

capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.

AddMediaAuthorizationL(TRequestStatus &, CTFTMediaAuthorizationV3 &)

IMPORT_C voidAddMediaAuthorizationL(TRequestStatus &aStatus,
CTFTMediaAuthorizationV3 &aMediaAuthorization
)const

Adds a new set of Authorization Token and Flow Identifiers to the packet context object. This asynchronous method may be called by the client application.

capability
NetworkServices
capability
WriteDeviceData

Parameters

TRequestStatus & aStatusTRequestStatus reference, enables asynchronous function call.
CTFTMediaAuthorizationV3 & aMediaAuthorizationa reference to a CTFTMediaAuthorizationV3 object containing the data that is to be added.

AddPacketFilter(TRequestStatus &, const TDesC8 &)

IMPORT_C voidAddPacketFilter(TRequestStatus &aStatus,
const TDesC8 &aPacketFilterInfo
)const

This asychronous method may be called by the client application. It sets up a packet filter in the TFT belonging to this context with the ID specified in the packet filter information since version 2 of this API. Supported from v7.0S .

capability
WriteDeviceData
capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
const TDesC8 & aPacketFilterInfoReference to a TPacketFilterV2 class packaged inside a TPckg<> class.

Close()

IMPORT_C voidClose()

Closes the client's current sub-session with ETel. Any outstanding requests the client may have with ETel (notifications, for example) will be automatically destroyed by ETel.

An opened RPacketContext must be closed explicitly by calling Close() to prevent a resource (memory) leak.
capability
None

ConstructL()

IMPORT_C voidConstructL()[protected, virtual]

This function creates an instance of CPacketContextPtrHolder and assigns it to the iEtelPacketContextPtrHolder pointer.

CreateNewTFT(TRequestStatus &, const TInt)

IMPORT_C voidCreateNewTFT(TRequestStatus &aStatus,
const TIntaSize
)const

This asynchronous method may be called by the client application. Creates a new Traffic Flow Template.

capability
NetworkServices

Parameters

TRequestStatus & aStatusTRequestStatus reference, enables asynchronous function call.
const TInt aSizeNumber of filters that the TFT contains.

Deactivate(TRequestStatus &)

IMPORT_C voidDeactivate(TRequestStatus &aStatus)const

Deactivates a context previously configured on the phone.

This is an asynchronous function.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextDeactivate) to cancel a previously placed asynchronous Deactivate() request.

capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.

Delete(TRequestStatus &)

IMPORT_C voidDelete(TRequestStatus &aStatus)const

Deletes a context previously configured on the phone.

This asynchronous function may be called by the client application.

Although the context is deleted from the TSY (and/or ME), the client's RPacketContext/RPacketMbmsContext subsession remains. To remove this, a client must call Close().

This is an asynchronous function.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextDelete) to cancel a previously placed asynchronous Delete() request.

capability
WriteDeviceData

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.

DeleteTFT(TRequestStatus &)

IMPORT_C voidDeleteTFT(TRequestStatus &aStatus)const

This asynchronous method may be called by the client application. Deletes the existing traffic flow template (including all filters) for this context object.

capability
NetworkServices

Parameters

TRequestStatus & aStatusTRequestStatus reference, enables asynchronous function call.

Destruct()

IMPORT_C voidDestruct()[protected, virtual]

This function deletes and NULLs the iEtelPacketContextPtrHolder pointer.

EnumeratePacketFilters(TRequestStatus &, TInt &)

IMPORT_C voidEnumeratePacketFilters(TRequestStatus &aStatus,
TInt &aCount
)const

This asynchronous method may be called by the client application. It returns the number of defined packet filters in the Traffic Flow Template (TFT) associated with this context since version 2 of the API. Supported from v7.0S.

capability
ReadDeviceData

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TInt & aCountNumber of packet filters in the TFT.

GetConfig(TRequestStatus &, TDes8 &)

IMPORT_C voidGetConfig(TRequestStatus &aStatus,
TDes8 &aConfig
)const

Gets the configuration of the current context.

This is an asynchronous function.

In the case of this function call, the value for each TContextConfigXXX parameter will be input by the TSY.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextGetConfig) to cancel a previously placed asynchronous GetConfig() request.

capability
ReadDeviceData

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TDes8 & aConfigOn completion, a TContextConfigXXX context configuration object packaged as a TPckg<TContextConfigXXX>.

GetConnectionInfo(TRequestStatus &, TDes8 &)

IMPORT_C voidGetConnectionInfo(TRequestStatus &aStatus,
TDes8 &aInfo
)const

Gets the current connection information.

This is an asynchronous function.

In the case of this function call, the members of class TConnectionInfoV1 or any later derived versions supplied by the client will be returned, eg. TConnectionInfoVx.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextGetConnectionInfo) to cancel a previously placed asynchronous GetConnectionInfo() request.

N.B. only supported if telephony was built with SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW macro
capability
None

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TDes8 & aInfoTConnectionInfoV1 or any later derived versions supplied by the client packaged as a TPckg<TConnectionInfoVx>.

GetConnectionSpeed(TRequestStatus &, TUint &)

IMPORT_C voidGetConnectionSpeed(TRequestStatus &aStatus,
TUint &aRate
)const

Gets the current connection speed.

This is an asynchronous function.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextGetConnectionSpeed) to cancel a previously placed asynchronous GetConnectionSpeed() request.

capability
None

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TUint & aRateOn return, the current connection bandwidth in bits per second.

GetDataVolumeTransferred(TDataVolume &)

IMPORT_C TIntGetDataVolumeTransferred(TDataVolume &aVolume)const

Allows a client to get details on the current amount of data transmitted and received over the airlink since the context was activated, in version 1 of the API.

This synchronous method may be called by the client application.

Use asynchronous version from v7.0S.
capability
ReadUserData

Parameters

TDataVolume & aVolumeOn return, a reference to TDataVolume with the current amount of data transmitted and received.

GetDataVolumeTransferred(TRequestStatus &, TDataVolume &)

IMPORT_C voidGetDataVolumeTransferred(TRequestStatus &aStatus,
TDataVolume &aVolume
)const

Allows a client to get details on the current amount of data transmitted and received over the airlink since the context was activated, for version 2 of this API onwards.

This is an asynchronous function. Note that the synchronous variant of this method is deprecated.

Introduced in v7.0S.

capability
ReadUserData

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TDataVolume & aVolumeOn return, a reference to TDataVolume with the current amount of data transmitted and received.

GetDnsInfo(TRequestStatus &, TDes8 &)

IMPORT_C voidGetDnsInfo(TRequestStatus &aStatus,
TDes8 &aDnsInfo
)const

Extracts DNS server names from the context since version 2 of the API.

Supported from v7.0S.

GetDNSInfo() is needed when the client uses dynamic IPv4 PDP addresses. After the context is activated the client needs to know the actual primary and secondary DNS addresses to use when sending packet data. As the network may have supplied these addresses there is a need for an API method to get these addresses from the TSY.

capability
ReadDeviceData

Parameters

TRequestStatus & aStatusTRequestStatus object with which error code is returned
TDes8 & aDnsInfoPackaged TDnsInfoV2 object.

GetLastErrorCause(TInt &)

IMPORT_C TIntGetLastErrorCause(TInt &aError)const

Gets the most recent error to have occurred. This may be used, for instance, to retrieve which error caused PPP to close down prematurely.

This function may be called by the client.

capability
None

Parameters

TInt & aErrorOn return, the last error received or generated by the TSY.

GetPacketFilterInfo(TRequestStatus &, TInt, TDes8 &)

IMPORT_C voidGetPacketFilterInfo(TRequestStatus &aStatus,
TIntaIndex,
TDes8 &aPacketFilterInfo
)const

This asynchronous method may be called by the client application. Retrieves information about the packet filter specified by the aIndex parameter since version 2 of this API. It is usual to use this function in conjunction with the EnumeratePacketFilters() method, which returns the current number of defined packet filters in the TFT in its 'aCount' argument.

Supported from v7.0S

capability
ReadDeviceData
capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TInt aIndexSpecifies packet filter for which information is to be retrieved. The valid range for aIndex will be between 0 and (n-1) where n is the number returned in aCount. If an invalid index is specified the method will return KErrArgument in its aStatus.
TDes8 & aPacketFilterInfoReference to a TPacketFilterV2 class packaged inside a TPckg<> class.

GetProfileName(TName &)

IMPORT_C TIntGetProfileName(TName &aQoSProfile)const

Allows a client to retrieve the name of the Quality of Service profile (RPacketQoS) associated with the context.

This is an synchronous function.

capability
None

Parameters

TName & aQoSProfileOn return, a reference to the name of the existing QoS profile. If no profile has been defined then this name will be NULL.

GetStatus(TContextStatus &)

IMPORT_C TIntGetStatus(TContextStatus &aContextStatus)const

Allows a client to get the current status of the context.

This synchronous function may be called by the client application.

capability
None

Parameters

TContextStatus & aContextStatusOn return, the current status of the context.

InitialiseContext(TRequestStatus &, TDes8 &)

IMPORT_C voidInitialiseContext(TRequestStatus &aStatus,
TDes8 &aDataChannelV2Pckg
)const

Enables asynchronous resource reservation for a new primary or secondary context at the creation phase, since version 2 of the API.

This is an asynchronous function.

Supersedes the LoanCommPort() and RecoverCommPort() methods, which are now deprecated. This new method enables asynchronous resource reservation for a new primary or secondary context at the creation phase.

The InitialiseContext() method still contains the information that was previously in the LoanCommPort() method, i.e. details of the comm port to be used for sending/receiving user data. It however has an additional member which will return any additional information generated by context creation.

Introduced in v7.0S

capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TDes8 & aDataChannelV2PckgReference to a TDataChannelV2 class packaged inside a TPckg<> class. The TDataChannelV2 class contains the members of the struct used previously by the deprecated LoanCommPort() method as well as an additional member which will now return technical information generated when a context is created, for instance, a context name or id. This name/id is different from that assigned by the TSY when the OpenNewContext() or OpenNewSecondaryContext() methods are called.

LoanCommPort(TRequestStatus &, RCall::TCommPort &)

IMPORT_C voidLoanCommPort(TRequestStatus &aStatus,
RCall::TCommPort &aDataPort
)const

Provides a client with details of the comm port to be used for sending/receiving user data in version 1 of the API. This comm port is used by Network Interfaces, NIFs, (for example: PPP.NIF) to send and receive data. In a 2-box device this port would generally be the same as that used by the TSY to set up and control the connection. In a 1-box device this port would generally be different to the port used by the TSY to set up and control the connection.

This asynchronous function may be called by the client application.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextLoanCommPort) to cancel a previously placed asynchronous LoanCommPort() request.

Superceded in v7.0S

capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
RCall::TCommPort & aDataPortA reference to a TCommPort class containing information on the port, including its name and the associated CSY used to access it.

ModifyActiveContext(TRequestStatus &)

IMPORT_C voidModifyActiveContext(TRequestStatus &aStatus)const

This asynchronous method may be called by the client application. It invokes an MS-initiated modification of an active context in the network since version 2 of the API. The client must previously have altered either the requested QoS profile of the context and/or the TFT whilst the context was active before calling this method.

Supported from v7.0S

capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.

NotifyConfigChanged(TRequestStatus &, TDes8 &)

IMPORT_C voidNotifyConfigChanged(TRequestStatus &aStatus,
TDes8 &aConfig
)const

Allows a client to be notified whenever a change in the current context is detected and gets the updated configuration.

This is an asynchronous function.

In the case of this function call, the value for each parameter will be input by the TSY.

It should be noted that once the notification completes, the client must then re-post the notification if they wish to continue receiving the notification.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextNotifyConfigChanged) to cancel a previously placed asynchronous NotifyConfigChanged() request.

capability
ReadDeviceData

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TDes8 & aConfigOn completion, a TContextConfigXXX context configuration object packaged as a TPckg<TContextConfigXXX>.

NotifyConnectionInfoChange(TRequestStatus &, TDes8 &)

IMPORT_C voidNotifyConnectionInfoChange(TRequestStatus &aStatus,
TDes8 &aInfo
)const

Allows a client to be notified whenever the connection information changes and gets the updated connection information.

This is an asynchronous function.

Once the notification completes, the client must then re-post the notification if they wish to continue receiving further notifications.

N.B. only supported if telephony was built with SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW macro
capability
None

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TDes8 & aInfoTConnectionInfoV1 or any later derived versions supplied by the client packaged as a TPckg<TConnectionInfoVx>.

NotifyConnectionSpeedChange(TRequestStatus &, TUint &)

IMPORT_C voidNotifyConnectionSpeedChange(TRequestStatus &aStatus,
TUint &aRate
)const

Allows a client to be notified whenever the current connection speed changes and gets the current connection speed.

This is an asynchronous function.

Once the notification completes, the client must then re-post the notification if they wish to continue receiving further notifications.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextNotifyConnectionSpeedChange) to cancel a previously placed asynchronous NotifyConnectionSpeedChange() request.

capability
None

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TUint & aRateOn return, the current connection bandwidth in bits per second.

NotifyDataTransferred(TRequestStatus &, TDataVolume &, TUint, TUint)

IMPORT_C voidNotifyDataTransferred(TRequestStatus &aStatus,
TDataVolume &aVolume,
TUintaRcvdGranularity = 0x1000,
TUintaSentGranularity = 0x1000
)const

Allows a client to be notified of a change in the volume of data transmitted and received over the airlink since the context was activated and gets the new volume.

The notification will only complete when the change in volume increases by a client-specified amount (granularity). The default granularity for each direction (rx/tx) is 4KB.

This is an asynchronous function.

Once the notification completes, the client must then re-post the notification if they wish to continue receiving further notifications.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextNotifyDataTransferred) to cancel a previously placed asynchronous NotifyDataTransferred() request.

capability
ReadUserData

Parameters

TRequestStatus & aStatusKErrNone if successful, otherwise another of the system-wide error codes.
TDataVolume & aVolumeOn return, a reference to the current amount of data transmitted and received.
TUint aRcvdGranularity = 0x1000The granularity for the volume of received data.
TUint aSentGranularity = 0x1000The granularity for the volume of transmitted data.

NotifyStatusChange(TRequestStatus &, TContextStatus &)

IMPORT_C voidNotifyStatusChange(TRequestStatus &aStatus,
TContextStatus &aContextStatus
)

Allows a client to receive a notification whenever a change in the status of the context is detected and gets the new context status.

This is an asynchronous function.

Once the notification completes, the client must re-post the notification if they wish to continue receiving further status change notifications.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextNotifyStatusChange) to cancel a previously placed asynchronous NotifyStatusChange() request.

capability
None

Parameters

TRequestStatus & aStatusKErrNone if successful, otherwise another of the system-wide error codes.
TContextStatus & aContextStatusOn completion, the new context status.

OpenExistingContext(RPacketService &, const TDesC &)

IMPORT_C TIntOpenExistingContext(RPacketService &aPacketNetwork,
const TDesC &aContextName
)

Opens a handle on an existing context (RPacketContext) object, either primary or secondary, identified by a name.

KErrNotFound is returned if the object does not exist.

An opened RPacketContext must be closed explicitly by calling Close() to prevent a resource (memory) leak.

capability
None

Parameters

RPacketService & aPacketNetworkThis identifies the packet network (RPacketService) the particular context to be opened belongs. All existing contexts must have an RPacketService parent.
const TDesC & aContextNameThis uniquely identifies to ETel which existing RPacketContext object the client wants to open. This name was previously assigned by the TSY when the specified RPacketContext was created, using OpenNewContext().

OpenNewContext(RPacketService &, TDes &)

IMPORT_C TIntOpenNewContext(RPacketService &aPacketNetwork,
TDes &aContextName
)

Creates a primary PDP context (i.e. RPacketContext) on an existing RPacketService connection.

There is a global mutex around this method and the RPacketService::OpenNewSecondaryContext() method. There is a potential problem with an Open function that makes an initial "set-up" function call - another client could also call OpenNewSecondaryContext() or OpenNewContext() at the same time, and the wrong client's OpenNewObjectL() will reach the TSY first. This would mean clients would receive handles to the wrong context! To avoid this, the API code for both OpenNewContext() and OpenNewSecondaryContext() must have a shared global mutex around it, so only one client can call either of these two functions at any one time.

The TSY will return KErrUmtsMaxNumOfContextExceededByPhone if the number of PDP contexts supported by the phone is exceeded. The TSY will return KErrUmtsMaxNumOfContextExceededByNetwork if the number of PDP contexts supported by the network is exceeded.

An opened RPacketContext must be closed explicitly by calling Close() to prevent a resource (memory) leak.

capability
None

Parameters

RPacketService & aPacketNetworkAn RPacketContext may only be opened from an existing RPacketService subsession. A client application must therefore pass a reference to their previously instantiated RPacketService object.
TDes & aContextNameWhen the new context is created, the TSY will assign it a unique name and pass this name back to the client using this parameter. The client can use this name to uniquely identify the particular context.

OpenNewSecondaryContext(RPacketService &, const TDesC &, TDes &)

IMPORT_C TIntOpenNewSecondaryContext(RPacketService &aPacketService,
const TDesC &aExistingContextName,
TDes &aNewContextName
)

Creates a new secondary context from an existing context (either primary or secondary) since version 2 of the API.

The configuration of the existing context is used by the new one so the client need not call the RPacketContext::SetConfig() method.

Immediately after the creation of the newly created secondary context, a client must - a) ensure that they specify the requested QoS using an RPacketQoS object; b) add a packet filter to the secondary object. This assumes that there already exists a primary or secondary context for this NIF without a TFT. If this is not the case, it is not mandatory that a packet filter is added to this new secondary context before activation. The TSY will return KErrNotSupported if it does not support secondary contexts.

The TSY will return KErrUmtsMaxNumOfContextExceededByPhone if the number of PDP contexts supported by the phone is exceeded. The TSY will return KErrUmtsMaxNumOfContextExceededByNetwork if the number of PDP contexts supported by the network is exceeded.

There is a global mutex around this method and the RPacketService::OpenNewContext() method. There is a potential thread timing issue with an Open function that makes an initial "set-up" function call - another client could also call OpenNewSecondaryContext() or OpenNewContext() at the same time, and the wrong client's OpenNewObjectL() will reach the TSY first. This would mean clients would receive handles to the wrong context! To avoid this, the API code for both OpenNewContext() and OpenNewSecondaryContext() must have a shared global mutex around it, so only one client can call either of these two functions at any one time.

capability
None

Parameters

RPacketService & aPacketServiceAn RPacketContext may only be opened from an existing RPacketService subsession. A client application must therefore pass a reference to their previously instantiated RPacketService object.
const TDesC & aExistingContextName: Name of the existing context which is to spawn a secondary context.
TDes & aNewContextName: New Secondary context name is assigned by the TSY.

RecoverCommPort(TRequestStatus &)

IMPORT_C voidRecoverCommPort(TRequestStatus &aStatus)const

Allows a client, who previously called LoanCommPort(), to inform ETel and hence the TSY that it has finished with the comm port, in version 1 of the API.

This asynchronous function may be called by the client application.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextRecoverCommPort) to cancel a previously placed asynchronous RecoverCommPort() request.

Superceded in v7.0S.

capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.

RemoveMediaAuthorization(TRequestStatus &, TAuthorizationToken &)

IMPORT_C voidRemoveMediaAuthorization(TRequestStatus &aStatus,
TAuthorizationToken &aAuthorizationToken
)const

Removes the Authorization Token and Flow Identifiers set from the packet context object. This is identified by aAuthorizationToken. This asynchronous method may be called by the client application.

capability
NetworkServices
capability
WriteDeviceData

Parameters

TRequestStatus & aStatusTRequestStatus reference, enables asynchronous function call.
TAuthorizationToken & aAuthorizationTokenidentifier to the Authorization Token that is to be removed.

RemovePacketFilter(TRequestStatus &, TInt)

IMPORT_C voidRemovePacketFilter(TRequestStatus &aStatus,
TIntaId
)const

This asynchronous method may be called by the client application. Removes a packet filter from the TFT belonging to this context, since version 2 of the API.

Supported from v7.0S
capability
WriteDeviceData
capability
NetworkServices

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
TInt aIdSpecifies the packet filter.

SetConfig(TRequestStatus &, const TDesC8 &)

IMPORT_C voidSetConfig(TRequestStatus &aStatus,
const TDesC8 &aConfig
)const

Passes to the TSY all the parameters necessary to configure the particular context. The parameters are passed via a packaged TContextConfigGPRS/ TContextConfigCDMA/TContextConfigR99_R4/RPacketMbmsContextTContextConfigMbmsV1 object depending on the current network mode.

This is an asynchronous function.

In the case of this function call, the value for each TContextConfigXXX parameter will be input by the client and probably obtained from CommDB. To determine how to correctly unpack the descriptor inside the TSY, the TSY must first cast the descriptor to a TPacketDataConfigBase pointer and check whether ExtensionId() returns a KConfigGPRS, KConfigCDMA,KConfigRel99Rel4 or KConfigMBMS. The TSY will then cast the descriptor to the correct TPacketDataConfigBase-derived class.

Use RTelSubSessionBase::CancelAsyncRequest(EPacketContextSetConfig) to cancel a previously placed asynchronous SetConfig() request.

capability
WriteDeviceData

Parameters

TRequestStatus & aStatusOn return, KErrNone if successful, otherwise another of the system-wide error codes.
const TDesC8 & aConfigA TContextConfigXXX object packaged as a TPckg<TContextConfigXXX>.

Member Enumerations Documentation

Enum anonymous

Enumerators

KPdpDataCompression = 0x01
KPdpHeaderCompression = 0x02

Enum TAnonymousAccess

Anonymous access required.

Modes: GRPS, CDMA

Enumerators

ENotApplicable

Anonymous access not applicable.

Modes: GRPS, CDMA

ERequired

Anonymous access required.

Modes: GRPS

ENotRequired

Anonymous access not required.

Modes: GPRS

Enum TAuthProtocol

Enumerators

EProtocolNone
EProtocolPAP
EProtocolCHAP

Enum TConnectionInfoFlags

Determines which fields in the TConnectionInfoXXX parameter class are valid.

TConnectionInfoV1

Enumerators

KHSDPACategory = 0x00000001

The HSDPA category field is valid in the connection info class.

Modes: WCDMA

KHSUPACategory = 0x00000002

The HSUPA category field is valid in the connection info class.

Modes: WCDMA

Enum TContextStatus

Enumerators

EStatusUnknown

Current status is unknown.

EStatusInactive

Context is not activated.

EStatusActivating

Context is currently being activated.

EStatusActive

Context is active.

EStatusDeactivating

Context is currently being deactivated.

EStatusSuspended

Context is suspended.

EStatusDeleted

Context has been deleted.

EStatusReceiving

Context is currently in data receiving mode.The service transitions to this state when the data transmission starts.This is expected to happen after some time of arrival of SESSION START message from the network. Note : Applicable only to MBMS context

Enum TDataCompression

Identifiers for the type of data data compression applicable for SNDCP only, as defined in 3GPP TS 44.065, section 6.6.1.1.4. Values listed in the enumeration do not hold same numerical values as those defined in the specifications, as ENoDataComression and EManufacturerDefaultDataComression are introduced in order to be utilised when no compression and device default compression algorithm are needed, respectively.

Enumerators

ENoDataCompression

No compression

EManufacturerDefaultDataCompression

Compression algorithm preferred by the device manufacturer

EV42

V.42 bis

EV44

V.44

Enum TFQDNLength

Maximum length of DNS Fully Qualified Domain Name (RFC 1123)

Enumerators

KMaxFQDNLength = 255

Enum THeaderCompression

Identifiers for type of SNDCP & PDCP header compression as defined in 3GPP TS 44.065, section 6.5.1.1.4, Values listed in the enumeration do not hold same numerical values as those defined in the specifications, as ENoHeaderCompression and EManufacturerDefaultHeaderCompression are introduced in order to be utilised when no compression and device default compression algorithm are needed, respectively.

Enumerators

ENoHeaderCompression

No compression

EManufacturerDefaultHeaderCompression

Compression algorithm preferred by the device manufacturer

ERfc1144

Compression algorithm defined in RFC 1144

ERfc2507

Compression algorithm defined in RFC 2507

ERohc

Robust header compression algorithm defined in RFC 3095

Enum TPacketFilterType

Packet Filter type identifier.

Enumerators

EPacketFilterTypeUnknown

Unknown filter type.

EPacketFilterTypeOne

Filter Type One.

EPacketFilterTypeTwo

Filter Type Two.

EPacketFilterTypeThree

Filter Type Three.

Enum TPacketFlowIdentifier

Identifiers for Packet Flow Context. See Table 10.5.161/3GPP TS 24.008.

Enumerators

EBestEffort

Best Effort

ESignalling

Signalling

ESms

Sms

Enum TPcoIDMSToNetwork

PCO additional parameter identifiers in MS to network direction, as defined in 3GPP TS 24.008, section 10.5.6.3

Enumerators

EEtelPcktPCSCFAddressRequest = 0x01

PCO MS additional parameter identifier for a PCSCF address request.

EEtelPcktIMCNMSSubsystemSignallingFlag = 0x02

PCO MS additional parameter identifier for an IM CN subsystem signalling flag.

EEtelPcktDNSServerAddressRequest = 0x03

PCO MS additional parameter identifier for a DNS server address request.

EEtelPcktNotSupported = 0x04

Not currently supported.

Enum TPcoIDNetworkToMS

PCO additional parameter identifiers in network to MS direction, as defined in 3GPP TS 24.008, section 10.5.6.3

Enumerators

EEtelPcktPCSCFAddress = 0x01

PCO network additional parameter identifier for a PCSCF address.

EEtelPcktIMCNNetworkSubsystemSignallingFlag = 0x02

PCO network additional parameter identifier for an IM CN subsystem signalling flag.

EEtePcktDNSServerAddress = 0x03

PCO network additional parameter identifier for a DNS server address.

EEtelPcktPolicyControlRejectionCode = 0x04

PCO network additional parameter identifier for a policy control rejection code.

Enum TPcoProtocolId

Protocol identifiers, as defined in 24.008, section 10.5.6.3

Enumerators

EETelPcktProtocolLcpId = 0xc021

PCO identifier for LCP.

EETelPcktProtocolPapId = 0xc023

PCO identifier for PAP.

EETelPcktProtocolChapId = 0xc223

PCO identifier for CHAP.

EETelPcktProtocolIpcpId = 0x8021

PCO identifier for IPCP.

Enum TProtocolType

Defines the protocol used to connect to the packet data gateway.

Modes: GRPS

Enumerators

EPdpTypeIPv4

IPv4 type gateway.

Modes: GRPS

EPdpTypeIPv6

IPv6 type gateway.

Modes: GPRS

EPdpTypeX25

X.25 type gateway.

Modes: GPRS

EPdpTypePPP

PPP type gateway.

Modes: GRPS, CDMA

EPdpTypeCDPD

CDPD type gateway.

Modes: CDMA 9.5

Enum TServiceOption

Service option numbers identify the various packet data services available on the CDMA packet network.

Modes: CDMA 9.5

Enumerators

KLowSpeedData = 0x01

Service Options 7 and 15, 8-16.

KHighSpeedData = 0x02

Service Options 22-25 IP and 26-29 CDPD.

KHighSpeedCDMA2000Data = 0x04

Service Option 33 on CDMA2000 network only.

Member Type Definitions Documentation

Typedef TAuthData

typedef TBuf8< KMaxAuthDataLength >TAuthData

Buffer for various sorts of authorisation data since version 2 of the API.

Supported from v7.0S.

Typedef TAuthorizationToken

typedef TBuf8< KMaxFQDNLength >TAuthorizationToken

Typedef TDataChannelV2Pckg

typedef TPckg< TDataChannelV2 >TDataChannelV2Pckg

Data channel package since version 2 of the API.

Supported from v7.0S.

Typedef TGSNAddress

typedef TBuf8< KGSNNameLength >TGSNAddress

Buffer to hold the GSN address.

KGSNNameLength

Typedef TIPAddress

typedef TUint8 TIPAddress

Array to hold either IPv4 or IPv6 address or Subnet mask since version 2 of the API.

Supported from v7.0S.

Typedef TMiscProtocolBuffer

typedef TBuf8< KMiscProtocolBufferLength >TMiscProtocolBuffer

Typedef TPacketFilterV2Pckg

typedef TPckg< TPacketFilterV2 >TPacketFilterV2Pckg

Packaged TPacketFilterV2.

Typedef TPacketFilterV3Pckg

typedef TPckg< TPacketFilterV3 >TPacketFilterV3Pckg

Packaged TPacketFilterV3.

Typedef TProtocolAddress

typedef TBuf8< KMaxPDPAddressLength >TProtocolAddress

Buffer to hold the protocol address.

KMaxPDPAddressLength

Typedef TTDnsInfoV2Pckg

typedef TPckg< TDnsInfoV2 >TTDnsInfoV2Pckg

DNS information package since version 2 of the API.

Supported from v7.0S.

Member Data Documentation

CPacketContextPtrHolder * iEtelPacketContextPtrHolder

CPacketContextPtrHolder *iEtelPacketContextPtrHolder[protected]