Charging Interface Classes

29.198-123GPPOpen Service Access (OSA) Application Programming Interface (API)Part 12: Charging Service Capability Feature (SCF)Release 9TS

The Charging SCF is used by applications to charge for the usage of the applications. The charged user can be the same user as that uses the application. It is also possible that another user will pay the charge.

In the interfaces of the Charging SCF a "Request Number" is used when invoking operations that operate on the user’s account (directly or indirectly via reservations) in order to make retries possible after application, service, or communication errors. A retry of these operations can be done by invoking the same operation with the same Request Number.

In the callback to the application, the Request Number to be used for the next request operation is returned. This is the only Request Number besides the one in the last request operation that can be used. This mechanism ensures that an application retries an operation when it does not receive an answer.

The use of the Request Number ensures that there can only be one outstanding request per Charging Session. Only after an answer is received (result or error), the next request can be made. Note however that only asynchronous operations that could lead to over or under charging of the user require a request number.

Because responses from the Charging SCF can be delayed in the network the Charging SCF shall guarantee that Request Numbers are unique in a timespan where delayed responses can arrive. Suppose, for example, that the response from a retried request is received indicating the next request number to use is 1 000. During the period that the response to the original request (which also carries the next request number to use equal to 1 000) can arrive, this request number may not be used again.

The units (of different types) that are used in a TpVolumeSet are NOT consolidated by the charging SCF. The application must use the same units when making the reservation and when debiting the amount. For example, when after a reservation of 10 minutes a debit request for 5 seconds is done, an error will be returned.

Split Charging Functionality.

There are cases where a single instance of the merchant application may serve more than a one service user. Examples are multi-user games or conferences. Typically, the costs for the resources consumed by the single service instance will be split among all service users.

On the other hand, a merchant application may show advertisements within its application, and in turn the company that is advertised may subside a certain percentage of the application cost. A consumer connecting to the merchant application pays only part of the costs, while the remainder is paid by the advertised company.

To support this kind of application, multiple users can be specified when a charging session is created. The charging session interface itself is the same no matter if the split charging feature is used or not.

It is subject to service level agreements that are negotiated between the OSA client provider and the network operator how the charge is split between the users.

Interface Class IpChargingManager

Inherits from: IpService.

This interface is the ‘service manager’ interface for the Charging Service. The Charging manager interface provides management functions to the charging service. The application programmer can use this interface to start charging sessions. This interface shall be implemented by a Charging SCF. As a minimum requirement, at least one of createChargingSession() or createSplitChargingSession() shall be implemented.

<<Interface>>

IpChargingManager

createChargingSession (appChargingSession : in IpAppChargingSessionRef, sessionDescription : in TpString, merchantAccount : in TpMerchantAccountID, user : in TpAddress, correlationID : in TpCorrelationID) : TpChargingSessionID

createSplitChargingSession (appChargingSession : in IpAppChargingSessionRef, sessionDescription : in TpString, merchantAccount : in TpMerchantAccountID, users : in TpAddressSet, correlationID : in TpCorrelationID) : TpChargingSessionID

Method createChargingSession()

This method creates an instance of the IpChargingSession interface to handle the charging events related to the specified user and to the application invoking this method. An IpAppChargingManager should already have been passed to the IpChargingManager, otherwise the charging manager will not be able to report a sessionAborted() to the application (the application should invoke setCallback() if it wishes to ensure this).

Returns chargingSession: Defines the session.

Parameters

appChargingSession : in IpAppChargingSessionRef

Callback interface for the session in the application.

sessionDescription : in TpString

Descriptive text for informational purposes.

merchantAccount : in TpMerchantAccountID

Identifies the account of the party providing the application to be used.

user : in TpAddress

Specifies the user that is using the application. This may or may not be the user that will be charged. The Charging service will determine the charged user. When this method is invoked the Charging service shall determine if charging is allowed for this application for this subscriber. An exception shall be thrown if this type of charging is not allowed.

correlationID : in TpCorrelationID

This value can be used to correlate the charging to network activity.

Returns

TpChargingSessionID

Raises

TpCommonExceptions, P_INVALID_USER, P_INVALID_ACCOUNT

Method createSplitChargingSession()

