diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/h225/h225.cnf | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/h225/h225.cnf')
-rw-r--r-- | epan/dissectors/asn1/h225/h225.cnf | 961 |
1 files changed, 961 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h225/h225.cnf b/epan/dissectors/asn1/h225/h225.cnf new file mode 100644 index 00000000..28a22f83 --- /dev/null +++ b/epan/dissectors/asn1/h225/h225.cnf @@ -0,0 +1,961 @@ +# h225.cnf +# H.225 conformation file +# Copyright 2004 Anders Broman + +#.IMPORT ../h235/h235-exp.cnf + + + + + + +#.IMPORT ../h245/h245-exp.cnf + +#---------------------------------------------------------------------------------------- +#.EXPORTS ONLY_VALS WS_DLL NO_PROT_PREFIX +H323-UU-PDU/h323-message-body +FacilityReason +GatekeeperRejectReason +UnregRequestReason +UnregRejectReason +BandRejectReason +DisengageReason +DisengageRejectReason +InfoRequestNakReason +AdmissionRejectReason +LocationRejectReason +RegistrationRejectReason + +#.MODULE_EXPORTS +RasMessage EXTERN WS_DLL +NonStandardParameter +PublicTypeOfNumber +PrivateTypeOfNumber +AliasAddress NO_PROT_PREFIX +PartyNumber +PresentationIndicator +ScreeningIndicator +CallIdentifier +ConferenceIdentifier +CircuitIdentifier +GenericIdentifier +GenericData +BandWidth +TimeToLive +TransportAddress +AlternateTransportAddresses +TransportChannelInfo +CallReferenceValue +GloballyUniqueID +TunnelledProtocol +IntegrityMechanism +ICV +CryptoH323Token +TransportQOS +FeatureSet +CircuitInfo +EndpointType +SupportedProtocols +GatekeeperIdentifier +ServiceControlSession +ReleaseCompleteReason EXTERN WS_DLL +ExtendedAliasAddress_PDU +#.END + +#.PDU +H323-UserInformation +RasMessage +ExtendedAliasAddress +#.END + +#---------------------------------------------------------------------------------------- + +#.OMIT_ASSIGNMENT +EncodedFastStartToken +FastStartToken +#.END + +#.VIRTUAL_ASSGN +FastStart Setup-UUIE/fastStart +#.SET_TYPE +Setup-UUIE/fastStart FastStart +CallProceeding-UUIE/fastStart FastStart +Connect-UUIE/fastStart FastStart +Alerting-UUIE/fastStart FastStart +Information-UUIE/fastStart FastStart +Facility-UUIE/fastStart FastStart +Progress-UUIE/fastStart FastStart + +#.VIRTUAL_ASSGN +H245Control H323-UU-PDU/h245Control +ParallelH245Control Setup-UUIE/parallelH245Control +DialedDigits AliasAddress/dialledDigits + +#.VIRTUAL_ASSGN +DestinationInfo AdmissionRequest/destinationInfo +#.SET_TYPE +AdmissionRequest/destinationInfo DestinationInfo +AdmissionConfirm/destinationInfo DestinationInfo +LocationRequest/destinationInfo DestinationInfo +LocationConfirm/destinationInfo DestinationInfo + +#.VIRTUAL_ASSGN +H245TransportAddress TransportAddress +#.SET_TYPE +Setup-UUIE/h245Address H245TransportAddress +CallProceeding-UUIE/h245Address H245TransportAddress +Connect-UUIE/h245Address H245TransportAddress +Alerting-UUIE/h245Address H245TransportAddress +Facility-UUIE/h245Address H245TransportAddress +Progress-UUIE/h245Address H245TransportAddress +#.FIELD_RENAME +H245TransportAddress/ipAddress h245IpAddress +H245TransportAddress/ipAddress/ip h245Ip +H245TransportAddress/ipAddress/port h245IpPort +H245TransportAddress/ipSourceRoute h245IpSourceRoute +H245TransportAddress/ipSourceRoute/route h245Route +H245TransportAddress/ipSourceRoute/routing h245Routing +H245TransportAddress/ipxAddress h245IpxAddress +H245TransportAddress/ipxAddress/port h245IpxPort +H245TransportAddress/ip6Address h245Ip6Address +H245TransportAddress/ip6Address/ip h245Ip6 +H245TransportAddress/ip6Address/port h245Ip6port +DisplayName/language displayName_language +Endpoint/remoteExtensionAddress/_item ep_remoteExtensionAddress_item +AdmissionConfirm/remoteExtensionAddress/_item ac_remoteExtensionAddress_item + +#.FIELD_ATTR +H245TransportAddress/ipAddress/ip ABBREV=h245Ip +H245TransportAddress/ipAddress/port ABBREV=h245IpPort +H245TransportAddress/ip6Address/ip ABBREV=h245Ip6 +H245TransportAddress/ip6Address/port ABBREV=h245Ip6port +H245TransportAddress/ipxAddress/port ABBREV=h245IpxPort +TransportAddress/ipSourceRoute/ip ABBREV=src_route_ipV4 +TransportAddress/ipSourceRoute/port ABBREV=ipV4_src_port +TransportAddress/ipAddress/ip ABBREV=ipV4 +TransportAddress/ipAddress/port ABBREV=ipV4_port +TransportAddress/ip6Address/ip ABBREV=ipV6 +TransportAddress/ip6Address/port ABBREV=ipV6_port +TransportAddress/ipxAddress/port ABBREV=ipx_port +DisplayName/language ABBREV=displayName_language +ExtendedAliasAddress/address ABBREV=extAliasAddress +Endpoint/remoteExtensionAddress/_item ABBREV=remoteExtensionAddress.item +AdmissionConfirm/remoteExtensionAddress/_item ABBREV=ac_remoteExtensionAddress_item + +#.VIRTUAL_ASSGN +Language Setup-UUIE/language +#.SET_TYPE +Connect-UUIE/language Language +Setup-UUIE/language Language +RegistrationRequest/language Language +AdmissionConfirm/language Language +LocationRequest/language Language + +#---------------------------------------------------------------------------------------- +#.TYPE_RENAME +CallCreditServiceControl/callStartingPoint CallCreditServiceControl_callStartingPoint +TunnelledProtocol/id TunnelledProtocol_id +ServiceControlSession/reason ServiceControlSession_reason +RasUsageSpecification/callStartingPoint RasUsageSpecificationcallStartingPoint +CapacityReportingSpecification/when CapacityReportingSpecification_when +RasUsageSpecification/when RasUsageSpecification_when +TransportAddress/ipAddress/ip IpV4 +#---------------------------------------------------------------------------------------- +#.FIELD_RENAME +RasUsageSpecification/callStartingPoint/alerting alerting_flg +CallCreditServiceControl/callStartingPoint/alerting alerting_flg +UseSpecifiedTransport/annexE annexE_flg + +UUIEsRequested/callProceeding callProceeding_flg + +CicInfo/cic cic_2_4 +UUIEsRequested/connect connect_bool +NonStandardIdentifier/object nsiOID +NonStandardParameter/data nsp_data +H323-UU-PDU/h323-message-body/empty empty_flg +RasUsageInfoTypes/endTime endTime_flg +UUIEsRequested/facility facility_bool +CallsAvailable/group group_IA5String +GroupID/group group_IA5String + +Setup-UUIE/hopCount hopCount_1_31 +UUIEsRequested/information information_bool +TransportAddress/ip6Address/ip ipV6 +TransportAddress/ipAddress/ip ipV4 +TransportAddress/ipSourceRoute/ip src_route_ipV4 +RTPSession/multicast multicast_flg + +UUIEsRequested/notify notify_bool +TransportAddress/ipxAddress/port ipx_port +TransportAddress/ipAddress/port ipV4_port +TransportAddress/ipSourceRoute/port ipV4_src_port +TransportAddress/ip6Address/port ipV6_port +UUIEsRequested/progress progress_bool + +Facility-UUIE/reason facilityReason +UnregistrationRequest/reason unregRequestReason +ReleaseComplete-UUIE/reason releaseCompleteReason +BandwidthReject/rejectReason bandRejectReason +UnregistrationReject/rejectReason unregRejectReason +RegistrationReject/rejectReason registrationRejectReason +LocationReject/rejectReason locationRejectReason +DisengageReject/rejectReason disengageRejectReason +GatekeeperReject/rejectReason gatekeeperRejectReason + +UUIEsRequested/releaseComplete releaseComplete_bool +UseSpecifiedTransport/sctp sctp_flg +ServiceControlSession/sessionId sessionId_0_255 +UUIEsRequested/setup setup_bool +UUIEsRequested/setupAcknowledge setupAcknowledge_bool +Setup-UUIE/sourceInfo setup-UUIE_sourceInfo + +UUIEsRequested/status status_bool +UUIEsRequested/statusInquiry statusInquiry_bool +RasUsageInfoTypes/terminationCause terminationCause_flg +CapacityReportingSpecification/when capacityReportingSpecification_when +UUIEsRequested/alerting alerting_bool + +LocationConfirm/callSignalAddress locationConfirm_callSignalAddress + +RasUsageSpecification/callStartingPoint/connect connect_flg +CallCreditServiceControl/callStartingPoint/connect connect_flg + +Alerting-UUIE/destinationInfo uUIE_destinationInfo +CallProceeding-UUIE/destinationInfo uUIE_destinationInfo +Connect-UUIE/destinationInfo uUIE_destinationInfo +Facility-UUIE/destinationInfo uUIE_destinationInfo +Progress-UUIE/destinationInfo uUIE_destinationInfo + +TunnelledProtocol/id tunnelledProtocol_id +SecurityCapabilities/integrity securityCapabilities_integrity + +GenericIdentifier/nonStandard genericIdentifier_nonStandard +AlternateGK/rasAddress alternateGK_rasAddress +GatekeeperRequest/rasAddress gatekeeperRequest_rasAddress +GatekeeperConfirm/rasAddress gatekeeperConfirm_rasAddress +LocationConfirm/rasAddress locationConfirm_rasAddress +InfoRequestResponse/rasAddress infoRequestResponse_rasAddress + + +Setup-UUIE/remoteExtensionAddress uUIE_remoteExtensionAddress +Facility-UUIE/remoteExtensionAddress uUIE_remoteExtensionAddress + +VendorIdentifier/vendor vendorIdentifier_vendor + +RasUsageSpecification/callStartingPoint ras_callStartingPoint + +ReleaseCompleteReason/securityError rLC_securityError +GatekeeperRejectReason/securityError gkRej_securityError +RegistrationRejectReason/securityError reg_securityError + +CallIdentifier/guid guid + +ExtendedAliasAddress/address extAliasAddress + +IsupNumber/e164Number isupE164Number +IsupNumber/dataPartyNumber isupDataPartyNumber +IsupNumber/telexPartyNumber isupTelexPartyNumber +IsupNumber/privateNumber isupPrivateNumber +IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber + +#---------------------------------------------------------------------------------------- +#.FN_BODY H323-UU-PDU/h323-message-body VAL_PTR = &message_body_val + gint32 message_body_val; + h225_packet_info* h225_pi; + + contains_faststart = FALSE; + call_id_guid = NULL; +%(DEFAULT_BODY)s + col_append_fstr(actx->pinfo->cinfo, COL_INFO, "CS: %%s ", + val_to_str(message_body_val, T_h323_message_body_vals, "<unknown>")); + + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + if (h225_pi->msg_type == H225_CS) { + /* Don't override msg_tag value from IRR */ + h225_pi->msg_tag = message_body_val; + } + + if (call_id_guid) { + h225_pi->guid = *call_id_guid; + } + } + + if (contains_faststart == TRUE ) + { + col_append_str(actx->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " ); + } + + col_set_fence(actx->pinfo->cinfo,COL_INFO); + +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY FastStart/_item VAL_PTR = &value_tvb + tvbuff_t *value_tvb = NULL; + char codec_str[50]; + h225_packet_info* h225_pi; + codec_str[0] = '\0'; + +%(DEFAULT_BODY)s + if (value_tvb && tvb_reported_length(value_tvb)) { + dissect_h245_FastStart_OLC(value_tvb, actx->pinfo, tree, codec_str); + } + + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + char temp[50]; + snprintf(temp, 50, "%%s %%s", h225_pi->frame_label, codec_str); + (void) g_strlcpy(h225_pi->frame_label, temp, 50); + h225_pi->is_faststart = TRUE; + } + contains_faststart = TRUE; +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY RasMessage VAL_PTR = &rasmessage_value + gint32 rasmessage_value; + h225_packet_info* h225_pi; + + call_id_guid = NULL; +%(DEFAULT_BODY)s + col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RAS: %%s ", + val_to_str(rasmessage_value, h225_RasMessage_vals, "<unknown>")); + + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->msg_tag = rasmessage_value; + if (call_id_guid) { + h225_pi->guid = *call_id_guid; + } + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR DestinationInfo/_item + h225_packet_info* h225_pi; + + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->is_destinationInfo = TRUE; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY DialedDigits VAL_PTR = &value_tvb + tvbuff_t *value_tvb = NULL; + guint len = 0; + h225_packet_info* h225_pi; + +%(DEFAULT_BODY)s + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi && h225_pi->is_destinationInfo == TRUE) { + if (value_tvb) { + len = tvb_reported_length(value_tvb); + /* XXX - should this be allocated as an ephemeral string? */ + if (len > sizeof h225_pi->dialedDigits - 1) + len = sizeof h225_pi->dialedDigits - 1; + tvb_memcpy(value_tvb, (guint8*)h225_pi->dialedDigits, 0, len); + } + h225_pi->dialedDigits[len] = '\0'; + h225_pi->is_destinationInfo = FALSE; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY H245TransportAddress/ipAddress/ip VAL_PTR = &value_tvb + tvbuff_t *value_tvb; + + ipv4_address = 0; +%(DEFAULT_BODY)s + if (value_tvb) + ipv4_address = tvb_get_ipv4(value_tvb, 0); +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY H245TransportAddress/ip6Address/ip VAL_PTR = &value_tvb + tvbuff_t *value_tvb; + + ipv6_address = ipv6_address_zeros; +%(DEFAULT_BODY)s + if (value_tvb) + tvb_get_ipv6(value_tvb, 0, &ipv6_address); +#.END +#---------------------------------------------------------------------------------------- +#.FN_PARS H245TransportAddress/ipAddress/port VAL_PTR = &ip_port +#---------------------------------------------------------------------------------------- +#.FN_PARS H245TransportAddress/ip6Address/port VAL_PTR = &ip_port +#---------------------------------------------------------------------------------------- +#.FN_BODY ParallelH245Control/_item VAL_PTR = &h245_tvb + tvbuff_t *h245_tvb = NULL; + +%(DEFAULT_BODY)s + next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle); +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY H245Control/_item VAL_PTR = &h245_tvb + tvbuff_t *h245_tvb = NULL; + +%(DEFAULT_BODY)s + next_tvb_add_handle(h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle); +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR H323-UU-PDU/h323-message-body/empty + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR H323-UU-PDU/h323-message-body/empty + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_EMPTY; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Status-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Status-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_STATUS; + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Information-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Information-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_INFORMATION; + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Progress-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Progress-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_PROGRESS; + if (contains_faststart) { + char temp[50]; + snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); + (void) g_strlcpy(h225_pi->frame_label, temp, 50); + } else + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR SetupAcknowledge-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR SetupAcknowledge-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_SETUP_ACK; + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Facility-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Facility-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_FACILITY; + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR H323-UU-PDU/h245Tunnelling + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { +#.END +#---------------------------------------------------------------------------------------- +#.FN_PARS H323-UU-PDU/h245Tunnelling VAL_PTR = &(h225_pi->is_h245Tunneling) +#---------------------------------------------------------------------------------------- +#.FN_FTR H323-UU-PDU/h245Tunnelling + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Setup-UUIE + h225_packet_info* h225_pi; + contains_faststart = FALSE; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Setup-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_SETUP; + if (contains_faststart) { + char temp[50]; + snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); + (void) g_strlcpy(h225_pi->frame_label, temp, 50); + } else + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR CallProceeding-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR CallProceeding-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_CALL_PROCEDING; + if (contains_faststart) { + char temp[50]; + snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); + (void) g_strlcpy(h225_pi->frame_label, temp, 50); + } else + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Alerting-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Alerting-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_ALERTING; + if (contains_faststart) { + char temp[50]; + snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); + (void) g_strlcpy(h225_pi->frame_label, temp, 50); + } else + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR ReleaseComplete-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR ReleaseComplete-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_RELEASE_COMPLET; + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR Connect-UUIE + h225_packet_info* h225_pi; +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR Connect-UUIE + /* Add to packet info */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { + h225_pi->cs_type = H225_CONNECT; + if (contains_faststart) { + char temp[50]; + snprintf(temp, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label); + (void) g_strlcpy(h225_pi->frame_label, temp, 50); + } else + snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>")); + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_HDR H245TransportAddress + h225_packet_info* h225_pi; + ipv4_address=0; + ipv6_address = ipv6_address_zeros; + ip_port=0; + +#.END +#---------------------------------------------------------------------------------------- +#.FN_FTR H245TransportAddress + /* we need this info for TAPing */ + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + + if (h225_pi) { + h225_pi->is_h245 = TRUE; + h225_pi->h245_address = ipv4_address; + h225_pi->h245_port = ip_port; + } + if ( !actx->pinfo->fd->visited && h245_handle && ip_port!=0 ) { + address src_addr; + conversation_t *conv=NULL; + + if (ipv4_address!=0) { + set_address(&src_addr, AT_IPv4, 4, &ipv4_address); + } else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) { + set_address(&src_addr, AT_IPv6, 16, ipv6_address.bytes); + } else { + return offset; + } + + conv=find_conversation(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B); + if(!conv){ + conv=conversation_new(actx->pinfo->num, &src_addr, &src_addr, CONVERSATION_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2); + conversation_set_dissector(conv, h245_handle); + } + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY FacilityReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY GatekeeperRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY UnregRequestReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY UnregRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY BandRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY DisengageReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#---------------------------------------------------------------------------------------- +#.FN_BODY DisengageRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY AdmissionRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY LocationRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY RegistrationRejectReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY InfoRequestNakReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY ReleaseCompleteReason VAL_PTR = &value + gint32 value; + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + +%(DEFAULT_BODY)s + if (h225_pi != NULL) { + h225_pi->reason = value; + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY CallIdentifier/guid + tvbuff_t *guid_tvb = NULL; + + actx->value_ptr = &guid_tvb; +%(DEFAULT_BODY)s + if (guid_tvb) + tvb_get_ntohguid(guid_tvb, 0, call_id_guid = wmem_new(actx->pinfo->pool, e_guid_t)); + actx->value_ptr = NULL; +#.END +#---------------------------------------------------------------------------------------- +#.FN_PARS GloballyUniqueID VAL_PTR = (tvbuff_t **)actx->value_ptr +#---------------------------------------------------------------------------------------- +#.FN_HDR RequestSeqNum + h225_packet_info* h225_pi; + h225_pi = (h225_packet_info*)p_get_proto_data(actx->pinfo->pool, actx->pinfo, proto_h225, 0); + if (h225_pi != NULL) { +#.END +#---------------------------------------------------------------------------------------- +#.FN_PARS RequestSeqNum VAL_PTR = &(h225_pi->requestSeqNum) +#---------------------------------------------------------------------------------------- +#.FN_FTR RequestSeqNum + } +#.END +#---------------------------------------------------------------------------------------- +#.FN_BODY H323-UU-PDU/h4501SupplementaryService/_item VAL_PTR = &h4501_tvb + tvbuff_t *h4501_tvb = NULL; + +%(DEFAULT_BODY)s + if (h4501_tvb && tvb_reported_length(h4501_tvb)) { + call_dissector(h4501_handle, h4501_tvb, actx->pinfo, tree); + } +#.END +#---------------------------------------------------------------------------------------- + +#--- TunnelledProtocol ------------------------------------------------------------------ + +#.FN_HDR TunnelledProtocol + tpOID = ""; +#.FN_FTR TunnelledProtocol + tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID); +#.FN_PARS TunnelledProtocol/id/tunnelledProtocolObjectID + FN_VARIANT = _str VAL_PTR = &tpOID +#.END + +#.FN_HDR H323-UU-PDU/tunnelledSignallingMessage + tp_handle = NULL; +#.FN_BODY H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item VAL_PTR = &next_tvb + tvbuff_t *next_tvb = NULL; + +%(DEFAULT_BODY)s + next_tvb_add_handle(tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle); +#.END + +#--- NonStandardParameter --------------------------------------------------------------- + +#.FN_PARS +NonStandardIdentifier/object FN_VARIANT = _str VAL_PTR = &nsiOID +#.END + +#.FN_BODY NonStandardIdentifier VAL_PTR = &value + gint32 value; + + nsiOID = ""; + h221NonStandard = 0; + +%(DEFAULT_BODY)s + switch (value) { + case 0 : /* object */ + nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID); + break; + case 1 : /* h221NonStandard */ + nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard); + break; + default : + nsp_handle = NULL; + } +#.END + +#.FN_HDR H221NonStandard + t35CountryCode = 0; + t35Extension = 0; + manufacturerCode = 0; +#.FN_FTR H221NonStandard + h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode; + proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard); +#.FN_PARS +H221NonStandard/t35CountryCode VAL_PTR = &t35CountryCode +H221NonStandard/t35Extension VAL_PTR = &t35Extension +H221NonStandard/manufacturerCode VAL_PTR = &manufacturerCode +#.END + +#.FN_HDR NonStandardParameter + nsp_handle = NULL; +#.FN_BODY NonStandardParameter/data VAL_PTR = &next_tvb + tvbuff_t *next_tvb = NULL; + +%(DEFAULT_BODY)s + if (next_tvb && tvb_reported_length(next_tvb)) { + call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree); + } +#.END + +#=== Generic Extensible Framework ======================================================= + +#.FN_HDR GenericData + void *priv_data = actx->private_data; + gef_ctx_t *gefx; + + /* check if not inherited from FeatureDescriptor */ + gefx = gef_ctx_get(actx->private_data); + if (!gefx) { + gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericData"); + actx->private_data = gefx; + } +#.FN_FTR + actx->private_data = priv_data; +#.END + +#.FN_HDR EnumeratedParameter + gef_ctx_t *parent_gefx; + + parent_gefx = gef_ctx_get(actx->private_data); + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL); +#.FN_FTR + actx->private_data = parent_gefx; +#.END + +#---------------------------------------------------------------------------------------- +#.FN_HDR FeatureDescriptor + void *priv_data = actx->private_data; + actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "FeatureDescriptor"); +#.FN_FTR + actx->private_data = priv_data; +#.END +#---------------------------------------------------------------------------------------- + +#.FN_HDR GenericIdentifier + gef_ctx_t *gefx; + proto_item* ti; +#.FN_FTR + gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data)); + gefx = gef_ctx_get(actx->private_data); + if (gefx) { + ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); + proto_item_set_hidden(ti); + dissector_try_string_new(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, FALSE, actx); + } + actx->private_data = gefx; /* subdissector could overwrite it */ +#.END + +#.FN_BODY GenericIdentifier/standard VAL_PTR = &value_int + guint32 value_int = (guint32)-1; + gef_ctx_t *gefx; + +%(DEFAULT_BODY)s + gefx = gef_ctx_get(actx->private_data); + if (gefx) gefx->id = wmem_strdup_printf(actx->pinfo->pool, "%%u", value_int); +#.END + +#.FN_BODY GenericIdentifier/oid FN_VARIANT = _str VAL_PTR = &oid_str + const gchar *oid_str = NULL; + gef_ctx_t *gefx; + +%(DEFAULT_BODY)s + gefx = gef_ctx_get(actx->private_data); + if (gefx) gefx->id = oid_str; +#.END + +#---------------------------------------------------------------------------------------- +#.FN_BODY Content/raw VAL_PTR = &value_tvb + tvbuff_t *value_tvb; + gef_ctx_t *gefx; + proto_item* ti; + +%(DEFAULT_BODY)s + gefx = gef_ctx_get(actx->private_data); + if (gefx) { + ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key); + proto_item_set_hidden(ti); + dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, %(TREE)s, actx); + } +#.END + +#=== end of GEF ========================================================================= + +# TBCD-STRING is additionally constrained +# parameter stack is used for passing this constraint + +#.FN_HDR TBCD-STRING + int min_len, max_len; + gboolean has_extension; + + get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension); +#.FN_PARS TBCD-STRING +MIN_VAL = min_len +MAX_VAL = max_len +EXT = has_extension +#.END + + +#.TYPE_ATTR +H221NonStandard/t35CountryCode TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(T35CountryCode_vals) +TransportAddress/ipAddress/ip TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL +TransportAddress/ip6Address/ip TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL +H245TransportAddress/ipAddress/ip TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL +H245TransportAddress/ip6Address/ip TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL +VendorIdentifier/productId TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL +VendorIdentifier/versionId TYPE = FT_STRING DISPLAY = BASE_NONE STRINGS = NULL +H323-UserInformation/user-data/protocol-discriminator TYPE = FT_UINT32 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &q931_protocol_discriminator_vals_ext +H323-UU-PDU/tunnelledSignallingMessage/messageContent/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC +NonStandardParameter/data TYPE = FT_UINT32 DISPLAY = BASE_DEC +FastStart/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC +ParallelH245Control/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC +H245Control/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC +GloballyUniqueID TYPE = FT_GUID DISPLAY = BASE_NONE +H323-UU-PDU/h4501SupplementaryService/_item TYPE = FT_UINT32 DISPLAY = BASE_DEC +#.END |