forked from osmocom/wireshark
4e1ca8f2c3
while at it change the h248 context analysis to use se_trees instead of GHashTables svn path=/trunk/; revision=17571
297 lines
8.4 KiB
INI
297 lines
8.4 KiB
INI
# h248.cnf
|
|
# H.248 conformation file
|
|
|
|
# $Id$
|
|
|
|
#.MODULE_IMPORT
|
|
|
|
#.EXPORTS
|
|
|
|
#.PDU
|
|
|
|
#.NO_EMIT
|
|
MtpAddress
|
|
PkgdName
|
|
PropertyID
|
|
SignalName
|
|
EventName
|
|
ContextID
|
|
ErrorCode
|
|
|
|
#.TYPE_RENAME
|
|
IndAudMediaDescriptor/streams indAudMediaDescriptorStreams
|
|
ActionRequest/contextId contextId
|
|
ActionReply/contextId contextId
|
|
TransactionRequest/transactionId transactionId
|
|
TransactionPending/transactionId transactionId
|
|
TransactionReply/transactionId transactionId
|
|
TransactionResponseAck/transactionId transactionId
|
|
|
|
#.FIELD_RENAME
|
|
IP4Address/address iP4Address
|
|
IP6Address/address iP6Address
|
|
ContextAttrAuditRequest/emergency cAAREmergency
|
|
ContextAttrAuditRequest/priority cAARPriority
|
|
SecondRequestedEvent/eventAction secondaryEventAction
|
|
TerminationStateDescriptor/eventBufferControl tSEventBufferControl
|
|
SecondEventsDescriptor/eventList secondaryEventList
|
|
IndAudEventBufferDescriptor/eventName iAEBDEventName
|
|
TerminationID/id terminationId
|
|
IndAudStreamParms/localControlDescriptor iASPLocalControlDescriptor
|
|
IndAudStreamParms/localDescriptor iASPLocalDescriptor
|
|
MediaDescriptor/streams/oneStream mediaDescriptorOneStream
|
|
MediaDescriptor/streams/multiStream mediaDescriptorMultiStream
|
|
MediaDescriptor/streams/multiStream/_item mediaDescriptorMultiStream_item
|
|
DomainName/name domName
|
|
IndAudEventsDescriptor/pkgdName iAEDPkgdName
|
|
IndAudLocalRemoteDescriptor/propGrps iAPropertyGroup
|
|
IndAudLocalControlDescriptor/propertyParms indAudPropertyParms
|
|
IndAudTerminationStateDescriptor/propertyParms indAudPropertyParms
|
|
IndAudLocalControlDescriptor/reserveGroup iALCDReserveGroup
|
|
IndAudLocalControlDescriptor/reserveValue iALCDReserveValue
|
|
IndAudLocalControlDescriptor/streamMode iALCDStreamMode
|
|
IndAudStreamDescriptor/streamParms indAudStreamParms
|
|
IndAudMediaDescriptor/termStateDescr indAudTerminationStateDescriptor
|
|
IndAudSignal/signalName iASignalName
|
|
IndAudSeqSigList/signalList iASignalList
|
|
IndAudSignalsDescriptor/signal indAudSignal
|
|
IndAudSignalsDescriptor/seqSigList indAudSeqSigList
|
|
IndAudTerminationStateDescriptor/serviceState iATSDServiceState
|
|
IndAudStreamParms/remoteDescriptor iASPRemoteDescriptor
|
|
PropertyParm/value propertyParamValue
|
|
IndAudMediaDescriptor/streams indAudMediaDescriptorStreams
|
|
AmmRequest/terminationID terminationIDList
|
|
AmmsReply/terminationID terminationIDList
|
|
SubtractRequest/terminationID terminationIDList
|
|
NotifyRequest/terminationID terminationIDList
|
|
NotifyReply/terminationID terminationIDList
|
|
ServiceChangeRequest/terminationID terminationIDList
|
|
ServiceChangeReply/terminationID terminationIDList
|
|
|
|
|
|
#.FN_HDR Message
|
|
msg = h248_msg(pinfo,TVB_RAW_OFFSET(tvb));
|
|
#.END
|
|
|
|
#.FN_FTR Message
|
|
if (check_col(pinfo->cinfo, COL_INFO))
|
|
col_set_str(pinfo->cinfo, COL_INFO, h248_msg_to_str(msg));
|
|
|
|
if (keep_persistent_data)
|
|
analyze_h248_msg(msg);
|
|
#.END
|
|
|
|
#.FN_BODY TransactionRequest/transactionId
|
|
guint32 trx_id = 0;
|
|
offset = dissect_h248_trx_id(implicit_tag, pinfo, tree, tvb, offset, &trx_id);
|
|
trx = h248_trx(msg,trx_id,H248_TRX_REQUEST);
|
|
error_code = 0;
|
|
#.END
|
|
|
|
#.FN_BODY TransactionPending/transactionId
|
|
guint32 trx_id = 0;
|
|
offset = dissect_h248_trx_id(implicit_tag, pinfo, tree, tvb, offset, &trx_id);
|
|
trx = h248_trx(msg,trx_id,H248_TRX_PENDING);
|
|
error_code = 0;
|
|
#.END
|
|
|
|
#.FN_BODY TransactionReply/transactionId
|
|
guint32 trx_id = 0;
|
|
offset = dissect_h248_trx_id(implicit_tag, pinfo, tree, tvb, offset, &trx_id);
|
|
trx = h248_trx(msg,trx_id,H248_TRX_REPLY);
|
|
error_code = 0;
|
|
#.END
|
|
|
|
#.FN_BODY TransactionResponseAck/transactionId
|
|
guint32 trx_id = 0;
|
|
offset = dissect_h248_trx_id(implicit_tag, pinfo, tree, tvb, offset, &trx_id);
|
|
trx = h248_trx(msg,trx_id,H248_TRX_ACK);
|
|
error_code = 0;
|
|
#.END
|
|
|
|
|
|
#.FN_BODY ActionRequest/contextId
|
|
guint32 ctx_id = 0;
|
|
offset = dissect_h248_ctx_id(implicit_tag, pinfo, tree, tvb, offset, &ctx_id);
|
|
ctx = h248_ctx(msg,trx,ctx_id);
|
|
term = NULL;
|
|
#.END
|
|
|
|
#.FN_BODY ActionReply/contextId
|
|
guint32 ctx_id;
|
|
offset = dissect_h248_ctx_id(implicit_tag, pinfo, tree, tvb, offset, &ctx_id);
|
|
ctx = h248_ctx(msg ,trx,ctx_id);
|
|
cmd = NULL;
|
|
term = NULL;
|
|
#.END
|
|
|
|
#.FN_FTR ActionReply
|
|
if (!cmd)
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR Command/addReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_ADD_REQ,offset);
|
|
#.END
|
|
|
|
#.FN_FTR Command/addReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/moveReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_MOVE_REQ,offset);
|
|
#.END
|
|
|
|
#.FN_FTR Command/moveReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/modReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_MOD_REQ,offset);
|
|
#.END
|
|
#.FN_FTR Command/modReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/subtractReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_SUB_REQ,offset);
|
|
#.END
|
|
#.FN_FTR Command/subtractReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/auditCapRequest
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_AUDITCAP_REQ,offset);
|
|
#.END
|
|
#.FN_FTR Command/auditCapRequest
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/auditValueRequest
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_AUDITVAL_REQ,offset);
|
|
#.END
|
|
#.FN_FTR Command/auditValueRequest
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/notifyReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_NOTIFY_REQ,offset);
|
|
#.END
|
|
#.FN_FTR Command/notifyReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR Command/ServiceChangeRequest
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_SVCCHG_REQ,offset);
|
|
#.END
|
|
#.FN_FTR Command/ServiceChangeRequest
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR ContextRequest/topologyReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_TOPOLOGY_REQ,offset);
|
|
#.END
|
|
#.FN_FTR ContextRequest/topologyReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR ActionRequest/contextAttrAuditReq
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_CTX_ATTR_AUDIT_REQ,offset);
|
|
#.END
|
|
#.FN_FTR ActionRequest/contextAttrAuditReq
|
|
cmd = NULL;
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/addReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_ADD_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/moveReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_MOVE_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/modReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_MOD_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/subtractReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_SUB_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/notifyReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_NOTIFY_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/ServiceChangeReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_SVCCHG_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/auditCapReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_AUDITCAP_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_HDR CommandReply/auditValueReply
|
|
cmd = h248_cmd(msg,trx,ctx,H248_CMD_AUDITVAL_REPLY,offset);
|
|
#.END
|
|
|
|
#.FN_BODY ErrorDescriptor/errorCode
|
|
offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_h248_error_code, &error_code);
|
|
expert_add_info_format(pinfo, get_ber_last_created_item(), PI_RESPONSE_CODE, PI_WARN, "Errored Command");
|
|
|
|
if (cmd) {
|
|
h248_cmd_set_error(cmd,error_code);
|
|
} else if (trx) {
|
|
h248_trx_set_error(trx,error_code);
|
|
}
|
|
|
|
return offset;
|
|
#.END
|
|
|
|
#.FN_HDR TerminationID
|
|
term = ep_new0(h248_term_t);
|
|
wild_term = H248_WILDCARD_NONE;
|
|
#.END
|
|
|
|
#.FN_BODY WildcardField
|
|
tvbuff_t* new_tvb;
|
|
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, &new_tvb);
|
|
tree = proto_item_add_subtree(get_ber_last_created_item(),ett_wildcard);
|
|
proto_tree_add_item(tree,hf_h248_term_wild_type,new_tvb,0,1,FALSE);
|
|
proto_tree_add_item(tree,hf_h248_term_wild_level,new_tvb,0,1,FALSE);
|
|
proto_tree_add_item(tree,hf_h248_term_wild_position,new_tvb,0,1,FALSE);
|
|
|
|
wild_term = tvb_get_guint8(new_tvb,0) & 0x80 ? H248_WILDCARD_CHOOSE : H248_WILDCARD_ALL;
|
|
|
|
#.END
|
|
|
|
#.FN_BODY TerminationID/id
|
|
tvbuff_t* new_tvb;
|
|
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, &new_tvb);
|
|
|
|
if (new_tvb) {
|
|
term->len = tvb_length(new_tvb);
|
|
term->type = 0; /* unknown */
|
|
|
|
if (term->len) {
|
|
term->buffer = ep_tvb_memdup(new_tvb,0,term->len);
|
|
term->str = bytes_to_str(term->buffer,term->len);
|
|
}
|
|
|
|
term = h248_cmd_add_term(msg, trx, cmd, term, wild_term);
|
|
|
|
if (h248_term_handle) {
|
|
call_dissector(h248_term_handle, new_tvb, pinfo, tree);
|
|
}
|
|
} else {
|
|
term->len = 0;
|
|
term->buffer = (guint8*)ep_strdup("");
|
|
term->str = ep_strdup("?");
|
|
}
|
|
#.END
|
|
|
|
#.TYPE_ATTR
|
|
IP4Address/address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
|
|
IP6Address/address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
|
|
ActionRequest/contextId TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL
|
|
ActionReply/contextId TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL
|