This method creates an instance of the IpChargingSession interface to handle the charging events related to the specified users and to the application invoking this method. This method differs from createChargingSession() in that it allows to specify multiple users to be charged. The SCS implementation is responsible to figure out how later reserve and charge operations are split among these subscribers. The algorithm may be selected and controlled e.g. through the chargingParameter argument in the respective methods. The algorithms provided and the details how they interpret any parameters are vendor specific.

Returns chargingSession: Defines the session.

Parameters

appChargingSession : in IpAppChargingSessionRef

Callback interface for the session in the application.

sessionDescription : in TpString

Descriptive text for informational purposes.

merchantAccount : in TpMerchantAccountID

Identifies the account of the party providing the application to be used.

users : in TpAddressSet

Specifies the users that are involved in using the application. This could be all users in a multi-party application (conference call, multi-user-game).

correlationID : in TpCorrelationID

This value can be used to correlate the charging to network activity.

Returns

TpChargingSessionID

Raises

TpCommonExceptions, P_INVALID_USER, P_INVALID_ACCOUNT

Interface Class IpAppChargingManager

Inherits from: IpInterface.

This interface is the manager application interface for the Charging Service. The Charging manager interface provides the application Charging Session Management functions to the charging service.

<<Interface>>

IpAppChargingManager

sessionAborted (sessionID : in TpSessionID) : void

abortMultipleChargingSessions (chargingSessionSet : in TpSessionIDSet) : void

Method sessionAborted()

This method indicates to the application that the charging session object (at the gateway) has aborted or terminated abnormally. No further communication will be possible between the charging session and application.

Parameters

sessionID : in TpSessionID

Specifies the sessionID of the charging session that has aborted or terminated abnormally.

Method abortMultipleChargingSessions()

The service may invoke this method on the IpAppChargingManager interface to indicate that a number of ongoing charging sessions have aborted or terminated abnormally. No further communication will be possible between the application and the charging sessions. This may be used for example in the event of service failure and recovery in order to instruct the application that a number of charging sessions have failed. The service shall provide a set of charging sessionIDs indicating to the application the charging sessions that have aborted. In the case that the service invokes this method and provides an empty set of sessionIDs, this shall be used to indicate that all charging sessions previously active on the IpChargingManager interface have been aborted.

Parameters

chargingSessionSet : in TpSessionIDSet

Specifies the set of sessionIDs of charging sessions that have aborted or terminated abnormally. The empty set shall be used to indicate that all charging sessions have aborted.

Interface Class IpChargingSession

Inherits from: IpService.

The Charging Session interface provides operations to facilitate transactions between a merchant and a user. The application programmer can use this interface to debit or credit amounts and/or units towards a user, to create and extend the lifetime of a reservation and to get information about what is left of the reservation. This interface shall be implemented by a Charging SCF. As a minimum requirement, the release() method shall be implemented. If the reserveAmountReq() method is implemented, at least one of the debitAmountReq() or the creditAmountReq() methods shall also be implemented. If the reserveUnitReq() method is implemented, at least one of the debitUnitReq() or the creditUnitReq() methods shall also be implemented. If neither the reserveAmountReq() nor the reserveUnitReq() method is implemented, then at least one of the directDebitAmountReq() or the directDebitUnitReq(), or the directCreditAmountReq(), or the directCreditUnitReq() methods shall be implemented.

<<Interface>>

IpChargingSession

creditAmountReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, amount : in TpChargingPrice, closeReservation : in TpBoolean, requestNumber : in TpInt32) : void

creditUnitReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, volumes : in TpVolumeSet, closeReservation : in TpBoolean, requestNumber : in TpInt32) : void

debitAmountReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, amount : in TpChargingPrice, closeReservation : in TpBoolean, requestNumber : in TpInt32) : void

debitUnitReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, volumes : in TpVolumeSet, closeReservation : in TpBoolean, requestNumber : in TpInt32) : void

directCreditAmountReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, chargingParameters : in TpChargingParameterSet, amount : in TpChargingPrice, requestNumber : in TpInt32) : void

directCreditUnitReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, chargingParameters : in TpChargingParameterSet, volumes : in TpVolumeSet, requestNumber : in TpInt32) : void

directDebitAmountReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, chargingParameters : in TpChargingParameterSet, amount : in TpChargingPrice, requestNumber : in TpInt32) : void

directDebitUnitReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, chargingParameters : in TpChargingParameterSet, volumes : in TpVolumeSet, requestNumber : in TpInt32) : void

extendLifeTimeReq (sessionID : in TpSessionID) : void

