diff options
-rw-r--r-- | asn1/h225/H323-MESSAGES.asn | 127 | ||||
-rw-r--r-- | asn1/h225/h225.cnf | 20 | ||||
-rw-r--r-- | asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn | 193 | ||||
-rw-r--r-- | asn1/h245/h245-exp.cnf | 1 | ||||
-rw-r--r-- | asn1/h245/h245.cnf | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-h225.c | 455 | ||||
-rw-r--r-- | epan/dissectors/packet-h245.c | 419 | ||||
-rw-r--r-- | epan/dissectors/packet-h245.h | 1 |
8 files changed, 948 insertions, 269 deletions
diff --git a/asn1/h225/H323-MESSAGES.asn b/asn1/h225/H323-MESSAGES.asn index 8dca270009..1a6b455835 100644 --- a/asn1/h225/H323-MESSAGES.asn +++ b/asn1/h225/H323-MESSAGES.asn @@ -1,12 +1,12 @@ -- H323-MESSAGES.asn -- -- Taken from ITU ASN.1 database --- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h225-0/2003/H323-MESSAGES.asn +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h225-0/2006/H323-MESSAGES.asn -- -- $Id$ -- --- Module H323-MESSAGES (H.225.0:07/2003) +-- Module H323-MESSAGES (H.225.0:05/2006) H323-MESSAGES DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -15,7 +15,7 @@ IMPORTS Password, EncodedPwdCertToken, ClearToken, CryptoToken, AuthenticationMechanism FROM H235-SECURITY-MESSAGES - DataProtocolCapability, T38FaxProfile + DataProtocolCapability, T38FaxProfile, QOSCapability FROM MULTIMEDIA-SYSTEM-CONTROL; H323-UserInformation ::= @@ -197,9 +197,8 @@ ReleaseCompleteReason ::= CHOICE { -- the Setup may be accepted on -- a new connection nonStandardReason NonStandardParameter, - replaceWithConferenceInvite ConferenceIdentifier, -- call dropped due to + replaceWithConferenceInvite ConferenceIdentifier, -- call dropped due to subsequent invitation - -- subsequent invitation -- to a conference -- (see H.323 8.4.3.8) genericDataReason NULL, @@ -280,7 +279,7 @@ ScnConnectionType ::= CHOICE { hybrid1920 NULL, -- each connection is an H12 (1920kbps) hybrid call multirate NULL, -- bandwidth supplied by SCN using multirate. - -- In this case, the information transfer rate octet in + -- In this case, the information transfer rate octet in -- the bearer capability shall be set to multirate and -- the rate multiplier octet shall denote the number -- of B channels. @@ -631,7 +630,8 @@ AliasAddress ::= CHOICE { transportID TransportAddress, email-ID IA5String(SIZE (1..512)), -- rfc822-compliant email address partyNumber PartyNumber, - mobileUIM MobileUIM + mobileUIM MobileUIM, + isupNumber IsupNumber } AddressPattern ::= CHOICE { @@ -755,6 +755,45 @@ GSM-UIM ::= SEQUENCE { ... } +IsupNumber ::= CHOICE { + e164Number IsupPublicPartyNumber, + -- the numbering plan is according to + -- Recommendations E.163 and E.164. + dataPartyNumber IsupDigits, -- not used, value reserved. + telexPartyNumber IsupDigits, -- not used, value reserved. + privateNumber IsupPrivatePartyNumber, + -- the numbering plan is according to + -- ISO/IEC 11571. + nationalStandardPartyNumber IsupDigits, -- not used, value reserved. + ... +} + +IsupPublicPartyNumber ::= SEQUENCE { + natureOfAddress NatureOfAddress, + address IsupDigits, + ... +} + +IsupPrivatePartyNumber ::= SEQUENCE { + privateTypeOfNumber PrivateTypeOfNumber, + address IsupDigits, + ... +} + +NatureOfAddress ::= CHOICE { + unknown NULL, + subscriberNumber NULL, + nationalNumber NULL, + internationalNumber NULL, + networkSpecificNumber NULL, + routingNumberNationalFormat NULL, + routingNumberNetworkSpecificFormat NULL, + routingNumberWithCalledDirectoryNumber NULL, + ... +} + +IsupDigits ::= IA5String(SIZE (1..128))(FROM ("0123456789ABCDE")) + ExtendedAliasAddress ::= SEQUENCE { address AliasAddress, presentationIndicator PresentationIndicator OPTIONAL, @@ -1098,8 +1137,7 @@ CarrierInfo ::= SEQUENCE { ServiceControlDescriptor ::= CHOICE { url IA5String(SIZE (0..512)), -- indicates a URL- - -- referenced - -- protocol/resource + -- referenced protocol/resource signal H248SignalsDescriptor, nonStandard NonStandardParameter, callCreditServiceControl CallCreditServiceControl, @@ -1240,6 +1278,10 @@ RTPSession ::= SEQUENCE { bandwidth BandWidth OPTIONAL } +RehomingModel ::= CHOICE {gatekeeperBased NULL, + endpointBased NULL +} + RasMessage ::= CHOICE { gatekeeperRequest GatekeeperRequest, gatekeeperConfirm GatekeeperConfirm, @@ -1297,7 +1339,9 @@ GatekeeperRequest ::= SEQUENCE --(GRQ) integrityCheckValue ICV OPTIONAL, supportsAltGK NULL OPTIONAL, featureSet FeatureSet OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + supportsAssignedGK BOOLEAN, + assignedGatekeeper AlternateGK OPTIONAL } GatekeeperConfirm ::= SEQUENCE --(GCF) @@ -1316,7 +1360,9 @@ GatekeeperConfirm ::= SEQUENCE --(GCF) integrity SEQUENCE OF IntegrityMechanism OPTIONAL, integrityCheckValue ICV OPTIONAL, featureSet FeatureSet OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL, + rehomingModel RehomingModel OPTIONAL } GatekeeperReject ::= SEQUENCE --(GRJ) @@ -1384,7 +1430,11 @@ RegistrationRequest ::= SEQUENCE --(RRQ) featureSet FeatureSet OPTIONAL, genericData SEQUENCE OF GenericData OPTIONAL, restart NULL OPTIONAL, - supportsACFSequences NULL OPTIONAL + supportsACFSequences NULL OPTIONAL, + supportsAssignedGK BOOLEAN, + assignedGatekeeper AlternateGK OPTIONAL, + transportQOS TransportQOS OPTIONAL, + language SEQUENCE OF IA5String(SIZE (1..32)) OPTIONAL } RegistrationConfirm ::= SEQUENCE --(RCF) @@ -1429,7 +1479,10 @@ RegistrationConfirm ::= SEQUENCE --(RCF) featureServerAlias AliasAddress OPTIONAL, capacityReportingSpec CapacityReportingSpecification OPTIONAL, featureSet FeatureSet OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL, + rehomingModel RehomingModel OPTIONAL, + transportQOS TransportQOS OPTIONAL } RegistrationReject ::= SEQUENCE --(RRJ) @@ -1445,7 +1498,8 @@ RegistrationReject ::= SEQUENCE --(RRJ) cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL, integrityCheckValue ICV OPTIONAL, featureSet FeatureSet OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } RegistrationRejectReason ::= CHOICE { @@ -1475,7 +1529,8 @@ RegistrationRejectReason ::= CHOICE { ...}, genericDataReason NULL, neededFeatureNotSupported NULL, - securityError SecurityErrors + securityError SecurityErrors, + registerWithAssignedGK NULL } UnregistrationRequest ::= SEQUENCE --(URQ) @@ -1495,7 +1550,8 @@ UnregistrationRequest ::= SEQUENCE --(URQ) endpointAliasPattern SEQUENCE OF AddressPattern OPTIONAL, supportedPrefixes SEQUENCE OF SupportedPrefix OPTIONAL, alternateGatekeeper SEQUENCE OF AlternateGK OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } UnregRequestReason ::= CHOICE { @@ -1505,7 +1561,8 @@ UnregRequestReason ::= CHOICE { undefinedReason NULL, ..., maintenance NULL, - securityError SecurityErrors2 + securityError SecurityErrors2, + registerWithAssignedGK NULL } UnregistrationConfirm ::= SEQUENCE --(UCF) @@ -1516,7 +1573,8 @@ UnregistrationConfirm ::= SEQUENCE --(UCF) tokens SEQUENCE OF ClearToken OPTIONAL, cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL, integrityCheckValue ICV OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } UnregistrationReject ::= SEQUENCE --(URJ) @@ -1601,7 +1659,8 @@ TransportQOS ::= CHOICE { endpointControlled NULL, gatekeeperControlled NULL, noControl NULL, - ... + ..., + qOSCapabilities SEQUENCE SIZE (1..256) OF QOSCapability } AdmissionConfirm ::= SEQUENCE --(ACF) @@ -1634,7 +1693,8 @@ AdmissionConfirm ::= SEQUENCE --(ACF) multipleCalls BOOLEAN OPTIONAL, featureSet FeatureSet OPTIONAL, genericData SEQUENCE OF GenericData OPTIONAL, - modifiedSrcInfo SEQUENCE OF AliasAddress OPTIONAL + modifiedSrcInfo SEQUENCE OF AliasAddress OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } UUIEsRequested ::= SEQUENCE { @@ -1667,13 +1727,14 @@ AdmissionReject ::= SEQUENCE --(ARJ) integrityCheckValue ICV OPTIONAL, serviceControl SEQUENCE OF ServiceControlSession OPTIONAL, featureSet FeatureSet OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } AdmissionRejectReason ::= CHOICE { calledPartyNotRegistered NULL, -- cannot translate address invalidPermission NULL, -- permission has expired - requestDenied NULL, -- no bandwidth available + requestDenied NULL, undefinedReason NULL, callerNotRegistered NULL, routeCallToGatekeeper NULL, @@ -1697,7 +1758,8 @@ AdmissionRejectReason ::= CHOICE { securityError SecurityErrors2, securityDHmismatch NULL, -- mismatch of DH parameters noRouteToDestination NULL, -- destination unreachable - unallocatedNumber NULL -- detination number unassigned + unallocatedNumber NULL, -- destination number unassigned + registerWithAssignedGK NULL } BandwidthRequest ::= SEQUENCE --(BRQ) @@ -1720,7 +1782,8 @@ BandwidthRequest ::= SEQUENCE --(BRQ) capacity CallCapacity OPTIONAL, usageInformation RasUsageInformation OPTIONAL, bandwidthDetails SEQUENCE OF BandwidthDetails OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + transportQOS TransportQOS OPTIONAL } BandwidthConfirm ::= SEQUENCE --(BCF) @@ -1733,7 +1796,8 @@ BandwidthConfirm ::= SEQUENCE --(BCF) cryptoTokens SEQUENCE OF CryptoH323Token OPTIONAL, integrityCheckValue ICV OPTIONAL, capacity CallCapacity OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + transportQOS TransportQOS OPTIONAL } BandwidthReject ::= SEQUENCE --(BRJ) @@ -1785,7 +1849,8 @@ LocationRequest ::= SEQUENCE --(LRQ) callIdentifier CallIdentifier OPTIONAL, bandWidth BandWidth OPTIONAL, sourceEndpointInfo SEQUENCE OF AliasAddress OPTIONAL, - canMapSrcAlias BOOLEAN + canMapSrcAlias BOOLEAN, + language SEQUENCE OF IA5String(SIZE (1..32)) OPTIONAL } LocationConfirm ::= SEQUENCE --(LCF) @@ -1832,7 +1897,7 @@ LocationReject ::= SEQUENCE --(LRJ) LocationRejectReason ::= CHOICE { notRegistered NULL, invalidPermission NULL, -- exclusion by administrator or feature - requestDenied NULL, -- cannot find location + requestDenied NULL, undefinedReason NULL, ..., securityDenial NULL, @@ -1893,7 +1958,8 @@ DisengageConfirm ::= SEQUENCE --(DCF) capacity CallCapacity OPTIONAL, circuitInfo CircuitInfo OPTIONAL, usageInformation RasUsageInformation OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } DisengageReject ::= SEQUENCE --(DRJ) @@ -1934,7 +2000,8 @@ InfoRequest ::= SEQUENCE --(IRQ) segmentedResponseSupported NULL OPTIONAL, nextSegmentRequested INTEGER(0..65535) OPTIONAL, capacityInfoRequested NULL OPTIONAL, - genericData SEQUENCE OF GenericData OPTIONAL + genericData SEQUENCE OF GenericData OPTIONAL, + assignedGatekeeper AlternateGK OPTIONAL } InfoRequestResponse ::= SEQUENCE --(IRR) @@ -2120,7 +2187,7 @@ ServiceControlResponse ::= SEQUENCE --(SCR) ... } -END +END -- of ASN.1 -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D diff --git a/asn1/h225/h225.cnf b/asn1/h225/h225.cnf index d1395df517..6862bfbf6c 100644 --- a/asn1/h225/h225.cnf +++ b/asn1/h225/h225.cnf @@ -77,6 +77,15 @@ H245TransportAddress/ipxAddress/port h245IpxPort H245TransportAddress/ip6Address h245Ip6Address H245TransportAddress/ip6Address/ip h245Ip6 +#.VIRTUAL_ASSGN +Language Setup-UUIE/language +#.SET_TYPE +Connect-UUIE/language Language +Setup-UUIE/language Language +RegistrationRequest/language Language +AdmissionConfirm/language Language +LocationRequest/language Language + #---------------------------------------------------------------------------------------- #.TYPE_RENAME CallCreditServiceControl/callStartingPoint CallCreditServiceControl_callStartingPoint @@ -86,9 +95,6 @@ RasUsageSpecification/callStartingPoint RasUsageSpecificationcallStartingPoint CapacityReportingSpecification/when CapacityReportingSpecification_when RasUsageSpecification/when RasUsageSpecification_when TransportAddress/ipAddress/ip IpV4 -Connect-UUIE/language Language -Setup-UUIE/language Language -AdmissionConfirm/language Language #---------------------------------------------------------------------------------------- #.FIELD_RENAME RasUsageSpecification/callStartingPoint/alerting alerting_flg @@ -179,6 +185,14 @@ RegistrationRejectReason/securityError reg_securityError CallIdentifier/guid guid +ExtendedAliasAddress/address extAliasAddress + +IsupNumber/e164Number isupE164Number +IsupNumber/dataPartyNumber isupDataPartyNumber +IsupNumber/telexPartyNumber isupTelexPartyNumber +IsupNumber/privateNumber isupPrivateNumber +IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber + #---------------------------------------------------------------------------------------- #.FN_BODY H323-UU-PDU/h323-message-body VAL_PTR = &message_body_val guint32 message_body_val; diff --git a/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn b/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn index 7c3d51dad4..ebf1af3d2a 100644 --- a/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn +++ b/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn @@ -1,12 +1,12 @@ -- MULTIMEDIA-SYSTEM-CONTROL.asn -- -- Taken from ITU ASN.1 database --- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h245/2005v12/MULTIMEDIA-SYSTEM-CONTROL.asn +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h245/2006v13/MULTIMEDIA-SYSTEM-CONTROL.asn -- -- $Id$ -- --- Module MULTIMEDIA-SYSTEM-CONTROL (H.245:10/2005) +-- Module MULTIMEDIA-SYSTEM-CONTROL (H.245:05/2006) MULTIMEDIA-SYSTEM-CONTROL DEFINITIONS AUTOMATIC TAGS ::= BEGIN @@ -195,7 +195,7 @@ TerminalCapabilitySet ::= SEQUENCE { protocolIdentifier OBJECT IDENTIFIER, -- shall be set to the value -- {itu-t (0) recommendation (0) h (8) 245 - -- version (0) 12} + -- version (0) 13} multiplexCapability MultiplexCapability OPTIONAL, capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL, capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL, @@ -296,7 +296,7 @@ Capability ::= CHOICE { H235SecurityCapability ::= SEQUENCE { encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity, mediaCapability CapabilityTableEntryNumber, - -- NOTE ? The mediaCapability shall refer to Capability Table Entries + -- NOTE – The mediaCapability shall refer to Capability Table Entries -- that do contain, directly or indirectly, one or more transmit, -- receive, or receiveAndTransmit AudioCapability, VideoCapability, -- DataApplicationCapability, or similar capabilities indicated by a @@ -509,13 +509,71 @@ ATMParameters ::= SEQUENCE { ... } -QOSCapability ::= SEQUENCE { +ServicePriorityValue ::= SEQUENCE { + nonStandardParameter NonStandardParameter OPTIONAL, + ... +} + +ServicePriority ::= SEQUENCE { + nonStandardData NonStandardParameter OPTIONAL, + servicePrioritySignalled BOOLEAN, + servicePriorityValue ServicePriorityValue OPTIONAL, + ... +} + +AuthorizationParameters ::= SEQUENCE { nonStandardData NonStandardParameter OPTIONAL, - rsvpParameters RSVPParameters OPTIONAL, - atmParameters ATMParameters OPTIONAL, ... } +QOSType ::= CHOICE {desired NULL, + required NULL, + ... +} + +QOSClass ::= CHOICE { + class0 NULL, + class1 NULL, + class2 NULL, + class3 NULL, + class4 NULL, + class5 NULL, + ... +} + +QOSDescriptor ::= SEQUENCE { + nonStandardData NonStandardParameter OPTIONAL, + qosType QOSType, + qosClass QOSClass, + ... +} + +GenericTransportParameters ::= SEQUENCE { + nonStandardData NonStandardParameter OPTIONAL, + averageRate INTEGER(1..4294967295) OPTIONAL, + -- average bandwidth bytes/sec + burst INTEGER(1..4294967295) OPTIONAL, + -- size in bytes + peakRate INTEGER(1..4294967295) OPTIONAL, + -- peak bandwidth bytes/sec + maxPktSize INTEGER(1..4294967295) OPTIONAL, + -- size in bytes + ... +} + +QOSCapability ::= SEQUENCE { + nonStandardData NonStandardParameter OPTIONAL, + rsvpParameters RSVPParameters OPTIONAL, + atmParameters ATMParameters OPTIONAL, + ..., + localQoS BOOLEAN OPTIONAL, + genericTransportParameters GenericTransportParameters OPTIONAL, + servicePriority ServicePriority OPTIONAL, + authorizationParameter AuthorizationParameters OPTIONAL, + qosDescriptor QOSDescriptor OPTIONAL, + dscpValue INTEGER(0..63) OPTIONAL +} + MediaTransportType ::= CHOICE { ip-UDP NULL, ip-TCP NULL, @@ -1090,7 +1148,7 @@ T38FaxProfile ::= SEQUENCE { ..., version INTEGER(0..255), -- Version 0, the default, refers to - -- T.38 (1998) + -- T.38 (2005) t38FaxRateManagement T38FaxRateManagement, -- The default Data Rate Management is -- determined by the choice of @@ -1174,7 +1232,7 @@ UserInputCapability ::= CHOICE { encryptedGeneralString NULL, -- encrypted general string in -- extendedAlphanumeric.encryptedalphanumeric - secureDTMF NULL, -- secure DTMF using encryptedSignalType + secureDTMF NULL, -- secure DTMF using encryptedSignalType genericUserInputCapability GenericCapability } @@ -1216,7 +1274,7 @@ CapabilityIdentifier ::= CHOICE { ... } --- NOTE ? The ranges of parameter values have been selected to ensure that the +-- NOTE – The ranges of parameter values have been selected to ensure that the -- GenericParameter preamble, standard part of ParameterIdentifier and the -- encoding of that choice, and the preamble of ParameterValue to fit into -- 2 octets. @@ -1305,7 +1363,9 @@ AudioToneCapability ::= SEQUENCE {dynamicRTPPayloadType INTEGER(96..127), -- The following definitions are as above but without a Payload Type field. NoPTAudioTelephonyEventCapability ::= SEQUENCE { - audioTelephoneEvent GeneralString, -- As per <list of values> in 3.9/RFC 2833 + audioTelephoneEvent GeneralString, -- As per <list of values> + + -- in 3.9/RFC 2833 ... } @@ -1342,8 +1402,7 @@ FECCapability ::= SEQUENCE { rfc2733Format CHOICE {rfc2733rfc2198 MaxRedundancy, -- RFC2198 -- rfc2733sameport MaxRedundancy, -- separate packet, same port-- - rfc2733diffport MaxRedundancy - } -- separate packet and port -- OPTIONAL, + rfc2733diffport MaxRedundancy} OPTIONAL, -- separate packet and port ... } @@ -1404,9 +1463,8 @@ OpenLogicalChannel ::= SEQUENCE { -- for Open responder to establish the stack encryptionSync EncryptionSync OPTIONAL, genericInformation SEQUENCE OF GenericInformation OPTIONAL -} +} -- generic information associated --- generic information associated -- with the message LogicalChannelNumber ::= INTEGER(1..65535) @@ -1680,7 +1738,7 @@ MultiplePayloadStreamElement ::= SEQUENCE { ... } -DepFECData ::= CHOICE -- Deprecated, do not use +DepFECData ::= CHOICE -- Deprecated, do not use { rfc2733 SEQUENCE {mode @@ -1765,7 +1823,7 @@ MulticastAddress ::= CHOICE { EncryptionSync ::= SEQUENCE - -- used to supply new key and synchronization point + -- used to supply new key and synchronization point { nonStandard NonStandardParameter OPTIONAL, synchFlag INTEGER(0..255), -- may need to be larger @@ -1773,7 +1831,7 @@ EncryptionSync ::= -- for H.324, etc. -- shall be the Dynamic -- Payload# for H.323 - h235Key OCTET STRING(SIZE (1..65535)), -- H.235 + h235Key OCTET STRING(SIZE (1..65535)), -- H.235.0 -- encoded value escrowentry SEQUENCE SIZE (1..256) OF EscrowData OPTIONAL, @@ -1840,17 +1898,15 @@ OpenLogicalChannelReject ::= SEQUENCE { securityDenied NULL}, ..., genericInformation SEQUENCE OF GenericInformation OPTIONAL -} +} -- generic information associated --- generic information associated -- with the message OpenLogicalChannelConfirm ::= SEQUENCE { forwardLogicalChannelNumber LogicalChannelNumber, ..., genericInformation SEQUENCE OF GenericInformation OPTIONAL -} +} -- generic information associated --- generic information associated -- with the message H2250LogicalChannelAckParameters ::= SEQUENCE { nonStandard SEQUENCE OF NonStandardParameter OPTIONAL, @@ -1936,7 +1992,7 @@ MultiplexElement ::= SEQUENCE { }, repeatCount CHOICE {finite INTEGER(1..65535), -- repeats of type-- - untilClosingFlag -- used for last element -- NULL} + untilClosingFlag NULL} -- used for last element } MultiplexTableEntryNumber ::= INTEGER(1..15) @@ -2106,7 +2162,7 @@ MultiplePayloadStreamElementMode ::= SEQUENCE {type ModeElementType, ... } -DepFECMode ::= CHOICE -- deprecated, do not use +DepFECMode ::= CHOICE -- deprecated, do not use { rfc2733Mode SEQUENCE {mode @@ -2133,9 +2189,8 @@ FECMode ::= SEQUENCE { -- identifies encoding scheme rfc2733Format CHOICE {rfc2733rfc2198 MaxRedundancy, -- RFC2198 redundancy-- - rfc2733sameport MaxRedundancy, - -- separate packet, same port - rfc2733diffport -- separate packet and port -- MaxRedundancy + rfc2733sameport MaxRedundancy, -- separate packet, same port-- + rfc2733diffport MaxRedundancy -- separate packet and port } OPTIONAL, ... } @@ -2149,8 +2204,8 @@ H223ModeParameters ::= SEQUENCE { al2WithSequenceNumbers NULL, al3 SEQUENCE {controlFieldOctets INTEGER(0..2), - sendBufferSize - -- units octets -- INTEGER(0..16777215)}, + sendBufferSize INTEGER(0..16777215) -- units octets + }, ..., al1M H223AL1MParameters, al2M H223AL2MParameters, @@ -2550,36 +2605,33 @@ ConferenceResponse ::= CHOICE { terminalID TerminalID, ...}, terminalIDResponse - SEQUENCE-- response to TCS2 or TCI -- {-- same as IIS --terminalLabel - TerminalLabel, -- (term->MC)-- - terminalID - TerminalID, - ...}, + SEQUENCE-- response to TCS2 or TCI-- {-- same as IIS--terminalLabel + TerminalLabel, -- (term->MC)-- + terminalID + TerminalID, + ...}, conferenceIDResponse - SEQUENCE-- response to TCS3 -- {-- same as IIS --terminalLabel - TerminalLabel, -- (term->MC)-- - conferenceID - ConferenceID, - ...}, + SEQUENCE-- response to TCS3-- {-- same as IIS--terminalLabel TerminalLabel, -- (term->MC)-- + conferenceID ConferenceID, + ...}, passwordResponse - SEQUENCE-- response to TCS1 -- {-- same as IIS --terminalLabel - TerminalLabel, -- (term->MC)-- - password Password, - ...}, + SEQUENCE-- response to TCS1-- {-- same as IIS--terminalLabel TerminalLabel, -- (term->MC)-- + password Password, + ...}, terminalListResponse SET SIZE (1..256) OF TerminalLabel, videoCommandReject NULL, -- same as H.230 VCR terminalDropReject NULL, -- same as H.230 CIR makeMeChairResponse - CHOICE-- same as H.230 CCR -- {grantedChairToken NULL, -- same as H.230 CIT-- - deniedChairToken NULL, -- same as H.230 CCR-- - ...}, + CHOICE-- same as H.230 CCR-- {grantedChairToken NULL, -- same as H.230 CIT-- + deniedChairToken NULL, -- same as H.230 CCR-- + ...}, ..., extensionAddressResponse - SEQUENCE-- response to TCS4 -- {extensionAddress TerminalID, -- same as IIS (term->GW)-- - ...}, + SEQUENCE-- response to TCS4-- {extensionAddress TerminalID, -- same as IIS (term->GW)-- + ...}, chairTokenOwnerResponse SEQUENCE-- response to TCA (same as TIR) -- - -- sent by MC only + -- sent by MC only {terminalLabel TerminalLabel, terminalID TerminalID, ...}, @@ -2728,8 +2780,8 @@ DialingInformationNetworkType ::= CHOICE { } ConnectionIdentifier ::= SEQUENCE { - channelTag INTEGER(0..4294967295), -- from H.MULTILINK - sequenceNumber INTEGER(0..4294967295), -- from H.MULTILINK + channelTag INTEGER(0..4294967295), -- from H.226 + sequenceNumber INTEGER(0..4294967295), -- from H.226 ... } @@ -2835,9 +2887,9 @@ EndSessionCommand ::= CHOICE { v140 NULL, terminalOnHold NULL, ...}, - genericInformation - -- generic information associated with the message -- SEQUENCE OF - GenericInformation + genericInformation SEQUENCE OF GenericInformation + -- generic information associated + -- with the message } -- ============================================================================= @@ -2924,14 +2976,14 @@ MiscellaneousCommand ::= SEQUENCE { ...}, recoveryReferencePicture SEQUENCE OF PictureReference, encryptionUpdateCommand - SEQUENCE-- for ack'ed key update in H.235V3 -- {encryptionSync - - EncryptionSync, - multiplePayloadStream - - MultiplePayloadStream - OPTIONAL, - ...}, + SEQUENCE-- for ack'ed key update in H.235V3-- {encryptionSync + + EncryptionSync, + multiplePayloadStream + + MultiplePayloadStream + OPTIONAL, + ...}, encryptionUpdateAck SEQUENCE {synchFlag INTEGER(0..255), ...}}, @@ -2940,8 +2992,10 @@ MiscellaneousCommand ::= SEQUENCE { } KeyProtectionMethod ::= - SEQUENCE -- specify how the new key is to be protected - { + SEQUENCE -- specify how the new + + -- key is to be protected + { secureChannel BOOLEAN, sharedSecret BOOLEAN, certProtectedKey BOOLEAN, @@ -3241,8 +3295,8 @@ IV16 ::= OCTET STRING(SIZE (16)) -- initial value for -- 128-bit block ciphers Params ::= SEQUENCE { - iv8 IV8 OPTIONAL, -- 8 octet initialization vector - iv16 IV16 OPTIONAL, -- 16 octet initialization vector + iv8 IV8 OPTIONAL, -- 8-octet initialization vector + iv16 IV16 OPTIONAL, -- 16-octet initialization vector iv OCTET STRING OPTIONAL, -- arbitrary length -- initialization vector @@ -3303,11 +3357,10 @@ UserInputIndication ::= CHOICE { paramS Params OPTIONAL, -- any "runtime" parameters-- encrypted OCTET STRING, -- basic string encrypted-- ...}, - genericInformation - -- generic information associated with the message -- SEQUENCE OF - GenericInformation -} + genericInformation SEQUENCE OF GenericInformation +} -- generic information associated +-- with the message -- ============================================================================= -- Indication Message: Flow Control -- ============================================================================= diff --git a/asn1/h245/h245-exp.cnf b/asn1/h245/h245-exp.cnf index 4bfdc3cd28..b4f22f844b 100644 --- a/asn1/h245/h245-exp.cnf +++ b/asn1/h245/h245-exp.cnf @@ -8,6 +8,7 @@ MULTIMEDIA-SYSTEM-CONTROL h245 #.END #.TYPE_ATTR +QOSCapability TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 DataProtocolCapability TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(DataProtocolCapability_vals) BITMASK = 0 T38FaxProfile TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 OpenLogicalChannel TYPE = FT_NONE DISPLAY = BASE_NONE STRINGS = NULL BITMASK = 0 diff --git a/asn1/h245/h245.cnf b/asn1/h245/h245.cnf index 663186c2a3..6511bd720c 100644 --- a/asn1/h245/h245.cnf +++ b/asn1/h245/h245.cnf @@ -7,6 +7,7 @@ T38FaxProfile DataProtocolCapability NO_PROT_PREFIX OpenLogicalChannel +QOSCapability #.PDU OpenLogicalChannel diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c index 4221ef7fcf..f669ee1b65 100644 --- a/epan/dissectors/packet-h225.c +++ b/epan/dissectors/packet-h225.c @@ -178,7 +178,6 @@ static int hf_h225_capacity = -1; /* CallCapacity */ static int hf_h225_featureSet = -1; /* FeatureSet */ static int hf_h225_conferenceID = -1; /* ConferenceIdentifier */ static int hf_h225_language = -1; /* Language */ -static int hf_h225_language_item = -1; /* IA5String_SIZE_1_32 */ static int hf_h225_connectedAddress = -1; /* SEQUENCE_OF_AliasAddress */ static int hf_h225_connectedAddress_item = -1; /* AliasAddress */ static int hf_h225_circuitInfo = -1; /* CircuitInfo */ @@ -241,6 +240,7 @@ static int hf_h225_connectionParameters = -1; /* T_connectionParameters */ static int hf_h225_connectionType = -1; /* ScnConnectionType */ static int hf_h225_numberOfScnConnections = -1; /* INTEGER_0_65535 */ static int hf_h225_connectionAggregation = -1; /* ScnConnectionAggregation */ +static int hf_h225_Language_item = -1; /* IA5String_SIZE_1_32 */ static int hf_h225_symmetricOperationRequired = -1; /* NULL */ static int hf_h225_desiredProtocols = -1; /* SEQUENCE_OF_SupportedProtocols */ static int hf_h225_desiredProtocols_item = -1; /* SupportedProtocols */ @@ -375,6 +375,7 @@ static int hf_h225_transportID = -1; /* TransportAddress */ static int hf_h225_email_ID = -1; /* IA5String_SIZE_1_512 */ static int hf_h225_partyNumber = -1; /* PartyNumber */ static int hf_h225_mobileUIM = -1; /* MobileUIM */ +static int hf_h225_isupNumber = -1; /* IsupNumber */ static int hf_h225_wildcard = -1; /* AliasAddress */ static int hf_h225_range = -1; /* T_range */ static int hf_h225_startOfRange = -1; /* PartyNumber */ @@ -417,7 +418,17 @@ static int hf_h225_tmsi = -1; /* OCTET_STRING_SIZE_1_4 */ static int hf_h225_imei = -1; /* TBCD_STRING */ static int hf_h225_hplmn = -1; /* TBCD_STRING */ static int hf_h225_vplmn = -1; /* TBCD_STRING */ -static int hf_h225_address = -1; /* AliasAddress */ +static int hf_h225_isupE164Number = -1; /* IsupPublicPartyNumber */ +static int hf_h225_isupDataPartyNumber = -1; /* IsupDigits */ +static int hf_h225_isupTelexPartyNumber = -1; /* IsupDigits */ +static int hf_h225_isupPrivateNumber = -1; /* IsupPrivatePartyNumber */ +static int hf_h225_isupNationalStandardPartyNumber = -1; /* IsupDigits */ +static int hf_h225_natureOfAddress = -1; /* NatureOfAddress */ +static int hf_h225_address = -1; /* IsupDigits */ +static int hf_h225_routingNumberNationalFormat = -1; /* NULL */ +static int hf_h225_routingNumberNetworkSpecificFormat = -1; /* NULL */ +static int hf_h225_routingNumberWithCalledDirectoryNumber = -1; /* NULL */ +static int hf_h225_extAliasAddress = -1; /* AliasAddress */ static int hf_h225_aliasAddress = -1; /* SEQUENCE_OF_AliasAddress */ static int hf_h225_aliasAddress_item = -1; /* AliasAddress */ static int hf_h225_callSignalAddress = -1; /* SEQUENCE_OF_TransportAddress */ @@ -618,6 +629,8 @@ static int hf_h225_sessionId = -1; /* INTEGER_1_255 */ static int hf_h225_associatedSessionIds = -1; /* T_associatedSessionIds */ static int hf_h225_associatedSessionIds_item = -1; /* INTEGER_1_255 */ static int hf_h225_multicast_flg = -1; /* NULL */ +static int hf_h225_gatekeeperBased = -1; /* NULL */ +static int hf_h225_endpointBased = -1; /* NULL */ static int hf_h225_gatekeeperRequest = -1; /* GatekeeperRequest */ static int hf_h225_gatekeeperConfirm = -1; /* GatekeeperConfirm */ static int hf_h225_gatekeeperReject = -1; /* GatekeeperReject */ @@ -666,8 +679,11 @@ static int hf_h225_integrity = -1; /* SEQUENCE_OF_IntegrityMechan static int hf_h225_integrity_item = -1; /* IntegrityMechanism */ static int hf_h225_integrityCheckValue = -1; /* ICV */ static int hf_h225_supportsAltGK = -1; /* NULL */ +static int hf_h225_supportsAssignedGK = -1; /* BOOLEAN */ +static int hf_h225_assignedGatekeeper = -1; /* AlternateGK */ static int hf_h225_gatekeeperConfirm_rasAddress = -1; /* TransportAddress */ static int hf_h225_authenticationMode = -1; /* AuthenticationMechanism */ +static int hf_h225_rehomingModel = -1; /* RehomingModel */ static int hf_h225_gatekeeperRejectReason = -1; /* GatekeeperRejectReason */ static int hf_h225_altGKInfo = -1; /* AltGKInfo */ static int hf_h225_resourceUnavailable = -1; /* NULL */ @@ -692,6 +708,7 @@ static int hf_h225_callCreditCapability = -1; /* CallCreditCapability */ static int hf_h225_capacityReportingCapability = -1; /* CapacityReportingCapability */ static int hf_h225_restart = -1; /* NULL */ static int hf_h225_supportsACFSequences = -1; /* NULL */ +static int hf_h225_transportQOS = -1; /* TransportQOS */ static int hf_h225_willRespondToIRR = -1; /* BOOLEAN */ static int hf_h225_preGrantedARQ = -1; /* T_preGrantedARQ */ static int hf_h225_makeCall = -1; /* BOOLEAN */ @@ -720,6 +737,7 @@ static int hf_h225_fullRegistrationRequired = -1; /* NULL */ static int hf_h225_additiveRegistrationNotSupported = -1; /* NULL */ static int hf_h225_invalidTerminalAliases = -1; /* T_invalidTerminalAliases */ static int hf_h225_reg_securityError = -1; /* SecurityErrors */ +static int hf_h225_registerWithAssignedGK = -1; /* NULL */ static int hf_h225_unregRequestReason = -1; /* UnregRequestReason */ static int hf_h225_endpointAliasPattern = -1; /* SEQUENCE_OF_AddressPattern */ static int hf_h225_endpointAliasPattern_item = -1; /* AddressPattern */ @@ -744,7 +762,6 @@ static int hf_h225_srcAlternatives = -1; /* SEQUENCE_OF_Endpoint */ static int hf_h225_srcAlternatives_item = -1; /* Endpoint */ static int hf_h225_destAlternatives = -1; /* SEQUENCE_OF_Endpoint */ static int hf_h225_destAlternatives_item = -1; /* Endpoint */ -static int hf_h225_transportQOS = -1; /* TransportQOS */ static int hf_h225_gatewayDataRate = -1; /* DataRate */ static int hf_h225_desiredTunnelledProtocol = -1; /* TunnelledProtocol */ static int hf_h225_canMapSrcAlias = -1; /* BOOLEAN */ @@ -757,6 +774,8 @@ static int hf_h225_gatekeeperRouted = -1; /* NULL */ static int hf_h225_endpointControlled = -1; /* NULL */ static int hf_h225_gatekeeperControlled = -1; /* NULL */ static int hf_h225_noControl = -1; /* NULL */ +static int hf_h225_qOSCapabilities = -1; /* SEQUENCE_SIZE_1_256_OF_QOSCapability */ +static int hf_h225_qOSCapabilities_item = -1; /* QOSCapability */ static int hf_h225_irrFrequency = -1; /* INTEGER_1_65535 */ static int hf_h225_destinationType = -1; /* EndpointType */ static int hf_h225_uuiesRequested = -1; /* UUIEsRequested */ @@ -886,7 +905,6 @@ static gint ett_h225_SEQUENCE_OF_AliasAddress = -1; static gint ett_h225_SEQUENCE_OF_ServiceControlSession = -1; static gint ett_h225_CallProceeding_UUIE = -1; static gint ett_h225_Connect_UUIE = -1; -static gint ett_h225_Language = -1; static gint ett_h225_Information_UUIE = -1; static gint ett_h225_ReleaseComplete_UUIE = -1; static gint ett_h225_ReleaseCompleteReason = -1; @@ -896,6 +914,7 @@ static gint ett_h225_T_conferenceGoal = -1; static gint ett_h225_SEQUENCE_OF_H245Security = -1; static gint ett_h225_FastStart = -1; static gint ett_h225_T_connectionParameters = -1; +static gint ett_h225_Language = -1; static gint ett_h225_SEQUENCE_OF_SupportedProtocols = -1; static gint ett_h225_SEQUENCE_OF_FeatureDescriptor = -1; static gint ett_h225_ParallelH245Control = -1; @@ -965,6 +984,10 @@ static gint ett_h225_MobileUIM = -1; static gint ett_h225_ANSI_41_UIM = -1; static gint ett_h225_T_system_id = -1; static gint ett_h225_GSM_UIM = -1; +static gint ett_h225_IsupNumber = -1; +static gint ett_h225_IsupPublicPartyNumber = -1; +static gint ett_h225_IsupPrivatePartyNumber = -1; +static gint ett_h225_NatureOfAddress = -1; static gint ett_h225_ExtendedAliasAddress = -1; static gint ett_h225_Endpoint = -1; static gint ett_h225_SEQUENCE_OF_TransportAddress = -1; @@ -1029,6 +1052,7 @@ static gint ett_h225_FeatureSet = -1; static gint ett_h225_TransportChannelInfo = -1; static gint ett_h225_RTPSession = -1; static gint ett_h225_T_associatedSessionIds = -1; +static gint ett_h225_RehomingModel = -1; static gint ett_h225_RasMessage = -1; static gint ett_h225_SEQUENCE_OF_AdmissionConfirm = -1; static gint ett_h225_GatekeeperRequest = -1; @@ -1058,6 +1082,7 @@ static gint ett_h225_DestinationInfo = -1; static gint ett_h225_CallType = -1; static gint ett_h225_CallModel = -1; static gint ett_h225_TransportQOS = -1; +static gint ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability = -1; static gint ett_h225_AdmissionConfirm = -1; static gint ett_h225_UUIEsRequested = -1; static gint ett_h225_AdmissionReject = -1; @@ -1150,7 +1175,7 @@ dissect_h225_ProtocolIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, static int dissect_h225_T_h245Ip(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 262 "h225.cnf" +#line 276 "h225.cnf" tvbuff_t *value_tvb; ipv4_address = 0; @@ -1390,7 +1415,7 @@ static const per_sequence_t H221NonStandard_sequence[] = { static int dissect_h225_H221NonStandard(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 562 "h225.cnf" +#line 576 "h225.cnf" t35CountryCode = 0; t35Extension = 0; manufacturerCode = 0; @@ -1398,7 +1423,7 @@ dissect_h225_H221NonStandard(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, pr offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_H221NonStandard, H221NonStandard_sequence); -#line 566 "h225.cnf" +#line 580 "h225.cnf" h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); @@ -1420,7 +1445,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = { static int dissect_h225_NonStandardIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 543 "h225.cnf" +#line 557 "h225.cnf" guint32 value; nsiOID = ""; @@ -1449,7 +1474,7 @@ dissect_h225_NonStandardIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ static int dissect_h225_T_nsp_data(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 577 "h225.cnf" +#line 591 "h225.cnf" tvbuff_t *next_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -1472,7 +1497,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = { int dissect_h225_NonStandardParameter(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 575 "h225.cnf" +#line 589 "h225.cnf" nsp_handle = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -1506,7 +1531,7 @@ static const per_choice_t H245TransportAddress_choice[] = { static int dissect_h225_H245TransportAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 372 "h225.cnf" +#line 386 "h225.cnf" ipv4_address=0; ipv4_port=0; @@ -1515,7 +1540,7 @@ dissect_h225_H245TransportAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U ett_h225_H245TransportAddress, H245TransportAddress_choice, NULL); -#line 378 "h225.cnf" +#line 392 "h225.cnf" /* we need this info for TAPing */ h225_pi->is_h245 = TRUE; h225_pi->h245_address = ipv4_address; @@ -1544,7 +1569,7 @@ dissect_h225_H245TransportAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U static int dissect_h225_DialedDigits(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 244 "h225.cnf" +#line 258 "h225.cnf" tvbuff_t *value_tvb = NULL; guint len = 0; @@ -1977,6 +2002,109 @@ dissect_h225_MobileUIM(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tr } +static const value_string h225_NatureOfAddress_vals[] = { + { 0, "unknown" }, + { 1, "subscriberNumber" }, + { 2, "nationalNumber" }, + { 3, "internationalNumber" }, + { 4, "networkSpecificNumber" }, + { 5, "routingNumberNationalFormat" }, + { 6, "routingNumberNetworkSpecificFormat" }, + { 7, "routingNumberWithCalledDirectoryNumber" }, + { 0, NULL } +}; + +static const per_choice_t NatureOfAddress_choice[] = { + { 0, &hf_h225_unknown , ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 1, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 3, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 4, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 5, &hf_h225_routingNumberNationalFormat, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 6, &hf_h225_routingNumberNetworkSpecificFormat, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 7, &hf_h225_routingNumberWithCalledDirectoryNumber, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h225_NatureOfAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h225_NatureOfAddress, NatureOfAddress_choice, + NULL); + + return offset; +} + + + +static int +dissect_h225_IsupDigits(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index, + 1, 128, "0123456789ABCDE", strlen("0123456789ABCDE"), + NULL); + + return offset; +} + + +static const per_sequence_t IsupPublicPartyNumber_sequence[] = { + { &hf_h225_natureOfAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_NatureOfAddress }, + { &hf_h225_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h225_IsupPublicPartyNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h225_IsupPublicPartyNumber, IsupPublicPartyNumber_sequence); + + return offset; +} + + +static const per_sequence_t IsupPrivatePartyNumber_sequence[] = { + { &hf_h225_privateTypeOfNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber }, + { &hf_h225_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h225_IsupPrivatePartyNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h225_IsupPrivatePartyNumber, IsupPrivatePartyNumber_sequence); + + return offset; +} + + +static const value_string h225_IsupNumber_vals[] = { + { 0, "e164Number" }, + { 1, "dataPartyNumber" }, + { 2, "telexPartyNumber" }, + { 3, "privateNumber" }, + { 4, "nationalStandardPartyNumber" }, + { 0, NULL } +}; + +static const per_choice_t IsupNumber_choice[] = { + { 0, &hf_h225_isupE164Number , ASN1_EXTENSION_ROOT , dissect_h225_IsupPublicPartyNumber }, + { 1, &hf_h225_isupDataPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupDigits }, + { 2, &hf_h225_isupTelexPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupDigits }, + { 3, &hf_h225_isupPrivateNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupPrivatePartyNumber }, + { 4, &hf_h225_isupNationalStandardPartyNumber, ASN1_EXTENSION_ROOT , dissect_h225_IsupDigits }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h225_IsupNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h225_IsupNumber, IsupNumber_choice, + NULL); + + return offset; +} + + const value_string AliasAddress_vals[] = { { 0, "dialedDigits" }, { 1, "h323-ID" }, @@ -1985,6 +2113,7 @@ const value_string AliasAddress_vals[] = { { 4, "email-ID" }, { 5, "partyNumber" }, { 6, "mobileUIM" }, + { 7, "isupNumber" }, { 0, NULL } }; @@ -1996,6 +2125,7 @@ static const per_choice_t AliasAddress_choice[] = { { 4, &hf_h225_email_ID , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 }, { 5, &hf_h225_partyNumber , ASN1_NOT_EXTENSION_ROOT, dissect_h225_PartyNumber }, { 6, &hf_h225_mobileUIM , ASN1_NOT_EXTENSION_ROOT, dissect_h225_MobileUIM }, + { 7, &hf_h225_isupNumber , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IsupNumber }, { 0, NULL, 0, NULL } }; @@ -2509,13 +2639,13 @@ static const per_sequence_t TunnelledProtocol_sequence[] = { static int dissect_h225_TunnelledProtocol(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 520 "h225.cnf" +#line 534 "h225.cnf" tpOID = ""; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_TunnelledProtocol, TunnelledProtocol_sequence); -#line 522 "h225.cnf" +#line 536 "h225.cnf" tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID); return offset; @@ -2693,7 +2823,7 @@ dissect_h225_CallType(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tre static int dissect_h225_T_guid(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 499 "h225.cnf" +#line 513 "h225.cnf" tvbuff_t *guid_tvb; offset = dissect_per_octet_string(tvb,offset,actx,tree,hf_index,GUID_LEN,GUID_LEN,&guid_tvb); @@ -2903,7 +3033,7 @@ dissect_h225_SEQUENCE_OF_CryptoH323Token(tvbuff_t *tvb, int offset, asn1_ctx_t * static int dissect_h225_FastStart_item(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 211 "h225.cnf" +#line 225 "h225.cnf" tvbuff_t *value_tvb = NULL; char codec_str[50]; @@ -3037,7 +3167,7 @@ dissect_h225_IA5String_SIZE_1_32(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ static const per_sequence_t Language_sequence_of[1] = { - { &hf_h225_language_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_32 }, + { &hf_h225_Language_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_32 }, }; static int @@ -3706,7 +3836,7 @@ dissect_h225_SEQUENCE_OF_FeatureDescriptor(tvbuff_t *tvb, int offset, asn1_ctx_t static int dissect_h225_ParallelH245Control_item(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 273 "h225.cnf" +#line 287 "h225.cnf" tvbuff_t *h245_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -3733,7 +3863,7 @@ dissect_h225_ParallelH245Control(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ static const per_sequence_t ExtendedAliasAddress_sequence[] = { - { &hf_h225_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress }, + { &hf_h225_extAliasAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress }, { &hf_h225_presentationIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_PresentationIndicator }, { &hf_h225_screeningIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ScreeningIndicator }, { NULL, 0, 0, NULL } @@ -3817,13 +3947,13 @@ static const per_sequence_t Setup_UUIE_sequence[] = { static int dissect_h225_Setup_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 326 "h225.cnf" +#line 340 "h225.cnf" contains_faststart = FALSE; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Setup_UUIE, Setup_UUIE_sequence); -#line 330 "h225.cnf" +#line 344 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_SETUP; if (contains_faststart == TRUE ) @@ -3873,7 +4003,7 @@ dissect_h225_CallProceeding_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence); -#line 339 "h225.cnf" +#line 353 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_CALL_PROCEDING; if (contains_faststart == TRUE ) @@ -3913,7 +4043,7 @@ dissect_h225_Connect_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Connect_UUIE, Connect_UUIE_sequence); -#line 363 "h225.cnf" +#line 377 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_CONNECT; if (contains_faststart == TRUE ) @@ -3951,7 +4081,7 @@ dissect_h225_Alerting_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, prot offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Alerting_UUIE, Alerting_UUIE_sequence); -#line 348 "h225.cnf" +#line 362 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_ALERTING; if (contains_faststart == TRUE ) @@ -3979,7 +4109,7 @@ dissect_h225_Information_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, p offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Information_UUIE, Information_UUIE_sequence); -#line 297 "h225.cnf" +#line 311 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_INFORMATION; g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); @@ -4098,7 +4228,7 @@ static const per_choice_t ReleaseCompleteReason_choice[] = { static int dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 492 "h225.cnf" +#line 506 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -4132,7 +4262,7 @@ dissect_h225_ReleaseComplete_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence); -#line 357 "h225.cnf" +#line 371 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_RELEASE_COMPLET; g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); @@ -4173,7 +4303,7 @@ static const per_choice_t FacilityReason_choice[] = { static int dissect_h225_FacilityReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 416 "h225.cnf" +#line 430 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -4246,7 +4376,7 @@ dissect_h225_Facility_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, prot offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Facility_UUIE, Facility_UUIE_sequence); -#line 318 "h225.cnf" +#line 332 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_FACILITY; g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); @@ -4275,7 +4405,7 @@ dissect_h225_Progress_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, prot offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Progress_UUIE, Progress_UUIE_sequence); -#line 303 "h225.cnf" +#line 317 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_PROGRESS; if (contains_faststart == TRUE ) @@ -4292,7 +4422,7 @@ static int dissect_h225_T_empty_flg(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_null(tvb, offset, actx, tree, hf_index); -#line 287 "h225.cnf" +#line 301 "h225.cnf" h225_pi->cs_type = H225_EMPTY; return offset; @@ -4312,7 +4442,7 @@ dissect_h225_Status_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_Status_UUIE, Status_UUIE_sequence); -#line 291 "h225.cnf" +#line 305 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_STATUS; g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); @@ -4351,7 +4481,7 @@ dissect_h225_SetupAcknowledge_UUIE(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence); -#line 312 "h225.cnf" +#line 326 "h225.cnf" /* Add to packet info */ h225_pi->cs_type = H225_SETUP_ACK; g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); @@ -4413,7 +4543,7 @@ static const per_choice_t T_h323_message_body_choice[] = { static int dissect_h225_T_h323_message_body(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 184 "h225.cnf" +#line 198 "h225.cnf" guint32 message_body_val; contains_faststart = FALSE; @@ -4450,7 +4580,7 @@ dissect_h225_T_h323_message_body(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ static int dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 508 "h225.cnf" +#line 522 "h225.cnf" tvbuff_t *h4501_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -4490,7 +4620,7 @@ dissect_h225_T_h245Tunneling(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, pr static int dissect_h225_H245Control_item(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 280 "h225.cnf" +#line 294 "h225.cnf" tvbuff_t *h245_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -4547,7 +4677,7 @@ dissect_h225_CallLinkage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_ static int dissect_h225_T_messageContent_item(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 530 "h225.cnf" +#line 544 "h225.cnf" tvbuff_t *next_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -4583,7 +4713,7 @@ static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = { static int dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 528 "h225.cnf" +#line 542 "h225.cnf" tp_handle = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -5277,6 +5407,28 @@ dissect_h225_RTPSession(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_t } +static const value_string h225_RehomingModel_vals[] = { + { 0, "gatekeeperBased" }, + { 1, "endpointBased" }, + { 0, NULL } +}; + +static const per_choice_t RehomingModel_choice[] = { + { 0, &hf_h225_gatekeeperBased, ASN1_NO_EXTENSIONS , dissect_h225_NULL }, + { 1, &hf_h225_endpointBased , ASN1_NO_EXTENSIONS , dissect_h225_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h225_RehomingModel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h225_RehomingModel, RehomingModel_choice, + NULL); + + return offset; +} + + static const per_sequence_t SEQUENCE_OF_Endpoint_sequence_of[1] = { { &hf_h225_alternateEndpoints_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_Endpoint }, }; @@ -5348,6 +5500,8 @@ static const per_sequence_t GatekeeperRequest_sequence[] = { { &hf_h225_supportsAltGK , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL }, { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -5375,6 +5529,8 @@ static const per_sequence_t GatekeeperConfirm_sequence[] = { { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV }, { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, + { &hf_h225_rehomingModel , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RehomingModel }, { NULL, 0, 0, NULL } }; @@ -5413,7 +5569,7 @@ static const per_choice_t GatekeeperRejectReason_choice[] = { static int dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 423 "h225.cnf" +#line 437 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -5477,6 +5633,46 @@ dissect_h225_SEQUENCE_OF_H248PackagesDescriptor(tvbuff_t *tvb, int offset, asn1_ } +static const per_sequence_t SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of[1] = { + { &hf_h225_qOSCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_QOSCapability }, +}; + +static int +dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability, SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of, + 1, 256); + + return offset; +} + + +static const value_string h225_TransportQOS_vals[] = { + { 0, "endpointControlled" }, + { 1, "gatekeeperControlled" }, + { 2, "noControl" }, + { 3, "qOSCapabilities" }, + { 0, NULL } +}; + +static const per_choice_t TransportQOS_choice[] = { + { 0, &hf_h225_endpointControlled, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 1, &hf_h225_gatekeeperControlled, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 2, &hf_h225_noControl , ASN1_EXTENSION_ROOT , dissect_h225_NULL }, + { 3, &hf_h225_qOSCapabilities, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h225_TransportQOS(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h225_TransportQOS, TransportQOS_choice, + NULL); + + return offset; +} + + static const per_sequence_t RegistrationRequest_sequence[] = { { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum }, { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier }, @@ -5511,6 +5707,10 @@ static const per_sequence_t RegistrationRequest_sequence[] = { { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, { &hf_h225_restart , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL }, { &hf_h225_supportsACFSequences, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL }, + { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, + { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS }, + { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language }, { NULL, 0, 0, NULL } }; @@ -5592,6 +5792,9 @@ static const per_sequence_t RegistrationConfirm_sequence[] = { { &hf_h225_capacityReportingSpec, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CapacityReportingSpecification }, { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, + { &hf_h225_rehomingModel , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RehomingModel }, + { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS }, { NULL, 0, 0, NULL } }; @@ -5639,6 +5842,7 @@ const value_string RegistrationRejectReason_vals[] = { { 15, "genericDataReason" }, { 16, "neededFeatureNotSupported" }, { 17, "securityError" }, + { 18, "registerWithAssignedGK" }, { 0, NULL } }; @@ -5661,12 +5865,13 @@ static const per_choice_t RegistrationRejectReason_choice[] = { { 15, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 16, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 17, &hf_h225_reg_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors }, + { 18, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 0, NULL, 0, NULL } }; static int dissect_h225_RegistrationRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 478 "h225.cnf" +#line 492 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -5692,6 +5897,7 @@ static const per_sequence_t RegistrationReject_sequence[] = { { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV }, { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -5711,6 +5917,7 @@ const value_string UnregRequestReason_vals[] = { { 3, "undefinedReason" }, { 4, "maintenance" }, { 5, "securityError" }, + { 6, "registerWithAssignedGK" }, { 0, NULL } }; @@ -5721,12 +5928,13 @@ static const per_choice_t UnregRequestReason_choice[] = { { 3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, { 4, &hf_h225_maintenance , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 5, &hf_h225_securityError , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 }, + { 6, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 0, NULL, 0, NULL } }; static int dissect_h225_UnregRequestReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 430 "h225.cnf" +#line 444 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -5756,6 +5964,7 @@ static const per_sequence_t UnregistrationRequest_sequence[] = { { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_SupportedPrefix }, { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AlternateGK }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -5775,6 +5984,7 @@ static const per_sequence_t UnregistrationConfirm_sequence[] = { { &hf_h225_cryptoTokens , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_CryptoH323Token }, { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -5809,7 +6019,7 @@ static const per_choice_t UnregRejectReason_choice[] = { static int dissect_h225_UnregRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 437 "h225.cnf" +#line 451 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -5869,7 +6079,7 @@ dissect_h225_CallModel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tr static int dissect_h225_DestinationInfo_item(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 239 "h225.cnf" +#line 253 "h225.cnf" h225_pi->is_destinationInfo = TRUE; @@ -5892,30 +6102,6 @@ dissect_h225_DestinationInfo(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, pr } -static const value_string h225_TransportQOS_vals[] = { - { 0, "endpointControlled" }, - { 1, "gatekeeperControlled" }, - { 2, "noControl" }, - { 0, NULL } -}; - -static const per_choice_t TransportQOS_choice[] = { - { 0, &hf_h225_endpointControlled, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, - { 1, &hf_h225_gatekeeperControlled, ASN1_EXTENSION_ROOT , dissect_h225_NULL }, - { 2, &hf_h225_noControl , ASN1_EXTENSION_ROOT , dissect_h225_NULL }, - { 0, NULL, 0, NULL } -}; - -static int -dissect_h225_TransportQOS(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { - offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h225_TransportQOS, TransportQOS_choice, - NULL); - - return offset; -} - - static const per_sequence_t AdmissionRequest_sequence[] = { { &hf_h225_requestSeqNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum }, { &hf_h225_callType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallType }, @@ -6019,6 +6205,7 @@ static const per_sequence_t AdmissionConfirm_sequence[] = { { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -6067,6 +6254,7 @@ const value_string AdmissionRejectReason_vals[] = { { 19, "securityDHmismatch" }, { 20, "noRouteToDestination" }, { 21, "unallocatedNumber" }, + { 22, "registerWithAssignedGK" }, { 0, NULL } }; @@ -6093,12 +6281,13 @@ static const per_choice_t AdmissionRejectReason_choice[] = { { 19, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 20, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 21, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, + { 22, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL }, { 0, NULL, 0, NULL } }; static int dissect_h225_AdmissionRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 464 "h225.cnf" +#line 478 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6124,6 +6313,7 @@ static const per_sequence_t AdmissionReject_sequence[] = { { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_ServiceControlSession }, { &hf_h225_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -6168,6 +6358,7 @@ static const per_sequence_t BandwidthRequest_sequence[] = { { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInformation }, { &hf_h225_bandwidthDetails, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_BandwidthDetails }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS }, { NULL, 0, 0, NULL } }; @@ -6189,6 +6380,7 @@ static const per_sequence_t BandwidthConfirm_sequence[] = { { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_ICV }, { &hf_h225_capacity , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CallCapacity }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_transportQOS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_TransportQOS }, { NULL, 0, 0, NULL } }; @@ -6227,7 +6419,7 @@ static const per_choice_t BandRejectReason_choice[] = { static int dissect_h225_BandRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 444 "h225.cnf" +#line 458 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6279,7 +6471,7 @@ static const per_choice_t DisengageReason_choice[] = { static int dissect_h225_DisengageReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 451 "h225.cnf" +#line 465 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6335,6 +6527,7 @@ static const per_sequence_t DisengageConfirm_sequence[] = { { &hf_h225_circuitInfo , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo }, { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_RasUsageInformation }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -6365,7 +6558,7 @@ static const per_choice_t DisengageRejectReason_choice[] = { static int dissect_h225_DisengageRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 457 "h225.cnf" +#line 471 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6422,6 +6615,7 @@ static const per_sequence_t LocationRequest_sequence[] = { { &hf_h225_bandWidth , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_BandWidth }, { &hf_h225_sourceEndpointInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_AliasAddress }, { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN }, + { &hf_h225_language , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_Language }, { NULL, 0, 0, NULL } }; @@ -6510,7 +6704,7 @@ static const per_choice_t LocationRejectReason_choice[] = { static int dissect_h225_LocationRejectReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 471 "h225.cnf" +#line 485 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6563,6 +6757,7 @@ static const per_sequence_t InfoRequest_sequence[] = { { &hf_h225_nextSegmentRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_INTEGER_0_65535 }, { &hf_h225_capacityInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_NULL }, { &hf_h225_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_SEQUENCE_OF_GenericData }, + { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AlternateGK }, { NULL, 0, 0, NULL } }; @@ -6880,7 +7075,7 @@ static const per_choice_t InfoRequestNakReason_choice[] = { static int dissect_h225_InfoRequestNakReason(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 485 "h225.cnf" +#line 499 "h225.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -7091,7 +7286,7 @@ static const per_choice_t RasMessage_choice[] = { int dissect_h225_RasMessage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 227 "h225.cnf" +#line 241 "h225.cnf" guint32 rasmessage_value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -7475,10 +7670,6 @@ void proto_register_h225(void) { { "language", "h225.language", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, - { &hf_h225_language_item, - { "Item", "h225.language_item", - FT_STRING, BASE_NONE, NULL, 0, - "", HFILL }}, { &hf_h225_connectedAddress, { "connectedAddress", "h225.connectedAddress", FT_UINT32, BASE_DEC, NULL, 0, @@ -7727,6 +7918,10 @@ void proto_register_h225(void) { { "connectionAggregation", "h225.connectionAggregation", FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionAggregation_vals), 0, "Setup-UUIE/connectionParameters/connectionAggregation", HFILL }}, + { &hf_h225_Language_item, + { "Item", "h225.Language_item", + FT_STRING, BASE_NONE, NULL, 0, + "Language/_item", HFILL }}, { &hf_h225_symmetricOperationRequired, { "symmetricOperationRequired", "h225.symmetricOperationRequired", FT_NONE, BASE_NONE, NULL, 0, @@ -8263,6 +8458,10 @@ void proto_register_h225(void) { { "mobileUIM", "h225.mobileUIM", FT_UINT32, BASE_DEC, VALS(h225_MobileUIM_vals), 0, "AliasAddress/mobileUIM", HFILL }}, + { &hf_h225_isupNumber, + { "isupNumber", "h225.isupNumber", + FT_UINT32, BASE_DEC, VALS(h225_IsupNumber_vals), 0, + "AliasAddress/isupNumber", HFILL }}, { &hf_h225_wildcard, { "wildcard", "h225.wildcard", FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0, @@ -8310,7 +8509,7 @@ void proto_register_h225(void) { { &hf_h225_privateTypeOfNumber, { "privateTypeOfNumber", "h225.privateTypeOfNumber", FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0, - "PrivatePartyNumber/privateTypeOfNumber", HFILL }}, + "", HFILL }}, { &hf_h225_privateNumberDigits, { "privateNumberDigits", "h225.privateNumberDigits", FT_STRING, BASE_NONE, NULL, 0, @@ -8318,19 +8517,19 @@ void proto_register_h225(void) { { &hf_h225_internationalNumber, { "internationalNumber", "h225.internationalNumber", FT_NONE, BASE_NONE, NULL, 0, - "PublicTypeOfNumber/internationalNumber", HFILL }}, + "", HFILL }}, { &hf_h225_nationalNumber, { "nationalNumber", "h225.nationalNumber", FT_NONE, BASE_NONE, NULL, 0, - "PublicTypeOfNumber/nationalNumber", HFILL }}, + "", HFILL }}, { &hf_h225_networkSpecificNumber, { "networkSpecificNumber", "h225.networkSpecificNumber", FT_NONE, BASE_NONE, NULL, 0, - "PublicTypeOfNumber/networkSpecificNumber", HFILL }}, + "", HFILL }}, { &hf_h225_subscriberNumber, { "subscriberNumber", "h225.subscriberNumber", FT_NONE, BASE_NONE, NULL, 0, - "PublicTypeOfNumber/subscriberNumber", HFILL }}, + "", HFILL }}, { &hf_h225_abbreviatedNumber, { "abbreviatedNumber", "h225.abbreviatedNumber", FT_NONE, BASE_NONE, NULL, 0, @@ -8431,8 +8630,48 @@ void proto_register_h225(void) { { "vplmn", "h225.vplmn", FT_STRING, BASE_NONE, NULL, 0, "GSM-UIM/vplmn", HFILL }}, + { &hf_h225_isupE164Number, + { "e164Number", "h225.e164Number", + FT_NONE, BASE_NONE, NULL, 0, + "IsupNumber/e164Number", HFILL }}, + { &hf_h225_isupDataPartyNumber, + { "dataPartyNumber", "h225.dataPartyNumber", + FT_STRING, BASE_NONE, NULL, 0, + "IsupNumber/dataPartyNumber", HFILL }}, + { &hf_h225_isupTelexPartyNumber, + { "telexPartyNumber", "h225.telexPartyNumber", + FT_STRING, BASE_NONE, NULL, 0, + "IsupNumber/telexPartyNumber", HFILL }}, + { &hf_h225_isupPrivateNumber, + { "privateNumber", "h225.privateNumber", + FT_NONE, BASE_NONE, NULL, 0, + "IsupNumber/privateNumber", HFILL }}, + { &hf_h225_isupNationalStandardPartyNumber, + { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber", + FT_STRING, BASE_NONE, NULL, 0, + "IsupNumber/nationalStandardPartyNumber", HFILL }}, + { &hf_h225_natureOfAddress, + { "natureOfAddress", "h225.natureOfAddress", + FT_UINT32, BASE_DEC, VALS(h225_NatureOfAddress_vals), 0, + "IsupPublicPartyNumber/natureOfAddress", HFILL }}, { &hf_h225_address, { "address", "h225.address", + FT_STRING, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_h225_routingNumberNationalFormat, + { "routingNumberNationalFormat", "h225.routingNumberNationalFormat", + FT_NONE, BASE_NONE, NULL, 0, + "NatureOfAddress/routingNumberNationalFormat", HFILL }}, + { &hf_h225_routingNumberNetworkSpecificFormat, + { "routingNumberNetworkSpecificFormat", "h225.routingNumberNetworkSpecificFormat", + FT_NONE, BASE_NONE, NULL, 0, + "NatureOfAddress/routingNumberNetworkSpecificFormat", HFILL }}, + { &hf_h225_routingNumberWithCalledDirectoryNumber, + { "routingNumberWithCalledDirectoryNumber", "h225.routingNumberWithCalledDirectoryNumber", + FT_NONE, BASE_NONE, NULL, 0, + "NatureOfAddress/routingNumberWithCalledDirectoryNumber", HFILL }}, + { &hf_h225_extAliasAddress, + { "address", "h225.address", FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0, "ExtendedAliasAddress/address", HFILL }}, { &hf_h225_aliasAddress, @@ -9235,6 +9474,14 @@ void proto_register_h225(void) { { "multicast", "h225.multicast", FT_NONE, BASE_NONE, NULL, 0, "RTPSession/multicast", HFILL }}, + { &hf_h225_gatekeeperBased, + { "gatekeeperBased", "h225.gatekeeperBased", + FT_NONE, BASE_NONE, NULL, 0, + "RehomingModel/gatekeeperBased", HFILL }}, + { &hf_h225_endpointBased, + { "endpointBased", "h225.endpointBased", + FT_NONE, BASE_NONE, NULL, 0, + "RehomingModel/endpointBased", HFILL }}, { &hf_h225_gatekeeperRequest, { "gatekeeperRequest", "h225.gatekeeperRequest", FT_NONE, BASE_NONE, NULL, 0, @@ -9427,6 +9674,14 @@ void proto_register_h225(void) { { "supportsAltGK", "h225.supportsAltGK", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_h225_supportsAssignedGK, + { "supportsAssignedGK", "h225.supportsAssignedGK", + FT_BOOLEAN, 8, NULL, 0, + "", HFILL }}, + { &hf_h225_assignedGatekeeper, + { "assignedGatekeeper", "h225.assignedGatekeeper", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_h225_gatekeeperConfirm_rasAddress, { "rasAddress", "h225.rasAddress", FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0, @@ -9435,6 +9690,10 @@ void proto_register_h225(void) { { "authenticationMode", "h225.authenticationMode", FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0, "GatekeeperConfirm/authenticationMode", HFILL }}, + { &hf_h225_rehomingModel, + { "rehomingModel", "h225.rehomingModel", + FT_UINT32, BASE_DEC, VALS(h225_RehomingModel_vals), 0, + "", HFILL }}, { &hf_h225_gatekeeperRejectReason, { "rejectReason", "h225.rejectReason", FT_UINT32, BASE_DEC, VALS(GatekeeperRejectReason_vals), 0, @@ -9531,6 +9790,10 @@ void proto_register_h225(void) { { "supportsACFSequences", "h225.supportsACFSequences", FT_NONE, BASE_NONE, NULL, 0, "RegistrationRequest/supportsACFSequences", HFILL }}, + { &hf_h225_transportQOS, + { "transportQOS", "h225.transportQOS", + FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0, + "", HFILL }}, { &hf_h225_willRespondToIRR, { "willRespondToIRR", "h225.willRespondToIRR", FT_BOOLEAN, 8, NULL, 0, @@ -9643,6 +9906,10 @@ void proto_register_h225(void) { { "securityError", "h225.securityError", FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0, "RegistrationRejectReason/securityError", HFILL }}, + { &hf_h225_registerWithAssignedGK, + { "registerWithAssignedGK", "h225.registerWithAssignedGK", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_h225_unregRequestReason, { "reason", "h225.reason", FT_UINT32, BASE_DEC, VALS(UnregRequestReason_vals), 0, @@ -9739,10 +10006,6 @@ void proto_register_h225(void) { { "Item", "h225.destAlternatives_item", FT_NONE, BASE_NONE, NULL, 0, "AdmissionRequest/destAlternatives/_item", HFILL }}, - { &hf_h225_transportQOS, - { "transportQOS", "h225.transportQOS", - FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0, - "", HFILL }}, { &hf_h225_gatewayDataRate, { "gatewayDataRate", "h225.gatewayDataRate", FT_NONE, BASE_NONE, NULL, 0, @@ -9791,6 +10054,14 @@ void proto_register_h225(void) { { "noControl", "h225.noControl", FT_NONE, BASE_NONE, NULL, 0, "TransportQOS/noControl", HFILL }}, + { &hf_h225_qOSCapabilities, + { "qOSCapabilities", "h225.qOSCapabilities", + FT_UINT32, BASE_DEC, NULL, 0, + "TransportQOS/qOSCapabilities", HFILL }}, + { &hf_h225_qOSCapabilities_item, + { "Item", "h225.qOSCapabilities_item", + FT_NONE, BASE_NONE, NULL, 0, + "TransportQOS/qOSCapabilities/_item", HFILL }}, { &hf_h225_irrFrequency, { "irrFrequency", "h225.irrFrequency", FT_UINT32, BASE_DEC, NULL, 0, @@ -10228,7 +10499,6 @@ void proto_register_h225(void) { &ett_h225_SEQUENCE_OF_ServiceControlSession, &ett_h225_CallProceeding_UUIE, &ett_h225_Connect_UUIE, - &ett_h225_Language, &ett_h225_Information_UUIE, &ett_h225_ReleaseComplete_UUIE, &ett_h225_ReleaseCompleteReason, @@ -10238,6 +10508,7 @@ void proto_register_h225(void) { &ett_h225_SEQUENCE_OF_H245Security, &ett_h225_FastStart, &ett_h225_T_connectionParameters, + &ett_h225_Language, &ett_h225_SEQUENCE_OF_SupportedProtocols, &ett_h225_SEQUENCE_OF_FeatureDescriptor, &ett_h225_ParallelH245Control, @@ -10307,6 +10578,10 @@ void proto_register_h225(void) { &ett_h225_ANSI_41_UIM, &ett_h225_T_system_id, &ett_h225_GSM_UIM, + &ett_h225_IsupNumber, + &ett_h225_IsupPublicPartyNumber, + &ett_h225_IsupPrivatePartyNumber, + &ett_h225_NatureOfAddress, &ett_h225_ExtendedAliasAddress, &ett_h225_Endpoint, &ett_h225_SEQUENCE_OF_TransportAddress, @@ -10371,6 +10646,7 @@ void proto_register_h225(void) { &ett_h225_TransportChannelInfo, &ett_h225_RTPSession, &ett_h225_T_associatedSessionIds, + &ett_h225_RehomingModel, &ett_h225_RasMessage, &ett_h225_SEQUENCE_OF_AdmissionConfirm, &ett_h225_GatekeeperRequest, @@ -10400,6 +10676,7 @@ void proto_register_h225(void) { &ett_h225_CallType, &ett_h225_CallModel, &ett_h225_TransportQOS, + &ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability, &ett_h225_AdmissionConfirm, &ett_h225_UUIEsRequested, &ett_h225_AdmissionReject, diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c index 5c8d6d96f8..41d0aa379e 100644 --- a/epan/dissectors/packet-h245.c +++ b/epan/dissectors/packet-h245.c @@ -565,8 +565,29 @@ static int hf_h245_atmrtVBR = -1; /* BOOLEAN */ static int hf_h245_atmnrtVBR = -1; /* BOOLEAN */ static int hf_h245_atmABR = -1; /* BOOLEAN */ static int hf_h245_atmCBR = -1; /* BOOLEAN */ +static int hf_h245_nonStandardParameter = -1; /* NonStandardParameter */ +static int hf_h245_servicePrioritySignalled = -1; /* BOOLEAN */ +static int hf_h245_servicePriorityValue = -1; /* ServicePriorityValue */ +static int hf_h245_desired = -1; /* NULL */ +static int hf_h245_required = -1; /* NULL */ +static int hf_h245_class0 = -1; /* NULL */ +static int hf_h245_class1 = -1; /* NULL */ +static int hf_h245_class2 = -1; /* NULL */ +static int hf_h245_class3 = -1; /* NULL */ +static int hf_h245_class4 = -1; /* NULL */ +static int hf_h245_class5 = -1; /* NULL */ +static int hf_h245_qosType = -1; /* QOSType */ +static int hf_h245_qosClass = -1; /* QOSClass */ +static int hf_h245_averageRate = -1; /* INTEGER_1_4294967295 */ +static int hf_h245_burst = -1; /* INTEGER_1_4294967295 */ static int hf_h245_rsvpParameters = -1; /* RSVPParameters */ static int hf_h245_atmParameters = -1; /* ATMParameters */ +static int hf_h245_localQoS = -1; /* BOOLEAN */ +static int hf_h245_genericTransportParameters = -1; /* GenericTransportParameters */ +static int hf_h245_servicePriority = -1; /* ServicePriority */ +static int hf_h245_authorizationParameter = -1; /* AuthorizationParameters */ +static int hf_h245_qosDescriptor = -1; /* QOSDescriptor */ +static int hf_h245_dscpValue = -1; /* INTEGER_0_63 */ static int hf_h245_ip_UDP = -1; /* NULL */ static int hf_h245_ip_TCP = -1; /* NULL */ static int hf_h245_atm_AAL5_UNIDIR = -1; /* NULL */ @@ -1727,6 +1748,13 @@ static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType = -1; static gint ett_h245_RSVPParameters = -1; static gint ett_h245_QOSMode = -1; static gint ett_h245_ATMParameters = -1; +static gint ett_h245_ServicePriorityValue = -1; +static gint ett_h245_ServicePriority = -1; +static gint ett_h245_AuthorizationParameters = -1; +static gint ett_h245_QOSType = -1; +static gint ett_h245_QOSClass = -1; +static gint ett_h245_QOSDescriptor = -1; +static gint ett_h245_GenericTransportParameters = -1; static gint ett_h245_QOSCapability = -1; static gint ett_h245_MediaTransportType = -1; static gint ett_h245_T_atm_AAL5_compressed = -1; @@ -2231,7 +2259,7 @@ static const per_sequence_t H221NonStandardID_sequence[] = { static int dissect_h245_H221NonStandardID(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 700 "h245.cnf" +#line 701 "h245.cnf" t35CountryCode = 0; t35Extension = 0; manufacturerCode = 0; @@ -2239,7 +2267,7 @@ dissect_h245_H221NonStandardID(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_H221NonStandardID, H221NonStandardID_sequence); -#line 704 "h245.cnf" +#line 705 "h245.cnf" h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); @@ -2261,7 +2289,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = { static int dissect_h245_NonStandardIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 681 "h245.cnf" +#line 682 "h245.cnf" guint32 value; nsiOID = ""; @@ -2290,7 +2318,7 @@ dissect_h245_NonStandardIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ static int dissect_h245_T_nsd_data(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 715 "h245.cnf" +#line 716 "h245.cnf" tvbuff_t *next_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -2313,7 +2341,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = { static int dissect_h245_NonStandardParameter(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 713 "h245.cnf" +#line 714 "h245.cnf" nsp_handle = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2368,7 +2396,7 @@ dissect_h245_MasterSlaveDetermination(tvbuff_t *tvb, int offset, asn1_ctx_t *act offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDetermination, MasterSlaveDetermination_sequence); -#line 464 "h245.cnf" +#line 465 "h245.cnf" h245_pi->msg_type = H245_MastSlvDet; @@ -3267,7 +3295,7 @@ static int dissect_h245_T_standardOid(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &standard_oid_str); -#line 503 "h245.cnf" +#line 504 "h245.cnf" if(!h245_lc_dissector && strcmp(standard_oid_str,"0.0.8.245.1.1.1") == 0) h245_lc_dissector = amr_handle; @@ -3500,7 +3528,7 @@ static const per_choice_t Application_choice[] = { static int dissect_h245_Application(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 397 "h245.cnf" +#line 398 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -3756,14 +3784,160 @@ dissect_h245_ATMParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, prot } +static const per_sequence_t GenericTransportParameters_sequence[] = { + { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter }, + { &hf_h245_averageRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 }, + { &hf_h245_burst , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 }, + { &hf_h245_peakRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 }, + { &hf_h245_maxPktSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_GenericTransportParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_GenericTransportParameters, GenericTransportParameters_sequence); + + return offset; +} + + +static const per_sequence_t ServicePriorityValue_sequence[] = { + { &hf_h245_nonStandardParameter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_ServicePriorityValue(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_ServicePriorityValue, ServicePriorityValue_sequence); + + return offset; +} + + +static const per_sequence_t ServicePriority_sequence[] = { + { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter }, + { &hf_h245_servicePrioritySignalled, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN }, + { &hf_h245_servicePriorityValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_ServicePriorityValue }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_ServicePriority(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_ServicePriority, ServicePriority_sequence); + + return offset; +} + + +static const per_sequence_t AuthorizationParameters_sequence[] = { + { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_AuthorizationParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_AuthorizationParameters, AuthorizationParameters_sequence); + + return offset; +} + + +static const value_string h245_QOSType_vals[] = { + { 0, "desired" }, + { 1, "required" }, + { 0, NULL } +}; + +static const per_choice_t QOSType_choice[] = { + { 0, &hf_h245_desired , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 1, &hf_h245_required , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h245_QOSType(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h245_QOSType, QOSType_choice, + NULL); + + return offset; +} + + +static const value_string h245_QOSClass_vals[] = { + { 0, "class0" }, + { 1, "class1" }, + { 2, "class2" }, + { 3, "class3" }, + { 4, "class4" }, + { 5, "class5" }, + { 0, NULL } +}; + +static const per_choice_t QOSClass_choice[] = { + { 0, &hf_h245_class0 , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 1, &hf_h245_class1 , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 2, &hf_h245_class2 , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 3, &hf_h245_class3 , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 4, &hf_h245_class4 , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 5, &hf_h245_class5 , ASN1_EXTENSION_ROOT , dissect_h245_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h245_QOSClass(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h245_QOSClass, QOSClass_choice, + NULL); + + return offset; +} + + +static const per_sequence_t QOSDescriptor_sequence[] = { + { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter }, + { &hf_h245_qosType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_QOSType }, + { &hf_h245_qosClass , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_QOSClass }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_QOSDescriptor(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_QOSDescriptor, QOSDescriptor_sequence); + + return offset; +} + + + +static int +dissect_h245_INTEGER_0_63(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + static const per_sequence_t QOSCapability_sequence[] = { { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter }, { &hf_h245_rsvpParameters , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_RSVPParameters }, { &hf_h245_atmParameters , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_ATMParameters }, + { &hf_h245_localQoS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_BOOLEAN }, + { &hf_h245_genericTransportParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_GenericTransportParameters }, + { &hf_h245_servicePriority, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_ServicePriority }, + { &hf_h245_authorizationParameter, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_AuthorizationParameters }, + { &hf_h245_qosDescriptor , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_QOSDescriptor }, + { &hf_h245_dscpValue , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_63 }, { NULL, 0, 0, NULL } }; -static int +int dissect_h245_QOSCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_QOSCapability, QOSCapability_sequence); @@ -4884,7 +5058,7 @@ dissect_h245_H263VideoCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_H263VideoCapability, H263VideoCapability_sequence); -#line 264 "h245.cnf" +#line 265 "h245.cnf" h245_lc_dissector = h263_handle; return offset; @@ -4977,7 +5151,7 @@ static const per_choice_t VideoCapability_choice[] = { static int dissect_h245_VideoCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 388 "h245.cnf" +#line 389 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -5296,7 +5470,7 @@ static const per_choice_t AudioCapability_choice[] = { static int dissect_h245_AudioCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 379 "h245.cnf" +#line 380 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -5877,7 +6051,7 @@ dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptor(tvbuff_t *tvb, int offset, a static int dissect_h245_T_subMessageIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 508 "h245.cnf" +#line 509 "h245.cnf" guint32 subMessageIdentifer; @@ -5941,7 +6115,7 @@ dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySet, TerminalCapabilitySet_sequence); -#line 479 "h245.cnf" +#line 480 "h245.cnf" h245_pi->msg_type = H245_TermCapSet; @@ -5952,7 +6126,7 @@ dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ static int dissect_h245_LogicalChannelNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 119 "h245.cnf" +#line 120 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 65535U, &value, FALSE); @@ -5969,7 +6143,7 @@ static int dissect_h245_OLC_fw_lcn(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index); -#line 125 "h245.cnf" +#line 126 "h245.cnf" h223_fw_lc_num = h245_lc_temp; return offset; @@ -6432,7 +6606,7 @@ dissect_h245_H222LogicalChannelParameters(tvbuff_t *tvb, int offset, asn1_ctx_t static int dissect_h245_T_h223_al_type_al1Framed(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 156 "h245.cnf" +#line 157 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1Framed; @@ -6445,7 +6619,7 @@ dissect_h245_T_h223_al_type_al1Framed(tvbuff_t *tvb, int offset, asn1_ctx_t *act static int dissect_h245_T_h223_al_type_al1NotFramed(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 161 "h245.cnf" +#line 162 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1NotFramed; @@ -6458,7 +6632,7 @@ dissect_h245_T_h223_al_type_al1NotFramed(tvbuff_t *tvb, int offset, asn1_ctx_t * static int dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 166 "h245.cnf" +#line 167 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2WithoutSequenceNumbers; @@ -6471,7 +6645,7 @@ dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb, int offset, static int dissect_h245_T_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 171 "h245.cnf" +#line 172 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2WithSequenceNumbers; @@ -6484,7 +6658,7 @@ dissect_h245_T_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb, int offset, as static int dissect_h245_T_controlFieldOctets(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 185 "h245.cnf" +#line 186 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 2U, &value, FALSE); @@ -6500,7 +6674,7 @@ dissect_h245_T_controlFieldOctets(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U static int dissect_h245_T_al3_sendBufferSize(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 194 "h245.cnf" +#line 195 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 16777215U, &value, FALSE); @@ -6531,7 +6705,7 @@ dissect_h245_Al3(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tr static int dissect_h245_T_h223_al_type_al3(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 176 "h245.cnf" +#line 177 "h245.cnf" if(h223_lc_params_temp) { h223_lc_params_temp->al_type = al3; h223_lc_params_temp->al_params = se_alloc(sizeof(h223_al3_params)); @@ -6726,7 +6900,7 @@ dissect_h245_H223AL1MParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, static int dissect_h245_T_h223_al_type_al1M(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 201 "h245.cnf" +#line 202 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1M; @@ -6776,7 +6950,7 @@ dissect_h245_H223AL2MParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, static int dissect_h245_T_h223_al_type_al2M(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 206 "h245.cnf" +#line 207 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2M; @@ -6864,7 +7038,7 @@ dissect_h245_H223AL3MParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, static int dissect_h245_T_h223_al_type_al3M(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 211 "h245.cnf" +#line 212 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al3M; @@ -6913,7 +7087,7 @@ dissect_h245_T_adaptationLayerType(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ static int dissect_h245_T_h223_lc_segmentableFlag(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 218 "h245.cnf" +#line 219 "h245.cnf" guint32 value; offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &value); @@ -6943,7 +7117,7 @@ dissect_h245_H223LogicalChannelParameters(tvbuff_t *tvb, int offset, asn1_ctx_t static int dissect_h245_OLC_fw_h223_params(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 138 "h245.cnf" +#line 139 "h245.cnf" h223_fw_lc_params = se_alloc(sizeof(h223_lc_params)); h223_fw_lc_params->al_type = al_nonStandard; h223_fw_lc_params->al_params = NULL; @@ -7117,7 +7291,7 @@ dissect_h245_V76LogicalChannelParameters(tvbuff_t *tvb, int offset, asn1_ctx_t * static int dissect_h245_Ipv4_network(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 515 "h245.cnf" +#line 516 "h245.cnf" tvbuff_t *value_tvb; @@ -7139,7 +7313,7 @@ dissect_h245_Ipv4_network(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto static int dissect_h245_TsapIdentifier(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 528 "h245.cnf" +#line 529 "h245.cnf" guint32 tsapIdentifier; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -7398,14 +7572,14 @@ dissect_h245_TransportAddress(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, p static int dissect_h245_T_mediaChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 546 "h245.cnf" +#line 547 "h245.cnf" media_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 576 "h245.cnf" +#line 577 "h245.cnf" media_channel = FALSE; @@ -7417,14 +7591,14 @@ dissect_h245_T_mediaChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, pro static int dissect_h245_T_mediaControlChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 558 "h245.cnf" +#line 559 "h245.cnf" media_control_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 582 "h245.cnf" +#line 583 "h245.cnf" media_control_channel = FALSE; @@ -7556,7 +7730,7 @@ static const per_sequence_t T_forwardLogicalChannelParameters_sequence[] = { static int dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 129 "h245.cnf" +#line 130 "h245.cnf" h245_lc_dissector = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_T_forwardLogicalChannelParameters, T_forwardLogicalChannelParameters_sequence); @@ -7574,7 +7748,7 @@ dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, asn1_c static int dissect_h245_OLC_rev_h223_params(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 147 "h245.cnf" +#line 148 "h245.cnf" h223_rev_lc_params = se_alloc(sizeof(h223_lc_params)); h223_rev_lc_params->al_type = al_nonStandard; h223_rev_lc_params->al_params = NULL; @@ -7604,7 +7778,7 @@ static const per_choice_t OLC_rev_multiplexParameters_choice[] = { static int dissect_h245_OLC_rev_multiplexParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 632 "h245.cnf" +#line 633 "h245.cnf" media_channel = FALSE; @@ -7615,7 +7789,7 @@ dissect_h245_OLC_rev_multiplexParameters(tvbuff_t *tvb, int offset, asn1_ctx_t * ett_h245_OLC_rev_multiplexParameters, OLC_rev_multiplexParameters_choice, NULL); -#line 640 "h245.cnf" +#line 641 "h245.cnf" if (!actx->pinfo->fd->flags.visited) { if (codec_type && (strcmp(codec_type, "t38fax")==0)) { @@ -7859,7 +8033,7 @@ static const per_sequence_t OpenLogicalChannel_sequence[] = { int dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 100 "h245.cnf" +#line 101 "h245.cnf" gint32 temp; h223_fw_lc_num = 0; @@ -7878,7 +8052,7 @@ dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, } -#line 490 "h245.cnf" +#line 491 "h245.cnf" if (h245_pi != NULL) h245_pi->msg_type = H245_OpenLogChn; @@ -7944,7 +8118,7 @@ dissect_h245_CloseLogicalChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_CloseLogicalChannel, CloseLogicalChannel_sequence); -#line 444 "h245.cnf" +#line 445 "h245.cnf" h245_pi->msg_type = H245_CloseLogChn; @@ -7997,7 +8171,7 @@ dissect_h245_RequestChannelClose(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_ static int dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 44 "h245.cnf" +#line 45 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 15U, &value, FALSE); @@ -8012,7 +8186,7 @@ dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *ac static int dissect_h245_T_logicalChannelNum(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 70 "h245.cnf" +#line 71 "h245.cnf" /*MultiplexElement/type/logicalChannelNumber*/ guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -8032,7 +8206,7 @@ static const per_sequence_t T_subElementList_sequence_of[1] = { static int dissect_h245_T_subElementList(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 78 "h245.cnf" +#line 79 "h245.cnf" h223_mux_element dummy_me, *parent_me = h223_me; h223_me = &dummy_me; offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, @@ -8073,7 +8247,7 @@ dissect_h245_Me_type(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree static int dissect_h245_ME_finiteRepeatCount(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 93 "h245.cnf" +#line 94 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 65535U, &value, FALSE); @@ -8090,7 +8264,7 @@ static int dissect_h245_T_untilClosingFlag(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_null(tvb, offset, actx, tree, hf_index); -#line 87 "h245.cnf" +#line 88 "h245.cnf" h223_me->repeat_count = 0; return offset; @@ -8127,7 +8301,7 @@ static const per_sequence_t MultiplexElement_sequence[] = { static int dissect_h245_MultiplexElement(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 60 "h245.cnf" +#line 61 "h245.cnf" /*MultiplexElement*/ h223_mux_element* me = se_alloc(sizeof(h223_mux_element)); h223_me->next = me; @@ -8147,7 +8321,7 @@ static const per_sequence_t T_elementList_sequence_of[1] = { static int dissect_h245_T_elementList(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 50 "h245.cnf" +#line 51 "h245.cnf" /* create a h223_mux_element to hold onto the head of the list, since * h223_me will track the tail */ h223_mux_element dummy_me; @@ -8172,7 +8346,7 @@ static const per_sequence_t MultiplexEntryDescriptor_sequence[] = { static int dissect_h245_MultiplexEntryDescriptor(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 32 "h245.cnf" +#line 33 "h245.cnf" /*MultiplexEntryDescriptor*/ h223_me = NULL; h223_mc = 0; @@ -8437,7 +8611,7 @@ static const per_choice_t VideoMode_choice[] = { static int dissect_h245_VideoMode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 413 "h245.cnf" +#line 414 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -8764,7 +8938,7 @@ static const per_choice_t AudioMode_choice[] = { static int dissect_h245_AudioMode(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 405 "h245.cnf" +#line 406 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -8832,7 +9006,7 @@ static const per_choice_t DataModeApplication_choice[] = { static int dissect_h245_DataModeApplication(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 421 "h245.cnf" +#line 422 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -9820,7 +9994,7 @@ static const per_choice_t RequestMessage_choice[] = { static int dissect_h245_RequestMessage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 268 "h245.cnf" +#line 269 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -9897,7 +10071,7 @@ dissect_h245_MasterSlaveDeterminationAck(tvbuff_t *tvb, int offset, asn1_ctx_t * offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDeterminationAck, MasterSlaveDeterminationAck_sequence); -#line 429 "h245.cnf" +#line 430 "h245.cnf" h245_pi->msg_type = H245_MastSlvDetAck; @@ -9935,7 +10109,7 @@ dissect_h245_MasterSlaveDeterminationReject(tvbuff_t *tvb, int offset, asn1_ctx_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDeterminationReject, MasterSlaveDeterminationReject_sequence); -#line 434 "h245.cnf" +#line 435 "h245.cnf" h245_pi->msg_type = H245_MastSlvDetRjc; @@ -9954,7 +10128,7 @@ dissect_h245_TerminalCapabilitySetAck(tvbuff_t *tvb, int offset, asn1_ctx_t *act offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySetAck, TerminalCapabilitySetAck_sequence); -#line 459 "h245.cnf" +#line 460 "h245.cnf" h245_pi->msg_type = H245_TermCapSetAck; @@ -10022,7 +10196,7 @@ dissect_h245_TerminalCapabilitySetReject(tvbuff_t *tvb, int offset, asn1_ctx_t * offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySetReject, TerminalCapabilitySetReject_sequence); -#line 469 "h245.cnf" +#line 470 "h245.cnf" h245_pi->msg_type = H245_TermCapSetRjc; @@ -10035,7 +10209,7 @@ static int dissect_h245_OLC_ack_fw_lcn(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index); -#line 256 "h245.cnf" +#line 257 "h245.cnf" h223_fw_lc_num = h245_lc_temp; return offset; @@ -10047,7 +10221,7 @@ static int dissect_h245_T_reverseLogicalChannelNumber(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index); -#line 260 "h245.cnf" +#line 261 "h245.cnf" h223_rev_lc_num = h245_lc_temp; return offset; @@ -10096,14 +10270,14 @@ dissect_h245_OLC_ack_reverseLogicalChannelParameters(tvbuff_t *tvb, int offset, static int dissect_h245_Ack_mediaChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 540 "h245.cnf" +#line 541 "h245.cnf" media_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 564 "h245.cnf" +#line 565 "h245.cnf" media_channel = FALSE; @@ -10115,14 +10289,14 @@ dissect_h245_Ack_mediaChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, p static int dissect_h245_Ack_mediaControlChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 552 "h245.cnf" +#line 553 "h245.cnf" media_control_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 570 "h245.cnf" +#line 571 "h245.cnf" media_control_channel = FALSE; @@ -10163,7 +10337,7 @@ static const per_choice_t T_forwardMultiplexAckParameters_choice[] = { static int dissect_h245_T_forwardMultiplexAckParameters(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 588 "h245.cnf" +#line 589 "h245.cnf" media_channel = FALSE; @@ -10174,7 +10348,7 @@ dissect_h245_T_forwardMultiplexAckParameters(tvbuff_t *tvb, int offset, asn1_ctx ett_h245_T_forwardMultiplexAckParameters, T_forwardMultiplexAckParameters_choice, NULL); -#line 596 "h245.cnf" +#line 597 "h245.cnf" if (!actx->pinfo->fd->flags.visited) { if (codec_type && strcmp(codec_type, "t38fax")==0) { @@ -10225,7 +10399,7 @@ static const per_sequence_t OpenLogicalChannelAck_sequence[] = { static int dissect_h245_OpenLogicalChannelAck(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 226 "h245.cnf" +#line 227 "h245.cnf" guint32 temp; int p2p_dir; h223_pending_olc *pend; @@ -10257,7 +10431,7 @@ dissect_h245_OpenLogicalChannelAck(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _ actx->pinfo->p2p_dir = p2p_dir; -#line 496 "h245.cnf" +#line 497 "h245.cnf" h245_pi->msg_type = H245_OpenLogChnAck; @@ -10325,7 +10499,7 @@ dissect_h245_OpenLogicalChannelReject(tvbuff_t *tvb, int offset, asn1_ctx_t *act offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_OpenLogicalChannelReject, OpenLogicalChannelReject_sequence); -#line 439 "h245.cnf" +#line 440 "h245.cnf" h245_pi->msg_type = H245_OpenLogChnRjc; @@ -10343,7 +10517,7 @@ dissect_h245_CloseLogicalChannelAck(tvbuff_t *tvb, int offset, asn1_ctx_t *actx offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_CloseLogicalChannelAck, CloseLogicalChannelAck_sequence); -#line 449 "h245.cnf" +#line 450 "h245.cnf" h245_pi->msg_type = H245_CloseLogChnAck; @@ -11466,7 +11640,7 @@ static const per_choice_t ResponseMessage_choice[] = { static int dissect_h245_ResponseMessage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 306 "h245.cnf" +#line 307 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -12506,7 +12680,7 @@ static const per_choice_t CommandMessage_choice[] = { static int dissect_h245_CommandMessage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 355 "h245.cnf" +#line 356 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -12570,7 +12744,7 @@ dissect_h245_MasterSlaveDeterminationRelease(tvbuff_t *tvb, int offset, asn1_ctx offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDeterminationRelease, MasterSlaveDeterminationRelease_sequence); -#line 474 "h245.cnf" +#line 475 "h245.cnf" h245_pi->msg_type = H245_MastSlvDetRls; @@ -12588,7 +12762,7 @@ dissect_h245_TerminalCapabilitySetRelease(tvbuff_t *tvb, int offset, asn1_ctx_t offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySetRelease, TerminalCapabilitySetRelease_sequence); -#line 484 "h245.cnf" +#line 485 "h245.cnf" h245_pi->msg_type = H245_TermCapSetRls; @@ -12607,7 +12781,7 @@ dissect_h245_OpenLogicalChannelConfirm(tvbuff_t *tvb, int offset, asn1_ctx_t *ac offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_OpenLogicalChannelConfirm, OpenLogicalChannelConfirm_sequence); -#line 454 "h245.cnf" +#line 455 "h245.cnf" h245_pi->msg_type = H245_OpenLogChnCnf; @@ -13548,7 +13722,7 @@ static const per_choice_t IndicationMessage_choice[] = { static int dissect_h245_IndicationMessage(tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 331 "h245.cnf" +#line 332 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -14760,7 +14934,7 @@ void proto_register_h245(void) { { &hf_h245_peakRate, { "peakRate", "h245.peakRate", FT_UINT32, BASE_DEC, NULL, 0, - "RSVPParameters/peakRate", HFILL }}, + "", HFILL }}, { &hf_h245_minPoliced, { "minPoliced", "h245.minPoliced", FT_UINT32, BASE_DEC, NULL, 0, @@ -14768,7 +14942,7 @@ void proto_register_h245(void) { { &hf_h245_maxPktSize, { "maxPktSize", "h245.maxPktSize", FT_UINT32, BASE_DEC, NULL, 0, - "RSVPParameters/maxPktSize", HFILL }}, + "", HFILL }}, { &hf_h245_guaranteedQOS, { "guaranteedQOS", "h245.guaranteedQOS", FT_NONE, BASE_NONE, NULL, 0, @@ -14801,6 +14975,66 @@ void proto_register_h245(void) { { "atmCBR", "h245.atmCBR", FT_BOOLEAN, 8, NULL, 0, "ATMParameters/atmCBR", HFILL }}, + { &hf_h245_nonStandardParameter, + { "nonStandardParameter", "h245.nonStandardParameter", + FT_NONE, BASE_NONE, NULL, 0, + "ServicePriorityValue/nonStandardParameter", HFILL }}, + { &hf_h245_servicePrioritySignalled, + { "servicePrioritySignalled", "h245.servicePrioritySignalled", + FT_BOOLEAN, 8, NULL, 0, + "ServicePriority/servicePrioritySignalled", HFILL }}, + { &hf_h245_servicePriorityValue, + { "servicePriorityValue", "h245.servicePriorityValue", + FT_NONE, BASE_NONE, NULL, 0, + "ServicePriority/servicePriorityValue", HFILL }}, + { &hf_h245_desired, + { "desired", "h245.desired", + FT_NONE, BASE_NONE, NULL, 0, + "QOSType/desired", HFILL }}, + { &hf_h245_required, + { "required", "h245.required", + FT_NONE, BASE_NONE, NULL, 0, + "QOSType/required", HFILL }}, + { &hf_h245_class0, + { "class0", "h245.class0", + FT_NONE, BASE_NONE, NULL, 0, + "QOSClass/class0", HFILL }}, + { &hf_h245_class1, + { "class1", "h245.class1", + FT_NONE, BASE_NONE, NULL, 0, + "QOSClass/class1", HFILL }}, + { &hf_h245_class2, + { "class2", "h245.class2", + FT_NONE, BASE_NONE, NULL, 0, + "QOSClass/class2", HFILL }}, + { &hf_h245_class3, + { "class3", "h245.class3", + FT_NONE, BASE_NONE, NULL, 0, + "QOSClass/class3", HFILL }}, + { &hf_h245_class4, + { "class4", "h245.class4", + FT_NONE, BASE_NONE, NULL, 0, + "QOSClass/class4", HFILL }}, + { &hf_h245_class5, + { "class5", "h245.class5", + FT_NONE, BASE_NONE, NULL, 0, + "QOSClass/class5", HFILL }}, + { &hf_h245_qosType, + { "qosType", "h245.qosType", + FT_UINT32, BASE_DEC, VALS(h245_QOSType_vals), 0, + "QOSDescriptor/qosType", HFILL }}, + { &hf_h245_qosClass, + { "qosClass", "h245.qosClass", + FT_UINT32, BASE_DEC, VALS(h245_QOSClass_vals), 0, + "QOSDescriptor/qosClass", HFILL }}, + { &hf_h245_averageRate, + { "averageRate", "h245.averageRate", + FT_UINT32, BASE_DEC, NULL, 0, + "GenericTransportParameters/averageRate", HFILL }}, + { &hf_h245_burst, + { "burst", "h245.burst", + FT_UINT32, BASE_DEC, NULL, 0, + "GenericTransportParameters/burst", HFILL }}, { &hf_h245_rsvpParameters, { "rsvpParameters", "h245.rsvpParameters", FT_NONE, BASE_NONE, NULL, 0, @@ -14809,6 +15043,30 @@ void proto_register_h245(void) { { "atmParameters", "h245.atmParameters", FT_NONE, BASE_NONE, NULL, 0, "QOSCapability/atmParameters", HFILL }}, + { &hf_h245_localQoS, + { "localQoS", "h245.localQoS", + FT_BOOLEAN, 8, NULL, 0, + "QOSCapability/localQoS", HFILL }}, + { &hf_h245_genericTransportParameters, + { "genericTransportParameters", "h245.genericTransportParameters", + FT_NONE, BASE_NONE, NULL, 0, + "QOSCapability/genericTransportParameters", HFILL }}, + { &hf_h245_servicePriority, + { "servicePriority", "h245.servicePriority", + FT_NONE, BASE_NONE, NULL, 0, + "QOSCapability/servicePriority", HFILL }}, + { &hf_h245_authorizationParameter, + { "authorizationParameter", "h245.authorizationParameter", + FT_NONE, BASE_NONE, NULL, 0, + "QOSCapability/authorizationParameter", HFILL }}, + { &hf_h245_qosDescriptor, + { "qosDescriptor", "h245.qosDescriptor", + FT_NONE, BASE_NONE, NULL, 0, + "QOSCapability/qosDescriptor", HFILL }}, + { &hf_h245_dscpValue, + { "dscpValue", "h245.dscpValue", + FT_UINT32, BASE_DEC, NULL, 0, + "QOSCapability/dscpValue", HFILL }}, { &hf_h245_ip_UDP, { "ip-UDP", "h245.ip_UDP", FT_NONE, BASE_NONE, NULL, 0, @@ -19248,6 +19506,13 @@ void proto_register_h245(void) { &ett_h245_RSVPParameters, &ett_h245_QOSMode, &ett_h245_ATMParameters, + &ett_h245_ServicePriorityValue, + &ett_h245_ServicePriority, + &ett_h245_AuthorizationParameters, + &ett_h245_QOSType, + &ett_h245_QOSClass, + &ett_h245_QOSDescriptor, + &ett_h245_GenericTransportParameters, &ett_h245_QOSCapability, &ett_h245_MediaTransportType, &ett_h245_T_atm_AAL5_compressed, diff --git a/epan/dissectors/packet-h245.h b/epan/dissectors/packet-h245.h index f25d82bb41..031b571a96 100644 --- a/epan/dissectors/packet-h245.h +++ b/epan/dissectors/packet-h245.h @@ -133,6 +133,7 @@ extern void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle ); /*--- Included file: packet-h245-exp.h ---*/ #line 1 "packet-h245-exp.h" extern const value_string DataProtocolCapability_vals[]; +int dissect_h245_QOSCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index); int dissect_h245_DataProtocolCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index); int dissect_h245_T38FaxProfile(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index); int dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index); |