aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/h225/H323-MESSAGES.asn127
-rw-r--r--asn1/h225/h225.cnf20
-rw-r--r--asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn193
-rw-r--r--asn1/h245/h245-exp.cnf1
-rw-r--r--asn1/h245/h245.cnf1
-rw-r--r--epan/dissectors/packet-h225.c455
-rw-r--r--epan/dissectors/packet-h245.c419
-rw-r--r--epan/dissectors/packet-h245.h1
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);