Ethereal-dev: RE: [Ethereal-dev] FW: Ethereal MGCP plugin update
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Alejandro Vaquero <Alejandro.Vaquero@xxxxxxxxxxx>
Date: Wed, 4 Jul 2001 13:51:35 -0300
Ok, here are the changes...
For 1) in the tvb_parse_param function I only add a "="
if(len >= tvb_current_offset - offset){
returnvalue = tvb_current_offset;
For 2) I made a new variable (dsp_parameter) to concatenat all the MGCP
parameter and then display it. And a new global variable to set it from the
preference menu (global_mgcp_param). Here are the adds:
/*
* Variable to concatenate the MGCP parameters to be displayed in the Info
Column.
*/
static char dsp_parameters[64] = "";
static gboolean global_mgcp_param = TRUE;
prefs_register_bool_preference(mgcp_module, "display_mgcp_param",
"Display MGCP parameters in Info column",
"Display MGCP parameters in Info column.",
&global_mgcp_param);
/*
* dissect_mgcp - The dissector for the Media Gateway Control Protocol
*/
/*
* Check to see whether we're really dealing with MGCP by looking
* for a valid MGCP verb or response code. This isn't infallible,
* but its cheap and its better than nothing.
*/
if(is_mgcp_verb(tvb,0,tvb_len) || is_mgcp_rspcode(tvb,0,tvb_len)){
/* Build the info tree if we've been given a root */
if (tree || global_mgcp_message_count == TRUE) {
/*
* Loop through however many mgcp messages may be stuck in
* this packet using piggybacking
*/
do{
num_messages++;
dsp_parameters[0] = '\0';
if(tree){
/* Create out mgcp subtree */
ti = proto_tree_add_item(tree,proto_mgcp,tvb,0,0, FALSE);
mgcp_tree = proto_item_add_subtree(ti, ett_mgcp);
}
sectionlen = tvb_find_dot_line(tvb, tvb_sectionbegin, -1,
&tvb_sectionend);
if( sectionlen != -1){
dissect_mgcp_message(tvb_new_subset(tvb, tvb_sectionbegin,
sectionlen, -1),
pinfo, tree, mgcp_tree,ti);
tvb_sectionbegin = tvb_sectionend;
}
else {
break;
}
} while(tvb_sectionend < tvb_len );
if(mgcp_tree){
proto_tree_add_uint_hidden(mgcp_tree, hf_mgcp_messagecount, tvb,
0 ,0 , num_messages);
}
}
/*
* Add our column information we do this after dissecting SDP
* in order to prevent the column info changing to reflect the SDP.
*/
tvb_sectionbegin = 0;
if (check_col(pinfo->fd, COL_PROTOCOL)){
if( global_mgcp_message_count == TRUE ){
if(num_messages > 1){
col_add_fstr(pinfo->fd, COL_PROTOCOL, "MGCP (%i messages)",num_messages);
}
else {
col_add_fstr(pinfo->fd, COL_PROTOCOL, "MGCP (%i message)",num_messages);
}
}
else {
col_add_str(pinfo->fd, COL_PROTOCOL, "MGCP");
}
}
if (check_col(pinfo->fd, COL_INFO) ){
sectionlen = tvb_find_line_end(tvb, tvb_sectionbegin,-1,
&tvb_sectionend);
if (global_mgcp_param == TRUE) {
col_add_fstr(pinfo->fd,COL_INFO, "%s | %s",
tvb_format_text(tvb,tvb_sectionbegin,sectionlen), dsp_parameters);
}
else {
col_add_fstr(pinfo->fd,COL_INFO, "%s",
tvb_format_text(tvb,tvb_sectionbegin,sectionlen));
}
}
}
}
/*
* dissect_mgcp_params - Dissects the parameters of an MGCP message.
* Adds the appropriate headers fields to
* tree for the dissection of the parameters
* of an MGCP message.
*
* Parameters:
* tvb - The tvb containing the parameters of an MGCP message. This
* tvb is presumed to ONLY contain the part of the MGCP
* message which contains the MGCP parameters.
* pinfo - The packet info for the packet. This is not really used
* by this function but is passed through so as to retain the
* style of a dissector.
* tree - The tree from which to hang the structured information parsed
* from the parameters of the MGCP message.
*/
/* Parse the parameters */
while(tvb_lineend < tvb_len){
linelen = tvb_find_line_end(tvb, tvb_linebegin, -1,&tvb_lineend);
tvb_tokenbegin = tvb_parse_param(tvb, tvb_linebegin, linelen,
&my_param);
if( my_param != NULL ){
tokenlen = tvb_find_line_end(tvb,tvb_tokenbegin,-1,&tvb_lineend);
my_proto_tree_add_string(mgcp_param_tree,*my_param, tvb,
tvb_linebegin, linelen,
tvb_format_text(tvb,tvb_tokenbegin,
tokenlen));
strcat(dsp_parameters, tvb_format_text(tvb,tvb_linebegin,linelen));
strcat(dsp_parameters, " ");
}
tvb_linebegin = tvb_lineend;
}
}
}
Regards
Alejandro
-----Original Message-----
From: Ed Warnicke [mailto:hagbard@xxxxxxxxxxxxxxxxxxx]
Sent: Wednesday, July 04, 2001 13:25
To: Alejandro Vaquero
Cc: ethereal-dev@xxxxxxxxxxxx
Subject: Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
If you could send a patch instead of the whole file that would
be a bit more useful...
Ed
On Wed, 4 Jul 2001, Alejandro Vaquero wrote:
> Im sending an updated MGCP plugin. I just send to Guy but he is on
> vacation. Please let me know if this is the correct way.
>
>
>
>
> -----Original Message-----
> From: Alejandro Vaquero [mailto:alejandro.vaquero@xxxxxxxxxxx]
> Sent: Wednesday, July 04, 2001 10:56
> To: guy@xxxxxxxxxxxx
> Subject: Ethereal MGCP plugin update
>
>
> Hi Guy,
> I was using Ethereal for 4 month, and it is realy nice. Specially
> the MGCP plugin, because I work in Clarent a IP telephony company.
> I made two changes in the MGCP plugin, but I don't know how to
> public it in the Ethereal page, so please let me know if this way is the
> correct. The changes are:
>
> 1) Allow to have "empty values" in the MGCP parameters. In the
> previous version it made a "malformed frame" for correct frames.
> 2) A new global parameter, to display the parameters in the "Info"
> column. This option is configurable from the Preference menu.
>
> Attached is the packet-mgcp.c file.
>
> PD: Sorry for my english, I'm from Argentina!!!!
>
> Regards
> Ing. Alejandro Vaquero
> Mercosur Sales Engineer
>
> Clarent Corporation
> Av. Alicia M. de Justo 1148 Suite 410B
> (C1107AAX) Capital Federal - Argentina
> Direct: +54 11 4341-4589 (Ext:1502)
> Movile: +51 11 5407-9067
> Fax: +54 11 4341-4588
> www.clarent.com
>
>
- Follow-Ups:
- Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- From: Guy Harris
- Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- References:
- Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- From: Ed Warnicke
- Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- Prev by Date: Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- Next by Date: Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- Previous by thread: Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- Next by thread: Re: [Ethereal-dev] FW: Ethereal MGCP plugin update
- Index(es):