Display Filtered Events

A command line utility that connects to FreeSWITCH listening socket, subscribe to all events (don't do this on a busy server), and then display only selected types, further filtered on values in chosen headers.

#!/usr/bin/perl 
require ESL; 
 
my $type = ".*"; 
my $header = ".*"; 
my $value = ".*"; 
 
#$type = "CUSTOM|CHANNEL.*|MESSAGE"; 
#$header = "Core-UUID|Event-Subclass|Channel-State|Channel-Call-State"; 
#$value = "HANGUP|ACTIVE|DOWN|CS_EXECUTE"; 
 
my $con = new ESL::ESLconnection("localhost", "8021", "ClueCon"); 
$con->events("plain", "all"); 
 
while($con->connected()) { 
my $e = $con->recvEvent(); 
if ($e) { 
if(! ($e->getType() =~ /^($type)$/) ) { 
next; 
} 
printf "Type: [%s]
", $e->getType(); 
my $h = $e->firstHeader(); 
while ($h) { 
if( ( $h =~ /^($header)$/) && ($e->getHeader($h) =~ /^($value)$/) ){ 
printf "Header: [%s] = [%s]
", $h, $e->getHeader($h); 
} 
$h = $e->nextHeader(); 
} 
printf "Body: [%s]

", $e->getBody; 
} 
} 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset