2 # H.248 conformation file
26 IndAudMediaDescriptor/streams indAudMediaDescriptorStreams
27 ActionRequest/contextId contextId
28 ActionReply/contextId contextId
29 TransactionRequest/transactionId transactionId
30 TransactionPending/transactionId transactionId
31 TransactionReply/transactionId transactionId
32 StatisticsParameter/statName StatName
33 StatisticsParameter/statValue StatValue
34 PropertyParm/propertyName PropertyName
37 IP4Address/address iP4Address
38 IP6Address/address iP6Address
39 ContextAttrAuditRequest/emergency cAAREmergency
40 ContextAttrAuditRequest/priority cAARPriority
41 SecondRequestedEvent/eventAction secondaryEventAction
42 TerminationStateDescriptor/eventBufferControl tSEventBufferControl
43 SecondEventsDescriptor/eventList secondaryEventList
44 IndAudEventBufferDescriptor/eventName iAEBDEventName
45 TerminationID/id terminationId
46 IndAudStreamParms/localControlDescriptor iASPLocalControlDescriptor
47 IndAudStreamParms/localDescriptor iASPLocalDescriptor
48 MediaDescriptor/streams/oneStream mediaDescriptorOneStream
49 MediaDescriptor/streams/multiStream mediaDescriptorMultiStream
50 MediaDescriptor/streams/multiStream/_item mediaDescriptorMultiStream_item
51 DomainName/name domName
52 IndAudEventsDescriptor/pkgdName iAEDPkgdName
53 IndAudLocalRemoteDescriptor/propGrps iAPropertyGroup
54 IndAudLocalControlDescriptor/propertyParms indAudPropertyParms
55 IndAudTerminationStateDescriptor/propertyParms indAudPropertyParms
56 IndAudLocalControlDescriptor/reserveGroup iALCDReserveGroup
57 IndAudLocalControlDescriptor/reserveValue iALCDReserveValue
58 IndAudLocalControlDescriptor/streamMode iALCDStreamMode
59 IndAudStreamDescriptor/streamParms indAudStreamParms
60 IndAudMediaDescriptor/termStateDescr indAudTerminationStateDescriptor
61 IndAudSignal/signalName iASignalName
62 IndAudSeqSigList/signalList iASignalList
63 IndAudSignalsDescriptor/signal indAudSignal
64 IndAudSignalsDescriptor/seqSigList indAudSeqSigList
65 IndAudTerminationStateDescriptor/serviceState iATSDServiceState
66 IndAudStreamParms/remoteDescriptor iASPRemoteDescriptor
67 PropertyParm/value propertyParamValue
68 IndAudMediaDescriptor/streams indAudMediaDescriptorStreams
69 AmmRequest/terminationID terminationIDList
70 AmmsReply/terminationID terminationIDList
71 SubtractRequest/terminationID terminationIDList
72 NotifyRequest/terminationID terminationIDList
73 NotifyReply/terminationID terminationIDList
74 ServiceChangeRequest/terminationID terminationIDList
75 ServiceChangeReply/terminationID terminationIDList
76 IndAudStatisticsDescriptor/statName iAStatName
80 curr_info.msg = gcp_msg(actx->pinfo,TVB_RAW_OFFSET(tvb),keep_persistent_data);
84 if (check_col(actx->pinfo->cinfo, COL_INFO))
85 col_set_str(actx->pinfo->cinfo, COL_INFO, gcp_msg_to_str(curr_info.msg,keep_persistent_data));
87 if (keep_persistent_data)
88 gcp_analyze_msg(h248_tree, h248_tvb, curr_info.msg, &h248_arrel);
91 #.FN_BODY TransactionRequest/transactionId
93 offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
94 curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REQUEST, keep_persistent_data);
98 #.FN_BODY ActionRequest/contextId
100 offset = dissect_h248_ctx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &ctx_id);
101 curr_info.ctx = gcp_ctx(curr_info.msg,curr_info.trx,ctx_id,keep_persistent_data);
102 curr_info.cmd = NULL;
103 curr_info.term = NULL;
107 if (!curr_info.cmd) {
108 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_REPLY,offset,keep_persistent_data);
113 #.FN_HDR Command/addReq
114 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REQ,offset,keep_persistent_data);
118 #.FN_FTR Command/addReq
119 curr_info.cmd = NULL;
122 #.FN_HDR Command/moveReq
123 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REQ,offset,keep_persistent_data);
128 #.FN_FTR Command/moveReq
129 curr_info.cmd = NULL;
132 #.FN_HDR Command/modReq
133 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REQ,offset,keep_persistent_data);
136 #.FN_FTR Command/modReq
137 curr_info.cmd = NULL;
140 #.FN_HDR Command/subtractReq
141 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REQ,offset,keep_persistent_data);
144 #.FN_FTR Command/subtractReq
145 curr_info.cmd = NULL;
148 #.FN_HDR Command/auditCapRequest
149 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REQ,offset,keep_persistent_data);
152 #.FN_FTR Command/auditCapRequest
153 curr_info.cmd = NULL;
156 #.FN_HDR Command/auditValueRequest
157 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REQ,offset,keep_persistent_data);
160 #.FN_FTR Command/auditValueRequest
161 curr_info.cmd = NULL;
164 #.FN_HDR Command/notifyReq
165 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REQ,offset,keep_persistent_data);
168 #.FN_FTR Command/notifyReq
169 curr_info.cmd = NULL;
172 #.FN_HDR ServiceChangeRequest
173 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REQ,offset,keep_persistent_data);
176 #.FN_FTR ServiceChangeRequest
177 curr_info.cmd = NULL;
180 #.FN_HDR ContextRequest/topologyReq
181 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_TOPOLOGY_REQ,offset,keep_persistent_data);
184 #.FN_FTR ContextRequest/topologyReq
185 curr_info.cmd = NULL;
188 #.FN_HDR ActionRequest/contextAttrAuditReq
189 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_CTX_ATTR_AUDIT_REQ,offset,keep_persistent_data);
192 #.FN_FTR ActionRequest/contextAttrAuditReq
193 curr_info.cmd = NULL;
196 #.FN_HDR CommandReply/addReply
197 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REPLY,offset,keep_persistent_data);
201 #.FN_HDR CommandReply/moveReply
202 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REPLY,offset,keep_persistent_data);
206 #.FN_HDR CommandReply/modReply
207 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REPLY,offset,keep_persistent_data);
211 #.FN_HDR CommandReply/subtractReply
212 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REPLY,offset,keep_persistent_data);
216 #.FN_HDR CommandReply/notifyReply
217 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REPLY,offset,keep_persistent_data);
221 #.FN_HDR ServiceChangeReply
222 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REPLY,offset,keep_persistent_data);
226 #.FN_HDR CommandReply/auditCapReply
227 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REPLY,offset,keep_persistent_data);
231 #.FN_HDR CommandReply/auditValueReply
232 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REPLY,offset,keep_persistent_data);
236 #.FN_BODY ErrorDescriptor/errorCode
237 offset = dissect_ber_integer(implicit_tag, actx->pinfo, tree, tvb, offset, hf_h248_error_code, &error_code);
238 expert_add_info_format(actx->pinfo, get_ber_last_created_item(), PI_RESPONSE_CODE, PI_WARN, "Errored Command");
241 gcp_cmd_set_error(curr_info.cmd,error_code);
242 } else if (curr_info.trx) {
243 gcp_trx_set_error(curr_info.trx,error_code);
249 #.FN_HDR TerminationID
250 curr_info.term = ep_new0(gcp_term_t);
251 wild_term = GCP_WILDCARD_NONE;
254 #.FN_BODY WildcardField
256 offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index, &new_tvb);
257 tree = proto_item_add_subtree(get_ber_last_created_item(),ett_wildcard);
258 proto_tree_add_item(tree,hf_h248_term_wild_type,new_tvb,0,1,FALSE);
259 proto_tree_add_item(tree,hf_h248_term_wild_level,new_tvb,0,1,FALSE);
260 proto_tree_add_item(tree,hf_h248_term_wild_position,new_tvb,0,1,FALSE);
262 wild_term = tvb_get_guint8(new_tvb,0) & 0x80 ? GCP_WILDCARD_CHOOSE : GCP_WILDCARD_ALL;
266 #.FN_BODY TerminationID/id
268 offset = dissect_ber_octet_string(implicit_tag, actx->pinfo, tree, tvb, offset, hf_index, &new_tvb);
271 curr_info.term->len = tvb_length(new_tvb);
272 curr_info.term->type = 0; /* unknown */
274 if (curr_info.term->len) {
275 curr_info.term->buffer = ep_tvb_memdup(new_tvb,0,curr_info.term->len);
276 curr_info.term->str = bytes_to_str(curr_info.term->buffer,curr_info.term->len);
279 curr_info.term = gcp_cmd_add_term(curr_info.msg, curr_info.trx, curr_info.cmd, curr_info.term, wild_term, keep_persistent_data);
281 if (h248_term_handle) {
282 call_dissector(h248_term_handle, new_tvb, actx->pinfo, tree);
285 curr_info.term->len = 0;
286 curr_info.term->buffer = (guint8*)ep_strdup("");
287 curr_info.term->str = ep_strdup("?");
292 #.FN_BODY SCreasonValueOctetStr VAL_PTR = ¶meter_tvb
294 tvbuff_t *parameter_tvb;
300 dissect_h248_ServiceChangeReasonStr(FALSE, parameter_tvb, 0, actx, tree, hf_h248_serviceChangeReasonStr);
303 IP4Address/address TYPE = FT_IPv4 DISPLAY = BASE_NONE STRINGS = NULL
304 IP6Address/address TYPE = FT_IPv6 DISPLAY = BASE_NONE STRINGS = NULL
305 ActionRequest/contextId TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL
306 ActionReply/contextId TYPE = FT_UINT32 DISPLAY = BASE_HEX STRINGS = NULL