mirror of https://github.com/sipwise/rtpengine.git
parent
fb30ef8ccd
commit
cca0f2bf71
@ -1,70 +1,76 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
#!/usr/bin/perl
|
||||
|
||||
host=127.0.0.1
|
||||
port=9900
|
||||
error_rc=255
|
||||
use IO::Socket::INET;
|
||||
|
||||
prgname=${0##*/}
|
||||
prgdir=${0%$prgname}
|
||||
$num_args = $#ARGV + 1;
|
||||
if ($num_args == 0) {
|
||||
showusage();
|
||||
exit;
|
||||
}
|
||||
|
||||
# auto-flush on socket
|
||||
$| = 1;
|
||||
|
||||
my $argumentstring = "";
|
||||
my $ip = "127.0.0.1";
|
||||
my $port = "9900";
|
||||
|
||||
showusage() {
|
||||
echo ""
|
||||
echo " $0 [ -ip <ipaddress> -port <port> ] <command>"
|
||||
echo ""
|
||||
echo " Supported commands are:"
|
||||
echo ""
|
||||
echo " list [ numsessions | sessions | session <callid> ]"
|
||||
echo " numsessions : prints the number of sessions"
|
||||
echo " sessions : print one-liner session information"
|
||||
echo " session <callid> : print detail about one session"
|
||||
echo " totals : print total statistics (does not include current sessions)"
|
||||
echo ""
|
||||
echo " terminate [ all | <callid> ]"
|
||||
echo " all : terminates all current sessions"
|
||||
echo " <callid> : session is immediately terminated"
|
||||
echo ""
|
||||
echo ""
|
||||
echo " Return Value:"
|
||||
echo " 0 on success with ouput from server side, other values for failure."
|
||||
echo ""
|
||||
exit 0
|
||||
for (my $argnum=0; $argnum <= $#ARGV; $argnum++) {
|
||||
if ($ARGV[$argnum] eq "-ip") {
|
||||
die "No argument after -ip\n" unless $argnum+1<=$#ARGV;
|
||||
$argnum = $argnum+1;
|
||||
$ip = $ARGV[$argnum];
|
||||
} elsif ($ARGV[$argnum] eq "-port") {
|
||||
die "No argument after -port\n" unless $argnum+1<=$#ARGV;
|
||||
$argnum = $argnum+1;
|
||||
$port = $ARGV[$argnum];
|
||||
} else {
|
||||
$argumentstring .= "$ARGV[$argnum] ";
|
||||
}
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then showusage; fi
|
||||
# create a connecting socket
|
||||
my $socket = new IO::Socket::INET (
|
||||
PeerHost => $ip,
|
||||
PeerPort => $port,
|
||||
Proto => 'tcp',
|
||||
);
|
||||
die "Cannot connect to the rtpengine $!\n" unless $socket;
|
||||
|
||||
$argumentstring = trim($argumentstring);
|
||||
my $size = $socket->send($argumentstring);
|
||||
|
||||
# notify server that request has been sent
|
||||
shutdown($socket, 1);
|
||||
|
||||
# receive a response of up to 10MB
|
||||
my $response = "";
|
||||
$socket->recv($response, 1024*1024*10);
|
||||
|
||||
print $response;
|
||||
|
||||
command -v nc 2>&1 >/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: $0 requires netcat to be installed."
|
||||
exit 0
|
||||
fi
|
||||
$socket->close();
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case $1 in
|
||||
"-?"|"-help"|"-h")
|
||||
showusage
|
||||
;;
|
||||
"-ip")
|
||||
shift
|
||||
if [ $# -gt 0 ]; then
|
||||
host=$1
|
||||
else
|
||||
echo "Missing parameter for option '-ip'" >&2
|
||||
fi
|
||||
;;
|
||||
"-port")
|
||||
shift
|
||||
if [ $# -gt 0 ]; then
|
||||
port=$1
|
||||
else
|
||||
echo "Missing parameter for option '-port'" >&2
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
varargs="$varargs $1"
|
||||
esac
|
||||
shift
|
||||
done
|
||||
sub showusage {
|
||||
print "\n";
|
||||
print " rtpengine-ctl [ -ip <ipaddress> -port <port> ] <command>\n";
|
||||
print "\n";
|
||||
print " Supported commands are:\n";
|
||||
print "\n";
|
||||
print " list [ numsessions | sessions | session <callid> | totals ]\n";
|
||||
print " numsessions : prints the number of sessions\n";
|
||||
print " sessions : print one-liner session information\n";
|
||||
print " session <callid> : print detail about one session\n";
|
||||
print " totals : print total statistics\n";
|
||||
print "\n";
|
||||
print " terminate [ all | <callid> ]\n";
|
||||
print " all : terminates all current sessions\n";
|
||||
print " <callid> : session is immediately terminated\n";
|
||||
print "\n";
|
||||
print "\n";
|
||||
print " Return Value:\n";
|
||||
print " 0 on success with ouput from server side, other values for failure.\n";
|
||||
print "\n";
|
||||
}
|
||||
|
||||
echo -n ${varargs} | nc ${host} ${port}
|
||||
sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
|
||||
|
Loading…
Reference in new issue