Added option to not update vicidial_list in cm_dnc.agi
git-svn-id: svn://192.168.202.10@3834 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -12,12 +12,12 @@
|
|||||||
# 2- default to insert into the vicidial_dnc table for DNC selections (Default=YES)
|
# 2- default to insert into the vicidial_dnc table for DNC selections (Default=YES)
|
||||||
# 3- campaign to take dnc settings from(overrides option 2)
|
# 3- campaign to take dnc settings from(overrides option 2)
|
||||||
# 4- call menu option to send the call to after executing (Default=B)
|
# 4- call menu option to send the call to after executing (Default=B)
|
||||||
# 5- if option 3 is used, search for lead in campaign lists or whole system(CAMP or SYS) (Default=SYS)
|
# 5- if option 3 is used, search for lead in campaign lists, whole system or no lead update(CAMP, SYS, NONE) (Default=SYS)
|
||||||
#
|
#
|
||||||
# example of what to put in the AGI entry for a Call Menu AGI route:
|
# example of what to put in the AGI entry for a Call Menu AGI route:
|
||||||
# cm_dnc.agi,DNC---YES---TESTCAMP---B---CAMP
|
# cm_dnc.agi,DNC---YES---TESTCAMP---B---CAMP
|
||||||
#
|
#
|
||||||
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2024 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# changes:
|
# changes:
|
||||||
# 121109-1623 - First draft
|
# 121109-1623 - First draft
|
||||||
@@ -26,6 +26,7 @@
|
|||||||
# 150928-1822 - Added dnc logging
|
# 150928-1822 - Added dnc logging
|
||||||
# 170313-1610 - Fixed issue with DNC not logging if no campaign defined
|
# 170313-1610 - Fixed issue with DNC not logging if no campaign defined
|
||||||
# 171010-1228 - Added ability to recognize existing Vicidial calls
|
# 171010-1228 - Added ability to recognize existing Vicidial calls
|
||||||
|
# 240430-0821 - Added option to not update vicidial_list
|
||||||
#
|
#
|
||||||
|
|
||||||
$script = 'cm_dnc.agi';
|
$script = 'cm_dnc.agi';
|
||||||
@@ -237,6 +238,10 @@ foreach $i (sort keys %AGI)
|
|||||||
|
|
||||||
if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;}
|
if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;}
|
||||||
|
|
||||||
|
if ($camp_sys =~ /NONE/)
|
||||||
|
{
|
||||||
|
if ($AGILOG) {$agi_string = "No Lead Updates, only DNC inserts |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;}
|
||||||
|
}
|
||||||
|
|
||||||
# if campaign is used and selected for search, find the lists in the campaign
|
# if campaign is used and selected for search, find the lists in the campaign
|
||||||
$listSQL='';
|
$listSQL='';
|
||||||
@@ -266,7 +271,7 @@ if ( (length($campaign_id) > 0) && ($camp_sys =~ /CAMP/) )
|
|||||||
|
|
||||||
|
|
||||||
### Gather the lead IDs of the leads with this phone number ###
|
### Gather the lead IDs of the leads with this phone number ###
|
||||||
if ( (length($call_type) < 1) || ($lead_id < 1) )
|
if ( ( (length($call_type) < 1) || ($lead_id < 1) ) && ($camp_sys !~ /NONE/) )
|
||||||
{
|
{
|
||||||
$stmtA= "SELECT lead_id from vicidial_list where phone_number='$phone_number' $listSQL;";
|
$stmtA= "SELECT lead_id from vicidial_list where phone_number='$phone_number' $listSQL;";
|
||||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||||
@@ -284,19 +289,22 @@ if ( (length($call_type) < 1) || ($lead_id < 1) )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$stmtA= "SELECT phone_number from vicidial_list where lead_id='$lead_id';";
|
if ($lead_id > 0)
|
||||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
|
||||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
|
||||||
$sthArows=$sthA->rows;
|
|
||||||
if ($AGILOG) {$agi_string = "$sthArows|$stmtA|"; &agi_output;}
|
|
||||||
$g=0;
|
|
||||||
while ($sthArows > $g)
|
|
||||||
{
|
{
|
||||||
@aryA = $sthA->fetchrow_array;
|
$stmtA= "SELECT phone_number from vicidial_list where lead_id='$lead_id';";
|
||||||
$phone_number = $aryA[0];
|
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||||
$g++;
|
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||||
|
$sthArows=$sthA->rows;
|
||||||
|
if ($AGILOG) {$agi_string = "$sthArows|$stmtA|"; &agi_output;}
|
||||||
|
$g=0;
|
||||||
|
while ($sthArows > $g)
|
||||||
|
{
|
||||||
|
@aryA = $sthA->fetchrow_array;
|
||||||
|
$phone_number = $aryA[0];
|
||||||
|
$g++;
|
||||||
|
}
|
||||||
|
$sthA->finish();
|
||||||
}
|
}
|
||||||
$sthA->finish();
|
|
||||||
}
|
}
|
||||||
chop($SleadsSQL);
|
chop($SleadsSQL);
|
||||||
|
|
||||||
@@ -304,7 +312,7 @@ chop($SleadsSQL);
|
|||||||
### process for NI path
|
### process for NI path
|
||||||
if ($new_status =~ /NI/) # set the phone_number to NI
|
if ($new_status =~ /NI/) # set the phone_number to NI
|
||||||
{
|
{
|
||||||
if ($g > 0)
|
if ( ($g > 0) && ($camp_sys !~ /NONE/) )
|
||||||
{
|
{
|
||||||
### update all records for the phone_number in vicidial_list to NI (Not Interested)
|
### update all records for the phone_number in vicidial_list to NI (Not Interested)
|
||||||
$stmtA = "UPDATE vicidial_list SET status='NI' where lead_id IN($SleadsSQL);";
|
$stmtA = "UPDATE vicidial_list SET status='NI' where lead_id IN($SleadsSQL);";
|
||||||
@@ -316,7 +324,7 @@ if ($new_status =~ /NI/) # set the phone_number to NI
|
|||||||
### process for DNC path
|
### process for DNC path
|
||||||
if ($new_status =~ /DNC/) # set the phone_number to DNC
|
if ($new_status =~ /DNC/) # set the phone_number to DNC
|
||||||
{
|
{
|
||||||
if ($g > 0)
|
if ( ($g > 0) && ($camp_sys !~ /NONE/) )
|
||||||
{
|
{
|
||||||
### update all records for the phone_number in vicidial_list to NI (Not Interested)
|
### update all records for the phone_number in vicidial_list to NI (Not Interested)
|
||||||
$stmtA = "UPDATE vicidial_list SET status='DNC' where lead_id IN($SleadsSQL);";
|
$stmtA = "UPDATE vicidial_list SET status='DNC' where lead_id IN($SleadsSQL);";
|
||||||
|
|||||||
Reference in New Issue
Block a user