HACK: pinfo->private_data points to smb_info again
[wireshark-wip.git] / asn1 / charging_ase / Tariffing-Data-Types.asn
blob019350fedc69a5d0419b4f4603e4df05b08dcdc8
1 -- ETSI ES 201 296 V1.3.1 (2003-04)
2 -- $Id$
3 Tariffing-Data-Types {itu-t(0) identified-organization(4) etsi (0) 1296 version3(4)}
5 DEFINITIONS IMPLICIT TAGS ::= BEGIN
7 -- This module contains the common data type definitions for the charging information used in the
8 -- new ISUP APM application "Charging ASE" and in the INAP charging operations.
9 --
12 EXPORTS
14 -- Charging Common Data Types
15         ChargingAcknowledgementInformation ,
16         AddOnChargingInformation ,
17         ChargingTariffInformation ,
18         StartCharging ,
19         StopCharging ,
20         ChargingMessageType
24 -- ChargingMessageType Type
26 ChargingMessageType ::= CHOICE {
27         crgt [0] ChargingTariffInformation,
28         aocrg [1] AddOnChargingInformation ,
29         crga [2] ChargingAcknowledgementInformation ,
30         start [3] StartCharging ,
31         stop [4] StopCharging }
33 -- ChargeUnitTimeInterval Type
35 ChargeUnitTimeInterval ::= OCTET STRING (SIZE(2))
37 -- The ChargeUnitTimeInterval is binary coded and has the value range from 0 to 35997. It begins with 200 milliseconds and
38 -- then in steps of 50 milliseconds.
39 -- the LSBit is the least significant bit of the first octet
40 -- the MSBit is the most significant bit of the last octet
41 -- the coding of the ChargeUnitTimeInterval is the following:
42 -- 0 : no periodic metering
43 -- 1 : 200 msec
44 -- 2 : 250 msec
45 -- ..
46 -- 35997 : 30 minutes
47 -- All other values are spare.
49 -- ChargingAcknowledgementInformation Type
51 ChargingAcknowledgementInformation ::= SEQUENCE {
52         acknowledgementIndicators [0] BIT STRING {
53                 accepted (0) }
54         (SIZE(minAcknowledgementIndicatorsLen..maxAcknowledgementIndicatorsLen)), extensions [1]
55 SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
56         originationIdentification [2] ChargingReferenceIdentification,
57         destinationIdentification [3] ChargingReferenceIdentification
60 -- Coding of "accepted":
61 -- 0: not accepted.
62 -- 1: accepted.
63 -- The "extensions" is a SEQUENCE for possible extensions.
65 -- ChargingControlIndicators Type
67 ChargingControlIndicators ::= BIT STRING {
68         subscriberCharge (0),
69         immediateChangeOfActuallyAppliedTariff (1),
70         delayUntilStart (2) }
71         (SIZE(minChargingControlIndicatorsLen..maxChargingControlIndicatorsLen))
73 -- Coding of "subscriberCharge":
74 -- 0 - advice-of-charge: charging information only to be used by the advice of charge service.
75 -- 1 - subscriber-charge: charging information to be used by the subscriber charging program.
76 -- Coding of "immediateChangeOfActuallyAppliedTariff":
77 -- 0 - immediate tariff change without restart
78 -- 1 - immediate tariff change with restart
79 -- It is only used to change the actually applied tariff.
80 -- Coding of 'delayUntilStart':
81 -- 0 - start tariffing, if it is not already started, without waiting for the 'start' signal
82 -- 1 - delay start of tariffing up to the receipt of the 'start' signal
84 -- AddOnChargingInformation Type
86 AddOnChargingInformation ::= SEQUENCE {
87         chargingControlIndicators       [0] ChargingControlIndicators ,
88         addOncharge                                     [1] CHOICE {
89                 addOnChargeCurrency             [0] CurrencyFactorScale ,
90                 addOnChargePulse                [1] PulseUnits
91         },
92         extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
93         originationIdentification       [3] ChargingReferenceIdentification,
94         destinationIdentification       [4] ChargingReferenceIdentification OPTIONAL,
95         currency                                        [5] Currency
98 -- This message is used to add an amount of charge for the call and does not alter the current tariff.
99 -- The destinationIdentification is not available in an initial AddOnChargingInformation, in all subsequent ones it is included, see
100 -- "Handling of Identifiers".
101 -- In the message the
102 -- add-on charge has either the pulse or currency format.
103 -- ChargingTariffInformation Type
105 ChargingTariffInformation ::= SEQUENCE {
106         chargingControlIndicators [0] ChargingControlIndicators,
107         chargingTariff [1] CHOICE {
108                 tariffCurrency [0] TariffCurrency,
109                 tariffPulse [1] TariffPulse
110         },
111         extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
112         originationIdentification [3] ChargingReferenceIdentification,
113         destinationIdentification [4] ChargingReferenceIdentification OPTIONAL,
114         currency [5] Currency
117 --This message is used
118 -- to transfer explicit tariff data to the originating subscriber exchange and the charge registration exchange during call
119 -- set-up and also in the active phase of a call.
120 -- The destinationIdentification is not available in an initial ChargingTariffInformation, in all subsequent ones it is included, see
121 -- "Handling of Identifiers".
122 Code ::= CHOICE
124         local INTEGER,
125         global OBJECT IDENTIFIER
128 -- CommunicationChargeCurrency Type
130 CommunicationChargeCurrency ::= SEQUENCE {
131         currencyFactorScale             [0] CurrencyFactorScale ,
132         tariffDuration                  [1] TariffDuration ,
133         subTariffControl                [2] SubTariffControl }
135 -- CommunicationChargePulse Type
137 CommunicationChargePulse ::= SEQUENCE {
138         pulseUnits                              [0] PulseUnits ,
139         chargeUnitTimeInterval  [1] ChargeUnitTimeInterval ,
140         tariffDuration                  [2] TariffDuration }
142 -- Criticality Type
143 CriticalityType ::= ENUMERATED {
144         ignore(0),
145         abort(1) }
147 -- Currency Type
148 Currency ::= ENUMERATED {
149         noIndication (0),
150         australianDollar (1),
151         austrianSchilling (2),
152         belgianFranc (3),
153         britishPound (4),
154         czechKoruna (5),
155         danishKrone (6),
156         dutchGuilder (7),
157         euro (8),
158         finnishMarkka (9),
159         frenchFranc (10),
160         germanMark (11),
161         greekDrachma (12),
162         hungarianForint (13),
163         irishPunt (14),
164         italianLira (15),
165         japaneseYen (16),
166         luxembourgian-Franc (17),
167         norwegianKrone (18),
168         polishZloty (19),
169         portugeseEscudo (20),
170         russianRouble (21),
171         slovakKoruna (22),
172         spanishPeseta (23),
173         swedishKrone (24),
174         swissFranc (25),
175         turkishLira (26),
176         uSDollar (27),
177         ...}
179 -- CurrencyFactor Type
181 CurrencyFactor ::= INTEGER (0..999999)
183 -- Value 0 indicates "no charge".
184 -- CurrencyFactorScale Type
186 CurrencyFactorScale ::= SEQUENCE {
187         currencyFactor  [0] CurrencyFactor DEFAULT noCharge ,
188         currencyScale   [1] CurrencyScale DEFAULT noScale }
190 -- The charge amount is indicated by the currency factor multiplied with the currency scale.
191 -- "no charge" indicates CurrencyFactorScale has the value 0.
192 -- CurrencyScale Type
194 CurrencyScale ::= INTEGER (-7..3)
196 -- The actual value for currency scale is given by 10x, where x is the value of the CurrencyScale.
198 -- the coding of CurrencyScale is as follows, all other values are spare:
199 -- -7 (249): 0,0000001
200 -- -6 (250): 0,000001
201 -- -5 (251): 0,00001
202 -- -4 (252): 0,0001
203 -- -3 (253): 0,001
204 -- -2 (254): 0,01
205 -- -1 (255): 0,1
206 -- 0 : 1
207 -- 1 : 10
208 -- 2 : 100
209 -- 3 : 1000
211 -- Definition of the extension class
213 EXTENSION ::= CLASS {
214         &ExtensionType,
215         &criticality CriticalityType DEFAULT ignore,
216         &id Code
218 WITH SYNTAX {
219         EXTENSION-SYNTAX &ExtensionType
220         CRITICALITY &criticality
221         IDENTIFIED BY &id
223 -- Example of addition of an extension named 'Some Network Specific Indicator' of type
224 -- BOOLEAN, with criticality 'abort' and to be identified as extension number 1
225 -- Example of definition using the above information object class:
227 -- SomeNetworkSpecificIndicator EXTENSION ::= {
228 -- EXTENSION-SYNTAX BOOLEAN
229 -- CRITICALITY abort
230 -- IDENTIFIED BY local : 1
231 -- }
232 -- Example of transfer syntax, using the ExtensionField datatype as specified in section 4.1.
233 -- Assuming the value of the extension is set to TRUE, the extensions parameter
234 -- becomes a Sequence of type INTEGER ::= 1, criticality ENUMERATED ::= 1 and value [1]
235 -- EXPLICIT BOOLEAN ::= TRUE.
237 -- Use of Q.1400 defined Extension is ffs
238 -- In addition the extension mechanism marker is used to identify the future minor additions to INAP.
239 firstExtension EXTENSION ::= {
240         EXTENSION-SYNTAX NULL
241         CRITICALITY ignore
242         IDENTIFIED BY local:1
243         }
245 -- firstExtension is just an example.
247 SupportedExtensions EXTENSION ::= {firstExtension , ...
248 -- full set of network operator extensions --}
249 -- SupportedExtension is the full set of the network operator extensions.
250 -- ExtensionField Type
252 ExtensionField ::= SEQUENCE {
253         type EXTENSION.&id ({SupportedExtensions}),
254         -- shall identify the value of an EXTENSION type
255         criticality CriticalityType DEFAULT ignore,
256         value [1] EXTENSION.&ExtensionType
257         ({SupportedExtensions}{@type})
259 -- This parameter indicates an extension of an argument data type. Its contents is network operator specific.
260 -- PulseUnits Type
262 PulseUnits ::= OCTET STRING (SIZE(1))
263 -- the PulseUnits is binary coded and has the value range from 0 to 255
264 -- StartCharging Type
265 StartCharging ::= SEQUENCE {
266         networkOperators                        [0] SEQUENCE SIZE (1..maxNetworkOperators) OF NetworkIdentification OPTIONAL,
267         extensions                                      [1] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
268         originationIdentification       [2] ChargingReferenceIdentification
271 --This message is used
272 -- to start charge generation/registration for one that belongs to one network operator or
273 -- to start charge generation/registration for more tariffs that belong to several network
274 -- operators.
275 -- The corresponding network operator(s) are listed within sub-parameter 'networkOperators'.
276 -- The sub-parameter 'networkOperators' is mandatory in configurations of multiple charge
277 -- determination points.
278 -- If sub-parameter 'networkOperators' is not present in a configuration with only one charge
279 -- determination point, the corresponding tariff is started.
280 -- The 'extensions' is a SEQUENCE for possible extensions.
281 -- StopCharging Type
283 StopCharging ::= SEQUENCE {
284         stopIndicators [0] BIT STRING {
285                 callAttemptChargesApplicable (0) }
286         (SIZE(minStopIndicatorsLen.. maxStopIndicatorsLen)),
287         networkOperators [1] SEQUENCE SIZE (1..maxNetworkOperators) OF NetworkIdentification OPTIONAL,
288         extensions [2] SEQUENCE SIZE(1..numOfExtensions) OF ExtensionField OPTIONAL,
289         originationIdentification [3] ChargingReferenceIdentification
292 --This message is used to stop charge generation/registration
293 -- for one that belongs to one network operator or
294 -- to stop charge generation/registration for more tariffs that belong to several network operators.
295 -- The corresponding network operator(s) are listed within sub-parameter 'networkOperators'.
296 -- The sub-parameter 'networkOperators' is mandatory in configurations of multiple charge
297 -- determination points.
298 -- If sub-parameter 'networkOperators' is not present in a configuration with only one charge
299 -- determination point, the corresponding tariff is stopped.
300 -- Coding of 'callAttemptChargesApplicable':
301 -- 0 - stop tariffing, call attempt charges are not applicable
302 -- 1 - stop tariffing, call attempt charges are applicable
303 -- The 'extensions' is a SEQUENCE for possible extensions.
305 -- SubTariffControl Type
307 SubTariffControl ::= BIT STRING {oneTimeCharge (0)}
308 (SIZE(minSubTariffControlLen..maxSubTariffControlLen))
309 -- The coding of the oneTimeCharge is as follows:
310 -- 0 - Periodic charge
311 -- 1 - One time charge
312 minSubTariffControlLen INTEGER ::= 1
313 maxSubTariffControlLen INTEGER ::= 8
315 -- TariffCurrency Type
317 TariffCurrency ::= SEQUENCE {
318         currentTariffCurrency   [0] TariffCurrencyFormat OPTIONAL ,
319         tariffSwitchCurrency    [1] TariffSwitchCurrency OPTIONAL
321 -- TariffSwitchCurrency Type
323 TariffSwitchCurrency ::= SEQUENCE {
324         nextTariffCurrency              [0] TariffCurrencyFormat ,
325         tariffSwitchoverTime    [1] TariffSwitchoverTime
328 -- TariffCurrencyFormat Type
330 TariffCurrencyFormat ::= SEQUENCE {
331         communicationChargeSequenceCurrency     [0] SEQUENCE
332                 SIZE(minCommunicationTariffNum..maxCommunicationTariffNum)
333                 OF CommunicationChargeCurrency OPTIONAL ,
334         tariffControlIndicators [1] BIT STRING {
335         non-cyclicTariff (0) }
336         (SIZE(minTariffIndicatorsLen..maxTariffIndicatorsLen)) ,
337         callAttemptChargeCurrency       [2] CurrencyFactorScale OPTIONAL ,
338         callSetupChargeCurrency         [3] CurrencyFactorScale OPTIONAL }
340 -- The communication charge sequence currency is a direct charge in currency per time unit. Only one fixed time unit is used.
341 -- This time unit has
342 -- to be agreed between all cooperating networks, e.g. one second. Being fixed, the time unit is not transferred over
343 -- ISUP/INAP.
344 -- The call attempt charge is a direct charge, to be charged only for unsuccessful calls.
345 -- The call set-up charge is a direct charge, to be charged once at start of charging.
347 -- The coding of the non-cyclicTariff is as follows:
348 -- 0 - Cyclic tariff ( at expiration of the tariff duration of the last communication tariff of the communication charge sequence,
349 -- the communication charge sequence is re-applied.
350 -- 1 - Non-cyclic tariff ( at expiration of the tariff duration of the last communication tariff of the communication charge
351 -- sequence, do not re-apply the communication charge sequence)
353 -- TariffDuration Type
355 TariffDuration ::= INTEGER (0..36000)
357 -- TariffDuration identifies with 0 unlimited duration and else in seconds unit.
358 -- 0 = unlimited
359 -- 1 = 1 second
360 -- 2 = 2 seconds
361 -- ...
362 -- 36000 = 10 hours
364 -- The duration indicates for how long time the communication charge component is valid. Expiration of the tariff duration
365 -- timer leads to the activation of the next communication charge (if present).
366 -- In the case where there is no next communication charge in the communication charge sequence, the action to be performed
367 -- is indicated by the tariffControlIndicators.
368 -- TariffPulse Type
370 TariffPulse ::= SEQUENCE {
371         currentTariffPulse [0] TariffPulseFormat OPTIONAL ,
372         tariffSwitchPulse [1] TariffSwitchPulse OPTIONAL }
374 -- TariffSwitchPulse Type
376 TariffSwitchPulse ::= SEQUENCE {
377         nextTariffPulse [0] TariffPulseFormat ,
378         tariffSwitchoverTime [1] TariffSwitchoverTime }
380 -- TariffPulseFormat Type
382 TariffPulseFormat ::= SEQUENCE {
383         communicationChargeSequencePulse [0] SEQUENCE
384                 SIZE(minCommunicationTariffNum.. maxCommunicationTariffNum)
385                 OF CommunicationChargePulse OPTIONAL ,
386         tariffControlIndicators [1] BIT STRING {
387                 non-cyclicTariff (0) }
388                 (SIZE(minTariffIndicatorsLen..maxTariffIndicatorsLen)) ,
389         callAttemptChargePulse [2] PulseUnits OPTIONAL ,
390         callSetupChargePulse [3] PulseUnits OPTIONAL }
392 -- The communication charges are meter-pulse units, which are to be applied per charge unit time interval.
393 -- The call attempt pulse units are to be charged only for unsuccessful calls.
394 -- The call set-up pulse units are to be charged once at start of charging.
396 -- TariffSwitchoverTime Type
398 TariffSwitchoverTime ::= OCTET STRING (SIZE(1))
400 -- This time is the absolute time at which the next tariff has to become active. It is represented in steps of 15 minutes.
401 -- The coding is the following:
402 -- 0 : spare
403 -- 1 : 0 hour 15 minutes
404 -- 2 : 0 hour 30 minutes
405 -- 3 : 0 hour 45 minutes
406 -- 4 : 1 hour 0 minutes
407 -- ..
408 -- 96 : 24 hours 0 minutes
409 -- 97-255 : spare
411 minAcknowledgementIndicatorsLen INTEGER ::= 1
412 maxAcknowledgementIndicatorsLen INTEGER ::= 8
413 minChargingControlIndicatorsLen INTEGER ::= 1
414 maxChargingControlIndicatorsLen INTEGER ::= 8
415 maxNetworkOperators INTEGER ::= 6
416 minStopIndicatorsLen INTEGER ::= 1
417 maxStopIndicatorsLen INTEGER ::= 8
418 minTariffIndicatorsLen INTEGER ::= 1
419 maxTariffIndicatorsLen INTEGER ::= 8
420 minCommunicationTariffNum INTEGER ::= 1
421 maxCommunicationTariffNum INTEGER ::= 4
422 noCharge INTEGER ::= 0
423 noScale INTEGER ::= 0
424 numOfExtensions INTEGER ::= 1 --network specific
426 -- ChargingReferenceIdentification Type
428 ChargingReferenceIdentification ::= SEQUENCE {
429         networkIdentification [0] NetworkIdentification,
430         referenceID [1] ReferenceID}
432 -- NetworkIdentification Type
434 NetworkIdentification ::= OBJECT IDENTIFIER
436 -- Following structure of the networkIdentification value shall be used:
437 -- {itu-t (0) administration (2) <national regulation authority> (x) network (y) node identification (z)}
438 -- The value for x is the value of the national regulation authority, the value for y is under the control of the national
439 -- regulation authority concerned, the value for z is under the control of the network concerned.
441 -- ReferenceID Type
443 ReferenceID ::= INTEGER (0..4294967295)
444 -- maximum value 232 - 1
447 -- of Tariffing-Data Types