H.450 regenerated from original ASN.1 sources

svn path=/trunk/; revision=22417
This commit is contained in:
Tomas Kukosa 2007-07-30 08:01:59 +00:00
parent 4142a2b90f
commit 5a46ea46b5
32 changed files with 8288 additions and 7001 deletions

View File

@ -154,12 +154,30 @@ EXTRA_DIST = \
h248/MEGACO.asn \
h248/packet-h248-template.c \
h248/packet-h248-template.h \
h450/h4501.asn \
h450/H4501-Supplementary-ServiceAPDU-Structure.asn \
h450/Addressing-Data-Elements.asn \
h450/H225-generic-parameters-definition.asn \
h450/Manufacturer-specific-service-extension-definition.asn \
h450/H4501-General-Error-List.asn \
h450/Call-Transfer-Operations.asn \
h450/Call-Diversion-Operations.asn \
h450/Call-Hold-Operations.asn \
h450/Call-Park-Pickup-Operations.asn \
h450/Call-Waiting-Operations.asn \
h450/Message-Waiting-Indication-Operations.asn \
h450/Name-Operations.asn \
h450/Call-Completion-Operations.asn \
h450/Call-Offer-Operations.asn \
h450/Call-Intrusion-Operations.asn \
h450/Common-Information-Operations.asn \
h450/Remote-Operations-Apdus.asn \
h450/h450.cnf \
h450/h450-ros.cnf \
h450/Makefile \
h450/Makefile.nmake \
h450/packet-h450-template.c \
h450/packet-h450-template.h \
h450/packet-h450-ros-template.c \
h450/packet-h450-ros-template.h \
inap/inap.asn \
inap/inap.cnf \
inap/Makefile \

View File

