-- -- EN 300 182-1 Ver. 1.3.6 -- Advice-of-Charge-Operations {ccitt identified-organization etsi (0) 182 operations-and-errors (1)} DEFINITIONS IMPLICIT TAGS ::= BEGIN EXPORTS ChargingRequest, AOCSCurrency, AOCSSpecialArr, AOCDCurrency, AOCDChargingUnit, AOCECurrency, AOCEChargingUnit, NoChargingInfoAvailable, ChargingAssociation; IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects {joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)} notSubscribed, notAvailable, notImplemented, invalidCallState FROM General-Errors {ccitt identified-organization etsi (0) 196 general-errors (2)} PartyNumber FROM Addressing-Data-Elements {itu-t(0) identified-organization(4) 196 addressing-data-elements (6)}; chargingRequest OPERATION ::= { ARGUMENT ChargingRequestArg RESULT ChargingRequestRes ERRORS {notSubscribed | notAvailable | notImplemented | invalidCallState | NoChargingInfoAvailable} CODE local: 30} ChargingRequestArg ::= ChargingCase ChargingRequestRes ::= CHOICE { aOCSCurrencyInfoList AOCSCurrencyInfoList, aOCSSpecialArrInfo AOCSSpecialArrInfo, chargingInfoFollows NULL} aOCSCurrency OPERATION ::= { -- AOC-S given in currency units ARGUMENT AOCSCurrencyArg RETURN RESULT FALSE CODE local: 31} AOCSCurrencyArg ::= CHOICE { chargeNotAvailable NULL, aOCSCurrencyInfoList AOCSCurrencyInfoList } aOCSSpecialArr OPERATION ::= { -- AOC-S for special charging arrangement ARGUMENT AOCSSpecialArrArg RETURN RESULT FALSE CODE local: 32} AOCSSpecialArrArg ::=CHOICE { chargeNotAvailable NULL, aOCSSpecialArrInfo AOCSSpecialArrInfo } aOCDCurrency OPERATION ::= { -- AOC-D given in currency units ARGUMENT AOCDCurrencyArg RETURN RESULT FALSE CODE local: 33} AOCDCurrencyArg ::= CHOICE { chargeNotAvailable NULL, aOCDCurrencyInfo AOCDCurrencyInfo } aOCDChargingUnit OPERATION ::= { -- AOC-D given in charging units ARGUMENT AOCDChargingUnitArg RETURN RESULT FALSE CODE local: 34} AOCDChargingUnitArg ::= CHOICE { chargeNotAvailable NULL, aOCDChargingUnitInfo AOCDChargingUnitInfo } aOCECurrency OPERATION ::= { -- AOC-E given in currency units ARGUMENT AOCECurrencyArg RETURN RESULT FALSE CODE local: 35} AOCECurrencyArg ::=CHOICE { chargeNotAvailable NULL, aOCECurrencyInfo AOCECurrencyInfo } aOCEChargingUnit OPERATION::= { -- AOC-E given in charging units ARGUMENT AOCEChargingUnitArg RETURN RESULT FALSE CODE local: 36} AOCEChargingUnitArg ::= CHOICE { chargeNotAvailable NULL, aOCEChargingUnitInfo AOCEChargingUnitInfo } ChargingCase ::= ENUMERATED { chargingInformationAtCallSetup (0), chargingDuringACall (1), chargingAtTheEndOfACall (2) } AOCSCurrencyInfoList ::= SEQUENCE SIZE (1..10) OF AOCSCurrencyInfo AOCSCurrencyInfo ::= SEQUENCE { chargedItem ChargedItem, chargingtype CHOICE { specificCurrency CHOICE { durationCurrency [1] IMPLICIT DurationCurrency, flatRateCurrency [2] IMPLICIT FlatRateCurrency, volumeRateCurrency [3] IMPLICIT VolumeRateCurrency}, specialChargingCode SpecialChargingCode, freeOfCharge [4] IMPLICIT NULL, currencyInfoNotAvailable [5] IMPLICIT NULL} } AOCSSpecialArrInfo ::= INTEGER (1..10) 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) AOCDCurrencyInfo ::= CHOICE { specificCurrency SEQUENCE { recordedCurrency [1] IMPLICIT RecordedCurrency, typeOfChargingInfo [2] IMPLICIT TypeOfChargingInfo, aOCDBillingId [3] IMPLICIT AOCDBillingId OPTIONAL }, freeOfCharge [1] IMPLICIT NULL} AOCDChargingUnitInfo ::= CHOICE { specificChargingUnits SEQUENCE { recordedUnitsList [1] IMPLICIT RecordedUnitsList, typeOfChargingInfo [2] IMPLICIT TypeOfChargingInfo, aOCDBillingId [3] IMPLICIT AOCDBillingId OPTIONAL }, freeOfCharge [1] IMPLICIT NULL} RecordedCurrency ::= SEQUENCE { rCurrency [1] IMPLICIT Currency, rAmount [2] IMPLICIT Amount } RecordedUnitsList ::= SEQUENCE SIZE (1..32) OF RecordedUnits TypeOfChargingInfo ::= ENUMERATED { subTotal (0), total (1)} RecordedUnits ::= SEQUENCE { cc CHOICE{ recordedNumberOfUnits NumberOfUnits, notAvailable NULL}, recordedTypeOfUnits TypeOfUnit OPTIONAL } AOCDBillingId ::= ENUMERATED { normalCharging (0), reverseCharging (1), creditCardCharging (2)} AOCECurrencyInfo ::= SEQUENCE { cc CHOICE { specificCurrency SEQUENCE { recordedCurrency [1] IMPLICIT RecordedCurrency, aOCEBillingId [2] IMPLICIT AOCEBillingId OPTIONAL}, freeOfCharge [1] IMPLICIT NULL}, chargingAssociation ChargingAssociation OPTIONAL} AOCEChargingUnitInfo ::= SEQUENCE { cc CHOICE { specificChargingUnits SEQUENCE { recordedUnitsList [1] IMPLICIT RecordedUnitsList, aOCEBillingId [2] IMPLICIT AOCEBillingId OPTIONAL}, freeOfCharge [1] IMPLICIT NULL}, chargingAssociation ChargingAssociation OPTIONAL} AOCEBillingId ::= ENUMERATED { normalCharging (0), reverseCharging (1), creditCardCharging (2), callForwardingUnconditional (3), callForwardingBusy (4), callForwardingNoReply (5), callDeflection (6), callTransfer (7)} Currency ::= IA5String (SIZE (1..10)) 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) } TypeOfUnit ::= INTEGER (1..16) -- Value 1-16 NumberOfUnits ::= INTEGER (0..16777215) ChargingType ::= ENUMERATED { continuousCharging (0), stepFunction (1) } ChargingAssociation ::= CHOICE { chargeNumber [0] EXPLICIT PartyNumber, chargeIdentifier ChargeIdentifier} ChargeIdentifier ::= INTEGER (-32768..32767) -- NoChargingInfoAvailable ::= ERROR -- chargingRequest ChargingRequest ::= 30 -- aOCSCurrency AOCSCurrency ::= 31 -- aOCSSpecialArr AOCSSpecialArr ::= 32 -- aOCDCurrency AOCDCurrency ::= 33 -- aOCDChargingUnit AOCDChargingUnit ::= 34 -- aOCECurrency AOCECurrency ::= 35 -- aOCEChargingUnit AOCEChargingUnit ::= 36 -- noChargingInfoAvailable NoChargingInfoAvailable ::= 26 noChargingInfoAvailable ERROR ::= { CODE local: 26} END