From Tim Endean: INAP dissector.
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 9 Feb 2005 22:31:40 +0000 (22:31 +0000)
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>
Wed, 9 Feb 2005 22:31:40 +0000 (22:31 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@13363 f5534014-38df-0310-8fa8-9805f1628bb7

asn1/inap/inap.asn [new file with mode: 0644]
asn1/inap/inap.cnf [new file with mode: 0644]
asn1/inap/packet-inap-template.c [new file with mode: 0644]
asn1/inap/packet-inap-template.h [new file with mode: 0644]

diff --git a/asn1/inap/inap.asn b/asn1/inap/inap.asn
new file mode 100644 (file)
index 0000000..cdb8187
--- /dev/null
@@ -0,0 +1,861 @@
+IN-CS-1-Operations-appendix { ccitt recommendation q 1218 modules(0) cs-1-operations-app(4) version1(0) }
+--  This module contains additional type definitions for IN CS-1 operations.
+DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+--  TYPE DEFINITION FOR ADDITIONAL     IN CS-1 OPERATIONS
+--  SCF-SSF operations
+--  SCF ? SSF
+--  This operation is used to release a call party connection during a call between two or more parties.
+--LegIDAlreadyAssigned ::= ERROR
+--  Indicates that a legID has already been assigned with the requested value.
+--TooLate ::= ERROR
+--  Indicates that the operation could not be performed in a timely manner.
+--UnknownLegID ::= ERROR
+--  Indicates that the legID does not exist.
+--  TYPE DEFINITION FOR ADDITIONAL     IN CS-1 DATA TYPES
+--  Argument Data Types
+AddPartyArg ::= SEQUENCE {
+       originalCallID  [0]     CallID  OPTIONAL,
+       destinationCallID       [1]     CallID  OPTIONAL
+       }
+--  OPTIONAL denotes network operator specific use.
+AttachArg ::= SEQUENCE {
+       newLegID        [0]     IMPLICIT OCTET STRING   OPTIONAL,
+       correlationidentifier   [1]     IMPLICIT OCTET STRING   OPTIONAL
+       }
+--  OPTIONAL denotes network operator specific use.
+CallPartyHandlingResultsArg ::= SEQUENCE OF LegInformation
+ChangePartiesArg ::= SEQUENCE {
+       callID  [0]     CallID  OPTIONAL,
+       targetCallID    [1]     CallID,
+       legToBeConnectedID      [2]     IMPLICIT OCTET STRING   
+       }
+--  OPTIONAL denotes network operator specific use.
+DetachArg ::= SEQUENCE {
+       legToBeDetached [0]     IMPLICIT OCTET STRING   OPTIONAL,
+       correlationidentifier   [1]     IMPLICIT OCTET STRING   OPTIONAL
+       }
+--  OPTIONAL denotes network operator specific use.
+HoldCallPartyConnectionArg ::= SEQUENCE {
+       callID  [0]     CallID  OPTIONAL,
+       legID   [1]     LegID
+       }
+LegID ::= CHOICE {
+       sendingSideID [0] IMPLICIT OCTET STRING (SIZE (1)),
+       receivingSideID [1] IMPLICIT OCTET STRING (SIZE (1))}
+--  OPTIONAL denotes network operator specific use.
+ReconnectArg ::= SEQUENCE {
+       callID  [0]     CallID  OPTIONAL,
+       heldLegID       [1]     LegID
+       }
+--  OPTIONAL denotes network operator specific use.
+ReleaseCallPartyConnectionArg ::= SEQUENCE {
+       legToBeReleased [0]     LegID,
+       callID  [1]     CallID  OPTIONAL,
+       releaseCause    [2]     Cause   OPTIONAL
+       }
+--  OPTIONAL denotes network operator specific use. Common Data Types
+CallID ::= INTEGER
+--  Indicates an identifier to reference an instance of a Call accessible to the SCF. Refer to
+--  4.2.2.1/Q.1214 for a description of Call Segment.
+Cause ::= OCTET STRING
+--  Indicates the cause for interface related information. Refer to the Q.763 Cause parameter 
+--  for encoding.
+LegInformation ::= SEQUENCE {
+       legID   [0]     LegID,
+       legStatus       [1]     LegStatus
+       }
+--  Indicates call party information, as defined by a Leg object. This includes a LegID to reference 
+--  each call party, and a LegStatus to indicate whether the call party is connected or not.
+LegStatus ::= ENUMERATED {
+       connected(0),
+       unconnected(1),
+       pending(2),
+       interacting(3)  --  user connected to a resource
+       }
+--  Indicates the state of the call party.
+--  OPERATION AND ERROR CODE DEFINITION
+--  Code point values are for further study. The operations are grouped by the identified ASEs.
+--  Call party handling ASE
+addParty       AddParty ::= ffs
+changeParties  ChangeParties ::= ffs
+holdCallPartyConnection                HoldCallPartyConnection ::= ffs
+reconnect              Reconnect ::= ffs
+releaseCallPartyConnection             ReleaseCallPartyConnection ::= ffs
+--  Attach ASE
+attach Attach ::= ffs
+detach Detach ::= ffs
+
+VariableParts ::= SEQUENCE SIZE (1..5) OF
+       CHOICE {
+       integer [0] IMPLICIT INTEGER (0..2147483647),
+       number  [1] IMPLICIT OCTET STRING ,
+       time    [2] IMPLICIT OCTET STRING ,
+       date    [3] IMPLICIT OCTET STRING ,
+       price   [4] IMPLICIT OCTET STRING }
+
+VariableMessage ::= SEQUENCE {
+       elementaryMessageID [0] IMPLICIT INTEGER (0..2147483647),
+       variableParts [1] IMPLICIT VariableParts }
+       
+TriggerType ::= ENUMERATED {
+       featureActivation (0),
+       verticalServiceCode (1),
+       customizedAccess (2),
+       customizedIntercom (3),
+       emergencyService (12),
+       aFR (13),
+       sharedIOTrunk (14),
+       offHookDelay (17),
+       channelSetupPRI (18),
+       tNoAnswer (25),
+       tBusy (26),
+       oCalledPartyBusy (27),
+       oNoAnswer (29),
+       originationAttemptAuthorized (30),
+       oAnswer (31),
+       oDisconnect (32),
+       termAttemptAuthorized (33),
+       tAnswer (34),
+       tDisconnect (35)}
+       
+Tone ::= SEQUENCE {
+       toneID  [0] IMPLICIT INTEGER (0..2147483647),
+       tduration       [1] IMPLICIT INTEGER (0..2147483647) OPTIONAL}  
+Text ::= SEQUENCE {
+       messageContent [0] IMPLICIT IA5String ,
+       attributes [1] IMPLICIT OCTET STRING  OPTIONAL}
+MessageID ::= CHOICE {
+       elementaryMessageID [0] IMPLICIT INTEGER (0..2147483647),
+       text    [1] IMPLICIT Text,
+       elementaryMessageIDs [29] IMPLICIT SEQUENCE SIZE (1..10) OF
+       INTEGER (0..2147483647),
+       variableMessage [30] IMPLICIT VariableMessage}
+       
+       InformationToSend ::= CHOICE {
+       inbandInfo [0] IMPLICIT SEQUENCE {
+       messageID [0] MessageID,
+       numberOfRepetitions [1] IMPLICIT INTEGER (1..127) OPTIONAL,
+       mduration       [2] IMPLICIT INTEGER (0..32767) OPTIONAL,
+       interval        [3] IMPLICIT INTEGER (0..32767) OPTIONAL},
+               tone    [1] IMPLICIT Tone,
+       displayInformation [2] IMPLICIT IA5String } 
+FilteringCriteria ::= CHOICE {
+       dialledNumber [0] IMPLICIT OCTET STRING ,
+       callingLineID [1] IMPLICIT OCTET STRING ,
+       serviceKey [2] IMPLICIT INTEGER (0..2147483647),
+       addressAndService [30] IMPLICIT SEQUENCE {
+       calledAddressValue [0] IMPLICIT OCTET STRING ,
+       serviceKey [1] IMPLICIT INTEGER (0..2147483647),
+       callingAddressValue [2] IMPLICIT OCTET STRING  OPTIONAL,
+       locationNumber [3] IMPLICIT OCTET STRING  OPTIONAL}}
+Extensions ::= SEQUENCE SIZE (1..10) OF
+       SEQUENCE {
+       type INTEGER,
+       criticality ENUMERATED {
+       ignore  (0),
+       abort   (1)} DEFAULT ignore ,
+       value   [1] IMPLICIT OCTET STRING       }
+       
+ActivateServiceFilteringarg    ::=     SEQUENCE {
+       filteredCallTreatment [0] IMPLICIT SEQUENCE {
+       sFBillingChargingCharacteristics [0] IMPLICIT OCTET STRING ,
+       informationToSend [1] InformationToSend OPTIONAL,
+       maximumNumberOfCounters [2] IMPLICIT INTEGER  OPTIONAL,
+       releaseCause [3] IMPLICIT Cause  OPTIONAL},
+       filteringCharacteristics [1] CHOICE {
+       interval [0] IMPLICIT INTEGER (0..32767),
+       numberOfCalls [1] IMPLICIT INTEGER (0..2147483647)},
+       filteringTimeOut [2] CHOICE {
+       aduration [0] IMPLICIT INTEGER (-2..86400),
+       stopTime [1] IMPLICIT OCTET STRING (SIZE (6))},
+       filteringCriteria [3] FilteringCriteria,
+       startTime [4] IMPLICIT OCTET STRING (SIZE (6)) OPTIONAL,
+       extensions [5] IMPLICIT Extensions OPTIONAL}
+       
+MiscCallInfo ::= SEQUENCE {
+       messageType [0] IMPLICIT ENUMERATED {
+       request (0),
+       notification (1)},
+       dpAssignment [1] IMPLICIT ENUMERATED {
+       individualLine (0),
+       groupBased (1),
+       officeBased (2)} OPTIONAL}
+       
+ServiceAddressInformation ::= SEQUENCE {
+       serviceKey [0] IMPLICIT INTEGER (0..2147483647) OPTIONAL,
+       miscCallInfo [1] IMPLICIT MiscCallInfo,
+       triggerType [2] IMPLICIT TriggerType OPTIONAL}
+       
+TerminalType ::= ENUMERATED {
+       unknown (0),
+       dialPulse       (1),
+       dtmf    (2),
+       isdn    (3),
+       isdnNoDtmf      (4),
+       spare (16)}
+RouteList ::= SEQUENCE SIZE (1..3) OF OCTET STRING
+CGEncountered ::= ENUMERATED {
+       noCGencountered (0),
+       manualCGencountered (1),
+       scpOverload (2)}
+BearerCapability ::= CHOICE {
+       bearerCap[0] IMPLICIT OCTET STRING,
+       tmr [1] IMPLICIT OCTET STRING (SIZE(1))}
+DpSpecificCommonParameters ::= SEQUENCE {
+       serviceAddressInformation [0] IMPLICIT ServiceAddressInformation ,
+       bearerCapability [1] BearerCapability OPTIONAL,
+       calledPartyNumber [2] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyNumber [3] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartysCategory [4] IMPLICIT OCTET STRING (SIZE (1)) OPTIONAL,
+       iPSSPCapabilities [5] IMPLICIT OCTET STRING  OPTIONAL,
+       iPAvailable [6] IMPLICIT OCTET STRING  OPTIONAL,
+       iSDNAccessRelatedInformation [7] IMPLICIT OCTET STRING OPTIONAL,
+       cGEncountered [8] IMPLICIT CGEncountered OPTIONAL,
+       locationNumber [9] IMPLICIT OCTET STRING  OPTIONAL,
+       serviceProfileIdentifier [10] IMPLICIT OCTET STRING OPTIONAL,
+       terminalType [11] IMPLICIT TerminalType OPTIONAL,
+       extensions [12] IMPLICIT Extensions OPTIONAL,
+       chargeNumber [13] IMPLICIT OCTET STRING  OPTIONAL,
+       servingAreaID [14] IMPLICIT OCTET STRING  OPTIONAL}
+
+CallingFacilityGroup ::= CHOICE {
+       trunkGroupID [0] IMPLICIT INTEGER,
+       privateFacilityID [1] IMPLICIT INTEGER,
+       huntGroup [2] IMPLICIT OCTET STRING,
+       routeIndex [3] IMPLICIT OCTET STRING}
+AnalysedInformationarg ::=     SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       dialledDigits [1] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyBusinessGroupID [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [4] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [5] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       prefix [7] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [8] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [9] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList [10] IMPLICIT RouteList  OPTIONAL,
+       travellingClassMark [11] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [12] IMPLICIT Extensions OPTIONAL,
+       featureCode [13] IMPLICIT OCTET STRING  OPTIONAL,
+       accessCode [14] IMPLICIT OCTET STRING  OPTIONAL,
+       carrier [15] IMPLICIT OCTET STRING OPTIONAL}
+DestinationAddress ::= OCTET STRING
+AnalyseInformationarg ::=      SEQUENCE {
+       destinationRoutingAddress [0] IMPLICIT SEQUENCE SIZE (1..3) OF DestinationAddress,
+       alertingPattern [1] IMPLICIT OCTET STRING (SIZE (3)) OPTIONAL,
+       iSDNAccessRelatedInformation [2] IMPLICIT OCTET STRING OPTIONAL,
+       originalCalledPartyID [3] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [4] IMPLICIT Extensions OPTIONAL,
+       callingPartyNumber [5] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartysCategory [6] IMPLICIT OCTET STRING (SIZE (1)) OPTIONAL,
+       calledPartyNumber [7] IMPLICIT OCTET STRING  OPTIONAL,
+       chargeNumber [8] IMPLICIT OCTET STRING  OPTIONAL,
+       travellingClassMark [9] IMPLICIT OCTET STRING  OPTIONAL,
+       carrier [10] IMPLICIT OCTET STRING OPTIONAL}
+PartyToCharge ::= CHOICE {
+       sendingSideID [0] IMPLICIT OCTET STRING (SIZE (1)),
+       receivingSideID [1] IMPLICIT OCTET STRING (SIZE (1))}
+ApplyChargingarg ::=   SEQUENCE {
+       aChBillingChargingCharacteristics [0] IMPLICIT OCTET STRING ,
+       partyToCharge [2] PartyToCharge OPTIONAL,
+       extensions [3] IMPLICIT Extensions OPTIONAL}
+ApplyChargingReportarg ::=     OCTET STRING 
+AssistRequestInstructionsarg ::=       SEQUENCE {
+       correlationID [0] IMPLICIT OCTET STRING ,
+       iPAvailable [1] IMPLICIT OCTET STRING  OPTIONAL,
+       iPSSPCapabilities [2] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [3] IMPLICIT Extensions OPTIONAL}
+
+CallGaparg ::= SEQUENCE {
+       gapCriteria [0] CHOICE {
+       calledAddressValue [0] IMPLICIT OCTET STRING ,
+       gapOnService [2] IMPLICIT SEQUENCE {
+       serviceKey [0] IMPLICIT INTEGER (0..2147483647),
+       dpCriteria [1] IMPLICIT ENUMERATED {
+       origAttemptAuthorized (1),
+       collectedInfo (2),
+       analysedInformation (3),
+       routeSelectFailure (4),
+       oCalledPartyBusy (5),
+       oNoAnswer (6),
+       oAnswer (7),
+       oMidCall (8),
+       oDisconnect (9),
+       oAbandon (10),
+       termAttemptAuthorized (12),
+       tBusy (13),
+       tNoAnswer (14),
+       tAnswer (15),
+       tMidCall (16),
+       tDisconnect (17),
+       tAbandon (18)} OPTIONAL},
+       calledAddressAndService [29] IMPLICIT SEQUENCE {
+       calledAddressValue [0] IMPLICIT OCTET STRING ,
+       serviceKey [1] IMPLICIT INTEGER (0..2147483647)},
+       callingAddressAndService [30] IMPLICIT SEQUENCE {
+       callingAddressValue [0] IMPLICIT OCTET STRING ,
+       serviceKey [1] IMPLICIT INTEGER (0..2147483647),
+       locationNumber [2] IMPLICIT OCTET STRING  OPTIONAL}},
+       gapIndicators [1] IMPLICIT SEQUENCE {
+       cgduration [0] IMPLICIT INTEGER (-2..86400),
+       gapInterval [1] IMPLICIT INTEGER (-1..60000)},
+       controlType [2] IMPLICIT ENUMERATED {
+       sCPOverloaded (0),
+       manuallyInitiated (1),
+       destinationOverload (2)} OPTIONAL,
+       gapTreatment [3] CHOICE {
+       informationToSend [0] InformationToSend,
+       releaseCause [1] IMPLICIT Cause,
+       both [2] IMPLICIT Both} OPTIONAL,
+       extensions [4] IMPLICIT Extensions OPTIONAL}
+Both ::= SEQUENCE {
+       informationToSend [0] InformationToSend,
+       releaseCause [1] IMPLICIT Cause}
+CallInformationReportarg ::=   SEQUENCE {
+       requestedInformationList [0] IMPLICIT SEQUENCE SIZE (1..5) OF
+       SEQUENCE {
+       requestedInformationType [0] IMPLICIT ENUMERATED {
+       callAttemptElapsedTime (0),
+       callStopTime (1),
+       callConnectedElapsedTime (2),
+       calledAddress (3),
+       releaseCause (30)},
+       requestedInformationValue [1] CHOICE {
+       callAttemptElapsedTimeValue [0] IMPLICIT INTEGER (0..255),
+       callStopTimeValue [1] IMPLICIT OCTET STRING (SIZE (6)),
+       callConnectedElapsedTimeValue [2] IMPLICIT INTEGER (0..2147483647),
+       calledAddressValue [3] IMPLICIT OCTET STRING ,
+       releaseCauseValue [30] IMPLICIT Cause }},
+       correlationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [2] IMPLICIT Extensions OPTIONAL}
+        
+CallInformationRequestarg ::=  SEQUENCE {
+       requestedInformationTypeList [0] IMPLICIT SEQUENCE SIZE (1..5) OF
+       ENUMERATED {
+       callAttemptElapsedTime (0),
+       callStopTime (1),
+       callConnectedElapsedTime (2),
+       calledAddress (3),
+       releaseCause (30)},
+       correlationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [2] IMPLICIT Extensions OPTIONAL}
+Cancelarg ::=  CHOICE {
+       invokeID [0] IMPLICIT INTEGER (-128..127),
+       allRequests [1] IMPLICIT NULL}
+       
+FacilityGroupID ::= CHOICE {
+       trunkGroupID [0] IMPLICIT INTEGER,
+       privateFacilityID [1] IMPLICIT INTEGER,
+       huntGroup [2] IMPLICIT OCTET STRING,
+       routeIndex [3] IMPLICIT OCTET STRING}
+       
+ResourceID ::= CHOICE {
+       lineID [0] IMPLICIT OCTET STRING ,
+       facilityGroupID [1] FacilityGroupID,
+       facilityGroupMemberID [2] IMPLICIT INTEGER,
+       trunkGroupID [3] IMPLICIT INTEGER}
+CancelStatusReportRequestarg ::=       SEQUENCE {
+       resourceID [0] ResourceID OPTIONAL,
+       extensions [1] IMPLICIT Extensions OPTIONAL}
+CollectedInformationarg ::=    SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       dialledDigits [1] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyBusinessGroupID [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [4] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [5] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       prefix [7] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [8] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [9] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       travellingClassMark [10] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [11] IMPLICIT Extensions OPTIONAL,
+       featureCode [12] IMPLICIT OCTET STRING  OPTIONAL,
+       accessCode [13] IMPLICIT OCTET STRING  OPTIONAL,
+       carrier [14] IMPLICIT OCTET STRING OPTIONAL}
+CollectInformationarg ::=      SEQUENCE {
+       alertingPattern [0] IMPLICIT OCTET STRING (SIZE (3)) OPTIONAL,
+       numberingPlan [1] IMPLICIT OCTET STRING (SIZE (1)) OPTIONAL,
+       originalCalledPartyID [2] IMPLICIT OCTET STRING  OPTIONAL,
+       travellingClassMark [3] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [4] IMPLICIT Extensions OPTIONAL,
+       callingPartyNumber [5] IMPLICIT OCTET STRING  OPTIONAL,
+       dialledDigits [6] IMPLICIT OCTET STRING  OPTIONAL}
+Connectarg ::= SEQUENCE {
+       destinationRoutingAddress [0] IMPLICIT SEQUENCE SIZE (1..3) OF  DestinationAddress ,
+       alertingPattern [1] IMPLICIT OCTET STRING (SIZE (3)) OPTIONAL,
+       correlationID [2] IMPLICIT OCTET STRING  OPTIONAL,
+       cutAndPaste [3] IMPLICIT INTEGER (0..22) OPTIONAL,
+       forwardingCondition [4] IMPLICIT ENUMERATED {
+       busy (0),
+       noanswer (1)} OPTIONAL,
+       iSDNAccessRelatedInformation [5] IMPLICIT OCTET STRING OPTIONAL,
+       originalCalledPartyID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       routeList [7] IMPLICIT RouteList  OPTIONAL,
+       scfID [8] IMPLICIT OCTET STRING  OPTIONAL,
+       travellingClassMark [9] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [10] IMPLICIT Extensions OPTIONAL,
+       carrier [11] IMPLICIT OCTET STRING OPTIONAL,
+       serviceInteractionIndicators [26] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyNumber [27] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartysCategory [28] IMPLICIT OCTET STRING (SIZE (1)) OPTIONAL,
+       redirectingPartyID [29] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [30] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL}
+ConnectToResource ::=  SEQUENCE {
+       resourceAddress CHOICE {
+       ipRoutingAddress [0] IMPLICIT OCTET STRING ,
+       legID [1] LegID,
+       both [2] IMPLICIT Both,
+       none [3] IMPLICIT NULL},
+       extensions [4] IMPLICIT Extensions OPTIONAL,
+       serviceInteractionIndicators [30] IMPLICIT OCTET STRING  OPTIONAL}
+EstablishTemporaryConnection ::=       SEQUENCE {
+       assistingSSPIPRoutingAddress [0] IMPLICIT OCTET STRING ,
+       correlationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       legID   [2] LegID OPTIONAL,
+       scfID   [3] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [4] IMPLICIT Extensions OPTIONAL,
+       carrier [5] IMPLICIT OCTET STRING OPTIONAL,
+       serviceInteractionIndicators [30] IMPLICIT OCTET STRING  OPTIONAL}
+ MonitorMode ::=  ENUMERATED {
+       interrupted (0),
+       notifyAndContinue (1),
+       transparent (2)} 
+       
+EventNotificationChargingarg ::=       SEQUENCE {
+       eventTypeCharging [0] IMPLICIT OCTET STRING ,
+       eventSpecificInformationCharging [1] IMPLICIT OCTET STRING  OPTIONAL,
+       legID [2] LegID OPTIONAL,
+       extensions [3] IMPLICIT Extensions OPTIONAL,
+       monitorMode [30] IMPLICIT MonitorMode}
+ EventTypeBCSM ::= ENUMERATED {
+       origAttemptAuthorized (1),
+       collectedInfo (2),
+       analysedInformation (3),
+       routeSelectFailure (4),
+       oCalledPartyBusy (5),
+       oNoAnswer (6),
+       oAnswer (7),
+       oMidCall (8),
+       oDisconnect (9),
+       oAbandon (10),
+       termAttemptAuthorized (12),
+       tBusy (13),
+       tNoAnswer (14),
+       tAnswer (15),
+       tMidCall (16),
+       tDisconnect (17),
+       tAbandon (18)}
+EventReportBCSM ::=    SEQUENCE {
+       eventTypeBCSM [0] IMPLICIT EventTypeBCSM,
+       bcsmEventCorrelationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       eventSpecificInformationBCSM [2] CHOICE {
+       collectedInfoSpecificInfo [0] IMPLICIT SEQUENCE {
+       calledPartynumber [0] IMPLICIT OCTET STRING },
+       analyzedInfoSpecificInfo [1] IMPLICIT SEQUENCE {
+       calledPartynumber [0] IMPLICIT OCTET STRING },
+       routeSelectFailureSpecificInfo [2] IMPLICIT SEQUENCE {
+       failureCause [0] IMPLICIT OCTET STRING (SIZE (2..10)) OPTIONAL},
+       oCalledPartyBusySpecificInfo [3] IMPLICIT SEQUENCE {
+       busyCause [0] IMPLICIT OCTET STRING (SIZE (2..10)) OPTIONAL},
+       oNoAnswerSpecificInfo [4] IMPLICIT SEQUENCE {},
+       oAnswerSpecificInfo [5] IMPLICIT SEQUENCE {},
+       oMidCallSpecificInfo [6] IMPLICIT SEQUENCE {
+       connectTime [0] IMPLICIT INTEGER (0..2147483647) OPTIONAL},
+       oDisconnectSpecificInfo [7] IMPLICIT SEQUENCE {
+       releaseCause [0] IMPLICIT Cause OPTIONAL,
+       connectTime [1] IMPLICIT INTEGER (0..2147483647) OPTIONAL},
+       tBusySpecificInfo [8] IMPLICIT SEQUENCE {
+       busyCause [0] IMPLICIT OCTET STRING (SIZE (2..10)) OPTIONAL},
+       tNoAnswerSpecificInfo [9] IMPLICIT SEQUENCE {},
+       tAnswerSpecificInfo [10] IMPLICIT SEQUENCE {},
+       tMidCallSpecificInfo [11] IMPLICIT SEQUENCE {
+       connectTime [0] IMPLICIT INTEGER (0..2147483647) OPTIONAL},
+       tDisconnectSpecificInfo [12] IMPLICIT SEQUENCE {
+       releaseCause [0] IMPLICIT Cause OPTIONAL,
+       connectTime [1] IMPLICIT INTEGER (0..2147483647) OPTIONAL}} OPTIONAL,
+       legID  [3] LegID OPTIONAL,
+       miscCallInfo [4] IMPLICIT MiscCallInfo,
+       extensions [5] IMPLICIT Extensions OPTIONAL}
+        
+FurnishChargingInformationarg ::=      OCTET STRING 
+HoldCallInNetworkarg ::=       CHOICE {
+       holdcause [0] IMPLICIT OCTET STRING,
+       empty [1] IMPLICIT NULL}
+InitialDP ::=  SEQUENCE {
+       serviceKey [0] IMPLICIT INTEGER (0..2147483647) OPTIONAL,
+       dialledDigits [1] IMPLICIT OCTET STRING  OPTIONAL,
+       calledPartyNumber [2] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyNumber [3] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyBusinessGroupID [4] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartysCategory [5] IMPLICIT OCTET STRING (SIZE (1)) OPTIONAL,
+       callingPartySubaddress [6] IMPLICIT OCTET STRING OPTIONAL,
+       cGEncountered [7] IMPLICIT CGEncountered OPTIONAL,
+       iPSSPCapabilities [8] IMPLICIT OCTET STRING  OPTIONAL,
+       iPAvailable [9] IMPLICIT OCTET STRING  OPTIONAL,
+       locationNumber [10] IMPLICIT OCTET STRING  OPTIONAL,
+       miscCallInfo [11] IMPLICIT MiscCallInfo OPTIONAL,
+       originalCalledPartyID [12] IMPLICIT OCTET STRING  OPTIONAL,
+       serviceProfileIdentifier [13] IMPLICIT OCTET STRING OPTIONAL,
+       terminalType [14] IMPLICIT TerminalType OPTIONAL,
+       extensions [15] IMPLICIT Extensions OPTIONAL,
+       triggerType [16] IMPLICIT TriggerType OPTIONAL,
+       highLayerCompatibility [23] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       serviceInteractionIndicators [24] IMPLICIT OCTET STRING  OPTIONAL,
+       additionalCallingPartyNumber [25] IMPLICIT OCTET STRING  OPTIONAL,
+       forwardCallIndicators [26] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       bearerCapability [27] BearerCapability OPTIONAL,
+       eventTypeBCSM [28] IMPLICIT EventTypeBCSM OPTIONAL,
+       redirectingPartyID [29] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [30] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL}
+InitiateCallAttempt ::=        SEQUENCE {
+       destinationRoutingAddress [0] IMPLICIT SEQUENCE SIZE (1..3) OF DestinationAddress,
+       alertingPattern [1] IMPLICIT OCTET STRING (SIZE (3)) OPTIONAL,
+       iSDNAccessRelatedInformation [2] IMPLICIT OCTET STRING OPTIONAL,
+       travellingClassMark [3] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [4] IMPLICIT Extensions OPTIONAL,
+       serviceInteractionIndicators [29] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyNumber [30] IMPLICIT OCTET STRING  OPTIONAL}
+       OAnswer ::=     SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       callingPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [3] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [5] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [7] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList [8] IMPLICIT RouteList OPTIONAL,
+       travellingClassMark [9] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [10] IMPLICIT Extensions OPTIONAL}
+OCalledPartyBusy ::=   SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       busyCause [1] IMPLICIT OCTET STRING (SIZE (2..10)) OPTIONAL,
+       callingPartyBusinessGroupID [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [4] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [5] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       prefix [7] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [8] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [9] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList [10] IMPLICIT RouteList  OPTIONAL,
+       travellingClassMark [11] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [12] IMPLICIT Extensions OPTIONAL,
+       carrier [13] IMPLICIT OCTET STRING OPTIONAL}
+ODisconnect ::=        SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       callingPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [3] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       releaseCause [5] IMPLICIT Cause OPTIONAL,
+       routeList [6] IMPLICIT RouteList OPTIONAL,
+       extensions [7] IMPLICIT Extensions OPTIONAL,
+       carrier [8] IMPLICIT OCTET STRING OPTIONAL,
+       connectTime [9] IMPLICIT INTEGER (0..2147483647) OPTIONAL}
+       
+       
+       FeatureRequestIndicator ::= ENUMERATED {
+       hold (0),
+       retrieve (1),
+       featureActivation (2),
+       spare1 (3),
+       sparen (127)}
+OMidCall   ::= SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       calledPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartyBusinessGroupID [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [4] IMPLICIT OCTET STRING OPTIONAL,
+       featureRequestIndicator [5] IMPLICIT FeatureRequestIndicator OPTIONAL,
+       extensions [6] IMPLICIT Extensions OPTIONAL,
+       carrier [7] IMPLICIT OCTET STRING OPTIONAL}
+ONoAnswer ::=  SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       callingPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [3] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [5] IMPLICIT OCTET STRING  OPTIONAL,
+       prefix [6] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [7] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [8] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList  [9] IMPLICIT RouteList OPTIONAL,
+       travellingClassMark [10] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [11] IMPLICIT Extensions OPTIONAL,
+       carrier [12] IMPLICIT OCTET STRING OPTIONAL}
+OriginationAttemptAuthorized ::=       SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       dialledDigits [1] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyBusinessGroupID [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [4] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [5] IMPLICIT INTEGER OPTIONAL,
+       travellingClassMark [6] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [7] IMPLICIT Extensions OPTIONAL,
+       carrier [8] IMPLICIT OCTET STRING OPTIONAL}
+PlayAnnouncement ::=   SEQUENCE {
+       informationToSend [0] InformationToSend,
+       disconnectFromIPForbidden [1] IMPLICIT BOOLEAN DEFAULT TRUE,
+       requestAnnouncementComplete [2] IMPLICIT BOOLEAN DEFAULT TRUE,
+       extensions [3] IMPLICIT Extensions OPTIONAL}
+PromptAndCollectUserInformationarg ::= SEQUENCE {
+       collectedInfo [0] CHOICE {
+       collectedDigits [0] IMPLICIT SEQUENCE {
+       minimumNbOfDigits [0] IMPLICIT INTEGER (1..127) DEFAULT 1,
+       maximumNbOfDigits [1] IMPLICIT INTEGER (1..127),
+       endOfReplyDigit [2] IMPLICIT OCTET STRING (SIZE (1..2)) OPTIONAL,
+       cancelDigit [3] IMPLICIT OCTET STRING (SIZE (1..2)) OPTIONAL,
+       startDigit [4] IMPLICIT OCTET STRING (SIZE (1..2)) OPTIONAL,
+       firstDigitTimeOut [5] IMPLICIT INTEGER (1..127) OPTIONAL,
+       interDigitTimeOut [6] IMPLICIT INTEGER (1..127) OPTIONAL,
+       errorTreatment [7] IMPLICIT ENUMERATED {
+       reportErrorToScf (0),
+       help (1),
+       repeatPrompt (2)} DEFAULT reportErrorToScf ,
+       interruptableAnnInd [8] IMPLICIT BOOLEAN DEFAULT TRUE,
+       voiceInformation [9] IMPLICIT BOOLEAN DEFAULT FALSE,
+       voiceBack [10] IMPLICIT BOOLEAN DEFAULT FALSE},
+       iA5Information [1] IMPLICIT BOOLEAN},
+       disconnectFromIPForbidden [1] IMPLICIT BOOLEAN DEFAULT TRUE,
+       informationToSend [2] InformationToSend OPTIONAL,
+       extensions [3] IMPLICIT Extensions OPTIONAL}
+PromptAndCollectUserInformationres ::= CHOICE {
+       digitsResponse [0] IMPLICIT OCTET STRING ,
+       iA5Response [1] IMPLICIT IA5String  }
+ ResourceStatus ::= ENUMERATED {
+       busy (0),
+       idle (1)}
+ReleaseCall ::=        OCTET STRING (SIZE (2..10)) 
+RequestCurrentStatusReportarg ::=      CHOICE {
+       lineID [0] IMPLICIT OCTET STRING ,
+       facilityGroupID [1] FacilityGroupID,
+       facilityGroupMemberID [2] IMPLICIT INTEGER,
+       trunkGroupID [3] IMPLICIT INTEGER}
+RequestCurrentStatusReportres ::=      SEQUENCE {
+       resourceStatus [0] IMPLICIT ResourceStatus,
+       resourceID [1] ResourceID OPTIONAL,
+       extensions [2] IMPLICIT Extensions OPTIONAL}
+RequestEveryStatusChangeReport ::=     SEQUENCE {
+       resourceID [0] ResourceID,
+       correlationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       monitorDuration [2] IMPLICIT INTEGER (-2..86400) OPTIONAL,
+       extensions [3] IMPLICIT Extensions OPTIONAL}
+RequestFirstStatusMatchReport ::=      SEQUENCE {
+       resourceID [0] ResourceID OPTIONAL,
+       resourceStatus [1] IMPLICIT ResourceStatus OPTIONAL,
+       correlationID [2] IMPLICIT OCTET STRING  OPTIONAL,
+       monitorDuration [3] IMPLICIT INTEGER (-2..86400) OPTIONAL,
+       extensions [4] IMPLICIT Extensions OPTIONAL,
+       bearerCapability [5] BearerCapability OPTIONAL}
+RequestNotificationChargingEvent ::=   SEQUENCE SIZE (1..10) OF
+       SEQUENCE {
+       eventTypeCharging [0] IMPLICIT OCTET STRING ,
+       monitorMode [1] IMPLICIT MonitorMode,
+       legID [2] LegID OPTIONAL}
+RequestReportBCSMEvent ::=     SEQUENCE {
+       bcsmEvents [0] IMPLICIT SEQUENCE SIZE (1..10) OF
+       SEQUENCE {
+       eventTypeBCSM [0] IMPLICIT EventTypeBCSM,
+       monitorMode [1] IMPLICIT MonitorMode,
+       legID [2] LegID OPTIONAL,
+       dpSpecificCriteria [30] CHOICE {
+       numberOfDigits [0] IMPLICIT INTEGER (1..255),
+       applicationTimer [1] IMPLICIT INTEGER (0..2047)} OPTIONAL},
+       bcsmEventCorrelationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [2] IMPLICIT Extensions OPTIONAL}
+ResetTimer ::= SEQUENCE {
+       timerID [0] IMPLICIT ENUMERATED {
+       tssf (0)} DEFAULT tssf   ,
+       timervalue [1] IMPLICIT INTEGER (0..2147483647),
+       extensions [2] IMPLICIT Extensions OPTIONAL}
+RouteSelectFailure ::= SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       dialledDigits [1] IMPLICIT OCTET STRING  OPTIONAL,
+       callingPartyBusinessGroupID [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingFacilityGroup [4] CallingFacilityGroup OPTIONAL,
+       callingFacilityGroupMember [5] IMPLICIT INTEGER OPTIONAL,
+       failureCause [6] IMPLICIT OCTET STRING (SIZE (2..10)) OPTIONAL,
+       originalCalledPartyID [7] IMPLICIT OCTET STRING  OPTIONAL,
+       prefix [8] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [9] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [10] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList [11] IMPLICIT RouteList OPTIONAL,
+       travellingClassMark [12] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [13] IMPLICIT Extensions OPTIONAL,
+       carrier [14] IMPLICIT OCTET STRING OPTIONAL}
+       
+CalledFacilityGroup ::= CHOICE {
+       trunkGroupID [0] IMPLICIT INTEGER,
+       privateFacilityID [1] IMPLICIT INTEGER,
+       huntGroup  [2] IMPLICIT OCTET STRING,
+       routeIndex [3] IMPLICIT OCTET STRING}
+       
+SelectFacility ::=     SEQUENCE {
+       alertingPattern [0] IMPLICIT OCTET STRING (SIZE (3)) OPTIONAL,
+       destinationNumberRoutingAddress [1] IMPLICIT OCTET STRING  OPTIONAL,
+       iSDNAccessRelatedInformation [2] IMPLICIT OCTET STRING OPTIONAL,
+       calledFacilityGroup [3] CalledFacilityGroup OPTIONAL,
+       calledFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [5] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [6] IMPLICIT Extensions OPTIONAL}
+SelectRoute ::=        SEQUENCE {
+       destinationRoutingAddress [0] IMPLICIT SEQUENCE SIZE (1..3) OF DestinationAddress ,
+       alertingPattern [1] IMPLICIT OCTET STRING (SIZE (3)) OPTIONAL,
+       correlationID [2] IMPLICIT OCTET STRING  OPTIONAL,
+       iSDNAccessRelatedInformation [3] IMPLICIT OCTET STRING OPTIONAL,
+       originalCalledPartyID [4] IMPLICIT OCTET STRING  OPTIONAL,
+       routeList [5] IMPLICIT RouteList OPTIONAL,
+       scfID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       travellingClassMark [7] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [8] IMPLICIT Extensions OPTIONAL,
+       carrier [9] IMPLICIT OCTET STRING OPTIONAL}
+SendChargingInformation ::=    SEQUENCE {
+       sCIBillingChargingCharacteristics [0] IMPLICIT OCTET STRING ,
+       partyToCharge [1] PartyToCharge,
+       extensions [2] IMPLICIT Extensions OPTIONAL}
+ServiceFilteringResponse ::=   SEQUENCE {
+       countersValue [0] IMPLICIT SEQUENCE SIZE (0..100) OF
+       SEQUENCE {
+       counterID  [0] IMPLICIT INTEGER (0..99),
+       counterValue [1] IMPLICIT INTEGER (0..2147483647)},
+       filteringCriteria [1] FilteringCriteria,
+       extensions [2] IMPLICIT Extensions OPTIONAL,
+       responseCondition [3] IMPLICIT ENUMERATED {
+       intermediateResponse (0),
+       lastResponse (1)} OPTIONAL}
+StatusReport ::=       SEQUENCE {
+       resourceStatus [0] IMPLICIT ResourceStatus OPTIONAL,
+       correlationID [1] IMPLICIT OCTET STRING  OPTIONAL,
+       resourceID [2] ResourceID OPTIONAL,
+       extensions [3] IMPLICIT Extensions OPTIONAL,
+       reportCondition [4] IMPLICIT ENUMERATED {
+       statusReport (0),
+       timerExpired (1),
+       canceled (2)} OPTIONAL}
+TAnswer ::= SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       calledPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       calledFacilityGroup [3] CalledFacilityGroup OPTIONAL,
+       calledFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       extensions [5] IMPLICIT Extensions OPTIONAL}
+TBusy ::=      SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       busyCause [1] IMPLICIT OCTET STRING (SIZE (2..10)) OPTIONAL,
+       calledPartyBusinessGroupID [2] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [3] IMPLICIT OCTET STRING OPTIONAL,
+       originalCalledPartyID [4] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [5] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [6] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList [7] IMPLICIT RouteList OPTIONAL,
+       travellingClassMark [8] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [9] IMPLICIT Extensions OPTIONAL}
+TDisconnect ::=        SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       calledPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       calledFacilityGroup [3] CalledFacilityGroup OPTIONAL,
+       calledFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       releaseCause [5] IMPLICIT Cause OPTIONAL,
+       extensions [6] IMPLICIT Extensions OPTIONAL,
+       connectTime [7] IMPLICIT INTEGER (0..2147483647) OPTIONAL}
+TermAttemptAuthorized ::=      SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       calledPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartyBusinessGroupID [3] IMPLICIT OCTET STRING OPTIONAL,
+       originalCalledPartyID [4] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [5] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [6] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       routeList [7] IMPLICIT RouteList OPTIONAL,
+       travellingClassMark [8] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [9] IMPLICIT Extensions OPTIONAL}
+TMidCall ::=   SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       calledPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartyBusinessGroupID [3] IMPLICIT OCTET STRING OPTIONAL,
+       callingPartySubaddress [4] IMPLICIT OCTET STRING OPTIONAL,
+       featureRequestIndicator [5] IMPLICIT FeatureRequestIndicator OPTIONAL,
+       extensions [6] IMPLICIT Extensions OPTIONAL,
+       carrier [7] IMPLICIT OCTET STRING OPTIONAL}
+TNoAnswer ::=  SEQUENCE {
+       dpSpecificCommonParameters [0] IMPLICIT DpSpecificCommonParameters,
+       calledPartyBusinessGroupID [1] IMPLICIT OCTET STRING OPTIONAL,
+       calledPartySubaddress [2] IMPLICIT OCTET STRING OPTIONAL,
+       calledFacilityGroup [3] CalledFacilityGroup OPTIONAL,
+       calledFacilityGroupMember [4] IMPLICIT INTEGER OPTIONAL,
+       originalCalledPartyID [5] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectingPartyID [6] IMPLICIT OCTET STRING  OPTIONAL,
+       redirectionInformation [7] IMPLICIT OCTET STRING (SIZE (2)) OPTIONAL,
+       travellingClassMark [8] IMPLICIT OCTET STRING  OPTIONAL,
+       extensions [9] IMPLICIT Extensions OPTIONAL}
+--Canceled  ::= localValue 0
+CancelFailed ::=       SEQUENCE {
+       problem [0] IMPLICIT ENUMERATED {
+       unknownOperation (0),
+       tooLate (1),
+       operationNotCancellable (2)},
+       operation [1] IMPLICIT INTEGER (-128..127)}
+ --::= localValue 1
+--ETCFailed  ::= localValue 3
+--ImproperCallerResponse  ::= localValue 4
+--MissingCustomerRecord  ::= localValue 6
+--MissingParameter  ::= localValue 7
+--parameterOutOfRange ERROR
+ --::= localValue 8
+RequestedInfoError ::= ENUMERATED {
+       unknownRequestedInfo (1),
+       requestedInfoNotAvailable (2)}
+ --::= localValue 10
+SystemFailure ::= ENUMERATED {
+       unavailableResources (0),
+       componentFailure (1),
+       basicCallProcessingException (2),
+       resourceStatusFailure (3),
+       endUserFailure (4)}
+TaskRefused ::=        ENUMERATED {
+       generic (0),
+       unobtainable (1),
+       congestion  (2)}
+ --::= localValue 12
+--unavailableResource ERROR
+-- ::= localValue 13
+--unexpectedComponentSequence ERROR
+-- ::= localValue 14
+--unexpectedDataValue ERROR
+-- ::= localValue 15
+--unexpectedParameter ERROR
+-- ::= localValue 16
+--unknownLegID ERROR
+-- ::= localValue 17-
+--unknownResource ERROR
+-- ::= localValue 18
+
+END
\ No newline at end of file
diff --git a/asn1/inap/inap.cnf b/asn1/inap/inap.cnf
new file mode 100644 (file)
index 0000000..9cb3248
--- /dev/null
@@ -0,0 +1,52 @@
+# inap.cnf
+# inap conformation file
+
+# $Id: gsmmap.cnf 12498 2004-11-09 07:04:12Z etxrab $
+
+#.MODULE_IMPORT
+
+#.EXPORTS
+
+
+#.PDU
+
+
+#.NO_EMIT
+
+#.TYPE_RENAME
+
+#.FIELD_RENAME
+
+#.FN_BODY Connectarg/redirectingPartyIDXX
+
+proto_item* parameter_item;
+ guint8 class;
+ gboolean pc, ind;
+ guint32 tag;
+ guint32 len;
+tvbuff_t *cgpn_tvb;
+
+offset = dissect_ber_identifier(pinfo, tree, tvb, offset, &class, &pc, &tag);
+offset = dissect_ber_length(pinfo, tree, tvb, offset, &len, &ind);
+cgpn_tvb = tvb_new_subset(tvb, 2, len, len );
+parameter_item = proto_tree_add_text(tree, cgpn_tvb, offset,-1,"");
+ dissect_isup_called_party_number_parameter(cgpn_tvb, tree, parameter_item);
+ offset+=len;
+
+#.FN_BODY InitialDP/dialledDigitsxxx
+ proto_item* parameter_item;
+ proto_item* parameter_tree;
+ guint8 class;
+  tvbuff_t *cgpn_tvb;
+parameter_item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
+parameter_tree = proto_item_add_subtree(parameter_item, ett_inapisup_parameter);
+cgpn_tvb = tvb_new_subset(tvb, offset,-1 , -1 );
+dissect_isup_called_party_number_parameter(cgpn_tvb, parameter_tree, parameter_item);
+
+#.TYPE_ATTR
+#Ss-Code  TYPE = FT_UINT8  DISPLAY = BASE_DEC  STRINGS = VALS(ssCode_vals)
+#Teleservice  TYPE = FT_UINT8  DISPLAY = BASE_DEC  STRINGS = VALS(Teleservice_vals)
+
+#.END
+
+
diff --git a/asn1/inap/packet-inap-template.c b/asn1/inap/packet-inap-template.c
new file mode 100644 (file)
index 0000000..4e06bbb
--- /dev/null
@@ -0,0 +1,411 @@
+/* 
+/* packet-inap-template.c
+ * Routines for INAP
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
+ *
+ * $Id:$
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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.
+ * References: ETSI 300 374
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/conversation.h>
+#include <epan/tap.h>
+
+#include <stdio.h>
+#include <string.h>
+
+#include "packet-ber.h"
+#include "packet-inap.h"
+#include "packet-q931.h"
+#include "packet-e164.h"
+
+#define PNAME  "INAP"
+#define PSNAME "INAP"
+#define PFNAME "inap"
+
+/* Initialize the protocol and registered fields */
+int proto_inap = -1;
+static int hf_inap_invokeCmd = -1;             /* Opcode */
+static int hf_inap_invokeid = -1;              /* INTEGER */
+static int hf_inap_absent = -1;                /* NULL */
+static int hf_inap_invokeId = -1;              /* InvokeId */
+static int hf_inap_invoke = -1;                /* InvokePDU */
+static int hf_inap_returnResult = -1;                /* InvokePDU */
+static int hf_inap_returnResult_result = -1;
+static int hf_inap_getPassword = -1;  
+static int hf_inap_currentPassword = -1;  
+#include "packet-inap-hf.c"
+static guint global_tcap_itu_ssn = 241;
+
+/* Initialize the subtree pointers */
+static gint ett_inap = -1;
+static gint ett_inap_InvokeId = -1;
+static gint ett_inap_InvokePDU = -1;
+static gint ett_inap_ReturnResultPDU = -1;
+static gint ett_inap_ReturnResult_result = -1;
+static gint ett_inap_INAPPDU = -1;
+static gint ett_inapisup_parameter = -1;
+static int inap_tap = -1;
+#include "packet-inap-ett.c"
+
+static int  dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
+
+#include "packet-inap-fn.c"
+
+
+const value_string inap_opr_code_strings[] = {
+
+{16, "AssistRequestInstructions"},
+{44, "CallInformationReport"},
+{45, "CallInformationRequest"},
+{53, "Cancel"},
+{20, "Connect"},
+       {19,"ConnectToResource"},
+       {17,"EstablishTemporaryConnection"},
+       {24,"EventReportBCSM"},
+       {34,"FurnishChargingInformation"},
+       {0,"InitialDP"},
+       {47,"PlayAnnouncement"},
+       {48,"PromptAndCollectUserInformation"},
+       {99,"ReceivedInformation"}, /*???????*/
+       {33,"ResetTimer"},
+       {23,"RequestReportBCSMEvent"},
+       {49,"SpecializedResourceReport"}
+};
+
+
+static guint32 opcode=0;
+
+static int
+dissect_inap_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+  offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
+
+  if (check_col(pinfo->cinfo, COL_INFO)){
+    col_set_str(pinfo->cinfo, COL_INFO, val_to_str(opcode, inap_opr_code_strings, "Unknown Inap (%u)"));
+  }
+
+  return offset;
+}
+
+static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  switch(opcode){
+  case  16: /*AssistRequestInstructions*/
+    offset=dissect_inap_AssistRequestInstructionsarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case  44: /*CallInformationReport*/
+    offset=dissect_inap_CallInformationReportarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case  45: /*CallInformationRequest*/
+    offset=dissect_inap_CallInformationRequestarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case  53: /*Cancel*/
+    offset=dissect_inap_Cancelarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case  20: /*Connect*/
+    offset=dissect_inap_Connectarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+    case  18: /*DisconnectForwardConnections*/
+    proto_tree_add_text(tree, tvb, offset, -1, "Disconnect Forward Connection");
+    break;
+  case  19: /*ConnectToResource*/
+    offset=dissect_inap_ConnectToResource(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case  17: /*EstablishTemporaryConnection*/
+    offset=dissect_inap_EstablishTemporaryConnection(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case  24: /*EventReportBCSM*/
+    offset=dissect_inap_EventReportBCSM(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case 34: /*FurnishChargingInformation*/
+    offset=dissect_inap_FurnishChargingInformationarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case 0: /*InitialDP*/
+    offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+    
+    case 23: /*InitialDP*/
+    offset=dissect_inap_RequestReportBCSMEvent(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case 47: /*PlayAnnouncement*/
+    offset=dissect_inap_PlayAnnouncement(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case 48: /*PromptAndCollectUserInformation*/
+    offset=dissect_inap_PromptAndCollectUserInformationarg(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  case 33: /*ResetTimer*/
+    offset=dissect_inap_ResetTimer(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+   default:
+    proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
+    /* todo call the asn.1 dissector */
+  }
+  return offset;
+}
+
+
+static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  switch(opcode){
+   case 48: /*PromptAndCollectUserInformation*/
+    offset=dissect_inap_PromptAndCollectUserInformationres(FALSE, tvb, offset, pinfo, tree, -1);
+    break;
+  default:
+    proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
+  }
+  return offset;
+}
+
+static int 
+dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_inap_Opcode(FALSE, tvb, offset, pinfo, tree, hf_inap_invokeCmd);
+}
+
+static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_inap_invokeid, NULL);
+}
+
+
+static const value_string InvokeId_vals[] = {
+  {   0, "invokeid" },
+  {   1, "absent" },
+  { 0, NULL }
+};
+
+static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_inap_NULL(FALSE, tvb, offset, pinfo, tree, hf_inap_absent);
+}
+
+
+static const ber_choice_t InvokeId_choice[] = {
+  {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
+  {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
+  { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_inap_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              InvokeId_choice, hf_index, ett_inap_InvokeId);
+
+  return offset;
+}
+static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_inap_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_inap_invokeId);
+}
+
+static const ber_sequence_t InvokePDU_sequence[] = {
+  { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
+  { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
+  { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_inap_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                InvokePDU_sequence, hf_index, ett_inap_InvokePDU);
+
+  return offset;
+}
+static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_inap_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_inap_invoke);
+}
+
+static const ber_sequence_t ReturnResult_result_sequence[] = {
+  { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
+  { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
+  { 0, 0, 0, NULL }
+};
+static int
+dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
+                                ReturnResult_result_sequence, hf_inap_returnResult_result, ett_inap_ReturnResult_result);
+
+  return offset;
+}
+
+static const ber_sequence_t ReturnResultPDU_sequence[] = {
+  { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
+  { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
+  { 0, 0, 0, NULL }
+};
+
+static int
+dissect_inap_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+  offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+                                ReturnResultPDU_sequence, hf_index, ett_inap_ReturnResultPDU);
+
+  return offset;
+}
+static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+  return dissect_inap_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_inap_returnResult);
+}
+
+static const value_string INAPPDU_vals[] = {
+  {   1, "invoke" },
+  {   2, "returnResult" },
+  {   3, "returnError" },
+  {   4, "reject" },
+  { 0, NULL }
+};
+
+static const ber_choice_t INAPPDU_choice[] = {
+  {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
+  {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
+#ifdef REMOVED
+  {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
+  {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
+#endif
+  { 0, 0, 0, 0, NULL }
+};
+
+static guint8 inap_pdu_type = 0;
+static guint8 inap_pdu_size = 0;
+
+static int
+dissect_inap_INAPPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+
+  inap_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
+  /* Get the length and add 2 */
+  inap_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
+
+  offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+                              INAPPDU_choice, hf_index, ett_inap_INAPPDU);
+
+  if (check_col(pinfo->cinfo, COL_INFO)){
+    col_prepend_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, inap_opr_code_strings, "Unknown INAP (%u)"));
+  }
+
+  return offset;
+}
+
+
+
+
+static void
+dissect_inap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+{
+    proto_item         *item=NULL;
+    proto_tree         *tree=NULL;
+    gchar                      *str = NULL;
+
+
+    if (check_col(pinfo->cinfo, COL_PROTOCOL))
+    {
+       col_set_str(pinfo->cinfo, COL_PROTOCOL, "INAP");
+    }
+
+    /* create display subtree for the protocol */
+    if(parent_tree){
+       item = proto_tree_add_item(parent_tree, proto_inap, tvb, 0, -1, FALSE);
+       tree = proto_item_add_subtree(item, ett_inap);
+    }
+
+    dissect_inap_INAPPDU(FALSE, tvb, 0, pinfo, tree, -1);
+
+
+}
+
+/*--- proto_reg_handoff_inap ---------------------------------------*/
+void proto_reg_handoff_inap(void) {
+    dissector_handle_t inap_handle;
+
+    inap_handle = create_dissector_handle(dissect_inap, proto_inap);
+    dissector_add("tcap.itu_ssn", global_tcap_itu_ssn, inap_handle);
+   
+}
+
+
+void proto_register_inap(void) {
+       module_t *inap_module;
+  /* List of fields */
+  static hf_register_info hf[] = {
+    { &hf_inap_invokeCmd,
+      { "invokeCmd", "inap.invokeCmd",
+        FT_UINT32, BASE_DEC, VALS(inap_opr_code_strings), 0,
+        "InvokePDU/invokeCmd", HFILL }},
+    { &hf_inap_invokeid,
+      { "invokeid", "inap.invokeid",
+        FT_INT32, BASE_DEC, NULL, 0,
+        "InvokeId/invokeid", HFILL }},
+    { &hf_inap_absent,
+      { "absent", "inap.absent",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "InvokeId/absent", HFILL }},
+    { &hf_inap_invokeId,
+      { "invokeId", "inap.invokeId",
+        FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
+        "InvokePDU/invokeId", HFILL }},
+    { &hf_inap_invoke,
+      { "invoke", "inap.invoke",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "INAPPDU/invoke", HFILL }},
+    { &hf_inap_returnResult,
+      { "returnResult", "inap.returnResult",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "INAPPDU/returnResult", HFILL }},
+     
+
+#include "packet-inap-hfarr.c"
+  };
+
+
+
+
+
+
+  /* List of subtrees */
+  static gint *ett[] = {
+    &ett_inap,
+    &ett_inap_InvokeId,
+    &ett_inap_InvokePDU,
+    &ett_inap_ReturnResultPDU,
+    &ett_inap_ReturnResult_result,
+    &ett_inap_INAPPDU,
+    &ett_inapisup_parameter,
+#include "packet-inap-ettarr.c"
+  };
+
+  /* Register protocol */
+  proto_inap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+/*XXX  register_dissector("inap", dissect_inap, proto_inap);*/
+  /* Register fields and subtrees */
+  proto_register_field_array(proto_inap, hf, array_length(hf));
+  proto_register_subtree_array(ett, array_length(ett));
+  
+  inap_module = prefs_register_protocol(proto_inap, proto_reg_handoff_inap);
+  
+  prefs_register_uint_preference(inap_module, "tcap.itu_ssn",
+               "Subsystem number used for INAP",
+               "Set Subsystem number used for INAP",
+               10, &global_tcap_itu_ssn);
+
+
+}
+
+
+
diff --git a/asn1/inap/packet-inap-template.h b/asn1/inap/packet-inap-template.h
new file mode 100644 (file)
index 0000000..fea1375
--- /dev/null
@@ -0,0 +1,32 @@
+/* packet-inap.h
+ *
+ * $Id$
+ *
+ * Copyright 2004, Tim Endean <endeant@hotmail.com>
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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_INAP_H
+#define PACKET_INAP_H
+
+/* #include "packet-inap-exp.h"*/
+
+#endif  /* PACKET_INAP_H */
\ No newline at end of file