Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions to vicidial.php,vdc_db_query.php and AST_VDremote_agents.pl

git-svn-id: svn://192.168.202.10@520 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2007-02-13 19:45:28 +00:00
parent 34aebbc3ea
commit 31fe35bc5b
6 changed files with 487 additions and 79 deletions
+36
View File
@@ -18,6 +18,7 @@
# 61215-1110 - Added answered calls stats and use drops as percentage of answered for today
# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns
# 70205-1429 - Added code for campaign_changedate and campaign_stats_refresh updates
# 70213-1221 - Added code for QueueMetrics queue_log QUEUESTART record
#
# constants
@@ -233,6 +234,41 @@ $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VA
if ($DBX) {print "CONNECTED TO DATABASE: $VARDB_server|$VARDB_database\n";}
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
$rec_count=0;
while ($sthArows > $rec_count)
{
@aryA = $sthA->fetchrow_array;
$enable_queuemetrics_logging = "$aryA[0]";
$queuemetrics_server_ip = "$aryA[1]";
$queuemetrics_dbname = "$aryA[2]";
$queuemetrics_login = "$aryA[3]";
$queuemetrics_pass = "$aryA[4]";
$rec_count++;
}
$sthA->finish();
if ($enable_queuemetrics_logging > 0)
{
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
or die "Couldn't connect to database: " . DBI->errstr;
if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";}
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secT',call_id='NONE',queue='NONE',agent='NONE',verb='QUEUESTART',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$dbhB->disconnect();
}
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
$master_loop=0;
### Start master loop ###
+132 -11
View File
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
# AST_VDremote_agents.pl version 0.2 *DBI-version*
# AST_VDremote_agents.pl version 2.0.3 *DBI-version*
#
# DESCRIPTION:
# uses Net::MySQL to keep remote agents logged in to the VICIDIAL system
@@ -19,17 +19,18 @@
# It is good practice to keep this program running by placing the associated
# KEEPALIVE script running every minute to ensure this program is always running
#
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
#
# changes:
# CHANGELOG:
# 50215-0954 - First version of script
# 50810-1615 - Added database server variable definitions lookup
# 60807-1003 - Changed to DBI
# - changed to use /etc/astguiclient.conf for configs
# 60814-1726 - added option for no logging to file
# 60814-1726 - added option for no logging to file
# 61012-1025 - added performance testing options
# 61110-1443 - added user_level from vicidial_user record into vicidial_live_agents
# - Changed to use /etc/astguiclient.conf for configs
# 60814-1726 - Added option for no logging to file
# 60814-1726 - Added option for no logging to file
# 61012-1025 - Added performance testing options
# 61110-1443 - Added user_level from vicidial_user record into vicidial_live_agents
# 70213-1306 - Added queuemetrics logging
#
### begin parsing run-time options ###
@@ -90,6 +91,7 @@ $MT[0]='';
$local_DEF = 'Local/';
$conf_silent_prefix = '7';
$local_AMP = '@';
$agents = '@agents';
# default path to astguiclient configuration file:
$PATHconf = '/etc/astguiclient.conf';
@@ -203,6 +205,28 @@ while($one_day_interval > 0)
}
$sthA->finish();
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
$rec_count=0;
while ($sthArows > $rec_count)
{
@aryA = $sthA->fetchrow_array;
$enable_queuemetrics_logging = "$aryA[0]";
$queuemetrics_server_ip = "$aryA[1]";
$queuemetrics_dbname = "$aryA[2]";
$queuemetrics_login = "$aryA[3]";
$queuemetrics_pass = "$aryA[4]";
$rec_count++;
}
$sthA->finish();
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
### delete call records that are LIVE for over 10 minutes and last_update_time < '$PDtsSQLdate'
$stmtA = "DELETE FROM vicidial_live_agents where server_ip='$server_ip' and status IN('PAUSED') and extension LIKE \"R/%\";";
@@ -392,6 +416,22 @@ while($one_day_interval > 0)
$stmtA = "UPDATE vicidial_live_agents set random_id='$DBremote_random[$h]',campaign_id='$DBremote_campaign[$h]',conf_exten='$DBremote_conf_exten[$h]',closer_campaigns='$DBremote_closer[$h]', status='READY' where user='$DBremote_user[$h]' and server_ip='$server_ip';";
$affected_rows = $dbhA->do($stmtA);
if ($DBX) {print STDERR "$DBremote_user[$h] ALL UPDATE: $affected_rows\n";}
# if ($affected_rows>0)
# {
# if ($enable_queuemetrics_logging > 0)
# {
# $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
# or die "Couldn't connect to database: " . DBI->errstr;
# if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";}
# $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$DBremote_campaign[$h]',agent='Agent/$DBremote_user[$h]',verb='UNPAUSE',serverid='1';";
# $Baffected_rows = $dbhB->do($stmtB);
# $dbhB->disconnect();
# }
# }
}
### no records exist so insert a new one
else
@@ -421,6 +461,26 @@ while($one_day_interval > 0)
$affected_rows = $dbhA->do($stmtA);
if ($DBX) {print STDERR " TESTrun CALL PLACED: 999999999999 $DBremote_conf_exten[$h] $DBremote_user[$h] NEW INSERT: |$affected_rows|\n";}
}
if ($affected_rows>0)
{
if ($enable_queuemetrics_logging > 0)
{
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
or die "Couldn't connect to database: " . DBI->errstr;
if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";}
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$DBremote_campaign[$h]',agent='Agent/$DBremote_user[$h]',verb='AGENTLOGIN',data1='$DBremote_user[$h]$agents',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$DBremote_campaign[$h]',agent='Agent/$DBremote_user[$h]',verb='UNPAUSE',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$dbhB->disconnect();
}
}
}
}
}
@@ -432,7 +492,7 @@ while($one_day_interval > 0)
###### fourth validate that the calls that the vicidial_live_agents are on are not dead
###### and if they are wipe out the values and set the agent record back to READY
###############################################################################
$stmtA = "SELECT user,extension,status,uniqueid,callerid,lead_id FROM vicidial_live_agents where extension LIKE \"R/%\" and server_ip='$server_ip' and uniqueid > 10;";
$stmtA = "SELECT user,extension,status,uniqueid,callerid,lead_id,campaign_id FROM vicidial_live_agents where extension LIKE \"R/%\" and server_ip='$server_ip' and uniqueid > 10;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@@ -447,6 +507,7 @@ while($one_day_interval > 0)
$VDuniqueid = "$aryA[3]";
$VDcallerid = "$aryA[4]";
$VDlead_id = "$aryA[5]";
$VDcampaign_id = "$aryA[6]";
$VDrandom = int( rand(9999999)) + 10000000;
$VD_user[$z] = "$VDuser";
@@ -455,6 +516,7 @@ while($one_day_interval > 0)
$VD_uniqueid[$z] = "$VDuniqueid";
$VD_callerid[$z] = "$VDcallerid";
$VD_lead_id[$z] = "$VDlead_id";
$VD_campaign_id[$z] = "$VDcampaign_id";
$VD_random[$z] = "$VDrandom";
$z++;
@@ -486,12 +548,72 @@ while($one_day_interval > 0)
$stmtA = "UPDATE vicidial_live_agents set random_id='$VD_random[$z]',status='PAUSED', last_call_finish='$SQLdate',lead_id='',uniqueid='',callerid='',channel='' where user='$VD_user[$z]' and server_ip='$server_ip';";
$affected_rows = $dbhA->do($stmtA);
if ($DB) {print STDERR "$VD_user[$z] CALL WIPE UPDATE: $affected_rows|PAUSED|$VD_uniqueid[$z]|$VD_user[$z]|\n";}
if ($affected_rows>0)
{
if ($enable_queuemetrics_logging > 0)
{
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
or die "Couldn't connect to database: " . DBI->errstr;
if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";}
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$VD_campaign_id[$z]',agent='Agent/$VD_user[$z]',verb='PAUSE',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$stmtB = "SELECT time_id FROM queue_log where agent='Agent/$VD_user[$z]' and verb='AGENTLOGIN' order by time_id desc limit 1;";
$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr;
$sthB->execute or die "executing: $stmtB ", $dbhB->errstr;
$sthBrows=$sthB->rows;
$rec_count=0;
while ($sthBrows > $rec_count)
{
@aryB = $sthB->fetchrow_array;
$logintime = "$aryB[0]";
$rec_count++;
}
$sthB->finish();
if ($DBX) {print "LOGOFF TIME LOG: $logintime|$secX|$stmtB|\n";}
$time_logged_in = ($secX - $logintime);
if ($time_logged_in > 1000000) {$time_logged_in=1;}
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$VD_campaign_id[$z]',agent='Agent/$VD_user[$z]',verb='AGENTLOGOFF',data1='$VD_user[$z]$agents',data2='$time_logged_in',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$dbhB->disconnect();
}
}
}
else
{
$stmtA = "UPDATE vicidial_live_agents set random_id='$VD_random[$z]',status='READY', last_call_finish='$SQLdate',lead_id='',uniqueid='',callerid='',channel='' where user='$VD_user[$z]' and server_ip='$server_ip';";
$stmtA = "UPDATE vicidial_live_agents set random_id='$VD_random[$z]', last_call_finish='$SQLdate',lead_id='',uniqueid='',callerid='',channel='' where user='$VD_user[$z]' and server_ip='$server_ip';";
$affected_rows = $dbhA->do($stmtA);
if ($DB) {print STDERR "$VD_user[$z] CALL WIPE UPDATE: $affected_rows|READY|$VD_uniqueid[$z]|$VD_user[$z]|\n";}
$stmtA = "UPDATE vicidial_live_agents set status='READY' where user='$VD_user[$z]' and server_ip='$server_ip';";
$affected_rows = $dbhA->do($stmtA);
if ($DB) {print STDERR "$VD_user[$z] CALL WIPE UPDATE: $affected_rows|READY|$VD_uniqueid[$z]|$VD_user[$z]|\n";}
if ($affected_rows>0)
{
if ($enable_queuemetrics_logging > 0)
{
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
or die "Couldn't connect to database: " . DBI->errstr;
if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";}
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$VD_campaign_id[$z]',agent='Agent/$VD_user[$z]',verb='PAUSE',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$VD_campaign_id[$z]',agent='Agent/$VD_user[$z]',verb='UNPAUSE',serverid='1';";
$Baffected_rows = $dbhB->do($stmtB);
$dbhB->disconnect();
}
}
}
}
### possible future active call checker
@@ -589,7 +711,6 @@ exit;
sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes
{
$secX = time();
$secX = time();
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX);
$LOCAL_GMT_OFF = $SERVER_GMT;
+30 -18
View File
@@ -115,24 +115,26 @@ queue: the queue that call came into (we will use the campaign_id here)
agent: we will use the user ID prepended by "agent/" [agent/6666]
verbs:
PAUSEALL
PAUSE
CALLSTATUS
PAUSEREASON
COMPLETECALLER
AGENTCALLBACKLOGOFF
ABANDON
ENTERQUEUE
AGENTCALLBACKLOGIN
UNPAUSEALL
UNPAUSE
COMPLETEAGENT
CONNECT
QUEUESTART
AGENTDUMP
TRANSFER
EXITWITHTIMEOUT
CONFIGRELOAD
system actions
QUEUESTART
agent actions
AGENTLOGIN(channel)
AGENTLOGOFF(channel|logintime)
PAUSEALL
PAUSE
UNPAUSEALL
UNPAUSE
PAUSEREASON
call actions
ENTERQUEUE(url|callerid)
ABANDON(position|origposition|waittime)
CONNECT(holdtime)
COMPLETEAGENT(holdtime|calltime|origposition)
COMPLETECALLER(holdtime|calltime|origposition)
EXITWITHTIMEOUT(position)
TRANSFER(extension,context)
CALLSTATUS
data1: call termination codes, TBD
@@ -144,3 +146,13 @@ data4: ??
serverid: number of the server the call came from [1]
On the vicidial side of things, we will add the following columns to the system_settings table:
enable_queuemetrics_logging ENUM('0','1') default '0',
queuemetrics_server_ip VARCHAR(15),
queuemetrics_dbname VARCHAR(50),
queuemetrics_login VARCHAR(50),
queuemetrics_pass VARCHAR(50),
queuemetrics_url VARCHAR(255)
+2 -2
View File
@@ -1,6 +1,6 @@
<?
#
# Copyright (C) 2006 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
# Copyright (C) 2007 Matt Florell <vicidial@gmail.com> LICENSE: GPLv2
#
if ( file_exists("/etc/astguiclient.conf") )
{
@@ -36,7 +36,7 @@ $WeBServeRRooT = '/usr/local/apache2/htdocs';
}
$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass");
mysql_select_db("$VARDB_database");
mysql_select_db("$VARDB_database",$link);
$local_DEF = 'Local/';
$conf_silent_prefix = '7';
+187 -6
View File
@@ -119,10 +119,11 @@
# 70203-1030 - Added dialed_label to lead info output
# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents
# 70212-1253 - Fixed small issue with CXFER
# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions
#
$version = '2.0.46';
$build = '70212-1253';
$version = '2.0.47';
$build = '70213-1431';
require("dbconnect.php");
@@ -270,6 +271,7 @@ $CIDdate = date("mdHis");
$ENTRYdate = date("YmdHis");
if (!isset($query_date)) {$query_date = $NOW_DATE;}
$MT[0]='';
$agents='@agents';
$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;";
if ($DB) {echo "|$stmt|\n";}
@@ -430,7 +432,7 @@ if ($ACTION == 'manDiaLnextCaLL')
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
$lead_id = mysql_insert_id();
$lead_id = mysql_insert_id($link);
$CBleadIDset=1;
}
}
@@ -441,7 +443,7 @@ if ($ACTION == 'manDiaLnextCaLL')
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
$lead_id = mysql_insert_id();
$lead_id = mysql_insert_id($link);
$CBleadIDset=1;
}
}
@@ -980,6 +982,44 @@ if ($stage == "end")
$stmt = "UPDATE vicidial_live_agents set status='PAUSED',lead_id='',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
if ($affected_rows > 0)
{
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$qm_conf_ct = mysql_num_rows($rslt);
$i=0;
while ($i < $qm_conf_ct)
{
$row=mysql_fetch_row($rslt);
$enable_queuemetrics_logging = $row[0];
$queuemetrics_server_ip = $row[1];
$queuemetrics_dbname = $row[2];
$queuemetrics_login = $row[3];
$queuemetrics_pass = $row[4];
$i++;
}
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
if ($enable_queuemetrics_logging > 0)
{
$linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass");
mysql_select_db("$queuemetrics_dbname", $linkB);
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
mysql_close($linkB);
mysql_select_db("$VARDB_database", $link);
}
}
}
else
{
@@ -990,6 +1030,44 @@ if ($stage == "end")
$stmt = "UPDATE vicidial_live_agents set status='PAUSED',lead_id='',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='' where user='$user' and server_ip='$server_ip';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
if ($affected_rows > 0)
{
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$qm_conf_ct = mysql_num_rows($rslt);
$i=0;
while ($i < $qm_conf_ct)
{
$row=mysql_fetch_row($rslt);
$enable_queuemetrics_logging = $row[0];
$queuemetrics_server_ip = $row[1];
$queuemetrics_dbname = $row[2];
$queuemetrics_login = $row[3];
$queuemetrics_pass = $row[4];
$i++;
}
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
if ($enable_queuemetrics_logging > 0)
{
$linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass");
mysql_select_db("$queuemetrics_dbname", $linkB);
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
mysql_close($linkB);
mysql_select_db("$VARDB_database", $link);
}
}
}
##### look for the channel in the UPDATED vicidial_manager record of the call initiation
@@ -1545,6 +1623,66 @@ else
$rslt=mysql_query($stmt, $link);
}
if ($vla_delete > 0)
{
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$qm_conf_ct = mysql_num_rows($rslt);
$i=0;
while ($i < $qm_conf_ct)
{
$row=mysql_fetch_row($rslt);
$enable_queuemetrics_logging = $row[0];
$queuemetrics_server_ip = $row[1];
$queuemetrics_dbname = $row[2];
$queuemetrics_login = $row[3];
$queuemetrics_pass = $row[4];
$i++;
}
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
if ($enable_queuemetrics_logging > 0)
{
$linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass");
mysql_select_db("$queuemetrics_dbname", $linkB);
# $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';";
# if ($DB) {echo "$stmt\n";}
# if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
# $rslt=mysql_query($stmt, $linkB);
# $affected_rows = mysql_affected_rows($linkB);
$stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
if ($DB) {echo "$stmt\n";}
echo "$stmt\n";
$li_conf_ct = mysql_num_rows($rslt);
$i=0;
while ($i < $li_conf_ct)
{
$row=mysql_fetch_row($rslt);
$logintime = $row[0];
$i++;
}
$time_logged_in = ($StarTtime - $logintime);
if ($time_logged_in > 1000000) {$time_logged_in=1;}
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
mysql_close($linkB);
}
}
echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel\n";
}
}
@@ -1623,7 +1761,7 @@ if ($ACTION == 'updateDISPO')
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
$agent_log_id = mysql_insert_id();
$agent_log_id = mysql_insert_id($link);
### CALLBACK ENTRY
if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) )
@@ -1709,10 +1847,53 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') )
else
{
$random = (rand(1000000, 9999999) + 10000000);
$stmt="UPDATE vicidial_live_agents set status='$stage',lead_id='',uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';";
$stmt="UPDATE vicidial_live_agents set lead_id='',uniqueid=0,callerid='',channel='', random_id='$random',comments='' where user='$user' and server_ip='$server_ip';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_query($stmt, $link);
$stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
if ($affected_rows > 0)
{
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$qm_conf_ct = mysql_num_rows($rslt);
$i=0;
while ($i < $qm_conf_ct)
{
$row=mysql_fetch_row($rslt);
$enable_queuemetrics_logging = $row[0];
$queuemetrics_server_ip = $row[1];
$queuemetrics_dbname = $row[2];
$queuemetrics_login = $row[3];
$queuemetrics_pass = $row[4];
$i++;
}
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
if ($enable_queuemetrics_logging > 0)
{
if (ereg('READY',$stage)) {$QMstatus='UNPAUSE';}
if (ereg('PAUSE',$stage)) {$QMstatus='PAUSE';}
$linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass");
mysql_select_db("$queuemetrics_dbname", $linkB);
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='$QMstatus',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
mysql_close($linkB);
}
}
if ($agent_log == 'NO')
{$donothing=1;}
else
+100 -42
View File
@@ -603,44 +603,39 @@ $VDloginDISPLAY=0;
$HKstatusnames = substr("$HKstatusnames", 0, -1);
##### grab the statuses to be dialed for your campaign as well as other campaign settings
$stmt="SELECT dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$row=mysql_fetch_row($rslt);
$status_A = $row[0];
$status_B = $row[1];
$status_C = $row[2];
$status_D = $row[3];
$status_E = $row[4];
$park_ext = $row[5];
$park_file_name = $row[6];
$web_form_address = $row[7];
$allow_closers = $row[8];
$auto_dial_level = $row[9];
$dial_timeout = $row[10];
$dial_prefix = $row[11];
$campaign_cid = $row[12];
$campaign_vdad_exten = $row[13];
$campaign_rec_exten = $row[14];
$campaign_recording = $row[15];
$campaign_rec_filename = $row[16];
$campaign_script = $row[17];
$get_call_launch = $row[18];
$campaign_am_message_exten = $row[19];
$xferconf_a_dtmf = $row[20];
$xferconf_a_number = $row[21];
$xferconf_b_dtmf = $row[22];
$xferconf_b_number = $row[23];
$alt_number_dialing=$row[24];
$VC_scheduled_callbacks=$row[25];
$wrapup_seconds=$row[26];
$wrapup_message=$row[27];
$closer_campaigns=$row[28];
$use_internal_dnc=$row[29];
$allcalls_delay=$row[30];
$omit_phone_code=$row[31];
$agent_pause_codes_active=$row[32];
$park_ext = $row[0];
$park_file_name = $row[1];
$web_form_address = $row[2];
$allow_closers = $row[3];
$auto_dial_level = $row[4];
$dial_timeout = $row[5];
$dial_prefix = $row[6];
$campaign_cid = $row[7];
$campaign_vdad_exten = $row[8];
$campaign_rec_exten = $row[9];
$campaign_recording = $row[10];
$campaign_rec_filename = $row[11];
$campaign_script = $row[12];
$get_call_launch = $row[13];
$campaign_am_message_exten = $row[14];
$xferconf_a_dtmf = $row[15];
$xferconf_a_number = $row[16];
$xferconf_b_dtmf = $row[17];
$xferconf_b_number = $row[18];
$alt_number_dialing = $row[19];
$VC_scheduled_callbacks = $row[20];
$wrapup_seconds = $row[21];
$wrapup_message = $row[22];
$closer_campaigns = $row[23];
$use_internal_dnc = $row[24];
$allcalls_delay = $row[25];
$omit_phone_code = $row[26];
$agent_pause_codes_active = $row[27];
if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) )
{
@@ -1024,6 +1019,27 @@ else
$affected_rows = mysql_affected_rows($link);
print "<!-- call placed to session_id: $session_id from phone: $SIP_user -->\n";
#############################################
##### START QUEUEMETRICS LOGGING LOOKUP #####
$stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass FROM system_settings;";
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
if ($DB) {echo "$stmt\n";}
$qm_conf_ct = mysql_num_rows($rslt);
$i=0;
while ($i < $qm_conf_ct)
{
$row=mysql_fetch_row($rslt);
$enable_queuemetrics_logging = $row[0];
$queuemetrics_server_ip = $row[1];
$queuemetrics_dbname = $row[2];
$queuemetrics_login = $row[3];
$queuemetrics_pass = $row[4];
$i++;
}
##### END QUEUEMETRICS LOGGING LOOKUP #####
###########################################
if ($auto_dial_level > 0)
{
print "<!-- campaign is set to auto_dial_level: $auto_dial_level -->\n";
@@ -1036,9 +1052,33 @@ else
$affected_rows = mysql_affected_rows($link);
print "<!-- new vicidial_live_agents record inserted: |$affected_rows| -->\n";
if ($enable_queuemetrics_logging > 0)
{
$linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass");
mysql_select_db("$queuemetrics_dbname", $linkB);
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
print "<!-- queue_log AGENTLOGIN entry added: $VD_login|$affected_rows -->\n";
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='PAUSE',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
print "<!-- queue_log PAUSE entry added: $VD_login|$affected_rows -->\n";
mysql_close($linkB);
mysql_select_db("$VARDB_database", $link);
}
if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)", $VD_campaign))
{
print "<!-- code to trigger window to pick closer groups goes here -->\n";
print "<!-- CLOSER-type campaign -->\n";
}
}
else
@@ -1051,6 +1091,29 @@ else
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
print "<!-- new vicidial_live_agents record inserted: |$affected_rows| -->\n";
if ($enable_queuemetrics_logging > 0)
{
$linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass");
mysql_select_db("$queuemetrics_dbname", $linkB);
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
print "<!-- queue_log AGENTLOGIN entry added: $VD_login|$affected_rows -->\n";
$stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='PAUSE',serverid='1';";
if ($DB) {echo "$stmt\n";}
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $linkB);
$affected_rows = mysql_affected_rows($linkB);
print "<!-- queue_log PAUSE entry added: $VD_login|$affected_rows -->\n";
mysql_close($linkB);
mysql_select_db("$VARDB_database", $link);
}
}
}
else
@@ -1106,7 +1169,7 @@ else
if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
$agent_log_id = mysql_insert_id();
$agent_log_id = mysql_insert_id($link);
print "<!-- vicidial_agent_log record inserted: |$affected_rows|$agent_log_id| -->\n";
$S='*';
@@ -1404,11 +1467,6 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var CalL_AutO_LauncH = '';
var panel_bgcolor = '#E0C2D6';
var CusTCB_bgcolor = '#FFFF66';
var status_A = '<? echo $status_A ?>';
var status_B = '<? echo $status_B ?>';
var status_C = '<? echo $status_C ?>';
var status_D = '<? echo $status_D ?>';
var status_E = '<? echo $status_E ?>';
var auto_dial_level = '<? echo $auto_dial_level ?>';
var starting_dial_level = '<? echo $auto_dial_level ?>';
var dial_timeout = '<? echo $dial_timeout ?>';
@@ -3356,7 +3414,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
}
if (xmlhttp)
{
autoDiaLready_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=" + taskaction + "&user=" + user + "&pass=" + pass + "&stage=" + VDRP_stage + "&agent_log_id=" + agent_log_id + "&agent_log=" + taskagentlog;
autoDiaLready_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=" + taskaction + "&user=" + user + "&pass=" + pass + "&stage=" + VDRP_stage + "&agent_log_id=" + agent_log_id + "&agent_log=" + taskagentlog + "&campaign=" + campaign;
xmlhttp.open('POST', 'vdc_db_query.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(autoDiaLready_query);