7.4 Data Session

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

Figure 7-16: State Transition Diagram for Data Session

7.4.1 Active state

In this state a data connection between two parties is being setup or established (refer to the substates for more details). The application can request the gateway for a certain type of charging by calling setDataSessionChargePlan(), send advice of charge information by calling setAdviceOfCharge(), and request supervision of the data session by calling superviseDataSessionReq(). Setup state

The Setup state is reached after a dataSessionEvebtNotify() indicates to the application that a data session is interested in being connected. If the application is going to connect the two parties by invoking connectReq() it may call the charging or supervision methods before. Established state

In this state the data connection is established. If supervision has been requested the application expects the corresponding superviseDataSessionRes().

7.4.2 Network Released state

In this state the data session has ended. In the case on a normal user disconnection the transition to this state is indicated to the application by the disconnect report of connectRes(). But this will only happen if the application requested monitoring of the disconnect event before. An abnormal disconnection is indicated by dataSessionFaultDetected(). The application may wait for outstanding superviseDataSessionRes().

7.4.3 Finished state

In this state the data session has ended and no further data session related information is to be send to the application. The application can only release the data session object. If the application fails to invoke release() within a certain period of time the gateway should automatically release the object and send a timeout indication to the application.

7.4.4 Application released state.

In this state the application has released the data session object. If supervision has been requested the gateway will collect the information and send superviseDataRes() to the application.