From 017dddb50a17f4d69f2f4de9a9a615a77aabd9c5 Mon Sep 17 00:00:00 2001 From: mattf Date: Tue, 21 Feb 2017 21:03:26 +0000 Subject: [PATCH] Added new DNC options to Manual Dial Filter campaign feature that are not tied to the campaign DNC settings. Added counts to add/delete DNC numbers admin screen. git-svn-id: svn://192.168.202.10@2680 3d104415-ff17-0410-8863-d5cf3c621b8a --- agc_2-X/trunk/UPGRADE | 3 + agc_2-X/trunk/www/agc/vdc_db_query.php | 86 +++++++++++++++++++++++++- agc_2-X/trunk/www/vicidial/admin.php | 48 +++++++++++--- agc_2-X/trunk/www/vicidial/help.php | 2 +- 4 files changed, 127 insertions(+), 12 deletions(-) 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 ""._QXZ("Manual Dial List ID").": $NWB#campaigns-manual_dial_list_id$NWE\n"; - echo ""._QXZ("Manual Dial Filter").": $NWB#campaigns-manual_dial_filter$NWE\n"; + echo ""._QXZ("Manual Dial Filter").": $NWB#campaigns-manual_dial_filter$NWE\n"; echo ""._QXZ("Manual Preview Dial").": $NWB#campaigns-manual_preview_dial$NWE\n"; diff --git a/agc_2-X/trunk/www/vicidial/help.php b/agc_2-X/trunk/www/vicidial/help.php index b84d3529..a08a29ac 100644 --- a/agc_2-X/trunk/www/vicidial/help.php +++ b/agc_2-X/trunk/www/vicidial/help.php @@ -1759,7 +1759,7 @@ if ($SSoutbound_autodial_active > 0)

- - + -