forked from osmocom/wireshark
cb231972f1
svn path=/trunk/; revision=27405
447 lines
15 KiB
Groff
447 lines
15 KiB
Groff
-- 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 |