Open Service Access (OSA); Application Programming Interface (API); Part 12: Charging SCF (Parlay 4)

Maintenance update of ES 202 915-12 V1.1.1 to produce ES 202 915-12 V1.2.1 Updated document will also be known as PARLAY 4.1. Only those parts requiring modification will be updated ( most parts require maintenance fixes )

Odprti dostop do storitve (OSA) – Vmesnik za aplikacijsko programiranje (API) – 12. del: Zaračunavanje SCF

General Information

Status
Published
Publication Date
31-Dec-2004
Current Stage
6060 - National Implementation/Publication (Adopted Project)
Start Date
01-Jan-2005
Due Date
01-Jan-2005
Completion Date
01-Jan-2005
Standardization document
SIST ES 202 915-12 V1.2.1:2005
English language
56 pages
sale 10% off
Preview
sale 10% off
Preview
e-Library read for
1 day

Standards Content (Sample)


SLOVENSKI STANDARD
01-januar-2005
2GSUWLGRVWRSGRVWRULWYH 26$ ±9PHVQLN]DDSOLNDFLMVNRSURJUDPLUDQMH $3, ±
GHO=DUDþXQDYDQMH6&)
Open Service Access (OSA); Application Programming Interface (API); Part 12:
Charging SCF (Parlay 4)
Ta slovenski standard je istoveten z: ES 202 915-12 Version 1.2.1
ICS:
33.040.01 Telekomunikacijski sistemi Telecommunication systems
na splošno in general
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.

ETSI Standard
Open Service Access (OSA);
Application Programming Interface (API);
Part 12: Charging SCF
(Parlay 4)

2 ETSI ES 202 915-12 V1.2.1 (2003-08)

Reference
RES/SPAN-120096-12
Keywords
API, IDL, OSA, UML
ETSI
650 Route des Lucioles
F-06921 Sophia Antipolis Cedex - FRANCE

Tel.: +33 4 92 94 42 00  Fax: +33 4 93 65 47 16

Siret N° 348 623 562 00017 - NAF 742 C
Association à but non lucratif enregistrée à la
Sous-Préfecture de Grasse (06) N° 7803/88

Important notice
Individual copies of the present document can be downloaded from:
http://www.etsi.org
The present document may be made available in more than one electronic version or in print. In any case of existing or
perceived difference in contents between such versions, the reference version is the Portable Document Format (PDF).
In case of dispute, the reference shall be the printing on ETSI printers of the PDF version kept on a specific network drive
within ETSI Secretariat.
Users of the present document should be aware that the document may be subject to revision or change of status.
Information on the current status of this and other ETSI documents is available at
http://portal.etsi.org/tb/status/status.asp
If you find errors in the present document, send your comment to:
editor@etsi.org
Copyright Notification
No part may be reproduced except as authorized by written permission.
The copyright and the foregoing restriction extend to reproduction in all media.

