diff options
-rw-r--r-- | asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn | 971 | ||||
-rw-r--r-- | asn1/h245/h245.cnf | 37 | ||||
-rw-r--r-- | epan/dissectors/packet-h245.c | 843 |
3 files changed, 1236 insertions, 615 deletions
diff --git a/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn b/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn index 6429a2e26e..ce9c50aabc 100644 --- a/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn +++ b/asn1/h245/MULTIMEDIA-SYSTEM-CONTROL.asn @@ -1,16 +1,16 @@ -- -- Taken from ITU ASN.1 database --- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h245/2003v10/MULTIMEDIA-SYSTEM-CONTROL.asn +-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h245/2005v12/MULTIMEDIA-SYSTEM-CONTROL.asn -- --- Module MULTIMEDIA-SYSTEM-CONTROL (H.245:07/2003) +-- Module MULTIMEDIA-SYSTEM-CONTROL (H.245:10/2005) MULTIMEDIA-SYSTEM-CONTROL DEFINITIONS AUTOMATIC TAGS ::= BEGIN -- Export all symbols --- =================================================================================== +-- ======================================================================= -- Top level Messages --- =================================================================================== +-- ======================================================================= MultimediaSystemControlMessage ::= CHOICE { request RequestMessage, response ResponseMessage, @@ -40,7 +40,7 @@ RequestMessage ::= CHOICE { genericRequest GenericMessage } --- A ResponseMessage is the response to a request Message +-- A ResponseMessage is the response to a RequestMessage ResponseMessage ::= CHOICE { nonStandard NonStandardMessage, masterSlaveDeterminationAck MasterSlaveDeterminationAck, @@ -121,19 +121,21 @@ IndicationMessage ::= CHOICE { -- SequenceNumber is defined here as it is used in a number of Messages SequenceNumber ::= INTEGER(0..255) --- =================================================================================== +-- ============================================================================= -- Generic Message definitions --- =================================================================================== +-- ============================================================================= GenericMessage ::= SEQUENCE { - messageIdentifier CapabilityIdentifier, - subMessageIdentifer INTEGER(0..127) OPTIONAL, - messageContent SEQUENCE OF GenericParameter OPTIONAL, + messageIdentifier CapabilityIdentifier, + subMessageIdentifier INTEGER(0..127) OPTIONAL, + messageContent SEQUENCE OF GenericParameter OPTIONAL, ... } --- =================================================================================== --- Non standard Message definitions --- =================================================================================== +GenericInformation ::= GenericMessage + +-- ============================================================================= +-- Non-standard Message definitions +-- ============================================================================= NonStandardMessage ::= SEQUENCE {nonStandardData NonStandardParameter, ... } @@ -146,18 +148,21 @@ NonStandardParameter ::= SEQUENCE { NonStandardIdentifier ::= CHOICE { object OBJECT IDENTIFIER, h221NonStandard - SEQUENCE {t35CountryCode INTEGER(0..255), -- country, per T.35 Annex A-- + SEQUENCE {t35CountryCode INTEGER(0..255), -- country, per -- + -- Annex A/T.35 t35Extension INTEGER(0..255), - -- assigned nationally unless t35CountryCode is binary - -- 1111 1111, in which case it shall contain the country code - -- according to T.35 Annex B + -- assigned nationally unless + -- t35CountryCode is binary + -- 1111 1111, in which case it shall + -- contain the country code + -- according to Annex B/T.35 manufacturerCode INTEGER(0..65535) -- assigned nationally } } --- =================================================================================== +-- ============================================================================= -- Master-slave determination definitions --- =================================================================================== +-- ============================================================================= MasterSlaveDetermination ::= SEQUENCE { terminalType INTEGER(0..255), statusDeterminationNumber INTEGER(0..16777215), @@ -179,18 +184,22 @@ MasterSlaveDeterminationReject ::= SEQUENCE { MasterSlaveDeterminationRelease ::= SEQUENCE {... } --- =================================================================================== +-- ============================================================================= -- Capability exchange definitions --- =================================================================================== +-- ============================================================================= TerminalCapabilitySet ::= SEQUENCE { sequenceNumber SequenceNumber, protocolIdentifier OBJECT IDENTIFIER, -- shall be set to the value - -- {itu-t (0) recommendation (0) h (8) 245 version (0) 10} + -- {itu-t (0) recommendation (0) h (8) 245 + -- version (0) 12} multiplexCapability MultiplexCapability OPTIONAL, capabilityTable SET SIZE (1..256) OF CapabilityTableEntry OPTIONAL, capabilityDescriptors SET SIZE (1..256) OF CapabilityDescriptor OPTIONAL, - ... + ..., + genericInformation SEQUENCE OF GenericInformation OPTIONAL + -- generic information associated + -- with the message } CapabilityTableEntry ::= SEQUENCE { @@ -211,12 +220,16 @@ CapabilityTableEntryNumber ::= INTEGER(1..65535) CapabilityDescriptorNumber ::= INTEGER(0..255) -TerminalCapabilitySetAck ::= SEQUENCE {sequenceNumber SequenceNumber, - ... +TerminalCapabilitySetAck ::= SEQUENCE { + sequenceNumber SequenceNumber, + ..., + genericInformation SEQUENCE OF GenericInformation OPTIONAL + -- generic information associated + -- with the message } TerminalCapabilitySetReject ::= SEQUENCE { - sequenceNumber SequenceNumber, + sequenceNumber SequenceNumber, cause CHOICE {unspecified NULL, undefinedTableEntryUsed NULL, @@ -225,15 +238,22 @@ TerminalCapabilitySetReject ::= SEQUENCE { CHOICE {highestEntryNumberProcessed CapabilityTableEntryNumber, noneProcessed NULL}, ...}, - ... + ..., + genericInformation SEQUENCE OF GenericInformation OPTIONAL + -- generic information associated + -- with the message } -TerminalCapabilitySetRelease ::= SEQUENCE {... +TerminalCapabilitySetRelease ::= SEQUENCE { + ..., + genericInformation SEQUENCE OF GenericInformation OPTIONAL + -- generic information associated + -- with the message } --- =================================================================================== +-- ============================================================================= -- Capability exchange definitions: top level capability description --- =================================================================================== +-- ============================================================================= Capability ::= CHOICE { nonStandard NonStandardParameter, receiveVideoCapability VideoCapability, @@ -262,23 +282,28 @@ Capability ::= CHOICE { receiveAndTransmitMultiplexedStreamCapability MultiplexedStreamCapability, receiveRTPAudioTelephonyEventCapability AudioTelephonyEventCapability, receiveRTPAudioToneCapability AudioToneCapability, - fecCapability FECCapability, + depFecCapability DepFECCapability, -- Deprecated, do not use multiplePayloadStreamCapability - MultiplePayloadStreamCapability + MultiplePayloadStreamCapability, + fecCapability FECCapability, + redundancyEncodingCap RedundancyEncodingCapability, + oneOfCapabilities AlternativeCapabilitySet } H235SecurityCapability ::= SEQUENCE { encryptionAuthenticationAndIntegrity EncryptionAuthenticationAndIntegrity, mediaCapability CapabilityTableEntryNumber, - -- Note: the mediaCapability shall refer to Capability Table Entries that do contain a transmit, + -- 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 capability indicated by a NonStandardParameter only + -- DataApplicationCapability, or similar capabilities indicated by a + -- NonStandardParameter or GenericCapability only ... } --- =================================================================================== +-- ============================================================================= -- Capability exchange definitions: Multiplex capabilities --- =================================================================================== +-- ============================================================================= MultiplexCapability ::= CHOICE { nonStandard NonStandardParameter, h222Capability H222Capability, @@ -337,7 +362,9 @@ VCCapability ::= SEQUENCE { } H223Capability ::= SEQUENCE { - transportWithI-frames BOOLEAN, -- I-frame transport of H.245 + transportWithI-frames BOOLEAN, -- I-frame transport + + -- of H.245 videoWithAL1 BOOLEAN, videoWithAL2 BOOLEAN, videoWithAL3 BOOLEAN, @@ -368,7 +395,9 @@ H223Capability ::= SEQUENCE { h223AnnexBwithHeader BOOLEAN, ...} OPTIONAL, h223AnnexCCapability H223AnnexCCapability OPTIONAL, - bitRate INTEGER(1..19200) OPTIONAL, -- units of 100 bit/s + bitRate INTEGER(1..19200) OPTIONAL, -- units of + + -- 100 bit/s mobileMultilinkFrameCapability SEQUENCE {maximumSampleSize INTEGER(1..255), -- units octets-- maximumPayloadLength INTEGER(1..65025), -- units octets-- @@ -417,7 +446,9 @@ V75Capability ::= SEQUENCE {audioHeader BOOLEAN, } H2250Capability ::= SEQUENCE { - maximumAudioDelayJitter INTEGER(0..1023), -- units in milliseconds + maximumAudioDelayJitter INTEGER(0..1023), -- units in + + -- milliseconds receiveMultipointCapability MultipointCapability, transmitMultipointCapability MultipointCapability, receiveAndTransmitMultipointCapability MultipointCapability, @@ -444,12 +475,15 @@ MediaPacketizationCapability ::= SEQUENCE { RSVPParameters ::= SEQUENCE { qosMode QOSMode OPTIONAL, tokenRate INTEGER(1..4294967295) OPTIONAL, - -- rate in bytes/sec - bucketSize INTEGER(1..4294967295) OPTIONAL, -- size in bytes + -- rate in bytes/s + bucketSize INTEGER(1..4294967295) OPTIONAL, + -- size in bytes peakRate INTEGER(1..4294967295) OPTIONAL, - -- peak bandwidth bytes/sec - minPoliced INTEGER(1..4294967295) OPTIONAL, -- - maxPktSize INTEGER(1..4294967295) OPTIONAL, -- size in bytes + -- peak bandwidth bytes/s + minPoliced INTEGER(1..4294967295) OPTIONAL, + -- + maxPktSize INTEGER(1..4294967295) OPTIONAL, + -- size in bytes ... } @@ -458,14 +492,17 @@ QOSMode ::= CHOICE {guaranteedQOS NULL, ... } --- Ed. Replace with ITU-T ATM Transfer Capability Types ATMParameters ::= SEQUENCE { - maxNTUSize INTEGER(0..65535), --units in octets - atmUBR BOOLEAN, --unspecified bit rate - atmrtVBR BOOLEAN, --real time variable bit rate - atmnrtVBR BOOLEAN, --non real time variable bit rate - atmABR BOOLEAN, --available bit rate - atmCBR BOOLEAN, --constant bit rate + maxNTUSize INTEGER(0..65535), -- units in octets + atmUBR BOOLEAN, -- unspecified bit rate + atmrtVBR BOOLEAN, -- real time variable + + -- bit rate + atmnrtVBR BOOLEAN, -- non real time + + -- variable bit rate + atmABR BOOLEAN, -- available bit rate + atmCBR BOOLEAN, -- constant bit rate ... } @@ -479,7 +516,7 @@ QOSCapability ::= SEQUENCE { MediaTransportType ::= CHOICE { ip-UDP NULL, ip-TCP NULL, - atm-AAL5-UNIDIR NULL, -- virtual circuits used as unidirectional + atm-AAL5-UNIDIR NULL, -- virtual circuits used as unidirectional atm-AAL5-BIDIR NULL, -- virtual circuits used as bidirectional ..., atm-AAL5-compressed SEQUENCE {variable-delta BOOLEAN, @@ -504,6 +541,9 @@ RedundancyEncodingCapability ::= SEQUENCE { primaryEncoding CapabilityTableEntryNumber, secondaryEncoding SEQUENCE SIZE (1..256) OF CapabilityTableEntryNumber OPTIONAL, + -- must be Audio, Video, or Data capabilities, not derived + -- capabilities; redundancy order is inferred from number of + -- secondary encodings ... } @@ -544,20 +584,23 @@ MultipointCapability ::= SEQUENCE { MediaDistributionCapability ::= SEQUENCE { centralizedControl BOOLEAN, - distributedControl BOOLEAN, -- for further study in H.323 + distributedControl BOOLEAN, -- for further study in + + -- ITU-T Rec. H.323 centralizedAudio BOOLEAN, distributedAudio BOOLEAN, centralizedVideo BOOLEAN, distributedVideo BOOLEAN, centralizedData SEQUENCE OF DataApplicationCapability OPTIONAL, distributedData SEQUENCE OF DataApplicationCapability OPTIONAL, - -- for further study in H.323 + -- for further study in + -- ITU-T Rec. H.323 ... } --- =================================================================================== +-- ============================================================================= -- Capability exchange definitions: Video capabilities --- =================================================================================== +-- ============================================================================= VideoCapability ::= CHOICE { nonStandard NonStandardParameter, h261VideoCapability H261VideoCapability, @@ -579,8 +622,10 @@ H261VideoCapability ::= SEQUENCE { qcifMPI INTEGER(1..4) OPTIONAL, -- units 1/29.97 Hz cifMPI INTEGER(1..4) OPTIONAL, -- units 1/29.97 Hz temporalSpatialTradeOffCapability BOOLEAN, - maxBitRate INTEGER(1..19200), -- units of 100 bit/s - stillImageTransmission BOOLEAN, -- Annex D of H.261 + maxBitRate INTEGER(1..19200), -- units of + + -- 100 bit/s + stillImageTransmission BOOLEAN, -- Annex D/H.261 ..., videoBadMBsCap BOOLEAN } @@ -598,12 +643,11 @@ H262VideoCapability ::= SEQUENCE { profileAndLevel-HPatH-14 BOOLEAN, profileAndLevel-HPatHL BOOLEAN, videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400 bit/s - vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384 bits + vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16 384 bits samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code - luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec - ..., + luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/s ..., videoBadMBsCap BOOLEAN } @@ -622,11 +666,11 @@ H263VideoCapability ::= SEQUENCE { hrd-B INTEGER(0..524287) OPTIONAL, -- units 128 bits bppMaxKb INTEGER(0..65535) OPTIONAL, -- units 1024 bits ..., - slowSqcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame - slowQcifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame - slowCifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame - slowCif4MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame - slowCif16MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame + slowSqcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowQcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowCifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowCif4MPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowCif16MPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame errorCompensation BOOLEAN, enhancementLayerInfo EnhancementLayerInfo OPTIONAL, h263Options H263Options OPTIONAL @@ -657,10 +701,10 @@ EnhancementOptions ::= SEQUENCE { arithmeticCoding BOOLEAN, temporalSpatialTradeOffCapability BOOLEAN, slowSqcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame - slowQcifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame - slowCifMPI INTEGER(1..3600) OPTIONAL, --units seconds/frame - slowCif4MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame - slowCif16MPI INTEGER(1..3600) OPTIONAL, --units seconds/frame + slowQcifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowCifMPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowCif4MPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame + slowCif16MPI INTEGER(1..3600) OPTIONAL, -- units seconds/frame errorCompensation BOOLEAN, h263Options H263Options OPTIONAL, ... @@ -825,21 +869,24 @@ H263Version3Options ::= SEQUENCE { IS11172VideoCapability ::= SEQUENCE { constrainedBitstream BOOLEAN, videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400 bit/s - vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384 bits + vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16 384 bits samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame pictureRate INTEGER(0..15) OPTIONAL, - luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec + luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/s ..., videoBadMBsCap BOOLEAN } --- =================================================================================== +-- ============================================================================= -- Capability exchange definitions: Audio capabilities --- =================================================================================== --- For an H.222 multiplex, the integers indicate the size of the STD buffer in units of 256 octets --- For an H.223 multiplex, the integers indicate the maximum number of audio frames per AL-SDU --- For an H.225.0 multiplex, the integers indicate the maximum number of audio frames per packet +-- ============================================================================= +-- For an H.222 multiplex, the integers indicate the size of the STD buffer +-- in units of 256 octets +-- For an H.223 multiplex, the integers indicate the maximum number of audio +-- frames per AL-SDU +-- For an H.225.0 multiplex, the integers indicate the maximum number of audio +-- frames per packet AudioCapability ::= CHOICE { nonStandard NonStandardParameter, g711Alaw64k INTEGER(1..256), @@ -946,9 +993,9 @@ VBDCapability ::= SEQUENCE {type AudioCapability, -- shall not be "vbd" ... } --- =================================================================================== +-- ============================================================================= -- Capability exchange definitions: Data capabilities --- =================================================================================== +-- ============================================================================= DataApplicationCapability ::= SEQUENCE { application CHOICE {nonStandard NonStandardParameter, @@ -979,7 +1026,7 @@ DataApplicationCapability ::= SEQUENCE { DataProtocolCapability ::= CHOICE { nonStandard NonStandardParameter, v14buffered NULL, - v42lapm NULL, -- may negotiate to V.42bis + v42lapm NULL, -- may negotiate to V.42 bis hdlcFrameTunnelling NULL, h310SeparateVCStack NULL, h310SingleVCStack NULL, @@ -1039,13 +1086,14 @@ T38FaxProfile ::= SEQUENCE { transcodingMMR BOOLEAN, ..., version INTEGER(0..255), - -- Version 0, the default, refers to T.38 (1998) + -- Version 0, the default, refers to + -- T.38 (1998) t38FaxRateManagement T38FaxRateManagement, -- The default Data Rate Management is -- determined by the choice of -- DataProtocolCapability t38FaxUdpOptions T38FaxUdpOptions OPTIONAL, - -- For UDP, t38UDPRedundancy is the default + -- For UDP, t38UDPRedundancy is the default t38FaxTcpOptions T38FaxTcpOptions OPTIONAL } @@ -1068,21 +1116,24 @@ T38FaxTcpOptions ::= SEQUENCE {t38TCPBidirectionalMode BOOLEAN, ... } --- =================================================================================== --- Encryption Capability Definitions: --- =================================================================================== +-- ============================================================================= +-- Encryption Capability Definitions +-- ============================================================================= EncryptionAuthenticationAndIntegrity ::= SEQUENCE { - encryptionCapability EncryptionCapability OPTIONAL, - authenticationCapability AuthenticationCapability OPTIONAL, - integrityCapability IntegrityCapability OPTIONAL, - ... + encryptionCapability EncryptionCapability OPTIONAL, + authenticationCapability AuthenticationCapability OPTIONAL, + integrityCapability IntegrityCapability OPTIONAL, + ..., + genericH235SecurityCapability GenericCapability OPTIONAL } EncryptionCapability ::= SEQUENCE SIZE (1..256) OF MediaEncryptionAlgorithm MediaEncryptionAlgorithm ::= CHOICE { nonStandard NonStandardParameter, - algorithm OBJECT IDENTIFIER, -- many defined in ISO/IEC 9979 + algorithm OBJECT IDENTIFIER, -- many defined + + -- in ISO/IEC 9979 ... } @@ -1097,29 +1148,36 @@ IntegrityCapability ::= SEQUENCE { ... } --- ================================================================================ +-- ============================================================================= -- Capability Exchange Definitions: UserInput --- ================================================================================ +-- ============================================================================= UserInputCapability ::= CHOICE { - nonStandard SEQUENCE SIZE (1..16) OF NonStandardParameter, - basicString NULL, -- alphanumeric - iA5String NULL, -- alphanumeric - generalString NULL, -- alphanumeric - dtmf NULL, -- supports dtmf using signal and signalUpdate - hookflash NULL, -- supports hookflash using signal + nonStandard SEQUENCE SIZE (1..16) OF NonStandardParameter, + basicString NULL, -- alphanumeric + iA5String NULL, -- alphanumeric + generalString NULL, -- alphanumeric + dtmf NULL, -- supports dtmf using signal + + -- and signalUpdate + hookflash NULL, -- supports hookflash using signal ..., - extendedAlphanumeric NULL, - encryptedBasicString NULL, -- encrypted Basic string in encryptedAlphanumeric - encryptedIA5String NULL, -- encrypted IA5 string in encryptedSignalType - encryptedGeneralString NULL, -- encrypted general string in + extendedAlphanumeric NULL, + encryptedBasicString NULL, -- encrypted Basic string in + + -- encryptedAlphanumeric + encryptedIA5String NULL, -- encrypted IA5 string in + + -- encryptedSignalType + encryptedGeneralString NULL, -- encrypted general string in -- extendedAlphanumeric.encryptedalphanumeric - secureDTMF NULL -- secure DTMF using encryptedSignalType + secureDTMF NULL, -- secure DTMF using encryptedSignalType + genericUserInputCapability GenericCapability } --- =================================================================================== +-- ============================================================================= -- Capability Exchange Definitions: Conference --- =================================================================================== +-- ============================================================================= ConferenceCapability ::= SEQUENCE { nonStandardData SEQUENCE OF NonStandardParameter OPTIONAL, @@ -1129,16 +1187,17 @@ ConferenceCapability ::= SEQUENCE { multipointVisualizationCapability BOOLEAN OPTIONAL -- same as H.230 MVC } --- =================================================================================== +-- ============================================================================= -- Capability Exchange Definitions: Generic Capability --- =================================================================================== +-- ============================================================================= GenericCapability ::= SEQUENCE { capabilityIdentifier CapabilityIdentifier, - maxBitRate INTEGER(0..4294967295) OPTIONAL, -- Units 100 bit/s + maxBitRate INTEGER(0..4294967295) OPTIONAL, + -- Units 100 bit/s collapsing SEQUENCE OF GenericParameter OPTIONAL, nonCollapsing SEQUENCE OF GenericParameter OPTIONAL, - nonCollapsingRaw OCTET STRING OPTIONAL, -- Typically contains ASN.1 - + nonCollapsingRaw OCTET STRING OPTIONAL, + -- Typically contains ASN.1 -- PER encoded data describing capability transport DataProtocolCapability OPTIONAL, ... @@ -1146,7 +1205,7 @@ GenericCapability ::= SEQUENCE { CapabilityIdentifier ::= CHOICE { standard OBJECT IDENTIFIER, - -- e.g. { itu-t (0) recommendation (0) h (8) 267 + -- e.g., { itu-t (0) recommendation (0) h (8) 267 -- version (0) 2 subIdentifier (0)} h221NonStandard NonStandardParameter, uuid OCTET STRING(SIZE (16)), @@ -1154,9 +1213,10 @@ CapabilityIdentifier ::= CHOICE { ... } --- 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. +-- 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. GenericParameter ::= SEQUENCE { parameterIdentifier ParameterIdentifier, parameterValue ParameterValue, @@ -1165,32 +1225,52 @@ GenericParameter ::= SEQUENCE { } ParameterIdentifier ::= CHOICE { - standard INTEGER(0..127), -- Assigned by Capability specifications - h221NonStandard NonStandardParameter, -- N.B. NonStandardIdentifier is + standard INTEGER(0..127), -- Assigned by + + -- Capability + -- specifications + h221NonStandard NonStandardParameter, -- N.B. + + -- NonStandardIdentifier + -- is not sufficient in + -- this case + uuid OCTET STRING(SIZE (16)), -- For non- - -- not sufficient in this case - uuid OCTET STRING(SIZE (16)), -- For non-standard + -- standard domainBased IA5String(SIZE (1..64)), ... } ParameterValue ::= CHOICE { - logical NULL, -- Only acceptable if all + logical NULL, -- Only acceptable if + + -- all entities + -- include this option + booleanArray INTEGER(0..255), -- array of 8 logical + + -- types + unsignedMin INTEGER(0..65535), -- Look for min + + -- common value + unsignedMax INTEGER(0..65535), -- Look for max + + -- common value + unsigned32Min INTEGER(0..4294967295), -- Look for min + + -- common value + unsigned32Max INTEGER(0..4294967295), -- Look for max + + -- common value + octetString OCTET STRING, -- non-collapsing - -- entities include this option - booleanArray INTEGER(0..255), -- array of 8 logical types - unsignedMin INTEGER(0..65535), -- Look for min common value - unsignedMax INTEGER(0..65535), -- Look for max common value - unsigned32Min INTEGER(0..4294967295), -- Look for min common value - unsigned32Max INTEGER(0..4294967295), -- Look for max common value - octetString OCTET STRING, -- non-collapsing octet string + -- octet string genericParameter SEQUENCE OF GenericParameter, ... } --- =================================================================================== +-- ============================================================================= -- Capability Exchange Definitions: Multiplexed Stream Capability --- =================================================================================== +-- ============================================================================= MultiplexedStreamCapability ::= SEQUENCE { multiplexFormat MultiplexFormat, controlOnMuxStream BOOLEAN, @@ -1205,12 +1285,14 @@ MultiplexFormat ::= CHOICE { ... } --- =================================================================================== +-- ============================================================================= -- Capability Exchange Definitions: AudioTelephonyEventCapability and AudioToneCapability --- =================================================================================== +--============================================================================== AudioTelephonyEventCapability ::= SEQUENCE { dynamicRTPPayloadType INTEGER(96..127), - audioTelephoneEvent GeneralString, -- As per <list of values> in 3.9/RFC2833 + audioTelephoneEvent GeneralString, -- As per <list of values> + + -- in 3.9/RFC 2833 ... } @@ -1218,27 +1300,28 @@ AudioToneCapability ::= SEQUENCE {dynamicRTPPayloadType INTEGER(96..127), ... } --- The following defintions are as above but without a Payload Type field +-- The following definitions are as above but without a Payload Type field. NoPTAudioTelephonyEventCapability ::= SEQUENCE { - audioTelephoneEvent GeneralString, -- As per <list of values> in 3.9/RFC2833 + audioTelephoneEvent GeneralString, -- As per <list of values> in 3.9/RFC 2833 ... } NoPTAudioToneCapability ::= SEQUENCE {... } --- =================================================================================== +-- ============================================================================= -- Capability Exchange Definitions: MultiplePayloadStreamCapability --- =================================================================================== +-- ============================================================================= MultiplePayloadStreamCapability ::= SEQUENCE { capabilities SET SIZE (1..256) OF AlternativeCapabilitySet, ... } --- =================================================================================== +-- ============================================================================= -- Capability Exchange Definitions: FECCapability --- =================================================================================== -FECCapability ::= CHOICE { +-- ============================================================================= +DepFECCapability ::= CHOICE -- Deprecated, do not use + { rfc2733 SEQUENCE {redundancyEncoding BOOLEAN, separateStream @@ -1249,12 +1332,27 @@ FECCapability ::= CHOICE { ... } --- =================================================================================== +FECCapability ::= SEQUENCE { + protectedCapability CapabilityTableEntryNumber, + fecScheme OBJECT IDENTIFIER OPTIONAL, + -- identifies encoding scheme + rfc2733Format + CHOICE {rfc2733rfc2198 MaxRedundancy, -- RFC2198 -- + rfc2733sameport MaxRedundancy, -- separate packet, same port-- + rfc2733diffport MaxRedundancy + } -- separate packet and port -- OPTIONAL, + ... +} + +MaxRedundancy ::= INTEGER(1..MAX) + +-- ============================================================================= -- Logical channel signalling definitions --- =================================================================================== --- "Forward" is used to refer to transmission in the direction from the terminal making the --- original request for a logical channel to the other terminal, and "reverse" is used to refer --- to the opposite direction of transmission, in the case of a bi-directional channel request. +-- ============================================================================= +-- "Forward" is used to refer to transmission in the direction from the terminal +-- making the original request for a logical channel to the other terminal, and +-- "reverse" is used to refer to the opposite direction of transmission, in the +-- case of a bidirectional channel request. OpenLogicalChannel ::= SEQUENCE { forwardLogicalChannelNumber LogicalChannelNumber, forwardLogicalChannelParameters @@ -1271,14 +1369,16 @@ OpenLogicalChannel ::= SEQUENCE { h2250LogicalChannelParameters H2250LogicalChannelParameters, none NULL}, -- for use with Separate Stack when-- - -- multiplexParameters are not required - -- or appropriate + -- multiplexParameters are not + -- required or appropriate ..., forwardLogicalChannelDependency LogicalChannelNumber OPTIONAL, - -- also used to refer to the primary logical channel when using video redundancy coding + -- also used to refer to the primary + -- logical channel when using video + -- redundancy coding replacementFor LogicalChannelNumber OPTIONAL }, - -- Used to specify the reverse channel for bi-directional open request + -- Used to specify the reverse channel for bidirectional open request reverseLogicalChannelParameters SEQUENCE {dataType DataType, multiplexParameters @@ -1292,20 +1392,25 @@ OpenLogicalChannel ::= SEQUENCE { H2250LogicalChannelParameters} OPTIONAL, -- Not present for H.222-- ..., reverseLogicalChannelDependency LogicalChannelNumber OPTIONAL, - -- also used to refer to the primary logical channel when using video redundancy coding + -- also used to refer to the primary logical channel when using + -- video redundancy coding replacementFor LogicalChannelNumber OPTIONAL - } OPTIONAL, -- Not present for uni-directional channel request + } OPTIONAL, -- Not present for unidirectional channel request ..., - separateStack NetworkAccessParameters OPTIONAL, -- for Open responder to establish the stack - encryptionSync EncryptionSync OPTIONAL -} -- used only by Master + separateStack NetworkAccessParameters OPTIONAL, + -- for Open responder to establish the stack + encryptionSync EncryptionSync OPTIONAL, + genericInformation SEQUENCE OF GenericInformation OPTIONAL +} +-- generic information associated +-- with the message LogicalChannelNumber ::= INTEGER(1..65535) NetworkAccessParameters ::= SEQUENCE { distribution CHOICE {unicast NULL, - multicast NULL, -- For Further Study in T.120-- + multicast NULL, -- for further study in T.120-- ...} OPTIONAL, networkAddress CHOICE {q2931Address Q2931Address, @@ -1348,6 +1453,7 @@ DataType ::= CHOICE { multiplexedStream MultiplexedStreamParameter, redundancyEncoding RedundancyEncoding, multiplePayloadStream MultiplePayloadStream, + depFec DepFECData, -- Deprecated, do not use fec FECData } @@ -1361,6 +1467,7 @@ H235Media ::= SEQUENCE { ..., redundancyEncoding RedundancyEncoding, multiplePayloadStream MultiplePayloadStream, + depFec DepFECData, -- Deprecated, do not use-- fec FECData}, ... } @@ -1389,8 +1496,7 @@ H223LogicalChannelParameters ::= SEQUENCE { al2WithSequenceNumbers NULL, al3 SEQUENCE {controlFieldOctets INTEGER(0..2), - sendBufferSize INTEGER(0..16777215) -- units octets - }, + sendBufferSize INTEGER(0..16777215)}, -- units octets-- ..., al1M H223AL1MParameters, al2M H223AL2MParameters, @@ -1512,7 +1618,9 @@ H2250LogicalChannelParameters ::= SEQUENCE { associatedSessionID INTEGER(1..255) OPTIONAL, mediaChannel TransportAddress OPTIONAL, mediaGuaranteedDelivery BOOLEAN OPTIONAL, - mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel + mediaControlChannel TransportAddress OPTIONAL, -- reverse + + -- RTCP channel mediaControlGuaranteedDelivery BOOLEAN OPTIONAL, silenceSuppression BOOLEAN OPTIONAL, destination TerminalLabel OPTIONAL, @@ -1569,7 +1677,8 @@ MultiplePayloadStreamElement ::= SEQUENCE { ... } -FECData ::= CHOICE { +DepFECData ::= CHOICE -- Deprecated, do not use + { rfc2733 SEQUENCE {mode CHOICE {redundancyEncoding NULL, @@ -1589,6 +1698,21 @@ FECData ::= CHOICE { ...} } +FECData ::= CHOICE { + rfc2733 + SEQUENCE {protectedPayloadType INTEGER(0..127), + fecScheme OBJECT IDENTIFIER OPTIONAL, + pktMode + CHOICE {rfc2198coding NULL, + rfc2733sameport SEQUENCE {...}, + rfc2733diffport + SEQUENCE {protectedChannel LogicalChannelNumber, + ...}, + ...}, + ...}, + ... +} + TransportAddress ::= CHOICE { unicastAddress UnicastAddress, multicastAddress MulticastAddress, @@ -1638,15 +1762,20 @@ 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 for H.324, etc + nonStandard NonStandardParameter OPTIONAL, + synchFlag INTEGER(0..255), -- may need to be larger - -- shall be the Dynamic Payload# for H.323 - h235Key OCTET STRING(SIZE (1..65535)), -- H.235 encoded value - escrowentry SEQUENCE SIZE (1..256) OF EscrowData OPTIONAL, - ... + -- for H.324, etc. + -- shall be the Dynamic + -- Payload# for H.323 + h235Key OCTET STRING(SIZE (1..65535)), -- H.235 + + -- encoded value + escrowentry SEQUENCE SIZE (1..256) OF EscrowData OPTIONAL, + ..., + genericParameter GenericParameter OPTIONAL } EscrowData ::= SEQUENCE { @@ -1666,22 +1795,27 @@ OpenLogicalChannelAck ::= SEQUENCE { -- H.223 parameters are never present in reverse direction ..., h2250LogicalChannelParameters - H2250LogicalChannelParameters} OPTIONAL, -- Not present for H.223-- + H2250LogicalChannelParameters} OPTIONAL, -- not present for H.223-- ..., replacementFor LogicalChannelNumber OPTIONAL - } OPTIONAL, -- Not present for uni-directional channel request + } OPTIONAL, -- not present for unidirectional channel + + -- request ..., separateStack NetworkAccessParameters OPTIONAL, - -- for Open requester to establish the stack + -- for Open requester to establish + -- the stack forwardMultiplexAckParameters CHOICE {-- H.222 parameters are never present in the Ack -- H.223 parameters are never present in the Ack - -- V.76 parameters are never present in the Ack + -- V.76 parameters are never present in the Ack h2250LogicalChannelAckParameters H2250LogicalChannelAckParameters, ...} OPTIONAL, - encryptionSync EncryptionSync OPTIONAL -- used only by Master -} + encryptionSync EncryptionSync OPTIONAL, -- used only by Master + genericInformation SEQUENCE OF GenericInformation OPTIONAL +} -- generic information associated +-- with the message OpenLogicalChannelReject ::= SEQUENCE { forwardLogicalChannelNumber LogicalChannelNumber, cause @@ -1699,21 +1833,33 @@ OpenLogicalChannelReject ::= SEQUENCE { masterSlaveConflict NULL, waitForCommunicationMode NULL, invalidDependentChannel NULL, - replacementForRejected NULL}, - ... + replacementForRejected NULL, + securityDenied NULL}, + ..., + genericInformation SEQUENCE OF GenericInformation OPTIONAL } +-- generic information associated +-- with the message OpenLogicalChannelConfirm ::= SEQUENCE { forwardLogicalChannelNumber LogicalChannelNumber, - ... + ..., + genericInformation SEQUENCE OF GenericInformation OPTIONAL } +-- generic information associated +-- with the message H2250LogicalChannelAckParameters ::= SEQUENCE { nonStandard SEQUENCE OF NonStandardParameter OPTIONAL, sessionID INTEGER(1..255) OPTIONAL, mediaChannel TransportAddress OPTIONAL, - mediaControlChannel TransportAddress OPTIONAL, -- forward RTCP channel - dynamicRTPPayloadType INTEGER(96..127) OPTIONAL, -- used only by the master or MC + mediaControlChannel TransportAddress OPTIONAL, -- forward RTCP + + -- channel + dynamicRTPPayloadType INTEGER(96..127) OPTIONAL, -- used only by + + -- the master or + -- MC ..., flowControlToZero BOOLEAN, portNumber INTEGER(0..65535) OPTIONAL @@ -1765,9 +1911,9 @@ RequestChannelCloseRelease ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- H.223 multiplex table definitions --- =================================================================================== +-- ============================================================================= MultiplexEntrySend ::= SEQUENCE { sequenceNumber SequenceNumber, multiplexEntryDescriptors SET SIZE (1..15) OF MultiplexEntryDescriptor, @@ -1786,10 +1932,8 @@ MultiplexElement ::= SEQUENCE { subElementList SEQUENCE SIZE (2..255) OF MultiplexElement }, repeatCount - CHOICE {-- repeats of type - finite INTEGER(1..65535), - -- used for last element - untilClosingFlag NULL} + CHOICE {finite INTEGER(1..65535), -- repeats of type-- + untilClosingFlag -- used for last element -- NULL} } MultiplexTableEntryNumber ::= INTEGER(1..15) @@ -1850,11 +1994,11 @@ RequestMultiplexEntryRelease ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Request mode definitions --- =================================================================================== --- RequestMode is a list, in order or preference, of modes that a terminal would like --- to have transmitted to it. +-- ============================================================================= +-- RequestMode is a list, in order or preference, of modes that a terminal would +-- like to have transmitted to it. RequestMode ::= SEQUENCE { sequenceNumber SequenceNumber, requestedModes SEQUENCE SIZE (1..256) OF ModeDescription, @@ -1883,9 +2027,9 @@ RequestModeReject ::= SEQUENCE { RequestModeRelease ::= SEQUENCE {... } --- =================================================================================== +-- ============================================================================= -- Request mode definitions: Mode description --- =================================================================================== +-- ============================================================================= ModeDescription ::= SET SIZE (1..256) OF ModeElement ModeElementType ::= CHOICE { @@ -1899,6 +2043,7 @@ ModeElementType ::= CHOICE { multiplexedStreamMode MultiplexedStreamParameter, redundancyEncodingDTMode RedundancyEncodingDTMode, multiplePayloadStreamMode MultiplePayloadStreamMode, + depFecMode DepFECMode, -- deprecated, do not use fecMode FECMode } @@ -1944,7 +2089,8 @@ RedundancyEncodingDTModeElement ::= SEQUENCE { dataMode DataMode, encryptionMode EncryptionMode, h235Mode H235Mode, - ...}, + ..., + fecMode FECMode}, ... } @@ -1957,7 +2103,8 @@ MultiplePayloadStreamElementMode ::= SEQUENCE {type ModeElementType, ... } -FECMode ::= CHOICE { +DepFECMode ::= CHOICE -- deprecated, do not use + { rfc2733Mode SEQUENCE {mode CHOICE {redundancyEncoding NULL, @@ -1977,6 +2124,19 @@ FECMode ::= CHOICE { ... } +FECMode ::= SEQUENCE { + protectedElement ModeElementType, + fecScheme OBJECT IDENTIFIER OPTIONAL, + -- identifies encoding scheme + rfc2733Format + CHOICE {rfc2733rfc2198 MaxRedundancy, -- RFC2198 redundancy-- + rfc2733sameport MaxRedundancy, + -- separate packet, same port + rfc2733diffport -- separate packet and port -- MaxRedundancy + } OPTIONAL, + ... +} + H223ModeParameters ::= SEQUENCE { adaptationLayerType CHOICE {nonStandard NonStandardParameter, @@ -1986,8 +2146,8 @@ H223ModeParameters ::= SEQUENCE { al2WithSequenceNumbers NULL, al3 SEQUENCE {controlFieldOctets INTEGER(0..2), - -- units octets - sendBufferSize INTEGER(0..16777215)}, + sendBufferSize + -- units octets -- INTEGER(0..16777215)}, ..., al1M H223AL1MParameters, al2M H223AL2MParameters, @@ -2016,9 +2176,9 @@ RedundancyEncodingMode ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Request mode definitions: Video modes --- =================================================================================== +-- ============================================================================= VideoMode ::= CHOICE { nonStandard NonStandardParameter, h261VideoMode H261VideoMode, @@ -2051,12 +2211,12 @@ H262VideoMode ::= SEQUENCE { profileAndLevel-HPatH-14 NULL, profileAndLevel-HPatHL NULL, ...}, - videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s - vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits + videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400 bit/s + vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16 384 bits samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame framesPerSecond INTEGER(0..15) OPTIONAL, -- frame_rate_code - luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec + luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/s ... } @@ -2082,18 +2242,28 @@ H263VideoMode ::= SEQUENCE { IS11172VideoMode ::= SEQUENCE { constrainedBitstream BOOLEAN, - videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units 400bit/s - vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units 16384bits - samplesPerLine INTEGER(0..16383) OPTIONAL, -- units samples/line - linesPerFrame INTEGER(0..16383) OPTIONAL, -- units lines/frame + videoBitRate INTEGER(0..1073741823) OPTIONAL, -- units + + -- 400 bit/s + vbvBufferSize INTEGER(0..262143) OPTIONAL, -- units + + -- 16 384 bits + samplesPerLine INTEGER(0..16383) OPTIONAL, -- units + + -- samples/line + linesPerFrame INTEGER(0..16383) OPTIONAL, -- units + + -- lines/frame pictureRate INTEGER(0..15) OPTIONAL, - luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units samples/sec + luminanceSampleRate INTEGER(0..4294967295) OPTIONAL, -- units + + -- samples/s ... } --- =================================================================================== +-- ============================================================================= -- Request mode definitions: Audio modes --- =================================================================================== +-- ============================================================================= AudioMode ::= CHOICE { nonStandard NonStandardParameter, g711Alaw64k NULL, @@ -2138,7 +2308,7 @@ IS11172AudioMode ::= SEQUENCE { CHOICE {singleChannel NULL, twoChannelStereo NULL, twoChannelDual NULL}, - bitRate INTEGER(1..448), --units kbit/s + bitRate INTEGER(1..448), -- units kbit/s ... } @@ -2167,7 +2337,7 @@ IS13818AudioMode ::= SEQUENCE { fiveChannels3-2 NULL}, lowFrequencyEnhancement BOOLEAN, multilingual BOOLEAN, - bitRate INTEGER(1..1130), --units kbit/s + bitRate INTEGER(1..1130), -- units kbit/s ... } @@ -2189,9 +2359,9 @@ VBDMode ::= SEQUENCE {type AudioMode, -- shall not be "vbd" ... } --- =================================================================================== +-- ============================================================================= -- Request mode definitions: Data modes --- =================================================================================== +-- ============================================================================= DataMode ::= SEQUENCE { application CHOICE {nonStandard NonStandardParameter, @@ -2217,18 +2387,18 @@ DataMode ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Request mode definitions: Encryption modes --- =================================================================================== +-- ============================================================================= EncryptionMode ::= CHOICE { nonStandard NonStandardParameter, h233Encryption NULL, ... } --- =================================================================================== +-- ============================================================================= -- Round Trip Delay definitions --- =================================================================================== +-- ============================================================================= RoundTripDelayRequest ::= SEQUENCE {sequenceNumber SequenceNumber, ... } @@ -2237,9 +2407,9 @@ RoundTripDelayResponse ::= SEQUENCE {sequenceNumber SequenceNumber, ... } --- =================================================================================== +-- ============================================================================= -- Maintenance Loop definitions --- =================================================================================== +-- ============================================================================= MaintenanceLoopRequest ::= SEQUENCE { type CHOICE {systemLoop NULL, @@ -2272,9 +2442,9 @@ MaintenanceLoopReject ::= SEQUENCE { MaintenanceLoopOffCommand ::= SEQUENCE {... } --- =================================================================================== +-- ============================================================================= -- Communication Mode definitions --- =================================================================================== +-- ============================================================================= CommunicationModeCommand ::= SEQUENCE { communicationModeTable SET SIZE (1..256) OF CommunicationModeTableEntry, ... @@ -2294,10 +2464,12 @@ CommunicationModeTableEntry ::= SEQUENCE { associatedSessionID INTEGER(1..255) OPTIONAL, terminalLabel TerminalLabel OPTIONAL, -- if not present, - -- it refers to all participants - -- in the conference + -- it refers to + -- all + -- participants in + -- the conference sessionDescription BMPString(SIZE (1..128)), - -- Basic ISO/IEC 10646-1 (Unicode) + -- Basic ISO/IEC 10646-1 (Unicode) dataType CHOICE {videoData VideoCapability, audioData AudioCapability, @@ -2305,7 +2477,8 @@ CommunicationModeTableEntry ::= SEQUENCE { ...}, mediaChannel TransportAddress OPTIONAL, mediaGuaranteedDelivery BOOLEAN OPTIONAL, - mediaControlChannel TransportAddress OPTIONAL, -- reverse RTCP channel + mediaControlChannel TransportAddress OPTIONAL, + -- reverse RTCP channel mediaControlGuaranteedDelivery BOOLEAN OPTIONAL, ..., redundancyEncoding RedundancyEncoding OPTIONAL, @@ -2313,9 +2486,9 @@ CommunicationModeTableEntry ::= SEQUENCE { destination TerminalLabel OPTIONAL } --- =================================================================================== +-- ============================================================================= -- Conference Request definitions --- =================================================================================== +-- ============================================================================= ConferenceRequest ::= CHOICE { terminalListRequest NULL, -- same as H.230 TCU (term->MC) makeMeChair NULL, -- same as H.230 CCA (term->MC) @@ -2346,7 +2519,9 @@ ConferenceRequest ::= CHOICE { CertSelectionCriteria ::= SEQUENCE SIZE (1..16) OF Criteria Criteria ::= SEQUENCE { - field OBJECT IDENTIFIER, -- may include certificate type + field OBJECT IDENTIFIER, -- may include + + -- certificate type value OCTET STRING(SIZE (1..65535)), ... } @@ -2361,50 +2536,50 @@ McuNumber ::= INTEGER(0..192) TerminalNumber ::= INTEGER(0..192) --- =================================================================================== +-- ============================================================================= -- Conference Response definitions --- =================================================================================== +-- ============================================================================= ConferenceResponse ::= CHOICE { mCTerminalIDResponse - SEQUENCE-- response to TCP(same as TIP)-- {-- sent by MC only--terminalLabel - - TerminalLabel, - terminalID - - TerminalID, - ... - }, + SEQUENCE-- response to TCP -- + -- (same as TIP) + {-- sent by MC only--terminalLabel TerminalLabel, + 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-- {terminalLabel - TerminalLabel, - terminalID - TerminalID, - ...}, + SEQUENCE-- response to TCA (same as TIR) -- + -- sent by MC only + {terminalLabel TerminalLabel, + terminalID TerminalID, + ...}, terminalCertificateResponse SEQUENCE {terminalLabel TerminalLabel OPTIONAL, certificateResponse OCTET STRING(SIZE (1..65535)) OPTIONAL, @@ -2443,9 +2618,9 @@ TerminalInformation ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Remote MC Request definitions --- =================================================================================== +-- ============================================================================= RemoteMCRequest ::= CHOICE { masterActivate NULL, slaveActivate NULL, @@ -2461,9 +2636,9 @@ RemoteMCResponse ::= CHOICE { ... } --- =================================================================================== +-- ============================================================================= -- Multilink definitions --- =================================================================================== +-- ============================================================================= MultilinkRequest ::= CHOICE { nonStandard NonStandardMessage, callInformation @@ -2479,7 +2654,9 @@ MultilinkRequest ::= CHOICE { maximumHeaderInterval SEQUENCE {requestType CHOICE {currentIntervalInformation NULL, - requestedInterval INTEGER(0..65535), -- Max Header Interval, milliseconds-- + requestedInterval INTEGER(0..65535), -- Max Header -- + -- Interval, + -- milliseconds ...}, ...}, ... @@ -2505,7 +2682,9 @@ MultilinkResponse ::= CHOICE { SEQUENCE {connectionIdentifier ConnectionIdentifier, ...}, maximumHeaderInterval - SEQUENCE {currentInterval INTEGER(0..65535), -- Max Header Interval, milliseconds-- + SEQUENCE {currentInterval INTEGER(0..65535), -- Max Header -- + -- Interval, + -- milliseconds ...}, ... } @@ -2521,9 +2700,12 @@ MultilinkIndication ::= CHOICE { DialingInformation ::= CHOICE { nonStandard NonStandardMessage, differential SET SIZE (1..65535) OF DialingInformationNumber, - -- list of numbers for all additional channels; only least - -- significant digits different from initial channel's number - infoNotAvailable INTEGER(1..65535), -- maximum no. of additional channels + -- list of numbers for all additional + -- channels; only least significant digits + -- different from initial channel's number + infoNotAvailable INTEGER(1..65535), -- maximum No. of + + -- additional channels ... } @@ -2548,9 +2730,9 @@ ConnectionIdentifier ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Logical channel bit-rate change definitions --- =================================================================================== +-- ============================================================================= MaximumBitRate ::= INTEGER(0..4294967295) -- units of 100 bit/s @@ -2585,12 +2767,12 @@ LogicalChannelRateRejectReason ::= CHOICE { LogicalChannelRateRelease ::= SEQUENCE {... } --- =================================================================================== +-- ============================================================================= -- Command Message definitions --- =================================================================================== --- =================================================================================== --- Command Message : Send Terminal Capability Set --- =================================================================================== +-- ============================================================================= +-- ============================================================================= +-- Command Message: Send Terminal Capability Set +-- ============================================================================= SendTerminalCapabilitySet ::= CHOICE { specificRequest SEQUENCE {multiplexCapability BOOLEAN, @@ -2603,11 +2785,13 @@ SendTerminalCapabilitySet ::= CHOICE { ... } --- =================================================================================== --- Command Message : Encryption --- =================================================================================== +-- ============================================================================= +-- Command Message: Encryption +-- ============================================================================= EncryptionCommand ::= CHOICE { - encryptionSE OCTET STRING, -- per H.233, but no error protection + encryptionSE OCTET STRING, -- per H.233, but no + + -- error protection encryptionIVRequest NULL, -- requests new IV encryptionAlgorithmID SEQUENCE {h233AlgorithmIdentifier SequenceNumber, @@ -2615,9 +2799,9 @@ EncryptionCommand ::= CHOICE { ... } --- =================================================================================== --- Command Message : Flow Control --- =================================================================================== +-- ============================================================================= +-- Command Message: Flow Control +-- ============================================================================= FlowControlCommand ::= SEQUENCE { scope CHOICE {logicalChannelNumber LogicalChannelNumber, @@ -2629,12 +2813,12 @@ FlowControlCommand ::= SEQUENCE { ... } --- =================================================================================== --- Command Message : Change or End Session --- =================================================================================== +-- ============================================================================= +-- Command Message: Change or End Session +-- ============================================================================= EndSessionCommand ::= CHOICE { - nonStandard NonStandardParameter, - disconnect NULL, + nonStandard NonStandardParameter, + disconnect NULL, gstnOptions CHOICE {telephonyMode NULL, v8bis NULL, @@ -2647,19 +2831,28 @@ EndSessionCommand ::= CHOICE { CHOICE {telephonyMode NULL, v140 NULL, terminalOnHold NULL, - ...} + ...}, + genericInformation + -- generic information associated with the message -- SEQUENCE OF + GenericInformation } --- =================================================================================== --- Command Message : Conference Commands --- =================================================================================== +-- ============================================================================= +-- Command Message: Conference Commands +-- ============================================================================= ConferenceCommand ::= CHOICE { broadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 MCV - cancelBroadcastMyLogicalChannel LogicalChannelNumber, -- similar to H.230 Cancel-MCV + cancelBroadcastMyLogicalChannel LogicalChannelNumber, -- similar to + + -- H.230 Cancel-MCV makeTerminalBroadcaster TerminalLabel, -- same as H.230 VCB - cancelMakeTerminalBroadcaster NULL, -- same as H.230 Cancel-VCB + cancelMakeTerminalBroadcaster NULL, -- same as H.230 + + -- Cancel-VCB sendThisSource TerminalLabel, -- same as H.230 VCS - cancelSendThisSource NULL, -- same as H.230 cancel VCS + cancelSendThisSource NULL, -- same as H.230 + + -- cancel VCS dropConference NULL, -- same as H.230 CCK ..., substituteConferenceIDCommand SubstituteConferenceIDCommand @@ -2670,9 +2863,9 @@ SubstituteConferenceIDCommand ::= SEQUENCE { ... } --- =================================================================================== --- Command Message : Miscellaneous H.230-like commands --- =================================================================================== +-- ============================================================================= +-- Command Message: Miscellaneous H.230-like commands +-- ============================================================================= EncryptionUpdateDirection ::= CHOICE { masterToSlave NULL, slaveToMaster NULL, @@ -2728,14 +2921,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), ...}}, @@ -2744,7 +2937,7 @@ 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, @@ -2764,9 +2957,9 @@ PictureReference ::= CHOICE { ... } --- =================================================================================== --- Command Message : H.223 Multiplex Reconfiguration --- =================================================================================== +-- ============================================================================= +-- Command Message: H.223 Multiplex Reconfiguration +-- ============================================================================= H223MultiplexReconfiguration ::= CHOICE { h223ModeChange CHOICE {toLevel0 NULL, @@ -2780,9 +2973,9 @@ H223MultiplexReconfiguration ::= CHOICE { ... } --- =================================================================================== --- Command Message : New ATM virtual channel command --- =================================================================================== +-- ============================================================================= +-- Command Message: New ATM virtual channel command +-- ============================================================================= NewATMVCCommand ::= SEQUENCE { resourceID INTEGER(0..65535), bitRate INTEGER(1..65535), -- units 64 kbit/s @@ -2827,9 +3020,9 @@ NewATMVCCommand ::= SEQUENCE { ... } --- =================================================================================== --- Command Message : Mobile Multilink Reconfiguration command --- =================================================================================== +-- ============================================================================= +-- Command Message: Mobile Multilink Reconfiguration command +-- ============================================================================= MobileMultilinkReconfigurationCommand ::= SEQUENCE { sampleSize INTEGER(1..255), samplesPerFrame INTEGER(1..255), @@ -2839,12 +3032,12 @@ MobileMultilinkReconfigurationCommand ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Indication Message definitions --- =================================================================================== --- =================================================================================== --- Indication Message : Function not understood --- =================================================================================== +-- ============================================================================= +-- ============================================================================= +-- Indication Message: Function not understood +-- ============================================================================= -- This is used to return a request, response or command that is not understood FunctionNotUnderstood ::= CHOICE { request RequestMessage, @@ -2852,10 +3045,11 @@ FunctionNotUnderstood ::= CHOICE { command CommandMessage } --- =================================================================================== --- Indication Message : Function not Supported --- =================================================================================== --- This is used to return a complete request, response or command that is not recognized +-- ============================================================================= +-- Indication Message: Function not Supported +-- ============================================================================= +-- This is used to return a complete request, response or command that is not +-- recognized FunctionNotSupported ::= SEQUENCE { cause CHOICE {syntaxError NULL, @@ -2866,9 +3060,9 @@ FunctionNotSupported ::= SEQUENCE { ... } --- =================================================================================== --- Indication Message : Conference --- =================================================================================== +-- ============================================================================= +-- Indication Message: Conference +-- ============================================================================= ConferenceIndication ::= CHOICE { sbeNumber INTEGER(0..9), -- same as H.230 SBE Number terminalNumberAssign TerminalLabel, -- same as H.230 TIA @@ -2881,12 +3075,8 @@ ConferenceIndication ::= CHOICE { terminalYouAreSeeing TerminalLabel, -- same as H.230 VIN requestForFloor NULL, -- same as H.230 TIF ..., - withdrawChairToken NULL, -- same as H.230 CCR - - -- MC-> chair - floorRequested TerminalLabel, -- same as H.230 TIF - - -- MC-> chair + withdrawChairToken NULL, -- same as H.230 CCR MC-> chair + floorRequested TerminalLabel, -- same as H.230 TIF MC-> chair terminalYouAreSeeingInSubPictureNumber TerminalYouAreSeeingInSubPictureNumber, videoIndicateCompose VideoIndicateCompose @@ -2902,9 +3092,9 @@ VideoIndicateCompose ::= SEQUENCE {compositionNumber INTEGER(0..255), ... } --- =================================================================================== --- Indication Message : Miscellaneous H.230-like indication --- =================================================================================== +-- ============================================================================= +-- Indication Message: Miscellaneous H.230-like indication +-- ============================================================================= MiscellaneousIndication ::= SEQUENCE { logicalChannelNumber LogicalChannelNumber, type @@ -2917,7 +3107,8 @@ MiscellaneousIndication ::= SEQUENCE { multipointSecondaryStatus NULL, -- same as H.230 MIS-- cancelMultipointSecondaryStatus NULL, -- same as H.230 cancel MIS-- videoIndicateReadyToActivate NULL, -- same as H.230 VIR-- - videoTemporalSpatialTradeOff INTEGER(0..31), -- indicates current trade-off-- + videoTemporalSpatialTradeOff INTEGER(0..31), -- indicates current -- + -- trade-off ..., videoNotDecodedMBs SEQUENCE {firstMB INTEGER(1..8192), @@ -2928,9 +3119,9 @@ MiscellaneousIndication ::= SEQUENCE { ... } --- =================================================================================== --- Indication Message : Jitter Indication --- =================================================================================== +-- ============================================================================= +-- Indication Message: Jitter Indication +-- ============================================================================= JitterIndication ::= SEQUENCE { scope CHOICE {logicalChannelNumber LogicalChannelNumber, @@ -2939,13 +3130,14 @@ JitterIndication ::= SEQUENCE { estimatedReceivedJitterMantissa INTEGER(0..3), estimatedReceivedJitterExponent INTEGER(0..7), skippedFrameCount INTEGER(0..15) OPTIONAL, - additionalDecoderBuffer INTEGER(0..262143) OPTIONAL, -- 262143 is 2^18 - 1 + additionalDecoderBuffer INTEGER(0..262143) OPTIONAL, + -- 262143 is 2^18 - 1 ... } --- =================================================================================== --- Indication Message : H.223 logical channel skew --- =================================================================================== +-- ============================================================================= +-- Indication Message: H.223 logical channel skew +-- ============================================================================= H223SkewIndication ::= SEQUENCE { logicalChannelNumber1 LogicalChannelNumber, logicalChannelNumber2 LogicalChannelNumber, @@ -2953,9 +3145,9 @@ H223SkewIndication ::= SEQUENCE { ... } --- =================================================================================== +-- ============================================================================= -- Indication Message : H.225.0 maximum logical channel skew --- =================================================================================== +-- ============================================================================= H2250MaximumSkewIndication ::= SEQUENCE { logicalChannelNumber1 LogicalChannelNumber, logicalChannelNumber2 LogicalChannelNumber, @@ -2963,30 +3155,33 @@ H2250MaximumSkewIndication ::= SEQUENCE { ... } --- =================================================================================== --- Indication Message : MC Location Indication --- =================================================================================== +-- ============================================================================= +-- Indication Message: MC Location Indication +-- ============================================================================= MCLocationIndication ::= SEQUENCE { - signalAddress TransportAddress, -- this is the H.323 Call Signalling + signalAddress TransportAddress, -- this is the - -- address of the entity which - -- contains the MC + -- H.323 Call Signalling + -- address of the entity + -- which contains the MC ... } --- =================================================================================== --- Indication Message : Vendor Identification --- =================================================================================== +-- ============================================================================= +-- Indication Message: Vendor Identification +-- ============================================================================= VendorIdentification ::= SEQUENCE { vendor NonStandardIdentifier, - productNumber OCTET STRING(SIZE (1..256)) OPTIONAL, -- per vendor - versionNumber OCTET STRING(SIZE (1..256)) OPTIONAL, -- per productNumber + productNumber OCTET STRING(SIZE (1..256)) OPTIONAL, + -- per vendor + versionNumber OCTET STRING(SIZE (1..256)) OPTIONAL, + -- per productNumber ... } --- =================================================================================== --- Indication Message : New ATM virtual channel indication --- =================================================================================== +-- ============================================================================= +-- Indication Message: New ATM virtual channel indication +-- ============================================================================= NewATMVCIndication ::= SEQUENCE { resourceID INTEGER(0..65535), bitRate INTEGER(1..65535), -- units 64 kbit/s @@ -3031,16 +3226,16 @@ NewATMVCIndication ::= SEQUENCE { ...} } --- =================================================================================== --- Indication Message : user input --- =================================================================================== -IV8 ::= OCTET STRING(SIZE (8)) -- initial value for - +-- ============================================================================= +-- Indication Message: User input +-- ============================================================================= +IV8 ::= OCTET STRING(SIZE (8)) +-- initial value for -- 64-bit block ciphers -IV16 ::= OCTET STRING(SIZE (16)) -- initial value for - +IV16 ::= OCTET STRING(SIZE (16)) +-- initial value for -- 128-bit block ciphers Params ::= SEQUENCE { iv8 IV8 OPTIONAL, -- 8 octet initialization vector @@ -3057,24 +3252,21 @@ UserInputIndication ::= CHOICE { ..., userInputSupportIndication CHOICE {nonStandard NonStandardParameter, - -- indicates unsecured basic string - basicString NULL, - -- indicates unsecured iA5 string - iA5String NULL, - -- indicates unsecured general string - generalString NULL, + basicString NULL, -- indicates unsecured basic string-- + iA5String NULL, -- indicates unsecured iA5 string-- + generalString NULL, -- indicates unsecured general string-- ..., - -- indicates encrypted Basic string - encryptedBasicString NULL, - -- indicates encrypted IA5 string - encryptedIA5String NULL, - -- indicates encrypted general string - encryptedGeneralString NULL}, + encryptedBasicString NULL, -- indicates encrypted Basic string-- + encryptedIA5String NULL, -- indicates encrypted IA5 string-- + encryptedGeneralString NULL -- indicates encrypted general string + }, signal SEQUENCE {signalType IA5String(SIZE (1) ^ FROM ("0123456789#*ABCD!")), - -- holds dummy "!" if encryptedSignalType is being used - duration INTEGER(1..65535) OPTIONAL, -- milliseconds-- + -- holds dummy "!" if encryptedSignalType + -- is being used + duration INTEGER(1..65535) OPTIONAL, + -- milliseconds rtp SEQUENCE {timestamp INTEGER(0..4294967295) OPTIONAL, expirationTime INTEGER(0..4294967295) OPTIONAL, @@ -3082,11 +3274,10 @@ UserInputIndication ::= CHOICE { ...} OPTIONAL, ..., rtpPayloadIndication NULL OPTIONAL, - -- any "runtime" parameters - paramS Params OPTIONAL, + paramS Params OPTIONAL, -- any "runtime" parameters-- + encryptedSignalType OCTET STRING(SIZE (1)) OPTIONAL, -- encrypted signalType - encryptedSignalType OCTET STRING(SIZE (1)) OPTIONAL - }, + algorithmOID OBJECT IDENTIFIER OPTIONAL}, signalUpdate SEQUENCE {duration INTEGER(1..65535), -- milliseconds-- rtp @@ -3095,7 +3286,8 @@ UserInputIndication ::= CHOICE { ...}, extendedAlphanumeric SEQUENCE {alphanumeric GeneralString, -- holds empty string if-- - -- encryptedAlphanumeric is being used + -- encryptedAlphanumeric is + -- being used rtpPayloadIndication NULL OPTIONAL, ..., encryptedAlphanumeric @@ -3107,26 +3299,29 @@ UserInputIndication ::= CHOICE { SEQUENCE {algorithmOID OBJECT IDENTIFIER, paramS Params OPTIONAL, -- any "runtime" parameters-- encrypted OCTET STRING, -- basic string encrypted-- - ...} + ...}, + genericInformation + -- generic information associated with the message -- SEQUENCE OF + GenericInformation } --- =================================================================================== --- Indication Message : Flow Control --- =================================================================================== +-- ============================================================================= +-- Indication Message: Flow Control +-- ============================================================================= FlowControlIndication ::= SEQUENCE { scope CHOICE {logicalChannelNumber LogicalChannelNumber, resourceID INTEGER(0..65535), wholeMultiplex NULL}, restriction - CHOICE {maximumBitRate INTEGER(0..16777215), -- units 100 bit/s -- + CHOICE {maximumBitRate INTEGER(0..16777215), -- units 100 bit/s-- noRestriction NULL}, ... } --- =================================================================================== --- Indication Message : Mobile Multilink Reconfiguration indication --- =================================================================================== +-- ============================================================================= +-- Indication Message: Mobile Multilink Reconfiguration indication +-- ============================================================================= MobileMultilinkReconfigurationIndication ::= SEQUENCE { sampleSize INTEGER(1..255), samplesPerFrame INTEGER(1..255), diff --git a/asn1/h245/h245.cnf b/asn1/h245/h245.cnf index 1bc3e729a4..663186c2a3 100644 --- a/asn1/h245/h245.cnf +++ b/asn1/h245/h245.cnf @@ -19,11 +19,14 @@ Application DataApplicationCapability/application Nlpid Application/nlpid DataMode/application/nlpid Al3 H223LogicalChannelParameters/adaptationLayerType/al3 H223ModeParameters/adaptationLayerType/al3 ArqType H223AL1MParameters/arqType H223AL3MParameters/arqType -SeparateStream FECData/rfc2733/mode/separateStream FECMode/rfc2733Mode/mode/separateStream Restriction FlowControlCommand/restriction FlowControlIndication/restriction Scope FlowControlCommand/scope FlowControlIndication/scope JitterIndication/scope EncryptedAlphanumeric UserInputIndication/extendedAlphanumeric/encryptedAlphanumeric UserInputIndication/encryptedAlphanumeric +DepSeparateStream DepFECData/rfc2733/mode/separateStream DepFECMode/rfc2733Mode/mode/separateStream + +Rfc2733Format FECCapability/rfc2733Format FECMode/rfc2733Format + #---------------------------------------------------------------------------------------- #.FN_BODY MultiplexEntryDescriptor /*MultiplexEntryDescriptor*/ @@ -501,10 +504,10 @@ EncryptedAlphanumeric UserInputIndication/extendedAlphanumeric/encryptedAlphanu h245_lc_dissector = amr_handle; #.END #---------------------------------------------------------------------------------------- -#.FN_HDR GenericMessage/subMessageIdentifer +#.FN_HDR GenericMessage/subMessageIdentifier guint32 subMessageIdentifer; -#.FN_PARS GenericMessage/subMessageIdentifer +#.FN_PARS GenericMessage/subMessageIdentifier VAL_PTR = &subMessageIdentifer #.END #---------------------------------------------------------------------------------------- @@ -763,7 +766,7 @@ AudioMode/g7231 Mode_g7231 DataMode/application DataModeApplication DataMode/application/t38fax T38faxApp -FECData/rfc2733 RFC2733Data +DepFECData/rfc2733 RFC2733Data IS13818AudioMode/audioLayer IS13818AudioLayer IS13818AudioMode/audioSampling IS13818AudioSampling @@ -802,12 +805,12 @@ MaintenanceLoopReject/type Mlrej_type MiscellaneousCommand/type Mc_type MiscellaneousIndication/type Mi_type V76LogicalChannelParameters/mode V76LCP_mode -FECData/rfc2733/mode FECdata_mode -FECMode/rfc2733Mode/mode FEC_mode +DepFECData/rfc2733/mode FECdata_mode +DepFECMode/rfc2733Mode/mode FEC_mode IS11172AudioMode/multichannelType IS11172_multichannelType MultiplexElement/repeatCount/finite ME_finiteRepeatCount MultiplexElement/repeatCount ME_repeatCount -FECCapability/rfc2733 FECC_rfc2733 +DepFECCapability/rfc2733 FECC_rfc2733 RequestModeAck/response Req_mode_ack_response UserInputIndication/signalUpdate/rtp Si_rtp UnicastAddress/iPAddress/tsapIdentifier TsapIdentifier @@ -953,8 +956,8 @@ MultiplexEntrySendRelease/multiplexTableEntryNumber multiplexTableEntryNumbers CapabilityIdentifier/standard standardOid MiscellaneousIndication/type/videoNotDecodedMBs/temporalReference temporalReference_0_255 CloseLogicalChannel/source cLC_source -FECCapability/rfc2733/separateStream separateStreamBool -FECCapability/rfc2733/separateStream/samePort samePortBool +DepFECCapability/rfc2733/separateStream separateStreamBool +DepFECCapability/rfc2733/separateStream/samePort samePortBool VCCapability/aal1/srtsClockRecovery srtsClockRecovery_bool VCCapability/aal1ViaGateway/srtsClockRecovery srtsClockRecoveryflag DataMode/application/t84 t84DataProtocolCapability @@ -1014,9 +1017,10 @@ H223AL1MParameters/headerFEC aL1HeaderFEC H223AL1MParameters/crcLength crcLength2 H223AL3MParameters/crcLength crlength2 SendTerminalCapabilitySet/specificRequest/multiplexCapability multiplexCapabilityBool -FECCapability/rfc2733/redundancyEncoding redundancyEncodingBool -FECData/rfc2733/mode/redundancyEncoding redundancyEncodingFlag -FECMode/rfc2733Mode/mode/redundancyEncoding redundancyEncodingFlag +DepFECCapability/rfc2733/redundancyEncoding redundancyEncodingBool +DepFECData/rfc2733/mode/redundancyEncoding redundancyEncodingFlag +DepFECMode/rfc2733Mode/mode/redundancyEncoding redundancyEncodingFlag +ParameterValue/genericParameter genericParameters H261VideoCapability/qcifMPI qcifMPI_1_4 CustomPictureClockFrequency/qcifMPI qcifMPI_1_2048 @@ -1034,8 +1038,11 @@ FunctionNotSupported/cause fns_cause Restriction/maximumBitRate res_maximumBitRate RedundancyEncodingDTMode/primary prmary_dtmode RedundancyEncoding/rtpRedundancyEncoding/primary primary -FECMode/rfc2733Mode/mode fec_mode -FECData/rfc2733/mode fec_data_mode +DepFECData/rfc2733 dep_rfc2733 +DepFECMode/rfc2733Mode/mode fec_mode +DepFECData/rfc2733/mode fec_data_mode +FECData/rfc2733/pktMode/rfc2733sameport mode_rfc2733sameport +FECData/rfc2733/pktMode/rfc2733diffport mode_rfc2733diffport V76LogicalChannelParameters/mode v76_mode OpenLogicalChannelAck/reverseLogicalChannelParameters/multiplexParameters olc_ack_multiplexParameters OpenLogicalChannel/forwardLogicalChannelNumber olc_fw_lcn @@ -1046,7 +1053,7 @@ IS11172AudioMode/multichannelType is11172multichannelType IS13818AudioMode/multichannelType is13818MultichannelType CloseLogicalChannel/reason clc_reason MultiplexElement/repeatCount me_repeatCount -FECCapability/rfc2733 fecc_rfc2733 +DepFECCapability/rfc2733 fecc_rfc2733 RequestModeAck/response req_mode_ack_response UserInputIndication/signalUpdate/rtp si_rtp VCCapability/availableBitRates/type avb_type diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c index 0bbb45a33c..8cec9ece76 100644 --- a/epan/dissectors/packet-h245.c +++ b/epan/dissectors/packet-h245.c @@ -367,7 +367,7 @@ static int hf_h245_flowControlIndication = -1; /* FlowControlIndication */ static int hf_h245_mobileMultilinkReconfigurationIndication = -1; /* MobileMultilinkReconfigurationIndication */ static int hf_h245_genericIndication = -1; /* GenericMessage */ static int hf_h245_messageIdentifier = -1; /* CapabilityIdentifier */ -static int hf_h245_subMessageIdentifer = -1; /* T_subMessageIdentifer */ +static int hf_h245_subMessageIdentifier = -1; /* T_subMessageIdentifier */ static int hf_h245_messageContent = -1; /* SEQUENCE_OF_GenericParameter */ static int hf_h245_messageContent_item = -1; /* GenericParameter */ static int hf_h245_nonStandardData = -1; /* NonStandardParameter */ @@ -392,6 +392,8 @@ static int hf_h245_capabilityTable = -1; /* SET_SIZE_1_256_OF_Capabilit static int hf_h245_capabilityTable_item = -1; /* CapabilityTableEntry */ static int hf_h245_capabilityDescriptors = -1; /* SET_SIZE_1_256_OF_CapabilityDescriptor */ static int hf_h245_capabilityDescriptors_item = -1; /* CapabilityDescriptor */ +static int hf_h245_genericInformation = -1; /* SEQUENCE_OF_GenericInformation */ +static int hf_h245_genericInformation_item = -1; /* GenericInformation */ static int hf_h245_capabilityTableEntryNumber = -1; /* CapabilityTableEntryNumber */ static int hf_h245_capability = -1; /* Capability */ static int hf_h245_capabilityDescriptorNumber = -1; /* CapabilityDescriptorNumber */ @@ -430,8 +432,11 @@ static int hf_h245_transmitMultiplexedStreamCapability = -1; /* MultiplexedStre static int hf_h245_receiveAndTransmitMultiplexedStreamCapability = -1; /* MultiplexedStreamCapability */ static int hf_h245_receiveRTPAudioTelephonyEventCapability = -1; /* AudioTelephonyEventCapability */ static int hf_h245_receiveRTPAudioToneCapability = -1; /* AudioToneCapability */ -static int hf_h245_fecCapability = -1; /* FECCapability */ +static int hf_h245_depFecCapability = -1; /* DepFECCapability */ static int hf_h245_multiplePayloadStreamCapability = -1; /* MultiplePayloadStreamCapability */ +static int hf_h245_fecCapability = -1; /* FECCapability */ +static int hf_h245_redundancyEncodingCap = -1; /* RedundancyEncodingCapability */ +static int hf_h245_oneOfCapabilities = -1; /* AlternativeCapabilitySet */ static int hf_h245_encryptionAuthenticationAndIntegrity = -1; /* EncryptionAuthenticationAndIntegrity */ static int hf_h245_mediaCapability = -1; /* CapabilityTableEntryNumber */ static int hf_h245_h222Capability = -1; /* H222Capability */ @@ -908,6 +913,7 @@ static int hf_h245_t38TCPBidirectionalMode = -1; /* BOOLEAN */ static int hf_h245_encryptionCapability = -1; /* EncryptionCapability */ static int hf_h245_authenticationCapability = -1; /* AuthenticationCapability */ static int hf_h245_integrityCapability = -1; /* IntegrityCapability */ +static int hf_h245_genericH235SecurityCapability = -1; /* GenericCapability */ static int hf_h245_EncryptionCapability_item = -1; /* MediaEncryptionAlgorithm */ static int hf_h245_algorithm = -1; /* OBJECT_IDENTIFIER */ static int hf_h245_antiSpamAlgorithm = -1; /* OBJECT_IDENTIFIER */ @@ -923,6 +929,7 @@ static int hf_h245_encryptedBasicString = -1; /* NULL */ static int hf_h245_encryptedIA5String = -1; /* NULL */ static int hf_h245_encryptedGeneralString = -1; /* NULL */ static int hf_h245_secureDTMF = -1; /* NULL */ +static int hf_h245_genericUserInputCapability = -1; /* GenericCapability */ static int hf_h245_nonStandardParams = -1; /* SEQUENCE_OF_NonStandardParameter */ static int hf_h245_nonStandardParams_item = -1; /* NonStandardParameter */ static int hf_h245_chairControlCapability = -1; /* BOOLEAN */ @@ -951,8 +958,8 @@ static int hf_h245_unsignedMax = -1; /* INTEGER_0_65535 */ static int hf_h245_unsigned32Min = -1; /* INTEGER_0_4294967295 */ static int hf_h245_unsigned32Max = -1; /* INTEGER_0_4294967295 */ static int hf_h245_octetString = -1; /* OCTET_STRING */ -static int hf_h245_genericParameter = -1; /* SEQUENCE_OF_GenericParameter */ -static int hf_h245_genericParameter_item = -1; /* GenericParameter */ +static int hf_h245_genericParameters = -1; /* SEQUENCE_OF_GenericParameter */ +static int hf_h245_genericParameters_item = -1; /* GenericParameter */ static int hf_h245_multiplexFormat = -1; /* MultiplexFormat */ static int hf_h245_controlOnMuxStream = -1; /* BOOLEAN */ static int hf_h245_capabilityOnMuxStream = -1; /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */ @@ -966,6 +973,12 @@ static int hf_h245_redundancyEncodingBool = -1; /* BOOLEAN */ static int hf_h245_separateStreamBool = -1; /* T_separateStreamBool */ static int hf_h245_separatePort = -1; /* BOOLEAN */ static int hf_h245_samePortBool = -1; /* BOOLEAN */ +static int hf_h245_protectedCapability = -1; /* CapabilityTableEntryNumber */ +static int hf_h245_fecScheme = -1; /* OBJECT_IDENTIFIER */ +static int hf_h245_rfc2733rfc2198 = -1; /* MaxRedundancy */ +static int hf_h245_rfc2733sameport = -1; /* MaxRedundancy */ +static int hf_h245_rfc2733diffport = -1; /* MaxRedundancy */ +static int hf_h245_rfc2733Format = -1; /* Rfc2733Format */ static int hf_h245_olc_fw_lcn = -1; /* OLC_fw_lcn */ static int hf_h245_forwardLogicalChannelParameters = -1; /* T_forwardLogicalChannelParameters */ static int hf_h245_portNumber = -1; /* INTEGER_0_65535 */ @@ -1011,6 +1024,7 @@ static int hf_h245_h235Media = -1; /* H235Media */ static int hf_h245_multiplexedStream = -1; /* MultiplexedStreamParameter */ static int hf_h245_redundancyEncoding = -1; /* RedundancyEncoding */ static int hf_h245_multiplePayloadStream = -1; /* MultiplePayloadStream */ +static int hf_h245_depFec = -1; /* DepFECData */ static int hf_h245_fec = -1; /* FECData */ static int hf_h245_mediaType = -1; /* T_mediaType */ static int hf_h245_resourceID = -1; /* INTEGER_0_65535 */ @@ -1100,14 +1114,20 @@ static int hf_h245_secondary = -1; /* SEQUENCE_OF_RedundancyEncod static int hf_h245_secondary_item = -1; /* RedundancyEncodingElement */ static int hf_h245_elements = -1; /* SEQUENCE_OF_MultiplePayloadStreamElement */ static int hf_h245_elements_item = -1; /* MultiplePayloadStreamElement */ -static int hf_h245_rfc2733 = -1; /* RFC2733Data */ +static int hf_h245_dep_rfc2733 = -1; /* RFC2733Data */ static int hf_h245_fec_data_mode = -1; /* FECdata_mode */ static int hf_h245_redundancyEncodingFlag = -1; /* NULL */ static int hf_h245_differentPort = -1; /* T_differentPort */ static int hf_h245_protectedSessionID = -1; /* INTEGER_1_255 */ static int hf_h245_protectedPayloadType = -1; /* INTEGER_0_127 */ static int hf_h245_samePort = -1; /* T_samePort */ -static int hf_h245_separateStream = -1; /* SeparateStream */ +static int hf_h245_separateStream = -1; /* DepSeparateStream */ +static int hf_h245_rfc2733 = -1; /* T_rfc2733 */ +static int hf_h245_pktMode = -1; /* T_pktMode */ +static int hf_h245_rfc2198coding = -1; /* NULL */ +static int hf_h245_mode_rfc2733sameport = -1; /* T_mode_rfc2733sameport */ +static int hf_h245_mode_rfc2733diffport = -1; /* T_mode_rfc2733diffport */ +static int hf_h245_protectedChannel = -1; /* LogicalChannelNumber */ static int hf_h245_unicastAddress = -1; /* UnicastAddress */ static int hf_h245_multicastAddress = -1; /* MulticastAddress */ static int hf_h245_iPAddress = -1; /* T_iPAddress */ @@ -1141,6 +1161,7 @@ static int hf_h245_synchFlag = -1; /* INTEGER_0_255 */ static int hf_h245_h235Key = -1; /* OCTET_STRING_SIZE_1_65535 */ static int hf_h245_escrowentry = -1; /* SEQUENCE_SIZE_1_256_OF_EscrowData */ static int hf_h245_escrowentry_item = -1; /* EscrowData */ +static int hf_h245_genericParameter = -1; /* GenericParameter */ static int hf_h245_escrowID = -1; /* OBJECT_IDENTIFIER */ static int hf_h245_escrowValue = -1; /* BIT_STRING_SIZE_1_65535 */ static int hf_h245_olc_ack_fw_lcn = -1; /* OLC_ack_fw_lcn */ @@ -1164,6 +1185,7 @@ static int hf_h245_masterSlaveConflict = -1; /* NULL */ static int hf_h245_waitForCommunicationMode = -1; /* NULL */ static int hf_h245_invalidDependentChannel = -1; /* NULL */ static int hf_h245_replacementForRejected = -1; /* NULL */ +static int hf_h245_securityDenied = -1; /* NULL */ static int hf_h245_sessionID = -1; /* INTEGER_1_255 */ static int hf_h245_ack_mediaChannel = -1; /* Ack_mediaChannel */ static int hf_h245_ack_mediaControlChannel = -1; /* Ack_mediaControlChannel */ @@ -1221,6 +1243,7 @@ static int hf_h245_h235Mode = -1; /* H235Mode */ static int hf_h245_multiplexedStreamMode = -1; /* MultiplexedStreamParameter */ static int hf_h245_redundancyEncodingDTMode = -1; /* RedundancyEncodingDTMode */ static int hf_h245_multiplePayloadStreamMode = -1; /* MultiplePayloadStreamMode */ +static int hf_h245_depFecMode = -1; /* DepFECMode */ static int hf_h245_fecMode = -1; /* FECMode */ static int hf_h245_type = -1; /* ModeElementType */ static int hf_h245_h223ModeParameters = -1; /* H223ModeParameters */ @@ -1238,6 +1261,7 @@ static int hf_h245_mpsmElements = -1; /* SEQUENCE_OF_MultiplePayload static int hf_h245_mpsmElements_item = -1; /* MultiplePayloadStreamElementMode */ static int hf_h245_rfc2733Mode = -1; /* T_rfc2733Mode */ static int hf_h245_fec_mode = -1; /* FEC_mode */ +static int hf_h245_protectedElement = -1; /* ModeElementType */ static int hf_h245_adaptationLayer = -1; /* AdaptationLayerType */ static int hf_h245_al1Framed = -1; /* NULL */ static int hf_h245_al1NotFramed = -1; /* NULL */ @@ -1629,10 +1653,10 @@ static int hf_h245_expirationTime = -1; /* INTEGER_0_4294967295 */ static int hf_h245_rtpPayloadIndication = -1; /* NULL */ static int hf_h245_paramS = -1; /* Params */ static int hf_h245_encryptedSignalType = -1; /* OCTET_STRING_SIZE_1 */ +static int hf_h245_algorithmOID = -1; /* OBJECT_IDENTIFIER */ static int hf_h245_signalUpdate = -1; /* T_signalUpdate */ static int hf_h245_si_rtp = -1; /* Si_rtp */ static int hf_h245_extendedAlphanumeric = -1; /* T_extendedAlphanumeric */ -static int hf_h245_algorithmOID = -1; /* OBJECT_IDENTIFIER */ static int hf_h245_encrypted = -1; /* OCTET_STRING */ static int hf_h245_encryptedAlphanumeric = -1; /* EncryptedAlphanumeric */ @@ -1663,6 +1687,7 @@ static gint ett_h245_MasterSlaveDeterminationRelease = -1; static gint ett_h245_TerminalCapabilitySet = -1; static gint ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry = -1; static gint ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor = -1; +static gint ett_h245_SEQUENCE_OF_GenericInformation = -1; static gint ett_h245_CapabilityTableEntry = -1; static gint ett_h245_CapabilityDescriptor = -1; static gint ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet = -1; @@ -1805,9 +1830,11 @@ static gint ett_h245_AudioToneCapability = -1; static gint ett_h245_NoPTAudioTelephonyEventCapability = -1; static gint ett_h245_NoPTAudioToneCapability = -1; static gint ett_h245_MultiplePayloadStreamCapability = -1; -static gint ett_h245_FECCapability = -1; +static gint ett_h245_DepFECCapability = -1; static gint ett_h245_FECC_rfc2733 = -1; static gint ett_h245_T_separateStreamBool = -1; +static gint ett_h245_FECCapability = -1; +static gint ett_h245_Rfc2733Format = -1; static gint ett_h245_OpenLogicalChannel = -1; static gint ett_h245_T_forwardLogicalChannelParameters = -1; static gint ett_h245_OLC_forw_multiplexParameters = -1; @@ -1858,12 +1885,17 @@ static gint ett_h245_RedundancyEncodingElement = -1; static gint ett_h245_MultiplePayloadStream = -1; static gint ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement = -1; static gint ett_h245_MultiplePayloadStreamElement = -1; -static gint ett_h245_FECData = -1; +static gint ett_h245_DepFECData = -1; static gint ett_h245_RFC2733Data = -1; static gint ett_h245_FECdata_mode = -1; -static gint ett_h245_SeparateStream = -1; +static gint ett_h245_DepSeparateStream = -1; static gint ett_h245_T_differentPort = -1; static gint ett_h245_T_samePort = -1; +static gint ett_h245_FECData = -1; +static gint ett_h245_T_rfc2733 = -1; +static gint ett_h245_T_pktMode = -1; +static gint ett_h245_T_mode_rfc2733sameport = -1; +static gint ett_h245_T_mode_rfc2733diffport = -1; static gint ett_h245_TransportAddress = -1; static gint ett_h245_UnicastAddress = -1; static gint ett_h245_T_iPAddress = -1; @@ -1938,9 +1970,10 @@ static gint ett_h245_Re_type = -1; static gint ett_h245_MultiplePayloadStreamMode = -1; static gint ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode = -1; static gint ett_h245_MultiplePayloadStreamElementMode = -1; -static gint ett_h245_FECMode = -1; +static gint ett_h245_DepFECMode = -1; static gint ett_h245_T_rfc2733Mode = -1; static gint ett_h245_FEC_mode = -1; +static gint ett_h245_FECMode = -1; static gint ett_h245_H223ModeParameters = -1; static gint ett_h245_AdaptationLayerType = -1; static gint ett_h245_V76ModeParameters = -1; @@ -2136,8 +2169,11 @@ static int dissect_collapsing_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, p static int dissect_nonCollapsing_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_h245_nonCollapsing_item); } -static int dissect_genericParameter_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_h245_genericParameter_item); +static int dissect_genericParameters_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_h245_genericParameters_item); +} +static int dissect_genericParameter(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_h245_genericParameter); } /* VideoCapability -> ExtendedVideoCapability -> ExtendedVideoCapability/videoCapability -> VideoCapability */ @@ -2210,12 +2246,16 @@ static int dissect_vbd_type(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tr return dissect_h245_AudioMode(tvb, offset, actx, tree, hf_h245_vbd_type); } +/* ModeElementType -> RedundancyEncodingDTMode -> RedundancyEncodingDTModeElement -> RedundancyEncodingDTModeElement/type -> FECMode -> ModeElementType */ /* ModeElementType -> MultiplePayloadStreamMode -> MultiplePayloadStreamMode/elements -> MultiplePayloadStreamElementMode -> ModeElementType */ static int dissect_h245_ModeElementType(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree, int hf_index); static int dissect_type(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_ModeElementType(tvb, offset, actx, tree, hf_h245_type); } +static int dissect_protectedElement(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_ModeElementType(tvb, offset, actx, tree, hf_h245_protectedElement); +} /*--- Fields for imported types ---*/ @@ -2282,7 +2322,7 @@ static const per_sequence_t H221NonStandardID_sequence[] = { static int dissect_h245_H221NonStandardID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 697 "h245.cnf" +#line 700 "h245.cnf" t35CountryCode = 0; t35Extension = 0; manufacturerCode = 0; @@ -2290,7 +2330,7 @@ dissect_h245_H221NonStandardID(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, p offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_H221NonStandardID, H221NonStandardID_sequence); -#line 701 "h245.cnf" +#line 704 "h245.cnf" h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); @@ -2315,7 +2355,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = { static int dissect_h245_NonStandardIdentifier(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 678 "h245.cnf" +#line 681 "h245.cnf" guint32 value; nsiOID = ""; @@ -2350,7 +2390,7 @@ static int dissect_vendor(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree static int dissect_h245_T_nsd_data(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 712 "h245.cnf" +#line 715 "h245.cnf" tvbuff_t *next_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -2376,7 +2416,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = { static int dissect_h245_NonStandardParameter(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 710 "h245.cnf" +#line 713 "h245.cnf" nsp_handle = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -2506,7 +2546,7 @@ dissect_h245_MasterSlaveDetermination(tvbuff_t *tvb, int offset, asn_ctx_t *actx offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDetermination, MasterSlaveDetermination_sequence); -#line 461 "h245.cnf" +#line 464 "h245.cnf" h245_pi->msg_type = H245_MastSlvDet; @@ -2549,6 +2589,9 @@ static int dissect_algorithm(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_t static int dissect_antiSpamAlgorithm(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, actx, tree, hf_h245_antiSpamAlgorithm); } +static int dissect_fecScheme(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, actx, tree, hf_h245_fecScheme); +} static int dissect_oid(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, actx, tree, hf_h245_oid); } @@ -3922,6 +3965,9 @@ static int dissect_h261aVideoPacketizationFlag(tvbuff_t *tvb, int offset, asn_ct static int dissect_redundancyEncodingFlag(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_NULL(tvb, offset, actx, tree, hf_h245_redundancyEncodingFlag); } +static int dissect_rfc2198coding(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_NULL(tvb, offset, actx, tree, hf_h245_rfc2198coding); +} static int dissect_strict(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_NULL(tvb, offset, actx, tree, hf_h245_strict); } @@ -3967,6 +4013,9 @@ static int dissect_invalidDependentChannel(tvbuff_t *tvb, int offset, asn_ctx_t static int dissect_replacementForRejected(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_NULL(tvb, offset, actx, tree, hf_h245_replacementForRejected); } +static int dissect_securityDenied(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_NULL(tvb, offset, actx, tree, hf_h245_securityDenied); +} static int dissect_user(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_NULL(tvb, offset, actx, tree, hf_h245_user); } @@ -5289,7 +5338,7 @@ static int dissect_h245_T_standardOid(tvbuff_t *tvb, int offset, asn_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 500 "h245.cnf" +#line 503 "h245.cnf" if(!h245_lc_dissector && strcmp(standard_oid_str,"0.0.8.245.1.1.1") == 0) h245_lc_dissector = amr_handle; @@ -5484,8 +5533,8 @@ static int dissect_collapsing(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_ static int dissect_nonCollapsing(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, actx, tree, hf_h245_nonCollapsing); } -static int dissect_genericParameter(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, actx, tree, hf_h245_genericParameter); +static int dissect_genericParameters(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, actx, tree, hf_h245_genericParameters); } @@ -5509,7 +5558,7 @@ static const per_choice_t ParameterValue_choice[] = { { 4, "unsigned32Min" , ASN1_EXTENSION_ROOT , dissect_unsigned32Min }, { 5, "unsigned32Max" , ASN1_EXTENSION_ROOT , dissect_unsigned32Max }, { 6, "octetString" , ASN1_EXTENSION_ROOT , dissect_octetString }, - { 7, "genericParameter" , ASN1_EXTENSION_ROOT , dissect_genericParameter }, + { 7, "genericParameter" , ASN1_EXTENSION_ROOT , dissect_genericParameters }, { 0, NULL, 0, NULL } }; @@ -5593,6 +5642,12 @@ static int dissect_genericAudioCapability(tvbuff_t *tvb, int offset, asn_ctx_t * static int dissect_genericDataCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_GenericCapability(tvb, offset, actx, tree, hf_h245_genericDataCapability); } +static int dissect_genericH235SecurityCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericCapability(tvb, offset, actx, tree, hf_h245_genericH235SecurityCapability); +} +static int dissect_genericUserInputCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericCapability(tvb, offset, actx, tree, hf_h245_genericUserInputCapability); +} static int dissect_genericModeParameters(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_GenericCapability(tvb, offset, actx, tree, hf_h245_genericModeParameters); } @@ -5645,7 +5700,7 @@ static const per_choice_t Application_choice[] = { static int dissect_h245_Application(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 394 "h245.cnf" +#line 397 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -6336,6 +6391,9 @@ static int dissect_primaryEncoding(tvbuff_t *tvb, int offset, asn_ctx_t *actx, p static int dissect_secondaryEncodingCapability_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_CapabilityTableEntryNumber(tvb, offset, actx, tree, hf_h245_secondaryEncodingCapability_item); } +static int dissect_protectedCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_CapabilityTableEntryNumber(tvb, offset, actx, tree, hf_h245_protectedCapability); +} static int dissect_capabilityTableEntryNumbers_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_CapabilityTableEntryNumber(tvb, offset, actx, tree, hf_h245_capabilityTableEntryNumbers_item); } @@ -6372,6 +6430,9 @@ dissect_h245_RedundancyEncodingCapability(tvbuff_t *tvb, int offset, asn_ctx_t * return offset; } +static int dissect_redundancyEncodingCap(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_RedundancyEncodingCapability(tvb, offset, actx, tree, hf_h245_redundancyEncodingCap); +} static int dissect_redundancyEncodingCapability_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_RedundancyEncodingCapability(tvb, offset, actx, tree, hf_h245_redundancyEncodingCapability_item); } @@ -6538,24 +6599,24 @@ static int dissect_linesPerFrame(tvbuff_t *tvb, int offset, asn_ctx_t *actx, pro static const per_sequence_t H262VideoCapability_sequence[] = { - { "profileAndLevel-SPatML" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SPatML }, - { "profileAndLevel-MPatLL" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatLL }, - { "profileAndLevel-MPatML" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatML }, - { "profileAndLevel-MPatH-14" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatH_14 }, - { "profileAndLevel-MPatHL" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatHL }, - { "profileAndLevel-SNRatLL" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SNRatLL }, - { "profileAndLevel-SNRatML" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SNRatML }, - { "profileAndLevel-SpatialatH-14", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SpatialatH_14 }, - { "profileAndLevel-HPatML" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatML }, - { "profileAndLevel-HPatH-14" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatH_14 }, - { "profileAndLevel-HPatHL" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatHL }, - { "videoBitRate" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_videoBitRate }, - { "vbvBufferSize" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_vbvBufferSize }, - { "samplesPerLine" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_samplesPerLine }, - { "linesPerFrame" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_linesPerFrame }, - { "framesPerSecond" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_framesPerSecond }, - { "luminanceSampleRate" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_luminanceSampleRate }, - { "videoBadMBsCap" , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_videoBadMBsCap }, + { "profileAndLevel-SPatML" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SPatML }, + { "profileAndLevel-MPatLL" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatLL }, + { "profileAndLevel-MPatML" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatML }, + { "profileAndLevel-MPatH-14" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatH_14 }, + { "profileAndLevel-MPatHL" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatHL }, + { "profileAndLevel-SNRatLL" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SNRatLL }, + { "profileAndLevel-SNRatML" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SNRatML }, + { "profileAndLevel-SpatialatH-14", ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SpatialatH_14 }, + { "profileAndLevel-HPatML" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatML }, + { "profileAndLevel-HPatH-14" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatH_14 }, + { "profileAndLevel-HPatHL" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatHL }, + { "videoBitRate" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_videoBitRate }, + { "vbvBufferSize" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_vbvBufferSize }, + { "samplesPerLine" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_samplesPerLine }, + { "linesPerFrame" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_linesPerFrame }, + { "framesPerSecond" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_framesPerSecond }, + { "luminanceSampleRate" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_luminanceSampleRate }, + { "videoBadMBsCap" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_videoBadMBsCap }, { NULL, 0, 0, NULL } }; @@ -7431,7 +7492,7 @@ dissect_h245_H263VideoCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_H263VideoCapability, H263VideoCapability_sequence); -#line 261 "h245.cnf" +#line 264 "h245.cnf" h245_lc_dissector = h263_handle; return offset; @@ -7539,7 +7600,7 @@ static const per_choice_t VideoCapability_choice[] = { static int dissect_h245_VideoCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 385 "h245.cnf" +#line 388 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -7924,7 +7985,7 @@ static const per_choice_t AudioCapability_choice[] = { static int dissect_h245_AudioCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 376 "h245.cnf" +#line 379 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -8074,6 +8135,7 @@ static const per_sequence_t EncryptionAuthenticationAndIntegrity_sequence[] = { { "encryptionCapability" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_encryptionCapability }, { "authenticationCapability" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_authenticationCapability }, { "integrityCapability" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_integrityCapability }, + { "genericH235SecurityCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericH235SecurityCapability }, { NULL, 0, 0, NULL } }; @@ -8136,6 +8198,7 @@ static const value_string h245_UserInputCapability_vals[] = { { 8, "encryptedIA5String" }, { 9, "encryptedGeneralString" }, { 10, "secureDTMF" }, + { 11, "genericUserInputCapability" }, { 0, NULL } }; @@ -8151,6 +8214,7 @@ static const per_choice_t UserInputCapability_choice[] = { { 8, "encryptedIA5String" , ASN1_NOT_EXTENSION_ROOT, dissect_encryptedIA5String }, { 9, "encryptedGeneralString" , ASN1_NOT_EXTENSION_ROOT, dissect_encryptedGeneralString }, { 10, "secureDTMF" , ASN1_NOT_EXTENSION_ROOT, dissect_secureDTMF }, + { 11, "genericUserInputCapability" , ASN1_NOT_EXTENSION_ROOT, dissect_genericUserInputCapability }, { 0, NULL, 0, NULL } }; @@ -8215,6 +8279,9 @@ dissect_h245_AlternativeCapabilitySet(tvbuff_t *tvb, int offset, asn_ctx_t *actx static int dissect_simultaneousCapabilities_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_AlternativeCapabilitySet(tvb, offset, actx, tree, hf_h245_simultaneousCapabilities_item); } +static int dissect_oneOfCapabilities(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_AlternativeCapabilitySet(tvb, offset, actx, tree, hf_h245_oneOfCapabilities); +} static int dissect_capabilityOnMuxStream_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_AlternativeCapabilitySet(tvb, offset, actx, tree, hf_h245_capabilityOnMuxStream_item); } @@ -8355,26 +8422,26 @@ static int dissect_fecc_rfc2733(tvbuff_t *tvb, int offset, asn_ctx_t *actx, prot } -static const value_string h245_FECCapability_vals[] = { +static const value_string h245_DepFECCapability_vals[] = { { 0, "rfc2733" }, { 0, NULL } }; -static const per_choice_t FECCapability_choice[] = { +static const per_choice_t DepFECCapability_choice[] = { { 0, "rfc2733" , ASN1_EXTENSION_ROOT , dissect_fecc_rfc2733 }, { 0, NULL, 0, NULL } }; static int -dissect_h245_FECCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { +dissect_h245_DepFECCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h245_FECCapability, FECCapability_choice, + ett_h245_DepFECCapability, DepFECCapability_choice, NULL); return offset; } -static int dissect_fecCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_FECCapability(tvb, offset, actx, tree, hf_h245_fecCapability); +static int dissect_depFecCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_DepFECCapability(tvb, offset, actx, tree, hf_h245_depFecCapability); } @@ -8395,6 +8462,71 @@ static int dissect_multiplePayloadStreamCapability(tvbuff_t *tvb, int offset, as } + +static int +dissect_h245_MaxRedundancy(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, NO_BOUND, NULL, FALSE); + + return offset; +} +static int dissect_rfc2733rfc2198(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_MaxRedundancy(tvb, offset, actx, tree, hf_h245_rfc2733rfc2198); +} +static int dissect_rfc2733sameport(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_MaxRedundancy(tvb, offset, actx, tree, hf_h245_rfc2733sameport); +} +static int dissect_rfc2733diffport(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_MaxRedundancy(tvb, offset, actx, tree, hf_h245_rfc2733diffport); +} + + +static const value_string h245_Rfc2733Format_vals[] = { + { 0, "rfc2733rfc2198" }, + { 1, "rfc2733sameport" }, + { 2, "rfc2733diffport" }, + { 0, NULL } +}; + +static const per_choice_t Rfc2733Format_choice[] = { + { 0, "rfc2733rfc2198" , ASN1_NO_EXTENSIONS , dissect_rfc2733rfc2198 }, + { 1, "rfc2733sameport" , ASN1_NO_EXTENSIONS , dissect_rfc2733sameport }, + { 2, "rfc2733diffport" , ASN1_NO_EXTENSIONS , dissect_rfc2733diffport }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h245_Rfc2733Format(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h245_Rfc2733Format, Rfc2733Format_choice, + NULL); + + return offset; +} +static int dissect_rfc2733Format(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_Rfc2733Format(tvb, offset, actx, tree, hf_h245_rfc2733Format); +} + + +static const per_sequence_t FECCapability_sequence[] = { + { "protectedCapability" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protectedCapability }, + { "fecScheme" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_fecScheme }, + { "rfc2733Format" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rfc2733Format }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_FECCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_FECCapability, FECCapability_sequence); + + return offset; +} +static int dissect_fecCapability(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_FECCapability(tvb, offset, actx, tree, hf_h245_fecCapability); +} + + static const value_string h245_Capability_vals[] = { { 0, "nonStandard" }, { 1, "receiveVideoCapability" }, @@ -8420,8 +8552,11 @@ static const value_string h245_Capability_vals[] = { { 21, "receiveAndTransmitMultiplexedStreamCapability" }, { 22, "receiveRTPAudioTelephonyEventCapability" }, { 23, "receiveRTPAudioToneCapability" }, - { 24, "fecCapability" }, + { 24, "depFecCapability" }, { 25, "multiplePayloadStreamCapability" }, + { 26, "fecCapability" }, + { 27, "redundancyEncodingCap" }, + { 28, "oneOfCapabilities" }, { 0, NULL } }; @@ -8450,8 +8585,11 @@ static const per_choice_t Capability_choice[] = { { 21, "receiveAndTransmitMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveAndTransmitMultiplexedStreamCapability }, { 22, "receiveRTPAudioTelephonyEventCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveRTPAudioTelephonyEventCapability }, { 23, "receiveRTPAudioToneCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveRTPAudioToneCapability }, - { 24, "fecCapability" , ASN1_NOT_EXTENSION_ROOT, dissect_fecCapability }, + { 24, "depFecCapability" , ASN1_NOT_EXTENSION_ROOT, dissect_depFecCapability }, { 25, "multiplePayloadStreamCapability", ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStreamCapability }, + { 26, "fecCapability" , ASN1_NOT_EXTENSION_ROOT, dissect_fecCapability }, + { 27, "redundancyEncodingCap" , ASN1_NOT_EXTENSION_ROOT, dissect_redundancyEncodingCap }, + { 28, "oneOfCapabilities" , ASN1_NOT_EXTENSION_ROOT, dissect_oneOfCapabilities }, { 0, NULL, 0, NULL } }; @@ -8554,12 +8692,86 @@ static int dissect_capabilityDescriptors(tvbuff_t *tvb, int offset, asn_ctx_t *a } + +static int +dissect_h245_T_subMessageIdentifier(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { +#line 508 "h245.cnf" + guint32 subMessageIdentifer; + + + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 127U, &subMessageIdentifer, FALSE); + + return offset; +} +static int dissect_subMessageIdentifier(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_T_subMessageIdentifier(tvb, offset, actx, tree, hf_h245_subMessageIdentifier); +} + + +static const per_sequence_t GenericMessage_sequence[] = { + { "messageIdentifier" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_messageIdentifier }, + { "subMessageIdentifier" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_subMessageIdentifier }, + { "messageContent" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_messageContent }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_GenericMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_GenericMessage, GenericMessage_sequence); + + return offset; +} +static int dissect_genericRequest(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericRequest); +} +static int dissect_genericResponse(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericResponse); +} +static int dissect_genericCommand(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericCommand); +} +static int dissect_genericIndication(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericIndication); +} + + + +static int +dissect_h245_GenericInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_index); + + return offset; +} +static int dissect_genericInformation_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_GenericInformation(tvb, offset, actx, tree, hf_h245_genericInformation_item); +} + + +static const per_sequence_t SEQUENCE_OF_GenericInformation_sequence_of[1] = { + { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_genericInformation_item }, +}; + +static int +dissect_h245_SEQUENCE_OF_GenericInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index, + ett_h245_SEQUENCE_OF_GenericInformation, SEQUENCE_OF_GenericInformation_sequence_of); + + return offset; +} +static int dissect_genericInformation(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_SEQUENCE_OF_GenericInformation(tvb, offset, actx, tree, hf_h245_genericInformation); +} + + static const per_sequence_t TerminalCapabilitySet_sequence[] = { { "sequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sequenceNumber }, { "protocolIdentifier" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIdentifier }, { "multiplexCapability" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_multiplexCapability }, { "capabilityTable" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_capabilityTable }, { "capabilityDescriptors" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_capabilityDescriptors }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; @@ -8568,7 +8780,7 @@ dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySet, TerminalCapabilitySet_sequence); -#line 476 "h245.cnf" +#line 479 "h245.cnf" h245_pi->msg_type = H245_TermCapSet; @@ -8582,7 +8794,7 @@ static int dissect_terminalCapabilitySet(tvbuff_t *tvb, int offset, asn_ctx_t *a static int dissect_h245_LogicalChannelNumber(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 116 "h245.cnf" +#line 119 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 65535U, &value, FALSE); @@ -8601,6 +8813,9 @@ static int dissect_replacementFor(tvbuff_t *tvb, int offset, asn_ctx_t *actx, pr static int dissect_reverseLogicalChannelDependency(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_h245_reverseLogicalChannelDependency); } +static int dissect_protectedChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_h245_protectedChannel); +} static int dissect_forwardLogicalChannelNumber(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { return dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_h245_forwardLogicalChannelNumber); } @@ -8632,7 +8847,7 @@ static int dissect_h245_OLC_fw_lcn(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index); -#line 122 "h245.cnf" +#line 125 "h245.cnf" h223_fw_lc_num = h245_lc_temp; return offset; @@ -8830,28 +9045,28 @@ static int dissect_samePort(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tr } -static const value_string h245_SeparateStream_vals[] = { +static const value_string h245_DepSeparateStream_vals[] = { { 0, "differentPort" }, { 1, "samePort" }, { 0, NULL } }; -static const per_choice_t SeparateStream_choice[] = { +static const per_choice_t DepSeparateStream_choice[] = { { 0, "differentPort" , ASN1_EXTENSION_ROOT , dissect_differentPort }, { 1, "samePort" , ASN1_EXTENSION_ROOT , dissect_samePort }, { 0, NULL, 0, NULL } }; static int -dissect_h245_SeparateStream(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { +dissect_h245_DepSeparateStream(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h245_SeparateStream, SeparateStream_choice, + ett_h245_DepSeparateStream, DepSeparateStream_choice, NULL); return offset; } static int dissect_separateStream(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_SeparateStream(tvb, offset, actx, tree, hf_h245_separateStream); + return dissect_h245_DepSeparateStream(tvb, offset, actx, tree, hf_h245_separateStream); } @@ -8892,8 +9107,110 @@ dissect_h245_RFC2733Data(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_t return offset; } +static int dissect_dep_rfc2733(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_RFC2733Data(tvb, offset, actx, tree, hf_h245_dep_rfc2733); +} + + +static const value_string h245_DepFECData_vals[] = { + { 0, "rfc2733" }, + { 0, NULL } +}; + +static const per_choice_t DepFECData_choice[] = { + { 0, "rfc2733" , ASN1_NO_EXTENSIONS , dissect_dep_rfc2733 }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h245_DepFECData(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h245_DepFECData, DepFECData_choice, + NULL); + + return offset; +} +static int dissect_depFec(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_DepFECData(tvb, offset, actx, tree, hf_h245_depFec); +} + + +static const per_sequence_t T_mode_rfc2733sameport_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_T_mode_rfc2733sameport(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_T_mode_rfc2733sameport, T_mode_rfc2733sameport_sequence); + + return offset; +} +static int dissect_mode_rfc2733sameport(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_T_mode_rfc2733sameport(tvb, offset, actx, tree, hf_h245_mode_rfc2733sameport); +} + + +static const per_sequence_t T_mode_rfc2733diffport_sequence[] = { + { "protectedChannel" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protectedChannel }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_T_mode_rfc2733diffport(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_T_mode_rfc2733diffport, T_mode_rfc2733diffport_sequence); + + return offset; +} +static int dissect_mode_rfc2733diffport(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_T_mode_rfc2733diffport(tvb, offset, actx, tree, hf_h245_mode_rfc2733diffport); +} + + +static const value_string h245_T_pktMode_vals[] = { + { 0, "rfc2198coding" }, + { 1, "rfc2733sameport" }, + { 2, "rfc2733diffport" }, + { 0, NULL } +}; + +static const per_choice_t T_pktMode_choice[] = { + { 0, "rfc2198coding" , ASN1_EXTENSION_ROOT , dissect_rfc2198coding }, + { 1, "rfc2733sameport" , ASN1_EXTENSION_ROOT , dissect_mode_rfc2733sameport }, + { 2, "rfc2733diffport" , ASN1_EXTENSION_ROOT , dissect_mode_rfc2733diffport }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_h245_T_pktMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_h245_T_pktMode, T_pktMode_choice, + NULL); + + return offset; +} +static int dissect_pktMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_T_pktMode(tvb, offset, actx, tree, hf_h245_pktMode); +} + + +static const per_sequence_t T_rfc2733_sequence[] = { + { "protectedPayloadType" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protectedPayloadType }, + { "fecScheme" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_fecScheme }, + { "pktMode" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_pktMode }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_T_rfc2733(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_T_rfc2733, T_rfc2733_sequence); + + return offset; +} static int dissect_rfc2733(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_RFC2733Data(tvb, offset, actx, tree, hf_h245_rfc2733); + return dissect_h245_T_rfc2733(tvb, offset, actx, tree, hf_h245_rfc2733); } @@ -8903,7 +9220,7 @@ static const value_string h245_FECData_vals[] = { }; static const per_choice_t FECData_choice[] = { - { 0, "rfc2733" , ASN1_NO_EXTENSIONS , dissect_rfc2733 }, + { 0, "rfc2733" , ASN1_EXTENSION_ROOT , dissect_rfc2733 }, { 0, NULL, 0, NULL } }; @@ -8927,7 +9244,8 @@ static const value_string h245_T_mediaType_vals[] = { { 3, "data" }, { 4, "redundancyEncoding" }, { 5, "multiplePayloadStream" }, - { 6, "fec" }, + { 6, "depFec" }, + { 7, "fec" }, { 0, NULL } }; @@ -8938,7 +9256,8 @@ static const per_choice_t T_mediaType_choice[] = { { 3, "data" , ASN1_EXTENSION_ROOT , dissect_data }, { 4, "redundancyEncoding" , ASN1_NOT_EXTENSION_ROOT, dissect_redundancyEncoding }, { 5, "multiplePayloadStream" , ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStream }, - { 6, "fec" , ASN1_NOT_EXTENSION_ROOT, dissect_fec }, + { 6, "depFec" , ASN1_NOT_EXTENSION_ROOT, dissect_depFec }, + { 7, "fec" , ASN1_NOT_EXTENSION_ROOT, dissect_fec }, { 0, NULL, 0, NULL } }; @@ -9006,7 +9325,8 @@ static const value_string h245_DataType_vals[] = { { 8, "multiplexedStream" }, { 9, "redundancyEncoding" }, { 10, "multiplePayloadStream" }, - { 11, "fec" }, + { 11, "depFec" }, + { 12, "fec" }, { 0, NULL } }; @@ -9022,7 +9342,8 @@ static const per_choice_t DataType_choice[] = { { 8, "multiplexedStream" , ASN1_NOT_EXTENSION_ROOT, dissect_multiplexedStream }, { 9, "redundancyEncoding" , ASN1_NOT_EXTENSION_ROOT, dissect_redundancyEncoding }, { 10, "multiplePayloadStream" , ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStream }, - { 11, "fec" , ASN1_NOT_EXTENSION_ROOT, dissect_fec }, + { 11, "depFec" , ASN1_NOT_EXTENSION_ROOT, dissect_depFec }, + { 12, "fec" , ASN1_NOT_EXTENSION_ROOT, dissect_fec }, { 0, NULL, 0, NULL } }; @@ -9076,7 +9397,7 @@ static int dissect_h222LogicalChannelParameters(tvbuff_t *tvb, int offset, asn_c static int dissect_h245_T_h223_al_type_al1Framed(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 153 "h245.cnf" +#line 156 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1Framed; @@ -9092,7 +9413,7 @@ static int dissect_h223_al_type_al1Framed(tvbuff_t *tvb, int offset, asn_ctx_t * static int dissect_h245_T_h223_al_type_al1NotFramed(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 158 "h245.cnf" +#line 161 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1NotFramed; @@ -9108,7 +9429,7 @@ static int dissect_h223_al_type_al1NotFramed(tvbuff_t *tvb, int offset, asn_ctx_ static int dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 163 "h245.cnf" +#line 166 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2WithoutSequenceNumbers; @@ -9124,7 +9445,7 @@ static int dissect_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb, int off static int dissect_h245_T_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 168 "h245.cnf" +#line 171 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2WithSequenceNumbers; @@ -9140,7 +9461,7 @@ static int dissect_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb, int offset static int dissect_h245_T_controlFieldOctets(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 182 "h245.cnf" +#line 185 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 2U, &value, FALSE); @@ -9159,7 +9480,7 @@ static int dissect_controlFieldOctets(tvbuff_t *tvb, int offset, asn_ctx_t *actx static int dissect_h245_T_al3_sendBufferSize(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 191 "h245.cnf" +#line 194 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 16777215U, &value, FALSE); @@ -9196,7 +9517,7 @@ static int dissect_al3(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *t static int dissect_h245_T_h223_al_type_al3(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 173 "h245.cnf" +#line 176 "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)); @@ -9424,7 +9745,7 @@ static int dissect_al1M(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree * static int dissect_h245_T_h223_al_type_al1M(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 198 "h245.cnf" +#line 201 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al1M; @@ -9483,7 +9804,7 @@ static int dissect_al2M(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree * static int dissect_h245_T_h223_al_type_al2M(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 203 "h245.cnf" +#line 206 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al2M; @@ -9583,7 +9904,7 @@ static int dissect_al3M(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree * static int dissect_h245_T_h223_al_type_al3M(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 208 "h245.cnf" +#line 211 "h245.cnf" if(h223_lc_params_temp) h223_lc_params_temp->al_type = al3M; @@ -9638,7 +9959,7 @@ static int dissect_adaptationLayerType(tvbuff_t *tvb, int offset, asn_ctx_t *act static int dissect_h245_T_h223_lc_segmentableFlag(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 215 "h245.cnf" +#line 218 "h245.cnf" guint32 value; offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &value); @@ -9671,7 +9992,7 @@ dissect_h245_H223LogicalChannelParameters(tvbuff_t *tvb, int offset, asn_ctx_t * static int dissect_h245_OLC_fw_h223_params(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 135 "h245.cnf" +#line 138 "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; @@ -9872,7 +10193,7 @@ static int dissect_v76LogicalChannelParameters(tvbuff_t *tvb, int offset, asn_ct static int dissect_h245_Ipv4_network(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 512 "h245.cnf" +#line 515 "h245.cnf" tvbuff_t *value_tvb; @@ -9897,7 +10218,7 @@ static int dissect_ip4_network(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto static int dissect_h245_TsapIdentifier(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 525 "h245.cnf" +#line 528 "h245.cnf" guint32 tsapIdentifier; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -10216,14 +10537,14 @@ static int dissect_signalAddress(tvbuff_t *tvb, int offset, asn_ctx_t *actx, pro static int dissect_h245_T_mediaChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 543 "h245.cnf" +#line 546 "h245.cnf" media_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 573 "h245.cnf" +#line 576 "h245.cnf" media_channel = FALSE; @@ -10238,14 +10559,14 @@ static int dissect_mediaChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx, prot static int dissect_h245_T_mediaControlChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 555 "h245.cnf" +#line 558 "h245.cnf" media_control_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 579 "h245.cnf" +#line 582 "h245.cnf" media_control_channel = FALSE; @@ -10434,7 +10755,7 @@ static const per_sequence_t T_forwardLogicalChannelParameters_sequence[] = { static int dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 126 "h245.cnf" +#line 129 "h245.cnf" h245_lc_dissector = NULL; offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_T_forwardLogicalChannelParameters, T_forwardLogicalChannelParameters_sequence); @@ -10455,7 +10776,7 @@ static int dissect_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, as static int dissect_h245_OLC_rev_h223_params(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 144 "h245.cnf" +#line 147 "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; @@ -10488,7 +10809,7 @@ static const per_choice_t OLC_rev_multiplexParameters_choice[] = { static int dissect_h245_OLC_rev_multiplexParameters(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 629 "h245.cnf" +#line 632 "h245.cnf" media_channel = FALSE; @@ -10499,7 +10820,7 @@ dissect_h245_OLC_rev_multiplexParameters(tvbuff_t *tvb, int offset, asn_ctx_t *a ett_h245_OLC_rev_multiplexParameters, OLC_rev_multiplexParameters_choice, NULL); -#line 637 "h245.cnf" +#line 640 "h245.cnf" if (!actx->pinfo->fd->flags.visited) { if (codec_type && (strcmp(codec_type, "t38fax")==0)) { @@ -10760,6 +11081,7 @@ static const per_sequence_t EncryptionSync_sequence[] = { { "synchFlag" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_synchFlag }, { "h235Key" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h235Key }, { "escrowentry" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_escrowentry }, + { "genericParameter" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericParameter }, { NULL, 0, 0, NULL } }; @@ -10784,12 +11106,13 @@ static const per_sequence_t OpenLogicalChannel_sequence[] = { { "reverseLogicalChannelParameters", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_reverseLogicalChannelParameters }, { "separateStack" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_separateStack }, { "encryptionSync" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_encryptionSync }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; int dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 97 "h245.cnf" +#line 100 "h245.cnf" gint32 temp; h223_fw_lc_num = 0; @@ -10808,7 +11131,7 @@ dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, } -#line 487 "h245.cnf" +#line 490 "h245.cnf" if (h245_pi != NULL) h245_pi->msg_type = H245_OpenLogChn; @@ -10883,7 +11206,7 @@ dissect_h245_CloseLogicalChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_CloseLogicalChannel, CloseLogicalChannel_sequence); -#line 441 "h245.cnf" +#line 444 "h245.cnf" h245_pi->msg_type = H245_CloseLogChn; @@ -10945,7 +11268,7 @@ static int dissect_requestChannelClose(tvbuff_t *tvb, int offset, asn_ctx_t *act static int dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 41 "h245.cnf" +#line 44 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 15U, &value, FALSE); @@ -10969,7 +11292,7 @@ static int dissect_entryNumbers_item(tvbuff_t *tvb, int offset, asn_ctx_t *actx, static int dissect_h245_T_logicalChannelNum(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 67 "h245.cnf" +#line 70 "h245.cnf" /*MultiplexElement/type/logicalChannelNumber*/ guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, @@ -10992,7 +11315,7 @@ static const per_sequence_t T_subElementList_sequence_of[1] = { static int dissect_h245_T_subElementList(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 75 "h245.cnf" +#line 78 "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, @@ -11039,7 +11362,7 @@ static int dissect_me_type(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tre static int dissect_h245_ME_finiteRepeatCount(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 90 "h245.cnf" +#line 93 "h245.cnf" guint32 value; offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 1U, 65535U, &value, FALSE); @@ -11059,7 +11382,7 @@ static int dissect_h245_T_untilClosingFlag(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_null(tvb, offset, actx, tree, hf_index); -#line 84 "h245.cnf" +#line 87 "h245.cnf" h223_me->repeat_count = 0; return offset; @@ -11102,7 +11425,7 @@ static const per_sequence_t MultiplexElement_sequence[] = { static int dissect_h245_MultiplexElement(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 57 "h245.cnf" +#line 60 "h245.cnf" /*MultiplexElement*/ h223_mux_element* me = se_alloc(sizeof(h223_mux_element)); h223_me->next = me; @@ -11122,7 +11445,7 @@ static const per_sequence_t T_elementList_sequence_of[1] = { static int dissect_h245_T_elementList(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 47 "h245.cnf" +#line 50 "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; @@ -11150,7 +11473,7 @@ static const per_sequence_t MultiplexEntryDescriptor_sequence[] = { static int dissect_h245_MultiplexEntryDescriptor(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 29 "h245.cnf" +#line 32 "h245.cnf" /*MultiplexEntryDescriptor*/ h223_me = NULL; h223_mc = 0; @@ -11454,7 +11777,7 @@ static const per_choice_t VideoMode_choice[] = { static int dissect_h245_VideoMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 410 "h245.cnf" +#line 413 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -11817,7 +12140,7 @@ static const per_choice_t AudioMode_choice[] = { static int dissect_h245_AudioMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 402 "h245.cnf" +#line 405 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -11888,7 +12211,7 @@ static const per_choice_t DataModeApplication_choice[] = { static int dissect_h245_DataModeApplication(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 418 "h245.cnf" +#line 421 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -11971,6 +12294,25 @@ static int dissect_h235Mode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tr } +static const per_sequence_t FECMode_sequence[] = { + { "protectedElement" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protectedElement }, + { "fecScheme" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_fecScheme }, + { "rfc2733Format" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rfc2733Format }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_h245_FECMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_h245_FECMode, FECMode_sequence); + + return offset; +} +static int dissect_fecMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_FECMode(tvb, offset, actx, tree, hf_h245_fecMode); +} + + static const value_string h245_Re_type_vals[] = { { 0, "nonStandard" }, { 1, "videoMode" }, @@ -11978,6 +12320,7 @@ static const value_string h245_Re_type_vals[] = { { 3, "dataMode" }, { 4, "encryptionMode" }, { 5, "h235Mode" }, + { 6, "fecMode" }, { 0, NULL } }; @@ -11988,6 +12331,7 @@ static const per_choice_t Re_type_choice[] = { { 3, "dataMode" , ASN1_EXTENSION_ROOT , dissect_dataMode }, { 4, "encryptionMode" , ASN1_EXTENSION_ROOT , dissect_encryptionMode }, { 5, "h235Mode" , ASN1_EXTENSION_ROOT , dissect_h235Mode }, + { 6, "fecMode" , ASN1_NOT_EXTENSION_ROOT, dissect_fecMode }, { 0, NULL, 0, NULL } }; @@ -12151,26 +12495,26 @@ static int dissect_rfc2733Mode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto } -static const value_string h245_FECMode_vals[] = { +static const value_string h245_DepFECMode_vals[] = { { 0, "rfc2733Mode" }, { 0, NULL } }; -static const per_choice_t FECMode_choice[] = { +static const per_choice_t DepFECMode_choice[] = { { 0, "rfc2733Mode" , ASN1_EXTENSION_ROOT , dissect_rfc2733Mode }, { 0, NULL, 0, NULL } }; static int -dissect_h245_FECMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { +dissect_h245_DepFECMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_h245_FECMode, FECMode_choice, + ett_h245_DepFECMode, DepFECMode_choice, NULL); return offset; } -static int dissect_fecMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_FECMode(tvb, offset, actx, tree, hf_h245_fecMode); +static int dissect_depFecMode(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { + return dissect_h245_DepFECMode(tvb, offset, actx, tree, hf_h245_depFecMode); } @@ -12184,7 +12528,8 @@ static const value_string h245_ModeElementType_vals[] = { { 6, "multiplexedStreamMode" }, { 7, "redundancyEncodingDTMode" }, { 8, "multiplePayloadStreamMode" }, - { 9, "fecMode" }, + { 9, "depFecMode" }, + { 10, "fecMode" }, { 0, NULL } }; @@ -12198,7 +12543,8 @@ static const per_choice_t ModeElementType_choice[] = { { 6, "multiplexedStreamMode" , ASN1_NOT_EXTENSION_ROOT, dissect_multiplexedStreamMode }, { 7, "redundancyEncodingDTMode" , ASN1_NOT_EXTENSION_ROOT, dissect_redundancyEncodingDTMode }, { 8, "multiplePayloadStreamMode" , ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStreamMode }, - { 9, "fecMode" , ASN1_NOT_EXTENSION_ROOT, dissect_fecMode }, + { 9, "depFecMode" , ASN1_NOT_EXTENSION_ROOT, dissect_depFecMode }, + { 10, "fecMode" , ASN1_NOT_EXTENSION_ROOT, dissect_fecMode }, { 0, NULL, 0, NULL } }; @@ -12970,51 +13316,6 @@ static int dissect_logicalChannelRateRequest(tvbuff_t *tvb, int offset, asn_ctx_ } - -static int -dissect_h245_T_subMessageIdentifer(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 505 "h245.cnf" - guint32 subMessageIdentifer; - - - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 127U, &subMessageIdentifer, FALSE); - - return offset; -} -static int dissect_subMessageIdentifer(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_T_subMessageIdentifer(tvb, offset, actx, tree, hf_h245_subMessageIdentifer); -} - - -static const per_sequence_t GenericMessage_sequence[] = { - { "messageIdentifier" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_messageIdentifier }, - { "subMessageIdentifer" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_subMessageIdentifer }, - { "messageContent" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_messageContent }, - { NULL, 0, 0, NULL } -}; - -static int -dissect_h245_GenericMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_h245_GenericMessage, GenericMessage_sequence); - - return offset; -} -static int dissect_genericRequest(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericRequest); -} -static int dissect_genericResponse(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericResponse); -} -static int dissect_genericCommand(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericCommand); -} -static int dissect_genericIndication(tvbuff_t *tvb, int offset, asn_ctx_t *actx, proto_tree *tree) { - return dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_h245_genericIndication); -} - - static const value_string h245_RequestMessage_vals[] = { { 0, "nonStandard" }, { 1, "masterSlaveDetermination" }, @@ -13057,7 +13358,7 @@ static const per_choice_t RequestMessage_choice[] = { static int dissect_h245_RequestMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 265 "h245.cnf" +#line 268 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -13140,7 +13441,7 @@ dissect_h245_MasterSlaveDeterminationAck(tvbuff_t *tvb, int offset, asn_ctx_t *a offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDeterminationAck, MasterSlaveDeterminationAck_sequence); -#line 426 "h245.cnf" +#line 429 "h245.cnf" h245_pi->msg_type = H245_MastSlvDetAck; @@ -13184,7 +13485,7 @@ dissect_h245_MasterSlaveDeterminationReject(tvbuff_t *tvb, int offset, asn_ctx_t offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDeterminationReject, MasterSlaveDeterminationReject_sequence); -#line 431 "h245.cnf" +#line 434 "h245.cnf" h245_pi->msg_type = H245_MastSlvDetRjc; @@ -13197,6 +13498,7 @@ static int dissect_masterSlaveDeterminationReject(tvbuff_t *tvb, int offset, asn static const per_sequence_t TerminalCapabilitySetAck_sequence[] = { { "sequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sequenceNumber }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; @@ -13205,7 +13507,7 @@ dissect_h245_TerminalCapabilitySetAck(tvbuff_t *tvb, int offset, asn_ctx_t *actx offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySetAck, TerminalCapabilitySetAck_sequence); -#line 456 "h245.cnf" +#line 459 "h245.cnf" h245_pi->msg_type = H245_TermCapSetAck; @@ -13273,6 +13575,7 @@ static int dissect_tcs_rej_cause(tvbuff_t *tvb, int offset, asn_ctx_t *actx, pro static const per_sequence_t TerminalCapabilitySetReject_sequence[] = { { "sequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sequenceNumber }, { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tcs_rej_cause }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; @@ -13281,7 +13584,7 @@ dissect_h245_TerminalCapabilitySetReject(tvbuff_t *tvb, int offset, asn_ctx_t *a offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySetReject, TerminalCapabilitySetReject_sequence); -#line 466 "h245.cnf" +#line 469 "h245.cnf" h245_pi->msg_type = H245_TermCapSetRjc; @@ -13297,7 +13600,7 @@ static int dissect_h245_OLC_ack_fw_lcn(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index); -#line 253 "h245.cnf" +#line 256 "h245.cnf" h223_fw_lc_num = h245_lc_temp; return offset; @@ -13312,7 +13615,7 @@ static int dissect_h245_T_reverseLogicalChannelNumber(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index); -#line 257 "h245.cnf" +#line 260 "h245.cnf" h223_rev_lc_num = h245_lc_temp; return offset; @@ -13370,14 +13673,14 @@ static int dissect_olc_ack_reverseLogicalChannelParameters(tvbuff_t *tvb, int of static int dissect_h245_Ack_mediaChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 537 "h245.cnf" +#line 540 "h245.cnf" media_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 561 "h245.cnf" +#line 564 "h245.cnf" media_channel = FALSE; @@ -13392,14 +13695,14 @@ static int dissect_ack_mediaChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx, static int dissect_h245_Ack_mediaControlChannel(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 549 "h245.cnf" +#line 552 "h245.cnf" media_control_channel = TRUE; offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index); -#line 567 "h245.cnf" +#line 570 "h245.cnf" media_control_channel = FALSE; @@ -13446,7 +13749,7 @@ static const per_choice_t T_forwardMultiplexAckParameters_choice[] = { static int dissect_h245_T_forwardMultiplexAckParameters(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 585 "h245.cnf" +#line 588 "h245.cnf" media_channel = FALSE; @@ -13457,7 +13760,7 @@ dissect_h245_T_forwardMultiplexAckParameters(tvbuff_t *tvb, int offset, asn_ctx_ ett_h245_T_forwardMultiplexAckParameters, T_forwardMultiplexAckParameters_choice, NULL); -#line 593 "h245.cnf" +#line 596 "h245.cnf" if (!actx->pinfo->fd->flags.visited) { if (codec_type && strcmp(codec_type, "t38fax")==0) { @@ -13505,12 +13808,13 @@ static const per_sequence_t OpenLogicalChannelAck_sequence[] = { { "separateStack" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_separateStack }, { "forwardMultiplexAckParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_forwardMultiplexAckParameters }, { "encryptionSync" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_encryptionSync }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; static int dissect_h245_OpenLogicalChannelAck(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 223 "h245.cnf" +#line 226 "h245.cnf" guint32 temp; int p2p_dir; h223_pending_olc *pend; @@ -13542,7 +13846,7 @@ dissect_h245_OpenLogicalChannelAck(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U actx->pinfo->p2p_dir = p2p_dir; -#line 493 "h245.cnf" +#line 496 "h245.cnf" h245_pi->msg_type = H245_OpenLogChnAck; @@ -13568,6 +13872,7 @@ static const value_string h245_OpenLogicalChannelRejectCause_vals[] = { { 11, "waitForCommunicationMode" }, { 12, "invalidDependentChannel" }, { 13, "replacementForRejected" }, + { 14, "securityDenied" }, { 0, NULL } }; @@ -13586,6 +13891,7 @@ static const per_choice_t OpenLogicalChannelRejectCause_choice[] = { { 11, "waitForCommunicationMode" , ASN1_NOT_EXTENSION_ROOT, dissect_waitForCommunicationMode }, { 12, "invalidDependentChannel" , ASN1_NOT_EXTENSION_ROOT, dissect_invalidDependentChannel }, { 13, "replacementForRejected" , ASN1_NOT_EXTENSION_ROOT, dissect_replacementForRejected }, + { 14, "securityDenied" , ASN1_NOT_EXTENSION_ROOT, dissect_securityDenied }, { 0, NULL, 0, NULL } }; @@ -13605,6 +13911,7 @@ static int dissect_olc_rej_cause(tvbuff_t *tvb, int offset, asn_ctx_t *actx, pro static const per_sequence_t OpenLogicalChannelReject_sequence[] = { { "forwardLogicalChannelNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_forwardLogicalChannelNumber }, { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_olc_rej_cause }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; @@ -13613,7 +13920,7 @@ dissect_h245_OpenLogicalChannelReject(tvbuff_t *tvb, int offset, asn_ctx_t *actx offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_OpenLogicalChannelReject, OpenLogicalChannelReject_sequence); -#line 436 "h245.cnf" +#line 439 "h245.cnf" h245_pi->msg_type = H245_OpenLogChnRjc; @@ -13634,7 +13941,7 @@ dissect_h245_CloseLogicalChannelAck(tvbuff_t *tvb, int offset, asn_ctx_t *actx _ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_CloseLogicalChannelAck, CloseLogicalChannelAck_sequence); -#line 446 "h245.cnf" +#line 449 "h245.cnf" h245_pi->msg_type = H245_CloseLogChnAck; @@ -14943,7 +15250,7 @@ static const per_choice_t ResponseMessage_choice[] = { static int dissect_h245_ResponseMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 303 "h245.cnf" +#line 306 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -15250,6 +15557,7 @@ static const value_string h245_EndSessionCommand_vals[] = { { 1, "disconnect" }, { 2, "gstnOptions" }, { 3, "isdnOptions" }, + { 4, "genericInformation" }, { 0, NULL } }; @@ -15258,6 +15566,7 @@ static const per_choice_t EndSessionCommand_choice[] = { { 1, "disconnect" , ASN1_EXTENSION_ROOT , dissect_disconnect }, { 2, "gstnOptions" , ASN1_EXTENSION_ROOT , dissect_gstnOptions }, { 3, "isdnOptions" , ASN1_NOT_EXTENSION_ROOT, dissect_isdnOptions }, + { 4, "genericInformation" , ASN1_NOT_EXTENSION_ROOT, dissect_genericInformation }, { 0, NULL, 0, NULL } }; @@ -16149,7 +16458,7 @@ static const per_choice_t CommandMessage_choice[] = { static int dissect_h245_CommandMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 352 "h245.cnf" +#line 355 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -16219,7 +16528,7 @@ dissect_h245_MasterSlaveDeterminationRelease(tvbuff_t *tvb, int offset, asn_ctx_ offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_MasterSlaveDeterminationRelease, MasterSlaveDeterminationRelease_sequence); -#line 471 "h245.cnf" +#line 474 "h245.cnf" h245_pi->msg_type = H245_MastSlvDetRls; @@ -16231,6 +16540,7 @@ static int dissect_masterSlaveDeterminationRelease(tvbuff_t *tvb, int offset, as static const per_sequence_t TerminalCapabilitySetRelease_sequence[] = { + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; @@ -16239,7 +16549,7 @@ dissect_h245_TerminalCapabilitySetRelease(tvbuff_t *tvb, int offset, asn_ctx_t * offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_TerminalCapabilitySetRelease, TerminalCapabilitySetRelease_sequence); -#line 481 "h245.cnf" +#line 484 "h245.cnf" h245_pi->msg_type = H245_TermCapSetRls; @@ -16252,6 +16562,7 @@ static int dissect_terminalCapabilitySetRelease(tvbuff_t *tvb, int offset, asn_c static const per_sequence_t OpenLogicalChannelConfirm_sequence[] = { { "forwardLogicalChannelNumber" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_forwardLogicalChannelNumber }, + { "genericInformation" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_genericInformation }, { NULL, 0, 0, NULL } }; @@ -16260,7 +16571,7 @@ dissect_h245_OpenLogicalChannelConfirm(tvbuff_t *tvb, int offset, asn_ctx_t *act offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_h245_OpenLogicalChannelConfirm, OpenLogicalChannelConfirm_sequence); -#line 451 "h245.cnf" +#line 454 "h245.cnf" h245_pi->msg_type = H245_OpenLogChnCnf; @@ -16851,6 +17162,7 @@ static const per_sequence_t T_signal_sequence[] = { { "rtpPayloadIndication" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_rtpPayloadIndication }, { "paramS" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_paramS }, { "encryptedSignalType" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_encryptedSignalType }, + { "algorithmOID" , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_algorithmOID }, { NULL, 0, 0, NULL } }; @@ -16947,6 +17259,7 @@ static const value_string h245_UserInputIndication_vals[] = { { 4, "signalUpdate" }, { 5, "extendedAlphanumeric" }, { 6, "encryptedAlphanumeric" }, + { 7, "genericInformation" }, { 0, NULL } }; @@ -16958,6 +17271,7 @@ static const per_choice_t UserInputIndication_choice[] = { { 4, "signalUpdate" , ASN1_NOT_EXTENSION_ROOT, dissect_signalUpdate }, { 5, "extendedAlphanumeric" , ASN1_NOT_EXTENSION_ROOT, dissect_extendedAlphanumeric }, { 6, "encryptedAlphanumeric" , ASN1_NOT_EXTENSION_ROOT, dissect_encryptedAlphanumeric }, + { 7, "genericInformation" , ASN1_NOT_EXTENSION_ROOT, dissect_genericInformation }, { 0, NULL, 0, NULL } }; @@ -17357,7 +17671,7 @@ static const per_choice_t IndicationMessage_choice[] = { static int dissect_h245_IndicationMessage(tvbuff_t *tvb, int offset, asn_ctx_t *actx _U_, proto_tree *tree, int hf_index) { -#line 328 "h245.cnf" +#line 331 "h245.cnf" guint32 value; offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, @@ -17821,10 +18135,10 @@ void proto_register_h245(void) { { "messageIdentifier", "h245.messageIdentifier", FT_UINT32, BASE_DEC, VALS(h245_CapabilityIdentifier_vals), 0, "GenericMessage/messageIdentifier", HFILL }}, - { &hf_h245_subMessageIdentifer, - { "subMessageIdentifer", "h245.subMessageIdentifer", + { &hf_h245_subMessageIdentifier, + { "subMessageIdentifier", "h245.subMessageIdentifier", FT_UINT32, BASE_DEC, NULL, 0, - "GenericMessage/subMessageIdentifer", HFILL }}, + "GenericMessage/subMessageIdentifier", HFILL }}, { &hf_h245_messageContent, { "messageContent", "h245.messageContent", FT_UINT32, BASE_DEC, NULL, 0, @@ -17921,6 +18235,14 @@ void proto_register_h245(void) { { "Item", "h245.capabilityDescriptors_item", FT_NONE, BASE_NONE, NULL, 0, "TerminalCapabilitySet/capabilityDescriptors/_item", HFILL }}, + { &hf_h245_genericInformation, + { "genericInformation", "h245.genericInformation", + FT_UINT32, BASE_DEC, NULL, 0, + "", HFILL }}, + { &hf_h245_genericInformation_item, + { "Item", "h245.genericInformation_item", + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_h245_capabilityTableEntryNumber, { "capabilityTableEntryNumber", "h245.capabilityTableEntryNumber", FT_UINT32, BASE_DEC, NULL, 0, @@ -18073,14 +18395,26 @@ void proto_register_h245(void) { { "receiveRTPAudioToneCapability", "h245.receiveRTPAudioToneCapability", FT_NONE, BASE_NONE, NULL, 0, "Capability/receiveRTPAudioToneCapability", HFILL }}, - { &hf_h245_fecCapability, - { "fecCapability", "h245.fecCapability", - FT_UINT32, BASE_DEC, VALS(h245_FECCapability_vals), 0, - "Capability/fecCapability", HFILL }}, + { &hf_h245_depFecCapability, + { "depFecCapability", "h245.depFecCapability", + FT_UINT32, BASE_DEC, VALS(h245_DepFECCapability_vals), 0, + "Capability/depFecCapability", HFILL }}, { &hf_h245_multiplePayloadStreamCapability, { "multiplePayloadStreamCapability", "h245.multiplePayloadStreamCapability", FT_NONE, BASE_NONE, NULL, 0, "Capability/multiplePayloadStreamCapability", HFILL }}, + { &hf_h245_fecCapability, + { "fecCapability", "h245.fecCapability", + FT_NONE, BASE_NONE, NULL, 0, + "Capability/fecCapability", HFILL }}, + { &hf_h245_redundancyEncodingCap, + { "redundancyEncodingCap", "h245.redundancyEncodingCap", + FT_NONE, BASE_NONE, NULL, 0, + "Capability/redundancyEncodingCap", HFILL }}, + { &hf_h245_oneOfCapabilities, + { "oneOfCapabilities", "h245.oneOfCapabilities", + FT_UINT32, BASE_DEC, NULL, 0, + "Capability/oneOfCapabilities", HFILL }}, { &hf_h245_encryptionAuthenticationAndIntegrity, { "encryptionAuthenticationAndIntegrity", "h245.encryptionAuthenticationAndIntegrity", FT_NONE, BASE_NONE, NULL, 0, @@ -19985,6 +20319,10 @@ void proto_register_h245(void) { { "integrityCapability", "h245.integrityCapability", FT_NONE, BASE_NONE, NULL, 0, "EncryptionAuthenticationAndIntegrity/integrityCapability", HFILL }}, + { &hf_h245_genericH235SecurityCapability, + { "genericH235SecurityCapability", "h245.genericH235SecurityCapability", + FT_NONE, BASE_NONE, NULL, 0, + "EncryptionAuthenticationAndIntegrity/genericH235SecurityCapability", HFILL }}, { &hf_h245_EncryptionCapability_item, { "Item", "h245.EncryptionCapability_item", FT_UINT32, BASE_DEC, VALS(h245_MediaEncryptionAlgorithm_vals), 0, @@ -20045,6 +20383,10 @@ void proto_register_h245(void) { { "secureDTMF", "h245.secureDTMF", FT_NONE, BASE_NONE, NULL, 0, "UserInputCapability/secureDTMF", HFILL }}, + { &hf_h245_genericUserInputCapability, + { "genericUserInputCapability", "h245.genericUserInputCapability", + FT_NONE, BASE_NONE, NULL, 0, + "UserInputCapability/genericUserInputCapability", HFILL }}, { &hf_h245_nonStandardParams, { "nonStandardData", "h245.nonStandardData", FT_UINT32, BASE_DEC, NULL, 0, @@ -20157,11 +20499,11 @@ void proto_register_h245(void) { { "octetString", "h245.octetString", FT_BYTES, BASE_HEX, NULL, 0, "ParameterValue/octetString", HFILL }}, - { &hf_h245_genericParameter, + { &hf_h245_genericParameters, { "genericParameter", "h245.genericParameter", FT_UINT32, BASE_DEC, NULL, 0, "ParameterValue/genericParameter", HFILL }}, - { &hf_h245_genericParameter_item, + { &hf_h245_genericParameters_item, { "Item", "h245.genericParameter_item", FT_NONE, BASE_NONE, NULL, 0, "ParameterValue/genericParameter/_item", HFILL }}, @@ -20200,23 +20542,47 @@ void proto_register_h245(void) { { &hf_h245_fecc_rfc2733, { "rfc2733", "h245.rfc2733", FT_NONE, BASE_NONE, NULL, 0, - "FECCapability/rfc2733", HFILL }}, + "DepFECCapability/rfc2733", HFILL }}, { &hf_h245_redundancyEncodingBool, { "redundancyEncoding", "h245.redundancyEncoding", FT_BOOLEAN, 8, NULL, 0, - "FECCapability/rfc2733/redundancyEncoding", HFILL }}, + "DepFECCapability/rfc2733/redundancyEncoding", HFILL }}, { &hf_h245_separateStreamBool, { "separateStream", "h245.separateStream", FT_NONE, BASE_NONE, NULL, 0, - "FECCapability/rfc2733/separateStream", HFILL }}, + "DepFECCapability/rfc2733/separateStream", HFILL }}, { &hf_h245_separatePort, { "separatePort", "h245.separatePort", FT_BOOLEAN, 8, NULL, 0, - "FECCapability/rfc2733/separateStream/separatePort", HFILL }}, + "DepFECCapability/rfc2733/separateStream/separatePort", HFILL }}, { &hf_h245_samePortBool, { "samePort", "h245.samePort", FT_BOOLEAN, 8, NULL, 0, - "FECCapability/rfc2733/separateStream/samePort", HFILL }}, + "DepFECCapability/rfc2733/separateStream/samePort", HFILL }}, + { &hf_h245_protectedCapability, + { "protectedCapability", "h245.protectedCapability", + FT_UINT32, BASE_DEC, NULL, 0, + "FECCapability/protectedCapability", HFILL }}, + { &hf_h245_fecScheme, + { "fecScheme", "h245.fecScheme", + FT_OID, BASE_NONE, NULL, 0, + "", HFILL }}, + { &hf_h245_rfc2733rfc2198, + { "rfc2733rfc2198", "h245.rfc2733rfc2198", + FT_UINT32, BASE_DEC, NULL, 0, + "Rfc2733Format/rfc2733rfc2198", HFILL }}, + { &hf_h245_rfc2733sameport, + { "rfc2733sameport", "h245.rfc2733sameport", + FT_UINT32, BASE_DEC, NULL, 0, + "Rfc2733Format/rfc2733sameport", HFILL }}, + { &hf_h245_rfc2733diffport, + { "rfc2733diffport", "h245.rfc2733diffport", + FT_UINT32, BASE_DEC, NULL, 0, + "Rfc2733Format/rfc2733diffport", HFILL }}, + { &hf_h245_rfc2733Format, + { "rfc2733Format", "h245.rfc2733Format", + FT_UINT32, BASE_DEC, VALS(h245_Rfc2733Format_vals), 0, + "", HFILL }}, { &hf_h245_olc_fw_lcn, { "forwardLogicalChannelNumber", "h245.forwardLogicalChannelNumber", FT_UINT32, BASE_DEC, NULL, 0, @@ -20397,6 +20763,10 @@ void proto_register_h245(void) { { "multiplePayloadStream", "h245.multiplePayloadStream", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, + { &hf_h245_depFec, + { "depFec", "h245.depFec", + FT_UINT32, BASE_DEC, VALS(h245_DepFECData_vals), 0, + "", HFILL }}, { &hf_h245_fec, { "fec", "h245.fec", FT_UINT32, BASE_DEC, VALS(h245_FECData_vals), 0, @@ -20753,14 +21123,14 @@ void proto_register_h245(void) { { "Item", "h245.elements_item", FT_NONE, BASE_NONE, NULL, 0, "MultiplePayloadStream/elements/_item", HFILL }}, - { &hf_h245_rfc2733, + { &hf_h245_dep_rfc2733, { "rfc2733", "h245.rfc2733", FT_NONE, BASE_NONE, NULL, 0, - "FECData/rfc2733", HFILL }}, + "DepFECData/rfc2733", HFILL }}, { &hf_h245_fec_data_mode, { "mode", "h245.mode", FT_UINT32, BASE_DEC, VALS(h245_FECdata_mode_vals), 0, - "FECData/rfc2733/mode", HFILL }}, + "DepFECData/rfc2733/mode", HFILL }}, { &hf_h245_redundancyEncodingFlag, { "redundancyEncoding", "h245.redundancyEncoding", FT_NONE, BASE_NONE, NULL, 0, @@ -20768,11 +21138,11 @@ void proto_register_h245(void) { { &hf_h245_differentPort, { "differentPort", "h245.differentPort", FT_NONE, BASE_NONE, NULL, 0, - "SeparateStream/differentPort", HFILL }}, + "DepSeparateStream/differentPort", HFILL }}, { &hf_h245_protectedSessionID, { "protectedSessionID", "h245.protectedSessionID", FT_UINT32, BASE_DEC, NULL, 0, - "SeparateStream/differentPort/protectedSessionID", HFILL }}, + "DepSeparateStream/differentPort/protectedSessionID", HFILL }}, { &hf_h245_protectedPayloadType, { "protectedPayloadType", "h245.protectedPayloadType", FT_UINT32, BASE_DEC, NULL, 0, @@ -20780,11 +21150,35 @@ void proto_register_h245(void) { { &hf_h245_samePort, { "samePort", "h245.samePort", FT_NONE, BASE_NONE, NULL, 0, - "SeparateStream/samePort", HFILL }}, + "DepSeparateStream/samePort", HFILL }}, { &hf_h245_separateStream, { "separateStream", "h245.separateStream", - FT_UINT32, BASE_DEC, VALS(h245_SeparateStream_vals), 0, + FT_UINT32, BASE_DEC, VALS(h245_DepSeparateStream_vals), 0, "", HFILL }}, + { &hf_h245_rfc2733, + { "rfc2733", "h245.rfc2733", + FT_NONE, BASE_NONE, NULL, 0, + "FECData/rfc2733", HFILL }}, + { &hf_h245_pktMode, + { "pktMode", "h245.pktMode", + FT_UINT32, BASE_DEC, VALS(h245_T_pktMode_vals), 0, + "FECData/rfc2733/pktMode", HFILL }}, + { &hf_h245_rfc2198coding, + { "rfc2198coding", "h245.rfc2198coding", + FT_NONE, BASE_NONE, NULL, 0, + "FECData/rfc2733/pktMode/rfc2198coding", HFILL }}, + { &hf_h245_mode_rfc2733sameport, + { "rfc2733sameport", "h245.rfc2733sameport", + FT_NONE, BASE_NONE, NULL, 0, + "FECData/rfc2733/pktMode/rfc2733sameport", HFILL }}, + { &hf_h245_mode_rfc2733diffport, + { "rfc2733diffport", "h245.rfc2733diffport", + FT_NONE, BASE_NONE, NULL, 0, + "FECData/rfc2733/pktMode/rfc2733diffport", HFILL }}, + { &hf_h245_protectedChannel, + { "protectedChannel", "h245.protectedChannel", + FT_UINT32, BASE_DEC, NULL, 0, + "FECData/rfc2733/pktMode/rfc2733diffport/protectedChannel", HFILL }}, { &hf_h245_unicastAddress, { "unicastAddress", "h245.unicastAddress", FT_UINT32, BASE_DEC, VALS(h245_UnicastAddress_vals), 0, @@ -20917,6 +21311,10 @@ void proto_register_h245(void) { { "Item", "h245.escrowentry_item", FT_NONE, BASE_NONE, NULL, 0, "EncryptionSync/escrowentry/_item", HFILL }}, + { &hf_h245_genericParameter, + { "genericParameter", "h245.genericParameter", + FT_NONE, BASE_NONE, NULL, 0, + "EncryptionSync/genericParameter", HFILL }}, { &hf_h245_escrowID, { "escrowID", "h245.escrowID", FT_OID, BASE_NONE, NULL, 0, @@ -21009,6 +21407,10 @@ void proto_register_h245(void) { { "replacementForRejected", "h245.replacementForRejected", FT_NONE, BASE_NONE, NULL, 0, "OpenLogicalChannelReject/cause/replacementForRejected", HFILL }}, + { &hf_h245_securityDenied, + { "securityDenied", "h245.securityDenied", + FT_NONE, BASE_NONE, NULL, 0, + "OpenLogicalChannelReject/cause/securityDenied", HFILL }}, { &hf_h245_sessionID, { "sessionID", "h245.sessionID", FT_UINT32, BASE_DEC, NULL, 0, @@ -21237,10 +21639,14 @@ void proto_register_h245(void) { { "multiplePayloadStreamMode", "h245.multiplePayloadStreamMode", FT_NONE, BASE_NONE, NULL, 0, "ModeElementType/multiplePayloadStreamMode", HFILL }}, + { &hf_h245_depFecMode, + { "depFecMode", "h245.depFecMode", + FT_UINT32, BASE_DEC, VALS(h245_DepFECMode_vals), 0, + "ModeElementType/depFecMode", HFILL }}, { &hf_h245_fecMode, { "fecMode", "h245.fecMode", - FT_UINT32, BASE_DEC, VALS(h245_FECMode_vals), 0, - "ModeElementType/fecMode", HFILL }}, + FT_NONE, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_h245_type, { "type", "h245.type", FT_UINT32, BASE_DEC, VALS(h245_ModeElementType_vals), 0, @@ -21300,11 +21706,15 @@ void proto_register_h245(void) { { &hf_h245_rfc2733Mode, { "rfc2733Mode", "h245.rfc2733Mode", FT_NONE, BASE_NONE, NULL, 0, - "FECMode/rfc2733Mode", HFILL }}, + "DepFECMode/rfc2733Mode", HFILL }}, { &hf_h245_fec_mode, { "mode", "h245.mode", FT_UINT32, BASE_DEC, VALS(h245_FEC_mode_vals), 0, - "FECMode/rfc2733Mode/mode", HFILL }}, + "DepFECMode/rfc2733Mode/mode", HFILL }}, + { &hf_h245_protectedElement, + { "protectedElement", "h245.protectedElement", + FT_UINT32, BASE_DEC, VALS(h245_ModeElementType_vals), 0, + "FECMode/protectedElement", HFILL }}, { &hf_h245_adaptationLayer, { "adaptationLayerType", "h245.adaptationLayerType", FT_UINT32, BASE_DEC, VALS(h245_AdaptationLayerType_vals), 0, @@ -22869,6 +23279,10 @@ void proto_register_h245(void) { { "encryptedSignalType", "h245.encryptedSignalType", FT_BYTES, BASE_HEX, NULL, 0, "UserInputIndication/signal/encryptedSignalType", HFILL }}, + { &hf_h245_algorithmOID, + { "algorithmOID", "h245.algorithmOID", + FT_OID, BASE_NONE, NULL, 0, + "", HFILL }}, { &hf_h245_signalUpdate, { "signalUpdate", "h245.signalUpdate", FT_NONE, BASE_NONE, NULL, 0, @@ -22881,10 +23295,6 @@ void proto_register_h245(void) { { "extendedAlphanumeric", "h245.extendedAlphanumeric", FT_NONE, BASE_NONE, NULL, 0, "UserInputIndication/extendedAlphanumeric", HFILL }}, - { &hf_h245_algorithmOID, - { "algorithmOID", "h245.algorithmOID", - FT_OID, BASE_NONE, NULL, 0, - "EncryptedAlphanumeric/algorithmOID", HFILL }}, { &hf_h245_encrypted, { "encrypted", "h245.encrypted", FT_BYTES, BASE_HEX, NULL, 0, @@ -22924,6 +23334,7 @@ void proto_register_h245(void) { &ett_h245_TerminalCapabilitySet, &ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry, &ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor, + &ett_h245_SEQUENCE_OF_GenericInformation, &ett_h245_CapabilityTableEntry, &ett_h245_CapabilityDescriptor, &ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet, @@ -23066,9 +23477,11 @@ void proto_register_h245(void) { &ett_h245_NoPTAudioTelephonyEventCapability, &ett_h245_NoPTAudioToneCapability, &ett_h245_MultiplePayloadStreamCapability, - &ett_h245_FECCapability, + &ett_h245_DepFECCapability, &ett_h245_FECC_rfc2733, &ett_h245_T_separateStreamBool, + &ett_h245_FECCapability, + &ett_h245_Rfc2733Format, &ett_h245_OpenLogicalChannel, &ett_h245_T_forwardLogicalChannelParameters, &ett_h245_OLC_forw_multiplexParameters, @@ -23119,12 +23532,17 @@ void proto_register_h245(void) { &ett_h245_MultiplePayloadStream, &ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement, &ett_h245_MultiplePayloadStreamElement, - &ett_h245_FECData, + &ett_h245_DepFECData, &ett_h245_RFC2733Data, &ett_h245_FECdata_mode, - &ett_h245_SeparateStream, + &ett_h245_DepSeparateStream, &ett_h245_T_differentPort, &ett_h245_T_samePort, + &ett_h245_FECData, + &ett_h245_T_rfc2733, + &ett_h245_T_pktMode, + &ett_h245_T_mode_rfc2733sameport, + &ett_h245_T_mode_rfc2733diffport, &ett_h245_TransportAddress, &ett_h245_UnicastAddress, &ett_h245_T_iPAddress, @@ -23199,9 +23617,10 @@ void proto_register_h245(void) { &ett_h245_MultiplePayloadStreamMode, &ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode, &ett_h245_MultiplePayloadStreamElementMode, - &ett_h245_FECMode, + &ett_h245_DepFECMode, &ett_h245_T_rfc2733Mode, &ett_h245_FEC_mode, + &ett_h245_FECMode, &ett_h245_H223ModeParameters, &ett_h245_AdaptationLayerType, &ett_h245_V76ModeParameters, |