diff options
author | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-11-29 17:23:50 +0000 |
---|---|---|
committer | etxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-11-29 17:23:50 +0000 |
commit | 86b093b3b60c0d8c51750a5eae4ce54f1f8dc750 (patch) | |
tree | 38af0fb0103ae83df1498b229025daa6a87b8140 | |
parent | e29068a53e7cd1edbbb7a0bebdbf520b1e4bf05f (diff) |
ISUP - Export functions used by INAP and Camel
Gsmmap - Export asn1 structs used by Camel
Camel - Use functions from GSMMAp and ISUP
INAP - Rewrite of the asn1 code to correspond more to CS1 data types
Let ISUP and Q931 dissect apropriate stuff.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@16624 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r-- | asn1/camel/camel.asn | 7 | ||||
-rw-r--r-- | asn1/camel/camel.cnf | 61 | ||||
-rw-r--r-- | asn1/gsmmap/gsm_map-exp.cnf | 38 | ||||
-rw-r--r-- | asn1/inap/inap.asn | 2021 | ||||
-rw-r--r-- | asn1/inap/inap.cnf | 114 | ||||
-rw-r--r-- | asn1/inap/packet-inap-template.c | 206 | ||||
-rw-r--r-- | epan/dissectors/packet-camel.c | 2760 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_map.c | 42 | ||||
-rw-r--r-- | epan/dissectors/packet-gsm_map.h | 21 | ||||
-rw-r--r-- | epan/dissectors/packet-inap.c | 4621 | ||||
-rw-r--r-- | epan/dissectors/packet-isup.c | 13 | ||||
-rw-r--r-- | epan/dissectors/packet-isup.h | 4 |
12 files changed, 6556 insertions, 3352 deletions
diff --git a/asn1/camel/camel.asn b/asn1/camel/camel.asn index d75badcb26..05f8e8effa 100644 --- a/asn1/camel/camel.asn +++ b/asn1/camel/camel.asn @@ -440,10 +440,11 @@ BCSM-Failure ::= SEQUENCE { -- locally refd 2 times, import refd 0 times BearerCapability ::= CHOICE { - bearerCap [0] - -OCTET STRING (SIZE (2..cAPSpecificBoundSetmaxBearerCapabilityLength )) + bearerCap [0] BearerCap } + +BearerCap ::= OCTET STRING (SIZE (2..cAPSpecificBoundSetmaxBearerCapabilityLength )) + -- Indicates the type of bearer capability connection to the user. For bearerCap, the ISUP User -- Service Information, ETSI EN 300 356-1 [23] -- encoding shall be used. diff --git a/asn1/camel/camel.cnf b/asn1/camel/camel.cnf index dd80dca8f1..49aa9122e6 100644 --- a/asn1/camel/camel.cnf +++ b/asn1/camel/camel.cnf @@ -216,6 +216,67 @@ tvbuff_t *parameter_tvb; return 7; /* 7 octets eaten*/ +#.FN_PARS BearerCap + + VAL_PTR = ¶meter_tvb + +#.FN_BODY BearerCap + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree); + +#.FN_PARS RedirectionInformation + + VAL_PTR = ¶meter_tvb + +#.FN_BODY RedirectionInformation + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL); + +#.FN_PARS OriginalCalledPartyID + + VAL_PTR = ¶meter_tvb + +#.FN_BODY OriginalCalledPartyID + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL); + +#.FN_PARS RedirectingPartyID + + VAL_PTR = ¶meter_tvb + +#.FN_BODY RedirectingPartyID + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL); + + +#.TYPE_ATTR +CallingPartysCategory TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(isup_calling_partys_category_value) #.END diff --git a/asn1/gsmmap/gsm_map-exp.cnf b/asn1/gsmmap/gsm_map-exp.cnf index fd1ca37e31..5b9e21253b 100644 --- a/asn1/gsmmap/gsm_map-exp.cnf +++ b/asn1/gsmmap/gsm_map-exp.cnf @@ -1,11 +1,27 @@ #.IMPORT_TAG +SupportedCamelPhases BER_CLASS_UNI BER_UNI_TAG_BITSTRING ISDN-AddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +Ext-QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +Ext2-QoS-Subscribed BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +LSAIdentity BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING SS-Status BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +CUG-Info BER_CLASS_UNI BER_UNI_TAG_SEQUENCE CUG-Index BER_CLASS_UNI BER_UNI_TAG_INTEGER +CUG-Interlock BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING NotificationToMSUser BER_CLASS_UNI BER_UNI_TAG_ENUMERATED AlertingPattern BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +IMSI BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +IMEI BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING LCSClientExternalID BER_CLASS_UNI BER_UNI_TAG_SEQUENCE LCSServiceTypeID BER_CLASS_UNI BER_UNI_TAG_INTEGER +CellGlobalIdOrServiceAreaIdFixedLength BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +LocationInformation BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +RAIdentity BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +GeographicalInformation BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +SubscriberState BER_CLASS_ANY/*choice*/ -1/*choice*/ +GPRSChargingID BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +UU-Data BER_CLASS_UNI BER_UNI_TAG_SEQUENCE RegisterSS-Arg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE SS-Info BER_CLASS_ANY/*choice*/ -1/*choice*/ InterrogateSS-Res BER_CLASS_ANY/*choice*/ -1/*choice*/ @@ -20,9 +36,12 @@ CurrentPassword BER_CLASS_UNI BER_UNI_TAG_NumericString RegisterCC-EntryRes BER_CLASS_UNI BER_UNI_TAG_SEQUENCE EraseCC-EntryArg BER_CLASS_UNI BER_UNI_TAG_SEQUENCE EraseCC-EntryRes BER_CLASS_UNI BER_UNI_TAG_SEQUENCE +MS-Classmark2 BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING +OfferedCamel4Functionalities BER_CLASS_UNI BER_UNI_TAG_BITSTRING SS-ForBS-Code BER_CLASS_UNI BER_UNI_TAG_SEQUENCE CCBS-Feature BER_CLASS_UNI BER_UNI_TAG_SEQUENCE AgeOfLocationInformation BER_CLASS_UNI BER_UNI_TAG_INTEGER +Ext-BasicServiceCode BER_CLASS_ANY/*choice*/ -1/*choice*/ AddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING ISDN-SubaddressString BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING GSN-Address BER_CLASS_UNI BER_UNI_TAG_OCTETSTRING @@ -43,13 +62,29 @@ ExtensionContainer BER_CLASS_UNI BER_UNI_TAG_SEQUENCE #.END #.TYPE_ATTR +SupportedCamelPhases TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 ISDN-AddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +QoS-Subscribed TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +Ext-QoS-Subscribed TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +Ext2-QoS-Subscribed TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +LSAIdentity TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 SS-Status TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +CUG-Info TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 CUG-Index TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +CUG-Interlock TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 NotificationToMSUser TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_NotificationToMSUser_vals) BITMASK = 0 AlertingPattern TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +IMSI TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +IMEI TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 LCSClientExternalID TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 LCSServiceTypeID TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +CellGlobalIdOrServiceAreaIdFixedLength TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +LocationInformation TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +RAIdentity TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +GeographicalInformation TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +SubscriberState TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_SubscriberState_vals) BITMASK = 0 +GPRSChargingID TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +UU-Data TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 RegisterSS-Arg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 SS-Info TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_SS_Info_vals) BITMASK = 0 InterrogateSS-Res TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_InterrogateSS_Res_vals) BITMASK = 0 @@ -64,9 +99,12 @@ CurrentPassword TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL RegisterCC-EntryRes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 EraseCC-EntryArg TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 EraseCC-EntryRes TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 +MS-Classmark2 TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 +OfferedCamel4Functionalities TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 SS-ForBS-Code TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 CCBS-Feature TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 AgeOfLocationInformation TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = NULL BITMASK = 0 +Ext-BasicServiceCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(gsm_map_Ext_BasicServiceCode_vals) BITMASK = 0 AddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 ISDN-SubaddressString TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 GSN-Address TYPE = FT_BYTES DISPLAY = BASE_HEX STRINGS = NULL BITMASK = 0 diff --git a/asn1/inap/inap.asn b/asn1/inap/inap.asn index 8e2e8057d5..824ec3e74a 100644 --- a/asn1/inap/inap.asn +++ b/asn1/inap/inap.asn @@ -41,10 +41,7 @@ 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 @@ -59,9 +56,7 @@ ReleaseCallPartyConnectionArg ::= SEQUENCE { 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 @@ -87,69 +82,7 @@ releaseCallPartyConnection ReleaseCallPartyConnection ::= ffs 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, @@ -157,494 +90,381 @@ Extensions ::= SEQUENCE SIZE (1..10) OF ignore (0), abort (1)} DEFAULT ignore , value [1] IMPLICIT OCTET STRING } + +-- IN-CS-1-Datatypes {itu-t recommendation q 1218 modules(0) cs-1-datatypes(2) version1(0)} -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} +ActivateServiceFilteringArg ::= SEQUENCE { + filteredCallTreatment [0] FilteredCallTreatment, + filteringCharacteristics [1] FilteringCharacteristics, + filteringTimeOut [2] FilteringTimeOut, + filteringCriteria [3] FilteringCriteria, + startTime [4] DateAndTime OPTIONAL, + extensions [5] IMPLICIT Extensions OPTIONAL, + ... + } + + 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 + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + dialledDigits [1] CalledPartyNumber OPTIONAL, + callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [3] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [4] FacilityGroup OPTIONAL, + callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL, + originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL, + prefix [7] Digits OPTIONAL, + redirectingPartyID [8] RedirectingPartyID OPTIONAL, + redirectionInformation [9] RedirectionInformation OPTIONAL, + routeList [10] RouteList OPTIONAL, + travellingClassMark [11] TravellingClassMark OPTIONAL, + extensions [12] IMPLICIT Extensions OPTIONAL, + featureCode [13] FeatureCode OPTIONAL, + accessCode [14] AccessCode OPTIONAL, + carrier [15] Carrier OPTIONAL, + ... + } + 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, - legID [3] LegID OPTIONAL } + destinationRoutingAddress [0] DestinationRoutingAddress, + alertingPattern [1] AlertingPattern OPTIONAL, + iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL, + originalCalledPartyID [3] OriginalCalledPartyID OPTIONAL, + extensions [4] IMPLICIT Extensions OPTIONAL, + callingPartyNumber [5] CallingPartyNumber OPTIONAL, + callingPartysCategory [6] CallingPartysCategory OPTIONAL, + calledPartyNumber [7] CalledPartyNumber OPTIONAL, + chargeNumber [8] ChargeNumber OPTIONAL, + travellingClassMark [9] TravellingClassMark OPTIONAL, + carrier [10] Carrier OPTIONAL, + ... + } + +ApplyChargingArg ::= SEQUENCE { + aChBillingChargingCharacteristics [0] AChBillingChargingCharacteristics, + partyToCharge [2] LegID OPTIONAL, + extensions [3] IMPLICIT Extensions OPTIONAL, + ... + } + +ApplyChargingReportArg ::= + CallResult + +AssistRequestInstructionsArg ::= SEQUENCE { + correlationID [0] CorrelationID, + iPAvailable [1] IPAvailable OPTIONAL, + iPSSPCapabilities [2] IPSSPCapabilities OPTIONAL, + extensions [3] IMPLICIT Extensions OPTIONAL, + ... + } + +CallGapArg ::= SEQUENCE { + gapCriteria [0] GapCriteria, + gapIndicators [1] GapIndicators, + controlType [2] ControlType OPTIONAL, + gapTreatment [3] GapTreatment OPTIONAL, + extensions [4] IMPLICIT Extensions OPTIONAL, + ... + } + +CallInformationReportArg ::= SEQUENCE { + requestedInformationTypeList [0] RequestedInformationTypeList, + correlationID [1] CorrelationID OPTIONAL, + extensions [2] IMPLICIT Extensions OPTIONAL, + ... + } + +CallInformationRequestArg ::= SEQUENCE { + requestedInformationTypeList [0] RequestedInformationTypeList, + correlationID [1] CorrelationID OPTIONAL, + extensions [2] IMPLICIT Extensions OPTIONAL, + legID [3] LegID 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 { + +CancelArg ::= CHOICE {invokeID [0] InvokeID, + allRequests [1] NULL +} + +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} + extensions [1] IMPLICIT Extensions OPTIONAL, + ... + } + +CollectedInformationArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + dialledDigits [1] CalledPartyNumber OPTIONAL, + callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [3] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [4] FacilityGroup OPTIONAL, + callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL, + originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL, + prefix [7] Digits OPTIONAL, + redirectingPartyID [8] RedirectingPartyID OPTIONAL, + redirectionInformation [9] RedirectionInformation OPTIONAL, + travellingClassMark [10] TravellingClassMark OPTIONAL, + extensions [11] IMPLICIT Extensions OPTIONAL, + featureCode [12] FeatureCode OPTIONAL, + accessCode [13] AccessCode OPTIONAL, + carrier [14] Carrier OPTIONAL, + ... +} + +CollectInformationArg ::= SEQUENCE { + alertingPattern [0] AlertingPattern OPTIONAL, + numberingPlan [1] NumberingPlan OPTIONAL, + originalCalledPartyID [2] OriginalCalledPartyID OPTIONAL, + travellingClassMark [3] TravellingClassMark OPTIONAL, + extensions [4] IMPLICIT Extensions OPTIONAL, + callingPartyNumber [5] CallingPartyNumber OPTIONAL, + dialledDigits [6] CalledPartyNumber OPTIONAL, + ... + } + + +ConnectArg ::= SEQUENCE { + destinationRoutingAddress [0] DestinationRoutingAddress, + alertingPattern [1] AlertingPattern OPTIONAL, + correlationID [2] CorrelationID OPTIONAL, + cutAndPaste [3] CutAndPaste OPTIONAL, + forwardingCondition [4] ForwardingCondition OPTIONAL, + iSDNAccessRelatedInformation [5] ISDNAccessRelatedInformation OPTIONAL, + originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL, + routeList [7] RouteList OPTIONAL, + scfID [8] ScfID OPTIONAL, + travellingClassMark [9] TravellingClassMark OPTIONAL, + extensions [10] IMPLICIT Extensions OPTIONAL, + carrier [11] Carrier OPTIONAL, + serviceInteractionIndicators [26] ServiceInteractionIndicators OPTIONAL, + callingPartyNumber [27] CallingPartyNumber OPTIONAL, + callingPartysCategory [28] CallingPartysCategory OPTIONAL, + redirectingPartyID [29] RedirectingPartyID OPTIONAL, + redirectionInformation [30] RedirectionInformation OPTIONAL, + ... +} + +ConnectToResourceArg ::= SEQUENCE { + resourceAddress + CHOICE {ipRoutingAddress [0] IPRoutingAddress, + legID [1] LegID, + both2 + [2] SEQUENCE {ipRoutingAddress [0] IPRoutingAddress, + legID [1] LegID}, + none [3] NULL}, + extensions [4] Extensions, + serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL, + ... +} + +DpSpecificCommonParameters ::= SEQUENCE { + serviceAddressInformation [0] ServiceAddressInformation, + bearerCapability [1] BearerCapability OPTIONAL, + calledPartyNumber [2] CalledPartyNumber OPTIONAL, + callingPartyNumber [3] CallingPartyNumber OPTIONAL, + callingPartysCategory [4] CallingPartysCategory OPTIONAL, + iPSSPCapabilities [5] IPSSPCapabilities OPTIONAL, + iPAvailable [6] IPAvailable OPTIONAL, + iSDNAccessRelatedInformation [7] ISDNAccessRelatedInformation OPTIONAL, + cGEncountered [8] CGEncountered OPTIONAL, + locationNumber [9] LocationNumber OPTIONAL, + serviceProfileIdentifier [10] ServiceProfileIdentifier OPTIONAL, + terminalType [11] TerminalType OPTIONAL, + extensions [12] IMPLICIT Extensions OPTIONAL, + chargeNumber [13] ChargeNumber OPTIONAL, + servingAreaID [14] ServingAreaID OPTIONAL, + ... +} + +EstablishTemporaryConnectionArg ::= SEQUENCE { + assistingSSPIPRoutingAddress [0] AssistingSSPIPRoutingAddress, + correlationID [1] CorrelationID OPTIONAL, + legID [2] LegID OPTIONAL, + scfID [3] ScfID OPTIONAL, + extensions [4] IMPLICIT Extensions OPTIONAL, + carrier [5] Carrier OPTIONAL, + serviceInteractionIndicators [30] ServiceInteractionIndicators OPTIONAL, + ... +} - MonitorMode ::= ENUMERATED { - interrupted (0), - notifyAndContinue (1), - transparent (2)} +EventNotificationChargingArg ::= SEQUENCE { + eventTypeCharging [0] EventTypeCharging, + eventSpecificInformationCharging [1] EventSpecificInformationCharging OPTIONAL, + legID [2] LegID OPTIONAL, + extensions [3] IMPLICIT Extensions OPTIONAL, + monitorMode [30] MonitorMode DEFAULT notifyAndContinue, + ... +} + +EventReportBCSMArg ::= SEQUENCE { + eventTypeBCSM [0] EventTypeBCSM, + bcsmEventCorrelationID [1] CorrelationID OPTIONAL, + eventSpecificInformationBCSM [2] EventSpecificInformationBCSM OPTIONAL, + legID [3] LegID OPTIONAL, + miscCallInfo [4] MiscCallInfo DEFAULT {messageType request}, + extensions [5] IMPLICIT Extensions OPTIONAL + } -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} +FurnishChargingInformationArg ::= FCIBillingChargingCharacteristics + +HoldCallInNetworkArg ::= CHOICE { + holdcause [0] HoldCause, + empty [1] 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} + serviceKey [0] ServiceKey OPTIONAL, + dialledDigits [1] CalledPartyNumber OPTIONAL, + calledPartyNumber [2] CalledPartyNumber OPTIONAL, + callingPartyNumber [3] CallingPartyNumber OPTIONAL, + callingPartyBusinessGroupID [4] CallingPartyBusinessGroupID OPTIONAL, + callingPartysCategory [5] CallingPartysCategory OPTIONAL, + callingPartySubaddress [6] CallingPartySubaddress OPTIONAL, + cGEncountered [7] CGEncountered OPTIONAL, + iPSSPCapabilities [8] IPSSPCapabilities OPTIONAL, + iPAvailable [9] IPAvailable OPTIONAL, + locationNumber [10] LocationNumber OPTIONAL, + miscCallInfo [11] MiscCallInfo OPTIONAL, + originalCalledPartyID [12] OriginalCalledPartyID OPTIONAL, + serviceProfileIdentifier [13] ServiceProfileIdentifier OPTIONAL, + terminalType [14] TerminalType OPTIONAL, + extensions [15] IMPLICIT Extensions OPTIONAL, + triggerType [16] TriggerType OPTIONAL, + highLayerCompatibility [23] HighLayerCompatibility OPTIONAL, + serviceInteractionIndicators [24] ServiceInteractionIndicators OPTIONAL, + additionalCallingPartyNumber [25] AdditionalCallingPartyNumber OPTIONAL, + forwardCallIndicators [26] ForwardCallIndicators OPTIONAL, + bearerCapability [27] BearerCapability OPTIONAL, + eventTypeBCSM [28] EventTypeBCSM OPTIONAL, + redirectingPartyID [29] RedirectingPartyID OPTIONAL, + redirectionInformation [30] RedirectionInformation OPTIONAL, + ... +} + +InitiateCallAttemptArg ::= SEQUENCE { + destinationRoutingAddress [0] DestinationRoutingAddress, + alertingPattern [1] AlertingPattern OPTIONAL, + iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL, + travellingClassMark [3] TravellingClassMark OPTIONAL, + extensions [4] IMPLICIT Extensions OPTIONAL, + serviceInteractionIndicators [29] ServiceInteractionIndicators OPTIONAL, + callingPartyNumber [30] CallingPartyNumber OPTIONAL, + ... + } + +MidCallArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL, + calledPartySubaddress [2] CalledPartySubaddress OPTIONAL, + callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [4] CallingPartySubaddress OPTIONAL, + featureRequestIndicator [5] FeatureRequestIndicator OPTIONAL, + extensions [6] IMPLICIT Extensions OPTIONAL, + carrier [7] Carrier OPTIONAL, + ... +} + + +OAnswerArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [2] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [3] FacilityGroup OPTIONAL, + callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL, + originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL, + redirectingPartyID [6] RedirectingPartyID OPTIONAL, + redirectionInformation [7] RedirectionInformation OPTIONAL, + routeList [8] RouteList OPTIONAL, + travellingClassMark [9] TravellingClassMark OPTIONAL, + extensions [10] IMPLICIT Extensions OPTIONAL, + ... + } + +OCalledPartyBusyArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + busyCause [1] Cause OPTIONAL, + callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [3] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [4] FacilityGroup OPTIONAL, + callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL, + originalCalledPartyID [6] OriginalCalledPartyID OPTIONAL, + prefix [7] Digits OPTIONAL, + redirectingPartyID [8] RedirectingPartyID OPTIONAL, + redirectionInformation [9] RedirectionInformation OPTIONAL, + routeList [10] RouteList OPTIONAL, + travellingClassMark [11] TravellingClassMark OPTIONAL, + extensions [12] IMPLICIT Extensions OPTIONAL, + carrier [13] Carrier OPTIONAL, + ... +} + + + + +ODisconnectArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [2] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [3] FacilityGroup OPTIONAL, + callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL, + releaseCause [5] Cause OPTIONAL, + routeList [6] RouteList OPTIONAL, + extensions [7] IMPLICIT Extensions OPTIONAL, + carrier [8] Carrier OPTIONAL, + connectTime [9] Integer4 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 { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + callingPartyBusinessGroupID [1] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [2] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [3] FacilityGroup OPTIONAL, + callingFacilityGroupMember [4] FacilityGroupMember OPTIONAL, + originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL, + prefix [6] Digits OPTIONAL, + redirectingPartyID [7] RedirectingPartyID OPTIONAL, + redirectionInformation [8] RedirectionInformation OPTIONAL, + routeList [9] RouteList OPTIONAL, + travellingClassMark [10] TravellingClassMark OPTIONAL, + extensions [11] IMPLICIT Extensions OPTIONAL, + carrier [12] Carrier OPTIONAL, + ... +} + +OriginationAttemptAuthorizedArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + dialledDigits [1] CalledPartyNumber OPTIONAL, + callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [3] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [4] FacilityGroup OPTIONAL, + callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL, + travellingClassMark [6] TravellingClassMark OPTIONAL, + extensions [7] IMPLICIT Extensions OPTIONAL, + carrier [8] Carrier OPTIONAL, + ... +} - 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)) +PlayAnnouncementArg ::= SEQUENCE { + informationToSend [0] InformationToSend, + disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE, + requestAnnouncementComplete [2] BOOLEAN DEFAULT TRUE, + extensions [3] IMPLICIT Extensions OPTIONAL + } + +PromptAndCollectUserInformationArg ::= SEQUENCE { + collectedInfo [0] CollectedInfo, + disconnectFromIPForbidden [1] BOOLEAN DEFAULT TRUE, + informationToSend [2] InformationToSend OPTIONAL, + extensions [3] IMPLICIT Extensions OPTIONAL + } + +ReceivedInformationArg ::= CHOICE { + digitsResponse [0] Digits, + iA5Response [1] IA5String +} + + +--ReleaseCallArg ::= Cause ReleaseCallArg ::= CHOICE { initialCallSegment Cause , @@ -652,177 +472,956 @@ ReleaseCallArg ::= CHOICE { releaseCause [0] Cause OPTIONAL } } -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} +RequestCurrentStatusReportArg ::= ResourceID + + +RequestCurrentStatusReportResultArg ::= SEQUENCE { + resourceStatus [0] ResourceStatus, + resourceID [1] ResourceID OPTIONAL, + extensions [2] Extensions, + ... +} + + +RequestEveryStatusChangeReportArg ::= SEQUENCE { + resourceID [0] ResourceID, + correlationID [1] CorrelationID OPTIONAL, + monitorDuration [2] Duration 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} +RequestFirstStatusMatchReportArg ::= SEQUENCE { + resourceID [0] ResourceID OPTIONAL, + resourceStatus [1] ResourceStatus OPTIONAL, + correlationID [2] CorrelationID OPTIONAL, + monitorDuration [3] Duration OPTIONAL, + extensions [4] IMPLICIT Extensions OPTIONAL, + bearerCapability [5] BearerCapability OPTIONAL, + ... +} + + RequestNotificationChargingEvent ::= SEQUENCE SIZE (1..10) OF SEQUENCE { - eventTypeCharging [0] IMPLICIT OCTET STRING , + eventTypeCharging2 [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} + +RequestReportBCSMEventArg ::= SEQUENCE { + bcsmEvents [0] SEQUENCE SIZE (1..numOfBCSMEvents) OF BCSMEvent, + bcsmEventCorrelationID [1] CorrelationID OPTIONAL, + extensions [2] IMPLICIT Extensions OPTIONAL, + ... + } + +ResetTimerArg ::= SEQUENCE { + timerID [0] TimerID DEFAULT tssf, + timervalue [1] TimerValue, + extensions [2] IMPLICIT Extensions 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} +RouteSelectFailureArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + dialledDigits [1] CalledPartyNumber OPTIONAL, + callingPartyBusinessGroupID [2] CallingPartyBusinessGroupID OPTIONAL, + callingPartySubaddress [3] CallingPartySubaddress OPTIONAL, + callingFacilityGroup [4] FacilityGroup OPTIONAL, + callingFacilityGroupMember [5] FacilityGroupMember OPTIONAL, + failureCause [6] Cause OPTIONAL, + originalCalledPartyID [7] OriginalCalledPartyID OPTIONAL, + prefix [8] Digits OPTIONAL, + redirectingPartyID [9] RedirectingPartyID OPTIONAL, + redirectionInformation [10] RedirectionInformation OPTIONAL, + routeList [11] RouteList OPTIONAL, + travellingClassMark [12] TravellingClassMark OPTIONAL, + extensions [13] IMPLICIT Extensions OPTIONAL, + carrier [14] Carrier OPTIONAL, + ... +} + +SelectFacilityArg ::= SEQUENCE { + alertingPattern [0] AlertingPattern OPTIONAL, + destinationNumberRoutingAddress [1] CalledPartyNumber OPTIONAL, + iSDNAccessRelatedInformation [2] ISDNAccessRelatedInformation OPTIONAL, + calledFacilityGroup [3] FacilityGroup OPTIONAL, + calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL, + originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL, + extensions [6] IMPLICIT Extensions OPTIONAL, + ... + } + +SelectRouteArg ::= SEQUENCE { + destinationRoutingAddress [0] DestinationRoutingAddress, + alertingPattern [1] AlertingPattern OPTIONAL, + correlationID [2] CorrelationID OPTIONAL, + iSDNAccessRelatedInformation [3] ISDNAccessRelatedInformation OPTIONAL, + originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL, + routeList [5] RouteList OPTIONAL, + scfID [6] ScfID OPTIONAL, + travellingClassMark [7] TravellingClassMark OPTIONAL, + extensions [8] IMPLICIT Extensions OPTIONAL, + carrier [9] Carrier OPTIONAL, + ... +} + + +SendChargingInformationArg ::= SEQUENCE { + sCIBillingChargingCharacteristics [0] SCIBillingChargingCharacteristics, + partyToCharge [1] LegID, + extensions [2] IMPLICIT Extensions OPTIONAL, + ... + } + + +ServiceFilteringResponseArg ::= SEQUENCE { + countersValue [0] CountersValue, + filteringCriteria [1] FilteringCriteria, + extensions [2] IMPLICIT Extensions OPTIONAL, + responseCondition [3] ResponseCondition OPTIONAL, + ... +} +SpecializedResourceReportArg ::= NULL + +StatusReportArg ::= SEQUENCE { + resourceStatus [0] ResourceStatus OPTIONAL, + correlationID [1] CorrelationID OPTIONAL, + resourceID [2] ResourceID OPTIONAL, + extensions [3] IMPLICIT Extensions OPTIONAL, + reportCondition [4] ReportCondition 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} +TAnswerArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL, + calledPartySubaddress [2] CalledPartySubaddress OPTIONAL, + calledFacilityGroup [3] FacilityGroup OPTIONAL, + calledFacilityGroupMember [4] FacilityGroupMember 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} +TTBusyArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + busyCause [1] Cause OPTIONAL, + calledPartyBusinessGroupID [2] CalledPartyBusinessGroupID OPTIONAL, + calledPartySubaddress [3] CalledPartySubaddress OPTIONAL, + originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL, + redirectingPartyID [5] RedirectingPartyID OPTIONAL, + redirectionInformation [6] RedirectionInformation OPTIONAL, + routeList [7] RouteList OPTIONAL, + travellingClassMark [8] TravellingClassMark OPTIONAL, + extensions [9] IMPLICIT Extensions OPTIONAL, + ... + } + +TDisconnectArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL, + calledPartySubaddress [2] CalledPartySubaddress OPTIONAL, + calledFacilityGroup [3] FacilityGroup OPTIONAL, + calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL, + releaseCause [5] Cause OPTIONAL, + extensions [6] IMPLICIT Extensions OPTIONAL, + connectTime [7] Integer4 OPTIONAL, + ... +} + +TermAttemptAuthorizedArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL, + calledPartySubaddress [2] CalledPartySubaddress OPTIONAL, + callingPartyBusinessGroupID [3] CallingPartyBusinessGroupID OPTIONAL, + originalCalledPartyID [4] OriginalCalledPartyID OPTIONAL, + redirectingPartyID [5] RedirectingPartyID OPTIONAL, + redirectionInformation [6] RedirectionInformation OPTIONAL, + routeList [7] RouteList OPTIONAL, + travellingClassMark [8] TravellingClassMark OPTIONAL, + extensions [9] IMPLICIT Extensions OPTIONAL, + ... + } + +TNoAnswerArg ::= SEQUENCE { + dpSpecificCommonParameters [0] DpSpecificCommonParameters, + calledPartyBusinessGroupID [1] CalledPartyBusinessGroupID OPTIONAL, + calledPartySubaddress [2] CalledPartySubaddress OPTIONAL, + calledFacilityGroup [3] FacilityGroup OPTIONAL, + calledFacilityGroupMember [4] FacilityGroupMember OPTIONAL, + originalCalledPartyID [5] OriginalCalledPartyID OPTIONAL, + redirectingPartyID [6] RedirectingPartyID OPTIONAL, + redirectionInformation [7] RedirectionInformation OPTIONAL, + travellingClassMark [8] TravellingClassMark OPTIONAL, + extensions [9] IMPLICIT Extensions OPTIONAL, + ... + } + +-- The Definition of Common Data Types +AccessCode ::= LocationNumber + +-- An access code from a business group dialling plan attendant access codes, access codes to escape +-- to the public network, access code to access a private facility/network, and feature access codes. +-- Uses the LocationNumber format which is based on the Q.763 Location Number format. +-- The Nature of Address indicator field shall be set to "Spare" (value 00000000). +-- The Numbering Plan Indicator field shall be set to "Spare" (value 000). +-- Of local significance. + +AChBillingChargingCharacteristics ::= + OCTET STRING(SIZE (minAChBillingChargingLength..maxAChBillingChargingLength)) + +-- The AChBillingChargingCharacteristics parameter specifies the charging related information +-- to be provided by the SSF and the conditions on which this information has to be reported +-- back to the SCF with the ApplyChargingReport operation. +-- Examples of charging related information to be provided by the SSF may be: bulk counter +-- values, costs, tariff change and time of charge, time stamps, durations, etc. +-- Examples of conditions on which the charging related information are to be reported may be: +-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc. +AdditionalCallingPartyNumber ::= + Digits + +-- Indicates the Additional Calling Party Number. Refer to Recommendation Q.763 for encoding. +AlertingPattern ::= OCTET STRING(SIZE (3)) + +-- Indicates a specific pattern that is used to alert a subscriber (e.g. distinctive ringing, tones, etc.). +-- Only applies if SSF is the terminating local exchange for the subscriber. Refer to the Q.931 +-- Signal parameter for encoding. +ApplicationTimer ::= INTEGER(0..2047) + +-- Used by the SCF to set a timer in the SSF. The timer is in seconds. +AssistingSSPIPRoutingAddress ::= + Digits + +-- Indicates the destination address of the SRF for the assist procedure. + +BCSMEvent ::= SEQUENCE { + eventTypeBCSM [0] EventTypeBCSM, + monitorMode [1] MonitorMode, + legID [2] LegID OPTIONAL, + dpSpecificCriteria [30] DpSpecificCriteria OPTIONAL +} + +BearerCapability ::= CHOICE { + bearerCap [0] IMPLICIT BearerCap, + tmr [1] IMPLICIT OCTET STRING (SIZE(1))} + +BearerCap ::= OCTET STRING +-- Indicates the type of bearer capability connection to the user. For bearerCapability, either +-- DSS 1 (Q.931) or the ISUP User Service Information (Q.763) encoding can be used. Refer +-- to the Q.763 Transmission Medium Requirement parameter for tmr encoding. + +-- Indicates the type of bearer capability connection to the user. For bearerCapability, either +-- DSS 1 (Q.931) or the ISUP User Service Information (Q.763) encoding can be used. Refer +-- to the Q.763 Transmission Medium Requirement parameter for tmr encoding. +CalledPartyBusinessGroupID ::= OCTET STRING + +-- Indicates the business group of the called party. The value of this octet string is network +-- operator specific. +CalledPartyNumber ::= + OCTET STRING(SIZE (minCalledPartyNumberLength..maxCalledPartyNumberLength)) + +-- Indicates the Called Party Number. Refer to Recommendation Q.763 for encoding. +CalledPartySubaddress ::= OCTET STRING + +-- Indicates the Called Party Subaddress. Refer to Recommendation Q.931 for encoding. +CallingPartyBusinessGroupID ::= OCTET STRING + +-- Indicates the business group of the calling party. The value of this octet string is network +-- operator specific. +CallingPartyNumber ::= + OCTET STRING(SIZE (minCallingPartyNumberLength..maxCallingPartyNumberLength)) + +-- Indicates the Calling Party Number. Refer to Recommendation Q.763 for encoding. +CallingPartySubaddress ::= OCTET STRING + +-- Indicates the Calling Party Subaddress. Refer to Recommendation Q.931 for encoding. +CallingPartysCategory ::= OCTET STRING(SIZE (1)) + +-- Indicates the type of calling party (e.g. operator, payphone, ordinary subscriber). +-- Refer to Recommendation Q.763 for encoding. +CallResult ::= OCTET STRING(SIZE (minCallResultLength..maxCallResultLength)) + +-- This parameter provides the SCF with the charging related information previously requested +-- using the ApplyCharging operation. This shall include the partyToCharge parameter as +-- received in the related ApplyCharging operation to correlate the result to the request. +-- The remaining content is network operator specific. +-- Examples of charging related information to be provided by the SSF may be: bulk counter values, +-- costs, tariff change and time of change, time stamps, durations, etc. +-- Examples of conditions on which the charging related information are to be reported may be: +-- threshold value reached, timer expiration, tariff change, end of connection configuration, etc. +Carrier ::= OCTET STRING + +-- Contains the carrier selection and carrier ID fields. +-- Carrier selection is one octet and is encoded as: +-- 00000000 No indication +-- 00000001 Selected carrier code pre subscribed and not input by calling party +-- 00000010 Selected carrier identification code pre subscribed and input by calling party +-- 00000011 Selected carrier identification code pre subscribed, no indication of whether input by calling party +-- 00000100 Selected carrier identification code not pre subscribed and input by calling party +-- 00000101 +-- to Spare +-- 11111110 +-- 11111111 Reserved +-- +-- Carrier ID has a one octet field indicating the number of digits followed by the digits encoded using BCD. +-- Detailed coding is for further study. It is of local significance and carrying it through the ISUP is for further +-- study. + +Cause ::= OCTET STRING +-- Indicates the cause for interface related information. Refer to the Q.763 Cause parameter +-- for encoding. + +CGEncountered ::= ENUMERATED { + noCGencountered(0), manualCGencountered(1), scpOverload(2)} + +-- Indicates the type of automatic call gapping encountered, if any. +ChargeNumber ::= + LocationNumber + +-- Information sent in either direction indicating the chargeable number for the call and consisting +-- of the odd/even indicator, nature of address indicator, numbering plan indicator, and address signals. +-- Uses the LocationNumber format which is based on the Q.763 Location Number format. +-- For example, the ChargeNumber may be a third party number to which a call is billed for the 3rd party +-- billing service. In this case, the calling party may request operator assistance to charge the call to, +-- for example, their home number. +ChargingEvent ::= SEQUENCE { + eventTypeCharging [0] EventTypeCharging, + monitorMode [1] MonitorMode, + legID [2] LegID OPTIONAL +} + +-- This parameter indicates the charging event type and corresponding +-- monitor mode and LedID. + +CollectedDigits ::= SEQUENCE { + minimumNbOfDigits [0] INTEGER(1..127) DEFAULT 1, + maximumNbOfDigits [1] INTEGER(1..127), + endOfReplyDigit [2] OCTET STRING(SIZE (1..2)) OPTIONAL, + cancelDigit [3] OCTET STRING(SIZE (1..2)) OPTIONAL, + startDigit [4] OCTET STRING(SIZE (1..2)) OPTIONAL, + firstDigitTimeOut [5] INTEGER(1..127) OPTIONAL, + interDigitTimeOut [6] INTEGER(1..127) OPTIONAL, + errorTreatment [7] ErrorTreatment DEFAULT reportErrorToScf, + interruptableAnnInd [8] BOOLEAN DEFAULT TRUE, + voiceInformation [9] BOOLEAN DEFAULT FALSE, + voiceBack [10] BOOLEAN DEFAULT FALSE +} + +-- The use of voiceBack is network operator specific. +-- The endOfReplyDigit, cancelDigit, and startDigit parameters have been designated as OCTET STRING, +-- and are to be encoded as BCD, one digit per octet only, contained +-- in the four least significant bits of each OCTET. The usage is service dependent. +CollectedInfo ::= CHOICE { + collectedDigits [0] CollectedDigits, + iA5Information [1] BOOLEAN +} + +ControlType ::= ENUMERATED { + sCPOverloaded(0), manuallyInitiated(1), destinationOverload(2) + -- other values FFS + } + +CorrelationID ::= Digits + +-- used by SCF for correlation with a previous operation. Refer to clause 3 for a description of the +-- procedures associated with this parameter. +CounterAndValue ::= SEQUENCE { + counterID [0] CounterID, + counterValue [1] Integer4 +} + +CounterID ::= INTEGER(0..99) + +-- Indicates the counters to be incremented. +-- The counterIDs can be addressed by using the last digits of the dialled number. +CountersValue ::= SEQUENCE SIZE (0..numOfCounters) OF CounterAndValue + +CutAndPaste ::= INTEGER(0..22) + +-- Indicates the number of digits to be deleted. Refer to 6.4.2.16/Q.1214 for additional information. + +DateAndTime ::= OCTET STRING(SIZE (6)) + +-- Indicates, amongst others, the start time for activate service filtering. Coded as YYMMDDHHMMSS +-- with each digit coded BCD. +-- The first octet contains YY and the remaining items are sequenced following. +-- For example, 1993 September 30th, 12:15:01 would be encoded as: +-- Bits HGFE DCBA +-- leading octet 3 9 +-- 9 0 +-- 0 3 +-- 2 1 +-- 5 1 +-- 1 0 +DestinationRoutingAddress ::= SEQUENCE SIZE (1..3) OF CalledPartyNumber + +-- Indicates the list of Called Party Numbers (primary and alternates). +Digits ::= OCTET STRING(SIZE (minDigitsLength..maxDigitsLength)) + +-- Indicates the address signalling digits. Refer to the Q.763 Generic Number and Generic Digits parameters +-- for encoding. The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in +-- Generic Digits are irrelevant to the INAP, the ASN.1 tags are sufficient to identify the parameter. +-- The ISUP format does not allow to exclude these subfields, therefore the value is network operator specific. +-- The following parameters should use Generic Number: +-- CorrelationID for AssistRequestInstructions, AssistingSSPIPRoutingAddress for +-- EstablishTemporaryConnection, calledAddressValue for all occurrences, callingAddressValue for all +-- occurrences. The following parameters should use Generic Digits: prefix, all +-- other CorrelationID occurrences, dialledNumber filtering criteria, callingLineID filtering criteria, lineID +-- for ResourceID type, digitResponse for ReceivedInformationArg. +DisplayInformation ::= + IA5String(SIZE (minDisplayInformationLength..maxDisplayInformationLength)) + +-- Indicates the display information. +DpSpecificCriteria ::= CHOICE { + numberOfDigits [0] NumberOfDigits, + applicationTimer [1] ApplicationTimer +} + +-- The SCF may specify the number of digits to be collected by the SSF for the CollectedInfo event. +-- When all digits are collected, the SSF reports the event to the SCF. +-- The SCF may set a timer in the SSF for the No Answer event. If the user does not answer the call +-- within the allotted time, the SSF reports the event to the SCF. +Duration ::= INTEGER(-2..86400) + +-- Values are seconds. +ErrorTreatment ::= ENUMERATED {reportErrorToScf(0), help(1), repeatPrompt(2) +} + +-- reportErrorToScf means returning the "ImproperCallerResponse" error in the event of an error +-- condition during collection of user info. +EventSpecificInformationBCSM ::= CHOICE { + collectedInfoSpecificInfo + [0] SEQUENCE {calledPartynumber [0] CalledPartyNumber, + ...}, + analyzedInfoSpecificInfo + [1] SEQUENCE {calledPartynumber [0] CalledPartyNumber, + ...}, + routeSelectFailureSpecificInfo + [2] SEQUENCE {failureCause [0] Cause OPTIONAL, + ...}, + oCalledPartyBusySpecificInfo + [3] SEQUENCE {busyCause [0] Cause OPTIONAL, + ...}, + oNoAnswerSpecificInfo + [4] SEQUENCE {-- no specific info defined + ...}, + oAnswerSpecificInfo + [5] SEQUENCE {-- no specific info defined + ...}, + oMidCallSpecificInfo + [6] SEQUENCE {connectTime [0] Integer4 OPTIONAL, + ...}, + oDisconnectSpecificInfo + [7] SEQUENCE {releaseCause [0] Cause OPTIONAL, + connectTime [1] Integer4 OPTIONAL, + ...}, + tBusySpecificInfo + [8] SEQUENCE {busyCause [0] Cause OPTIONAL, + ...}, + tNoAnswerSpecificInfo + [9] SEQUENCE {-- no specific info defined + ...}, + tAnswerSpecificInfo + [10] SEQUENCE {-- no specific info defined + ...}, + tMidCallSpecificInfo + [11] SEQUENCE {connectTime [0] Integer4 OPTIONAL, + ...}, + tDisconnectSpecificInfo + [12] SEQUENCE {releaseCause [0] Cause OPTIONAL, + connectTime [1] Integer4 OPTIONAL, + ...} +} + +-- Indicates the call related information specific to the event. +-- The connectTime indicates the duration between the received answer indication from the called party side +-- and the release of the connection for ODisconnect, OException, TDisconnect, or TException events. +-- The unit for the connectTime is 100 milliseconds. +EventSpecificInformationCharging ::= + OCTET STRING + (SIZE (minEventSpecificInformationChargingLength.. + maxEventSpecificInformationChargingLength)) + +-- defined by network operator. +-- Indicates the charging related information specific to the event. +-- An example data type definition for this parameter is given below: +-- chargePulses [0] Integer4, +-- chargeMessages [1] OCTET STRING (SIZE (min..max)) +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)} + +-- Indicates the BCSM detection point event. Refer to 4.2.2.2/Q.1214 for additional information on the +-- events. Values origAttemptAuthorized and termAttemptAuthorized can only be used for TDPs. +EventTypeCharging ::= + OCTET STRING(SIZE (minEventTypeChargingLength..maxEventTypeChargingLength)) + +-- This parameter indicates the charging event type. Its content is network operator specific. +-- +-- An example data type definition for this parameter is given below: +-- EventTypeCharging ::= ENUMERATED { +-- chargePulses (0), +-- chargeMessages (1) +-- } + + +FacilityGroup ::= CHOICE { + trunkGroupID [0] INTEGER, + privateFacilityID [1] INTEGER, + huntGroup [2] OCTET STRING, + routeIndex [3] OCTET STRING +} + +-- Indicates the particular group of facilities to route the call. huntGroup and routeIndex are encoded as +-- network operator specific. + +FacilityGroupMember ::= INTEGER + +-- Indicates the specific member of a trunk group or multi-line hunt group. +FCIBillingChargingCharacteristics ::= + OCTET STRING(SIZE (minFCIBillingChargingLength..maxFCIBillingChargingLength)) + +-- This parameter indicates the billing and/or charging characteristics. Its content is network operator +-- specific. An example datatype definition for this parameter is given below: +-- FCIBillingChargingCharacteristics ::= CHOICE { +-- completeChargingrecord [0] OCTET STRING (SIZE (min..max)), +-- correlationID [1] CorrelationID, +-- scenario2Dot3 [2] SEQUENCE { +-- chargeParty [0] LegID OPTIONAL, +-- chargeLevel [1] OCTET STRING (SIZE (min..max)) +-- OPTIONAL, +-- chargeItems [2] SET OF Attribute OPTIONAL +-- } +-- } +-- Depending on the applied charging scenario, the following information elements can be included +-- (refer to Q.1214 Appendix II): +-- complete charging record (scenario 2.2) +-- charge party (scenario 2.3) +-- charge level (scenario 2.3) +-- charge items (scenario 2.3) +-- correlationID (scenario 2.4) +FeatureCode ::= + LocationNumber + +-- The two-digit feature code preceded by "*" or "11". +-- Uses the LocationNumber format which is based on the Q.763 Location Number format. +-- The Nature of Address indicator field shall be set to "Spare" (value 00000000). +-- The Numbering Plan Indicator field shall be set to "Spare" (value 000). +-- Used for stimulus signalling (Q.932). +FeatureRequestIndicator ::= ENUMERATED { + hold(0), retrieve(1), featureActivation(2), spare1(3), sparen(127)} + +-- Indicates the feature activated (e.g. a switch-hook flash, feature activation). Spare values reserved +-- for future use. +FilteredCallTreatment ::= SEQUENCE { + sFBillingChargingCharacteristics [0] SFBillingChargingCharacteristics, + informationToSend [1] InformationToSend OPTIONAL, + maximumNumberOfCounters [2] MaximumNumberOfCounters OPTIONAL, + releaseCause [3] Cause OPTIONAL +} + +-- If releaseCause is not present, the default value is the same as the ISUP cause value decimal 31. +-- If informationToSend is present, the call will be released after the end of the announcement +-- with the indicated or default releaseCause. +-- If maximumNumberOfCounters is not present, ServiceFilteringResponse will be sent with +-- CountersValue::= SEQUENCE SIZE (0) OF CountersAndValue. +FilteringCharacteristics ::= CHOICE { + interval1 [0] INTEGER(-1..32000), + numberOfCalls [1] Integer4 +} + +-- Indicates the severity of the filtering and the point in time when the ServiceFilteringResponse is to be sent. +-- If = interval, every interval of time the next call leads to an InitialDP and a ServiceFilteringResponse is +-- sent to the SCF. The interval is specified in seconds. +-- If = NumberOfCalls, every N calls the Nth call leads to an InitialDP and a ServiceFilteringResponse +-- is sent to the SCF. +-- If ActivateServiceFiltering implies several counters - filtering on several dialled numbers -, +-- the numberOfCalls would include calls to all the dialled numbers. +FilteringCriteria ::= CHOICE { + dialledNumber [0] Digits, + callingLineID [1] Digits, + serviceKey [2] ServiceKey, + addressAndService + [30] SEQUENCE {calledAddressValue [0] Digits, + serviceKey [1] ServiceKey, + callingAddressValue [2] Digits OPTIONAL, + locationNumber [3] LocationNumber OPTIONAL + } +} + +-- In case calledAddressValue is specified, the numbers to be filtered are from calledAddressValue +-- up to and including calledAddressValue + maximumNumberOfCounters-1. +-- The last two digits of calledAddressvalue can not exceed 100-maximumNumberOfCounters. +FilteringTimeOut ::= CHOICE { + duration [0] Duration, + stopTime [1] DateAndTime +} + +-- Indicates the maximum duration of the filtering. When the timer expires, a ServiceFilteringResponse +-- is sent to the SCF. +ForwardCallIndicators ::= OCTET STRING(SIZE (2)) + +-- Indicates the Forward Call Indicators. Refer to Recommendation Q.763 for encoding. +ForwardingCondition ::= ENUMERATED {busy(0), noanswer(1), any(2)} + +-- Indicates the condition that must be met to complete the connect. + + +GapCriteria ::= CHOICE { + calledAddressValue [0] Digits, + gapOnService [2] GapOnService, + calledAddressAndService + [29] SEQUENCE {calledAddressValue [0] Digits, + serviceKey [1] ServiceKey}, + callingAddressAndService + [30] SEQUENCE {callingAddressValue [0] Digits, + serviceKey [1] ServiceKey, + locationNumber [2] LocationNumber OPTIONAL + } +} + +-- Both calledAddressValue and callingAddressValue can be +-- incomplete numbers, in the sense that a limited amount of digits can be given. +-- +-- For the handling of numbers starting with the same digit string, refer to the detailed procedure +-- of the CallGap operation in 3.3. +GapOnService ::= SEQUENCE { + serviceKey [0] ServiceKey, + dpCriteria [1] EventTypeBCSM OPTIONAL +} + +--Recommendation Q.1218 (10/95) +GapIndicators ::= SEQUENCE { + duration [0] Duration, + gapInterval [1] Interval +} + +-- Indicates the gapping characteristics. No gapping when gapInterval equals 0, and gap all calls when +-- gapInterval equals 1. +GapTreatment ::= CHOICE { + informationToSend [0] InformationToSend, + releaseCause [1] Cause, + both + [2] SEQUENCE {informationToSend [0] InformationToSend, + releaseCause [1] Cause} +} + +-- The default value for Cause is the same as in ISUP. +HighLayerCompatibility ::= OCTET STRING(SIZE (highLayerCompatibilityLength)) + +-- Indicates the teleservice. For encoding, DSS 1 (Q.931) is used. +HoldCause ::= OCTET STRING -- defined by network operator. + +-- Indicates the cause for holding the call. +InbandInfo ::= SEQUENCE { + messageID [0] MessageID, + numberOfRepetitions [1] INTEGER(1..127) OPTIONAL, + duration3 [2] INTEGER(0..32767) OPTIONAL, + interval [3] INTEGER(0..32767) OPTIONAL +} + +-- Interval is the time in seconds between each repeated announcement. Duration is the total +-- amount of time in seconds, including repetitions and intervals. +-- The end of announcement is either the end of duration or numberOfRepetitions, whatever comes first. +-- Duration with value 0 indicates infinite duration. +InformationToSend ::= CHOICE { + inbandInfo [0] InbandInfo, + tone [1] Tone, + displayInformation [2] DisplayInformation +} + +Integer4 ::= INTEGER(0..2147483647) + +Interval ::= INTEGER(-1..60000) + +-- Units are milliseconds. A -1 value denotes infinite. +InvokeID ::= INTEGER + +-- Operation invoke identifier. +IPAvailable ::= OCTET STRING(SIZE (minIPAvailableLength..maxIPAvailableLength)) + +-- defined by network operator. +-- Indicates that the resource is available. +IPRoutingAddress ::= + CalledPartyNumber + +-- Indicates the routing address for the IP. +IPSSPCapabilities ::= + OCTET STRING(SIZE (minIPSSPCapabilitiesLength..maxIPSSPCapabilitiesLength)) + +-- defined by network operator. +-- Indicates the SRF resources available at the SSP. +ISDNAccessRelatedInformation ::= OCTET STRING + +-- Indicates the destination user network interface related information. Refer to the Q.763 Access +-- Transport parameter for encoding. +LegID ::= CHOICE {sendingSideID [0] LegType, + receivingSideID [1] LegType +} + +-- Indicates a reference to a specific party in a call. OPTIONAL denotes network operator specific use +-- with a choice of unilateral ID assignment or bilateral ID assignment. +-- OPTIONAL for LegID also denotes the following: +-- - when only one party exists in the call, this parameter is not needed (as no ambiguity exists); +-- - when more than one party exists in the call, one of the following alternatives applies: +-- 1. LegID is present and indicates which party is concerned. +-- 2. LegID is not present and a default value is assumed (e.g. calling party in the case of the +-- ApplyCharging operation). +-- Choice between these two alternatives is kept a network operator option. +LegType ::= OCTET STRING(SIZE (1)) + +leg1 LegType ::= '01'H + +leg2 LegType ::= '02'H + +LocationNumber ::= + OCTET STRING(SIZE (minLocationNumberLength..maxLocationNumberLength)) + +-- Indicates the Location Number for the calling party. Refer to Recommendation Q.763 (White book) for encoding. +MaximumNumberOfCounters ::= INTEGER(1..numOfCounters) + +MessageID ::= CHOICE { + elementaryMessageID [0] Integer4, + text + [1] SEQUENCE {messageContent + [0] IA5String + (SIZE (minMessageContentLength.. + maxMessageContentLength)), + attributes + [1] OCTET STRING + (SIZE (minAttributesLength..maxAttributesLength)) + OPTIONAL}, + elementaryMessageIDs [29] SEQUENCE SIZE (1..numOfMessageIDs) OF Integer4, + variableMessage + [30] SEQUENCE {elementaryMessageID [0] Integer4, + variableParts + [1] SEQUENCE SIZE (1..5) OF VariablePart} +} + +-- OPTIONAL denotes network operator specific use. +MiscCallInfo ::= SEQUENCE { + messageType [0] ENUMERATED {request(0), notification(1)}, + dpAssignment + [1] ENUMERATED {individualLine(0), groupBased(1), officeBased(2)} OPTIONAL +} + +-- Indicates detection point related information. +MonitorMode ::= ENUMERATED { + interrupted(0), notifyAndContinue(1), transparent(2)} + +-- Indicates the event is relayed and/or processed by the SSP. +-- If this parameter is used in the context of charging events, the following definitions apply for the +-- handling of charging events: +-- Interrupted means that the SSF notifies the SCF of the charging event using +-- EventNotificationCharging, does not process the event but discard it. +-- NotifyAndContinue means that SSF notifies the SCF of the charging event using +-- EventNotificationCharging, and continues processing the event or signal without waiting for SCF +-- instructions. Transparent means that the SSF does not notify the SCF of the event. This value is used to +-- end the monitoring of a previously requested charging event. Previously requested charging events are +-- monitored until ended by a transparent monitor mode, or until the end of the connection configuration. +-- For the use of this parameter in the context of BCSM events refer to 3.3.39. +NumberingPlan ::= OCTET STRING(SIZE (1)) + +-- Indicates the numbering plan for collecting the user information. Refer to the Q.763 Numbering Plan. +-- Indicator field for encoding. +NumberOfDigits ::= INTEGER(1..255) + +-- Indicates the number of digits to be collected +OriginalCalledPartyID ::= + OCTET STRING + (SIZE (minOriginalCalledPartyIDLength..maxOriginalCalledPartyIDLength)) + +-- Indicates the original called number. Refer to the Q.763 Original Called Number for encoding. +RedirectingPartyID ::= + OCTET STRING(SIZE (minRedirectingPartyIDLength..maxRedirectingPartyIDLength)) + +-- Indicates redirecting number. Refer to the Q.763 Redirecting number for encoding. +RedirectionInformation ::= OCTET STRING(SIZE (2)) + +-- Indicates redirection information. Refer to the Q.763 Redirection Information for encoding. +ReportCondition ::= ENUMERATED {statusReport(0), timerExpired(1), canceled(2) +} + +-- ReportCondition specifies the cause of sending "StatusReport" operation to the SCF. +RequestedInformationList ::= + SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformation + +RequestedInformationTypeList ::= + SEQUENCE SIZE (1..numOfInfoItems) OF RequestedInformationType + +RequestedInformation ::= SEQUENCE { + requestedInformationType [0] RequestedInformationType, + requestedInformationValue [1] RequestedInformationValue +} + +RequestedInformationType ::= ENUMERATED { + callAttemptElapsedTime(0), callStopTime(1), callConnectedElapsedTime(2), + calledAddress(3), releaseCause(30)} + +RequestedInformationValue ::= CHOICE { + callAttemptElapsedTimeValue [0] INTEGER(0..255), + callStopTimeValue [1] DateAndTime, + callConnectedElapsedTimeValue [2] Integer4, + calledAddressValue [3] Digits, + releaseCauseValue [30] Cause +} + + +-- The callAttemptElapsedTimeValue is specified in seconds. The unit for the +-- callConnectedElapsedTimeValue is 100 milliseconds. +ResourceID ::= CHOICE { + lineID [0] Digits, + facilityGroupID [1] FacilityGroup, + facilityGroupMemberID [2] INTEGER, + trunkGroupID [3] INTEGER +} + +-- Indicates a logical identifier for the physical termination resource. +ResourceStatus ::= ENUMERATED {busy(0), idle(1)} + +ResponseCondition ::= ENUMERATED {intermediateResponse(0), lastResponse(1) + +-- additional values are for further study. +} + +-- ResponseCondition is used to identify the reason why ServiceFilteringResponse operation is sent. +-- intermediateresponse identifies that service filtering is running and the interval time is expired and +-- a call is received, or that service filtering is running and the threshold value is reached. +-- lastResponse identifies that the duration time is expired and service filtering has been finished or +-- that the stop time is met and service filtering has been finished. +RouteList ::= SEQUENCE SIZE (1..3) OF OCTET STRING + +-- Indicates a list of trunk groups or a route index. See Recommendation Q.1214 for additional information on this item. +ScfID ::= OCTET STRING(SIZE (minScfIDLength..maxScfIDLength)) + +-- defined by network operator. +-- Indicates the SCF identifier. +SCIBillingChargingCharacteristics ::= + OCTET STRING(SIZE (minSCIBillingChargingLength..maxSCIBillingChargingLength)) + +-- This parameter indicates the billing and/or charging characteristics. Its content is network operator +-- specific. An example datatype definition for this parameter is given below: +-- SCIBillingChargingCharacteristics ::= CHOICE { +-- chargeLevel [0] OCTET STRING (SIZE (min..max), +-- chargePulses [1] Integer4, +-- chargeMessages [2] OCTET STRING (SIZE (min..max) +-- } +-- Depending on the applied charging scenario the following information elements +-- can be included (refer to Appendix II/Q.1214): +-- chargeLevel (scenario 3.2) +-- chargePulses (scenario 3.2) +-- chargeMessages (scenario 3.2) +ServiceAddressInformation ::= SEQUENCE { + serviceKey [0] ServiceKey OPTIONAL, + miscCallInfo [1] MiscCallInfo, + triggerType [2] TriggerType OPTIONAL +} + +-- Information that represents the result of trigger analysis and allows the SCF to choose the appropriate +-- service logic. +ServiceInteractionIndicators ::= + OCTET STRING + (SIZE (minServiceInteractionIndicatorsLength.. + maxServiceInteractionIndicatorsLength)) + +-- Indicators which are exchanged between SSP and SCP to resolve interactions between IN based services +-- and network based services, respectively between different IN based services. +-- The contents are network specific and identified as a subject for further study with respect to INAP. +-- The following example is listed to illustrate the use of this parameter: +-- CallToBeDiverted Allowed/NotAllowed Indicator +-- If the CallToBeDiverted indicator is set to NotAllowed, the destination exchange shall not allow any +-- divertion on the subjected call. By this, each service can pass the applicable indicators to inform the +-- destination exchange of how specific services are to be handled. +ServiceKey ::= + Integer4 + +-- Information that allows the SCF to choose the appropriate service logic. +ServiceProfileIdentifier ::= OCTET STRING + +-- Indicates a particular ISDN terminal. Refer to Recommendation Q.932 for encoding. +ServingAreaID ::= + LocationNumber + +-- Identifies the local serving area where a network provider operates. Uses the LocationNumber +-- format which is based on the Q.763 Location Number format. +-- The Nature of Address indicator field shall be set to "Spare" (value 00000000). +-- The Numbering Plan Indicator field shall be set to "Spare" (value 000). +-- Defined by the network operator. +SFBillingChargingCharacteristics ::= + OCTET STRING(SIZE (minSFBillingChargingLength..maxSFBillingChargingLength)) + +-- This parameter indicates the billing and/or charging characteristics for filtered calls. +-- Its content is network operator specific. +TerminalType ::= ENUMERATED { + unknown(0), dialPulse(1), dtmf(2), isdn(3), isdnNoDtmf(4), spare(16) +} + +-- Identifies the terminal type so that the SCF can specify, to the SRF, the appropriate type of capability +-- (voice recognition, DTMF, display capability, etc.). Since present signalling systems do not convey +-- terminal type, this parameter applies only at originating or terminating local exchanges. +TimerID ::= ENUMERATED {tssf(0) + -- others ffs + } + +-- Indicates the timer to be reset. +TimerValue ::= Integer4 + +-- Indicates the timer value (in seconds). +Tone ::= SEQUENCE {toneID [0] Integer4, + tone-duration [1] Integer4 OPTIONAL +} + +-- The duration specifies the length of the tone in seconds, value 0 indicates infinite duration. +TravellingClassMark ::= + LocationNumber + +-- Indicates travelling class mark information. +-- Uses the LocationNumber format which is based on the Q.763 Location Number format. +-- The Nature of Address indicator field shall be set to "Spare" (value 00000000). +-- The Numbering Plan Indicator field shall be set to "Spare" (value 000). +-- Maximum 2 digits. +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) + -- Private (ffs) + } + +-- The type of trigger which caused call suspension +-- 4-11: Reserved; 15,16: Reserved; 19-24: Reserved +UnavailableNetworkResource ::= ENUMERATED { + unavailableResources(0), componentFailure(1), + basicCallProcessingException(2), resourceStatusFailure(3), endUserFailure(4) +} + +-- Indicates the network resource that failed. +VariablePart ::= CHOICE { + integer [0] Integer4, + number [1] Digits, -- Generic digits + time [2] OCTET STRING(SIZE (2)), -- HH:MM, BCD coded + date2 [3] OCTET STRING(SIZE (3)), -- YYMMDD, BCD coded + price [4] OCTET STRING(SIZE (4)) +} + +-- Indicates the variable part of the message. +-- BCD coded variable parts are encoded as described in the examples below. +-- For example, time = 12:15 would be encoded as: +-- Bits HGFE DCBA +-- leading octet 2 1 +-- 5 1 +-- date = 1993 September 30th would be encoded as: +-- Bits HGFE DCBA +-- leading octet 3 9 +-- 9 0 +-- 0 3 + + + --Canceled ::= localValue 0 CancelFailed ::= SEQUENCE { diff --git a/asn1/inap/inap.cnf b/asn1/inap/inap.cnf index 1814cf0751..a479658358 100644 --- a/asn1/inap/inap.cnf +++ b/asn1/inap/inap.cnf @@ -17,35 +17,95 @@ #.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); +#.FN_PARS CalledPartyNumber +VAL_PTR = ¶meter_tvb + +#.FN_BODY CalledPartyNumber + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + +dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL); + +#.FN_PARS CallingPartyNumber + +VAL_PTR = ¶meter_tvb + +#.FN_BODY CallingPartyNumber + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + dissect_isup_calling_party_number_parameter(parameter_tvb, tree, NULL); + + +#.FN_PARS BearerCap + + VAL_PTR = ¶meter_tvb + +#.FN_BODY BearerCap + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree); + +#.FN_PARS RedirectionInformation + + VAL_PTR = ¶meter_tvb + +#.FN_BODY RedirectionInformation + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + + dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL); + +#.FN_PARS OriginalCalledPartyID + + VAL_PTR = ¶meter_tvb + +#.FN_BODY OriginalCalledPartyID + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL); + +#.FN_PARS RedirectingPartyID + + VAL_PTR = ¶meter_tvb + +#.FN_BODY RedirectingPartyID + + tvbuff_t *parameter_tvb; + +%(DEFAULT_BODY)s + + if (!parameter_tvb) + return offset; + dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL); + #.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) +CallingPartysCategory TYPE = FT_UINT16 DISPLAY = BASE_DEC STRINGS = VALS(isup_calling_partys_category_value) #.END diff --git a/asn1/inap/packet-inap-template.c b/asn1/inap/packet-inap-template.c index cc833ce886..0a8e152e60 100644 --- a/asn1/inap/packet-inap-template.c +++ b/asn1/inap/packet-inap-template.c @@ -22,6 +22,7 @@ * 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 + * ITU Q.1218 */ #ifdef HAVE_CONFIG_H @@ -40,8 +41,9 @@ #include "packet-inap.h" #include "packet-q931.h" #include "packet-e164.h" +#include "packet-isup.h" -#define PNAME "INAP" +#define PNAME "Intelligent Network Application Protocol" #define PSNAME "INAP" #define PFNAME "inap" @@ -53,8 +55,8 @@ static int hf_inap_linkedid = -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_ReturnError = -1; /* InvokePDU */ -static int hf_inap_returnResult = -1; /* InvokePDU */ +static int hf_inap_ReturnError = -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; @@ -86,25 +88,61 @@ static int dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv const value_string inap_opr_code_strings[] = { -{16, "AssistRequestInstructions"}, -{44, "CallInformationReport"}, -{45, "CallInformationRequest"}, -{53, "Cancel"}, -{20, "Connect"}, -{18, "DisconnectForwardConnection"}, - {19,"ConnectToResource"}, + {0,"InitialDP"}, + {1, "OriginationAttemptAuthorized"}, + {2, "CollectedInformation"}, + {3, "AnalysedInformation"}, + {4, "RouteSelectFailure"}, + {5, "oCalledPartyBusy"}, + {6, "oNoAnswer"}, + {7, "oAnswer"}, + {8, "oDisconnect"}, + {9, "TermAttemptAuthorized"}, + {10, "tBusy"}, + {11, "tNoAnswer"}, + {12, "tAnswer"}, + {13, "tDisconnect"}, + {14, "oMidCall"}, + {15, "tMidCall"}, + {16, "AssistRequestInstructions"}, {17,"EstablishTemporaryConnection"}, + {18, "DisconnectForwardConnection"}, + {19,"ConnectToResource"}, + {20, "Connect"}, + {21,"HoldCallInNetwork"}, + {22, "ReleaseCall"}, + {23, "RequestReportBCSMEven"}, + {23,"RequestReportBCSMEvent"}, {24,"EventReportBCSM"}, + {25, "RequestNotificationChargingEvent"}, + {26, "EventNotificationCharging"}, + {27, "CollectInformation"}, + {28, "AnalyseInformation"}, + {29, "SelectRoute"}, + {30, "SelectFacility"}, + {31, "Continue"}, + {32, "InitiateCallAttempt"}, + {33,"ResetTimer"}, {34,"FurnishChargingInformation"}, - {0,"InitialDP"}, + {35, "ApplyCharging"}, + {36, "ApplyChargingReport"}, + {37, "RequestCurrentStatusReport"}, + {38, "RequestEveryStatusChangeReport"}, + {39, "RequestFirstStatusMatchReport"}, + {40, "StatusReport"}, + {41, "CallGap"}, + {42, "ActivateServiceFiltering"}, + {43, "ServiceFilteringResponse"}, + {44, "CallInformationReport"}, + {45, "CallInformationRequest"}, + {46, "SendChargingInformation"}, {47,"PlayAnnouncement"}, {48,"PromptAndCollectUserInformation"}, - {99,"ReceivedInformation"}, /*???????*/ - {33,"ResetTimer"}, - {23,"RequestReportBCSMEvent"}, {49,"SpecializedResourceReport"}, - {22,"ReleaseCall"}, -{0, NULL} + {53, "Cancel"}, + {55, "ActivityTest"}, + {99,"ReceivedInformation"}, /*???????*/ + {0, NULL} }; const value_string inap_error_code_strings[] = { @@ -124,6 +162,7 @@ const value_string inap_error_code_strings[] = { {15,"UnexpectedDataValue"}, {16,"UnexpectedParameter"}, {17,"UnknownLegID"}, +{18,"UnknownResource"}, {0, NULL} }; @@ -162,59 +201,114 @@ dissect_inap_errorCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac return offset; } +/* +TC-Invokable OPERATION ::= + {activateServiceFiltering | activityTest | analysedInformation | + analyseInformation | applyCharging | applyChargingReport | + assistRequestInstructions | callGap | callInformationReport | + callInformationRequest | cancel | cancelStatusReportRequest | + collectedInformation | collectInformation | connect | connectToResource | + continue | disconnectForwardConnection | establishTemporaryConnection | + eventNotificationCharging | eventReportBCSM | furnishChargingInformation | + holdCallInNetwork | initialDP | initiateCallAttempt | oAnswer | + oCalledPartyBusy | oDisconnect | oMidCall | oNoAnswer | + originationAttemptAuthorized | releaseCall | requestCurrentStatusReport | + requestEveryStatusChangeReport | requestFirstStatusMatchReport | + requestNotificationChargingEvent | requestReportBCSMEvent | resetTimer | + routeSelectFailure | selectFacility | selectRoute | sendChargingInformation + | serviceFilteringResponse | statusReport | tAnswer | tBusy | tDisconnect | + termAttemptAuthorized | tMidCall | tNoAnswer | playAnnouncement | + promptAndCollectUserInformation} +*/ 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); + case 0: /*InitialDP*/ + offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, -1); break; - case 53: /*Cancel*/ - offset=dissect_inap_Cancelarg(FALSE, tvb, offset, pinfo, tree, -1); + /*1 OriginationAttemptAuthorized */ + /*2 CollectedInformation */ + /*3 AnalysedInformation */ + /*4 RouteSelectFailure */ + /*5 oCalledPartyBusy */ + /*6 oNoAnswer */ + /*7 oAnswer */ + /*8 oDisconnect */ + /*9 TermAttemptAuthorized */ + /*10 tBusy */ + /*11 tNoAnswer */ + /*12 tAnswer */ + /*13 tDisconnect */ + /*14 oMidCall */ + /*15 tMidCall */ + case 16: /*AssistRequestInstructions*/ + offset=dissect_inap_AssistRequestInstructionsArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 20: /*Connect*/ - offset=dissect_inap_Connectarg(FALSE, tvb, offset, pinfo, tree, -1); + case 17: /*EstablishTemporaryConnection*/ + offset=dissect_inap_EstablishTemporaryConnectionArg(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); + offset=dissect_inap_ConnectToResourceArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 17: /*EstablishTemporaryConnection*/ - offset=dissect_inap_EstablishTemporaryConnection(FALSE, tvb, offset, pinfo, tree, -1); + case 20: /*Connect*/ + offset=dissect_inap_ConnectArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + /* 21 HoldCallInNetwork */ + + case 22: /*ReleaseCall*/ + offset=dissect_inap_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 23: /*InitialDP*/ + offset=dissect_inap_RequestReportBCSMEventArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 24: /*EventReportBCSM*/ - offset=dissect_inap_EventReportBCSM(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_inap_EventReportBCSMArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 34: /*FurnishChargingInformation*/ - offset=dissect_inap_FurnishChargingInformationarg(FALSE, tvb, offset, pinfo, tree, -1); + /*24,"EventReportBCSM */ + /*25, "RequestNotificationChargingEvent */ + /*26, "EventNotificationCharging */ + /*27, "CollectInformation */ + /*28, "AnalyseInformation */ + /*29, "SelectRoute */ + /*30, "SelectFacility */ + /*31, "Continue */ + /*32, "InitiateCallAttempt*/ + case 33: /*ResetTimer*/ + offset=dissect_inap_ResetTimerArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 0: /*InitialDP*/ - offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, -1); + case 34: /*FurnishChargingInformation*/ + offset=dissect_inap_FurnishChargingInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; + /*35, "ApplyCharging */ + /*36, "ApplyChargingReport */ + /*37, "RequestCurrentStatusReport */ + /*38, "RequestEveryStatusChangeReport */ + /*39, "RequestFirstStatusMatchReport */ + /*40, "StatusReport */ + /*41, "CallGap */ + /*42, "ActivateServiceFiltering */ + /*43, "ServiceFilteringResponse */ - case 23: /*InitialDP*/ - offset=dissect_inap_RequestReportBCSMEvent(FALSE, tvb, offset, pinfo, tree, -1); + 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 47: /*PlayAnnouncement*/ - offset=dissect_inap_PlayAnnouncement(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_inap_PlayAnnouncementArg(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); + offset=dissect_inap_PromptAndCollectUserInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 22: /*ResetTimer*/ - offset=dissect_inap_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree, -1); + /* 49 SpecializedResourceReport */ + case 53: /*Cancel*/ + offset=dissect_inap_CancelArg(FALSE, tvb, offset, pinfo, tree, -1); break; + /*55 ActivityTest*/ default: proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob"); /* todo call the asn.1 dissector */ @@ -222,11 +316,27 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv return offset; } - +/* +TC-Returnable OPERATION ::= + {activateServiceFiltering | activityTest | requestCurrentStatusReport | + requestEveryStatusChangeReport | requestFirstStatusMatchReport | + promptAndCollectUserInformation} + + activateServiceFiltering - No arg + activityTest - No Arg + requestCurrentStatusReport - RESULT RequestCurrentStatusReportResultArg + requestEveryStatusChangeReport - No arg + requestFirstStatusMatchReport - No Arg + promptAndCollectUserInformation - RESULT ReceivedInformationArg + +*/ static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { switch(opcode){ + case 37: /*requestCurrentStatusReport*/ + offset=dissect_inap_RequestCurrentStatusReportResultArg(FALSE, tvb, offset, pinfo, tree, -1); + break; case 48: /*PromptAndCollectUserInformation*/ - offset=dissect_inap_PromptAndCollectUserInformationres(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_inap_ReceivedInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; default: proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); diff --git a/epan/dissectors/packet-camel.c b/epan/dissectors/packet-camel.c index 36f04ecea5..96bb4d76d1 100644 --- a/epan/dissectors/packet-camel.c +++ b/epan/dissectors/packet-camel.c @@ -10,6 +10,8 @@ * Copyright 2004, Tim Endean <endeant@hotmail.com> * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com> * Copyright 2005, Javier AcuÇña <javier.acuna@sixbell.com> + * Updated to ETSI TS 129 078 V6.4.0 (2004-3GPP TS 29.078 version 6.4.0 Release 6 1 12) + * Copyright 2005, Anders Broman <anders.broman@ericsson.com> * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com> * * $Id$ @@ -144,9 +146,13 @@ static int hf_camel_releaseIfdurationExceeded = -1; /* BOOLEAN */ static int hf_camel_tariffSwitchInterval = -1; /* INTEGER_1_86400 */ static int hf_camel_actone = -1; /* BOOLEAN */ static int hf_camel_extensions = -1; /* ExtensionsArray */ +static int hf_camel_legID = -1; /* LegID */ +static int hf_camel_srfConnection = -1; /* CallSegmentID */ static int hf_camel_aOCInitial = -1; /* CAI_Gsm0224 */ static int hf_camel_aOCSubsequent = -1; /* AOCSubsequent */ static int hf_camel_cAI_GSM0224 = -1; /* CAI_Gsm0224 */ +static int hf_camel_tone = -1; /* BOOLEAN */ +static int hf_camel_burstList = -1; /* BurstList */ static int hf_camel_conferenceTreatmentIndicator = -1; /* OCTET_STRING_SIZE_1 */ static int hf_camel_callCompletionTreatmentIndicator = -1; /* OCTET_STRING_SIZE_1 */ static int hf_camel_calledAddressValue = -1; /* Digits */ @@ -159,7 +165,16 @@ static int hf_camel_eventTypeBCSM = -1; /* EventTypeBCSM */ static int hf_camel_monitorMode = -1; /* MonitorMode */ static int hf_camel_legID6 = -1; /* LegID */ static int hf_camel_dpSpecificCriteria = -1; /* DpSpecificCriteria */ -static int hf_camel_bearerCap = -1; /* OCTET_STRING_SIZE_2_cAPSpecificBoundSetmaxBearerCapabilityLength */ +static int hf_camel_automaticRearm = -1; /* NULL */ +static int hf_camel_cause = -1; /* Cause */ +static int hf_camel_bearerCap = -1; /* BearerCap */ +static int hf_camel_numberOfBursts = -1; /* INTEGER_1_3 */ +static int hf_camel_burstInterval = -1; /* INTEGER_1_1200 */ +static int hf_camel_numberOfTonesInBurst = -1; /* INTEGER_1_3 */ +static int hf_camel_toneDuration = -1; /* INTEGER_1_20 */ +static int hf_camel_toneInterval = -1; /* INTEGER_1_20 */ +static int hf_camel_warningPeriod = -1; /* INTEGER_1_1200 */ +static int hf_camel_bursts = -1; /* Burst */ static int hf_camel_e1 = -1; /* INTEGER_0_8191 */ static int hf_camel_e2 = -1; /* INTEGER_0_8191 */ static int hf_camel_e3 = -1; /* INTEGER_0_8191 */ @@ -167,12 +182,17 @@ static int hf_camel_e4 = -1; /* INTEGER_0_8191 */ static int hf_camel_e5 = -1; /* INTEGER_0_8191 */ static int hf_camel_e6 = -1; /* INTEGER_0_8191 */ static int hf_camel_e7 = -1; /* INTEGER_0_8191 */ +static int hf_camel_callSegmentID = -1; /* CallSegmentID */ +static int hf_camel_invokeID = -1; /* InvokeID */ static int hf_camel_timeDurationCharging = -1; /* T_timeDurationCharging */ +static int hf_camel_audibleIndicator = -1; /* AudibleIndicator */ static int hf_camel_timeDurationChargingResult = -1; /* T_timeDurationChargingResult */ -static int hf_camel_partyToCharge3 = -1; /* ReceivingSideID */ +static int hf_camel_partyToCharge = -1; /* ReceivingSideID */ static int hf_camel_timeInformation = -1; /* TimeInformation */ -static int hf_camel_callActive = -1; /* BOOLEAN */ -static int hf_camel_callReleasedAtTcpExpiry = -1; /* NULL */ +static int hf_camel_legActive = -1; /* BOOLEAN */ +static int hf_camel_callLegReleasedAtTcpExpiry = -1; /* NULL */ +static int hf_camel_extensions1 = -1; /* Extensions */ +static int hf_camel_aChChargingAddress = -1; /* AChChargingAddress */ static int hf_camel_fCIBCCCAMELsequence1 = -1; /* T_fCIBCCCAMELsequence1 */ static int hf_camel_freeFormatData = -1; /* FreeFormatData */ static int hf_camel_partyToCharge4 = -1; /* SendingSideID */ @@ -182,7 +202,16 @@ static int hf_camel_pDPID = -1; /* PDPId */ static int hf_camel_fCIBCCCAMELsequence3 = -1; /* T_fCIBCCCAMELsequence3 */ static int hf_camel_aOCBeforeAnswer = -1; /* AOCBeforeAnswer */ static int hf_camel_aOCAfterAnswer = -1; /* AOCSubsequent */ +static int hf_camel_aOC_extension = -1; /* CAMEL_SCIBillingChargingCharacteristicsAlt */ static int hf_camel_aOCGPRS = -1; /* AOCGprs */ +static int hf_camel_ChangeOfPositionControlInfo_item = -1; /* ChangeOfLocation */ +static int hf_camel_cellGlobalId = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ +static int hf_camel_serviceAreaId = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ +static int hf_camel_locationAreaId = -1; /* LAIFixedLength */ +static int hf_camel_inter_SystemHandOver = -1; /* NULL */ +static int hf_camel_inter_PLMNHandOver = -1; /* NULL */ +static int hf_camel_inter_MSCHandOver = -1; /* NULL */ +static int hf_camel_changeOfLocationAlt = -1; /* ChangeOfLocationAlt */ static int hf_camel_maxTransferredVolume = -1; /* INTEGER_1_2147483647 */ static int hf_camel_maxElapsedTime = -1; /* INTEGER_1_86400 */ static int hf_camel_transferredVolume = -1; /* TransferredVolume */ @@ -205,6 +234,12 @@ static int hf_camel_basicGapCriteria = -1; /* BasicGapCriteria */ static int hf_camel_scfID = -1; /* ScfID */ static int hf_camel_DestinationRoutingAddress_item = -1; /* CalledPartyNumber */ static int hf_camel_applicationTimer = -1; /* ApplicationTimer */ +static int hf_camel_midCallControlInfo = -1; /* MidCallControlInfo */ +static int hf_camel_dpSpecificCriteriaAlt = -1; /* DpSpecificCriteriaAlt */ +static int hf_camel_changeOfPositionControlInfo = -1; /* ChangeOfPositionControlInfo */ +static int hf_camel_oServiceChangeSpecificInfo = -1; /* T_oServiceChangeSpecificInfo */ +static int hf_camel_ext_basicServiceCode = -1; /* Ext_BasicServiceCode */ +static int hf_camel_tServiceChangeSpecificInfo = -1; /* T_tServiceChangeSpecificInfo */ static int hf_camel_timeGPRSIfNoTariffSwitch = -1; /* INTEGER_0_86400 */ static int hf_camel_timeGPRSIfTariffSwitch = -1; /* T_timeGPRSIfTariffSwitch */ static int hf_camel_timeGPRSSinceLastTariffSwitch = -1; /* INTEGER_0_86400 */ @@ -221,22 +256,42 @@ static int hf_camel_failureCause = -1; /* Cause */ static int hf_camel_oCalledPartyBusySpecificInfo = -1; /* T_oCalledPartyBusySpecificInfo */ static int hf_camel_busyCause = -1; /* Cause */ static int hf_camel_oNoAnswerSpecificInfo = -1; /* T_oNoAnswerSpecificInfo */ -static int hf_camel_foo = -1; /* INTEGER_0 */ static int hf_camel_oAnswerSpecificInfo = -1; /* T_oAnswerSpecificInfo */ static int hf_camel_destinationAddress = -1; /* CalledPartyNumber */ static int hf_camel_or_Call = -1; /* NULL */ static int hf_camel_forwardedCall = -1; /* NULL */ +static int hf_camel_chargeIndicator = -1; /* ChargeIndicator */ +static int hf_camel_ext_basicServiceCode2 = -1; /* Ext_BasicServiceCode */ +static int hf_camel_oMidCallSpecificInfo = -1; /* T_oMidCallSpecificInfo */ +static int hf_camel_midCallEvents = -1; /* T_midCallEvents */ +static int hf_camel_dTMFDigitsCompleted = -1; /* Digits */ +static int hf_camel_dTMFDigitsTimeOut = -1; /* Digits */ static int hf_camel_oDisconnectSpecificInfo = -1; /* T_oDisconnectSpecificInfo */ static int hf_camel_releaseCause = -1; /* Cause */ static int hf_camel_tBusySpecificInfo = -1; /* T_tBusySpecificInfo */ static int hf_camel_callForwarded = -1; /* NULL */ static int hf_camel_routeNotPermitted = -1; /* NULL */ +static int hf_camel_forwardingDestinationNumber = -1; /* CalledPartyNumber */ static int hf_camel_tNoAnswerSpecificInfo = -1; /* T_tNoAnswerSpecificInfo */ static int hf_camel_tAnswerSpecificInfo = -1; /* T_tAnswerSpecificInfo */ +static int hf_camel_tMidCallSpecificInfo = -1; /* T_tMidCallSpecificInfo */ +static int hf_camel_midCallEvents1 = -1; /* T_midCallEvents1 */ static int hf_camel_tDisconnectSpecificInfo = -1; /* T_tDisconnectSpecificInfo */ +static int hf_camel_oTermSeizedSpecificInfo = -1; /* T_oTermSeizedSpecificInfo */ +static int hf_camel_locationInformation = -1; /* LocationInformation */ +static int hf_camel_callAcceptedSpecificInfo = -1; /* T_callAcceptedSpecificInfo */ +static int hf_camel_oAbandonSpecificInfo = -1; /* T_oAbandonSpecificInfo */ +static int hf_camel_oChangeOfPositionSpecificInfo = -1; /* T_oChangeOfPositionSpecificInfo */ +static int hf_camel_metDPCriteriaList = -1; /* MetDPCriteriaList */ +static int hf_camel_tChangeOfPositionSpecificInfo = -1; /* T_tChangeOfPositionSpecificInfo */ +static int hf_camel_dpSpecificInfoAlt = -1; /* DpSpecificInfoAlt */ static int hf_camel_o_smsFailureSpecificInfo = -1; /* T_o_smsFailureSpecificInfo */ -static int hf_camel_smsfailureCause = -1; /* SMSCause */ +static int hf_camel_smsfailureCause = -1; /* MO_SMSCause */ static int hf_camel_o_smsSubmittedSpecificInfo = -1; /* T_o_smsSubmittedSpecificInfo */ +static int hf_camel_foo = -1; /* INTEGER_0 */ +static int hf_camel_t_smsFailureSpecificInfo = -1; /* T_t_smsFailureSpecificInfo */ +static int hf_camel_failureCause1 = -1; /* MT_SMSCause */ +static int hf_camel_t_smsDeliverySpecificInfo = -1; /* T_t_smsDeliverySpecificInfo */ static int hf_camel_Extensions_item = -1; /* ExtensionField */ static int hf_camel_callDiversionTreatmentIndicator = -1; /* OCTET_STRING_SIZE_1 */ static int hf_camel_callingPartyRestrictionIndicator = -1; /* OCTET_STRING_SIZE_1 */ @@ -247,6 +302,7 @@ static int hf_camel_informationToSend = -1; /* InformationToSend */ static int hf_camel_GenericNumbers_item = -1; /* GenericNumber */ static int hf_camel_short_QoS_format = -1; /* QoS_Subscribed */ static int hf_camel_long_QoS_format = -1; /* Ext_QoS_Subscribed */ +static int hf_camel_supplement_to_long_QoS_format = -1; /* Ext2_QoS_Subscribed */ static int hf_camel_gPRSEventType = -1; /* GPRSEventType */ static int hf_camel_attachChangeOfPositionSpecificInformation = -1; /* T_attachChangeOfPositionSpecificInformation */ static int hf_camel_locationInformationGPRS = -1; /* LocationInformationGPRS */ @@ -272,7 +328,7 @@ static int hf_camel_numberOfRepetitions = -1; /* INTEGER_1_127 */ static int hf_camel_duration2 = -1; /* INTEGER_0_32767 */ static int hf_camel_interval = -1; /* INTEGER_0_32767 */ static int hf_camel_inbandInfo = -1; /* InbandInfo */ -static int hf_camel_tone = -1; /* Tone */ +static int hf_camel_tone1 = -1; /* Tone */ static int hf_camel_cellGlobalIdOrServiceAreaIdOrLAI = -1; /* CellGlobalIdOrServiceAreaIdOrLAI */ static int hf_camel_routeingAreaIdentity = -1; /* RAIdentity */ static int hf_camel_geographicalInformation = -1; /* GeographicalInformation */ @@ -288,9 +344,25 @@ static int hf_camel_elementaryMessageIDs = -1; /* SEQUENCE_SIZE_1_16_OF_Integ static int hf_camel_elementaryMessageIDs_item = -1; /* Integer4 */ static int hf_camel_variableMessage = -1; /* T_variableMessage */ static int hf_camel_variableParts = -1; /* VariablePartsArray */ +static int hf_camel_MetDPCriteriaList_item = -1; /* MetDPCriterion */ +static int hf_camel_enteringCellGlobalId = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ +static int hf_camel_leavingCellGlobalId = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ +static int hf_camel_enteringServiceAreaId = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ +static int hf_camel_leavingServiceAreaId = -1; /* CellGlobalIdOrServiceAreaIdFixedLength */ +static int hf_camel_enteringLocationAreaId = -1; /* LAIFixedLength */ +static int hf_camel_leavingLocationAreaId = -1; /* LAIFixedLength */ +static int hf_camel_inter_SystemHandOverToUMTS = -1; /* NULL */ +static int hf_camel_inter_SystemHandOverToGSM = -1; /* NULL */ +static int hf_camel_metDPCriterionAlt = -1; /* MetDPCriterionAlt */ +static int hf_camel_minimumNumberOfDigits = -1; /* INTEGER_1_30 */ +static int hf_camel_maximumNumberOfDigits = -1; /* INTEGER_1_30 */ +static int hf_camel_interDigitTimeout = -1; /* INTEGER_1_127 */ static int hf_camel_requested_QoS = -1; /* GPRS_QoS */ static int hf_camel_subscribed_QoS = -1; /* GPRS_QoS */ static int hf_camel_negotiated_QoS = -1; /* GPRS_QoS */ +static int hf_camel_requested_QoS_Extension = -1; /* GPRS_QoS_Extension */ +static int hf_camel_subscribed_QoS_Extension = -1; /* GPRS_QoS_Extension */ +static int hf_camel_negotiated_QoS_Extension = -1; /* GPRS_QoS_Extension */ static int hf_camel_receivingSideID = -1; /* LegType */ static int hf_camel_RequestedInformationList_item = -1; /* RequestedInformation */ static int hf_camel_RequestedInformationTypeList_item = -1; /* RequestedInformationType */ @@ -310,10 +382,10 @@ static int hf_camel_holdTreatmentIndicator = -1; /* OCTET_STRING_SIZE_1 */ static int hf_camel_cwTreatmentIndicator = -1; /* OCTET_STRING_SIZE_1 */ static int hf_camel_ectTreatmentIndicator = -1; /* OCTET_STRING_SIZE_1 */ static int hf_camel_eventTypeSMS = -1; /* EventTypeSMS */ -static int hf_camel_timeIfNoTariffSwitch = -1; /* TimeIfNoTariffSwitch */ -static int hf_camel_timeIfTariffSwitch = -1; /* TimeIfTariffSwitch */ static int hf_camel_timeSinceTariffSwitch = -1; /* INTEGER_0_864000 */ static int hf_camel_tttariffSwitchInterval = -1; /* INTEGER_1_864000 */ +static int hf_camel_timeIfNoTariffSwitch = -1; /* TimeIfNoTariffSwitch */ +static int hf_camel_timeIfTariffSwitch = -1; /* TimeIfTariffSwitch */ static int hf_camel_toneID = -1; /* Integer4 */ static int hf_camel_duration3 = -1; /* Integer4 */ static int hf_camel_volumeIfNoTariffSwitch = -1; /* INTEGER_0_2147483647 */ @@ -335,8 +407,8 @@ static int hf_camel_messageType = -1; /* T_messageType */ static int hf_camel_firstExtensionExtensionType = -1; /* NULL */ static int hf_camel_extId = -1; /* ExtensionSetextensionId */ static int hf_camel_callresultOctet = -1; /* CallresultoctetPDU */ -static int hf_camel_invokeID = -1; /* InvokeID */ static int hf_camel_allRequests = -1; /* NULL */ +static int hf_camel_callSegmentToCancel = -1; /* CallSegmentToCancel */ static int hf_camel_digitsResponse = -1; /* Digits */ static int hf_camel_pdpID = -1; /* PDPId */ static int hf_camel_gPRSCause = -1; /* GPRSCause */ @@ -351,18 +423,27 @@ static int hf_camel_notProvidedFromVLR = -1; /* NULL */ static int hf_camel_PrivateExtensionList_item = -1; /* PrivateExtension */ static int hf_camel_cellIdFixedLength = -1; /* CellIdFixedLength */ static int hf_camel_laiFixedLength = -1; /* LAIFixedLength */ -static int hf_camel_ext_BearerService = -1; /* Ext_BearerServiceCode */ -static int hf_camel_ext_Teleservice = -1; /* Ext_TeleserviceCode */ static int hf_camel_VariablePartsArray_item = -1; /* VariablePart */ static int hf_camel_gmscAddress = -1; /* ISDN_AddressString */ -static int hf_camel_ageOfLocationInformation = -1; /* AgeOfLocationInformation */ -static int hf_camel_vlr_number = -1; /* ISDN_AddressString */ -static int hf_camel_locationNumber = -1; /* LocationNumber */ -static int hf_camel_cellIdOrLAI = -1; /* CellIdOrLAI */ -static int hf_camel_selectedLSA_Id = -1; /* LSAIdentity */ -static int hf_camel_msc_number = -1; /* ISDN_AddressString */ -static int hf_camel_geodeticInformation = -1; /* GeodeticInformation */ -static int hf_camel_currentLocationRetrieved = -1; /* NULL */ +static int hf_camel_ms_Classmark2 = -1; /* MS_Classmark2 */ +static int hf_camel_iMEI = -1; /* IMEI */ +static int hf_camel_supportedCamelPhases = -1; /* SupportedCamelPhases */ +static int hf_camel_offeredCamel4Functionalities = -1; /* OfferedCamel4Functionalities */ +static int hf_camel_bearerCapability2 = -1; /* BearerCapability */ +static int hf_camel_highLayerCompatibility2 = -1; /* HighLayerCompatibility */ +static int hf_camel_lowLayerCompatibility = -1; /* LowLayerCompatibility */ +static int hf_camel_lowLayerCompatibility2 = -1; /* LowLayerCompatibility */ +static int hf_camel_enhancedDialledServicesAllowed = -1; /* NULL */ +static int hf_camel_uu_Data = -1; /* UU_Data */ +static int hf_camel_destinationRoutingAddress = -1; /* DestinationRoutingAddress */ +static int hf_camel_legToBeCreated = -1; /* LegID */ +static int hf_camel_newCallSegment = -1; /* CallSegmentID */ +static int hf_camel_callingPartyNumber = -1; /* CallingPartyNumber */ +static int hf_camel_callReferenceNumber = -1; /* CallReferenceNumber */ +static int hf_camel_gsmSCFAddress = -1; /* ISDN_AddressString */ +static int hf_camel_suppress_T_CSI = -1; /* NULL */ +static int hf_camel_legIDToMove = -1; /* LegID */ +static int hf_camel_legOrCallSegment = -1; /* LegOrCallSegment */ static int hf_camel_miscGPRSInfo = -1; /* MiscCallInfo */ static int hf_camel_gPRSEventSpecificInformation = -1; /* GPRSEventSpecificInformation */ static int hf_camel_type = -1; /* SupportedExtensionsid */ @@ -375,7 +456,6 @@ static int hf_camel_correlationID = -1; /* CorrelationID */ static int hf_camel_iPSSPCapabilities = -1; /* IPSSPCapabilities */ static int hf_camel_requestedInformationTypeList = -1; /* RequestedInformationTypeList */ static int hf_camel_legID3 = -1; /* SendingSideID */ -static int hf_camel_destinationRoutingAddress = -1; /* DestinationRoutingAddress */ static int hf_camel_alertingPattern = -1; /* AlertingPattern */ static int hf_camel_originalCalledPartyID = -1; /* OriginalCalledPartyID */ static int hf_camel_carrier = -1; /* Carrier */ @@ -390,9 +470,18 @@ static int hf_camel_cug_OutgoingAccess = -1; /* NULL */ static int hf_camel_suppressionOfAnnouncement = -1; /* SuppressionOfAnnouncement */ static int hf_camel_oCSIApplicable = -1; /* OCSIApplicable */ static int hf_camel_naOliInfo = -1; /* NAOliInfo */ +static int hf_camel_bor_InterrogationRequested = -1; /* NULL */ static int hf_camel_resourceAddress = -1; /* T_resourceAddress */ static int hf_camel_ipRoutingAddress = -1; /* IPRoutingAddress */ static int hf_camel_none = -1; /* NULL */ +static int hf_camel_suppress_O_CSI = -1; /* NULL */ +static int hf_camel_continueWithArgumentArgExtension = -1; /* ContinueWithArgumentArgExtension */ +static int hf_camel_suppress_D_CSI = -1; /* NULL */ +static int hf_camel_suppress_N_CSI = -1; /* NULL */ +static int hf_camel_suppressOutgoingCallBarring = -1; /* NULL */ +static int hf_camel_legToBeReleased = -1; /* LegID */ +static int hf_camel_callSegmentFailure = -1; /* CallSegmentFailure */ +static int hf_camel_bCSM_Failure = -1; /* BCSM_Failure */ static int hf_camel_assistingSSPIPRoutingAddress = -1; /* AssistingSSPIPRoutingAddress */ static int hf_camel_eventSpecificInformationBCSM = -1; /* EventSpecificInformationBCSM */ static int hf_camel_legID4 = -1; /* ReceivingSideID */ @@ -401,6 +490,7 @@ static int hf_camel_timerID = -1; /* TimerID */ static int hf_camel_timervalue = -1; /* TimerValue */ static int hf_camel_sCIBillingChargingCharacteristics = -1; /* SCIBillingChargingCharacteristics */ static int hf_camel_partyToCharge2 = -1; /* SendingSideID */ +static int hf_camel_legToBeSplit = -1; /* LegID */ static int hf_camel_destinationReference = -1; /* Integer4 */ static int hf_camel_originationReference = -1; /* Integer4 */ static int hf_camel_eventSpecificInformationSMS = -1; /* EventSpecificInformationSMS */ @@ -425,17 +515,13 @@ static int hf_camel_gapIndicators = -1; /* GapIndicators */ static int hf_camel_controlType = -1; /* ControlType */ static int hf_camel_gapTreatment = -1; /* GapTreatment */ static int hf_camel_calledPartyNumber = -1; /* CalledPartyNumber */ -static int hf_camel_callingPartyNumber = -1; /* CallingPartyNumber */ static int hf_camel_cGEncountered = -1; /* CGEncountered */ +static int hf_camel_locationNumber = -1; /* LocationNumber */ static int hf_camel_highLayerCompatibility = -1; /* HighLayerCompatibility */ static int hf_camel_additionalCallingPartyNumber = -1; /* AdditionalCallingPartyNumber */ static int hf_camel_bearerCapability = -1; /* BearerCapability */ -static int hf_camel_cause = -1; /* Cause */ static int hf_camel_cug_Index = -1; /* CUG_Index */ static int hf_camel_subscriberState = -1; /* SubscriberState */ -static int hf_camel_locationInformation = -1; /* LocationInformation */ -static int hf_camel_ext_basicServiceCode = -1; /* Ext_BasicServiceCode */ -static int hf_camel_callReferenceNumber = -1; /* CallReferenceNumber */ static int hf_camel_mscAddress = -1; /* ISDN_AddressString */ static int hf_camel_calledPartyBCDNumber = -1; /* CalledPartyBCDNumber */ static int hf_camel_timeAndTimezone = -1; /* TimeAndTimezone */ @@ -457,6 +543,30 @@ static int hf_camel_active = -1; /* BOOLEAN */ static int hf_camel_chargingRollOver = -1; /* ChargingRollOver */ static int hf_camel_problem = -1; /* T_problem */ static int hf_camel_operation = -1; /* InvokeID */ +/* named bits */ +static int hf_camel_SupportedCamelPhases_phase1 = -1; +static int hf_camel_SupportedCamelPhases_phase2 = -1; +static int hf_camel_SupportedCamelPhases_phase3 = -1; +static int hf_camel_SupportedCamelPhases_phase4 = -1; +static int hf_camel_OfferedCamel4Functionalities_initiateCallAttempt = -1; +static int hf_camel_OfferedCamel4Functionalities_splitLeg = -1; +static int hf_camel_OfferedCamel4Functionalities_moveLeg = -1; +static int hf_camel_OfferedCamel4Functionalities_disconnectLeg = -1; +static int hf_camel_OfferedCamel4Functionalities_entityReleased = -1; +static int hf_camel_OfferedCamel4Functionalities_dfc_WithArgument = -1; +static int hf_camel_OfferedCamel4Functionalities_playTone = -1; +static int hf_camel_OfferedCamel4Functionalities_dtmf_MidCall = -1; +static int hf_camel_OfferedCamel4Functionalities_chargingIndicator = -1; +static int hf_camel_OfferedCamel4Functionalities_alertingDP = -1; +static int hf_camel_OfferedCamel4Functionalities_locationAtAlerting = -1; +static int hf_camel_OfferedCamel4Functionalities_changeOfPositionDP = -1; +static int hf_camel_OfferedCamel4Functionalities_or_Interactions = -1; +static int hf_camel_OfferedCamel4Functionalities_warningToneEnhancements = -1; +static int hf_camel_OfferedCamel4Functionalities_cf_Enhancements = -1; +static int hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1; +static int hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1; +static int hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1; +static int hf_camel_OfferedCamel4Functionalities_serviceChangeDP = -1; /*--- End of included file: packet-camel-hf.c ---*/ @@ -490,28 +600,39 @@ static gint ett_camel_PBLocationNumber = -1; static gint ett_camel_PBCalledPartyBCDNumber = -1; static gint ett_camel_AChBillingChargingCharacteristics = -1; static gint ett_camel_T_actimeDurationCharging = -1; +static gint ett_camel_AChChargingAddress = -1; static gint ett_camel_AOCBeforeAnswer = -1; static gint ett_camel_AOCGprs = -1; static gint ett_camel_AOCSubsequent = -1; +static gint ett_camel_AudibleIndicator = -1; static gint ett_camel_BackwardServiceInteractionInd = -1; static gint ett_camel_BasicGapCriteria = -1; static gint ett_camel_T_calledAddressAndService = -1; static gint ett_camel_T_callingAddressAndService = -1; static gint ett_camel_BCSMEvent = -1; +static gint ett_camel_BCSM_Failure = -1; static gint ett_camel_BearerCapability = -1; +static gint ett_camel_Burst = -1; +static gint ett_camel_BurstList = -1; static gint ett_camel_CAI_Gsm0224 = -1; -static gint ett_camel_CamelAChBillingChargingCharacteristics = -1; +static gint ett_camel_CallSegmentFailure = -1; +static gint ett_camel_CallSegmentToCancel = -1; +static gint ett_camel_CAMEL_AChBillingChargingCharacteristics = -1; static gint ett_camel_T_timeDurationCharging = -1; -static gint ett_camel_CamelCallResult = -1; +static gint ett_camel_CAMEL_CallResult = -1; static gint ett_camel_T_timeDurationChargingResult = -1; -static gint ett_camel_CamelFCIBillingChargingCharacteristics = -1; +static gint ett_camel_CAMEL_FCIBillingChargingCharacteristics = -1; static gint ett_camel_T_fCIBCCCAMELsequence1 = -1; -static gint ett_camel_CamelFCIGPRSBillingChargingCharacteristics = -1; +static gint ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics = -1; static gint ett_camel_T_fCIBCCCAMELsequence2 = -1; -static gint ett_camel_CamelFCISMSBillingChargingCharacteristics = -1; +static gint ett_camel_CAMEL_FCISMSBillingChargingCharacteristics = -1; static gint ett_camel_T_fCIBCCCAMELsequence3 = -1; -static gint ett_camel_CamelSCIBillingChargingCharacteristics = -1; +static gint ett_camel_CAMEL_SCIBillingChargingCharacteristics = -1; +static gint ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt = -1; static gint ett_camel_CamelSCIGPRSBillingChargingCharacteristics = -1; +static gint ett_camel_ChangeOfPositionControlInfo = -1; +static gint ett_camel_ChangeOfLocation = -1; +static gint ett_camel_ChangeOfLocationAlt = -1; static gint ett_camel_ChargingCharacteristics = -1; static gint ett_camel_ChargingResult = -1; static gint ett_camel_ChargingRollOver = -1; @@ -520,6 +641,10 @@ static gint ett_camel_CollectedInfo = -1; static gint ett_camel_CompoundCriteria = -1; static gint ett_camel_DestinationRoutingAddress = -1; static gint ett_camel_DpSpecificCriteria = -1; +static gint ett_camel_DpSpecificCriteriaAlt = -1; +static gint ett_camel_DpSpecificInfoAlt = -1; +static gint ett_camel_T_oServiceChangeSpecificInfo = -1; +static gint ett_camel_T_tServiceChangeSpecificInfo = -1; static gint ett_camel_ElapsedTime = -1; static gint ett_camel_T_timeGPRSIfTariffSwitch = -1; static gint ett_camel_ElapsedTimeRollOver = -1; @@ -530,14 +655,25 @@ static gint ett_camel_T_routeSelectFailureSpecificInfo = -1; static gint ett_camel_T_oCalledPartyBusySpecificInfo = -1; static gint ett_camel_T_oNoAnswerSpecificInfo = -1; static gint ett_camel_T_oAnswerSpecificInfo = -1; +static gint ett_camel_T_oMidCallSpecificInfo = -1; +static gint ett_camel_T_midCallEvents = -1; static gint ett_camel_T_oDisconnectSpecificInfo = -1; static gint ett_camel_T_tBusySpecificInfo = -1; static gint ett_camel_T_tNoAnswerSpecificInfo = -1; static gint ett_camel_T_tAnswerSpecificInfo = -1; +static gint ett_camel_T_tMidCallSpecificInfo = -1; +static gint ett_camel_T_midCallEvents1 = -1; static gint ett_camel_T_tDisconnectSpecificInfo = -1; +static gint ett_camel_T_oTermSeizedSpecificInfo = -1; +static gint ett_camel_T_callAcceptedSpecificInfo = -1; +static gint ett_camel_T_oAbandonSpecificInfo = -1; +static gint ett_camel_T_oChangeOfPositionSpecificInfo = -1; +static gint ett_camel_T_tChangeOfPositionSpecificInfo = -1; static gint ett_camel_EventSpecificInformationSMS = -1; static gint ett_camel_T_o_smsFailureSpecificInfo = -1; static gint ett_camel_T_o_smsSubmittedSpecificInfo = -1; +static gint ett_camel_T_t_smsFailureSpecificInfo = -1; +static gint ett_camel_T_t_smsDeliverySpecificInfo = -1; static gint ett_camel_Extensions = -1; static gint ett_camel_ForwardServiceInteractionInd = -1; static gint ett_camel_GapCriteria = -1; @@ -546,6 +682,7 @@ static gint ett_camel_GapOnService = -1; static gint ett_camel_GapTreatment = -1; static gint ett_camel_GenericNumbers = -1; static gint ett_camel_GPRS_QoS = -1; +static gint ett_camel_GPRS_QoS_Extension = -1; static gint ett_camel_GPRSEvent = -1; static gint ett_camel_GPRSEventSpecificInformation = -1; static gint ett_camel_T_attachChangeOfPositionSpecificInformation = -1; @@ -557,11 +694,16 @@ static gint ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformatio static gint ett_camel_GPRSMSClass = -1; static gint ett_camel_InbandInfo = -1; static gint ett_camel_InformationToSend = -1; +static gint ett_camel_LegOrCallSegment = -1; static gint ett_camel_LocationInformationGPRS = -1; static gint ett_camel_MessageID = -1; static gint ett_camel_T_text = -1; static gint ett_camel_SEQUENCE_SIZE_1_16_OF_Integer4 = -1; static gint ett_camel_T_variableMessage = -1; +static gint ett_camel_MetDPCriteriaList = -1; +static gint ett_camel_MetDPCriterion = -1; +static gint ett_camel_MetDPCriterionAlt = -1; +static gint ett_camel_MidCallControlInfo = -1; static gint ett_camel_QualityOfService = -1; static gint ett_camel_ReceivingSideID = -1; static gint ett_camel_RequestedInformationList = -1; @@ -571,8 +713,8 @@ static gint ett_camel_RequestedInformationValue = -1; static gint ett_camel_SendingSideID = -1; static gint ett_camel_ServiceInteractionIndicatorsTwo = -1; static gint ett_camel_SMSEvent = -1; -static gint ett_camel_TimeInformation = -1; static gint ett_camel_TimeIfTariffSwitch = -1; +static gint ett_camel_TimeInformation = -1; static gint ett_camel_Tone = -1; static gint ett_camel_TransferredVolume = -1; static gint ett_camel_T_volumeIfTariffSwitch = -1; @@ -597,11 +739,15 @@ static gint ett_camel_SendChargingInformationGPRSArg = -1; static gint ett_camel_SubscriberState = -1; static gint ett_camel_PrivateExtensionList = -1; static gint ett_camel_CellIdOrLAI = -1; -static gint ett_camel_Ext_BasicServiceCode = -1; static gint ett_camel_LegID = -1; static gint ett_camel_VariablePartsArray = -1; static gint ett_camel_InitialDPArgExtension = -1; -static gint ett_camel_LocationInformation = -1; +static gint ett_camel_InitiateCallAttemptArg = -1; +static gint ett_camel_InitiateCallAttemptRes = -1; +static gint ett_camel_MoveLegArg = -1; +static gint ett_camel_PlayToneArg = -1; +static gint ett_camel_SupportedCamelPhases = -1; +static gint ett_camel_OfferedCamel4Functionalities = -1; static gint ett_camel_EventReportGPRSArg = -1; static gint ett_camel_ExtensionField = -1; static gint ett_camel_ApplyChargingArg = -1; @@ -612,10 +758,15 @@ static gint ett_camel_ConnectArg = -1; static gint ett_camel_ConnectToResourceArg = -1; static gint ett_camel_T_resourceAddress = -1; static gint ett_camel_ContinueWithArgumentArg = -1; +static gint ett_camel_ContinueWithArgumentArgExtension = -1; +static gint ett_camel_DisconnectLegArg = -1; +static gint ett_camel_EntityReleasedArg = -1; +static gint ett_camel_DisconnectForwardConnectionWithArgumentArg = -1; static gint ett_camel_EstablishTemporaryConnectionArg = -1; static gint ett_camel_EventReportBCSMArg = -1; static gint ett_camel_ResetTimerArg = -1; static gint ett_camel_SendChargingInformationArg = -1; +static gint ett_camel_SplitLegArg = -1; static gint ett_camel_CAPGPRSReferenceNumber = -1; static gint ett_camel_EventReportSMSArg = -1; static gint ett_camel_RequestReportSMSEventArg = -1; @@ -720,6 +871,66 @@ static const value_string camel_number_plan_values[] = { /*--- Fields for imported types ---*/ +static int dissect_cellGlobalId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_cellGlobalId); +} +static int dissect_serviceAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_serviceAreaId); +} +static int dissect_ext_basicServiceCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode); +} +static int dissect_ext_basicServiceCode2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode2); +} +static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformation); +} +static int dissect_short_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_short_QoS_format); +} +static int dissect_long_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_long_QoS_format); +} +static int dissect_supplement_to_long_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_supplement_to_long_QoS_format); +} +static int dissect_chargingID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_GPRSChargingID(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingID); +} +static int dissect_routeingAreaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_RAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_routeingAreaIdentity); +} +static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_GeographicalInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_geographicalInformation); +} +static int dissect_selectedLSAIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_selectedLSAIdentity); +} +static int dissect_enteringCellGlobalId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringCellGlobalId); +} +static int dissect_leavingCellGlobalId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingCellGlobalId); +} +static int dissect_enteringServiceAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringServiceAreaId); +} +static int dissect_leavingServiceAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingServiceAreaId); +} +static int dissect_ms_Classmark2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_MS_Classmark2(TRUE, tvb, offset, pinfo, tree, hf_camel_ms_Classmark2); +} +static int dissect_iMEI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_IMEI(TRUE, tvb, offset, pinfo, tree, hf_camel_iMEI); +} +static int dissect_uu_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_UU_Data(TRUE, tvb, offset, pinfo, tree, hf_camel_uu_Data); +} +static int dissect_locationInformationMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformationMSC); +} @@ -1371,8 +1582,11 @@ static int dissect_releaseIfdurationExceeded_impl(packet_info *pinfo, proto_tree static int dissect_actone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_actone); } -static int dissect_callActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_callActive); +static int dissect_tone(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_camel_tone); +} +static int dissect_legActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_legActive); } static int dissect_interruptableAnnInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_interruptableAnnInd); @@ -1482,8 +1696,20 @@ dissect_camel_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_ return offset; } -static int dissect_callReleasedAtTcpExpiry_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_callReleasedAtTcpExpiry); +static int dissect_automaticRearm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_automaticRearm); +} +static int dissect_callLegReleasedAtTcpExpiry_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_callLegReleasedAtTcpExpiry); +} +static int dissect_inter_SystemHandOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOver); +} +static int dissect_inter_PLMNHandOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_PLMNHandOver); +} +static int dissect_inter_MSCHandOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_MSCHandOver); } static int dissect_or_Call_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_or_Call); @@ -1506,6 +1732,12 @@ static int dissect_secondaryPDPContext_impl(packet_info *pinfo, proto_tree *tree static int dissect_saiPresent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_saiPresent); } +static int dissect_inter_SystemHandOverToUMTS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOverToUMTS); +} +static int dissect_inter_SystemHandOverToGSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOverToGSM); +} static int dissect_nonCUGCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_nonCUGCall); } @@ -1524,15 +1756,33 @@ static int dissect_camelBusy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_notProvidedFromVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_notProvidedFromVLR); } -static int dissect_currentLocationRetrieved_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_currentLocationRetrieved); +static int dissect_enhancedDialledServicesAllowed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_enhancedDialledServicesAllowed); +} +static int dissect_suppress_T_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_T_CSI); } static int dissect_cug_OutgoingAccess_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_OutgoingAccess); } +static int dissect_bor_InterrogationRequested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_bor_InterrogationRequested); +} static int dissect_none_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_none); } +static int dissect_suppress_O_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_O_CSI); +} +static int dissect_suppress_D_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_D_CSI); +} +static int dissect_suppress_N_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_N_CSI); +} +static int dissect_suppressOutgoingCallBarring_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppressOutgoingCallBarring); +} static int dissect_gsm_ForwardingPending_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_gsm_ForwardingPending); } @@ -1645,6 +1895,106 @@ static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo, pr static int +dissect_camel_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_receivingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_receivingSideID); +} +static int dissect_sendingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_sendingSideID); +} + + +static const value_string camel_LegID_vals[] = { + { 0, "sendingSideID" }, + { 1, "receivingSideID" }, + { 0, NULL } +}; + +static const ber_choice_t LegID_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_sendingSideID_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_receivingSideID_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_LegID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + LegID_choice, hf_index, ett_camel_LegID, + NULL); + + return offset; +} +static int dissect_legID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID); +} +static int dissect_legID6_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID6); +} +static int dissect_legToBeCreated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeCreated); +} +static int dissect_legIDToMove_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legIDToMove); +} +static int dissect_legToBeReleased_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeReleased); +} +static int dissect_legToBeSplit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeSplit); +} + + + +static int +dissect_camel_CallSegmentID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_srfConnection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_srfConnection); +} +static int dissect_callSegmentID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentID); +} +static int dissect_newCallSegment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_newCallSegment); +} + + +static const value_string camel_AChChargingAddress_vals[] = { + { 2, "legID" }, + { 50, "srfConnection" }, + { 0, NULL } +}; + +static const ber_choice_t AChChargingAddress_choice[] = { + { 2, BER_CLASS_CON, 2, 0, dissect_legID_impl }, + { 50, BER_CLASS_CON, 50, 0, dissect_srfConnection_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_AChChargingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + AChChargingAddress_choice, hf_index, ett_camel_AChChargingAddress, + NULL); + + return offset; +} +static int dissect_aChChargingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_AChChargingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_aChChargingAddress); +} + + + +static int dissect_camel_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -1657,6 +2007,12 @@ static int dissect_calledAddressValue_impl(packet_info *pinfo, proto_tree *tree, static int dissect_callingAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_callingAddressValue); } +static int dissect_dTMFDigitsCompleted_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_dTMFDigitsCompleted); +} +static int dissect_dTMFDigitsTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_dTMFDigitsTimeOut); +} static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_number); } @@ -1848,6 +2204,118 @@ static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo, proto_t } + +static int +dissect_camel_INTEGER_1_1200(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_burstInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_1200(TRUE, tvb, offset, pinfo, tree, hf_camel_burstInterval); +} +static int dissect_warningPeriod_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_1200(TRUE, tvb, offset, pinfo, tree, hf_camel_warningPeriod); +} + + + +static int +dissect_camel_INTEGER_1_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_numberOfBursts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_3(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfBursts); +} +static int dissect_numberOfTonesInBurst_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_3(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfTonesInBurst); +} + + + +static int +dissect_camel_INTEGER_1_20(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_toneDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_20(TRUE, tvb, offset, pinfo, tree, hf_camel_toneDuration); +} +static int dissect_toneInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_20(TRUE, tvb, offset, pinfo, tree, hf_camel_toneInterval); +} + + +static const ber_sequence_t Burst_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfBursts_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_burstInterval_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfTonesInBurst_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_toneDuration_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_toneInterval_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_Burst(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + Burst_sequence, hf_index, ett_camel_Burst); + + return offset; +} +static int dissect_bursts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Burst(TRUE, tvb, offset, pinfo, tree, hf_camel_bursts); +} + + +static const ber_sequence_t BurstList_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_warningPeriod_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bursts_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_BurstList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + BurstList_sequence, hf_index, ett_camel_BurstList); + + return offset; +} +static int dissect_burstList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_BurstList(TRUE, tvb, offset, pinfo, tree, hf_camel_burstList); +} + + +static const value_string camel_AudibleIndicator_vals[] = { + { 0, "tone" }, + { 1, "burstList" }, + { 0, NULL } +}; + +static const ber_choice_t AudibleIndicator_choice[] = { + { 0, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_tone }, + { 1, BER_CLASS_CON, 1, 0, dissect_burstList_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_AudibleIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + AudibleIndicator_choice, hf_index, ett_camel_AudibleIndicator, + NULL); + + return offset; +} +static int dissect_audibleIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_AudibleIndicator(TRUE, tvb, offset, pinfo, tree, hf_camel_audibleIndicator); +} + + static const ber_sequence_t BackwardServiceInteractionInd_sequence[] = { { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_conferenceTreatmentIndicator_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callCompletionTreatmentIndicator_impl }, @@ -1966,19 +2434,28 @@ static int dissect_basicGapCriteria_impl(packet_info *pinfo, proto_tree *tree, t static const value_string camel_EventTypeBCSM_vals[] = { { 2, "collectedInfo" }, + { 2, "collectedInfo" }, { 3, "analyzedInformation" }, { 4, "routeSelectFailure" }, { 5, "oCalledPartyBusy" }, { 6, "oNoAnswer" }, { 7, "oAnswer" }, + { 8, "oMidCall" }, { 9, "oDisconnect" }, { 10, "oAbandon" }, { 12, "termAttemptAuthorized" }, { 13, "tBusy" }, { 14, "tNoAnswer" }, { 15, "tAnswer" }, + { 16, "tMidCall" }, { 17, "tDisconnect" }, { 18, "tAbandon" }, + { 19, "oTermSeized" }, + { 27, "callAccepted" }, + { 50, "oChangeOfPosition" }, + { 51, "tChangeOfPosition" }, + { 52, "oServiceChange" }, + { 53, "tServiceChange" }, { 0, NULL } }; @@ -2017,52 +2494,206 @@ static int dissect_monitorMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff static int -dissect_camel_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_INTEGER_1_30(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_minimumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNbOfDigits); +} +static int dissect_maximumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNbOfDigits); +} +static int dissect_minimumNumberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNumberOfDigits); +} +static int dissect_maximumNumberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNumberOfDigits); +} + + + +static int +dissect_camel_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_receivingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_receivingSideID); +static int dissect_endOfReplyDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_endOfReplyDigit); } -static int dissect_sendingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_sendingSideID); +static int dissect_cancelDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_cancelDigit); +} +static int dissect_startDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_startDigit); } -static const value_string camel_LegID_vals[] = { - { 0, "sendingSideID" }, - { 1, "receivingSideID" }, + +static int +dissect_camel_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_firstDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_firstDigitTimeOut); +} +static int dissect_interDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeOut); +} +static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfRepetitions); +} +static int dissect_interDigitTimeout_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeout); +} + + +static const ber_sequence_t MidCallControlInfo_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNumberOfDigits_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfDigits_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cancelDigit_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startDigit_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeout_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_MidCallControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + MidCallControlInfo_sequence, hf_index, ett_camel_MidCallControlInfo); + + return offset; +} +static int dissect_midCallControlInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_MidCallControlInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallControlInfo); +} + + + +static int +dissect_camel_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_locationAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_locationAreaId); +} +static int dissect_enteringLocationAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringLocationAreaId); +} +static int dissect_leavingLocationAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingLocationAreaId); +} +static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_laiFixedLength); +} + + +static const ber_sequence_t ChangeOfLocationAlt_sequence[] = { + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_ChangeOfLocationAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ChangeOfLocationAlt_sequence, hf_index, ett_camel_ChangeOfLocationAlt); + + return offset; +} +static int dissect_changeOfLocationAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ChangeOfLocationAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_changeOfLocationAlt); +} + + +static const value_string camel_ChangeOfLocation_vals[] = { + { 0, "cellGlobalId" }, + { 1, "serviceAreaId" }, + { 2, "locationAreaId" }, + { 3, "inter-SystemHandOver" }, + { 4, "inter-PLMNHandOver" }, + { 5, "inter-MSCHandOver" }, + { 6, "changeOfLocationAlt" }, { 0, NULL } }; -static const ber_choice_t LegID_choice[] = { - { 0, BER_CLASS_CON, 0, 0, dissect_sendingSideID_impl }, - { 1, BER_CLASS_CON, 1, 0, dissect_receivingSideID_impl }, +static const ber_choice_t ChangeOfLocation_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_cellGlobalId_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_serviceAreaId_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_locationAreaId_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_inter_SystemHandOver_impl }, + { 4, BER_CLASS_CON, 4, 0, dissect_inter_PLMNHandOver_impl }, + { 5, BER_CLASS_CON, 5, 0, dissect_inter_MSCHandOver_impl }, + { 6, BER_CLASS_CON, 6, 0, dissect_changeOfLocationAlt_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_camel_LegID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_ChangeOfLocation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - LegID_choice, hf_index, ett_camel_LegID, + ChangeOfLocation_choice, hf_index, ett_camel_ChangeOfLocation, NULL); return offset; } -static int dissect_legID6_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID6); +static int dissect_ChangeOfPositionControlInfo_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ChangeOfLocation(FALSE, tvb, offset, pinfo, tree, hf_camel_ChangeOfPositionControlInfo_item); +} + + +static const ber_sequence_t ChangeOfPositionControlInfo_sequence_of[1] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ChangeOfPositionControlInfo_item }, +}; + +static int +dissect_camel_ChangeOfPositionControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + ChangeOfPositionControlInfo_sequence_of, hf_index, ett_camel_ChangeOfPositionControlInfo); + + return offset; +} +static int dissect_changeOfPositionControlInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ChangeOfPositionControlInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_changeOfPositionControlInfo); +} + + +static const ber_sequence_t DpSpecificCriteriaAlt_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_changeOfPositionControlInfo_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_DpSpecificCriteriaAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DpSpecificCriteriaAlt_sequence, hf_index, ett_camel_DpSpecificCriteriaAlt); + + return offset; +} +static int dissect_dpSpecificCriteriaAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_DpSpecificCriteriaAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificCriteriaAlt); } static const value_string camel_DpSpecificCriteria_vals[] = { { 1, "applicationTimer" }, + { 2, "midCallControlInfo" }, + { 3, "dpSpecificCriteriaAlt" }, { 0, NULL } }; static const ber_choice_t DpSpecificCriteria_choice[] = { { 1, BER_CLASS_CON, 1, 0, dissect_applicationTimer_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_midCallControlInfo_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_dpSpecificCriteriaAlt_impl }, { 0, 0, 0, 0, NULL } }; @@ -2084,6 +2715,7 @@ static const ber_sequence_t BCSMEvent_sequence[] = { { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID6_impl }, { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_dpSpecificCriteria_impl }, + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_automaticRearm_impl }, { 0, 0, 0, NULL } }; @@ -2101,14 +2733,67 @@ static int dissect_BCSMEventArray_item(packet_info *pinfo, proto_tree *tree, tvb static int -dissect_camel_OCTET_STRING_SIZE_2_cAPSpecificBoundSetmaxBearerCapabilityLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } +static int dissect_cause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_cause); +} +static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_failureCause); +} +static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_busyCause); +} +static int dissect_releaseCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCause); +} +static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCauseValue); +} + + +static const ber_sequence_t BCSM_Failure_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_BCSM_Failure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + BCSM_Failure_sequence, hf_index, ett_camel_BCSM_Failure); + + return offset; +} +static int dissect_bCSM_Failure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_BCSM_Failure(TRUE, tvb, offset, pinfo, tree, hf_camel_bCSM_Failure); +} + + + +static int +dissect_camel_BearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree); + + + return offset; +} static int dissect_bearerCap_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OCTET_STRING_SIZE_2_cAPSpecificBoundSetmaxBearerCapabilityLength(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCap); + return dissect_camel_BearerCap(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCap); } @@ -2130,6 +2815,9 @@ dissect_camel_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int off return offset; } +static int dissect_bearerCapability2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCapability2); +} static int dissect_bearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCapability); } @@ -2164,11 +2852,8 @@ static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff static int dissect_gmscAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_gmscAddress); } -static int dissect_vlr_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_vlr_number); -} -static int dissect_msc_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_msc_number); +static int dissect_gsmSCFAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_gsmSCFAddress); } static int dissect_callingPartysNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartysNumber); @@ -2231,6 +2916,9 @@ static int dissect_DestinationRoutingAddress_item(packet_info *pinfo, proto_tree static int dissect_destinationAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_destinationAddress); } +static int dissect_forwardingDestinationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_forwardingDestinationNumber); +} static int dissect_calledPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_calledPartyNumber); } @@ -2278,8 +2966,8 @@ dissect_camel_ReceivingSideID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs return offset; } -static int dissect_partyToCharge3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge3); +static int dissect_partyToCharge_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge); } static int dissect_legID4_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID4); @@ -2358,12 +3046,29 @@ static int dissect_timeInformation_impl(packet_info *pinfo, proto_tree *tree, tv } +static const ber_sequence_t Extensions_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item }, +}; + +static int +dissect_camel_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + Extensions_sequence_of, hf_index, ett_camel_Extensions); + + return offset; +} +static int dissect_extensions1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Extensions(TRUE, tvb, offset, pinfo, tree, hf_camel_extensions1); +} + + static const ber_sequence_t T_timeDurationChargingResult_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge3_impl }, + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_timeInformation_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callActive_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReleasedAtTcpExpiry_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_legActive_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callLegReleasedAtTcpExpiry_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChChargingAddress_impl }, { 0, 0, 0, NULL } }; @@ -2379,20 +3084,20 @@ static int dissect_timeDurationChargingResult_impl(packet_info *pinfo, proto_tre } -static const value_string camel_CamelCallResult_vals[] = { +static const value_string camel_CAMEL_CallResult_vals[] = { { 0, "timeDurationChargingResult" }, { 0, NULL } }; -static const ber_choice_t CamelCallResult_choice[] = { +static const ber_choice_t CAMEL_CallResult_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_timeDurationChargingResult_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_camel_CamelCallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CamelCallResult_choice, hf_index, ett_camel_CamelCallResult, + CAMEL_CallResult_choice, hf_index, ett_camel_CAMEL_CallResult, NULL); return offset; @@ -2402,17 +3107,78 @@ dissect_camel_CamelCallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs static int dissect_camel_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_CamelCallResult(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_camel_CAMEL_CallResult(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} + + +static const ber_sequence_t CallSegmentFailure_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_CallSegmentFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + CallSegmentFailure_sequence, hf_index, ett_camel_CallSegmentFailure); + + return offset; +} +static int dissect_callSegmentFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CallSegmentFailure(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentFailure); +} + + + +static int +dissect_camel_TCInvokeIdSet(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_camel_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_camel_TCInvokeIdSet(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_invokeID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_invokeID); +} +static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_operation); +} + + +static const ber_sequence_t CallSegmentToCancel_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_invokeID_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_CallSegmentToCancel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + CallSegmentToCancel_sequence, hf_index, ett_camel_CallSegmentToCancel); return offset; } +static int dissect_callSegmentToCancel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CallSegmentToCancel(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentToCancel); +} static const ber_sequence_t T_timeDurationCharging_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_maxCallPeriodDuration_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseIfdurationExceeded_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actone_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_audibleIndicator_impl }, { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; @@ -2429,20 +3195,20 @@ static int dissect_timeDurationCharging_impl(packet_info *pinfo, proto_tree *tre } -static const value_string camel_CamelAChBillingChargingCharacteristics_vals[] = { +static const value_string camel_CAMEL_AChBillingChargingCharacteristics_vals[] = { { 0, "timeDurationCharging" }, { 0, NULL } }; -static const ber_choice_t CamelAChBillingChargingCharacteristics_choice[] = { +static const ber_choice_t CAMEL_AChBillingChargingCharacteristics_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_timeDurationCharging_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_camel_CamelAChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_CAMEL_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CamelAChBillingChargingCharacteristics_choice, hf_index, ett_camel_CamelAChBillingChargingCharacteristics, + CAMEL_AChBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_AChBillingChargingCharacteristics, NULL); return offset; @@ -2513,20 +3279,20 @@ static int dissect_fCIBCCCAMELsequence1_impl(packet_info *pinfo, proto_tree *tre } -static const value_string camel_CamelFCIBillingChargingCharacteristics_vals[] = { +static const value_string camel_CAMEL_FCIBillingChargingCharacteristics_vals[] = { { 0, "fCIBCCCAMELsequence1" }, { 0, NULL } }; -static const ber_choice_t CamelFCIBillingChargingCharacteristics_choice[] = { +static const ber_choice_t CAMEL_FCIBillingChargingCharacteristics_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_fCIBCCCAMELsequence1_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_camel_CamelFCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_CAMEL_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CamelFCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CamelFCIBillingChargingCharacteristics, + CAMEL_FCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_FCIBillingChargingCharacteristics, NULL); return offset; @@ -2568,15 +3334,15 @@ static int dissect_fCIBCCCAMELsequence2_impl(packet_info *pinfo, proto_tree *tre } -static const ber_sequence_t CamelFCIGPRSBillingChargingCharacteristics_sequence[] = { +static const ber_sequence_t CAMEL_FCIGPRSBillingChargingCharacteristics_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_fCIBCCCAMELsequence2_impl }, { 0, 0, 0, NULL } }; static int -dissect_camel_CamelFCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CamelFCIGPRSBillingChargingCharacteristics_sequence, hf_index, ett_camel_CamelFCIGPRSBillingChargingCharacteristics); + CAMEL_FCIGPRSBillingChargingCharacteristics_sequence, hf_index, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics); return offset; } @@ -2600,42 +3366,60 @@ static int dissect_fCIBCCCAMELsequence3_impl(packet_info *pinfo, proto_tree *tre } -static const value_string camel_CamelFCISMSBillingChargingCharacteristics_vals[] = { +static const value_string camel_CAMEL_FCISMSBillingChargingCharacteristics_vals[] = { { 0, "fCIBCCCAMELsequence3" }, { 0, NULL } }; -static const ber_choice_t CamelFCISMSBillingChargingCharacteristics_choice[] = { +static const ber_choice_t CAMEL_FCISMSBillingChargingCharacteristics_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_fCIBCCCAMELsequence3_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_camel_CamelFCISMSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CamelFCISMSBillingChargingCharacteristics_choice, hf_index, ett_camel_CamelFCISMSBillingChargingCharacteristics, + CAMEL_FCISMSBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics, NULL); return offset; } -static const value_string camel_CamelSCIBillingChargingCharacteristics_vals[] = { +static const ber_sequence_t CAMEL_SCIBillingChargingCharacteristicsAlt_sequence[] = { + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + CAMEL_SCIBillingChargingCharacteristicsAlt_sequence, hf_index, ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt); + + return offset; +} +static int dissect_aOC_extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_aOC_extension); +} + + +static const value_string camel_CAMEL_SCIBillingChargingCharacteristics_vals[] = { { 0, "aOCBeforeAnswer" }, { 1, "aOCAfterAnswer" }, + { 2, "aOC-extension" }, { 0, NULL } }; -static const ber_choice_t CamelSCIBillingChargingCharacteristics_choice[] = { +static const ber_choice_t CAMEL_SCIBillingChargingCharacteristics_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_aOCBeforeAnswer_impl }, { 1, BER_CLASS_CON, 1, 0, dissect_aOCAfterAnswer_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_aOC_extension_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_camel_CamelSCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_CAMEL_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CamelSCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CamelSCIBillingChargingCharacteristics, + CAMEL_SCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_SCIBillingChargingCharacteristics, NULL); return offset; @@ -2692,6 +3476,19 @@ static int dissect_cGEncountered_impl(packet_info *pinfo, proto_tree *tree, tvbu static int +dissect_camel_ChargeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_chargeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ChargeIndicator(TRUE, tvb, offset, pinfo, tree, hf_camel_chargeIndicator); +} + + + +static int dissect_camel_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -3044,60 +3841,6 @@ static int dissect_chargingRollOver_impl(packet_info *pinfo, proto_tree *tree, t } - -static int -dissect_camel_INTEGER_1_30(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_minimumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNbOfDigits); -} -static int dissect_maximumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNbOfDigits); -} - - - -static int -dissect_camel_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_endOfReplyDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_endOfReplyDigit); -} -static int dissect_cancelDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_cancelDigit); -} -static int dissect_startDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_startDigit); -} - - - -static int -dissect_camel_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_firstDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_firstDigitTimeOut); -} -static int dissect_interDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeOut); -} -static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfRepetitions); -} - - static const value_string camel_ErrorTreatment_vals[] = { { 0, "stdErrorAndInfo" }, { 1, "help" }, @@ -3372,57 +4115,84 @@ static int dissect_destinationRoutingAddress_impl(packet_info *pinfo, proto_tree } +static const ber_sequence_t T_oServiceChangeSpecificInfo_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl }, + { 0, 0, 0, NULL } +}; static int -dissect_camel_OCTET_STRING_SIZE_1_63(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_camel_T_oServiceChangeSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_oServiceChangeSpecificInfo_sequence, hf_index, ett_camel_T_oServiceChangeSpecificInfo); return offset; } -static int dissect_pDPAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OCTET_STRING_SIZE_1_63(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPAddress); +static int dissect_oServiceChangeSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_oServiceChangeSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oServiceChangeSpecificInfo); } -static const ber_sequence_t EndUserAddress_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pDPTypeOrganization_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_pDPTypeNumber_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPAddress_impl }, +static const ber_sequence_t T_tServiceChangeSpecificInfo_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl }, { 0, 0, 0, NULL } }; static int -dissect_camel_EndUserAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_T_tServiceChangeSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - EndUserAddress_sequence, hf_index, ett_camel_EndUserAddress); + T_tServiceChangeSpecificInfo_sequence, hf_index, ett_camel_T_tServiceChangeSpecificInfo); return offset; } +static int dissect_tServiceChangeSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_tServiceChangeSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tServiceChangeSpecificInfo); +} +static const ber_sequence_t DpSpecificInfoAlt_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_oServiceChangeSpecificInfo_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tServiceChangeSpecificInfo_impl }, + { 0, 0, 0, NULL } +}; static int -dissect_camel_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_camel_DpSpecificInfoAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DpSpecificInfoAlt_sequence, hf_index, ett_camel_DpSpecificInfoAlt); return offset; } -static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_failureCause); -} -static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_busyCause); +static int dissect_dpSpecificInfoAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_DpSpecificInfoAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificInfoAlt); } -static int dissect_releaseCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCause); + + + +static int +dissect_camel_OCTET_STRING_SIZE_1_63(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCauseValue); +static int dissect_pDPAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OCTET_STRING_SIZE_1_63(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPAddress); } -static int dissect_cause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_cause); + + +static const ber_sequence_t EndUserAddress_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pDPTypeOrganization_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_pDPTypeNumber_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPAddress_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_EndUserAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + EndUserAddress_sequence, hf_index, ett_camel_EndUserAddress); + + return offset; } @@ -3461,7 +4231,6 @@ static int dissect_oCalledPartyBusySpecificInfo_impl(packet_info *pinfo, proto_t static const ber_sequence_t T_oNoAnswerSpecificInfo_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_foo }, { 0, 0, 0, NULL } }; @@ -3481,6 +4250,9 @@ static const ber_sequence_t T_oAnswerSpecificInfo_sequence[] = { { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationAddress_impl }, { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Call_impl }, { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedCall_impl }, + { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeIndicator_impl }, + { BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl }, + { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode2_impl }, { 0, 0, 0, NULL } }; @@ -3496,6 +4268,48 @@ static int dissect_oAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree } +static const value_string camel_T_midCallEvents_vals[] = { + { 3, "dTMFDigitsCompleted" }, + { 4, "dTMFDigitsTimeOut" }, + { 0, NULL } +}; + +static const ber_choice_t T_midCallEvents_choice[] = { + { 3, BER_CLASS_CON, 3, 0, dissect_dTMFDigitsCompleted_impl }, + { 4, BER_CLASS_CON, 4, 0, dissect_dTMFDigitsTimeOut_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_midCallEvents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + T_midCallEvents_choice, hf_index, ett_camel_T_midCallEvents, + NULL); + + return offset; +} +static int dissect_midCallEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_midCallEvents(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallEvents); +} + + +static const ber_sequence_t T_oMidCallSpecificInfo_sequence[] = { + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_midCallEvents_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_oMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_oMidCallSpecificInfo_sequence, hf_index, ett_camel_T_oMidCallSpecificInfo); + + return offset; +} +static int dissect_oMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_oMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oMidCallSpecificInfo); +} + + static const ber_sequence_t T_oDisconnectSpecificInfo_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, { 0, 0, 0, NULL } @@ -3517,6 +4331,7 @@ static const ber_sequence_t T_tBusySpecificInfo_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl }, { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwarded_impl }, { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeNotPermitted_impl }, + { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingDestinationNumber_impl }, { 0, 0, 0, NULL } }; @@ -3534,6 +4349,7 @@ static int dissect_tBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, static const ber_sequence_t T_tNoAnswerSpecificInfo_sequence[] = { { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwarded_impl }, + { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingDestinationNumber_impl }, { 0, 0, 0, NULL } }; @@ -3553,6 +4369,9 @@ static const ber_sequence_t T_tAnswerSpecificInfo_sequence[] = { { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationAddress_impl }, { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Call_impl }, { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedCall_impl }, + { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeIndicator_impl }, + { BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl }, + { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode2_impl }, { 0, 0, 0, NULL } }; @@ -3568,6 +4387,48 @@ static int dissect_tAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree } +static const value_string camel_T_midCallEvents1_vals[] = { + { 3, "dTMFDigitsCompleted" }, + { 4, "dTMFDigitsTimeOut" }, + { 0, NULL } +}; + +static const ber_choice_t T_midCallEvents1_choice[] = { + { 3, BER_CLASS_CON, 3, 0, dissect_dTMFDigitsCompleted_impl }, + { 4, BER_CLASS_CON, 4, 0, dissect_dTMFDigitsTimeOut_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_midCallEvents1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + T_midCallEvents1_choice, hf_index, ett_camel_T_midCallEvents1, + NULL); + + return offset; +} +static int dissect_midCallEvents1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_midCallEvents1(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallEvents1); +} + + +static const ber_sequence_t T_tMidCallSpecificInfo_sequence[] = { + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_midCallEvents1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_tMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_tMidCallSpecificInfo_sequence, hf_index, ett_camel_T_tMidCallSpecificInfo); + + return offset; +} +static int dissect_tMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_tMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tMidCallSpecificInfo); +} + + static const ber_sequence_t T_tDisconnectSpecificInfo_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, { 0, 0, 0, NULL } @@ -3585,16 +4446,186 @@ static int dissect_tDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree * } +static const ber_sequence_t T_oTermSeizedSpecificInfo_sequence[] = { + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_oTermSeizedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_oTermSeizedSpecificInfo_sequence, hf_index, ett_camel_T_oTermSeizedSpecificInfo); + + return offset; +} +static int dissect_oTermSeizedSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_oTermSeizedSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oTermSeizedSpecificInfo); +} + + +static const ber_sequence_t T_callAcceptedSpecificInfo_sequence[] = { + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_callAcceptedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_callAcceptedSpecificInfo_sequence, hf_index, ett_camel_T_callAcceptedSpecificInfo); + + return offset; +} +static int dissect_callAcceptedSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_callAcceptedSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_callAcceptedSpecificInfo); +} + + +static const ber_sequence_t T_oAbandonSpecificInfo_sequence[] = { + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeNotPermitted_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_oAbandonSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_oAbandonSpecificInfo_sequence, hf_index, ett_camel_T_oAbandonSpecificInfo); + + return offset; +} +static int dissect_oAbandonSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_oAbandonSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oAbandonSpecificInfo); +} + + +static const ber_sequence_t MetDPCriterionAlt_sequence[] = { + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_MetDPCriterionAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + MetDPCriterionAlt_sequence, hf_index, ett_camel_MetDPCriterionAlt); + + return offset; +} +static int dissect_metDPCriterionAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_MetDPCriterionAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_metDPCriterionAlt); +} + + +static const value_string camel_MetDPCriterion_vals[] = { + { 0, "enteringCellGlobalId" }, + { 1, "leavingCellGlobalId" }, + { 2, "enteringServiceAreaId" }, + { 3, "leavingServiceAreaId" }, + { 4, "enteringLocationAreaId" }, + { 5, "leavingLocationAreaId" }, + { 6, "inter-SystemHandOverToUMTS" }, + { 7, "inter-SystemHandOverToGSM" }, + { 8, "inter-PLMNHandOver" }, + { 9, "inter-MSCHandOver" }, + { 10, "metDPCriterionAlt" }, + { 0, NULL } +}; + +static const ber_choice_t MetDPCriterion_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_enteringCellGlobalId_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_leavingCellGlobalId_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_enteringServiceAreaId_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_leavingServiceAreaId_impl }, + { 4, BER_CLASS_CON, 4, 0, dissect_enteringLocationAreaId_impl }, + { 5, BER_CLASS_CON, 5, 0, dissect_leavingLocationAreaId_impl }, + { 6, BER_CLASS_CON, 6, 0, dissect_inter_SystemHandOverToUMTS_impl }, + { 7, BER_CLASS_CON, 7, 0, dissect_inter_SystemHandOverToGSM_impl }, + { 8, BER_CLASS_CON, 8, 0, dissect_inter_PLMNHandOver_impl }, + { 9, BER_CLASS_CON, 9, 0, dissect_inter_MSCHandOver_impl }, + { 10, BER_CLASS_CON, 10, 0, dissect_metDPCriterionAlt_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_MetDPCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + MetDPCriterion_choice, hf_index, ett_camel_MetDPCriterion, + NULL); + + return offset; +} +static int dissect_MetDPCriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_MetDPCriterion(FALSE, tvb, offset, pinfo, tree, hf_camel_MetDPCriteriaList_item); +} + + +static const ber_sequence_t MetDPCriteriaList_sequence_of[1] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_MetDPCriteriaList_item }, +}; + +static int +dissect_camel_MetDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + MetDPCriteriaList_sequence_of, hf_index, ett_camel_MetDPCriteriaList); + + return offset; +} +static int dissect_metDPCriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_MetDPCriteriaList(TRUE, tvb, offset, pinfo, tree, hf_camel_metDPCriteriaList); +} + + +static const ber_sequence_t T_oChangeOfPositionSpecificInfo_sequence[] = { + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, + { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_metDPCriteriaList_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_oChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_oChangeOfPositionSpecificInfo_sequence, hf_index, ett_camel_T_oChangeOfPositionSpecificInfo); + + return offset; +} +static int dissect_oChangeOfPositionSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_oChangeOfPositionSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oChangeOfPositionSpecificInfo); +} + + +static const ber_sequence_t T_tChangeOfPositionSpecificInfo_sequence[] = { + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, + { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_metDPCriteriaList_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_tChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_tChangeOfPositionSpecificInfo_sequence, hf_index, ett_camel_T_tChangeOfPositionSpecificInfo); + + return offset; +} +static int dissect_tChangeOfPositionSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_tChangeOfPositionSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tChangeOfPositionSpecificInfo); +} + + static const value_string camel_EventSpecificInformationBCSM_vals[] = { { 2, "routeSelectFailureSpecificInfo" }, { 3, "oCalledPartyBusySpecificInfo" }, { 4, "oNoAnswerSpecificInfo" }, { 5, "oAnswerSpecificInfo" }, + { 6, "oMidCallSpecificInfo" }, { 7, "oDisconnectSpecificInfo" }, { 8, "tBusySpecificInfo" }, { 9, "tNoAnswerSpecificInfo" }, { 10, "tAnswerSpecificInfo" }, + { 11, "tMidCallSpecificInfo" }, { 12, "tDisconnectSpecificInfo" }, + { 13, "oTermSeizedSpecificInfo" }, + { 20, "callAcceptedSpecificInfo" }, + { 21, "oAbandonSpecificInfo" }, + { 50, "oChangeOfPositionSpecificInfo" }, + { 51, "tChangeOfPositionSpecificInfo" }, + { 52, "dpSpecificInfoAlt" }, { 0, NULL } }; @@ -3603,11 +4634,19 @@ static const ber_choice_t EventSpecificInformationBCSM_choice[] = { { 3, BER_CLASS_CON, 3, 0, dissect_oCalledPartyBusySpecificInfo_impl }, { 4, BER_CLASS_CON, 4, 0, dissect_oNoAnswerSpecificInfo_impl }, { 5, BER_CLASS_CON, 5, 0, dissect_oAnswerSpecificInfo_impl }, + { 6, BER_CLASS_CON, 6, 0, dissect_oMidCallSpecificInfo_impl }, { 7, BER_CLASS_CON, 7, 0, dissect_oDisconnectSpecificInfo_impl }, { 8, BER_CLASS_CON, 8, 0, dissect_tBusySpecificInfo_impl }, { 9, BER_CLASS_CON, 9, 0, dissect_tNoAnswerSpecificInfo_impl }, { 10, BER_CLASS_CON, 10, 0, dissect_tAnswerSpecificInfo_impl }, + { 11, BER_CLASS_CON, 11, 0, dissect_tMidCallSpecificInfo_impl }, { 12, BER_CLASS_CON, 12, 0, dissect_tDisconnectSpecificInfo_impl }, + { 13, BER_CLASS_CON, 13, 0, dissect_oTermSeizedSpecificInfo_impl }, + { 20, BER_CLASS_CON, 20, 0, dissect_callAcceptedSpecificInfo_impl }, + { 21, BER_CLASS_CON, 21, 0, dissect_oAbandonSpecificInfo_impl }, + { 50, BER_CLASS_CON, 50, 0, dissect_oChangeOfPositionSpecificInfo_impl }, + { 51, BER_CLASS_CON, 51, 0, dissect_tChangeOfPositionSpecificInfo_impl }, + { 52, BER_CLASS_CON, 52, 0, dissect_dpSpecificInfoAlt_impl }, { 0, 0, 0, 0, NULL } }; @@ -3624,9 +4663,9 @@ static int dissect_eventSpecificInformationBCSM_impl(packet_info *pinfo, proto_t } -static const value_string camel_SMSCause_vals[] = { - { 0, "systemFailureEnum" }, - { 1, "unexpectedDataValueEnum" }, +static const value_string camel_MO_SMSCause_vals[] = { + { 0, "systemFailure" }, + { 1, "unexpectedDataValue" }, { 2, "facilityNotSupported" }, { 3, "sM-DeliveryFailure" }, { 4, "releaseFromRadioInterface" }, @@ -3635,14 +4674,14 @@ static const value_string camel_SMSCause_vals[] = { static int -dissect_camel_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_MO_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_smsfailureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_SMSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_smsfailureCause); + return dissect_camel_MO_SMSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_smsfailureCause); } @@ -3680,15 +4719,65 @@ static int dissect_o_smsSubmittedSpecificInfo_impl(packet_info *pinfo, proto_tre } + +static int +dissect_camel_MT_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_failureCause1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_MT_SMSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_failureCause1); +} + + +static const ber_sequence_t T_t_smsFailureSpecificInfo_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_t_smsFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_t_smsFailureSpecificInfo_sequence, hf_index, ett_camel_T_t_smsFailureSpecificInfo); + + return offset; +} +static int dissect_t_smsFailureSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_t_smsFailureSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_t_smsFailureSpecificInfo); +} + + +static const ber_sequence_t T_t_smsDeliverySpecificInfo_sequence[] = { + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_T_t_smsDeliverySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_t_smsDeliverySpecificInfo_sequence, hf_index, ett_camel_T_t_smsDeliverySpecificInfo); + + return offset; +} +static int dissect_t_smsDeliverySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_T_t_smsDeliverySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_t_smsDeliverySpecificInfo); +} + + static const value_string camel_EventSpecificInformationSMS_vals[] = { { 0, "o-smsFailureSpecificInfo" }, { 1, "o-smsSubmittedSpecificInfo" }, + { 2, "t-smsFailureSpecificInfo" }, + { 3, "t-smsDeliverySpecificInfo" }, { 0, NULL } }; static const ber_choice_t EventSpecificInformationSMS_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_o_smsFailureSpecificInfo_impl }, { 1, BER_CLASS_CON, 1, 0, dissect_o_smsSubmittedSpecificInfo_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_t_smsFailureSpecificInfo_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_t_smsDeliverySpecificInfo_impl }, { 0, 0, 0, 0, NULL } }; @@ -3708,7 +4797,10 @@ static int dissect_eventSpecificInformationSMS_impl(packet_info *pinfo, proto_tr static const value_string camel_EventTypeSMS_vals[] = { { 1, "sms-CollectedInfo" }, { 2, "o-smsFailure" }, - { 3, "o-smsSubmitted" }, + { 3, "o-smsSubmission" }, + { 11, "sms-DeliveryRequested" }, + { 12, "t-smsFailure" }, + { 13, "t-smsDelivery" }, { 0, NULL } }; @@ -3725,23 +4817,10 @@ static int dissect_eventTypeSMS_impl(packet_info *pinfo, proto_tree *tree, tvbuf } -static const ber_sequence_t Extensions_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item }, -}; - -static int -dissect_camel_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - Extensions_sequence_of, hf_index, ett_camel_Extensions); - - return offset; -} - - static int dissect_camel_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_CamelFCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_camel_CAMEL_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } @@ -3750,7 +4829,7 @@ dissect_camel_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuf static int dissect_camel_FCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_CamelFCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } @@ -4121,8 +5200,8 @@ dissect_camel_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_ return offset; } -static int dissect_tone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Tone(TRUE, tvb, offset, pinfo, tree, hf_camel_tone); +static int dissect_tone1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_Tone(TRUE, tvb, offset, pinfo, tree, hf_camel_tone1); } @@ -4134,7 +5213,7 @@ static const value_string camel_InformationToSend_vals[] = { static const ber_choice_t InformationToSend_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_inbandInfo_impl }, - { 1, BER_CLASS_CON, 1, 0, dissect_tone_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_tone1_impl }, { 0, 0, 0, 0, NULL } }; @@ -4205,32 +5284,6 @@ static int dissect_genericNumbers_impl(packet_info *pinfo, proto_tree *tree, tvb } - -static int -dissect_camel_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_short_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_short_QoS_format); -} - - - -static int -dissect_camel_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_long_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Ext_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_long_QoS_format); -} - - static const value_string camel_GPRS_QoS_vals[] = { { 0, "short-QoS-format" }, { 1, "long-QoS-format" }, @@ -4262,32 +5315,42 @@ static int dissect_negotiated_QoS_impl(packet_info *pinfo, proto_tree *tree, tvb } +static const ber_sequence_t GPRS_QoS_Extension_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_supplement_to_long_QoS_format_impl }, + { 0, 0, 0, NULL } +}; static int -dissect_camel_GPRSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_camel_GPRS_QoS_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + GPRS_QoS_Extension_sequence, hf_index, ett_camel_GPRS_QoS_Extension); return offset; } -static int dissect_gPRSCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_GPRSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSCause); +static int dissect_requested_QoS_Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_GPRS_QoS_Extension(TRUE, tvb, offset, pinfo, tree, hf_camel_requested_QoS_Extension); } -static int dissect_gprsCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_GPRSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_gprsCause); +static int dissect_subscribed_QoS_Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_GPRS_QoS_Extension(TRUE, tvb, offset, pinfo, tree, hf_camel_subscribed_QoS_Extension); +} +static int dissect_negotiated_QoS_Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_GPRS_QoS_Extension(TRUE, tvb, offset, pinfo, tree, hf_camel_negotiated_QoS_Extension); } static int -dissect_camel_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_GPRSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_chargingID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_GPRSChargingID(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingID); +static int dissect_gPRSCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_GPRSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSCause); +} +static int dissect_gprsCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_GPRSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_gprsCause); } @@ -4348,48 +5411,6 @@ static int dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl(packet_info *pinfo, pro static int -dissect_camel_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_routeingAreaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_RAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_routeingAreaIdentity); -} - - - -static int -dissect_camel_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_GeographicalInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_geographicalInformation); -} - - - -static int -dissect_camel_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_selectedLSAIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LSAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_selectedLSAIdentity); -} -static int dissect_selectedLSA_Id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LSAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_selectedLSA_Id); -} - - - -static int dissect_camel_ExtensionSetextensionId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -4531,6 +5552,9 @@ static const ber_sequence_t QualityOfService_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_requested_QoS_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscribed_QoS_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_negotiated_QoS_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requested_QoS_Extension_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscribed_QoS_Extension_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_negotiated_QoS_Extension_impl }, { 0, 0, 0, NULL } }; @@ -4599,7 +5623,7 @@ static int dissect_pdp_ContextchangeOfPositionSpecificInformation_impl(packet_in static const value_string camel_InitiatingEntity_vals[] = { - { 0, "ms" }, + { 0, "mobileStation" }, { 1, "sgsn" }, { 2, "hlr" }, { 3, "ggsn" }, @@ -4799,51 +5823,67 @@ static int dissect_gPRSMSClass_impl(packet_info *pinfo, proto_tree *tree, tvbuff static int -dissect_camel_TCInvokeIdSet(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_camel_IPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_camel_CalledPartyNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } +static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_IPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_ipRoutingAddress); +} static int -dissect_camel_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_TCInvokeIdSet(implicit_tag, tvb, offset, pinfo, tree, hf_index); +dissect_camel_IPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_invokeID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_invokeID); -} -static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_operation); +static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_IPSSPCapabilities(TRUE, tvb, offset, pinfo, tree, hf_camel_iPSSPCapabilities); } +static const value_string camel_LegOrCallSegment_vals[] = { + { 0, "callSegmentID" }, + { 1, "legID" }, + { 0, NULL } +}; + +static const ber_choice_t LegOrCallSegment_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_callSegmentID_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_legID_impl }, + { 0, 0, 0, 0, NULL } +}; static int -dissect_camel_IPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_CalledPartyNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); +dissect_camel_LegOrCallSegment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + LegOrCallSegment_choice, hf_index, ett_camel_LegOrCallSegment, + NULL); return offset; } -static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_IPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_ipRoutingAddress); +static int dissect_legOrCallSegment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LegOrCallSegment(TRUE, tvb, offset, pinfo, tree, hf_camel_legOrCallSegment); } static int -dissect_camel_IPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_LowLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_IPSSPCapabilities(TRUE, tvb, offset, pinfo, tree, hf_camel_iPSSPCapabilities); +static int dissect_lowLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LowLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_lowLayerCompatibility); +} +static int dissect_lowLayerCompatibility2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_LowLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_lowLayerCompatibility2); } @@ -4862,34 +5902,53 @@ static int dissect_naOliInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t static int -dissect_camel_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_camel_OCSIApplicable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index); return offset; } -static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OriginalCalledPartyID(TRUE, tvb, offset, pinfo, tree, hf_camel_originalCalledPartyID); +static int dissect_oCSIApplicable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OCSIApplicable(TRUE, tvb, offset, pinfo, tree, hf_camel_oCSIApplicable); } static int -dissect_camel_OCSIApplicable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index); +dissect_camel_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL); + return offset; } -static int dissect_oCSIApplicable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_OCSIApplicable(TRUE, tvb, offset, pinfo, tree, hf_camel_oCSIApplicable); +static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OriginalCalledPartyID(TRUE, tvb, offset, pinfo, tree, hf_camel_originalCalledPartyID); } static int dissect_camel_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL); + + return offset; } @@ -5093,6 +6152,25 @@ static int dissect_sGSNCapabilities_impl(packet_info *pinfo, proto_tree *tree, t } + +static int +dissect_camel_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int +dissect_camel_SMS_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_camel_AddressString(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} + + static const ber_sequence_t SMSEvent_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeSMS_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, @@ -5111,6 +6189,16 @@ static int dissect_SMSEventArray_item(packet_info *pinfo, proto_tree *tree, tvbu } + +static int +dissect_camel_TariffSwitchInterval(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + static const value_string camel_TimerID_vals[] = { { 0, "tssf" }, { 0, NULL } @@ -5169,6 +6257,16 @@ static int dissect_tPProtocolIdentifier_impl(packet_info *pinfo, proto_tree *tre static int +dissect_camel_TPShortMessageSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} + + + +static int dissect_camel_TPShortMessageSubmissionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -5314,19 +6412,6 @@ dissect_camel_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, return offset; } -static int dissect_ageOfLocationInformation(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_AgeOfLocationInformation(FALSE, tvb, offset, pinfo, tree, hf_camel_ageOfLocationInformation); -} - - - -static int -dissect_camel_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} @@ -5344,28 +6429,12 @@ static int dissect_cellIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, static int -dissect_camel_LAIFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_laiFixedLength); -} - - - -static int dissect_camel_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_ext_Teleservice_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Ext_TeleserviceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_Teleservice); -} @@ -5376,9 +6445,6 @@ dissect_camel_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb, in return offset; } -static int dissect_ext_BearerService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Ext_BearerServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_BearerService); -} @@ -5421,8 +6487,18 @@ static int dissect_callingPartysCategory_impl(packet_info *pinfo, proto_tree *tr static int dissect_camel_RedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL); + return offset; } @@ -5439,6 +6515,9 @@ dissect_camel_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb, i return offset; } +static int dissect_highLayerCompatibility2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_HighLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_highLayerCompatibility2); +} static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_camel_HighLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_highLayerCompatibility); } @@ -5492,7 +6571,7 @@ tvbuff_t *parameter_tvb; if (!parameter_tvb) return offset; - dissect_camel_CamelCallResult(implicit_tag, parameter_tvb, 0, pinfo, tree, -1); + dissect_camel_CAMEL_CallResult(implicit_tag, parameter_tvb, 0, pinfo, tree, -1); return offset; @@ -5519,12 +6598,14 @@ dissect_camel_ApplyChargingReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, i static const value_string camel_CancelArg_vals[] = { { 0, "invokeID" }, { 1, "allRequests" }, + { 2, "callSegmentToCancel" }, { 0, NULL } }; static const ber_choice_t CancelArg_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_invokeID_impl }, { 1, BER_CLASS_CON, 1, 0, dissect_allRequests_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_callSegmentToCancel_impl }, { 0, 0, 0, 0, NULL } }; @@ -5541,7 +6622,7 @@ dissect_camel_CancelArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pa static int dissect_camel_FurnishChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_CamelFCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_camel_CAMEL_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } @@ -5637,7 +6718,7 @@ dissect_camel_EntityReleasedGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, in static int dissect_camel_FurnishChargingInformationGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_camel_CamelFCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); + offset = dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } @@ -5752,38 +6833,79 @@ dissect_camel_CellIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, return offset; } -static int dissect_cellIdOrLAI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_CellIdOrLAI(TRUE, tvb, offset, pinfo, tree, hf_camel_cellIdOrLAI); -} -static const value_string camel_Ext_BasicServiceCode_vals[] = { - { 2, "ext-BearerService" }, - { 3, "ext-Teleservice" }, - { 0, NULL } +static const asn_namedbit SupportedCamelPhases_bits[] = { + { 0, &hf_camel_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL }, + { 1, &hf_camel_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL }, + { 2, &hf_camel_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL }, + { 3, &hf_camel_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; -static const ber_choice_t Ext_BasicServiceCode_choice[] = { - { 2, BER_CLASS_CON, 2, 0, dissect_ext_BearerService_impl }, - { 3, BER_CLASS_CON, 3, 0, dissect_ext_Teleservice_impl }, - { 0, 0, 0, 0, NULL } +static int +dissect_camel_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, + SupportedCamelPhases_bits, hf_index, ett_camel_SupportedCamelPhases, + NULL); + + return offset; +} +static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_camel_supportedCamelPhases); +} + + +static const asn_namedbit OfferedCamel4Functionalities_bits[] = { + { 0, &hf_camel_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL }, + { 1, &hf_camel_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL }, + { 2, &hf_camel_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL }, + { 3, &hf_camel_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL }, + { 4, &hf_camel_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL }, + { 5, &hf_camel_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL }, + { 6, &hf_camel_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL }, + { 7, &hf_camel_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL }, + { 8, &hf_camel_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL }, + { 9, &hf_camel_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL }, + { 10, &hf_camel_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL }, + { 11, &hf_camel_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL }, + { 12, &hf_camel_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL }, + { 13, &hf_camel_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL }, + { 14, &hf_camel_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL }, + { 15, &hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL }, + { 16, &hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL }, + { 17, &hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL }, + { 18, &hf_camel_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL }, + { 0, NULL, 0, 0, NULL, NULL } }; static int -dissect_camel_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - Ext_BasicServiceCode_choice, hf_index, ett_camel_Ext_BasicServiceCode, - NULL); +dissect_camel_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, + OfferedCamel4Functionalities_bits, hf_index, ett_camel_OfferedCamel4Functionalities, + NULL); return offset; } -static int dissect_ext_basicServiceCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode); +static int dissect_offeredCamel4Functionalities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_OfferedCamel4Functionalities(TRUE, tvb, offset, pinfo, tree, hf_camel_offeredCamel4Functionalities); } static const ber_sequence_t InitialDPArgExtension_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmscAddress_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingDestinationNumber_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_Classmark2_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iMEI_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4Functionalities_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability2_impl }, + { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode2_impl }, + { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility2_impl }, + { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowLayerCompatibility_impl }, + { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowLayerCompatibility2_impl }, + { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_enhancedDialledServicesAllowed_impl }, + { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl }, { 0, 0, 0, NULL } }; @@ -5799,46 +6921,81 @@ static int dissect_initialDPArgExtension_impl(packet_info *pinfo, proto_tree *tr } +static const ber_sequence_t InitiateCallAttemptArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeCreated_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_newCallSegment_impl }, + { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl }, + { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl }, + { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsmSCFAddress_impl }, + { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_T_CSI_impl }, + { 0, 0, 0, NULL } +}; static int -dissect_camel_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_camel_InitiateCallAttemptArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + InitiateCallAttemptArg_sequence, hf_index, ett_camel_InitiateCallAttemptArg); return offset; } -static int dissect_geodeticInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_GeodeticInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_geodeticInformation); + + +static const ber_sequence_t InitiateCallAttemptRes_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4Functionalities_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_InitiateCallAttemptRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + InitiateCallAttemptRes_sequence, hf_index, ett_camel_InitiateCallAttemptRes); + + return offset; } -static const ber_sequence_t LocationInformation_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_ageOfLocationInformation }, - { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_vlr_number_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_cellIdOrLAI_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSA_Id_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_msc_number_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geodeticInformation_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_currentLocationRetrieved_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_saiPresent_impl }, +static const ber_sequence_t MoveLegArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legIDToMove_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, { 0, 0, 0, NULL } }; static int -dissect_camel_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_camel_MoveLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - LocationInformation_sequence, hf_index, ett_camel_LocationInformation); + MoveLegArg_sequence, hf_index, ett_camel_MoveLegArg); return offset; } -static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformation); + + +static const ber_sequence_t PlayToneArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legOrCallSegment_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bursts_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_PlayToneArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + PlayToneArg_sequence, hf_index, ett_camel_PlayToneArg); + + return offset; } -static int dissect_locationInformationMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_camel_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformationMSC); + + + +static int +dissect_camel_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; } @@ -5863,6 +7020,7 @@ static const ber_sequence_t ApplyChargingArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChBillingChargingCharacteristics_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge1_impl }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChChargingAddress_impl }, { 0, 0, 0, NULL } }; @@ -5924,6 +7082,7 @@ static const ber_sequence_t ConnectArg_sequence[] = { { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl }, { BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_oCSIApplicable_impl }, { BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naOliInfo_impl }, + { BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bor_InterrogationRequested_impl }, { 0, 0, 0, NULL } }; @@ -5965,6 +7124,7 @@ static const ber_sequence_t ConnectToResourceArg_sequence[] = { { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceAddress }, { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl }, + { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl }, { 0, 0, 0, NULL } }; @@ -5977,6 +7137,26 @@ dissect_camel_ConnectToResourceArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int } +static const ber_sequence_t ContinueWithArgumentArgExtension_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_D_CSI_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_N_CSI_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressOutgoingCallBarring_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legOrCallSegment_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_ContinueWithArgumentArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ContinueWithArgumentArgExtension_sequence, hf_index, ett_camel_ContinueWithArgumentArgExtension); + + return offset; +} +static int dissect_continueWithArgumentArgExtension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_camel_ContinueWithArgumentArgExtension(TRUE, tvb, offset, pinfo, tree, hf_camel_continueWithArgumentArgExtension); +} + + static const ber_sequence_t ContinueWithArgumentArg_sequence[] = { { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -5989,6 +7169,9 @@ static const ber_sequence_t ContinueWithArgumentArg_sequence[] = { { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl }, { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl }, { BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naOliInfo_impl }, + { BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bor_InterrogationRequested_impl }, + { BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_O_CSI_impl }, + { BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_continueWithArgumentArgExtension_impl }, { 0, 0, 0, NULL } }; @@ -6001,6 +7184,59 @@ dissect_camel_ContinueWithArgumentArg(gboolean implicit_tag _U_, tvbuff_t *tvb, } +static const ber_sequence_t DisconnectLegArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeReleased_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_DisconnectLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DisconnectLegArg_sequence, hf_index, ett_camel_DisconnectLegArg); + + return offset; +} + + +static const value_string camel_EntityReleasedArg_vals[] = { + { 0, "callSegmentFailure" }, + { 1, "bCSM-Failure" }, + { 0, NULL } +}; + +static const ber_choice_t EntityReleasedArg_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_callSegmentFailure_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_bCSM_Failure_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_camel_EntityReleasedArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + EntityReleasedArg_choice, hf_index, ett_camel_EntityReleasedArg, + NULL); + + return offset; +} + + +static const ber_sequence_t DisconnectForwardConnectionWithArgumentArg_sequence[] = { + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_DisconnectForwardConnectionWithArgumentArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + DisconnectForwardConnectionWithArgumentArg_sequence, hf_index, ett_camel_DisconnectForwardConnectionWithArgumentArg); + + return offset; +} + + static const ber_sequence_t EstablishTemporaryConnectionArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assistingSSPIPRoutingAddress_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, @@ -6010,6 +7246,8 @@ static const ber_sequence_t EstablishTemporaryConnectionArg_sequence[] = { { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl }, { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naOliInfo_impl }, { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl }, + { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl }, + { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl }, { 0, 0, 0, NULL } }; @@ -6043,7 +7281,8 @@ dissect_camel_EventReportBCSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int o static const ber_sequence_t ResetTimerArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl }, { 0, 0, 0, NULL } }; @@ -6072,6 +7311,22 @@ dissect_camel_SendChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tv } +static const ber_sequence_t SplitLegArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeSplit_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_newCallSegment_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_camel_SplitLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + SplitLegArg_sequence, hf_index, ett_camel_SplitLegArg); + + return offset; +} + + static const ber_sequence_t CAPGPRSReferenceNumber_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_destinationReference }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_originationReference }, @@ -6322,7 +7577,7 @@ static const ber_sequence_t InitialDPArg_sequence[] = { { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iMSI_impl }, { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberState_impl }, { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl }, - { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_ext_basicServiceCode_impl }, + { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl }, { BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl }, { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mscAddress_impl }, { BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBCDNumber_impl }, @@ -6531,7 +7786,7 @@ dissect_camel_TaskRefusedPARAM(gboolean implicit_tag _U_, tvbuff_t *tvb, int off const value_string camel_opr_code_strings[] = { - {0, "InitialDP"}, + {0, "InitialDP"}, {16, "AssistRequestInstructions"}, {17, "EstablishTemporaryConnection"}, {18, "DisconnectForwardConnection"}, @@ -6541,6 +7796,7 @@ const value_string camel_opr_code_strings[] = { {23, "RequestReportBCSMEvent"}, {24, "EventReportBCSM"}, {31, "Continue"}, + {32, "InitiateCallAttempt"}, {33, "ResetTimer"}, {34, "FurnishChargingInformation"}, {35, "ApplyCharging"}, @@ -6577,6 +7833,13 @@ const value_string camel_opr_code_strings[] = { {81, "RequestReportGPRSEvent"}, {82, "ResetTimerGPRS"}, {83, "SendChargingInformationGPRS"}, + {86, "DFCWithArgument"}, + {88, "ContinueWithArgument"}, + {90, "DisconnectLeg"}, + {93, "MoveLeg"}, + {95, "SplitLeg"}, + {96, "EntityReleased"}, + {97, "PlayTone"}, {0, NULL} }; @@ -6634,6 +7897,9 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv case 31: /*Continue*/ /* Continue: no arguments - do nothing */ break; + case 32: /*initiateCallAttempt*/ + offset=dissect_camel_InitiateCallAttemptArg(FALSE, tvb, offset, pinfo, tree, -1); + break; case 33: /*ResetTimer*/ offset=dissect_camel_ResetTimerArg(FALSE, tvb, offset, pinfo, tree, -1); break; @@ -6727,6 +7993,28 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv case 83: /*SendChargingInformationGPRS*/ offset=dissect_camel_SendChargingInformationGPRSArg(FALSE, tvb, offset, pinfo, tree, -1); break; + case 86: /*DFCWithArgument*/ + offset= dissect_camel_DisconnectForwardConnectionWithArgumentArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 88: /*ContinueWithArgument*/ + /* XXX Same as opcode 56 ??? */ + offset= dissect_camel_ContinueWithArgumentArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 90: /*DisconnectLeg*/ + offset= dissect_camel_DisconnectLegArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 93: /*MoveLeg*/ + offset= dissect_camel_MoveLegArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 95: /*SplitLeg*/ + offset= dissect_camel_SplitLegArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 96: /*EntityReleased*/ + offset= dissect_camel_EntityReleasedArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 97: /*PlayTone*/ + offset= dissect_camel_PlayToneArg(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 */ @@ -6737,6 +8025,9 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { switch(opcode){ + case 32: /*initiateCallAttempt*/ + offset=dissect_camel_InitiateCallAttemptRes(FALSE, tvb, offset, pinfo, tree, -1); + break; case 48: /*PromptAndCollectUserInformation*/ offset=dissect_camel_ReceivedInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; @@ -7243,11 +8534,19 @@ void proto_register_camel(void) { { &hf_camel_actone, { "actone", "camel.actone", FT_BOOLEAN, 8, NULL, 0, - "", HFILL }}, + "AChBillingChargingCharacteristics/actimeDurationCharging/actone", HFILL }}, { &hf_camel_extensions, { "extensions", "camel.extensions", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, + { &hf_camel_legID, + { "legID", "camel.legID", + FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0, + "", HFILL }}, + { &hf_camel_srfConnection, + { "srfConnection", "camel.srfConnection", + FT_UINT32, BASE_DEC, NULL, 0, + "AChChargingAddress/srfConnection", HFILL }}, { &hf_camel_aOCInitial, { "aOCInitial", "camel.aOCInitial", FT_NONE, BASE_NONE, NULL, 0, @@ -7260,6 +8559,14 @@ void proto_register_camel(void) { { "cAI-GSM0224", "camel.cAI_GSM0224", FT_NONE, BASE_NONE, NULL, 0, "AOCSubsequent/cAI-GSM0224", HFILL }}, + { &hf_camel_tone, + { "tone", "camel.tone", + FT_BOOLEAN, 8, NULL, 0, + "AudibleIndicator/tone", HFILL }}, + { &hf_camel_burstList, + { "burstList", "camel.burstList", + FT_NONE, BASE_NONE, NULL, 0, + "AudibleIndicator/burstList", HFILL }}, { &hf_camel_conferenceTreatmentIndicator, { "conferenceTreatmentIndicator", "camel.conferenceTreatmentIndicator", FT_BYTES, BASE_HEX, NULL, 0, @@ -7308,10 +8615,46 @@ void proto_register_camel(void) { { "dpSpecificCriteria", "camel.dpSpecificCriteria", FT_UINT32, BASE_DEC, VALS(camel_DpSpecificCriteria_vals), 0, "BCSMEvent/dpSpecificCriteria", HFILL }}, + { &hf_camel_automaticRearm, + { "automaticRearm", "camel.automaticRearm", + FT_NONE, BASE_NONE, NULL, 0, + "BCSMEvent/automaticRearm", HFILL }}, + { &hf_camel_cause, + { "cause", "camel.cause", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, { &hf_camel_bearerCap, { "bearerCap", "camel.bearerCap", FT_BYTES, BASE_HEX, NULL, 0, "BearerCapability/bearerCap", HFILL }}, + { &hf_camel_numberOfBursts, + { "numberOfBursts", "camel.numberOfBursts", + FT_UINT32, BASE_DEC, NULL, 0, + "Burst/numberOfBursts", HFILL }}, + { &hf_camel_burstInterval, + { "burstInterval", "camel.burstInterval", + FT_UINT32, BASE_DEC, NULL, 0, + "Burst/burstInterval", HFILL }}, + { &hf_camel_numberOfTonesInBurst, + { "numberOfTonesInBurst", "camel.numberOfTonesInBurst", + FT_UINT32, BASE_DEC, NULL, 0, + "Burst/numberOfTonesInBurst", HFILL }}, + { &hf_camel_toneDuration, + { "toneDuration", "camel.toneDuration", + FT_UINT32, BASE_DEC, NULL, 0, + "Burst/toneDuration", HFILL }}, + { &hf_camel_toneInterval, + { "toneInterval", "camel.toneInterval", + FT_UINT32, BASE_DEC, NULL, 0, + "Burst/toneInterval", HFILL }}, + { &hf_camel_warningPeriod, + { "warningPeriod", "camel.warningPeriod", + FT_UINT32, BASE_DEC, NULL, 0, + "BurstList/warningPeriod", HFILL }}, + { &hf_camel_bursts, + { "bursts", "camel.bursts", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_camel_e1, { "e1", "camel.e1", FT_UINT32, BASE_DEC, NULL, 0, @@ -7340,34 +8683,54 @@ void proto_register_camel(void) { { "e7", "camel.e7", FT_UINT32, BASE_DEC, NULL, 0, "CAI-Gsm0224/e7", HFILL }}, + { &hf_camel_callSegmentID, + { "callSegmentID", "camel.callSegmentID", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_camel_invokeID, + { "invokeID", "camel.invokeID", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, { &hf_camel_timeDurationCharging, { "timeDurationCharging", "camel.timeDurationCharging", FT_NONE, BASE_NONE, NULL, 0, - "CamelAChBillingChargingCharacteristics/timeDurationCharging", HFILL }}, + "CAMEL-AChBillingChargingCharacteristics/timeDurationCharging", HFILL }}, + { &hf_camel_audibleIndicator, + { "audibleIndicator", "camel.audibleIndicator", + FT_UINT32, BASE_DEC, VALS(camel_AudibleIndicator_vals), 0, + "CAMEL-AChBillingChargingCharacteristics/timeDurationCharging/audibleIndicator", HFILL }}, { &hf_camel_timeDurationChargingResult, { "timeDurationChargingResult", "camel.timeDurationChargingResult", FT_NONE, BASE_NONE, NULL, 0, - "CamelCallResult/timeDurationChargingResult", HFILL }}, - { &hf_camel_partyToCharge3, - { "partyToCharge3", "camel.partyToCharge3", + "CAMEL-CallResult/timeDurationChargingResult", HFILL }}, + { &hf_camel_partyToCharge, + { "partyToCharge", "camel.partyToCharge", FT_UINT32, BASE_DEC, VALS(camel_ReceivingSideID_vals), 0, - "CamelCallResult/timeDurationChargingResult/partyToCharge3", HFILL }}, + "CAMEL-CallResult/timeDurationChargingResult/partyToCharge", HFILL }}, { &hf_camel_timeInformation, { "timeInformation", "camel.timeInformation", FT_UINT32, BASE_DEC, VALS(camel_TimeInformation_vals), 0, - "CamelCallResult/timeDurationChargingResult/timeInformation", HFILL }}, - { &hf_camel_callActive, - { "callActive", "camel.callActive", + "CAMEL-CallResult/timeDurationChargingResult/timeInformation", HFILL }}, + { &hf_camel_legActive, + { "legActive", "camel.legActive", FT_BOOLEAN, 8, NULL, 0, - "CamelCallResult/timeDurationChargingResult/callActive", HFILL }}, - { &hf_camel_callReleasedAtTcpExpiry, - { "callReleasedAtTcpExpiry", "camel.callReleasedAtTcpExpiry", + "CAMEL-CallResult/timeDurationChargingResult/legActive", HFILL }}, + { &hf_camel_callLegReleasedAtTcpExpiry, + { "callLegReleasedAtTcpExpiry", "camel.callLegReleasedAtTcpExpiry", FT_NONE, BASE_NONE, NULL, 0, - "CamelCallResult/timeDurationChargingResult/callReleasedAtTcpExpiry", HFILL }}, + "CAMEL-CallResult/timeDurationChargingResult/callLegReleasedAtTcpExpiry", HFILL }}, + { &hf_camel_extensions1, + { "extensions", "camel.extensions", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_camel_aChChargingAddress, + { "aChChargingAddress", "camel.aChChargingAddress", + FT_UINT32, BASE_DEC, VALS(camel_AChChargingAddress_vals), 0, + "", HFILL }}, { &hf_camel_fCIBCCCAMELsequence1, { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1", FT_NONE, BASE_NONE, NULL, 0, - "CamelFCIBillingChargingCharacteristics/fCIBCCCAMELsequence1", HFILL }}, + "CAMEL-FCIBillingChargingCharacteristics/fCIBCCCAMELsequence1", HFILL }}, { &hf_camel_freeFormatData, { "freeFormatData", "camel.freeFormatData", FT_BYTES, BASE_HEX, NULL, 0, @@ -7375,7 +8738,7 @@ void proto_register_camel(void) { { &hf_camel_partyToCharge4, { "partyToCharge4", "camel.partyToCharge4", FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0, - "CamelFCIBillingChargingCharacteristics/fCIBCCCAMELsequence1/partyToCharge4", HFILL }}, + "CAMEL-FCIBillingChargingCharacteristics/fCIBCCCAMELsequence1/partyToCharge4", HFILL }}, { &hf_camel_appendFreeFormatData, { "appendFreeFormatData", "camel.appendFreeFormatData", FT_UINT32, BASE_DEC, VALS(camel_AppendFreeFormatData_vals), 0, @@ -7383,7 +8746,7 @@ void proto_register_camel(void) { { &hf_camel_fCIBCCCAMELsequence2, { "fCIBCCCAMELsequence2", "camel.fCIBCCCAMELsequence2", FT_NONE, BASE_NONE, NULL, 0, - "CamelFCIGPRSBillingChargingCharacteristics/fCIBCCCAMELsequence2", HFILL }}, + "CAMEL-FCIGPRSBillingChargingCharacteristics/fCIBCCCAMELsequence2", HFILL }}, { &hf_camel_pDPID, { "pDPID", "camel.pDPID", FT_BYTES, BASE_HEX, NULL, 0, @@ -7391,19 +8754,55 @@ void proto_register_camel(void) { { &hf_camel_fCIBCCCAMELsequence3, { "fCIBCCCAMELsequence3", "camel.fCIBCCCAMELsequence3", FT_NONE, BASE_NONE, NULL, 0, - "CamelFCISMSBillingChargingCharacteristics/fCIBCCCAMELsequence3", HFILL }}, + "CAMEL-FCISMSBillingChargingCharacteristics/fCIBCCCAMELsequence3", HFILL }}, { &hf_camel_aOCBeforeAnswer, { "aOCBeforeAnswer", "camel.aOCBeforeAnswer", FT_NONE, BASE_NONE, NULL, 0, - "CamelSCIBillingChargingCharacteristics/aOCBeforeAnswer", HFILL }}, + "CAMEL-SCIBillingChargingCharacteristics/aOCBeforeAnswer", HFILL }}, { &hf_camel_aOCAfterAnswer, { "aOCAfterAnswer", "camel.aOCAfterAnswer", FT_NONE, BASE_NONE, NULL, 0, - "CamelSCIBillingChargingCharacteristics/aOCAfterAnswer", HFILL }}, + "CAMEL-SCIBillingChargingCharacteristics/aOCAfterAnswer", HFILL }}, + { &hf_camel_aOC_extension, + { "aOC-extension", "camel.aOC_extension", + FT_NONE, BASE_NONE, NULL, 0, + "CAMEL-SCIBillingChargingCharacteristics/aOC-extension", HFILL }}, { &hf_camel_aOCGPRS, { "aOCGPRS", "camel.aOCGPRS", FT_NONE, BASE_NONE, NULL, 0, "CamelSCIGPRSBillingChargingCharacteristics/aOCGPRS", HFILL }}, + { &hf_camel_ChangeOfPositionControlInfo_item, + { "Item", "camel.ChangeOfPositionControlInfo_item", + FT_UINT32, BASE_DEC, VALS(camel_ChangeOfLocation_vals), 0, + "ChangeOfPositionControlInfo/_item", HFILL }}, + { &hf_camel_cellGlobalId, + { "cellGlobalId", "camel.cellGlobalId", + FT_NONE, BASE_NONE, NULL, 0, + "ChangeOfLocation/cellGlobalId", HFILL }}, + { &hf_camel_serviceAreaId, + { "serviceAreaId", "camel.serviceAreaId", + FT_NONE, BASE_NONE, NULL, 0, + "ChangeOfLocation/serviceAreaId", HFILL }}, + { &hf_camel_locationAreaId, + { "locationAreaId", "camel.locationAreaId", + FT_BYTES, BASE_HEX, NULL, 0, + "ChangeOfLocation/locationAreaId", HFILL }}, + { &hf_camel_inter_SystemHandOver, + { "inter-SystemHandOver", "camel.inter_SystemHandOver", + FT_NONE, BASE_NONE, NULL, 0, + "ChangeOfLocation/inter-SystemHandOver", HFILL }}, + { &hf_camel_inter_PLMNHandOver, + { "inter-PLMNHandOver", "camel.inter_PLMNHandOver", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_camel_inter_MSCHandOver, + { "inter-MSCHandOver", "camel.inter_MSCHandOver", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_camel_changeOfLocationAlt, + { "changeOfLocationAlt", "camel.changeOfLocationAlt", + FT_NONE, BASE_NONE, NULL, 0, + "ChangeOfLocation/changeOfLocationAlt", HFILL }}, { &hf_camel_maxTransferredVolume, { "maxTransferredVolume", "camel.maxTransferredVolume", FT_UINT32, BASE_DEC, NULL, 0, @@ -7439,15 +8838,15 @@ void proto_register_camel(void) { { &hf_camel_endOfReplyDigit, { "endOfReplyDigit", "camel.endOfReplyDigit", FT_BYTES, BASE_HEX, NULL, 0, - "CollectedDigits/endOfReplyDigit", HFILL }}, + "", HFILL }}, { &hf_camel_cancelDigit, { "cancelDigit", "camel.cancelDigit", FT_BYTES, BASE_HEX, NULL, 0, - "CollectedDigits/cancelDigit", HFILL }}, + "", HFILL }}, { &hf_camel_startDigit, { "startDigit", "camel.startDigit", FT_BYTES, BASE_HEX, NULL, 0, - "CollectedDigits/startDigit", HFILL }}, + "", HFILL }}, { &hf_camel_firstDigitTimeOut, { "firstDigitTimeOut", "camel.firstDigitTimeOut", FT_UINT32, BASE_DEC, NULL, 0, @@ -7492,6 +8891,30 @@ void proto_register_camel(void) { { "applicationTimer", "camel.applicationTimer", FT_UINT32, BASE_DEC, NULL, 0, "DpSpecificCriteria/applicationTimer", HFILL }}, + { &hf_camel_midCallControlInfo, + { "midCallControlInfo", "camel.midCallControlInfo", + FT_NONE, BASE_NONE, NULL, 0, + "DpSpecificCriteria/midCallControlInfo", HFILL }}, + { &hf_camel_dpSpecificCriteriaAlt, + { "dpSpecificCriteriaAlt", "camel.dpSpecificCriteriaAlt", + FT_NONE, BASE_NONE, NULL, 0, + "DpSpecificCriteria/dpSpecificCriteriaAlt", HFILL }}, + { &hf_camel_changeOfPositionControlInfo, + { "changeOfPositionControlInfo", "camel.changeOfPositionControlInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "DpSpecificCriteriaAlt/changeOfPositionControlInfo", HFILL }}, + { &hf_camel_oServiceChangeSpecificInfo, + { "oServiceChangeSpecificInfo", "camel.oServiceChangeSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "DpSpecificInfoAlt/oServiceChangeSpecificInfo", HFILL }}, + { &hf_camel_ext_basicServiceCode, + { "ext-basicServiceCode", "camel.ext_basicServiceCode", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_camel_tServiceChangeSpecificInfo, + { "tServiceChangeSpecificInfo", "camel.tServiceChangeSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "DpSpecificInfoAlt/tServiceChangeSpecificInfo", HFILL }}, { &hf_camel_timeGPRSIfNoTariffSwitch, { "timeGPRSIfNoTariffSwitch", "camel.timeGPRSIfNoTariffSwitch", FT_UINT32, BASE_DEC, NULL, 0, @@ -7556,10 +8979,6 @@ void proto_register_camel(void) { { "oNoAnswerSpecificInfo", "camel.oNoAnswerSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, "EventSpecificInformationBCSM/oNoAnswerSpecificInfo", HFILL }}, - { &hf_camel_foo, - { "foo", "camel.foo", - FT_UINT32, BASE_DEC, NULL, 0, - "", HFILL }}, { &hf_camel_oAnswerSpecificInfo, { "oAnswerSpecificInfo", "camel.oAnswerSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, @@ -7576,6 +8995,30 @@ void proto_register_camel(void) { { "forwardedCall", "camel.forwardedCall", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_camel_chargeIndicator, + { "chargeIndicator", "camel.chargeIndicator", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_camel_ext_basicServiceCode2, + { "ext-basicServiceCode2", "camel.ext_basicServiceCode2", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_camel_oMidCallSpecificInfo, + { "oMidCallSpecificInfo", "camel.oMidCallSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oMidCallSpecificInfo", HFILL }}, + { &hf_camel_midCallEvents, + { "midCallEvents", "camel.midCallEvents", + FT_UINT32, BASE_DEC, VALS(camel_T_midCallEvents_vals), 0, + "EventSpecificInformationBCSM/oMidCallSpecificInfo/midCallEvents", HFILL }}, + { &hf_camel_dTMFDigitsCompleted, + { "dTMFDigitsCompleted", "camel.dTMFDigitsCompleted", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_camel_dTMFDigitsTimeOut, + { "dTMFDigitsTimeOut", "camel.dTMFDigitsTimeOut", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, { &hf_camel_oDisconnectSpecificInfo, { "oDisconnectSpecificInfo", "camel.oDisconnectSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, @@ -7595,7 +9038,11 @@ void proto_register_camel(void) { { &hf_camel_routeNotPermitted, { "routeNotPermitted", "camel.routeNotPermitted", FT_NONE, BASE_NONE, NULL, 0, - "EventSpecificInformationBCSM/tBusySpecificInfo/routeNotPermitted", HFILL }}, + "", HFILL }}, + { &hf_camel_forwardingDestinationNumber, + { "forwardingDestinationNumber", "camel.forwardingDestinationNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, { &hf_camel_tNoAnswerSpecificInfo, { "tNoAnswerSpecificInfo", "camel.tNoAnswerSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, @@ -7604,22 +9051,78 @@ void proto_register_camel(void) { { "tAnswerSpecificInfo", "camel.tAnswerSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, "EventSpecificInformationBCSM/tAnswerSpecificInfo", HFILL }}, + { &hf_camel_tMidCallSpecificInfo, + { "tMidCallSpecificInfo", "camel.tMidCallSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tMidCallSpecificInfo", HFILL }}, + { &hf_camel_midCallEvents1, + { "midCallEvents", "camel.midCallEvents", + FT_UINT32, BASE_DEC, VALS(camel_T_midCallEvents1_vals), 0, + "EventSpecificInformationBCSM/tMidCallSpecificInfo/midCallEvents", HFILL }}, { &hf_camel_tDisconnectSpecificInfo, { "tDisconnectSpecificInfo", "camel.tDisconnectSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, "EventSpecificInformationBCSM/tDisconnectSpecificInfo", HFILL }}, + { &hf_camel_oTermSeizedSpecificInfo, + { "oTermSeizedSpecificInfo", "camel.oTermSeizedSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oTermSeizedSpecificInfo", HFILL }}, + { &hf_camel_locationInformation, + { "locationInformation", "camel.locationInformation", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_camel_callAcceptedSpecificInfo, + { "callAcceptedSpecificInfo", "camel.callAcceptedSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/callAcceptedSpecificInfo", HFILL }}, + { &hf_camel_oAbandonSpecificInfo, + { "oAbandonSpecificInfo", "camel.oAbandonSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oAbandonSpecificInfo", HFILL }}, + { &hf_camel_oChangeOfPositionSpecificInfo, + { "oChangeOfPositionSpecificInfo", "camel.oChangeOfPositionSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oChangeOfPositionSpecificInfo", HFILL }}, + { &hf_camel_metDPCriteriaList, + { "metDPCriteriaList", "camel.metDPCriteriaList", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_camel_tChangeOfPositionSpecificInfo, + { "tChangeOfPositionSpecificInfo", "camel.tChangeOfPositionSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tChangeOfPositionSpecificInfo", HFILL }}, + { &hf_camel_dpSpecificInfoAlt, + { "dpSpecificInfoAlt", "camel.dpSpecificInfoAlt", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/dpSpecificInfoAlt", HFILL }}, { &hf_camel_o_smsFailureSpecificInfo, { "o-smsFailureSpecificInfo", "camel.o_smsFailureSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, "EventSpecificInformationSMS/o-smsFailureSpecificInfo", HFILL }}, { &hf_camel_smsfailureCause, { "smsfailureCause", "camel.smsfailureCause", - FT_UINT32, BASE_DEC, VALS(camel_SMSCause_vals), 0, + FT_UINT32, BASE_DEC, VALS(camel_MO_SMSCause_vals), 0, "EventSpecificInformationSMS/o-smsFailureSpecificInfo/smsfailureCause", HFILL }}, { &hf_camel_o_smsSubmittedSpecificInfo, { "o-smsSubmittedSpecificInfo", "camel.o_smsSubmittedSpecificInfo", FT_NONE, BASE_NONE, NULL, 0, "EventSpecificInformationSMS/o-smsSubmittedSpecificInfo", HFILL }}, + { &hf_camel_foo, + { "foo", "camel.foo", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_camel_t_smsFailureSpecificInfo, + { "t-smsFailureSpecificInfo", "camel.t_smsFailureSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationSMS/t-smsFailureSpecificInfo", HFILL }}, + { &hf_camel_failureCause1, + { "failureCause", "camel.failureCause", + FT_BYTES, BASE_HEX, NULL, 0, + "EventSpecificInformationSMS/t-smsFailureSpecificInfo/failureCause", HFILL }}, + { &hf_camel_t_smsDeliverySpecificInfo, + { "t-smsDeliverySpecificInfo", "camel.t_smsDeliverySpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationSMS/t-smsDeliverySpecificInfo", HFILL }}, { &hf_camel_Extensions_item, { "Item", "camel.Extensions_item", FT_NONE, BASE_NONE, NULL, 0, @@ -7654,12 +9157,16 @@ void proto_register_camel(void) { "GenericNumbers/_item", HFILL }}, { &hf_camel_short_QoS_format, { "short-QoS-format", "camel.short_QoS_format", - FT_BYTES, BASE_HEX, NULL, 0, + FT_NONE, BASE_NONE, NULL, 0, "GPRS-QoS/short-QoS-format", HFILL }}, { &hf_camel_long_QoS_format, { "long-QoS-format", "camel.long_QoS_format", - FT_BYTES, BASE_HEX, NULL, 0, + FT_NONE, BASE_NONE, NULL, 0, "GPRS-QoS/long-QoS-format", HFILL }}, + { &hf_camel_supplement_to_long_QoS_format, + { "supplement-to-long-QoS-format", "camel.supplement_to_long_QoS_format", + FT_NONE, BASE_NONE, NULL, 0, + "GPRS-QoS-Extension/supplement-to-long-QoS-format", HFILL }}, { &hf_camel_gPRSEventType, { "gPRSEventType", "camel.gPRSEventType", FT_UINT32, BASE_DEC, VALS(camel_GPRSEventType_vals), 0, @@ -7682,7 +9189,7 @@ void proto_register_camel(void) { "", HFILL }}, { &hf_camel_chargingID, { "chargingID", "camel.chargingID", - FT_BYTES, BASE_HEX, NULL, 0, + FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_camel_pDPType, { "pDPType", "camel.pDPType", @@ -7760,7 +9267,7 @@ void proto_register_camel(void) { { "inbandInfo", "camel.inbandInfo", FT_NONE, BASE_NONE, NULL, 0, "InformationToSend/inbandInfo", HFILL }}, - { &hf_camel_tone, + { &hf_camel_tone1, { "tone", "camel.tone", FT_NONE, BASE_NONE, NULL, 0, "InformationToSend/tone", HFILL }}, @@ -7770,28 +9277,28 @@ void proto_register_camel(void) { "LocationInformationGPRS/cellGlobalIdOrServiceAreaIdOrLAI", HFILL }}, { &hf_camel_routeingAreaIdentity, { "routeingAreaIdentity", "camel.routeingAreaIdentity", - FT_BYTES, BASE_HEX, NULL, 0, + FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_camel_geographicalInformation, { "geographicalInformation", "camel.geographicalInformation", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, + FT_NONE, BASE_NONE, NULL, 0, + "LocationInformationGPRS/geographicalInformation", HFILL }}, { &hf_camel_sgsn_Number, { "sgsn-Number", "camel.sgsn_Number", FT_BYTES, BASE_HEX, NULL, 0, "LocationInformationGPRS/sgsn-Number", HFILL }}, { &hf_camel_selectedLSAIdentity, { "selectedLSAIdentity", "camel.selectedLSAIdentity", - FT_BYTES, BASE_HEX, NULL, 0, + FT_NONE, BASE_NONE, NULL, 0, "LocationInformationGPRS/selectedLSAIdentity", HFILL }}, { &hf_camel_extensionContainer, { "extensionContainer", "camel.extensionContainer", FT_NONE, BASE_NONE, NULL, 0, - "", HFILL }}, + "LocationInformationGPRS/extensionContainer", HFILL }}, { &hf_camel_saiPresent, { "saiPresent", "camel.saiPresent", FT_NONE, BASE_NONE, NULL, 0, - "", HFILL }}, + "LocationInformationGPRS/saiPresent", HFILL }}, { &hf_camel_elementaryMessageID, { "elementaryMessageID", "camel.elementaryMessageID", FT_UINT32, BASE_DEC, NULL, 0, @@ -7824,6 +9331,58 @@ void proto_register_camel(void) { { "variableParts", "camel.variableParts", FT_UINT32, BASE_DEC, NULL, 0, "MessageID/variableMessage/variableParts", HFILL }}, + { &hf_camel_MetDPCriteriaList_item, + { "Item", "camel.MetDPCriteriaList_item", + FT_UINT32, BASE_DEC, VALS(camel_MetDPCriterion_vals), 0, + "MetDPCriteriaList/_item", HFILL }}, + { &hf_camel_enteringCellGlobalId, + { "enteringCellGlobalId", "camel.enteringCellGlobalId", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/enteringCellGlobalId", HFILL }}, + { &hf_camel_leavingCellGlobalId, + { "leavingCellGlobalId", "camel.leavingCellGlobalId", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/leavingCellGlobalId", HFILL }}, + { &hf_camel_enteringServiceAreaId, + { "enteringServiceAreaId", "camel.enteringServiceAreaId", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/enteringServiceAreaId", HFILL }}, + { &hf_camel_leavingServiceAreaId, + { "leavingServiceAreaId", "camel.leavingServiceAreaId", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/leavingServiceAreaId", HFILL }}, + { &hf_camel_enteringLocationAreaId, + { "enteringLocationAreaId", "camel.enteringLocationAreaId", + FT_BYTES, BASE_HEX, NULL, 0, + "MetDPCriterion/enteringLocationAreaId", HFILL }}, + { &hf_camel_leavingLocationAreaId, + { "leavingLocationAreaId", "camel.leavingLocationAreaId", + FT_BYTES, BASE_HEX, NULL, 0, + "MetDPCriterion/leavingLocationAreaId", HFILL }}, + { &hf_camel_inter_SystemHandOverToUMTS, + { "inter-SystemHandOverToUMTS", "camel.inter_SystemHandOverToUMTS", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/inter-SystemHandOverToUMTS", HFILL }}, + { &hf_camel_inter_SystemHandOverToGSM, + { "inter-SystemHandOverToGSM", "camel.inter_SystemHandOverToGSM", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/inter-SystemHandOverToGSM", HFILL }}, + { &hf_camel_metDPCriterionAlt, + { "metDPCriterionAlt", "camel.metDPCriterionAlt", + FT_NONE, BASE_NONE, NULL, 0, + "MetDPCriterion/metDPCriterionAlt", HFILL }}, + { &hf_camel_minimumNumberOfDigits, + { "minimumNumberOfDigits", "camel.minimumNumberOfDigits", + FT_UINT32, BASE_DEC, NULL, 0, + "MidCallControlInfo/minimumNumberOfDigits", HFILL }}, + { &hf_camel_maximumNumberOfDigits, + { "maximumNumberOfDigits", "camel.maximumNumberOfDigits", + FT_UINT32, BASE_DEC, NULL, 0, + "MidCallControlInfo/maximumNumberOfDigits", HFILL }}, + { &hf_camel_interDigitTimeout, + { "interDigitTimeout", "camel.interDigitTimeout", + FT_UINT32, BASE_DEC, NULL, 0, + "MidCallControlInfo/interDigitTimeout", HFILL }}, { &hf_camel_requested_QoS, { "requested-QoS", "camel.requested_QoS", FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0, @@ -7836,6 +9395,18 @@ void proto_register_camel(void) { { "negotiated-QoS", "camel.negotiated_QoS", FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0, "QualityOfService/negotiated-QoS", HFILL }}, + { &hf_camel_requested_QoS_Extension, + { "requested-QoS-Extension", "camel.requested_QoS_Extension", + FT_NONE, BASE_NONE, NULL, 0, + "QualityOfService/requested-QoS-Extension", HFILL }}, + { &hf_camel_subscribed_QoS_Extension, + { "subscribed-QoS-Extension", "camel.subscribed_QoS_Extension", + FT_NONE, BASE_NONE, NULL, 0, + "QualityOfService/subscribed-QoS-Extension", HFILL }}, + { &hf_camel_negotiated_QoS_Extension, + { "negotiated-QoS-Extension", "camel.negotiated_QoS_Extension", + FT_NONE, BASE_NONE, NULL, 0, + "QualityOfService/negotiated-QoS-Extension", HFILL }}, { &hf_camel_receivingSideID, { "receivingSideID", "camel.receivingSideID", FT_BYTES, BASE_HEX, NULL, 0, @@ -7912,14 +9483,6 @@ void proto_register_camel(void) { { "eventTypeSMS", "camel.eventTypeSMS", FT_UINT32, BASE_DEC, VALS(camel_EventTypeSMS_vals), 0, "", HFILL }}, - { &hf_camel_timeIfNoTariffSwitch, - { "timeIfNoTariffSwitch", "camel.timeIfNoTariffSwitch", - FT_UINT32, BASE_DEC, NULL, 0, - "TimeInformation/timeIfNoTariffSwitch", HFILL }}, - { &hf_camel_timeIfTariffSwitch, - { "timeIfTariffSwitch", "camel.timeIfTariffSwitch", - FT_NONE, BASE_NONE, NULL, 0, - "TimeInformation/timeIfTariffSwitch", HFILL }}, { &hf_camel_timeSinceTariffSwitch, { "timeSinceTariffSwitch", "camel.timeSinceTariffSwitch", FT_UINT32, BASE_DEC, NULL, 0, @@ -7928,6 +9491,14 @@ void proto_register_camel(void) { { "tttariffSwitchInterval", "camel.tttariffSwitchInterval", FT_UINT32, BASE_DEC, NULL, 0, "TimeIfTariffSwitch/tttariffSwitchInterval", HFILL }}, + { &hf_camel_timeIfNoTariffSwitch, + { "timeIfNoTariffSwitch", "camel.timeIfNoTariffSwitch", + FT_UINT32, BASE_DEC, NULL, 0, + "TimeInformation/timeIfNoTariffSwitch", HFILL }}, + { &hf_camel_timeIfTariffSwitch, + { "timeIfTariffSwitch", "camel.timeIfTariffSwitch", + FT_NONE, BASE_NONE, NULL, 0, + "TimeInformation/timeIfTariffSwitch", HFILL }}, { &hf_camel_toneID, { "toneID", "camel.toneID", FT_UINT32, BASE_DEC, NULL, 0, @@ -8012,14 +9583,14 @@ void proto_register_camel(void) { { "callresultOctet", "camel.callresultOctet", FT_BYTES, BASE_HEX, NULL, 0, "ApplyChargingReportArg/callresultOctet", HFILL }}, - { &hf_camel_invokeID, - { "invokeID", "camel.invokeID", - FT_INT32, BASE_DEC, NULL, 0, - "CancelArg/invokeID", HFILL }}, { &hf_camel_allRequests, { "allRequests", "camel.allRequests", FT_NONE, BASE_NONE, NULL, 0, "CancelArg/allRequests", HFILL }}, + { &hf_camel_callSegmentToCancel, + { "callSegmentToCancel", "camel.callSegmentToCancel", + FT_NONE, BASE_NONE, NULL, 0, + "CancelArg/callSegmentToCancel", HFILL }}, { &hf_camel_digitsResponse, { "digitsResponse", "camel.digitsResponse", FT_BYTES, BASE_HEX, NULL, 0, @@ -8076,14 +9647,6 @@ void proto_register_camel(void) { { "laiFixedLength", "camel.laiFixedLength", FT_BYTES, BASE_HEX, NULL, 0, "CellIdOrLAI/laiFixedLength", HFILL }}, - { &hf_camel_ext_BearerService, - { "ext-BearerService", "camel.ext_BearerService", - FT_BYTES, BASE_HEX, NULL, 0, - "Ext-BasicServiceCode/ext-BearerService", HFILL }}, - { &hf_camel_ext_Teleservice, - { "ext-Teleservice", "camel.ext_Teleservice", - FT_BYTES, BASE_HEX, NULL, 0, - "Ext-BasicServiceCode/ext-Teleservice", HFILL }}, { &hf_camel_VariablePartsArray_item, { "Item", "camel.VariablePartsArray_item", FT_UINT32, BASE_DEC, VALS(camel_VariablePart_vals), 0, @@ -8092,38 +9655,82 @@ void proto_register_camel(void) { { "gmscAddress", "camel.gmscAddress", FT_BYTES, BASE_HEX, NULL, 0, "InitialDPArgExtension/gmscAddress", HFILL }}, - { &hf_camel_ageOfLocationInformation, - { "ageOfLocationInformation", "camel.ageOfLocationInformation", - FT_UINT32, BASE_DEC, NULL, 0, - "LocationInformation/ageOfLocationInformation", HFILL }}, - { &hf_camel_vlr_number, - { "vlr-number", "camel.vlr_number", + { &hf_camel_ms_Classmark2, + { "ms-Classmark2", "camel.ms_Classmark2", + FT_NONE, BASE_NONE, NULL, 0, + "InitialDPArgExtension/ms-Classmark2", HFILL }}, + { &hf_camel_iMEI, + { "iMEI", "camel.iMEI", + FT_NONE, BASE_NONE, NULL, 0, + "InitialDPArgExtension/iMEI", HFILL }}, + { &hf_camel_supportedCamelPhases, + { "supportedCamelPhases", "camel.supportedCamelPhases", FT_BYTES, BASE_HEX, NULL, 0, - "LocationInformation/vlr-number", HFILL }}, - { &hf_camel_locationNumber, - { "locationNumber", "camel.locationNumber", + "", HFILL }}, + { &hf_camel_offeredCamel4Functionalities, + { "offeredCamel4Functionalities", "camel.offeredCamel4Functionalities", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }}, - { &hf_camel_cellIdOrLAI, - { "cellIdOrLAI", "camel.cellIdOrLAI", - FT_UINT32, BASE_DEC, VALS(camel_CellIdOrLAI_vals), 0, - "LocationInformation/cellIdOrLAI", HFILL }}, - { &hf_camel_selectedLSA_Id, - { "selectedLSA-Id", "camel.selectedLSA_Id", + { &hf_camel_bearerCapability2, + { "bearerCapability2", "camel.bearerCapability2", + FT_UINT32, BASE_DEC, VALS(camel_BearerCapability_vals), 0, + "InitialDPArgExtension/bearerCapability2", HFILL }}, + { &hf_camel_highLayerCompatibility2, + { "highLayerCompatibility2", "camel.highLayerCompatibility2", FT_BYTES, BASE_HEX, NULL, 0, - "LocationInformation/selectedLSA-Id", HFILL }}, - { &hf_camel_msc_number, - { "msc-number", "camel.msc_number", + "InitialDPArgExtension/highLayerCompatibility2", HFILL }}, + { &hf_camel_lowLayerCompatibility, + { "lowLayerCompatibility", "camel.lowLayerCompatibility", FT_BYTES, BASE_HEX, NULL, 0, - "LocationInformation/msc-number", HFILL }}, - { &hf_camel_geodeticInformation, - { "geodeticInformation", "camel.geodeticInformation", + "InitialDPArgExtension/lowLayerCompatibility", HFILL }}, + { &hf_camel_lowLayerCompatibility2, + { "lowLayerCompatibility2", "camel.lowLayerCompatibility2", FT_BYTES, BASE_HEX, NULL, 0, - "LocationInformation/geodeticInformation", HFILL }}, - { &hf_camel_currentLocationRetrieved, - { "currentLocationRetrieved", "camel.currentLocationRetrieved", + "InitialDPArgExtension/lowLayerCompatibility2", HFILL }}, + { &hf_camel_enhancedDialledServicesAllowed, + { "enhancedDialledServicesAllowed", "camel.enhancedDialledServicesAllowed", + FT_NONE, BASE_NONE, NULL, 0, + "InitialDPArgExtension/enhancedDialledServicesAllowed", HFILL }}, + { &hf_camel_uu_Data, + { "uu-Data", "camel.uu_Data", FT_NONE, BASE_NONE, NULL, 0, - "LocationInformation/currentLocationRetrieved", HFILL }}, + "InitialDPArgExtension/uu-Data", HFILL }}, + { &hf_camel_destinationRoutingAddress, + { "destinationRoutingAddress", "camel.destinationRoutingAddress", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_camel_legToBeCreated, + { "legToBeCreated", "camel.legToBeCreated", + FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0, + "InitiateCallAttemptArg/legToBeCreated", HFILL }}, + { &hf_camel_newCallSegment, + { "newCallSegment", "camel.newCallSegment", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_camel_callingPartyNumber, + { "callingPartyNumber", "camel.callingPartyNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_camel_callReferenceNumber, + { "callReferenceNumber", "camel.callReferenceNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_camel_gsmSCFAddress, + { "gsmSCFAddress", "camel.gsmSCFAddress", + FT_BYTES, BASE_HEX, NULL, 0, + "InitiateCallAttemptArg/gsmSCFAddress", HFILL }}, + { &hf_camel_suppress_T_CSI, + { "suppress-T-CSI", "camel.suppress_T_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "InitiateCallAttemptArg/suppress-T-CSI", HFILL }}, + { &hf_camel_legIDToMove, + { "legIDToMove", "camel.legIDToMove", + FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0, + "MoveLegArg/legIDToMove", HFILL }}, + { &hf_camel_legOrCallSegment, + { "legOrCallSegment", "camel.legOrCallSegment", + FT_UINT32, BASE_DEC, VALS(camel_LegOrCallSegment_vals), 0, + "", HFILL }}, { &hf_camel_miscGPRSInfo, { "miscGPRSInfo", "camel.miscGPRSInfo", FT_NONE, BASE_NONE, NULL, 0, @@ -8172,10 +9779,6 @@ void proto_register_camel(void) { { "legID3", "camel.legID3", FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0, "CallInformationRequestArg/legID3", HFILL }}, - { &hf_camel_destinationRoutingAddress, - { "destinationRoutingAddress", "camel.destinationRoutingAddress", - FT_UINT32, BASE_DEC, NULL, 0, - "ConnectArg/destinationRoutingAddress", HFILL }}, { &hf_camel_alertingPattern, { "alertingPattern", "camel.alertingPattern", FT_BYTES, BASE_HEX, NULL, 0, @@ -8190,7 +9793,7 @@ void proto_register_camel(void) { "", HFILL }}, { &hf_camel_callingPartysCategory, { "callingPartysCategory", "camel.callingPartysCategory", - FT_BYTES, BASE_HEX, NULL, 0, + FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0, "", HFILL }}, { &hf_camel_redirectingPartyID, { "redirectingPartyID", "camel.redirectingPartyID", @@ -8232,6 +9835,10 @@ void proto_register_camel(void) { { "naOliInfo", "camel.naOliInfo", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_camel_bor_InterrogationRequested, + { "bor-InterrogationRequested", "camel.bor_InterrogationRequested", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_camel_resourceAddress, { "resourceAddress", "camel.resourceAddress", FT_UINT32, BASE_DEC, VALS(camel_T_resourceAddress_vals), 0, @@ -8244,6 +9851,38 @@ void proto_register_camel(void) { { "none", "camel.none", FT_NONE, BASE_NONE, NULL, 0, "ConnectToResourceArg/resourceAddress/none", HFILL }}, + { &hf_camel_suppress_O_CSI, + { "suppress-O-CSI", "camel.suppress_O_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "ContinueWithArgumentArg/suppress-O-CSI", HFILL }}, + { &hf_camel_continueWithArgumentArgExtension, + { "continueWithArgumentArgExtension", "camel.continueWithArgumentArgExtension", + FT_NONE, BASE_NONE, NULL, 0, + "ContinueWithArgumentArg/continueWithArgumentArgExtension", HFILL }}, + { &hf_camel_suppress_D_CSI, + { "suppress-D-CSI", "camel.suppress_D_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "ContinueWithArgumentArgExtension/suppress-D-CSI", HFILL }}, + { &hf_camel_suppress_N_CSI, + { "suppress-N-CSI", "camel.suppress_N_CSI", + FT_NONE, BASE_NONE, NULL, 0, + "ContinueWithArgumentArgExtension/suppress-N-CSI", HFILL }}, + { &hf_camel_suppressOutgoingCallBarring, + { "suppressOutgoingCallBarring", "camel.suppressOutgoingCallBarring", + FT_NONE, BASE_NONE, NULL, 0, + "ContinueWithArgumentArgExtension/suppressOutgoingCallBarring", HFILL }}, + { &hf_camel_legToBeReleased, + { "legToBeReleased", "camel.legToBeReleased", + FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0, + "DisconnectLegArg/legToBeReleased", HFILL }}, + { &hf_camel_callSegmentFailure, + { "callSegmentFailure", "camel.callSegmentFailure", + FT_NONE, BASE_NONE, NULL, 0, + "EntityReleasedArg/callSegmentFailure", HFILL }}, + { &hf_camel_bCSM_Failure, + { "bCSM-Failure", "camel.bCSM_Failure", + FT_NONE, BASE_NONE, NULL, 0, + "EntityReleasedArg/bCSM-Failure", HFILL }}, { &hf_camel_assistingSSPIPRoutingAddress, { "assistingSSPIPRoutingAddress", "camel.assistingSSPIPRoutingAddress", FT_BYTES, BASE_HEX, NULL, 0, @@ -8276,6 +9915,10 @@ void proto_register_camel(void) { { "partyToCharge2", "camel.partyToCharge2", FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0, "SendChargingInformationArg/partyToCharge2", HFILL }}, + { &hf_camel_legToBeSplit, + { "legToBeSplit", "camel.legToBeSplit", + FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0, + "SplitLegArg/legToBeSplit", HFILL }}, { &hf_camel_destinationReference, { "destinationReference", "camel.destinationReference", FT_UINT32, BASE_DEC, NULL, 0, @@ -8372,14 +10015,14 @@ void proto_register_camel(void) { { "calledPartyNumber", "camel.calledPartyNumber", FT_BYTES, BASE_HEX, NULL, 0, "InitialDPArg/calledPartyNumber", HFILL }}, - { &hf_camel_callingPartyNumber, - { "callingPartyNumber", "camel.callingPartyNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "InitialDPArg/callingPartyNumber", HFILL }}, { &hf_camel_cGEncountered, { "cGEncountered", "camel.cGEncountered", FT_UINT32, BASE_DEC, VALS(camel_CGEncountered_vals), 0, "InitialDPArg/cGEncountered", HFILL }}, + { &hf_camel_locationNumber, + { "locationNumber", "camel.locationNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "InitialDPArg/locationNumber", HFILL }}, { &hf_camel_highLayerCompatibility, { "highLayerCompatibility", "camel.highLayerCompatibility", FT_BYTES, BASE_HEX, NULL, 0, @@ -8392,10 +10035,6 @@ void proto_register_camel(void) { { "bearerCapability", "camel.bearerCapability", FT_UINT32, BASE_DEC, VALS(camel_BearerCapability_vals), 0, "InitialDPArg/bearerCapability", HFILL }}, - { &hf_camel_cause, - { "cause", "camel.cause", - FT_BYTES, BASE_HEX, NULL, 0, - "InitialDPArg/cause", HFILL }}, { &hf_camel_cug_Index, { "cug-Index", "camel.cug_Index", FT_UINT32, BASE_DEC, NULL, 0, @@ -8404,18 +10043,6 @@ void proto_register_camel(void) { { "subscriberState", "camel.subscriberState", FT_UINT32, BASE_DEC, VALS(camel_SubscriberState_vals), 0, "InitialDPArg/subscriberState", HFILL }}, - { &hf_camel_locationInformation, - { "locationInformation", "camel.locationInformation", - FT_NONE, BASE_NONE, NULL, 0, - "InitialDPArg/locationInformation", HFILL }}, - { &hf_camel_ext_basicServiceCode, - { "ext-basicServiceCode", "camel.ext_basicServiceCode", - FT_UINT32, BASE_DEC, VALS(camel_Ext_BasicServiceCode_vals), 0, - "InitialDPArg/ext-basicServiceCode", HFILL }}, - { &hf_camel_callReferenceNumber, - { "callReferenceNumber", "camel.callReferenceNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "InitialDPArg/callReferenceNumber", HFILL }}, { &hf_camel_mscAddress, { "mscAddress", "camel.mscAddress", FT_BYTES, BASE_HEX, NULL, 0, @@ -8500,6 +10127,98 @@ void proto_register_camel(void) { { "operation", "camel.operation", FT_INT32, BASE_DEC, NULL, 0, "CancelFailedPARAM/operation", HFILL }}, + { &hf_camel_SupportedCamelPhases_phase1, + { "phase1", "camel.phase1", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_camel_SupportedCamelPhases_phase2, + { "phase2", "camel.phase2", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_camel_SupportedCamelPhases_phase3, + { "phase3", "camel.phase3", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_camel_SupportedCamelPhases_phase4, + { "phase4", "camel.phase4", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_initiateCallAttempt, + { "initiateCallAttempt", "camel.initiateCallAttempt", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_splitLeg, + { "splitLeg", "camel.splitLeg", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_moveLeg, + { "moveLeg", "camel.moveLeg", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_disconnectLeg, + { "disconnectLeg", "camel.disconnectLeg", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_entityReleased, + { "entityReleased", "camel.entityReleased", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_dfc_WithArgument, + { "dfc-WithArgument", "camel.dfc-WithArgument", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_playTone, + { "playTone", "camel.playTone", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_dtmf_MidCall, + { "dtmf-MidCall", "camel.dtmf-MidCall", + FT_BOOLEAN, 8, NULL, 0x01, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_chargingIndicator, + { "chargingIndicator", "camel.chargingIndicator", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_alertingDP, + { "alertingDP", "camel.alertingDP", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_locationAtAlerting, + { "locationAtAlerting", "camel.locationAtAlerting", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_changeOfPositionDP, + { "changeOfPositionDP", "camel.changeOfPositionDP", + FT_BOOLEAN, 8, NULL, 0x10, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_or_Interactions, + { "or-Interactions", "camel.or-Interactions", + FT_BOOLEAN, 8, NULL, 0x08, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_warningToneEnhancements, + { "warningToneEnhancements", "camel.warningToneEnhancements", + FT_BOOLEAN, 8, NULL, 0x04, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_cf_Enhancements, + { "cf-Enhancements", "camel.cf-Enhancements", + FT_BOOLEAN, 8, NULL, 0x02, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, + { "subscribedEnhancedDialledServices", "camel.subscribedEnhancedDialledServices", + FT_BOOLEAN, 8, NULL, 0x01, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, + { "servingNetworkEnhancedDialledServices", "camel.servingNetworkEnhancedDialledServices", + FT_BOOLEAN, 8, NULL, 0x80, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, + { "criteriaForChangeOfPositionDP", "camel.criteriaForChangeOfPositionDP", + FT_BOOLEAN, 8, NULL, 0x40, + "", HFILL }}, + { &hf_camel_OfferedCamel4Functionalities_serviceChangeDP, + { "serviceChangeDP", "camel.serviceChangeDP", + FT_BOOLEAN, 8, NULL, 0x20, + "", HFILL }}, /*--- End of included file: packet-camel-hfarr.c ---*/ @@ -8534,28 +10253,39 @@ void proto_register_camel(void) { &ett_camel_PBCalledPartyBCDNumber, &ett_camel_AChBillingChargingCharacteristics, &ett_camel_T_actimeDurationCharging, + &ett_camel_AChChargingAddress, &ett_camel_AOCBeforeAnswer, &ett_camel_AOCGprs, &ett_camel_AOCSubsequent, + &ett_camel_AudibleIndicator, &ett_camel_BackwardServiceInteractionInd, &ett_camel_BasicGapCriteria, &ett_camel_T_calledAddressAndService, &ett_camel_T_callingAddressAndService, &ett_camel_BCSMEvent, + &ett_camel_BCSM_Failure, &ett_camel_BearerCapability, + &ett_camel_Burst, + &ett_camel_BurstList, &ett_camel_CAI_Gsm0224, - &ett_camel_CamelAChBillingChargingCharacteristics, + &ett_camel_CallSegmentFailure, + &ett_camel_CallSegmentToCancel, + &ett_camel_CAMEL_AChBillingChargingCharacteristics, &ett_camel_T_timeDurationCharging, - &ett_camel_CamelCallResult, + &ett_camel_CAMEL_CallResult, &ett_camel_T_timeDurationChargingResult, - &ett_camel_CamelFCIBillingChargingCharacteristics, + &ett_camel_CAMEL_FCIBillingChargingCharacteristics, &ett_camel_T_fCIBCCCAMELsequence1, - &ett_camel_CamelFCIGPRSBillingChargingCharacteristics, + &ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics, &ett_camel_T_fCIBCCCAMELsequence2, - &ett_camel_CamelFCISMSBillingChargingCharacteristics, + &ett_camel_CAMEL_FCISMSBillingChargingCharacteristics, &ett_camel_T_fCIBCCCAMELsequence3, - &ett_camel_CamelSCIBillingChargingCharacteristics, + &ett_camel_CAMEL_SCIBillingChargingCharacteristics, + &ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt, &ett_camel_CamelSCIGPRSBillingChargingCharacteristics, + &ett_camel_ChangeOfPositionControlInfo, + &ett_camel_ChangeOfLocation, + &ett_camel_ChangeOfLocationAlt, &ett_camel_ChargingCharacteristics, &ett_camel_ChargingResult, &ett_camel_ChargingRollOver, @@ -8564,6 +10294,10 @@ void proto_register_camel(void) { &ett_camel_CompoundCriteria, &ett_camel_DestinationRoutingAddress, &ett_camel_DpSpecificCriteria, + &ett_camel_DpSpecificCriteriaAlt, + &ett_camel_DpSpecificInfoAlt, + &ett_camel_T_oServiceChangeSpecificInfo, + &ett_camel_T_tServiceChangeSpecificInfo, &ett_camel_ElapsedTime, &ett_camel_T_timeGPRSIfTariffSwitch, &ett_camel_ElapsedTimeRollOver, @@ -8574,14 +10308,25 @@ void proto_register_camel(void) { &ett_camel_T_oCalledPartyBusySpecificInfo, &ett_camel_T_oNoAnswerSpecificInfo, &ett_camel_T_oAnswerSpecificInfo, + &ett_camel_T_oMidCallSpecificInfo, + &ett_camel_T_midCallEvents, &ett_camel_T_oDisconnectSpecificInfo, &ett_camel_T_tBusySpecificInfo, &ett_camel_T_tNoAnswerSpecificInfo, &ett_camel_T_tAnswerSpecificInfo, + &ett_camel_T_tMidCallSpecificInfo, + &ett_camel_T_midCallEvents1, &ett_camel_T_tDisconnectSpecificInfo, + &ett_camel_T_oTermSeizedSpecificInfo, + &ett_camel_T_callAcceptedSpecificInfo, + &ett_camel_T_oAbandonSpecificInfo, + &ett_camel_T_oChangeOfPositionSpecificInfo, + &ett_camel_T_tChangeOfPositionSpecificInfo, &ett_camel_EventSpecificInformationSMS, &ett_camel_T_o_smsFailureSpecificInfo, &ett_camel_T_o_smsSubmittedSpecificInfo, + &ett_camel_T_t_smsFailureSpecificInfo, + &ett_camel_T_t_smsDeliverySpecificInfo, &ett_camel_Extensions, &ett_camel_ForwardServiceInteractionInd, &ett_camel_GapCriteria, @@ -8590,6 +10335,7 @@ void proto_register_camel(void) { &ett_camel_GapTreatment, &ett_camel_GenericNumbers, &ett_camel_GPRS_QoS, + &ett_camel_GPRS_QoS_Extension, &ett_camel_GPRSEvent, &ett_camel_GPRSEventSpecificInformation, &ett_camel_T_attachChangeOfPositionSpecificInformation, @@ -8601,11 +10347,16 @@ void proto_register_camel(void) { &ett_camel_GPRSMSClass, &ett_camel_InbandInfo, &ett_camel_InformationToSend, + &ett_camel_LegOrCallSegment, &ett_camel_LocationInformationGPRS, &ett_camel_MessageID, &ett_camel_T_text, &ett_camel_SEQUENCE_SIZE_1_16_OF_Integer4, &ett_camel_T_variableMessage, + &ett_camel_MetDPCriteriaList, + &ett_camel_MetDPCriterion, + &ett_camel_MetDPCriterionAlt, + &ett_camel_MidCallControlInfo, &ett_camel_QualityOfService, &ett_camel_ReceivingSideID, &ett_camel_RequestedInformationList, @@ -8615,8 +10366,8 @@ void proto_register_camel(void) { &ett_camel_SendingSideID, &ett_camel_ServiceInteractionIndicatorsTwo, &ett_camel_SMSEvent, - &ett_camel_TimeInformation, &ett_camel_TimeIfTariffSwitch, + &ett_camel_TimeInformation, &ett_camel_Tone, &ett_camel_TransferredVolume, &ett_camel_T_volumeIfTariffSwitch, @@ -8641,11 +10392,15 @@ void proto_register_camel(void) { &ett_camel_SubscriberState, &ett_camel_PrivateExtensionList, &ett_camel_CellIdOrLAI, - &ett_camel_Ext_BasicServiceCode, &ett_camel_LegID, &ett_camel_VariablePartsArray, &ett_camel_InitialDPArgExtension, - &ett_camel_LocationInformation, + &ett_camel_InitiateCallAttemptArg, + &ett_camel_InitiateCallAttemptRes, + &ett_camel_MoveLegArg, + &ett_camel_PlayToneArg, + &ett_camel_SupportedCamelPhases, + &ett_camel_OfferedCamel4Functionalities, &ett_camel_EventReportGPRSArg, &ett_camel_ExtensionField, &ett_camel_ApplyChargingArg, @@ -8656,10 +10411,15 @@ void proto_register_camel(void) { &ett_camel_ConnectToResourceArg, &ett_camel_T_resourceAddress, &ett_camel_ContinueWithArgumentArg, + &ett_camel_ContinueWithArgumentArgExtension, + &ett_camel_DisconnectLegArg, + &ett_camel_EntityReleasedArg, + &ett_camel_DisconnectForwardConnectionWithArgumentArg, &ett_camel_EstablishTemporaryConnectionArg, &ett_camel_EventReportBCSMArg, &ett_camel_ResetTimerArg, &ett_camel_SendChargingInformationArg, + &ett_camel_SplitLegArg, &ett_camel_CAPGPRSReferenceNumber, &ett_camel_EventReportSMSArg, &ett_camel_RequestReportSMSEventArg, diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c index f87d9066a6..a162472aa4 100644 --- a/epan/dissectors/packet-gsm_map.c +++ b/epan/dissectors/packet-gsm_map.c @@ -1563,7 +1563,7 @@ static const asn_namedbit SupportedCamelPhases_bits[] = { { 0, NULL, 0, 0, NULL, NULL } }; -static int +int dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, SupportedCamelPhases_bits, hf_index, ett_gsm_map_SupportedCamelPhases, @@ -1595,7 +1595,7 @@ static int dissect_supportedCAMELPhases_impl(packet_info *pinfo, proto_tree *tre -static int +int dissect_gsm_map_IMSI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { tvbuff_t *parameter_tvb; @@ -2322,7 +2322,7 @@ dissect_gsm_map_TBCD_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset -static int +int dissect_gsm_map_IMEI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_gsm_map_TBCD_STRING(implicit_tag, tvb, offset, pinfo, tree, hf_index); @@ -4610,7 +4610,7 @@ static int dissect_SS_EventList_item(packet_info *pinfo, proto_tree *tree, tvbuf } -static const value_string gsm_map_Ext_BasicServiceCode_vals[] = { +const value_string gsm_map_Ext_BasicServiceCode_vals[] = { { 2, "ext-BearerService" }, { 3, "ext-Teleservice" }, { 0, NULL } @@ -4622,7 +4622,7 @@ static const ber_choice_t Ext_BasicServiceCode_choice[] = { { 0, 0, 0, 0, NULL } }; -static int +int dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, Ext_BasicServiceCode_choice, hf_index, ett_gsm_map_Ext_BasicServiceCode, @@ -4934,7 +4934,7 @@ static int dissect_preferentialCUG_Indicator(packet_info *pinfo, proto_tree *tre -static int +int dissect_gsm_map_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -5075,7 +5075,7 @@ static const ber_sequence_t CUG_Info_sequence[] = { { 0, 0, 0, NULL } }; -static int +int dissect_gsm_map_CUG_Info(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, CUG_Info_sequence, hf_index, ett_gsm_map_CUG_Info); @@ -6197,7 +6197,7 @@ static int dissect_pdp_Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff -static int +int dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { tvbuff_t *parameter_tvb; @@ -6242,7 +6242,7 @@ static int dissect_lcsAPN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *t -static int +int dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { tvbuff_t *parameter_tvb; @@ -6290,7 +6290,7 @@ static int dissect_pdp_ChargingCharacteristics_impl(packet_info *pinfo, proto_tr -static int +int dissect_gsm_map_Ext2_QoS_Subscribed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -6412,7 +6412,7 @@ static int dissect_lsaOnlyAccessIndicator_impl(packet_info *pinfo, proto_tree *t -static int +int dissect_gsm_map_LSAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -8206,7 +8206,7 @@ static int dissect_ageOfLocationEstimate_impl(packet_info *pinfo, proto_tree *tr -static int +int dissect_gsm_map_GeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -8235,7 +8235,7 @@ static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvb -static int +int dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -8309,7 +8309,7 @@ static const ber_sequence_t LocationInformation_sequence[] = { { 0, 0, 0, NULL } }; -static int +int dissect_gsm_map_LocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, LocationInformation_sequence, hf_index, ett_gsm_map_LocationInformation); @@ -8321,7 +8321,7 @@ static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree } -static const value_string gsm_map_SubscriberState_vals[] = { +const value_string gsm_map_SubscriberState_vals[] = { { 0, "assumedIdle" }, { 1, "camelBusy" }, { 2, "notProvidedFromVLR" }, @@ -8335,7 +8335,7 @@ static const ber_choice_t SubscriberState_choice[] = { { 0, 0, 0, 0, NULL } }; -static int +int dissect_gsm_map_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, SubscriberState_choice, hf_index, ett_gsm_map_SubscriberState, @@ -8349,7 +8349,7 @@ static int dissect_subscriberState(packet_info *pinfo, proto_tree *tree, tvbuff_ -static int +int dissect_gsm_map_RAIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -8433,7 +8433,7 @@ static int dissect_teid_ForIu_impl(packet_info *pinfo, proto_tree *tree, tvbuff_ -static int +int dissect_gsm_map_GPRSChargingID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -8558,7 +8558,7 @@ static int dissect_ps_SubscriberState_impl(packet_info *pinfo, proto_tree *tree, -static int +int dissect_gsm_map_MS_Classmark2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -8991,7 +8991,7 @@ static const ber_sequence_t UU_Data_sequence[] = { { 0, 0, 0, NULL } }; -static int +int dissect_gsm_map_UU_Data(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, UU_Data_sequence, hf_index, ett_gsm_map_UU_Data); @@ -10858,7 +10858,7 @@ static const asn_namedbit OfferedCamel4Functionalities_bits[] = { { 0, NULL, 0, 0, NULL, NULL } }; -static int +int dissect_gsm_map_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset, OfferedCamel4Functionalities_bits, hf_index, ett_gsm_map_OfferedCamel4Functionalities, diff --git a/epan/dissectors/packet-gsm_map.h b/epan/dissectors/packet-gsm_map.h index 692d4d8eda..a52a3c73a2 100644 --- a/epan/dissectors/packet-gsm_map.h +++ b/epan/dissectors/packet-gsm_map.h @@ -50,16 +50,34 @@ extern const value_string ssCode_vals[]; /*--- Included file: packet-gsm_map-exp.h ---*/ extern const value_string gsm_map_NotificationToMSUser_vals[]; +extern const value_string gsm_map_SubscriberState_vals[]; extern const value_string gsm_map_SS_Info_vals[]; extern const value_string gsm_map_InterrogateSS_Res_vals[]; extern const value_string gsm_map_GetPasswordArg_vals[]; +extern const value_string gsm_map_Ext_BasicServiceCode_vals[]; +int dissect_gsm_map_SupportedCamelPhases(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_ISDN_AddressString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_QoS_Subscribed(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_Ext_QoS_Subscribed(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_Ext2_QoS_Subscribed(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_LSAIdentity(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_SS_Status(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_CUG_Info(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_CUG_Index(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_CUG_Interlock(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_NotificationToMSUser(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_AlertingPattern(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_IMSI(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_IMEI(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_LCSClientExternalID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_LCSServiceTypeID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_LocationInformation(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_RAIdentity(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_GeographicalInformation(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_SubscriberState(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_GPRSChargingID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_UU_Data(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_RegisterSS_Arg(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_SS_Info(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_InterrogateSS_Res(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); @@ -74,9 +92,12 @@ int dissect_gsm_map_CurrentPassword(gboolean implicit_tag, tvbuff_t *tvb, int of int dissect_gsm_map_RegisterCC_EntryRes(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_EraseCC_EntryArg(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_EraseCC_EntryRes(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_MS_Classmark2(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_OfferedCamel4Functionalities(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_SS_ForBS_Code(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_CCBS_Feature(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_AgeOfLocationInformation(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); +int dissect_gsm_map_Ext_BasicServiceCode(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_AddressString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_ISDN_SubaddressString(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); int dissect_gsm_map_GSN_Address(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index); diff --git a/epan/dissectors/packet-inap.c b/epan/dissectors/packet-inap.c index 3cf7f4f790..bfd995c96e 100644 --- a/epan/dissectors/packet-inap.c +++ b/epan/dissectors/packet-inap.c @@ -29,6 +29,7 @@ * 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 + * ITU Q.1218 */ #ifdef HAVE_CONFIG_H @@ -47,8 +48,9 @@ #include "packet-inap.h" #include "packet-q931.h" #include "packet-e164.h" +#include "packet-isup.h" -#define PNAME "INAP" +#define PNAME "Intelligent Network Application Protocol" #define PSNAME "INAP" #define PFNAME "inap" @@ -60,8 +62,8 @@ static int hf_inap_linkedid = -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_ReturnError = -1; /* InvokePDU */ -static int hf_inap_returnResult = -1; /* InvokePDU */ +static int hf_inap_ReturnError = -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; @@ -79,174 +81,118 @@ static int hf_inap_targetCallID = -1; /* CallID */ static int hf_inap_legToBeConnectedID = -1; /* OCTET_STRING */ static int hf_inap_legToBeDetached = -1; /* OCTET_STRING */ static int hf_inap_legID = -1; /* LegID */ -static int hf_inap_sendingSideID = -1; /* OCTET_STRING_SIZE_1 */ -static int hf_inap_receivingSideID = -1; /* OCTET_STRING_SIZE_1 */ static int hf_inap_heldLegID = -1; /* LegID */ static int hf_inap_legToBeReleased = -1; /* LegID */ static int hf_inap_releaseCause = -1; /* Cause */ static int hf_inap_legStatus = -1; /* LegStatus */ -static int hf_inap_VariableParts_item = -1; /* VariableParts_item */ -static int hf_inap_integer = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_number = -1; /* OCTET_STRING */ -static int hf_inap_time = -1; /* OCTET_STRING */ -static int hf_inap_date = -1; /* OCTET_STRING */ -static int hf_inap_price = -1; /* OCTET_STRING */ -static int hf_inap_elementaryMessageID = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_variableParts = -1; /* VariableParts */ -static int hf_inap_toneID = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_tduration = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_messageContent = -1; /* IA5String */ -static int hf_inap_attributes = -1; /* OCTET_STRING */ -static int hf_inap_text = -1; /* Text */ -static int hf_inap_elementaryMessageIDs = -1; /* T_elementaryMessageIDs */ -static int hf_inap_elementaryMessageIDs_item = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_variableMessage = -1; /* VariableMessage */ -static int hf_inap_inbandInfo = -1; /* T_inbandInfo */ -static int hf_inap_messageID = -1; /* MessageID */ -static int hf_inap_numberOfRepetitions = -1; /* INTEGER_1_127 */ -static int hf_inap_mduration = -1; /* INTEGER_0_32767 */ -static int hf_inap_interval = -1; /* INTEGER_0_32767 */ -static int hf_inap_tone = -1; /* Tone */ -static int hf_inap_displayInformation = -1; /* IA5String */ -static int hf_inap_dialledNumber = -1; /* OCTET_STRING */ -static int hf_inap_callingLineID = -1; /* OCTET_STRING */ -static int hf_inap_serviceKey = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_addressAndService = -1; /* T_addressAndService */ -static int hf_inap_calledAddressValue = -1; /* OCTET_STRING */ -static int hf_inap_callingAddressValue = -1; /* OCTET_STRING */ -static int hf_inap_locationNumber = -1; /* OCTET_STRING */ static int hf_inap_Extensions_item = -1; /* Extensions_item */ static int hf_inap_type = -1; /* INTEGER */ static int hf_inap_criticality = -1; /* T_criticality */ static int hf_inap_value = -1; /* OCTET_STRING */ -static int hf_inap_filteredCallTreatment = -1; /* T_filteredCallTreatment */ -static int hf_inap_sFBillingChargingCharacteristics = -1; /* OCTET_STRING */ -static int hf_inap_informationToSend = -1; /* InformationToSend */ -static int hf_inap_maximumNumberOfCounters = -1; /* INTEGER */ -static int hf_inap_filteringCharacteristics = -1; /* T_filteringCharacteristics */ -static int hf_inap_numberOfCalls = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_filteringTimeOut = -1; /* T_filteringTimeOut */ -static int hf_inap_aduration = -1; /* INTEGER_M2_86400 */ -static int hf_inap_stopTime = -1; /* OCTET_STRING_SIZE_6 */ +static int hf_inap_filteredCallTreatment = -1; /* FilteredCallTreatment */ +static int hf_inap_filteringCharacteristics = -1; /* FilteringCharacteristics */ +static int hf_inap_filteringTimeOut = -1; /* FilteringTimeOut */ static int hf_inap_filteringCriteria = -1; /* FilteringCriteria */ -static int hf_inap_startTime = -1; /* OCTET_STRING_SIZE_6 */ +static int hf_inap_startTime = -1; /* DateAndTime */ static int hf_inap_extensions = -1; /* Extensions */ -static int hf_inap_messageType = -1; /* T_messageType */ -static int hf_inap_dpAssignment = -1; /* T_dpAssignment */ -static int hf_inap_miscCallInfo = -1; /* MiscCallInfo */ -static int hf_inap_triggerType = -1; /* TriggerType */ -static int hf_inap_RouteList_item = -1; /* OCTET_STRING */ -static int hf_inap_bearerCap = -1; /* OCTET_STRING */ -static int hf_inap_tmr = -1; /* OCTET_STRING_SIZE_1 */ -static int hf_inap_serviceAddressInformation = -1; /* ServiceAddressInformation */ -static int hf_inap_bearerCapability = -1; /* BearerCapability */ -static int hf_inap_calledPartyNumber = -1; /* OCTET_STRING */ -static int hf_inap_callingPartyNumber = -1; /* OCTET_STRING */ -static int hf_inap_callingPartysCategory = -1; /* OCTET_STRING_SIZE_1 */ -static int hf_inap_iPSSPCapabilities = -1; /* OCTET_STRING */ -static int hf_inap_iPAvailable = -1; /* OCTET_STRING */ -static int hf_inap_iSDNAccessRelatedInformation = -1; /* OCTET_STRING */ -static int hf_inap_cGEncountered = -1; /* CGEncountered */ -static int hf_inap_serviceProfileIdentifier = -1; /* OCTET_STRING */ -static int hf_inap_terminalType = -1; /* TerminalType */ -static int hf_inap_chargeNumber = -1; /* OCTET_STRING */ -static int hf_inap_servingAreaID = -1; /* OCTET_STRING */ -static int hf_inap_trunkGroupID = -1; /* INTEGER */ -static int hf_inap_privateFacilityID = -1; /* INTEGER */ -static int hf_inap_huntGroup = -1; /* OCTET_STRING */ -static int hf_inap_routeIndex = -1; /* OCTET_STRING */ static int hf_inap_dpSpecificCommonParameters = -1; /* DpSpecificCommonParameters */ -static int hf_inap_dialledDigits = -1; /* OCTET_STRING */ -static int hf_inap_callingPartyBusinessGroupID = -1; /* OCTET_STRING */ -static int hf_inap_callingPartySubaddress = -1; /* OCTET_STRING */ -static int hf_inap_callingFacilityGroup = -1; /* CallingFacilityGroup */ -static int hf_inap_callingFacilityGroupMember = -1; /* INTEGER */ -static int hf_inap_originalCalledPartyID = -1; /* OCTET_STRING */ -static int hf_inap_prefix = -1; /* OCTET_STRING */ -static int hf_inap_redirectingPartyID = -1; /* OCTET_STRING */ -static int hf_inap_redirectionInformation = -1; /* OCTET_STRING_SIZE_2 */ +static int hf_inap_dialledDigits = -1; /* CalledPartyNumber */ +static int hf_inap_callingPartyBusinessGroupID = -1; /* CallingPartyBusinessGroupID */ +static int hf_inap_callingPartySubaddress = -1; /* CallingPartySubaddress */ +static int hf_inap_callingFacilityGroup = -1; /* FacilityGroup */ +static int hf_inap_callingFacilityGroupMember = -1; /* FacilityGroupMember */ +static int hf_inap_originalCalledPartyID = -1; /* OriginalCalledPartyID */ +static int hf_inap_prefix = -1; /* Digits */ +static int hf_inap_redirectingPartyID = -1; /* RedirectingPartyID */ +static int hf_inap_redirectionInformation = -1; /* RedirectionInformation */ static int hf_inap_routeList = -1; /* RouteList */ -static int hf_inap_travellingClassMark = -1; /* OCTET_STRING */ -static int hf_inap_featureCode = -1; /* OCTET_STRING */ -static int hf_inap_accessCode = -1; /* OCTET_STRING */ -static int hf_inap_carrier = -1; /* OCTET_STRING */ -static int hf_inap_destinationRoutingAddress = -1; /* SEQUENCE_SIZE_1_3_OF_DestinationAddress */ -static int hf_inap_destinationRoutingAddress_item = -1; /* DestinationAddress */ -static int hf_inap_alertingPattern = -1; /* OCTET_STRING_SIZE_3 */ -static int hf_inap_aChBillingChargingCharacteristics = -1; /* OCTET_STRING */ -static int hf_inap_partyToCharge = -1; /* PartyToCharge */ -static int hf_inap_correlationID = -1; /* OCTET_STRING */ -static int hf_inap_gapCriteria = -1; /* T_gapCriteria */ -static int hf_inap_gapOnService = -1; /* T_gapOnService */ -static int hf_inap_dpCriteria = -1; /* T_dpCriteria */ -static int hf_inap_calledAddressAndService = -1; /* T_calledAddressAndService */ -static int hf_inap_callingAddressAndService = -1; /* T_callingAddressAndService */ -static int hf_inap_gapIndicators = -1; /* T_gapIndicators */ -static int hf_inap_cgduration = -1; /* INTEGER_M2_86400 */ -static int hf_inap_gapInterval = -1; /* INTEGER_M1_60000 */ -static int hf_inap_controlType = -1; /* T_controlType */ -static int hf_inap_gapTreatment = -1; /* T_gapTreatment */ -static int hf_inap_both = -1; /* Both */ -static int hf_inap_requestedInformationList = -1; /* T_requestedInformationList */ -static int hf_inap_requestedInformationList_item = -1; /* T_requestedInformationList_item */ -static int hf_inap_requestedInformationType = -1; /* T_requestedInformationType */ -static int hf_inap_requestedInformationValue = -1; /* T_requestedInformationValue */ -static int hf_inap_callAttemptElapsedTimeValue = -1; /* INTEGER_0_255 */ -static int hf_inap_callStopTimeValue = -1; /* OCTET_STRING_SIZE_6 */ -static int hf_inap_callConnectedElapsedTimeValue = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_releaseCauseValue = -1; /* Cause */ -static int hf_inap_requestedInformationTypeList = -1; /* T_requestedInformationTypeList */ -static int hf_inap_requestedInformationTypeList_item = -1; /* T_requestedInformationTypeList_item */ -static int hf_inap_invokeID = -1; /* INTEGER_M128_127 */ +static int hf_inap_travellingClassMark = -1; /* TravellingClassMark */ +static int hf_inap_featureCode = -1; /* FeatureCode */ +static int hf_inap_accessCode = -1; /* AccessCode */ +static int hf_inap_carrier = -1; /* Carrier */ +static int hf_inap_destinationRoutingAddress = -1; /* DestinationRoutingAddress */ +static int hf_inap_alertingPattern = -1; /* AlertingPattern */ +static int hf_inap_iSDNAccessRelatedInformation = -1; /* ISDNAccessRelatedInformation */ +static int hf_inap_callingPartyNumber = -1; /* CallingPartyNumber */ +static int hf_inap_callingPartysCategory = -1; /* CallingPartysCategory */ +static int hf_inap_calledPartyNumber = -1; /* CalledPartyNumber */ +static int hf_inap_chargeNumber = -1; /* ChargeNumber */ +static int hf_inap_aChBillingChargingCharacteristics = -1; /* AChBillingChargingCharacteristics */ +static int hf_inap_partyToCharge = -1; /* LegID */ +static int hf_inap_correlationID = -1; /* CorrelationID */ +static int hf_inap_iPAvailable = -1; /* IPAvailable */ +static int hf_inap_iPSSPCapabilities = -1; /* IPSSPCapabilities */ +static int hf_inap_gapCriteria = -1; /* GapCriteria */ +static int hf_inap_gapIndicators = -1; /* GapIndicators */ +static int hf_inap_controlType = -1; /* ControlType */ +static int hf_inap_gapTreatment = -1; /* GapTreatment */ +static int hf_inap_requestedInformationTypeList = -1; /* RequestedInformationTypeList */ +static int hf_inap_invokeID = -1; /* InvokeID */ static int hf_inap_allRequests = -1; /* NULL */ -static int hf_inap_lineID = -1; /* OCTET_STRING */ -static int hf_inap_facilityGroupID = -1; /* FacilityGroupID */ -static int hf_inap_facilityGroupMemberID = -1; /* INTEGER */ static int hf_inap_resourceID = -1; /* ResourceID */ -static int hf_inap_numberingPlan = -1; /* OCTET_STRING_SIZE_1 */ -static int hf_inap_cutAndPaste = -1; /* INTEGER_0_22 */ -static int hf_inap_forwardingCondition = -1; /* T_forwardingCondition */ -static int hf_inap_scfID = -1; /* OCTET_STRING */ -static int hf_inap_serviceInteractionIndicators = -1; /* OCTET_STRING */ +static int hf_inap_numberingPlan = -1; /* NumberingPlan */ +static int hf_inap_cutAndPaste = -1; /* CutAndPaste */ +static int hf_inap_forwardingCondition = -1; /* ForwardingCondition */ +static int hf_inap_scfID = -1; /* ScfID */ +static int hf_inap_serviceInteractionIndicators = -1; /* ServiceInteractionIndicators */ static int hf_inap_resourceAddress = -1; /* T_resourceAddress */ -static int hf_inap_ipRoutingAddress = -1; /* OCTET_STRING */ +static int hf_inap_ipRoutingAddress = -1; /* IPRoutingAddress */ +static int hf_inap_both2 = -1; /* T_both2 */ static int hf_inap_none = -1; /* NULL */ -static int hf_inap_assistingSSPIPRoutingAddress = -1; /* OCTET_STRING */ -static int hf_inap_eventTypeCharging = -1; /* OCTET_STRING */ -static int hf_inap_eventSpecificInformationCharging = -1; /* OCTET_STRING */ +static int hf_inap_serviceAddressInformation = -1; /* ServiceAddressInformation */ +static int hf_inap_bearerCapability = -1; /* BearerCapability */ +static int hf_inap_cGEncountered = -1; /* CGEncountered */ +static int hf_inap_locationNumber = -1; /* LocationNumber */ +static int hf_inap_serviceProfileIdentifier = -1; /* ServiceProfileIdentifier */ +static int hf_inap_terminalType = -1; /* TerminalType */ +static int hf_inap_servingAreaID = -1; /* ServingAreaID */ +static int hf_inap_assistingSSPIPRoutingAddress = -1; /* AssistingSSPIPRoutingAddress */ +static int hf_inap_eventTypeCharging = -1; /* EventTypeCharging */ +static int hf_inap_eventSpecificInformationCharging = -1; /* EventSpecificInformationCharging */ static int hf_inap_monitorMode = -1; /* MonitorMode */ static int hf_inap_eventTypeBCSM = -1; /* EventTypeBCSM */ -static int hf_inap_bcsmEventCorrelationID = -1; /* OCTET_STRING */ -static int hf_inap_eventSpecificInformationBCSM = -1; /* T_eventSpecificInformationBCSM */ -static int hf_inap_collectedInfoSpecificInfo = -1; /* T_collectedInfoSpecificInfo */ -static int hf_inap_calledPartynumber = -1; /* OCTET_STRING */ -static int hf_inap_analyzedInfoSpecificInfo = -1; /* T_analyzedInfoSpecificInfo */ -static int hf_inap_routeSelectFailureSpecificInfo = -1; /* T_routeSelectFailureSpecificInfo */ -static int hf_inap_failureCause = -1; /* OCTET_STRING_SIZE_2_10 */ -static int hf_inap_oCalledPartyBusySpecificInfo = -1; /* T_oCalledPartyBusySpecificInfo */ -static int hf_inap_busyCause = -1; /* OCTET_STRING_SIZE_2_10 */ -static int hf_inap_oNoAnswerSpecificInfo = -1; /* T_oNoAnswerSpecificInfo */ -static int hf_inap_oAnswerSpecificInfo = -1; /* T_oAnswerSpecificInfo */ -static int hf_inap_oMidCallSpecificInfo = -1; /* T_oMidCallSpecificInfo */ -static int hf_inap_connectTime = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_oDisconnectSpecificInfo = -1; /* T_oDisconnectSpecificInfo */ -static int hf_inap_tBusySpecificInfo = -1; /* T_tBusySpecificInfo */ -static int hf_inap_tNoAnswerSpecificInfo = -1; /* T_tNoAnswerSpecificInfo */ -static int hf_inap_tAnswerSpecificInfo = -1; /* T_tAnswerSpecificInfo */ -static int hf_inap_tMidCallSpecificInfo = -1; /* T_tMidCallSpecificInfo */ -static int hf_inap_tDisconnectSpecificInfo = -1; /* T_tDisconnectSpecificInfo */ -static int hf_inap_holdcause = -1; /* OCTET_STRING */ +static int hf_inap_bcsmEventCorrelationID = -1; /* CorrelationID */ +static int hf_inap_eventSpecificInformationBCSM = -1; /* EventSpecificInformationBCSM */ +static int hf_inap_miscCallInfo = -1; /* MiscCallInfo */ +static int hf_inap_holdcause = -1; /* HoldCause */ static int hf_inap_empty = -1; /* NULL */ -static int hf_inap_highLayerCompatibility = -1; /* OCTET_STRING_SIZE_2 */ -static int hf_inap_additionalCallingPartyNumber = -1; /* OCTET_STRING */ -static int hf_inap_forwardCallIndicators = -1; /* OCTET_STRING_SIZE_2 */ -static int hf_inap_calledPartyBusinessGroupID = -1; /* OCTET_STRING */ -static int hf_inap_calledPartySubaddress = -1; /* OCTET_STRING */ +static int hf_inap_serviceKey = -1; /* ServiceKey */ +static int hf_inap_triggerType = -1; /* TriggerType */ +static int hf_inap_highLayerCompatibility = -1; /* HighLayerCompatibility */ +static int hf_inap_additionalCallingPartyNumber = -1; /* AdditionalCallingPartyNumber */ +static int hf_inap_forwardCallIndicators = -1; /* ForwardCallIndicators */ +static int hf_inap_calledPartyBusinessGroupID = -1; /* CalledPartyBusinessGroupID */ +static int hf_inap_calledPartySubaddress = -1; /* CalledPartySubaddress */ static int hf_inap_featureRequestIndicator = -1; /* FeatureRequestIndicator */ +static int hf_inap_busyCause = -1; /* Cause */ +static int hf_inap_connectTime = -1; /* Integer4 */ +static int hf_inap_informationToSend = -1; /* InformationToSend */ static int hf_inap_disconnectFromIPForbidden = -1; /* BOOLEAN */ static int hf_inap_requestAnnouncementComplete = -1; /* BOOLEAN */ -static int hf_inap_collectedInfo = -1; /* T_collectedInfo */ -static int hf_inap_collectedDigits = -1; /* T_collectedDigits */ +static int hf_inap_collectedInfo = -1; /* CollectedInfo */ +static int hf_inap_digitsResponse = -1; /* Digits */ +static int hf_inap_iA5Response = -1; /* IA5String */ +static int hf_inap_initialCallSegment = -1; /* Cause */ +static int hf_inap_allCallSegments = -1; /* T_allCallSegments */ +static int hf_inap_resourceStatus = -1; /* ResourceStatus */ +static int hf_inap_monitorDuration = -1; /* Duration */ +static int hf_inap_RequestNotificationChargingEvent_item = -1; /* RequestNotificationChargingEvent_item */ +static int hf_inap_eventTypeCharging2 = -1; /* OCTET_STRING */ +static int hf_inap_bcsmEvents = -1; /* SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent */ +static int hf_inap_bcsmEvents_item = -1; /* BCSMEvent */ +static int hf_inap_timerID = -1; /* TimerID */ +static int hf_inap_timervalue = -1; /* TimerValue */ +static int hf_inap_failureCause = -1; /* Cause */ +static int hf_inap_destinationNumberRoutingAddress = -1; /* CalledPartyNumber */ +static int hf_inap_calledFacilityGroup = -1; /* FacilityGroup */ +static int hf_inap_calledFacilityGroupMember = -1; /* FacilityGroupMember */ +static int hf_inap_sCIBillingChargingCharacteristics = -1; /* SCIBillingChargingCharacteristics */ +static int hf_inap_countersValue = -1; /* CountersValue */ +static int hf_inap_responseCondition = -1; /* ResponseCondition */ +static int hf_inap_reportCondition = -1; /* ReportCondition */ +static int hf_inap_dpSpecificCriteria = -1; /* DpSpecificCriteria */ +static int hf_inap_bearerCap = -1; /* BearerCap */ +static int hf_inap_tmr = -1; /* OCTET_STRING_SIZE_1 */ static int hf_inap_minimumNbOfDigits = -1; /* INTEGER_1_127 */ static int hf_inap_maximumNbOfDigits = -1; /* INTEGER_1_127 */ static int hf_inap_endOfReplyDigit = -1; /* OCTET_STRING_SIZE_1_2 */ @@ -254,35 +200,92 @@ static int hf_inap_cancelDigit = -1; /* OCTET_STRING_SIZE_1_2 */ static int hf_inap_startDigit = -1; /* OCTET_STRING_SIZE_1_2 */ static int hf_inap_firstDigitTimeOut = -1; /* INTEGER_1_127 */ static int hf_inap_interDigitTimeOut = -1; /* INTEGER_1_127 */ -static int hf_inap_errorTreatment = -1; /* T_errorTreatment */ +static int hf_inap_errorTreatment = -1; /* ErrorTreatment */ static int hf_inap_interruptableAnnInd = -1; /* BOOLEAN */ static int hf_inap_voiceInformation = -1; /* BOOLEAN */ static int hf_inap_voiceBack = -1; /* BOOLEAN */ +static int hf_inap_collectedDigits = -1; /* CollectedDigits */ static int hf_inap_iA5Information = -1; /* BOOLEAN */ -static int hf_inap_digitsResponse = -1; /* OCTET_STRING */ -static int hf_inap_iA5Response = -1; /* IA5String */ -static int hf_inap_initialCallSegment = -1; /* Cause */ -static int hf_inap_allCallSegments = -1; /* T_allCallSegments */ -static int hf_inap_resourceStatus = -1; /* ResourceStatus */ -static int hf_inap_monitorDuration = -1; /* INTEGER_M2_86400 */ -static int hf_inap_RequestNotificationChargingEvent_item = -1; /* RequestNotificationChargingEvent_item */ -static int hf_inap_bcsmEvents = -1; /* T_bcsmEvents */ -static int hf_inap_bcsmEvents_item = -1; /* T_bcsmEvents_item */ -static int hf_inap_dpSpecificCriteria = -1; /* T_dpSpecificCriteria */ -static int hf_inap_numberOfDigits = -1; /* INTEGER_1_255 */ -static int hf_inap_applicationTimer = -1; /* INTEGER_0_2047 */ -static int hf_inap_timerID = -1; /* T_timerID */ -static int hf_inap_timervalue = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_destinationNumberRoutingAddress = -1; /* OCTET_STRING */ -static int hf_inap_calledFacilityGroup = -1; /* CalledFacilityGroup */ -static int hf_inap_calledFacilityGroupMember = -1; /* INTEGER */ -static int hf_inap_sCIBillingChargingCharacteristics = -1; /* OCTET_STRING */ -static int hf_inap_countersValue = -1; /* T_countersValue */ -static int hf_inap_countersValue_item = -1; /* T_countersValue_item */ -static int hf_inap_counterID = -1; /* INTEGER_0_99 */ -static int hf_inap_counterValue = -1; /* INTEGER_0_2147483647 */ -static int hf_inap_responseCondition = -1; /* T_responseCondition */ -static int hf_inap_reportCondition = -1; /* T_reportCondition */ +static int hf_inap_counterID = -1; /* CounterID */ +static int hf_inap_counterValue = -1; /* Integer4 */ +static int hf_inap_CountersValue_item = -1; /* CounterAndValue */ +static int hf_inap_DestinationRoutingAddress_item = -1; /* CalledPartyNumber */ +static int hf_inap_numberOfDigits = -1; /* NumberOfDigits */ +static int hf_inap_applicationTimer = -1; /* ApplicationTimer */ +static int hf_inap_collectedInfoSpecificInfo = -1; /* T_collectedInfoSpecificInfo */ +static int hf_inap_calledPartynumber = -1; /* CalledPartyNumber */ +static int hf_inap_analyzedInfoSpecificInfo = -1; /* T_analyzedInfoSpecificInfo */ +static int hf_inap_routeSelectFailureSpecificInfo = -1; /* T_routeSelectFailureSpecificInfo */ +static int hf_inap_oCalledPartyBusySpecificInfo = -1; /* T_oCalledPartyBusySpecificInfo */ +static int hf_inap_oNoAnswerSpecificInfo = -1; /* T_oNoAnswerSpecificInfo */ +static int hf_inap_oAnswerSpecificInfo = -1; /* T_oAnswerSpecificInfo */ +static int hf_inap_oMidCallSpecificInfo = -1; /* T_oMidCallSpecificInfo */ +static int hf_inap_oDisconnectSpecificInfo = -1; /* T_oDisconnectSpecificInfo */ +static int hf_inap_tBusySpecificInfo = -1; /* T_tBusySpecificInfo */ +static int hf_inap_tNoAnswerSpecificInfo = -1; /* T_tNoAnswerSpecificInfo */ +static int hf_inap_tAnswerSpecificInfo = -1; /* T_tAnswerSpecificInfo */ +static int hf_inap_tMidCallSpecificInfo = -1; /* T_tMidCallSpecificInfo */ +static int hf_inap_tDisconnectSpecificInfo = -1; /* T_tDisconnectSpecificInfo */ +static int hf_inap_trunkGroupID = -1; /* INTEGER */ +static int hf_inap_privateFacilityID = -1; /* INTEGER */ +static int hf_inap_huntGroup = -1; /* OCTET_STRING */ +static int hf_inap_routeIndex = -1; /* OCTET_STRING */ +static int hf_inap_sFBillingChargingCharacteristics = -1; /* SFBillingChargingCharacteristics */ +static int hf_inap_maximumNumberOfCounters = -1; /* MaximumNumberOfCounters */ +static int hf_inap_interval1 = -1; /* INTEGER_M1_32000 */ +static int hf_inap_numberOfCalls = -1; /* Integer4 */ +static int hf_inap_dialledNumber = -1; /* Digits */ +static int hf_inap_callingLineID = -1; /* Digits */ +static int hf_inap_addressAndService = -1; /* T_addressAndService */ +static int hf_inap_calledAddressValue = -1; /* Digits */ +static int hf_inap_callingAddressValue = -1; /* Digits */ +static int hf_inap_duration = -1; /* Duration */ +static int hf_inap_stopTime = -1; /* DateAndTime */ +static int hf_inap_gapOnService = -1; /* GapOnService */ +static int hf_inap_calledAddressAndService = -1; /* T_calledAddressAndService */ +static int hf_inap_callingAddressAndService = -1; /* T_callingAddressAndService */ +static int hf_inap_dpCriteria = -1; /* EventTypeBCSM */ +static int hf_inap_gapInterval = -1; /* Interval */ +static int hf_inap_both = -1; /* T_both */ +static int hf_inap_messageID = -1; /* MessageID */ +static int hf_inap_numberOfRepetitions = -1; /* INTEGER_1_127 */ +static int hf_inap_duration3 = -1; /* INTEGER_0_32767 */ +static int hf_inap_interval = -1; /* INTEGER_0_32767 */ +static int hf_inap_inbandInfo = -1; /* InbandInfo */ +static int hf_inap_tone = -1; /* Tone */ +static int hf_inap_displayInformation = -1; /* DisplayInformation */ +static int hf_inap_sendingSideID = -1; /* LegType */ +static int hf_inap_receivingSideID = -1; /* LegType */ +static int hf_inap_elementaryMessageID = -1; /* Integer4 */ +static int hf_inap_text = -1; /* T_text */ +static int hf_inap_messageContent = -1; /* IA5String_SIZE_minMessageContentLength_maxMessageContentLength */ +static int hf_inap_attributes = -1; /* OCTET_STRING_SIZE_minAttributesLength_maxAttributesLength */ +static int hf_inap_elementaryMessageIDs = -1; /* SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4 */ +static int hf_inap_elementaryMessageIDs_item = -1; /* Integer4 */ +static int hf_inap_variableMessage = -1; /* T_variableMessage */ +static int hf_inap_variableParts = -1; /* SEQUENCE_SIZE_1_5_OF_VariablePart */ +static int hf_inap_variableParts_item = -1; /* VariablePart */ +static int hf_inap_messageType = -1; /* T_messageType */ +static int hf_inap_dpAssignment = -1; /* T_dpAssignment */ +static int hf_inap_RequestedInformationList_item = -1; /* RequestedInformation */ +static int hf_inap_RequestedInformationTypeList_item = -1; /* RequestedInformationType */ +static int hf_inap_requestedInformationType = -1; /* RequestedInformationType */ +static int hf_inap_requestedInformationValue = -1; /* RequestedInformationValue */ +static int hf_inap_callAttemptElapsedTimeValue = -1; /* INTEGER_0_255 */ +static int hf_inap_callStopTimeValue = -1; /* DateAndTime */ +static int hf_inap_callConnectedElapsedTimeValue = -1; /* Integer4 */ +static int hf_inap_releaseCauseValue = -1; /* Cause */ +static int hf_inap_lineID = -1; /* Digits */ +static int hf_inap_facilityGroupID = -1; /* FacilityGroup */ +static int hf_inap_facilityGroupMemberID = -1; /* INTEGER */ +static int hf_inap_RouteList_item = -1; /* OCTET_STRING */ +static int hf_inap_toneID = -1; /* Integer4 */ +static int hf_inap_tone_duration = -1; /* Integer4 */ +static int hf_inap_integer = -1; /* Integer4 */ +static int hf_inap_number = -1; /* Digits */ +static int hf_inap_time = -1; /* OCTET_STRING_SIZE_2 */ +static int hf_inap_date2 = -1; /* OCTET_STRING_SIZE_3 */ +static int hf_inap_price = -1; /* OCTET_STRING_SIZE_4 */ static int hf_inap_problem = -1; /* T_problem */ static int hf_inap_operation = -1; /* INTEGER_M128_127 */ static int hf_inap_rinvokeID = -1; /* T_rinvokeID */ @@ -322,66 +325,74 @@ static gint ett_inap_CallPartyHandlingResultsArg = -1; static gint ett_inap_ChangePartiesArg = -1; static gint ett_inap_DetachArg = -1; static gint ett_inap_HoldCallPartyConnectionArg = -1; -static gint ett_inap_LegID = -1; static gint ett_inap_ReconnectArg = -1; static gint ett_inap_ReleaseCallPartyConnectionArg = -1; static gint ett_inap_LegInformation = -1; -static gint ett_inap_VariableParts = -1; -static gint ett_inap_VariableParts_item = -1; -static gint ett_inap_VariableMessage = -1; -static gint ett_inap_Tone = -1; -static gint ett_inap_Text = -1; -static gint ett_inap_MessageID = -1; -static gint ett_inap_T_elementaryMessageIDs = -1; -static gint ett_inap_InformationToSend = -1; -static gint ett_inap_T_inbandInfo = -1; -static gint ett_inap_FilteringCriteria = -1; -static gint ett_inap_T_addressAndService = -1; static gint ett_inap_Extensions = -1; static gint ett_inap_Extensions_item = -1; -static gint ett_inap_ActivateServiceFilteringarg = -1; -static gint ett_inap_T_filteredCallTreatment = -1; -static gint ett_inap_T_filteringCharacteristics = -1; -static gint ett_inap_T_filteringTimeOut = -1; -static gint ett_inap_MiscCallInfo = -1; -static gint ett_inap_ServiceAddressInformation = -1; -static gint ett_inap_RouteList = -1; -static gint ett_inap_BearerCapability = -1; -static gint ett_inap_DpSpecificCommonParameters = -1; -static gint ett_inap_CallingFacilityGroup = -1; +static gint ett_inap_ActivateServiceFilteringArg = -1; static gint ett_inap_AnalysedInformationarg = -1; static gint ett_inap_AnalyseInformationarg = -1; -static gint ett_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress = -1; -static gint ett_inap_PartyToCharge = -1; -static gint ett_inap_ApplyChargingarg = -1; -static gint ett_inap_AssistRequestInstructionsarg = -1; -static gint ett_inap_CallGaparg = -1; -static gint ett_inap_T_gapCriteria = -1; -static gint ett_inap_T_gapOnService = -1; -static gint ett_inap_T_calledAddressAndService = -1; -static gint ett_inap_T_callingAddressAndService = -1; -static gint ett_inap_T_gapIndicators = -1; -static gint ett_inap_T_gapTreatment = -1; -static gint ett_inap_Both = -1; -static gint ett_inap_CallInformationReportarg = -1; -static gint ett_inap_T_requestedInformationList = -1; -static gint ett_inap_T_requestedInformationList_item = -1; -static gint ett_inap_T_requestedInformationValue = -1; -static gint ett_inap_CallInformationRequestarg = -1; -static gint ett_inap_T_requestedInformationTypeList = -1; -static gint ett_inap_Cancelarg = -1; -static gint ett_inap_FacilityGroupID = -1; -static gint ett_inap_ResourceID = -1; -static gint ett_inap_CancelStatusReportRequestarg = -1; -static gint ett_inap_CollectedInformationarg = -1; -static gint ett_inap_CollectInformationarg = -1; -static gint ett_inap_Connectarg = -1; -static gint ett_inap_ConnectToResource = -1; +static gint ett_inap_ApplyChargingArg = -1; +static gint ett_inap_AssistRequestInstructionsArg = -1; +static gint ett_inap_CallGapArg = -1; +static gint ett_inap_CallInformationReportArg = -1; +static gint ett_inap_CallInformationRequestArg = -1; +static gint ett_inap_CancelArg = -1; +static gint ett_inap_CancelStatusReportRequestArg = -1; +static gint ett_inap_CollectedInformationArg = -1; +static gint ett_inap_CollectInformationArg = -1; +static gint ett_inap_ConnectArg = -1; +static gint ett_inap_ConnectToResourceArg = -1; static gint ett_inap_T_resourceAddress = -1; -static gint ett_inap_EstablishTemporaryConnection = -1; -static gint ett_inap_EventNotificationChargingarg = -1; -static gint ett_inap_EventReportBCSM = -1; -static gint ett_inap_T_eventSpecificInformationBCSM = -1; +static gint ett_inap_T_both2 = -1; +static gint ett_inap_DpSpecificCommonParameters = -1; +static gint ett_inap_EstablishTemporaryConnectionArg = -1; +static gint ett_inap_EventNotificationChargingArg = -1; +static gint ett_inap_EventReportBCSMArg = -1; +static gint ett_inap_HoldCallInNetworkArg = -1; +static gint ett_inap_InitialDP = -1; +static gint ett_inap_InitiateCallAttemptArg = -1; +static gint ett_inap_MidCallArg = -1; +static gint ett_inap_OAnswerArg = -1; +static gint ett_inap_OCalledPartyBusyArg = -1; +static gint ett_inap_ODisconnectArg = -1; +static gint ett_inap_ONoAnswer = -1; +static gint ett_inap_OriginationAttemptAuthorizedArg = -1; +static gint ett_inap_PlayAnnouncementArg = -1; +static gint ett_inap_PromptAndCollectUserInformationArg = -1; +static gint ett_inap_ReceivedInformationArg = -1; +static gint ett_inap_ReleaseCallArg = -1; +static gint ett_inap_T_allCallSegments = -1; +static gint ett_inap_RequestCurrentStatusReportResultArg = -1; +static gint ett_inap_RequestEveryStatusChangeReportArg = -1; +static gint ett_inap_RequestFirstStatusMatchReportArg = -1; +static gint ett_inap_RequestNotificationChargingEvent = -1; +static gint ett_inap_RequestNotificationChargingEvent_item = -1; +static gint ett_inap_RequestReportBCSMEventArg = -1; +static gint ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent = -1; +static gint ett_inap_ResetTimerArg = -1; +static gint ett_inap_RouteSelectFailureArg = -1; +static gint ett_inap_SelectFacilityArg = -1; +static gint ett_inap_SelectRouteArg = -1; +static gint ett_inap_SendChargingInformationArg = -1; +static gint ett_inap_ServiceFilteringResponseArg = -1; +static gint ett_inap_StatusReportArg = -1; +static gint ett_inap_TAnswerArg = -1; +static gint ett_inap_TTBusyArg = -1; +static gint ett_inap_TDisconnectArg = -1; +static gint ett_inap_TermAttemptAuthorizedArg = -1; +static gint ett_inap_TNoAnswerArg = -1; +static gint ett_inap_BCSMEvent = -1; +static gint ett_inap_BearerCapability = -1; +static gint ett_inap_ChargingEvent = -1; +static gint ett_inap_CollectedDigits = -1; +static gint ett_inap_CollectedInfo = -1; +static gint ett_inap_CounterAndValue = -1; +static gint ett_inap_CountersValue = -1; +static gint ett_inap_DestinationRoutingAddress = -1; +static gint ett_inap_DpSpecificCriteria = -1; +static gint ett_inap_EventSpecificInformationBCSM = -1; static gint ett_inap_T_collectedInfoSpecificInfo = -1; static gint ett_inap_T_analyzedInfoSpecificInfo = -1; static gint ett_inap_T_routeSelectFailureSpecificInfo = -1; @@ -395,48 +406,37 @@ static gint ett_inap_T_tNoAnswerSpecificInfo = -1; static gint ett_inap_T_tAnswerSpecificInfo = -1; static gint ett_inap_T_tMidCallSpecificInfo = -1; static gint ett_inap_T_tDisconnectSpecificInfo = -1; -static gint ett_inap_HoldCallInNetworkarg = -1; -static gint ett_inap_InitialDP = -1; -static gint ett_inap_InitiateCallAttempt = -1; -static gint ett_inap_OAnswer = -1; -static gint ett_inap_OCalledPartyBusy = -1; -static gint ett_inap_ODisconnect = -1; -static gint ett_inap_OMidCall = -1; -static gint ett_inap_ONoAnswer = -1; -static gint ett_inap_OriginationAttemptAuthorized = -1; -static gint ett_inap_PlayAnnouncement = -1; -static gint ett_inap_PromptAndCollectUserInformationarg = -1; -static gint ett_inap_T_collectedInfo = -1; -static gint ett_inap_T_collectedDigits = -1; -static gint ett_inap_PromptAndCollectUserInformationres = -1; -static gint ett_inap_ReleaseCallArg = -1; -static gint ett_inap_T_allCallSegments = -1; -static gint ett_inap_RequestCurrentStatusReportarg = -1; -static gint ett_inap_RequestCurrentStatusReportres = -1; -static gint ett_inap_RequestEveryStatusChangeReport = -1; -static gint ett_inap_RequestFirstStatusMatchReport = -1; -static gint ett_inap_RequestNotificationChargingEvent = -1; -static gint ett_inap_RequestNotificationChargingEvent_item = -1; -static gint ett_inap_RequestReportBCSMEvent = -1; -static gint ett_inap_T_bcsmEvents = -1; -static gint ett_inap_T_bcsmEvents_item = -1; -static gint ett_inap_T_dpSpecificCriteria = -1; -static gint ett_inap_ResetTimer = -1; -static gint ett_inap_RouteSelectFailure = -1; -static gint ett_inap_CalledFacilityGroup = -1; -static gint ett_inap_SelectFacility = -1; -static gint ett_inap_SelectRoute = -1; -static gint ett_inap_SendChargingInformation = -1; -static gint ett_inap_ServiceFilteringResponse = -1; -static gint ett_inap_T_countersValue = -1; -static gint ett_inap_T_countersValue_item = -1; -static gint ett_inap_StatusReport = -1; -static gint ett_inap_TAnswer = -1; -static gint ett_inap_TBusy = -1; -static gint ett_inap_TDisconnect = -1; -static gint ett_inap_TermAttemptAuthorized = -1; -static gint ett_inap_TMidCall = -1; -static gint ett_inap_TNoAnswer = -1; +static gint ett_inap_FacilityGroup = -1; +static gint ett_inap_FilteredCallTreatment = -1; +static gint ett_inap_FilteringCharacteristics = -1; +static gint ett_inap_FilteringCriteria = -1; +static gint ett_inap_T_addressAndService = -1; +static gint ett_inap_FilteringTimeOut = -1; +static gint ett_inap_GapCriteria = -1; +static gint ett_inap_T_calledAddressAndService = -1; +static gint ett_inap_T_callingAddressAndService = -1; +static gint ett_inap_GapOnService = -1; +static gint ett_inap_GapIndicators = -1; +static gint ett_inap_GapTreatment = -1; +static gint ett_inap_T_both = -1; +static gint ett_inap_InbandInfo = -1; +static gint ett_inap_InformationToSend = -1; +static gint ett_inap_LegID = -1; +static gint ett_inap_MessageID = -1; +static gint ett_inap_T_text = -1; +static gint ett_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4 = -1; +static gint ett_inap_T_variableMessage = -1; +static gint ett_inap_SEQUENCE_SIZE_1_5_OF_VariablePart = -1; +static gint ett_inap_MiscCallInfo = -1; +static gint ett_inap_RequestedInformationList = -1; +static gint ett_inap_RequestedInformationTypeList = -1; +static gint ett_inap_RequestedInformation = -1; +static gint ett_inap_RequestedInformationValue = -1; +static gint ett_inap_ResourceID = -1; +static gint ett_inap_RouteList = -1; +static gint ett_inap_ServiceAddressInformation = -1; +static gint ett_inap_Tone = -1; +static gint ett_inap_VariablePart = -1; static gint ett_inap_CancelFailed = -1; static gint ett_inap_RejectPDU = -1; static gint ett_inap_T_rinvokeID = -1; @@ -511,71 +511,11 @@ static int dissect_legToBeConnectedID_impl(packet_info *pinfo, proto_tree *tree, static int dissect_legToBeDetached_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeDetached); } -static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_number); -} -static int dissect_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_time); -} -static int dissect_date_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_date); -} -static int dissect_price_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_price); -} -static int dissect_attributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_attributes); -} -static int dissect_dialledNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledNumber); -} -static int dissect_callingLineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingLineID); -} -static int dissect_calledAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledAddressValue); -} -static int dissect_callingAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingAddressValue); -} -static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_locationNumber); -} static int dissect_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_value); } -static int dissect_sFBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_sFBillingChargingCharacteristics); -} -static int dissect_RouteList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_inap_RouteList_item); -} -static int dissect_bearerCap_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCap); -} -static int dissect_calledPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyNumber); -} -static int dissect_callingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyNumber); -} -static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_iPSSPCapabilities); -} -static int dissect_iPAvailable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_iPAvailable); -} -static int dissect_iSDNAccessRelatedInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_iSDNAccessRelatedInformation); -} -static int dissect_serviceProfileIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceProfileIdentifier); -} -static int dissect_chargeNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_chargeNumber); -} -static int dissect_servingAreaID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_servingAreaID); +static int dissect_eventTypeCharging2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeCharging2); } static int dissect_huntGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_huntGroup); @@ -583,89 +523,8 @@ static int dissect_huntGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_routeIndex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_routeIndex); } -static int dissect_dialledDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledDigits); -} -static int dissect_callingPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyBusinessGroupID); -} -static int dissect_callingPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartySubaddress); -} -static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_originalCalledPartyID); -} -static int dissect_prefix_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_prefix); -} -static int dissect_redirectingPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectingPartyID); -} -static int dissect_travellingClassMark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_travellingClassMark); -} -static int dissect_featureCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_featureCode); -} -static int dissect_accessCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_accessCode); -} -static int dissect_carrier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_carrier); -} -static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_aChBillingChargingCharacteristics); -} -static int dissect_correlationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_correlationID); -} -static int dissect_lineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_lineID); -} -static int dissect_scfID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_scfID); -} -static int dissect_serviceInteractionIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceInteractionIndicators); -} -static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_ipRoutingAddress); -} -static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_assistingSSPIPRoutingAddress); -} -static int dissect_eventTypeCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeCharging); -} -static int dissect_eventSpecificInformationCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationCharging); -} -static int dissect_bcsmEventCorrelationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEventCorrelationID); -} -static int dissect_calledPartynumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartynumber); -} -static int dissect_holdcause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_holdcause); -} -static int dissect_additionalCallingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_additionalCallingPartyNumber); -} -static int dissect_calledPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyBusinessGroupID); -} -static int dissect_calledPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartySubaddress); -} -static int dissect_digitsResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_digitsResponse); -} -static int dissect_destinationNumberRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationNumberRoutingAddress); -} -static int dissect_sCIBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_inap_sCIBillingChargingCharacteristics); +static int dissect_RouteList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_inap_RouteList_item); } @@ -686,26 +545,17 @@ dissect_inap_AttachArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac static int -dissect_inap_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_sendingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_sendingSideID); + return dissect_inap_LegType(TRUE, tvb, offset, pinfo, tree, hf_inap_sendingSideID); } static int dissect_receivingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_receivingSideID); -} -static int dissect_tmr_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_tmr); -} -static int dissect_callingPartysCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartysCategory); -} -static int dissect_numberingPlan_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_numberingPlan); + return dissect_inap_LegType(TRUE, tvb, offset, pinfo, tree, hf_inap_receivingSideID); } @@ -716,8 +566,8 @@ static const value_string inap_LegID_vals[] = { }; static const ber_choice_t LegID_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl }, + { 0, BER_CLASS_CON, 0, 0, dissect_sendingSideID_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_receivingSideID_impl }, { 0, 0, 0, 0, NULL } }; @@ -738,6 +588,9 @@ static int dissect_heldLegID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t static int dissect_legToBeReleased_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_legToBeReleased); } +static int dissect_partyToCharge_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_LegID(TRUE, tvb, offset, pinfo, tree, hf_inap_partyToCharge); +} static const value_string inap_LegStatus_vals[] = { @@ -864,12 +717,18 @@ dissect_inap_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_ static int dissect_releaseCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCause); } -static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCauseValue); +static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_busyCause); } static int dissect_initialCallSegment(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_Cause(FALSE, tvb, offset, pinfo, tree, hf_inap_initialCallSegment); } +static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_failureCause); +} +static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Cause(TRUE, tvb, offset, pinfo, tree, hf_inap_releaseCauseValue); +} static const ber_sequence_t ReleaseCallPartyConnectionArg_sequence[] = { @@ -890,169 +749,133 @@ dissect_inap_ReleaseCallPartyConnectionArg(gboolean implicit_tag _U_, tvbuff_t * static int -dissect_inap_INTEGER_0_2147483647(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_integer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_integer); -} -static int dissect_elementaryMessageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageID); -} -static int dissect_toneID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_toneID); -} -static int dissect_tduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_tduration); -} -static int dissect_elementaryMessageIDs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(FALSE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs_item); -} -static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceKey); -} -static int dissect_numberOfCalls_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfCalls); -} -static int dissect_callConnectedElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_callConnectedElapsedTimeValue); +static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_inap_type); } -static int dissect_connectTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_connectTime); +static int dissect_trunkGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_trunkGroupID); } -static int dissect_timervalue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_timervalue); +static int dissect_privateFacilityID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_privateFacilityID); } -static int dissect_counterValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_inap_counterValue); +static int dissect_facilityGroupMemberID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupMemberID); } -static const value_string inap_VariableParts_item_vals[] = { - { 0, "integer" }, - { 1, "number" }, - { 2, "time" }, - { 3, "date" }, - { 4, "price" }, +static const value_string inap_T_criticality_vals[] = { + { 0, "ignore" }, + { 1, "abort" }, { 0, NULL } }; -static const ber_choice_t VariableParts_item_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_integer_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_number_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_time_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_date_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_price_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_inap_VariableParts_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - VariableParts_item_choice, hf_index, ett_inap_VariableParts_item, - NULL); +dissect_inap_T_criticality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_VariableParts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_VariableParts_item(FALSE, tvb, offset, pinfo, tree, hf_inap_VariableParts_item); +static int dissect_criticality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_T_criticality(FALSE, tvb, offset, pinfo, tree, hf_inap_criticality); } -static const ber_sequence_t VariableParts_sequence_of[1] = { - { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_VariableParts_item }, +static const ber_sequence_t Extensions_item_sequence[] = { + { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_type }, + { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_criticality }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value_impl }, + { 0, 0, 0, NULL } }; static int -dissect_inap_VariableParts(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - VariableParts_sequence_of, hf_index, ett_inap_VariableParts); +dissect_inap_Extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + Extensions_item_sequence, hf_index, ett_inap_Extensions_item); return offset; } -static int dissect_variableParts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_VariableParts(TRUE, tvb, offset, pinfo, tree, hf_inap_variableParts); +static int dissect_Extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Extensions_item(FALSE, tvb, offset, pinfo, tree, hf_inap_Extensions_item); } -static const ber_sequence_t VariableMessage_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_variableParts_impl }, - { 0, 0, 0, NULL } +static const ber_sequence_t Extensions_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item }, }; static int -dissect_inap_VariableMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - VariableMessage_sequence, hf_index, ett_inap_VariableMessage); +dissect_inap_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + Extensions_sequence_of, hf_index, ett_inap_Extensions); return offset; } -static int dissect_variableMessage_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_VariableMessage(TRUE, tvb, offset, pinfo, tree, hf_inap_variableMessage); +static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Extensions(TRUE, tvb, offset, pinfo, tree, hf_inap_extensions); } -static const value_string inap_TriggerType_vals[] = { - { 0, "featureActivation" }, - { 1, "verticalServiceCode" }, - { 2, "customizedAccess" }, - { 3, "customizedIntercom" }, - { 12, "emergencyService" }, - { 13, "aFR" }, - { 14, "sharedIOTrunk" }, - { 17, "offHookDelay" }, - { 18, "channelSetupPRI" }, - { 25, "tNoAnswer" }, - { 26, "tBusy" }, - { 27, "oCalledPartyBusy" }, - { 29, "oNoAnswer" }, - { 30, "originationAttemptAuthorized" }, - { 31, "oAnswer" }, - { 32, "oDisconnect" }, - { 33, "termAttemptAuthorized" }, - { 34, "tAnswer" }, - { 35, "tDisconnect" }, - { 0, NULL } -}; - static int -dissect_inap_TriggerType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_inap_SFBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_triggerType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_TriggerType(TRUE, tvb, offset, pinfo, tree, hf_inap_triggerType); +static int dissect_sFBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_SFBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_sFBillingChargingCharacteristics); } -static const ber_sequence_t Tone_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_toneID_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tduration_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_inap_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - Tone_sequence, hf_index, ett_inap_Tone); +dissect_inap_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_tone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_Tone(TRUE, tvb, offset, pinfo, tree, hf_inap_tone); +static int dissect_connectTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_connectTime); +} +static int dissect_counterValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_counterValue); +} +static int dissect_numberOfCalls_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfCalls); +} +static int dissect_elementaryMessageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageID); +} +static int dissect_elementaryMessageIDs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(FALSE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs_item); +} +static int dissect_callConnectedElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_callConnectedElapsedTimeValue); +} +static int dissect_toneID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_toneID); +} +static int dissect_tone_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_tone_duration); +} +static int dissect_integer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_integer); } static int -dissect_inap_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_IA5String_SIZE_minMessageContentLength_maxMessageContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, pinfo, tree, tvb, offset, hf_index, NULL); @@ -1060,47 +883,192 @@ dissect_inap_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac return offset; } static int dissect_messageContent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_messageContent); + return dissect_inap_IA5String_SIZE_minMessageContentLength_maxMessageContentLength(TRUE, tvb, offset, pinfo, tree, hf_inap_messageContent); } -static int dissect_displayInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_displayInformation); + + + +static int +dissect_inap_OCTET_STRING_SIZE_minAttributesLength_maxAttributesLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; } -static int dissect_iA5Response_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_iA5Response); +static int dissect_attributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING_SIZE_minAttributesLength_maxAttributesLength(TRUE, tvb, offset, pinfo, tree, hf_inap_attributes); } -static const ber_sequence_t Text_sequence[] = { +static const ber_sequence_t T_text_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageContent_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributes_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_Text(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_T_text(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - Text_sequence, hf_index, ett_inap_Text); + T_text_sequence, hf_index, ett_inap_T_text); return offset; } static int dissect_text_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_Text(TRUE, tvb, offset, pinfo, tree, hf_inap_text); + return dissect_inap_T_text(TRUE, tvb, offset, pinfo, tree, hf_inap_text); } -static const ber_sequence_t T_elementaryMessageIDs_sequence_of[1] = { +static const ber_sequence_t SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4_sequence_of[1] = { { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_elementaryMessageIDs_item }, }; static int -dissect_inap_T_elementaryMessageIDs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - T_elementaryMessageIDs_sequence_of, hf_index, ett_inap_T_elementaryMessageIDs); + SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4); return offset; } static int dissect_elementaryMessageIDs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_elementaryMessageIDs(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs); + return dissect_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4(TRUE, tvb, offset, pinfo, tree, hf_inap_elementaryMessageIDs); +} + + + +static int +dissect_inap_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_prefix_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_prefix); +} +static int dissect_digitsResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_digitsResponse); +} +static int dissect_dialledNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledNumber); +} +static int dissect_callingLineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_callingLineID); +} +static int dissect_calledAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_calledAddressValue); +} +static int dissect_callingAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_callingAddressValue); +} +static int dissect_lineID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_lineID); +} +static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Digits(TRUE, tvb, offset, pinfo, tree, hf_inap_number); +} + + + +static int +dissect_inap_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_time); +} + + + +static int +dissect_inap_OCTET_STRING_SIZE_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_date2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_inap_date2); +} + + + +static int +dissect_inap_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_price_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_inap_price); +} + + +static const value_string inap_VariablePart_vals[] = { + { 0, "integer" }, + { 1, "number" }, + { 2, "time" }, + { 3, "date2" }, + { 4, "price" }, + { 0, NULL } +}; + +static const ber_choice_t VariablePart_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_integer_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_number_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_time_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_date2_impl }, + { 4, BER_CLASS_CON, 4, 0, dissect_price_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_inap_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + VariablePart_choice, hf_index, ett_inap_VariablePart, + NULL); + + return offset; +} +static int dissect_variableParts_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_VariablePart(FALSE, tvb, offset, pinfo, tree, hf_inap_variableParts_item); +} + + +static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of[1] = { + { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_variableParts_item }, +}; + +static int +dissect_inap_SEQUENCE_SIZE_1_5_OF_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_5_OF_VariablePart); + + return offset; +} +static int dissect_variableParts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_SEQUENCE_SIZE_1_5_OF_VariablePart(TRUE, tvb, offset, pinfo, tree, hf_inap_variableParts); +} + + +static const ber_sequence_t T_variableMessage_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_variableParts_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_inap_T_variableMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_variableMessage_sequence, hf_index, ett_inap_T_variableMessage); + + return offset; +} +static int dissect_variableMessage_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_T_variableMessage(TRUE, tvb, offset, pinfo, tree, hf_inap_variableMessage); } @@ -1113,10 +1081,10 @@ static const value_string inap_MessageID_vals[] = { }; static const ber_choice_t MessageID_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_text_impl }, - { 29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_elementaryMessageIDs_impl }, - { 30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_variableMessage_impl }, + { 0, BER_CLASS_CON, 0, 0, dissect_elementaryMessageID_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_text_impl }, + { 29, BER_CLASS_CON, 29, 0, dissect_elementaryMessageIDs_impl }, + { 30, BER_CLASS_CON, 30, 0, dissect_variableMessage_impl }, { 0, 0, 0, 0, NULL } }; @@ -1141,9 +1109,6 @@ dissect_inap_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, return offset; } -static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfRepetitions); -} static int dissect_minimumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_minimumNbOfDigits); } @@ -1156,6 +1121,9 @@ static int dissect_firstDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, static int dissect_interDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_interDigitTimeOut); } +static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfRepetitions); +} @@ -1166,307 +1134,302 @@ dissect_inap_INTEGER_0_32767(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse return offset; } -static int dissect_mduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_mduration); +static int dissect_duration3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_duration3); } static int dissect_interval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { return dissect_inap_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_inap_interval); } -static const ber_sequence_t T_inbandInfo_sequence[] = { +static const ber_sequence_t InbandInfo_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_messageID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfRepetitions_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mduration_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_duration3_impl }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interval_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_T_inbandInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_InbandInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_inbandInfo_sequence, hf_index, ett_inap_T_inbandInfo); + InbandInfo_sequence, hf_index, ett_inap_InbandInfo); return offset; } static int dissect_inbandInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_inbandInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_inbandInfo); + return dissect_inap_InbandInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_inbandInfo); } -static const value_string inap_InformationToSend_vals[] = { - { 0, "inbandInfo" }, - { 1, "tone" }, - { 2, "displayInformation" }, - { 0, NULL } -}; - -static const ber_choice_t InformationToSend_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inbandInfo_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tone_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_displayInformation_impl }, - { 0, 0, 0, 0, NULL } +static const ber_sequence_t Tone_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_toneID_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tone_duration_impl }, + { 0, 0, 0, NULL } }; static int -dissect_inap_InformationToSend(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - InformationToSend_choice, hf_index, ett_inap_InformationToSend, - NULL); +dissect_inap_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + Tone_sequence, hf_index, ett_inap_Tone); return offset; } -static int dissect_informationToSend_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_InformationToSend(TRUE, tvb, offset, pinfo, tree, hf_inap_informationToSend); +static int dissect_tone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Tone(TRUE, tvb, offset, pinfo, tree, hf_inap_tone); } -static const ber_sequence_t T_addressAndService_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_inap_T_addressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_addressAndService_sequence, hf_index, ett_inap_T_addressAndService); +dissect_inap_DisplayInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, + pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_addressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_addressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_addressAndService); +static int dissect_displayInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_DisplayInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_displayInformation); } -static const value_string inap_FilteringCriteria_vals[] = { - { 0, "dialledNumber" }, - { 1, "callingLineID" }, - { 2, "serviceKey" }, - { 30, "addressAndService" }, +static const value_string inap_InformationToSend_vals[] = { + { 0, "inbandInfo" }, + { 1, "tone" }, + { 2, "displayInformation" }, { 0, NULL } }; -static const ber_choice_t FilteringCriteria_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dialledNumber_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callingLineID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, - { 30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_addressAndService_impl }, +static const ber_choice_t InformationToSend_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_inbandInfo_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_tone_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_displayInformation_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_FilteringCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_InformationToSend(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - FilteringCriteria_choice, hf_index, ett_inap_FilteringCriteria, + InformationToSend_choice, hf_index, ett_inap_InformationToSend, NULL); return offset; } -static int dissect_filteringCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_FilteringCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCriteria); +static int dissect_informationToSend_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_InformationToSend(TRUE, tvb, offset, pinfo, tree, hf_inap_informationToSend); } static int -dissect_inap_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_MaximumNumberOfCounters(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_inap_type); -} static int dissect_maximumNumberOfCounters_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_maximumNumberOfCounters); -} -static int dissect_trunkGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_trunkGroupID); -} -static int dissect_privateFacilityID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_privateFacilityID); -} -static int dissect_callingFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroupMember); -} -static int dissect_facilityGroupMemberID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupMemberID); -} -static int dissect_calledFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroupMember); + return dissect_inap_MaximumNumberOfCounters(TRUE, tvb, offset, pinfo, tree, hf_inap_maximumNumberOfCounters); } -static const value_string inap_T_criticality_vals[] = { - { 0, "ignore" }, - { 1, "abort" }, - { 0, NULL } +static const ber_sequence_t FilteredCallTreatment_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sFBillingChargingCharacteristics_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfCounters_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, + { 0, 0, 0, NULL } }; +static int +dissect_inap_FilteredCallTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + FilteredCallTreatment_sequence, hf_index, ett_inap_FilteredCallTreatment); + + return offset; +} +static int dissect_filteredCallTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FilteredCallTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_filteredCallTreatment); +} + + static int -dissect_inap_T_criticality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_INTEGER_M1_32000(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_criticality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_criticality(FALSE, tvb, offset, pinfo, tree, hf_inap_criticality); +static int dissect_interval1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER_M1_32000(TRUE, tvb, offset, pinfo, tree, hf_inap_interval1); } -static const ber_sequence_t Extensions_item_sequence[] = { - { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_type }, - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_criticality }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value_impl }, - { 0, 0, 0, NULL } +static const value_string inap_FilteringCharacteristics_vals[] = { + { 0, "interval1" }, + { 1, "numberOfCalls" }, + { 0, NULL } +}; + +static const ber_choice_t FilteringCharacteristics_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_interval1_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_numberOfCalls_impl }, + { 0, 0, 0, 0, NULL } }; static int -dissect_inap_Extensions_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - Extensions_item_sequence, hf_index, ett_inap_Extensions_item); +dissect_inap_FilteringCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + FilteringCharacteristics_choice, hf_index, ett_inap_FilteringCharacteristics, + NULL); return offset; } -static int dissect_Extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_Extensions_item(FALSE, tvb, offset, pinfo, tree, hf_inap_Extensions_item); +static int dissect_filteringCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FilteringCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCharacteristics); } -static const ber_sequence_t Extensions_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item }, -}; static int -dissect_inap_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - Extensions_sequence_of, hf_index, ett_inap_Extensions); +dissect_inap_Duration(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_Extensions(TRUE, tvb, offset, pinfo, tree, hf_inap_extensions); +static int dissect_monitorDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Duration(TRUE, tvb, offset, pinfo, tree, hf_inap_monitorDuration); +} +static int dissect_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Duration(TRUE, tvb, offset, pinfo, tree, hf_inap_duration); } -static const ber_sequence_t T_filteredCallTreatment_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sFBillingChargingCharacteristics_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfCounters_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, - { 0, 0, 0, NULL } -}; static int -dissect_inap_T_filteredCallTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_filteredCallTreatment_sequence, hf_index, ett_inap_T_filteredCallTreatment); +dissect_inap_DateAndTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_filteredCallTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_filteredCallTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_filteredCallTreatment); +static int dissect_startTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_inap_startTime); +} +static int dissect_stopTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_inap_stopTime); +} +static int dissect_callStopTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_inap_callStopTimeValue); } -static const value_string inap_T_filteringCharacteristics_vals[] = { - { 0, "interval" }, - { 1, "numberOfCalls" }, +static const value_string inap_FilteringTimeOut_vals[] = { + { 0, "duration" }, + { 1, "stopTime" }, { 0, NULL } }; -static const ber_choice_t T_filteringCharacteristics_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_interval_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_numberOfCalls_impl }, +static const ber_choice_t FilteringTimeOut_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_duration_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_stopTime_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_filteringCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_FilteringTimeOut(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_filteringCharacteristics_choice, hf_index, ett_inap_T_filteringCharacteristics, + FilteringTimeOut_choice, hf_index, ett_inap_FilteringTimeOut, NULL); return offset; } -static int dissect_filteringCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_filteringCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCharacteristics); +static int dissect_filteringTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FilteringTimeOut(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringTimeOut); } static int -dissect_inap_INTEGER_M2_86400(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_inap_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_Integer4(implicit_tag, tvb, offset, pinfo, tree, hf_index); return offset; } -static int dissect_aduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_M2_86400(TRUE, tvb, offset, pinfo, tree, hf_inap_aduration); -} -static int dissect_cgduration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_M2_86400(TRUE, tvb, offset, pinfo, tree, hf_inap_cgduration); -} -static int dissect_monitorDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_M2_86400(TRUE, tvb, offset, pinfo, tree, hf_inap_monitorDuration); +static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ServiceKey(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceKey); } static int -dissect_inap_OCTET_STRING_SIZE_6(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_stopTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_inap_stopTime); +static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_LocationNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_locationNumber); } -static int dissect_startTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_inap_startTime); + + +static const ber_sequence_t T_addressAndService_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_inap_T_addressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + T_addressAndService_sequence, hf_index, ett_inap_T_addressAndService); + + return offset; } -static int dissect_callStopTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_6(TRUE, tvb, offset, pinfo, tree, hf_inap_callStopTimeValue); +static int dissect_addressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_T_addressAndService(TRUE, tvb, offset, pinfo, tree, hf_inap_addressAndService); } -static const value_string inap_T_filteringTimeOut_vals[] = { - { 0, "aduration" }, - { 1, "stopTime" }, +static const value_string inap_FilteringCriteria_vals[] = { + { 0, "dialledNumber" }, + { 1, "callingLineID" }, + { 2, "serviceKey" }, + { 30, "addressAndService" }, { 0, NULL } }; -static const ber_choice_t T_filteringTimeOut_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aduration_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_stopTime_impl }, +static const ber_choice_t FilteringCriteria_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_dialledNumber_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_callingLineID_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_serviceKey_impl }, + { 30, BER_CLASS_CON, 30, 0, dissect_addressAndService_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_filteringTimeOut(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_FilteringCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_filteringTimeOut_choice, hf_index, ett_inap_T_filteringTimeOut, + FilteringCriteria_choice, hf_index, ett_inap_FilteringCriteria, NULL); return offset; } -static int dissect_filteringTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_filteringTimeOut(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringTimeOut); +static int dissect_filteringCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FilteringCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_filteringCriteria); } -static const ber_sequence_t ActivateServiceFilteringarg_sequence[] = { +static const ber_sequence_t ActivateServiceFilteringArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_filteredCallTreatment_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_filteringCharacteristics_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_filteringTimeOut_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCharacteristics_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringTimeOut_impl }, { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCriteria_impl }, { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startTime_impl }, { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -1474,9 +1437,9 @@ static const ber_sequence_t ActivateServiceFilteringarg_sequence[] = { }; static int -dissect_inap_ActivateServiceFilteringarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ActivateServiceFilteringArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - ActivateServiceFilteringarg_sequence, hf_index, ett_inap_ActivateServiceFilteringarg); + ActivateServiceFilteringArg_sequence, hf_index, ett_inap_ActivateServiceFilteringArg); return offset; } @@ -1539,6 +1502,42 @@ static int dissect_miscCallInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuf } +static const value_string inap_TriggerType_vals[] = { + { 0, "featureActivation" }, + { 1, "verticalServiceCode" }, + { 2, "customizedAccess" }, + { 3, "customizedIntercom" }, + { 12, "emergencyService" }, + { 13, "aFR" }, + { 14, "sharedIOTrunk" }, + { 17, "offHookDelay" }, + { 18, "channelSetupPRI" }, + { 25, "tNoAnswer" }, + { 26, "tBusy" }, + { 27, "oCalledPartyBusy" }, + { 29, "oNoAnswer" }, + { 30, "originationAttemptAuthorized" }, + { 31, "oAnswer" }, + { 32, "oDisconnect" }, + { 33, "termAttemptAuthorized" }, + { 34, "tAnswer" }, + { 35, "tDisconnect" }, + { 0, NULL } +}; + + +static int +dissect_inap_TriggerType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_triggerType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_TriggerType(TRUE, tvb, offset, pinfo, tree, hf_inap_triggerType); +} + + static const ber_sequence_t ServiceAddressInformation_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl }, @@ -1558,42 +1557,173 @@ static int dissect_serviceAddressInformation_impl(packet_info *pinfo, proto_tree } -static const value_string inap_TerminalType_vals[] = { - { 0, "unknown" }, - { 1, "dialPulse" }, - { 2, "dtmf" }, - { 3, "isdn" }, - { 4, "isdnNoDtmf" }, - { 16, "spare" }, + +static int +dissect_inap_BearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree); + + + return offset; +} +static int dissect_bearerCap_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_BearerCap(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCap); +} + + + +static int +dissect_inap_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_tmr_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_inap_tmr); +} + + +static const value_string inap_BearerCapability_vals[] = { + { 0, "bearerCap" }, + { 1, "tmr" }, { 0, NULL } }; +static const ber_choice_t BearerCapability_choice[] = { + { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bearerCap_impl }, + { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tmr_impl }, + { 0, 0, 0, 0, NULL } +}; static int -dissect_inap_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_inap_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + BearerCapability_choice, hf_index, ett_inap_BearerCapability, + NULL); return offset; } -static int dissect_terminalType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_TerminalType(TRUE, tvb, offset, pinfo, tree, hf_inap_terminalType); +static int dissect_bearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCapability); } -static const ber_sequence_t RouteList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_RouteList_item }, -}; static int -dissect_inap_RouteList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - RouteList_sequence_of, hf_index, ett_inap_RouteList); +dissect_inap_CalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + +dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL); + return offset; } -static int dissect_routeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_RouteList(TRUE, tvb, offset, pinfo, tree, hf_inap_routeList); +static int dissect_dialledDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_dialledDigits); +} +static int dissect_calledPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyNumber); +} +static int dissect_destinationNumberRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationNumberRoutingAddress); +} +static int dissect_DestinationRoutingAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartyNumber(FALSE, tvb, offset, pinfo, tree, hf_inap_DestinationRoutingAddress_item); +} +static int dissect_calledPartynumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartynumber); +} + + + +static int +dissect_inap_CallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + dissect_isup_calling_party_number_parameter(parameter_tvb, tree, NULL); + + + + return offset; +} +static int dissect_callingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyNumber); +} + + + +static int +dissect_inap_CallingPartysCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_callingPartysCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CallingPartysCategory(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartysCategory); +} + + + +static int +dissect_inap_IPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_IPSSPCapabilities(TRUE, tvb, offset, pinfo, tree, hf_inap_iPSSPCapabilities); +} + + + +static int +dissect_inap_IPAvailable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_iPAvailable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_IPAvailable(TRUE, tvb, offset, pinfo, tree, hf_inap_iPAvailable); +} + + + +static int +dissect_inap_ISDNAccessRelatedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_iSDNAccessRelatedInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ISDNAccessRelatedInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_iSDNAccessRelatedInformation); } @@ -1617,28 +1747,63 @@ static int dissect_cGEncountered_impl(packet_info *pinfo, proto_tree *tree, tvbu } -static const value_string inap_BearerCapability_vals[] = { - { 0, "bearerCap" }, - { 1, "tmr" }, + +static int +dissect_inap_ServiceProfileIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_serviceProfileIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ServiceProfileIdentifier(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceProfileIdentifier); +} + + +static const value_string inap_TerminalType_vals[] = { + { 0, "unknown" }, + { 1, "dialPulse" }, + { 2, "dtmf" }, + { 3, "isdn" }, + { 4, "isdnNoDtmf" }, + { 16, "spare" }, { 0, NULL } }; -static const ber_choice_t BearerCapability_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bearerCap_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tmr_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_inap_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - BearerCapability_choice, hf_index, ett_inap_BearerCapability, - NULL); +dissect_inap_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_bearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_inap_bearerCapability); +static int dissect_terminalType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_TerminalType(TRUE, tvb, offset, pinfo, tree, hf_inap_terminalType); +} + + + +static int +dissect_inap_ChargeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_chargeNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ChargeNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_chargeNumber); +} + + + +static int +dissect_inap_ServingAreaID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_servingAreaID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ServingAreaID(TRUE, tvb, offset, pinfo, tree, hf_inap_servingAreaID); } @@ -1673,7 +1838,33 @@ static int dissect_dpSpecificCommonParameters_impl(packet_info *pinfo, proto_tre } -static const value_string inap_CallingFacilityGroup_vals[] = { + +static int +dissect_inap_CallingPartyBusinessGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_callingPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CallingPartyBusinessGroupID(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartyBusinessGroupID); +} + + + +static int +dissect_inap_CallingPartySubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_callingPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CallingPartySubaddress(TRUE, tvb, offset, pinfo, tree, hf_inap_callingPartySubaddress); +} + + +static const value_string inap_FacilityGroup_vals[] = { { 0, "trunkGroupID" }, { 1, "privateFacilityID" }, { 2, "huntGroup" }, @@ -1681,43 +1872,179 @@ static const value_string inap_CallingFacilityGroup_vals[] = { { 0, NULL } }; -static const ber_choice_t CallingFacilityGroup_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_privateFacilityID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_huntGroup_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_routeIndex_impl }, +static const ber_choice_t FacilityGroup_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_trunkGroupID_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_privateFacilityID_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_huntGroup_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_routeIndex_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_CallingFacilityGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_FacilityGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CallingFacilityGroup_choice, hf_index, ett_inap_CallingFacilityGroup, + FacilityGroup_choice, hf_index, ett_inap_FacilityGroup, NULL); return offset; } static int dissect_callingFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_CallingFacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroup); + return dissect_inap_FacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroup); +} +static int dissect_calledFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroup); +} +static int dissect_facilityGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupID); } static int -dissect_inap_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_FacilityGroupMember(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_callingFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FacilityGroupMember(TRUE, tvb, offset, pinfo, tree, hf_inap_callingFacilityGroupMember); +} +static int dissect_calledFacilityGroupMember_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FacilityGroupMember(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroupMember); +} + + + +static int +dissect_inap_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL); + + + return offset; +} +static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_OriginalCalledPartyID(TRUE, tvb, offset, pinfo, tree, hf_inap_originalCalledPartyID); +} + + + +static int +dissect_inap_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL); + + + + return offset; +} +static int dissect_redirectingPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RedirectingPartyID(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectingPartyID); +} + + + +static int +dissect_inap_RedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + + tvbuff_t *parameter_tvb; + + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + ¶meter_tvb); + + + if (!parameter_tvb) + return offset; + + dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL); + return offset; } static int dissect_redirectionInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectionInformation); + return dissect_inap_RedirectionInformation(TRUE, tvb, offset, pinfo, tree, hf_inap_redirectionInformation); } -static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_highLayerCompatibility); + + +static const ber_sequence_t RouteList_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_RouteList_item }, +}; + +static int +dissect_inap_RouteList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + RouteList_sequence_of, hf_index, ett_inap_RouteList); + + return offset; } -static int dissect_forwardCallIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardCallIndicators); +static int dissect_routeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RouteList(TRUE, tvb, offset, pinfo, tree, hf_inap_routeList); +} + + + +static int +dissect_inap_TravellingClassMark(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_travellingClassMark_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_TravellingClassMark(TRUE, tvb, offset, pinfo, tree, hf_inap_travellingClassMark); +} + + + +static int +dissect_inap_FeatureCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_featureCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FeatureCode(TRUE, tvb, offset, pinfo, tree, hf_inap_featureCode); +} + + + +static int +dissect_inap_AccessCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_accessCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_AccessCode(TRUE, tvb, offset, pinfo, tree, hf_inap_accessCode); +} + + + +static int +dissect_inap_Carrier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_carrier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_Carrier(TRUE, tvb, offset, pinfo, tree, hf_inap_carrier); } @@ -1750,45 +2077,32 @@ dissect_inap_AnalysedInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, in } - -static int -dissect_inap_DestinationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_destinationRoutingAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_DestinationAddress(FALSE, tvb, offset, pinfo, tree, hf_inap_destinationRoutingAddress_item); -} - - -static const ber_sequence_t SEQUENCE_SIZE_1_3_OF_DestinationAddress_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_destinationRoutingAddress_item }, +static const ber_sequence_t DestinationRoutingAddress_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DestinationRoutingAddress_item }, }; static int -dissect_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_DestinationRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - SEQUENCE_SIZE_1_3_OF_DestinationAddress_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress); + DestinationRoutingAddress_sequence_of, hf_index, ett_inap_DestinationRoutingAddress); return offset; } static int dissect_destinationRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationRoutingAddress); + return dissect_inap_DestinationRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_destinationRoutingAddress); } static int -dissect_inap_OCTET_STRING_SIZE_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_3(TRUE, tvb, offset, pinfo, tree, hf_inap_alertingPattern); + return dissect_inap_AlertingPattern(TRUE, tvb, offset, pinfo, tree, hf_inap_alertingPattern); } @@ -1816,32 +2130,20 @@ dissect_inap_AnalyseInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int } -static const value_string inap_PartyToCharge_vals[] = { - { 0, "sendingSideID" }, - { 1, "receivingSideID" }, - { 0, NULL } -}; - -static const ber_choice_t PartyToCharge_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_inap_PartyToCharge(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - PartyToCharge_choice, hf_index, ett_inap_PartyToCharge, - NULL); +dissect_inap_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } -static int dissect_partyToCharge_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_PartyToCharge(TRUE, tvb, offset, pinfo, tree, hf_inap_partyToCharge); +static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_AChBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_aChBillingChargingCharacteristics); } -static const ber_sequence_t ApplyChargingarg_sequence[] = { +static const ber_sequence_t ApplyChargingArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aChBillingChargingCharacteristics_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -1849,9 +2151,9 @@ static const ber_sequence_t ApplyChargingarg_sequence[] = { }; static int -dissect_inap_ApplyChargingarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ApplyChargingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - ApplyChargingarg_sequence, hf_index, ett_inap_ApplyChargingarg); + ApplyChargingArg_sequence, hf_index, ett_inap_ApplyChargingArg); return offset; } @@ -1859,7 +2161,7 @@ dissect_inap_ApplyChargingarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offs static int -dissect_inap_ApplyChargingReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -1867,7 +2169,31 @@ dissect_inap_ApplyChargingReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, in } -static const ber_sequence_t AssistRequestInstructionsarg_sequence[] = { + +static int +dissect_inap_ApplyChargingReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_CallResult(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} + + + +static int +dissect_inap_CorrelationID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_correlationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CorrelationID(TRUE, tvb, offset, pinfo, tree, hf_inap_correlationID); +} +static int dissect_bcsmEventCorrelationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CorrelationID(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEventCorrelationID); +} + + +static const ber_sequence_t AssistRequestInstructionsArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPAvailable_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl }, @@ -1876,15 +2202,15 @@ static const ber_sequence_t AssistRequestInstructionsarg_sequence[] = { }; static int -dissect_inap_AssistRequestInstructionsarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_AssistRequestInstructionsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - AssistRequestInstructionsarg_sequence, hf_index, ett_inap_AssistRequestInstructionsarg); + AssistRequestInstructionsArg_sequence, hf_index, ett_inap_AssistRequestInstructionsArg); return offset; } -static const value_string inap_T_dpCriteria_vals[] = { +static const value_string inap_EventTypeBCSM_vals[] = { { 1, "origAttemptAuthorized" }, { 2, "collectedInfo" }, { 3, "analysedInformation" }, @@ -1907,32 +2233,35 @@ static const value_string inap_T_dpCriteria_vals[] = { static int -dissect_inap_T_dpCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } +static int dissect_eventTypeBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeBCSM); +} static int dissect_dpCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_dpCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_dpCriteria); + return dissect_inap_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_dpCriteria); } -static const ber_sequence_t T_gapOnService_sequence[] = { +static const ber_sequence_t GapOnService_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpCriteria_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_T_gapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_GapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_gapOnService_sequence, hf_index, ett_inap_T_gapOnService); + GapOnService_sequence, hf_index, ett_inap_GapOnService); return offset; } static int dissect_gapOnService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_gapOnService(TRUE, tvb, offset, pinfo, tree, hf_inap_gapOnService); + return dissect_inap_GapOnService(TRUE, tvb, offset, pinfo, tree, hf_inap_gapOnService); } @@ -1973,7 +2302,7 @@ static int dissect_callingAddressAndService_impl(packet_info *pinfo, proto_tree } -static const value_string inap_T_gapCriteria_vals[] = { +static const value_string inap_GapCriteria_vals[] = { { 0, "calledAddressValue" }, { 2, "gapOnService" }, { 29, "calledAddressAndService" }, @@ -1981,59 +2310,59 @@ static const value_string inap_T_gapCriteria_vals[] = { { 0, NULL } }; -static const ber_choice_t T_gapCriteria_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gapOnService_impl }, - { 29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_calledAddressAndService_impl }, - { 30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_callingAddressAndService_impl }, +static const ber_choice_t GapCriteria_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_calledAddressValue_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_gapOnService_impl }, + { 29, BER_CLASS_CON, 29, 0, dissect_calledAddressAndService_impl }, + { 30, BER_CLASS_CON, 30, 0, dissect_callingAddressAndService_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_gapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_GapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_gapCriteria_choice, hf_index, ett_inap_T_gapCriteria, + GapCriteria_choice, hf_index, ett_inap_GapCriteria, NULL); return offset; } static int dissect_gapCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_gapCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_gapCriteria); + return dissect_inap_GapCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_gapCriteria); } static int -dissect_inap_INTEGER_M1_60000(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_Interval(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_gapInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_M1_60000(TRUE, tvb, offset, pinfo, tree, hf_inap_gapInterval); + return dissect_inap_Interval(TRUE, tvb, offset, pinfo, tree, hf_inap_gapInterval); } -static const ber_sequence_t T_gapIndicators_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cgduration_impl }, +static const ber_sequence_t GapIndicators_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_duration_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapInterval_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_T_gapIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_GapIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_gapIndicators_sequence, hf_index, ett_inap_T_gapIndicators); + GapIndicators_sequence, hf_index, ett_inap_GapIndicators); return offset; } static int dissect_gapIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_gapIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_gapIndicators); + return dissect_inap_GapIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_gapIndicators); } -static const value_string inap_T_controlType_vals[] = { +static const value_string inap_ControlType_vals[] = { { 0, "sCPOverloaded" }, { 1, "manuallyInitiated" }, { 2, "destinationOverload" }, @@ -2042,81 +2371,81 @@ static const value_string inap_T_controlType_vals[] = { static int -dissect_inap_T_controlType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ControlType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_controlType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_controlType(TRUE, tvb, offset, pinfo, tree, hf_inap_controlType); + return dissect_inap_ControlType(TRUE, tvb, offset, pinfo, tree, hf_inap_controlType); } -static const ber_sequence_t Both_sequence[] = { +static const ber_sequence_t T_both_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_Both(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_T_both(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - Both_sequence, hf_index, ett_inap_Both); + T_both_sequence, hf_index, ett_inap_T_both); return offset; } static int dissect_both_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_Both(TRUE, tvb, offset, pinfo, tree, hf_inap_both); + return dissect_inap_T_both(TRUE, tvb, offset, pinfo, tree, hf_inap_both); } -static const value_string inap_T_gapTreatment_vals[] = { +static const value_string inap_GapTreatment_vals[] = { { 0, "informationToSend" }, { 1, "releaseCause" }, { 2, "both" }, { 0, NULL } }; -static const ber_choice_t T_gapTreatment_choice[] = { +static const ber_choice_t GapTreatment_choice[] = { { 0, BER_CLASS_CON, 0, 0, dissect_informationToSend_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_releaseCause_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_both_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_releaseCause_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_both_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_gapTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_GapTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_gapTreatment_choice, hf_index, ett_inap_T_gapTreatment, + GapTreatment_choice, hf_index, ett_inap_GapTreatment, NULL); return offset; } static int dissect_gapTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_gapTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_gapTreatment); + return dissect_inap_GapTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_gapTreatment); } -static const ber_sequence_t CallGaparg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gapCriteria_impl }, +static const ber_sequence_t CallGapArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gapCriteria_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapIndicators_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_controlType_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gapTreatment_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gapTreatment_impl }, { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_CallGaparg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CallGapArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CallGaparg_sequence, hf_index, ett_inap_CallGaparg); + CallGapArg_sequence, hf_index, ett_inap_CallGapArg); return offset; } -static const value_string inap_T_requestedInformationType_vals[] = { +static const value_string inap_RequestedInformationType_vals[] = { { 0, "callAttemptElapsedTime" }, { 1, "callStopTime" }, { 2, "callConnectedElapsedTime" }, @@ -2127,150 +2456,53 @@ static const value_string inap_T_requestedInformationType_vals[] = { static int -dissect_inap_T_requestedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RequestedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } -static int dissect_requestedInformationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_requestedInformationType(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationType); +static int dissect_RequestedInformationTypeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RequestedInformationType(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestedInformationTypeList_item); } - - - -static int -dissect_inap_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_callAttemptElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_inap_callAttemptElapsedTimeValue); -} - - -static const value_string inap_T_requestedInformationValue_vals[] = { - { 0, "callAttemptElapsedTimeValue" }, - { 1, "callStopTimeValue" }, - { 2, "callConnectedElapsedTimeValue" }, - { 3, "calledAddressValue" }, - { 30, "releaseCauseValue" }, - { 0, NULL } -}; - -static const ber_choice_t T_requestedInformationValue_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callAttemptElapsedTimeValue_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callStopTimeValue_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_callConnectedElapsedTimeValue_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl }, - { 30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_releaseCauseValue_impl }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_inap_T_requestedInformationValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_requestedInformationValue_choice, hf_index, ett_inap_T_requestedInformationValue, - NULL); - - return offset; -} -static int dissect_requestedInformationValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_requestedInformationValue(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationValue); -} - - -static const ber_sequence_t T_requestedInformationList_item_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationType_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_requestedInformationValue_impl }, - { 0, 0, 0, NULL } -}; - -static int -dissect_inap_T_requestedInformationList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_requestedInformationList_item_sequence, hf_index, ett_inap_T_requestedInformationList_item); - - return offset; -} -static int dissect_requestedInformationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_requestedInformationList_item(FALSE, tvb, offset, pinfo, tree, hf_inap_requestedInformationList_item); +static int dissect_requestedInformationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RequestedInformationType(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationType); } -static const ber_sequence_t T_requestedInformationList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_requestedInformationList_item }, +static const ber_sequence_t RequestedInformationTypeList_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_RequestedInformationTypeList_item }, }; static int -dissect_inap_T_requestedInformationList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RequestedInformationTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - T_requestedInformationList_sequence_of, hf_index, ett_inap_T_requestedInformationList); + RequestedInformationTypeList_sequence_of, hf_index, ett_inap_RequestedInformationTypeList); return offset; } -static int dissect_requestedInformationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_requestedInformationList(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationList); +static int dissect_requestedInformationTypeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RequestedInformationTypeList(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationTypeList); } -static const ber_sequence_t CallInformationReportarg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationList_impl }, +static const ber_sequence_t CallInformationReportArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationTypeList_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_CallInformationReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CallInformationReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CallInformationReportarg_sequence, hf_index, ett_inap_CallInformationReportarg); + CallInformationReportArg_sequence, hf_index, ett_inap_CallInformationReportArg); return offset; } -static const value_string inap_T_requestedInformationTypeList_item_vals[] = { - { 0, "callAttemptElapsedTime" }, - { 1, "callStopTime" }, - { 2, "callConnectedElapsedTime" }, - { 3, "calledAddress" }, - { 30, "releaseCause" }, - { 0, NULL } -}; - - -static int -dissect_inap_T_requestedInformationTypeList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_requestedInformationTypeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_requestedInformationTypeList_item(FALSE, tvb, offset, pinfo, tree, hf_inap_requestedInformationTypeList_item); -} - - -static const ber_sequence_t T_requestedInformationTypeList_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_requestedInformationTypeList_item }, -}; - -static int -dissect_inap_T_requestedInformationTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - T_requestedInformationTypeList_sequence_of, hf_index, ett_inap_T_requestedInformationTypeList); - - return offset; -} -static int dissect_requestedInformationTypeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_requestedInformationTypeList(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationTypeList); -} - - -static const ber_sequence_t CallInformationRequestarg_sequence[] = { +static const ber_sequence_t CallInformationRequestArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationTypeList_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -2279,9 +2511,9 @@ static const ber_sequence_t CallInformationRequestarg_sequence[] = { }; static int -dissect_inap_CallInformationRequestarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CallInformationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CallInformationRequestarg_sequence, hf_index, ett_inap_CallInformationRequestarg); + CallInformationRequestArg_sequence, hf_index, ett_inap_CallInformationRequestArg); return offset; } @@ -2289,17 +2521,14 @@ dissect_inap_CallInformationRequestarg(gboolean implicit_tag _U_, tvbuff_t *tvb, static int -dissect_inap_INTEGER_M128_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_invokeID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_M128_127(TRUE, tvb, offset, pinfo, tree, hf_inap_invokeID); -} -static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_M128_127(TRUE, tvb, offset, pinfo, tree, hf_inap_operation); + return dissect_inap_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_inap_invokeID); } @@ -2324,57 +2553,28 @@ static int dissect_null(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int } -static const value_string inap_Cancelarg_vals[] = { +static const value_string inap_CancelArg_vals[] = { { 0, "invokeID" }, { 1, "allRequests" }, { 0, NULL } }; -static const ber_choice_t Cancelarg_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_invokeID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_allRequests_impl }, +static const ber_choice_t CancelArg_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_invokeID_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_allRequests_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_Cancelarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CancelArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - Cancelarg_choice, hf_index, ett_inap_Cancelarg, + CancelArg_choice, hf_index, ett_inap_CancelArg, NULL); return offset; } -static const value_string inap_FacilityGroupID_vals[] = { - { 0, "trunkGroupID" }, - { 1, "privateFacilityID" }, - { 2, "huntGroup" }, - { 3, "routeIndex" }, - { 0, NULL } -}; - -static const ber_choice_t FacilityGroupID_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_privateFacilityID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_huntGroup_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_routeIndex_impl }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_inap_FacilityGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - FacilityGroupID_choice, hf_index, ett_inap_FacilityGroupID, - NULL); - - return offset; -} -static int dissect_facilityGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_FacilityGroupID(TRUE, tvb, offset, pinfo, tree, hf_inap_facilityGroupID); -} - - static const value_string inap_ResourceID_vals[] = { { 0, "lineID" }, { 1, "facilityGroupID" }, @@ -2384,10 +2584,10 @@ static const value_string inap_ResourceID_vals[] = { }; static const ber_choice_t ResourceID_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lineID_impl }, + { 0, BER_CLASS_CON, 0, 0, dissect_lineID_impl }, { 1, BER_CLASS_CON, 1, 0, dissect_facilityGroupID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_facilityGroupMemberID_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_facilityGroupMemberID_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_trunkGroupID_impl }, { 0, 0, 0, 0, NULL } }; @@ -2404,22 +2604,22 @@ static int dissect_resourceID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_ } -static const ber_sequence_t CancelStatusReportRequestarg_sequence[] = { +static const ber_sequence_t CancelStatusReportRequestArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_CancelStatusReportRequestarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CancelStatusReportRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CancelStatusReportRequestarg_sequence, hf_index, ett_inap_CancelStatusReportRequestarg); + CancelStatusReportRequestArg_sequence, hf_index, ett_inap_CancelStatusReportRequestArg); return offset; } -static const ber_sequence_t CollectedInformationarg_sequence[] = { +static const ber_sequence_t CollectedInformationArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, @@ -2439,15 +2639,28 @@ static const ber_sequence_t CollectedInformationarg_sequence[] = { }; static int -dissect_inap_CollectedInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CollectedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CollectedInformationarg_sequence, hf_index, ett_inap_CollectedInformationarg); + CollectedInformationArg_sequence, hf_index, ett_inap_CollectedInformationArg); return offset; } -static const ber_sequence_t CollectInformationarg_sequence[] = { + +static int +dissect_inap_NumberingPlan(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_numberingPlan_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_NumberingPlan(TRUE, tvb, offset, pinfo, tree, hf_inap_numberingPlan); +} + + +static const ber_sequence_t CollectInformationArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberingPlan_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl }, @@ -2459,9 +2672,9 @@ static const ber_sequence_t CollectInformationarg_sequence[] = { }; static int -dissect_inap_CollectInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CollectInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - CollectInformationarg_sequence, hf_index, ett_inap_CollectInformationarg); + CollectInformationArg_sequence, hf_index, ett_inap_CollectInformationArg); return offset; } @@ -2469,37 +2682,64 @@ dissect_inap_CollectInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int static int -dissect_inap_INTEGER_0_22(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CutAndPaste(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_cutAndPaste_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_22(TRUE, tvb, offset, pinfo, tree, hf_inap_cutAndPaste); + return dissect_inap_CutAndPaste(TRUE, tvb, offset, pinfo, tree, hf_inap_cutAndPaste); } -static const value_string inap_T_forwardingCondition_vals[] = { +static const value_string inap_ForwardingCondition_vals[] = { { 0, "busy" }, { 1, "noanswer" }, + { 2, "any" }, { 0, NULL } }; static int -dissect_inap_T_forwardingCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ForwardingCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_forwardingCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_forwardingCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardingCondition); + return dissect_inap_ForwardingCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardingCondition); } -static const ber_sequence_t Connectarg_sequence[] = { + +static int +dissect_inap_ScfID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_scfID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ScfID(TRUE, tvb, offset, pinfo, tree, hf_inap_scfID); +} + + + +static int +dissect_inap_ServiceInteractionIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_serviceInteractionIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ServiceInteractionIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_serviceInteractionIndicators); +} + + +static const ber_sequence_t ConnectArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, @@ -2521,27 +2761,57 @@ static const ber_sequence_t Connectarg_sequence[] = { }; static int -dissect_inap_Connectarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ConnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + ConnectArg_sequence, hf_index, ett_inap_ConnectArg); + + return offset; +} + + + +static int +dissect_inap_IPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_CalledPartyNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_IPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_ipRoutingAddress); +} + + +static const ber_sequence_t T_both2_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ipRoutingAddress_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_inap_T_both2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - Connectarg_sequence, hf_index, ett_inap_Connectarg); + T_both2_sequence, hf_index, ett_inap_T_both2); return offset; } +static int dissect_both2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_T_both2(TRUE, tvb, offset, pinfo, tree, hf_inap_both2); +} static const value_string inap_T_resourceAddress_vals[] = { { 0, "ipRoutingAddress" }, { 1, "legID" }, - { 2, "both" }, + { 2, "both2" }, { 3, "none" }, { 0, NULL } }; static const ber_choice_t T_resourceAddress_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ipRoutingAddress_impl }, + { 0, BER_CLASS_CON, 0, 0, dissect_ipRoutingAddress_impl }, { 1, BER_CLASS_CON, 1, 0, dissect_legID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_both_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_none_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_both2_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_none_impl }, { 0, 0, 0, 0, NULL } }; @@ -2558,23 +2828,35 @@ static int dissect_resourceAddress(packet_info *pinfo, proto_tree *tree, tvbuff_ } -static const ber_sequence_t ConnectToResource_sequence[] = { +static const ber_sequence_t ConnectToResourceArg_sequence[] = { { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceAddress }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicators_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_ConnectToResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ConnectToResourceArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - ConnectToResource_sequence, hf_index, ett_inap_ConnectToResource); + ConnectToResourceArg_sequence, hf_index, ett_inap_ConnectToResourceArg); return offset; } -static const ber_sequence_t EstablishTemporaryConnection_sequence[] = { + +static int +dissect_inap_AssistingSSPIPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_AssistingSSPIPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_inap_assistingSSPIPRoutingAddress); +} + + +static const ber_sequence_t EstablishTemporaryConnectionArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assistingSSPIPRoutingAddress_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, @@ -2586,14 +2868,40 @@ static const ber_sequence_t EstablishTemporaryConnection_sequence[] = { }; static int -dissect_inap_EstablishTemporaryConnection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_EstablishTemporaryConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - EstablishTemporaryConnection_sequence, hf_index, ett_inap_EstablishTemporaryConnection); + EstablishTemporaryConnectionArg_sequence, hf_index, ett_inap_EstablishTemporaryConnectionArg); return offset; } + +static int +dissect_inap_EventTypeCharging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_eventTypeCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_EventTypeCharging(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeCharging); +} + + + +static int +dissect_inap_EventSpecificInformationCharging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_eventSpecificInformationCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_EventSpecificInformationCharging(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationCharging); +} + + static const value_string inap_MonitorMode_vals[] = { { 0, "interrupted" }, { 1, "notifyAndContinue" }, @@ -2614,58 +2922,24 @@ static int dissect_monitorMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff } -static const ber_sequence_t EventNotificationChargingarg_sequence[] = { +static const ber_sequence_t EventNotificationChargingArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventSpecificInformationCharging_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, + { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_EventNotificationChargingarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_EventNotificationChargingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - EventNotificationChargingarg_sequence, hf_index, ett_inap_EventNotificationChargingarg); + EventNotificationChargingArg_sequence, hf_index, ett_inap_EventNotificationChargingArg); return offset; } -static const value_string inap_EventTypeBCSM_vals[] = { - { 1, "origAttemptAuthorized" }, - { 2, "collectedInfo" }, - { 3, "analysedInformation" }, - { 4, "routeSelectFailure" }, - { 5, "oCalledPartyBusy" }, - { 6, "oNoAnswer" }, - { 7, "oAnswer" }, - { 8, "oMidCall" }, - { 9, "oDisconnect" }, - { 10, "oAbandon" }, - { 12, "termAttemptAuthorized" }, - { 13, "tBusy" }, - { 14, "tNoAnswer" }, - { 15, "tAnswer" }, - { 16, "tMidCall" }, - { 17, "tDisconnect" }, - { 18, "tAbandon" }, - { 0, NULL } -}; - - -static int -dissect_inap_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_eventTypeBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventTypeBCSM); -} - - static const ber_sequence_t T_collectedInfoSpecificInfo_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledPartynumber_impl }, { 0, 0, 0, NULL } @@ -2700,22 +2974,6 @@ static int dissect_analyzedInfoSpecificInfo_impl(packet_info *pinfo, proto_tree } - -static int -dissect_inap_OCTET_STRING_SIZE_2_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_inap_failureCause); -} -static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_inap_busyCause); -} - - static const ber_sequence_t T_routeSelectFailureSpecificInfo_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause_impl }, { 0, 0, 0, NULL } @@ -2901,7 +3159,7 @@ static int dissect_tDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree * } -static const value_string inap_T_eventSpecificInformationBCSM_vals[] = { +static const value_string inap_EventSpecificInformationBCSM_vals[] = { { 0, "collectedInfoSpecificInfo" }, { 1, "analyzedInfoSpecificInfo" }, { 2, "routeSelectFailureSpecificInfo" }, @@ -2918,50 +3176,50 @@ static const value_string inap_T_eventSpecificInformationBCSM_vals[] = { { 0, NULL } }; -static const ber_choice_t T_eventSpecificInformationBCSM_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedInfoSpecificInfo_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_analyzedInfoSpecificInfo_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_routeSelectFailureSpecificInfo_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_oCalledPartyBusySpecificInfo_impl }, - { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_oNoAnswerSpecificInfo_impl }, - { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_oAnswerSpecificInfo_impl }, - { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_oMidCallSpecificInfo_impl }, - { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_oDisconnectSpecificInfo_impl }, - { 8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_tBusySpecificInfo_impl }, - { 9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_tNoAnswerSpecificInfo_impl }, - { 10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_tAnswerSpecificInfo_impl }, - { 11, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_tMidCallSpecificInfo_impl }, - { 12, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_tDisconnectSpecificInfo_impl }, +static const ber_choice_t EventSpecificInformationBCSM_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_collectedInfoSpecificInfo_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_analyzedInfoSpecificInfo_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_routeSelectFailureSpecificInfo_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_oCalledPartyBusySpecificInfo_impl }, + { 4, BER_CLASS_CON, 4, 0, dissect_oNoAnswerSpecificInfo_impl }, + { 5, BER_CLASS_CON, 5, 0, dissect_oAnswerSpecificInfo_impl }, + { 6, BER_CLASS_CON, 6, 0, dissect_oMidCallSpecificInfo_impl }, + { 7, BER_CLASS_CON, 7, 0, dissect_oDisconnectSpecificInfo_impl }, + { 8, BER_CLASS_CON, 8, 0, dissect_tBusySpecificInfo_impl }, + { 9, BER_CLASS_CON, 9, 0, dissect_tNoAnswerSpecificInfo_impl }, + { 10, BER_CLASS_CON, 10, 0, dissect_tAnswerSpecificInfo_impl }, + { 11, BER_CLASS_CON, 11, 0, dissect_tMidCallSpecificInfo_impl }, + { 12, BER_CLASS_CON, 12, 0, dissect_tDisconnectSpecificInfo_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_eventSpecificInformationBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_EventSpecificInformationBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_eventSpecificInformationBCSM_choice, hf_index, ett_inap_T_eventSpecificInformationBCSM, + EventSpecificInformationBCSM_choice, hf_index, ett_inap_EventSpecificInformationBCSM, NULL); return offset; } static int dissect_eventSpecificInformationBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_eventSpecificInformationBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationBCSM); + return dissect_inap_EventSpecificInformationBCSM(TRUE, tvb, offset, pinfo, tree, hf_inap_eventSpecificInformationBCSM); } -static const ber_sequence_t EventReportBCSM_sequence[] = { +static const ber_sequence_t EventReportBCSMArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bcsmEventCorrelationID_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventSpecificInformationBCSM_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_eventSpecificInformationBCSM_impl }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl }, { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_EventReportBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_EventReportBCSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - EventReportBCSM_sequence, hf_index, ett_inap_EventReportBCSM); + EventReportBCSMArg_sequence, hf_index, ett_inap_EventReportBCSMArg); return offset; } @@ -2969,7 +3227,7 @@ dissect_inap_EventReportBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offse static int -dissect_inap_FurnishChargingInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); @@ -2977,28 +3235,88 @@ dissect_inap_FurnishChargingInformationarg(gboolean implicit_tag _U_, tvbuff_t * } -static const value_string inap_HoldCallInNetworkarg_vals[] = { + +static int +dissect_inap_FurnishChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} + + + +static int +dissect_inap_HoldCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_holdcause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_HoldCause(TRUE, tvb, offset, pinfo, tree, hf_inap_holdcause); +} + + +static const value_string inap_HoldCallInNetworkArg_vals[] = { { 0, "holdcause" }, { 1, "empty" }, { 0, NULL } }; -static const ber_choice_t HoldCallInNetworkarg_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_holdcause_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_empty_impl }, +static const ber_choice_t HoldCallInNetworkArg_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_holdcause_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_empty_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_HoldCallInNetworkarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_HoldCallInNetworkArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - HoldCallInNetworkarg_choice, hf_index, ett_inap_HoldCallInNetworkarg, + HoldCallInNetworkArg_choice, hf_index, ett_inap_HoldCallInNetworkArg, NULL); return offset; } + +static int +dissect_inap_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_HighLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_inap_highLayerCompatibility); +} + + + +static int +dissect_inap_AdditionalCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_additionalCallingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_AdditionalCallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_inap_additionalCallingPartyNumber); +} + + + +static int +dissect_inap_ForwardCallIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_forwardCallIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ForwardCallIndicators(TRUE, tvb, offset, pinfo, tree, hf_inap_forwardCallIndicators); +} + + static const ber_sequence_t InitialDP_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceKey_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl }, @@ -3037,7 +3355,7 @@ dissect_inap_InitialDP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac } -static const ber_sequence_t InitiateCallAttempt_sequence[] = { +static const ber_sequence_t InitiateCallAttemptArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl }, @@ -3049,15 +3367,84 @@ static const ber_sequence_t InitiateCallAttempt_sequence[] = { }; static int -dissect_inap_InitiateCallAttempt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_InitiateCallAttemptArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - InitiateCallAttempt_sequence, hf_index, ett_inap_InitiateCallAttempt); + InitiateCallAttemptArg_sequence, hf_index, ett_inap_InitiateCallAttemptArg); + + return offset; +} + + + +static int +dissect_inap_CalledPartyBusinessGroupID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } +static int dissect_calledPartyBusinessGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartyBusinessGroupID(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartyBusinessGroupID); +} + -static const ber_sequence_t OAnswer_sequence[] = { +static int +dissect_inap_CalledPartySubaddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_calledPartySubaddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CalledPartySubaddress(TRUE, tvb, offset, pinfo, tree, hf_inap_calledPartySubaddress); +} + + +static const value_string inap_FeatureRequestIndicator_vals[] = { + { 0, "hold" }, + { 1, "retrieve" }, + { 2, "featureActivation" }, + { 3, "spare1" }, + { 127, "sparen" }, + { 0, NULL } +}; + + +static int +dissect_inap_FeatureRequestIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_featureRequestIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_FeatureRequestIndicator(TRUE, tvb, offset, pinfo, tree, hf_inap_featureRequestIndicator); +} + + +static const ber_sequence_t MidCallArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureRequestIndicator_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_inap_MidCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + MidCallArg_sequence, hf_index, ett_inap_MidCallArg); + + return offset; +} + + +static const ber_sequence_t OAnswerArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl }, @@ -3073,15 +3460,15 @@ static const ber_sequence_t OAnswer_sequence[] = { }; static int -dissect_inap_OAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_OAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - OAnswer_sequence, hf_index, ett_inap_OAnswer); + OAnswerArg_sequence, hf_index, ett_inap_OAnswerArg); return offset; } -static const ber_sequence_t OCalledPartyBusy_sequence[] = { +static const ber_sequence_t OCalledPartyBusyArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, @@ -3100,15 +3487,15 @@ static const ber_sequence_t OCalledPartyBusy_sequence[] = { }; static int -dissect_inap_OCalledPartyBusy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_OCalledPartyBusyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - OCalledPartyBusy_sequence, hf_index, ett_inap_OCalledPartyBusy); + OCalledPartyBusyArg_sequence, hf_index, ett_inap_OCalledPartyBusyArg); return offset; } -static const ber_sequence_t ODisconnect_sequence[] = { +static const ber_sequence_t ODisconnectArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl }, @@ -3123,52 +3510,9 @@ static const ber_sequence_t ODisconnect_sequence[] = { }; static int -dissect_inap_ODisconnect(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ODisconnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - ODisconnect_sequence, hf_index, ett_inap_ODisconnect); - - return offset; -} - - -static const value_string inap_FeatureRequestIndicator_vals[] = { - { 0, "hold" }, - { 1, "retrieve" }, - { 2, "featureActivation" }, - { 3, "spare1" }, - { 127, "sparen" }, - { 0, NULL } -}; - - -static int -dissect_inap_FeatureRequestIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_featureRequestIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_FeatureRequestIndicator(TRUE, tvb, offset, pinfo, tree, hf_inap_featureRequestIndicator); -} - - -static const ber_sequence_t OMidCall_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureRequestIndicator_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl }, - { 0, 0, 0, NULL } -}; - -static int -dissect_inap_OMidCall(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - OMidCall_sequence, hf_index, ett_inap_OMidCall); + ODisconnectArg_sequence, hf_index, ett_inap_ODisconnectArg); return offset; } @@ -3200,7 +3544,7 @@ dissect_inap_ONoAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac } -static const ber_sequence_t OriginationAttemptAuthorized_sequence[] = { +static const ber_sequence_t OriginationAttemptAuthorizedArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, @@ -3214,9 +3558,9 @@ static const ber_sequence_t OriginationAttemptAuthorized_sequence[] = { }; static int -dissect_inap_OriginationAttemptAuthorized(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_OriginationAttemptAuthorizedArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - OriginationAttemptAuthorized_sequence, hf_index, ett_inap_OriginationAttemptAuthorized); + OriginationAttemptAuthorizedArg_sequence, hf_index, ett_inap_OriginationAttemptAuthorizedArg); return offset; } @@ -3249,7 +3593,7 @@ static int dissect_iA5Information_impl(packet_info *pinfo, proto_tree *tree, tvb } -static const ber_sequence_t PlayAnnouncement_sequence[] = { +static const ber_sequence_t PlayAnnouncementArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestAnnouncementComplete_impl }, @@ -3258,9 +3602,9 @@ static const ber_sequence_t PlayAnnouncement_sequence[] = { }; static int -dissect_inap_PlayAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_PlayAnnouncementArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - PlayAnnouncement_sequence, hf_index, ett_inap_PlayAnnouncement); + PlayAnnouncementArg_sequence, hf_index, ett_inap_PlayAnnouncementArg); return offset; } @@ -3285,7 +3629,7 @@ static int dissect_startDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_ } -static const value_string inap_T_errorTreatment_vals[] = { +static const value_string inap_ErrorTreatment_vals[] = { { 0, "reportErrorToScf" }, { 1, "help" }, { 2, "repeatPrompt" }, @@ -3294,18 +3638,18 @@ static const value_string inap_T_errorTreatment_vals[] = { static int -dissect_inap_T_errorTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ErrorTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_errorTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_errorTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_errorTreatment); + return dissect_inap_ErrorTreatment(TRUE, tvb, offset, pinfo, tree, hf_inap_errorTreatment); } -static const ber_sequence_t T_collectedDigits_sequence[] = { +static const ber_sequence_t CollectedDigits_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNbOfDigits_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_maximumNbOfDigits_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl }, @@ -3321,44 +3665,44 @@ static const ber_sequence_t T_collectedDigits_sequence[] = { }; static int -dissect_inap_T_collectedDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CollectedDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_collectedDigits_sequence, hf_index, ett_inap_T_collectedDigits); + CollectedDigits_sequence, hf_index, ett_inap_CollectedDigits); return offset; } static int dissect_collectedDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_collectedDigits(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedDigits); + return dissect_inap_CollectedDigits(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedDigits); } -static const value_string inap_T_collectedInfo_vals[] = { +static const value_string inap_CollectedInfo_vals[] = { { 0, "collectedDigits" }, { 1, "iA5Information" }, { 0, NULL } }; -static const ber_choice_t T_collectedInfo_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedDigits_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_iA5Information_impl }, +static const ber_choice_t CollectedInfo_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_collectedDigits_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_iA5Information_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_collectedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CollectedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_collectedInfo_choice, hf_index, ett_inap_T_collectedInfo, + CollectedInfo_choice, hf_index, ett_inap_CollectedInfo, NULL); return offset; } static int dissect_collectedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_collectedInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedInfo); + return dissect_inap_CollectedInfo(TRUE, tvb, offset, pinfo, tree, hf_inap_collectedInfo); } -static const ber_sequence_t PromptAndCollectUserInformationarg_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedInfo_impl }, +static const ber_sequence_t PromptAndCollectUserInformationArg_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_collectedInfo_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl }, { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -3366,60 +3710,45 @@ static const ber_sequence_t PromptAndCollectUserInformationarg_sequence[] = { }; static int -dissect_inap_PromptAndCollectUserInformationarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_PromptAndCollectUserInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - PromptAndCollectUserInformationarg_sequence, hf_index, ett_inap_PromptAndCollectUserInformationarg); + PromptAndCollectUserInformationArg_sequence, hf_index, ett_inap_PromptAndCollectUserInformationArg); return offset; } -static const value_string inap_PromptAndCollectUserInformationres_vals[] = { - { 0, "digitsResponse" }, - { 1, "iA5Response" }, - { 0, NULL } -}; - -static const ber_choice_t PromptAndCollectUserInformationres_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_digitsResponse_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_iA5Response_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_inap_PromptAndCollectUserInformationres(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - PromptAndCollectUserInformationres_choice, hf_index, ett_inap_PromptAndCollectUserInformationres, - NULL); +dissect_inap_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String, + pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } +static int dissect_iA5Response_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_IA5String(TRUE, tvb, offset, pinfo, tree, hf_inap_iA5Response); +} -static const value_string inap_ResourceStatus_vals[] = { - { 0, "busy" }, - { 1, "idle" }, +static const value_string inap_ReceivedInformationArg_vals[] = { + { 0, "digitsResponse" }, + { 1, "iA5Response" }, { 0, NULL } }; +static const ber_choice_t ReceivedInformationArg_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_digitsResponse_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_iA5Response_impl }, + { 0, 0, 0, 0, NULL } +}; static int -dissect_inap_ResourceStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); - - return offset; -} -static int dissect_resourceStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_ResourceStatus(TRUE, tvb, offset, pinfo, tree, hf_inap_resourceStatus); -} - - - -static int -dissect_inap_ReleaseCall(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, - NULL); +dissect_inap_ReceivedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + ReceivedInformationArg_choice, hf_index, ett_inap_ReceivedInformationArg, + NULL); return offset; } @@ -3464,49 +3793,51 @@ dissect_inap_ReleaseCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset } -static const value_string inap_RequestCurrentStatusReportarg_vals[] = { - { 0, "lineID" }, - { 1, "facilityGroupID" }, - { 2, "facilityGroupMemberID" }, - { 3, "trunkGroupID" }, + +static int +dissect_inap_RequestCurrentStatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_ResourceID(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} + + +static const value_string inap_ResourceStatus_vals[] = { + { 0, "busy" }, + { 1, "idle" }, { 0, NULL } }; -static const ber_choice_t RequestCurrentStatusReportarg_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_lineID_impl }, - { 1, BER_CLASS_CON, 1, 0, dissect_facilityGroupID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_facilityGroupMemberID_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl }, - { 0, 0, 0, 0, NULL } -}; static int -dissect_inap_RequestCurrentStatusReportarg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - RequestCurrentStatusReportarg_choice, hf_index, ett_inap_RequestCurrentStatusReportarg, - NULL); +dissect_inap_ResourceStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } +static int dissect_resourceStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_ResourceStatus(TRUE, tvb, offset, pinfo, tree, hf_inap_resourceStatus); +} -static const ber_sequence_t RequestCurrentStatusReportres_sequence[] = { +static const ber_sequence_t RequestCurrentStatusReportResultArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_RequestCurrentStatusReportres(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RequestCurrentStatusReportResultArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - RequestCurrentStatusReportres_sequence, hf_index, ett_inap_RequestCurrentStatusReportres); + RequestCurrentStatusReportResultArg_sequence, hf_index, ett_inap_RequestCurrentStatusReportResultArg); return offset; } -static const ber_sequence_t RequestEveryStatusChangeReport_sequence[] = { +static const ber_sequence_t RequestEveryStatusChangeReportArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_monitorDuration_impl }, @@ -3515,15 +3846,15 @@ static const ber_sequence_t RequestEveryStatusChangeReport_sequence[] = { }; static int -dissect_inap_RequestEveryStatusChangeReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RequestEveryStatusChangeReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - RequestEveryStatusChangeReport_sequence, hf_index, ett_inap_RequestEveryStatusChangeReport); + RequestEveryStatusChangeReportArg_sequence, hf_index, ett_inap_RequestEveryStatusChangeReportArg); return offset; } -static const ber_sequence_t RequestFirstStatusMatchReport_sequence[] = { +static const ber_sequence_t RequestFirstStatusMatchReportArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, @@ -3534,16 +3865,16 @@ static const ber_sequence_t RequestFirstStatusMatchReport_sequence[] = { }; static int -dissect_inap_RequestFirstStatusMatchReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RequestFirstStatusMatchReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - RequestFirstStatusMatchReport_sequence, hf_index, ett_inap_RequestFirstStatusMatchReport); + RequestFirstStatusMatchReportArg_sequence, hf_index, ett_inap_RequestFirstStatusMatchReportArg); return offset; } static const ber_sequence_t RequestNotificationChargingEvent_item_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl }, + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging2_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, { 0, 0, 0, NULL } @@ -3576,92 +3907,92 @@ dissect_inap_RequestNotificationChargingEvent(gboolean implicit_tag _U_, tvbuff_ static int -dissect_inap_INTEGER_1_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_NumberOfDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_numberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_1_255(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfDigits); + return dissect_inap_NumberOfDigits(TRUE, tvb, offset, pinfo, tree, hf_inap_numberOfDigits); } static int -dissect_inap_INTEGER_0_2047(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ApplicationTimer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_applicationTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_2047(TRUE, tvb, offset, pinfo, tree, hf_inap_applicationTimer); + return dissect_inap_ApplicationTimer(TRUE, tvb, offset, pinfo, tree, hf_inap_applicationTimer); } -static const value_string inap_T_dpSpecificCriteria_vals[] = { +static const value_string inap_DpSpecificCriteria_vals[] = { { 0, "numberOfDigits" }, { 1, "applicationTimer" }, { 0, NULL } }; -static const ber_choice_t T_dpSpecificCriteria_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_numberOfDigits_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_applicationTimer_impl }, +static const ber_choice_t DpSpecificCriteria_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_numberOfDigits_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_applicationTimer_impl }, { 0, 0, 0, 0, NULL } }; static int -dissect_inap_T_dpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_DpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_choice(pinfo, tree, tvb, offset, - T_dpSpecificCriteria_choice, hf_index, ett_inap_T_dpSpecificCriteria, + DpSpecificCriteria_choice, hf_index, ett_inap_DpSpecificCriteria, NULL); return offset; } static int dissect_dpSpecificCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_dpSpecificCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_dpSpecificCriteria); + return dissect_inap_DpSpecificCriteria(TRUE, tvb, offset, pinfo, tree, hf_inap_dpSpecificCriteria); } -static const ber_sequence_t T_bcsmEvents_item_sequence[] = { +static const ber_sequence_t BCSMEvent_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, - { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dpSpecificCriteria_impl }, + { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_dpSpecificCriteria_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_T_bcsmEvents_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_bcsmEvents_item_sequence, hf_index, ett_inap_T_bcsmEvents_item); + BCSMEvent_sequence, hf_index, ett_inap_BCSMEvent); return offset; } static int dissect_bcsmEvents_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_bcsmEvents_item(FALSE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents_item); + return dissect_inap_BCSMEvent(FALSE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents_item); } -static const ber_sequence_t T_bcsmEvents_sequence_of[1] = { +static const ber_sequence_t SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent_sequence_of[1] = { { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bcsmEvents_item }, }; static int -dissect_inap_T_bcsmEvents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - T_bcsmEvents_sequence_of, hf_index, ett_inap_T_bcsmEvents); + SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent_sequence_of, hf_index, ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent); return offset; } static int dissect_bcsmEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_bcsmEvents(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents); + return dissect_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent(TRUE, tvb, offset, pinfo, tree, hf_inap_bcsmEvents); } -static const ber_sequence_t RequestReportBCSMEvent_sequence[] = { +static const ber_sequence_t RequestReportBCSMEventArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bcsmEvents_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bcsmEventCorrelationID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -3669,33 +4000,45 @@ static const ber_sequence_t RequestReportBCSMEvent_sequence[] = { }; static int -dissect_inap_RequestReportBCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RequestReportBCSMEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - RequestReportBCSMEvent_sequence, hf_index, ett_inap_RequestReportBCSMEvent); + RequestReportBCSMEventArg_sequence, hf_index, ett_inap_RequestReportBCSMEventArg); return offset; } -static const value_string inap_T_timerID_vals[] = { +static const value_string inap_TimerID_vals[] = { { 0, "tssf" }, { 0, NULL } }; static int -dissect_inap_T_timerID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_TimerID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_timerID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_timerID(TRUE, tvb, offset, pinfo, tree, hf_inap_timerID); + return dissect_inap_TimerID(TRUE, tvb, offset, pinfo, tree, hf_inap_timerID); +} + + + +static int +dissect_inap_TimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_inap_Integer4(implicit_tag, tvb, offset, pinfo, tree, hf_index); + + return offset; +} +static int dissect_timervalue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_TimerValue(TRUE, tvb, offset, pinfo, tree, hf_inap_timervalue); } -static const ber_sequence_t ResetTimer_sequence[] = { +static const ber_sequence_t ResetTimerArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -3703,15 +4046,15 @@ static const ber_sequence_t ResetTimer_sequence[] = { }; static int -dissect_inap_ResetTimer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ResetTimerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - ResetTimer_sequence, hf_index, ett_inap_ResetTimer); + ResetTimerArg_sequence, hf_index, ett_inap_ResetTimerArg); return offset; } -static const ber_sequence_t RouteSelectFailure_sequence[] = { +static const ber_sequence_t RouteSelectFailureArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_dialledDigits_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, @@ -3731,44 +4074,15 @@ static const ber_sequence_t RouteSelectFailure_sequence[] = { }; static int -dissect_inap_RouteSelectFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_RouteSelectFailureArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - RouteSelectFailure_sequence, hf_index, ett_inap_RouteSelectFailure); + RouteSelectFailureArg_sequence, hf_index, ett_inap_RouteSelectFailureArg); return offset; } -static const value_string inap_CalledFacilityGroup_vals[] = { - { 0, "trunkGroupID" }, - { 1, "privateFacilityID" }, - { 2, "huntGroup" }, - { 3, "routeIndex" }, - { 0, NULL } -}; - -static const ber_choice_t CalledFacilityGroup_choice[] = { - { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_trunkGroupID_impl }, - { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_privateFacilityID_impl }, - { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_huntGroup_impl }, - { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_routeIndex_impl }, - { 0, 0, 0, 0, NULL } -}; - -static int -dissect_inap_CalledFacilityGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { - offset = dissect_ber_choice(pinfo, tree, tvb, offset, - CalledFacilityGroup_choice, hf_index, ett_inap_CalledFacilityGroup, - NULL); - - return offset; -} -static int dissect_calledFacilityGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_CalledFacilityGroup(TRUE, tvb, offset, pinfo, tree, hf_inap_calledFacilityGroup); -} - - -static const ber_sequence_t SelectFacility_sequence[] = { +static const ber_sequence_t SelectFacilityArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationNumberRoutingAddress_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iSDNAccessRelatedInformation_impl }, @@ -3780,15 +4094,15 @@ static const ber_sequence_t SelectFacility_sequence[] = { }; static int -dissect_inap_SelectFacility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_SelectFacilityArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - SelectFacility_sequence, hf_index, ett_inap_SelectFacility); + SelectFacilityArg_sequence, hf_index, ett_inap_SelectFacilityArg); return offset; } -static const ber_sequence_t SelectRoute_sequence[] = { +static const ber_sequence_t SelectRouteArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, @@ -3803,15 +4117,28 @@ static const ber_sequence_t SelectRoute_sequence[] = { }; static int -dissect_inap_SelectRoute(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_SelectRouteArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - SelectRoute_sequence, hf_index, ett_inap_SelectRoute); + SelectRouteArg_sequence, hf_index, ett_inap_SelectRouteArg); return offset; } -static const ber_sequence_t SendChargingInformation_sequence[] = { + +static int +dissect_inap_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_sCIBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_SCIBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_inap_sCIBillingChargingCharacteristics); +} + + +static const ber_sequence_t SendChargingInformationArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sCIBillingChargingCharacteristics_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -3819,9 +4146,9 @@ static const ber_sequence_t SendChargingInformation_sequence[] = { }; static int -dissect_inap_SendChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_SendChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - SendChargingInformation_sequence, hf_index, ett_inap_SendChargingInformation); + SendChargingInformationArg_sequence, hf_index, ett_inap_SendChargingInformationArg); return offset; } @@ -3829,52 +4156,52 @@ dissect_inap_SendChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, i static int -dissect_inap_INTEGER_0_99(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CounterID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_counterID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_inap_counterID); + return dissect_inap_CounterID(TRUE, tvb, offset, pinfo, tree, hf_inap_counterID); } -static const ber_sequence_t T_countersValue_item_sequence[] = { +static const ber_sequence_t CounterAndValue_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_counterID_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_counterValue_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_T_countersValue_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CounterAndValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - T_countersValue_item_sequence, hf_index, ett_inap_T_countersValue_item); + CounterAndValue_sequence, hf_index, ett_inap_CounterAndValue); return offset; } -static int dissect_countersValue_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_countersValue_item(FALSE, tvb, offset, pinfo, tree, hf_inap_countersValue_item); +static int dissect_CountersValue_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_CounterAndValue(FALSE, tvb, offset, pinfo, tree, hf_inap_CountersValue_item); } -static const ber_sequence_t T_countersValue_sequence_of[1] = { - { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_countersValue_item }, +static const ber_sequence_t CountersValue_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CountersValue_item }, }; static int -dissect_inap_T_countersValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_CountersValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, - T_countersValue_sequence_of, hf_index, ett_inap_T_countersValue); + CountersValue_sequence_of, hf_index, ett_inap_CountersValue); return offset; } static int dissect_countersValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_countersValue(TRUE, tvb, offset, pinfo, tree, hf_inap_countersValue); + return dissect_inap_CountersValue(TRUE, tvb, offset, pinfo, tree, hf_inap_countersValue); } -static const value_string inap_T_responseCondition_vals[] = { +static const value_string inap_ResponseCondition_vals[] = { { 0, "intermediateResponse" }, { 1, "lastResponse" }, { 0, NULL } @@ -3882,18 +4209,18 @@ static const value_string inap_T_responseCondition_vals[] = { static int -dissect_inap_T_responseCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ResponseCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_responseCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_responseCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_responseCondition); + return dissect_inap_ResponseCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_responseCondition); } -static const ber_sequence_t ServiceFilteringResponse_sequence[] = { +static const ber_sequence_t ServiceFilteringResponseArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_countersValue_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_filteringCriteria_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, @@ -3902,15 +4229,24 @@ static const ber_sequence_t ServiceFilteringResponse_sequence[] = { }; static int -dissect_inap_ServiceFilteringResponse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ServiceFilteringResponseArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - ServiceFilteringResponse_sequence, hf_index, ett_inap_ServiceFilteringResponse); + ServiceFilteringResponseArg_sequence, hf_index, ett_inap_ServiceFilteringResponseArg); + + return offset; +} + + + +static int +dissect_inap_SpecializedResourceReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index); return offset; } -static const value_string inap_T_reportCondition_vals[] = { +static const value_string inap_ReportCondition_vals[] = { { 0, "statusReport" }, { 1, "timerExpired" }, { 2, "canceled" }, @@ -3919,18 +4255,18 @@ static const value_string inap_T_reportCondition_vals[] = { static int -dissect_inap_T_reportCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ReportCondition(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL); return offset; } static int dissect_reportCondition_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { - return dissect_inap_T_reportCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_reportCondition); + return dissect_inap_ReportCondition(TRUE, tvb, offset, pinfo, tree, hf_inap_reportCondition); } -static const ber_sequence_t StatusReport_sequence[] = { +static const ber_sequence_t StatusReportArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_resourceStatus_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceID_impl }, @@ -3940,15 +4276,15 @@ static const ber_sequence_t StatusReport_sequence[] = { }; static int -dissect_inap_StatusReport(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_StatusReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - StatusReport_sequence, hf_index, ett_inap_StatusReport); + StatusReportArg_sequence, hf_index, ett_inap_StatusReportArg); return offset; } -static const ber_sequence_t TAnswer_sequence[] = { +static const ber_sequence_t TAnswerArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, @@ -3959,15 +4295,15 @@ static const ber_sequence_t TAnswer_sequence[] = { }; static int -dissect_inap_TAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_TAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - TAnswer_sequence, hf_index, ett_inap_TAnswer); + TAnswerArg_sequence, hf_index, ett_inap_TAnswerArg); return offset; } -static const ber_sequence_t TBusy_sequence[] = { +static const ber_sequence_t TTBusyArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, @@ -3982,15 +4318,15 @@ static const ber_sequence_t TBusy_sequence[] = { }; static int -dissect_inap_TBusy(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_TTBusyArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - TBusy_sequence, hf_index, ett_inap_TBusy); + TTBusyArg_sequence, hf_index, ett_inap_TTBusyArg); return offset; } -static const ber_sequence_t TDisconnect_sequence[] = { +static const ber_sequence_t TDisconnectArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, @@ -4003,15 +4339,15 @@ static const ber_sequence_t TDisconnect_sequence[] = { }; static int -dissect_inap_TDisconnect(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_TDisconnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - TDisconnect_sequence, hf_index, ett_inap_TDisconnect); + TDisconnectArg_sequence, hf_index, ett_inap_TDisconnectArg); return offset; } -static const ber_sequence_t TermAttemptAuthorized_sequence[] = { +static const ber_sequence_t TermAttemptAuthorizedArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, @@ -4026,53 +4362,142 @@ static const ber_sequence_t TermAttemptAuthorized_sequence[] = { }; static int -dissect_inap_TermAttemptAuthorized(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_TermAttemptAuthorizedArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - TermAttemptAuthorized_sequence, hf_index, ett_inap_TermAttemptAuthorized); + TermAttemptAuthorizedArg_sequence, hf_index, ett_inap_TermAttemptAuthorizedArg); return offset; } -static const ber_sequence_t TMidCall_sequence[] = { +static const ber_sequence_t TNoAnswerArg_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyBusinessGroupID_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartySubaddress_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_featureRequestIndicator_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl }, + { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl }, + { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl }, + { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl }, + { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl }, + { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl }, + { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl }, + { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_TMidCall(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_TNoAnswerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - TMidCall_sequence, hf_index, ett_inap_TMidCall); + TNoAnswerArg_sequence, hf_index, ett_inap_TNoAnswerArg); return offset; } -static const ber_sequence_t TNoAnswer_sequence[] = { - { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_dpSpecificCommonParameters_impl }, - { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBusinessGroupID_impl }, - { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartySubaddress_impl }, - { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_calledFacilityGroup_impl }, - { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledFacilityGroupMember_impl }, - { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl }, - { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl }, - { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl }, - { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_travellingClassMark_impl }, - { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl }, +static const ber_sequence_t ChargingEvent_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeCharging_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl }, + { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl }, { 0, 0, 0, NULL } }; static int -dissect_inap_TNoAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { +dissect_inap_ChargingEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, - TNoAnswer_sequence, hf_index, ett_inap_TNoAnswer); + ChargingEvent_sequence, hf_index, ett_inap_ChargingEvent); + + return offset; +} + + + +static int +dissect_inap_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_callAttemptElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_inap_callAttemptElapsedTimeValue); +} + + +static const value_string inap_RequestedInformationValue_vals[] = { + { 0, "callAttemptElapsedTimeValue" }, + { 1, "callStopTimeValue" }, + { 2, "callConnectedElapsedTimeValue" }, + { 3, "calledAddressValue" }, + { 30, "releaseCauseValue" }, + { 0, NULL } +}; + +static const ber_choice_t RequestedInformationValue_choice[] = { + { 0, BER_CLASS_CON, 0, 0, dissect_callAttemptElapsedTimeValue_impl }, + { 1, BER_CLASS_CON, 1, 0, dissect_callStopTimeValue_impl }, + { 2, BER_CLASS_CON, 2, 0, dissect_callConnectedElapsedTimeValue_impl }, + { 3, BER_CLASS_CON, 3, 0, dissect_calledAddressValue_impl }, + { 30, BER_CLASS_CON, 30, 0, dissect_releaseCauseValue_impl }, + { 0, 0, 0, 0, NULL } +}; + +static int +dissect_inap_RequestedInformationValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_choice(pinfo, tree, tvb, offset, + RequestedInformationValue_choice, hf_index, ett_inap_RequestedInformationValue, + NULL); + + return offset; +} +static int dissect_requestedInformationValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RequestedInformationValue(TRUE, tvb, offset, pinfo, tree, hf_inap_requestedInformationValue); +} + + +static const ber_sequence_t RequestedInformation_sequence[] = { + { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationType_impl }, + { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_requestedInformationValue_impl }, + { 0, 0, 0, NULL } +}; + +static int +dissect_inap_RequestedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset, + RequestedInformation_sequence, hf_index, ett_inap_RequestedInformation); + + return offset; +} +static int dissect_RequestedInformationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_RequestedInformation(FALSE, tvb, offset, pinfo, tree, hf_inap_RequestedInformationList_item); +} + + +static const ber_sequence_t RequestedInformationList_sequence_of[1] = { + { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RequestedInformationList_item }, +}; + +static int +dissect_inap_RequestedInformationList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset, + RequestedInformationList_sequence_of, hf_index, ett_inap_RequestedInformationList); + + return offset; +} + + +static const value_string inap_UnavailableNetworkResource_vals[] = { + { 0, "unavailableResources" }, + { 1, "componentFailure" }, + { 2, "basicCallProcessingException" }, + { 3, "resourceStatusFailure" }, + { 4, "endUserFailure" }, + { 0, NULL } +}; + + +static int +dissect_inap_UnavailableNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); return offset; } @@ -4098,6 +4523,19 @@ static int dissect_problem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t * } + +static int +dissect_inap_INTEGER_M128_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) { + offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index, + NULL); + + return offset; +} +static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { + return dissect_inap_INTEGER_M128_127(TRUE, tvb, offset, pinfo, tree, hf_inap_operation); +} + + static const ber_sequence_t CancelFailed_sequence[] = { { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_problem_impl }, { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_operation_impl }, @@ -4340,25 +4778,61 @@ dissect_inap_RejectPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac const value_string inap_opr_code_strings[] = { -{16, "AssistRequestInstructions"}, -{44, "CallInformationReport"}, -{45, "CallInformationRequest"}, -{53, "Cancel"}, -{20, "Connect"}, -{18, "DisconnectForwardConnection"}, - {19,"ConnectToResource"}, + {0,"InitialDP"}, + {1, "OriginationAttemptAuthorized"}, + {2, "CollectedInformation"}, + {3, "AnalysedInformation"}, + {4, "RouteSelectFailure"}, + {5, "oCalledPartyBusy"}, + {6, "oNoAnswer"}, + {7, "oAnswer"}, + {8, "oDisconnect"}, + {9, "TermAttemptAuthorized"}, + {10, "tBusy"}, + {11, "tNoAnswer"}, + {12, "tAnswer"}, + {13, "tDisconnect"}, + {14, "oMidCall"}, + {15, "tMidCall"}, + {16, "AssistRequestInstructions"}, {17,"EstablishTemporaryConnection"}, + {18, "DisconnectForwardConnection"}, + {19,"ConnectToResource"}, + {20, "Connect"}, + {21,"HoldCallInNetwork"}, + {22, "ReleaseCall"}, + {23, "RequestReportBCSMEven"}, + {23,"RequestReportBCSMEvent"}, {24,"EventReportBCSM"}, + {25, "RequestNotificationChargingEvent"}, + {26, "EventNotificationCharging"}, + {27, "CollectInformation"}, + {28, "AnalyseInformation"}, + {29, "SelectRoute"}, + {30, "SelectFacility"}, + {31, "Continue"}, + {32, "InitiateCallAttempt"}, + {33,"ResetTimer"}, {34,"FurnishChargingInformation"}, - {0,"InitialDP"}, + {35, "ApplyCharging"}, + {36, "ApplyChargingReport"}, + {37, "RequestCurrentStatusReport"}, + {38, "RequestEveryStatusChangeReport"}, + {39, "RequestFirstStatusMatchReport"}, + {40, "StatusReport"}, + {41, "CallGap"}, + {42, "ActivateServiceFiltering"}, + {43, "ServiceFilteringResponse"}, + {44, "CallInformationReport"}, + {45, "CallInformationRequest"}, + {46, "SendChargingInformation"}, {47,"PlayAnnouncement"}, {48,"PromptAndCollectUserInformation"}, - {99,"ReceivedInformation"}, /*???????*/ - {33,"ResetTimer"}, - {23,"RequestReportBCSMEvent"}, {49,"SpecializedResourceReport"}, - {22,"ReleaseCall"}, -{0, NULL} + {53, "Cancel"}, + {55, "ActivityTest"}, + {99,"ReceivedInformation"}, /*???????*/ + {0, NULL} }; const value_string inap_error_code_strings[] = { @@ -4378,6 +4852,7 @@ const value_string inap_error_code_strings[] = { {15,"UnexpectedDataValue"}, {16,"UnexpectedParameter"}, {17,"UnknownLegID"}, +{18,"UnknownResource"}, {0, NULL} }; @@ -4416,59 +4891,114 @@ dissect_inap_errorCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, pac return offset; } +/* +TC-Invokable OPERATION ::= + {activateServiceFiltering | activityTest | analysedInformation | + analyseInformation | applyCharging | applyChargingReport | + assistRequestInstructions | callGap | callInformationReport | + callInformationRequest | cancel | cancelStatusReportRequest | + collectedInformation | collectInformation | connect | connectToResource | + continue | disconnectForwardConnection | establishTemporaryConnection | + eventNotificationCharging | eventReportBCSM | furnishChargingInformation | + holdCallInNetwork | initialDP | initiateCallAttempt | oAnswer | + oCalledPartyBusy | oDisconnect | oMidCall | oNoAnswer | + originationAttemptAuthorized | releaseCall | requestCurrentStatusReport | + requestEveryStatusChangeReport | requestFirstStatusMatchReport | + requestNotificationChargingEvent | requestReportBCSMEvent | resetTimer | + routeSelectFailure | selectFacility | selectRoute | sendChargingInformation + | serviceFilteringResponse | statusReport | tAnswer | tBusy | tDisconnect | + termAttemptAuthorized | tMidCall | tNoAnswer | playAnnouncement | + promptAndCollectUserInformation} +*/ 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); + case 0: /*InitialDP*/ + offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, -1); break; - case 53: /*Cancel*/ - offset=dissect_inap_Cancelarg(FALSE, tvb, offset, pinfo, tree, -1); + /*1 OriginationAttemptAuthorized */ + /*2 CollectedInformation */ + /*3 AnalysedInformation */ + /*4 RouteSelectFailure */ + /*5 oCalledPartyBusy */ + /*6 oNoAnswer */ + /*7 oAnswer */ + /*8 oDisconnect */ + /*9 TermAttemptAuthorized */ + /*10 tBusy */ + /*11 tNoAnswer */ + /*12 tAnswer */ + /*13 tDisconnect */ + /*14 oMidCall */ + /*15 tMidCall */ + case 16: /*AssistRequestInstructions*/ + offset=dissect_inap_AssistRequestInstructionsArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 20: /*Connect*/ - offset=dissect_inap_Connectarg(FALSE, tvb, offset, pinfo, tree, -1); + case 17: /*EstablishTemporaryConnection*/ + offset=dissect_inap_EstablishTemporaryConnectionArg(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); + offset=dissect_inap_ConnectToResourceArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 17: /*EstablishTemporaryConnection*/ - offset=dissect_inap_EstablishTemporaryConnection(FALSE, tvb, offset, pinfo, tree, -1); + case 20: /*Connect*/ + offset=dissect_inap_ConnectArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + /* 21 HoldCallInNetwork */ + + case 22: /*ReleaseCall*/ + offset=dissect_inap_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree, -1); + break; + case 23: /*InitialDP*/ + offset=dissect_inap_RequestReportBCSMEventArg(FALSE, tvb, offset, pinfo, tree, -1); break; case 24: /*EventReportBCSM*/ - offset=dissect_inap_EventReportBCSM(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_inap_EventReportBCSMArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 34: /*FurnishChargingInformation*/ - offset=dissect_inap_FurnishChargingInformationarg(FALSE, tvb, offset, pinfo, tree, -1); + /*24,"EventReportBCSM */ + /*25, "RequestNotificationChargingEvent */ + /*26, "EventNotificationCharging */ + /*27, "CollectInformation */ + /*28, "AnalyseInformation */ + /*29, "SelectRoute */ + /*30, "SelectFacility */ + /*31, "Continue */ + /*32, "InitiateCallAttempt*/ + case 33: /*ResetTimer*/ + offset=dissect_inap_ResetTimerArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 0: /*InitialDP*/ - offset=dissect_inap_InitialDP(FALSE, tvb, offset, pinfo, tree, -1); + case 34: /*FurnishChargingInformation*/ + offset=dissect_inap_FurnishChargingInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; + /*35, "ApplyCharging */ + /*36, "ApplyChargingReport */ + /*37, "RequestCurrentStatusReport */ + /*38, "RequestEveryStatusChangeReport */ + /*39, "RequestFirstStatusMatchReport */ + /*40, "StatusReport */ + /*41, "CallGap */ + /*42, "ActivateServiceFiltering */ + /*43, "ServiceFilteringResponse */ - case 23: /*InitialDP*/ - offset=dissect_inap_RequestReportBCSMEvent(FALSE, tvb, offset, pinfo, tree, -1); + 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 47: /*PlayAnnouncement*/ - offset=dissect_inap_PlayAnnouncement(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_inap_PlayAnnouncementArg(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); + offset=dissect_inap_PromptAndCollectUserInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; - case 22: /*ResetTimer*/ - offset=dissect_inap_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree, -1); + /* 49 SpecializedResourceReport */ + case 53: /*Cancel*/ + offset=dissect_inap_CancelArg(FALSE, tvb, offset, pinfo, tree, -1); break; + /*55 ActivityTest*/ default: proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob"); /* todo call the asn.1 dissector */ @@ -4476,11 +5006,27 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv return offset; } +/* +TC-Returnable OPERATION ::= + {activateServiceFiltering | activityTest | requestCurrentStatusReport | + requestEveryStatusChangeReport | requestFirstStatusMatchReport | + promptAndCollectUserInformation} + activateServiceFiltering - No arg + activityTest - No Arg + requestCurrentStatusReport - RESULT RequestCurrentStatusReportResultArg + requestEveryStatusChangeReport - No arg + requestFirstStatusMatchReport - No Arg + promptAndCollectUserInformation - RESULT ReceivedInformationArg + +*/ static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) { switch(opcode){ + case 37: /*requestCurrentStatusReport*/ + offset=dissect_inap_RequestCurrentStatusReportResultArg(FALSE, tvb, offset, pinfo, tree, -1); + break; case 48: /*PromptAndCollectUserInformation*/ - offset=dissect_inap_PromptAndCollectUserInformationres(FALSE, tvb, offset, pinfo, tree, -1); + offset=dissect_inap_ReceivedInformationArg(FALSE, tvb, offset, pinfo, tree, -1); break; default: proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob"); @@ -4777,14 +5323,6 @@ void proto_register_inap(void) { { "legID", "inap.legID", FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0, "", HFILL }}, - { &hf_inap_sendingSideID, - { "sendingSideID", "inap.sendingSideID", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_receivingSideID, - { "receivingSideID", "inap.receivingSideID", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, { &hf_inap_heldLegID, { "heldLegID", "inap.heldLegID", FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0, @@ -4801,126 +5339,6 @@ void proto_register_inap(void) { { "legStatus", "inap.legStatus", FT_UINT32, BASE_DEC, VALS(inap_LegStatus_vals), 0, "LegInformation/legStatus", HFILL }}, - { &hf_inap_VariableParts_item, - { "Item", "inap.VariableParts_item", - FT_UINT32, BASE_DEC, VALS(inap_VariableParts_item_vals), 0, - "VariableParts/_item", HFILL }}, - { &hf_inap_integer, - { "integer", "inap.integer", - FT_UINT32, BASE_DEC, NULL, 0, - "VariableParts/_item/integer", HFILL }}, - { &hf_inap_number, - { "number", "inap.number", - FT_BYTES, BASE_HEX, NULL, 0, - "VariableParts/_item/number", HFILL }}, - { &hf_inap_time, - { "time", "inap.time", - FT_BYTES, BASE_HEX, NULL, 0, - "VariableParts/_item/time", HFILL }}, - { &hf_inap_date, - { "date", "inap.date", - FT_BYTES, BASE_HEX, NULL, 0, - "VariableParts/_item/date", HFILL }}, - { &hf_inap_price, - { "price", "inap.price", - FT_BYTES, BASE_HEX, NULL, 0, - "VariableParts/_item/price", HFILL }}, - { &hf_inap_elementaryMessageID, - { "elementaryMessageID", "inap.elementaryMessageID", - FT_UINT32, BASE_DEC, NULL, 0, - "", HFILL }}, - { &hf_inap_variableParts, - { "variableParts", "inap.variableParts", - FT_UINT32, BASE_DEC, NULL, 0, - "VariableMessage/variableParts", HFILL }}, - { &hf_inap_toneID, - { "toneID", "inap.toneID", - FT_UINT32, BASE_DEC, NULL, 0, - "Tone/toneID", HFILL }}, - { &hf_inap_tduration, - { "tduration", "inap.tduration", - FT_UINT32, BASE_DEC, NULL, 0, - "Tone/tduration", HFILL }}, - { &hf_inap_messageContent, - { "messageContent", "inap.messageContent", - FT_STRING, BASE_NONE, NULL, 0, - "Text/messageContent", HFILL }}, - { &hf_inap_attributes, - { "attributes", "inap.attributes", - FT_BYTES, BASE_HEX, NULL, 0, - "Text/attributes", HFILL }}, - { &hf_inap_text, - { "text", "inap.text", - FT_NONE, BASE_NONE, NULL, 0, - "MessageID/text", HFILL }}, - { &hf_inap_elementaryMessageIDs, - { "elementaryMessageIDs", "inap.elementaryMessageIDs", - FT_UINT32, BASE_DEC, NULL, 0, - "MessageID/elementaryMessageIDs", HFILL }}, - { &hf_inap_elementaryMessageIDs_item, - { "Item", "inap.elementaryMessageIDs_item", - FT_UINT32, BASE_DEC, NULL, 0, - "MessageID/elementaryMessageIDs/_item", HFILL }}, - { &hf_inap_variableMessage, - { "variableMessage", "inap.variableMessage", - FT_NONE, BASE_NONE, NULL, 0, - "MessageID/variableMessage", HFILL }}, - { &hf_inap_inbandInfo, - { "inbandInfo", "inap.inbandInfo", - FT_NONE, BASE_NONE, NULL, 0, - "InformationToSend/inbandInfo", HFILL }}, - { &hf_inap_messageID, - { "messageID", "inap.messageID", - FT_UINT32, BASE_DEC, VALS(inap_MessageID_vals), 0, - "InformationToSend/inbandInfo/messageID", HFILL }}, - { &hf_inap_numberOfRepetitions, - { "numberOfRepetitions", "inap.numberOfRepetitions", - FT_UINT32, BASE_DEC, NULL, 0, - "InformationToSend/inbandInfo/numberOfRepetitions", HFILL }}, - { &hf_inap_mduration, - { "mduration", "inap.mduration", - FT_UINT32, BASE_DEC, NULL, 0, - "InformationToSend/inbandInfo/mduration", HFILL }}, - { &hf_inap_interval, - { "interval", "inap.interval", - FT_UINT32, BASE_DEC, NULL, 0, - "", HFILL }}, - { &hf_inap_tone, - { "tone", "inap.tone", - FT_NONE, BASE_NONE, NULL, 0, - "InformationToSend/tone", HFILL }}, - { &hf_inap_displayInformation, - { "displayInformation", "inap.displayInformation", - FT_STRING, BASE_NONE, NULL, 0, - "InformationToSend/displayInformation", HFILL }}, - { &hf_inap_dialledNumber, - { "dialledNumber", "inap.dialledNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "FilteringCriteria/dialledNumber", HFILL }}, - { &hf_inap_callingLineID, - { "callingLineID", "inap.callingLineID", - FT_BYTES, BASE_HEX, NULL, 0, - "FilteringCriteria/callingLineID", HFILL }}, - { &hf_inap_serviceKey, - { "serviceKey", "inap.serviceKey", - FT_UINT32, BASE_DEC, NULL, 0, - "", HFILL }}, - { &hf_inap_addressAndService, - { "addressAndService", "inap.addressAndService", - FT_NONE, BASE_NONE, NULL, 0, - "FilteringCriteria/addressAndService", HFILL }}, - { &hf_inap_calledAddressValue, - { "calledAddressValue", "inap.calledAddressValue", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_callingAddressValue, - { "callingAddressValue", "inap.callingAddressValue", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_locationNumber, - { "locationNumber", "inap.locationNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, { &hf_inap_Extensions_item, { "Item", "inap.Extensions_item", FT_NONE, BASE_NONE, NULL, 0, @@ -4940,39 +5358,15 @@ void proto_register_inap(void) { { &hf_inap_filteredCallTreatment, { "filteredCallTreatment", "inap.filteredCallTreatment", FT_NONE, BASE_NONE, NULL, 0, - "ActivateServiceFilteringarg/filteredCallTreatment", HFILL }}, - { &hf_inap_sFBillingChargingCharacteristics, - { "sFBillingChargingCharacteristics", "inap.sFBillingChargingCharacteristics", - FT_BYTES, BASE_HEX, NULL, 0, - "ActivateServiceFilteringarg/filteredCallTreatment/sFBillingChargingCharacteristics", HFILL }}, - { &hf_inap_informationToSend, - { "informationToSend", "inap.informationToSend", - FT_UINT32, BASE_DEC, VALS(inap_InformationToSend_vals), 0, - "", HFILL }}, - { &hf_inap_maximumNumberOfCounters, - { "maximumNumberOfCounters", "inap.maximumNumberOfCounters", - FT_INT32, BASE_DEC, NULL, 0, - "ActivateServiceFilteringarg/filteredCallTreatment/maximumNumberOfCounters", HFILL }}, + "ActivateServiceFilteringArg/filteredCallTreatment", HFILL }}, { &hf_inap_filteringCharacteristics, { "filteringCharacteristics", "inap.filteringCharacteristics", - FT_UINT32, BASE_DEC, VALS(inap_T_filteringCharacteristics_vals), 0, - "ActivateServiceFilteringarg/filteringCharacteristics", HFILL }}, - { &hf_inap_numberOfCalls, - { "numberOfCalls", "inap.numberOfCalls", - FT_UINT32, BASE_DEC, NULL, 0, - "ActivateServiceFilteringarg/filteringCharacteristics/numberOfCalls", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_FilteringCharacteristics_vals), 0, + "ActivateServiceFilteringArg/filteringCharacteristics", HFILL }}, { &hf_inap_filteringTimeOut, { "filteringTimeOut", "inap.filteringTimeOut", - FT_UINT32, BASE_DEC, VALS(inap_T_filteringTimeOut_vals), 0, - "ActivateServiceFilteringarg/filteringTimeOut", HFILL }}, - { &hf_inap_aduration, - { "aduration", "inap.aduration", - FT_UINT32, BASE_DEC, NULL, 0, - "ActivateServiceFilteringarg/filteringTimeOut/aduration", HFILL }}, - { &hf_inap_stopTime, - { "stopTime", "inap.stopTime", - FT_BYTES, BASE_HEX, NULL, 0, - "ActivateServiceFilteringarg/filteringTimeOut/stopTime", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_FilteringTimeOut_vals), 0, + "ActivateServiceFilteringArg/filteringTimeOut", HFILL }}, { &hf_inap_filteringCriteria, { "filteringCriteria", "inap.filteringCriteria", FT_UINT32, BASE_DEC, VALS(inap_FilteringCriteria_vals), 0, @@ -4980,107 +5374,11 @@ void proto_register_inap(void) { { &hf_inap_startTime, { "startTime", "inap.startTime", FT_BYTES, BASE_HEX, NULL, 0, - "ActivateServiceFilteringarg/startTime", HFILL }}, + "ActivateServiceFilteringArg/startTime", HFILL }}, { &hf_inap_extensions, { "extensions", "inap.extensions", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_inap_messageType, - { "messageType", "inap.messageType", - FT_UINT32, BASE_DEC, VALS(inap_T_messageType_vals), 0, - "MiscCallInfo/messageType", HFILL }}, - { &hf_inap_dpAssignment, - { "dpAssignment", "inap.dpAssignment", - FT_UINT32, BASE_DEC, VALS(inap_T_dpAssignment_vals), 0, - "MiscCallInfo/dpAssignment", HFILL }}, - { &hf_inap_miscCallInfo, - { "miscCallInfo", "inap.miscCallInfo", - FT_NONE, BASE_NONE, NULL, 0, - "", HFILL }}, - { &hf_inap_triggerType, - { "triggerType", "inap.triggerType", - FT_UINT32, BASE_DEC, VALS(inap_TriggerType_vals), 0, - "", HFILL }}, - { &hf_inap_RouteList_item, - { "Item", "inap.RouteList_item", - FT_BYTES, BASE_HEX, NULL, 0, - "RouteList/_item", HFILL }}, - { &hf_inap_bearerCap, - { "bearerCap", "inap.bearerCap", - FT_BYTES, BASE_HEX, NULL, 0, - "BearerCapability/bearerCap", HFILL }}, - { &hf_inap_tmr, - { "tmr", "inap.tmr", - FT_BYTES, BASE_HEX, NULL, 0, - "BearerCapability/tmr", HFILL }}, - { &hf_inap_serviceAddressInformation, - { "serviceAddressInformation", "inap.serviceAddressInformation", - FT_NONE, BASE_NONE, NULL, 0, - "DpSpecificCommonParameters/serviceAddressInformation", HFILL }}, - { &hf_inap_bearerCapability, - { "bearerCapability", "inap.bearerCapability", - FT_UINT32, BASE_DEC, VALS(inap_BearerCapability_vals), 0, - "", HFILL }}, - { &hf_inap_calledPartyNumber, - { "calledPartyNumber", "inap.calledPartyNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_callingPartyNumber, - { "callingPartyNumber", "inap.callingPartyNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_callingPartysCategory, - { "callingPartysCategory", "inap.callingPartysCategory", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_iPSSPCapabilities, - { "iPSSPCapabilities", "inap.iPSSPCapabilities", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_iPAvailable, - { "iPAvailable", "inap.iPAvailable", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_iSDNAccessRelatedInformation, - { "iSDNAccessRelatedInformation", "inap.iSDNAccessRelatedInformation", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_cGEncountered, - { "cGEncountered", "inap.cGEncountered", - FT_UINT32, BASE_DEC, VALS(inap_CGEncountered_vals), 0, - "", HFILL }}, - { &hf_inap_serviceProfileIdentifier, - { "serviceProfileIdentifier", "inap.serviceProfileIdentifier", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_terminalType, - { "terminalType", "inap.terminalType", - FT_UINT32, BASE_DEC, VALS(inap_TerminalType_vals), 0, - "", HFILL }}, - { &hf_inap_chargeNumber, - { "chargeNumber", "inap.chargeNumber", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_servingAreaID, - { "servingAreaID", "inap.servingAreaID", - FT_BYTES, BASE_HEX, NULL, 0, - "DpSpecificCommonParameters/servingAreaID", HFILL }}, - { &hf_inap_trunkGroupID, - { "trunkGroupID", "inap.trunkGroupID", - FT_INT32, BASE_DEC, NULL, 0, - "", HFILL }}, - { &hf_inap_privateFacilityID, - { "privateFacilityID", "inap.privateFacilityID", - FT_INT32, BASE_DEC, NULL, 0, - "", HFILL }}, - { &hf_inap_huntGroup, - { "huntGroup", "inap.huntGroup", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_routeIndex, - { "routeIndex", "inap.routeIndex", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, { &hf_inap_dpSpecificCommonParameters, { "dpSpecificCommonParameters", "inap.dpSpecificCommonParameters", FT_NONE, BASE_NONE, NULL, 0, @@ -5099,7 +5397,7 @@ void proto_register_inap(void) { "", HFILL }}, { &hf_inap_callingFacilityGroup, { "callingFacilityGroup", "inap.callingFacilityGroup", - FT_UINT32, BASE_DEC, VALS(inap_CallingFacilityGroup_vals), 0, + FT_UINT32, BASE_DEC, VALS(inap_FacilityGroup_vals), 0, "", HFILL }}, { &hf_inap_callingFacilityGroupMember, { "callingFacilityGroupMember", "inap.callingFacilityGroupMember", @@ -5145,130 +5443,78 @@ void proto_register_inap(void) { { "destinationRoutingAddress", "inap.destinationRoutingAddress", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_inap_destinationRoutingAddress_item, - { "Item", "inap.destinationRoutingAddress_item", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, { &hf_inap_alertingPattern, { "alertingPattern", "inap.alertingPattern", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_inap_iSDNAccessRelatedInformation, + { "iSDNAccessRelatedInformation", "inap.iSDNAccessRelatedInformation", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_callingPartyNumber, + { "callingPartyNumber", "inap.callingPartyNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_callingPartysCategory, + { "callingPartysCategory", "inap.callingPartysCategory", + FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0, + "", HFILL }}, + { &hf_inap_calledPartyNumber, + { "calledPartyNumber", "inap.calledPartyNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_chargeNumber, + { "chargeNumber", "inap.chargeNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, { &hf_inap_aChBillingChargingCharacteristics, { "aChBillingChargingCharacteristics", "inap.aChBillingChargingCharacteristics", FT_BYTES, BASE_HEX, NULL, 0, - "ApplyChargingarg/aChBillingChargingCharacteristics", HFILL }}, + "ApplyChargingArg/aChBillingChargingCharacteristics", HFILL }}, { &hf_inap_partyToCharge, { "partyToCharge", "inap.partyToCharge", - FT_UINT32, BASE_DEC, VALS(inap_PartyToCharge_vals), 0, + FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0, "", HFILL }}, { &hf_inap_correlationID, { "correlationID", "inap.correlationID", FT_BYTES, BASE_HEX, NULL, 0, "", HFILL }}, + { &hf_inap_iPAvailable, + { "iPAvailable", "inap.iPAvailable", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_iPSSPCapabilities, + { "iPSSPCapabilities", "inap.iPSSPCapabilities", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, { &hf_inap_gapCriteria, { "gapCriteria", "inap.gapCriteria", - FT_UINT32, BASE_DEC, VALS(inap_T_gapCriteria_vals), 0, - "CallGaparg/gapCriteria", HFILL }}, - { &hf_inap_gapOnService, - { "gapOnService", "inap.gapOnService", - FT_NONE, BASE_NONE, NULL, 0, - "CallGaparg/gapCriteria/gapOnService", HFILL }}, - { &hf_inap_dpCriteria, - { "dpCriteria", "inap.dpCriteria", - FT_UINT32, BASE_DEC, VALS(inap_T_dpCriteria_vals), 0, - "CallGaparg/gapCriteria/gapOnService/dpCriteria", HFILL }}, - { &hf_inap_calledAddressAndService, - { "calledAddressAndService", "inap.calledAddressAndService", - FT_NONE, BASE_NONE, NULL, 0, - "CallGaparg/gapCriteria/calledAddressAndService", HFILL }}, - { &hf_inap_callingAddressAndService, - { "callingAddressAndService", "inap.callingAddressAndService", - FT_NONE, BASE_NONE, NULL, 0, - "CallGaparg/gapCriteria/callingAddressAndService", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_GapCriteria_vals), 0, + "CallGapArg/gapCriteria", HFILL }}, { &hf_inap_gapIndicators, { "gapIndicators", "inap.gapIndicators", FT_NONE, BASE_NONE, NULL, 0, - "CallGaparg/gapIndicators", HFILL }}, - { &hf_inap_cgduration, - { "cgduration", "inap.cgduration", - FT_UINT32, BASE_DEC, NULL, 0, - "CallGaparg/gapIndicators/cgduration", HFILL }}, - { &hf_inap_gapInterval, - { "gapInterval", "inap.gapInterval", - FT_UINT32, BASE_DEC, NULL, 0, - "CallGaparg/gapIndicators/gapInterval", HFILL }}, + "CallGapArg/gapIndicators", HFILL }}, { &hf_inap_controlType, { "controlType", "inap.controlType", - FT_UINT32, BASE_DEC, VALS(inap_T_controlType_vals), 0, - "CallGaparg/controlType", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_ControlType_vals), 0, + "CallGapArg/controlType", HFILL }}, { &hf_inap_gapTreatment, { "gapTreatment", "inap.gapTreatment", - FT_UINT32, BASE_DEC, VALS(inap_T_gapTreatment_vals), 0, - "CallGaparg/gapTreatment", HFILL }}, - { &hf_inap_both, - { "both", "inap.both", - FT_NONE, BASE_NONE, NULL, 0, - "", HFILL }}, - { &hf_inap_requestedInformationList, - { "requestedInformationList", "inap.requestedInformationList", - FT_UINT32, BASE_DEC, NULL, 0, - "CallInformationReportarg/requestedInformationList", HFILL }}, - { &hf_inap_requestedInformationList_item, - { "Item", "inap.requestedInformationList_item", - FT_NONE, BASE_NONE, NULL, 0, - "CallInformationReportarg/requestedInformationList/_item", HFILL }}, - { &hf_inap_requestedInformationType, - { "requestedInformationType", "inap.requestedInformationType", - FT_UINT32, BASE_DEC, VALS(inap_T_requestedInformationType_vals), 0, - "CallInformationReportarg/requestedInformationList/_item/requestedInformationType", HFILL }}, - { &hf_inap_requestedInformationValue, - { "requestedInformationValue", "inap.requestedInformationValue", - FT_UINT32, BASE_DEC, VALS(inap_T_requestedInformationValue_vals), 0, - "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue", HFILL }}, - { &hf_inap_callAttemptElapsedTimeValue, - { "callAttemptElapsedTimeValue", "inap.callAttemptElapsedTimeValue", - FT_UINT32, BASE_DEC, NULL, 0, - "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/callAttemptElapsedTimeValue", HFILL }}, - { &hf_inap_callStopTimeValue, - { "callStopTimeValue", "inap.callStopTimeValue", - FT_BYTES, BASE_HEX, NULL, 0, - "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/callStopTimeValue", HFILL }}, - { &hf_inap_callConnectedElapsedTimeValue, - { "callConnectedElapsedTimeValue", "inap.callConnectedElapsedTimeValue", - FT_UINT32, BASE_DEC, NULL, 0, - "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/callConnectedElapsedTimeValue", HFILL }}, - { &hf_inap_releaseCauseValue, - { "releaseCauseValue", "inap.releaseCauseValue", - FT_BYTES, BASE_HEX, NULL, 0, - "CallInformationReportarg/requestedInformationList/_item/requestedInformationValue/releaseCauseValue", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_GapTreatment_vals), 0, + "CallGapArg/gapTreatment", HFILL }}, { &hf_inap_requestedInformationTypeList, { "requestedInformationTypeList", "inap.requestedInformationTypeList", FT_UINT32, BASE_DEC, NULL, 0, - "CallInformationRequestarg/requestedInformationTypeList", HFILL }}, - { &hf_inap_requestedInformationTypeList_item, - { "Item", "inap.requestedInformationTypeList_item", - FT_UINT32, BASE_DEC, VALS(inap_T_requestedInformationTypeList_item_vals), 0, - "CallInformationRequestarg/requestedInformationTypeList/_item", HFILL }}, + "", HFILL }}, { &hf_inap_invokeID, { "invokeID", "inap.invokeID", - FT_UINT32, BASE_DEC, NULL, 0, - "Cancelarg/invokeID", HFILL }}, + FT_INT32, BASE_DEC, NULL, 0, + "CancelArg/invokeID", HFILL }}, { &hf_inap_allRequests, { "allRequests", "inap.allRequests", FT_NONE, BASE_NONE, NULL, 0, - "Cancelarg/allRequests", HFILL }}, - { &hf_inap_lineID, - { "lineID", "inap.lineID", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_facilityGroupID, - { "facilityGroupID", "inap.facilityGroupID", - FT_UINT32, BASE_DEC, VALS(inap_FacilityGroupID_vals), 0, - "", HFILL }}, - { &hf_inap_facilityGroupMemberID, - { "facilityGroupMemberID", "inap.facilityGroupMemberID", - FT_INT32, BASE_DEC, NULL, 0, - "", HFILL }}, + "CancelArg/allRequests", HFILL }}, { &hf_inap_resourceID, { "resourceID", "inap.resourceID", FT_UINT32, BASE_DEC, VALS(inap_ResourceID_vals), 0, @@ -5276,15 +5522,15 @@ void proto_register_inap(void) { { &hf_inap_numberingPlan, { "numberingPlan", "inap.numberingPlan", FT_BYTES, BASE_HEX, NULL, 0, - "CollectInformationarg/numberingPlan", HFILL }}, + "CollectInformationArg/numberingPlan", HFILL }}, { &hf_inap_cutAndPaste, { "cutAndPaste", "inap.cutAndPaste", FT_UINT32, BASE_DEC, NULL, 0, - "Connectarg/cutAndPaste", HFILL }}, + "ConnectArg/cutAndPaste", HFILL }}, { &hf_inap_forwardingCondition, { "forwardingCondition", "inap.forwardingCondition", - FT_UINT32, BASE_DEC, VALS(inap_T_forwardingCondition_vals), 0, - "Connectarg/forwardingCondition", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_ForwardingCondition_vals), 0, + "ConnectArg/forwardingCondition", HFILL }}, { &hf_inap_scfID, { "scfID", "inap.scfID", FT_BYTES, BASE_HEX, NULL, 0, @@ -5296,19 +5542,51 @@ void proto_register_inap(void) { { &hf_inap_resourceAddress, { "resourceAddress", "inap.resourceAddress", FT_UINT32, BASE_DEC, VALS(inap_T_resourceAddress_vals), 0, - "ConnectToResource/resourceAddress", HFILL }}, + "ConnectToResourceArg/resourceAddress", HFILL }}, { &hf_inap_ipRoutingAddress, { "ipRoutingAddress", "inap.ipRoutingAddress", FT_BYTES, BASE_HEX, NULL, 0, - "ConnectToResource/resourceAddress/ipRoutingAddress", HFILL }}, + "", HFILL }}, + { &hf_inap_both2, + { "both2", "inap.both2", + FT_NONE, BASE_NONE, NULL, 0, + "ConnectToResourceArg/resourceAddress/both2", HFILL }}, { &hf_inap_none, { "none", "inap.none", FT_NONE, BASE_NONE, NULL, 0, - "ConnectToResource/resourceAddress/none", HFILL }}, + "ConnectToResourceArg/resourceAddress/none", HFILL }}, + { &hf_inap_serviceAddressInformation, + { "serviceAddressInformation", "inap.serviceAddressInformation", + FT_NONE, BASE_NONE, NULL, 0, + "DpSpecificCommonParameters/serviceAddressInformation", HFILL }}, + { &hf_inap_bearerCapability, + { "bearerCapability", "inap.bearerCapability", + FT_UINT32, BASE_DEC, VALS(inap_BearerCapability_vals), 0, + "", HFILL }}, + { &hf_inap_cGEncountered, + { "cGEncountered", "inap.cGEncountered", + FT_UINT32, BASE_DEC, VALS(inap_CGEncountered_vals), 0, + "", HFILL }}, + { &hf_inap_locationNumber, + { "locationNumber", "inap.locationNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_serviceProfileIdentifier, + { "serviceProfileIdentifier", "inap.serviceProfileIdentifier", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_terminalType, + { "terminalType", "inap.terminalType", + FT_UINT32, BASE_DEC, VALS(inap_TerminalType_vals), 0, + "", HFILL }}, + { &hf_inap_servingAreaID, + { "servingAreaID", "inap.servingAreaID", + FT_BYTES, BASE_HEX, NULL, 0, + "DpSpecificCommonParameters/servingAreaID", HFILL }}, { &hf_inap_assistingSSPIPRoutingAddress, { "assistingSSPIPRoutingAddress", "inap.assistingSSPIPRoutingAddress", FT_BYTES, BASE_HEX, NULL, 0, - "EstablishTemporaryConnection/assistingSSPIPRoutingAddress", HFILL }}, + "EstablishTemporaryConnectionArg/assistingSSPIPRoutingAddress", HFILL }}, { &hf_inap_eventTypeCharging, { "eventTypeCharging", "inap.eventTypeCharging", FT_BYTES, BASE_HEX, NULL, 0, @@ -5316,7 +5594,7 @@ void proto_register_inap(void) { { &hf_inap_eventSpecificInformationCharging, { "eventSpecificInformationCharging", "inap.eventSpecificInformationCharging", FT_BYTES, BASE_HEX, NULL, 0, - "EventNotificationChargingarg/eventSpecificInformationCharging", HFILL }}, + "EventNotificationChargingArg/eventSpecificInformationCharging", HFILL }}, { &hf_inap_monitorMode, { "monitorMode", "inap.monitorMode", FT_UINT32, BASE_DEC, VALS(inap_MonitorMode_vals), 0, @@ -5331,84 +5609,28 @@ void proto_register_inap(void) { "", HFILL }}, { &hf_inap_eventSpecificInformationBCSM, { "eventSpecificInformationBCSM", "inap.eventSpecificInformationBCSM", - FT_UINT32, BASE_DEC, VALS(inap_T_eventSpecificInformationBCSM_vals), 0, - "EventReportBCSM/eventSpecificInformationBCSM", HFILL }}, - { &hf_inap_collectedInfoSpecificInfo, - { "collectedInfoSpecificInfo", "inap.collectedInfoSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/collectedInfoSpecificInfo", HFILL }}, - { &hf_inap_calledPartynumber, - { "calledPartynumber", "inap.calledPartynumber", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_analyzedInfoSpecificInfo, - { "analyzedInfoSpecificInfo", "inap.analyzedInfoSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/analyzedInfoSpecificInfo", HFILL }}, - { &hf_inap_routeSelectFailureSpecificInfo, - { "routeSelectFailureSpecificInfo", "inap.routeSelectFailureSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/routeSelectFailureSpecificInfo", HFILL }}, - { &hf_inap_failureCause, - { "failureCause", "inap.failureCause", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_oCalledPartyBusySpecificInfo, - { "oCalledPartyBusySpecificInfo", "inap.oCalledPartyBusySpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/oCalledPartyBusySpecificInfo", HFILL }}, - { &hf_inap_busyCause, - { "busyCause", "inap.busyCause", - FT_BYTES, BASE_HEX, NULL, 0, - "", HFILL }}, - { &hf_inap_oNoAnswerSpecificInfo, - { "oNoAnswerSpecificInfo", "inap.oNoAnswerSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/oNoAnswerSpecificInfo", HFILL }}, - { &hf_inap_oAnswerSpecificInfo, - { "oAnswerSpecificInfo", "inap.oAnswerSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/oAnswerSpecificInfo", HFILL }}, - { &hf_inap_oMidCallSpecificInfo, - { "oMidCallSpecificInfo", "inap.oMidCallSpecificInfo", + FT_UINT32, BASE_DEC, VALS(inap_EventSpecificInformationBCSM_vals), 0, + "EventReportBCSMArg/eventSpecificInformationBCSM", HFILL }}, + { &hf_inap_miscCallInfo, + { "miscCallInfo", "inap.miscCallInfo", FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/oMidCallSpecificInfo", HFILL }}, - { &hf_inap_connectTime, - { "connectTime", "inap.connectTime", - FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_inap_oDisconnectSpecificInfo, - { "oDisconnectSpecificInfo", "inap.oDisconnectSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/oDisconnectSpecificInfo", HFILL }}, - { &hf_inap_tBusySpecificInfo, - { "tBusySpecificInfo", "inap.tBusySpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/tBusySpecificInfo", HFILL }}, - { &hf_inap_tNoAnswerSpecificInfo, - { "tNoAnswerSpecificInfo", "inap.tNoAnswerSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/tNoAnswerSpecificInfo", HFILL }}, - { &hf_inap_tAnswerSpecificInfo, - { "tAnswerSpecificInfo", "inap.tAnswerSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/tAnswerSpecificInfo", HFILL }}, - { &hf_inap_tMidCallSpecificInfo, - { "tMidCallSpecificInfo", "inap.tMidCallSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/tMidCallSpecificInfo", HFILL }}, - { &hf_inap_tDisconnectSpecificInfo, - { "tDisconnectSpecificInfo", "inap.tDisconnectSpecificInfo", - FT_NONE, BASE_NONE, NULL, 0, - "EventReportBCSM/eventSpecificInformationBCSM/tDisconnectSpecificInfo", HFILL }}, { &hf_inap_holdcause, { "holdcause", "inap.holdcause", FT_BYTES, BASE_HEX, NULL, 0, - "HoldCallInNetworkarg/holdcause", HFILL }}, + "HoldCallInNetworkArg/holdcause", HFILL }}, { &hf_inap_empty, { "empty", "inap.empty", FT_NONE, BASE_NONE, NULL, 0, - "HoldCallInNetworkarg/empty", HFILL }}, + "HoldCallInNetworkArg/empty", HFILL }}, + { &hf_inap_serviceKey, + { "serviceKey", "inap.serviceKey", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_inap_triggerType, + { "triggerType", "inap.triggerType", + FT_UINT32, BASE_DEC, VALS(inap_TriggerType_vals), 0, + "", HFILL }}, { &hf_inap_highLayerCompatibility, { "highLayerCompatibility", "inap.highLayerCompatibility", FT_BYTES, BASE_HEX, NULL, 0, @@ -5432,6 +5654,18 @@ void proto_register_inap(void) { { &hf_inap_featureRequestIndicator, { "featureRequestIndicator", "inap.featureRequestIndicator", FT_UINT32, BASE_DEC, VALS(inap_FeatureRequestIndicator_vals), 0, + "MidCallArg/featureRequestIndicator", HFILL }}, + { &hf_inap_busyCause, + { "busyCause", "inap.busyCause", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_connectTime, + { "connectTime", "inap.connectTime", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_inap_informationToSend, + { "informationToSend", "inap.informationToSend", + FT_UINT32, BASE_DEC, VALS(inap_InformationToSend_vals), 0, "", HFILL }}, { &hf_inap_disconnectFromIPForbidden, { "disconnectFromIPForbidden", "inap.disconnectFromIPForbidden", @@ -5440,71 +5674,19 @@ void proto_register_inap(void) { { &hf_inap_requestAnnouncementComplete, { "requestAnnouncementComplete", "inap.requestAnnouncementComplete", FT_BOOLEAN, 8, NULL, 0, - "PlayAnnouncement/requestAnnouncementComplete", HFILL }}, + "PlayAnnouncementArg/requestAnnouncementComplete", HFILL }}, { &hf_inap_collectedInfo, { "collectedInfo", "inap.collectedInfo", - FT_UINT32, BASE_DEC, VALS(inap_T_collectedInfo_vals), 0, - "PromptAndCollectUserInformationarg/collectedInfo", HFILL }}, - { &hf_inap_collectedDigits, - { "collectedDigits", "inap.collectedDigits", - FT_NONE, BASE_NONE, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits", HFILL }}, - { &hf_inap_minimumNbOfDigits, - { "minimumNbOfDigits", "inap.minimumNbOfDigits", - FT_UINT32, BASE_DEC, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/minimumNbOfDigits", HFILL }}, - { &hf_inap_maximumNbOfDigits, - { "maximumNbOfDigits", "inap.maximumNbOfDigits", - FT_UINT32, BASE_DEC, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/maximumNbOfDigits", HFILL }}, - { &hf_inap_endOfReplyDigit, - { "endOfReplyDigit", "inap.endOfReplyDigit", - FT_BYTES, BASE_HEX, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/endOfReplyDigit", HFILL }}, - { &hf_inap_cancelDigit, - { "cancelDigit", "inap.cancelDigit", - FT_BYTES, BASE_HEX, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/cancelDigit", HFILL }}, - { &hf_inap_startDigit, - { "startDigit", "inap.startDigit", - FT_BYTES, BASE_HEX, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/startDigit", HFILL }}, - { &hf_inap_firstDigitTimeOut, - { "firstDigitTimeOut", "inap.firstDigitTimeOut", - FT_UINT32, BASE_DEC, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/firstDigitTimeOut", HFILL }}, - { &hf_inap_interDigitTimeOut, - { "interDigitTimeOut", "inap.interDigitTimeOut", - FT_UINT32, BASE_DEC, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/interDigitTimeOut", HFILL }}, - { &hf_inap_errorTreatment, - { "errorTreatment", "inap.errorTreatment", - FT_UINT32, BASE_DEC, VALS(inap_T_errorTreatment_vals), 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/errorTreatment", HFILL }}, - { &hf_inap_interruptableAnnInd, - { "interruptableAnnInd", "inap.interruptableAnnInd", - FT_BOOLEAN, 8, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/interruptableAnnInd", HFILL }}, - { &hf_inap_voiceInformation, - { "voiceInformation", "inap.voiceInformation", - FT_BOOLEAN, 8, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/voiceInformation", HFILL }}, - { &hf_inap_voiceBack, - { "voiceBack", "inap.voiceBack", - FT_BOOLEAN, 8, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/collectedDigits/voiceBack", HFILL }}, - { &hf_inap_iA5Information, - { "iA5Information", "inap.iA5Information", - FT_BOOLEAN, 8, NULL, 0, - "PromptAndCollectUserInformationarg/collectedInfo/iA5Information", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_CollectedInfo_vals), 0, + "PromptAndCollectUserInformationArg/collectedInfo", HFILL }}, { &hf_inap_digitsResponse, { "digitsResponse", "inap.digitsResponse", FT_BYTES, BASE_HEX, NULL, 0, - "PromptAndCollectUserInformationres/digitsResponse", HFILL }}, + "ReceivedInformationArg/digitsResponse", HFILL }}, { &hf_inap_iA5Response, { "iA5Response", "inap.iA5Response", FT_STRING, BASE_NONE, NULL, 0, - "PromptAndCollectUserInformationres/iA5Response", HFILL }}, + "ReceivedInformationArg/iA5Response", HFILL }}, { &hf_inap_initialCallSegment, { "initialCallSegment", "inap.initialCallSegment", FT_BYTES, BASE_HEX, NULL, 0, @@ -5519,47 +5701,43 @@ void proto_register_inap(void) { "", HFILL }}, { &hf_inap_monitorDuration, { "monitorDuration", "inap.monitorDuration", - FT_UINT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_inap_RequestNotificationChargingEvent_item, { "Item", "inap.RequestNotificationChargingEvent_item", FT_NONE, BASE_NONE, NULL, 0, "RequestNotificationChargingEvent/_item", HFILL }}, + { &hf_inap_eventTypeCharging2, + { "eventTypeCharging2", "inap.eventTypeCharging2", + FT_BYTES, BASE_HEX, NULL, 0, + "RequestNotificationChargingEvent/_item/eventTypeCharging2", HFILL }}, { &hf_inap_bcsmEvents, { "bcsmEvents", "inap.bcsmEvents", FT_UINT32, BASE_DEC, NULL, 0, - "RequestReportBCSMEvent/bcsmEvents", HFILL }}, + "RequestReportBCSMEventArg/bcsmEvents", HFILL }}, { &hf_inap_bcsmEvents_item, { "Item", "inap.bcsmEvents_item", FT_NONE, BASE_NONE, NULL, 0, - "RequestReportBCSMEvent/bcsmEvents/_item", HFILL }}, - { &hf_inap_dpSpecificCriteria, - { "dpSpecificCriteria", "inap.dpSpecificCriteria", - FT_UINT32, BASE_DEC, VALS(inap_T_dpSpecificCriteria_vals), 0, - "RequestReportBCSMEvent/bcsmEvents/_item/dpSpecificCriteria", HFILL }}, - { &hf_inap_numberOfDigits, - { "numberOfDigits", "inap.numberOfDigits", - FT_UINT32, BASE_DEC, NULL, 0, - "RequestReportBCSMEvent/bcsmEvents/_item/dpSpecificCriteria/numberOfDigits", HFILL }}, - { &hf_inap_applicationTimer, - { "applicationTimer", "inap.applicationTimer", - FT_UINT32, BASE_DEC, NULL, 0, - "RequestReportBCSMEvent/bcsmEvents/_item/dpSpecificCriteria/applicationTimer", HFILL }}, + "RequestReportBCSMEventArg/bcsmEvents/_item", HFILL }}, { &hf_inap_timerID, { "timerID", "inap.timerID", - FT_UINT32, BASE_DEC, VALS(inap_T_timerID_vals), 0, - "ResetTimer/timerID", HFILL }}, + FT_UINT32, BASE_DEC, VALS(inap_TimerID_vals), 0, + "ResetTimerArg/timerID", HFILL }}, { &hf_inap_timervalue, { "timervalue", "inap.timervalue", FT_UINT32, BASE_DEC, NULL, 0, - "ResetTimer/timervalue", HFILL }}, + "ResetTimerArg/timervalue", HFILL }}, + { &hf_inap_failureCause, + { "failureCause", "inap.failureCause", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, { &hf_inap_destinationNumberRoutingAddress, { "destinationNumberRoutingAddress", "inap.destinationNumberRoutingAddress", FT_BYTES, BASE_HEX, NULL, 0, - "SelectFacility/destinationNumberRoutingAddress", HFILL }}, + "SelectFacilityArg/destinationNumberRoutingAddress", HFILL }}, { &hf_inap_calledFacilityGroup, { "calledFacilityGroup", "inap.calledFacilityGroup", - FT_UINT32, BASE_DEC, VALS(inap_CalledFacilityGroup_vals), 0, + FT_UINT32, BASE_DEC, VALS(inap_FacilityGroup_vals), 0, "", HFILL }}, { &hf_inap_calledFacilityGroupMember, { "calledFacilityGroupMember", "inap.calledFacilityGroupMember", @@ -5568,38 +5746,410 @@ void proto_register_inap(void) { { &hf_inap_sCIBillingChargingCharacteristics, { "sCIBillingChargingCharacteristics", "inap.sCIBillingChargingCharacteristics", FT_BYTES, BASE_HEX, NULL, 0, - "SendChargingInformation/sCIBillingChargingCharacteristics", HFILL }}, + "SendChargingInformationArg/sCIBillingChargingCharacteristics", HFILL }}, { &hf_inap_countersValue, { "countersValue", "inap.countersValue", FT_UINT32, BASE_DEC, NULL, 0, - "ServiceFilteringResponse/countersValue", HFILL }}, - { &hf_inap_countersValue_item, - { "Item", "inap.countersValue_item", + "ServiceFilteringResponseArg/countersValue", HFILL }}, + { &hf_inap_responseCondition, + { "responseCondition", "inap.responseCondition", + FT_UINT32, BASE_DEC, VALS(inap_ResponseCondition_vals), 0, + "ServiceFilteringResponseArg/responseCondition", HFILL }}, + { &hf_inap_reportCondition, + { "reportCondition", "inap.reportCondition", + FT_UINT32, BASE_DEC, VALS(inap_ReportCondition_vals), 0, + "StatusReportArg/reportCondition", HFILL }}, + { &hf_inap_dpSpecificCriteria, + { "dpSpecificCriteria", "inap.dpSpecificCriteria", + FT_UINT32, BASE_DEC, VALS(inap_DpSpecificCriteria_vals), 0, + "BCSMEvent/dpSpecificCriteria", HFILL }}, + { &hf_inap_bearerCap, + { "bearerCap", "inap.bearerCap", + FT_BYTES, BASE_HEX, NULL, 0, + "BearerCapability/bearerCap", HFILL }}, + { &hf_inap_tmr, + { "tmr", "inap.tmr", + FT_BYTES, BASE_HEX, NULL, 0, + "BearerCapability/tmr", HFILL }}, + { &hf_inap_minimumNbOfDigits, + { "minimumNbOfDigits", "inap.minimumNbOfDigits", + FT_UINT32, BASE_DEC, NULL, 0, + "CollectedDigits/minimumNbOfDigits", HFILL }}, + { &hf_inap_maximumNbOfDigits, + { "maximumNbOfDigits", "inap.maximumNbOfDigits", + FT_UINT32, BASE_DEC, NULL, 0, + "CollectedDigits/maximumNbOfDigits", HFILL }}, + { &hf_inap_endOfReplyDigit, + { "endOfReplyDigit", "inap.endOfReplyDigit", + FT_BYTES, BASE_HEX, NULL, 0, + "CollectedDigits/endOfReplyDigit", HFILL }}, + { &hf_inap_cancelDigit, + { "cancelDigit", "inap.cancelDigit", + FT_BYTES, BASE_HEX, NULL, 0, + "CollectedDigits/cancelDigit", HFILL }}, + { &hf_inap_startDigit, + { "startDigit", "inap.startDigit", + FT_BYTES, BASE_HEX, NULL, 0, + "CollectedDigits/startDigit", HFILL }}, + { &hf_inap_firstDigitTimeOut, + { "firstDigitTimeOut", "inap.firstDigitTimeOut", + FT_UINT32, BASE_DEC, NULL, 0, + "CollectedDigits/firstDigitTimeOut", HFILL }}, + { &hf_inap_interDigitTimeOut, + { "interDigitTimeOut", "inap.interDigitTimeOut", + FT_UINT32, BASE_DEC, NULL, 0, + "CollectedDigits/interDigitTimeOut", HFILL }}, + { &hf_inap_errorTreatment, + { "errorTreatment", "inap.errorTreatment", + FT_UINT32, BASE_DEC, VALS(inap_ErrorTreatment_vals), 0, + "CollectedDigits/errorTreatment", HFILL }}, + { &hf_inap_interruptableAnnInd, + { "interruptableAnnInd", "inap.interruptableAnnInd", + FT_BOOLEAN, 8, NULL, 0, + "CollectedDigits/interruptableAnnInd", HFILL }}, + { &hf_inap_voiceInformation, + { "voiceInformation", "inap.voiceInformation", + FT_BOOLEAN, 8, NULL, 0, + "CollectedDigits/voiceInformation", HFILL }}, + { &hf_inap_voiceBack, + { "voiceBack", "inap.voiceBack", + FT_BOOLEAN, 8, NULL, 0, + "CollectedDigits/voiceBack", HFILL }}, + { &hf_inap_collectedDigits, + { "collectedDigits", "inap.collectedDigits", FT_NONE, BASE_NONE, NULL, 0, - "ServiceFilteringResponse/countersValue/_item", HFILL }}, + "CollectedInfo/collectedDigits", HFILL }}, + { &hf_inap_iA5Information, + { "iA5Information", "inap.iA5Information", + FT_BOOLEAN, 8, NULL, 0, + "CollectedInfo/iA5Information", HFILL }}, { &hf_inap_counterID, { "counterID", "inap.counterID", FT_UINT32, BASE_DEC, NULL, 0, - "ServiceFilteringResponse/countersValue/_item/counterID", HFILL }}, + "CounterAndValue/counterID", HFILL }}, { &hf_inap_counterValue, { "counterValue", "inap.counterValue", FT_UINT32, BASE_DEC, NULL, 0, - "ServiceFilteringResponse/countersValue/_item/counterValue", HFILL }}, - { &hf_inap_responseCondition, - { "responseCondition", "inap.responseCondition", - FT_UINT32, BASE_DEC, VALS(inap_T_responseCondition_vals), 0, - "ServiceFilteringResponse/responseCondition", HFILL }}, - { &hf_inap_reportCondition, - { "reportCondition", "inap.reportCondition", - FT_UINT32, BASE_DEC, VALS(inap_T_reportCondition_vals), 0, - "StatusReport/reportCondition", HFILL }}, + "CounterAndValue/counterValue", HFILL }}, + { &hf_inap_CountersValue_item, + { "Item", "inap.CountersValue_item", + FT_NONE, BASE_NONE, NULL, 0, + "CountersValue/_item", HFILL }}, + { &hf_inap_DestinationRoutingAddress_item, + { "Item", "inap.DestinationRoutingAddress_item", + FT_BYTES, BASE_HEX, NULL, 0, + "DestinationRoutingAddress/_item", HFILL }}, + { &hf_inap_numberOfDigits, + { "numberOfDigits", "inap.numberOfDigits", + FT_UINT32, BASE_DEC, NULL, 0, + "DpSpecificCriteria/numberOfDigits", HFILL }}, + { &hf_inap_applicationTimer, + { "applicationTimer", "inap.applicationTimer", + FT_UINT32, BASE_DEC, NULL, 0, + "DpSpecificCriteria/applicationTimer", HFILL }}, + { &hf_inap_collectedInfoSpecificInfo, + { "collectedInfoSpecificInfo", "inap.collectedInfoSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/collectedInfoSpecificInfo", HFILL }}, + { &hf_inap_calledPartynumber, + { "calledPartynumber", "inap.calledPartynumber", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_analyzedInfoSpecificInfo, + { "analyzedInfoSpecificInfo", "inap.analyzedInfoSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/analyzedInfoSpecificInfo", HFILL }}, + { &hf_inap_routeSelectFailureSpecificInfo, + { "routeSelectFailureSpecificInfo", "inap.routeSelectFailureSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/routeSelectFailureSpecificInfo", HFILL }}, + { &hf_inap_oCalledPartyBusySpecificInfo, + { "oCalledPartyBusySpecificInfo", "inap.oCalledPartyBusySpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oCalledPartyBusySpecificInfo", HFILL }}, + { &hf_inap_oNoAnswerSpecificInfo, + { "oNoAnswerSpecificInfo", "inap.oNoAnswerSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oNoAnswerSpecificInfo", HFILL }}, + { &hf_inap_oAnswerSpecificInfo, + { "oAnswerSpecificInfo", "inap.oAnswerSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oAnswerSpecificInfo", HFILL }}, + { &hf_inap_oMidCallSpecificInfo, + { "oMidCallSpecificInfo", "inap.oMidCallSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oMidCallSpecificInfo", HFILL }}, + { &hf_inap_oDisconnectSpecificInfo, + { "oDisconnectSpecificInfo", "inap.oDisconnectSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/oDisconnectSpecificInfo", HFILL }}, + { &hf_inap_tBusySpecificInfo, + { "tBusySpecificInfo", "inap.tBusySpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tBusySpecificInfo", HFILL }}, + { &hf_inap_tNoAnswerSpecificInfo, + { "tNoAnswerSpecificInfo", "inap.tNoAnswerSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tNoAnswerSpecificInfo", HFILL }}, + { &hf_inap_tAnswerSpecificInfo, + { "tAnswerSpecificInfo", "inap.tAnswerSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tAnswerSpecificInfo", HFILL }}, + { &hf_inap_tMidCallSpecificInfo, + { "tMidCallSpecificInfo", "inap.tMidCallSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tMidCallSpecificInfo", HFILL }}, + { &hf_inap_tDisconnectSpecificInfo, + { "tDisconnectSpecificInfo", "inap.tDisconnectSpecificInfo", + FT_NONE, BASE_NONE, NULL, 0, + "EventSpecificInformationBCSM/tDisconnectSpecificInfo", HFILL }}, + { &hf_inap_trunkGroupID, + { "trunkGroupID", "inap.trunkGroupID", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_inap_privateFacilityID, + { "privateFacilityID", "inap.privateFacilityID", + FT_INT32, BASE_DEC, NULL, 0, + "FacilityGroup/privateFacilityID", HFILL }}, + { &hf_inap_huntGroup, + { "huntGroup", "inap.huntGroup", + FT_BYTES, BASE_HEX, NULL, 0, + "FacilityGroup/huntGroup", HFILL }}, + { &hf_inap_routeIndex, + { "routeIndex", "inap.routeIndex", + FT_BYTES, BASE_HEX, NULL, 0, + "FacilityGroup/routeIndex", HFILL }}, + { &hf_inap_sFBillingChargingCharacteristics, + { "sFBillingChargingCharacteristics", "inap.sFBillingChargingCharacteristics", + FT_BYTES, BASE_HEX, NULL, 0, + "FilteredCallTreatment/sFBillingChargingCharacteristics", HFILL }}, + { &hf_inap_maximumNumberOfCounters, + { "maximumNumberOfCounters", "inap.maximumNumberOfCounters", + FT_UINT32, BASE_DEC, NULL, 0, + "FilteredCallTreatment/maximumNumberOfCounters", HFILL }}, + { &hf_inap_interval1, + { "interval1", "inap.interval1", + FT_INT32, BASE_DEC, NULL, 0, + "FilteringCharacteristics/interval1", HFILL }}, + { &hf_inap_numberOfCalls, + { "numberOfCalls", "inap.numberOfCalls", + FT_UINT32, BASE_DEC, NULL, 0, + "FilteringCharacteristics/numberOfCalls", HFILL }}, + { &hf_inap_dialledNumber, + { "dialledNumber", "inap.dialledNumber", + FT_BYTES, BASE_HEX, NULL, 0, + "FilteringCriteria/dialledNumber", HFILL }}, + { &hf_inap_callingLineID, + { "callingLineID", "inap.callingLineID", + FT_BYTES, BASE_HEX, NULL, 0, + "FilteringCriteria/callingLineID", HFILL }}, + { &hf_inap_addressAndService, + { "addressAndService", "inap.addressAndService", + FT_NONE, BASE_NONE, NULL, 0, + "FilteringCriteria/addressAndService", HFILL }}, + { &hf_inap_calledAddressValue, + { "calledAddressValue", "inap.calledAddressValue", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_callingAddressValue, + { "callingAddressValue", "inap.callingAddressValue", + FT_BYTES, BASE_HEX, NULL, 0, + "", HFILL }}, + { &hf_inap_duration, + { "duration", "inap.duration", + FT_INT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_inap_stopTime, + { "stopTime", "inap.stopTime", + FT_BYTES, BASE_HEX, NULL, 0, + "FilteringTimeOut/stopTime", HFILL }}, + { &hf_inap_gapOnService, + { "gapOnService", "inap.gapOnService", + FT_NONE, BASE_NONE, NULL, 0, + "GapCriteria/gapOnService", HFILL }}, + { &hf_inap_calledAddressAndService, + { "calledAddressAndService", "inap.calledAddressAndService", + FT_NONE, BASE_NONE, NULL, 0, + "GapCriteria/calledAddressAndService", HFILL }}, + { &hf_inap_callingAddressAndService, + { "callingAddressAndService", "inap.callingAddressAndService", + FT_NONE, BASE_NONE, NULL, 0, + "GapCriteria/callingAddressAndService", HFILL }}, + { &hf_inap_dpCriteria, + { "dpCriteria", "inap.dpCriteria", + FT_UINT32, BASE_DEC, VALS(inap_EventTypeBCSM_vals), 0, + "GapOnService/dpCriteria", HFILL }}, + { &hf_inap_gapInterval, + { "gapInterval", "inap.gapInterval", + FT_INT32, BASE_DEC, NULL, 0, + "GapIndicators/gapInterval", HFILL }}, + { &hf_inap_both, + { "both", "inap.both", + FT_NONE, BASE_NONE, NULL, 0, + "GapTreatment/both", HFILL }}, + { &hf_inap_messageID, + { "messageID", "inap.messageID", + FT_UINT32, BASE_DEC, VALS(inap_MessageID_vals), 0, + "InbandInfo/messageID", HFILL }}, + { &hf_inap_numberOfRepetitions, + { "numberOfRepetitions", "inap.numberOfRepetitions", + FT_UINT32, BASE_DEC, NULL, 0, + "InbandInfo/numberOfRepetitions", HFILL }}, + { &hf_inap_duration3, + { "duration3", "inap.duration3", + FT_UINT32, BASE_DEC, NULL, 0, + "InbandInfo/duration3", HFILL }}, + { &hf_inap_interval, + { "interval", "inap.interval", + FT_UINT32, BASE_DEC, NULL, 0, + "InbandInfo/interval", HFILL }}, + { &hf_inap_inbandInfo, + { "inbandInfo", "inap.inbandInfo", + FT_NONE, BASE_NONE, NULL, 0, + "InformationToSend/inbandInfo", HFILL }}, + { &hf_inap_tone, + { "tone", "inap.tone", + FT_NONE, BASE_NONE, NULL, 0, + "InformationToSend/tone", HFILL }}, + { &hf_inap_displayInformation, + { "displayInformation", "inap.displayInformation", + FT_STRING, BASE_NONE, NULL, 0, + "InformationToSend/displayInformation", HFILL }}, + { &hf_inap_sendingSideID, + { "sendingSideID", "inap.sendingSideID", + FT_BYTES, BASE_HEX, NULL, 0, + "LegID/sendingSideID", HFILL }}, + { &hf_inap_receivingSideID, + { "receivingSideID", "inap.receivingSideID", + FT_BYTES, BASE_HEX, NULL, 0, + "LegID/receivingSideID", HFILL }}, + { &hf_inap_elementaryMessageID, + { "elementaryMessageID", "inap.elementaryMessageID", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_inap_text, + { "text", "inap.text", + FT_NONE, BASE_NONE, NULL, 0, + "MessageID/text", HFILL }}, + { &hf_inap_messageContent, + { "messageContent", "inap.messageContent", + FT_STRING, BASE_NONE, NULL, 0, + "MessageID/text/messageContent", HFILL }}, + { &hf_inap_attributes, + { "attributes", "inap.attributes", + FT_BYTES, BASE_HEX, NULL, 0, + "MessageID/text/attributes", HFILL }}, + { &hf_inap_elementaryMessageIDs, + { "elementaryMessageIDs", "inap.elementaryMessageIDs", + FT_UINT32, BASE_DEC, NULL, 0, + "MessageID/elementaryMessageIDs", HFILL }}, + { &hf_inap_elementaryMessageIDs_item, + { "Item", "inap.elementaryMessageIDs_item", + FT_UINT32, BASE_DEC, NULL, 0, + "MessageID/elementaryMessageIDs/_item", HFILL }}, + { &hf_inap_variableMessage, + { "variableMessage", "inap.variableMessage", + FT_NONE, BASE_NONE, NULL, 0, + "MessageID/variableMessage", HFILL }}, + { &hf_inap_variableParts, + { "variableParts", "inap.variableParts", + FT_UINT32, BASE_DEC, NULL, 0, + "MessageID/variableMessage/variableParts", HFILL }}, + { &hf_inap_variableParts_item, + { "Item", "inap.variableParts_item", + FT_UINT32, BASE_DEC, VALS(inap_VariablePart_vals), 0, + "MessageID/variableMessage/variableParts/_item", HFILL }}, + { &hf_inap_messageType, + { "messageType", "inap.messageType", + FT_UINT32, BASE_DEC, VALS(inap_T_messageType_vals), 0, + "MiscCallInfo/messageType", HFILL }}, + { &hf_inap_dpAssignment, + { "dpAssignment", "inap.dpAssignment", + FT_UINT32, BASE_DEC, VALS(inap_T_dpAssignment_vals), 0, + "MiscCallInfo/dpAssignment", HFILL }}, + { &hf_inap_RequestedInformationList_item, + { "Item", "inap.RequestedInformationList_item", + FT_NONE, BASE_NONE, NULL, 0, + "RequestedInformationList/_item", HFILL }}, + { &hf_inap_RequestedInformationTypeList_item, + { "Item", "inap.RequestedInformationTypeList_item", + FT_UINT32, BASE_DEC, VALS(inap_RequestedInformationType_vals), 0, + "RequestedInformationTypeList/_item", HFILL }}, + { &hf_inap_requestedInformationType, + { "requestedInformationType", "inap.requestedInformationType", + FT_UINT32, BASE_DEC, VALS(inap_RequestedInformationType_vals), 0, + "RequestedInformation/requestedInformationType", HFILL }}, + { &hf_inap_requestedInformationValue, + { "requestedInformationValue", "inap.requestedInformationValue", + FT_UINT32, BASE_DEC, VALS(inap_RequestedInformationValue_vals), 0, + "RequestedInformation/requestedInformationValue", HFILL }}, + { &hf_inap_callAttemptElapsedTimeValue, + { "callAttemptElapsedTimeValue", "inap.callAttemptElapsedTimeValue", + FT_UINT32, BASE_DEC, NULL, 0, + "RequestedInformationValue/callAttemptElapsedTimeValue", HFILL }}, + { &hf_inap_callStopTimeValue, + { "callStopTimeValue", "inap.callStopTimeValue", + FT_BYTES, BASE_HEX, NULL, 0, + "RequestedInformationValue/callStopTimeValue", HFILL }}, + { &hf_inap_callConnectedElapsedTimeValue, + { "callConnectedElapsedTimeValue", "inap.callConnectedElapsedTimeValue", + FT_UINT32, BASE_DEC, NULL, 0, + "RequestedInformationValue/callConnectedElapsedTimeValue", HFILL }}, + { &hf_inap_releaseCauseValue, + { "releaseCauseValue", "inap.releaseCauseValue", + FT_BYTES, BASE_HEX, NULL, 0, + "RequestedInformationValue/releaseCauseValue", HFILL }}, + { &hf_inap_lineID, + { "lineID", "inap.lineID", + FT_BYTES, BASE_HEX, NULL, 0, + "ResourceID/lineID", HFILL }}, + { &hf_inap_facilityGroupID, + { "facilityGroupID", "inap.facilityGroupID", + FT_UINT32, BASE_DEC, VALS(inap_FacilityGroup_vals), 0, + "ResourceID/facilityGroupID", HFILL }}, + { &hf_inap_facilityGroupMemberID, + { "facilityGroupMemberID", "inap.facilityGroupMemberID", + FT_INT32, BASE_DEC, NULL, 0, + "ResourceID/facilityGroupMemberID", HFILL }}, + { &hf_inap_RouteList_item, + { "Item", "inap.RouteList_item", + FT_BYTES, BASE_HEX, NULL, 0, + "RouteList/_item", HFILL }}, + { &hf_inap_toneID, + { "toneID", "inap.toneID", + FT_UINT32, BASE_DEC, NULL, 0, + "Tone/toneID", HFILL }}, + { &hf_inap_tone_duration, + { "tone-duration", "inap.tone_duration", + FT_UINT32, BASE_DEC, NULL, 0, + "Tone/tone-duration", HFILL }}, + { &hf_inap_integer, + { "integer", "inap.integer", + FT_UINT32, BASE_DEC, NULL, 0, + "VariablePart/integer", HFILL }}, + { &hf_inap_number, + { "number", "inap.number", + FT_BYTES, BASE_HEX, NULL, 0, + "VariablePart/number", HFILL }}, + { &hf_inap_time, + { "time", "inap.time", + FT_BYTES, BASE_HEX, NULL, 0, + "VariablePart/time", HFILL }}, + { &hf_inap_date2, + { "date2", "inap.date2", + FT_BYTES, BASE_HEX, NULL, 0, + "VariablePart/date2", HFILL }}, + { &hf_inap_price, + { "price", "inap.price", + FT_BYTES, BASE_HEX, NULL, 0, + "VariablePart/price", HFILL }}, { &hf_inap_problem, { "problem", "inap.problem", FT_UINT32, BASE_DEC, VALS(inap_T_problem_vals), 0, "CancelFailed/problem", HFILL }}, { &hf_inap_operation, { "operation", "inap.operation", - FT_UINT32, BASE_DEC, NULL, 0, + FT_INT32, BASE_DEC, NULL, 0, "CancelFailed/operation", HFILL }}, { &hf_inap_rinvokeID, { "rinvokeID", "inap.rinvokeID", @@ -5662,66 +6212,74 @@ void proto_register_inap(void) { &ett_inap_ChangePartiesArg, &ett_inap_DetachArg, &ett_inap_HoldCallPartyConnectionArg, - &ett_inap_LegID, &ett_inap_ReconnectArg, &ett_inap_ReleaseCallPartyConnectionArg, &ett_inap_LegInformation, - &ett_inap_VariableParts, - &ett_inap_VariableParts_item, - &ett_inap_VariableMessage, - &ett_inap_Tone, - &ett_inap_Text, - &ett_inap_MessageID, - &ett_inap_T_elementaryMessageIDs, - &ett_inap_InformationToSend, - &ett_inap_T_inbandInfo, - &ett_inap_FilteringCriteria, - &ett_inap_T_addressAndService, &ett_inap_Extensions, &ett_inap_Extensions_item, - &ett_inap_ActivateServiceFilteringarg, - &ett_inap_T_filteredCallTreatment, - &ett_inap_T_filteringCharacteristics, - &ett_inap_T_filteringTimeOut, - &ett_inap_MiscCallInfo, - &ett_inap_ServiceAddressInformation, - &ett_inap_RouteList, - &ett_inap_BearerCapability, - &ett_inap_DpSpecificCommonParameters, - &ett_inap_CallingFacilityGroup, + &ett_inap_ActivateServiceFilteringArg, &ett_inap_AnalysedInformationarg, &ett_inap_AnalyseInformationarg, - &ett_inap_SEQUENCE_SIZE_1_3_OF_DestinationAddress, - &ett_inap_PartyToCharge, - &ett_inap_ApplyChargingarg, - &ett_inap_AssistRequestInstructionsarg, - &ett_inap_CallGaparg, - &ett_inap_T_gapCriteria, - &ett_inap_T_gapOnService, - &ett_inap_T_calledAddressAndService, - &ett_inap_T_callingAddressAndService, - &ett_inap_T_gapIndicators, - &ett_inap_T_gapTreatment, - &ett_inap_Both, - &ett_inap_CallInformationReportarg, - &ett_inap_T_requestedInformationList, - &ett_inap_T_requestedInformationList_item, - &ett_inap_T_requestedInformationValue, - &ett_inap_CallInformationRequestarg, - &ett_inap_T_requestedInformationTypeList, - &ett_inap_Cancelarg, - &ett_inap_FacilityGroupID, - &ett_inap_ResourceID, - &ett_inap_CancelStatusReportRequestarg, - &ett_inap_CollectedInformationarg, - &ett_inap_CollectInformationarg, - &ett_inap_Connectarg, - &ett_inap_ConnectToResource, + &ett_inap_ApplyChargingArg, + &ett_inap_AssistRequestInstructionsArg, + &ett_inap_CallGapArg, + &ett_inap_CallInformationReportArg, + &ett_inap_CallInformationRequestArg, + &ett_inap_CancelArg, + &ett_inap_CancelStatusReportRequestArg, + &ett_inap_CollectedInformationArg, + &ett_inap_CollectInformationArg, + &ett_inap_ConnectArg, + &ett_inap_ConnectToResourceArg, &ett_inap_T_resourceAddress, - &ett_inap_EstablishTemporaryConnection, - &ett_inap_EventNotificationChargingarg, - &ett_inap_EventReportBCSM, - &ett_inap_T_eventSpecificInformationBCSM, + &ett_inap_T_both2, + &ett_inap_DpSpecificCommonParameters, + &ett_inap_EstablishTemporaryConnectionArg, + &ett_inap_EventNotificationChargingArg, + &ett_inap_EventReportBCSMArg, + &ett_inap_HoldCallInNetworkArg, + &ett_inap_InitialDP, + &ett_inap_InitiateCallAttemptArg, + &ett_inap_MidCallArg, + &ett_inap_OAnswerArg, + &ett_inap_OCalledPartyBusyArg, + &ett_inap_ODisconnectArg, + &ett_inap_ONoAnswer, + &ett_inap_OriginationAttemptAuthorizedArg, + &ett_inap_PlayAnnouncementArg, + &ett_inap_PromptAndCollectUserInformationArg, + &ett_inap_ReceivedInformationArg, + &ett_inap_ReleaseCallArg, + &ett_inap_T_allCallSegments, + &ett_inap_RequestCurrentStatusReportResultArg, + &ett_inap_RequestEveryStatusChangeReportArg, + &ett_inap_RequestFirstStatusMatchReportArg, + &ett_inap_RequestNotificationChargingEvent, + &ett_inap_RequestNotificationChargingEvent_item, + &ett_inap_RequestReportBCSMEventArg, + &ett_inap_SEQUENCE_SIZE_1_numOfBCSMEvents_OF_BCSMEvent, + &ett_inap_ResetTimerArg, + &ett_inap_RouteSelectFailureArg, + &ett_inap_SelectFacilityArg, + &ett_inap_SelectRouteArg, + &ett_inap_SendChargingInformationArg, + &ett_inap_ServiceFilteringResponseArg, + &ett_inap_StatusReportArg, + &ett_inap_TAnswerArg, + &ett_inap_TTBusyArg, + &ett_inap_TDisconnectArg, + &ett_inap_TermAttemptAuthorizedArg, + &ett_inap_TNoAnswerArg, + &ett_inap_BCSMEvent, + &ett_inap_BearerCapability, + &ett_inap_ChargingEvent, + &ett_inap_CollectedDigits, + &ett_inap_CollectedInfo, + &ett_inap_CounterAndValue, + &ett_inap_CountersValue, + &ett_inap_DestinationRoutingAddress, + &ett_inap_DpSpecificCriteria, + &ett_inap_EventSpecificInformationBCSM, &ett_inap_T_collectedInfoSpecificInfo, &ett_inap_T_analyzedInfoSpecificInfo, &ett_inap_T_routeSelectFailureSpecificInfo, @@ -5735,48 +6293,37 @@ void proto_register_inap(void) { &ett_inap_T_tAnswerSpecificInfo, &ett_inap_T_tMidCallSpecificInfo, &ett_inap_T_tDisconnectSpecificInfo, - &ett_inap_HoldCallInNetworkarg, - &ett_inap_InitialDP, - &ett_inap_InitiateCallAttempt, - &ett_inap_OAnswer, - &ett_inap_OCalledPartyBusy, - &ett_inap_ODisconnect, - &ett_inap_OMidCall, - &ett_inap_ONoAnswer, - &ett_inap_OriginationAttemptAuthorized, - &ett_inap_PlayAnnouncement, - &ett_inap_PromptAndCollectUserInformationarg, - &ett_inap_T_collectedInfo, - &ett_inap_T_collectedDigits, - &ett_inap_PromptAndCollectUserInformationres, - &ett_inap_ReleaseCallArg, - &ett_inap_T_allCallSegments, - &ett_inap_RequestCurrentStatusReportarg, - &ett_inap_RequestCurrentStatusReportres, - &ett_inap_RequestEveryStatusChangeReport, - &ett_inap_RequestFirstStatusMatchReport, - &ett_inap_RequestNotificationChargingEvent, - &ett_inap_RequestNotificationChargingEvent_item, - &ett_inap_RequestReportBCSMEvent, - &ett_inap_T_bcsmEvents, - &ett_inap_T_bcsmEvents_item, - &ett_inap_T_dpSpecificCriteria, - &ett_inap_ResetTimer, - &ett_inap_RouteSelectFailure, - &ett_inap_CalledFacilityGroup, - &ett_inap_SelectFacility, - &ett_inap_SelectRoute, - &ett_inap_SendChargingInformation, - &ett_inap_ServiceFilteringResponse, - &ett_inap_T_countersValue, - &ett_inap_T_countersValue_item, - &ett_inap_StatusReport, - &ett_inap_TAnswer, - &ett_inap_TBusy, - &ett_inap_TDisconnect, - &ett_inap_TermAttemptAuthorized, - &ett_inap_TMidCall, - &ett_inap_TNoAnswer, + &ett_inap_FacilityGroup, + &ett_inap_FilteredCallTreatment, + &ett_inap_FilteringCharacteristics, + &ett_inap_FilteringCriteria, + &ett_inap_T_addressAndService, + &ett_inap_FilteringTimeOut, + &ett_inap_GapCriteria, + &ett_inap_T_calledAddressAndService, + &ett_inap_T_callingAddressAndService, + &ett_inap_GapOnService, + &ett_inap_GapIndicators, + &ett_inap_GapTreatment, + &ett_inap_T_both, + &ett_inap_InbandInfo, + &ett_inap_InformationToSend, + &ett_inap_LegID, + &ett_inap_MessageID, + &ett_inap_T_text, + &ett_inap_SEQUENCE_SIZE_1_numOfMessageIDs_OF_Integer4, + &ett_inap_T_variableMessage, + &ett_inap_SEQUENCE_SIZE_1_5_OF_VariablePart, + &ett_inap_MiscCallInfo, + &ett_inap_RequestedInformationList, + &ett_inap_RequestedInformationTypeList, + &ett_inap_RequestedInformation, + &ett_inap_RequestedInformationValue, + &ett_inap_ResourceID, + &ett_inap_RouteList, + &ett_inap_ServiceAddressInformation, + &ett_inap_Tone, + &ett_inap_VariablePart, &ett_inap_CancelFailed, &ett_inap_RejectPDU, &ett_inap_T_rinvokeID, diff --git a/epan/dissectors/packet-isup.c b/epan/dissectors/packet-isup.c index 2b74faf6f6..61475a015e 100644 --- a/epan/dissectors/packet-isup.c +++ b/epan/dissectors/packet-isup.c @@ -477,7 +477,7 @@ static const value_string isup_SCCP_method_ind_value[] = { #define DATA_CALL 12 #define TEST_CALL 13 #define PAYPHONE 15 -static const value_string isup_calling_partys_category_value[] = { +const value_string isup_calling_partys_category_value[] = { { UNKNOWN_AT_THIS_TIME, "Category unknown at this time (national use)"}, { OPERATOR_FRENCH, "operator, language French"}, { OPERATOR_ENGLISH, "operator, language English"}, @@ -1462,7 +1462,7 @@ dissect_isup_called_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree * "Called Party Number"); address_digits_tree = proto_item_add_subtree(address_digits_item, ett_isup_address_digits); - while((length = tvb_reported_length_remaining(parameter_tvb, offset)) > 1){ + while((length = tvb_reported_length_remaining(parameter_tvb, offset)) > 0){ address_digit_pair = tvb_get_guint8(parameter_tvb, offset); proto_tree_add_uint(address_digits_tree, hf_isup_called_party_odd_address_signal_digit, parameter_tvb, offset, 1, address_digit_pair); called_number[i++] = number_to_char(address_digit_pair & ISUP_ODD_ADDRESS_SIGNAL_DIGIT_MASK); @@ -2942,6 +2942,9 @@ dissect_isup_application_transport_parameter(tvbuff_t *parameter_tvb, packet_inf offset = offset + octet - 2; } } + if ( offset == (gint)length) + /* No data */ + return; proto_tree_add_text(parameter_tree, parameter_tvb, offset, -1, "APM-user information field" ); /* dissect BAT ASE element, without transparent data ( Q.765.5-200006) */ @@ -3049,7 +3052,7 @@ dissect_isup_calling_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree /* ------------------------------------------------------------------ Dissector Parameter Original called number */ -static void +void dissect_isup_original_called_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item) { proto_item *address_digits_item; @@ -3106,7 +3109,7 @@ dissect_isup_original_called_number_parameter(tvbuff_t *parameter_tvb, proto_tre /* ------------------------------------------------------------------ Dissector Parameter Redirecting number */ -static void +void dissect_isup_redirecting_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item) { proto_item *address_digits_item; @@ -3244,7 +3247,7 @@ dissect_isup_connection_request_parameter(tvbuff_t *parameter_tvb, proto_tree *p /* ------------------------------------------------------------------ Dissector Parameter Redirection information */ -static void +void dissect_isup_redirection_information_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item) { if (tvb_length(parameter_tvb) == 2){ diff --git a/epan/dissectors/packet-isup.h b/epan/dissectors/packet-isup.h index ea4dd5de01..e6b933b201 100644 --- a/epan/dissectors/packet-isup.h +++ b/epan/dissectors/packet-isup.h @@ -133,6 +133,7 @@ ETH_VAR_IMPORT const value_string q850_cause_code_vals[]; extern const value_string isup_parameter_type_value[]; extern const value_string isup_transmission_medium_requirement_value[]; +extern const value_string isup_calling_partys_category_value[]; /* * Export dissection of some parameters @@ -141,5 +142,8 @@ void dissect_nsap(tvbuff_t *parameter_tvb,gint offset,gint len, proto_tree *para void dissect_isup_called_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item); void dissect_isup_calling_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item); void dissect_isup_cause_indicators_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item); +void dissect_isup_redirection_information_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item); +void dissect_isup_original_called_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item); +void dissect_isup_redirecting_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item); extern int dissect_codec_mode(proto_tree *tree, tvbuff_t *tvb, int offset, int len); |