RMobileLocationServices Class Reference

class RMobileLocationServices : public RTelSubSessionBase

This sub-session opens under RMobilePhone .

A new RMobileLocationServices class is used to add the ETelMM Support for Mobile Terminating Location Request, Mobile Originating Location Requests, A-Gps assistance data for the LBS Framework.

RMobileLocationServices is derived from RTelSubSessionBase.RMobileLocationServices lists the APIs,which provided the support for Mtlr, Molr, A-Gps assistance data requests.

Inherits from

Nested Classes and Structures

Public Member Functions
RMobileLocationServices ()
IMPORT_C void Close ()
IMPORT_C void NotifyMeasurementControl ( TRequestStatus &, TDes8 &)
IMPORT_C void NotifyMtlr ( TRequestStatus &, TDes8 &)
IMPORT_C void NotifyResetUePositioningInformation ( TRequestStatus &, TUePosTechnology &)
IMPORT_C TInt Open ( RMobilePhone &)
IMPORT_C void SendMeasurementReport ( TRequestStatus &, const TDesC8 &)
IMPORT_C void SendMeasurementReport ( TRequestStatus &, const TMeasurementControlFailure )
IMPORT_C void SendMolr ( TRequestStatus &, const TDesC8 &, TDes8 &)
IMPORT_C void SendMtlrResponse ( TRequestStatus &, const TMtlrResponse )
IMPORT_C void SendMtlrResponse ( TRequestStatus &, const TMtlrError )
IMPORT_C void SendMtlrResponse ( TRequestStatus &, const TMtlrReject )
IMPORT_C TInt SetLcsDomain (const TDomain )
Private Member Functions
void ConstructL ()
void Destruct ()
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
enum anonymous { KMaxMonitoredCells  = 8, KMaxSat  = 16, KGlobalHealthSize  = 46 }
enum TAltDirection { EAltDirectionUnknown , EHeight , EDepth }
enum TBurstType { EType1 , EType2 }
enum TDiffCorrectionsStatus {
ECorrectionStatusUnknown , EUdre1Point0 , EUdre0Point75 , EUdre0Point5 , EUdre0Point3 , EUdre0Point2 , EUdre0Point1 , ENoData , EInvalidData
}
enum TDomain { EPacketSwitchedDomain , ECircuitSwitchedDomain }
enum TLatitudeSign { ELatitudeSignUnknown , ENorth , ESouth }
enum TLocationEstimateType { ELocationEstimateTypeUnknown , ECurrentLocation , ECurrentOrLastKnownLocation , EInitialLocation }
enum TLocationMethod { ELocationMethodunknown , EMSBasedEOTD , EMSAssistedEOTD , EMSAssistedGPS , EMSBasedOTDOA }
enum TMeasQnty { EMeasQntyUnknown , EMeasQntyCpichEcN0Present , EMeasQntyCpichRscpPresent , EMeasQntyPathLossPresent }
enum TMeasReportTransferMode { ETransferModeUnknown , EAckModeRlc , EUnAckModeRlc }
enum TMeasurementCmd { EMeasCommandUnknown , ESetup , EModify , ERelease }
enum TMeasurementControlFailure {
EControlFailureUnknown , EAsn1ViolationOrEncoding , EMsgTypeNonExistent , EMsgNotCompatibleWithReceiverState , EIeValueNotComprehend , EInformationElementMissing , EMsgExtnNotComprehend
}
enum TMeasurementValidity { EMeasValidityUnknown , ECellDCH , EAllButCellDCH , EAllStates }
enum TMolrErrors {
EMolrErrorUnknown , EMolrSystemFailure , EMolrUnexpectedDataValue , EMolrDataMissing , EMolrFacilityNotSupported , EMolrSS_SubscriptionViolation , EMolrPositionMethodFailure
}
enum TMolrType { EMolrTypeUnknown , ELocationEstimate , EAssistanceData , EDecipheringKeys }
enum TMtlrError { EMtlrErrorUnknown , ESystemFailure , EUnexpectedDataValue }
enum TMtlrReject {
EMtlrRejectUnknown , EDuplicateInvokeID , EUnrecognizedOperation , EResourceLimitation , EInitiatingRelease , EUnrecognizedLinkedID , ELinkedResponseUnexpected , EUnexpectedLinkedOperation , EMistypedParameter
}
enum TMtlrResponse { EMtlrResponseUnknown , EPermissionDenied , EPermissionGranted }
enum TMultipathIndicator { EMPUnknown , ENm , ELow , EMedium , EHigh }
enum TNotificationType {
ENotificationTypeUnknown , ENotifyLocationAllowed , ENotifyAndVerify_LocationAllowedIfNoResponse , ENotifyAndVerify_LocationNotAllowedIfNoResponse , ELocationPrivacyOverride , ELocationNotAllowed
}
enum TPosErrorCause {
EErrorCauseUnknown , ENotEnoughGpsSatellites , EAssistanceDataMissing , ENotAccomplishedGpsTimingOfCellFrames , EUndefinedError , ERequestDeniedByUser
}
enum TPosEstimateInfo {
EPosEstimateInfoUnknown , EUtranGpsRefTimeResultPresent , EGpsRefTimeOnlyPresent , ECellTimingPresent , EEllipsoidPointPresent , EEllipsoidPointUncertCirclePresent , EEllipsoidPointUncertEllipsePresent , EEllipsoidPointAltitudePresent , EEllipsoidPointAltEllipsePresent
}
enum TPosMethod { EPosMethodUnknown , EOtdoa , EGps , EOtdoaOrGps , ECellID }
enum TResponseTime { EResponseTimeunknown , ELowDelay , EDelayTolerant }
enum TSatelliteStatus {
ESatStatusUnknown , ENsNnU , EEsSn , EEsNnU , ERev2 , ERev
}
enum TSfnTowUncertainity { ESfnTowUncertainityUnknown , ELessThan10 , EMoreThan10 }
enum TUdre { EUdreUnknown , ELessThan1 , EBtw1And4 , EBtw1And8 , EOver8 }
enum TUePosMethodType { EPosMethodTypeUnknown , EUeAssisted , EUeBased }
enum TUePosTechnology { KUePosTechnologyAGPS  = 0 }
enum TUtranGpsDriftRate {
EDriftRateUnknown , EUtranGpsDrift0 , EUtranGpsDrift1 , EUtranGpsDrift2 , EUtranGpsDrift5 , EUtranGpsDrift10 , EUtranGpsDrift15 , EUtranGpsDrift25 , EUtranGpsDrift50 , EUtranGpsDriftMinus1 , EUtranGpsDriftMinus2 , EUtranGpsDriftMinus5 , EUtranGpsDriftMinus10 , EUtranGpsDriftMinus15 , EUtranGpsDriftMinus25 , EUtranGpsDriftMinus50
}
enum TVelEstimate {
EVelEstimateUnknown , EVelEstimateNotPresent , EHorzVelPresent , EHorzWithVertVelPresent , EHorzVelWithUncertPresent , EHorzWithVertVelAndUncertPresent
}
enum TVertSpeedDirection { ESpeedDirectionUnknown , EUpward , EDownward }
Inherited Enumerations
RTelSubSessionBase:TReqPriorityType
Public Member Type Definitions
typedef TUint8 TGPSI
typedef TBuf8 < KLcsMaxGpsAssistanceDataSize > TGpsAssistanceData
typedef TBuf8 < KLcsMaxClientExternalIdSize > TLcsClientExternalID
typedef TBuf8 < KLcsMaxClientNameBufferSize > TLcsClientNameBuffer
typedef TUint8 TLcsDataCodingScheme
typedef TBuf8 < KLcsMaxLocationEstimateSize > TLcsLocationEstimate
typedef TBuf8 < KLcsMaxRequestorIdStringSize > TLcsRequestorIdString
typedef TBuf8 < KLcsMaxVelocityEstimateSize > TLcsVelocityEstimate
typedef TPckg < TMeasurementControlV7 > TMeasurementControlV7Pckg
typedef TPckg < TMeasurementReportV7 > TMeasurementReportV7Pckg
typedef TPckg < TMolrReturnResultV7 > TMolrReturnResultV7Pckg
typedef TPckg < TNotifyMtlrV7 > TNotifyMtlrV7Pckg
typedef TPckg < TStartMolrV7 > TStartMolrV7Pckg
typedef TUint8 TTransactionIdentifier
Private Attributes
CMobileLocationServicesPtrHolder * iMmPtrHolder
Inherited Attributes
RTelSubSessionBase::iPtrHolder

