Dissect more supplementarry services
svn path=/trunk/; revision=47738
This commit is contained in:
parent
6a420594ab
commit
b38062ff8f
|
@ -0,0 +1,267 @@
|
|||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- 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
|
||||
{ccitt identified-organization etsi (0) 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
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- EN 300 138-1 Ver. 1.3.4
|
||||
--
|
||||
Closed-User-Group-Service-Operations {ccitt identified-organization etsi (0) 138 operations-and-errors (1)}
|
||||
|
||||
DEFINITIONS ::=
|
||||
BEGIN
|
||||
|
||||
EXPORTS CUGCall,
|
||||
InvalidOrUnregisteredCUGIndex,
|
||||
RequestedBasicServiceViolatesCUGConstraints,
|
||||
OutgoingCallsBarredWithinCUG,
|
||||
IncomingCallsBarredWithinCUG,
|
||||
UserNotMemeberOfCUG,
|
||||
InconsistencyInDesignatedFacilityAndSubscriberClass;
|
||||
|
||||
IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
||||
{joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
|
||||
notSubscribed,
|
||||
basicServiceNotProvided
|
||||
FROM General-Errors
|
||||
{ccitt identified-organization etsi(0) 196 general-errors};
|
||||
|
||||
|
||||
cUGcall OPERATION ::= {
|
||||
-- in Facility information element. Invoked from calling user to originating
|
||||
-- network side. Also from destination network side to called user
|
||||
ARGUMENT CUGcallArg
|
||||
-- in SETUP message
|
||||
RETURN RESULT FALSE
|
||||
|
||||
ERRORS {
|
||||
invalidOrUnregisteredCUGIndex |
|
||||
requestedBasicServiceViolatesCUGConstraints |
|
||||
outgoingCallsBarredWithinCUG |
|
||||
incomingCallsBarredWithinCUG |
|
||||
userNotMemberOfCUG |
|
||||
basicServiceNotProvided |
|
||||
inconsistencyInDesignatedFacilityAndSubscriberClass |
|
||||
notSubscribed
|
||||
}
|
||||
-- in clearing message to calling user. Also to destination network side.
|
||||
CODE local: 2}
|
||||
|
||||
|
||||
CUGcallArg ::= SEQUENCE{
|
||||
oARequested OARequested DEFAULT FALSE,
|
||||
cUGIndex CUGIndex OPTIONAL
|
||||
}
|
||||
|
||||
OARequested ::= [1] IMPLICIT BOOLEAN
|
||||
CUGIndex ::= [2] IMPLICIT INTEGER (0..32767)
|
||||
|
||||
InvalidOrUnregisteredCUGIndex ::= ERROR
|
||||
invalidOrUnregisteredCUGIndex ERROR ::= { CODE local: 16}
|
||||
RequestedBasicServiceViolatesCUGConstraints ::= ERROR
|
||||
requestedBasicServiceViolatesCUGConstraints ERROR ::= { CODE local: 17}
|
||||
OutgoingCallsBarredWithinCUG ::= ERROR
|
||||
outgoingCallsBarredWithinCUG ERROR ::= { CODE local: 18}
|
||||
IncomingCallsBarredWithinCUG ::= ERROR
|
||||
incomingCallsBarredWithinCUG ERROR ::= { CODE local: 19}
|
||||
UserNotMemberOfCUG ::= ERROR
|
||||
userNotMemberOfCUG ERROR ::= { CODE local: 20}
|
||||
InconsistencyInDesignatedFacilityAndSubscriberClass ::= ERROR
|
||||
inconsistencyInDesignatedFacilityAndSubscriberClass ERROR ::= { CODE local: 21}
|
||||
|
||||
-- cUGCall CUGCall ::= localValue 2
|
||||
|
||||
--invalidOrUnregisteredCUGIndex InvalidOrUnregisteredCUGIndex ::= localValue 16
|
||||
--requestedBasicServiceViolatesCUGConstraints RequestedBasicServiceViolatesCUGConstraints ::= localValue 17
|
||||
--outgoingCallsBarredWithinCUG OutgoingCallsBarredWithinCUG ::= localValue 18
|
||||
--incomingCallsBarredWithinCUG IncomingCallsBarredWithinCUG ::= localValue 19
|
||||
--userNotMemberOfCUG UserNotMemberOfCUG ::= localValue 20
|
||||
--inconsistencyInDesignatedFacilityAndSubscriberClass InconsistencyInDesignatedFacilityAndSubscriberClass ::= localValue 21
|
||||
|
||||
END -- Closed-User-Group-Service-Operations
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
--
|
||||
-- $Id: MCID-Operations.asn 47730 2013-02-18 06:26:09Z etxrab $
|
||||
--
|
||||
-- EN 300 185-1 Ver. 1.2.4
|
||||
--
|
||||
Conference-Add-On-Operations {ccitt identified-organization etsi (0) 185 operations-and-types (1)}
|
||||
|
||||
DEFINITIONS EXPLICIT TAGS ::=
|
||||
BEGIN
|
||||
|
||||
EXPORTS BeginCONF, AddCONF, SplitCONF, DropCONF,
|
||||
IsolateCONF, ReattachCONF, PartyDISC,
|
||||
IllConferenceId, IllPartyId,
|
||||
NumberOfPartiesExceeded,
|
||||
NotActive, NotAllowed, PartyId, ConferenceId, ConfSize;
|
||||
|
||||
IMPORTS OPERATION,
|
||||
ERROR
|
||||
FROM Remote-Operations-Information-Objects
|
||||
{joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)}
|
||||
notSubscribed, notAvailable,
|
||||
supplementaryServiceInteractionNotAllowed,
|
||||
resourceUnavailable, invalidCallState
|
||||
FROM General-Errors
|
||||
{ccitt identified-organization etsi(0) 196 general-errors (2)};
|
||||
|
||||
beginCONF OPERATION ::= {
|
||||
ARGUMENT BeginCONFArg -- optional
|
||||
RESULT BeginCONFRes
|
||||
ERRORS {notSubscribed | notAvailable |
|
||||
resourceUnavailable |
|
||||
invalidCallState |
|
||||
numberOfPartiesExceeded}
|
||||
CODE local: 40}
|
||||
|
||||
BeginCONFArg ::= ConfSize
|
||||
|
||||
BeginCONFRes ::= SEQUENCE {
|
||||
conferenceId ConferenceId,
|
||||
partyId PartyId OPTIONAL }
|
||||
|
||||
addCONF OPERATION ::= {
|
||||
ARGUMENT AddCONFArg
|
||||
RESULT AddCONFRes
|
||||
ERRORS {IllConferenceId |
|
||||
NumberOfPartiesExceeded |
|
||||
NotAllowed |
|
||||
supplementaryServiceInteractionNotAllowed |
|
||||
invalidCallState}
|
||||
CODE local: 41}
|
||||
|
||||
AddCONFArg ::= ConferenceId
|
||||
AddCONFRes ::= PartyId
|
||||
|
||||
splitCONF OPERATION ::= {
|
||||
ARGUMENT SplitCONFArg
|
||||
RETURN RESULT FALSE
|
||||
ERRORS {IllConferenceId | IllPartyId}
|
||||
CODE local: 42}
|
||||
|
||||
|
||||
SplitCONFArg ::= SEQUENCE { conferenceId ConferenceId,
|
||||
partyId PartyId}
|
||||
|
||||
dropCONF OPERATION ::= {
|
||||
ARGUMENT DropCONFArg
|
||||
RETURN RESULT FALSE
|
||||
ERRORS {IllPartyId, NotActive}
|
||||
CODE local: 43}
|
||||
|
||||
DropCONFArg ::= PartyId
|
||||
|
||||
isolateCONF OPERATION ::= {
|
||||
ARGUMENT IsolateCONFArg
|
||||
RETURN RESULT FALSE
|
||||
ERRORS {IllPartyId, NotActive}
|
||||
CODE local: 44}
|
||||
|
||||
IsolateCONFArg ::= PartyId
|
||||
|
||||
reattachCONF OPERATION ::= {
|
||||
ARGUMENT ReattachCONFArg
|
||||
RETURN RESULT FALSE
|
||||
ERRORS {IllPartyId, NotActive}
|
||||
CODE local: 45}
|
||||
|
||||
ReattachCONFArg ::= PartyId
|
||||
|
||||
partyDISC OPERATION ::= {
|
||||
ARGUMENT PartyDISCArg
|
||||
RETURN RESULT FALSE
|
||||
CODE local: 46}
|
||||
|
||||
PartyDISCArg ::= PartyId
|
||||
|
||||
--IllConferenceId ::= ERROR
|
||||
illConferenceId ERROR ::= { CODE local: 28}
|
||||
--IllPartyId ::= ERROR
|
||||
illPartyId ERROR ::= { CODE local: 29}
|
||||
--NumberOfPartiesExceeded ::= ERROR
|
||||
numberOfPartiesExceeded ERROR ::= { CODE local: 30}
|
||||
--NotActive ::= ERROR
|
||||
notActive ERROR ::= { CODE local: 31}
|
||||
--NotAllowed ::= ERROR
|
||||
notAllowed ERROR ::= { CODE local: 32}
|
||||
|
||||
PartyId ::= INTEGER (0..127)
|
||||
ConferenceId ::= INTEGER (0..127)
|
||||
ConfSize ::= INTEGER (0..127)
|
||||
|
||||
--beginCONF BeginCONF ::= 40
|
||||
--addCONF AddCONF ::= 41
|
||||
--splitCONF SplitCONF ::= 42
|
||||
--dropCONF DropCONF ::= 43
|
||||
--isolateCONF IsolateCONF ::= 44
|
||||
--reattachCONF ReattachCONF ::= 45
|
||||
--partyDISC PartyDISC ::= 46
|
||||
--illConferenceId IllConferenceId ::= 28
|
||||
--illPartyId IllPartyId ::= 29
|
||||
--numberOfPartiesExceeded NumberOfPartiesExceeded ::= 30
|
||||
--notActive NotActive ::= 31
|
||||
--notAllowed NotAllowed ::= 32
|
||||
|
||||
END -- of Conference-Add-On-Operations
|
||||
|
|
@ -73,6 +73,17 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
ARGUMENT ActivationDiversionArg
|
||||
RETURN RESULT FALSE
|
||||
ALWAYS RESPONDS FALSE
|
||||
ERRORS {
|
||||
notSubscribed,
|
||||
notAvailable,
|
||||
invalidServedUserNr,
|
||||
supplementaryServiceInteractionNotAllowed,
|
||||
basicServiceNotProvided,
|
||||
resourceUnavailable,
|
||||
invalidDivertedToNr,
|
||||
specialServiceNr,
|
||||
diversionToServedUserNr,
|
||||
invalidNoReplyTimerValue}
|
||||
CODE local: 7}
|
||||
|
||||
ActivationDiversionArg ::= SEQUENCE {
|
||||
|
@ -84,17 +95,7 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
}
|
||||
|
||||
|
||||
-- ERRORS {
|
||||
-- notSubscribed,
|
||||
-- notAvailable,
|
||||
-- invalidServedUserNr,
|
||||
-- supplementaryServiceInteractionNotAllowed,
|
||||
-- basicServiceNotProvided,
|
||||
-- resourceUnavailable,
|
||||
-- InvalidDivertedToNr,
|
||||
-- SpecialServiceNr,
|
||||
-- DiversionToServedUserNr,
|
||||
-- InvalidNoReplyTimerValue}
|
||||
|
||||
|
||||
-- End of ActivationDiversion operation definition
|
||||
|
||||
|
@ -102,6 +103,11 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
ARGUMENT DeactivationDiversionArg
|
||||
RETURN RESULT FALSE
|
||||
ALWAYS RESPONDS FALSE
|
||||
ERRORS {
|
||||
notSubscribed |
|
||||
notAvailable |
|
||||
invalidServedUserNr |
|
||||
NotActivated}
|
||||
CODE local: 8}
|
||||
|
||||
DeactivationDiversionArg ::= SEQUENCE {
|
||||
|
@ -110,12 +116,7 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
servedUserNr ServedUserNr
|
||||
}
|
||||
|
||||
-- ERRORS {
|
||||
-- notSubscribed,
|
||||
-- notAvailable,
|
||||
-- invalidServedUserNr,
|
||||
-- NotActivated}
|
||||
--
|
||||
|
||||
-- End of DeactivationDiversion operation definition
|
||||
|
||||
activationStatusNotificationDiv OPERATION ::= {
|
||||
|
@ -202,13 +203,13 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
ERRORS {
|
||||
notSubscribed |
|
||||
notAvailable |
|
||||
InvalidDivertedToNr |
|
||||
SpecialServiceNr |
|
||||
DiversionToServedUserNr |
|
||||
IncomingCallAccepted |
|
||||
NumberOfDiversionsExceeded |
|
||||
invalidDivertedToNr |
|
||||
specialServiceNr |
|
||||
diversionToServedUserNr |
|
||||
incomingCallAccepted |
|
||||
numberOfDiversionsExceeded |
|
||||
supplementaryServiceInteractionNotAllowed |
|
||||
RequestAlreadyAccepted}
|
||||
requestAlreadyAccepted}
|
||||
CODE local: 13}
|
||||
|
||||
CallDeflectionArg ::= SEQUENCE {
|
||||
|
@ -222,6 +223,15 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
ARGUMENT CallRerouteingArg
|
||||
RETURN RESULT FALSE
|
||||
ALWAYS RESPONDS FALSE
|
||||
ERRORS {
|
||||
notSubscribed |
|
||||
notAvailable |
|
||||
supplementaryServiceInteractionNotAllowed |
|
||||
resourceUnavailable |
|
||||
invalidDivertedToNr |
|
||||
specialServiceNr |
|
||||
diversionToServedUserNr |
|
||||
numberOfDiversionsExceeded}
|
||||
CODE local: 14}
|
||||
|
||||
CallRerouteingArg ::= SEQUENCE {
|
||||
|
@ -239,15 +249,6 @@ IMPORTS OPERATION, ERROR FROM Remote-Operations-Information-Objects
|
|||
-- element (optional) as specified in EN 300 403-1 [11] clause 4.5 shall be embedded in the
|
||||
-- q931InfoElement.
|
||||
|
||||
-- ERRORS {
|
||||
-- notSubscribed,
|
||||
-- notAvailable,
|
||||
-- supplementaryServiceInteractionNotAllowed,
|
||||
-- resourceUnavailable,
|
||||
-- InvalidDivertedToNr,
|
||||
-- SpecialServiceNr,
|
||||
-- DiversionToServedUserNr,
|
||||
-- NumberOfDiversionsExceeded}
|
||||
|
||||
-- End of CallRerouteing operation definition
|
||||
|
||||
|
@ -320,13 +321,28 @@ DiversionReason ::= ENUMERATED {unknown (0),
|
|||
NoReplyTimer ::= INTEGER (1..180)
|
||||
|
||||
InvalidDivertedToNr ::= ERROR
|
||||
invalidDivertedToNr ERROR ::= { CODE local: 12}
|
||||
|
||||
SpecialServiceNr ::= ERROR
|
||||
specialServiceNr ERROR ::= { CODE local: 14}
|
||||
|
||||
DiversionToServedUserNr ::= ERROR
|
||||
diversionToServedUserNr ERROR ::= { CODE local: 15}
|
||||
|
||||
IncomingCallAccepted ::= ERROR
|
||||
incomingCallAccepted ERROR ::= { CODE local: 23}
|
||||
|
||||
NumberOfDiversionsExceeded ::= ERROR
|
||||
numberOfDiversionsExceeded ERROR ::= { CODE local: 24}
|
||||
|
||||
NotActivated ::= ERROR
|
||||
notActivated ERROR ::= { CODE local: 46}
|
||||
|
||||
RequestAlreadyAccepted ::= ERROR
|
||||
requestAlreadyAccepted ERROR ::= { CODE local: 48}
|
||||
|
||||
InvalidNoReplyTimerValue ::= ERROR
|
||||
--invalidNoReplyTimerValue ERROR ::= { CODE local: xx}
|
||||
|
||||
--deactivationDiversion DeactivationDiversion ::= localValue 8
|
||||
--activationStatusNotificationDiv ActivationStatusNotificationDiv ::= localValue 9
|
||||
|
|
|
@ -15,50 +15,51 @@ EXPORTS notSubscribed, notAvailable, notImplemented, invalidServ
|
|||
supplementaryServiceInteractionNotAllowed, resourceUnavailable;
|
||||
|
||||
IMPORTS ERROR
|
||||
FROM Remote-Operation-Notation
|
||||
{joint-iso-itu-t remote-operations(4) notation(0)};
|
||||
FROM Remote-Operations-Information-Objects
|
||||
{joint-iso-itu-t (2) remote-operations (4) informationObjects(5) version1(0)};
|
||||
|
||||
notSubscribed ERROR ::= { CODE local: 0}
|
||||
|
||||
notSubscribed ERROR ::= 0
|
||||
|
||||
-- The requested service or function has not been subscribed for the basic service, and
|
||||
-- optionally the served user's ISDN number, included in the activation invoke component.
|
||||
-- Alternatively the basic service may not have been subscribed.
|
||||
|
||||
|
||||
notAvailable ERROR ::= 3
|
||||
notAvailable ERROR ::= { CODE local: 3}
|
||||
|
||||
-- The requested supplementary service or function is not available for the basic service,
|
||||
-- and optionally the served user's ISDN number (e.g. temporary fault).
|
||||
|
||||
notImplemented ERROR ::= 4
|
||||
notImplemented ERROR ::= { CODE local: 4}
|
||||
|
||||
-- The supplementary service or function requested is not implemented for the basic
|
||||
-- service, and optionally the served user's ISDN number (e.g. service not provided).
|
||||
|
||||
invalidServedUserNr ERROR ::= 6
|
||||
invalidServedUserNr ERROR ::= { CODE local: 6}
|
||||
|
||||
-- The served user's number provided is not a valid number.
|
||||
|
||||
invalidCallState ERROR ::= 7
|
||||
invalidCallState ERROR ::= { CODE local: 7}
|
||||
|
||||
-- The supplementary service or function cannot be requested in the current basic call state
|
||||
-- or auxiliary state.
|
||||
|
||||
basicServiceNotProvided ERROR ::= 8
|
||||
basicServiceNotProvided ERROR ::= { CODE local: 8}
|
||||
|
||||
-- The served user has not subscribed to the basic service (bearer and/or teleservice) for
|
||||
-- which the supplementary service or function was requested.
|
||||
|
||||
notIncomingCall ERROR ::= 9
|
||||
notIncomingCall ERROR ::= { CODE local: 9}
|
||||
|
||||
-- The supplementary service or function was not requested for an incoming call.
|
||||
|
||||
supplementaryServiceInteractionNotAllowed ERROR ::= 10
|
||||
supplementaryServiceInteractionNotAllowed ERROR ::= { CODE local: 10}
|
||||
|
||||
-- The performance of the requested supplementary service or function is prohibited
|
||||
-- by another supplementary service or function.
|
||||
|
||||
resourceUnavailable ERROR ::= 11
|
||||
resourceUnavailable ERROR ::= { CODE local: 11}
|
||||
|
||||
-- The resources required to perform adequately the requested supplementary service or
|
||||
-- function are not available.
|
||||
|
|
|
@ -30,7 +30,12 @@ ASN_FILE_LIST = \
|
|||
Addressing-Data-Elements.asn \
|
||||
Basic-Service-Elements.asn \
|
||||
Embedded-Q931-Types.asn \
|
||||
Diversion-Operations.asn
|
||||
General-Errors.asn \
|
||||
Advice-of-Charge-Operations.asn \
|
||||
Closed-User-Group-Service-Operations.asn \
|
||||
Conference-Add-On-Operations.asn \
|
||||
Diversion-Operations.asn \
|
||||
MCID-Operations.asn
|
||||
|
||||
# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
|
||||
# files do not exist for all protocols: Please add/remove as required.
|
||||
|
|
|
@ -15,12 +15,14 @@ GROUP_BY_PROT
|
|||
|
||||
#.MODULE
|
||||
Diversion-Operations isdn-sup
|
||||
|
||||
MCID-Operations isdn-sup
|
||||
Closed-User-Group-Service-Operations isdn-sup
|
||||
Advice-of-Charge-Operations isdn-sup
|
||||
#.PDU_NEW
|
||||
|
||||
OPERATION.&ArgumentType
|
||||
OPERATION.&ResultType
|
||||
#ERROR.&ParameterType
|
||||
ERROR.&ParameterType
|
||||
|
||||
#.END
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
/* Initialize the protocol and registered fields */
|
||||
static int proto_isdn_sup = -1;
|
||||
static int hf_isdn_sup_operation = -1;
|
||||
static int hf_isdn_sup_error = -1;
|
||||
|
||||
/* Global variables */
|
||||
|
||||
|
@ -54,17 +55,23 @@ typedef struct _isdn_sup_op_t {
|
|||
new_dissector_t res_pdu;
|
||||
} isdn_sup_op_t;
|
||||
|
||||
|
||||
typedef struct isdn_sup_err_t {
|
||||
gint32 errcode;
|
||||
new_dissector_t err_pdu;
|
||||
} isdn_sup_err_t;
|
||||
|
||||
static const value_string isdn_sup_str_operation[] = {
|
||||
#include "packet-isdn-sup-table10.c"
|
||||
{ 0, NULL}
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
||||
static const value_string isdn_sup_str_error[] = {
|
||||
#include "packet-isdn-sup-table20.c"
|
||||
{ 0, NULL}
|
||||
};
|
||||
#endif
|
||||
|
||||
static int hf_isdn_sup = -1;
|
||||
|
||||
#include "packet-isdn-sup-hf.c"
|
||||
|
@ -86,11 +93,11 @@ static const isdn_sup_op_t isdn_sup_op_tab[] = {
|
|||
#include "packet-isdn-sup-table11.c"
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
||||
static const isdn_sup_err_t isdn_sup_err_tab[] = {
|
||||
#include "packet-isdn-sup-table21.c"
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
static const isdn_sup_op_t *get_op(gint32 opcode) {
|
||||
int i;
|
||||
|
@ -102,6 +109,16 @@ static const isdn_sup_op_t *get_op(gint32 opcode) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static const isdn_sup_err_t *get_err(gint32 errcode) {
|
||||
int i;
|
||||
|
||||
/* search from the end to get the last occurence if the operation is redefined in some newer specification */
|
||||
for (i = array_length(isdn_sup_err_tab) - 1; i >= 0; i--)
|
||||
if (isdn_sup_err_tab[i].errcode == errcode)
|
||||
return &isdn_sup_err_tab[i];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*--- dissect_isdn_sup_arg ------------------------------------------------------*/
|
||||
static int
|
||||
dissect_isdn_sup_arg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
|
||||
|
@ -197,6 +214,51 @@ dissect_isdn_sup_res(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *
|
|||
}
|
||||
|
||||
|
||||
/*--- dissect_isdn_sup_err ------------------------------------------------------*/
|
||||
static int
|
||||
dissect_isdn_sup_err(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
|
||||
int offset;
|
||||
rose_ctx_t *rctx;
|
||||
gint32 errcode;
|
||||
const isdn_sup_err_t *err_ptr;
|
||||
const gchar *p;
|
||||
proto_item *ti;
|
||||
proto_tree *isdn_sup_tree;
|
||||
|
||||
offset = 0;
|
||||
rctx = get_rose_ctx(pinfo->private_data);
|
||||
DISSECTOR_ASSERT(rctx);
|
||||
if (rctx->d.pdu != 3) /* returnError */
|
||||
return offset;
|
||||
if (rctx->d.code != 0) /* local */
|
||||
return offset;
|
||||
errcode = rctx->d.code_local;
|
||||
err_ptr = get_err(errcode);
|
||||
if (!err_ptr)
|
||||
return offset;
|
||||
|
||||
ti = proto_tree_add_item(tree, proto_isdn_sup, tvb, offset, tvb_length(tvb), ENC_NA);
|
||||
isdn_sup_tree = proto_item_add_subtree(ti, ett_isdn_sup);
|
||||
|
||||
proto_tree_add_uint(isdn_sup_tree, hf_isdn_sup_error, tvb, 0, 0, errcode);
|
||||
p = match_strval(errcode, VALS(isdn_sup_str_error));
|
||||
if (p) {
|
||||
proto_item_append_text(ti, ": %s", p);
|
||||
proto_item_append_text(rctx->d.code_item, " - %s", p);
|
||||
if (rctx->apdu_depth >= 0)
|
||||
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), rctx->apdu_depth), " %s", p);
|
||||
}
|
||||
|
||||
if (err_ptr->err_pdu)
|
||||
offset = err_ptr->err_pdu(tvb, pinfo, isdn_sup_tree, NULL);
|
||||
else
|
||||
if (tvb_length_remaining(tvb, offset) > 0) {
|
||||
proto_tree_add_text(isdn_sup_tree, tvb, offset, -1, "UNSUPPORTED ERROR TYPE (ETSI sup)");
|
||||
offset += tvb_length_remaining(tvb, offset);
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
/*--- proto_reg_handoff_isdn_sup ---------------------------------------*/
|
||||
|
@ -208,6 +270,7 @@ void proto_reg_handoff_isdn_sup(void) {
|
|||
#endif
|
||||
dissector_handle_t isdn_sup_arg_handle;
|
||||
dissector_handle_t isdn_sup_res_handle;
|
||||
dissector_handle_t isdn_sup_err_handle;
|
||||
|
||||
#if 0
|
||||
q931_handle = find_dissector("q931");
|
||||
|
@ -220,6 +283,13 @@ void proto_reg_handoff_isdn_sup(void) {
|
|||
dissector_add_uint("q932.ros.etsi.local.res", isdn_sup_op_tab[i].opcode, isdn_sup_res_handle);
|
||||
}
|
||||
|
||||
isdn_sup_err_handle = new_create_dissector_handle(dissect_isdn_sup_err, proto_isdn_sup);
|
||||
|
||||
for (i=0; i<(int)array_length(isdn_sup_err_tab); i++) {
|
||||
dissector_add_uint("q932.ros.etsi.local.err", isdn_sup_err_tab[i].errcode, isdn_sup_err_handle);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void proto_register_isdn_sup(void) {
|
||||
|
@ -236,6 +306,12 @@ void proto_register_isdn_sup(void) {
|
|||
FT_UINT8, BASE_DEC, VALS(isdn_sup_str_operation), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
{ &hf_isdn_sup_error,
|
||||
{ "Error", "isdn_sup.error",
|
||||
FT_UINT8, BASE_DEC, VALS(isdn_sup_str_error), 0x0,
|
||||
NULL, HFILL }
|
||||
},
|
||||
|
||||
#include "packet-isdn-sup-hfarr.c"
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue