wireshark/epan/dissectors/asn1/h225/h225.cnf

962 lines
35 KiB
INI

# 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