© European Telecommunications Standards Institute 2003.
© The Parlay Group 2003.
All rights reserved.
TM TM TM
DECT , PLUGTESTS and UMTS are Trade Marks of ETSI registered for the benefit of its Members.
TM
TIPHON and the TIPHON logo are Trade Marks currently being registered by ETSI for the benefit of its Members.
TM
3GPP is a Trade Mark of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners.
ETSI
3 ETSI ES 202 915-12 V1.2.1 (2003-08)
Contents
Intellectual Property Rights.6
Foreword.6
1 Scope.7
2 References.7
3 Definitions and abbreviations.7
3.1 Definitions.7
3.2 Abbreviations.7
4 Charging SCF.8
4.1 General requirements on support of methods.8
5 Sequence Diagrams.8
5.1 Reservation / payment in parts .8
5.2 Immediate Charge.10
6 Class Diagrams.12
7 The Service Interface Specifications.14
7.1 Interface Specification Format .14
7.1.1 Interface Class.14
7.1.2 Method descriptions.14
7.1.3 Parameter descriptions.14
7.1.4 State Model.14
7.2 Base Interface.14
7.2.1 Interface Class IpInterface .14
7.3 Service Interfaces.15
7.3.1 Overview.15
7.4 Generic Service Interface .15
7.4.1 Interface Class IpService .15
7.4.1.1 Method setCallback().15
7.4.1.2 Method setCallbackWithSessionID().15
8 Charging Interface Classes.16
8.1 Interface Class IpChargingManager.16
8.1.1 Method createChargingSession().17
8.1.2 Method <> createSplitChargingSession().18
8.2 Interface Class IpAppChargingManager .18
8.2.1 Method sessionAborted().19
8.3 Interface Class IpChargingSession.19
8.3.1 Method creditAmountReq().20
8.3.2 Method creditUnitReq().21
8.3.3 Method debitAmountReq().22
8.3.4 Method debitUnitReq().22
8.3.5 Method directCreditAmountReq().23
8.3.6 Method directCreditUnitReq().24
8.3.7 Method directDebitAmountReq().24
8.3.8 Method directDebitUnitReq().25
8.3.9 Method extendLifeTimeReq().25
8.3.10 Method getAmountLeft().26
8.3.11 Method getLifeTimeLeft().26
8.3.12 Method getUnitLeft().26
8.3.13 Method rateReq().27
8.3.14 Method release().27
8.3.15 Method reserveAmountReq().27
8.3.16 Method reserveUnitReq().28
8.4 Interface Class IpAppChargingSession .29
ETSI
4 ETSI ES 202 915-12 V1.2.1 (2003-08)
8.4.1 Method creditAmountErr().30
8.4.2 Method creditAmountRes().30
8.4.3 Method creditUnitErr().31
8.4.4 Method creditUnitRes().31
8.4.5 Method debitAmountErr().31
8.4.6 Method debitAmountRes().32
8.4.7 Method debitUnitErr().32
8.4.8 Method debitUnitRes().33
8.4.9 Method directCreditAmountErr().33
8.4.10 Method directCreditAmountRes().33
8.4.11 Method directCreditUnitErr().34
8.4.12 Method directCreditUnitRes().34
8.4.13 Method directDebitAmountErr().35
8.4.14 Method directDebitAmountRes().35
8.4.15 Method directDebitUnitErr().35
8.4.16 Method directDebitUnitRes().36
8.4.17 Method extendLifeTimeErr().36
8.4.18 Method extendLifeTimeRes().36
8.4.19 Method rateErr().37
8.4.20 Method rateRes().37
8.4.21 Method reserveAmountErr().37
8.4.22 Method reserveAmountRes().38
8.4.23 Method reserveUnitErr().38
8.4.24 Method reserveUnitRes().38
8.4.25 Method sessionEnded().39
9 State Transition Diagrams.40
9.1 State Transition Diagrams for IpChargingSession .40
9.1.1 Session Created State.40
9.1.2 Amount Reserved State.41
9.1.3 Volume Reserved State.41
10 Content Based Charging Service Properties.41
11 Data Definitions.42
11.1 Charging Data Definitions.42
11.1.1 IpChargingManager.42
11.1.2 IpChargingManagerRef.42
11.1.3 IpAppChargingManager.42
11.1.4 IpAppChargingManagerRef.42
11.1.5 IpChargingSession.43
11.1.6 IpChargingSessionRef.43
11.1.7 IpAppChargingSession.43
11.1.8 IpAppChargingSessionRef.43
11.1.9 TpApplicationDescription.43
11.1.10 TpAppInformationSet.43
11.1.11 TpAppInformation.43
11.1.12 TpAppInformationType.43
11.1.13 TpSessionEndedCause.43
11.1.14 TpMerchantAccountID.44
11.1.15 TpCorrelationID.44
11.1.16 TpCorrelationType.44
11.1.17 TpChargingPrice.44
11.1.18 TpAmount.44
11.1.19 TpChargingParameterSet.44
11.1.20 TpChargingParameter.45
11.1.21 TpChargingParameterID.45
11.1.22 TpChargingParameterValue.45
11.1.23 TpChargingParameterValueType.45
11.1.24 TpVolumeSet.45
11.1.25 TpVolume.46
11.1.26 TpUnitID.46
11.1.27 TpChargingSessionID.46
ETSI
5 ETSI ES 202 915-12 V1.2.1 (2003-08)
11.1.28 TpPriceVolumeSet.46
11.1.29 TpPriceVolume.46
11.1.30 TpChargingError.47
12 Exception Classes.47
Annex A (normative): OMG IDL Description of Charging SCF.48
Annex B (informative): W3C WSDL Description of Charging SCF.49
Annex C (informative): Java API Description of the Charging SCF .50
Annex D (informative): Contents of 3GPP OSA R5 Charging.51
Annex E (informative): Record of changes .52
E.1 Interfaces.52
E.1.1 New.52
E.1.2 Deprecated.52
E.1.3 Removed.52
E.2 Methods.52
E.2.1 New.52
E.2.2 Deprecated.53
E.2.3 Modified.53
E.2.4 Removed.53
E.3 Data Definitions.53
E.3.1 New.53
E.3.2 Modified.53
E.3.3 Removed.54
E.4 Service Properties.54
E.4.1 New.54
E.4.2 Deprecated.54
E.4.3 Modified.54
E.4.4 Removed.55
E.5 Exceptions.55
E.5.1 New.55
E.5.2 Modified.55
E.5.3 Removed.55
E.6 Others.55
History .56

