added ability for agents to change in-groups in CLOSER-type campaigns without logging out
updated docs started work on adding a QC feature to the admin.php script git-svn-id: svn://192.168.202.10@770 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# agi-VDAD_ALL_inbound.agi version 2.0.4 *DBI-version*
|
||||
# agi-VDAD_ALL_inbound.agi version 2.0.5 *DBI-version*
|
||||
#
|
||||
# runs when a call comes in from an inbound call. This script will
|
||||
# send the calls out to the closers that are logged in.
|
||||
@@ -40,7 +40,7 @@
|
||||
#exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB)
|
||||
#exten => 1234,3,Hangup
|
||||
#
|
||||
# Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
#
|
||||
# changes:
|
||||
# 70828-0924 - First Build
|
||||
@@ -1408,7 +1408,7 @@ sub trigger_transfer_process
|
||||
# $BEGIN='BEGIN';
|
||||
#
|
||||
# $CLI = "/usr/bin/date >> $PRSTESTfile &";
|
||||
# $CLI = "/root/phone.pl $insert_lead_id$DS$insert_close_id$DS$CLInow_date$DS$VDADextension$DS$phone_number$DS$DS$BEGIN$DS >> $PRSTESTfile &";
|
||||
# $CLI = "/root/phone.pl $insert_lead_id$DS$insert_close_id$DS$CLInow_date$DS$VDADuser$DS$phone_number$DS$DS$BEGIN$DS >> $PRSTESTfile &";
|
||||
#
|
||||
# `$CLI`;
|
||||
#
|
||||
@@ -1420,5 +1420,4 @@ sub trigger_transfer_process
|
||||
# print Pout "$now_date|$VDADconf_exten|$VDADuser|$VDADextension|$insert_lead_id|$phone_number|$insert_close_id|$channel_group|$drop_timer|$CLI|\n";
|
||||
# close(Pout);
|
||||
# }
|
||||
#
|
||||
}
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# AST_DB_lead_status_change.pl version 2.0.5 *DBI-version*
|
||||
#
|
||||
# DESCRIPTION:
|
||||
# OPTIONAL!!! CUSTOMIZE THIS SCRIPT FIRST!!!
|
||||
# - changes status of leads as crontab script
|
||||
#
|
||||
# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
#
|
||||
# CHANGES
|
||||
# 80114-1150 - first build
|
||||
#
|
||||
|
||||
### begin parsing run-time options ###
|
||||
if (length($ARGV[0])>1)
|
||||
{
|
||||
$i=0;
|
||||
while ($#ARGV >= $i)
|
||||
{
|
||||
$args = "$args $ARGV[$i]";
|
||||
$i++;
|
||||
}
|
||||
|
||||
if ($args =~ /--help/i)
|
||||
{
|
||||
print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($args =~ /-debug/i)
|
||||
{
|
||||
$DB=1; # Debug flag, set to 0 for no debug messages, On an active system this will generate hundreds of lines of output per minute
|
||||
}
|
||||
if ($args =~ /-t/i)
|
||||
{
|
||||
$TEST=1;
|
||||
$T=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print "no command line options set\n";
|
||||
$loop_delay = '2500';
|
||||
$DB=1;
|
||||
}
|
||||
### end parsing run-time options ###
|
||||
|
||||
|
||||
# default path to astguiclient configuration file:
|
||||
$PATHconf = '/etc/astguiclient.conf';
|
||||
|
||||
open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n";
|
||||
@conf = <conf>;
|
||||
close(conf);
|
||||
$i=0;
|
||||
foreach(@conf)
|
||||
{
|
||||
$line = $conf[$i];
|
||||
$line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi;
|
||||
if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) )
|
||||
{$PATHhome = $line; $PATHhome =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) )
|
||||
{$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) )
|
||||
{$PATHagi = $line; $PATHagi =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) )
|
||||
{$PATHweb = $line; $PATHweb =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) )
|
||||
{$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) )
|
||||
{$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) )
|
||||
{$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) )
|
||||
{$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) )
|
||||
{$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) )
|
||||
{$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) )
|
||||
{$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;}
|
||||
if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) )
|
||||
{$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;}
|
||||
$i++;
|
||||
}
|
||||
|
||||
# Customized Variables
|
||||
$server_ip = $VARserver_ip; # Asterisk server IP
|
||||
|
||||
if (!$VARDB_port) {$VARDB_port='3306';}
|
||||
|
||||
use DBI;
|
||||
|
||||
$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass")
|
||||
or die "Couldn't connect to database: " . DBI->errstr;
|
||||
|
||||
##### change Pacific Mountain
|
||||
|
||||
$stmtA = "UPDATE vicidial_list set status='NEW' where status='NA' and called_count IN('1','2');";
|
||||
if($DB){print STDERR "\n|$stmtA|\n";}
|
||||
if (!$T) {
|
||||
$affected_rows = $dbhA->do($stmtA);
|
||||
if($DB){print STDERR "\n|$affected_rows records changed|\n";}
|
||||
}
|
||||
|
||||
$dbhA->disconnect();
|
||||
|
||||
exit;
|
||||
|
||||
@@ -91,7 +91,7 @@ cd ../asterisk-1.2.24
|
||||
|
||||
*OPTIONAL*(1.2.14 thru 1.2.24) rewrite of waitforsilence
|
||||
wget http://www.eflo.net/files/app_waitforsilence.c
|
||||
mv app_waitforsilence.c apps/app_waitforsilence.c
|
||||
mv -f app_waitforsilence.c apps/app_waitforsilence.c
|
||||
|
||||
*OPTIONAL* shorter enter and leave sounds for meetme
|
||||
wget http://www.eflo.net/files/enter.h
|
||||
@@ -550,8 +550,13 @@ PHASE 5: ADDING STARTUP ENTRIES FOR ASTGUICLIENT/VICIDIAL SCRIPTS
|
||||
- vi /etc/rc.d/rc.local
|
||||
- add the following entries(here's what we used):
|
||||
|
||||
### Path to local asterisk-perl_0.08 module if needed
|
||||
PERL5LIB="/usr/share/astguiclient/libs"; export PERL5LIB
|
||||
# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring)
|
||||
# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2
|
||||
|
||||
# Disable console blanking and powersaving
|
||||
/usr/bin/setterm -blank
|
||||
/usr/bin/setterm -powersave off
|
||||
/usr/bin/setterm -powerdown
|
||||
|
||||
### start time server
|
||||
/usr/local/bin/ntpdate -u 18.145.0.30
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
INOUND/CLOSER proces flow 2007-05-02
|
||||
INBOUND/CLOSER process flow 2007-05-02
|
||||
|
||||
** THIS FULLY REDONE INBOUND-CLOSER PROSESS IS PLANNED FOR THE 2.0.4 RELEASE **
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ NOTE: at the bottom of this document are conf examples for a 3 server load balan
|
||||
# 6 - FastAGI_log
|
||||
# 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)
|
||||
|
||||
(NOTE: the install.pl script now has an option to generate the following settings and print them out to the screen so that you do not have to manually build them. ./install.pl --build_multiserver_conf)
|
||||
3. The two servers need to be registered to each other as IAX2 friends:
|
||||
SERVER ONE(ASTtest1-10.10.10.15)
|
||||
iax.conf:
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
QC(Quality Control) process flow 2008-01-03
|
||||
|
||||
** THIS QC FUNCTIONALITY PROSESS IS PLANNED FOR THE 2.0.5 RELEASE **
|
||||
|
||||
This will outline the process I have thought through for adding a Quality Assurance(QA) or Quality Control(QC) process to the VICIDIAL system. The objective is to add the following features to make VICIDIAL a more well-rounded product:
|
||||
- ability to define which statuses/lists are to be able to be QCd per campaign
|
||||
- ability to give agents permission to QC records for their allowable campaigns
|
||||
- ability to log all access and changes to QCd records
|
||||
- creation of some basic reports on QC activity
|
||||
|
||||
|
||||
|
||||
|
||||
The QC agent will login to a new qc.php screen within the agc web directory. They will then have a screen very similar to the vicidial.php login screen(but in a different color) that will have a user/pass to fill in. Then when they login they will see a green screen similar to the vicidial.php inbound(CLOSER-type) screen that will show them their allowable qc in-groups and campaigns. The agent will then choose which in-groups and campaigns that they want to QC the records for and then they will submit and they will be logged-in to the QC system.
|
||||
|
||||
Upon login, they will be able to see the count of QC-able records and they can click on a link to bring up the next record to be QCd.
|
||||
|
||||
Each qc_user_level will have different permissions for the qc system:
|
||||
1- modify nothing
|
||||
2- modify nothing but status
|
||||
3- modify everything
|
||||
4- can check records of other QC agents
|
||||
5- can view stats on qc system
|
||||
6- can view finished and non-committed records and alter them
|
||||
7- Manager level
|
||||
|
||||
The qc_stage is a status within QC that tells what is going on with the record:
|
||||
NONE - record has never been QCd
|
||||
LOCK_1 - a QC agent is reviewing the record
|
||||
PASS - QC agent has passed the record
|
||||
LOCK_2 - a QC agent is reviewing the record for possible finishing
|
||||
FINISH - record is ready to be processed
|
||||
COMMIT - QC record is committed to the system and cannot be modified by anyone
|
||||
|
||||
|
||||
The Database Changes:
|
||||
|
||||
# This table contains the updated QC record
|
||||
CREATE TABLE qc_vicidial_list (
|
||||
qc_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
lead_id INT(9) UNSIGNED NOT NULL,
|
||||
vicidial_log_id INT(9) UNSIGNED NOT NULL,
|
||||
closecallid INT(9) UNSIGNED NOT NULL,
|
||||
modify_date TIMESTAMP,
|
||||
status VARCHAR(6),
|
||||
qc_status VARCHAR(6),
|
||||
qc_date DATETIME,
|
||||
qc_length_in_sec SMALLINT(5) UNSIGNED default '0',
|
||||
qc_verify_date DATETIME,
|
||||
qc_verify_length_in_sec SMALLINT(5) UNSIGNED default '0',
|
||||
qc_comments TEXT,
|
||||
qc_stage VARCHAR(6),
|
||||
qc_user VARCHAR(20),
|
||||
qc_verify_user VARCHAR(20),
|
||||
qc_code VARCHAR(8),
|
||||
qc_changed ENUM('0','1') default '0',
|
||||
user VARCHAR(20),
|
||||
closer VARCHAR(20),
|
||||
vendor_lead_code VARCHAR(20),
|
||||
source_id VARCHAR(6),
|
||||
list_id BIGINT(14) UNSIGNED,
|
||||
phone_code VARCHAR(10),
|
||||
phone_number VARCHAR(12),
|
||||
title VARCHAR(4),
|
||||
first_name VARCHAR(30),
|
||||
middle_initial VARCHAR(1),
|
||||
last_name VARCHAR(30),
|
||||
address1 VARCHAR(100),
|
||||
address2 VARCHAR(100),
|
||||
address3 VARCHAR(100),
|
||||
city VARCHAR(50),
|
||||
state VARCHAR(2),
|
||||
province VARCHAR(50),
|
||||
postal_code VARCHAR(10),
|
||||
country_code VARCHAR(3),
|
||||
gender ENUM('M','F'),
|
||||
date_of_birth DATE,
|
||||
alt_phone VARCHAR(12),
|
||||
email VARCHAR(70),
|
||||
security_phrase VARCHAR(100),
|
||||
comments VARCHAR(255),
|
||||
index (phone_number),
|
||||
index (lead_id),
|
||||
index (status),
|
||||
index (qc_stage)
|
||||
);
|
||||
|
||||
# This table contains the original lead information before changes
|
||||
CREATE TABLE qc_vicidial_list_original (
|
||||
qc_id INT(9) UNSIGNED PRIMARY KEY NOT NULL,
|
||||
modify_date TIMESTAMP,
|
||||
status VARCHAR(6),
|
||||
qc_date DATETIME,
|
||||
qc_user VARCHAR(20),
|
||||
qc_stage VARCHAR(6),
|
||||
user VARCHAR(20),
|
||||
closer VARCHAR(20),
|
||||
vendor_lead_code VARCHAR(20),
|
||||
source_id VARCHAR(6),
|
||||
list_id BIGINT(14) UNSIGNED,
|
||||
phone_code VARCHAR(10),
|
||||
phone_number VARCHAR(12),
|
||||
title VARCHAR(4),
|
||||
first_name VARCHAR(30),
|
||||
middle_initial VARCHAR(1),
|
||||
last_name VARCHAR(30),
|
||||
address1 VARCHAR(100),
|
||||
address2 VARCHAR(100),
|
||||
address3 VARCHAR(100),
|
||||
city VARCHAR(50),
|
||||
state VARCHAR(2),
|
||||
province VARCHAR(50),
|
||||
postal_code VARCHAR(10),
|
||||
country_code VARCHAR(3),
|
||||
gender ENUM('M','F'),
|
||||
date_of_birth DATE,
|
||||
alt_phone VARCHAR(12),
|
||||
email VARCHAR(70),
|
||||
security_phrase VARCHAR(100),
|
||||
comments VARCHAR(255),
|
||||
);
|
||||
|
||||
# This table contains the session information for qc_agents
|
||||
CREATE TABLE qc_agent_sessions (
|
||||
qc_session_id INT(9) UNSIGNED PRIMARY KEY NOT NULL,
|
||||
user VARCHAR(20),
|
||||
qc_user_level INT(2) default '0',
|
||||
status ENUM('READY','QUEUE','INCALL','PAUSED','CLOSER') default 'PAUSED',
|
||||
qc_id INT(9) UNSIGNED NOT NULL,
|
||||
lead_id INT(9) UNSIGNED NOT NULL,
|
||||
selected_inbound_groups TEXT,
|
||||
selected_campaigns TEXT,
|
||||
qc_records_today SMALLINT(5) UNSIGNED default '0',
|
||||
login_time DATETIME,
|
||||
last_action_time DATETIME,
|
||||
index(user),
|
||||
index (last_action_time)
|
||||
);
|
||||
|
||||
# For ability to restrict statuses by user_level per campaign
|
||||
CREATE TABLE qc_allowed_statuses (
|
||||
status VARCHAR(6) PRIMARY KEY NOT NULL,
|
||||
qc_user_level INT(2) default '0',
|
||||
campaign_group_id VARCHAR(20)
|
||||
);
|
||||
|
||||
# qc codes to be used for statistics
|
||||
CREATE TABLE qc_codes (
|
||||
code VARCHAR(8) PRIMARY KEY NOT NULL,
|
||||
code_name VARCHAR(30)
|
||||
);
|
||||
|
||||
# For the log table, some fields will need to be added to the vicidial_log table:
|
||||
ALTER TABLE vicidial_log ADD qc_stage ENUM('NONE','LOCK_1','PASS','LOCK_2','FINISH',COMMIT') default 'NONE';
|
||||
|
||||
# For the closer log table, some fields will need to be added to the vicidial_closer_log table:
|
||||
ALTER TABLE vicidial_closer_log ADD qc_stage ENUM('NONE','LOCK_1','PASS','LOCK_2','FINISH',COMMIT') default 'NONE';
|
||||
|
||||
# For the campaigns log table, some fields will need to be added to the vicidial_campaigns table:
|
||||
ALTER TABLE vicidial_campaigns ADD qc_statuses TEXT;
|
||||
ALTER TABLE vicidial_campaigns ADD qc_lists TEXT;
|
||||
ALTER TABLE vicidial_campaigns ADD campaign_shift_start_time VARCHAR(4) default '0900';
|
||||
ALTER TABLE vicidial_campaigns ADD campaign_shift_length VARCHAR(5) default '16:00';
|
||||
ALTER TABLE vicidial_campaigns ADD campaign_day_start_time VARCHAR(4) default '0100';
|
||||
|
||||
|
||||
|
||||
|
||||
# For the in-groups/campaigns QC permissions, some fields will need to be added to the vicidial_user_groups table:
|
||||
ALTER TABLE vicidial_user_groups ADD qc_allowed_campaigns TEXT;
|
||||
ALTER TABLE vicidial_user_groups ADD qc_allowed_inbound_groups TEXT;
|
||||
|
||||
# For the user QC permissions, some fields will need to be added to the vicidial_users table:
|
||||
ALTER TABLE vicidial_users ADD qc_enabled ENUM('1','0') default '0';
|
||||
ALTER TABLE vicidial_users ADD qc_user_level INT(2) default '1';
|
||||
ALTER TABLE vicidial_users ADD qc_pass ENUM('1','0') default '0';
|
||||
ALTER TABLE vicidial_users ADD qc_finish ENUM('1','0') default '0';
|
||||
ALTER TABLE vicidial_users ADD qc_commit ENUM('1','0') default '0';
|
||||
@@ -27,7 +27,7 @@ chown -R root /usr/local/mysql
|
||||
chown -R mysql /usr/local/mysql/var
|
||||
chgrp -R mysql /usr/local/mysql
|
||||
cp support-files/my-medium.cnf /etc/my.cnf
|
||||
/usr/local/mysql/bin/mysqld_safe --user=mysql &
|
||||
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache &
|
||||
ln -s /tmp/mysql.sock /var/run/mysql/mysql.sock
|
||||
|
||||
|
||||
@@ -354,7 +354,7 @@ patch -p1 < ./cli_chan_concise_delimiter.patch
|
||||
|
||||
|
||||
wget http://www.eflo.net/files/app_waitforsilence.c
|
||||
mv app_waitforsilence.c apps/app_waitforsilence.c
|
||||
mv -f app_waitforsilence.c apps/app_waitforsilence.c
|
||||
wget http://www.eflo.net/files/enter.h
|
||||
wget http://www.eflo.net/files/leave.h
|
||||
mv -f enter.h apps/enter.h
|
||||
|
||||
@@ -381,7 +381,7 @@ NOTE: a minimum of MySQL server 4.0.X is required
|
||||
- chown -R mysql /usr/local/mysql/var
|
||||
- chgrp -R mysql /usr/local/mysql
|
||||
- cp support-files/my-medium.cnf /etc/my.cnf
|
||||
- /usr/local/mysql/bin/mysqld_safe --user=mysql &
|
||||
- /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache &
|
||||
- ln -s /tmp/mysql.sock /var/run/mysql/mysql.sock
|
||||
**** For some systems you may need to add the mysql/bin directory to your PATH:
|
||||
- PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/
|
||||
@@ -925,7 +925,7 @@ with the following patch:
|
||||
|
||||
*OPTIONAL*(1.2.14 thru 1.2.24) rewrite of waitforsilence
|
||||
- wget http://www.eflo.net/files/app_waitforsilence.c
|
||||
- mv app_waitforsilence.c apps/app_waitforsilence.c
|
||||
- mv -f app_waitforsilence.c apps/app_waitforsilence.c
|
||||
|
||||
*OPTIONAL* shorter enter and leave sounds for meetme
|
||||
- wget http://www.eflo.net/files/enter.h
|
||||
@@ -2796,8 +2796,13 @@ SUBPHASE 6.4: setting up asterisk and helper applications for startup
|
||||
# mke2fs -m 0 /dev/ram0
|
||||
# mount /dev/ram0 /var/spool/asterisk/monitor
|
||||
|
||||
### Path to local asterisk-perl_0.08 module if needed
|
||||
PERL5LIB="/usr/share/astguiclient/libs"; export PERL5LIB
|
||||
# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring)
|
||||
# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2
|
||||
|
||||
# Disable console blanking and powersaving
|
||||
/usr/bin/setterm -blank
|
||||
/usr/bin/setterm -powersave off
|
||||
/usr/bin/setterm -powerdown
|
||||
|
||||
### start time server
|
||||
/usr/local/bin/ntpdate -u 18.145.0.30
|
||||
|
||||
@@ -8,6 +8,32 @@ jitterbuffer=no
|
||||
tos=lowdelay
|
||||
|
||||
;register => 1112223333:PASSWORD@iax.binfone.com
|
||||
register => ASTloop:test@1270.0.1:40569
|
||||
register => ASTblind:test@1270.0.1:41569
|
||||
|
||||
[ASTloop]
|
||||
type=friend
|
||||
accountcode=ASTloop
|
||||
context=default
|
||||
auth=plaintext
|
||||
host=dynamic
|
||||
permit=0.0.0.0/0.0.0.0
|
||||
secret=test
|
||||
disallow=all
|
||||
allow=ulaw
|
||||
qualify=yes
|
||||
|
||||
[ASTblind]
|
||||
type=friend
|
||||
accountcode=ASTblind
|
||||
context=default
|
||||
auth=plaintext
|
||||
host=dynamic
|
||||
permit=0.0.0.0/0.0.0.0
|
||||
secret=test
|
||||
disallow=all
|
||||
allow=ulaw
|
||||
qualify=yes
|
||||
|
||||
[1112223333]
|
||||
auth=md5
|
||||
|
||||
@@ -399,10 +399,10 @@ index (call_date)
|
||||
|
||||
CREATE TABLE vicidial_users (
|
||||
user_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
user VARCHAR(20),
|
||||
pass VARCHAR(20),
|
||||
user VARCHAR(20) NOT NULL,
|
||||
pass VARCHAR(20) NOT NULL,
|
||||
full_name VARCHAR(50),
|
||||
user_level INT(2),
|
||||
user_level TINYINT(2) default '1',
|
||||
user_group VARCHAR(20),
|
||||
phone_login VARCHAR(20),
|
||||
phone_pass VARCHAR(20),
|
||||
@@ -444,9 +444,15 @@ modify_servers ENUM('0','1') default '0',
|
||||
view_reports ENUM('0','1') default '0',
|
||||
vicidial_recording_override ENUM('DISABLED','NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'DISABLED',
|
||||
alter_custdata_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE',
|
||||
index (user)
|
||||
qc_enabled ENUM('1','0') default '0',
|
||||
qc_user_level INT(2) default '1',
|
||||
qc_pass ENUM('1','0') default '0',
|
||||
qc_finish ENUM('1','0') default '0',
|
||||
qc_commit ENUM('1','0') default '0'
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX user ON vicidial_users (user);
|
||||
|
||||
CREATE TABLE vicidial_user_log (
|
||||
user_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
user VARCHAR(20),
|
||||
@@ -461,7 +467,9 @@ index (user)
|
||||
CREATE TABLE vicidial_user_groups (
|
||||
user_group VARCHAR(20) NOT NULL,
|
||||
group_name VARCHAR(40) NOT NULL,
|
||||
allowed_campaigns TEXT
|
||||
allowed_campaigns TEXT,
|
||||
qc_allowed_campaigns TEXT,
|
||||
qc_allowed_inbound_groups TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE vicidial_campaigns (
|
||||
@@ -473,7 +481,7 @@ dial_status_b VARCHAR(6),
|
||||
dial_status_c VARCHAR(6),
|
||||
dial_status_d VARCHAR(6),
|
||||
dial_status_e VARCHAR(6),
|
||||
lead_order VARCHAR(20),
|
||||
lead_order VARCHAR(30),
|
||||
park_ext VARCHAR(10),
|
||||
park_file_name VARCHAR(10),
|
||||
web_form_address VARCHAR(255),
|
||||
@@ -1006,6 +1014,29 @@ index (campaign_id),
|
||||
index (user)
|
||||
);
|
||||
|
||||
CREATE TABLE vicidial_user_closer_log (
|
||||
user VARCHAR(20),
|
||||
campaign_id VARCHAR(20),
|
||||
event_date DATETIME,
|
||||
blended ENUM('1','0') default '0',
|
||||
closer_campaigns TEXT,
|
||||
index (user),
|
||||
index (event_date)
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE vicidial_campaign_server_stats ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE live_channels ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE live_sip_channels ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE parked_channels ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE server_updater ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE web_client_sessions ENGINE=HEAP;
|
||||
|
||||
|
||||
INSERT INTO vicidial_lists SET list_id='999',list_name='Default inbound list',campaign_id='TESTCAMP',active='N';
|
||||
|
||||
|
||||
@@ -1 +1,44 @@
|
||||
ALTER TABLE vicidial_closer_log ADD xfercallid INT(9) UNSIGNED;
|
||||
|
||||
ALTER TABLE vicidial_campaign_server_stats ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE live_channels ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE live_sip_channels ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE parked_channels ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE server_updater ENGINE=HEAP;
|
||||
|
||||
ALTER TABLE web_client_sessions ENGINE=HEAP;
|
||||
|
||||
|
||||
ALTER TABLE vicidial_campaigns MODIFY lead_order VARCHAR(30);
|
||||
|
||||
DROP index user on vicidial_users;
|
||||
ALTER TABLE vicidial_users MODIFY user VARCHAR(20) NOT NULL;
|
||||
CREATE UNIQUE INDEX user ON vicidial_users (user);
|
||||
ALTER TABLE vicidial_users MODIFY pass VARCHAR(20) NOT NULL;
|
||||
ALTER TABLE vicidial_users MODIFY user_level TINYINT(2) NOT NULL default '1';
|
||||
|
||||
CREATE TABLE vicidial_user_closer_log (
|
||||
user VARCHAR(20),
|
||||
campaign_id VARCHAR(20),
|
||||
event_date DATETIME,
|
||||
blended ENUM('1','0') default '0',
|
||||
closer_campaigns TEXT,
|
||||
index (user),
|
||||
index (event_date)
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
ALTER TABLE vicidial_users ADD qc_enabled ENUM('1','0') default '0';
|
||||
ALTER TABLE vicidial_users ADD qc_user_level INT(2) default '1';
|
||||
ALTER TABLE vicidial_users ADD qc_pass ENUM('1','0') default '0';
|
||||
ALTER TABLE vicidial_users ADD qc_finish ENUM('1','0') default '0';
|
||||
ALTER TABLE vicidial_users ADD qc_commit ENUM('1','0') default '0';
|
||||
|
||||
ALTER TABLE vicidial_user_groups ADD qc_allowed_campaigns TEXT;
|
||||
ALTER TABLE vicidial_user_groups ADD qc_allowed_inbound_groups TEXT;
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
############################################################ ADMIN
|
||||
|
||||
QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen||
|
||||
QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section||
|
||||
QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record||
|
||||
QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record||
|
||||
QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone||
|
||||
QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system||
|
||||
QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system||
|
||||
QC Enabled: ||
|
||||
QC User Level: ||
|
||||
QC Pass: ||
|
||||
QC Finish: ||
|
||||
QC Commit: ||
|
||||
Modify Nothing||
|
||||
Modify Nothing Except Status||
|
||||
Modify All Fields||
|
||||
Verify First Round of QC||
|
||||
View QC Statistics||
|
||||
Ability to Modify FINISHed records||
|
||||
Manager Level||
|
||||
USERS CAN VIEW ANY CAMPAIGN||
|
||||
USERS CAN QC ANY CAMPAIGN||
|
||||
USERS CAN QC ANY INBOUND GROUP||
|
||||
QC Allowed Campaigns: ||
|
||||
QC Allowed Inbound Groups: ||
|
||||
|
||||
|
||||
############################################################ CLIENT
|
||||
|
||||
Gender: ||
|
||||
Date of Birth: ||
|
||||
YOU MUST BE PAUSED TO CHANGE GROUPS||
|
||||
|
||||
|
||||
############################################################ MANAGER Manual
|
||||
|
||||
|
||||
############################################################ AGENT Manual
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?
|
||||
# vdc_db_query.php
|
||||
#
|
||||
# Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
#
|
||||
# This script is designed purely to send whether the meetme conference has live channels connected and which they are
|
||||
# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table
|
||||
@@ -70,6 +70,7 @@
|
||||
# - $omit_phone_code - ('Y','N')
|
||||
# - $no_delete_sessions - ('0','1')
|
||||
# - $LogouTKicKAlL - ('0','1');
|
||||
# - $closer_blended = ('0','1');
|
||||
|
||||
# CHANGELOG:
|
||||
# 50629-1044 - First build of script
|
||||
@@ -141,10 +142,11 @@
|
||||
# 71129-2025 - restricted callbacks count and list to campaign only
|
||||
# 71223-0318 - changed logging of closer calls
|
||||
# 71226-1117 - added option to kick all calls from conference upon logout
|
||||
# 80116-1032 - added user_closer_log logging in regCLOSER
|
||||
#
|
||||
|
||||
$version = '2.0.5-67';
|
||||
$build = '71226-1117';
|
||||
$version = '2.0.5-68';
|
||||
$build = '80116-1032';
|
||||
|
||||
require("dbconnect.php");
|
||||
|
||||
@@ -279,7 +281,8 @@ if (isset($_GET["status"])) {$status=$_GET["status"];}
|
||||
elseif (isset($_POST["status"])) {$status=$_POST["status"];}
|
||||
if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];}
|
||||
elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];}
|
||||
|
||||
if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];}
|
||||
elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];}
|
||||
|
||||
$user=ereg_replace("[^0-9a-zA-Z]","",$user);
|
||||
$pass=ereg_replace("[^0-9a-zA-Z]","",$pass);
|
||||
@@ -454,6 +457,14 @@ if ($ACTION == 'regCLOSER')
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
}
|
||||
|
||||
$stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';";
|
||||
if ($format=='debug') {echo "\n<!-- $stmt -->";}
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
|
||||
$stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';";
|
||||
if ($format=='debug') {echo "\n<!-- $stmt -->";}
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
|
||||
$in_groups_pre = preg_replace('/-$/','',$closer_choice);
|
||||
$in_groups = explode(" ",$in_groups_pre);
|
||||
$in_groups_ct = count($in_groups);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?
|
||||
# vicidial.php - the web-based version of the astVICIDIAL client application
|
||||
#
|
||||
# Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
#
|
||||
# make sure you have added a user to the vicidial_users MySQL table with at least
|
||||
# user_level 1 or greater to access this page. Also, you need to have the login
|
||||
@@ -174,10 +174,11 @@
|
||||
# 71223-0318 - changed logging of closer calls
|
||||
# 71226-1117 - added option to kick all calls from conference upon logout
|
||||
# 80109-1510 - added gender select list
|
||||
# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused
|
||||
#
|
||||
|
||||
$version = '2.0.5-145';
|
||||
$build = '80109-1510';
|
||||
$version = '2.0.5-146';
|
||||
$build = '80116-1032';
|
||||
|
||||
require("dbconnect.php");
|
||||
|
||||
@@ -5191,6 +5192,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
|
||||
{
|
||||
if (document.vicidial_form.CloserSelectBlended.checked==true)
|
||||
{VICIDiaL_closer_blended = 1;}
|
||||
else
|
||||
{VICIDiaL_closer_blended = 0;}
|
||||
|
||||
var CloserSelectChoices = document.vicidial_form.CloserSelectList.value;
|
||||
|
||||
@@ -5218,7 +5221,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
|
||||
}
|
||||
if (xmlhttp)
|
||||
{
|
||||
CSCupdate_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=regCLOSER&format=text&user=" + user + "&pass=" + pass + "&comments=" + VU_agent_choose_ingroups_DV + "&closer_choice=" + CloserSelectChoices + "-";
|
||||
CSCupdate_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=regCLOSER&format=text&user=" + user + "&pass=" + pass + "&comments=" + VU_agent_choose_ingroups_DV + "&closer_blended=" + VICIDiaL_closer_blended + "&campaign=" + campaign + "&closer_choice=" + CloserSelectChoices + "-";
|
||||
xmlhttp.open('POST', 'vdc_db_query.php');
|
||||
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
|
||||
xmlhttp.send(CSCupdate_query);
|
||||
@@ -5659,6 +5662,21 @@ else
|
||||
}
|
||||
|
||||
|
||||
// ################################################################################
|
||||
// Show the groups selection span
|
||||
function OpeNGrouPSelectioN()
|
||||
{
|
||||
if ( (AutoDialWaiting == 1) || (VD_live_customer_call==1) || (alt_dial_active==1) )
|
||||
{
|
||||
alert("YOU MUST BE PAUSED TO CHANGE GROUPS");
|
||||
}
|
||||
else
|
||||
{
|
||||
showDiv('CloserSelectBox')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ################################################################################
|
||||
// Hide the CBcommentsBox span upon click
|
||||
function CBcommentsBoxhide()
|
||||
@@ -6377,7 +6395,9 @@ echo "</head>\n";
|
||||
<INPUT TYPE=HIDDEN NAME=extension>
|
||||
<font class="body_text">
|
||||
<? echo "Logged in as User: $VD_login on Phone: $SIP_user to campaign: $VD_campaign \n"; ?>
|
||||
</TD><TD COLSPAN=3 VALIGN=TOP ALIGN=RIGHT><font class="body_text"><? echo "<a href=\"#\" onclick=\"LogouT();return false;\">LOGOUT</a>\n"; ?>
|
||||
</TD><TD COLSPAN=3 VALIGN=TOP ALIGN=RIGHT><font class="body_text">
|
||||
<? if ($INgrpCT > 0) {echo "<a href=\"#\" onclick=\"OpeNGrouPSelectioN();return false;\">GROUPS</a> \n";} ?>
|
||||
<? echo "<a href=\"#\" onclick=\"LogouT();return false;\">LOGOUT</a>\n"; ?>
|
||||
</TD></TR></TABLE>
|
||||
</SPAN>
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# admin.php - VICIDIAL administration page
|
||||
#
|
||||
#
|
||||
# Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
#
|
||||
|
||||
|
||||
@@ -669,6 +669,20 @@ if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"
|
||||
elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];}
|
||||
if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];}
|
||||
elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];}
|
||||
if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];}
|
||||
elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];}
|
||||
if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];}
|
||||
elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];}
|
||||
if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];}
|
||||
elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];}
|
||||
if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];}
|
||||
elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];}
|
||||
if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];}
|
||||
elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];}
|
||||
if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];}
|
||||
elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];}
|
||||
if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];}
|
||||
elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];}
|
||||
|
||||
|
||||
if (isset($script_id)) {$script_id= strtoupper($script_id);}
|
||||
@@ -807,6 +821,11 @@ $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item);
|
||||
$prompt_interval = ereg_replace("[^0-9]","",$prompt_interval);
|
||||
$agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay);
|
||||
$manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id);
|
||||
$qc_enabled = ereg_replace("[^0-9]","",$qc_enabled);
|
||||
$qc_user_level = ereg_replace("[^0-9]","",$qc_user_level);
|
||||
$qc_pass = ereg_replace("[^0-9]","",$qc_pass);
|
||||
$qc_finish = ereg_replace("[^0-9]","",$qc_finish);
|
||||
$qc_commit = ereg_replace("[^0-9]","",$qc_commit);
|
||||
|
||||
### DIGITS and DASHES
|
||||
$group_rank = ereg_replace("[^-0-9]","",$group_rank);
|
||||
@@ -1141,12 +1160,14 @@ $list_mix_container = ereg_replace(";","",$list_mix_container);
|
||||
# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing
|
||||
# 71122-1135 - Added default transfer group for campaigns and inbound groups
|
||||
# 71125-1751 - Added allowable transfer groups to campaign detail screen
|
||||
# 80107-1204 - Started framework for new QC section
|
||||
# 80112-0242 - Added more options for lead order
|
||||
#
|
||||
#
|
||||
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time
|
||||
|
||||
$admin_version = '2.0.4-119';
|
||||
$build = '71125-1751';
|
||||
$admin_version = '2.0.5-121';
|
||||
$build = '80112-0242';
|
||||
|
||||
$STARTtime = date("U");
|
||||
$SQLdate = date("Y-m-d H:i:s");
|
||||
@@ -1769,16 +1790,26 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD
|
||||
{
|
||||
if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) )
|
||||
{
|
||||
$stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';";
|
||||
$stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
$row=mysql_fetch_row($rslt);
|
||||
$allowed_campaigns = $row[0];
|
||||
$allowed_campaigns = $row[0];
|
||||
$qc_allowed_campaigns = $row[1];
|
||||
$qc_allowed_inbound_groups = $row[2];
|
||||
$allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns);
|
||||
$campaigns = explode(" ", $allowed_campaigns);
|
||||
$qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns);
|
||||
$qc_campaigns = explode(" ", $qc_allowed_campaigns);
|
||||
$qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups);
|
||||
$qc_groups = explode(" ", $qc_allowed_inbound_groups);
|
||||
}
|
||||
|
||||
$campaigns_value='';
|
||||
$campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"';
|
||||
$qc_campaigns_value='';
|
||||
$qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"';
|
||||
$qc_groups_value='';
|
||||
$qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"';
|
||||
$p=0;
|
||||
while ($p<100)
|
||||
{
|
||||
@@ -1787,9 +1818,21 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD
|
||||
$campaigns_list.=" CHECKED";
|
||||
$campaigns_value .= " -ALL-CAMPAIGNS- -";
|
||||
}
|
||||
if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p]))
|
||||
{
|
||||
$qc_campaigns_list.=" CHECKED";
|
||||
$qc_campaigns_value .= " -ALL-CAMPAIGNS- -";
|
||||
}
|
||||
if (eregi('ALL-GROUPS',$qc_groups[$p]))
|
||||
{
|
||||
$qc_groups_list.=" CHECKED";
|
||||
$qc_groups_value .= " -ALL-GROUPS- -";
|
||||
}
|
||||
$p++;
|
||||
}
|
||||
$campaigns_list.="> ALL-CAMPAIGNS - USERS CAN VIEW ANY CAMPAIGN</B><BR>\n";
|
||||
$qc_campaigns_list.="> ALL-CAMPAIGNS - USERS CAN QC ANY CAMPAIGN</B><BR>\n";
|
||||
$qc_groups_list.="> ALL-GROUPS - USERS CAN QC ANY INBOUND GROUP</B><BR>\n";
|
||||
|
||||
$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
@@ -1802,6 +1845,7 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD
|
||||
$campaign_id_value = $rowx[0];
|
||||
$campaign_name_value = $rowx[1];
|
||||
$campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\"";
|
||||
$qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\"";
|
||||
$p=0;
|
||||
while ($p<100)
|
||||
{
|
||||
@@ -1811,13 +1855,47 @@ if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD
|
||||
$campaigns_list .= " CHECKED";
|
||||
$campaigns_value .= " $campaign_id_value";
|
||||
}
|
||||
if ($campaign_id_value == $qc_campaigns[$p])
|
||||
{
|
||||
$qc_campaigns_list .= " CHECKED";
|
||||
$qc_campaigns_value .= " $campaign_id_value";
|
||||
}
|
||||
# echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->";
|
||||
$p++;
|
||||
}
|
||||
$campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n";
|
||||
$qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n";
|
||||
$o++;
|
||||
}
|
||||
|
||||
$stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
$groups_to_print = mysql_num_rows($rslt);
|
||||
|
||||
$o=0;
|
||||
while ($groups_to_print > $o)
|
||||
{
|
||||
$rowx=mysql_fetch_row($rslt);
|
||||
$group_id_value = $rowx[0];
|
||||
$group_name_value = $rowx[1];
|
||||
$qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\"";
|
||||
$p=0;
|
||||
while ($p<100)
|
||||
{
|
||||
if ($group_id_value == $qc_groups[$p])
|
||||
{
|
||||
$qc_groups_list .= " CHECKED";
|
||||
$qc_groups_value .= " $group_id_value";
|
||||
}
|
||||
$p++;
|
||||
}
|
||||
$qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n";
|
||||
$o++;
|
||||
}
|
||||
|
||||
if (strlen($campaigns_value)>2) {$campaigns_value .= " -";}
|
||||
if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";}
|
||||
if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";}
|
||||
}
|
||||
##### END get campaigns listing for checkboxes #####
|
||||
|
||||
@@ -2055,6 +2133,39 @@ echo "<TABLE WIDTH=98% BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR><TD ALIGN
|
||||
<BR>
|
||||
<B>View Reports -</B> This option allows the user to view the VICIDIAL reports.
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_users-qc_enabled">
|
||||
<BR>
|
||||
<B>QC Enabled -</B> This option allows the user to log in to the Quality Control agent screen.
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_users-qc_user_level">
|
||||
<BR>
|
||||
<B>QC User Level -</B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section:<BR>
|
||||
1 - Modify Nothing<BR>
|
||||
2 - Modify Nothing Except Status<BR>
|
||||
3 - Modify All Fields<BR>
|
||||
4 - Verify First Round of QC<BR>
|
||||
5 - View QC Statistics<BR>
|
||||
6 - Ability to Modify FINISHed records<BR>
|
||||
7 - Manager Level<BR>
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_users-qc_pass">
|
||||
<BR>
|
||||
<B>QC Record Pass -</B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record.
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_users-qc_finish">
|
||||
<BR>
|
||||
<B>QC Record Finish -</B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record.
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_users-qc_commit">
|
||||
<BR>
|
||||
<B>QC Record Commit -</B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2706,6 +2817,16 @@ echo "<TABLE WIDTH=98% BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR><TD ALIGN
|
||||
<BR>
|
||||
<B>Allowed Campaigns -</B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system.
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_user_groups-qc_allowed_campaigns">
|
||||
<BR>
|
||||
<B>QC Allowed Campaigns -</B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system.
|
||||
|
||||
<BR>
|
||||
<A NAME="vicidial_user_groups-qc_allowed_inbound_groups">
|
||||
<BR>
|
||||
<B>QC Allowed Inbound Groups -</B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4809,7 +4930,7 @@ if ($ADD=="2A")
|
||||
}
|
||||
else
|
||||
{
|
||||
$stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override from vicidial_users where user=\"$source_user_id\";";
|
||||
$stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit from vicidial_users where user=\"$source_user_id\";";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
|
||||
$stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";";
|
||||
@@ -5881,11 +6002,10 @@ if ($ADD=="4A")
|
||||
{
|
||||
echo "<br><B>USER MODIFIED - ADMIN: $user</B>\n";
|
||||
|
||||
$stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override' where user='$user';";
|
||||
$stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit' where user='$user';";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
|
||||
|
||||
|
||||
### LOG CHANGES TO LOG FILE ###
|
||||
if ($WeBRooTWritablE > 0)
|
||||
{
|
||||
@@ -5923,7 +6043,7 @@ if ($ADD=="4B")
|
||||
{
|
||||
echo "<br><B>USER MODIFIED - ADMIN: $user</B>\n";
|
||||
|
||||
$stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override' where user='$user';";
|
||||
$stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit' where user='$user';";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
|
||||
### LOG CHANGES TO LOG FILE ###
|
||||
@@ -6765,7 +6885,7 @@ if ($ADD==411111)
|
||||
}
|
||||
else
|
||||
{
|
||||
$stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value' where user_group='$OLDuser_group';";
|
||||
$stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value' where user_group='$OLDuser_group';";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
|
||||
echo "<br><B>USER GROUP MODIFIED</B>\n";
|
||||
@@ -8666,6 +8786,12 @@ if ($ADD==3)
|
||||
$view_reports = $row[43];
|
||||
$vicidial_recording_override = $row[44];
|
||||
$alter_custdata_override = $row[45];
|
||||
$qc_enabled = $row[46];
|
||||
$qc_user_level = $row[47];
|
||||
$qc_pass = $row[48];
|
||||
$qc_finish = $row[49];
|
||||
$qc_commit = $row[50];
|
||||
|
||||
|
||||
if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) )
|
||||
{
|
||||
@@ -8738,6 +8864,11 @@ if ($ADD==3)
|
||||
echo "$RANKgroups_list";
|
||||
echo "</table>\n";
|
||||
echo "</td></tr>\n";
|
||||
echo "<tr bgcolor=#9BB9FB><td align=right>QC Enabled: </td><td align=left><select size=1 name=qc_enabled><option>0</option><option>1</option><option SELECTED>$qc_enabled</option></select>$NWB#vicidial_users-qc_enabled$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#9BB9FB><td align=right>QC User Level: </td><td align=left><select size=1 name=qc_user_level><option value=1>1 - Modify Nothing</option><option value=2>2 - Modify Nothing Except Status</option><option value=3>3 - Modify All Fields</option><option value=4>4 - Verify First Round of QC</option><option value=5>5 - View QC Statistics</option><option value=6>6 - Ability to Modify FINISHed records</option><option value=7>7 - Manager Level</option><option SELECTED>$qc_user_level</option></select>$NWB#vicidial_users-qc_user_level$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#9BB9FB><td align=right>QC Pass: </td><td align=left><select size=1 name=qc_pass><option>0</option><option>1</option><option SELECTED>$qc_pass</option></select>$NWB#vicidial_users-qc_pass$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#9BB9FB><td align=right>QC Finish: </td><td align=left><select size=1 name=qc_finish><option>0</option><option>1</option><option SELECTED>$qc_finish</option></select>$NWB#vicidial_users-qc_finish$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#9BB9FB><td align=right>QC Commit: </td><td align=left><select size=1 name=qc_commit><option>0</option><option>1</option><option SELECTED>$qc_commit</option></select>$NWB#vicidial_users-qc_commit$NWE</td></tr>\n";
|
||||
}
|
||||
if ($LOGuser_level > 8)
|
||||
{
|
||||
@@ -9065,7 +9196,7 @@ if ($ADD==31)
|
||||
echo "</select> \n";
|
||||
echo "<input type=submit name=submit value=ADD> $NWB#vicidial_campaigns-dial_status$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>List Order: </td><td align=left><select size=1 name=lead_order ><option>DOWN</option><option>UP</option><option>UP PHONE</option><option>DOWN PHONE</option><option>UP LAST NAME</option><option>DOWN LAST NAME</option><option>UP COUNT</option><option>DOWN COUNT</option><option>DOWN COUNT 2nd NEW</option><option>DOWN COUNT 3rd NEW</option><option>DOWN COUNT 4th NEW</option><option>DOWN COUNT 5th NEW</option><option>DOWN COUNT 6th NEW</option><option SELECTED>$lead_order</option></select>$NWB#vicidial_campaigns-lead_order$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>List Order: </td><td align=left><select size=1 name=lead_order ><option>DOWN</option><option>UP</option><option>DOWN PHONE</option><option>UP PHONE</option><option>DOWN LAST NAME</option><option>UP LAST NAME</option><option>DOWN COUNT</option><option>UP COUNT</option><option>DOWN 2nd NEW</option><option>DOWN 3rd NEW</option><option>DOWN 4th NEW</option><option>DOWN 5th NEW</option><option>DOWN 6th NEW</option><option>UP 2nd NEW</option><option>UP 3rd NEW</option><option>UP 4th NEW</option><option>UP 5th NEW</option><option>UP 6th NEW</option><option>DOWN PHONE 2nd NEW</option><option>DOWN PHONE 3rd NEW</option><option>DOWN PHONE 4th NEW</option><option>DOWN PHONE 5th NEW</option><option>DOWN PHONE 6th NEW</option><option>UP PHONE 2nd NEW</option><option>UP PHONE 3rd NEW</option><option>UP PHONE 4th NEW</option><option>UP PHONE 5th NEW</option><option>UP PHONE 6th NEW</option><option>DOWN LAST NAME 2nd NEW</option><option>DOWN LAST NAME 3rd NEW</option><option>DOWN LAST NAME 4th NEW</option><option>DOWN LAST NAME 5th NEW</option><option>DOWN LAST NAME 6th NEW</option><option>UP LAST NAME 2nd NEW</option><option>UP LAST NAME 3rd NEW</option><option>UP LAST NAME 4th NEW</option><option>UP LAST NAME 5th NEW</option><option>UP LAST NAME 6th NEW</option><option>DOWN COUNT 2nd NEW</option><option>DOWN COUNT 3rd NEW</option><option>DOWN COUNT 4th NEW</option><option>DOWN COUNT 5th NEW</option><option>DOWN COUNT 6th NEW</option><option>UP COUNT 2nd NEW</option><option>UP COUNT 3rd NEW</option><option>UP COUNT 4th NEW</option><option>UP COUNT 5th NEW</option><option>UP COUNT 6th NEW</option><option SELECTED>$lead_order</option></select>$NWB#vicidial_campaigns-lead_order$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right><a href=\"$PHP_SELF?ADD=31&SUB=29&campaign_id=$campaign_id&vcl_id=$list_order_mix\">List Mix</a>: </td><td align=left><select size=1 name=list_order_mix>\n";
|
||||
echo "$mixes_list";
|
||||
@@ -9779,7 +9910,7 @@ if ($ADD==34)
|
||||
echo "</select> \n";
|
||||
echo "<input type=submit name=submit value=ADD> $NWB#vicidial_campaigns-dial_status$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>List Order: </td><td align=left><select size=1 name=lead_order><option>DOWN</option><option>UP</option><option>UP PHONE</option><option>DOWN PHONE</option><option>UP LAST NAME</option><option>DOWN LAST NAME</option><option>UP COUNT</option><option>DOWN COUNT</option><option>DOWN COUNT 2nd NEW</option><option>DOWN COUNT 3rd NEW</option><option>DOWN COUNT 4th NEW</option><option>DOWN COUNT 5th NEW</option><option>DOWN COUNT 6th NEW</option><option SELECTED>$lead_order</option></select>$NWB#vicidial_campaigns-lead_order$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>List Order: </td><td align=left><select size=1 name=lead_order><option>DOWN</option><option>UP</option><option>DOWN PHONE</option><option>UP PHONE</option><option>DOWN LAST NAME</option><option>UP LAST NAME</option><option>DOWN COUNT</option><option>UP COUNT</option><option>DOWN 2nd NEW</option><option>DOWN 3rd NEW</option><option>DOWN 4th NEW</option><option>DOWN 5th NEW</option><option>DOWN 6th NEW</option><option>UP 2nd NEW</option><option>UP 3rd NEW</option><option>UP 4th NEW</option><option>UP 5th NEW</option><option>UP 6th NEW</option><option>DOWN PHONE 2nd NEW</option><option>DOWN PHONE 3rd NEW</option><option>DOWN PHONE 4th NEW</option><option>DOWN PHONE 5th NEW</option><option>DOWN PHONE 6th NEW</option><option>UP PHONE 2nd NEW</option><option>UP PHONE 3rd NEW</option><option>UP PHONE 4th NEW</option><option>UP PHONE 5th NEW</option><option>UP PHONE 6th NEW</option><option>DOWN LAST NAME 2nd NEW</option><option>DOWN LAST NAME 3rd NEW</option><option>DOWN LAST NAME 4th NEW</option><option>DOWN LAST NAME 5th NEW</option><option>DOWN LAST NAME 6th NEW</option><option>UP LAST NAME 2nd NEW</option><option>UP LAST NAME 3rd NEW</option><option>UP LAST NAME 4th NEW</option><option>UP LAST NAME 5th NEW</option><option>UP LAST NAME 6th NEW</option><option>DOWN COUNT 2nd NEW</option><option>DOWN COUNT 3rd NEW</option><option>DOWN COUNT 4th NEW</option><option>DOWN COUNT 5th NEW</option><option>DOWN COUNT 6th NEW</option><option>UP COUNT 2nd NEW</option><option>UP COUNT 3rd NEW</option><option>UP COUNT 4th NEW</option><option>UP COUNT 5th NEW</option><option>UP COUNT 6th NEW</option><option SELECTED>$lead_order</option></select>$NWB#vicidial_campaigns-lead_order$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right><a href=\"$PHP_SELF?ADD=31&SUB=29&campaign_id=$campaign_id&vcl_id=$list_order_mix\">List Mix</a>: </td><td align=left><select size=1 name=list_order_mix>\n";
|
||||
echo "$mixes_list";
|
||||
@@ -11154,6 +11285,14 @@ if ($ADD==311111)
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>Allowed Campaigns: </td><td align=left>\n";
|
||||
echo "$campaigns_list";
|
||||
echo "$NWB#vicidial_user_groups-allowed_campaigns$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>QC Allowed Campaigns: </td><td align=left>\n";
|
||||
echo "$qc_campaigns_list";
|
||||
echo "$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>QC Allowed Inbound Groups: </td><td align=left>\n";
|
||||
echo "$qc_groups_list";
|
||||
echo "$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=center colspan=2><input type=submit name=SUBMIT value=SUBMIT></td></tr>\n";
|
||||
echo "</TABLE></center>\n";
|
||||
|
||||
|
||||
@@ -49,4 +49,5 @@ $AM_shift_BEGIN = '03:45:00';
|
||||
$AM_shift_END = '17:45:00';
|
||||
$PM_shift_BEGIN = '17:45:01';
|
||||
$PM_shift_END = '23:59:59';
|
||||
$admin_qc_enabled = '0';
|
||||
?>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?
|
||||
### user_stats.php
|
||||
###
|
||||
### Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
### Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
|
||||
###
|
||||
# CHANGES
|
||||
#
|
||||
@@ -9,6 +9,7 @@
|
||||
# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit
|
||||
# 70118-1605 - Added user group column to login/out and calls lists
|
||||
# 70702-1231 - Added recording location link and truncation
|
||||
# 80117-0316 - Added vicidial_user_closer_log entries to display
|
||||
#
|
||||
|
||||
header ("Content-type: text/html; charset=utf-8");
|
||||
@@ -264,6 +265,39 @@ echo "<br><br>\n";
|
||||
|
||||
echo "<center>\n";
|
||||
|
||||
echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n";
|
||||
echo "<TABLE width=650 cellspacing=0 cellpadding=1>\n";
|
||||
echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAIGN</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td></tr>\n";
|
||||
|
||||
$stmt="select * from vicidial_user_closer_log where user='" . mysql_real_escape_string($user) . "' and event_date >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and event_date <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by event_date desc limit 1000;";
|
||||
$rslt=mysql_query($stmt, $link);
|
||||
$logs_to_print = mysql_num_rows($rslt);
|
||||
|
||||
$u=0;
|
||||
while ($logs_to_print > $u) {
|
||||
$row=mysql_fetch_row($rslt);
|
||||
if (eregi("1$|3$|5$|7$|9$", $u))
|
||||
{$bgcolor='bgcolor="#B9CBFD"';}
|
||||
else
|
||||
{$bgcolor='bgcolor="#9BB9FB"';}
|
||||
|
||||
$u++;
|
||||
echo "<tr $bgcolor>";
|
||||
echo "<td><font size=1>$u</td>";
|
||||
echo "<td><font size=2>$row[2]</td>";
|
||||
echo "<td align=left><font size=2> $row[1]</td>\n";
|
||||
echo "<td align=left><font size=2> $row[3]</td>\n";
|
||||
echo "<td align=left><font size=2> $row[4] </td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
}
|
||||
|
||||
|
||||
echo "</TABLE></center><BR><BR>\n";
|
||||
|
||||
|
||||
|
||||
|
||||
echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n";
|
||||
echo "<TABLE width=650 cellspacing=0 cellpadding=1>\n";
|
||||
echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>LENGTH</td><td align=left><font size=2> STATUS</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> CAMPAIGN</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td></tr>\n";
|
||||
|
||||
Reference in New Issue
Block a user