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