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.