getAmountLeft (sessionID : in TpSessionID) : TpChargingPrice

getLifeTimeLeft (sessionID : in TpSessionID) : TpInt32

getUnitLeft (sessionID : in TpSessionID) : TpVolumeSet

rateReq (sessionID : in TpSessionID, chargingParameters : in TpChargingParameterSet) : void

release (sessionID : in TpSessionID, requestNumber : in TpInt32) : void

reserveAmountReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, chargingParameters : in TpChargingParameterSet, preferredAmount : in TpChargingPrice, minimumAmount : in TpChargingPrice, requestNumber : in TpInt32) : void

reserveUnitReq (sessionID : in TpSessionID, applicationDescription : in TpApplicationDescription, chargingParameters : in TpChargingParameterSet, volumes : in TpVolumeSet, requestNumber : in TpInt32) : void

Method creditAmountReq()

This method credits an amount towards the reservation associated with the session.

The amount left in the reservation will be increased by this amount.

Each request to debit / credit an amount towards a reservation is handled separately. For example, two requests for a payment of EUR 1,- will give a total payment of EUR 2,-.

A credit of EUR 1,- and a debit of EUR 1 will give a total payment of EUR 0,-.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

amount : in TpChargingPrice

The amount of specified currency to be credited towards the user.

closeReservation : in TpBoolean

If set to true, this parameter indicates that the remaining part of the reservation can be freed. This may also mean addition of currency to the subscriber’s account if more credits than debits have been made. The session is not released, this has to be done explicitly by calling the release() method.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_AMOUNT, P_INVALID_CURRENCY, P_INVALID_REQUEST_NUMBER

Method creditUnitReq()

This method credits a volume of application usage towards the reservation.

The volumes left in the reservation of this will be increased by this amount.

Each request to debit / credit a volume towards a reservation is handled separately. For example, two requests for a payment for 10 kilobytes will give a total payment for 20 kilobytes.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

volumes : in TpVolumeSet

Specifies the credited volumes in different units, more specifically a sequence of data elements each containing the amount and applied unit.

closeReservation : in TpBoolean

If set to true, this parameter indicates that the reservation can be freed. The session is not released, this has to be done explicitly by calling the release() method.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_VOLUME, P_INVALID_REQUEST_NUMBER

Method debitAmountReq()

This method debits an amount from the reservation.

The amount left in the reservation will be decreased by this amount.

Each request to debit / credit an amount towards a reservation is handled separately. For example, two requests for a payment of EUR 1,- will give a total payment of EUR 2,-.

A credit of EUR 1,- and a debit of EUR 1 will give a total payment of EUR 0,-.

When a debit operation would exceed the limit of the reservation, the debit operation fails.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

amount : in TpChargingPrice

The amount of specified currency to be debited from the user.

closeReservation : in TpBoolean

If set to true, this parameter indicates that the reservation can be freed. The session is not released, this has to be done explicitly by calling the release() method.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_AMOUNT, P_INVALID_CURRENCY, P_INVALID_REQUEST_NUMBER

Method debitUnitReq()

This method debits a volume of application usage from the reservation.

The volumes left in the reservation will be decreased by this amount.

Each request to debit / credit a volume towards a reservation is handled separately. For example, two requests for a payment for 10 kilobytes will give a total payment for 20 kilobytes.

When a debit operation would exceed the limit of the reservation, the debit operation succeeds, and the debited volumes will be the rest of the volumes in the reservation.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

volumes : in TpVolumeSet

Specifies the charged volumes in different units, more specifically a sequence of data elements each containing the amount and applied unit.

closeReservation : in TpBoolean

If set to true, this parameter indicates that the reservation can be freed. The session is not released, this has to be done explicitly by calling the release() method.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_VOLUME, P_INVALID_REQUEST_NUMBER

Method directCreditAmountReq()

This method directly credits an amount towards the user.

A possible reservation associated with this session is not influenced.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

amount : in TpChargingPrice

The amount of specified currency to be credited towards the user.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_AMOUNT, P_INVALID_CURRENCY, P_INVALID_REQUEST_NUMBER

Method directCreditUnitReq()

This method directly credits a volume of application usage towards the user.

The volumes in a possible reservation associated with this session are not influenced.

Parameters

sessionID : in TpSessionID

The ID of the reservation.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

volumes : in TpVolumeSet

