2 //Date: 12 October 2004
3 //Charging Interfaces and Data Types for ETSI ES 203 915-12 v.1.1.1, DES/TISPAN-01005-12-OSA, Parlay 5.0
19 interface IpChargingSession
;
24 struct TpMerchantAccountID
{
30 typedef TpInt32 TpCorrelationType
;
33 struct TpCorrelationID
{
34 TpSessionID CorrelationID
;
35 TpCorrelationType CorrelationType
;
45 struct TpChargingPrice
{
51 typedef TpInt32 TpChargingParameterID
;
54 enum TpChargingParameterValueType
{
56 P_CHS_PARAMETER_INT32
,
57 P_CHS_PARAMETER_FLOAT
,
58 P_CHS_PARAMETER_STRING
,
59 P_CHS_PARAMETER_BOOLEAN
,
60 P_CHS_PARAMETER_OCTETSET
64 union TpChargingParameterValue
switch(TpChargingParameterValueType
) {
65 case P_CHS_PARAMETER_INT32
: TpInt32 IntValue
;
66 case P_CHS_PARAMETER_FLOAT
: TpFloat FloatValue
;
67 case P_CHS_PARAMETER_STRING
: TpString StringValue
;
68 case P_CHS_PARAMETER_BOOLEAN
: TpBoolean BooleanValue
;
69 case P_CHS_PARAMETER_OCTETSET
: TpOctetSet OctetValue
;
73 typedef TpInt32 TpUnitID
;
82 typedef sequence
<TpVolume
> TpVolumeSet
;
85 struct TpChargingSessionID
{
86 IpChargingSession ChargingSessionReference
;
87 TpSessionID ChargingSessionID
;
88 TpInt32 RequestNumberFirstRequest
;
92 struct TpPriceVolume
{
93 TpChargingPrice Price
;
98 typedef sequence
<TpPriceVolume
> TpPriceVolumeSet
;
101 enum TpChargingError
{
112 P_CHS_ERR_RESERVATION_LIMIT
,
113 P_CHS_ERR_CONFIRMATION_REQUIRED
117 enum TpSessionEndedCause
{
119 P_CHS_CAUSE_UNDEFINED
,
120 P_CHS_CAUSE_TIMER_EXPIRED
124 enum TpAppInformationType
{
130 union TpAppInformation
switch(TpAppInformationType
) {
131 case P_APP_INF_TIMESTAMP
: TpDateAndTime Timestamp
;
135 typedef sequence
<TpAppInformation
> TpAppInformationSet
;
138 struct TpApplicationDescription
{
140 TpAppInformationSet AppInformation
;
144 struct TpChargingParameter
{
145 TpChargingParameterID ParameterID
;
146 TpChargingParameterValue ParameterValue
;
150 typedef sequence
<TpChargingParameter
> TpChargingParameterSet
;
153 const TpChargingParameterID P_CHS_PARAM_UNDEFINED
= 0;
155 const TpChargingParameterID P_CHS_PARAM_ITEM
= 1;
157 const TpChargingParameterID P_CHS_PARAM_SUBTYPE
= 2;
159 const TpCorrelationType P_CHS_CORRELATION_UNDEFINED
= 0;
161 const TpCorrelationType P_CHS_CORRELATION_VOICE
= 1;
163 const TpCorrelationType P_CHS_CORRELATION_DATA
= 2;
165 const TpCorrelationType P_CHS_CORRELATION_MM
= 3;
167 const TpUnitID P_CHS_UNIT_UNDEFINED
= 0;
169 const TpUnitID P_CHS_UNIT_NUMBER
= 1;
171 const TpUnitID P_CHS_UNIT_OCTETS
= 2;
173 const TpUnitID P_CHS_UNIT_SECONDS
= 3;
175 const TpUnitID P_CHS_UNIT_MINUTES
= 4;
177 const TpUnitID P_CHS_UNIT_HOURS
= 5;
179 const TpUnitID P_CHS_UNIT_DAYS
= 6;
181 exception P_INVALID_USER
{
182 TpString ExtraInformation
;
186 exception P_INVALID_ACCOUNT
{
187 TpString ExtraInformation
;
191 exception P_INVALID_REQUEST_NUMBER
{
192 TpString ExtraInformation
;
196 exception P_INVALID_VOLUME
{
197 TpString ExtraInformation
;
201 const TpChargingParameterID P_CHS_PARAM_CONFIRMATION_ID
= 3;
203 const TpChargingParameterID P_CHS_PARAM_CONTRACT
= 4;
208 interface IpAppChargingSession
: IpInterface
{
209 void creditAmountErr
(
210 in TpSessionID sessionID
,
211 in TpInt32 requestNumber
,
212 in TpChargingError error
,
213 in TpInt32 requestNumberNextRequest
216 void creditAmountRes
(
217 in TpSessionID sessionID
,
218 in TpInt32 requestNumber
,
219 in TpChargingPrice creditedAmount
,
220 in TpChargingPrice reservedAmountLeft
,
221 in TpInt32 requestNumberNextRequest
225 in TpSessionID sessionID
,
226 in TpInt32 requestNumber
,
227 in TpChargingError error
,
228 in TpInt32 requestNumberNextRequest
232 in TpSessionID sessionID
,
233 in TpInt32 requestNumber
,
234 in TpVolumeSet creditedVolumes
,
235 in TpVolumeSet reservedUnitsLeft
,
236 in TpInt32 requestNumberNextRequest
239 void debitAmountErr
(
240 in TpSessionID sessionID
,
241 in TpInt32 requestNumber
,
242 in TpChargingError error
,
243 in TpInt32 requestNumberNextRequest
246 void debitAmountRes
(
247 in TpSessionID sessionID
,
248 in TpInt32 requestNumber
,
249 in TpChargingPrice debitedAmount
,
250 in TpChargingPrice reservedAmountLeft
,
251 in TpInt32 requestNumberNextRequest
255 in TpSessionID sessionID
,
256 in TpInt32 requestNumber
,
257 in TpChargingError error
,
258 in TpInt32 requestNumberNextRequest
262 in TpSessionID sessionID
,
263 in TpInt32 requestNumber
,
264 in TpVolumeSet debitedVolumes
,
265 in TpVolumeSet reservedUnitsLeft
,
266 in TpInt32 requestNumberNextRequest
269 void directCreditAmountErr
(
270 in TpSessionID sessionID
,
271 in TpInt32 requestNumber
,
272 in TpChargingError error
,
273 in TpInt32 requestNumberNextRequest
276 void directCreditAmountRes
(
277 in TpSessionID sessionID
,
278 in TpInt32 requestNumber
,
279 in TpChargingPrice creditedAmount
,
280 in TpInt32 requestNumberNextRequest
283 void directCreditUnitErr
(
284 in TpSessionID sessionID
,
285 in TpInt32 requestNumber
,
286 in TpChargingError error
,
287 in TpInt32 requestNumberNextRequest
290 void directCreditUnitRes
(
291 in TpSessionID sessionID
,
292 in TpInt32 requestNumber
,
293 in TpVolumeSet creditedVolumes
,
294 in TpInt32 requestNumberNextRequest
297 void directDebitAmountErr
(
298 in TpSessionID sessionID
,
299 in TpInt32 requestNumber
,
300 in TpChargingError error
,
301 in TpInt32 requestNumberNextRequest
304 void directDebitAmountRes
(
305 in TpSessionID sessionID
,
306 in TpInt32 requestNumber
,
307 in TpChargingPrice debitedAmount
,
308 in TpInt32 requestNumberNextRequest
311 void directDebitUnitErr
(
312 in TpSessionID sessionID
,
313 in TpInt32 requestNumber
,
314 in TpChargingError error
,
315 in TpInt32 requestNumberNextRequest
318 void directDebitUnitRes
(
319 in TpSessionID sessionID
,
320 in TpInt32 requestNumber
,
321 in TpVolumeSet debitedVolumes
,
322 in TpInt32 requestNumberNextRequest
325 void extendLifeTimeErr
(
326 in TpSessionID sessionID
,
327 in TpChargingError error
330 void extendLifeTimeRes
(
331 in TpSessionID sessionID
,
332 in TpInt32 sessionTimeLeft
336 in TpSessionID sessionID
,
337 in TpChargingError error
341 in TpSessionID sessionID
,
342 in TpPriceVolumeSet rates
,
343 in TpDuration validityTimeLeft
346 void reserveAmountErr
(
347 in TpSessionID sessionID
,
348 in TpInt32 requestNumber
,
349 in TpChargingError error
,
350 in TpInt32 requestNumberNextRequest
353 void reserveAmountRes
(
354 in TpSessionID sessionID
,
355 in TpInt32 requestNumber
,
356 in TpChargingPrice reservedAmount
,
357 in TpInt32 sessionTimeLeft
,
358 in TpInt32 requestNumberNextRequest
361 void reserveUnitErr
(
362 in TpSessionID sessionID
,
363 in TpInt32 requestNumber
,
364 in TpChargingError error
,
365 in TpInt32 requestNumberNextRequest
368 void reserveUnitRes
(
369 in TpSessionID sessionID
,
370 in TpInt32 requestNumber
,
371 in TpVolumeSet reservedUnits
,
372 in TpInt32 sessionTimeLeft
,
373 in TpInt32 requestNumberNextRequest
377 in TpSessionID sessionID
,
378 in TpSessionEndedCause report
384 interface IpChargingSession
: IpService
{
385 void creditAmountReq
(
386 in TpSessionID sessionID
,
387 in TpApplicationDescription applicationDescription
,
388 in TpChargingPrice amount
,
389 in TpBoolean closeReservation
,
390 in TpInt32 requestNumber
392 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_AMOUNT
,P_INVALID_CURRENCY
,P_INVALID_REQUEST_NUMBER
);
395 in TpSessionID sessionID
,
396 in TpApplicationDescription applicationDescription
,
397 in TpVolumeSet volumes
,
398 in TpBoolean closeReservation
,
399 in TpInt32 requestNumber
401 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_VOLUME
,P_INVALID_REQUEST_NUMBER
);
403 void debitAmountReq
(
404 in TpSessionID sessionID
,
405 in TpApplicationDescription applicationDescription
,
406 in TpChargingPrice amount
,
407 in TpBoolean closeReservation
,
408 in TpInt32 requestNumber
410 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_AMOUNT
,P_INVALID_CURRENCY
,P_INVALID_REQUEST_NUMBER
);
413 in TpSessionID sessionID
,
414 in TpApplicationDescription applicationDescription
,
415 in TpVolumeSet volumes
,
416 in TpBoolean closeReservation
,
417 in TpInt32 requestNumber
419 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_VOLUME
,P_INVALID_REQUEST_NUMBER
);
421 void directCreditAmountReq
(
422 in TpSessionID sessionID
,
423 in TpApplicationDescription applicationDescription
,
424 in TpChargingParameterSet chargingParameters
,
425 in TpChargingPrice amount
,
426 in TpInt32 requestNumber
428 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_AMOUNT
,P_INVALID_CURRENCY
,P_INVALID_REQUEST_NUMBER
);
430 void directCreditUnitReq
(
431 in TpSessionID sessionID
,
432 in TpApplicationDescription applicationDescription
,
433 in TpChargingParameterSet chargingParameters
,
434 in TpVolumeSet volumes
,
435 in TpInt32 requestNumber
437 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_VOLUME
,P_INVALID_REQUEST_NUMBER
);
439 void directDebitAmountReq
(
440 in TpSessionID sessionID
,
441 in TpApplicationDescription applicationDescription
,
442 in TpChargingParameterSet chargingParameters
,
443 in TpChargingPrice amount
,
444 in TpInt32 requestNumber
446 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_AMOUNT
,P_INVALID_CURRENCY
,P_INVALID_REQUEST_NUMBER
);
448 void directDebitUnitReq
(
449 in TpSessionID sessionID
,
450 in TpApplicationDescription applicationDescription
,
451 in TpChargingParameterSet chargingParameters
,
452 in TpVolumeSet volumes
,
453 in TpInt32 requestNumber
455 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_VOLUME
,P_INVALID_REQUEST_NUMBER
);
457 void extendLifeTimeReq
(
458 in TpSessionID sessionID
460 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
);
462 TpChargingPrice getAmountLeft
(
463 in TpSessionID sessionID
465 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
);
467 TpInt32 getLifeTimeLeft
(
468 in TpSessionID sessionID
470 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
);
472 TpVolumeSet getUnitLeft
(
473 in TpSessionID sessionID
475 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
);
478 in TpSessionID sessionID
,
479 in TpChargingParameterSet chargingParameters
481 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
);
484 in TpSessionID sessionID
,
485 in TpInt32 requestNumber
487 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_REQUEST_NUMBER
);
489 void reserveAmountReq
(
490 in TpSessionID sessionID
,
491 in TpApplicationDescription applicationDescription
,
492 in TpChargingParameterSet chargingParameters
,
493 in TpChargingPrice preferredAmount
,
494 in TpChargingPrice minimumAmount
,
495 in TpInt32 requestNumber
497 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_AMOUNT
,P_INVALID_CURRENCY
,P_INVALID_REQUEST_NUMBER
);
499 void reserveUnitReq
(
500 in TpSessionID sessionID
,
501 in TpApplicationDescription applicationDescription
,
502 in TpChargingParameterSet chargingParameters
,
503 in TpVolumeSet volumes
,
504 in TpInt32 requestNumber
506 raises
(TpCommonExceptions
,P_INVALID_SESSION_ID
,P_INVALID_VOLUME
,P_INVALID_REQUEST_NUMBER
);
511 interface IpAppChargingManager
: IpInterface
{
512 void sessionAborted
(
513 in TpSessionID sessionID
516 void abortMultipleChargingSessions
(
517 in TpSessionIDSet chargingSessionSet
523 interface IpChargingManager
: IpService
{
524 TpChargingSessionID createChargingSession
(
525 in IpAppChargingSession appChargingSession
,
526 in TpString sessionDescription
,
527 in TpMerchantAccountID merchantAccount
,
529 in TpCorrelationID correlationID
531 raises
(TpCommonExceptions
,P_INVALID_USER
,P_INVALID_ACCOUNT
);
533 TpChargingSessionID createSplitChargingSession
(
534 in IpAppChargingSession appChargingSession
,
535 in TpString sessionDescription
,
536 in TpMerchantAccountID merchantAccount
,
537 in TpAddressSet users
,
538 in TpCorrelationID correlationID
540 raises
(TpCommonExceptions
,P_INVALID_USER
,P_INVALID_ACCOUNT
);