Enhance graphics and packet details.

Use Courier TTF in png.
Show packet and cseq number in png.
Show ip:port->ip:port in details.
3.4
Andreas Granig 14 years ago
parent b29de7b0e0
commit 4688cc7f71

@ -1486,6 +1486,7 @@ sub sipstats_packet : Local {
$pkg->{payload} = encode_entities($pkg->{payload});
$pkg->{payload} =~ s/^([^\n]+)\n/<b>$1<\/b>\n/;
$pkg->{payload} = $pkg->{src_ip}.':'.$pkg->{src_port}.' &rarr; '. $pkg->{dst_ip}.':'.$pkg->{dst_port}.'<br/><br/>'.$pkg->{payload};
$pkg->{payload} =~ s/\n([a-zA-Z0-9\-_]+\:)/\n<b>$1<\/b>/g;
$pkg->{payload} =~ s/\r?\n/<br\/>/g;
$c->stash->{current_view} = 'Plain';

@ -637,6 +637,7 @@ sub process_callmap {
my $packets = shift;
my $r_png = shift;
my $r_info = shift;
my $i = 0;
my %int_uas = (
$c->config->{sipstats}->{lb_int}, 'lb',
@ -651,14 +652,14 @@ sub process_callmap {
my $canvas_elem_line_width = 2;
my $canvas_elem_line_color = 'darkgray';
my $canvas_elem_font = gdMediumBoldFont;
my $canvas_elem_font_size = 12;
my $canvas_elem_font = 'Courier:bold';
my $canvas_elem_font_size = 8;
my $canvas_elem_font_color = 'darkgray';
my $canvas_pkg_line_width = 2;
my $canvas_pkg_line_color = 'green';
my $canvas_pkg_font = gdMediumBoldFont;
my $canvas_pkg_font_size = 0;
my $canvas_pkg_font = 'Courier:bold';
my $canvas_pkg_font_size = 8;
my $canvas_pkg_font_color = 'dimgray';
my $html_padding = 5;
@ -698,7 +699,7 @@ sub process_callmap {
### calculate x position of all uas
my %uas_pos_x = ();
my $i = 0;
$i = 0;
foreach my $ua(@uas) {
my $name = $ua;
foreach my $k(keys %int_uas) {
@ -733,12 +734,15 @@ sub process_callmap {
### draw arrows
my $y_offset = $canvas_margin + $canvas_pkg_distance;
$i = 1;
foreach my $packet(@{$packets}) {
my $from_x = $uas_pos_x{$packet->{src_ip}.':'.$packet->{src_port}};
my $to_x = $uas_pos_x{$packet->{dst_ip}.':'.$packet->{dst_port}};
#print "arrow from ".$packet->{src_ip}.':'.$packet->{src_port}." to ".$packet->{dst_ip}.':'.$packet->{dst_port}.": $from_x - $to_x\n";
draw_arrow($canvas, $from_x, $y_offset, $to_x, $y_offset, $canvas_pkg_line_width, $canvas_pkg_line_color);
my $txt = $packet->{method}; # TODO: also append cseq
$packet->{payload} =~ /\ncseq:\s*(\d+)\s+[a-zA-Z]+/i;
my $cseq = $1 ? $1 : '?';
my $txt = $i.'. '.$packet->{method}.' ('.$cseq.')' ;
my @bounds = $canvas->stringBounds($txt); # get bounds for text centering
if($from_x < $to_x) {
$from_x = $from_x+int($canvas_elem_distance/2)-int($bounds[0]/2);
@ -752,6 +756,7 @@ sub process_callmap {
push @{$r_info->{areas}}, {"id", $packet->{id}, "coords", ($from_x-$html_padding).','.($y_offset-abs($bounds[1])-$html_padding).','.($from_x+abs($bounds[0])+$html_padding).','.($y_offset)};
$y_offset += $canvas_pkg_distance;
++$i;
}
$$r_png = $canvas->png;
}

Loading…
Cancel
Save