Specifies the credited volumes in different units, more specifically a sequence of data elements each containing the amount and applied unit.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_VOLUME, P_INVALID_REQUEST_NUMBER

Method directDebitAmountReq()

This method directly debits an amount towards the user.

A possible reservation associated with this session is not influenced.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

amount : in TpChargingPrice

The amount of specified currency to be debited from the user.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_AMOUNT, P_INVALID_CURRENCY, P_INVALID_REQUEST_NUMBER

Method directDebitUnitReq()

This method directly credits a volume of application usage towards the user.

The volumes in a possible reservation associated with this session are not influence.

Parameters

sessionID : in TpSessionID

The ID of the reservation.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

volumes : in TpVolumeSet

Specifies the charged volumes in different units, more specifically a sequence of data elements each containing the amount and applied unit.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_VOLUME, P_INVALID_REQUEST_NUMBER

Method extendLifeTimeReq()

With this method an application can request the lifetime of the reservation to be extended. If no reservation has been made on the charging session, this method raises an exception (P_TASK_REFUSED).

Parameters

sessionID : in TpSessionID

The ID of the session.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID

Method getAmountLeft()

With this method an application can request the remaining amount of the reservation.

Returns amountLeft: Gives the amount left in the reservation.

Parameters

sessionID : in TpSessionID

The ID of the session.

Returns

TpChargingPrice

Raises

TpCommonExceptions, P_INVALID_SESSION_ID

Method getLifeTimeLeft()

With this method an application can request the remaining lifetime of the reservation. If no reservation has been made on the charging session, this method raises an exception (P_TASK_REFUSED).

Returns reservationTimeLeft: Indicates the number of seconds that the session remains valid.

Parameters

sessionID : in TpSessionID

The ID of the session.

Returns

TpInt32

Raises

TpCommonExceptions, P_INVALID_SESSION_ID

Method getUnitLeft()

With this method an application can request the remaining amount of the reservation.

Returns volumesLeft: Specifies the remaining volumes in different units, more specifically a sequence of data elements each containing the amount and applied unit.

Parameters

sessionID : in TpSessionID

The ID of the session.

Returns

TpVolumeSet

Raises

TpCommonExceptions, P_INVALID_SESSION_ID

Method rateReq()

This method is used when the application wants to have an item rated by the charging service. The result can be used to present pricing information to the end-user before the end-user actually wants to start using the service.

Parameters

sessionID : in TpSessionID

The ID of the session.

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID

Method release()

This method releases the session, no operations can be done towards this session anymore (not even retries). Unused parts of a reservation are freed.

Parameters

sessionID : in TpSessionID

The ID of the session.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_REQUEST_NUMBER

Method reserveAmountReq()

This method is used when an application wants to reserve an amount of money for services to be delivered to a user. It is also possible to enlarge the existing amount reservation by invoking this method. If a reservation is extended, the lifetime of the reservation is re-initialized.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

preferredAmount : in TpChargingPrice

The amount of specified currency that the application wants to be reserved.

minimumAmount : in TpChargingPrice

The minimum amount that can be used by the application if the preferred amount cannot be granted.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_AMOUNT, P_INVALID_CURRENCY, P_INVALID_REQUEST_NUMBER

Method reserveUnitReq()

This method is used when an application wants to reserve volumes of application usage to be delivered to a user in the session. When using units it is assumed that the price setting for the units is handled by the network side services. It is also possible to enlarge the existing unit reservation by invoking this method.

Parameters

sessionID : in TpSessionID

The ID of the session.

applicationDescription : in TpApplicationDescription

Descriptive text for informational purposes (e.g. text presented on the bill and used in communication towards the user).

chargingParameters : in TpChargingParameterSet

These parameters and their values specify to the charging service what was provided to the end user so that the charging service can determine the applicable tariff.

volumes : in TpVolumeSet

Specifies the reserved volumes in different units, more specifically a sequence of data elements each containing the amount and applied unit. It is e.g. possible to make a reservation for 10 000 octets and 5 charging units.

requestNumber : in TpInt32

Specifies the number given in the result of the previous operation on this session, or when creating the session. When no answer is received the same operation with the same parameters must be retried with the same requestNumber.

Raises

TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_VOLUME, P_INVALID_REQUEST_NUMBER

Interface Class IpAppChargingSession

Inherits from: IpInterface.

This application interface must be implemented by the client application to handle callbacks from the IpChargingSession.

