freeswitch/src/mod/applications/mod_avmd/scripts/avmd_get_events.pl

57 lines
1.3 KiB
Perl

#!/usr/bin/perl -w
#brief Subscribe to avmd events and print them to the console.
#author Piotr Gregor <piotrgregor@rsyncme.org>
#date 13 Sept 2016 09:44 PM
$|++; # turn on autoflush
use strict;
use warnings;
require ESL;
my $host = "127.0.0.1";
my $port = "8021";
my $pass = "ClueCon";
my $format = "plain";
if ($#ARGV + 1 eq 1) {
$format = $ARGV[0];
print "Using format: [" .$format ."]\n";
}
my $con = new ESL::ESLconnection($host, $port, $pass);
if (!$con) {
die "Unable to establish connection to $host:$port\n";
}
if ($con->connected()) {
print "OK, Connected.\n";
} else {
die "Conenction failure.\n";
}
print "Subscribing to avmd events...\n";
$con->events("plain", "CUSTOM avmd::start");
$con->events("plain", "CUSTOM avmd::stop");
$con->events("plain", "CUSTOM avmd::beep");
print "Waiting for the events...\n";
while($con->connected()) {
my $e = $con->recvEvent();
my $avmd_event_type = "";
$avmd_event_type = $e->getHeader("Event-Subclass");
if ($avmd_event_type eq 'avmd::start') { # mark nicely the start of new session and event streak - most likely there will be other events from this session coming after this one
print "\n--------------------\n\n";
}
if ($e) {
my $body = $e->serialize($format);
print $body;
print "\n\n";
}
}
print "Disconnected.\n\n";