Added manual_dial_lead_id user setting, and new 'ONLY' option for campaign setting

git-svn-id: svn://192.168.202.10@3935 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2025-08-06 15:27:26 +00:00
parent 570ff96ad7
commit 2156fa99d2
5 changed files with 56 additions and 23 deletions
@@ -706,7 +706,8 @@ failed_last_type_today VARCHAR(20) default '',
modify_dial_prefix ENUM('0','1','2','3','4','5','6') default '0', modify_dial_prefix ENUM('0','1','2','3','4','5','6') default '0',
inbound_credits MEDIUMINT(7) default '-1', inbound_credits MEDIUMINT(7) default '-1',
hci_enabled ENUM('0','1','2','3','4','5','6') default '0', hci_enabled ENUM('0','1','2','3','4','5','6') default '0',
modify_stamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP modify_stamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
manual_dial_lead_id ENUM('Y','N','ONLY','DISABLED') default 'DISABLED'
) ENGINE=MyISAM; ) ENGINE=MyISAM;
CREATE UNIQUE INDEX user ON vicidial_users (user); CREATE UNIQUE INDEX user ON vicidial_users (user);
@@ -993,7 +994,7 @@ allow_emails ENUM('Y','N') default 'N',
amd_inbound_group VARCHAR(20) default '', amd_inbound_group VARCHAR(20) default '',
amd_callmenu VARCHAR(50) default '', amd_callmenu VARCHAR(50) default '',
survey_wait_sec TINYINT(3) default '10', survey_wait_sec TINYINT(3) default '10',
manual_dial_lead_id ENUM('Y','N') default 'N', manual_dial_lead_id ENUM('Y','N','ONLY') default 'N',
dead_max SMALLINT(5) UNSIGNED default '0', dead_max SMALLINT(5) UNSIGNED default '0',
dead_max_dispo VARCHAR(6) default 'DCMX', dead_max_dispo VARCHAR(6) default 'DCMX',
dispo_max SMALLINT(5) UNSIGNED default '0', dispo_max SMALLINT(5) UNSIGNED default '0',
@@ -5740,4 +5741,4 @@ INSERT INTO `wallboard_reports` VALUES ('AGENTS_AND_QUEUES','Agents and Queues',
UPDATE system_settings set vdc_agent_api_active='1'; UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1726',db_schema_update_date=NOW(),reload_timestamp=NOW(); UPDATE system_settings SET db_schema_version='1727',db_schema_update_date=NOW(),reload_timestamp=NOW();
+6
View File
@@ -2876,3 +2876,9 @@ ALTER TABLE vicidial_url_multi MODIFY entry_type ENUM('campaign','ingroup','list
ALTER TABLE vicidial_url_multi MODIFY url_type ENUM('dispo','start','addlead','noagent','apinewlead','') default ''; ALTER TABLE vicidial_url_multi MODIFY url_type ENUM('dispo','start','addlead','noagent','apinewlead','') default '';
UPDATE system_settings SET db_schema_version='1726',db_schema_update_date=NOW() where db_schema_version < 1726; UPDATE system_settings SET db_schema_version='1726',db_schema_update_date=NOW() where db_schema_version < 1726;
ALTER TABLE vicidial_campaigns MODIFY manual_dial_lead_id ENUM('Y','N','ONLY') default 'N';
ALTER TABLE vicidial_users ADD manual_dial_lead_id ENUM('Y','N','ONLY','DISABLED') default 'DISABLED';
UPDATE system_settings SET db_schema_version='1727',db_schema_update_date=NOW() where db_schema_version < 1727;
+32 -11
View File
@@ -746,10 +746,11 @@
# 240830-1112 - Added campaign manual_minimum_... settings # 240830-1112 - Added campaign manual_minimum_... settings
# 250207-1821 - Fix for JavaScript error if chat disabled # 250207-1821 - Fix for JavaScript error if chat disabled
# 250326-2032 - Added agent_hide_dial_fail system_setting # 250326-2032 - Added agent_hide_dial_fail system_setting
# 250806-0859 - Added manual_dial_lead_id 'ONLY' option and user override setting
# #
$version = '2.14-712c'; $version = '2.14-713c';
$build = '250326-2032'; $build = '250806-0859';
$php_script = 'vicidial.php'; $php_script = 'vicidial.php';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=103; $mysql_log_count=103;
@@ -2562,7 +2563,7 @@ else
} }
##### grab the full name and other settings of the agent ##### grab the full name and other settings of the agent
$stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,agent_call_log_view_override,agent_choose_blended,agent_lead_search_override,preset_contact_search,max_inbound_calls,wrapup_seconds_override,email,user_choose_language,ready_max_logout,mute_recordings,max_inbound_filter_enabled,status_group_id,manual_dial_filter,inbound_credits,mobile_number from vicidial_users where user='$VD_login' and active='Y' and api_only_user != '1';"; $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,agent_call_log_view_override,agent_choose_blended,agent_lead_search_override,preset_contact_search,max_inbound_calls,wrapup_seconds_override,email,user_choose_language,ready_max_logout,mute_recordings,max_inbound_filter_enabled,status_group_id,manual_dial_filter,inbound_credits,mobile_number,manual_dial_lead_id from vicidial_users where user='$VD_login' and active='Y' and api_only_user != '1';";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);}
$row=mysqli_fetch_row($rslt); $row=mysqli_fetch_row($rslt);
@@ -2605,6 +2606,8 @@ else
$VU_manual_dial_filter = $row[36]; $VU_manual_dial_filter = $row[36];
$VU_inbound_credits = $row[37]; $VU_inbound_credits = $row[37];
$LOGmobile_number = $row[38]; $LOGmobile_number = $row[38];
$VU_manual_dial_lead_id = $row[39];
if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';}
else {$VU_alert_enabled = 'OFF';} else {$VU_alert_enabled = 'OFF';}
@@ -3353,6 +3356,12 @@ else
$CAMPsip_event_logging = $row[197]; $CAMPsip_event_logging = $row[197];
$stereo_recording = $row[198]; $stereo_recording = $row[198];
if ( (!preg_match("/DISABLED/",$VU_manual_dial_lead_id)) and (strlen($VU_manual_dial_lead_id) > 0) )
{
echo "<!-- manual_dial_lead_id user override: |$manual_dial_lead_id($VU_manual_dial_lead_id)| -->\n";
$manual_dial_lead_id = $VU_manual_dial_lead_id;
}
if ($SSstereo_recording < 1) {$stereo_recording='DISABLED';} if ($SSstereo_recording < 1) {$stereo_recording='DISABLED';}
if ( ($manual_minimum_ring_seconds > 0) and ($SSsip_event_logging < 1) ) if ( ($manual_minimum_ring_seconds > 0) and ($SSsip_event_logging < 1) )
@@ -23879,7 +23888,7 @@ $zi=2;
<span style="position:absolute;left:300px;top:<?php echo $MBheight ?>px;z-index:<?php $zi++; echo $zi ?>;" id="DiaLlOgButtonspan"> <span style="position:absolute;left:300px;top:<?php echo $MBheight ?>px;z-index:<?php $zi++; echo $zi ?>;" id="DiaLlOgButtonspan">
<span id="ManuaLDiaLButtons"><font class="body_text"><span id="MDstatusSpan"><a href="#" onclick="NeWManuaLDiaLCalL('NO','','','','','YES','YES');return false;"><?php echo _QXZ("MANUAL DIAL"); ?></a></span>&nbsp; &nbsp; <span id="ManuaLDiaLButtons"><font class="body_text"><span id="MDstatusSpan"><a href="#" onclick="NeWManuaLDiaLCalL('NO','','','','','YES','YES');return false;"><?php echo _QXZ("MANUAL DIAL"); ?></a></span>&nbsp; &nbsp;
<?php if ($agentcall_manual == '1') { ?> <?php if ( ($agentcall_manual == '1') and (!preg_match("/ONLY/",$manual_dial_lead_id)) ) { ?>
<a href="#" onclick="NeWManuaLDiaLCalL('FAST','','','','','YES','YES');return false;"><?php echo _QXZ("FAST DIAL"); ?></a> <a href="#" onclick="NeWManuaLDiaLCalL('FAST','','','','','YES','YES');return false;"><?php echo _QXZ("FAST DIAL"); ?></a>
<?php } ?> <?php } ?>
</span>&nbsp; &nbsp; </font> </span>&nbsp; &nbsp; </font>
@@ -24547,17 +24556,29 @@ if ($agent_display_dialable_leads > 0)
?> ?>
<?php echo _QXZ("Note: all new manual dial leads will go into list %1s",0,'',$manual_dial_list_id); ?><br /><br /> <?php echo _QXZ("Note: all new manual dial leads will go into list %1s",0,'',$manual_dial_list_id); ?><br /><br />
<table><tr> <table><tr>
<td align="right"><font class="body_text"> <?php echo _QXZ("Dial Code:"); ?> </font></td> <?php
<td align="left"><font class="body_text"><input type="text" size="7" maxlength="10" name="MDDiaLCodE" id="MDDiaLCodE" class="cust_form" value="<?php echo $default_phone_code ?>" />&nbsp; <?php echo _QXZ("(This is usually a 1 in the USA-Canada)"); ?></font></td> if (!preg_match("/ONLY/",$manual_dial_lead_id))
</tr><tr> {
<td align="right"><font class="body_text"> <?php echo _QXZ("Phone Number:"); ?> </font></td> ?>
<td align="left"><font class="body_text"> <td align="right"><font class="body_text"> <?php echo _QXZ("Dial Code:"); ?> </font></td>
<input type="text" size="14" maxlength="18" name="MDPhonENumbeR" id="MDPhonENumbeR" class="cust_form" value="" />&nbsp; <?php echo _QXZ("(digits only)"); ?></font> <td align="left"><font class="body_text"><input type="text" size="7" maxlength="10" name="MDDiaLCodE" id="MDDiaLCodE" class="cust_form" value="<?php echo $default_phone_code ?>" />&nbsp; <?php echo _QXZ("(This is usually a 1 in the USA-Canada)"); ?></font></td>
</tr><tr>
<td align="right"><font class="body_text"> <?php echo _QXZ("Phone Number:"); ?> </font></td>
<td align="left"><font class="body_text">
<input type="text" size="14" maxlength="18" name="MDPhonENumbeR" id="MDPhonENumbeR" class="cust_form" value="" />&nbsp; <?php echo _QXZ("(digits only)"); ?></font>
<?php
}
else
{
echo "<input type=\"hidden\" name=\"MDDiaLCodE\" id=\"MDDiaLCodE\" value=\"$default_phone_code\" />\n";
echo "<input type=\"hidden\" name=\"MDPhonENumbeR\" id=\"MDPhonENumbeR\" value=\"\" />\n";
}
?>
<input type="hidden" name="MDPhonENumbeRHiddeN" id="MDPhonENumbeRHiddeN" value="" /> <input type="hidden" name="MDPhonENumbeRHiddeN" id="MDPhonENumbeRHiddeN" value="" />
<input type="hidden" name="MDLeadID" id="MDLeadID" value="" /> <input type="hidden" name="MDLeadID" id="MDLeadID" value="" />
<input type="hidden" name="MDType" id="MDType" value="" /> <input type="hidden" name="MDType" id="MDType" value="" />
<?php <?php
if ($manual_dial_lead_id=='Y') if ( ($manual_dial_lead_id=='Y') or ($manual_dial_lead_id=='ONLY') )
{ {
echo " </td>"; echo " </td>";
echo " </tr><tr>\n"; echo " </tr><tr>\n";
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
# version: 20250620085201 # version: 20250806084601
users-user User ID <QXZ>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-.</QXZ> users-user User ID <QXZ>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-.</QXZ>
users-pass Password <QXZ>This field is where you put the users password. Must be at least 2 characters in length, unless the User Password Minimum Length system setting is enabled, which will require a longer password. 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.</QXZ> users-pass Password <QXZ>This field is where you put the users password. Must be at least 2 characters in length, unless the User Password Minimum Length system setting is enabled, which will require a longer password. 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.</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 or the agent screen. Default is N.</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 or the agent screen. Default is N.</QXZ>
@@ -26,6 +26,7 @@ users-agentonly_callbacks Agent-Only Callbacks <QXZ>This option allows an agent
users-next_dial_my_callbacks Next-Dial My Callbacks Override <QXZ>This option, if not set to NOT_ACTIVE, will override the campaign option set for Next-Dial My Callbacks. Default is NOT_ACTIVE.</QXZ> users-next_dial_my_callbacks Next-Dial My Callbacks Override <QXZ>This option, if not set to NOT_ACTIVE, will override the campaign option set for Next-Dial My Callbacks. Default is NOT_ACTIVE.</QXZ>
users-agentcall_manual Agent Call Manual <QXZ>This option allows an agent to manually enter a new lead into the system and call them. This also allows the calling of any phone number from their agent screen and puts that call into their session. Use this option with caution. Setting this option to 2 will allow manual dialing but disable the FAST DIAL function on the agent screen.</QXZ> users-agentcall_manual Agent Call Manual <QXZ>This option allows an agent to manually enter a new lead into the system and call them. This also allows the calling of any phone number from their agent screen and puts that call into their session. Use this option with caution. Setting this option to 2 will allow manual dialing but disable the FAST DIAL function on the agent screen.</QXZ>
users-manual_dial_filter Manual Dial Filter Override <QXZ>If this option is set to anything but DISABLED, it will override the Campaign setting Manual Dial Filter. Default is DISABLED.</QXZ> users-manual_dial_filter Manual Dial Filter Override <QXZ>If this option is set to anything but DISABLED, it will override the Campaign setting Manual Dial Filter. Default is DISABLED.</QXZ>
users-manual_dial_lead_id Manual Dial by Lead ID Override <QXZ>This allows the agent in manual dial mode to place a call by lead_id instead of a phone number. If this option is set to ONLY, it will only allow manual dials in the agent screen by lead_id and not by phone number. If this is set to anything but DISABLED, this will override the corresponding campaign setting. Default is N for disabled.</QXZ>
users-agentcall_email Agent Call Email <QXZ>This option is disabled.</QXZ> users-agentcall_email Agent Call Email <QXZ>This option is disabled.</QXZ>
users-agentcall_chat Agent Call Chat <QXZ>This option is disabled.</QXZ> users-agentcall_chat Agent Call Chat <QXZ>This option is disabled.</QXZ>
users-agent_recording Agent Recording <QXZ>This option can prevent an agent from doing any recordings after they log in to the agent screen. This option must be on for the agent screen to follow the campaign recording settings.</QXZ> users-agent_recording Agent Recording <QXZ>This option can prevent an agent from doing any recordings after they log in to the agent screen. This option must be on for the agent screen to follow the campaign recording settings.</QXZ>
@@ -387,7 +388,7 @@ campaigns-manual_dial_filter Manual Dial Filter <QXZ>This allows you to filter t
campaigns-manual_dial_search_checkbox Manual Dial Search Checkbox <QXZ>This allows you to define if you want the manual dial search checkbox to be selected by default or not. If an option with RESET is chosen, then the checkbox will be reset after every call. If an option with LOCK is chosen, then the agent will not be able to click on the checkbox. Default is SELECTED.</QXZ> campaigns-manual_dial_search_checkbox Manual Dial Search Checkbox <QXZ>This allows you to define if you want the manual dial search checkbox to be selected by default or not. If an option with RESET is chosen, then the checkbox will be reset after every call. If an option with LOCK is chosen, then the agent will not be able to click on the checkbox. Default is SELECTED.</QXZ>
campaigns-manual_dial_search_filter Manual Dial Search Filter <QXZ>This allows the agent to search only within lists belonging to this campaign when the agent has the Manual Dial Search Checkbox selected in the manual dial screen. The options are, CAMPLISTS_ONLY - will check for the number within the active lists for the campaign, CAMPLISTS_ALL - will also include inactive lists in the search for the number, NONE - no filter on manual dial searching. Default is NONE. If a lead is not found, then a new lead will be added. WITH_ALT will also search the Alt Phone field for the phone number. WITH_ALT_ADDR3 will also search the Alt Phone field and the Address 3 field for the phone number.</QXZ> campaigns-manual_dial_search_filter Manual Dial Search Filter <QXZ>This allows the agent to search only within lists belonging to this campaign when the agent has the Manual Dial Search Checkbox selected in the manual dial screen. The options are, CAMPLISTS_ONLY - will check for the number within the active lists for the campaign, CAMPLISTS_ALL - will also include inactive lists in the search for the number, NONE - no filter on manual dial searching. Default is NONE. If a lead is not found, then a new lead will be added. WITH_ALT will also search the Alt Phone field for the phone number. WITH_ALT_ADDR3 will also search the Alt Phone field and the Address 3 field for the phone number.</QXZ>
campaigns-manual_preview_dial Manual Preview Dial <QXZ>This allows the agent in manual dial mode to see the lead information when they click Dial Next Number before they actively dial the phone call. There is an optional link to SKIP the lead and move on to the next one if selected. Default is PREVIEW_AND_SKIP.</QXZ> campaigns-manual_preview_dial Manual Preview Dial <QXZ>This allows the agent in manual dial mode to see the lead information when they click Dial Next Number before they actively dial the phone call. There is an optional link to SKIP the lead and move on to the next one if selected. Default is PREVIEW_AND_SKIP.</QXZ>
campaigns-manual_dial_lead_id Manual Dial by Lead ID <QXZ>This allows the agent in manual dial mode to place a call by lead_id instead of a phone number. Default is N for disabled.</QXZ> campaigns-manual_dial_lead_id Manual Dial by Lead ID <QXZ>This allows the agent in manual dial mode to place a call by lead_id instead of a phone number. If this option is set to ONLY, it will only allow manual dials in the agent screen by lead_id and not by phone number. Default is N for disabled. There is also a User setting that can override this campaign setting.</QXZ>
campaigns-api_manual_dial Manual Dial API <QXZ>This option allows you to set the Agent API to make either one call at a time, STANDARD, or the ability to queue up manual dial calls and have them dial automatically once the agent goes on pause or is available to take their next call with the option to disable the automatic dialing of these calls, QUEUE, or QUEUE_AND_AUTOCALL which is the same as QUEUE but without the option to disable the automatic dialing of these calls. If an agent has more than one call queued up for them they will see the count of how many manual dial calls are in queue right below the Pause button, or Dial Next Number button. We suggest that if QUEUE is used that you send API actions using the preview=YES option so you are not repeatedly dialing calls for the agent without notice. Also, if using QUEUE and heavily using manual dial calls in a non MANUAL dial method, we would recommend setting the Agent Pause After Each Call option to Y. Default is STANDARD.</QXZ> campaigns-api_manual_dial Manual Dial API <QXZ>This option allows you to set the Agent API to make either one call at a time, STANDARD, or the ability to queue up manual dial calls and have them dial automatically once the agent goes on pause or is available to take their next call with the option to disable the automatic dialing of these calls, QUEUE, or QUEUE_AND_AUTOCALL which is the same as QUEUE but without the option to disable the automatic dialing of these calls. If an agent has more than one call queued up for them they will see the count of how many manual dial calls are in queue right below the Pause button, or Dial Next Number button. We suggest that if QUEUE is used that you send API actions using the preview=YES option so you are not repeatedly dialing calls for the agent without notice. Also, if using QUEUE and heavily using manual dial calls in a non MANUAL dial method, we would recommend setting the Agent Pause After Each Call option to Y. Default is STANDARD.</QXZ>
campaigns-manual_dial_call_time_check Manual Call Time Check <QXZ>If this option is enabled, it will check all manual dial calls to make sure they are within the call time settings set for the campaign. Default is DISABLED.</QXZ> campaigns-manual_dial_call_time_check Manual Call Time Check <QXZ>If this option is enabled, it will check all manual dial calls to make sure they are within the call time settings set for the campaign. Default is DISABLED.</QXZ>
campaigns-manual_dial_validation Manual Dial Validation <QXZ>If this option is enabled, every manual dial phone call from the agent screen that is triggered by only a click will require the agent to manually type in the phone number into a pop-up form on the agent screen to confirm the number to be dialed. This option can be forced as enabled through a system-wide setting. This feature will not affect 3way calls or transfers. Default is N for disabled.</QXZ> campaigns-manual_dial_validation Manual Dial Validation <QXZ>If this option is enabled, every manual dial phone call from the agent screen that is triggered by only a click will require the agent to manually type in the phone number into a pop-up form on the agent screen to confirm the number to be dialed. This option can be forced as enabled through a system-wide setting. This feature will not affect 3way calls or transfers. Default is N for disabled.</QXZ>