diff options
author | Tomas Kukosa <tomas.kukosa@siemens.com> | 2006-05-31 07:33:47 +0000 |
---|---|---|
committer | Tomas Kukosa <tomas.kukosa@siemens.com> | 2006-05-31 07:33:47 +0000 |
commit | 9b2a95f2d4e7d8aa3c36fb223a42527ca7550e09 (patch) | |
tree | 73564c50e579e573863d44c5461579fd575b011f /epan | |
parent | 16f57a74c6a5faefcf10645413f79d800af64682 (diff) |
H.245 update to version 12 (10/2005)
svn path=/trunk/; revision=18262
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-h245.c | 843 |
1 files changed, 631 insertions, 212 deletions
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, |