blob: 82172e93b129a5d8516a7c04e0eeed532058d64e [file] [log] [blame]
/*
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2019 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//
// File: Revised_Advice_of_Charge_Operations.asn
// Description: Functional protocol for ISDN
//
// References: ETSI EN 300 182-1
// Integrated Services Digital Network (ISDN);
// Generic functional protocol for the support
// of supplementary services;
// Rev: R3C
// Prodnr: CNL 113 435
// Updated: 2012.04.19.
// Contact: http://ttcn.ericsson.se
*/
Revised-Advice-of-Charge-Operations {itu-t 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 remote-operations (4) notation (0)}
notSubscribed,
notAvailable,
notImplemented,
invalidCallState
FROM Revised-General-Errors
{itu-t identified-organization etsi (0) 196 general-errors (2)}
PartyNumber
FROM Revised-Addressing-Data-Elements
{itu-t identified-organization etsi (0) 196 addressing-data-elements (6)};
chargingRequest OPERATION ::=
{
ARGUMENT ChargingCase
RESULT CHOICE {
aOCSCurrencyInfoList AOCSCurrencyInfoList,
aOCSSpecialArrInfo AOCSSpecialArrInfo,
chargingInfoFollows NULL
}
CODE local:30
}
aOCSCurrency OPERATION ::= -- AOC-S given in currency units
{
ARGUMENT CHOICE {
chargeNotAvailable NULL,
aOCSCurrencyInfoList AOCSCurrencyInfoList }
CODE local:31
}
aOCSSpecialArr OPERATION ::= -- AOC-S for special charging arrangement
{
ARGUMENT CHOICE {
chargeNotAvailable NULL,
aOCSSpecialArrInfo AOCSSpecialArrInfo }
CODE local:32
}
aOCDCurrency OPERATION ::= -- AOC-D given in currency units
{
ARGUMENT CHOICE {
chargeNotAvailable NULL,
aOCDCurrencyInfo AOCDCurrencyInfo }
CODE local:33
}
aOCDChargingUnit OPERATION ::= -- AOC-D given in charging units
{
ARGUMENT CHOICE {
chargeNotAvailable NULL,
aOCDChargingUnitInfo AOCDChargingUnitInfo }
CODE local:34
}
aOCECurrency OPERATION ::= -- AOC-E given in currency units
{
ARGUMENT CHOICE {
chargeNotAvailable NULL,
aOCECurrencyInfo AOCECurrencyInfo }
CODE local:35
}
aOCEChargingUnit OPERATION ::= -- AOC-E given in charging units
{
ARGUMENT CHOICE {
chargeNotAvailable NULL,
aOCEChargingUnitInfo AOCEChargingUnitInfo }
CODE local:36
}
ChargingCase ::=
ENUMERATED {
chargingInformationAtCallSetup (0),
chargingDuringACall (1),
chargingAtTheEndOfACall (2) }
AOCSCurrencyInfoList ::= SEQUENCE SIZE (1..10) OF AOCSCurrencyInfo
AOCSCurrencyInfo ::=
SEQUENCE {
chargedItem ChargedItem,
cc
CHOICE {
specificCurrency
CHOICE {
durationCurrency [1] DurationCurrency,
flatRateCurrency [2] FlatRateCurrency,
volumeRateCurrency [3] VolumeRateCurrency },
specialChargingCode SpecialChargingCode,
freeOfCharge [4] NULL,
currencyInfoNotAvailable [5] NULL } }
AOCSSpecialArrInfo ::= INTEGER (1..10)
ChargedItem ::=
ENUMERATED {
basicCommunication (0),
callAttempt (1),
callSetup (2),
userToUserInfo (3),
operationOfSupplementaryService (4) }
DurationCurrency ::=
SEQUENCE {
dCurrency [1] Currency,
dAmount [2] Amount,
dChargingType [3] ChargingType,
dTime [4] Time,
dGranularity [5] Time OPTIONAL }
FlatRateCurrency ::=
SEQUENCE {
fRCurrency [1] Currency,
fRAmount [2] Amount }
VolumeRateCurrency ::=
SEQUENCE {
vRCurrency [1] Currency,
vRAmount [2] Amount,
vRVolumeUnit [3] VolumeUnit }
SpecialChargingCode ::= INTEGER (1..10)
AOCDCurrencyInfo ::=
CHOICE {
specificCurrency
SEQUENCE {
recordedCurrency [1] RecordedCurrency,
typeOfChargingInfo [2] TypeOfChargingInfo,
aOCDBillingId [3] AOCDBillingId OPTIONAL },
freeOfCharge [1] NULL }
AOCDChargingUnitInfo ::=
CHOICE {
specificChargingUnits
SEQUENCE {
recordedUnitsList [1] RecordedUnitsList,
typeOfChargingInfo [2] TypeOfChargingInfo,
aOCDBillingId [3] AOCDBillingId OPTIONAL },
freeOfCharge [1] NULL }
RecordedCurrency ::=
SEQUENCE {
rCurrency [1] Currency,
rAmount [2] 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] RecordedCurrency,
aOCEBillingId [2] AOCEBillingId OPTIONAL },
freeOfCharge [1] NULL },
chargingAssociation ChargingAssociation OPTIONAL }
AOCEChargingUnitInfo ::=
SEQUENCE {
cc CHOICE {
specificChargingUnits SEQUENCE {
recordedUnitsList [1] RecordedUnitsList,
aOCEBillingId [2] AOCEBillingId OPTIONAL },
freeOfCharge [1] 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] CurrencyAmount,
multiplier [2] 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] LengthOfTimeUnit,
scale [2] 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 ::= {CODE local:16}
END