Changed SHARED_ campaign in-group transfers to use 'SRDROP' log status instead of 'DROP'
git-svn-id: svn://192.168.202.10@3606 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -45,7 +45,7 @@
|
||||
#exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact-----OPTOUT-----DNC)
|
||||
#exten => 8366,5,Hangup
|
||||
#
|
||||
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||
# Copyright (C) 2022 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||
#
|
||||
# changes:
|
||||
# 80218-2027 - First Build
|
||||
@@ -126,6 +126,7 @@
|
||||
# 200825-2342 - Added option for auto-only sip actions
|
||||
# 200915-2218 - Fixes for surveys with hash-star
|
||||
# 210907-1254 - Added KHOMP code (install JSON::PP Perl module and remove '#UC#' in the code to enable)
|
||||
# 220524-1746 - Changed SHARED_ campaign in-group transfers to use 'SRDROP' log status instead of 'DROP'
|
||||
#
|
||||
|
||||
$script = 'agi-VDAD_ALL_outbound.agi';
|
||||
@@ -810,7 +811,7 @@ if ($VDACaffected_rows > 0)
|
||||
##### END - Max call stats
|
||||
|
||||
### Grab campaign values from the database
|
||||
$stmtA = "SELECT drop_call_seconds,drop_action,safe_harbor_exten,concurrent_transfers,next_agent_call,voicemail_ext,drop_inbound_group,use_internal_dnc,use_campaign_dnc,cpd_amd_action,am_message_exten,three_way_call_cid,campaign_cid,survey_first_audio_file,survey_opt_in_audio_file,survey_ni_audio_file,survey_third_audio_file,survey_fourth_audio_file,extension_appended_cidname,queue_priority,closer_campaigns,queuemetrics_phone_environment,campaign_recording,campaign_rec_filename,safe_harbor_audio,safe_harbor_menu_id,survey_recording,safe_harbor_audio_field,use_other_campaign_dnc,cpd_unknown_action,routing_initiated_recordings,campaign_rec_exten,call_quota_lead_ranking,sip_event_logging,amd_type,agent_search_method FROM vicidial_campaigns where campaign_id = '$VDADcampaign';";
|
||||
$stmtA = "SELECT drop_call_seconds,drop_action,safe_harbor_exten,concurrent_transfers,next_agent_call,voicemail_ext,drop_inbound_group,use_internal_dnc,use_campaign_dnc,cpd_amd_action,am_message_exten,three_way_call_cid,campaign_cid,survey_first_audio_file,survey_opt_in_audio_file,survey_ni_audio_file,survey_third_audio_file,survey_fourth_audio_file,extension_appended_cidname,queue_priority,closer_campaigns,queuemetrics_phone_environment,campaign_recording,campaign_rec_filename,safe_harbor_audio,safe_harbor_menu_id,survey_recording,safe_harbor_audio_field,use_other_campaign_dnc,cpd_unknown_action,routing_initiated_recordings,campaign_rec_exten,call_quota_lead_ranking,sip_event_logging,amd_type,agent_search_method,dial_method FROM vicidial_campaigns where campaign_id = '$VDADcampaign';";
|
||||
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
|
||||
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
|
||||
$sthArows=$sthA->rows;
|
||||
@@ -857,6 +858,7 @@ if ($VDACaffected_rows > 0)
|
||||
$CAMPsip_event_logging = $aryA[33];
|
||||
$amd_type = $aryA[34];
|
||||
$agent_search_method_OVERRIDE = $aryA[35];
|
||||
$campaign_dial_method = $aryA[36];
|
||||
if (length($closer_campaigns) > 2)
|
||||
{
|
||||
$closer_campaigns =~ s/^ | -$//gi;
|
||||
@@ -4225,6 +4227,7 @@ if ($drop_timer > $DROP_TIME)
|
||||
}
|
||||
|
||||
$drop_status='DROP';
|
||||
$drop_log_status='';
|
||||
if ($survey_drop > 0)
|
||||
{$drop_status='PM';}
|
||||
|
||||
@@ -4272,6 +4275,8 @@ if ($drop_timer > $DROP_TIME)
|
||||
# Example: 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*"
|
||||
$S='*';
|
||||
$DROPexten = "90009*$drop_inbound_group$S$S$CIDlead_id$S$S$VDADphone$S$fronter$S";
|
||||
if ( ($DBdrop_call_seconds < 0) && ($campaign_dial_method =~ /SHARED/i) )
|
||||
{$drop_log_status = 'SRDROP';}
|
||||
}
|
||||
if ($drop_action =~ /CALLMENU/)
|
||||
{
|
||||
@@ -4284,6 +4289,7 @@ if ($drop_timer > $DROP_TIME)
|
||||
$ext_context = $safe_harbor_menu_id;
|
||||
if (length($ext_context)<1)
|
||||
{$DROPexten = '';}
|
||||
if (length($drop_log_status) < 1) {$drop_log_status = $drop_status;}
|
||||
|
||||
if ($enable_queuemetrics_logging > 0)
|
||||
{
|
||||
@@ -4296,14 +4302,14 @@ if ($drop_timer > $DROP_TIME)
|
||||
$Baffected_rows = $dbhB->do($stmtB);
|
||||
$dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01081'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging;
|
||||
|
||||
$stmtB = "INSERT INTO queue_log SET `partition`='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='$drop_status',serverid='$queuemetrics_log_id';";
|
||||
$stmtB = "INSERT INTO queue_log SET `partition`='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='$drop_log_status',serverid='$queuemetrics_log_id';";
|
||||
$Baffected_rows = $dbhB->do($stmtB);
|
||||
$dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01082'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging;
|
||||
|
||||
$dbhB->disconnect();
|
||||
}
|
||||
|
||||
$stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$drop_status',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='CALLMENUXFER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";";
|
||||
$stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$drop_log_status',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='CALLMENUXFER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";";
|
||||
if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;}
|
||||
$affected_rows = $dbhA->do($stmtA);
|
||||
$dbhP=$dbhA; $mysql_count='01083'; $MEL_aff_rows=$affected_rows; &mysql_error_logging;
|
||||
@@ -4317,6 +4323,7 @@ if ($drop_timer > $DROP_TIME)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (length($drop_log_status) < 1) {$drop_log_status = $drop_status;}
|
||||
if ($enable_queuemetrics_logging > 0)
|
||||
{
|
||||
$dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass")
|
||||
@@ -4328,18 +4335,18 @@ if ($drop_timer > $DROP_TIME)
|
||||
$Baffected_rows = $dbhB->do($stmtB);
|
||||
$dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01048'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging;
|
||||
|
||||
$stmtB = "INSERT INTO queue_log SET `partition`='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='$drop_status',serverid='$queuemetrics_log_id';";
|
||||
$stmtB = "INSERT INTO queue_log SET `partition`='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='$drop_log_status',serverid='$queuemetrics_log_id';";
|
||||
$Baffected_rows = $dbhB->do($stmtB);
|
||||
$dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01049'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging;
|
||||
|
||||
$dbhB->disconnect();
|
||||
}
|
||||
|
||||
$stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$drop_status',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='QUEUETIMEOUT' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";";
|
||||
$stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$drop_log_status',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='QUEUETIMEOUT' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";";
|
||||
if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;}
|
||||
$affected_rows = $dbhA->do($stmtA);
|
||||
$dbhP=$dbhA; $mysql_count='01050'; $MEL_aff_rows=$affected_rows; &mysql_error_logging;
|
||||
if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;}
|
||||
if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid|$drop_log_status|$drop_status"; &agi_output;}
|
||||
|
||||
$stmtA = "UPDATE vicidial_list set status='$drop_status' where lead_id = '$CIDlead_id';";
|
||||
if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
AGENT MULTI-CAMPAIGN DIALING DOC Started: 2020-08-24 Updated: 2021-02-07
|
||||
AGENT MULTI-CAMPAIGN DIALING DOC Started: 2020-08-24 Updated: 2022-05-24
|
||||
|
||||
NOTE: Requires VICIdial svn/trunk code revision 3284 or higher to work properly!!!
|
||||
|
||||
NOTE: The new SHARED campaign dial method requires VICIdial svn/trunk code revision 3340 or higher to work properly!!!
|
||||
NOTE: The new SHARED campaign dial methods require VICIdial svn/trunk code revision 3340 or higher to work properly!!!
|
||||
|
||||
NOTE: THIS FEATURE IS OPTIONAL, AND SHOULD ONLY BE CONFIGURED AFTER YOUR SYSTEM
|
||||
HAS BEEN INSTALLED AND TESTED!
|
||||
HAS BEEN INSTALLED AND TESTED WITH A STANDARD OUTBOUND CAMPAIGN!
|
||||
|
||||
|
||||
|
||||
@@ -194,6 +194,9 @@ The following are instructions for how to set up a "SHARED_" set of campaigns:
|
||||
* NOTES:
|
||||
- The "SHARED_..." campaign dial method does not require the use of Remote Agents at all, and the live agents do need to select to take blended (outbound) calls or no calls will be placed for them as they rotate through the shared agent campaigns.
|
||||
- For SHARED agent campaigns, there is an additional campaign setting: "Shared Dial Rank", which will allow you to prioritize the dialing of your shared campaigns as calls are placed for them.
|
||||
- For SHARED agent campaigns, the vicidial_log table will show In-Group transfer drops as 'SRDROP' status instead of 'DROP' status to differentiate them from standard dialing campaign drops. These are not considered dropped calls at all because they were never attempted to be routed to an agent by the outbound campaign before being sent to the In-Group.
|
||||
- For SHARED agent campaigns, the predictive algorithm will not count In-Group transfer drops as dropped calls in its statistical calculations
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -79,3 +79,4 @@ NVAINS - Default status for new inserted lead on phone NVA call
|
||||
CLOSOP - In-Group Closing-Time option selected
|
||||
PAUSMX - Pause Max Seconds timeout default status
|
||||
IQNANQ - In-Queue call No-Agent-No-Queue drop
|
||||
SRDROP - SHARED outbound campaign drop to in-group, not included in most DROP stats
|
||||
|
||||
Reference in New Issue
Block a user