551 lines
14 KiB
Plaintext
551 lines
14 KiB
Plaintext
//Source file: cs.idl
|
|
//Date: 12 October 2004
|
|
//Charging Interfaces and Data Types for ETSI ES 203 915-12 v.1.1.1, DES/TISPAN-01005-12-OSA, Parlay 5.0
|
|
|
|
|
|
#ifndef __CS_DEFINED
|
|
#define __CS_DEFINED
|
|
|
|
|
|
#include "osa.idl"
|
|
|
|
module org {
|
|
|
|
module csapi {
|
|
|
|
|
|
module cs {
|
|
|
|
interface IpChargingSession;
|
|
|
|
|
|
|
|
|
|
struct TpMerchantAccountID {
|
|
TpString MerchantID;
|
|
TpInt32 AccountID;
|
|
};
|
|
|
|
|
|
typedef TpInt32 TpCorrelationType;
|
|
|
|
|
|
struct TpCorrelationID {
|
|
TpSessionID CorrelationID;
|
|
TpCorrelationType CorrelationType;
|
|
};
|
|
|
|
|
|
struct TpAmount {
|
|
TpInt32 Number;
|
|
TpInt32 Exponent;
|
|
};
|
|
|
|
|
|
struct TpChargingPrice {
|
|
TpString Currency;
|
|
TpAmount Amount;
|
|
};
|
|
|
|
|
|
typedef TpInt32 TpChargingParameterID;
|
|
|
|
|
|
enum TpChargingParameterValueType {
|
|
|
|
P_CHS_PARAMETER_INT32,
|
|
P_CHS_PARAMETER_FLOAT,
|
|
P_CHS_PARAMETER_STRING,
|
|
P_CHS_PARAMETER_BOOLEAN,
|
|
P_CHS_PARAMETER_OCTETSET
|
|
};
|
|
|
|
|
|
union TpChargingParameterValue switch(TpChargingParameterValueType) {
|
|
case P_CHS_PARAMETER_INT32: TpInt32 IntValue;
|
|
case P_CHS_PARAMETER_FLOAT: TpFloat FloatValue;
|
|
case P_CHS_PARAMETER_STRING: TpString StringValue;
|
|
case P_CHS_PARAMETER_BOOLEAN: TpBoolean BooleanValue;
|
|
case P_CHS_PARAMETER_OCTETSET: TpOctetSet OctetValue;
|
|
};
|
|
|
|
|
|
typedef TpInt32 TpUnitID;
|
|
|
|
|
|
struct TpVolume {
|
|
TpAmount Amount;
|
|
TpUnitID Unit;
|
|
};
|
|
|
|
|
|
typedef sequence <TpVolume> TpVolumeSet;
|
|
|
|
|
|
struct TpChargingSessionID {
|
|
IpChargingSession ChargingSessionReference;
|
|
TpSessionID ChargingSessionID;
|
|
TpInt32 RequestNumberFirstRequest;
|
|
};
|
|
|
|
|
|
struct TpPriceVolume {
|
|
TpChargingPrice Price;
|
|
TpVolume Volume;
|
|
};
|
|
|
|
|
|
typedef sequence <TpPriceVolume> TpPriceVolumeSet;
|
|
|
|
|
|
enum TpChargingError {
|
|
|
|
P_CHS_ERR_UNDEFINED,
|
|
P_CHS_ERR_ACCOUNT,
|
|
P_CHS_ERR_USER,
|
|
P_CHS_ERR_PARAMETER,
|
|
P_CHS_ERR_NO_DEBIT,
|
|
P_CHS_ERR_NO_CREDIT,
|
|
P_CHS_ERR_VOLUMES,
|
|
P_CHS_ERR_CURRENCY,
|
|
P_CHS_ERR_NO_EXTEND,
|
|
P_CHS_ERR_RESERVATION_LIMIT,
|
|
P_CHS_ERR_CONFIRMATION_REQUIRED
|
|
};
|
|
|
|
|
|
enum TpSessionEndedCause {
|
|
|
|
P_CHS_CAUSE_UNDEFINED,
|
|
P_CHS_CAUSE_TIMER_EXPIRED
|
|
};
|
|
|
|
|
|
enum TpAppInformationType {
|
|
|
|
P_APP_INF_TIMESTAMP
|
|
};
|
|
|
|
|
|
union TpAppInformation switch(TpAppInformationType) {
|
|
case P_APP_INF_TIMESTAMP: TpDateAndTime Timestamp;
|
|
};
|
|
|
|
|
|
typedef sequence <TpAppInformation> TpAppInformationSet;
|
|
|
|
|
|
struct TpApplicationDescription {
|
|
TpString Text;
|
|
TpAppInformationSet AppInformation;
|
|
};
|
|
|
|
|
|
struct TpChargingParameter {
|
|
TpChargingParameterID ParameterID;
|
|
TpChargingParameterValue ParameterValue;
|
|
};
|
|
|
|
|
|
typedef sequence <TpChargingParameter> TpChargingParameterSet;
|
|
|
|
|
|
const TpChargingParameterID P_CHS_PARAM_UNDEFINED = 0;
|
|
|
|
const TpChargingParameterID P_CHS_PARAM_ITEM = 1;
|
|
|
|
const TpChargingParameterID P_CHS_PARAM_SUBTYPE = 2;
|
|
|
|
const TpCorrelationType P_CHS_CORRELATION_UNDEFINED = 0;
|
|
|
|
const TpCorrelationType P_CHS_CORRELATION_VOICE = 1;
|
|
|
|
const TpCorrelationType P_CHS_CORRELATION_DATA = 2;
|
|
|
|
const TpCorrelationType P_CHS_CORRELATION_MM = 3;
|
|
|
|
const TpUnitID P_CHS_UNIT_UNDEFINED = 0;
|
|
|
|
const TpUnitID P_CHS_UNIT_NUMBER = 1;
|
|
|
|
const TpUnitID P_CHS_UNIT_OCTETS = 2;
|
|
|
|
const TpUnitID P_CHS_UNIT_SECONDS = 3;
|
|
|
|
const TpUnitID P_CHS_UNIT_MINUTES = 4;
|
|
|
|
const TpUnitID P_CHS_UNIT_HOURS = 5;
|
|
|
|
const TpUnitID P_CHS_UNIT_DAYS = 6;
|
|
|
|
exception P_INVALID_USER {
|
|
TpString ExtraInformation;
|
|
};
|
|
|
|
|
|
exception P_INVALID_ACCOUNT {
|
|
TpString ExtraInformation;
|
|
};
|
|
|
|
|
|
exception P_INVALID_REQUEST_NUMBER {
|
|
TpString ExtraInformation;
|
|
};
|
|
|
|
|
|
exception P_INVALID_VOLUME {
|
|
TpString ExtraInformation;
|
|
};
|
|
|
|
|
|
const TpChargingParameterID P_CHS_PARAM_CONFIRMATION_ID = 3;
|
|
|
|
const TpChargingParameterID P_CHS_PARAM_CONTRACT = 4;
|
|
|
|
|
|
|
|
|
|
interface IpAppChargingSession : IpInterface {
|
|
void creditAmountErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void creditAmountRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingPrice creditedAmount,
|
|
in TpChargingPrice reservedAmountLeft,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void creditUnitErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void creditUnitRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpVolumeSet creditedVolumes,
|
|
in TpVolumeSet reservedUnitsLeft,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void debitAmountErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void debitAmountRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingPrice debitedAmount,
|
|
in TpChargingPrice reservedAmountLeft,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void debitUnitErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void debitUnitRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpVolumeSet debitedVolumes,
|
|
in TpVolumeSet reservedUnitsLeft,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directCreditAmountErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directCreditAmountRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingPrice creditedAmount,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directCreditUnitErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directCreditUnitRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpVolumeSet creditedVolumes,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directDebitAmountErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directDebitAmountRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingPrice debitedAmount,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directDebitUnitErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void directDebitUnitRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpVolumeSet debitedVolumes,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void extendLifeTimeErr (
|
|
in TpSessionID sessionID,
|
|
in TpChargingError error
|
|
);
|
|
|
|
void extendLifeTimeRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 sessionTimeLeft
|
|
);
|
|
|
|
void rateErr (
|
|
in TpSessionID sessionID,
|
|
in TpChargingError error
|
|
);
|
|
|
|
void rateRes (
|
|
in TpSessionID sessionID,
|
|
in TpPriceVolumeSet rates,
|
|
in TpDuration validityTimeLeft
|
|
);
|
|
|
|
void reserveAmountErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void reserveAmountRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingPrice reservedAmount,
|
|
in TpInt32 sessionTimeLeft,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void reserveUnitErr (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpChargingError error,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void reserveUnitRes (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber,
|
|
in TpVolumeSet reservedUnits,
|
|
in TpInt32 sessionTimeLeft,
|
|
in TpInt32 requestNumberNextRequest
|
|
);
|
|
|
|
void sessionEnded (
|
|
in TpSessionID sessionID,
|
|
in TpSessionEndedCause report
|
|
);
|
|
|
|
};
|
|
|
|
|
|
interface IpChargingSession : IpService {
|
|
void creditAmountReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingPrice amount,
|
|
in TpBoolean closeReservation,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void creditUnitReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpVolumeSet volumes,
|
|
in TpBoolean closeReservation,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void debitAmountReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingPrice amount,
|
|
in TpBoolean closeReservation,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void debitUnitReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpVolumeSet volumes,
|
|
in TpBoolean closeReservation,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void directCreditAmountReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingParameterSet chargingParameters,
|
|
in TpChargingPrice amount,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void directCreditUnitReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingParameterSet chargingParameters,
|
|
in TpVolumeSet volumes,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void directDebitAmountReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingParameterSet chargingParameters,
|
|
in TpChargingPrice amount,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void directDebitUnitReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingParameterSet chargingParameters,
|
|
in TpVolumeSet volumes,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void extendLifeTimeReq (
|
|
in TpSessionID sessionID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
TpChargingPrice getAmountLeft (
|
|
in TpSessionID sessionID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
TpInt32 getLifeTimeLeft (
|
|
in TpSessionID sessionID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
TpVolumeSet getUnitLeft (
|
|
in TpSessionID sessionID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
void rateReq (
|
|
in TpSessionID sessionID,
|
|
in TpChargingParameterSet chargingParameters
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID);
|
|
|
|
void release (
|
|
in TpSessionID sessionID,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void reserveAmountReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingParameterSet chargingParameters,
|
|
in TpChargingPrice preferredAmount,
|
|
in TpChargingPrice minimumAmount,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_AMOUNT,P_INVALID_CURRENCY,P_INVALID_REQUEST_NUMBER);
|
|
|
|
void reserveUnitReq (
|
|
in TpSessionID sessionID,
|
|
in TpApplicationDescription applicationDescription,
|
|
in TpChargingParameterSet chargingParameters,
|
|
in TpVolumeSet volumes,
|
|
in TpInt32 requestNumber
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_SESSION_ID,P_INVALID_VOLUME,P_INVALID_REQUEST_NUMBER);
|
|
|
|
};
|
|
|
|
|
|
interface IpAppChargingManager : IpInterface {
|
|
void sessionAborted (
|
|
in TpSessionID sessionID
|
|
);
|
|
|
|
void abortMultipleChargingSessions (
|
|
in TpSessionIDSet chargingSessionSet
|
|
);
|
|
|
|
};
|
|
|
|
|
|
interface IpChargingManager : IpService {
|
|
TpChargingSessionID createChargingSession (
|
|
in IpAppChargingSession appChargingSession,
|
|
in TpString sessionDescription,
|
|
in TpMerchantAccountID merchantAccount,
|
|
in TpAddress user,
|
|
in TpCorrelationID correlationID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_USER,P_INVALID_ACCOUNT);
|
|
|
|
TpChargingSessionID createSplitChargingSession (
|
|
in IpAppChargingSession appChargingSession,
|
|
in TpString sessionDescription,
|
|
in TpMerchantAccountID merchantAccount,
|
|
in TpAddressSet users,
|
|
in TpCorrelationID correlationID
|
|
)
|
|
raises (TpCommonExceptions,P_INVALID_USER,P_INVALID_ACCOUNT);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|