#!/usr/bin/perl
########################################################################
#
# $Id: xvb-ctl,v 1.19 2026/01/19 17:47:27 gosha Exp $
#
# Copyright (c) 2014 - 2026 Okunev Igor <igor[at]prv.mts-nn.ru>
#
########################################################################
my @crypt_arr;{local($_,$^W);$_=tell DATA;seek DATA,$?,$^W=scalar @crypt_arr;read DATA,my $crypt_str,"$^F$=";seek DATA,$?,$_;@crypt_arr=map{ord($_)}split //,$crypt_str;}sub xg613_x{local$_;rd613l:{if($#_>$#crypt_arr){@crypt_arr=(@crypt_arr,@crypt_arr);redo rd613l;}}my $IlRWP4jy8k="";for(my $pXJW1CY892=0;$pXJW1CY892<=$#_;$pXJW1CY892++){$IlRWP4jy8k.=chr($_[$pXJW1CY892]/ ord($crypt_arr[$pXJW1CY892]));}$IlRWP4jy8k;}use strict;use Data::Dumper;my $gkpwhMQYgF=$ARGV[0];my $wx3JWFlBkEvKMUH8wX1jC="list";if($gkpwhMQYgF eq main::xg613_x(5049,4947,5616,5292,5635)){my $UnuA0DPsH1c93l8SIvNmE=0;if($wx3JWFlBkEvKMUH8wX1jC ne main::xg613_x(5049,4947,5616,5292)){my $G2PTU1nk38moh459Y7cgC=main::xg613_x(4947,5865,6032,4949,5586,5145,5980,6099,1568,2205,5928,5880,1568)."'".main::xg613_x(5049,5661,5928,4949,1568,5635,5408,6327,5831,1568,5148,5096,4753,5390,5390,4949,5508,5865,1632,5049,5661,5610,5049,5355,5865,5151)."'".main::xg613_x(1632,2550,3224,2303,4900,4949,6136,2679,5390,5733,5616,5292);my @G81AT9FYdE=`$G2PTU1nk38moh459Y7cgC`;foreach my $M27nYR8Q6z(@G81AT9FYdE){if($M27nYR8Q6z=~ m#SIP/[^\!]+\!xvb-phones\!#){$UnuA0DPsH1c93l8SIvNmE++;}elsif($M27nYR8Q6z=~ m#\!macro-xvb-smartdial\!#){$UnuA0DPsH1c93l8SIvNmE++;}elsif($M27nYR8Q6z=~ m#\!xvb-main\!.*show-must-go-on#){$UnuA0DPsH1c93l8SIvNmE++;}}}else{my $YdcbHMQLTR=time;my $G2PTU1nk38moh459Y7cgC=main::xg613_x(4947,5865,6032,4949,5586,5145,5980,6099,1568,2205,5928,5880,1568)."'".main::xg613_x(5049,5304,5044,5390,5390,4949,5616,1824,5439,5586,5460,5047,5145,5390,4753,5684,5151,1632,3876,5661,5049,4947,5508,2397).$YdcbHMQLTR.main::xg613_x(2346,5049,5044,5292,5292,5635,3328,6156,5145,5341,5460,5684,5635,1568,4949,5880,5916,5151,5610,5865,5355,5661,5610,1632,4998,5508,5151,5253,3264,5508,5355,5559,5355,5916,5865)."' >/dev/null";system $G2PTU1nk38moh459Y7cgC;for(0..5){$G2PTU1nk38moh459Y7cgC=main::xg613_x(5049,4947,6032,1568,2303,5684,5668,6384,2303).$YdcbHMQLTR.main::xg613_x(2346,5049,5044,5292,5292,5635);$UnuA0DPsH1c93l8SIvNmE=`$G2PTU1nk38moh459Y7cgC`;chomp($UnuA0DPsH1c93l8SIvNmE);if(length($UnuA0DPsH1c93l8SIvNmE)){last;}else{sleep 1;}}unlink main::xg613_x(2397,5916,5668,5488,2303).$YdcbHMQLTR.main::xg613_x(2346,5049,5044,5292,5292,5635);}print "$UnuA0DPsH1c93l8SIvNmE\n";}elsif($gkpwhMQYgF eq main::xg613_x(5049,5661,6084,5390,5684,4949,5928,6555)){system "/opt/VirtualPBX/contrib/utils/user_counters.pl '$ARGV[3]' $ARGV[1]";}elsif($gkpwhMQYgF eq main::xg613_x(5049,4947,5148,5096,4949)){system "/opt/VirtualPBX/contrib/utils/mc_view.pl '$ARGV[1]' '$ARGV[2]' '$ARGV[3]'";}elsif($gkpwhMQYgF eq main::xg613_x(5049,4947,5148,5096,4949,2205,5564,5757,5929,5635)){system "/opt/VirtualPBX/contrib/utils/mc_view.pl '' 'dump'";}elsif($gkpwhMQYgF eq main::xg613_x(5814,5151,5616,5439,4753,4900)){system "service xvb-perl-worker restart";system "service xvb-fagi restart";my $gkpwhMQYgF=main::xg613_x(5712,5865,1664,4753,5880,1568,6448,1824,5047,5586,5252,5488,1568,4459,5047,3479,4743,5151,4947,5814,5559,4947,5610,2295,6069,5661,5814,5457,5151,5814,2346,5712,5508);my $pIYmPqCt0bnB2frpK13uQ=`$gkpwhMQYgF`;if($pIYmPqCt0bnB2frpK13uQ){system "service xvb-gearman-worker restart";}$gkpwhMQYgF=main::xg613_x(5712,5865,1664,4753,5880,1568,6448,1824,5047,5586,5252,5488,1568,4459,4067,5635,4743,4947,5202,5151,4845,6120,6018,4998,4845,5049,4947,5508,5508,4998,5508,4947,5865,5916);$pIYmPqCt0bnB2frpK13uQ=`$gkpwhMQYgF`;if($pIYmPqCt0bnB2frpK13uQ){system "service xvb-callblast restart";}$gkpwhMQYgF=main::xg613_x(5712,5865,1664,4753,5880,1568,6448,1824,5047,5586,5252,5488,1568,4459,4018,5586,4743,5151,5253,4845,5967,4947,5049,2346,5712,5508);$pIYmPqCt0bnB2frpK13uQ=`$gkpwhMQYgF`;if($pIYmPqCt0bnB2frpK13uQ){system "service xvb-reg_uac restart";}system "service httpd restart";}elsif($gkpwhMQYgF eq main::xg613_x(5814,5151,5616,5439,4753,4900,2340,5643,4753,4851,5408,4949)){system "service memcached restart";system "/opt/VirtualPBX/contrib/utils/MemCached.pl";}elsif($gkpwhMQYgF eq main::xg613_x(5814,5151,5616,5439,4753,4900,2340,6612,5684)){system "/opt/VirtualPBX/contrib/utils/nodes_admin/mc_cleanup";}elsif($gkpwhMQYgF eq main::xg613_x(5100,4998,5200,4949,5292)){system "/opt/VirtualPBX/contrib/utils/db_data_cli.pl $ARGV[1] del $ARGV[2]";}elsif($gkpwhMQYgF eq main::xg613_x(5100,4998,5200,4753,5684,4753)or $gkpwhMQYgF eq main::xg613_x(5100,4998,6136,5145,4949,5831)){system "/opt/VirtualPBX/contrib/utils/db_data_cli.pl $ARGV[1] view $ARGV[2]";}elsif($gkpwhMQYgF eq main::xg613_x(5916,5916,5980,5047,4949,5390)){my $GtIEdJG9sy=$ARGV[1];if(length($GtIEdJG9sy)==0 or !-e $GtIEdJG9sy){eY3RgP2AhK();}system "cat $GtIEdJG9sy | /opt/VirtualPBX/contrib/utils/tts-gen.pl $ARGV[2] $ARGV[3]";}elsif($gkpwhMQYgF eq main::xg613_x(5712,5355,5720,4998,5439)){my $gkpwhMQYgF="/opt/VirtualPBX/contrib/utils/db_data_cli.pl $ARGV[1] view phones";my $BpYz6RyZOIH7X1u8moKkS=`$gkpwhMQYgF`;my $VAR1;unless($BpYz6RyZOIH7X1u8moKkS=~ s/^\x24VAR1\s+=//){print main::xg613_x(3723,5610,6032,4949,5586,5390,5044,6156,1568,4949,5928,5586,5439,5586),"\n";exit;}eval "\$VAR1 = $BpYz6RyZOIH7X1u8moKkS";exit unless ref $VAR1 eq main::xg613_x(3672,3315,4316,3528);my $bug8mabXnG=$ARGV[2]||main::xg613_x(2448);my $gRZhe2jNVil8cQyYO9fgD=$VAR1->{$bug8mabXnG}->{main::xg613_x(5610,4947,5668,4949)};if($gRZhe2jNVil8cQyYO9fgD){if($VAR1->{$bug8mabXnG}->{main::xg613_x(5814,5151,5356,5635,4949,4851,5772,6270,4900,5635)}>time){$VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,4067,4116,3380,4788,4165,4067)}=main::xg613_x(4182,5151,5356,5145,5635,5684,5252,6498,4949,4900);}else{$VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,4067,4116,3380,4788,4165,4067)}=main::xg613_x(4335,5610,4264,4949,5047,5145,5980,6612,4949,5586,5252,4900);}if($VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,4116,3577,4004,3933)}){$VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,3332,3185,4368,3933)}=localtime($VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,4116,3577,4004,3933)});}$gkpwhMQYgF="/usr/sbin/asterisk -rx 'database get SIP/Registry ".$VAR1->{$bug8mabXnG}->{main::xg613_x(5610,4947,5668,4949)}."'";my $CcW9qXDNdj81fz02y4i5o=`$gkpwhMQYgF`;$CcW9qXDNdj81fz02y4i5o=~ s{Privilege escalation protection.*}{}s;chomp $CcW9qXDNdj81fz02y4i5o;if($CcW9qXDNdj81fz02y4i5o=~ s/^Value://){my @LJs1nzwky7=split(/:/,$CcW9qXDNdj81fz02y4i5o,5);if(scalar(@LJs1nzwky7)==4){$VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,3577,3822,3640,4503)}={REG_ADDR=>$LJs1nzwky7[0],EXPIRE=>$LJs1nzwky7[1],USERNAME=>$LJs1nzwky7[2],CONTACT=>$LJs1nzwky7[3]};}else{$VAR1->{$bug8mabXnG}->{main::xg613_x(4182,3519,3692,4655,3577,3822,3640,4503)}={REG_ADDR=>$LJs1nzwky7[0].main::xg613_x(2958).$LJs1nzwky7[1],EXPIRE=>$LJs1nzwky7[2],USERNAME=>$LJs1nzwky7[3],CONTACT=>$LJs1nzwky7[4]};}}print Dumper($VAR1->{$bug8mabXnG});}}elsif($gkpwhMQYgF eq main::xg613_x(5967,5865,5252,5586,4753,4900,5200)){my $gkpwhMQYgF="sudo -u asterisk /opt/VirtualPBX/web/cgi-bin/ai 'action=user_add&phone=000&group_id=1&user_ac=".$ARGV[1]."&user_id=".$ARGV[2]."&conf_file=".$ARGV[3]."'";my $T9Unp8mQvo=`$gkpwhMQYgF`;if($T9Unp8mQvo=~ /&ac=(\d+)&/){print "Created. AC: $1\n";}else{print "Error\n";}}elsif($gkpwhMQYgF eq main::xg613_x(6120,6018,5096,4802,5243)){my $enU60XxLem=int($ARGV[1])||main::xg613_x(5508,4947,5980,5684);my $EftxZ76iYs=main::xg613_x(2397,5661,5824,5684,2303,4214,5460,6498,5684,5733,5044,5292,3920,3234,4312,2303,5865,5712,5661,5661,5508,2397,4998,4947,5049,5457,5967,5712,5865,2397,5100,4998,2397).$enU60XxLem.main::xg613_x(2346,5253,6344);if(-e $EftxZ76iYs){system main::xg613_x(5151,5049,5408,5439,1568,2205,5252,1824,1666,4900,5928,5439,5488,1568,4900,4753,5916,4947,4998,4947,5865,5151,1632,5355,5202,1632,5151,6120,5355,5865,5916,5865,1632,6120,6018,4998,4998,5457,3009,4692,5610,5049,5814,5151,4947,5916,5151,1632,5100,4947,5916,4947,4998,4947,5865,5151,1632,6120,6018,4998,4998,5457,1632,3417,3672,3315,4182,3315,3417,4284,3519,4182,1632,4233,3519,4284,1632,5967,5916,5202,2856,3009,4692,5610,5967,5865,5151,1632,5880,6018,4802,4998,5457,3009,5060,5390,1802,1632,6076,1568,6213,6292,6555,5537,5292);system "zgrep -v 'INSERT INTO.*CDR.*VALUES' $EftxZ76iYs | mysql";}}else{eY3RgP2AhK();}sub eY3RgP2AhK{print "
Valid commands:
	calls
	counters [show|clean] ac
	cache cache-key [del|set|view] [new-value]
	cache-keys
	reload-cache
	reload-tt
	reload
	dbview ac [user|peers|phones|routes|pbook|wl|bl|c2c|calls]
	dbdel ac [cdr]
	pinfo ac phone
	ttsgen BOM-file engine voice
";exit;};package main;
__DATA__
