Added the ability to define multiple Dispo Call URLs as well as define specific statuses that they will be triggered for.
Changed how Dispo Call URLs are processed to not delay agent actions. Added more logging and HTTPS compatibility to AST_send_URL.pl script git-svn-id: svn://192.168.202.10@2346 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -91,6 +91,12 @@ OTHER CHANGES:
|
||||
14. Added ability to use No Agent Call URL with the dispo_move_list.php script
|
||||
see script comments for instructions.
|
||||
|
||||
15. Added DID options to check for a Maximum number of calls in queue in a set
|
||||
In-Group and route the call to an extension if over the set number.
|
||||
|
||||
16. Added the ability to define multiple Dispo Call URLs as well as define
|
||||
specific statuses that they will be triggered for.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
# 150429-0910 - Added campaign variables
|
||||
# 150609-1931 - Added list_description variable
|
||||
# 150703-1542 - Fixed issue with list_id check
|
||||
# 150711-1501 - Changed to add more logging and better HTTPS support
|
||||
#
|
||||
|
||||
$|++;
|
||||
@@ -758,16 +759,58 @@ if (length($lead_id) > 0)
|
||||
}
|
||||
$sthA->finish();
|
||||
|
||||
`$wgetbin -q --output-document=/tmp/ASUtmp$US$uniqueid$US$secX $parse_url `;
|
||||
$url = $parse_url;
|
||||
$url =~ s/'/\\'/gi;
|
||||
$url =~ s/"/\\"/gi;
|
||||
|
||||
$event_string="$function|$wgetbin -q --output-document=/tmp/ASUtmp$US$uniqueid$US$secX $parse_url|";
|
||||
my $secW = time();
|
||||
|
||||
`$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url `;
|
||||
|
||||
$event_string="$function|$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url|";
|
||||
&event_logger;
|
||||
|
||||
### update url log entry
|
||||
$stmtA = "UPDATE vicidial_url_log SET url_response='/tmp/ASUtmp$US$uniqueid$US$secX' where url_log_id='$url_id';";
|
||||
$affected_rows = $dbhA->do($stmtA);
|
||||
}
|
||||
my $secY = time();
|
||||
my $response_sec = ($secY - $secW);
|
||||
|
||||
open(Wdoc, "/tmp/ASUBtmpD$US$url_id$US$secX") || die "can't open /tmp/ASUBtmpD$US$url_id$US$secX: $!\n";
|
||||
@Wdoc = <Wdoc>;
|
||||
close(Wdoc);
|
||||
$i=0;
|
||||
$Wdocline_cat='';
|
||||
foreach(@Wdoc)
|
||||
{
|
||||
$Wdocline = $Wdoc[$i];
|
||||
$Wdocline =~ s/\n|\r/!/gi;
|
||||
$Wdocline =~ s/ |\t|\'|\`//gi;
|
||||
$Wdocline_cat .= "$Wdocline";
|
||||
$i++;
|
||||
}
|
||||
if (length($Wdocline_cat)<1)
|
||||
{$Wdocline_cat='<RESPONSE EMPTY>';}
|
||||
|
||||
open(Wfile, "/tmp/ASUBtmpF$US$url_id$US$secX") || die "can't open /tmp/ASUBtmpF$US$url_id$US$secX: $!\n";
|
||||
@Wfile = <Wfile>;
|
||||
close(Wfile);
|
||||
$i=0;
|
||||
$Wfileline_cat='';
|
||||
foreach(@Wfile)
|
||||
{
|
||||
$Wfileline = $Wfile[$i];
|
||||
$Wfileline =~ s/\n|\r/!/gi;
|
||||
$Wfileline =~ s/ |\t|\'|\`//gi;
|
||||
$Wfileline_cat .= "$Wfileline";
|
||||
$i++;
|
||||
}
|
||||
if (length($Wfileline_cat)<1)
|
||||
{$Wfileline_cat='<HEADER EMPTY>';}
|
||||
|
||||
|
||||
### update url log entry
|
||||
$stmtA = "UPDATE vicidial_url_log SET url_response='$Wdocline_cat|$Wfileline_cat',response_sec='$response_sec' where url_log_id='$url_id';";
|
||||
$affected_rows = $dbhA->do($stmtA);
|
||||
if ($DB) {print "$affected_rows|$stmtA\n";}
|
||||
}
|
||||
|
||||
|
||||
my $secZ = time();
|
||||
|
||||
@@ -0,0 +1,273 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# AST_send_URLbasic.pl version 2.12
|
||||
#
|
||||
# DESCRIPTION:
|
||||
# This script is spawned by the agent interface to run for URLs in the background
|
||||
#
|
||||
# Copyright (C) 2015 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||
#
|
||||
# CHANGES
|
||||
# 150711-1227 - First Build
|
||||
#
|
||||
|
||||
$|++;
|
||||
use Getopt::Long;
|
||||
|
||||
### Initialize date/time vars ###
|
||||
my $secX = time(); #Start time
|
||||
|
||||
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
||||
$year = ($year + 1900);
|
||||
$mon++;
|
||||
if ($mon < 10) {$mon = "0$mon";}
|
||||
if ($mday < 10) {$mday = "0$mday";}
|
||||
if ($hour < 10) {$hour = "0$hour";}
|
||||
if ($min < 10) {$min = "0$min";}
|
||||
if ($sec < 10) {$sec = "0$sec";}
|
||||
$now_date = "$year-$mon-$mday $hour:$min:$sec";
|
||||
|
||||
### Initialize run-time variables ###
|
||||
my ($CLOhelp, $SYSLOG,$DB, $DBX);
|
||||
my ($url_id, $lead_id, $phone_number, $call_type, $user, $uniqueid, $alt_dial, $call_id, $function);
|
||||
my $FULL_LOG = 1;
|
||||
$url_function = 'other';
|
||||
$US='_';
|
||||
|
||||
### begin parsing run-time options ###
|
||||
if (scalar @ARGV) {
|
||||
GetOptions('help!' => \$CLOhelp,
|
||||
'SYSLOG!' => \$SYSLOG,
|
||||
'url_id=s' => \$url_id,
|
||||
'debug!' => \$DB,
|
||||
'debugX!' => \$DBX,
|
||||
'fulllog!' => \$FULL_LOG,
|
||||
'compat_url=s' => \$compat_url);
|
||||
|
||||
$DB = 1 if ($DBX);
|
||||
if ($DB)
|
||||
{
|
||||
print "\n----- DEBUGGING -----\n\n";
|
||||
print "\n----- SUPER-DUPER DEBUGGING -----\n\n" if ($DBX);
|
||||
print " SYSLOG: $SYSLOG\n" if ($SYSLOG);
|
||||
print " url_id: $url_id\n" if ($url_id);
|
||||
print " compat_url: $compat_url\n" if ($compat_url);
|
||||
print "\n";
|
||||
}
|
||||
if ($CLOhelp)
|
||||
{
|
||||
print "allowed run time options:\n";
|
||||
print " [--help] = this help screen\n";
|
||||
print " [--SYSLOG] = whether to log actions or not\n";
|
||||
print " [--debug] = debug\n";
|
||||
print " [--debugX] = extra debug\n";
|
||||
print " [--compat_url] = full compatible URL to send(not implemented)\n";
|
||||
print "required flags:\n";
|
||||
print " [--url_id] = URL ID to run\n";
|
||||
print "\n";
|
||||
print "You may prefix an option with 'no' to disable it.\n";
|
||||
print " ie. --noSYSLOG or --noFULLLOG\n";
|
||||
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
|
||||
# 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 =~ /^PATHlogs/) && ($CLIlogs < 1) )
|
||||
{$PATHlogs = $line; $PATHlogs =~ 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++;
|
||||
}
|
||||
|
||||
if (!$VARDB_port) {$VARDB_port='3306';}
|
||||
|
||||
|
||||
if (length($url_id) > 0)
|
||||
{
|
||||
### find wget binary
|
||||
$wgetbin = '';
|
||||
if ( -e ('/bin/wget')) {$wgetbin = '/bin/wget';}
|
||||
else
|
||||
{
|
||||
if ( -e ('/usr/bin/wget')) {$wgetbin = '/usr/bin/wget';}
|
||||
else
|
||||
{
|
||||
if ( -e ('/usr/local/bin/wget')) {$wgetbin = '/usr/local/bin/wget';}
|
||||
else
|
||||
{
|
||||
print "Can't find wget binary! Exiting...\n";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second
|
||||
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;
|
||||
|
||||
### Grab Server values from the database
|
||||
$stmtA = "SELECT vd_server_logs,local_gmt,ext_context FROM servers where server_ip = '$VARserver_ip';";
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
$sthArows=$sthA->rows;
|
||||
if ($sthArows > 0)
|
||||
{
|
||||
@aryA = $sthA->fetchrow_array;
|
||||
$DBvd_server_logs = $aryA[0];
|
||||
$DBSERVER_GMT = $aryA[1];
|
||||
$ext_context = $aryA[2];
|
||||
if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';}
|
||||
else {$SYSLOG = '0';}
|
||||
if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;}
|
||||
}
|
||||
$sthA->finish();
|
||||
|
||||
$stmtG = "SELECT url FROM vicidial_url_log where url_log_id='$url_id';";
|
||||
$sthA = $dbhA->prepare($stmtG) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtG ", $dbhA->errstr;
|
||||
$url_ct=$sthA->rows;
|
||||
if ($url_ct > 0)
|
||||
{
|
||||
@aryA = $sthA->fetchrow_array;
|
||||
$url = $aryA[0];
|
||||
}
|
||||
$sthA->finish();
|
||||
|
||||
if (length($url) > 5)
|
||||
{
|
||||
$url =~ s/ /+/gi;
|
||||
$url =~ s/&/\\&/gi;
|
||||
$url =~ s/'/\\'/gi;
|
||||
$url =~ s/"/\\"/gi;
|
||||
|
||||
my $secW = time();
|
||||
|
||||
`$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url `;
|
||||
|
||||
$event_string="$function|$wgetbin --no-check-certificate --output-document=/tmp/ASUBtmpD$US$url_id$US$secX --output-file=/tmp/ASUBtmpF$US$url_id$US$secX $url|";
|
||||
&event_logger;
|
||||
|
||||
my $secY = time();
|
||||
my $response_sec = ($secY - $secW);
|
||||
|
||||
open(Wdoc, "/tmp/ASUBtmpD$US$url_id$US$secX") || die "can't open /tmp/ASUBtmpD$US$url_id$US$secX: $!\n";
|
||||
@Wdoc = <Wdoc>;
|
||||
close(Wdoc);
|
||||
$i=0;
|
||||
$Wdocline_cat='';
|
||||
foreach(@Wdoc)
|
||||
{
|
||||
$Wdocline = $Wdoc[$i];
|
||||
$Wdocline =~ s/\n|\r/!/gi;
|
||||
$Wdocline =~ s/ |\t|\'|\`//gi;
|
||||
$Wdocline_cat .= "$Wdocline";
|
||||
$i++;
|
||||
}
|
||||
if (length($Wdocline_cat)<1)
|
||||
{$Wdocline_cat='<RESPONSE EMPTY>';}
|
||||
|
||||
open(Wfile, "/tmp/ASUBtmpF$US$url_id$US$secX") || die "can't open /tmp/ASUBtmpF$US$url_id$US$secX: $!\n";
|
||||
@Wfile = <Wfile>;
|
||||
close(Wfile);
|
||||
$i=0;
|
||||
$Wfileline_cat='';
|
||||
foreach(@Wfile)
|
||||
{
|
||||
$Wfileline = $Wfile[$i];
|
||||
$Wfileline =~ s/\n|\r/!/gi;
|
||||
$Wfileline =~ s/ |\t|\'|\`//gi;
|
||||
$Wfileline_cat .= "$Wfileline";
|
||||
$i++;
|
||||
}
|
||||
if (length($Wfileline_cat)<1)
|
||||
{$Wfileline_cat='<HEADER EMPTY>';}
|
||||
|
||||
|
||||
### update url log entry
|
||||
$stmtA = "UPDATE vicidial_url_log SET url_response='$Wdocline_cat|$Wfileline_cat',response_sec='$response_sec' where url_log_id='$url_id';";
|
||||
$affected_rows = $dbhA->do($stmtA);
|
||||
if ($DB) {print "$affected_rows|$stmtA\n";}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($DB) {print "ERROR: no valid URL found: $url_id|$url\n";}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $secZ = time();
|
||||
my $script_time = ($secZ - $secX);
|
||||
if ($DB) {print "DONE execute time: $script_time seconds\n";}
|
||||
|
||||
exit 0;
|
||||
# Program ends.
|
||||
|
||||
|
||||
|
||||
### Start of subroutines
|
||||
|
||||
sub event_logger
|
||||
{
|
||||
my ($tms) = @_;
|
||||
my($sec,$min,$hour,$mday,$mon,$year) = getTime($tms);
|
||||
$now_date = $year.'-'.$mon.'-'.$mday.' '.$hour.':'.$min.':'.$sec;
|
||||
$log_date = $year . '-' . $mon . '-' . $mday;
|
||||
if (!$ASULOGfile) {$ASULOGfile = "$PATHlogs/sendurlbasic.$log_date";}
|
||||
|
||||
if ($DB) {print "$now_date|$event_string|\n";}
|
||||
if ($SYSLOG)
|
||||
{
|
||||
### open the log file for writing ###
|
||||
open(Lout, ">>$ASULOGfile")
|
||||
|| die "Can't open $VDRLOGfile: $!\n";
|
||||
print Lout "$now_date|$event_string|\n";
|
||||
close(Lout);
|
||||
}
|
||||
$event_string='';
|
||||
}
|
||||
|
||||
|
||||
# getTime usage:
|
||||
# getTime($SecondsSinceEpoch);
|
||||
# Options:
|
||||
# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time.
|
||||
# Returns:
|
||||
# ($sec, $min, $hour. $day, $mon, $year)
|
||||
sub getTime
|
||||
{
|
||||
my ($tms) = @_;
|
||||
$tms = time unless ($tms);
|
||||
my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($tms);
|
||||
$year += 1900;
|
||||
$mon++;
|
||||
$mon = "0" . $mon if ($mon < 10);
|
||||
$mday = "0" . $mday if ($mday < 10);
|
||||
$min = "0" . $min if ($min < 10);
|
||||
$sec = "0" . $sec if ($sec < 10);
|
||||
return ($sec,$min,$hour,$mday,$mon,$year);
|
||||
}
|
||||
|
||||
### End of subs
|
||||
@@ -3253,6 +3253,20 @@ allow_replies ENUM('Y','N') COLLATE utf8_unicode_ci DEFAULT 'N',
|
||||
PRIMARY KEY (manager_chat_id)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
CREATE TABLE vicidial_url_multi (
|
||||
url_id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
campaign_id VARCHAR(20) NOT NULL,
|
||||
entry_type ENUM('campaign','ingroup','list','') default '',
|
||||
active ENUM('Y','N') default 'N',
|
||||
url_type ENUM('dispo','start','addlead','noagent','') default '',
|
||||
url_rank SMALLINT(5) default '1',
|
||||
url_statuses VARCHAR(1000) default '',
|
||||
url_description VARCHAR(255) default '',
|
||||
url_address TEXT,
|
||||
PRIMARY KEY (url_id),
|
||||
KEY vicidial_url_multi_campaign_id_key (campaign_id)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
|
||||
ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
|
||||
|
||||
@@ -3502,4 +3516,4 @@ UPDATE vicidial_configuration set value='1766' where name='qc_database_version';
|
||||
|
||||
UPDATE system_settings set vdc_agent_api_active='1';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1418',db_schema_update_date=NOW(),reload_timestamp=NOW();
|
||||
UPDATE system_settings SET db_schema_version='1419',db_schema_update_date=NOW(),reload_timestamp=NOW();
|
||||
|
||||
@@ -186,3 +186,19 @@ ALTER TABLE vicidial_inbound_dids ADD max_queue_ingroup_id VARCHAR(20) default '
|
||||
ALTER TABLE vicidial_inbound_dids ADD max_queue_ingroup_extension VARCHAR(50) default '9998811112';
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1418',db_schema_update_date=NOW() where db_schema_version < 1418;
|
||||
|
||||
CREATE TABLE vicidial_url_multi (
|
||||
url_id INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
campaign_id VARCHAR(20) NOT NULL,
|
||||
entry_type ENUM('campaign','ingroup','list','') default '',
|
||||
active ENUM('Y','N') default 'N',
|
||||
url_type ENUM('dispo','start','addlead','noagent','') default '',
|
||||
url_rank SMALLINT(5) default '1',
|
||||
url_statuses VARCHAR(1000) default '',
|
||||
url_description VARCHAR(255) default '',
|
||||
url_address TEXT,
|
||||
PRIMARY KEY (url_id),
|
||||
KEY vicidial_url_multi_campaign_id_key (campaign_id)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
UPDATE system_settings SET db_schema_version='1419',db_schema_update_date=NOW() where db_schema_version < 1419;
|
||||
|
||||
@@ -382,10 +382,11 @@
|
||||
# 150609-1857 - Added list_description web url variable
|
||||
# 150701-1205 - Modified mysqli_error() to mysqli_connect_error() where appropriate
|
||||
# 150706-0903 - Added user lead filter option for no-hopper dialing
|
||||
# 150711-0815 - Changed to allow for multiple Dispo Call URLs
|
||||
#
|
||||
|
||||
$version = '2.12-277';
|
||||
$build = '150706-0903';
|
||||
$version = '2.12-278';
|
||||
$build = '150711-0815';
|
||||
$mel=1; # Mysql Error Log enabled = 1
|
||||
$mysql_log_count=616;
|
||||
$one_mysql_log=0;
|
||||
@@ -639,6 +640,8 @@ if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];}
|
||||
elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];}
|
||||
if (isset($_GET["manual_dial_search_filter"])) {$manual_dial_search_filter=$_GET["manual_dial_search_filter"];}
|
||||
elseif (isset($_POST["manual_dial_search_filter"])) {$manual_dial_search_filter=$_POST["manual_dial_search_filter"];}
|
||||
if (isset($_GET["url_ids"])) {$url_ids=$_GET["url_ids"];}
|
||||
elseif (isset($_POST["url_ids"])) {$url_ids=$_POST["url_ids"];}
|
||||
|
||||
|
||||
header ("Content-type: text/html; charset=utf-8");
|
||||
@@ -9407,7 +9410,7 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
else
|
||||
{
|
||||
$stmt = "SELECT dispo_call_url,queuemetrics_callstatus_override,comments_dispo_screen,comments_callback_screen from vicidial_campaigns vc,vicidial_live_agents vla where vla.campaign_id=vc.campaign_id and vla.user='$user';";
|
||||
$stmt = "SELECT dispo_call_url,queuemetrics_callstatus_override,comments_dispo_screen,comments_callback_screen,vc.campaign_id from vicidial_campaigns vc,vicidial_live_agents vla where vla.campaign_id=vc.campaign_id and vla.user='$user';";
|
||||
if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
@@ -9420,6 +9423,8 @@ if ($ACTION == 'updateDISPO')
|
||||
$queuemetrics_callstatus_override = $row[1];
|
||||
$comments_dispo_screen = $row[2];
|
||||
$comments_callback_screen = $row[3];
|
||||
$DUcampaign_id = $row[4];
|
||||
$DUentry_type = 'campaign';
|
||||
}
|
||||
|
||||
### reset the API fields in vicidial_live_agents record
|
||||
@@ -9506,6 +9511,8 @@ if ($ACTION == 'updateDISPO')
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$dispo_call_url = $row[0];
|
||||
$DUcampaign_id = $stage;
|
||||
$DUentry_type = 'ingroup';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -10516,15 +10523,96 @@ if ($ACTION == 'updateDISPO')
|
||||
mysqli_close($linkB);
|
||||
}
|
||||
|
||||
##### check if system is set to generate logfile for dispos
|
||||
$stmt="SELECT enable_agc_dispo_log FROM system_settings;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00311',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$enable_agc_dispo_log_ct = mysqli_num_rows($rslt);
|
||||
if ($enable_agc_dispo_log_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enable_agc_dispo_log =$row[0];
|
||||
}
|
||||
|
||||
if ( ($WeBRooTWritablE > 0) and ($enable_agc_dispo_log > 0) )
|
||||
{
|
||||
$talk_time = 0;
|
||||
$stmt = "SELECT talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00312',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$VAL_talk_ct = mysqli_num_rows($rslt);
|
||||
if ($VAL_talk_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$talk_sec = $row[0];
|
||||
$dead_sec = $row[1];
|
||||
$talk_time = ($talk_sec - $dead_sec);
|
||||
if ($talk_time < 1)
|
||||
{
|
||||
$talk_time = 0;
|
||||
}
|
||||
}
|
||||
|
||||
# DATETIME|campaign|lead_id|phone_number|user|type|Call_ID||province|talk_sec|
|
||||
# 2010-02-19 11:11:11|TESTCAMP|65432|3125551212|1234|D|Y09876543210987654||note|123|
|
||||
$fp = fopen ("./xfer_log.txt", "a");
|
||||
fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|D|$MDnextCID||$province|$talk_sec|\n");
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
# debug testing sleep
|
||||
# sleep(5);
|
||||
|
||||
echo _QXZ("Lead %1s has been changed to %2s Status",0,'',$lead_id,$dispo_choice)."\nNext agent_log_id:\n" . $agent_log_id . "\n";
|
||||
|
||||
|
||||
############################################
|
||||
### BEGIN Issue Dispo Call URL if defined
|
||||
############################################
|
||||
if (strlen($dispo_call_url) > 7)
|
||||
$dispo_call_url_count=0;
|
||||
$dispo_call_urlARY[0]='';
|
||||
$dispo_urls='';
|
||||
if ( (strlen($dispo_call_url) > 7) or ($dispo_call_url == 'ALT') )
|
||||
{
|
||||
if ($dispo_call_url == 'ALT')
|
||||
{
|
||||
$stmt="SELECT url_rank,url_statuses,url_address from vicidial_url_multi where campaign_id='$DUcampaign_id' and entry_type='$DUentry_type' and url_type='dispo' and active='Y' order by url_rank limit 1000;";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$VUM_ct = mysqli_num_rows($rslt);
|
||||
$k=0;
|
||||
while ($VUM_ct > $k)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$url_rank = $row[0];
|
||||
$url_statuses = " $row[1] ";
|
||||
$url_address = $row[2];
|
||||
|
||||
if ( (preg_match("/---ALL---/",$url_statuses)) or ( (strlen($url_statuses)>2) and (preg_match("/ $dispo_choice /",$url_statuses)) ) )
|
||||
{
|
||||
$dispo_call_urlARY[$dispo_call_url_count] = $url_address;
|
||||
$dispo_call_url_count++;
|
||||
}
|
||||
$k++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$dispo_call_urlARY[0] = $dispo_call_url;
|
||||
$dispo_call_url_count=1;
|
||||
}
|
||||
}
|
||||
### loop through each Dispo URL entry and process ###
|
||||
$j=0;
|
||||
while ($dispo_call_url_count > $j)
|
||||
{
|
||||
$talk_time=0;
|
||||
$talk_time_ms=0;
|
||||
$talk_time_min=0;
|
||||
if ( (preg_match('/--A--user_custom_/i',$dispo_call_url)) or (preg_match('/--A--fullname/i',$dispo_call_url)) or (preg_match('/--A--user_group/i',$dispo_call_url)) )
|
||||
if ( (preg_match('/--A--user_custom_/i',$dispo_call_urlARY[$j])) or (preg_match('/--A--fullname/i',$dispo_call_urlARY[$j])) or (preg_match('/--A--user_group/i',$dispo_call_urlARY[$j])) )
|
||||
{
|
||||
$stmt = "SELECT custom_one,custom_two,custom_three,custom_four,custom_five,full_name,user_group from vicidial_users where user='$user';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -10544,7 +10632,7 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/--A--talk_time/i',$dispo_call_url))
|
||||
if (preg_match('/--A--talk_time/i',$dispo_call_urlARY[$j]))
|
||||
{
|
||||
$stmt = "SELECT talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -10570,7 +10658,7 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/--A--dispo_name--B--/i',$dispo_call_url))
|
||||
if (preg_match('/--A--dispo_name--B--/i',$dispo_call_urlARY[$j]))
|
||||
{
|
||||
### find the full status name for this status
|
||||
$stmt = "SELECT status_name from vicidial_statuses where status='$dispo_choice';";
|
||||
@@ -10600,7 +10688,7 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
$dispo_name = urlencode(trim($status_name));
|
||||
|
||||
if (preg_match('/--A--call_notes/i',$dispo_call_url))
|
||||
if (preg_match('/--A--call_notes/i',$dispo_call_urlARY[$j]))
|
||||
{
|
||||
if (strlen($call_notes) > 1)
|
||||
{$url_call_notes = urlencode(trim($call_notes));}
|
||||
@@ -10608,7 +10696,7 @@ if ($ACTION == 'updateDISPO')
|
||||
{$url_call_notes = urlencode(" ");}
|
||||
}
|
||||
|
||||
if (preg_match('/--A--dialed_/i',$dispo_call_url))
|
||||
if (preg_match('/--A--dialed_/i',$dispo_call_urlARY[$j]))
|
||||
{
|
||||
$dialed_number = $phone_number;
|
||||
$dialed_label = 'NONE';
|
||||
@@ -10630,7 +10718,7 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/--A--did_/i',$dispo_call_url))
|
||||
if (preg_match('/--A--did_/i',$dispo_call_urlARY[$j]))
|
||||
{
|
||||
$DID_id='';
|
||||
$DID_extension='';
|
||||
@@ -10662,7 +10750,7 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
}
|
||||
|
||||
if ((preg_match('/callid--B--/i',$dispo_call_url)) or (preg_match('/group--B--/i',$dispo_call_url)))
|
||||
if ((preg_match('/callid--B--/i',$dispo_call_urlARY[$j])) or (preg_match('/group--B--/i',$dispo_call_urlARY[$j])))
|
||||
{
|
||||
$INclosecallid='';
|
||||
$INxfercallid='';
|
||||
@@ -10723,7 +10811,7 @@ if ($ACTION == 'updateDISPO')
|
||||
$entry_list_id = urlencode(trim($row[34]));
|
||||
}
|
||||
|
||||
if (preg_match('/list_name--B--|list_description--B--/i',$dispo_call_url))
|
||||
if (preg_match('/list_name--B--|list_description--B--/i',$dispo_call_urlARY[$j]))
|
||||
{
|
||||
$stmt = "SELECT list_name,list_description from vicidial_lists where list_id='$list_id' limit 1;";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -10738,85 +10826,85 @@ if ($ACTION == 'updateDISPO')
|
||||
}
|
||||
}
|
||||
|
||||
$dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--lead_id--B--/i',"$lead_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--vendor_id--B--/i',"$vendor_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--vendor_lead_code--B--/i',"$vendor_lead_code",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--list_id--B--/i',"$list_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--list_name--B--/i',"$list_name",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--list_description--B--/i',"$list_description",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--gmt_offset_now--B--/i',"$gmt_offset_now",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--phone_code--B--/i',"$phone_code",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--phone_number--B--/i',"$phone_number",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--title--B--/i',"$title",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--first_name--B--/i',"$first_name",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--middle_initial--B--/i',"$middle_initial",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--last_name--B--/i',"$last_name",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--address1--B--/i',"$address1",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--address2--B--/i',"$address2",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--address3--B--/i',"$address3",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--city--B--/i',"$city",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--state--B--/i',"$state",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--province--B--/i',"$province",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--postal_code--B--/i',"$postal_code",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--country_code--B--/i',"$country_code",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--gender--B--/i',"$gender",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--date_of_birth--B--/i',"$date_of_birth",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--alt_phone--B--/i',"$alt_phone",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--email--B--/i',"$email",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--security_phrase--B--/i',"$security_phrase",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--comments--B--/i',"$comments",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user--B--/i',"$user",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--pass--B--/i',"$orig_pass",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--campaign--B--/i',"$campaign",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--phone_login--B--/i',"$phone_login",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--original_phone_login--B--/i',"$original_phone_login",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--phone_pass--B--/i',"$phone_pass",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--fronter--B--/i',"$fronter",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--closer--B--/i',"$user",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--group--B--/i',"$VDADchannel_group",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--channel_group--B--/i',"$VDADchannel_group",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--SQLdate--B--/i',"$SQLdate",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--epoch--B--/i',"$epoch",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--uniqueid--B--/i',"$uniqueid",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--customer_zap_channel--B--/i',"$customer_zap_channel",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--customer_server_ip--B--/i',"$customer_server_ip",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--server_ip--B--/i',"$server_ip",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--SIPexten--B--/i',"$SIPexten",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--session_id--B--/i',"$session_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--phone--B--/i',"$phone",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--parked_by--B--/i',"$parked_by",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--dispo--B--/i',"$dispo",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--dispo_name--B--/i',"$dispo_name",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--dialed_number--B--/i',"$dialed_number",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--dialed_label--B--/i',"$dialed_label",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--source_id--B--/i',"$source_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--rank--B--/i',"$rank",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--owner--B--/i',"$owner",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--camp_script--B--/i',"$camp_script",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--in_script--B--/i',"$in_script",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--fullname--B--/i',"$fullname",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user_custom_one--B--/i',"$user_custom_one",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user_custom_two--B--/i',"$user_custom_two",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user_custom_three--B--/i',"$user_custom_three",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user_custom_four--B--/i',"$user_custom_four",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user_custom_five--B--/i',"$user_custom_five",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--talk_time--B--/i',"$talk_time",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--talk_time_ms--B--/i',"$talk_time_ms",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--talk_time_min--B--/i',"$talk_time_min",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--agent_log_id--B--/i',"$CALL_agent_log_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--entry_list_id--B--/i',"$entry_list_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--did_id--B--/i',urlencode(trim($DID_id)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--did_extension--B--/i',urlencode(trim($DID_extension)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--did_pattern--B--/i',urlencode(trim($DID_pattern)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--did_description--B--/i',urlencode(trim($DID_description)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--closecallid--B--/i',urlencode(trim($INclosecallid)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--xfercallid--B--/i',urlencode(trim($INxfercallid)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--call_id--B--/i',urlencode(trim($MDnextCID)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--user_group--B--/i',urlencode(trim($user_group)),$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--call_notes--B--/i',"$url_call_notes",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--recording_id--B--/i',"$recording_id",$dispo_call_url);
|
||||
$dispo_call_url = preg_replace('/--A--recording_filename--B--/i',"$recording_filename",$dispo_call_url);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/^VAR/','',$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--lead_id--B--/i',"$lead_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--vendor_id--B--/i',"$vendor_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--vendor_lead_code--B--/i',"$vendor_lead_code",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--list_id--B--/i',"$list_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--list_name--B--/i',"$list_name",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--list_description--B--/i',"$list_description",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--gmt_offset_now--B--/i',"$gmt_offset_now",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--phone_code--B--/i',"$phone_code",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--phone_number--B--/i',"$phone_number",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--title--B--/i',"$title",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--first_name--B--/i',"$first_name",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--middle_initial--B--/i',"$middle_initial",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--last_name--B--/i',"$last_name",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--address1--B--/i',"$address1",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--address2--B--/i',"$address2",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--address3--B--/i',"$address3",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--city--B--/i',"$city",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--state--B--/i',"$state",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--province--B--/i',"$province",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--postal_code--B--/i',"$postal_code",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--country_code--B--/i',"$country_code",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--gender--B--/i',"$gender",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--date_of_birth--B--/i',"$date_of_birth",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--alt_phone--B--/i',"$alt_phone",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--email--B--/i',"$email",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--security_phrase--B--/i',"$security_phrase",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--comments--B--/i',"$comments",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user--B--/i',"$user",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--pass--B--/i',"$orig_pass",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--campaign--B--/i',"$campaign",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--phone_login--B--/i',"$phone_login",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--original_phone_login--B--/i',"$original_phone_login",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--phone_pass--B--/i',"$phone_pass",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--fronter--B--/i',"$fronter",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--closer--B--/i',"$user",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--group--B--/i',"$VDADchannel_group",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--channel_group--B--/i',"$VDADchannel_group",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--SQLdate--B--/i',"$SQLdate",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--epoch--B--/i',"$epoch",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--uniqueid--B--/i',"$uniqueid",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--customer_zap_channel--B--/i',"$customer_zap_channel",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--customer_server_ip--B--/i',"$customer_server_ip",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--server_ip--B--/i',"$server_ip",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--SIPexten--B--/i',"$SIPexten",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--session_id--B--/i',"$session_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--phone--B--/i',"$phone",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--parked_by--B--/i',"$parked_by",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--dispo--B--/i',"$dispo",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--dispo_name--B--/i',"$dispo_name",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--dialed_number--B--/i',"$dialed_number",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--dialed_label--B--/i',"$dialed_label",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--source_id--B--/i',"$source_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--rank--B--/i',"$rank",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--owner--B--/i',"$owner",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--camp_script--B--/i',"$camp_script",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--in_script--B--/i',"$in_script",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--fullname--B--/i',"$fullname",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user_custom_one--B--/i',"$user_custom_one",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user_custom_two--B--/i',"$user_custom_two",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user_custom_three--B--/i',"$user_custom_three",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user_custom_four--B--/i',"$user_custom_four",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user_custom_five--B--/i',"$user_custom_five",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--talk_time--B--/i',"$talk_time",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--talk_time_ms--B--/i',"$talk_time_ms",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--talk_time_min--B--/i',"$talk_time_min",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--agent_log_id--B--/i',"$CALL_agent_log_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--entry_list_id--B--/i',"$entry_list_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--did_id--B--/i',urlencode(trim($DID_id)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--did_extension--B--/i',urlencode(trim($DID_extension)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--did_pattern--B--/i',urlencode(trim($DID_pattern)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--did_description--B--/i',urlencode(trim($DID_description)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--closecallid--B--/i',urlencode(trim($INclosecallid)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--xfercallid--B--/i',urlencode(trim($INxfercallid)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--call_id--B--/i',urlencode(trim($MDnextCID)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--user_group--B--/i',urlencode(trim($user_group)),$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--call_notes--B--/i',"$url_call_notes",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--recording_id--B--/i',"$recording_id",$dispo_call_urlARY[$j]);
|
||||
$dispo_call_urlARY[$j] = preg_replace('/--A--recording_filename--B--/i',"$recording_filename",$dispo_call_urlARY[$j]);
|
||||
|
||||
if (strlen($FORMcustom_field_names)>2)
|
||||
{
|
||||
@@ -10841,7 +10929,7 @@ if ($ACTION == 'updateDISPO')
|
||||
$form_field_value = urlencode(trim("$row[$o]"));
|
||||
$field_name_id = $custom_field_names_ARY[$o];
|
||||
$field_name_tag = "--A--" . $field_name_id . "--B--";
|
||||
$dispo_call_url = preg_replace("/$field_name_tag/i","$form_field_value",$dispo_call_url);
|
||||
$dispo_call_urlARY[$j] = preg_replace("/$field_name_tag/i","$form_field_value",$dispo_call_urlARY[$j]);
|
||||
$o++;
|
||||
}
|
||||
}
|
||||
@@ -10854,10 +10942,7 @@ if ($ACTION == 'updateDISPO')
|
||||
$vle_update = mysqli_affected_rows($link);
|
||||
|
||||
### insert a new url log entry
|
||||
$SQL_log = "$dispo_call_url";
|
||||
$SQL_log = preg_replace('/;/','',$SQL_log);
|
||||
$SQL_log = addslashes($SQL_log);
|
||||
$stmt = "INSERT INTO vicidial_url_log SET uniqueid='$uniqueid',url_date='$NOW_TIME',url_type='dispo',url='$SQL_log',url_response='';";
|
||||
$stmt = "INSERT INTO vicidial_url_log SET uniqueid='$uniqueid',url_date=NOW(),url_type='dispo',url='" . mysqli_real_escape_string($link, $dispo_call_urlARY[$j]) . "',url_response='';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00424',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
@@ -10867,8 +10952,14 @@ if ($ACTION == 'updateDISPO')
|
||||
$URLstart_sec = date("U");
|
||||
|
||||
### send dispo_call_url ###
|
||||
if ($DB > 0) {echo "$dispo_call_url<BR>\n";}
|
||||
$SCUfile = file("$dispo_call_url");
|
||||
if ($DB > 0) {echo "$dispo_call_urlARY[$j]<BR>\n";}
|
||||
|
||||
$dispo_urls .= "$url_id|";
|
||||
|
||||
# exec("./AST_send_URLbasic.pl --url_id=$url_id &");
|
||||
|
||||
/*
|
||||
$SCUfile = file("$dispo_call_urlARY[$j]");
|
||||
if ( !($SCUfile) )
|
||||
{
|
||||
$error_array = error_get_last();
|
||||
@@ -10898,7 +10989,7 @@ if ($ACTION == 'updateDISPO')
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00425',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$affected_rows = mysqli_affected_rows($link);
|
||||
|
||||
*/
|
||||
|
||||
$stmt = "SELECT enable_vtiger_integration FROM system_settings;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
@@ -10909,18 +11000,18 @@ if ($ACTION == 'updateDISPO')
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enable_vtiger_integration = $row[0];
|
||||
}
|
||||
if ( ($enable_vtiger_integration > 0) and (preg_match('/mode=callend/',$dispo_call_url)) and (preg_match('/contactwsid/',$dispo_call_url)) )
|
||||
if ( ($enable_vtiger_integration > 0) and (preg_match('/mode=callend/',$dispo_call_urlARY[$j])) and (preg_match('/contactwsid/',$dispo_call_urlARY[$j])) )
|
||||
{
|
||||
$SCUoutput='';
|
||||
foreach ($SCUfile as $SCUline)
|
||||
{$SCUoutput .= "$SCUline";}
|
||||
$fp = fopen ("./call_url_log.txt", "a");
|
||||
fwrite ($fp, "$dispo_call_url\n$SCUoutput\n");
|
||||
fwrite ($fp, "$dispo_call_urlARY[$j]\n$SCUoutput\n");
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
### add this to the Dispo URL for callcard calls to be logged "&callcard=--A--talk_time_min--B--"
|
||||
if (preg_match("/callcard/",$dispo_call_url))
|
||||
if (preg_match("/callcard/",$dispo_call_urlARY[$j]))
|
||||
{
|
||||
$stmt="SELECT balance_minutes_start,card_id FROM callcard_log where uniqueid='$uniqueid' order by call_time desc LIMIT 1;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
@@ -10928,7 +11019,7 @@ if ($ACTION == 'updateDISPO')
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$bms_ct = mysqli_num_rows($rslt);
|
||||
$fp = fopen ("./call_url_log.txt", "a");
|
||||
fwrite ($fp, "$dispo_call_url\n$stmt|$bms_ct\n");
|
||||
fwrite ($fp, "$dispo_call_urlARY[$j]\n$stmt|$bms_ct\n");
|
||||
fclose($fp);
|
||||
|
||||
if ($bms_ct > 0)
|
||||
@@ -10958,57 +11049,89 @@ if ($ACTION == 'updateDISPO')
|
||||
$ccad_update = mysqli_affected_rows($link);
|
||||
}
|
||||
}
|
||||
$j++;
|
||||
}
|
||||
echo "Dispo URLs:\n$dispo_urls\n";
|
||||
############################################
|
||||
### END Issue Dispo Call URL if defined
|
||||
############################################
|
||||
|
||||
|
||||
##### check if system is set to generate logfile for dispos
|
||||
$stmt="SELECT enable_agc_dispo_log FROM system_settings;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00311',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$enable_agc_dispo_log_ct = mysqli_num_rows($rslt);
|
||||
if ($enable_agc_dispo_log_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enable_agc_dispo_log =$row[0];
|
||||
}
|
||||
|
||||
if ( ($WeBRooTWritablE > 0) and ($enable_agc_dispo_log > 0) )
|
||||
{
|
||||
$talk_time = 0;
|
||||
$stmt = "SELECT talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00312',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$VAL_talk_ct = mysqli_num_rows($rslt);
|
||||
if ($VAL_talk_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$talk_sec = $row[0];
|
||||
$dead_sec = $row[1];
|
||||
$talk_time = ($talk_sec - $dead_sec);
|
||||
if ($talk_time < 1)
|
||||
{
|
||||
$talk_time = 0;
|
||||
}
|
||||
}
|
||||
|
||||
# DATETIME|campaign|lead_id|phone_number|user|type|Call_ID||province|talk_sec|
|
||||
# 2010-02-19 11:11:11|TESTCAMP|65432|3125551212|1234|D|Y09876543210987654||note|123|
|
||||
$fp = fopen ("./xfer_log.txt", "a");
|
||||
fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|D|$MDnextCID||$province|$talk_sec|\n");
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
# debug testing sleep
|
||||
# sleep(5);
|
||||
|
||||
echo _QXZ("Lead %1s has been changed to %2s Status",0,'',$lead_id,$dispo_choice)."\nNext agent_log_id:\n" . $agent_log_id . "\n";
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
### RUNurls - update the vicidial_list table to reflect the values that are
|
||||
### in the agents screen at time of call hangup
|
||||
################################################################################
|
||||
if ($ACTION == 'RUNurls')
|
||||
{
|
||||
$MT[0]='';
|
||||
$row=''; $rowx='';
|
||||
if (strlen($url_ids) < 2)
|
||||
{
|
||||
echo _QXZ("URL IDs are is not valid",0,'',$url_ids)."\n";
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$urls_split = explode('|',$url_ids);
|
||||
$urls_split_ct = count($urls_split);
|
||||
$k=0;
|
||||
while ($k < $urls_split_ct)
|
||||
{
|
||||
if (strlen($urls_split[$k]) > 0)
|
||||
{
|
||||
$stmt="SELECT url FROM vicidial_url_log where url_log_id='$urls_split[$k]';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$urlid_ct = mysqli_num_rows($rslt);
|
||||
if ($urlid_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$url = $row[0];
|
||||
|
||||
$URLstart_sec = date("U");
|
||||
|
||||
$SCUfile = file("$url");
|
||||
if ( !($SCUfile) )
|
||||
{
|
||||
$error_array = error_get_last();
|
||||
$error_type = $error_array["type"];
|
||||
$error_message = $error_array["message"];
|
||||
$error_line = $error_array["line"];
|
||||
$error_file = $error_array["file"];
|
||||
}
|
||||
|
||||
if ($DB > 0) {echo "$SCUfile[0]<BR>\n";}
|
||||
|
||||
### update url log entry
|
||||
$URLend_sec = date("U");
|
||||
$URLdiff_sec = ($URLend_sec - $URLstart_sec);
|
||||
if ($SCUfile)
|
||||
{
|
||||
$SCUfile_contents = implode("", $SCUfile);
|
||||
$SCUfile_contents = ereg_replace(';','',$SCUfile_contents);
|
||||
$SCUfile_contents = addslashes($SCUfile_contents);
|
||||
}
|
||||
else
|
||||
{
|
||||
$SCUfile_contents = "PHP ERROR: Type=$error_type - Message=$error_message - Line=$error_line - File=$error_file";
|
||||
}
|
||||
$stmt = "UPDATE vicidial_url_log SET response_sec='$URLdiff_sec',url_response='" . date("r") . "|$SCUfile_contents' where url_log_id='$urls_split[$k]';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00425',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$affected_rows = mysqli_affected_rows($link);
|
||||
|
||||
echo "URL sent: $k|$urls_split[$k]|$affected_rows|$URLdiff_sec\n";
|
||||
}
|
||||
}
|
||||
$k++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
### updateLEAD - update the vicidial_list table to reflect the values that are
|
||||
### in the agents screen at time of call hangup
|
||||
|
||||
@@ -491,11 +491,12 @@
|
||||
# 150609-1917 - Added list_description web url variable
|
||||
# 150610-0940 - Added customer_gone_seconds campaign option
|
||||
# 150701-1211 - Modified mysqli_error() to mysqli_connect_error() where appropriate
|
||||
# 150704-0005 - Change disposubmit to be blocking before resume, Issue #863
|
||||
# 150704-0005 - Changed disposubmit to be blocking before resume, Issue #863
|
||||
# 150712-2045 - Changed dispo call url to operate through a separate AJAX process
|
||||
#
|
||||
|
||||
$version = '2.12-464c';
|
||||
$build = '150704-0005';
|
||||
$version = '2.12-465c';
|
||||
$build = '150712-2045';
|
||||
$mel=1; # Mysql Error Log enabled = 1
|
||||
$mysql_log_count=85;
|
||||
$one_mysql_log=0;
|
||||
@@ -11234,6 +11235,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
|
||||
waiting_on_dispo=1;
|
||||
var VDDCU_recording_id=document.getElementById("RecorDID").innerHTML;
|
||||
var VDDCU_recording_filename=last_recording_filename;
|
||||
var dispo_urls='';
|
||||
document.getElementById("callchannel").innerHTML = '';
|
||||
document.vicidial_form.callserverip.value = '';
|
||||
document.vicidial_form.xferchannel.value = '';
|
||||
@@ -11319,17 +11321,23 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
|
||||
|
||||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
|
||||
{
|
||||
// alert(xmlhttp.responseText);
|
||||
// alert(xmlhttp.responseText);
|
||||
var check_dispo = null;
|
||||
check_dispo = xmlhttp.responseText;
|
||||
var check_DS_array=check_dispo.split("\n");
|
||||
if (auto_dial_level < 1)
|
||||
{
|
||||
var check_dispo = null;
|
||||
check_dispo = xmlhttp.responseText;
|
||||
var check_DS_array=check_dispo.split("\n");
|
||||
if (check_DS_array[1] == 'Next agent_log_id:')
|
||||
{
|
||||
agent_log_id = check_DS_array[2];
|
||||
}
|
||||
}
|
||||
if (check_DS_array[3] == 'Dispo URLs:')
|
||||
{
|
||||
dispo_urls = check_DS_array[4];
|
||||
|
||||
SendURLs(dispo_urls,"dispo");
|
||||
}
|
||||
waiting_on_dispo=0;
|
||||
}
|
||||
}
|
||||
@@ -11589,6 +11597,50 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
|
||||
}
|
||||
|
||||
|
||||
// ################################################################################
|
||||
// Submit the URLs
|
||||
function SendURLs(newurlids,newurltype)
|
||||
{
|
||||
// Send AJAX call to run the defined url_ids for dispo_call_url
|
||||
var xmlhttp=false;
|
||||
/*@cc_on @*/
|
||||
/*@if (@_jscript_version >= 5)
|
||||
// JScript gives us Conditional compilation, we can cope with old IE versions.
|
||||
// and security blocked creation of the objects.
|
||||
try {
|
||||
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
|
||||
} catch (e) {
|
||||
try {
|
||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||
} catch (E) {
|
||||
xmlhttp = false;
|
||||
}
|
||||
}
|
||||
@end @*/
|
||||
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
|
||||
{
|
||||
xmlhttp = new XMLHttpRequest();
|
||||
}
|
||||
if (xmlhttp)
|
||||
{
|
||||
DUsend_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=RUNurls&format=text&user=" + user + "&pass=" + pass + "&orig_pass=" + orig_pass + "&url_ids=" + newurlids + "&campaign=" + campaign + "&auto_dial_level=" + auto_dial_level + "&stage=dispo";
|
||||
xmlhttp.open('POST', 'vdc_db_query.php');
|
||||
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
|
||||
xmlhttp.send(DUsend_query);
|
||||
xmlhttp.onreadystatechange = function()
|
||||
{
|
||||
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
|
||||
{
|
||||
// alert(DUsend_query + "\n" + xmlhttp.responseText);
|
||||
var dispo_url_send_response = null;
|
||||
dispo_url_send_response = xmlhttp.responseText;
|
||||
}
|
||||
}
|
||||
delete xmlhttp;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ################################################################################
|
||||
// Submit the Pause Code
|
||||
function PauseCodeSelect_submit(newpausecode)
|
||||
|
||||
@@ -3526,12 +3526,13 @@ else
|
||||
# 150703-2105 - Fixed field sizes in Issues #867 and #868
|
||||
# 150706-0811 - Added user setting for lead_filter_id in no-hopper dialing
|
||||
# 150708-2246 - Added max_queue_ingroup_ DID settings options
|
||||
# 150710-1120 - Added options for alternate Dispo Call URLs
|
||||
#
|
||||
|
||||
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time
|
||||
|
||||
$admin_version = '2.12-495a';
|
||||
$build = '150708-2246';
|
||||
$admin_version = '2.12-496a';
|
||||
$build = '150710-1120';
|
||||
|
||||
$STARTtime = date("U");
|
||||
$SQLdate = date("Y-m-d H:i:s");
|
||||
@@ -19834,7 +19835,23 @@ if ($ADD==31)
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Start Call URL").": </td><td align=left><input type=text name=start_call_url size=70 maxlength=2000 value=\"$start_call_url\">$NWB#campaigns-start_call_url$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Call URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#campaigns-dispo_call_url$NWE</td></tr>\n";
|
||||
if ($dispo_call_url == 'ALT')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_url_multi where campaign_id='$campaign_id' and entry_type='campaign' and url_type='dispo';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vum_to_print = mysqli_num_rows($rslt);
|
||||
if ($vum_to_print > 0)
|
||||
{
|
||||
$rowx=mysqli_fetch_row($rslt);
|
||||
$vum_count = $rowx[0];
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right><a href=\"admin_url_multi.php?DB=$DB&campaign_id=$campaign_id&entry_type=campaign&url_type=dispo\">"._QXZ("Dispo Call URL")."</a>: </td><td align=left><input type=text name=dispo_call_url size=10 maxlength=2000 value=\"$dispo_call_url\">$NWB#campaigns-dispo_call_url$NWE <a href=\"admin_url_multi.php?DB=$DB&campaign_id=$campaign_id&entry_type=campaign&url_type=dispo\"> "._QXZ("Alternate Dispo URLs Defined").": $vum_count</a></td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Call URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#campaigns-dispo_call_url$NWE</td></tr>\n";
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("No Agent Call URL").": </td><td align=left><input type=text name=na_call_url size=70 maxlength=2000 value=\"$na_call_url\">$NWB#campaigns-na_call_url$NWE</td></tr>\n";
|
||||
|
||||
@@ -23961,7 +23978,23 @@ if ($ADD==3111)
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Start Call URL").": </td><td align=left><input type=text name=start_call_url size=70 maxlength=2000 value=\"$start_call_url\">$NWB#inbound_groups-start_call_url$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Call URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_call_url$NWE</td></tr>\n";
|
||||
if ($dispo_call_url == 'ALT')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_url_multi where campaign_id='$group_id' and entry_type='ingroup' and url_type='dispo';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vum_to_print = mysqli_num_rows($rslt);
|
||||
if ($vum_to_print > 0)
|
||||
{
|
||||
$rowx=mysqli_fetch_row($rslt);
|
||||
$vum_count = $rowx[0];
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right><a href=\"admin_url_multi.php?DB=$DB&campaign_id=$group_id&entry_type=ingroup&url_type=dispo\">"._QXZ("Dispo Call URL")."</a>: </td><td align=left><input type=text name=dispo_call_url size=10 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_call_url$NWE <a href=\"admin_url_multi.php?DB=$DB&campaign_id=$group_id&entry_type=ingroup&url_type=dispo\"> "._QXZ("Alternate Dispo URLs Defined").": $vum_count</a></td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Call URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_call_url$NWE</td></tr>\n";
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Add Lead URL").": </td><td align=left><input type=text name=add_lead_url size=70 maxlength=2000 value=\"$add_lead_url\">$NWB#inbound_groups-add_lead_url$NWE</td></tr>\n";
|
||||
|
||||
@@ -24708,7 +24741,23 @@ if ($ADD==3811)
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Start Email URL").": </td><td align=left><input type=text name=start_call_url size=70 maxlength=2000 value=\"$start_call_url\">$NWB#inbound_groups-start_email_url$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Email URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_email_url$NWE</td></tr>\n";
|
||||
if ($dispo_call_url == 'ALT')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_url_multi where campaign_id='$group_id' and entry_type='ingroup' and url_type='dispo';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vum_to_print = mysqli_num_rows($rslt);
|
||||
if ($vum_to_print > 0)
|
||||
{
|
||||
$rowx=mysqli_fetch_row($rslt);
|
||||
$vum_count = $rowx[0];
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right><a href=\"admin_url_multi.php?DB=$DB&campaign_id=$group_id&entry_type=ingroup&url_type=dispo\">"._QXZ("Dispo Email URL")."</a>: </td><td align=left><input type=text name=dispo_call_url size=10 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_call_url$NWE <a href=\"admin_url_multi.php?DB=$DB&campaign_id=$group_id&entry_type=ingroup&url_type=dispo\"> "._QXZ("Alternate Dispo URLs Defined").": $vum_count</a></td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Email URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_email_url$NWE</td></tr>\n";
|
||||
}
|
||||
|
||||
# echo "<tr bgcolor=#B6D3FC><td align=right>Add Lead URL: </td><td align=left><input type=text name=add_lead_url size=70 maxlength=2000 value=\"$add_lead_url\">$NWB#inbound_groups-add_lead_url$NWE</td></tr>\n";
|
||||
|
||||
@@ -25443,11 +25492,27 @@ if ($ADD==3911)
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Start Chat URL").": </td><td align=left><input type=text name=start_call_url size=70 maxlength=2000 value=\"$start_call_url\">$NWB#inbound_groups-start_chat_url$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Chat URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_chat_url$NWE</td></tr>\n";
|
||||
if ($dispo_call_url == 'ALT')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_url_multi where campaign_id='$group_id' and entry_type='ingroup' and url_type='dispo';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vum_to_print = mysqli_num_rows($rslt);
|
||||
if ($vum_to_print > 0)
|
||||
{
|
||||
$rowx=mysqli_fetch_row($rslt);
|
||||
$vum_count = $rowx[0];
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right><a href=\"admin_url_multi.php?DB=$DB&campaign_id=$group_id&entry_type=ingroup&url_type=dispo\">"._QXZ("Dispo Chat URL")."</a>: </td><td align=left><input type=text name=dispo_call_url size=10 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_call_url$NWE <a href=\"admin_url_multi.php?DB=$DB&campaign_id=$group_id&entry_type=ingroup&url_type=dispo\"> "._QXZ("Alternate Dispo URLs Defined").": $vum_count</a></td></tr>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Dispo Chat URL").": </td><td align=left><input type=text name=dispo_call_url size=70 maxlength=2000 value=\"$dispo_call_url\">$NWB#inbound_groups-dispo_chat_url$NWE</td></tr>\n";
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("No Agent Chat URL").": </td><td align=left><input type=text name=na_call_url size=70 maxlength=2000 value=\"$na_call_url\">$NWB#inbound_groups-na_chat_url$NWE</td></tr>\n";
|
||||
/*
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>Extension Append CID: </td><td align=left><select size=1 name=extension_appended_cidname><option>Y</option><option>N</option><option SELECTED>$extension_appended_cidname</option></select>$NWB#inbound_groups-extension_appended_cidname$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>Extension Append CID: </td><td align=left><select size=1 name=extension_appended_cidname><option>"._QXZ("Y")."</option><option>N</option><option SELECTED>$extension_appended_cidname</option></select>$NWB#inbound_groups-extension_appended_cidname$NWE</td></tr>\n";
|
||||
*/
|
||||
echo "<tr bgcolor=#B6D3FC><td align=right>"._QXZ("Uniqueid Status Display").": </td><td align=left><select size=1 name=uniqueid_status_display><option value='DISABLED'>"._QXZ("DISABLED")."</option><option value='ENABLED'>"._QXZ("ENABLED")."</option><option value='ENABLED_PREFIX'>"._QXZ("ENABLED_PREFIX")."</option><option value='ENABLED_PRESERVE'>"._QXZ("ENABLED_PRESERVE")."</option><option SELECTED value='$uniqueid_status_display'>"._QXZ("$uniqueid_status_display")."</option></select>$NWB#inbound_groups-uniqueid_status_display$NWE</td></tr>\n";
|
||||
|
||||
@@ -26080,7 +26145,7 @@ if ($ADD==3311)
|
||||
$i++;
|
||||
}
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>"._QXZ("No-Agent In-Group Redirect").": </td><td align=left><select size=1 name=no_agent_ingroup_redirect><option value=\"DISABLED\">DISABLED</option><option value=\"Y\">Y</option><option value=\"NO_PAUSED\">NO_PAUSED</option><option value=\"READY_ONLY\">READY_ONLY</option><option SELECTED>$no_agent_ingroup_redirect</option></select>$NWB#inbound_dids-no_agent_ingroup_redirect$NWE</td></tr>\n";
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right>"._QXZ("No-Agent In-Group Redirect").": </td><td align=left><select size=1 name=no_agent_ingroup_redirect><option value=\"DISABLED\">DISABLED</option><option value=\"Y\">"._QXZ("Y")."</option><option value=\"NO_PAUSED\">NO_PAUSED</option><option value=\"READY_ONLY\">READY_ONLY</option><option SELECTED>$no_agent_ingroup_redirect</option></select>$NWB#inbound_dids-no_agent_ingroup_redirect$NWE</td></tr>\n";
|
||||
|
||||
echo "<tr bgcolor=#CCFFFF><td align=right><a href=\"$PHP_SELF?ADD=3111&group_id=$no_agent_ingroup_id\">"._QXZ("No-Agent In-Group ID")."</a>: </td><td align=left><select size=1 name=no_agent_ingroup_id>";
|
||||
echo "$PFDgroups_menu";
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
# 150609-1231 - Added new agent screen status display option entries
|
||||
# 150610-0938 - Added campaigns-customer_gone_seconds
|
||||
# 150708-2238 - Added max_queue_ingroup_ options
|
||||
# 150710-1124 - Added explanation of new ALT URL feature and alt_multi_urls
|
||||
#
|
||||
|
||||
require("dbconnect_mysqli.php");
|
||||
@@ -1801,7 +1802,7 @@ if ($SSqc_features_active > 0)
|
||||
<BR>
|
||||
<A NAME="campaigns-dispo_call_url">
|
||||
<BR>
|
||||
<B><?php echo _QXZ("Dispo Call URL"); ?> -</B><?php echo _QXZ("This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank."); ?>
|
||||
<B><?php echo _QXZ("Dispo Call URL"); ?> -</B><?php echo _QXZ("This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank.") . " " . _QXZ("If you put ALT into this field and submit this form, you will be able to go to a separate page where you can define multiple URLs for this action as well as specific statuses that will trigger them."); ?>
|
||||
|
||||
<BR>
|
||||
<A NAME="campaigns-na_call_url">
|
||||
@@ -2591,7 +2592,7 @@ if ($SSqc_features_active > 0)
|
||||
<BR>
|
||||
<A NAME="inbound_groups-dispo_call_url">
|
||||
<BR>
|
||||
<B><?php echo _QXZ("Dispo Call URL"); ?> -</B><?php echo _QXZ("This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank."); ?>
|
||||
<B><?php echo _QXZ("Dispo Call URL"); ?> -</B><?php echo _QXZ("This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank.") . " " . _QXZ("If you put ALT into this field and submit this form, you will be able to go to a separate page where you can define multiple URLs for this action as well as specific statuses that will trigger them."); ?>
|
||||
|
||||
<BR>
|
||||
<A NAME="inbound_groups-add_lead_url">
|
||||
@@ -5409,6 +5410,17 @@ if ($SSqc_features_active > 0)
|
||||
<BR>
|
||||
<B><?php echo _QXZ("New Status"); ?> -</B><?php echo _QXZ("The new vicidial_list status the selected callbacks will be updated to. This affects the vicidial_list table ONLY."); ?>
|
||||
|
||||
|
||||
|
||||
<BR><BR><BR><BR>
|
||||
<A NAME="alt_multi_urls">
|
||||
<B><FONT SIZE=3><?php echo _QXZ("Alternate Multi URLs"); ?></FONT></B><BR><BR>
|
||||
|
||||
<?php echo _QXZ("This page allows you to define Alternate URLs with conditions in place of the simple URL option for Dispo, Start, Add Lead or No Agent URLs. The RANK field will define the order in which the URLs are requested, this is important because if you have a URL that may take a few seconds to run ranked as 1, that will mean that any URLs ranked after it will have to wait to be run until that first URL request receives a response. The ACTIVE field will determine whether the specific URL is run. The STATUSES field only works for the Dispo URLs and will determine which disposition statuses will trigger the URL being run, if you want to run the entry for all statuses just fill in ---ALL--- in this field. The URL field works the same as it would in the URL option in campaigns, in-groups and lists, and it is also limited to 2000 characters in length. If you want to delete a URL, it must first be set to not active, then you can click on the DELETE link below the SUBMIT button for that URL entry."); ?>
|
||||
|
||||
|
||||
|
||||
|
||||
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
|
||||
</TD></TR></TABLE></BODY></HTML>
|
||||
<?php
|
||||
|
||||
Reference in New Issue
Block a user