Constructor & Destructor Documentation

RMobileLocationServices()

IMPORT_C RMobileLocationServices ( )

Default empty constructor, and is present only to support virtual function table export.

Member Functions Documentation

Close()

IMPORT_C void Close ( )
This function member closes a RMobileLocationServices sub-session.
capability
None

ConstructL()

void ConstructL ( ) [private]

Delayed construction of heap stored data members.

leave
KErrNoMemory Heap memory allocation failure for CMobileLocationServicesPtrHolder object.

Destruct()

void Destruct ( ) [private]

Called internally when RMobileLocationServices instance is no longer required, to ensure clean up of data members from memory.

NotifyMeasurementControl(TRequestStatus &, TDes8 &)

IMPORT_C void NotifyMeasurementControl ( TRequestStatus & aReqStatus,
TDes8 & aMeasurementControl
)

This function waits for the notification of incoming A-GPS assistance data from the network in continuance of the MTLR or MOLR.

As this API can be used for emergency requests as well as the non-emergency ones, this method is always treated as an emergency request by ETel/TSY. Clients that need to handle the emergency LCS requests should preallocate enough memory during system initialisation to reserve it for handling of the emergency LCS Measrement Control. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is pre-allocated by ETel/TSY and that the handling of this notification will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

TMeasurementControlV7 RMobileLocationServices::NotifyMltr() RMobileLocationServices::SendMolr()
capability
None

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful, a system wide error code if not.
TDes8 & aMeasurementControl On completion, A TMeasurementControlV7Pckg holding the A-GPS assistance data.

NotifyMtlr(TRequestStatus &, TDes8 &)

IMPORT_C void NotifyMtlr ( TRequestStatus & aReqStatus,
TDes8 & aNotifyMtlr
)

This member function notifies the client about the incoming MTLR requests and provides the Client with a class reference,Which contains the details of the request made by the External client via Network. USE CancelAsyncRequest(EMobileLocationServicesNotifyMtlr) to cancel the previously placed NotifyMtlr() request.

As this API can be used for emergency requests as well as the non-emergency ones, this method is always treated as an emergency request by ETel/TSY. Clients that need to handle the emergency LCS requests should pre-allocate enough memory during system initialisation to reserve it for handling of the emergency LCS MT-LR. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is pre-allocated by ETel/TSY and that the handling of this notification will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

TNotifyMtlrV7
capability
None

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful.
TDes8 & aNotifyMtlr On completion,the mobile terminated location request in TNotifyMtlrV7Pckg.

NotifyResetUePositioningInformation(TRequestStatus &, TUePosTechnology &)

IMPORT_C void NotifyResetUePositioningInformation ( TRequestStatus & aReqStatus,
TUePosTechnology & aUePosTechnology
) const

Parameters

TRequestStatus & aReqStatus
TUePosTechnology & aUePosTechnology

Open(RMobilePhone &)

IMPORT_C TInt Open ( RMobilePhone & aPhone )

This function opens a RMobileLocationServices sub-session from a RMobilePhone sub-session.The name of the sub-session opened in the TSY will equal the string defined by the KETelLocationServices LIT definition.

The API can be called only by the Location Services Network Gateway Process.

In case of hardware the API can be called by providing the SID of the Location Services Network Gateway Process in ETel.iby file found at A patchable constant KLocationServicesNetworkGatewaySid is used for defining the SID value. In ETel.iby file find the following line patchdata etel.dll <SID> For example: patchdata etel.dll 0x12345678

In case of emulator the API can be called by providing the SID of the default phone application in epoc.ini file found at In epoc.ini file find the following line etel_KLocationServicesNetworkGatewaySid <SID> For example: etel_KLocationServicesNetworkGatewaySid 0x12345678

capability
SID

Parameters

RMobilePhone & aPhone The RMobilePhone sub-session relative to which this sub-session will open.

SendMeasurementReport(TRequestStatus &, const TDesC8 &)

IMPORT_C void SendMeasurementReport ( TRequestStatus & aReqStatus,
const TDesC8 & aMeasurementReport
)

This function sends the location information, computed by the UE, to the network. Location information is computed using the A-GPS assistance data received from the network through the NotifyMeasurementControl API.

Clients that need to handle the emergency LCS requests should preallocate enough memory during system initialisation to reserve it for handling of the emergency LCS MT-LR procedure. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is preallocated by ETel/TSY and that the handling of this request will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful, a system wide error code if not.
const TDesC8 & aMeasurementReport A TMeasurementReportV7Pckg holding the location information report of the UE to be sent to the network.

SendMeasurementReport(TRequestStatus &, const TMeasurementControlFailure)

IMPORT_C void SendMeasurementReport ( TRequestStatus & aReqStatus,
const TMeasurementControlFailure aMeasurementControlFailure
)

This function sends the measurement control failure cause, encountered while processing the A-GPS assistance data to compute location information, to the network.

Clients that need to handle the emergency LCS requests should preallocate enough memory during system initialisation to reserve it for handling of the emergency LCS MT-LR procedure. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is preallocated by ETel/TSY and that the handling of this request will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful, a system wide error code if not.
const TMeasurementControlFailure aMeasurementControlFailure Holds the measurement control failure cause to be sent to the network.

