Added max_logged_in_agents campaign/system settings and dial_prefix list override

git-svn-id: svn://192.168.202.10@3609 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2022-06-23 20:39:09 +00:00
parent 5216a941df
commit 6655cc6b44
8 changed files with 126 additions and 35 deletions
+9 -5
View File
@@ -150,6 +150,7 @@
# 220118-2206 - Added auto_alt_threshold campaign & list settings # 220118-2206 - Added auto_alt_threshold campaign & list settings
# 220311-1920 - Added List CID Group Override option # 220311-1920 - Added List CID Group Override option
# 220328-1310 - Small change made per Issue #1337 # 220328-1310 - Small change made per Issue #1337
# 220623-1621 - Added List dial_prefix override
# #
$build='220328-1310'; $build='220328-1310';
@@ -1822,18 +1823,20 @@ while($one_day_interval > 0)
{ {
$campaign_cid_override=''; $campaign_cid_override='';
$LIST_cid_group_override=''; $LIST_cid_group_override='';
$LIST_dial_prefix_override='';
$auto_alt_threshold=-1; $auto_alt_threshold=-1;
### gather list_id overrides ### gather list_id overrides
$stmtA = "SELECT campaign_cid_override,auto_alt_threshold,cid_group_id FROM vicidial_lists where list_id='$list_id';"; $stmtA = "SELECT campaign_cid_override,auto_alt_threshold,cid_group_id,dial_prefix FROM vicidial_lists where list_id='$list_id';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArowsL=$sthA->rows; $sthArowsL=$sthA->rows;
if ($sthArowsL > 0) if ($sthArowsL > 0)
{ {
@aryA = $sthA->fetchrow_array; @aryA = $sthA->fetchrow_array;
$campaign_cid_override = $aryA[0]; $campaign_cid_override = $aryA[0];
$auto_alt_threshold = $aryA[1]; $auto_alt_threshold = $aryA[1];
$LIST_cid_group_override = $aryA[2]; $LIST_cid_group_override = $aryA[2];
$LIST_dial_prefix_override = $aryA[3];
} }
$sthA->finish(); $sthA->finish();
@@ -2063,6 +2066,7 @@ while($one_day_interval > 0)
if ($DTL_override > 4) {$Local_dial_timeout = $DTL_override;} if ($DTL_override > 4) {$Local_dial_timeout = $DTL_override;}
$Local_dial_timeout = ($Local_dial_timeout * 1000); $Local_dial_timeout = ($Local_dial_timeout * 1000);
if (length($DBIPdialprefix[$user_CIPct]) > 0) {$Local_out_prefix = "$DBIPdialprefix[$user_CIPct]";} if (length($DBIPdialprefix[$user_CIPct]) > 0) {$Local_out_prefix = "$DBIPdialprefix[$user_CIPct]";}
if (length($LIST_dial_prefix_override) > 0) {$Local_out_prefix = "$LIST_dial_prefix_override";}
if (length($DBIPvdadexten[$user_CIPct]) > 0) {$VDAD_dial_exten = "$DBIPvdadexten[$user_CIPct]";} if (length($DBIPvdadexten[$user_CIPct]) > 0) {$VDAD_dial_exten = "$DBIPvdadexten[$user_CIPct]";}
else {$VDAD_dial_exten = "$answer_transfer_agent";} else {$VDAD_dial_exten = "$answer_transfer_agent";}
@@ -2311,7 +2315,7 @@ while($one_day_interval > 0)
} }
} }
if ($DBIPdialprefix[$user_CIPct] =~ /x/i) {$Local_out_prefix = '';} if ($Local_out_prefix =~ /x/i) {$Local_out_prefix = '';}
if ($RECcount) if ($RECcount)
{ {
+8 -4
View File
@@ -51,6 +51,7 @@
# 210715-1335 - Added call_limit_24hour feature support, also fix for variable issue # 210715-1335 - Added call_limit_24hour feature support, also fix for variable issue
# 210731-0951 - Added cid_group_id_two campaign option # 210731-0951 - Added cid_group_id_two campaign option
# 220311-1922 - Added List CID Group Override option # 220311-1922 - Added List CID Group Override option
# 220623-1622 - Added List dial_prefix override
# #
### begin parsing run-time options ### ### begin parsing run-time options ###
@@ -838,16 +839,18 @@ while($one_day_interval > 0)
$campaign_cid_override=''; $campaign_cid_override='';
$LIST_cid_group_override=''; $LIST_cid_group_override='';
$LIST_dial_prefix_override='';
### gather list_id overrides ### gather list_id overrides
$stmtA = "SELECT campaign_cid_override,cid_group_id FROM vicidial_lists where list_id='$list_id';"; $stmtA = "SELECT campaign_cid_override,cid_group_id,dial_prefix FROM vicidial_lists where list_id='$list_id';";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArowsL=$sthA->rows; $sthArowsL=$sthA->rows;
if ($sthArowsL > 0) if ($sthArowsL > 0)
{ {
@aryA = $sthA->fetchrow_array; @aryA = $sthA->fetchrow_array;
$campaign_cid_override = $aryA[0]; $campaign_cid_override = $aryA[0];
$LIST_cid_group_override = $aryA[1]; $LIST_cid_group_override = $aryA[1];
$LIST_dial_prefix_override = $aryA[2];
} }
$sthA->finish(); $sthA->finish();
@@ -975,6 +978,7 @@ while($one_day_interval > 0)
if ($DTL_override > 4) {$Local_dial_timeout = $DTL_override;} if ($DTL_override > 4) {$Local_dial_timeout = $DTL_override;}
$Local_dial_timeout = ($Local_dial_timeout * 1000); $Local_dial_timeout = ($Local_dial_timeout * 1000);
if (length($DBIPdialprefix[$camp_CIPct]) > 0) {$Local_out_prefix = "$DBIPdialprefix[$camp_CIPct]";} if (length($DBIPdialprefix[$camp_CIPct]) > 0) {$Local_out_prefix = "$DBIPdialprefix[$camp_CIPct]";}
if (length($LIST_dial_prefix_override) > 0) {$Local_out_prefix = "$LIST_dial_prefix_override";}
if (length($DBIPvdadexten[$camp_CIPct]) > 0) {$VDAD_dial_exten = "$DBIPvdadexten[$camp_CIPct]";} if (length($DBIPvdadexten[$camp_CIPct]) > 0) {$VDAD_dial_exten = "$DBIPvdadexten[$camp_CIPct]";}
else {$VDAD_dial_exten = "$answer_transfer_agent";} else {$VDAD_dial_exten = "$answer_transfer_agent";}
@@ -1219,7 +1223,7 @@ while($one_day_interval > 0)
} }
} }
if ($DBIPdialprefix[$camp_CIPct] =~ /x/i) {$Local_out_prefix = '';} if ($Local_out_prefix =~ /x/i) {$Local_out_prefix = '';}
if ($RECcount) if ($RECcount)
{ {
@@ -1089,7 +1089,8 @@ auto_alt_threshold TINYINT(3) UNSIGNED default '0',
pause_max_url TEXT, pause_max_url TEXT,
agent_hide_hangup ENUM('Y','N') default 'N', agent_hide_hangup ENUM('Y','N') default 'N',
ig_xfer_list_sort ENUM('GROUP_ID_UP','GROUP_ID_DOWN','GROUP_NAME_UP','GROUP_NAME_DOWN','PRIORITY_UP','PRIORITY_DOWN') default 'GROUP_ID_UP', ig_xfer_list_sort ENUM('GROUP_ID_UP','GROUP_ID_DOWN','GROUP_NAME_UP','GROUP_NAME_DOWN','PRIORITY_UP','PRIORITY_DOWN') default 'GROUP_ID_UP',
script_tab_frame_size VARCHAR(10) default 'DEFAULT' script_tab_frame_size VARCHAR(10) default 'DEFAULT',
max_logged_in_agents SMALLINT(5) UNSIGNED default '0'
) ENGINE=MyISAM; ) ENGINE=MyISAM;
CREATE TABLE vicidial_lists ( CREATE TABLE vicidial_lists (
@@ -1135,7 +1136,8 @@ qc_scorecard_id VARCHAR(20) DEFAULT '',
qc_statuses_id VARCHAR(20) DEFAULT '', qc_statuses_id VARCHAR(20) DEFAULT '',
qc_web_form_address VARCHAR(255) DEFAULT '', qc_web_form_address VARCHAR(255) DEFAULT '',
auto_alt_threshold TINYINT(3) default '-1', auto_alt_threshold TINYINT(3) default '-1',
cid_group_id VARCHAR(20) default '---DISABLED---' cid_group_id VARCHAR(20) default '---DISABLED---',
dial_prefix VARCHAR(20) default ''
) ENGINE=MyISAM; ) ENGINE=MyISAM;
CREATE TABLE vicidial_statuses ( CREATE TABLE vicidial_statuses (
@@ -1960,7 +1962,8 @@ call_limit_24hour ENUM('0','1') default '0',
call_limit_24hour_reset DATETIME default '2000-01-01 00:00:01', call_limit_24hour_reset DATETIME default '2000-01-01 00:00:01',
allowed_sip_stacks ENUM('SIP','PJSIP','SIP_and_PJSIP') default 'SIP', allowed_sip_stacks ENUM('SIP','PJSIP','SIP_and_PJSIP') default 'SIP',
agent_hide_hangup ENUM('1','0','2','3','4','5','6') default '0', agent_hide_hangup ENUM('1','0','2','3','4','5','6') default '0',
allow_web_debug ENUM('0','1','2','3','4','5','6') default '0' allow_web_debug ENUM('0','1','2','3','4','5','6') default '0',
max_logged_in_agents ENUM('0','1','2','3','4','5','6','7') default '0'
) ENGINE=MyISAM; ) ENGINE=MyISAM;
CREATE TABLE vicidial_campaigns_list_mix ( CREATE TABLE vicidial_campaigns_list_mix (
@@ -5084,4 +5087,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
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='1661',db_schema_update_date=NOW(),reload_timestamp=NOW(); UPDATE system_settings SET db_schema_version='1662',db_schema_update_date=NOW(),reload_timestamp=NOW();
+8
View File
@@ -1934,3 +1934,11 @@ UPDATE system_settings SET db_schema_version='1660',db_schema_update_date=NOW()
ALTER TABLE vicidial_users ADD user_group_two VARCHAR(20) default ''; ALTER TABLE vicidial_users ADD user_group_two VARCHAR(20) default '';
UPDATE system_settings SET db_schema_version='1661',db_schema_update_date=NOW() where db_schema_version < 1661; UPDATE system_settings SET db_schema_version='1661',db_schema_update_date=NOW() where db_schema_version < 1661;
ALTER TABLE vicidial_lists ADD dial_prefix VARCHAR(20) default '';
ALTER TABLE system_settings ADD max_logged_in_agents ENUM('0','1','2','3','4','5','6','7') default '0';
ALTER TABLE vicidial_campaigns ADD max_logged_in_agents SMALLINT(5) UNSIGNED default '0';
UPDATE system_settings SET db_schema_version='1662',db_schema_update_date=NOW() where db_schema_version < 1662;
+13 -6
View File
@@ -524,10 +524,11 @@
# 220212-0919 - Added pause_max_url_trigger input # 220212-0919 - Added pause_max_url_trigger input
# 220219-0134 - Added allow_web_debug system setting # 220219-0134 - Added allow_web_debug system setting
# 220311-1709 - Added List CID Group Override option # 220311-1709 - Added List CID Group Override option
# 220623-1005 - Added List Dial Prefix Override option
# #
$version = '2.14-417'; $version = '2.14-418';
$build = '220311-1709'; $build = '220623-1005';
$php_script = 'vdc_db_query.php'; $php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=876; $mysql_log_count=876;
@@ -4424,10 +4425,11 @@ if ($ACTION == 'manDiaLnextCaLL')
$LISTweb_form_address=''; $LISTweb_form_address='';
$LISTweb_form_address_two=''; $LISTweb_form_address_two='';
$LISTweb_form_address_three=''; $LISTweb_form_address_three='';
$LISTdial_prefix='';
### check if there is a list_id override ### check if there is a list_id override
if (strlen($list_id) > 1) if (strlen($list_id) > 1)
{ {
$stmt = "SELECT campaign_cid_override,web_form_address,web_form_address_two,web_form_address_three,list_description,default_xfer_group,cid_group_id FROM vicidial_lists where list_id='$list_id';"; $stmt = "SELECT campaign_cid_override,web_form_address,web_form_address_two,web_form_address_three,list_description,default_xfer_group,cid_group_id,dial_prefix FROM vicidial_lists where list_id='$list_id';";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
@@ -4442,6 +4444,7 @@ if ($ACTION == 'manDiaLnextCaLL')
$list_description = $row[4]; $list_description = $row[4];
$LISTdefault_xfer_group = $row[5]; $LISTdefault_xfer_group = $row[5];
$LIST_cid_group_override = $row[6]; $LIST_cid_group_override = $row[6];
$LISTdial_prefix = $row[7];
if ( (strlen($LISTdefault_xfer_group)>0) and (!preg_match("/---NONE---/",$LISTdefault_xfer_group)) ) if ( (strlen($LISTdefault_xfer_group)>0) and (!preg_match("/---NONE---/",$LISTdefault_xfer_group)) )
{$default_xfer_group = $LISTdefault_xfer_group;} {$default_xfer_group = $LISTdefault_xfer_group;}
} }
@@ -4579,6 +4582,7 @@ if ($ACTION == 'manDiaLnextCaLL')
if ($DTL_override > 4) {$Local_dial_timeout = $DTL_override;} if ($DTL_override > 4) {$Local_dial_timeout = $DTL_override;}
$Local_dial_timeout = ($Local_dial_timeout * 1000); $Local_dial_timeout = ($Local_dial_timeout * 1000);
if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";}
if (strlen($LISTdial_prefix) > 0) {$Local_out_prefix = "$LISTdial_prefix";}
if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++; $CCIDtype='CAMPAIGN_CID';} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++; $CCIDtype='CAMPAIGN_CID';}
### check for custom cid use ### check for custom cid use
@@ -4854,7 +4858,7 @@ if ($ACTION == 'manDiaLnextCaLL')
} }
} }
if (preg_match("/x/i",$dial_prefix)) {$Local_out_prefix = '';} if (preg_match("/x/i",$Local_out_prefix)) {$Local_out_prefix = '';}
$PADlead_id = sprintf("%010s", $lead_id); $PADlead_id = sprintf("%010s", $lead_id);
while (strlen($PADlead_id) > 10) {$PADlead_id = substr("$PADlead_id", 1);} while (strlen($PADlead_id) > 10) {$PADlead_id = substr("$PADlead_id", 1);}
@@ -6388,7 +6392,7 @@ if ($ACTION == 'manDiaLonly')
$Local_dial_timeout = ($Local_dial_timeout * 1000); $Local_dial_timeout = ($Local_dial_timeout * 1000);
if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";}
if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++; $CCIDtype='CAMPAIGN_CID';} if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++; $CCIDtype='CAMPAIGN_CID';}
if (preg_match("/x/i",$dial_prefix)) {$Local_out_prefix = '';} if (preg_match("/x/i",$Local_out_prefix)) {$Local_out_prefix = '';}
$campaign_cid_override=''; $campaign_cid_override='';
### check if there is a list_id override ### check if there is a list_id override
if (strlen($lead_id) > 1) if (strlen($lead_id) > 1)
@@ -6408,7 +6412,7 @@ if ($ACTION == 'manDiaLonly')
if (strlen($list_id) > 1) if (strlen($list_id) > 1)
{ {
$stmt = "SELECT campaign_cid_override,web_form_address,web_form_address_two,web_form_address_three,list_description,cid_group_id FROM vicidial_lists where list_id='$list_id';"; $stmt = "SELECT campaign_cid_override,web_form_address,web_form_address_two,web_form_address_three,list_description,cid_group_id,dial_prefix FROM vicidial_lists where list_id='$list_id';";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
@@ -6422,6 +6426,9 @@ if ($ACTION == 'manDiaLonly')
$LISTweb_form_address_three = $row[3]; $LISTweb_form_address_three = $row[3];
$list_description = $row[4]; $list_description = $row[4];
$LIST_cid_group_override = $row[5]; $LIST_cid_group_override = $row[5];
$LISTdial_prefix = $row[6];
if (strlen($LISTdial_prefix) > 0) {$Local_out_prefix = "$LISTdial_prefix";}
if (preg_match("/x/i",$Local_out_prefix)) {$Local_out_prefix = '';}
} }
} }
} }
+44 -3
View File
@@ -694,10 +694,11 @@
# 220510-1625 - Added script_tab_frame_size campaign setting # 220510-1625 - Added script_tab_frame_size campaign setting
# 220518-2209 - Small fix for encrypted auth # 220518-2209 - Small fix for encrypted auth
# 220524-1846 - Fix for rare Dead audio trigger and blind monitor trigger issue #1361 # 220524-1846 - Fix for rare Dead audio trigger and blind monitor trigger issue #1361
# 220623-0911 - Added max_logged_in_agents campaign setting and list dial_prefix override
# #
$version = '2.14-662c'; $version = '2.14-663c';
$build = '220524-1846'; $build = '220623-0911';
$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=98; $mysql_log_count=98;
@@ -796,7 +797,7 @@ $random = (rand(1000000, 9999999) + 10000000);
############################################# #############################################
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP ##### ##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active,static_agent_url,custom_fields_enabled,pllb_grouping_limit,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_third_webform,default_language,active_modules,allow_chats,chat_url,default_phone_code,agent_screen_colors,manual_auto_next,agent_xfer_park_3way,admin_web_directory,agent_script,agent_push_events,agent_push_url,agent_logout_link,agentonly_callback_campaign_lock,manual_dial_validation,mute_recordings,enable_second_script,enable_first_webform,recording_buttons,outbound_cid_any,browser_call_alerts,manual_dial_phone_strip,require_password_length,pass_hash_enabled,agent_hidden_sound_seconds,agent_hidden_sound,agent_hidden_sound_volume,agent_screen_timer,agent_hide_hangup,allow_web_debug FROM system_settings;"; $stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active,static_agent_url,custom_fields_enabled,pllb_grouping_limit,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,enable_third_webform,default_language,active_modules,allow_chats,chat_url,default_phone_code,agent_screen_colors,manual_auto_next,agent_xfer_park_3way,admin_web_directory,agent_script,agent_push_events,agent_push_url,agent_logout_link,agentonly_callback_campaign_lock,manual_dial_validation,mute_recordings,enable_second_script,enable_first_webform,recording_buttons,outbound_cid_any,browser_call_alerts,manual_dial_phone_strip,require_password_length,pass_hash_enabled,agent_hidden_sound_seconds,agent_hidden_sound,agent_hidden_sound_volume,agent_screen_timer,agent_hide_hangup,allow_web_debug,max_logged_in_agents FROM system_settings;";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);}
#if ($DB) {echo "$stmt\n";} #if ($DB) {echo "$stmt\n";}
@@ -856,6 +857,7 @@ if ($qm_conf_ct > 0)
$SSagent_screen_timer = $row[49]; $SSagent_screen_timer = $row[49];
$SSagent_hide_hangup = $row[50]; $SSagent_hide_hangup = $row[50];
$SSallow_web_debug = $row[51]; $SSallow_web_debug = $row[51];
$SSmax_logged_in_agents = $row[52];
if ( ($SSagent_hidden_sound == '---NONE---') or ($SSagent_hidden_sound == '') ) {$SSagent_hidden_sound_seconds=0;} if ( ($SSagent_hidden_sound == '---NONE---') or ($SSagent_hidden_sound == '') ) {$SSagent_hidden_sound_seconds=0;}
} }
else else
@@ -1578,6 +1580,43 @@ else
$auth_message='ERRCASE'; $auth_message='ERRCASE';
} }
} }
# check for campaign max agents
if($auth>0)
{
if ($SSmax_logged_in_agents > 0)
{
$stmt="SELECT max_logged_in_agents from vicidial_campaigns where campaign_id='$VD_campaign' $LOGallowed_campaignsSQL;";
if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);}
$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);}
$camps_to_print = mysqli_num_rows($rslt);
if ($camps_to_print > 0)
{
$max_logged_in_agents=999999999;
$rowx=mysqli_fetch_row($rslt);
$rowx[0]=preg_replace("/[^0-9]/","",$rowx[0]);
if (strlen($rowx[0]) > 0)
{$max_logged_in_agents = $rowx[0];}
$stmt = "SELECT count(*) FROM vicidial_live_agents where campaign_id='$VD_campaign' and user!='$VD_login';";
$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 ($DB) {echo "$stmt\n";}
$mvla_ct = mysqli_num_rows($rslt);
if ($mvla_ct > 0)
{
$rowx=mysqli_fetch_row($rslt);
$vla_camp_agents = $rowx[0];
}
if ($max_logged_in_agents <= $vla_camp_agents)
{
$auth=0;
$auth_message='ERRCAMPAGENTS';
}
}
}
}
if($auth>0) if($auth>0)
{ {
@@ -3219,6 +3258,8 @@ else
{$VDdisplayMESSAGE = _QXZ("You are already logged in, please log out of your other session first")."<br />";} {$VDdisplayMESSAGE = _QXZ("You are already logged in, please log out of your other session first")."<br />";}
if ($auth_message == 'ERRAGENTS') if ($auth_message == 'ERRAGENTS')
{$VDdisplayMESSAGE = _QXZ("Too many agents logged in, please contact your administrator")."<br />";} {$VDdisplayMESSAGE = _QXZ("Too many agents logged in, please contact your administrator")."<br />";}
if ($auth_message == 'ERRCAMPAGENTS')
{$VDdisplayMESSAGE = _QXZ("Too many agents logged in to this campaign, please contact your manager")."<br />";}
if ($auth_message == 'ERRCASE') if ($auth_message == 'ERRCASE')
{$VDdisplayMESSAGE = _QXZ("Login incorrect, user names are case sensitive")."<br />";} {$VDdisplayMESSAGE = _QXZ("Login incorrect, user names are case sensitive")."<br />";}
if ($auth_message == 'IPBLOCK') if ($auth_message == 'IPBLOCK')
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
# version: 20220513083301 # version: 20220623083101
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-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. 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. 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>
users-last_login_date Last Login Info <QXZ>This shows the last login attempt date and time, and if there has been a recent failed login attempt. If this modify user form is submitted, then the failed login attempt counter will be reset and the agent can immediately attempt to log in again. If an agent has 10 failed login attempts in a row then they cannot attempt to log in again for at least 15 minutes unless their account is manually reset.</QXZ> users-last_login_date Last Login Info <QXZ>This shows the last login attempt date and time, and if there has been a recent failed login attempt. If this modify user form is submitted, then the failed login attempt counter will be reset and the agent can immediately attempt to log in again. If an agent has 10 failed login attempts in a row then they cannot attempt to log in again for at least 15 minutes unless their account is manually reset.</QXZ>
@@ -338,6 +338,7 @@ campaigns-pause_max_url Pause Max URL <QXZ>If Agent Pause Max Seconds is enabled
campaigns-ready_max_logout Agent Ready Max Seconds Logout <QXZ>If this is set to greater than 0, and the agent has not gone out of READY or CLOSER status in this number of seconds, the agent will automatically be logged out of the agent screen. Default is 0 for disabled.</QXZ> campaigns-ready_max_logout Agent Ready Max Seconds Logout <QXZ>If this is set to greater than 0, and the agent has not gone out of READY or CLOSER status in this number of seconds, the agent will automatically be logged out of the agent screen. Default is 0 for disabled.</QXZ>
campaigns-in_man_dial_next_ready_seconds Inbound Manual Dial Agent Forced Ready Seconds <QXZ>If the Dial Method is set to INBOUND_MAN, and this setting is set to a number greater than 0, this will be the number of seconds the agent has to be in the READY state, able to take an inbound call, before the DIAL NEXT NUMBER agent screen button can be clicked each time. Default is 0, for disabled.</QXZ> campaigns-in_man_dial_next_ready_seconds Inbound Manual Dial Agent Forced Ready Seconds <QXZ>If the Dial Method is set to INBOUND_MAN, and this setting is set to a number greater than 0, this will be the number of seconds the agent has to be in the READY state, able to take an inbound call, before the DIAL NEXT NUMBER agent screen button can be clicked each time. Default is 0, for disabled.</QXZ>
campaigns-in_man_dial_next_ready_seconds_override InMan Agent Forced Ready Override Container <QXZ>If the Inbound Manual Dial Agent Forced Ready Seconds setting above is active, this setting will allow you to override that setting based upon the day-of-the-week and the time-of-day. In a WEEKDAY_TIMERANGE_SECONDS Settings Container you can set multiple lines of overrides, one per line, for this Campaign using the following format with each field separated by commas,<br>day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>The <U>day-of-week</U> can be a single day, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY or it can be set to ALLDAYS for all 7 days a week.<br>The <U>start-time</U> and <U>end-time</U> both need to each be set to a four-digit time, based on 24-hour time, such as 1700 for 5:00pm server time.<br>The <U>inman-force-ready-seconds-override</U> needs to be a number of seconds.<br>For example, if you have a line like the following,<br>MONDAY,0900,0930,30<br>Then on Mondays only from 9:00am to 9:30am, the Agent Forced Ready Seconds will be 30 seconds instead of what it is set to in the Campaign Agent Forced Ready Seconds setting.<br>NOTE, if there is more than one entry that will match the day and time, the last one in the settings container will be the one that is used.<br>Here is an example WEEKDAY_TIMERANGE_SECONDS Settings Container entry,<br><br>;day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>ALLDAYS,1200,1300,30<br>MONDAY,0900,0930,20<br>FRIDAY,1515,1700,60<br>FRIDAY,1725,1730,5</QXZ> campaigns-in_man_dial_next_ready_seconds_override InMan Agent Forced Ready Override Container <QXZ>If the Inbound Manual Dial Agent Forced Ready Seconds setting above is active, this setting will allow you to override that setting based upon the day-of-the-week and the time-of-day. In a WEEKDAY_TIMERANGE_SECONDS Settings Container you can set multiple lines of overrides, one per line, for this Campaign using the following format with each field separated by commas,<br>day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>The <U>day-of-week</U> can be a single day, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY or it can be set to ALLDAYS for all 7 days a week.<br>The <U>start-time</U> and <U>end-time</U> both need to each be set to a four-digit time, based on 24-hour time, such as 1700 for 5:00pm server time.<br>The <U>inman-force-ready-seconds-override</U> needs to be a number of seconds.<br>For example, if you have a line like the following,<br>MONDAY,0900,0930,30<br>Then on Mondays only from 9:00am to 9:30am, the Agent Forced Ready Seconds will be 30 seconds instead of what it is set to in the Campaign Agent Forced Ready Seconds setting.<br>NOTE, if there is more than one entry that will match the day and time, the last one in the settings container will be the one that is used.<br>Here is an example WEEKDAY_TIMERANGE_SECONDS Settings Container entry,<br><br>;day-of-week,start-time,end-time,inman-force-ready-seconds-override<br>ALLDAYS,1200,1300,30<br>MONDAY,0900,0930,20<br>FRIDAY,1515,1700,60<br>FRIDAY,1725,1730,5</QXZ>
campaigns-max_logged_in_agents Max Logged-In Agents <QXZ>This setting allows you to set a maximum number of agents that can be logged into this campaign at any time. Default is 0 for the limit being disabled.</QXZ>
campaigns-customer_gone_seconds Customer Gone Warning Seconds <QXZ>This setting controls the number of seconds after a customer hangs up before a warning that the customer has hung up will appear on the agent screen. Default is 30.</QXZ> campaigns-customer_gone_seconds Customer Gone Warning Seconds <QXZ>This setting controls the number of seconds after a customer hangs up before a warning that the customer has hung up will appear on the agent screen. Default is 30.</QXZ>
campaigns-sip_event_logging SIP Event Actions <QXZ>SIP Event Logging Actions allows you to select a SIP_EVENT_ACTIONS Settings Container that contains all of the rules that you want followed for calls based upon different SIP Event Log triggers. Default is DISABLED.</QXZ> campaigns-sip_event_logging SIP Event Actions <QXZ>SIP Event Logging Actions allows you to select a SIP_EVENT_ACTIONS Settings Container that contains all of the rules that you want followed for calls based upon different SIP Event Log triggers. Default is DISABLED.</QXZ>
campaigns-screen_labels Agent Screen Labels <QXZ>You can select a set of agent screen labels to use with this option. Default is --SYSTEM-SETTINGS-- for the default labels.</QXZ> campaigns-screen_labels Agent Screen Labels <QXZ>You can select a set of agent screen labels to use with this option. Default is --SYSTEM-SETTINGS-- for the default labels.</QXZ>
@@ -442,6 +443,7 @@ lists-status_group_id Status Group Override <QXZ>If this field is set, this Stat
lists-web_form_address Web Form Override <QXZ>This is the custom address that clicking on the WEB FORM button in the agent screen will take you to for calls that come in on this list. If you want to use custom fields in a web form address, you need to add &CF_uses_custom_fields=Y as part of your URL.</QXZ> lists-web_form_address Web Form Override <QXZ>This is the custom address that clicking on the WEB FORM button in the agent screen will take you to for calls that come in on this list. If you want to use custom fields in a web form address, you need to add &CF_uses_custom_fields=Y as part of your URL.</QXZ>
lists-na_call_url No Agent Call URL <QXZ>This web URL address is not seen by the agent, but if it is populated it is called every time a call that is not handled by an agent is hung up or transferred. Uses the same variables as the web form fields and scripts. dispo can be used to retrieve the system-defined disposition for the call. This URL can NOT be a relative path. Default is blank.</QXZ> <QXZ>Custom Fields are not available with this feature.</QXZ> lists-na_call_url No Agent Call URL <QXZ>This web URL address is not seen by the agent, but if it is populated it is called every time a call that is not handled by an agent is hung up or transferred. Uses the same variables as the web form fields and scripts. dispo can be used to retrieve the system-defined disposition for the call. This URL can NOT be a relative path. Default is blank.</QXZ> <QXZ>Custom Fields are not available with this feature.</QXZ>
lists-auto_alt_threshold Auto Alt Threshold Override <QXZ>If Auto Alt-Number Dialing is enabled, and not set to MULTI_LEAD, then this setting will specify the number of call attempts to the lead after which the Auto Alt dialing will no longer place alternate number calls for a specific lead, if the lead is called after this number of attempts then only the main phone number will be called. This option overrides the campaign setting for this feature. Default is -1 for the override being disabled.</QXZ> lists-auto_alt_threshold Auto Alt Threshold Override <QXZ>If Auto Alt-Number Dialing is enabled, and not set to MULTI_LEAD, then this setting will specify the number of call attempts to the lead after which the Auto Alt dialing will no longer place alternate number calls for a specific lead, if the lead is called after this number of attempts then only the main phone number will be called. This option overrides the campaign setting for this feature. Default is -1 for the override being disabled.</QXZ>
lists-dial_prefix Dial Prefix Override <QXZ>This setting will override the campaign Dial Prefix, the campaign Manual Dial Prefix and API dial prefix for calls placed in that campaign to leads within this list. Default is -blank- for disabled.</QXZ>
lists-xferconf_a_dtmf Xfer-Conf Number Override <QXZ>These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank.</QXZ> lists-xferconf_a_dtmf Xfer-Conf Number Override <QXZ>These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank.</QXZ>
lists-user_new_lead_limit User New Lead Limit <QXZ>This setting will limit the number of new leads any user can dial in this list per day. This feature will only work properly if the campaign is set to either the MANUAL or INBOUND_MAN Dial Method and No Hopper dialing is enabled. Default is -1 for disabled.</QXZ> lists-user_new_lead_limit User New Lead Limit <QXZ>This setting will limit the number of new leads any user can dial in this list per day. This feature will only work properly if the campaign is set to either the MANUAL or INBOUND_MAN Dial Method and No Hopper dialing is enabled. Default is -1 for disabled.</QXZ>
lists-default_xfer_group Default Transfer Group <QXZ>This field is the default In-Group that will be automatically selected when the agent opens the transfer-conference frame in their agent interface. If set to NONE, then the campaign or in-group Default Transfer Group will be used. Default is NONE.</QXZ> lists-default_xfer_group Default Transfer Group <QXZ>This field is the default In-Group that will be automatically selected when the agent opens the transfer-conference frame in their agent interface. If set to NONE, then the campaign or in-group Default Transfer Group will be used. Default is NONE.</QXZ>
@@ -1093,7 +1095,8 @@ settings-allow_shared_dial Shared Agent Campaign Dialing <QXZ>This option will a
settings-agent_search_method Agent Search Method Override <QXZ>This option will allow you to override the agent search method that is defined in the dialplan on your dialers on a per in-group and-or per campaign basis. Setting this to -1- will enable the override for both in-groups and campaigns. -2- will enable only for in-groups. -3- will enable only for campaigns. Default is 0 for disabled. WARNING, we do not recommend enabling this setting, it can lead to greatly increased dropped calls if improperly used.</QXZ> settings-agent_search_method Agent Search Method Override <QXZ>This option will allow you to override the agent search method that is defined in the dialplan on your dialers on a per in-group and-or per campaign basis. Setting this to -1- will enable the override for both in-groups and campaigns. -2- will enable only for in-groups. -3- will enable only for campaigns. Default is 0 for disabled. WARNING, we do not recommend enabling this setting, it can lead to greatly increased dropped calls if improperly used.</QXZ>
settings-ofcom_uk_drop_calc UK OFCOM Drop Calculation <QXZ>This option allows you to enable the new UK OFCOM Drop calculation formula for individual campaigns. As of December 2015, OFCOM in the UK changed their method for calculating the drop,or abandon, percentage for an outbound dialing campaign. The new formula includes an estimate of the number of drops that were answering machines. They do this by using the agent-answered percentage of answering machines and subtracting that percentage from the number of drops. Then that new drop number is divided by the total agent-answered human-answered calls PLUS the number of drops. This differs in several ways from the way it had been done, as well as the way the drop percentage has been calculated in the USA and Canada. This new UK drop calculation method can be activated as a system setting AND a campaign option. Both must be enabled for the campaign to use the new method. In order for agent-statused answering machines to be calculated properly, we have added an answering machine status flag that is used to gather those statuses. Default is 0 for inactive.</QXZ> settings-ofcom_uk_drop_calc UK OFCOM Drop Calculation <QXZ>This option allows you to enable the new UK OFCOM Drop calculation formula for individual campaigns. As of December 2015, OFCOM in the UK changed their method for calculating the drop,or abandon, percentage for an outbound dialing campaign. The new formula includes an estimate of the number of drops that were answering machines. They do this by using the agent-answered percentage of answering machines and subtracting that percentage from the number of drops. Then that new drop number is divided by the total agent-answered human-answered calls PLUS the number of drops. This differs in several ways from the way it had been done, as well as the way the drop percentage has been calculated in the USA and Canada. This new UK drop calculation method can be activated as a system setting AND a campaign option. Both must be enabled for the campaign to use the new method. In order for agent-statused answering machines to be calculated properly, we have added an answering machine status flag that is used to gather those statuses. Default is 0 for inactive.</QXZ>
settings-disable_auto_dial Disable Auto-Dial <QXZ>This option is only editable by a system administrator. It will not remove any options from the management web interface, but it will prevent any auto-dialing of leads from happening on the system. Only Manual Dial outbound calls triggered directly by agents will function if this option is enabled. Default is 0 for inactive.</QXZ> settings-disable_auto_dial Disable Auto-Dial <QXZ>This option is only editable by a system administrator. It will not remove any options from the management web interface, but it will prevent any auto-dialing of leads from happening on the system. Only Manual Dial outbound calls triggered directly by agents will function if this option is enabled. Default is 0 for inactive.</QXZ>
settings-auto_dial_limit Ratio Dial Limit <QXZ>This is the maximum limit of the auto dial level in the campaign screen.</QXZ> settings-auto_dial_limit Auto Dial Limit <QXZ>This is the maximum limit of the auto dial level in the campaign screen.</QXZ>
settings-max_logged_in_agents Allow Campaign Agent Limits <QXZ>If enabled, this setting will allow you to set the maximum number of agents that can be logged in to a single campaign at one time, defined at the campaign level. Default is 0 for disabled.</QXZ>
settings-outbound_calls_per_second Max FILL Calls per Second <QXZ>This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.</QXZ> settings-outbound_calls_per_second Max FILL Calls per Second <QXZ>This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.</QXZ>
settings-web_loader_phone_length Web Lead Loader Phone Length <QXZ>This setting allows you to only allow phone numbers of a specific length into the system when loading leads with the web lead loader. The CHOOSE option allows a manager to optionally select a number of phone number digits to check the length by when loading leads one file at a time. Selecting a number option will not allow a manager to choose while loading leads, the check will be used every time the web lead loader is used. Default is DISABLED.</QXZ> settings-web_loader_phone_length Web Lead Loader Phone Length <QXZ>This setting allows you to only allow phone numbers of a specific length into the system when loading leads with the web lead loader. The CHOOSE option allows a manager to optionally select a number of phone number digits to check the length by when loading leads one file at a time. Selecting a number option will not allow a manager to choose while loading leads, the check will be used every time the web lead loader is used. Default is DISABLED.</QXZ>
settings-web_loader_phone_strip Web Lead Loader Phone Prefix Strip <QXZ>If not DISABLED, this setting will strip the entered characters from the beginning of the phone number of a lead when it is loaded into the system by the web lead loader. For example, if this field is set to 0 and the phone number in a lead file is 0123456789, then the phone number would be imported into the system as 123456789. Default is DISABLED.</QXZ> settings-web_loader_phone_strip Web Lead Loader Phone Prefix Strip <QXZ>If not DISABLED, this setting will strip the entered characters from the beginning of the phone number of a lead when it is loaded into the system by the web lead loader. For example, if this field is set to 0 and the phone number in a lead file is 0123456789, then the phone number would be imported into the system as 123456789. Default is DISABLED.</QXZ>