From 3915256662bbba557af67883fa81153330b315fa Mon Sep 17 00:00:00 2001 From: mattf Date: Mon, 13 Oct 2008 07:58:56 +0000 Subject: [PATCH] added INBOUND_MAN dial_method to allow for inbound call handling while list dialing manually admin.php, vicidial.php git-svn-id: svn://192.168.202.10@974 3d104415-ff17-0410-8863-d5cf3c621b8a --- UPGRADE | 7 +- docs/LOAD_BALANCING.txt | 8 ++ extras/MySQL_AST_CREATE_tables.sql | 4 +- extras/upgrade_2.0.5.sql | 4 + .../TO_BE_TRANSLATED_2.0.5.txt | 1 + www/agc/vicidial.php | 128 ++++++++++++++++-- www/vicidial/admin.php | 14 +- 7 files changed, 141 insertions(+), 25 deletions(-) diff --git a/UPGRADE b/UPGRADE index 812064f9..30491339 100644 --- a/UPGRADE +++ b/UPGRADE @@ -189,8 +189,11 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom 41. New Slovak translation for the agent screen, as well as new German agent screen translation and new German buttons for the agent screen -42. New Welcome demo screen with links to all translations of agent and admin - screens +42. New Welcome demo and languages screens with links to all translations of + agent and admin screens + +43. Added INBOUND_MAN dial method to allow for inbound call handling by agents + that are also placing manual dial list calls through their campaign lists diff --git a/docs/LOAD_BALANCING.txt b/docs/LOAD_BALANCING.txt index 383e14b1..8c0f4086 100644 --- a/docs/LOAD_BALANCING.txt +++ b/docs/LOAD_BALANCING.txt @@ -172,6 +172,14 @@ If you have any questions or problems please post to the astguiclient-users list exten => 8168,3,Hangup This should help to prevent overwriting of prompts that are copied over from the one server that is used to do prompt creation. +9. On all servers but one you should consider redirecting voicemail direct calls to a single server: + Change this: + exten => _85026666666666.,1,Wait(1) + exten => _85026666666666.,2,Voicemail(${EXTEN:14}|u) + exten => _85026666666666.,3,Hangup + To something like this: + exten => _85026666666666.,1,Dial(${TRUNKIAX2}/${EXTEN},55,o) + diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index 115d97be..d0c1f2e9 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -541,7 +541,7 @@ closer_campaigns TEXT default '', use_internal_dnc ENUM('Y','N') default 'N', allcalls_delay SMALLINT(3) UNSIGNED default '0', omit_phone_code ENUM('Y','N') default 'N', -dial_method ENUM('MANUAL','RATIO','ADAPT_HARD_LIMIT','ADAPT_TAPERED','ADAPT_AVERAGE') default 'MANUAL', +dial_method ENUM('MANUAL','RATIO','ADAPT_HARD_LIMIT','ADAPT_TAPERED','ADAPT_AVERAGE','INBOUND_MAN') default 'MANUAL', available_only_ratio_tally ENUM('Y','N') default 'N', adaptive_dropped_percentage SMALLINT(3) default '3', adaptive_maximum_level VARCHAR(6) default '3.0', @@ -1324,7 +1324,7 @@ INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_of UPDATE system_settings SET qc_last_pull_time=NOW(); -UPDATE system_settings SET db_schema_version='1109'; +UPDATE system_settings SET db_schema_version='1110'; GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/extras/upgrade_2.0.5.sql b/extras/upgrade_2.0.5.sql index 4fd7a578..3a013ca5 100644 --- a/extras/upgrade_2.0.5.sql +++ b/extras/upgrade_2.0.5.sql @@ -481,3 +481,7 @@ INSERT INTO vicidial_statuses values('QVMAIL','Queue Abandon Voicemail Left','N' ALTER TABLE vicidial_inbound_groups MODIFY hold_time_option ENUM('NONE','EXTENSION','VOICEMAIL','IN_GROUP','CALLERID_CALLBACK','DROP_ACTION','PRESS_VMAIL') default 'NONE'; UPDATE system_settings SET db_schema_version='1109'; + +ALTER TABLE vicidial_campaigns MODIFY dial_method ENUM('MANUAL','RATIO','ADAPT_HARD_LIMIT','ADAPT_TAPERED','ADAPT_AVERAGE','INBOUND_MAN') default 'MANUAL'; + +UPDATE system_settings SET db_schema_version='1110'; diff --git a/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt b/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt index a48a34c6..8b951c74 100644 --- a/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt +++ b/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt @@ -332,6 +332,7 @@ Modify DIDs: || To disable the On Hold Prompt, set the interval to 0|| 3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|| 3-Way Call Outbound CallerID:|| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|| ############################################################ CLIENT diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index 20999d44..f3d74022 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -194,10 +194,11 @@ # 81007-0945 - Added three_way_call_cid option for outbound 3way calls # 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements # 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls # -$version = '2.0.5-172'; -$build = '81011-1403'; +$version = '2.0.5-173'; +$build = '81012-1729'; require("dbconnect.php"); @@ -797,7 +798,7 @@ $VDloginDISPLAY=0; $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 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 FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); @@ -840,6 +841,7 @@ $VDloginDISPLAY=0; $CopY_tO_ClipboarD = $row[36]; $use_campaign_dnc = $row[37]; $three_way_call_cid = $row[38]; + $dial_method = $row[39]; if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) { @@ -861,6 +863,8 @@ $VDloginDISPLAY=0; } if ($display_queue_count=='N') {$callholdstatus='0';} + if ($dial_method == 'INBOUND_MAN') + {$VU_closer_default_blended=0;} $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); @@ -2012,6 +2016,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var agentphonelive = 0; var conf_dialed = 0; var leaving_threeway = 0; + var dial_method = ''; var DiaLControl_auto_HTML = "\"Pause\"\"Resume\""; var DiaLControl_auto_HTML_ready = "\"Pause\"\"Resume\""; var DiaLControl_auto_HTML_OFF = "\"Pause\"\"Resume\""; @@ -3601,7 +3606,18 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} inOUT = 'OUT'; all_record = 'NO'; all_record_count=0; - document.getElementById("DiaLControl").innerHTML = "\"Dial"; + if (dial_method == "INBOUND_MAN") + { + auto_dial_level=0; + + AutoDial_ReSume_PauSe('VDADpause'); + + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = "\"Dial"; + } if (document.vicidial_form.LeadPreview.checked==true) { reselect_preview_dial = 1; @@ -3678,8 +3694,17 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } else { + if (dial_method == "INBOUND_MAN") + { + auto_dial_level=starting_dial_level; + + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; + } document.getElementById("MainStatuSSpan").style.background = panel_bgcolor; - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; reselect_alt_dial = 0; } } @@ -3883,7 +3908,16 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } else { - document.getElementById("DiaLControl").innerHTML = "\"Dial"; + if (dial_method == "INBOUND_MAN") + { + auto_dial_level=starting_dial_level; + + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = "\"Dial"; + } var xmlhttp=false; /*@cc_on @*/ @@ -3965,7 +3999,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} document.getElementById("MainStatuSSpan").innerHTML = " Lead skipped, go on to next lead"; - document.getElementById("DiaLControl").innerHTML = "\"Dial"; + if (dial_method == "INBOUND_MAN") + { + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = "\"Dial"; + } } } } @@ -4138,14 +4179,32 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } AutoDialReady = 1; AutoDialWaiting = 1; - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_ready; + if (dial_method == "INBOUND_MAN") + { + auto_dial_level=starting_dial_level; + + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_ready; + } } else { var VDRP_stage = 'PAUSED'; AutoDialReady = 0; AutoDialWaiting = 0; - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; + if (dial_method == "INBOUND_MAN") + { + auto_dial_level=starting_dial_level; + + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; + } } var xmlhttp=false; @@ -4524,7 +4583,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} document.getElementById("VolumeDownSpan").innerHTML = ""; } - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_OFF; + if (dial_method == "INBOUND_MAN") + { + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_OFF; + } if (VDCL_group_id.length > 1) {var group = VDCL_group_id;} @@ -4982,7 +5048,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { document.getElementById("MainStatuSSpan").style.background = panel_bgcolor; document.getElementById("MainStatuSSpan").innerHTML = ''; - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_OFF; + if (dial_method == "INBOUND_MAN") + { + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_OFF; + } reselect_alt_dial = 0; } } @@ -4991,7 +5064,14 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} else { document.getElementById("MainStatuSSpan").style.background = panel_bgcolor; - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_OFF; + if (dial_method == "INBOUND_MAN") + { + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML_OFF; + } reselect_alt_dial = 0; } } @@ -5701,6 +5781,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // Update vicidial_live_agents record with closer in group choices function CloserSelect_submit() { + if (dial_method == "INBOUND_MAN") + {document.vicidial_form.CloserSelectBlended.checked=false;} if (document.vicidial_form.CloserSelectBlended.checked==true) {VICIDiaL_closer_blended = 1;} else @@ -6461,7 +6543,7 @@ else {hideDiv('AgentStatusCalls');} if (agentcallsstatus != '1') {hideDiv('AgentStatusSpan');} - if ( (auto_dial_level != 0) || (manual_dial_preview != 1) ) + if ( ( (auto_dial_level > 0) && (dial_method != "INBOUND_MAN") ) || (manual_dial_preview < 1) ) {clearDiv('DiaLLeaDPrevieW');} if (alt_phone_dialing != 1) {clearDiv('DiaLDiaLAltPhonE');} @@ -6498,6 +6580,13 @@ else hideDiv('CloserSelectBox'); MainPanelToFront(); var CloserSelecting = 0; + if (dial_method == "INBOUND_MAN") + { + dial_method = "MANUAL"; + auto_dial_level=0; + starting_dial_level=0; + document.getElementById("DiaLControl").innerHTML = DiaLControl_manual_HTML; + } } VICIDiaL_closer_login_checked = 1; } @@ -7047,8 +7136,17 @@ else } else { - document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; - clearDiv('DiaLLeaDPrevieW'); + if (dial_method == "INBOUND_MAN") + { + document.getElementById("DiaLControl").innerHTML = "\"Pause\"\"Resume\"
\"Dial"; + if (manual_dial_preview == 1) + {buildDiv('DiaLLeaDPrevieW');} + } + else + { + document.getElementById("DiaLControl").innerHTML = DiaLControl_auto_HTML; + clearDiv('DiaLLeaDPrevieW'); + } } } panel_bgcolor='#E0C2D6'; diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index 0043c73d..4662f3b0 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -1458,11 +1458,12 @@ $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); # 80909-0553 - Added campaign-specific DNC list option and add # 81002-1101 - Added more in-group options and new DID section and user options # 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.5-144'; -$build = '81007-0936'; +$admin_version = '2.0.5-145'; +$build = '81012-1725'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -2665,7 +2666,7 @@ echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -12230,7 +12231,7 @@ if ($ADD==34) echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -13842,7 +13843,8 @@ if ($ADD==3311) echo "\n"; echo "\n"; echo "\n"; - echo "\n"; + # + echo "\n"; echo "\n"; echo "\n"; echo "\n";

-Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. +Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls.
@@ -11323,7 +11324,7 @@ if ($ADD==31) echo "
Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPT OVERRIDE
Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
DID Extension: $NWB#vicidial_inbound_dids-did_pattern$NWE
DID Description: $NWB#vicidial_inbound_dids-did_description$NWE
Active: $NWB#vicidial_inbound_dids-did_active$NWE
DID Route: $NWB#vicidial_inbound_dids-did_route$NWE
DID Route: $NWB#vicidial_inbound_dids-did_route$NWE
Extension: $NWB#vicidial_inbound_dids-extension$NWE
Extension Context: $NWB#vicidial_inbound_dids-exten_context$NWE
Voicemail Box: $NWB#vicidial_inbound_dids-voicemail_ext$NWE