⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qview.pl

📁 asterisk 是一个很有知名度开源软件
💻 PL
字号:
#!/usr/bin/perl## Asterisk Queue Viewer# Uses management interface to query call queues on a machine# (C) 2003 David C. Troy -- dave@toad.net## This program is free software, distributed under the terms of the# GNU General Public License#use IO::Socket;use CGI qw(:standard);use CGI::Carp qw/fatalsToBrowser/;$host = "asterisk.yourdomain.com";$port = 5038;$user = "manager_user";$secret = "Manager_secret";$EOL = "\015\012";$BLANK = $EOL x 2;$queue = param('queue');$remote = IO::Socket::INET->new(		Proto	=> 'tcp',	# protocol		PeerAddr=> $host,	# Address of server		PeerPort=> $port,	# port of server		Reuse   => 1		) or die "$!";$remote->autoflush(1);	# Send immediately# Login and get our booty from Asterisk$logres = send_cmd("Action: Login${EOL}Username: $user${EOL}Secret: $secret$BLANK");$qinfo = send_cmd("Action: queues$BLANK$EOL");$logres = send_cmd("Action: Logoff$BLANK");close $remote;			# Close socketmy %qcalls = map { /(\S+)\s+has (\d+) calls.*?\n\n/sg; } $qinfo;my %qmax = map { /(\S+)\s+has \d+ calls \(max (\S+)\).*?\n\n/sg; } $qinfo;my %qstrat = map { /(\S+)\s+has \d+ calls \(max \S+\) in (\S+) strategy.*?\n\n/sg; } $qinfo;my %qmems = map { /(\S+)\s+has \d+ calls.*?Members:.*?\s{6}(.*?)\s{3}\S*?\s*?Callers/sg; } $qinfo;my %qcallers = map { /(\S+)\s+has \d+ calls.*?([No ]*Callers.*?)\n\n/sg; } $qinfo;print header();print start_html(-head=>meta({-http_equiv=>'Refresh', -content=>'120'}),			-title=>"PBX Queue Viewer",			-style=>{'src'=>'/pbxinfo.css'});print "<table width=850><tr>";$col = 0;foreach $q (keys %qcalls) {   $mems = $qmems{$q};   $mems =~ s/      //g;   $mems =~ s/\n/<br>\n/g;   $callers = $qcallers{$q};   $callers =~ s/      //g;   $callers =~ s/Callers:.*\n//g;   $callers =~ s/\n/<br>/g;   print qq{<td valign=top width=48%><table width=100%><tr><th colspan=2><A HREF=/mrtg/qmon-$q.html>$q</A>&nbsp;&nbsp;$qcalls{$q} calls (max $qmax{$q}), $qstrat{$q} strategy</th></tr><tr><td valign=top width=55%>$mems</td><td valign=top width=45%>$callers</td></tr></table></td>};   print "</tr><tr>" if $col;   $col = 0 if $col++;}print "</table>";print end_html();exit(0);sub read_conn {   my $buf="";   while (<$remote>) {      last if $_ eq $EOL;      s/$EOL/\n/g;      $buf .= $_;   }   return $buf}sub send_cmd {   my $cmd = @_[0];   my $buf="";   print $remote $cmd;   $buf = read_conn();   return $buf;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -