6.5 Data Session Control

29.1983GPPOpen Service Architecture (OSA) Application Programming Interface (API) - Part 1Release 1999TS

The Data Session Control provides a means to control per data session basis the establishment of a new data session. This means espcially in the GPRS context that the establishment of a PDP session is modelled not the attach/detach mode. Change of terminal location is assumed to be managed by the underlying network and is therefore not part of the model. The underlying assumption is that a terminal initiates a data session and the application can reject the request for data session establishment, can continue the establishment or can continue and change the destination as requested by the terminal.

The modelling is hold similar to the Generic Call Control but assuming a simpler underlying state model. An IpDataSessionManager and IpData Session object are the interfaces used by the application, whereas the IpAppDataSessionManager and the IpAppDataSession interfaces are implemented by the application.

Figure 6‑14: Data Session Control Packages

Figure 6-15: Data Session Control Class diagram Interface Classes

This section contains the detailed interface specifications of the interfaces shown in the Data Session Control Class diagram.

6.5.1 Interface Classes

6.5.1.1 IpAppDataSessionControlManager

<<Interface>>

IpAppDataControlManager

dataSessionAborted(dataSessionID : in TpSessionID) : TpResult

dataSessionEventNotify(dataSessionReference : in TpdataSessionIdentifier , eventInfo : in TpDataSessionEventInfo , assignmentID : in TpAssignmentID , appInterface : out IpAppdataSessionRefRef) : TpResult

dataSessionNotificationContinued() : TpResult

dataSessionNotificationInterrupted(): TpResult

6.5.1.2 IpDataSessionControlManager

<<Interface>>

IpDataSessionControlManager

enableDataSessionNotification(appInterface : in IpAppDataSessionControlManagerRef , eventCriteria : in TpDataSessionEventCriteria , assignmentID : out TpAssignmentIDRef) : TpResult

disableDataSessionNotification(assignmentID : in TpAssignmentID) : TpResult

6.5.1.3 IpAppDataSession

<<Interface>>

IpAppDataSession

connectRes(dataSessionID : in TpSessionID , eventReport : in TpDataSessionEventReport, assignmentID : in TpAssignmentID) : TpResult

connectErr(dataSessionID : in TpSessionID , errorIndication : in TpDataSessionError, assignmentID : in TpAssignmentID) : TpResult

superviseDataSessionRes(dataSessionID : in TpSessionID , report : in TpDataSessionSuperviseReport, usedVolume : in TpDataSessionSuperviseVolume) : TpResult

superviseDataSessionErr(dataSessionID : in TpSessionID , errorIndication : in TpDataSessionError) : TpResult

dataSessionFaultDetected(dataSessionID : in TpSessionID , fault : in TpDataSessionFault) : TpResult

6.5.1.4 IpDataSession

<<Interface>>

IpDataSession

connectReq(dataSessionID : in TpSessionID , responseRequested : in TpDataSessionReportRequestSet , targetAddress : in TpAddress , assignmentID : out TpAssignmentIDRef) : TpResult

release(dataSessionID : in TpSessionID , cause : in TpDataSessionReleaseCause) : TpResult

superviseDataSessionReq(dataSessionID : in TpSessionID, treatment : in TpDataSessionSuperviseTreatment , bytes : in TpDataSessionSuperviseVolume) : TpResult

setDataSessionChargePlan(dataSessionID: in TpSessionID, dataSessionChargePlan: in TpDataSessionChargePlan): TpResult

setAdviceOfCharge(dataSessionID : in TpSessionID, aoCInfo : in TpAoCInfo, tariffSwitch : in TpDuration): TpResult