ETSI
6 ETSI ES 202 915-12 V1.2.1 (2003-08)
Intellectual Property Rights
IPRs essential or potentially essential to the present document may have been declared to ETSI. The information
pertaining to these essential IPRs, if any, is publicly available for ETSI members and non-members, and can be found
in ETSI SR 000 314: "Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in
respect of ETSI standards", which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web
server (http://webapp.etsi.org/IPR/home.asp).
Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee
can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web
server) which are, or may be, or may become, essential to the present document.
Foreword
This ETSI Standard (ES) has been produced by ETSI Technical Committee Services and Protocols for Advanced
Networks (SPAN).
The present document is part 12 of a multi-part deliverable covering Open Service Access (OSA); Application
Programming Interface (API), as identified below. The API specification (ES 202 915) is structured in the following
parts:
Part 1: "Overview";
Part 2: "Common Data Definitions";
Part 3: "Framework";
Part 4: "Call Control";
Part 5: "User Interaction SCF";
Part 6: "Mobility SCF";
Part 7: "Terminal Capabilities SCF";
Part 8: "Data Session Control SCF";
Part 9: "Generic Messaging SCF";
Part 10: "Connectivity Manager SCF";
Part 11: "Account Management SCF";
Part 12: "Charging SCF";
Part 13: "Policy management SCF";
Part 14: "Presence and Availability Management SCF".
The present document has been defined jointly between ETSI, The Parlay Group (http://www.parlay.org) and the 3GPP,
in co-operation with a number of JAIN™ Community (http://www.java.sun.com/products/jain) member companies.
The present document forms part of the Parlay 4.1 set of specifications.
The present document is equivalent to 3GPP TS 29.198-12 V5.2.0 (Release 5).
ETSI
7 ETSI ES 202 915-12 V1.2.1 (2003-08)
1 Scope
The present document is part 12 of the Stage 3 specification for an Application Programming Interface (API) for Open
Service Access (OSA).
The OSA specifications define an architecture that enables application developers to make use of network functionality
through an open standardised interface, i.e. the OSA APIs.
The present document specifies the Charging Service Capability Feature (SCF) aspects of the interface. All aspects of
the Charging SCF are defined here, these being:
• Sequence Diagrams
• Class Diagrams
• Interface specification plus detailed method descriptions
• State Transition diagrams
• Data Definitions
• IDL Description of the interfaces
• WSDL Description of the interfaces
• Reference to the Java API description of the interfaces
The process by which this task is accomplished is through the use of object modelling techniques described by the
Unified Modelling Language (UML).
2 References
The references listed in clause 2 of ES 202 915-1 contain provisions which, through reference in this text, constitute
provisions of the present document.
ETSI ES 202 915-1: "Open Service Access (OSA); Application Programming Interface (API); Part 1: Overview
(Parlay 4)".
ETSI ES 202 915-2: "Open Service Access (OSA); Application Programming Interface (API); Part 2: Common Data
Definitions (Parlay 4)".
3 Definitions and abbreviations
3.1 Definitions
For the purposes of the present document, the terms and definitions given in ES 202 915-1 apply.
3.2 Abbreviations
For the purposes of the present document, the abbreviations defined in ES 202 915-1 apply.
ETSI
8 ETSI ES 202 915-12 V1.2.1 (2003-08)
4 Charging SCF
The following clauses describe each aspect of the Charging Service Capability Feature (SCF).
The order is as follows:
• The Sequence diagrams give the reader a practical idea of how each of the SCF is implemented.
• The Class relationships clause show how each of the interfaces applicable to the SCF, relate to one another.
• The Interface specification clause describes in detail each of the interfaces shown within the Class diagram
part.
• The State Transition Diagrams (STD) show the transition between states in the SCF. The states and transitions
are well-defined; either methods specified in the Interface specification or events occurring in the underlying
networks cause state transitions.
• The Data Definitions clause show a detailed expansion of each of the data types associated with the methods
within the classes. Note that some data types are used in other methods and classes and are therefore defined
within the Common Data types part ES 202 915-2.
4.1 General requirements on support of methods
An implementation of this API which supports or implements a method described in the present document, shall
support or implement the functionality described for that method, for at least one valid set of values for the parameters
of that method.
Where a method is not supported by an implementation of a Service interface, the exception
P_METHOD_NOT_SUPPORTED shall be returned to any call of that method.
Where a method is not supported by an implementation of an Application interface, a call to that method shall be
possible, and no exception shall be returned.
5 Sequence Diagrams
5.1 Reservation / payment in parts
The sequence diagram illustrates how to request a reservation and how to charge a user from the reserved amount, for
instance to charge a user for a streamed video which lasts 10 minutes and costs a total of $2.00. The operations and
interfaces that do not provide rating are employed throughout this sequence diagram.
We assume the application has already discovered the Charging SCF. As a result, the application received an object
reference pointing to an object that implements the IpChargingManager interface.
The operations which handle units are used exactly the same, except that the amount of application usage is indicated
instead of a price.
ETSI
9 ETSI ES 202 915-12 V1.2.1 (2003-08)
Application : IpAppChargingSession : IpChargingManager : IpChargingSession
1: new()
2: createChargingSes sion(   )
3: new()
4: reserveAmountReq(   )
5: reserveAmountRes(   )
6: forward event()
7: debitAmountReq(   )
8: debitAmountRes(   )
9: forward event()
10: getLifeTimeLeft( )
11: extendLifeTimeReq( )
12: extendLifeTimeRes( )
13: forward event()
14: debitAmountReq(   )
15: debitAmountRes(   )
16: forward event()
17: release( )
1: The application creates a local object implementing the IpAppChargingSession interface. This object will receive
response messages from the IpChargingSession object.
2: The application opens a charging session, a reference to a new or existing object implementing IpChargingSession is
returned together with a unique session ID.
3: In this case a new object is used.
4: The application requests the reservation of $2.00.
5: Assuming the criteria for requesting a reservation are met (the application provider has permission to charge the
requested amount, the charged user has agreed to pay the requested amount), the amount is reserved in the session. At
this point, the application provider knows that the network operator will accept later debit requests up to the reserved
amount. So, the application may start serving the user, for instance by sending the video stream.
ETSI
10 ETSI ES 202 915-12 V1.2.1 (2003-08)
6: The successful reservation is reported back to the application.
After half of the video has been sent to the user, the application may choose to capture half of the price already:
7: The application requests to debit $1.00 from the reservation.
8: The successful debit is reported back to the application.
9: The acknowledge is forwarded to the application.
10: The application checks if the remaining lifetime of the reservation will cover the remaining 5 minutes of video. Let
us assume, it does not.
11: The application asks the IpChargingSession object to extend the lifetime of the reservation.
12: Assuming that the application provider is allowed to keep reservations open for longer than 10 minutes, the
extendLifeTimeReq() will be honoured and confirmed properly.
13: The confirmation is forwarded to the application.
14: When the complete video has been transmitted to the user without errors, the application charges another $1.00.
15: The IpChargingSession object acknowledges the successful debit at the IpAppChargingSession callback object.
16: The IpAppChargingSession object forwards the acknowledge to the application.
17: Since the service is complete, the application frees all resources associated with the reservation and session.
5.2 Immediate Charge
This sequence diagram illustrates how immediate charging is used. Assume a WAP gateway that charges the user $0.01
per requested URL. Since it is acceptable to loose one tick worth $0.01, no prior reservations are made. The WAP
gateway sends an immediate debit for each requested URL, and should a payment have as result failure, the user is
disconnected.
The operations which handle units are used exactly the same, except that the amount of application usage is indicated
instead of a price.
ETSI
11 ETSI ES 202 915-12 V1.2.1 (2003-08)
Application : IpAppChargingSession : IpChargingManager : IpChargingSession
1: new()
2: createChargingSession(   )
3: directDebitAmountReq(   )
4: directDebitAmountRes(  )
5: forward notification
6: directDebitAmountReq(   )
7: directDebitAmountErr(  )
8: forward notification
9: release( )
1: The application creates a local object implementing the IpAppChargingSession interface. This object will receive
response messages from the IpChargingSession object.
2: The application orders the creation of a session. No new object is created for the charging session handling in this
example implementation.
3: The application requests to charge the user $0.01.
4: The payment is acknowledged.
5: The acknowledgement is forwarded in the application.
6: The application requests to charge the user $0.01.
7: The payment is reported to fail.
8: The failure report is forwarded in the application.
(repeat steps 3 - 5 and 6 - 8 as long as you want to in any order you want to)
9: The application releases the session.
ETSI
12 ETSI ES 202 915-12 V1.2.1 (2003-08)
6 Class Diagrams
This class diagram shows the application interfaces for charging and their relations to the service interfaces.
IpInterface
(from csapi)
IpAppChargingSession
(from cs)
creditAmountErr()
creditAmountRes()
IpChargingSession
creditUnitErr()
(from cs)
creditUnitRes()
debitAmountErr()
creditAmountReq()
debitAmountRes()
creditUnitReq()
debitUnitErr()
debitAmountReq()
debitUnitRes()
debitUnitReq()
directCreditAmountErr()
directCreditAmountReq()
directCreditAmountRes()
directCreditUnitReq() <>
directCreditUnitErr()
directDebitAmountReq()
directCreditUnitRes()
directDebitUnitReq()
directDebitAmountErr()
extendLifeTimeReq()
directDebitAmountRes()
getAmountLeft()
directDebitUnitErr()
getLifeTimeLeft()
directDebitUnitRes()
getUnitLeft()
extendLifeTimeErr()
rateReq()
extendLifeTimeRes()
release()
rateErr()
reserveAmountReq()
rateRes()
reserveUnitReq()
reserveAmountErr()
reserveAmountRes()
0.n
reserveUnitErr()
reserveUnitRes()
sessionEnded()
0.n
IpChargingManager
IpAppChargingManager
(from cs)
(from cs)
<>
createChargingSession()
sessionAborted()
<> createSplitChargingSession()

Figure 1: Application Interfaces
ETSI
13 ETSI ES 202 915-12 V1.2.1 (2003-08)
This class diagram shows the interfaces of the charging SCF.
<>
IpService
(f rom c sap i)
setCallback()
setCallbackWithSessionID()
<>
<>
IpChargingManager
IpChargingSession
(from cs)
(from cs)
createChargingSession()
creditAmountReq()
createSplitChargingSession()
creditUnitReq()
debitAmountReq()
debitUnitReq()
directCreditAmountReq()
directCreditUnitReq()
directDebitAmountReq()
directDebitUnitReq()
extendLifeTimeReq()
getAmountLeft()
getLifeTimeLeft()
getUnitLeft()
rateReq()
release()
reserveAmountReq()
reserveUnitReq()
Figure 2: Service Interfaces
ETSI
14 ETSI ES 202 915-12 V1.2.1 (2003-08)
7 The Service Interface Specifications
7.1 Interface Specification Format
This clause defines the interfaces, methods and parameters that form a part of the API specification. The Unified
Modelling Language (UML) is used to specify the interface classes. The general format of an interface specification is
described below.
7.1.1 Interface Class
This shows a UML interface class description of the methods supported by that interface, and the relevant parameters
and types. The Service and Framework interfaces for enterprise-based client applications are denoted by classes with
name Ip. The callback interfaces to the applications are denoted by classes with name IpApp. For
the interfaces between a Service and the Framework, the Service interfaces are typically denoted by classes with name
IpSvc, while the Framework interfaces are denoted by classes with name IpFw
7.1.2 Method descriptions
Each method (API method 'call') is described. Both synchronous and asynchronous methods are used in the API.
Asynchronous methods are identified by a 'Req' suffix for a method request, and, if applicable, are served by
asynchronous methods identified by either a 'Res' or 'Err' suffix for method results and errors, respectively. To handle
responses and reports, the application or service developer must implement the relevant IpApp or
IpSvc interfaces to provide the callback mechanism.
7.1.3 Parameter descriptions
Each method parameter and its possible values are described. Parameters described as 'in' represent those that must have
a value when the method is called. Those described as 'out' are those that contain the return result of the method when
the method returns.
7.1.4 State Model
If relevant, a state model is shown to illustrate the states of the objects that implement the described interface.
7.2 Base Interface
7.2.1 Interface Class IpInterface
All application, framework and service interfaces inherit from the following interface. This API Base Interface does not
provide any additional methods.
<>
IpInterface
ETSI
15 ETSI ES 202 915-12 V1.2.1 (2003-08)
7.3 Service Interfaces
7.3.1 Overview
The Service Interfaces provide the interfaces into the capabilities of the underlying network - such as call control, user
interaction, messaging, mobility and connectivity management.
The interfaces that are implemented by the services are denoted as 'Service Interface'. The corresponding interfaces that
must be implemented by the application (e.g. for API callbacks) are denoted as 'Application Interface'.
7.4 Generic Service Interface
7.4.1 Interface Class IpService
Inherits from: IpInterface;
All service interfaces inherit from the following interface.
<>
IpService
setCallback (appInterface : in IpInterfaceRef) : void
setCallbackWithSessionID (appInterface : in IpInterfaceRef, sessionID : in TpSessionID) : void

7.4.1.1 Method setCallback()
This method specifies the reference address of the callback interface that a service uses to invoke methods on the
application. It is not allowed to invoke this method on an interface that uses SessionIDs.
Parameters
appInterface : in IpInterfaceRef
Specifies a reference to the application interface, which is used for callbacks.
Raises
TpCommonExceptions, P_INVALID_INTERFACE_TYPE

7.4.1.2 Method setCallbackWithSessionID()
This method specifies the reference address of the application's callback interface that a service uses for interactions
associated with a specific session ID: e.g. a specific call, or call leg. It is not allowed to invoke this method on an
interface that does not use SessionIDs.
Parameters
appInterface : in IpInterfaceRef
Specifies a reference to the application interface, which is used for callbacks.
ETSI
16 ETSI ES 202 915-12 V1.2.1 (2003-08)
sessionID : in TpSessionID
Specifies the session for which the service can invoke the application's callback interface.
Raises
TpCommonExceptions, P_INVALID_SESSION_ID, P_INVALID_INTERFACE_TYPE

8 Charging Interface Classes
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
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...