SendMolr(TRequestStatus &, const TDesC8 &, TDes8 &)

IMPORT_C void SendMolr ( TRequestStatus & aReqStatus,
const TDesC8 & aStartMolr,
TDes8 & aMolrReturnResult
)

This member function is used to trigger a Molr request. It carries all the details of the Molr request the UE wants to send to the network.This request is completed after the completion of SendMeasurementReport API when the Network sends back an Error report sent by the remote External client which received the UE location via network or a Location estimate response to the Self-Location Molr request i.e being made by the UE to the Network.

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful.
const TDesC8 & aStartMolr A TStartMolrV7Pckg holding the details of the MOLR(Mobile Originating Location Request) made by the UE.
TDes8 & aMolrReturnResult On completion,result containing the velocity and location estimate or errors in TMolrReturnResultV7Pckg.

SendMtlrResponse(TRequestStatus &, const TMtlrResponse)

IMPORT_C void SendMtlrResponse ( TRequestStatus & aReqStatus,
const TMtlrResponse aMtlrResponse
)

This member function sends the response given by the client to the MTLR request made by the network

Clients that need to handle the emergency LCS requests should pre-allocate enough memory during system initialisation to reserve it for responding to the emergency LCS MT-LR. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is preallocated by ETel/TSY and that the handling of this request will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful.
const TMtlrResponse aMtlrResponse It holds the response of the UE after a privacy check has being made on the request made by the External Client.

SendMtlrResponse(TRequestStatus &, const TMtlrError)

IMPORT_C void SendMtlrResponse ( TRequestStatus & aReqStatus,
const TMtlrError aMtlrResponse
)

This function sends a response to the MTLR request made by the Network in erroneous conditions.

Clients that need to handle the emergency LCS requests should pre-allocate enough memory during system initialisation to reserve it for responding to the emergency LCS MT-LR. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is preallocated by ETel/TSY and that the handling of this request will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful.
const TMtlrError aMtlrResponse It contains the error report generated by the UE,which is sent back to the Network

SendMtlrResponse(TRequestStatus &, const TMtlrReject)

IMPORT_C void SendMtlrResponse ( TRequestStatus & aReqStatus,
const TMtlrReject aMtlrResponse
)

This function sends a response to the MTLR request made by the Network,When UE wants to reject the MTLR request made by an External Client.

Clients that need to handle the emergency LCS requests should pre-allocate enough memory during system initialisation to reserve it for responding to the emergency LCS MT-LR. The emergency client also needs to establish itself as an "Emergency Client" to the Etel server at startup, to ensure that enough memory is preallocated by ETel/TSY and that the handling of this request will never fail due to lack of memory. The client may establish itself as an Emergency Client by calling the RPhone::SetEmergencyClient() API, specifying EEmergencyLCSRequest as the request type.

capability
None

Parameters

TRequestStatus & aReqStatus On return, KErrNone if successful.
const TMtlrReject aMtlrResponse It contains the details of the Rejection made by the UE.

SetLcsDomain(const TDomain)

IMPORT_C TInt SetLcsDomain ( const TDomain aDomain )

Parameters

const TDomain aDomain

Member Enumerations Documentation

Enum anonymous

Enumerators

KMaxMonitoredCells = 8

Maximum number of monitored cells RACH

KMaxSat = 16

Maximum number of satellites

KGlobalHealthSize = 46

GlobalHealth size. 364 bits =46 bytes (Rounded)

Enum TAltDirection

This enum contains the possible directions of altitudes for reference location

Enumerators

EAltDirectionUnknown

Altitude Direction Unknown

EHeight

Indicates Altitude direction is height-wise

EDepth

Indicates Altitude direction is depth-wise

Enum TBurstType

Identifies the channel in combination with the Midamble shift and slot number. It is not used in 1.28 Mcps TDD and may be set to either value and should be ignored by the receiver.

Enumerators

EType1

Burst type 1

EType2

Burst type 2

Enum TDiffCorrectionsStatus

This enum lists the different Udre values

Enumerators

ECorrectionStatusUnknown

Diff Corrections Status unknown

EUdre1Point0

UDRE 1.0

EUdre0Point75

UDRE 0.75

EUdre0Point5

UDRE 0.5

EUdre0Point3

UDRE 0.3

EUdre0Point2

UDRE 0.2

EUdre0Point1

UDRE 0.1

ENoData

UDRE No Data

EInvalidData

UDRE Invalid Data

Enum TDomain

This enum contains the possible domains used by MOLR

Enumerators

EPacketSwitchedDomain

Packet switch domain is the default domain that will be used by Molr