@ -0,0 +1,127 @@
-- Addressing-Data-Elements.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Addressing-Data-Elements.asn
--
-- $Id$
--
-- Module Addressing-Data-Elements (H.450.1:02/1998)
Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
addressing-data-elements(9)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
AliasAddress, PartyNumber, PresentationIndicator, ScreeningIndicator
FROM H323-MESSAGES; -- see H.225.0
PresentedAddressScreened ::= CHOICE {
presentationAllowedAddress AddressScreened,
presentationRestricted NULL,
numberNotAvailableDueToInterworking NULL,
presentationRestrictedAddress AddressScreened,
...
}
PresentedAddressUnscreened ::= CHOICE {
presentationAllowedAddress Address,
presentationRestricted NULL,
numberNotAvailableDueToInterworking NULL,
presentationRestrictedAddress Address,
...
}
PresentedNumberScreened ::= CHOICE {
presentationAllowedAddress NumberScreened,
presentationRestricted NULL,
numberNotAvailableDueToInterworking NULL,
presentationRestrictedAddress NumberScreened,
...
}
PresentedNumberUnscreened ::= CHOICE {
presentationAllowedAddress PartyNumber,
presentationRestricted NULL,
numberNotAvailableDueToInterworking NULL,
presentationRestrictedAddress PartyNumber,
...
}
AddressScreened ::= SEQUENCE {
partyNumber PartyNumber,
screeningIndicator ScreeningIndicator,
partySubaddress PartySubaddress OPTIONAL,
...
}
NumberScreened ::= SEQUENCE {
partyNumber PartyNumber,
screeningIndicator ScreeningIndicator,
...
}
Address ::= SEQUENCE {
partyNumber PartyNumber,
partySubaddress PartySubaddress OPTIONAL,
...
}
-- PartyNumber defined in Recommendation H.225.0
-- PublicPartyNumber defined in Recommendation H.225.0
-- PrivatePartyNumber defined in Recommendation H.225.0
-- NumberDigits defined in Recommendation H.225.0
-- PublicTypeOfNumber defined in Recommendation H.225.0
-- PrivateTypeOfNumber defined in Recommendation H.225.0
-- PresentationIndicator defined in Recommendation H.225.0 (v3 and beyond)
-- ScreeningIndicator defined in Recommendation H.225.0 (v3 and beyond)
EndpointAddress ::= SEQUENCE {
destinationAddress SEQUENCE OF AliasAddress,
-- multiple alias addresses may be used to address the same H.323 endpoint
remoteExtensionAddress AliasAddress OPTIONAL,
...,
destinationAddressPresentationIndicator
PresentationIndicator OPTIONAL,
-- Note 1, 2
destinationAddressScreeningIndicator ScreeningIndicator OPTIONAL,
remoteExtensionAddressPresentationIndicator
PresentationIndicator OPTIONAL,
-- Note 1, 2
remoteExtensionAddressScreeningIndicator ScreeningIndicator OPTIONAL
}
-- Note 1: If this element is not available, presentation allowed shall be assumed.
-- Note 2: If an H.450 APDU that carries this element EndpointAddress also
-- contains an element PresentationAllowedIndicator, then the setting of the
-- element PresentationAllowedIndicator shall take precedence in case of
-- conflicting presentation information.
PartySubaddress ::= CHOICE {
userSpecifiedSubaddress UserSpecifiedSubaddress,
-- not recommended.
nsapSubaddress NSAPSubaddress,
-- according to Recommendation X.213.
...
}
UserSpecifiedSubaddress ::= SEQUENCE {
subaddressInformation SubaddressInformation,
oddCountIndicator BOOLEAN OPTIONAL,
-- used when the coding of subaddress is BCD
...
}
NSAPSubaddress ::= OCTET STRING(SIZE (1..20))
-- specified according to X.213. Some networks may
-- limit the subaddress value to some other length
-- e.g. 4 octets
SubaddressInformation ::= OCTET STRING(SIZE (1..20))
-- coded according to user requirements. Some networks
-- may limit the subaddress value to some other length
-- e.g. 4 octets
PresentationAllowedIndicator ::= BOOLEAN
END -- of Addressing-Data-Elements
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,156 @@
-- Call-Completion-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.9/2000/Call-Completion-Operations.asn
--
-- $Id$
--
-- Module Call-Completion-Operations (H.450.9:11/2000)
Call-Completion-Operations {itu-t recommendation h 450 9 version1(0)
call-completion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
CallIdentifier
FROM H323-MESSAGES -- see ITU-T H.225.0
EndpointAddress
FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
addressing-data-elements(9)}
MixedExtension, undefined
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)}
supplementaryServiceInteractionNotAllowed
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)}
BasicService
FROM Message-Waiting-Indication-Operations {itu-t recommendation h
450 7 version1(0) message-waiting-operations(0)};
H323CallCompletionOperations OPERATION ::=
{ccbsRequest | ccnrRequest | ccCancel | ccExecPossible | ccRingout |
ccSuspend | ccResume}
ccbsRequest OPERATION ::= {
ARGUMENT CcRequestArg
RESULT CcRequestRes
ERRORS
{shortTermRejection | longTermRejection | undefined |
supplementaryServiceInteractionNotAllowed}
CODE local:40
}
ccnrRequest OPERATION ::= {
ARGUMENT CcRequestArg
RESULT CcRequestRes
ERRORS
{shortTermRejection | longTermRejection | undefined |
supplementaryServiceInteractionNotAllowed}
CODE local:27
}
ccCancel OPERATION ::= {
ARGUMENT CcArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:28
}
ccExecPossible OPERATION ::= {
ARGUMENT CcArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:29
}
ccRingout OPERATION ::= {
ARGUMENT CcShortArg
OPTIONAL TRUE
RETURN RESULT FALSE
ERRORS {remoteUserBusyAgain | failureToMatch | undefined}
CODE local:31
}
ccSuspend OPERATION ::= {
ARGUMENT CcShortArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:32
}
ccResume OPERATION ::= {
ARGUMENT CcArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:33
}
CcRequestArg ::= SEQUENCE {
numberA EndpointAddress,
numberB EndpointAddress,
ccIdentifier CallIdentifier OPTIONAL,
-- If present, it shall be used as the prime mechanism for associating
-- the unsuccessful call, the CC Request and the CC Call.
service BasicService,
can-retain-service BOOLEAN,
retain-sig-connection BOOLEAN OPTIONAL,
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CcRequestRes ::= SEQUENCE {
retain-service BOOLEAN,
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CcArg ::= CHOICE {
shortArg CcShortArg, -- if signalling conection is retained
longArg CcLongArg, -- if connection release option applies
...
}
CcShortArg ::= SEQUENCE {
ccIdentifier CallIdentifier OPTIONAL,
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CcLongArg ::= SEQUENCE {
numberA EndpointAddress OPTIONAL,
numberB EndpointAddress OPTIONAL,
ccIdentifier CallIdentifier OPTIONAL,
service BasicService OPTIONAL,
-- these elements are used to identify the proper CC Request.
-- The ccIdentifier if present shall be the prime mechanism for this purpose.
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
shortTermRejection ERROR ::= {CODE local:1010
}
longTermRejection ERROR ::= {CODE local:1011
}
remoteUserBusyAgain ERROR ::= {CODE local:1012
}
failureToMatch ERROR ::= {CODE local:1013
}
END -- of Call-Completion-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,325 @@
-- Call-Diversion-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.3/1998/Call-Diversion-Operations.asn
--
-- $Id$
--
-- Module Call-Diversion-Operations (H.450.3:02/1998)
Call-Diversion-Operations {itu-t recommendation h 450 3 version1(0)
call-diversion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
H225InformationElement
FROM H225-generic-parameters-definition {itu-t recommendation h 450
1 version1(0) h225-generic-parameters(6)}
NonStandardParameter
FROM H323-MESSAGES
EndpointAddress, PartySubaddress, PresentationAllowedIndicator
FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
addressing-data-elements(9)}
userNotSubscribed, notAvailable, invalidServedUserNumber,
basicServiceNotProvided, resourceUnavailable,
supplementaryServiceInteractionNotAllowed
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)};
H323CallDiversionOperations OPERATION ::=
{activateDiversionQ | deactivateDiversionQ | interrogateDiversionQ |
checkRestriction | callRerouting | divertingLegInformation1 |
divertingLegInformation2 | divertingLegInformation3 |
divertingLegInformation4 | cfnrDivertedLegFailed}
activateDiversionQ OPERATION ::=
{ -- sent from the activating h.323-endpoint to the served h.323-endpoint
ARGUMENT
SEQUENCE {procedure Procedure,
basicService BasicService,
divertedToAddress EndpointAddress,
servedUserNr EndpointAddress,
activatingUserNr EndpointAddress,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RESULT
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter}
OPTIONAL TRUE
ERRORS
{userNotSubscribed | notAvailable | invalidServedUserNumber |
basicServiceNotProvided | resourceUnavailable | invalidDivertedNumber |
specialServiceNumber | diversionToServedUserNumber |
temporarilyUnavailable | notAuthorized | unspecified}
CODE local:15
}
deactivateDiversionQ OPERATION ::=
{ -- sent from the deactivating h.323-endpoint to the served h.323-endpoint
ARGUMENT
SEQUENCE {procedure Procedure,
basicService BasicService,
servedUserNr EndpointAddress,
deactivatingUserNr EndpointAddress,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RESULT
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter}
OPTIONAL TRUE
ERRORS
{userNotSubscribed | notAvailable | invalidServedUserNumber |
temporarilyUnavailable | notAuthorized | unspecified}
CODE local:16
}
interrogateDiversionQ OPERATION ::=
{ -- sent from the interrogating h.323-endpoint to the served h.323-endpoint
ARGUMENT
SEQUENCE {procedure Procedure,
basicService BasicService DEFAULT allServices,
servedUserNr EndpointAddress,
interrogatingUserNr EndpointAddress,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RESULT IntResultList
ERRORS
{userNotSubscribed | notAvailable | invalidServedUserNumber |
temporarilyUnavailable | notAuthorized | unspecified}
CODE local:17
}
checkRestriction OPERATION ::=
{ -- sent from the served h.323-endpoint to the diverted-to h.323-endpoint
ARGUMENT
SEQUENCE {servedUserNr EndpointAddress,
basicService BasicService,
divertedToNr EndpointAddress,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RESULT
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter}
OPTIONAL TRUE
ERRORS
{notAvailable | invalidServedUserNumber | invalidDivertedNumber |
specialServiceNumber | unspecified}
CODE local:18
}
callRerouting OPERATION ::=
{ -- sent from the served h.323-endpoint to the rerouting h.323-endpoint
ARGUMENT
SEQUENCE {reroutingReason DiversionReason,
originalReroutingReason DiversionReason OPTIONAL,
calledAddress EndpointAddress,
diversionCounter INTEGER(1..15),
h225InfoElement H225InformationElement,
-- The H.225 information elements Bearer capability,
-- High layer compatibility, Low layer compatibility and
-- Progress Indicator information element may be embedded
-- in the h225InfoElement in accordance with H.450.1.
lastReroutingNr EndpointAddress,
subscriptionOption SubscriptionOption,
callingPartySubaddress PartySubaddress OPTIONAL,
callingNumber EndpointAddress,
callingInfo BMPString(SIZE (1..128)) OPTIONAL,
originalCalledNr EndpointAddress OPTIONAL,
redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
originalCalledInfo BMPString(SIZE (1..128)) OPTIONAL,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RESULT
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter}
OPTIONAL TRUE
ERRORS
{userNotSubscribed | notAvailable | resourceUnavailable |
invalidDivertedNumber | specialServiceNumber |
diversionToServedUserNumber | numberOfDiversionsExceeded |
supplementaryServiceInteractionNotAllowed | unspecified}
CODE local:19
}
divertingLegInformation1 OPERATION ::=
{ -- sent from the re-routing h.323-endpoint to the originating h.323-endpoint
-- if the re-routing endpoint equals the originating endpoint, this operation
-- is not applicable; may also be sent from the rerouting endpoint to other
-- members of a conference, if subscription option allows.
ARGUMENT
SEQUENCE {diversionReason DiversionReason,
subscriptionOption SubscriptionOption,
nominatedNr EndpointAddress,
nominatedInfo BMPString(SIZE (1..128)) OPTIONAL,
redirectingNr EndpointAddress OPTIONAL,
redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:20
}
divertingLegInformation2 OPERATION ::=
{ --sent from the re-routing h.323-endpoint to the diverted-to h.323-endpoint
ARGUMENT
SEQUENCE {diversionCounter INTEGER(1..15),
diversionReason DiversionReason,
originalDiversionReason DiversionReason OPTIONAL,
divertingNr EndpointAddress OPTIONAL,
originalCalledNr EndpointAddress OPTIONAL,
redirectingInfo BMPString(SIZE (1..128)) OPTIONAL,
originalCalledInfo BMPString(SIZE (1..128)) OPTIONAL,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
-- The divertingNr element is mandatory except in the case of interworking
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:21
}
divertingLegInformation3 OPERATION ::= {
--sent from the diverted-to h.323-endpoint to the originating h.323-endpoint
ARGUMENT
SEQUENCE {presentationAllowedIndicator PresentationAllowedIndicator,
redirectionNr EndpointAddress OPTIONAL,
redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:22
}
divertingLegInformation4 OPERATION ::= {
-- If call diversion in not performed by the forwarding terminal but by a
-- gatekeeper, the gatekeeper may send divertingLegInformation4 apdu to the
-- forwarding terminal.
ARGUMENT
SEQUENCE {diversionReason DiversionReason,
subscriptionOption SubscriptionOption,
callingNr EndpointAddress,
callingInfo BMPString(SIZE (1..128)) OPTIONAL,
nominatedNr EndpointAddress,
nominatedInfo BMPString(SIZE (1..128)) OPTIONAL,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:100
}
cfnrDivertedLegFailed OPERATION ::=
{ -- sent from the rerouting h.323-terminal to the served h.323-endpoint
ARGUMENT
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter}
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:23
}
-- This indicates that the diverted-to leg has been cleared during SS-CFNR execution.
-- Definitions of general used data types:
DiversionReason ::= ENUMERATED {unknown(0), cfu(1), cfb(2), cfnr(3), ...
}
-- The value unknown is only used if received from another network when interworking.
IntResultList ::= SET SIZE (0..29) OF IntResult
IntResult ::= SEQUENCE {
servedUserNr EndpointAddress,
basicService BasicService,
procedure Procedure,
divertedToAddress EndpointAddress,
remoteEnabled BOOLEAN DEFAULT FALSE,
extension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
Procedure ::= ENUMERATED {cfu(0), cfb(1), cfnr(2), ...
}
SubscriptionOption ::= ENUMERATED {
noNotification(0), notificationWithoutDivertedToNr(1),
notificationWithDivertedToNr(2), ...
}
invalidDivertedNumber ERROR ::= {CODE local:12
}
specialServiceNumber ERROR ::= {CODE local:14
}
diversionToServedUserNumber ERROR ::= {CODE local:15
}
numberOfDiversionsExceeded ERROR ::= {CODE local:24
}
temporarilyUnavailable ERROR ::= {CODE local:1000
}
notAuthorized ERROR ::= {CODE local:1007
}
unspecified ERROR ::= {
PARAMETER
CHOICE {extension Extension{{ExtensionSet}},
nonStandard NonStandardParameter}
CODE local:1008
}
BasicService ::= ENUMERATED {
allServices(0),
-- speech (1),
-- unrestrictedDigitalInformation (2),
-- audio3.1KHz (3),
-- telephony (32),
-- teletex (33),
-- telefaxGroup4Class1 (34),
-- videotexSyntaxBased (35),
-- videotelephony (36),
...
}
-- For multimedia calls the value "allServices" shall be used only.
-- The usage of the other codepoints for multimedia calls is for further study.
ExtensionSeq ::= SEQUENCE OF Extension{{ExtensionSet}}
ExtensionSet EXTENSION ::=
{...}
-- Actual values defined by individual manufacturers
END -- of Call-Diversion-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,133 @@
-- Call-Hold-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.4/1999/Call-Hold-Operations.asn
--
-- $Id$
--
-- Module Call-Hold-Operations (H.450.4:05/1999)
Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
notAvailable, invalidCallState, resourceUnavailable,
supplementaryServiceInteractionNotAllowed
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)}
NonStandardParameter
FROM H323-MESSAGES; -- see H.225.0
CallHoldOperations OPERATION ::=
{holdNotific | retrieveNotific | remoteHold | remoteRetrieve}
holdNotific OPERATION ::=
{ -- sent from holding to held H.323 endpoint to invoke near-end call hold feature
ARGUMENT HoldNotificArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:101
}
HoldNotificArg ::= SEQUENCE {
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
retrieveNotific OPERATION ::=
{ -- sent from holding to held H.323 endpoint to invoke retrieval of near-end call hold feature
ARGUMENT RetrieveNotificArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:102
}
RetrieveNotificArg ::= SEQUENCE {
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
remoteHold OPERATION ::=
{ -- sent from holding to held H.323 endpoint to invoke remote-end call hold feature
ARGUMENT RemoteHoldArg
OPTIONAL TRUE
RESULT RemoteHoldRes
OPTIONAL TRUE
ERRORS
{notAvailable
| -- feature not available in combination with the basic service
invalidCallState | --hold not possible in current call state
resourceUnavailable | -- maximum number of calls on hold reached
supplementaryServiceInteractionNotAllowed |
-- other supplementary service prohibits hold
undefined -- undefined reason--}
CODE local:103
}
RemoteHoldArg ::= SEQUENCE {
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
RemoteHoldRes ::= SEQUENCE {
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
remoteRetrieve OPERATION ::=
{ -- sent from holding to held H.323 endpoint to invoke retrieval of remote-end call hold feature
ARGUMENT RemoteRetrieveArg
OPTIONAL TRUE
RESULT RemoteRetrieveRes
OPTIONAL TRUE
ERRORS
{invalidCallState |
-- Call to which retrieve request applies is not in state Hold_RE_Held
undefined -- undefined reason--}
CODE local:104
}
RemoteRetrieveArg ::= SEQUENCE {
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
RemoteRetrieveRes ::= SEQUENCE {
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
MixedExtension ::= CHOICE {
extension Extension{{ExtensionSet}},
nonStandardData NonStandardParameter
}
ExtensionSet EXTENSION ::=
{...}
-- Actual values defined by individual manufacturers
undefined ERROR ::= {
PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
OPTIONAL TRUE
CODE local:2002
}
END -- of Call-Hold-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,211 @@
-- Call-Intrusion-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.11/2001/Call-Intrusion-Operations.asn
--
-- $Id$
--
-- Module Call-Intrusion-Operations (H.450.11:03/2001)
Call-Intrusion-Operations {itu-t recommendation h 450 11 version1(0)
call-intrusion-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
CallIdentifier
FROM H323-MESSAGES -- see H.225.0
MixedExtension, undefined
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)}
notAvailable, supplementaryServiceInteractionNotAllowed
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)}
callWaiting
FROM Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
call-waiting-operations(0)}
cfbOverride, remoteUserAlerting
FROM Call-Offer-Operations {itu-t recommendation h 450 10 version1(0)
call-offer-operations(0)};
H323CallIntrusionOperations OPERATION ::=
{callIntrusionRequest | callIntrusionGetCIPL | callIntrusionIsolate |
callIntrusionForcedRelease | callIntrusionWOBRequest |
callIntrusionSilentMonitor | callIntrusionNotification | cfbOverride |
remoteUserAlerting | callWaiting}
-- callWaiting is only used for interaction with Call Transfer
callIntrusionRequest OPERATION ::= {
ARGUMENT CIRequestArg
RESULT CIRequestRes
ERRORS
{notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
undefined | supplementaryServiceInteractionNotAllowed}
CODE local:43
}
callIntrusionGetCIPL OPERATION ::= {
ARGUMENT CIGetCIPLOptArg
OPTIONAL TRUE
RESULT CIGetCIPLRes
ALWAYS RESPONDS FALSE
CODE local:44
}
callIntrusionIsolate OPERATION ::= {
ARGUMENT CIIsOptArg
OPTIONAL TRUE
RESULT CIIsOptRes
OPTIONAL TRUE
ERRORS
{notAvailable | undefined | supplementaryServiceInteractionNotAllowed}
CODE local:45
}
callIntrusionForcedRelease OPERATION ::= {
ARGUMENT CIFrcRelArg
OPTIONAL TRUE
RESULT CIFrcRelOptRes
OPTIONAL TRUE
ERRORS
{notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
undefined | supplementaryServiceInteractionNotAllowed}
CODE local:46
}
callIntrusionWOBRequest OPERATION ::= {
ARGUMENT CIWobOptArg
OPTIONAL TRUE
RESULT CIWobOptRes
OPTIONAL TRUE
ERRORS
{notAvailable | undefined | supplementaryServiceInteractionNotAllowed}
CODE local:47
}
callIntrusionSilentMonitor OPERATION ::= {
ARGUMENT CISilentArg
RESULT CISilentOptRes
OPTIONAL TRUE
ERRORS
{notAvailable | notBusy | temporarilyUnavailable | notAuthorized |
undefined | supplementaryServiceInteractionNotAllowed}
CODE local:116
}
callIntrusionNotification OPERATION ::= {
ARGUMENT CINotificationArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:117
}
CIRequestArg ::= SEQUENCE {
ciCapabilityLevel CICapabilityLevel,
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIRequestRes ::= SEQUENCE {
ciStatusInformation CIStatusInformation,
resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIGetCIPLOptArg ::= SEQUENCE {
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIGetCIPLRes ::= SEQUENCE {
ciProtectionLevel CIProtectionLevel,
silentMonitoringPermitted NULL OPTIONAL,
resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIIsOptArg ::= SEQUENCE {
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIIsOptRes ::= SEQUENCE {
resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIFrcRelArg ::= SEQUENCE {
ciCapabilityLevel CICapabilityLevel,
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIFrcRelOptRes ::= SEQUENCE {
resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIWobOptArg ::= SEQUENCE {
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CIWobOptRes ::= SEQUENCE {
resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CISilentArg ::= SEQUENCE {
ciCapabilityLevel CICapabilityLevel,
specificCall CallIdentifier OPTIONAL,
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CISilentOptRes ::= SEQUENCE {
resultExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CINotificationArg ::= SEQUENCE {
ciStatusInformation CIStatusInformation,
argumentExtension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CICapabilityLevel ::= INTEGER {
intrusionLowCap(1), intrusionMediumCap(2), intrusionHighCap(3)}(1..3)
CIProtectionLevel ::= INTEGER {
lowProtection(0), mediumProtection(1), highProtection(2), fullProtection(3)
}(0..3)
CIStatusInformation ::= CHOICE {
callIntrusionImpending NULL,
callIntruded NULL,
callIsolated NULL,
callForceReleased NULL,
callIntrusionComplete NULL,
callIntrusionEnd NULL,
...
}
notBusy ERROR ::= {CODE local:1009
} -- used when the called user is not busy
temporarilyUnavailable ERROR ::= {CODE local:1000
} -- used when conditions for invocation of SS-CI
-- are momentarily not met
notAuthorized ERROR ::= {CODE local:1007
} -- used when a SS-CI request is rejected
-- because of insufficient CICL or if silent
-- monitoring is not permitted
END -- of Call-Intrusion-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,73 @@
-- Call-Offer-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.10/2001/Call-Offer-Operations.asn
--
-- $Id$
--
-- Module Call-Offer-Operations (H.450.10:03/2001)
Call-Offer-Operations {itu-t recommendation h 450 10 version1(0)
call-offer-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
MixedExtension
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)}
callWaiting
FROM Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
call-waiting-operations(0)};
H323CallOfferOperations OPERATION ::=
{callOfferRequest | callWaiting | remoteUserAlerting | cfbOverride}
callOfferRequest OPERATION ::= -- sent from calling to called endpoint
{
ARGUMENT CoReqOptArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:34
}
remoteUserAlerting OPERATION ::= -- sent from called to calling endpoint
{
ARGUMENT RUAlertOptArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:115
}
cfbOverride OPERATION ::= -- sent from calling to called endpoint
{
ARGUMENT CfbOvrOptArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:49
}
CoReqOptArg ::= SEQUENCE {
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
RUAlertOptArg ::= SEQUENCE {
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CfbOvrOptArg ::= SEQUENCE {
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
END -- of Call-Offer-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,304 @@
-- Call-Park-Pickup-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.5/1999/Call-Park-Pickup-Operations.asn
--
-- $Id$
--
-- Module Call-Park-Pickup-Operations (H.450.5:05/1999)
Call-Park-Pickup-Operations {itu-t recommendation h 450 5 version1(0)
call-park-pickup-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
notAvailable, invalidCallState, resourceUnavailable,
supplementaryServiceInteractionNotAllowed
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)}
EndpointAddress
FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
addressing-data-elements(9)}
MixedExtension
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)}
NonStandardParameter, CallIdentifier
FROM H323-MESSAGES; -- see H.225.0
CallParkPickupOperations OPERATION ::=
{cpRequest | cpSetup | groupIndicationOn | groupIndicationOff | pickrequ |
pickup | pickExe | cpNotify | cpickupNotify}
cpRequest OPERATION ::=
{ -- sent from parking endpoint to the parked endpoint to invoke SS-PARK
ARGUMENT CpRequestArg
RESULT CpRequestRes
ERRORS
{notAvailable |
-- feature not available in combination with the basic service
invalidCallState | -- call park not possible in current call state
resourceUnavailable | -- maximum number of parked calls reached
supplementaryServiceInteractionNotAllowed |
-- other supplementary service prohibits call park invocation
undefined -- undefined reason--}
CODE local:106
}
CpRequestArg ::= SEQUENCE {
parkingNumber EndpointAddress,
parkedNumber EndpointAddress,
parkedToNumber EndpointAddress,
parkedToPosition ParkedToPosition OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CpRequestRes ::= SEQUENCE {
parkedToNumber EndpointAddress,
parkedToPosition ParkedToPosition OPTIONAL,
parkCondition ParkCondition,
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
cpSetup OPERATION ::= { -- sent from parked endpoint to the parked-to endpoint
ARGUMENT CpSetupArg
RESULT CpSetupRes
ERRORS
{notAvailable |
-- feature not available in combination with the basic service
invalidCallState | -- call park not possible in current call state
resourceUnavailable | -- maximum number of parked calls reached
supplementaryServiceInteractionNotAllowed |
-- other supplementary service prohibits call park invocation
undefined -- undefined reason --}
CODE local:107
}
CpSetupArg ::= SEQUENCE {
parkingNumber EndpointAddress,
parkedNumber EndpointAddress,
parkedToNumber EndpointAddress,
parkedToPosition ParkedToPosition OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
CpSetupRes ::= SEQUENCE {
parkedToNumber EndpointAddress,
parkedToPosition ParkedToPosition OPTIONAL,
parkCondition ParkCondition,
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
groupIndicationOn OPERATION ::=
{ -- sent from the parked-to endpoint/alerting endpoint to the group members
ARGUMENT GroupIndicationOnArg
RESULT GroupIndicationOnRes
ERRORS {undefined -- undefined reason--}
CODE local:108
}
GroupIndicationOnArg ::= SEQUENCE {
callPickupId CallIdentifier,
-- identification of the call to be retrieved (parked or alerting call);
-- its value equals the value of the CallIdentifier as assigned for the parked/
-- alerting call within Setup-UUIE
groupMemberUserNr EndpointAddress,
retrieveCallType CallType,
partyToRetrieve EndpointAddress, -- Parked or Calling User
retrieveAddress EndpointAddress, -- parked-to or alerting entity address
-- (may also be a GK, see 9.2)
parkPosition ParkedToPosition OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
GroupIndicationOnRes ::= SEQUENCE {
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
groupIndicationOff OPERATION ::=
{ -- sent from the parked-to endpoint/alerting endpoint to the group members
ARGUMENT GroupIndicationOffArg
RESULT GroupIndicationOffRes
ERRORS
{invalidCallState | -- group indication is not on
undefined -- undefined reason--}
CODE local:109
}
GroupIndicationOffArg ::= SEQUENCE {
callPickupId CallIdentifier,
-- identification of the call that has been picked up (parked or alerting call)
groupMemberUserNr EndpointAddress,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
GroupIndicationOffRes ::= SEQUENCE {
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
pickrequ OPERATION ::= { -- sent from the picking-up user to the parked-to/
-- alerting endpoint as part of the SS-PICKUP invocation
ARGUMENT PickrequArg
RESULT PickrequRes
ERRORS
{undefined | -- undefined reason
callAlreadyPickedUp -- call has already been picked up by another user --}
CODE local:110
}
PickrequArg ::= SEQUENCE {
picking-upNumber EndpointAddress,
callPickupId CallIdentifier OPTIONAL,
-- identification of the call to be picked up (parked or alerting call), if known
partyToRetrieve EndpointAddress OPTIONAL, -- Parked or Calling User
retrieveAddress EndpointAddress, -- parked-to or alerting entity address
parkPosition ParkedToPosition OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
PickrequRes ::= SEQUENCE {
callPickupId CallIdentifier,
-- identification of the call that is being picked up (parked or alerting call),
-- if not sent in pickrequ invoke, it is assigned at the parked-to/alerting
-- endpoint and reflects the CallIdentification of the parked/alerting call for
-- later association with the pickExe invoke APDU.
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
pickup OPERATION ::=
{ -- sent from the parked-to/alerting endpoint to the parked/calling endpoint
-- after the picking-up user has invoked SS-PICKUP. The picking-up user may
-- be local (i.e. parked-to/alerting endpoint equals picking-up
-- endpoint) or may be remote (i.e. picking-up user is located at a
-- remote picking-up endpoint having sent pickrequ invoke APDU to the
-- parked-to/alerting endpoint).
ARGUMENT PickupArg
RESULT PickupRes
ERRORS
{undefined | -- undefined reason
callAlreadyPickedUp -- call has already been picked up by another user --}
CODE local:111
}
PickupArg ::= SEQUENCE {
callPickupId CallIdentifier,
-- identification of this call to be picked up (parked or alerting call);
-- equals the CallIdentifier value that was assigned to this call in Setup-UUIE
picking-upNumber EndpointAddress,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
PickupRes ::= SEQUENCE {
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
pickExe OPERATION ::=
{ -- sent from the parked/calling endpoint to the picking-up endpoint
ARGUMENT PickExeArg
RESULT PickExeRes
ERRORS
{undefined | -- undefined reason
callPickupIdInvalid
-- value not matching with the previous SS-PICKUP request
}
CODE local:112
}
PickExeArg ::= SEQUENCE {
callPickupId CallIdentifier,
-- identification of the parked/alerting call to be picked-up;
-- required at picking-up endpoint to associate the SS-PICKUP invoked with this
-- incoming setup message carrying the pickExe invoke APDU.
picking-upNumber EndpointAddress,
partyToRetrieve EndpointAddress, -- Parked or Calling User
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
PickExeRes ::= SEQUENCE {
extensionRes SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
cpNotify OPERATION ::=
{ -- sent from the parking-to to parked endpoint in case of local park.
ARGUMENT CpNotifyArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:113
}
CpNotifyArg ::= SEQUENCE {
parkingNumber EndpointAddress OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
cpickupNotify OPERATION ::=
{ -- sent from parked-to to parked endpoint in case of SS-PICKUP from local park
ARGUMENT CpickupNotifyArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:114
}
CpickupNotifyArg ::= SEQUENCE {
picking-upNumber EndpointAddress OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
ParkedToPosition ::= INTEGER(0..65535)
ParkCondition ::= ENUMERATED {
unspecified(0), parkedToUserIdle(1), parkedToUserBusy(2), parkedToGroup(3),
...
}
CallType ::= ENUMERATED {parkedCall(0), alertingCall(1), ...
}
callPickupIdInvalid ERROR ::= {CODE local:2000
}
callAlreadyPickedUp ERROR ::= {CODE local:2001
}
undefined ERROR ::= {
PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
OPTIONAL TRUE
CODE local:2002
}
END -- of Call-Park-Pickup-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,246 @@
-- Call-Transfer-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.2/1998/Call-Transfer-Operations.asn
--
-- $Id$
--
-- Module Call-Transfer-Operations (H.450.2:02/1998)
Call-Transfer-Operations {itu-t recommendation h 450 2 version1(0)
call-transfer-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
notAvailable, supplementaryServiceInteractionNotAllowed, invalidCallState
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)}
EndpointAddress, PartySubaddress
FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
addressing-data-elements(9)}
NonStandardParameter
FROM H323-MESSAGES -- see H.225.0
H225InformationElement
FROM H225-generic-parameters-definition {itu-t recommendation h 450
1 version1(0) h225-generic-parameters(6)};
H323CallTransferOperations OPERATION ::=
{callTransferIdentify | callTransferAbandon | callTransferInitiate |
callTransferSetup | callTransferUpdate | subaddressTransfer |
callTransferComplete | callTransferActive}
callTransferIdentify OPERATION ::= {
-- sent from transferring endpoint to transferred-to endpoint
ARGUMENT DummyArg
OPTIONAL TRUE
RESULT CTIdentifyRes
ERRORS
{notAvailable | invalidCallState |
supplementaryServiceInteractionNotAllowed | unspecified}
CODE local:7
}
callTransferAbandon OPERATION ::= {
-- sent from transferring to transferred-to endpoint
ARGUMENT DummyArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:8
}
callTransferInitiate OPERATION ::= {
-- sent from transfering to transferred endpoint
ARGUMENT CTInitiateArg
RESULT DummyRes
OPTIONAL TRUE
ERRORS
{notAvailable | invalidCallState | invalidReroutingNumber |
unrecognizedCallIdentity | establishmentFailure |
supplementaryServiceInteractionNotAllowed | unspecified}
CODE local:9
}
callTransferSetup OPERATION ::= {
-- sent from transferred to transferred-to endpoint
ARGUMENT CTSetupArg
RESULT DummyRes
OPTIONAL TRUE
ERRORS
{notAvailable | invalidCallState | invalidReroutingNumber |
unrecognizedCallIdentity | unspecified |
supplementaryServiceInteractionNotAllowed}
CODE local:10
}
callTransferUpdate OPERATION ::= {
-- may be sent from transferred to transferred-to endpoint (in SETUP) and
-- vice versa (in CONNECT)
ARGUMENT CTUpdateArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:13
}
subaddressTransfer OPERATION ::= {
-- may be sent from transferred to the transferred-to endpoint and vice versa
ARGUMENT SubaddressTransferArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:14
}
callTransferComplete OPERATION ::= {
-- sent from GK to the transferred endpoint, if GK performs call transfer
-- (see 10.6.1).
ARGUMENT CTCompleteArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:12
}
callTransferActive OPERATION ::= {
-- sent from gatekeeper to the transferred endpoint, in case of transfer ringing
-- after transferred-to endpoint has answered the call (only in case of
-- transfer performed by gatekeeper)
ARGUMENT CTActiveArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:11
}
DummyArg ::= CHOICE {
extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter
}
DummyRes ::= CHOICE {
extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter
}
CTInitiateArg ::= SEQUENCE {
callIdentity CallIdentity,
reroutingNumber EndpointAddress,
argumentExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
CTSetupArg ::= SEQUENCE {
callIdentity CallIdentity,
transferringNumber EndpointAddress OPTIONAL,
argumentExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
CTIdentifyRes ::= SEQUENCE {
callIdentity CallIdentity,
reroutingNumber EndpointAddress,
resultExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
CTUpdateArg ::= SEQUENCE {
redirectionNumber EndpointAddress,
redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
basicCallInfoElements H225InformationElement OPTIONAL,
-- Information element
-- Progress indicator may be conveyed
argumentExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
SubaddressTransferArg ::= SEQUENCE {
redirectionSubaddress PartySubaddress,
argumentExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
CTCompleteArg ::= SEQUENCE {
endDesignation EndDesignation,
redirectionNumber EndpointAddress,
-- number of new connected user
basicCallInfoElements H225InformationElement OPTIONAL,
-- Information element Progress indicator may be conveyed
redirectionInfo BMPString(SIZE (1..128)) OPTIONAL,
callStatus CallStatus DEFAULT answered,
argumentExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
EndDesignation ::= ENUMERATED {primaryEnd(0), secondaryEnd(1), ...
}
CallStatus ::= ENUMERATED {answered(0), alerting(1), ...
}
CTActiveArg ::= SEQUENCE {
connectedAddress EndpointAddress,
-- number of new connected user
basicCallInfoElements H225InformationElement OPTIONAL,
-- Information element Progress indicator may be conveyed
connectedInfo BMPString(SIZE (1..128)) OPTIONAL,
argumentExtension
CHOICE {extensionSeq ExtensionSeq,
nonStandardData NonStandardParameter} OPTIONAL,
...
}
CallIdentity ::= NumericString(SIZE (0..4))
-- size 0 means 'empty'
ExtensionSeq ::= SEQUENCE OF Extension{{ExtensionSet}}
ExtensionSet EXTENSION ::=
{...}
-- Actual values defined by individual manufacturers
unspecified ERROR ::= {
PARAMETER
CHOICE {extension Extension{{ExtensionSet}},
nonStandard NonStandardParameter}
CODE local:1008
}
invalidReroutingNumber ERROR ::= {
-- used when establishment of the new connection fails
-- because the reroutingNumber is not a valid alias address
CODE local:1004
}
unrecognizedCallIdentity ERROR ::= {
-- used when establishment of the new connection fails because it
-- could not be associated with a SS-CT entity at the
-- transferred-to endpoint
CODE local:1005
}
establishmentFailure ERROR ::= {
-- used when establishment of the new connection fails and
-- no other error applies
CODE local:1006
}
END -- of Call-Transfer-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,47 @@
-- Call-Waiting-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.6/1999/Call-Waiting-Operations.asn
--
-- $Id$
--
-- Module Call-Waiting-Operations (H.450.6:05/1999)
Call-Waiting-Operations {itu-t recommendation h 450 6 version1(0)
call-waiting-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
MixedExtension
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)};
CallWaitingOperations OPERATION ::= {callWaiting}
callWaiting OPERATION ::=
{ -- sent from served endpoint to the calling endpoint in ALERTING message
ARGUMENT CallWaitingArg
OPTIONAL TRUE
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:105
}
CallWaitingArg ::= SEQUENCE {
nbOfAddWaitingCalls INTEGER(0..255) OPTIONAL,
-- indicates the number of waiting calls at the served user
-- in addition to the call to which this operation applies.
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
END -- of Call-Waiting-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,151 @@
-- Common-Information-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.12/2001/Common-Information-Operations.asn
--
-- $Id$
--
-- Module Common-Information-Operations (H.450.12:07/2001)
Common-Information-Operations {itu-t recommendation h 450 12 version1(0)
common-information-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
MixedExtension, undefined
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)};
H323CommonInformationOperations OPERATION ::= {cmnRequest | cmnInform}
cmnRequest OPERATION ::= {
ARGUMENT DummyArg
OPTIONAL TRUE
RESULT CmnArg
ERRORS {undefined}
CODE local:84
}
cmnInform OPERATION ::= {
ARGUMENT CmnArg
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:85
}
CmnArg ::= SEQUENCE {
featureList FeatureList OPTIONAL,
featureValues FeatureValues OPTIONAL,
featureControl FeatureControl OPTIONAL,
extension SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
DummyArg ::= SEQUENCE {
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL
}
FeatureList ::= SEQUENCE {
-- indicates capabilities of the endpoint sending the FeatureList
ssCFreRoutingSupported NULL OPTIONAL, -- Call Forwarding rerouting
-- supported meaningful only in
-- forward direction during call
-- establishment
ssCTreRoutingSupported NULL OPTIONAL, -- Call Transfer rerouting
-- supported meaningful both in
-- forward & backward direction
-- during call establishment
ssCCBSPossible NULL OPTIONAL, -- CCBS possible meaningful only
-- in backward direction before
-- receipt of ALERTING/CONNECT
ssCCNRPossible NULL OPTIONAL, -- CCNR possible meaningful only
-- in backward direction before
-- receipt of CONNECT
ssCOSupported NULL OPTIONAL, -- Call Offer supported
-- meaningful only in backward
-- direction during call
-- establishment
-- Call Intrusion
ssCIForcedReleaseSupported NULL OPTIONAL, -- meaningful only in
-- backward direction
ssCIIsolationSupported NULL OPTIONAL, -- meaningful only in
-- backward direction
ssCIWaitOnBusySupported NULL OPTIONAL, -- meaningful only in
-- backward direction
ssCISilentMonitoringSupported NULL OPTIONAL, -- meaningful only in
-- backward direction
ssCIConferenceSupported NULL OPTIONAL, -- meaningful only in
-- backward direction
-- Call Hold
ssCHFarHoldSupported NULL OPTIONAL, -- meaningful in both
-- directions
-- Message Waiting Callback
ssMWICallbackSupported NULL OPTIONAL, -- meaningful in backward
-- direction
-- meaningful both in
-- forward & backward
-- direction during call
-- establishment
-- Call Park
ssCPCallParkSupported NULL OPTIONAL, -- meaningful in both
-- directions
...
}
FeatureValues ::= SEQUENCE {
partyCategory PartyCategory OPTIONAL,
ssCIprotectionLevel SSCIProtectionLevel OPTIONAL,
-- Supplementary Service Call Intrusion Protection level
-- meaningful both in forward and backward direction; inclusion
-- indicates support of SS-CI as an unwanted endpoint (forward
-- direction) or as a Terminating Endpoint (backward direction),
-- as well as the applicable protection level.
...
}
PartyCategory ::= ENUMERATED {unknown, extension, attendant, emergExt, ...
}
SSCIProtectionLevel ::= INTEGER(0..3)
FeatureControl ::= SEQUENCE {
ssCHDoNotHold NULL OPTIONAL, -- meaningful in both directions
-- Sending endpoint shall not be held
ssCTDoNotTransfer NULL OPTIONAL, -- meaningful in both directions
-- sending endpoint shall not be transferred
ssMWICallbackCall NULL OPTIONAL, -- meaningful only in SETUP
-- indicating a callback call
ssCISilentMonitorPermitted NULL OPTIONAL, -- unwanted endpoint
-- allows for
-- silent monitoring
-- meaningful in forward and backward direction
...
}
END -- of Common-Information-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,19 @@
-- H225-generic-parameters-definition.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H225-generic-parameters-definition.asn
--
-- $Id$
--
-- Module H225-generic-parameters-definition (H.450.1:02/1998)
H225-generic-parameters-definition {itu-t recommendation h 450 1 version1(0)
h225-generic-parameters(6)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
H225InformationElement ::= OCTET STRING
END -- of H225 Generic parameters definition
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,102 @@
-- H4501-General-Error-List.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H4501-General-Error-List.asn
--
-- $Id$
--
-- Module H4501-General-Error-List (H.450.1:02/1998)
H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)};
-- The following errors are based on the error definitions of Recommendation Q.950.
userNotSubscribed ERROR ::= {CODE local:0
}
-- is an indication that the user has not subscribed to this service.
rejectedByNetwork ERROR ::= {CODE local:1
}
-- is an indication that the requested service is rejected by the network
-- (e.g. gatekeeper).
rejectedByUser ERROR ::= {CODE local:2
}
-- is an indication that the requested service is provided by the
-- network but that the remote user has rejected this service request.
notAvailable ERROR ::= {CODE local:3
}
-- is an indication that the user has subscribed to this service but the
-- requested service is not available combined with the basic service or
-- the other services (e.g. operation).
insufficientInformation ERROR ::= {CODE local:5
}
-- is an indication that the content of operation argument is
-- incomplete, or absent entirely.
invalidServedUserNumber ERROR ::= {CODE local:6
}
-- is an indication that the requested service cannot be performed
-- because of the usage of an invalid served user number.
invalidCallState ERROR ::= {CODE local:7
}
-- is an indication that no match exists between the service request and
-- the valid H.225.0 call state, this applies also to invalid
-- auxiliary states or an invalid combination of H.225.0 call states and
-- auxiliary states.
basicServiceNotProvided ERROR ::= {CODE local:8
}
-- is an indication that the service request is directed to a Basic
-- Service which is not provided (e.g. this return error value is used
-- in cases where a supplementary service is to be invoked with a SETUP
-- message but indicating the wrong Basic Service).
notIncomingCall ERROR ::= {CODE local:9
}
-- is an indication that the service request has been invoked for an
-- outgoing call, which is not permitted for that service.
supplementaryServiceInteractionNotAllowed ERROR ::= {CODE local:10
}
-- is an indication that the Service request is not permitted in
-- combination with either a further requested or active supplementary
-- service.
resourceUnavailable ERROR ::= {CODE local:11
}
-- is an indication that the service provider has temporarily no
-- resource available for the provision of the requested service.
callFailure ERROR ::= {CODE local:25
}
-- is an indication that the requested supplementary service was not executable by virtue
-- of a Basic Call Failure. The parameter is included under circumstances where the
-- call failure was remote from the local gatekeeper interface over which the error is to
-- be sent. For example when:
-- a) no H.225.0 RELEASE COMPLETE message is provided locally, or
-- b) the cause information element included in the RELEASE COMPLETE
-- message represents only the reason for local basic call clearing.
-- In these cases the parameter value represents the clearing cause included in the
-- remote clearing procedure.
proceduralError ERROR ::= {CODE local:43
}
-- is an indication that a transport message (e.g. SETUP)
-- is received which has one or more operation APDUs which have a valid
-- content but which are not specified as valid information content of
-- the transport message used.
END -- of H4501-General-Error-List
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,74 @@
-- H4501-Supplementary-ServiceAPDU-Structure.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/H4501-Supplementary-ServiceAPDU-Structure.asn
--
-- $Id$
--
-- Module H4501-Supplementary-ServiceAPDU-Structure (H.450.1:02/1998)
H4501-Supplementary-ServiceAPDU-Structure {itu-t recommendation h 450
1 version1(0) h4501-facility-information-structure(2)} DEFINITIONS AUTOMATIC
TAGS ::=
BEGIN
IMPORTS
AliasAddress
FROM H323-MESSAGES -- see H.225.0 V2
OPERATION, ROS{}, InvokeId
FROM Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
remote-operations-apdus(11)};
H4501SupplementaryService ::= SEQUENCE {
networkFacilityExtension NetworkFacilityExtension OPTIONAL, -- see 8.1
interpretationApdu InterpretationApdu OPTIONAL, -- see 8.2
serviceApdu ServiceApdus, -- H.450.x supplementary services
...
}
NetworkFacilityExtension ::= SEQUENCE {
sourceEntity EntityType,
sourceEntityAddress AddressInformation OPTIONAL,
destinationEntity EntityType,
destinationEntityAddress AddressInformation OPTIONAL,
...
}
EntityType ::= CHOICE {endpoint NULL,
anyEntity NULL,
...
}
AddressInformation ::= AliasAddress
InterpretationApdu ::= CHOICE {
discardAnyUnrecognizedInvokePdu NULL,
clearCallIfAnyInvokePduNotRecognized NULL,
-- this value also applies to Call independent signalling connections
rejectAnyUnrecognizedInvokePdu NULL,
-- this coding is implied by the absence of an interpretation APDU.
...
}
ServiceApdus ::= CHOICE {
rosApdus
SEQUENCE SIZE (1..MAX) OF
ROS{{InvokeIdSet}, {OperationSet}, {OperationSet}},
-- see 8.3; other alternatives may be defined in future versions
...
}
InvokeIdSet INTEGER ::= {InvokeIDs, ...}
InvokeIDs ::= INTEGER(0..65535)
OperationSet OPERATION ::=
{...}
-- actual values are defined by individual supplementary service specifications
-- (e.g. H.450.x or manufacturer specific)
END -- of H4501- Supplementary-ServiceAPDU-Structure
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -1,14 +1,21 @@
# $Id$
DISSECTOR_FILES=packet-h450.c packet-h450.h
H450_FILES=packet-$(PROTOCOL_NAME).c
H450_ROS_FILES=packet-$(PROTOCOL_NAME)-ros.c packet-$(PROTOCOL_NAME)-ros.h
DISSECTOR_FILES=$(H450_FILES) $(H450_ROS_FILES)
H450_ASN=H4501-Supplementary-ServiceAPDU-Structure.asn Addressing-Data-Elements.asn H225-generic-parameters-definition.asn Manufacturer-specific-service-extension-definition.asn H4501-General-Error-List.asn
H450_OP_ASN=Call-Transfer-Operations.asn Call-Diversion-Operations.asn Call-Hold-Operations.asn Call-Park-Pickup-Operations.asn Call-Waiting-Operations.asn Message-Waiting-Indication-Operations.asn Name-Operations.asn Call-Completion-Operations.asn Call-Offer-Operations.asn Call-Intrusion-Operations.asn Common-Information-Operations.asn
H450_ROS_ASN=../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2wrs.py h4501.asn packet-h450-template.c packet-h450-template.h h450.cnf
python ../../tools/asn2wrs.py -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn
$(H450_FILES): ../../tools/asn2wrs.py $(H450_ASN) $(H450_OP_ASN) packet-h450-template.c packet-h450-template.h h450.cnf
python ../../tools/asn2wrs.py -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(H450_ASN) $(H450_OP_ASN)
$(H450_ROS_FILES): ../../tools/asn2wrs.py $(H450_ROS_ASN) packet-$(PROTOCOL_NAME)-ros-template.c $(PROTOCOL_NAME)-ros.cnf
python ../../tools/asn2wrs.py -e -p $(PROTOCOL_NAME).ros -c $(PROTOCOL_NAME)-ros.cnf -o $(PROTOCOL_NAME)-ros -s packet-$(PROTOCOL_NAME)-ros-template $(H450_ROS_ASN)
clean:
rm -f parsetab.py $(DISSECTOR_FILES)

View File

@ -7,15 +7,28 @@ include ../../config.nmake
UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
PROTOCOL_NAME=h450
DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h
H450_FILES=packet-$(PROTOCOL_NAME).c
H450_ROS_FILES=packet-$(PROTOCOL_NAME)-ros.c packet-$(PROTOCOL_NAME)-ros.h
DISSECTOR_FILES=$(H450_FILES) $(H450_ROS_FILES)
H450_ASN=H4501-Supplementary-ServiceAPDU-Structure.asn Addressing-Data-Elements.asn H225-generic-parameters-definition.asn Manufacturer-specific-service-extension-definition.asn H4501-General-Error-List.asn
H450_OP_ASN=Call-Transfer-Operations.asn Call-Diversion-Operations.asn Call-Hold-Operations.asn Call-Park-Pickup-Operations.asn Call-Waiting-Operations.asn Message-Waiting-Indication-Operations.asn Name-Operations.asn Call-Completion-Operations.asn Call-Offer-Operations.asn Call-Intrusion-Operations.asn Common-Information-Operations.asn
H450_ROS_ASN=../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn
all: generate_dissector
generate_dissector: $(DISSECTOR_FILES)
$(DISSECTOR_FILES): ../../tools/asn2wrs.py h4501.asn packet-$(PROTOCOL_NAME)-template.c packet-$(PROTOCOL_NAME)-template.h $(PROTOCOL_NAME).cnf
$(H450_FILES): ../../tools/asn2wrs.py $(H450_ASN) $(H450_OP_ASN) packet-$(PROTOCOL_NAME)-template.c $(PROTOCOL_NAME).cnf
!IFDEF PYTHON
$(PYTHON) "../../tools/asn2wrs.py" -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn
$(PYTHON) "../../tools/asn2wrs.py" -c $(PROTOCOL_NAME).cnf -s packet-$(PROTOCOL_NAME)-template $(H450_ASN) $(H450_OP_ASN)
!ELSE
@echo Error: You need Python to use asn2wrs.py
@exit 1
!ENDIF
$(H450_ROS_FILES): ../../tools/asn2wrs.py $(H450_ROS_ASN) packet-$(PROTOCOL_NAME)-ros-template.c $(PROTOCOL_NAME)-ros.cnf
!IFDEF PYTHON
$(PYTHON) "../../tools/asn2wrs.py" -e -p $(PROTOCOL_NAME).ros -c $(PROTOCOL_NAME)-ros.cnf -o $(PROTOCOL_NAME)-ros -s packet-$(PROTOCOL_NAME)-ros-template $(H450_ROS_ASN)
!ELSE
@echo Error: You need Python to use asn2wrs.py
@exit 1
@ -35,11 +48,14 @@ maintainer-clean: distclean
fix_eol: generate_dissector
move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp
move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp
move packet-$(PROTOCOL_NAME)-ros.c packet-$(PROTOCOL_NAME)-ros.c.tmp
move packet-$(PROTOCOL_NAME)-ros.h packet-$(PROTOCOL_NAME)-ros.h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp
$(UNIX2DOS) < packet-$(PROTOCOL_NAME)-ros.c.tmp > packet-$(PROTOCOL_NAME)-ros.c
$(UNIX2DOS) < packet-$(PROTOCOL_NAME)-ros.h.tmp > packet-$(PROTOCOL_NAME)-ros.h
del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME)-ros.c.tmp packet-$(PROTOCOL_NAME)-ros.h.tmp
copy_files: generate_dissector fix_eol
xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME)-ros.c ..\..\epan\dissectors /d /y
xcopy packet-$(PROTOCOL_NAME)-ros.h ..\..\epan\dissectors /d /y

View File

@ -0,0 +1,33 @@
-- Manufacturer-specific-service-extension-definition.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Manufacturer-specific-service-extension-definition.asn
--
-- $Id$
--
-- Module Manufacturer-specific-service-extension-definition (H.450.1:02/1998)
Manufacturer-specific-service-extension-definition {itu-t recommendation
h 450 1 version1(0) msi-definition(18)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
EXTENSION ::= CLASS {&ArgumentType ,
&extensionId OBJECT IDENTIFIER
}WITH SYNTAX {ARGUMENT &ArgumentType
IDENTIFIER &extensionId
}
Extension{EXTENSION:ExtensionSet} ::= SEQUENCE {
extensionId EXTENSION.&extensionId({ExtensionSet}),
extensionArgument EXTENSION.&ArgumentType({ExtensionSet}{@extensionId})
}
-- ExtensionSet is a set of objects of class EXTENSION.
-- Actual values of ExtensionSet are defined by the individual manufacturers.
-- Element extensionId is constrained to be the identifier of an object from that set.
-- Element extensionArgument is constrained to be the argument type for that particular
-- object.
END -- of Manufacturer-specific-service-extension-definition
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,171 @@
-- Message-Waiting-Indication-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.7/1999/Message-Waiting-Indication-Operations.asn
--
-- $Id$
--
-- Module Message-Waiting-Indication-Operations (H.450.7:05/1999)
Message-Waiting-Indication-Operations {itu-t recommendation h 450 7 version1(0)
message-waiting-operations(0)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
userNotSubscribed, invalidServedUserNumber, basicServiceNotProvided
FROM H4501-General-Error-List {itu-t recommendation h 450 1 version1(0)
general-error-list(1)}
EndpointAddress
FROM Addressing-Data-Elements {itu-t recommendation h 450 1 version1(0)
addressing-data-elements(9)}
MixedExtension
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)};
H323-MWI-Operations OPERATION ::=
{mwiActivate | mwiDeactivate | mwiInterrogate}
mwiActivate OPERATION ::= {
ARGUMENT MWIActivateArg
RESULT DummyRes
ERRORS
{userNotSubscribed | invalidServedUserNumber | basicServiceNotProvided |
undefined}
CODE local:80
}
mwiDeactivate OPERATION ::= {
ARGUMENT MWIDeactivateArg
RESULT DummyRes
ERRORS
{userNotSubscribed | invalidServedUserNumber | basicServiceNotProvided |
undefined}
CODE local:81
}
mwiInterrogate OPERATION ::= {
ARGUMENT MWIInterrogateArg
RESULT MWIInterrogateRes
ERRORS
{userNotSubscribed | invalidServedUserNumber | notActivated |
invalidMsgCentreId | undefined}
CODE local:82
}
MWIActivateArg ::= SEQUENCE {
servedUserNr EndpointAddress,
basicService BasicService,
msgCentreId MsgCentreId OPTIONAL,
nbOfMessages NbOfMessages OPTIONAL,
originatingNr EndpointAddress OPTIONAL,
timestamp TimeStamp OPTIONAL,
priority INTEGER(0..9) OPTIONAL,
-- the value 0 means the highest priority and 9 the lowest
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
DummyRes ::= SEQUENCE SIZE (0..255) OF MixedExtension
MWIDeactivateArg ::= SEQUENCE {
servedUserNr EndpointAddress,
basicService BasicService,
msgCentreId MsgCentreId OPTIONAL,
callbackReq BOOLEAN OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
MWIInterrogateArg ::= SEQUENCE {
servedUserNr EndpointAddress,
basicService BasicService,
msgCentreId MsgCentreId OPTIONAL,
callbackReq BOOLEAN OPTIONAL,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
MWIInterrogateRes ::= SEQUENCE SIZE (1..64) OF MWIInterrogateResElt
MWIInterrogateResElt ::= SEQUENCE {
basicService BasicService,
msgCentreId MsgCentreId OPTIONAL,
nbOfMessages NbOfMessages OPTIONAL,
originatingNr EndpointAddress OPTIONAL,
timestamp TimeStamp OPTIONAL,
priority INTEGER(0..9) OPTIONAL,
-- the value 0 means the highest priority and 9 the lowest
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...
}
MsgCentreId ::= CHOICE {
-- only partyNumber provides a callable identification
integer INTEGER(0..65535),
partyNumber EndpointAddress,
numericString NumericString(SIZE (1..10))
}
NbOfMessages ::= INTEGER(0..65535)
TimeStamp ::= GeneralizedTime(SIZE (12..19))
-- a VisibleString representation of date and time following ISO 8601
-- containing:
-- - the (local) date in 8 digits (YYYYMMDD),
-- - followed by (local) time of day in 4 or 6 digits [HHMM(SS)],
-- - optionally followed by the letter "Z" or by a local time differential
-- from UTC time in 5 digits ("+"HHMM or "-"HHMM);
-- Examples:
-- 1) 19970621194530, meaning 21 June 1997, 19:45:30;
-- 2) 19970621194530Z, meaning the same as 1);
-- 3) 19970621194530-0500, meaning the same as 1),
-- 5 hours retarded in relation to UTC time
undefined ERROR ::= {
PARAMETER SEQUENCE SIZE (0..255) OF MixedExtension
OPTIONAL TRUE
CODE local:2002
}
invalidMsgCentreId ERROR ::=
{ -- returned by a Message Centre endpoint when an unknown Message
-- Centre Identifier is specified in a mwiInterrogate invoke
CODE local:1018
}
BasicService ::= ENUMERATED {
-- MWI Services:
-- for compatibility among vendors, speech is recommended for voice mail
-- indications
allServices(0), speech(1), unrestrictedDigitalInformation(2), audio3100Hz(3),
telephony(32), teletex(33), telefaxGroup4Class1(34), videotexSyntaxBased(35),
videotelephony(36), telefaxGroup2-3(37), reservedNotUsed1(38),
reservedNotUsed2(39), reservedNotUsed3(40), reservedNotUsed4(41),
reservedNotUsed5(42),
--
-- MWI Service Classes:
email(51), video(52), fileTransfer(53), shortMessageService(54),
speechAndVideo(55), speechAndFax(56), speechAndEmail(57), videoAndFax(58),
videoAndEmail(59), faxAndEmail(60), speechVideoAndFax(61),
speechVideoAndEmail(62), speechFaxAndEmail(63), videoFaxAndEmail(64),
speechVideoFaxAndEmail(65), multimediaUnknown(66),
serviceUnknown(67),
--
-- Reserved for future additions:
futureReserve1(68), futureReserve2(69), futureReserve3(70),
futureReserve4(71), futureReserve5(72), futureReserve6(73),
futureReserve7(74), futureReserve8(75)}
notActivated ERROR ::= {CODE local:31
}
END -- of Message-Waiting-Indication-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,99 @@
-- Name-Operations.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.8/2000/Name-Operations.asn
--
-- $Id$
--
-- Module Name-Operations (H.450.8:02/2000)
Name-Operations {itu-t recommendation h 450 8 version1(0) name-operations(0)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)}
EXTENSION, Extension{}
FROM Manufacturer-specific-service-extension-definition {itu-t
recommendation h 450 1 version1(0) msi-definition(18)}
MixedExtension
FROM Call-Hold-Operations {itu-t recommendation h 450 4 version1(0)
call-hold-operations(0)};
NameOperations OPERATION ::=
{callingName | alertingName | connectedName | busyName}
callingName OPERATION ::= {
ARGUMENT
SEQUENCE {name Name,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:0
}
alertingName OPERATION ::= {
ARGUMENT
SEQUENCE {name Name,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:1
}
connectedName OPERATION ::= {
ARGUMENT
SEQUENCE {name Name,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:2
}
busyName OPERATION ::= {
ARGUMENT
SEQUENCE {name Name,
extensionArg SEQUENCE SIZE (0..255) OF MixedExtension OPTIONAL,
...}
RETURN RESULT FALSE
ALWAYS RESPONDS FALSE
CODE local:3
}
Name ::= CHOICE {
namePresentationAllowed NamePresentationAllowed,
namePresentationRestricted NamePresentationRestricted,
nameNotAvailable NULL,
...
}
NamePresentationAllowed ::= CHOICE {
simpleName SimpleName,
extendedName ExtendedName,
...
}
NamePresentationRestricted ::= CHOICE {
simpleName SimpleName,
extendedName ExtendedName,
restrictedNull NULL, -- only used in case of interworking where other network
-- provides indication that the name is restricted without
-- the name itself
...
}
SimpleName ::= OCTET STRING(SIZE (1..50))
ExtendedName ::= BMPString(SIZE (1..256)) -- Basic ISO/IEC 10646-1 (Unicode)
END -- of Name-Operations
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,152 @@
-- Remote-Operations-Apdus.asn
--
-- Taken from ITU ASN.1 database
-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h450.1/1998/Remote-Operations-Apdus.asn
--
-- $Id$
--
-- Module Remote-Operations-Apdus (H.450.1:02/1998)
Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
remote-operations-apdus(11)} DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- exports everything
IMPORTS
OPERATION, ERROR
FROM Remote-Operations-Information-Objects {joint-iso-itu-t
remote-operations(4) informationObjects(5) version1(0)};
ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
CHOICE {
invoke [1] Invoke{{InvokeIdSet}, {Invokable}},
returnResult [2] ReturnResult{{Returnable}},
returnError [3] ReturnError{{Errors {{Returnable}}}},
reject [4] Reject
}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:general-unrecognizedPDU)
Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
invokeId
InvokeId(InvokeIdSet)
(CONSTRAINED BY {-- must be unambiguous -- } !
RejectProblem:invoke-duplicateInvocation),
linkedId
InvokeId
(CONSTRAINED BY {-- must identify an outstanding operation -- } !
RejectProblem:invoke-unrecognizedLinkedId)
(CONSTRAINED BY {-- which has one or more linked operations-- } !
RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
opcode
OPERATION.&operationCode
({Operations} !RejectProblem:invoke-unrecognizedOperation),
argument
OPERATION.&ArgumentType
({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:general-mistypedPDU)
--(
-- WITH COMPONENTS
-- {
-- ...,
-- linkedId ABSENT
-- }
-- WITH COMPONENTS {
-- ...,
-- linkedId PRESENT,
-- opcode (CONSTRAINED BY {
-- must be in the &Linked field of the associated operation
-- } ! RejectProblem : invoke-unexpectedLinkedOperation)
-- }
--)
ReturnResult{OPERATION:Operations} ::= SEQUENCE {
invokeId
InvokeId
(CONSTRAINED BY {-- must be that for an outstanding operation -- } !
RejectProblem:returnResult-unrecognizedInvocation)
(CONSTRAINED BY {-- which returns a result -- } !
RejectProblem:returnResult-resultResponseUnexpected),
result
SEQUENCE {opcode
OPERATION.&operationCode({Operations})
(CONSTRAINED BY {-- identified by invokeId -- } !
RejectProblem:returnResult-unrecognizedInvocation),
result
OPERATION.&ResultType
({Operations}{@.opcode} !
RejectProblem:returnResult-mistypedResult)} OPTIONAL
}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:general-mistypedPDU)
ReturnError{ERROR:Errors} ::= SEQUENCE {
invokeId
InvokeId
(CONSTRAINED BY {-- must be that for an outstanding operation -- } !
RejectProblem:returnError-unrecognizedInvocation)
(CONSTRAINED BY {-- which returns an error -- } !
RejectProblem:returnError-errorResponseUnexpected),
errcode
ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
(CONSTRAINED BY {--must be in the &Errors field of the associated operation --
} !RejectProblem:returnError-unexpectedError),
parameter
ERROR.&ParameterType
({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
OPTIONAL
}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:general-mistypedPDU)
Reject ::= SEQUENCE {
invokeId InvokeId,
problem
CHOICE {general GeneralProblem,
invoke InvokeProblem,
returnResult ReturnResultProblem,
returnError ReturnErrorProblem}
}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:general-mistypedPDU)
GeneralProblem ::= INTEGER {
unrecognizedComponent(0), mistypedComponent(1), badlyStructuredComponent(2)
}
InvokeProblem ::= INTEGER {
duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
ReturnResultProblem ::= INTEGER {
unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
}
ReturnErrorProblem ::= INTEGER {
unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
unexpectedError(3), mistypedParameter(4)}
RejectProblem ::= INTEGER {
general-unrecognizedPDU(0), general-mistypedPDU(1),
general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
invoke-resourceLimitation(13), invoke-releaseInProgress(14),
invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
invoke-unexpectedLinkedOperation(17),
returnResult-unrecognizedInvocation(20),
returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
returnError-unrecognizedInvocation(30),
returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
returnError-unexpectedError(33), returnError-mistypedParameter(34)}
InvokeId ::= INTEGER
Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
END -- end of Remote-Operations-Apdus definitions
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

View File

@ -0,0 +1,14 @@
# Do not modify this file.
# It is created automatically by the ASN.1 to Wireshark dissector compiler
# .\h450-ros-exp.cnf
# ../../tools/asn2wrs.py -e -p h450.ros -c h450-ros.cnf -o h450-ros -s packet-h450-ros-template ../ros/Remote-Operations-Information-Objects.asn Remote-Operations-Apdus.asn
#.MODULE
Remote-Operations-Information-Objects h450.ros
Remote-Operations-Apdus h450.ros
#.END
#.TYPE_ATTR
ROS TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(h450_ros_ROS_vals) BITMASK = 0
#.END

192
asn1/h450/h450-ros.cnf Normal file
View File

@ -0,0 +1,192 @@
#.EXPORTS
ROS
#.OMIT_ASSIGNMENT
Priority
RejectProblem
#.TYPE_RENAME
Invoke/argument InvokeArgument
ReturnResult/result/result ResultArgument
#.FIELD_RENAME
Invoke/invokeId invokeIdConstrained
Reject/problem/invoke invokeProblem
Reject/problem/returnError returnErrorProblem
Reject/problem/returnResult returnResultProblem
ReturnResult/result/result resultArgument
#--- ROS ---
#.FN_HDR ROS
DISSECTOR_ASSERT(actx->rose_ctx);
rose_ctx_clean_data(actx->rose_ctx);
#.END
#--- Code ---
#.FN_PARS
Code VAL_PTR = &%(ACTX)s->rose_ctx->d.code
Code/local VAL_PTR = &%(ACTX)s->rose_ctx->d.code_local
Code/global FN_VARIANT = _str VAL_PTR = &%(ACTX)s->rose_ctx->d.code_global
#.FN_FTR Code
actx->rose_ctx->d.code_item = actx->created_item;
#.END
#--- Problem ---
#.FN_PARS
GeneralProblem VAL_PTR = &problem_val
InvokeProblem VAL_PTR = &problem_val
ReturnResultProblem VAL_PTR = &problem_val
ReturnErrorProblem VAL_PTR = &problem_val
#.FN_FTR GeneralProblem
strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_GeneralProblem_vals), ""));
#.FN_FTR InvokeProblem
strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_InvokeProblem_vals), ""));
#.FN_FTR ReturnResultProblem
strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnResultProblem_vals), ""));
#.FN_FTR ReturnErrorProblem
strcpy(problem_str, val_to_str(problem_val, VALS(h450_ros_ReturnErrorProblem_vals), ""));
#.END
#--- INVOKE ---
# body is impleneted manually as asn2wrs is not able to handle subtype constraint event passed through parameter
#.FN_BODY Invoke/invokeId
offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
0U, 65535U, %(VAL_PTR)s, TRUE);
#.END
#.FIELD_ATTR
Invoke/argument TYPE = FT_BYTES DISPLAY = BASE_HEX
#.FN_PARS Invoke/argument
FN_VARIANT = _pdu
TYPE_REF_FN = argument_cb
#.FN_HDR Invoke
dissector_handle_t arg_handle = NULL;
arg_next_tvb = NULL;
#.FN_FTR Invoke
actx->rose_ctx->d.pdu = 1;
if (actx->rose_ctx->d.code == 0) {
arg_handle = dissector_get_port_handle(actx->rose_ctx->arg_local_dissector_table, actx->rose_ctx->d.code_local);
} else if (actx->rose_ctx->d.code == 1) {
arg_handle = dissector_get_string_handle(actx->rose_ctx->arg_global_dissector_table, actx->rose_ctx->d.code_global);
} else {
arg_handle = NULL;
}
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " INV:");
if (!arg_handle ||
!proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(arg_handle)))) {
if (actx->rose_ctx->d.code == 0)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %d", actx->rose_ctx->d.code_local);
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
if (!arg_next_tvb) { /* empty argument */
arg_next_tvb = tvb_new_subset(tvb, offset>>3, 0, 0);
}
actx->pinfo->private_data = actx->rose_ctx;
call_dissector((arg_handle)?arg_handle:data_handle, arg_next_tvb, actx->pinfo, tree);
#.END
#--- RETURN RESULT ---
#.FIELD_ATTR
ReturnResult/result/result TYPE = FT_BYTES DISPLAY = BASE_HEX
#.FN_PARS ReturnResult/result/result
FN_VARIANT = _pdu
TYPE_REF_FN = result_cb
#.FN_HDR ReturnResult
dissector_handle_t res_handle = NULL;
res_next_tvb = NULL;
#.FN_FTR ReturnResult
actx->rose_ctx->d.pdu = 2;
if (actx->rose_ctx->d.code == 0) {
res_handle = dissector_get_port_handle(actx->rose_ctx->res_local_dissector_table, actx->rose_ctx->d.code_local);
} else if (actx->rose_ctx->d.code == 1) {
res_handle = dissector_get_string_handle(actx->rose_ctx->res_global_dissector_table, actx->rose_ctx->d.code_global);
} else {
res_handle = NULL;
}
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " RES:");
if (!res_handle ||
!proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(res_handle)))) {
if (actx->rose_ctx->d.code == 0)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %d", actx->rose_ctx->d.code_local);
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
else if (actx->rose_ctx->d.code == -1) /* Code not available */
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " -");
}
if (!res_next_tvb) { /* empty result */
res_next_tvb = tvb_new_subset(tvb, offset>>3, 0, 0);
}
actx->pinfo->private_data = actx->rose_ctx;
call_dissector((res_handle)?res_handle:data_handle, res_next_tvb, actx->pinfo, tree);
#.END
#--- RETURN ERROR ---
#.FIELD_ATTR
ReturnError/parameter TYPE = FT_BYTES DISPLAY = BASE_HEX
#.FN_PARS ReturnError/parameter
FN_VARIANT = _pdu
TYPE_REF_FN = error_cb
#.FN_HDR ReturnError
dissector_handle_t err_handle = NULL;
err_next_tvb = NULL;
#.FN_FTR ReturnError
actx->rose_ctx->d.pdu = 3;
if (actx->rose_ctx->d.code == 0) {
err_handle = dissector_get_port_handle(actx->rose_ctx->err_local_dissector_table, actx->rose_ctx->d.code_local);
} else if (actx->rose_ctx->d.code == 1) {
err_handle = dissector_get_string_handle(actx->rose_ctx->err_global_dissector_table, actx->rose_ctx->d.code_global);
} else {
err_handle = NULL;
}
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " ERR:");
if (!err_handle ||
!proto_is_protocol_enabled(find_protocol_by_id(dissector_handle_get_protocol_index(err_handle)))) {
if (actx->rose_ctx->d.code == 0)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %d", actx->rose_ctx->d.code_local);
else if (actx->rose_ctx->d.code == 1)
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " %s", actx->rose_ctx->d.code_global);
}
if (!err_next_tvb) { /* empty error */
err_next_tvb = tvb_new_subset(tvb, offset>>3, 0, 0);
}
actx->pinfo->private_data = actx->rose_ctx;
call_dissector((err_handle)?err_handle:data_handle, err_next_tvb, actx->pinfo, tree);
#.END
#--- REJECT ---
#.FN_HDR Reject
problem_str[0] = '\0';
#.FN_FTR Reject
proto_item_append_text(proto_item_get_parent_nth(proto_tree_get_parent(tree), actx->rose_ctx->apdu_depth), " REJ: %s", problem_str);
#.END

View File

@ -3,39 +3,61 @@
# Copyright 2004 Anders Broman
# $Id$
#.INCLUDE ../h225/h225-exp.cnf
#.MODULE
Remote-Operations-Apdus ros
#.OPT
PER
ALIGNED
GROUP_BY_PROT
-o h450
#.END
#----------------------------------------------------------------------------------------
#.PDU
CallTransferIdentify
CallTransferAbandon
CallTransferInitiate
CallTransferSetup
CallTransferUpdate
SubaddressTransfer
CallTransferComplete
CallTransferActive
ActivateDiversionQArg
ActivateDiversionQRes
DeactivateDiversionQRes
InterrogateDiversionQRes
CheckRestrictionRes
CallReroutingRes
#.INCLUDE ../h225/h225-exp.cnf
#.INCLUDE h450-ros-exp.cnf
#.MODULE
H4501-Supplementary-ServiceAPDU-Structure h450
Addressing-Data-Elements h450
H225-generic-parameters-definition h450
Manufacturer-specific-service-extension-definition h450
H4501-General-Error-List h450
Call-Transfer-Operations h450.2
Call-Diversion-Operations h450.3
Call-Hold-Operations h450.4
Call-Park-Pickup-Operations h450.5
Call-Waiting-Operations h450.6
Message-Waiting-Indication-Operations h450.7
Name-Operations h450.8
Call-Completion-Operations h450.9
Call-Offer-Operations h450.10
Call-Intrusion-Operations h450.11
Common-Information-Operations h450.12
#.PDU_NEW
H4501SupplementaryService
OPERATION.&ArgumentType
OPERATION.&ResultType
ERROR.&ParameterType
#.FN_HDR H4501SupplementaryService
proto_tree_add_item_hidden(tree, proto_h450, tvb, offset, -1, FALSE);
#.END
#.FN_HDR ServiceApdus/rosApdus/_item
h450_rose_ctx.apdu_depth = 1;
actx->rose_ctx = &h450_rose_ctx;
#.END
#.TYPE_RENAME
ActivateDiversionQArg/extension ActivateDiversionQArg_extension
DeactivateDiversionQArg/extension DeactivateDiversionQArg_extension
InterrogateDiversionQ/extension InterrogateDiversionQ_extension
CheckRestrictionArg/extension CheckRestrictionArg_extension
CallReroutingArg/extension CallReroutingArg_extension
DivertingLegInformation1Arg/extension DivertingLegInformation1Arg_extension
DivertingLegInformation2Arg/extension DivertingLegInformation2Arg_extension
DivertingLegInformation3Arg/extension DivertingLegInformation3Arg_extension
DivertingLegInformation4Arg/extension DivertingLegInformation4Arg_extension
ARG-activateDiversionQ/extension ActivateDiversionQArg_extension
ARG-deactivateDiversionQ/extension DeactivateDiversionQArg_extension
ARG-interrogateDiversionQ/extension InterrogateDiversionQ_extension
ARG-checkRestriction/extension CheckRestrictionArg_extension
ARG-callRerouting/extension CallReroutingArg_extension
ARG-divertingLegInformation1/extension DivertingLegInformation1Arg_extension
ARG-divertingLegInformation2/extension DivertingLegInformation2Arg_extension
ARG-divertingLegInformation3/extension DivertingLegInformation3Arg_extension
ARG-divertingLegInformation4/extension DivertingLegInformation4Arg_extension
IntResult/extension IntResult_extension
#.FIELD_RENAME
@ -57,9 +79,10 @@ SubaddressTransferArg/argumentExtension subaddressTransferArg_argumentExtension
CTCompleteArg/argumentExtension cTCompleteArg_argumentExtension
CTActiveArg/argumentExtension cTActiveArg_argumentExtension
MixedExtension/extension mixedExtension_extension
Unspecified/extension unspecified_extension
CheckRestrictionArg/extension checkRestrictionArg_extension
DivertingLegInformation1Arg/extension divertingLegInformation1Arg_extension
PAR-unspecified/extension unspecified_extension
ARG-checkRestriction/extension checkRestrictionArg_extension
ARG-divertingLegInformation1/extension divertingLegInformation1Arg_extension
ARG-divertingLegInformation2/extension divertingLegInformation2Arg_extension
CcRequestArg/extension ccRequestArg_extension
CcRequestRes/extension ccRequestRes_extension
CcShortArg/extension ccShortArg_extension
@ -68,12 +91,12 @@ CoReqOptArg/extension coReqOptArg_extension
RUAlertOptArg/extension rUAlertOptArg_extension
CfbOvrOptArg/extension cfbOvrOptArg_extension
CmnArg/extension cmnArg_extension
ActivateDiversionQArg/extension activateDiversionQArg_extension
InterrogateDiversionQ/extension interrogateDiversionQ_extension
CallReroutingArg/extension callReroutingArg_extension
DivertingLegInformation4Arg/extension divertingLegInformation4Arg_extension
DivertingLegInformation3Arg/extension divertingLegInformation3Arg_extension
DeactivateDiversionQArg/extension deactivateDiversionQArg_extension
ARG-activateDiversionQ/extension activateDiversionQArg_extension
ARG-interrogateDiversionQ/extension interrogateDiversionQ_extension
ARG-callRerouting/extension callReroutingArg_extension
ARG-divertingLegInformation4/extension divertingLegInformation4Arg_extension
ARG-divertingLegInformation3/extension divertingLegInformation3Arg_extension
ARG-deactivateDiversionQ/extension deactivateDiversionQArg_extension
IntResult/extension intResult_extension
MWIActivateArg/extensionArg mWIActivateArg_extensionArg
@ -96,8 +119,6 @@ PickExeArg/extensionArg pickExeArg_extensionArg
CpNotifyArg/extensionArg cpNotifyArg_extensionArg
CpickupNotifyArg/extensionArg cpickupNotifyArg_extensionArg
CallWaitingArg/extensionArg callWaitingArg_extensionArg
NameArg/extensionArg nameArg_extensionArg
CmnRequestArg/extensionArg cmnRequestArg_extensionArg
CIRequestArg/argumentExtension cIRequestArg_argumentExtension
CIGetCIPLOptArg/argumentExtension cIGetCIPLOptArg_argumentExtension
CIIsOptArg/argumentExtension cIIsOptArg_argumentExtension
@ -112,3 +133,19 @@ CIIsOptRes/resultExtension cIIsOptRes_resultExtension
CIFrcRelOptRes/resultExtension cIFrcRelOptRes_resultExtension
CIWobOptRes/resultExtension cIWobOptRes_resultExtension
CISilentOptRes/resultExtension cISilentOptRes_resultExtension
#.TABLE10_BODY OPERATION
{ %(&operationCode)3s, "%(_name)s" },
#.END
#.TABLE11_BODY OPERATION
/* %(_name)-24s */ { %(&operationCode)3s, %(_argument_pdu)s, %(_result_pdu)s },
#.END
#.TABLE20_BODY ERROR
{ %(&errorCode)4s, "%(_name)s" },
#.END
#.TABLE21_BODY ERROR
/* %(_name)-24s */ { %(&errorCode)4s, %(_parameter_pdu)s },
#.END

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,107 @@
/* packet-h450-ros.c
* Routines for H.450 packet dissection
* 2007 Tomas Kukosa
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <string.h>
#include <epan/packet.h>
#include <epan/prefs.h>
#include <epan/strutil.h>
#include <epan/emem.h>
#include <epan/asn1.h>
#include "packet-per.h"
#define PNAME "H.450 Remote Operations Apdus"
#define PSNAME "H450.ROS"
#define PFNAME "h450.ros"
/* Initialize the protocol and registered fields */
int proto_h450_ros = -1;
#include "packet-h450-ros-hf.c"
/* Initialize the subtree pointers */
#include "packet-h450-ros-ett.c"
/* Preferences */
/* Subdissectors */
static dissector_handle_t data_handle = NULL;
/* Gloabl variables */
static rose_ctx_t *rose_ctx_tmp;
static guint32 problem_val;
static gchar problem_str[64];
static tvbuff_t *arg_next_tvb, *res_next_tvb, *err_next_tvb;
static void
argument_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_) {
arg_next_tvb = tvb;
}
static void
result_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_) {
res_next_tvb = tvb;
}
static void
error_cb(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree _U_) {
err_next_tvb = tvb;
}
#include "packet-h450-ros-fn.c"
/*--- proto_register_h450_ros -----------------------------------------------*/
void proto_register_h450_ros(void) {
/* List of fields */
static hf_register_info hf[] = {
#include "packet-h450-ros-hfarr.c"
};
/* List of subtrees */
static gint *ett[] = {
#include "packet-h450-ros-ettarr.c"
};
/* Register protocol and dissector */
proto_h450_ros = proto_register_protocol(PNAME, PSNAME, PFNAME);
proto_set_cant_toggle(proto_h450_ros);
/* Register fields and subtrees */
proto_register_field_array(proto_h450_ros, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
/*--- proto_reg_handoff_h450_ros --------------------------------------------*/
void proto_reg_handoff_h450_ros(void) {
data_handle = find_dissector("data");
}
/*---------------------------------------------------------------------------*/

View File

@ -1,6 +1,6 @@
/* packet-h450.h
* Routines for h450 packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
/* packet-h450-ros.h
* Routines for H.450 packet dissection
* 2007 Tomas Kukosa
*
* $Id$
*
@ -23,13 +23,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef PACKET_H450_H
#define PACKET_H450_H
#ifndef PACKET_H450_ROS_H
#define PACKET_H450_ROS_H
#include "packet-h450-ros-exp.h"
/*#include "packet-H450-exp.h" */
#endif /* PACKET_H450_H */
#endif /* PACKET_H450_ROS_H */

File diff suppressed because it is too large Load Diff

View File

@ -101,6 +101,7 @@ ASN_DISSECTOR_SRC = \
packet-h245.c \
packet-h248.c \
packet-h450.c \
packet-h450-ros.c \
packet-imf.c \
packet-inap.c \
packet-ldap.c \
@ -868,7 +869,7 @@ DISSECTOR_INCLUDES = \
packet-h235.h \
packet-h245.h \
packet-h248.h \
packet-h450.h \
packet-h450-ros.h \
packet-hci_h4.h \
packet-hclnfsd.h \
packet-hpext.h \

File diff suppressed because it is too large Load Diff

View File

@ -1,43 +0,0 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* .\packet-h450.h */
/* ../../tools/asn2wrs.py -e -p h450 -c h450.cnf -s packet-h450-template h4501.asn */
/* Input file: packet-h450-template.h */
#line 1 "packet-h450-template.h"
/* packet-h450.h
* Routines for h450 packet dissection
* Copyright 2005, Anders Broman <anders.broman@ericsson.com>
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef PACKET_H450_H
#define PACKET_H450_H
/*#include "packet-H450-exp.h" */
#endif /* PACKET_H450_H */

View File

@ -738,11 +738,9 @@ DEBUG_ENTRY("dissect_per_constrained_sequence_of");
}
/* 19.6 ub>=64k or unset */
if(max_len>=65536){
/* semi-constrained whole number for number of elements */
/* each element encoded as 10.9 */
if ((max_len >= 65536) || (max_len == NO_BOUND)) {
/* no constraint, see 10.9.4.2 */
offset=dissect_per_length_determinant(tvb, offset, actx, parent_tree, hf_per_sequence_of_length, &length);
length+=min_len;
goto call_sohelper;
}

View File

@ -1263,9 +1263,10 @@ class EthCtx:
if self.type[t]['import']:
continue
m = self.type[t]['module']
if not self.all_tags.has_key(m):
self.all_tags[m] = {}
self.all_tags[m][t] = self.type[t]['val'].GetTTag(self)
if not self.Per():
if not self.all_tags.has_key(m):
self.all_tags[m] = {}
self.all_tags[m][t] = self.type[t]['val'].GetTTag(self)
if not self.all_type_attr.has_key(m):
self.all_type_attr[m] = {}
self.all_type_attr[m][t] = self.eth_get_type_attr(t).copy()
@ -4176,20 +4177,31 @@ class ChoiceType (Type):
#print "Choice IndetermTag()=%s" % (str(not self.HasOwnTag()))
return not self.HasOwnTag()
def get_vals(self, ectx):
def detect_tagval(self, ectx):
tagval = False
if (ectx.Ber()):
lst = self.elt_list[:]
if hasattr(self, 'ext_list'):
lst.extend(self.ext_list)
if (len(lst) > 0):
t = lst[0].GetTag(ectx)[0]
tagval = True
if (t == 'BER_CLASS_UNI'):
lst = self.elt_list[:]
if hasattr(self, 'ext_list'):
lst.extend(self.ext_list)
if (len(lst) > 0) and (not ectx.Per() or lst[0].HasOwnTag()):
t = lst[0].GetTag(ectx)[0]
tagval = True
else:
t = ''
tagval = False
if (t == 'BER_CLASS_UNI'):
tagval = False
for e in (lst):
if not ectx.Per() or e.HasOwnTag():
tt = e.GetTag(ectx)[0]
else:
tt = ''
tagval = False
for e in (lst):
if (e.GetTag(ectx)[0] != t):
tagval = False
if (tt != t):
tagval = False
return tagval
def get_vals(self, ectx):
tagval = self.detect_tagval(ectx)
vals = []
cnt = 0
for e in (self.elt_list):
@ -4260,19 +4272,7 @@ class ChoiceType (Type):
# end out_item()
#print "eth_type_default_table(tname='%s')" % (tname)
fname = ectx.eth_type[tname]['ref'][0]
tagval = False
if (ectx.Ber()):
lst = self.elt_list[:]
if hasattr(self, 'ext_list'):
lst.extend(self.ext_list)
if (len(lst) > 0):
t = lst[0].GetTag(ectx)[0]
tagval = True
if (t == 'BER_CLASS_UNI'):
tagval = False
for e in (lst):
if (e.GetTag(ectx)[0] != t):
tagval = False
tagval = self.detect_tagval(ectx)
if (ectx.Ber()):
if (ectx.NewBer()):
table = "static const %(ER)s_choice_t %(TABLE)s[] = {\n"