#!/usr/bin/perl 
#############################
# my modules
use strict;
use warnings;
use POSIX;
use Switch;
use Asterisk::AMI;
#############################
# Globals
my $astman;
my $ast_username = 'login';
my $ast_password="password";
my $ast_hostname=$ARGV[0];
my $ast_port="5038";
#############################
# connect Acterisk Menager 
Get_Info ();
##############################################################################################
# AMI connect
##############################################################################################
sub AMI_connect {
$astman = Asterisk::AMI->new(PeerAddr        =>      $ast_hostname,
                             PeerPort        =>      $ast_port,
                             Username        =>      $ast_username,
                             Secret          =>      $ast_password,
                             Events          =>      'off'
                             );
unless ($astman)
	{
	print "0";
	return 0;
	}
return 1;
}
##############################################################################################
# Get Contact From Asterisk
##############################################################################################
sub Get_Info {
my $IDN=$_[0];

AMI_connect();

unless ($astman)
	{
	print "0";
	return 0;
	}
my $actionid = $astman->send_action({   Action => 'Command',
                                        Command => "core show channels"
                                   });
my $response = $astman->get_response($actionid);

my $rr2=$response->{'CMD'};
my @aa = @$rr2;
my $nbch=0;
foreach my $i (@aa)
	{
	if (($nbch) = $i =~ /^(\d+) active call.*$/)
        	{
        	print "$nbch";
		return 1;
        	}
	}
print "0";
return 0;
}