ECircuitSwitchedDomain

UE shall set the domain to Circuit switch whenever Molr is intended to use it

Enum TLatitudeSign

This enum containst the possible signs of latitude

Enumerators

ELatitudeSignUnknown

Latitude Sign Unknown

ENorth

Latitude sign is north

ESouth

Latitude sign is south

Enum TLocationEstimateType

TLocationEstimateType lists the various types of LocationEstimate that can be expected from any MTLR-Location Notification request coming from the Network, These types depend on the Subscription Profile of the UE.

One of the TLocationEstimateType is expected to be retrieved from the Network, when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.

Enumerators

ELocationEstimateTypeUnknown

Location Estimate Type Unknown.

ECurrentLocation

The External Client has requested for the Current Location of the UE.

ECurrentOrLastKnownLocation

The External Client has requested for the Current Location of the UE.Incase,if the request is accepted,But still it fails to generate the Location report because of Measurement Control Failure. The Client receives the Last Known Location.

EInitialLocation

The External Client has requested for the initial location of the UE. The current location of the UE may or may not be the initial location.

Enum TLocationMethod

TLocationMethod is used by SendMolr() API This is an enum which lists out all different types of Location methods that an UE can request

Enumerators

ELocationMethodunknown

Location Method Unknown

EMSBasedEOTD

This indication is given under a scenario where the UE wants a MS (Mobile Station) Based Location Fix. This can be termed as UE Assisted Location Fix(EOTD-Enhanced observed time difference).

EMSAssistedEOTD

This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted Location Fix. This can be termed out as UE based location fix.

EMSAssistedGPS

This indication is given under a scenario where the UE wants a MS (Mobile Station) Assisted GPS data.

EMSBasedOTDOA

This indication is given under a scenario where the UE wants a MS (Mobile Station) based location fix (OTDOA-Observed time difference of arrival).

Enum TMeasQnty

This enum contains the indicators thta specify which union members of TMeasurementQuantityV1 are included

Enumerators

EMeasQntyUnknown

Measurement Quantity unknown

EMeasQntyCpichEcN0Present

Indicates that CpichEcN0 is present

EMeasQntyCpichRscpPresent

Indicates that CpichRscp is present

EMeasQntyPathLossPresent

Indicates that path loss is present

Enum TMeasReportTransferMode

This enum specifies the mode the UE shall use to transmit the measurement report

Enumerators

ETransferModeUnknown

Transfer mode unknown

EAckModeRlc

The UE shall transmit the measurement report using Acknowledged RLC mode

EUnAckModeRlc

The UE shall transmit the measurement report using Unacknowledged RLC mode

Enum TMeasurementCmd

This enum contains the possible types of measurement commands.

Enumerators

EMeasCommandUnknown

Measurement Command Unknown

ESetup

Setup a new measurement

EModify

Modify a previously defined measurement, e.g. to change the reporting criteria

ERelease

Indicates to stop a measurement and clear all information in the UE that are related to that measurement

Enum TMeasurementControlFailure

This enum contains the list of errors that the UE can specify. The Measurement control failure is caused only when the the UE cannot initiate a measurement as instructed by the network.

Enumerators

EControlFailureUnknown

Unknown Measurement Control Failure. This is an invalid failure state whic will be set if the UE does not set with the underlying valid error reasons.

EAsn1ViolationOrEncoding

Indicates ASN1.0 encoding is incorrect

EMsgTypeNonExistent

Messsgae type specified is not existent

EMsgNotCompatibleWithReceiverState

Message is not compatible

EIeValueNotComprehend

Information sent cannot be understood

EInformationElementMissing

Information expected is not present

EMsgExtnNotComprehend

Enum TMeasurementValidity

This enum contains the states in which measurements are valid

Enumerators

EMeasValidityUnknown

Measurement Validity Unknown

ECellDCH

Indicates measurement is valid in CellDCH state

EAllButCellDCH

Indicates measurement is valid except in CellDCH state

EAllStates

Indicates measurement is valid in all state

Enum TMolrErrors

TMolrErrors is used by SendMolr() API This is an enum which lists out all the possible errors that can be reported to UE by an External Client or the Network.

Enumerators

EMolrErrorUnknown

Molr Error Unknown

EMolrSystemFailure

This indication is given to the UE when the Location Report is unable to reach the External Client due to some failure in the Network Connections.

EMolrUnexpectedDataValue

This indication is given back to the UE by the Network to the UE or by the External Client to the UE,where the UE generated MOLR has some unexpected values.

EMolrDataMissing

This indication is given back to the UE by the Network to the UE or by the External Client to the UE,where the UE generated MOLR had a data discrepancy

EMolrFacilityNotSupported

This indication is given by the Network to the UE, when the UE is not given a facility to make a MOLR request

EMolrSS_SubscriptionViolation

This indication is given by the Network to the UE, when the subscription profile of the UE doesn't match with the requests made by it.

EMolrPositionMethodFailure

This indication is given by the Network to the UE, when the UE or the Network failed to generate the Location estimate

Enum TMolrType

TMolrType is used by the SendMolr() API. This gives an indication of type of Molr request the UE wants to invoke

Enumerators

EMolrTypeUnknown

MolrType UnKnown

ELocationEstimate

UE is requesting the Network for its Location Estimate

EAssistanceData

UE is requesting the Network for GPS Assistance data

EDecipheringKeys

UE is requesting the Network for DecipheringKeys

Enum TMtlrError

TMtlrError is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API It holds the type of Error response being sent back for the MTLR request made.

Enumerators

EMtlrErrorUnknown

Mtlr Error Unknown.

ESystemFailure

This response is sent back to the network when System has failed to do the privacy check due to some Miscellaneous reasons

EUnexpectedDataValue

The response is sent when the privacy verification has failed because of Unexpected data values retrieved from the Location Notification request generated by the Network. This generates an Error-Prone response from UE

Enum TMtlrReject

TMtlrReject is used by the Overloaded RMobileLocationServices::SendMtlrResponse() API It holds the details of the Response being rejected due to one of the problems reported to the UE for the MTLR request being made.

Enumerators

EMtlrRejectUnknown

Mtlr Reject Unknown.

EDuplicateInvokeID

This indication is given under a scenario where the UE wants to reject a request, It is done by invoking Duplicate ID's.

EUnrecognizedOperation

This indication is given under a scenario where the UE wants to reject a request, It is done by saying the operation is not recognized

EResourceLimitation

This invokes a problem indicating Resource Limitation.

EInitiatingRelease

This Invokes a problem initiating release.

EUnrecognizedLinkedID

This invokes a problem indicating that the ID linked with the Client information is unrecognized

ELinkedResponseUnexpected

This invokes a problem of Linked Response Unexpected

EUnexpectedLinkedOperation

This invokes a problem of Unexpected Linked Operation

EMistypedParameter

This invokes a problem of Mistyped Parameter.

Enum TMtlrResponse

TMtlrResponse is used by the OverLoaded RMobileLocationServices::SendMtlrResponse() API It holds the type of response being sent back for the MTLR request made.

Enumerators

EMtlrResponseUnknown

Mtlr Response Unknown.

EPermissionDenied

The UE has denied the Location Request of the External client. RMobileLocationServices::SendMtlrResponse()

EPermissionGranted

The UE has granted the Location Request of the External client. RMobileLocationServices::SendMtlrResponse()

Enum TMultipathIndicator

This enum contains the multipath indicators

Enumerators

EMPUnknown

Multipath indicator unknown This is an invalid indicator.

ENm

Not measured

ELow

MP error < 5m

EMedium

5m < MP error < 43m

EHigh

MP error > 43m

Enum TNotificationType

Note:Refer to 3GPP TS 23.271(Functional stage 2 description of Location Services (LCS)), 3GPP TS 24.030(Location Services (LCS); Supplementary service operations - Stage 3) and 3GPP TS 24.080(Mobile radio interface layer 3 supplementary services specification; Formats and coding) for further details of MTLR and MOLR member data. TNotificationType lists the various types of Notification that can be expected from any MTLR-Location Notification coming from the Network, These types depend on the Subscription Profile of the UE.

One of the TNotificationType is expected to be retrieved from the Network, when a UE places a RMobileLocationServices::NotifyMtlr() request on the TSY.

Enumerators

ENotificationTypeUnknown

Notification Type Unknown

ENotifyLocationAllowed

The Location Request is accepted by default

ENotifyAndVerify_LocationAllowedIfNoResponse

This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, and that the user is expected to respond by granting/denying the request. By defualt, if the user does not provide a response, the request is granted

ENotifyAndVerify_LocationNotAllowedIfNoResponse

This enum is used to indicate to the client, that the user should be notified of the incoming MTLR request, and that the user is expected to respond by granting/denying the request. By defualt, if the user does not provide a response, the request is denied.

ELocationPrivacyOverride

The network sends the information to the UE that the external client has privacy overide capability, This indicator is received when an authenticated or emergency client had sent the request.

ELocationNotAllowed

This enum is used to notify the UE that an incoming MTLR request was denied by the network for any of various reasons.

Enum TPosErrorCause

This enum lists all the possible errors that UE can report to the network

