447 lines
15 KiB
Text
447 lines
15 KiB
Text
![]() |
-- ETSI ES 201 296 V1.3.1 (2003-04)
|
|||
|
-- $Id$
|
|||
|
Tariffing-Data-Types {itu-t(0) identified-organization(4) etsi (0) 1296 version3(4)}
|
|||
|
|
|||
|
DEFINITIONS IMPLICIT TAGS ::= BEGIN
|
|||
|
|
|||
|
-- This module contains the common data type definitions for the charging information used in the
|
|||
|
-- new ISUP APM application "Charging ASE" and in the INAP charging operations.
|
|||
|
--
|
|||
|
--
|
|||
|
|
|||
|
EXPORTS
|
|||
|
|
|||
|
-- Charging Common Data Types
|
|||
|
ChargingAcknowledgementInformation ,
|
|||
|
AddOnChargingInformation ,
|
|||
|
ChargingTariffInformation ,
|
|||
|
StartCharging ,
|
|||
|
StopCharging ,
|
|||
|
ChargingMessageType
|
|||
|
|
|||
|
;
|
|||
|
|
|||
|
-- ChargingMessageType Type
|
|||
|
|
|||
|
ChargingMessageType ::= CHOICE {
|
|||
|
crgt [0] ChargingTariffInformation,
|
|||
|
aocrg [1] AddOnChargingInformation ,
|
|||
|
crga [2] ChargingAcknowledgementInformation ,
|
|||
|
start [3] StartCharging ,
|
|||
|
stop [4] StopCharging }
|
|||
|
|
|||
|
-- ChargeUnitTimeInterval Type
|
|||
|
|
|||
|
ChargeUnitTimeInterval ::= OCTET STRING (SIZE(2))
|
|||
|
|
|||
|
-- The ChargeUnitTimeInterval is binary coded and has the value range from 0 to 35997. It begins with 200 milliseconds and
|
|||
|
-- then in steps of 50 milliseconds.
|
|||
|
-- the LSBit is the least significant bit of the first octet
|
|||
|
-- the MSBit is the most significant bit of the last octet
|
|||
|
-- the coding of the ChargeUnitTimeInterval is the following:
|
|||
|
-- 0 : no periodic metering
|
|||
|
-- 1 : 200 msec
|
|||
|
-- 2 : 250 msec
|
|||
|
-- ..
|
|||
|
-- 35997 : 30 minutes
|
|||
|
-- All other values are spare.
|
|||
|
|
|||
|
-- ChargingAcknowledgementInformation Type
|
|||
|
|
|||
|
ChargingAcknowledgementInformation ::= SEQUENCE {
|
|||
|
acknowledgementIndicators [0] BIT STRING {
|
|||
|
accepted (0) }
|
|||
|
(SIZE(minAcknowledgementIndicatorsLen..maxAcknowledgementIndicatorsLen)), extensions [1]
|
|||
|
SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
|
|||
|
originationIdentification [2] ChargingReferenceIdentification,
|
|||
|
destinationIdentification [3] ChargingReferenceIdentification
|
|||
|
}
|
|||
|
|
|||
|
-- Coding of "accepted":
|
|||
|
-- 0: not accepted.
|
|||
|
-- 1: accepted.
|
|||
|
-- The "extensions" is a SEQUENCE for possible extensions.
|
|||
|
|
|||
|
-- ChargingControlIndicators Type
|
|||
|
|
|||
|
ChargingControlIndicators ::= BIT STRING {
|
|||
|
subscriberCharge (0),
|
|||
|
immediateChangeOfActuallyAppliedTariff (1),
|
|||
|
delayUntilStart (2) }
|
|||
|
(SIZE(minChargingControlIndicatorsLen..maxChargingControlIndicatorsLen))
|
|||
|
|
|||
|
-- Coding of "subscriberCharge":
|
|||
|
-- 0 - advice-of-charge: charging information only to be used by the advice of charge service.
|
|||
|
-- 1 - subscriber-charge: charging information to be used by the subscriber charging program.
|
|||
|
-- Coding of "immediateChangeOfActuallyAppliedTariff":
|
|||
|
-- 0 - immediate tariff change without restart
|
|||
|
-- 1 - immediate tariff change with restart
|
|||
|
-- It is only used to change the actually applied tariff.
|
|||
|
-- Coding of 'delayUntilStart':
|
|||
|
-- 0 - start tariffing, if it is not already started, without waiting for the 'start' signal
|
|||
|
-- 1 <20> delay start of tariffing up to the receipt of the 'start' signal
|
|||
|
|
|||
|
-- AddOnChargingInformation Type
|
|||
|
|
|||
|
AddOnChargingInformation ::= SEQUENCE {
|
|||
|
chargingControlIndicators [0] ChargingControlIndicators ,
|
|||
|
addOncharge [1] CHOICE {
|
|||
|
addOnChargeCurrency [0] CurrencyFactorScale ,
|
|||
|
addOnChargePulse [1] PulseUnits
|
|||
|
},
|
|||
|
extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
|
|||
|
originationIdentification [3] ChargingReferenceIdentification,
|
|||
|
destinationIdentification [4] ChargingReferenceIdentification OPTIONAL,
|
|||
|
currency [5] Currency
|
|||
|
}
|
|||
|
|
|||
|
-- This message is used to add an amount of charge for the call and does not alter the current tariff.
|
|||
|
-- The destinationIdentification is not available in an initial AddOnChargingInformation, in all subsequent ones it is included, see
|
|||
|
-- "Handling of Identifiers".
|
|||
|
-- In the message the
|
|||
|
-- add-on charge has either the pulse or currency format.
|
|||
|
-- ChargingTariffInformation Type
|
|||
|
|
|||
|
ChargingTariffInformation ::= SEQUENCE {
|
|||
|
chargingControlIndicators [0] ChargingControlIndicators,
|
|||
|
chargingTariff [1] CHOICE {
|
|||
|
tariffCurrency [0] TariffCurrency,
|
|||
|
tariffPulse [1] TariffPulse
|
|||
|
},
|
|||
|
extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
|
|||
|
originationIdentification [3] ChargingReferenceIdentification,
|
|||
|
destinationIdentification [4] ChargingReferenceIdentification OPTIONAL,
|
|||
|
currency [5] Currency
|
|||
|
}
|
|||
|
|
|||
|
--This message is used
|
|||
|
-- to transfer explicit tariff data to the originating subscriber exchange and the charge registration exchange during call
|
|||
|
-- set-up and also in the active phase of a call.
|
|||
|
-- The destinationIdentification is not available in an initial ChargingTariffInformation, in all subsequent ones it is included, see
|
|||
|
-- "Handling of Identifiers".
|
|||
|
Code ::= CHOICE
|
|||
|
{
|
|||
|
local INTEGER,
|
|||
|
global OBJECT IDENTIFIER
|
|||
|
}
|
|||
|
|
|||
|
-- CommunicationChargeCurrency Type
|
|||
|
|
|||
|
CommunicationChargeCurrency ::= SEQUENCE {
|
|||
|
currencyFactorScale [0] CurrencyFactorScale ,
|
|||
|
tariffDuration [1] TariffDuration ,
|
|||
|
subTariffControl [2] SubTariffControl }
|
|||
|
|
|||
|
-- CommunicationChargePulse Type
|
|||
|
|
|||
|
CommunicationChargePulse ::= SEQUENCE {
|
|||
|
pulseUnits [0] PulseUnits ,
|
|||
|
chargeUnitTimeInterval [1] ChargeUnitTimeInterval ,
|
|||
|
tariffDuration [2] TariffDuration }
|
|||
|
|
|||
|
-- Criticality Type
|
|||
|
CriticalityType ::= ENUMERATED {
|
|||
|
ignore(0),
|
|||
|
abort(1) }
|
|||
|
|
|||
|
-- Currency Type
|
|||
|
Currency ::= ENUMERATED {
|
|||
|
noIndication (0),
|
|||
|
australianDollar (1),
|
|||
|
austrianSchilling (2),
|
|||
|
belgianFranc (3),
|
|||
|
britishPound (4),
|
|||
|
czechKoruna (5),
|
|||
|
danishKrone (6),
|
|||
|
dutchGuilder (7),
|
|||
|
euro (8),
|
|||
|
finnishMarkka (9),
|
|||
|
frenchFranc (10),
|
|||
|
germanMark (11),
|
|||
|
greekDrachma (12),
|
|||
|
hungarianForint (13),
|
|||
|
irishPunt (14),
|
|||
|
italianLira (15),
|
|||
|
japaneseYen (16),
|
|||
|
luxembourgian-Franc (17),
|
|||
|
norwegianKrone (18),
|
|||
|
polishZloty (19),
|
|||
|
portugeseEscudo (20),
|
|||
|
russianRouble (21),
|
|||
|
slovakKoruna (22),
|
|||
|
spanishPeseta (23),
|
|||
|
swedishKrone (24),
|
|||
|
swissFranc (25),
|
|||
|
turkishLira (26),
|
|||
|
uSDollar (27),
|
|||
|
...}
|
|||
|
|
|||
|
-- CurrencyFactor Type
|
|||
|
|
|||
|
CurrencyFactor ::= INTEGER (0..999999)
|
|||
|
|
|||
|
-- Value 0 indicates "no charge".
|
|||
|
-- CurrencyFactorScale Type
|
|||
|
|
|||
|
CurrencyFactorScale ::= SEQUENCE {
|
|||
|
currencyFactor [0] CurrencyFactor DEFAULT noCharge ,
|
|||
|
currencyScale [1] CurrencyScale DEFAULT noScale }
|
|||
|
|
|||
|
-- The charge amount is indicated by the currency factor multiplied with the currency scale.
|
|||
|
-- "no charge" indicates CurrencyFactorScale has the value 0.
|
|||
|
-- CurrencyScale Type
|
|||
|
|
|||
|
CurrencyScale ::= INTEGER (-7..3)
|
|||
|
|
|||
|
-- The actual value for currency scale is given by 10x, where x is the value of the CurrencyScale.
|
|||
|
--
|
|||
|
-- the coding of CurrencyScale is as follows, all other values are spare:
|
|||
|
-- -7 (249): 0,0000001
|
|||
|
-- -6 (250): 0,000001
|
|||
|
-- -5 (251): 0,00001
|
|||
|
-- -4 (252): 0,0001
|
|||
|
-- -3 (253): 0,001
|
|||
|
-- -2 (254): 0,01
|
|||
|
-- -1 (255): 0,1
|
|||
|
-- 0 : 1
|
|||
|
-- 1 : 10
|
|||
|
-- 2 : 100
|
|||
|
-- 3 : 1000
|
|||
|
|
|||
|
-- Definition of the extension class
|
|||
|
|
|||
|
EXTENSION ::= CLASS {
|
|||
|
&ExtensionType,
|
|||
|
&criticality CriticalityType DEFAULT ignore,
|
|||
|
&id Code
|
|||
|
}
|
|||
|
WITH SYNTAX {
|
|||
|
EXTENSION-SYNTAX &ExtensionType
|
|||
|
CRITICALITY &criticality
|
|||
|
IDENTIFIED BY &id
|
|||
|
}
|
|||
|
-- Example of addition of an extension named 'Some Network Specific Indicator' of type
|
|||
|
-- BOOLEAN, with criticality 'abort' and to be identified as extension number 1
|
|||
|
-- Example of definition using the above information object class:
|
|||
|
--
|
|||
|
-- SomeNetworkSpecificIndicator EXTENSION ::= {
|
|||
|
-- EXTENSION-SYNTAX BOOLEAN
|
|||
|
-- CRITICALITY abort
|
|||
|
-- IDENTIFIED BY local : 1
|
|||
|
-- }
|
|||
|
-- Example of transfer syntax, using the ExtensionField datatype as specified in section 4.1.
|
|||
|
-- Assuming the value of the extension is set to TRUE, the extensions parameter
|
|||
|
-- becomes a Sequence of type INTEGER ::= 1, criticality ENUMERATED ::= 1 and value [1]
|
|||
|
-- EXPLICIT BOOLEAN ::= TRUE.
|
|||
|
--
|
|||
|
-- Use of Q.1400 defined Extension is ffs
|
|||
|
-- In addition the extension mechanism marker is used to identify the future minor additions to INAP.
|
|||
|
firstExtension EXTENSION ::= {
|
|||
|
EXTENSION-SYNTAX NULL
|
|||
|
CRITICALITY ignore
|
|||
|
IDENTIFIED BY local:1
|
|||
|
}
|
|||
|
|
|||
|
-- firstExtension is just an example.
|
|||
|
|
|||
|
SupportedExtensions EXTENSION ::= {firstExtension , ...
|
|||
|
-- full set of network operator extensions --}
|
|||
|
-- SupportedExtension is the full set of the network operator extensions.
|
|||
|
-- ExtensionField Type
|
|||
|
|
|||
|
ExtensionField ::= SEQUENCE {
|
|||
|
type EXTENSION.&id ({SupportedExtensions}),
|
|||
|
-- shall identify the value of an EXTENSION type
|
|||
|
criticality CriticalityType DEFAULT ignore,
|
|||
|
value [1] EXTENSION.&ExtensionType
|
|||
|
({SupportedExtensions}{@type})
|
|||
|
}
|
|||
|
-- This parameter indicates an extension of an argument data type. Its contents is network operator specific.
|
|||
|
-- PulseUnits Type
|
|||
|
|
|||
|
PulseUnits ::= OCTET STRING (SIZE(1))
|
|||
|
-- the PulseUnits is binary coded and has the value range from 0 to 255
|
|||
|
-- StartCharging Type
|
|||
|
StartCharging ::= SEQUENCE {
|
|||
|
networkOperators [0] SEQUENCE SIZE (1..maxNetworkOperators) OF NetworkIdentification OPTIONAL,
|
|||
|
extensions [1] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
|
|||
|
originationIdentification [2] ChargingReferenceIdentification
|
|||
|
}
|
|||
|
|
|||
|
--This message is used
|
|||
|
-- to start charge generation/registration for one that belongs to one network operator or
|
|||
|
-- to start charge generation/registration for more tariffs that belong to several network
|
|||
|
-- operators.
|
|||
|
-- The corresponding network operator(s) are listed within sub-parameter 'networkOperators'.
|
|||
|
-- The sub-parameter 'networkOperators' is mandatory in configurations of multiple charge
|
|||
|
-- determination points.
|
|||
|
-- If sub-parameter 'networkOperators' is not present in a configuration with only one charge
|
|||
|
-- determination point, the corresponding tariff is started.
|
|||
|
-- The 'extensions' is a SEQUENCE for possible extensions.
|
|||
|
-- StopCharging Type
|
|||
|
|
|||
|
StopCharging ::= SEQUENCE {
|
|||
|
stopIndicators [0] BIT STRING {
|
|||
|
callAttemptChargesApplicable (0) }
|
|||
|
(SIZE(minStopIndicatorsLen.. maxStopIndicatorsLen)),
|
|||
|
networkOperators [1] SEQUENCE SIZE (1..maxNetworkOperators) OF NetworkIdentification OPTIONAL,
|
|||
|
extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
|
|||
|
originationIdentification [3] ChargingReferenceIdentification
|
|||
|
}
|
|||
|
|
|||
|
--This message is used to stop charge generation/registration
|
|||
|
-- for one that belongs to one network operator or
|
|||
|
-- to stop charge generation/registration for more tariffs that belong to several network operators.
|
|||
|
-- The corresponding network operator(s) are listed within sub-parameter 'networkOperators'.
|
|||
|
-- The sub-parameter 'networkOperators' is mandatory in configurations of multiple charge
|
|||
|
-- determination points.
|
|||
|
-- If sub-parameter 'networkOperators' is not present in a configuration with only one charge
|
|||
|
-- determination point, the corresponding tariff is stopped.
|
|||
|
-- Coding of 'callAttemptChargesApplicable':
|
|||
|
-- 0 - stop tariffing, call attempt charges are not applicable
|
|||
|
-- 1 - stop tariffing, call attempt charges are applicable
|
|||
|
-- The 'extensions' is a SEQUENCE for possible extensions.
|
|||
|
|
|||
|
-- SubTariffControl Type
|
|||
|
|
|||
|
SubTariffControl ::= BIT STRING {oneTimeCharge (0)}
|
|||
|
(SIZE(minSubTariffControlLen..maxSubTariffControlLen))
|
|||
|
-- The coding of the oneTimeCharge is as follows:
|
|||
|
-- 0 <20> Periodic charge
|
|||
|
-- 1 <20> One time charge
|
|||
|
minSubTariffControlLen INTEGER ::= 1
|
|||
|
maxSubTariffControlLen INTEGER ::= 8
|
|||
|
|
|||
|
-- TariffCurrency Type
|
|||
|
|
|||
|
TariffCurrency ::= SEQUENCE {
|
|||
|
currentTariffCurrency [0] TariffCurrencyFormat OPTIONAL ,
|
|||
|
tariffSwitchCurrency [1] TariffSwitchCurrency OPTIONAL
|
|||
|
}
|
|||
|
-- TariffSwitchCurrency Type
|
|||
|
|
|||
|
TariffSwitchCurrency ::= SEQUENCE {
|
|||
|
nextTariffCurrency [0] TariffCurrencyFormat ,
|
|||
|
tariffSwitchoverTime [1] TariffSwitchoverTime
|
|||
|
}
|
|||
|
|
|||
|
-- TariffCurrencyFormat Type
|
|||
|
|
|||
|
TariffCurrencyFormat ::= SEQUENCE {
|
|||
|
communicationChargeSequenceCurrency [0] SEQUENCE
|
|||
|
SIZE(minCommunicationTariffNum..maxCommunicationTariffNum)
|
|||
|
OF CommunicationChargeCurrency OPTIONAL ,
|
|||
|
tariffControlIndicators [1] BIT STRING {
|
|||
|
non-cyclicTariff (0) }
|
|||
|
(SIZE(minTariffIndicatorsLen..maxTariffIndicatorsLen)) ,
|
|||
|
callAttemptChargeCurrency [2] CurrencyFactorScale OPTIONAL ,
|
|||
|
callSetupChargeCurrency [3] CurrencyFactorScale OPTIONAL }
|
|||
|
|
|||
|
-- The communication charge sequence currency is a direct charge in currency per time unit. Only one fixed time unit is used.
|
|||
|
-- This time unit has
|
|||
|
-- to be agreed between all cooperating networks, e.g. one second. Being fixed, the time unit is not transferred over
|
|||
|
-- ISUP/INAP.
|
|||
|
-- The call attempt charge is a direct charge, to be charged only for unsuccessful calls.
|
|||
|
-- The call set-up charge is a direct charge, to be charged once at start of charging.
|
|||
|
--
|
|||
|
-- The coding of the non-cyclicTariff is as follows:
|
|||
|
-- 0 - Cyclic tariff ( at expiration of the tariff duration of the last communication tariff of the communication charge sequence,
|
|||
|
-- the communication charge sequence is re-applied.
|
|||
|
-- 1 - Non-cyclic tariff ( at expiration of the tariff duration of the last communication tariff of the communication charge
|
|||
|
-- sequence, do not re-apply the communication charge sequence)
|
|||
|
|
|||
|
-- TariffDuration Type
|
|||
|
|
|||
|
TariffDuration ::= INTEGER (0..36000)
|
|||
|
|
|||
|
-- TariffDuration identifies with 0 unlimited duration and else in seconds unit.
|
|||
|
-- 0 = unlimited
|
|||
|
-- 1 = 1 second
|
|||
|
-- 2 = 2 seconds
|
|||
|
-- ...
|
|||
|
-- 36000 = 10 hours
|
|||
|
--
|
|||
|
-- The duration indicates for how long time the communication charge component is valid. Expiration of the tariff duration
|
|||
|
-- timer leads to the activation of the next communication charge (if present).
|
|||
|
-- In the case where there is no next communication charge in the communication charge sequence, the action to be performed
|
|||
|
-- is indicated by the tariffControlIndicators.
|
|||
|
-- TariffPulse Type
|
|||
|
|
|||
|
TariffPulse ::= SEQUENCE {
|
|||
|
currentTariffPulse [0] TariffPulseFormat OPTIONAL ,
|
|||
|
tariffSwitchPulse [1] TariffSwitchPulse OPTIONAL }
|
|||
|
|
|||
|
-- TariffSwitchPulse Type
|
|||
|
|
|||
|
TariffSwitchPulse ::= SEQUENCE {
|
|||
|
nextTariffPulse [0] TariffPulseFormat ,
|
|||
|
tariffSwitchoverTime [1] TariffSwitchoverTime }
|
|||
|
|
|||
|
-- TariffPulseFormat Type
|
|||
|
|
|||
|
TariffPulseFormat ::= SEQUENCE {
|
|||
|
communicationChargeSequencePulse [0] SEQUENCE
|
|||
|
SIZE(minCommunicationTariffNum.. maxCommunicationTariffNum)
|
|||
|
OF CommunicationChargePulse OPTIONAL ,
|
|||
|
tariffControlIndicators [1] BIT STRING {
|
|||
|
non-cyclicTariff (0) }
|
|||
|
(SIZE(minTariffIndicatorsLen..maxTariffIndicatorsLen)) ,
|
|||
|
callAttemptChargePulse [2] PulseUnits OPTIONAL ,
|
|||
|
callSetupChargePulse [3] PulseUnits OPTIONAL }
|
|||
|
|
|||
|
-- The communication charges are meter-pulse units, which are to be applied per charge unit time interval.
|
|||
|
-- The call attempt pulse units are to be charged only for unsuccessful calls.
|
|||
|
-- The call set-up pulse units are to be charged once at start of charging.
|
|||
|
|
|||
|
-- TariffSwitchoverTime Type
|
|||
|
|
|||
|
TariffSwitchoverTime ::= OCTET STRING (SIZE(1))
|
|||
|
|
|||
|
-- This time is the absolute time at which the next tariff has to become active. It is represented in steps of 15 minutes.
|
|||
|
-- The coding is the following:
|
|||
|
-- 0 : spare
|
|||
|
-- 1 : 0 hour 15 minutes
|
|||
|
-- 2 : 0 hour 30 minutes
|
|||
|
-- 3 : 0 hour 45 minutes
|
|||
|
-- 4 : 1 hour 0 minutes
|
|||
|
-- ..
|
|||
|
-- 96 : 24 hours 0 minutes
|
|||
|
-- 97-255 : spare
|
|||
|
|
|||
|
minAcknowledgementIndicatorsLen INTEGER ::= 1
|
|||
|
maxAcknowledgementIndicatorsLen INTEGER ::= 8
|
|||
|
minChargingControlIndicatorsLen INTEGER ::= 1
|
|||
|
maxChargingControlIndicatorsLen INTEGER ::= 8
|
|||
|
maxNetworkOperators INTEGER ::= 6
|
|||
|
minStopIndicatorsLen INTEGER ::= 1
|
|||
|
maxStopIndicatorsLen INTEGER ::= 8
|
|||
|
minTariffIndicatorsLen INTEGER ::= 1
|
|||
|
maxTariffIndicatorsLen INTEGER ::= 8
|
|||
|
minCommunicationTariffNum INTEGER ::= 1
|
|||
|
maxCommunicationTariffNum INTEGER ::= 4
|
|||
|
noCharge INTEGER ::= 0
|
|||
|
noScale INTEGER ::= 0
|
|||
|
numOfExtensions INTEGER ::= 1 --network specific
|
|||
|
|
|||
|
-- ChargingReferenceIdentification Type
|
|||
|
|
|||
|
ChargingReferenceIdentification ::= SEQUENCE {
|
|||
|
networkIdentification [0] NetworkIdentification,
|
|||
|
referenceID [1] ReferenceID}
|
|||
|
|
|||
|
-- NetworkIdentification Type
|
|||
|
|
|||
|
NetworkIdentification ::= OBJECT IDENTIFIER
|
|||
|
|
|||
|
-- Following structure of the networkIdentification value shall be used:
|
|||
|
-- {itu-t (0) administration (2) <national regulation authority> (x) network (y) node identification (z)}
|
|||
|
-- The value for x is the value of the national regulation authority, the value for y is under the control of the national
|
|||
|
-- regulation authority concerned, the value for z is under the control of the network concerned.
|
|||
|
|
|||
|
-- ReferenceID Type
|
|||
|
|
|||
|
ReferenceID ::= INTEGER (0..4294967295)
|
|||
|
-- maximum value 232 - 1
|
|||
|
|
|||
|
END
|
|||
|
-- of Tariffing-Data Types
|