wireshark/asn1/h225/h225.cnf

548 lines
20 KiB
Plaintext
Raw Normal View History

# h225.cnf
# H.225 conformation file
# Copyright 2004 Anders Broman
# $Id$
#.INCLUDE ../h235/h235-exp.cnf
#.INCLUDE ../h245/h245-exp.cnf
#----------------------------------------------------------------------------------------
#.EXPORTS
#----------------------------------------------------------------------------------------
NonStandardParameter
RasMessage WITH_VALS ETH_VAR NO_PROT_PREFIX
H323-UU-PDU/h323-message-body ONLY_VALS ETH_VAR NO_PROT_PREFIX
FacilityReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
GatekeeperRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
UnregRequestReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
UnregRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
BandRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
DisengageReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
DisengageRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
InfoRequestNakReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
ReleaseCompleteReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
AdmissionRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
LocationRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
RegistrationRejectReason ONLY_VALS ETH_VAR NO_PROT_PREFIX
AliasAddress NO_PROT_PREFIX
PartyNumber
PresentationIndicator
ScreeningIndicator
CallIdentifier
GenericData
#----------------------------------------------------------------------------------------
#.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
Connect-UUIE/language Language
Setup-UUIE/language Language
AdmissionConfirm/language Language
#----------------------------------------------------------------------------------------
#.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
#----------------------------------------------------------------------------------------
#.FN_BODY H323-UU-PDU/h323-message-body VAL_PTR = &message_body_val
guint32 message_body_val;
contains_faststart = FALSE;
%(DEFAULT_BODY)s
if (check_col(%(ACTX)s->pinfo->cinfo, COL_INFO)){
col_append_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "CS: %%s ",
val_to_str(message_body_val, T_h323_message_body_vals, "<unknown>"));
}
if (h225_pi->msg_type == H225_CS) {
/* Don't override msg_tag value from IRR */
h225_pi->msg_tag = message_body_val;
}
if (contains_faststart == TRUE )
{
if (check_col(%(ACTX)s->pinfo->cinfo, COL_INFO))
{
col_append_str(%(ACTX)s->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
}
}
col_set_fence(%(ACTX)s->pinfo->cinfo,COL_INFO);
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY FastStart/_item VAL_PTR = &value_tvb
tvbuff_t *value_tvb = NULL;
char codec_str[50];
%(DEFAULT_BODY)s
if (value_tvb && tvb_length(value_tvb)) {
dissect_h245_OpenLogicalChannelCodec(value_tvb, %(ACTX)s->pinfo, tree, codec_str);
}
/* Add to packet info */
g_snprintf(h225_pi->frame_label, 50, "%%s %%s", h225_pi->frame_label, codec_str);
contains_faststart = TRUE;
h225_pi->is_faststart = TRUE;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY RasMessage VAL_PTR = &rasmessage_value
guint32 rasmessage_value;
%(DEFAULT_BODY)s
if (check_col(%(ACTX)s->pinfo->cinfo, COL_INFO)){
col_add_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "RAS: %%s ",
val_to_str(rasmessage_value, RasMessage_vals, "<unknown>"));
}
h225_pi->msg_tag = rasmessage_value;
#.END
#----------------------------------------------------------------------------------------
#.FN_HDR DestinationInfo/_item
h225_pi->is_destinationInfo = TRUE;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY DialedDigits VAL_PTR = &value_tvb
tvbuff_t *value_tvb = NULL;
guint len = 0;
%(DEFAULT_BODY)s
if (h225_pi->is_destinationInfo == TRUE) {
if (value_tvb) {
len = tvb_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/h245ipAddress/h245ipv4 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_PARS H245TransportAddress/h245ipAddress/h245ipv4port VAL_PTR = &ipv4_port
#----------------------------------------------------------------------------------------
#.FN_BODY ParallelH245Control/_item VAL_PTR = &h245_tvb
tvbuff_t *h245_tvb = NULL;
%(DEFAULT_BODY)s
next_tvb_add(&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(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR H323-UU-PDU/h323-message-body/empty
h225_pi->cs_type = H225_EMPTY;
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Status-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_STATUS;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Information-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_INFORMATION;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Progress-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_PROGRESS;
if (contains_faststart == TRUE )
g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
else
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Facility-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_FACILITY;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_PARS H323-UU-PDU/h245Tunneling VAL_PTR = &(h225_pi->is_h245Tunneling)
#----------------------------------------------------------------------------------------
#.FN_HDR Setup-UUIE
contains_faststart = FALSE;
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Setup-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_SETUP;
if (contains_faststart == TRUE )
g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
else
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR CallProceeding-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_CALL_PROCEDING;
if (contains_faststart == TRUE )
g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
else
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Alerting-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_ALERTING;
if (contains_faststart == TRUE )
g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
else
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR ReleaseComplete-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_RELEASE_COMPLET;
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR Connect-UUIE
/* Add to packet info */
h225_pi->cs_type = H225_CONNECT;
if (contains_faststart == TRUE )
g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
else
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
#.END
#----------------------------------------------------------------------------------------
#.FN_HDR H245TransportAddress
ipv4_address=0;
ipv4_port=0;
#.END
#----------------------------------------------------------------------------------------
#.FN_FTR H245TransportAddress
/* we need this info for TAPing */
h225_pi->is_h245 = TRUE;
h225_pi->h245_address = ipv4_address;
h225_pi->h245_port = ipv4_port;
if((!actx->pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && h245_handle){
address src_addr;
conversation_t *conv=NULL;
src_addr.type=AT_IPv4;
src_addr.len=4;
src_addr.data=(const guint8 *)&ipv4_address;
conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
if(!conv){
conv=conversation_new(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
conversation_set_dissector(conv, h245_handle);
}
}
#.END
#----------------------------------------------------------------------------------------
#.FN_PARS
FacilityReason VAL_PTR = &value
GatekeeperRejectReason VAL_PTR = &value
UnregRequestReason VAL_PTR = &value
UnregRejectReason VAL_PTR = &value
BandRejectReason VAL_PTR = &value
DisengageReason VAL_PTR = &value
DisengageRejectReason VAL_PTR = &value
AdmissionRejectReason VAL_PTR = &value
LocationRejectReason VAL_PTR = &value
RegistrationRejectReason VAL_PTR = &value
InfoRequestNakReason VAL_PTR = &value
ReleaseCompleteReason VAL_PTR = &value
#.END
#.FN_BODY FacilityReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY GatekeeperRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY UnregRequestReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY UnregRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY BandRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY DisengageReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#----------------------------------------------------------------------------------------
#.FN_BODY DisengageRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY AdmissionRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY LocationRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY RegistrationRejectReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY InfoRequestNakReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY ReleaseCompleteReason
guint32 value;
%(DEFAULT_BODY)s
h225_pi->reason = value;
#.END
#----------------------------------------------------------------------------------------
#.FN_BODY CallIdentifier/guid
tvbuff_t *guid_tvb;
offset = dissect_per_octet_string(tvb,offset,%(ACTX)s,tree,hf_index,GUID_LEN,GUID_LEN,&guid_tvb);
tvb_memcpy(guid_tvb,(guint8 *)&h225_pi->guid,0,GUID_LEN);
#.END
#----------------------------------------------------------------------------------------
#.FN_PARS RequestSeqNum VAL_PTR = &(h225_pi->requestSeqNum)
#----------------------------------------------------------------------------------------
#.FN_BODY H323-UU-PDU/h4501SupplementaryService/_item VAL_PTR = &h4501_tvb
tvbuff_t *h4501_tvb = NULL;
%(DEFAULT_BODY)s
if (h4501_tvb && tvb_length(h4501_tvb)) {
call_dissector(h4501_handle, h4501_tvb, %(ACTX)s->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(&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
guint32 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_port_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_length(next_tvb)) {
call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, %(ACTX)s->pinfo, tree);
}
#.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/h245ipAddress/h245ipv4 TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
H245TransportAddress/h245ip6Address/h245ipv6 TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
VendorIdentifier/productId TYPE = FT_STRING DISPLAY = BASE_HEX STRINGS = NULL
VendorIdentifier/versionId TYPE = FT_STRING DISPLAY = BASE_HEX STRINGS = NULL
H323-UserInformation/user-data/protocol-discriminator TYPE = FT_UINT32 DISPLAY = BASE_DEC STRINGS = VALS(q931_protocol_discriminator_vals)
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
#.END