diff --git a/agc_2-X/trunk/bin/AST_VDauto_dial.pl b/agc_2-X/trunk/bin/AST_VDauto_dial.pl
index caa9bb64..a7596739 100644
--- a/agc_2-X/trunk/bin/AST_VDauto_dial.pl
+++ b/agc_2-X/trunk/bin/AST_VDauto_dial.pl
@@ -151,6 +151,7 @@
# 220311-1920 - Added List CID Group Override option
# 220328-1310 - Small change made per Issue #1337
# 220623-1621 - Added List dial_prefix override
+# 221221-2135 - Added enhanced_disconnect_logging=3 support, issue #1367
#
$build='220328-1310';
@@ -2584,7 +2585,7 @@ while($one_day_interval > 0)
# $event_string = "| vac test: |$auto_call_id|$CLstatus|$KLcalltime[$kill_vac]|$CLlead_id|$KLcallerid[$kill_vac]|$end_epoch|$KLchannel[$kill_vac]|$CLcall_type|$CLdial_timeout|$CLdrop_call_seconds|$call_timeout|$dialtime_log|$dialtime_catch|$PARKchannel|";
# &event_logger;
- if ( ( ($dialtime_log >= $call_timeout) || ($dialtime_catch >= $call_timeout) || ($CLstatus =~ /BUSY|DISCONNECT|XFER|CLOSER/) ) && ($PARKchannel < 1) )
+ if ( ( ($dialtime_log >= $call_timeout) || ($dialtime_catch >= $call_timeout) || ($CLstatus =~ /BUSY|DISCONNECT|XFER|CLOSER|CARRIERFAIL/) ) && ($PARKchannel < 1) )
{
if ( ($CLcall_type !~ /IN/) && ($CLstatus !~ /IVR/) )
{
@@ -2639,7 +2640,7 @@ while($one_day_interval > 0)
if ($ADB > 0) {$aad_string = "ALT-00: $CLlead_id|$VD_auto_alt_dial|$CLauto_alt_threshold|$LISTauto_alt_threshold|($called_count <> $temp_auto_alt_threshold)|auto_alt_lead_disabled: $auto_alt_lead_disabled|"; &aad_output;}
}
- if ($CLstatus =~ /BUSY/) {$CLnew_status = 'B';}
+ if ($CLstatus =~ /BUSY/) {$CLnew_status = 'AB';}
else
{
$new_status_set=0;
@@ -2738,7 +2739,7 @@ while($one_day_interval > 0)
}
}
- if ($CLlead_id > 0)
+ if ($CLlead_id > 0 && $CLstatus != 'CARRIERFAIL')
{
$stmtA = "UPDATE vicidial_list set status='$CLnew_status' where lead_id='$CLlead_id'";
$affected_rows = $dbhA->do($stmtA);
diff --git a/agc_2-X/trunk/bin/FastAGI_log.pl b/agc_2-X/trunk/bin/FastAGI_log.pl
index 72c20ced..384c9ad0 100644
--- a/agc_2-X/trunk/bin/FastAGI_log.pl
+++ b/agc_2-X/trunk/bin/FastAGI_log.pl
@@ -95,6 +95,7 @@
# 220103-1520 - Added timeout fix for manual dial calls, set the CAMPDTO dialplan variable
# 220118-0937 - Added $ADB auto-alt-dial extra debug output option, fix for extended auto-alt-dial issue #1337
# 220118-2207 - Added auto_alt_threshold campaign & list settings
+# 221221-2134 - Added enhanced_disconnect_logging=3 support , issue #1367
#
# defaults for PreFork
@@ -1356,17 +1357,26 @@ sub process_request
{
if ($CPDfound < 1)
{
- if ($enhanced_disconnect_logging == '2')
+ if ( ($enhanced_disconnect_logging == '2') || ($enhanced_disconnect_logging == '3') )
{
- if ($dialstatus =~ /BUSY/) {$VDL_status = 'AB'; $VDAC_status = 'BUSY';}
- if ($dialstatus =~ /CHANUNAVAIL/) {$VDL_status = 'ADC'; $VDAC_status = 'DISCONNECT';}
- if ($enhanced_disconnect_logging > 0)
+ if ($enhanced_disconnect_logging == '2')
{
- if ($dialstatus =~ /CHANUNAVAIL/ && $hangup_cause =~/^18/) {$VDL_status = 'ADCT'; $VDAC_status = 'DISCONNECT';}
- if ($dialstatus =~ /CONGESTION/ && $hangup_cause =~ /^1$/) {$VDL_status = 'ADC'; $VDAC_status = 'DISCONNECT';}
- if (($dialstatus =~ /CONGESTION/ && $hangup_cause =~ /^21$|^34$|^38$|^102$/) || ($dialstatus =~ /BUSY/ && $hangup_cause =~ /^19$/)) {$VDL_status = 'ADCT'; $VDAC_status = 'DISCONNECT';}
- if ($dialstatus =~ /DISCONNECT/) {$VDL_status = 'ADCCAR'; $VDAC_status = 'ADCCAR';} # pre-carrier disconnect filter
- if ($dialstatus =~ /DNC/) {$VDL_status = 'DNCCAR'; $VDAC_status = 'DNCCAR';} # pre-carrier DNC filter
+ if ($dialstatus =~ /BUSY/) {$VDL_status = 'AB'; $VDAC_status = 'BUSY';}
+ if ($dialstatus =~ /CHANUNAVAIL/) {$VDL_status = 'ADC'; $VDAC_status = 'DISCONNECT';}
+ if ($enhanced_disconnect_logging > 0)
+ {
+ if ($dialstatus =~ /CHANUNAVAIL/ && $hangup_cause =~/^18/) {$VDL_status = 'ADCT'; $VDAC_status = 'DISCONNECT';}
+ if ($dialstatus =~ /CONGESTION/ && $hangup_cause =~ /^1$/) {$VDL_status = 'ADC'; $VDAC_status = 'DISCONNECT';}
+ if (($dialstatus =~ /CONGESTION/ && $hangup_cause =~ /^21$|^34$|^38$|^102$/) || ($dialstatus =~ /BUSY/ && $hangup_cause =~ /^19$/)) {$VDL_status = 'ADCT'; $VDAC_status = 'DISCONNECT';}
+ if ($dialstatus =~ /DISCONNECT/) {$VDL_status = 'ADCCAR'; $VDAC_status = 'ADCCAR';} # pre-carrier disconnect filter
+ if ($dialstatus =~ /DNC/) {$VDL_status = 'DNCCAR'; $VDAC_status = 'DNCCAR';} # pre-carrier DNC filter
+ }
+ }
+ if ($enhanced_disconnect_logging == '3')
+ {
+ if ($hangup_cause =~ /^18$|^19$|^21$|^34$|^38$|^41$|^42$|^88$|^102$/) {$VDL_status = 'HUC'.$hangup_cause; $VDAC_status = 'CARRIERFAIL';}
+ if ($hangup_cause =~ /^1$|^28$/) {$VDL_status = 'ADC'; $VDAC_status = 'DISCONNECT';}
+ if ($hangup_cause =~ /^17/) {$VDL_status = 'AB'; $VDAC_status = 'BUSY';}
}
}
else
diff --git a/agc_2-X/trunk/docs/VICIDIAL_statuses.txt b/agc_2-X/trunk/docs/VICIDIAL_statuses.txt
index 37adb8bd..e0823c4a 100644
--- a/agc_2-X/trunk/docs/VICIDIAL_statuses.txt
+++ b/agc_2-X/trunk/docs/VICIDIAL_statuses.txt
@@ -80,3 +80,4 @@ 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
+HUCXXX - Enhanced Disconnect Logging level 3 failed calls, where 'XXX' is the disconnect code. For example: "HUC18" for Cause 18 (SIP 408 Request timeout)
diff --git a/agc_2-X/trunk/www/vicidial/help_documentation.txt b/agc_2-X/trunk/www/vicidial/help_documentation.txt
index 277c99ba..c6607c08 100644
--- a/agc_2-X/trunk/www/vicidial/help_documentation.txt
+++ b/agc_2-X/trunk/www/vicidial/help_documentation.txt
@@ -1,4 +1,4 @@
-# version: 20221214142601
+# version: 20221221212801
users-user User ID This field is where you put the users ID number, can be up to 20 digits in length, Must be at least 2 characters in length. We strongly recommend not reusing user accounts for different users, for reporting accuracy. To disable a user account, set the Active option to -N-.
users-pass Password This field is where you put the users password. Must be at least 2 characters in length. Only letters and numbers are allowed in user passwords. A medium strength user password will be at least 10 characters in length, and a strong user password will be at least 20 characters in length and have letters as well as at least one number. It is recommended that you use a longer password if possible, stringing together several unrelated words with no spaces, and a number somewhere in the string. The maximum size of a password is 100 characters.
users-force_change_password Force Change Password If this option is set to Y then the user will be prompted to change their password the next time they log in to the administration webpage or the agent screen. Default is N.
@@ -1142,7 +1142,7 @@ settings-source_id_display Admin Lead Source ID Display This setting will m
settings-allow_web_debug Allow Web DB Debug This option will allow the DB query string option to be used in most web pages on this system to show debug output. Default is 0 for disabled.
settings-agent_debug_logging Agent Screen Debug Logging This setting if enabled will log almost all agent screen mouse clicks and AJAX processes triggered by the agent screen. To enable for all agents, set this option to 1. To enable only for one agent on the system, set this option to the user that you want to log. Warning, this feature can log hundreds of entries per phone call, so use with caution. These agent debug records are deleted after 7 days. Default is 0 for disabled.
settings-agent_screen_timer Agent Screen Timer This will select the method of JavaScript timer to be used by the Agent Screen. The original method is setTimeout, which maintains the timer directly in JavaScript. An alternative method is EventSource, which uses a script on the server to trigger the timer. You may want to use EventSource if your agents are using a Chromium-based web browser that has limitations on how native JavaScript timers work, although using this method may possibly cause issues if you have a poor network connection to the server or are on an older network or proxy that does not handle streaming web services well. Default is setTimeout
-settings-enhanced_disconnect_logging Enhanced Disconnect Logging This setting, set to 1, enables logging of calls that get a CONGESTION signal with a cause code of 1, 19, 21, 34 or 38. Setting this to 2 will additionally log calls with cause codes of 18-CHANUNAVAIL and 102. Default is 0 for disabled.
+settings-enhanced_disconnect_logging Enhanced Disconnect Logging This setting, set to 1, enables logging of calls that get a CONGESTION signal with a cause code of 1, 19, 21, 34 or 38. Setting this to 2 will additionally log calls with cause codes of 18-CHANUNAVAIL and 102. Setting this to 3 will alternatively prevent some temporary error SIP messages on failed calls from sending the lead to ADC status. Instead, the status will be set as HUCXXX where XXX is the hangup_cause code. Eg. HUC18 for Cause 18 (SIP 408 Request timeout). Default is 0 for disabled.
settings-sip_event_logging SIP Event Logging This setting will enable logging of SIP events on outbound phone calls for servers that are running patched versions of Asterisk 13 or higher. Default is 0 for disabled.
settings-cache_carrier_stats_realtime Cached Realtime Carrier Stats This setting if enabled will change the real-time report from gathering the carrier log stats every time it is refreshed on every screen it is running on, to a cached set of carrier log stats that are refreshed once per minute. Default is 0 for disabled.
settings-campaign_cid_areacodes_enabled Enable CID Groups and Campaign Areacode CID This setting enables the ability to set specific outbound callerid numbers to be used per areacode for a campaign, as well as CID Groups which allows both per areacode and per state options for groups of CallerID numbers for one or multiple campaigns. Default is 1 for enabled.