]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add tcap asn1 source
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 5 Feb 2022 03:53:53 +0000 (22:53 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sat, 5 Feb 2022 21:59:53 +0000 (16:59 -0500)
src/modules/rlm_sigtran/asn1/.gitignore [new file with mode: 0644]
src/modules/rlm_sigtran/asn1/tcap.asn [new file with mode: 0644]
src/modules/rlm_sigtran/tcap.asn [new file with mode: 0644]

diff --git a/src/modules/rlm_sigtran/asn1/.gitignore b/src/modules/rlm_sigtran/asn1/.gitignore
new file mode 100644 (file)
index 0000000..5ffbedc
--- /dev/null
@@ -0,0 +1,3 @@
+*.c
+*.h
+*.sample
diff --git a/src/modules/rlm_sigtran/asn1/tcap.asn b/src/modules/rlm_sigtran/asn1/tcap.asn
new file mode 100644 (file)
index 0000000..3a402af
--- /dev/null
@@ -0,0 +1,738 @@
+-- $Id$
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS  ::=
+
+BEGIN
+
+--EXPORTS                   OPERATION, ERROR, Component, InvokeId Type;
+ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
+                                       {
+                                       oid OBJECT IDENTIFIER,
+                                       dialog [0] EXPLICIT DialoguePDU
+                                       }
+
+DialoguePDU ::= CHOICE {
+  dialogueRequest   AARQ-apdu,
+  dialogueResponse  AARE-apdu,
+  dialogueAbort     ABRT-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+  protocol-versionRQ
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+  protocol-versionRE
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER,
+  result                    [2]  Associate-result,
+  result-source-diagnostic  [3]  Associate-source-diagnostic
+}
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+  abort-source      [0] IMPLICIT ABRT-source
+}
+
+Associate-result ::= INTEGER {accepted(0), reject-permanent(1)}
+
+Associate-source-diagnostic ::= CHOICE {
+  dialogue-service-user
+    [1]  INTEGER {null(0), no-reason-given(1),
+                  application-context-name-not-supported(2)},
+  dialogue-service-provider
+    [2]  INTEGER {null(0), no-reason-given(1), no-common-dialogue-portion(2)}
+}
+
+ABRT-source ::= INTEGER {dialogue-service-user(0), dialogue-service-provider(1)
+}
+
+-- Transaction Portion fields
+
+TCMessage ::= CHOICE {
+                               unidirectional                          [APPLICATION 1]         IMPLICIT Unidirectional,
+                               begin                                           [APPLICATION 2]         IMPLICIT Begin,
+                               end                                                     [APPLICATION 4]         IMPLICIT End,
+                               continue                                        [APPLICATION 5]         IMPLICIT Continue,
+                               abort                                           [APPLICATION 7]         IMPLICIT Abort
+}
+
+Unidirectional ::=     SEQUENCE{
+       dialoguePortion DialoguePortion OPTIONAL,
+       components              ComponentPortion
+       }
+
+Begin ::= SEQUENCE{
+       otid                    OrigTransactionID,
+       dialoguePortion DialoguePortion OPTIONAL,
+       components              ComponentPortion OPTIONAL
+       }
+
+End ::=        SEQUENCE{
+       dtid                    DestTransactionID,
+       dialoguePortion DialoguePortion OPTIONAL,
+       components              ComponentPortion OPTIONAL
+       }
+
+
+Continue ::= SEQUENCE {
+       otid                    OrigTransactionID,
+       dtid                    DestTransactionID,
+       dialoguePortion DialoguePortion OPTIONAL,
+    components         ComponentPortion OPTIONAL
+       }
+
+Abort ::= SEQUENCE{
+       dtid                    DestTransactionID,
+       reason                  Reason OPTIONAL
+       }
+
+Reason ::= CHOICE{
+       p-abortCause            P-AbortCause,
+       u-abortCause            DialoguePortion
+       }
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+
+DialoguePortion ::= [APPLICATION 11] EXPLICIT ExternalPDU
+
+-- WS adaptation
+--DialoguePortion ::= [APPLICATION  11] IMPLICIT DialogueOC
+--DialogueOC ::= OCTET STRING
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type.
+-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
+-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
+-- if unstructured dialogue is used or any user defined abstract syntax name when only user information
+-- is carried (e.g. when user information is sent in a 1988 Abort message).
+
+OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+DestTransactionID ::=[APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
+       unrecognizedMessageType (0),
+       unrecognizedTransactionID (1),
+       badlyFormattedTransactionPortion (2),
+       incorrectTransactionPortion (3),
+       resourceLimitation (4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
+-- The Component Portion may be absent.
+
+ComponentPortion ::= [APPLICATION 12]  IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+
+Component ::=  CHOICE {
+       invoke                                  [1] IMPLICIT Invoke,
+       returnResultLast                [2] IMPLICIT ReturnResult,
+       returnError                             [3] IMPLICIT ReturnError,
+       reject                                  [4] IMPLICIT Reject,
+       returnResultNotLast             [7] IMPLICIT ReturnResult
+       }
+
+-- The Components are sequences of data elements.
+
+Invoke ::=             SEQUENCE {
+                               invokeID                                InvokeIdType,
+                               linkedID                                [0] IMPLICIT InvokeIdType OPTIONAL,
+                               opCode                  OPERATION,
+                               parameter        Parameter OPTIONAL }
+
+Parameter ::= ANY
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
+-- in the type definition of a particular operation.
+
+ReturnResult ::=       SEQUENCE {
+       invokeID                                InvokeIdType,
+       resultretres                    SEQUENCE {
+               opCode                  OPERATION,
+               parameter               Parameter OPTIONAL
+               } OPTIONAL
+       }
+
+-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
+-- of a particular operation.
+
+ReturnError ::=        SEQUENCE {
+                               invokeID                                InvokeIdType,
+                               errorCode                               ErrorCode,
+                               parameter                               Parameter  OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+Reject ::=             SEQUENCE {
+                               invokeIDRej CHOICE {
+                                       derivable                       InvokeIdType,
+                                       not-derivable           NULL },
+                               problem CHOICE {
+                                       generalProblem          [0] IMPLICIT GeneralProblem,
+                                       invokeProblem           [1] IMPLICIT InvokeProblem,
+                                       returnResultProblem     [2] IMPLICIT ReturnResultProblem,
+                                       returnErrorProblem      [3] IMPLICIT ReturnErrorProblem } }
+
+InvokeIdType ::=       INTEGER (-128..127)
+
+
+OPERATION      ::=     CHOICE {
+                                                       localValue INTEGER,
+                                                       globalValue OBJECT IDENTIFIER }
+
+ERROR  ::=     CHOICE {
+                       localValue INTEGER,
+                       globalValue OBJECT IDENTIFIER }
+
+-- OPERATIONS
+
+-- Operations are specified with the OPERATION MACRO.
+-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
+-- Default values and optional parameters are permitted.
+
+--OPERATION MACRO              ::=
+
+--BEGIN
+--     TYPE NOTATION           ::=     Parameter Result Errors LinkedOperations
+--     VALUE NOTATION  ::=     value (VALUE CHOICE {
+--                                                     localValue INTEGER,
+--                                                     globalValue OBJECT IDENTIFIER } )
+--     Parameter                       ::=     ArgKeyword NamedType | empty
+--     ArgKeyword                      ::=     "ARGUMENT" | "PARAMETER"
+--     Result                          ::=     "RESULT" ResultType | empty
+--     Errors                  ::=     "ERRORS" "{"ErrorNames"}" | empty
+--     LinkedOperations                ::=     "LINKED" "{"LinkedOperationNames"}" | empty
+--     ResultType                      ::=     NamedType | empty
+--     ErrorNames                      ::=     ErrorList | empty
+--     ErrorList                       ::=     Error | ErrorList "," Error
+--     Error                           ::=     value (ERROR)
+                                                       -- shall reference an error value
+                                               --| type         shall reference an error type
+                                                       -- if no error value is specified
+
+--     LinkedOperationNames    ::=     OperationList | empty
+--     OperationList           ::=     Operation | OperationList "," Operation
+--     Operation                       ::=     value (OPERATION)
+                                                       -- shall reference an operation value
+--                                             | type   shall reference an operation type if
+                                                       -- no operation value is specified
+--     NamedType                       ::=     identifier type | type
+--END
+
+-- ERRORS
+
+-- Errors are specified with the ERROR MACRO.
+-- When an error is specified, the valid parameters for that error are indicated.
+-- Default values and optional parameters are permitted.
+
+--ERROR MACRO                  ::=
+--
+--BEGIN
+--     TYPE NOTATION           ::=     Parameter
+--     VALUE NOTATION  ::=     value (VALUE CHOICE {
+--                                                     localValue INTEGER,
+--                                                     globalValue OBJECT IDENTIFIER } )
+--     Parameter       ::=     "PARAMETER" NamedType | empty
+--     NamedType       ::=     identifier type | type
+--END
+
+-- PROBLEMS
+
+GeneralProblem         ::=     INTEGER {               unrecognizedComponent (0),
+                                                               mistypedComponent (1),
+                                                               badlyStructuredComponent (2) }
+
+InvokeProblem          ::=     INTEGER {               duplicateInvokeID (0),
+                                                               unrecognizedOperation (1),
+                                                               mistypedParameter (2),
+                                                               resourceLimitation (3),
+                                                               initiatingRelease (4),
+                                                               unrecognizedLinkedID (5),
+                                                               linkedResponseUnexpected (6),
+                                                               unexpectedLinkedOperation (7) }
+
+ReturnResultProblem    ::=     INTEGER {               unrecognizedInvokeID (0),
+                                                               returnResultUnexpected (1),
+                                                               mistypedParameter (2) }
+
+ReturnErrorProblem     ::=     INTEGER {               unrecognizedInvokeID (0),
+                                                               returnErrorUnexpected (1),
+                                                               unrecognizedError (2),
+                                                               unexpectedError (3),
+                                                               mistypedParameter (4) }
+
+
+-- ErrorCode ::= CHOICE
+--                     {
+--                             nationaler              [PRIVATE 19] IMPLICIT INTEGER (-32768..32767),
+--                             privateer               [PRIVATE 20] IMPLICIT INTEGER
+--                     }
+ErrorCode ::= INTEGER
+
+
+
+
+CalledPartyNumber ::=
+  OCTET STRING
+    (SIZE (2..18))
+DestinationRoutingAddress ::=
+  SEQUENCE SIZE (1..16) OF CalledPartyNumber
+AlertingPattern ::= OCTET STRING(SIZE (3))
+Digits ::= OCTET STRING(SIZE (2..16))
+CorrelationID ::= Digits
+CutAndPaste ::= INTEGER(0..2)
+ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)}
+OriginalCalledPartyID ::=
+  OCTET STRING
+    (SIZE (2..
+             10))
+RouteList ::= SEQUENCE SIZE (1..16) OF Route
+TravellingClassMark ::=
+  LocationNumber
+Carrier ::=
+  OCTET STRING(SIZE (4..4))
+ServiceInteractionIndicators ::=
+  OCTET STRING
+    (SIZE (0..
+             255))
+CallingPartyNumber ::=
+  OCTET STRING
+    (SIZE (2..10))
+CallingPartysCategory ::= OCTET STRING(SIZE (1))
+RedirectingPartyID ::=
+  OCTET STRING
+    (SIZE (2..10))
+RedirectionInformation ::= OCTET STRING(SIZE (2))
+DisplayInformation ::=
+  IA5String
+    (SIZE (0..32))
+ForwardCallIndicators ::= OCTET STRING(SIZE (2))
+GenericNumbers ::=
+  SET SIZE (1..5) OF GenericNumber
+GenericNumber ::=
+  OCTET STRING(SIZE (3..11))
+Route ::=
+  OCTET STRING(SIZE (0..64))
+LocationNumber ::=
+  OCTET STRING(SIZE (2..10))
+ForwardServiceInteractionInd ::= SEQUENCE {
+  conferenceTreatmentIndicator     [1]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptConferenceRequest   'xxxx xx01',B
+  -- rejectConferenceRequest   'xxxx xx10'B
+  -- network default is accept conference request.
+  callDiversionTreatmentIndicator  [2]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- callDiversionAllowed      'xxxx xx01'B
+  -- callDiversionNotAllowed   'xxxx xx10'B
+  -- network default is Call Diversion allowed.
+  callOfferingTreatmentIndicator   [3]  OCTET STRING(SIZE (1)) OPTIONAL,
+  --indicates if call offering is "allowed"," not allowed" or  "no impact by IN"
+  -- the value 'no impact by IN," has only local significance in SSF as a request to SSF
+  -- not to modify the value of the call offering treatment indicator conveyed in signaling.
+  -- callOfferingNotAllowed            'xxxx xx01'B,
+  -- callOfferingAllowed               'xxxx xx10'B
+  -- callOfferingNoINImpact            'xxxx x100'B
+  --indicates if call offering is "allowed"," not allowed" or  "no impact by IN".
+  -- network default is Call Offering not allowed
+  callWaitingTreatmentIndicator    [5]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- callWaitingAllowed                'xxxx xx01'B,
+  -- callWaitingNotAllowed     'xxxx xx10'B
+  -- network default is Call Waiting allowed
+  -- Notice  Tag value 4 is otherwise reserved .
+  ...,
+  holdTreatmentIndicator           [6]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptHoldRequest 'xxxx xx01'B
+  -- rejectHoldRequest 'xxxx xx10'B
+  -- network default is accept hold request
+  ectTreatmentIndicator            [7]  OCTET STRING(SIZE (1)) OPTIONAL
+  -- acceptEctRequest  'xxxx xx01'B
+  -- rejectEctRequest  'xxxx xx10'B
+  -- network default is accept ect request
+}
+BackwardServiceInteractionInd ::= SEQUENCE {
+  conferenceTreatmentIndicator      [1]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptConferenceRequest   'xxxx xx01'B
+  -- rejectConferenceRequest   'xxxx xx10'B
+  -- network default is accept conference request,
+  callCompletionTreatmentIndicator  [2]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptCallCompletionServiceRequest        'xxxx xx01'B,
+  -- rejectCallCompletionServiceRequest        'xxxx xx10'B
+  -- network default is accept call completion service request
+  holdTreatmentIndicator            [3]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptHoldRequest 'xxxx xx01'B
+  -- rejectHoldRequest 'xxxx xx10'B
+  -- network default is accept hold request
+  ectTreatmentIndicator             [4]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptEctRequest  'xxxx xx01'B
+  -- rejectEctRequest  'xxxx xx10'B
+  -- network default is accept ect request
+  ...
+}
+BothwayThroughConnectionInd ::= ENUMERATED {
+  bothwayPathRequired(0), bothwayPathNotRequired(1)}
+SuspendTimer ::= INTEGER(0..120)
+ConnectedNumberTreatmentInd ::= ENUMERATED {
+  noINImpact(0), presentationRestricted(1), presentCalledINNumber(2),
+  presentCalledINNumberRestricted(3)}
+RedirectReason ::= OCTET STRING(SIZE (1))
+Integer4 ::= INTEGER(0..2147483647)
+LegType ::= OCTET STRING(SIZE (1))
+ServiceInteractionIndicatorsTwo ::= SEQUENCE {
+  forwardServiceInteractionInd       [0]  ForwardServiceInteractionInd OPTIONAL,
+  -- applicable to operations IDP, CON, ICA, CWA.
+  backwardServiceInteractionInd
+    [1]  BackwardServiceInteractionInd OPTIONAL,
+  --applicable to operations IDP, CON, CTR, ETC, CWA.
+  bothwayThroughConnectionInd        [2]  BothwayThroughConnectionInd OPTIONAL,
+  -- applicable to operations CTR, ETC.
+  suspendTimer                       [3]  SuspendTimer OPTIONAL,
+  -- applicable to operations CON, ICA CWA.
+  connectedNumberTreatmentInd        [4]  ConnectedNumberTreatmentInd OPTIONAL,
+  --applicable to operations CON, CTR, ETC, CWA .
+  suppressCallDiversionNotification  [5]  BOOLEAN OPTIONAL,
+  -- applicable to CON, ICA, CWA
+  suppressCallTransferNotification   [6]  BOOLEAN OPTIONAL,
+  -- applicable to CON, ICA, CWA
+  allowCdINNoPresentationInd         [7]  BOOLEAN OPTIONAL,
+  -- applicable to CON, ICA CWA
+  -- indicates whether the Address Presentation restricted indicator of the ISUP
+  -- "called IN number" shall be set to presentation allowed (TRUE)
+  --  or presentation restricted (FALSE). Refer to Rec. Q.1601.
+  userDialogueDurationInd            [8]  BOOLEAN DEFAULT TRUE,
+  -- applicable to operations CTR, ETC.
+  -- applicable when interaction with the user is required during call set-up
+  -- The interaction TRUE means the user interaction may last longer than 90 seconds.
+  -- Otherwise the indicator should be set to FALSE. Used  for delaying ISUP T9 timer.
+  overrideLineRestrictions           [9]  BOOLEAN DEFAULT FALSE,
+  -- only applicable to operations  (e.g. Connect) which lead to a transition to a PIC before
+  --  the AuthorizeCallSetup PIC.
+  -- When set to TRUE, this parameter indicates that some facility restrictions
+  -- should not be checked when the authority to place a call is verified in the
+  --Authorize_Call_Setup PIC.
+  -- Which restrictions are actually overwriden is network specific.
+  suppressVPNAPP                     [10]  BOOLEAN DEFAULT FALSE,
+  -- applicable to CWA, CON, ICA.
+  -- indicates whether to allow or stop (suppress) the forward transmission of the VPN PSS1 capability.
+  -- When set to TRUE, the  exchange, on receipt of this parameter, will not transmit for this call
+  -- any ISUP Application transport parameter with Application Context Identifier set to " PSS1 ASE (VPN) "
+  -- This indicator  is populated by the SCF, where the SCF and SSF in conjunction have provided the
+  -- outgoing gateway PINX functionality as required by PSS1.
+  calledINNumberOverriding           [11]  BOOLEAN OPTIONAL,
+  -- applicable to CON and CWA
+  -- indicates whether the generation/override of  the ISUP
+  -- "called IN number"  is allowed (TRUE)   or  not allowed (FALSE)
+  -- If set to FALSE, the ISUP shall not generate a "called IN number"  or override
+  -- an already existing "called IN number".
+  -- if absent , the default will be "generation/overriding allowed" (TRUE).
+  redirectServiceTreatmentInd
+    [12]  SEQUENCE {redirectReason  [0]  RedirectReason OPTIONAL,
+                    ...} OPTIONAL,
+  --applicable to operation CON .
+  --if absent , call redirection service is not allowed
+  --Existence of this parameter requests Pivot Routing or Redirection supplementary service to be
+  --allowed for-the new routing address specified in the Connect operation.
+  --If absent, neither Pivot Routing nor Redirection service is allowed.
+  -- The redirectReason Parameter indicates the reason for invoking Pivot Routing / Redirection service
+  -- Whether the service is actually invoked depends only on SSF conditions.
+  --In this capability set the SCF will not know all the SSF conditions.
+  -- To send that kind of conditions is out of scope of this capability set.
+  --If the service is allowed, the parameter must be sent in the ISUP-FAC message (Pivot Routing case)
+  -- or ISUP-REL message (Redirection case) as the service is invoked,
+  nonCUGCall                         [13]  NULL OPTIONAL,
+  -- applicable to CON and CWA
+  -- This parameter when present, indicates that no parameters for CUG shall be used for the call
+  -- (i.e. the call shall be a non-CUG call). This parameter when not present, indicates
+  -- one of three things:
+  -- a) continue with modified CUG information (when one or more of either CUG Interlock Code and
+  --      Outgoing Access Indicator are present); or
+  -- b) continue with original CUG information (when neither CUG Interlock Code or Outgoing Access Indicator
+  --      are present).
+  -- c) continue with the original non-CUG call.
+  ...
+}
+INServiceCompatibilityResponse ::=
+  Entry
+Entry ::= CHOICE {
+  agreements       [0]  OBJECT IDENTIFIER,
+  networkSpecific  [1]  Integer4
+}
+ForwardGVNS ::=
+  OCTET STRING(SIZE (0..255))
+BackwardGVNS ::=
+  OCTET STRING(SIZE (0..255))
+ChargeNumber ::=
+  LocationNumber
+CallSegmentID ::= INTEGER(1..127)
+LegID ::= CHOICE {sendingSideID    [0]  LegType,
+                  receivingSideID  [1]  LegType
+}
+SDSSinformation ::=
+  OCTET STRING
+    (SIZE (0..255))
+CalledDirectoryNumber ::=
+  OCTET STRING
+    (SIZE (2..14))
+BearerCapability ::= CHOICE {
+  bearerCap
+    [0]  OCTET STRING(SIZE (2..14)),
+  tmr                 [1]  OCTET STRING(SIZE (1)),
+  broadbandBearerCap
+    [2]  OCTET STRING
+           (SIZE (0..14))
+}
+CallingPartySubaddress ::=
+  OCTET STRING
+    (SIZE (0..16))
+ConnectionIdentifier ::=
+  OCTET STRING
+    (SIZE (0..255))
+GenericIdentifier ::=
+  OCTET STRING
+    (SIZE (0..255))
+QoSParameter ::=
+  OCTET STRING(SIZE (0..16))
+BISDNParameters ::= SEQUENCE {
+  aALParameters                      [0]  AALParameters OPTIONAL,
+  additionalATMCellRate              [1]  AdditionalATMCellRate OPTIONAL,
+  aESACalledParty                    [2]  AESACalledParty OPTIONAL,
+  aESACallingParty                   [3]  AESACallingParty OPTIONAL,
+  alternativeATMTrafficDescriptor
+    [4]  AlternativeATMTrafficDescriptor OPTIONAL,
+  aTMCellRate                        [5]  ATMCellRate OPTIONAL,
+  cDVTDescriptor                     [6]  CDVTDescriptor OPTIONAL,
+  cumulativeTransitDelay             [7]  CumulativeTransitDelay OPTIONAL,
+  endToEndTransitDelay               [8]  EndToEndTransitDelay OPTIONAL,
+  minAcceptableATMTrafficDescriptor
+    [9]  MinAcceptableATMTrafficDescriptor OPTIONAL,
+  ...
+}
+CUG-Interlock ::= OCTET STRING(SIZE (4)) -- See Q.763 for encoding
+IPRelatedInformation ::= SEQUENCE {
+  alternativeCalledPartyIds          [0]  AlternativeIdentities OPTIONAL,
+  alternativeOriginatingPartyIds     [1]  AlternativeIdentities OPTIONAL,
+  alternativeOriginalCalledPartyIds  [2]  AlternativeIdentities OPTIONAL,
+  alternativeRedirectingPartyIds     [3]  AlternativeIdentities OPTIONAL,
+  ...
+}
+AlternativeIdentities ::=
+  SEQUENCE (SIZE (1..16)) OF AlternativeIdentity
+AlternativeIdentity ::= CHOICE {
+  url  [0]  IA5String(SIZE (1..512)) --  any RFC1738 compliant URL (e.g.; SIP URL)
+}
+AALParameters ::= OCTET STRING(SIZE (0..255))
+AdditionalATMCellRate ::= OCTET STRING(SIZE (0..255))
+AESACalledParty ::= OCTET STRING(SIZE (0..255))
+AESACallingParty ::= OCTET STRING(SIZE (0..255))
+AlternativeATMTrafficDescriptor ::= OCTET STRING(SIZE (0..255))
+ATMCellRate ::= OCTET STRING(SIZE (0..255))
+CDVTDescriptor ::= OCTET STRING(SIZE (0..255))
+CumulativeTransitDelay ::= OCTET STRING(SIZE (0..255))
+EndToEndTransitDelay ::= OCTET STRING(SIZE (0..255))
+MinAcceptableATMTrafficDescriptor ::= OCTET STRING(SIZE (0..255))
+ISDNAccessRelatedInformation ::= OCTET STRING(SIZE (0..255))
+ScfID ::= OCTET STRING(SIZE (0..255))
+CalledPartySubaddress ::= OCTET STRING(SIZE (0..255))
+
+
+
+ConnectArg ::= SEQUENCE {
+  destinationRoutingAddress        [0]  IMPLICIT DestinationRoutingAddress,
+  alertingPattern                  [1]  IMPLICIT AlertingPattern OPTIONAL,
+  correlationID                    [2]  IMPLICIT CorrelationID OPTIONAL,
+  cutAndPaste                      [3]  IMPLICIT CutAndPaste OPTIONAL,
+  forwardingCondition              [4]  IMPLICIT ForwardingCondition OPTIONAL,
+  iSDNAccessRelatedInformation
+    [5]  IMPLICIT ISDNAccessRelatedInformation OPTIONAL,
+  originalCalledPartyID            [6]  IMPLICIT OriginalCalledPartyID OPTIONAL,
+  routeList                        [7]  IMPLICIT RouteList OPTIONAL,
+  -- maximum number of routes is limited to 3
+  scfID                            [8]  IMPLICIT ScfID OPTIONAL,
+  travellingClassMark              [9]  IMPLICIT TravellingClassMark OPTIONAL,
+  --extensions                       [10]  IMPLICIT Extensions OPTIONAL,
+  carrier                          [11]  IMPLICIT Carrier OPTIONAL,
+  serviceInteractionIndicators
+    [26]  IMPLICIT ServiceInteractionIndicators OPTIONAL,
+  callingPartyNumber               [27]  IMPLICIT CallingPartyNumber OPTIONAL,
+  callingPartysCategory            [28]  IMPLICIT CallingPartysCategory OPTIONAL,
+  redirectingPartyID               [29]  IMPLICIT RedirectingPartyID OPTIONAL,
+  redirectionInformation           [30]  IMPLICIT RedirectionInformation OPTIONAL,
+  displayInformation               [12]  IMPLICIT DisplayInformation OPTIONAL,
+  forwardCallIndicators            [13]  IMPLICIT ForwardCallIndicators OPTIONAL,
+  genericNumbers                   [14]  IMPLICIT GenericNumbers OPTIONAL,
+  serviceInteractionIndicatorsTwo
+    [15]  IMPLICIT ServiceInteractionIndicatorsTwo OPTIONAL,
+  iNServiceCompatibilityResponse
+    [16]  INServiceCompatibilityResponse OPTIONAL,
+  forwardGVNS                      [17]  IMPLICIT ForwardGVNS OPTIONAL,
+  backwardGVNS                     [18]  IMPLICIT BackwardGVNS OPTIONAL,
+  chargeNumber                     [19]  IMPLICIT ChargeNumber OPTIONAL,
+  callSegmentID                    [20]  IMPLICIT CallSegmentID OPTIONAL,
+  legToBeCreated                   [21]  LegID OPTIONAL,
+  sDSSinformation                  [22]  IMPLICIT SDSSinformation OPTIONAL,
+  calledDirectoryNumber            [23]  IMPLICIT CalledDirectoryNumber OPTIONAL,
+  bearerCapability                 [24]  BearerCapability OPTIONAL,
+  calledPartySubaddress            [60]  IMPLICIT CalledPartySubaddress OPTIONAL,
+  connectionIdentifier             [61]  IMPLICIT ConnectionIdentifier OPTIONAL,
+  genericIdentifier                [62]  IMPLICIT GenericIdentifier OPTIONAL,
+  qOSParameter                     [63]  IMPLICIT QoSParameter OPTIONAL,
+  bISDNParameters                  [64]  IMPLICIT BISDNParameters OPTIONAL,
+  ...,
+  cug-Interlock                    [31]  IMPLICIT CUG-Interlock OPTIONAL,
+  cug-OutgoingAccess               [32]  IMPLICIT NULL OPTIONAL,
+  ipRelatedInformation             [33]  IMPLICIT IPRelatedInformation OPTIONAL
+}
+
+
+
+FurnishChargingInformationArg ::=
+  FCIBillingChargingCharacteristics
+FCIBillingChargingCharacteristics ::=
+  OCTET STRING
+    (SIZE (0..255))
+
+InitialDPArg ::= SEQUENCE {
+  serviceKey                        [0]  IMPLICIT ServiceKey OPTIONAL,
+  dialledDigits                     [1]  IMPLICIT CalledPartyNumber OPTIONAL,
+  calledPartyNumber                 [2]  IMPLICIT CalledPartyNumber OPTIONAL,
+  callingPartyNumber                [3]  IMPLICIT CallingPartyNumber OPTIONAL,
+  callingPartyBusinessGroupID       [4]  IMPLICIT CallingPartyBusinessGroupID OPTIONAL,
+  callingPartysCategory             [5]  IMPLICIT CallingPartysCategory OPTIONAL,
+  callingPartySubaddress            [6]  IMPLICIT CallingPartySubaddress OPTIONAL,
+  cGEncountered                     [7]  IMPLICIT CGEncountered OPTIONAL,
+  iPSSPCapabilities                 [8]  IMPLICIT IPSSPCapabilities OPTIONAL,
+  iPAvailable                       [9]  IMPLICIT IPAvailable OPTIONAL,
+  locationNumber                    [10]  IMPLICIT LocationNumber OPTIONAL,
+  miscCallInfo                      [11]  IMPLICIT MiscCallInfo OPTIONAL,
+  originalCalledPartyID             [12]  IMPLICIT OriginalCalledPartyID OPTIONAL,
+  serviceProfileIdentifier          [13]  IMPLICIT ServiceProfileIdentifier OPTIONAL,
+  terminalType                      [14]  IMPLICIT TerminalType OPTIONAL,
+  --extensions                        [15]  IMPLICIT Extensions OPTIONAL,
+  triggerType                       [16]  IMPLICIT TriggerType OPTIONAL,
+  highLayerCompatibility            [23]  IMPLICIT HighLayerCompatibility OPTIONAL,
+  serviceInteractionIndicators
+    [24]  IMPLICIT ServiceInteractionIndicators OPTIONAL,
+  additionalCallingPartyNumber
+    [25]  IMPLICIT AdditionalCallingPartyNumber OPTIONAL,
+  forwardCallIndicators             [26]  IMPLICIT ForwardCallIndicators OPTIONAL,
+  bearerCapability                  [27]  BearerCapability OPTIONAL,
+  eventTypeBCSM                     [28]  IMPLICIT EventTypeBCSM OPTIONAL,
+  redirectingPartyID                [29]  IMPLICIT RedirectingPartyID OPTIONAL,
+  redirectionInformation            [30]  IMPLICIT RedirectionInformation OPTIONAL,
+  cause                             [17]  IMPLICIT Cause OPTIONAL,
+  componentType                     [18]  IMPLICIT ComponentType OPTIONAL,
+  component                         [19]  Component OPTIONAL,
+  componentCorrelationID            [20]  IMPLICIT ComponentCorrelationID OPTIONAL,
+  iSDNAccessRelatedInformation
+    [21]  IMPLICIT ISDNAccessRelatedInformation OPTIONAL,
+  iNServiceCompatibilityIndication
+    [22]  IMPLICIT INServiceCompatibilityIndication OPTIONAL,
+  genericNumbers                    [31]  IMPLICIT GenericNumbers OPTIONAL,
+  serviceInteractionIndicatorsTwo
+    [32]  IMPLICIT ServiceInteractionIndicatorsTwo OPTIONAL,
+  forwardGVNS                       [33]  IMPLICIT ForwardGVNS OPTIONAL,
+  createdCallSegmentAssociation     [34]  IMPLICIT CSAID OPTIONAL,
+  uSIServiceIndicator               [35]  USIServiceIndicator OPTIONAL,
+  uSIInformation                    [36]  IMPLICIT USIInformation OPTIONAL,
+  carrier                           [37]  IMPLICIT Carrier OPTIONAL,
+  cCSS                              [38]  IMPLICIT CCSS OPTIONAL,
+  vPNIndicator                      [39]  IMPLICIT VPNIndicator OPTIONAL,
+  cNInfo                            [40]  IMPLICIT CNInfo OPTIONAL,
+  callReference                     [41]  IMPLICIT CallReference OPTIONAL,
+  routeingNumber                    [42]  IMPLICIT RouteingNumber OPTIONAL,
+  callingGeodeticLocation           [43]  IMPLICIT CallingGeodeticLocation OPTIONAL,
+  calledPartySubaddress             [60]  IMPLICIT CalledPartySubaddress OPTIONAL,
+  connectionIdentifier              [61]  IMPLICIT ConnectionIdentifier OPTIONAL,
+  genericIdentifier                 [62]  IMPLICIT GenericIdentifier OPTIONAL,
+  qOSParameter                      [63]  IMPLICIT QoSParameter OPTIONAL,
+  bISDNParameters                   [64]  IMPLICIT BISDNParameters OPTIONAL,
+  ...,
+  globalCallReference               [44]  IMPLICIT GlobalCallReference OPTIONAL,
+  cug-Index                         [45]  IMPLICIT CUG-Index OPTIONAL,
+  cug-Interlock                     [46]  IMPLICIT CUG-Interlock OPTIONAL,
+  cug-OutgoingAccess                [47]  IMPLICIT NULL OPTIONAL,
+  ipRelatedInformation              [48]  IMPLICIT IPRelatedInformation OPTIONAL
+}
+
+CallReference ::= OCTET STRING(SIZE (1..255))
+ServiceKey ::=
+  Integer4
+CallingPartyBusinessGroupID ::= OCTET STRING
+CGEncountered ::= ENUMERATED {
+  noCGencountered(0), manualCGencountered(1), sCPOverload(2)}
+IPSSPCapabilities ::=
+  OCTET STRING
+    (SIZE (0..255))
+IPAvailable ::=
+  OCTET STRING(SIZE (0..255))
+MiscCallInfo ::= SEQUENCE {
+  messageType   [0]  ENUMERATED {request(0), notification(1)},
+  dpAssignment
+    [1]  ENUMERATED {individualBased(0), groupBased(1), switchBased(2)}
+      OPTIONAL
+}
+ServiceProfileIdentifier ::= OCTET STRING
+TerminalType ::= ENUMERATED {
+  unknown(0), dialPulse(1), dtmf(2), isdn(3), isdnNoDtmf(4), spare(16)
+}
+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), oModifyRequest(100), tModifyRequest(101)}
+HighLayerCompatibility ::=
+  OCTET STRING(SIZE (2))
+AdditionalCallingPartyNumber ::=
+  Digits
+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), oTermSeized(19), oSuspend(20), tSuspend(21), origAttempt(22),
+  termAttempt(23), oReAnswer(24), tReAnswer(25),
+  facilitySelectedAndAvailable(26), callAccepted(27),
+  authorizeRouteFailure(28), originationAttemptDenied(29),
+  terminationAttemptDenied(30), oModifyRequest(100), oModifyResult(101),
+  tModifyRequest(102), tModifyResult(103)}
+Cause ::= OCTET STRING(SIZE (0..255))
+ComponentType ::= ENUMERATED {
+  any(0), invoke(1), rResult(2), rError(3), rReject(4)}
+ComponentCorrelationID ::= INTEGER
+INServiceCompatibilityIndication ::=
+  SEQUENCE SIZE (1..255) OF Entry
+CSAID ::= INTEGER(1..255)
+USIServiceIndicator ::= CHOICE {
+  global  OBJECT IDENTIFIER,
+  local
+    OCTET STRING
+      (SIZE (0..255))
+}
+USIInformation ::=
+  OCTET STRING(SIZE (0..255))
+CCSS ::= BOOLEAN
+VPNIndicator ::= BOOLEAN
+CNInfo ::= OCTET STRING(SIZE (1..255))
+RouteingNumber ::=
+  OCTET STRING(SIZE (0..255))
+CallingGeodeticLocation ::=
+  OCTET STRING
+    (SIZE (0..255))
+GlobalCallReference ::=
+  OCTET STRING(SIZE (1..255))
+CUG-Index ::=
+  IA5String(SIZE (1..4))
+    (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))
+
+
+
+
+END -- end of the TCAP Package Module
diff --git a/src/modules/rlm_sigtran/tcap.asn b/src/modules/rlm_sigtran/tcap.asn
new file mode 100644 (file)
index 0000000..3a402af
--- /dev/null
@@ -0,0 +1,738 @@
+-- $Id$
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS  ::=
+
+BEGIN
+
+--EXPORTS                   OPERATION, ERROR, Component, InvokeId Type;
+ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
+                                       {
+                                       oid OBJECT IDENTIFIER,
+                                       dialog [0] EXPLICIT DialoguePDU
+                                       }
+
+DialoguePDU ::= CHOICE {
+  dialogueRequest   AARQ-apdu,
+  dialogueResponse  AARE-apdu,
+  dialogueAbort     ABRT-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+  protocol-versionRQ
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+  protocol-versionRE
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER,
+  result                    [2]  Associate-result,
+  result-source-diagnostic  [3]  Associate-source-diagnostic
+}
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+  abort-source      [0] IMPLICIT ABRT-source
+}
+
+Associate-result ::= INTEGER {accepted(0), reject-permanent(1)}
+
+Associate-source-diagnostic ::= CHOICE {
+  dialogue-service-user
+    [1]  INTEGER {null(0), no-reason-given(1),
+                  application-context-name-not-supported(2)},
+  dialogue-service-provider
+    [2]  INTEGER {null(0), no-reason-given(1), no-common-dialogue-portion(2)}
+}
+
+ABRT-source ::= INTEGER {dialogue-service-user(0), dialogue-service-provider(1)
+}
+
+-- Transaction Portion fields
+
+TCMessage ::= CHOICE {
+                               unidirectional                          [APPLICATION 1]         IMPLICIT Unidirectional,
+                               begin                                           [APPLICATION 2]         IMPLICIT Begin,
+                               end                                                     [APPLICATION 4]         IMPLICIT End,
+                               continue                                        [APPLICATION 5]         IMPLICIT Continue,
+                               abort                                           [APPLICATION 7]         IMPLICIT Abort
+}
+
+Unidirectional ::=     SEQUENCE{
+       dialoguePortion DialoguePortion OPTIONAL,
+       components              ComponentPortion
+       }
+
+Begin ::= SEQUENCE{
+       otid                    OrigTransactionID,
+       dialoguePortion DialoguePortion OPTIONAL,
+       components              ComponentPortion OPTIONAL
+       }
+
+End ::=        SEQUENCE{
+       dtid                    DestTransactionID,
+       dialoguePortion DialoguePortion OPTIONAL,
+       components              ComponentPortion OPTIONAL
+       }
+
+
+Continue ::= SEQUENCE {
+       otid                    OrigTransactionID,
+       dtid                    DestTransactionID,
+       dialoguePortion DialoguePortion OPTIONAL,
+    components         ComponentPortion OPTIONAL
+       }
+
+Abort ::= SEQUENCE{
+       dtid                    DestTransactionID,
+       reason                  Reason OPTIONAL
+       }
+
+Reason ::= CHOICE{
+       p-abortCause            P-AbortCause,
+       u-abortCause            DialoguePortion
+       }
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+
+DialoguePortion ::= [APPLICATION 11] EXPLICIT ExternalPDU
+
+-- WS adaptation
+--DialoguePortion ::= [APPLICATION  11] IMPLICIT DialogueOC
+--DialogueOC ::= OCTET STRING
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type.
+-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
+-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
+-- if unstructured dialogue is used or any user defined abstract syntax name when only user information
+-- is carried (e.g. when user information is sent in a 1988 Abort message).
+
+OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+DestTransactionID ::=[APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
+
+P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
+       unrecognizedMessageType (0),
+       unrecognizedTransactionID (1),
+       badlyFormattedTransactionPortion (2),
+       incorrectTransactionPortion (3),
+       resourceLimitation (4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
+-- The Component Portion may be absent.
+
+ComponentPortion ::= [APPLICATION 12]  IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+
+Component ::=  CHOICE {
+       invoke                                  [1] IMPLICIT Invoke,
+       returnResultLast                [2] IMPLICIT ReturnResult,
+       returnError                             [3] IMPLICIT ReturnError,
+       reject                                  [4] IMPLICIT Reject,
+       returnResultNotLast             [7] IMPLICIT ReturnResult
+       }
+
+-- The Components are sequences of data elements.
+
+Invoke ::=             SEQUENCE {
+                               invokeID                                InvokeIdType,
+                               linkedID                                [0] IMPLICIT InvokeIdType OPTIONAL,
+                               opCode                  OPERATION,
+                               parameter        Parameter OPTIONAL }
+
+Parameter ::= ANY
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
+-- in the type definition of a particular operation.
+
+ReturnResult ::=       SEQUENCE {
+       invokeID                                InvokeIdType,
+       resultretres                    SEQUENCE {
+               opCode                  OPERATION,
+               parameter               Parameter OPTIONAL
+               } OPTIONAL
+       }
+
+-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
+-- of a particular operation.
+
+ReturnError ::=        SEQUENCE {
+                               invokeID                                InvokeIdType,
+                               errorCode                               ErrorCode,
+                               parameter                               Parameter  OPTIONAL }
+
+-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
+-- of a particular error.
+
+Reject ::=             SEQUENCE {
+                               invokeIDRej CHOICE {
+                                       derivable                       InvokeIdType,
+                                       not-derivable           NULL },
+                               problem CHOICE {
+                                       generalProblem          [0] IMPLICIT GeneralProblem,
+                                       invokeProblem           [1] IMPLICIT InvokeProblem,
+                                       returnResultProblem     [2] IMPLICIT ReturnResultProblem,
+                                       returnErrorProblem      [3] IMPLICIT ReturnErrorProblem } }
+
+InvokeIdType ::=       INTEGER (-128..127)
+
+
+OPERATION      ::=     CHOICE {
+                                                       localValue INTEGER,
+                                                       globalValue OBJECT IDENTIFIER }
+
+ERROR  ::=     CHOICE {
+                       localValue INTEGER,
+                       globalValue OBJECT IDENTIFIER }
+
+-- OPERATIONS
+
+-- Operations are specified with the OPERATION MACRO.
+-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
+-- Default values and optional parameters are permitted.
+
+--OPERATION MACRO              ::=
+
+--BEGIN
+--     TYPE NOTATION           ::=     Parameter Result Errors LinkedOperations
+--     VALUE NOTATION  ::=     value (VALUE CHOICE {
+--                                                     localValue INTEGER,
+--                                                     globalValue OBJECT IDENTIFIER } )
+--     Parameter                       ::=     ArgKeyword NamedType | empty
+--     ArgKeyword                      ::=     "ARGUMENT" | "PARAMETER"
+--     Result                          ::=     "RESULT" ResultType | empty
+--     Errors                  ::=     "ERRORS" "{"ErrorNames"}" | empty
+--     LinkedOperations                ::=     "LINKED" "{"LinkedOperationNames"}" | empty
+--     ResultType                      ::=     NamedType | empty
+--     ErrorNames                      ::=     ErrorList | empty
+--     ErrorList                       ::=     Error | ErrorList "," Error
+--     Error                           ::=     value (ERROR)
+                                                       -- shall reference an error value
+                                               --| type         shall reference an error type
+                                                       -- if no error value is specified
+
+--     LinkedOperationNames    ::=     OperationList | empty
+--     OperationList           ::=     Operation | OperationList "," Operation
+--     Operation                       ::=     value (OPERATION)
+                                                       -- shall reference an operation value
+--                                             | type   shall reference an operation type if
+                                                       -- no operation value is specified
+--     NamedType                       ::=     identifier type | type
+--END
+
+-- ERRORS
+
+-- Errors are specified with the ERROR MACRO.
+-- When an error is specified, the valid parameters for that error are indicated.
+-- Default values and optional parameters are permitted.
+
+--ERROR MACRO                  ::=
+--
+--BEGIN
+--     TYPE NOTATION           ::=     Parameter
+--     VALUE NOTATION  ::=     value (VALUE CHOICE {
+--                                                     localValue INTEGER,
+--                                                     globalValue OBJECT IDENTIFIER } )
+--     Parameter       ::=     "PARAMETER" NamedType | empty
+--     NamedType       ::=     identifier type | type
+--END
+
+-- PROBLEMS
+
+GeneralProblem         ::=     INTEGER {               unrecognizedComponent (0),
+                                                               mistypedComponent (1),
+                                                               badlyStructuredComponent (2) }
+
+InvokeProblem          ::=     INTEGER {               duplicateInvokeID (0),
+                                                               unrecognizedOperation (1),
+                                                               mistypedParameter (2),
+                                                               resourceLimitation (3),
+                                                               initiatingRelease (4),
+                                                               unrecognizedLinkedID (5),
+                                                               linkedResponseUnexpected (6),
+                                                               unexpectedLinkedOperation (7) }
+
+ReturnResultProblem    ::=     INTEGER {               unrecognizedInvokeID (0),
+                                                               returnResultUnexpected (1),
+                                                               mistypedParameter (2) }
+
+ReturnErrorProblem     ::=     INTEGER {               unrecognizedInvokeID (0),
+                                                               returnErrorUnexpected (1),
+                                                               unrecognizedError (2),
+                                                               unexpectedError (3),
+                                                               mistypedParameter (4) }
+
+
+-- ErrorCode ::= CHOICE
+--                     {
+--                             nationaler              [PRIVATE 19] IMPLICIT INTEGER (-32768..32767),
+--                             privateer               [PRIVATE 20] IMPLICIT INTEGER
+--                     }
+ErrorCode ::= INTEGER
+
+
+
+
+CalledPartyNumber ::=
+  OCTET STRING
+    (SIZE (2..18))
+DestinationRoutingAddress ::=
+  SEQUENCE SIZE (1..16) OF CalledPartyNumber
+AlertingPattern ::= OCTET STRING(SIZE (3))
+Digits ::= OCTET STRING(SIZE (2..16))
+CorrelationID ::= Digits
+CutAndPaste ::= INTEGER(0..2)
+ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)}
+OriginalCalledPartyID ::=
+  OCTET STRING
+    (SIZE (2..
+             10))
+RouteList ::= SEQUENCE SIZE (1..16) OF Route
+TravellingClassMark ::=
+  LocationNumber
+Carrier ::=
+  OCTET STRING(SIZE (4..4))
+ServiceInteractionIndicators ::=
+  OCTET STRING
+    (SIZE (0..
+             255))
+CallingPartyNumber ::=
+  OCTET STRING
+    (SIZE (2..10))
+CallingPartysCategory ::= OCTET STRING(SIZE (1))
+RedirectingPartyID ::=
+  OCTET STRING
+    (SIZE (2..10))
+RedirectionInformation ::= OCTET STRING(SIZE (2))
+DisplayInformation ::=
+  IA5String
+    (SIZE (0..32))
+ForwardCallIndicators ::= OCTET STRING(SIZE (2))
+GenericNumbers ::=
+  SET SIZE (1..5) OF GenericNumber
+GenericNumber ::=
+  OCTET STRING(SIZE (3..11))
+Route ::=
+  OCTET STRING(SIZE (0..64))
+LocationNumber ::=
+  OCTET STRING(SIZE (2..10))
+ForwardServiceInteractionInd ::= SEQUENCE {
+  conferenceTreatmentIndicator     [1]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptConferenceRequest   'xxxx xx01',B
+  -- rejectConferenceRequest   'xxxx xx10'B
+  -- network default is accept conference request.
+  callDiversionTreatmentIndicator  [2]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- callDiversionAllowed      'xxxx xx01'B
+  -- callDiversionNotAllowed   'xxxx xx10'B
+  -- network default is Call Diversion allowed.
+  callOfferingTreatmentIndicator   [3]  OCTET STRING(SIZE (1)) OPTIONAL,
+  --indicates if call offering is "allowed"," not allowed" or  "no impact by IN"
+  -- the value 'no impact by IN," has only local significance in SSF as a request to SSF
+  -- not to modify the value of the call offering treatment indicator conveyed in signaling.
+  -- callOfferingNotAllowed            'xxxx xx01'B,
+  -- callOfferingAllowed               'xxxx xx10'B
+  -- callOfferingNoINImpact            'xxxx x100'B
+  --indicates if call offering is "allowed"," not allowed" or  "no impact by IN".
+  -- network default is Call Offering not allowed
+  callWaitingTreatmentIndicator    [5]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- callWaitingAllowed                'xxxx xx01'B,
+  -- callWaitingNotAllowed     'xxxx xx10'B
+  -- network default is Call Waiting allowed
+  -- Notice  Tag value 4 is otherwise reserved .
+  ...,
+  holdTreatmentIndicator           [6]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptHoldRequest 'xxxx xx01'B
+  -- rejectHoldRequest 'xxxx xx10'B
+  -- network default is accept hold request
+  ectTreatmentIndicator            [7]  OCTET STRING(SIZE (1)) OPTIONAL
+  -- acceptEctRequest  'xxxx xx01'B
+  -- rejectEctRequest  'xxxx xx10'B
+  -- network default is accept ect request
+}
+BackwardServiceInteractionInd ::= SEQUENCE {
+  conferenceTreatmentIndicator      [1]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptConferenceRequest   'xxxx xx01'B
+  -- rejectConferenceRequest   'xxxx xx10'B
+  -- network default is accept conference request,
+  callCompletionTreatmentIndicator  [2]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptCallCompletionServiceRequest        'xxxx xx01'B,
+  -- rejectCallCompletionServiceRequest        'xxxx xx10'B
+  -- network default is accept call completion service request
+  holdTreatmentIndicator            [3]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptHoldRequest 'xxxx xx01'B
+  -- rejectHoldRequest 'xxxx xx10'B
+  -- network default is accept hold request
+  ectTreatmentIndicator             [4]  OCTET STRING(SIZE (1)) OPTIONAL,
+  -- acceptEctRequest  'xxxx xx01'B
+  -- rejectEctRequest  'xxxx xx10'B
+  -- network default is accept ect request
+  ...
+}
+BothwayThroughConnectionInd ::= ENUMERATED {
+  bothwayPathRequired(0), bothwayPathNotRequired(1)}
+SuspendTimer ::= INTEGER(0..120)
+ConnectedNumberTreatmentInd ::= ENUMERATED {
+  noINImpact(0), presentationRestricted(1), presentCalledINNumber(2),
+  presentCalledINNumberRestricted(3)}
+RedirectReason ::= OCTET STRING(SIZE (1))
+Integer4 ::= INTEGER(0..2147483647)
+LegType ::= OCTET STRING(SIZE (1))
+ServiceInteractionIndicatorsTwo ::= SEQUENCE {
+  forwardServiceInteractionInd       [0]  ForwardServiceInteractionInd OPTIONAL,
+  -- applicable to operations IDP, CON, ICA, CWA.
+  backwardServiceInteractionInd
+    [1]  BackwardServiceInteractionInd OPTIONAL,
+  --applicable to operations IDP, CON, CTR, ETC, CWA.
+  bothwayThroughConnectionInd        [2]  BothwayThroughConnectionInd OPTIONAL,
+  -- applicable to operations CTR, ETC.
+  suspendTimer                       [3]  SuspendTimer OPTIONAL,
+  -- applicable to operations CON, ICA CWA.
+  connectedNumberTreatmentInd        [4]  ConnectedNumberTreatmentInd OPTIONAL,
+  --applicable to operations CON, CTR, ETC, CWA .
+  suppressCallDiversionNotification  [5]  BOOLEAN OPTIONAL,
+  -- applicable to CON, ICA, CWA
+  suppressCallTransferNotification   [6]  BOOLEAN OPTIONAL,
+  -- applicable to CON, ICA, CWA
+  allowCdINNoPresentationInd         [7]  BOOLEAN OPTIONAL,
+  -- applicable to CON, ICA CWA
+  -- indicates whether the Address Presentation restricted indicator of the ISUP
+  -- "called IN number" shall be set to presentation allowed (TRUE)
+  --  or presentation restricted (FALSE). Refer to Rec. Q.1601.
+  userDialogueDurationInd            [8]  BOOLEAN DEFAULT TRUE,
+  -- applicable to operations CTR, ETC.
+  -- applicable when interaction with the user is required during call set-up
+  -- The interaction TRUE means the user interaction may last longer than 90 seconds.
+  -- Otherwise the indicator should be set to FALSE. Used  for delaying ISUP T9 timer.
+  overrideLineRestrictions           [9]  BOOLEAN DEFAULT FALSE,
+  -- only applicable to operations  (e.g. Connect) which lead to a transition to a PIC before
+  --  the AuthorizeCallSetup PIC.
+  -- When set to TRUE, this parameter indicates that some facility restrictions
+  -- should not be checked when the authority to place a call is verified in the
+  --Authorize_Call_Setup PIC.
+  -- Which restrictions are actually overwriden is network specific.
+  suppressVPNAPP                     [10]  BOOLEAN DEFAULT FALSE,
+  -- applicable to CWA, CON, ICA.
+  -- indicates whether to allow or stop (suppress) the forward transmission of the VPN PSS1 capability.
+  -- When set to TRUE, the  exchange, on receipt of this parameter, will not transmit for this call
+  -- any ISUP Application transport parameter with Application Context Identifier set to " PSS1 ASE (VPN) "
+  -- This indicator  is populated by the SCF, where the SCF and SSF in conjunction have provided the
+  -- outgoing gateway PINX functionality as required by PSS1.
+  calledINNumberOverriding           [11]  BOOLEAN OPTIONAL,
+  -- applicable to CON and CWA
+  -- indicates whether the generation/override of  the ISUP
+  -- "called IN number"  is allowed (TRUE)   or  not allowed (FALSE)
+  -- If set to FALSE, the ISUP shall not generate a "called IN number"  or override
+  -- an already existing "called IN number".
+  -- if absent , the default will be "generation/overriding allowed" (TRUE).
+  redirectServiceTreatmentInd
+    [12]  SEQUENCE {redirectReason  [0]  RedirectReason OPTIONAL,
+                    ...} OPTIONAL,
+  --applicable to operation CON .
+  --if absent , call redirection service is not allowed
+  --Existence of this parameter requests Pivot Routing or Redirection supplementary service to be
+  --allowed for-the new routing address specified in the Connect operation.
+  --If absent, neither Pivot Routing nor Redirection service is allowed.
+  -- The redirectReason Parameter indicates the reason for invoking Pivot Routing / Redirection service
+  -- Whether the service is actually invoked depends only on SSF conditions.
+  --In this capability set the SCF will not know all the SSF conditions.
+  -- To send that kind of conditions is out of scope of this capability set.
+  --If the service is allowed, the parameter must be sent in the ISUP-FAC message (Pivot Routing case)
+  -- or ISUP-REL message (Redirection case) as the service is invoked,
+  nonCUGCall                         [13]  NULL OPTIONAL,
+  -- applicable to CON and CWA
+  -- This parameter when present, indicates that no parameters for CUG shall be used for the call
+  -- (i.e. the call shall be a non-CUG call). This parameter when not present, indicates
+  -- one of three things:
+  -- a) continue with modified CUG information (when one or more of either CUG Interlock Code and
+  --      Outgoing Access Indicator are present); or
+  -- b) continue with original CUG information (when neither CUG Interlock Code or Outgoing Access Indicator
+  --      are present).
+  -- c) continue with the original non-CUG call.
+  ...
+}
+INServiceCompatibilityResponse ::=
+  Entry
+Entry ::= CHOICE {
+  agreements       [0]  OBJECT IDENTIFIER,
+  networkSpecific  [1]  Integer4
+}
+ForwardGVNS ::=
+  OCTET STRING(SIZE (0..255))
+BackwardGVNS ::=
+  OCTET STRING(SIZE (0..255))
+ChargeNumber ::=
+  LocationNumber
+CallSegmentID ::= INTEGER(1..127)
+LegID ::= CHOICE {sendingSideID    [0]  LegType,
+                  receivingSideID  [1]  LegType
+}
+SDSSinformation ::=
+  OCTET STRING
+    (SIZE (0..255))
+CalledDirectoryNumber ::=
+  OCTET STRING
+    (SIZE (2..14))
+BearerCapability ::= CHOICE {
+  bearerCap
+    [0]  OCTET STRING(SIZE (2..14)),
+  tmr                 [1]  OCTET STRING(SIZE (1)),
+  broadbandBearerCap
+    [2]  OCTET STRING
+           (SIZE (0..14))
+}
+CallingPartySubaddress ::=
+  OCTET STRING
+    (SIZE (0..16))
+ConnectionIdentifier ::=
+  OCTET STRING
+    (SIZE (0..255))
+GenericIdentifier ::=
+  OCTET STRING
+    (SIZE (0..255))
+QoSParameter ::=
+  OCTET STRING(SIZE (0..16))
+BISDNParameters ::= SEQUENCE {
+  aALParameters                      [0]  AALParameters OPTIONAL,
+  additionalATMCellRate              [1]  AdditionalATMCellRate OPTIONAL,
+  aESACalledParty                    [2]  AESACalledParty OPTIONAL,
+  aESACallingParty                   [3]  AESACallingParty OPTIONAL,
+  alternativeATMTrafficDescriptor
+    [4]  AlternativeATMTrafficDescriptor OPTIONAL,
+  aTMCellRate                        [5]  ATMCellRate OPTIONAL,
+  cDVTDescriptor                     [6]  CDVTDescriptor OPTIONAL,
+  cumulativeTransitDelay             [7]  CumulativeTransitDelay OPTIONAL,
+  endToEndTransitDelay               [8]  EndToEndTransitDelay OPTIONAL,
+  minAcceptableATMTrafficDescriptor
+    [9]  MinAcceptableATMTrafficDescriptor OPTIONAL,
+  ...
+}
+CUG-Interlock ::= OCTET STRING(SIZE (4)) -- See Q.763 for encoding
+IPRelatedInformation ::= SEQUENCE {
+  alternativeCalledPartyIds          [0]  AlternativeIdentities OPTIONAL,
+  alternativeOriginatingPartyIds     [1]  AlternativeIdentities OPTIONAL,
+  alternativeOriginalCalledPartyIds  [2]  AlternativeIdentities OPTIONAL,
+  alternativeRedirectingPartyIds     [3]  AlternativeIdentities OPTIONAL,
+  ...
+}
+AlternativeIdentities ::=
+  SEQUENCE (SIZE (1..16)) OF AlternativeIdentity
+AlternativeIdentity ::= CHOICE {
+  url  [0]  IA5String(SIZE (1..512)) --  any RFC1738 compliant URL (e.g.; SIP URL)
+}
+AALParameters ::= OCTET STRING(SIZE (0..255))
+AdditionalATMCellRate ::= OCTET STRING(SIZE (0..255))
+AESACalledParty ::= OCTET STRING(SIZE (0..255))
+AESACallingParty ::= OCTET STRING(SIZE (0..255))
+AlternativeATMTrafficDescriptor ::= OCTET STRING(SIZE (0..255))
+ATMCellRate ::= OCTET STRING(SIZE (0..255))
+CDVTDescriptor ::= OCTET STRING(SIZE (0..255))
+CumulativeTransitDelay ::= OCTET STRING(SIZE (0..255))
+EndToEndTransitDelay ::= OCTET STRING(SIZE (0..255))
+MinAcceptableATMTrafficDescriptor ::= OCTET STRING(SIZE (0..255))
+ISDNAccessRelatedInformation ::= OCTET STRING(SIZE (0..255))
+ScfID ::= OCTET STRING(SIZE (0..255))
+CalledPartySubaddress ::= OCTET STRING(SIZE (0..255))
+
+
+
+ConnectArg ::= SEQUENCE {
+  destinationRoutingAddress        [0]  IMPLICIT DestinationRoutingAddress,
+  alertingPattern                  [1]  IMPLICIT AlertingPattern OPTIONAL,
+  correlationID                    [2]  IMPLICIT CorrelationID OPTIONAL,
+  cutAndPaste                      [3]  IMPLICIT CutAndPaste OPTIONAL,
+  forwardingCondition              [4]  IMPLICIT ForwardingCondition OPTIONAL,
+  iSDNAccessRelatedInformation
+    [5]  IMPLICIT ISDNAccessRelatedInformation OPTIONAL,
+  originalCalledPartyID            [6]  IMPLICIT OriginalCalledPartyID OPTIONAL,
+  routeList                        [7]  IMPLICIT RouteList OPTIONAL,
+  -- maximum number of routes is limited to 3
+  scfID                            [8]  IMPLICIT ScfID OPTIONAL,
+  travellingClassMark              [9]  IMPLICIT TravellingClassMark OPTIONAL,
+  --extensions                       [10]  IMPLICIT Extensions OPTIONAL,
+  carrier                          [11]  IMPLICIT Carrier OPTIONAL,
+  serviceInteractionIndicators
+    [26]  IMPLICIT ServiceInteractionIndicators OPTIONAL,
+  callingPartyNumber               [27]  IMPLICIT CallingPartyNumber OPTIONAL,
+  callingPartysCategory            [28]  IMPLICIT CallingPartysCategory OPTIONAL,
+  redirectingPartyID               [29]  IMPLICIT RedirectingPartyID OPTIONAL,
+  redirectionInformation           [30]  IMPLICIT RedirectionInformation OPTIONAL,
+  displayInformation               [12]  IMPLICIT DisplayInformation OPTIONAL,
+  forwardCallIndicators            [13]  IMPLICIT ForwardCallIndicators OPTIONAL,
+  genericNumbers                   [14]  IMPLICIT GenericNumbers OPTIONAL,
+  serviceInteractionIndicatorsTwo
+    [15]  IMPLICIT ServiceInteractionIndicatorsTwo OPTIONAL,
+  iNServiceCompatibilityResponse
+    [16]  INServiceCompatibilityResponse OPTIONAL,
+  forwardGVNS                      [17]  IMPLICIT ForwardGVNS OPTIONAL,
+  backwardGVNS                     [18]  IMPLICIT BackwardGVNS OPTIONAL,
+  chargeNumber                     [19]  IMPLICIT ChargeNumber OPTIONAL,
+  callSegmentID                    [20]  IMPLICIT CallSegmentID OPTIONAL,
+  legToBeCreated                   [21]  LegID OPTIONAL,
+  sDSSinformation                  [22]  IMPLICIT SDSSinformation OPTIONAL,
+  calledDirectoryNumber            [23]  IMPLICIT CalledDirectoryNumber OPTIONAL,
+  bearerCapability                 [24]  BearerCapability OPTIONAL,
+  calledPartySubaddress            [60]  IMPLICIT CalledPartySubaddress OPTIONAL,
+  connectionIdentifier             [61]  IMPLICIT ConnectionIdentifier OPTIONAL,
+  genericIdentifier                [62]  IMPLICIT GenericIdentifier OPTIONAL,
+  qOSParameter                     [63]  IMPLICIT QoSParameter OPTIONAL,
+  bISDNParameters                  [64]  IMPLICIT BISDNParameters OPTIONAL,
+  ...,
+  cug-Interlock                    [31]  IMPLICIT CUG-Interlock OPTIONAL,
+  cug-OutgoingAccess               [32]  IMPLICIT NULL OPTIONAL,
+  ipRelatedInformation             [33]  IMPLICIT IPRelatedInformation OPTIONAL
+}
+
+
+
+FurnishChargingInformationArg ::=
+  FCIBillingChargingCharacteristics
+FCIBillingChargingCharacteristics ::=
+  OCTET STRING
+    (SIZE (0..255))
+
+InitialDPArg ::= SEQUENCE {
+  serviceKey                        [0]  IMPLICIT ServiceKey OPTIONAL,
+  dialledDigits                     [1]  IMPLICIT CalledPartyNumber OPTIONAL,
+  calledPartyNumber                 [2]  IMPLICIT CalledPartyNumber OPTIONAL,
+  callingPartyNumber                [3]  IMPLICIT CallingPartyNumber OPTIONAL,
+  callingPartyBusinessGroupID       [4]  IMPLICIT CallingPartyBusinessGroupID OPTIONAL,
+  callingPartysCategory             [5]  IMPLICIT CallingPartysCategory OPTIONAL,
+  callingPartySubaddress            [6]  IMPLICIT CallingPartySubaddress OPTIONAL,
+  cGEncountered                     [7]  IMPLICIT CGEncountered OPTIONAL,
+  iPSSPCapabilities                 [8]  IMPLICIT IPSSPCapabilities OPTIONAL,
+  iPAvailable                       [9]  IMPLICIT IPAvailable OPTIONAL,
+  locationNumber                    [10]  IMPLICIT LocationNumber OPTIONAL,
+  miscCallInfo                      [11]  IMPLICIT MiscCallInfo OPTIONAL,
+  originalCalledPartyID             [12]  IMPLICIT OriginalCalledPartyID OPTIONAL,
+  serviceProfileIdentifier          [13]  IMPLICIT ServiceProfileIdentifier OPTIONAL,
+  terminalType                      [14]  IMPLICIT TerminalType OPTIONAL,
+  --extensions                        [15]  IMPLICIT Extensions OPTIONAL,
+  triggerType                       [16]  IMPLICIT TriggerType OPTIONAL,
+  highLayerCompatibility            [23]  IMPLICIT HighLayerCompatibility OPTIONAL,
+  serviceInteractionIndicators
+    [24]  IMPLICIT ServiceInteractionIndicators OPTIONAL,
+  additionalCallingPartyNumber
+    [25]  IMPLICIT AdditionalCallingPartyNumber OPTIONAL,
+  forwardCallIndicators             [26]  IMPLICIT ForwardCallIndicators OPTIONAL,
+  bearerCapability                  [27]  BearerCapability OPTIONAL,
+  eventTypeBCSM                     [28]  IMPLICIT EventTypeBCSM OPTIONAL,
+  redirectingPartyID                [29]  IMPLICIT RedirectingPartyID OPTIONAL,
+  redirectionInformation            [30]  IMPLICIT RedirectionInformation OPTIONAL,
+  cause                             [17]  IMPLICIT Cause OPTIONAL,
+  componentType                     [18]  IMPLICIT ComponentType OPTIONAL,
+  component                         [19]  Component OPTIONAL,
+  componentCorrelationID            [20]  IMPLICIT ComponentCorrelationID OPTIONAL,
+  iSDNAccessRelatedInformation
+    [21]  IMPLICIT ISDNAccessRelatedInformation OPTIONAL,
+  iNServiceCompatibilityIndication
+    [22]  IMPLICIT INServiceCompatibilityIndication OPTIONAL,
+  genericNumbers                    [31]  IMPLICIT GenericNumbers OPTIONAL,
+  serviceInteractionIndicatorsTwo
+    [32]  IMPLICIT ServiceInteractionIndicatorsTwo OPTIONAL,
+  forwardGVNS                       [33]  IMPLICIT ForwardGVNS OPTIONAL,
+  createdCallSegmentAssociation     [34]  IMPLICIT CSAID OPTIONAL,
+  uSIServiceIndicator               [35]  USIServiceIndicator OPTIONAL,
+  uSIInformation                    [36]  IMPLICIT USIInformation OPTIONAL,
+  carrier                           [37]  IMPLICIT Carrier OPTIONAL,
+  cCSS                              [38]  IMPLICIT CCSS OPTIONAL,
+  vPNIndicator                      [39]  IMPLICIT VPNIndicator OPTIONAL,
+  cNInfo                            [40]  IMPLICIT CNInfo OPTIONAL,
+  callReference                     [41]  IMPLICIT CallReference OPTIONAL,
+  routeingNumber                    [42]  IMPLICIT RouteingNumber OPTIONAL,
+  callingGeodeticLocation           [43]  IMPLICIT CallingGeodeticLocation OPTIONAL,
+  calledPartySubaddress             [60]  IMPLICIT CalledPartySubaddress OPTIONAL,
+  connectionIdentifier              [61]  IMPLICIT ConnectionIdentifier OPTIONAL,
+  genericIdentifier                 [62]  IMPLICIT GenericIdentifier OPTIONAL,
+  qOSParameter                      [63]  IMPLICIT QoSParameter OPTIONAL,
+  bISDNParameters                   [64]  IMPLICIT BISDNParameters OPTIONAL,
+  ...,
+  globalCallReference               [44]  IMPLICIT GlobalCallReference OPTIONAL,
+  cug-Index                         [45]  IMPLICIT CUG-Index OPTIONAL,
+  cug-Interlock                     [46]  IMPLICIT CUG-Interlock OPTIONAL,
+  cug-OutgoingAccess                [47]  IMPLICIT NULL OPTIONAL,
+  ipRelatedInformation              [48]  IMPLICIT IPRelatedInformation OPTIONAL
+}
+
+CallReference ::= OCTET STRING(SIZE (1..255))
+ServiceKey ::=
+  Integer4
+CallingPartyBusinessGroupID ::= OCTET STRING
+CGEncountered ::= ENUMERATED {
+  noCGencountered(0), manualCGencountered(1), sCPOverload(2)}
+IPSSPCapabilities ::=
+  OCTET STRING
+    (SIZE (0..255))
+IPAvailable ::=
+  OCTET STRING(SIZE (0..255))
+MiscCallInfo ::= SEQUENCE {
+  messageType   [0]  ENUMERATED {request(0), notification(1)},
+  dpAssignment
+    [1]  ENUMERATED {individualBased(0), groupBased(1), switchBased(2)}
+      OPTIONAL
+}
+ServiceProfileIdentifier ::= OCTET STRING
+TerminalType ::= ENUMERATED {
+  unknown(0), dialPulse(1), dtmf(2), isdn(3), isdnNoDtmf(4), spare(16)
+}
+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), oModifyRequest(100), tModifyRequest(101)}
+HighLayerCompatibility ::=
+  OCTET STRING(SIZE (2))
+AdditionalCallingPartyNumber ::=
+  Digits
+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), oTermSeized(19), oSuspend(20), tSuspend(21), origAttempt(22),
+  termAttempt(23), oReAnswer(24), tReAnswer(25),
+  facilitySelectedAndAvailable(26), callAccepted(27),
+  authorizeRouteFailure(28), originationAttemptDenied(29),
+  terminationAttemptDenied(30), oModifyRequest(100), oModifyResult(101),
+  tModifyRequest(102), tModifyResult(103)}
+Cause ::= OCTET STRING(SIZE (0..255))
+ComponentType ::= ENUMERATED {
+  any(0), invoke(1), rResult(2), rError(3), rReject(4)}
+ComponentCorrelationID ::= INTEGER
+INServiceCompatibilityIndication ::=
+  SEQUENCE SIZE (1..255) OF Entry
+CSAID ::= INTEGER(1..255)
+USIServiceIndicator ::= CHOICE {
+  global  OBJECT IDENTIFIER,
+  local
+    OCTET STRING
+      (SIZE (0..255))
+}
+USIInformation ::=
+  OCTET STRING(SIZE (0..255))
+CCSS ::= BOOLEAN
+VPNIndicator ::= BOOLEAN
+CNInfo ::= OCTET STRING(SIZE (1..255))
+RouteingNumber ::=
+  OCTET STRING(SIZE (0..255))
+CallingGeodeticLocation ::=
+  OCTET STRING
+    (SIZE (0..255))
+GlobalCallReference ::=
+  OCTET STRING(SIZE (1..255))
+CUG-Index ::=
+  IA5String(SIZE (1..4))
+    (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"))
+
+
+
+
+END -- end of the TCAP Package Module