forked from osmocom/wireshark
a8bc4a0d13
keys to have _uint in their names, to match the routines that handle dissector tables with string keys. (Using _port can confuse people into thinking they're intended solely for use with TCP/UDP/etc. ports when, in fact, they work better for things such as Ethernet types, where the binding of particular values to particular protocols are a lot stronger.) svn path=/trunk/; revision=35224
732 lines
25 KiB
INI
732 lines
25 KiB
INI
# h225.cnf
|
|
# H.225 conformation file
|
|
# Copyright 2004 Anders Broman
|
|
# $Id$
|
|
|
|
#.IMPORT ../h235/h235-exp.cnf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#.IMPORT ../h245/h245-exp.cnf
|
|
|
|
#----------------------------------------------------------------------------------------
|
|
#.EXPORTS ONLY_VALS WS_VAR NO_PROT_PREFIX
|
|
H323-UU-PDU/h323-message-body
|
|
FacilityReason
|
|
GatekeeperRejectReason
|
|
UnregRequestReason
|
|
UnregRejectReason
|
|
BandRejectReason
|
|
DisengageReason
|
|
DisengageRejectReason
|
|
InfoRequestNakReason
|
|
AdmissionRejectReason
|
|
LocationRejectReason
|
|
RegistrationRejectReason
|
|
|
|
#.MODULE_EXPORTS
|
|
RasMessage WS_VAR
|
|
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 WS_VAR
|
|
ExtendedAliasAddress_PDU
|
|
#.END
|
|
|
|
#.PDU_NEW
|
|
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
|
|
|
|
#.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;
|
|
|
|
contains_faststart = FALSE;
|
|
call_id_guid = NULL;
|
|
%(DEFAULT_BODY)s
|
|
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 (call_id_guid) {
|
|
h225_pi->guid = *call_id_guid;
|
|
}
|
|
|
|
if (contains_faststart == TRUE )
|
|
{
|
|
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_FastStart_OLC(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
|
|
gint32 rasmessage_value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
col_add_fstr(%(ACTX)s->pinfo->cinfo, COL_INFO, "RAS: %%s ",
|
|
val_to_str(rasmessage_value, h225_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 && 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/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_PARS H245TransportAddress/ipAddress/port VAL_PTR = &ipv4_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_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 SetupAcknowledge-UUIE
|
|
/* Add to packet info */
|
|
h225_pi->cs_type = H225_SETUP_ACK;
|
|
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/h245Tunnelling 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_BODY FacilityReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY GatekeeperRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY UnregRequestReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY UnregRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY BandRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY DisengageReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY DisengageRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY AdmissionRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY LocationRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY RegistrationRejectReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY InfoRequestNakReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY ReleaseCompleteReason VAL_PTR = &value
|
|
gint32 value;
|
|
|
|
%(DEFAULT_BODY)s
|
|
h225_pi->reason = value;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_BODY CallIdentifier/guid
|
|
tvbuff_t *guid_tvb = NULL;
|
|
|
|
%(ACTX)s->value_ptr = &guid_tvb;
|
|
%(DEFAULT_BODY)s
|
|
if (guid_tvb)
|
|
tvb_get_ntohguid(guid_tvb, 0, call_id_guid = ep_alloc(sizeof(e_guid_t)));
|
|
%(ACTX)s->value_ptr = NULL;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
#.FN_PARS GloballyUniqueID VAL_PTR = %(ACTX)s->value_ptr
|
|
#----------------------------------------------------------------------------------------
|
|
#.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_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_length(next_tvb)) {
|
|
call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, %(ACTX)s->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(NULL, "GenericData");
|
|
actx->private_data = gefx;
|
|
}
|
|
#.FN_FTR
|
|
actx->private_data = priv_data;
|
|
#.END
|
|
|
|
#.FN_HDR GenericData/parameters/_item
|
|
gef_ctx_t *parent_gefx;
|
|
|
|
parent_gefx = gef_ctx_get(actx->private_data);
|
|
actx->private_data = gef_ctx_alloc(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(NULL, "FeatureDescriptor");
|
|
#.FN_FTR
|
|
actx->private_data = priv_data;
|
|
#.END
|
|
#----------------------------------------------------------------------------------------
|
|
|
|
#.FN_HDR GenericIdentifier
|
|
gef_ctx_t *gefx;
|
|
#.FN_FTR
|
|
gef_ctx_update_key(gef_ctx_get(actx->private_data));
|
|
/* DEBUG */ /*proto_tree_add_text(tree, tvb, offset>>3, 0, "*** DEBUG GenericIdentifier: %s", gef_ctx_get(actx->private_data)->key);*/
|
|
gefx = gef_ctx_get(actx->private_data);
|
|
if (gefx) {
|
|
/* DEBUG */ /*proto_tree_add_text(tree, tvb, offset>>3, 0, "*** DEBUG dissector_try_string: %s", gefx->key);*/
|
|
actx->pinfo->private_data = actx;
|
|
dissector_try_string(gef_name_dissector_table, gefx->key, tvb_new_subset(tvb, offset>>3, 0, 0), actx->pinfo, tree);
|
|
}
|
|
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 = ep_strdup_printf("%%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
|
|
|
|
|
|
#=== 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
|