diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE
index d6586c42..09457dba 100644
--- a/agc_2-X/trunk/UPGRADE
+++ b/agc_2-X/trunk/UPGRADE
@@ -97,6 +97,9 @@ OTHER CHANGES:
set number of seconds in queue that either match or do not match a list
of areacodes defined per in-group.
+15. Added new DNC options to Manual Dial Filter campaign feature that are not
+ tied to the campaign DNC settings.
+
diff --git a/agc_2-X/trunk/www/agc/vdc_db_query.php b/agc_2-X/trunk/www/agc/vdc_db_query.php
index 9abaaf5e..a11f626d 100644
--- a/agc_2-X/trunk/www/agc/vdc_db_query.php
+++ b/agc_2-X/trunk/www/agc/vdc_db_query.php
@@ -421,10 +421,11 @@
# 170201-2214 - Fix for receiving call just after a pause
# 170207-1315 - Added user option api_only_user
# 170221-0143 - Fix for rare missed agent log insert trigger
+# 170221-1314 - Added more DNC options for campaign setting, manual dial filter
#
-$version = '2.14-315';
-$build = '170221-0143';
+$version = '2.14-316';
+$build = '170221-1314';
$php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=658;
@@ -2090,7 +2091,11 @@ if ($ACTION == 'manDiaLnextCaLL')
exit;
}
}
- if (preg_match("/DNC/",$manual_dial_filter))
+
+ ### BEGIN DNC manual dial filtering ###
+ # legacy, use campaign DNC settings(internal and campaign DNC lists)
+
+ if ( (preg_match("/DNC/",$manual_dial_filter)) and (!preg_match("/CAMPDNC_ONLY/",$manual_dial_filter)) and (!preg_match("/INTERNALDNC_ONLY/",$manual_dial_filter)) )
{
if (preg_match("/AREACODE/",$use_internal_dnc))
{
@@ -2166,6 +2171,81 @@ if ($ACTION == 'manDiaLnextCaLL')
}
}
}
+
+ # ignore campaign DNC settings use only campaign DNC lists
+ if (preg_match("/CAMPDNC/",$manual_dial_filter))
+ {
+ $temp_campaign_id = $campaign;
+ if (preg_match("/AREACODE/",$use_campaign_dnc))
+ {
+ $phone_number_areacode = substr($phone_number, 0, 3);
+ $phone_number_areacode .= "XXXXXXX";
+ $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_number_areacode') and campaign_id='$temp_campaign_id';";
+ }
+ else
+ {$stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$temp_campaign_id';";}
+ $rslt=mysql_to_mysqli($stmt, $link);
+ if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);}
+ if ($DB) {echo "$stmt\n";}
+ $row=mysqli_fetch_row($rslt);
+ if ($row[0] > 0)
+ {
+ ### purge from the dial queue and api
+ $stmt = "DELETE from vicidial_manual_dial_queue where phone_number='$phone_number' and user='$user';";
+ if ($DB) {echo "$stmt\n";}
+ $rslt=mysql_to_mysqli($stmt, $link);
+ if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00358',$user,$server_ip,$session_name,$one_mysql_log);}
+ $VMDQaffected_rows = mysqli_affected_rows($link);
+
+ $stmt = "UPDATE vicidial_live_agents set external_dial='' where user='$user';";
+ if ($DB) {echo "$stmt\n";}
+ $rslt=mysql_to_mysqli($stmt, $link);
+ if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00359',$user,$server_ip,$session_name,$one_mysql_log);}
+ $VLAEDaffected_rows = mysqli_affected_rows($link);
+
+ echo "DNC NUMBER\n";
+ if ($SSagent_debug_logging > 0) {vicidial_ajax_log($NOW_TIME,$startMS,$link,$ACTION,$php_script,$user,$stage,$lead_id,$session_name,$stmt);}
+ exit;
+ }
+ }
+
+ # ignore campaign DNC settings use only internal DNC list
+ if (preg_match("/INTERNALDNC/",$manual_dial_filter))
+ {
+ if (preg_match("/AREACODE/",$use_internal_dnc))
+ {
+ $phone_number_areacode = substr($phone_number, 0, 3);
+ $phone_number_areacode .= "XXXXXXX";
+ $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_number_areacode');";
+ }
+ else
+ {$stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';";}
+ $rslt=mysql_to_mysqli($stmt, $link);
+ if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);}
+ if ($DB) {echo "$stmt\n";}
+ $row=mysqli_fetch_row($rslt);
+ if ($row[0] > 0)
+ {
+ ### purge from the dial queue and api
+ $stmt = "DELETE from vicidial_manual_dial_queue where phone_number='$phone_number' and user='$user';";
+ if ($DB) {echo "$stmt\n";}
+ $rslt=mysql_to_mysqli($stmt, $link);
+ if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00356',$user,$server_ip,$session_name,$one_mysql_log);}
+ $VMDQaffected_rows = mysqli_affected_rows($link);
+
+ $stmt = "UPDATE vicidial_live_agents set external_dial='' where user='$user';";
+ if ($DB) {echo "$stmt\n";}
+ $rslt=mysql_to_mysqli($stmt, $link);
+ if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00357',$user,$server_ip,$session_name,$one_mysql_log);}
+ $VLAEDaffected_rows = mysqli_affected_rows($link);
+
+ echo "DNC NUMBER\n";
+ if ($SSagent_debug_logging > 0) {vicidial_ajax_log($NOW_TIME,$startMS,$link,$ACTION,$php_script,$user,$stage,$lead_id,$session_name,$stmt);}
+ exit;
+ }
+ }
+ ### END DNC manual dial filtering ###
+
if (preg_match("/CAMPLISTS/",$manual_dial_filter))
{
$stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'";
diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php
index 35328ca6..2a49b64d 100644
--- a/agc_2-X/trunk/www/vicidial/admin.php
+++ b/agc_2-X/trunk/www/vicidial/admin.php
@@ -3942,12 +3942,13 @@ else
# 170217-1350 - Added dead_to_dispo campaign setting
# 170220-1209 - Added switch_lead Agent API function
# 170220-1632 - Added In-group areacode_filter feature
+# 170221-1542 - Added more DNC options for campaign setting 'manual dial filter', added counts to DNC add/delete page
#
# 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.14-591a';
-$build = '170220-1632';
+$admin_version = '2.14-592a';
+$build = '170221-1542';
$STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s");
@@ -6261,7 +6262,7 @@ if ($ADD==121)
{
$PN = explode("\n",$phone_numbers);
$PNct = count($PN);
- $p=0;
+ $p=0; $DNCadded=0; $DNCnotadded=0; $DNCdeleted=0; $DNCnotdeleted=0;
while ($p < $PNct)
{
if ( (preg_match('/delete/',$stage)) and ($LOGdelete_from_dnc > 0) )
@@ -6273,13 +6274,17 @@ if ($ADD==121)
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ($row[0] < 1)
- {echo "
"._QXZ("DNC NOT DELETED - This phone number is not in the Do Not Call List").": $PN[$p]\n";}
+ {
+ echo "
"._QXZ("DNC NOT DELETED - This phone number is not in the Do Not Call List").": $PN[$p]\n";
+ $DNCnotdeleted++;
+ }
else
{
$stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';";
$rslt=mysql_to_mysqli($stmt, $link);
echo "
"._QXZ("DNC DELETED").": $PN[$p]\n";
+ $DNCdeleted++;
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
@@ -6299,13 +6304,17 @@ if ($ADD==121)
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ($row[0] < 1)
- {echo "
"._QXZ("DNC NOT DELETED - This phone number is not in the Do Not Call List").": $PN[$p] $campaign_id\n";}
+ {
+ echo "
"._QXZ("DNC NOT DELETED - This phone number is not in the Do Not Call List").": $PN[$p] $campaign_id\n";
+ $DNCnotdeleted++;
+ }
else
{
$stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';";
$rslt=mysql_to_mysqli($stmt, $link);
echo "
"._QXZ("DNC DELETED").": $PN[$p] $campaign_id\n";
+ $DNCdeleted++;
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
@@ -6330,13 +6339,17 @@ if ($ADD==121)
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ($row[0] > 0)
- {echo "
"._QXZ("DNC NOT ADDED - This phone number is already in the Do Not Call List").": $PN[$p]\n";}
+ {
+ echo "
"._QXZ("DNC NOT ADDED - This phone number is already in the Do Not Call List").": $PN[$p]\n";
+ $DNCnotadded++;
+ }
else
{
$stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');";
$rslt=mysql_to_mysqli($stmt, $link);
echo "
"._QXZ("DNC ADDED").": $PN[$p]\n";
+ $DNCadded++;
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
@@ -6356,13 +6369,17 @@ if ($ADD==121)
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ($row[0] > 0)
- {echo "
"._QXZ("DNC NOT ADDED - This phone number is already in the Do Not Call List").": $PN[$p] $campaign_id\n";}
+ {
+ echo "
"._QXZ("DNC NOT ADDED - This phone number is already in the Do Not Call List").": $PN[$p] $campaign_id\n";
+ $DNCnotadded++;
+ }
else
{
$stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');";
$rslt=mysql_to_mysqli($stmt, $link);
echo "
"._QXZ("DNC ADDED").": $PN[$p] $campaign_id\n";
+ $DNCadded++;
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
@@ -6380,6 +6397,21 @@ if ($ADD==121)
}
$p++;
}
+
+ if ( ($DNCadded > 0) or ($DNCnotadded > 0) )
+ {
+ echo "
\n";
+ echo "
"._QXZ("TOTAL NUMBERS ADDED TO DNC LIST").": $DNCadded\n";
+ echo "
"._QXZ("TOTAL NUMBERS NOT ADDED TO DNC LIST").": $DNCnotadded\n";
+ echo "
\n";
+ }
+ if ( ($DNCdeleted > 0) or ($DNCnotdeleted > 0) )
+ {
+ echo "
\n";
+ echo "
"._QXZ("TOTAL NUMBERS DELETED FROM DNC LIST").": $DNCdeleted\n";
+ echo "
"._QXZ("TOTAL NUMBERS NOT DELETED FROM DNC LIST").": $DNCnotdeleted\n";
+ echo "
\n";
+ }
}
if ($LOGdelete_from_dnc > 0)
@@ -21408,7 +21440,7 @@ if ($ADD==31)
echo "