QSIG fully implemented
[obnox/wireshark/wip.git] / asn1 / qsig / QSIG-AOC.asn
1 -- QSIG-AOC.asn
2 --
3 -- Taken from Ecma International
4 -- Standard ECMA-212, 3rd edition (December 2001)
5 -- http://www.ecma-international.org/publications/standards/Ecma-212.htm
6 --
7 -- $Id$
8 --
9
10 SS-AOC-Operations-asn1-97 
11 {iso (1) standard (0)  pss1-advice-of-charge (15050) advice-of-charge-operations-asn1-97 (1)} 
12  
13 DEFINITIONS EXPLICIT TAGS ::= 
14  
15 BEGIN 
16  
17 IMPORTS  OPERATION, ERROR FROM Remote-Operations-Information-Objects 
18     {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)} 
19   EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97 
20     {iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)} 
21  notAvailable, supplementaryServiceInteractionNotAllowed 
22  FROM General-Error-List 
23     {ccitt recommendation q 950 general-error-list (1)} 
24   PartyNumber FROM Addressing-Data-Elements-asn1-97 
25     { iso (1) standard (0) pss1-generic-procedures (11582)  
26     addressing-data-elements-asn1-97 (20) }  ; 
27  
28 AOC-Operations OPERATION ::=   { chargeRequest | getFinalCharge | aocFinal | aocInterim | aocRate | 
29         aocComplete | aocDivChargeReq } 
30  
31 aocRate    OPERATION ::= { 
32    ARGUMENT       AocRateArg 
33    RETURN RESULT     FALSE 
34    ALWAYS RESPONDS  FALSE 
35    CODE        local:  63} 
36  
37 AocRateArg ::=  SEQUENCE { 
38      aocRate  CHOICE { 
39         chargeNotAvailable  NULL, 
40         aocSCurrencyInfoList AOCSCurrencyInfoList  
41               }, 
42      rateArgExtension  CHOICE { 
43       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
44         multipleExtension  [2] IMPLICIT SEQUENCE OF  
45             Extension{{AOCExtSet}} } OPTIONAL 
46       } 
47
48 aocInterim    OPERATION ::= { 
49    ARGUMENT AocInterimArg 
50    RETURN RESULT     FALSE 
51    ALWAYS RESPONDS  FALSE 
52    CODE        local:  62} 
53       
54 AocInterimArg ::=  SEQUENCE { 
55      interimCharge  CHOICE { 
56       chargeNotAvailable [0] IMPLICIT  NULL, 
57       freeOfCharge    [1] IMPLICIT  NULL, 
58       specificCurrency    SEQUENCE { 
59         recordedCurrency [1] IMPLICIT RecordedCurrency, 
60           interimBillingId[2] IMPLICIT InterimBillingId OPTIONAL } 
61                }, 
62      interimArgExtension  CHOICE { 
63       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
64         multipleExtension  [2] IMPLICIT SEQUENCE OF  
65                   Extension{{AOCExtSet}} } OPTIONAL 
66       } 
67  
68 aocFinal    OPERATION ::= { 
69    ARGUMENT AocFinalArg 
70    RETURN RESULT     FALSE 
71    ALWAYS RESPONDS  FALSE 
72    CODE        local:  61} 
73  
74 AocFinalArg ::=  SEQUENCE { 
75      finalCharge  CHOICE { 
76         chargeNotAvailable [0] IMPLICIT NULL, 
77         freeOfCharge [1] IMPLICIT NULL, 
78       specificCurrency  SEQUENCE { 
79         recordedCurrency [1] IMPLICIT RecordedCurrency, 
80             finalBillingId[2]  IMPLICIT FinalBillingId OPTIONAL } 
81                     }, 
82      chargingAssociation  ChargingAssociation OPTIONAL, 
83      finalArgExtension  CHOICE { 
84       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
85         multipleExtension  [2] IMPLICIT SEQUENCE OF  
86                   Extension{{AOCExtSet}} } OPTIONAL 
87       } 
88  
89 AOCSCurrencyInfoList ::= SEQUENCE SIZE(1..10) OF AOCSCurrencyInfo 
90
91 AOCSCurrencyInfo ::=  SEQUENCE { 
92     chargedItem  ChargedItem, 
93       rateType  CHOICE { 
94       durationCurrency       [1] IMPLICIT DurationCurrency, 
95       flatRateCurrency         [2] IMPLICIT FlatRateCurrency, 
96      volumeRateCurrency      [3] IMPLICIT VolumeRateCurrency, 
97      specialChargingCode   SpecialChargingCode, 
98       freeOfCharge       [4] IMPLICIT NULL, 
99       currencyInfoNotAvailable   [5] IMPLICIT NULL, 
100       freeOfChargefromBeginning [6] IMPLICIT NULL 
101         }  } 
102 ChargedItem  ::=   ENUMERATED { 
103       basicCommunication      (0), 
104       callAttempt          (1), 
105       callSetup          (2), 
106       userToUserInfo       (3), 
107      operationOfSupplementaryServ (4) } 
108  
109 DurationCurrency ::=  SEQUENCE { 
110      dCurrency    [1] IMPLICIT     Currency, 
111      dAmount    [2] IMPLICIT     Amount, 
112      dChargingType [3] IMPLICIT     ChargingType, 
113      dTime    [4] IMPLICIT     Time, 
114       dGranularity   [5] IMPLICIT     Time OPTIONAL } 
115  
116 FlatRateCurrency ::=  SEQUENCE { 
117      fRCurrency  [1] IMPLICIT Currency, 
118       fRAmount  [2] IMPLICIT Amount  } 
119  
120 VolumeRateCurrency ::=  SEQUENCE { 
121      vRCurrency   [1] IMPLICIT Currency, 
122      vRAmount    [2] IMPLICIT Amount, 
123      vRVolumeUnit  [3] IMPLICIT VolumeUnit 
124        } 
125  
126 SpecialChargingCode ::=  INTEGER (1..10) 
127  
128 RecordedCurrency ::=  SEQUENCE { 
129      rCurrency  [1] IMPLICIT Currency, 
130       rAmount  [2] IMPLICIT Amount } 
131  
132 InterimBillingId ::=  ENUMERATED { 
133      normalCharging    (0), 
134      creditCardCharging  (2) } 
135
136 FinalBillingId ::=  ENUMERATED { 
137       normalCharging      (0), 
138      creditCardCharging      (2), 
139      callForwardingUnconditional (3), 
140      callForwardingBusy      (4), 
141      callForwardingNoReply    (5), 
142       callDeflection       (6), 
143       callTransfer        (7) } 
144  
145 Currency  ::=  IA5String (SIZE (0..10)) 
146     -- SIZE(0) shall indicate the default currency of the PISN 
147     -- The representation of other currencies is outside the scope of this standard 
148  
149 Amount ::=  SEQUENCE { 
150      currencyAmount  [1] IMPLICIT CurrencyAmount, 
151      multiplier      [2] IMPLICIT Multiplier  } 
152  
153 CurrencyAmount ::=  INTEGER (0..16777215) 
154 Multiplier ::=  ENUMERATED { 
155      oneThousandth (0), 
156      oneHundredth  (1), 
157      oneTenth    (2), 
158      one     (3), 
159      ten     (4), 
160      hundred    (5), 
161      thousand    (6) } 
162  
163 Time ::=  SEQUENCE { 
164      lengthOfTimeUnit  [1] IMPLICIT LengthOfTimeUnit, 
165      scale      [2] IMPLICIT Scale } 
166  
167 LengthOfTimeUnit ::=  INTEGER (0..16777215) 
168  
169 Scale ::=  ENUMERATED { 
170      oneHundredthSecond (0), 
171      oneTenthSecond    (1), 
172       oneSecond      (2), 
173       tenSeconds     (3), 
174       oneMinute      (4), 
175       oneHour      (5), 
176      twentyFourHours    (6) } 
177  
178 VolumeUnit ::=  ENUMERATED { 
179      octet   (0), 
180      segment  (1), 
181      message  (2) } 
182
183 ChargingType ::=  ENUMERATED { 
184      continuousCharging  (0), 
185       stepFunction    (1) } 
186  
187 ChargingAssociation ::=  CHOICE { 
188      chargeNumber [0]   PartyNumber, 
189      chargeIdentifier ChargeIdentifier } 
190  
191 ChargeIdentifier ::=  INTEGER (-32768..32767) 
192  
193 chargeRequest    OPERATION ::= { 
194    ARGUMENT   ChargeRequestArg 
195    RESULT    ChargeRequestRes 
196    ERRORS    { 
197           freeOfCharge | 
198           supplementaryServiceInteractionNotAllowed | 
199             notAvailable | unspecified } 
200    CODE    local: 59} 
201  
202 getFinalCharge    OPERATION ::= { 
203    ARGUMENT  DummyArg 
204    RETURN RESULT     FALSE 
205    ALWAYS RESPONDS  FALSE 
206    CODE        local:  60} 
207  
208 ChargeRequestArg ::=  SEQUENCE { 
209   adviceModeCombinations  SEQUENCE SIZE(0..7) OF 
210         AdviceModeCombination, 
211  chargeReqArgExtension CHOICE { 
212       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
213         multipleExtension  [2] IMPLICIT SEQUENCE OF  
214                  Extension{{AOCExtSet}} } OPTIONAL 
215       } 
216  
217 ChargeRequestRes ::=  SEQUENCE { 
218    adviceModeCombination  AdviceModeCombination, 
219     chargeReqResExtension   CHOICE { 
220       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
221       multipleExtension  [2] IMPLICIT SEQUENCE OF  
222               Extension{{AOCExtSet}} } OPTIONAL 
223       } 
224
225 AdviceModeCombination ::=  ENUMERATED {    -- advice mode combination 
226       rate          (0),  -- charge rate provision 
227       rateInterim        (1),  -- charge rate and interim charge provision 
228       rateFinal        (2),  -- charge rate and final charge provision 
229       interim        (3),  -- interim charge provision 
230       final          (4),  -- final charge provision 
231       interimFinal       (5),  -- interim charge and final charge provision 
232       rateInterimFinal      (6)}  -- charge rate, interim charge and final  
233                  -- charge provision 
234  
235 DummyArg ::=  CHOICE{ 
236      none       NULL, 
237      extension      [1] IMPLICIT Extension{{AOCExtSet}}, 
238      multipleExtension  [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}} 
239      } 
240  
241  
242 -- The following OPERATION applies for the interaction with Call Transfer 
243  
244 aocComplete    OPERATION ::= { 
245    ARGUMENT AocCompleteArg   
246    RESULT  AocCompleteRes 
247    ERRORS  {supplementaryServiceInteractionNotAllowed} 
248    CODE  local: 64} 
249  
250 AocCompleteArg ::=  SEQUENCE { 
251       chargedUser     PartyNumber, 
252      chargingAssociation  ChargingAssociation OPTIONAL, 
253       completeArgExtension   CHOICE { 
254       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
255         multipleExtension  [2] IMPLICIT SEQUENCE OF  
256                  Extension{{AOCExtSet}} } OPTIONAL 
257       } 
258  
259 AocCompleteRes::= SEQUENCE { 
260    chargingOption ChargingOption, 
261     completeResExtension   CHOICE { 
262       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
263      multipleExtension  [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}} 
264                  } OPTIONAL 
265      } 
266  
267 ChargingOption ::=  ENUMERATED{ 
268      aocFreeOfCharge   (0), 
269      aocContinueCharging (1), 
270      aocStopCharging    (2) 
271       } 
272
273 -- The following OPERATION applies for the interaction with Call Diversion 
274  
275 aocDivChargeReq   OPERATION::= { 
276    ARGUMENT AocDivChargeReqArg 
277    RETURN RESULT     FALSE 
278    ALWAYS RESPONDS  FALSE 
279    CODE        local:  65} 
280  
281  
282 AocDivChargeReqArg  ::= SEQUENCE { 
283    divertingUser    PartyNumber, 
284    chargingAssociation  ChargingAssociation OPTIONAL, 
285    diversionType    DiversionType, 
286     aocDivChargeReqArgExt   CHOICE { 
287       extension [1]  IMPLICIT Extension{{AOCExtSet}}, 
288      multipleExtension  [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}} 
289                  } OPTIONAL 
290      } 
291  
292  
293 DiversionType  ::= ENUMERATED { 
294      callForwardingUnconditional (0), 
295      callForwardingBusy      (1), 
296      callForwardingNoReply    (2), 
297       callDeflection       (3) } 
298  
299 AOCExtSet EXTENSION ::= {...} 
300  
301 unspecified  ERROR ::= { 
302  PARAMETER     Extension{{AOCExtSet}} 
303   CODE       local: 1008} 
304  
305 freeOfCharge  ERROR ::= { CODE  local: 1016} 
306  
307 END  -- of SS-AOC-Operations-asn1-97