Enumerators

EErrorCauseUnknown

Error Cause Unknown. This is an invalid error cause and is set if the UE does not set with any of the underlying valid error causes

ENotEnoughGpsSatellites

Indicates that enought number of GPS satellites are healthy and active.

EAssistanceDataMissing

Assistance data required to compute location of the UE is missing in the measurement control. If the Additional data request flag is true in the measurement control only then additional assistance data can be requested otherwise measurements need to be done using the existing assistance data TGpsAddlAssistDataReqV1 TUePosReportingQuantityV1

ENotAccomplishedGpsTimingOfCellFrames

Cell Frames Timings are not accomplished

EUndefinedError

UE can set this error in case other than the above mentioned is encountered

ERequestDeniedByUser

UE denies Location information

Enum TPosEstimateInfo

This enum contains the indicators that specify which union members of TPosEstimateRefTime and TPositionEstimateV1 are included

Enumerators

EPosEstimateInfoUnknown

Position Estimate Info Unknown

EUtranGpsRefTimeResultPresent

NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPosEstimateRefTime Indicates that UE positioning estimate reference time is populated

EGpsRefTimeOnlyPresent

Indicates that GPS reference time is populated

ECellTimingPresent

Indicates that cell timing is populated

EEllipsoidPointPresent

NOTE: The following states correspond to TUePosPositionEstimateInfoV1/TPositionEstimateV1. Indicates EllipsoidPoint is populated

EEllipsoidPointUncertCirclePresent

Indicates EllipsoidPoint with uncertainty circle is populated

EEllipsoidPointUncertEllipsePresent

Indicates EllipsoidPoint with uncertainty ellipse is populated

EEllipsoidPointAltitudePresent

Indicates EllipsoidPoint with altitude is populated

EEllipsoidPointAltEllipsePresent

Indicates EllipsoidPoint with altitude and ellipse is populated

Enum TPosMethod

This enum contains the possible positioning methods

Enumerators

EPosMethodUnknown

Positioning Method unknown

EOtdoa

OTDOA may be selected by the SRNC as the method to be used on receipt of an LCS positioning request from the CN

EGps

These methods make use of UEs, which are equipped with radio receivers capable of receiving GPS signals

EOtdoaOrGps

Use either OTDOA or GPS positioning method.

ECellID

In the cell ID based (i.e. cell coverage) method, the position of an UE is estimated with the knowledge of its serving Node B. The information about the serving Node B and cell may be obtained by paging,locating area update, cell update, URA update, or routing area update.

Enum TResponseTime

TResponseTime is used by SendMolr() API This enum holds the various types of delay that an UE is expecting.

Enumerators

EResponseTimeunknown

Response Time Unknown.

ELowDelay

This enum value indicates that the UE expects a Less Time Delay from Network in responding to its request

EDelayTolerant

This enum value indicates that the UE expects a Long Time Delay from Network in responding to its request and is tolerant to it.

Enum TSatelliteStatus

This enum specifies the possible status of a satellite

Enumerators

ESatStatusUnknown

Satellite Status unknown

ENsNnU

New satellite, new Navigation Model

EEsSn

Existing satellite, same Navigation Model

EEsNnU

Existing satellite, new Navigation Model

ERev2

Reserved

ERev

Reserved

Enum TSfnTowUncertainity

This enum list the SfnTow uncertainity

Enumerators

ESfnTowUncertainityUnknown

Sfn Tow Uncertainity unknown

ELessThan10

SfnTowUncertainity < 10

EMoreThan10

SfnTowUncertainity > 10

Enum TUdre

The UDRE provides an estimate of the uncertainty (1-*) in the corrections for the particular satellite. The value in this field shall be multiplied by the UDRE Scale Factor in the common Corrections Status/Health field to determine the final UDRE estimate for the particular satellite. 3GPP TS 25.305

Enumerators

EUdreUnknown

Udre unknown

ELessThan1

UDRE < 1

EBtw1And4

1> UDRE < 4

EBtw1And8

1> UDRE < 8

EOver8

UDRE > 8

Enum TUePosMethodType

This enum contains the possible positioning method types

Enumerators

EPosMethodTypeUnknown

Positioning Method Type unknown

EUeAssisted

UE Assisted : The network computes the location of the UE.

EUeBased

UE Based : The UE computes the location of itself

Enum TUePosTechnology

The UE Positioning Technology value, as defined in 3GPP TS 34.109 V7.2.0 Section 6.10

Enumerators

KUePosTechnologyAGPS = 0

A-GPS

Enum TUtranGpsDriftRate

This enum lists the different GPS drift rates

Enumerators

