wireshark/epan/dissectors/asn1/qsig/QSIG-AOC.asn

306 lines
9.7 KiB
Groff

-- QSIG-AOC.asn
--
-- Taken from Ecma International
-- Standard ECMA-212, 3rd edition (December 2001)
-- http://www.ecma-international.org/publications/standards/Ecma-212.htm
--
SS-AOC-Operations-asn1-97
{iso (1) standard (0) pss1-advice-of-charge (15050) advice-of-charge-operations-asn1-97 (1)}
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
{joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
EXTENSION, Extension{} FROM Manufacturer-specific-service-extension-class-asn1-97
{iso (1) standard (0) pss1-generic-procedures (11582) msi-class-asn1-97 (11)}
notAvailable, supplementaryServiceInteractionNotAllowed
FROM General-Error-List
{ccitt recommendation q 950 general-error-list (1)}
PartyNumber FROM Addressing-Data-Elements-asn1-97
{ iso (1) standard (0) pss1-generic-procedures (11582)
addressing-data-elements-asn1-97 (20) } ;
AOC-Operations OPERATION ::= { chargeRequest | getFinalCharge | aocFinal | aocInterim | aocRate |
aocComplete | aocDivChargeReq }
aocRate OPERATION ::= {
ARGUMENT AocRateArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local: 63}
AocRateArg ::= SEQUENCE {
aocRate CHOICE {
chargeNotAvailable NULL,
aocSCurrencyInfoList AOCSCurrencyInfoList
},
rateArgExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF
Extension{{AOCExtSet}} } OPTIONAL
}
aocInterim OPERATION ::= {
ARGUMENT AocInterimArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local: 62}
AocInterimArg ::= SEQUENCE {
interimCharge CHOICE {
chargeNotAvailable [0] IMPLICIT NULL,
freeOfCharge [1] IMPLICIT NULL,
specificCurrency SEQUENCE {
recordedCurrency [1] IMPLICIT RecordedCurrency,
interimBillingId[2] IMPLICIT InterimBillingId OPTIONAL }
},
interimArgExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF
Extension{{AOCExtSet}} } OPTIONAL
}
aocFinal OPERATION ::= {
ARGUMENT AocFinalArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local: 61}
AocFinalArg ::= SEQUENCE {
finalCharge CHOICE {
chargeNotAvailable [0] IMPLICIT NULL,
freeOfCharge [1] IMPLICIT NULL,
specificCurrency SEQUENCE {
recordedCurrency [1] IMPLICIT RecordedCurrency,
finalBillingId[2] IMPLICIT FinalBillingId OPTIONAL }
},
chargingAssociation ChargingAssociation OPTIONAL,
finalArgExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF
Extension{{AOCExtSet}} } OPTIONAL
}
AOCSCurrencyInfoList ::= SEQUENCE SIZE(1..10) OF AOCSCurrencyInfo
AOCSCurrencyInfo ::= SEQUENCE {
chargedItem ChargedItem,
rateType CHOICE {
durationCurrency [1] IMPLICIT DurationCurrency,
flatRateCurrency [2] IMPLICIT FlatRateCurrency,
volumeRateCurrency [3] IMPLICIT VolumeRateCurrency,
specialChargingCode SpecialChargingCode,
freeOfCharge [4] IMPLICIT NULL,
currencyInfoNotAvailable [5] IMPLICIT NULL,
freeOfChargefromBeginning [6] IMPLICIT NULL
} }
ChargedItem ::= ENUMERATED {
basicCommunication (0),
callAttempt (1),
callSetup (2),
userToUserInfo (3),
operationOfSupplementaryServ (4) }
DurationCurrency ::= SEQUENCE {
dCurrency [1] IMPLICIT Currency,
dAmount [2] IMPLICIT Amount,
dChargingType [3] IMPLICIT ChargingType,
dTime [4] IMPLICIT Time,
dGranularity [5] IMPLICIT Time OPTIONAL }
FlatRateCurrency ::= SEQUENCE {
fRCurrency [1] IMPLICIT Currency,
fRAmount [2] IMPLICIT Amount }
VolumeRateCurrency ::= SEQUENCE {
vRCurrency [1] IMPLICIT Currency,
vRAmount [2] IMPLICIT Amount,
vRVolumeUnit [3] IMPLICIT VolumeUnit
}
SpecialChargingCode ::= INTEGER (1..10)
RecordedCurrency ::= SEQUENCE {
rCurrency [1] IMPLICIT Currency,
rAmount [2] IMPLICIT Amount }
InterimBillingId ::= ENUMERATED {
normalCharging (0),
creditCardCharging (2) }
FinalBillingId ::= ENUMERATED {
normalCharging (0),
creditCardCharging (2),
callForwardingUnconditional (3),
callForwardingBusy (4),
callForwardingNoReply (5),
callDeflection (6),
callTransfer (7) }
Currency ::= IA5String (SIZE (0..10))
-- SIZE(0) shall indicate the default currency of the PISN
-- The representation of other currencies is outside the scope of this standard
Amount ::= SEQUENCE {
currencyAmount [1] IMPLICIT CurrencyAmount,
multiplier [2] IMPLICIT Multiplier }
CurrencyAmount ::= INTEGER (0..16777215)
Multiplier ::= ENUMERATED {
oneThousandth (0),
oneHundredth (1),
oneTenth (2),
one (3),
ten (4),
hundred (5),
thousand (6) }
Time ::= SEQUENCE {
lengthOfTimeUnit [1] IMPLICIT LengthOfTimeUnit,
scale [2] IMPLICIT Scale }
LengthOfTimeUnit ::= INTEGER (0..16777215)
Scale ::= ENUMERATED {
oneHundredthSecond (0),
oneTenthSecond (1),
oneSecond (2),
tenSeconds (3),
oneMinute (4),
oneHour (5),
twentyFourHours (6) }
VolumeUnit ::= ENUMERATED {
octet (0),
segment (1),
message (2) }
ChargingType ::= ENUMERATED {
continuousCharging (0),
stepFunction (1) }
ChargingAssociation ::= CHOICE {
chargeNumber [0] PartyNumber,
chargeIdentifier ChargeIdentifier }
ChargeIdentifier ::= INTEGER (-32768..32767)
chargeRequest OPERATION ::= {
ARGUMENT ChargeRequestArg
RESULT ChargeRequestRes
ERRORS {
freeOfCharge |
supplementaryServiceInteractionNotAllowed |
notAvailable | unspecified }
CODE local: 59}
getFinalCharge OPERATION ::= {
ARGUMENT DummyArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local: 60}
ChargeRequestArg ::= SEQUENCE {
adviceModeCombinations SEQUENCE SIZE(0..7) OF
AdviceModeCombination,
chargeReqArgExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF
Extension{{AOCExtSet}} } OPTIONAL
}
ChargeRequestRes ::= SEQUENCE {
adviceModeCombination AdviceModeCombination,
chargeReqResExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF
Extension{{AOCExtSet}} } OPTIONAL
}
AdviceModeCombination ::= ENUMERATED { -- advice mode combination
rate (0), -- charge rate provision
rateInterim (1), -- charge rate and interim charge provision
rateFinal (2), -- charge rate and final charge provision
interim (3), -- interim charge provision
final (4), -- final charge provision
interimFinal (5), -- interim charge and final charge provision
rateInterimFinal (6)} -- charge rate, interim charge and final
-- charge provision
DummyArg ::= CHOICE{
none NULL,
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
}
-- The following OPERATION applies for the interaction with Call Transfer
aocComplete OPERATION ::= {
ARGUMENT AocCompleteArg
RESULT AocCompleteRes
ERRORS {supplementaryServiceInteractionNotAllowed}
CODE local: 64}
AocCompleteArg ::= SEQUENCE {
chargedUser PartyNumber,
chargingAssociation ChargingAssociation OPTIONAL,
completeArgExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF
Extension{{AOCExtSet}} } OPTIONAL
}
AocCompleteRes::= SEQUENCE {
chargingOption ChargingOption,
completeResExtension CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
} OPTIONAL
}
ChargingOption ::= ENUMERATED{
aocFreeOfCharge (0),
aocContinueCharging (1),
aocStopCharging (2)
}
-- The following OPERATION applies for the interaction with Call Diversion
aocDivChargeReq OPERATION::= {
ARGUMENT AocDivChargeReqArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local: 65}
AocDivChargeReqArg ::= SEQUENCE {
divertingUser PartyNumber,
chargingAssociation ChargingAssociation OPTIONAL,
diversionType DiversionType,
aocDivChargeReqArgExt CHOICE {
extension [1] IMPLICIT Extension{{AOCExtSet}},
multipleExtension [2] IMPLICIT SEQUENCE OF Extension{{AOCExtSet}}
} OPTIONAL
}
DiversionType ::= ENUMERATED {
callForwardingUnconditional (0),
callForwardingBusy (1),
callForwardingNoReply (2),
callDeflection (3) }
AOCExtSet EXTENSION ::= {...}
unspecified ERROR ::= {
PARAMETER Extension{{AOCExtSet}}
CODE local: 1008}
freeOfCharge ERROR ::= { CODE local: 1016}
END -- of SS-AOC-Operations-asn1-97