Added "3-Way Recording Stop Exception" campaign option to override the "3-Way Recording Stop" setting based upon the 3way phone number dialed.

git-svn-id: svn://192.168.202.10@3252 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2020-05-29 03:06:03 +00:00
parent 6f0cce48fa
commit 7aab76b281
6 changed files with 109 additions and 18 deletions
+3
View File
@@ -503,6 +503,9 @@ OTHER CHANGES:
web browser that they are logged into the agent screen with. Must be
enabled in system settings.
141. Added "3-Way Recording Stop Exception" campaign option to override the
"3-Way Recording Stop" setting based upon the 3way phone number dialed.
@@ -1043,7 +1043,8 @@ vmm_daily_limit TINYINT(3) UNSIGNED default '0',
opensips_cid_name VARCHAR(15) default '',
amd_agent_route_options ENUM('ENABLED','DISABLED','PENDING') default 'DISABLED',
browser_alert_sound VARCHAR(20) default '---NONE---',
browser_alert_volume TINYINT(3) UNSIGNED default '50'
browser_alert_volume TINYINT(3) UNSIGNED default '50',
three_way_record_stop_exception VARCHAR(40) default 'DISABLED'
) ENGINE=MyISAM;
CREATE TABLE vicidial_lists (
@@ -4638,4 +4639,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1595',db_schema_update_date=NOW(),reload_timestamp=NOW();
UPDATE system_settings SET db_schema_version='1596',db_schema_update_date=NOW(),reload_timestamp=NOW();
+4
View File
@@ -1242,3 +1242,7 @@ UPDATE system_settings SET db_schema_version='1594',db_schema_update_date=NOW()
ALTER TABLE vicidial_users MODIFY agentcall_manual ENUM('0','1','2','3','4','5') default '0';
UPDATE system_settings SET db_schema_version='1595',db_schema_update_date=NOW() where db_schema_version < 1595;
ALTER TABLE vicidial_campaigns ADD three_way_record_stop_exception VARCHAR(40) default 'DISABLED';
UPDATE system_settings SET db_schema_version='1596',db_schema_update_date=NOW() where db_schema_version < 1596;
+56 -10
View File
@@ -640,12 +640,13 @@
# 200512-1005 - Added hide_relogin_fields URL variable feature
# 200515-1352 - Disable volume controls for Asterisk 13 servers, added options.php override setting(ast13_volume_override)
# 200524-1021 - Fix for agentchannel not populating while volumecontrol_active disabled
# 200528-2239 - Added three_way_record_stop_exception campaign setting
#
$version = '2.14-609c';
$build = '200524-1021';
$version = '2.14-610c';
$build = '200528-2239';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=91;
$mysql_log_count=92;
$one_mysql_log=0;
$DB=0;
@@ -1898,7 +1899,7 @@ else
{
$stmt="SELECT status,status_name,scheduled_callback,selectable,min_sec,max_sec FROM vicidial_campaign_statuses WHERE status != 'NEW' and campaign_id='$VU_status_group_id' order by status limit 500;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01XXX',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01093',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VU_statuses_ct = mysqli_num_rows($rslt);
$k=0;
@@ -2005,7 +2006,7 @@ else
$HKstatusnames = substr("$HKstatusnames", 0, -1);
##### grab the campaign settings
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days,three_way_record_stop,hangup_xfer_record_start,max_inbound_calls_outcome,manual_auto_next_options,agent_screen_time_display,pause_max_dispo,script_top_dispo,routing_initiated_recordings,dead_trigger_seconds,dead_trigger_action,dead_trigger_repeat,dead_trigger_filename,scheduled_callbacks_force_dial,callback_hours_block,callback_display_days,scheduled_callbacks_timezones_container,three_way_volume_buttons,manual_dial_validation,mute_recordings,leave_vm_no_dispo,leave_vm_message_group_id,campaign_script_two,browser_alert_sound,browser_alert_volume FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days,three_way_record_stop,hangup_xfer_record_start,max_inbound_calls_outcome,manual_auto_next_options,agent_screen_time_display,pause_max_dispo,script_top_dispo,routing_initiated_recordings,dead_trigger_seconds,dead_trigger_action,dead_trigger_repeat,dead_trigger_filename,scheduled_callbacks_force_dial,callback_hours_block,callback_display_days,scheduled_callbacks_timezones_container,three_way_volume_buttons,manual_dial_validation,mute_recordings,leave_vm_no_dispo,leave_vm_message_group_id,campaign_script_two,browser_alert_sound,browser_alert_volume,three_way_record_stop_exception FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -2173,6 +2174,27 @@ else
$campaign_script_two = $row[160];
$browser_alert_sound = $row[161];
$browser_alert_volume = $row[162];
$three_way_record_stop_exception = $row[163];
$TWRSEcontainer_entry='';
if ( (strlen($three_way_record_stop_exception) > 1) and ($three_way_record_stop_exception != 'DISABLED') )
{
# Gather details on Dial Timeout Lead settings container
$stmt = "SELECT container_entry FROM vicidial_settings_containers where container_id='$three_way_record_stop_exception';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01092',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$SCinfo_ct = mysqli_num_rows($rslt);
if ($SCinfo_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$TWRSEcontainer_entry = $row[0];
$TWRSEcontainer_entry = preg_replace("/\r|\t|\'|\"/",'',$TWRSEcontainer_entry);
$TWRSEcontainer_entry = preg_replace("/\n/",'x',$TWRSEcontainer_entry);
if (strlen($TWRSEcontainer_entry) > 2) {$TWRSEcontainer_entry = 'x'.$TWRSEcontainer_entry.'x';}
echo "<!-- 3WAY STOP REC EXEPTION: |$three_way_record_stop_exception($TWRSEcontainer_entry)| -->\n";
}
}
if ($leave_vm_no_dispo == 'ENABLED')
{$leave_vm_no_dispo = 'VMNOHANG';}
@@ -4974,6 +4996,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var updatelead_complete=0;
var ready_max_logout='<?php echo $ready_max_logout ?>';
var three_way_record_stop='<?php echo $three_way_record_stop ?>';
var three_way_record_stop_exception='<?php echo $TWRSEcontainer_entry ?>';
var hangup_xfer_record_start='<?php echo $hangup_xfer_record_start ?>';
var hangup_both=0;
var agent_push_events='<?php echo $agent_push_events ?>';
@@ -5528,11 +5551,6 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
agent_dialed_number='1';
agent_dialed_type='XFER_3WAY';
if (three_way_record_stop == 'Y')
{
conf_send_recording('StopMonitorConf', session_id, recording_filename,'','','');
}
document.getElementById("DialWithCustomer").innerHTML ="<img src=\"./images/<?php echo _QXZ("vdc_XB_dialwithcustomer_OFF.gif") ?>\" border=\"0\" alt=\"Dial With Customer\" style=\"vertical-align:middle\" /></a>";
document.getElementById("ParkCustomerDial").innerHTML ="<img src=\"./images/<?php echo _QXZ("vdc_XB_parkcustomerdial_OFF.gif") ?>\" border=\"0\" alt=\"Park Customer Dial\" style=\"vertical-align:middle\" /></a>";
@@ -5543,6 +5561,34 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
{manual_number=manual_number_hidden;}
var manual_string = manual_number.toString();
var dial_conf_exten = session_id;
var testXFregstr = 'x' + manual_string + 'x'
var regXFSRvars = new RegExp(testXFregstr,"g");
if (three_way_record_stop == 'Y')
{
if (three_way_record_stop_exception == '')
{
conf_send_recording('StopMonitorConf', session_id, recording_filename,'','','');
}
else
{
if (three_way_record_stop_exception.match(regXFSRvars))
{var do_nothing=1;}
else
{conf_send_recording('StopMonitorConf', session_id, recording_filename,'','','');}
}
}
else
{
if (three_way_record_stop_exception == '')
{var do_nothing=1;}
else
{
if (three_way_record_stop_exception.match(regXFSRvars))
{conf_send_recording('StopMonitorConf', session_id, recording_filename,'','','');}
}
}
threeway_cid = '';
if (three_way_call_cid == 'CAMPAIGN')
{threeway_cid = campaign_cid;}
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
# version: 20200425095601
# version: 20200528092201
users-user User ID <QXZ>This field is where you put the users ID number, can be up to 8 digits in length, Must be at least 2 characters in length.</QXZ>
users-pass Password <QXZ>This field is where you put the users password. Must be at least 2 characters in length. 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.</QXZ>
users-force_change_password Force Change Password <QXZ>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. Default is N.</QXZ>
@@ -263,6 +263,7 @@ campaigns-customer_3way_hangup_logging Customer 3-Way Hangup Logging <QXZ>If thi
campaigns-customer_3way_hangup_seconds Customer 3-Way Hangup Seconds <QXZ>If Customer 3-way logging is enabled, this option allows you to define the number of seconds after the customer hangup is detected before it is actually logged and the optional customer 3-way hangup action is executed. Default is 5 seconds.</QXZ>
campaigns-customer_3way_hangup_action Customer 3-Way Hangup Action <QXZ>If Customer 3-way logging is enabled, this option allows you to have the agent screen automatically hang up on the call and go to the DISPO screen if this option is set to DISPO. Default is NONE.</QXZ>
campaigns-three_way_record_stop 3-Way Recording Stop <QXZ>If this option is enabled, recording of the session will stop when an agent clicks on the DIAL WITH CUSTOMER or PARK CUSTOMER DIAL transfer buttons. Default is N for disabled.</QXZ>
campaigns-three_way_record_stop_exception 3-Way Recording Stop Exception <QXZ>If not set to DISABLED, this setting allows you to exempt the 3-Way Recording Stop feature above for a set list of phone numbers, that you define in a PHONE_NUMBERS type of Settings Container. If 3-Way Recording Stop is set to -N-, then 3-way calls to the number in this list will have recordings stopped when the 3-way call is started. If 3-Way Recording Stop is set to -Y-, then 3-way calls to the number in this list will not have recordings stopped when the 3-way call is started. Default is DISABLED.</QXZ>
campaigns-hangup_xfer_record_start Hangup Xfer Recording Start <QXZ>If this option is enabled, recording of the session will start when the agent clicks on the HANGUP XFER button in the transfer conference section. Default is N for disabled.</QXZ>
campaigns-ivr_park_call Park Call IVR <QXZ>This option will allow an agent to park a call with a separate IVR PARK CALL button on their agent interface if this is ENABLED or ENABLED_PARK_ONLY. The ENABLED_PARK_ONLY option will allow the agent to send the call to park but not click to retrieve the call like the ENABLED option. The ENABLED_BUTTON_HIDDEN option allows the function through the API only. Default is DISABLED. This feature requires Asterisk 1.8 or higher to work.</QXZ>
campaigns-ivr_park_call_agi Park Call IVR AGI <QXZ>If the Park Call IVR field is not DISABLED, then this field is used as the AGI application string that the customer is sent to. This is a setting that should be set by your administrator if possible. This feature requires Asterisk 1.8 or higher to work.</QXZ>