EDriftRateUnknown

GPS Drift rate unknown

EUtranGpsDrift0

Drift = 0

EUtranGpsDrift1

Drift = 1

EUtranGpsDrift2

Drift = 2

EUtranGpsDrift5

Drift = 5

EUtranGpsDrift10

Drift = 10

EUtranGpsDrift15

Drift = 15

EUtranGpsDrift25

Drift = 25

EUtranGpsDrift50

Drift = 50

EUtranGpsDriftMinus1

Drift = -1

EUtranGpsDriftMinus2

Drift = -2

EUtranGpsDriftMinus5

Drift = -5

EUtranGpsDriftMinus10

Drift = -10

EUtranGpsDriftMinus15

Drift = -15

EUtranGpsDriftMinus25

Drift = -25

EUtranGpsDriftMinus50

Drift = -50

Enum TVelEstimate

This enum contains the possible types of velocity estimates

Enumerators

EVelEstimateUnknown

Velocity Estimate Unknown

EVelEstimateNotPresent

Velocity Estimate is not present

EHorzVelPresent

Horizontal velocity is included

EHorzWithVertVelPresent

Horizontal and vertical velocity is included

EHorzVelWithUncertPresent

Horizontal velocity with uncertainty is included

EHorzWithVertVelAndUncertPresent

Horizontal and vertical velocity with uncertainty is included

Enum TVertSpeedDirection

This enum holds vertical speed direction

Enumerators

ESpeedDirectionUnknown

Speed direction unknown

EUpward

Upward direction

EDownward

Downward direction

Member Type Definitions Documentation

Typedef TGPSI

typedef TUint8 TGPSI

Typedef TGpsAssistanceData

typedef TBuf8 < KLcsMaxGpsAssistanceDataSize > TGpsAssistanceData

A typedef'd buffer which holds the Gps Assistance Data. KLcsMaxGpsAssistanceDataSize

Typedef TLcsClientExternalID

typedef TBuf8 < KLcsMaxClientExternalIdSize > TLcsClientExternalID

A typedef'd buffer which holds the External ClientId. KLcsMaxClientExternalIdSize

Typedef TLcsClientNameBuffer

typedef TBuf8 < KLcsMaxClientNameBufferSize > TLcsClientNameBuffer

A typedef'd buffer which holds the External ClientName Buffer. KLcsMaxClientNameBufferSize

Typedef TLcsDataCodingScheme

typedef TUint8 TLcsDataCodingScheme

A typedef'd TUint8 which holds the Data Coding Scheme information.

Typedef TLcsLocationEstimate

typedef TBuf8 < KLcsMaxLocationEstimateSize > TLcsLocationEstimate

A typedef'd buffer which holds the Location Estimate. KLcsMaxLocationEstimateSize

Typedef TLcsRequestorIdString

typedef TBuf8 < KLcsMaxRequestorIdStringSize > TLcsRequestorIdString

A typedef'd buffer which holds the RequestorId String. KLcsMaxRequestorIdStringSize

Typedef TLcsVelocityEstimate

typedef TBuf8 < KLcsMaxVelocityEstimateSize > TLcsVelocityEstimate

A typedef'd buffer which holds the Velocity Estimate. KLcsMaxVelocityEstimateSize

Typedef TMeasurementControlV7Pckg

typedef TPckg < TMeasurementControlV7 > TMeasurementControlV7Pckg

A typedef'd packaged TMeasurementControlV7 for passing through a generic API method.

Typedef TMeasurementReportV7Pckg

typedef TPckg < TMeasurementReportV7 > TMeasurementReportV7Pckg

A typedef'd packaged TMeasurementReportV7 for passing through a generic API method.

Typedef TMolrReturnResultV7Pckg

typedef TPckg < TMolrReturnResultV7 > TMolrReturnResultV7Pckg

A typedef'd packaged TMolrReturnResultV7 for passing through a generic API method.

Typedef TNotifyMtlrV7Pckg

typedef TPckg < TNotifyMtlrV7 > TNotifyMtlrV7Pckg

A typedef'd packaged TNotifyMtlrV7 for passing through a generic API method.

Typedef TStartMolrV7Pckg

typedef TPckg < TStartMolrV7 > TStartMolrV7Pckg

A typedef'd packaged TStartMolrV7 for passing through a generic API method.

Typedef TTransactionIdentifier

typedef TUint8 TTransactionIdentifier

Member Data Documentation

CMobileLocationServicesPtrHolder * iMmPtrHolder

CMobileLocationServicesPtrHolder * iMmPtrHolder [private]

Pointer Holder for the RMobileLocationServices sub-session requests.