<<Interface>>

IpAppChargingSession

creditAmountErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

creditAmountRes (sessionID : in TpSessionID, requestNumber : in TpInt32, creditedAmount : in TpChargingPrice, reservedAmountLeft : in TpChargingPrice, requestNumberNextRequest : in TpInt32) : void

creditUnitErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

creditUnitRes (sessionID : in TpSessionID, requestNumber : in TpInt32, creditedVolumes : in TpVolumeSet, reservedUnitsLeft : in TpVolumeSet, requestNumberNextRequest : in TpInt32) : void

debitAmountErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

debitAmountRes (sessionID : in TpSessionID, requestNumber : in TpInt32, debitedAmount : in TpChargingPrice, reservedAmountLeft : in TpChargingPrice, requestNumberNextRequest : in TpInt32) : void

debitUnitErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

debitUnitRes (sessionID : in TpSessionID, requestNumber : in TpInt32, debitedVolumes : in TpVolumeSet, reservedUnitsLeft : in TpVolumeSet, requestNumberNextRequest : in TpInt32) : void

directCreditAmountErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

directCreditAmountRes (sessionID : in TpSessionID, requestNumber : in TpInt32, creditedAmount : in TpChargingPrice, requestNumberNextRequest : in TpInt32) : void

directCreditUnitErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

directCreditUnitRes (sessionID : in TpSessionID, requestNumber : in TpInt32, creditedVolumes : in TpVolumeSet, requestNumberNextRequest : in TpInt32) : void

directDebitAmountErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

directDebitAmountRes (sessionID : in TpSessionID, requestNumber : in TpInt32, debitedAmount : in TpChargingPrice, requestNumberNextRequest : in TpInt32) : void

directDebitUnitErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

directDebitUnitRes (sessionID : in TpSessionID, requestNumber : in TpInt32, debitedVolumes : in TpVolumeSet, requestNumberNextRequest : in TpInt32) : void

extendLifeTimeErr (sessionID : in TpSessionID, error : in TpChargingError) : void

extendLifeTimeRes (sessionID : in TpSessionID, sessionTimeLeft : in TpInt32) : void

rateErr (sessionID : in TpSessionID, error : in TpChargingError) : void

rateRes (sessionID : in TpSessionID, rates : in TpPriceVolumeSet, validityTimeLeft : in TpDuration) : void

reserveAmountErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

reserveAmountRes (sessionID : in TpSessionID, requestNumber : in TpInt32, reservedAmount : in TpChargingPrice, sessionTimeLeft : in TpInt32, requestNumberNextRequest : in TpInt32) : void

reserveUnitErr (sessionID : in TpSessionID, requestNumber : in TpInt32, error : in TpChargingError, requestNumberNextRequest : in TpInt32) : void

reserveUnitRes (sessionID : in TpSessionID, requestNumber : in TpInt32, reservedUnits : in TpVolumeSet, sessionTimeLeft : in TpInt32, requestNumberNextRequest : in TpInt32) : void

sessionEnded (sessionID : in TpSessionID, report : in TpSessionEndedCause) : void

Method creditAmountErr()

This method indicates that the corresponding request failed completely and that no money has been credited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_CURRENCY and P_CHS_ERR_NO_CREDIT.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method creditAmountRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

creditedAmount : in TpChargingPrice

Indicates the credited amount.

reservedAmountLeft : in TpChargingPrice

The amount left of the reservation.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method creditUnitErr()

This method indicates that the corresponding request failed completely and that no units have been credited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_VOLUMES and P_CHS_ERR_NO_CREDIT.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method creditUnitRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

creditedVolumes : in TpVolumeSet

Indicates the credited volumes of application usage.

reservedUnitsLeft : in TpVolumeSet

The volume of application usage left in the reservation.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method debitAmountErr()

This method indicates that the corresponding request failed completely and that no money has been debited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_CURRENCY and P_CHS_ERR_RESERVATION_LIMIT.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method debitAmountRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

debitedAmount : in TpChargingPrice

Indicates the debited amount.

reservedAmountLeft : in TpChargingPrice

The amount left of the reservation.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method debitUnitErr()

This method indicates that the corresponding request failed completely and that no units have been debited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_VOLUMES and P_CHS_ERR_RESERVATION_LIMIT.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method debitUnitRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

debitedVolumes : in TpVolumeSet

Indicates the debited volumes of application usage.

reservedUnitsLeft : in TpVolumeSet

The volume of application usage left in the reservation.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directCreditAmountErr()

This method indicates that the corresponding request failed completely and that no money has been credited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER, P_CHS_ERR_NO_CREDIT, P_CHS_ERR_CURRENCY.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directCreditAmountRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

creditedAmount : in TpChargingPrice

Indicates the credited amount.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directCreditUnitErr()

This method indicates that the corresponding request failed completely and that no units have been credited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER, P_CHS_ERR_NO_CREDIT, P_CHS_ERR_VOLUMES.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directCreditUnitRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

creditedVolumes : in TpVolumeSet

Indicates the credited volumes of application usage.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directDebitAmountErr()

This method indicates that the corresponding request failed completely and that no money has been debited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER, P_CHS_ERR_NO_DEBIT, P_CHS_ERR_CURRENCY, P_CHS_ERR_CONFIRMATION_REQUIRED.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directDebitAmountRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

debitedAmount : in TpChargingPrice

Indicates the debited amount.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directDebitUnitErr()

This method indicates that the corresponding request failed completely and that no units have been debited.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER, P_CHS_ERR_NO_DEBIT, P_CHS_ERR_VOLUMES, P_CHS_ERR_ CONFIRMATION_REQUIRED.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method directDebitUnitRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

requestNumber : in TpInt32

This is the request number for this request.

debitedVolumes : in TpVolumeSet

Indicates the debited volumes of application usage.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method extendLifeTimeErr()

This method indicates that the corresponding request failed.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_NO_EXTEND.

Method extendLifeTimeRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

sessionTimeLeft : in TpInt32

Indicates the number of seconds that the session remains valid.

Method rateErr()

This method indicates that the corresponding request failed.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER.

Method rateRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the ID of the session for which the operation was called.

rates : in TpPriceVolumeSet

The applicable rates.

validityTimeLeft : in TpDuration

Indicates the number of milliseconds that this information remains valid.

Method reserveAmountErr()

This method indicates that the corresponding request failed. The reservation cannot be used.

Parameters

sessionID : in TpSessionID

This is the same as the session ID returned in the request.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER, P_CHS_ERR_RESERVATION_LIMIT, P_CHS_ERR_CURRENCY, P_CHS_ERR_NO_EXTEND, P_CHS_ERR_CONFIRMATION_REQUIRED.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method reserveAmountRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the same as the session ID returned in the request.

requestNumber : in TpInt32

This is the request number for this request.

reservedAmount : in TpChargingPrice

The amount reserved. If there was already a pending reservation, the sum of that and the new reservation is given.

sessionTimeLeft : in TpInt32

Indicates the number of seconds that the session and the reservation therein remain valid.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method reserveUnitErr()

This method indicates that the corresponding request failed. The reservation cannot be used.

Parameters

sessionID : in TpSessionID

This is the same as the session ID returned in the request.

requestNumber : in TpInt32

This is the request number for this request.

error : in TpChargingError

Indicates the reason for failure. Possible errors are: P_CHS_ERR_PARAMETER, P_CHS_ERR_VOLUMES, P_CHS_ERR_RESERVATION_LIMIT, P_CHS_ERR_NO_EXTEND, P_CHS_ERR_CONFIRMATION_REQUIRED.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method reserveUnitRes()

This method indicates that the corresponding request was successful.

Parameters

sessionID : in TpSessionID

This is the same as the session ID returned in the request.

requestNumber : in TpInt32

This is the request number for this request.

reservedUnits : in TpVolumeSet

The volume of application usage reserved. If there was already a pending reservation, the sum of that and the new reservation is returned. E.g. a pending reservation of 25 charging units and a new reservation of 1 000 octets and 10 charging units will result in two TpVolume elements for this parameter: 1 000 octets and 35 charging units.

sessionTimeLeft : in TpInt32

Indicates the number of seconds that the session and the reservation therein remain valid.

requestNumberNextRequest : in TpInt32

This request number must be used in the next request (requiring a Request Number) for this session.

Method sessionEnded()

This method indicates to the application that the charging session has terminated in the charging server. The application is expected to deassign the charging session object after having received the sessionEnded.

Parameters

sessionID : in TpSessionID

Specifies the charging sessionID.

report : in TpSessionEndedCause

Specifies the cause the charging session is terminated.