From ecfe4842e2a8c8d783106d502950ff171f0c5daf Mon Sep 17 00:00:00 2001 From: mattf Date: Sat, 11 Oct 2008 20:12:44 +0000 Subject: [PATCH] fixed manual dial consultative transfer bugs in agc folder scripts git-svn-id: svn://192.168.202.10@963 3d104415-ff17-0410-8863-d5cf3c621b8a --- UPGRADE | 6 +++++- www/agc/manager_send.php | 21 ++++++++++++++++++--- www/agc/vdc_db_query.php | 8 +++++--- www/agc/vicidial.php | 32 ++++++++++++++++++-------------- 4 files changed, 46 insertions(+), 21 deletions(-) diff --git a/UPGRADE b/UPGRADE index 9910e6f9..1a08588f 100644 --- a/UPGRADE +++ b/UPGRADE @@ -153,7 +153,7 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom imported either with the CLI lead loader(VICIDIAL_IN_new_leads_file.pl) or the non-agent API script. -35. Added campaign-specific DNC to the system +35. Added campaign-specific DNC filtering lists to the system 36. Added optional dialplan entries to sample extensions.conf to play a not-in- service message for invalid phone numbers that cannot be dialing in North @@ -161,12 +161,16 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom 37. Rewrote Leave-3way function for conference calling to work more reliably on high load systems. + Need to add more vicidial_conferences entries and meetme.conf entries + for this, see the meetme.conf.sample file and the + first_server_install.sql file for more information 38. Added several new features to inbound call handling including: - announce place in line - announce estimated hold time - welcome message options - options for call routing when estimated hold time is too high + - press 1 to leave a voicemail for customers if wait time too high 39. Added DID call routing to allow for basic routing of calls to phones, extensions, voicemail and VICIDIAL inbound groups without editing the diff --git a/www/agc/manager_send.php b/www/agc/manager_send.php index d1fb4402..6a7cf329 100644 --- a/www/agc/manager_send.php +++ b/www/agc/manager_send.php @@ -75,6 +75,7 @@ # 80424-0442 - Added non_latin lookup from system_settings # 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording # 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call # require("dbconnect.php"); @@ -183,8 +184,8 @@ if (!isset($ACTION)) {$ACTION="Originate";} if (!isset($format)) {$format="alert";} if (!isset($ext_priority)) {$ext_priority="1";} -$version = '2.0.5-32'; -$build = '80915-1755'; +$version = '2.0.5-33'; +$build = '81011-1404'; $StarTtime = date("U"); $NOW_DATE = date("Y-m-d"); $NOW_TIME = date("Y-m-d H:i:s"); @@ -397,7 +398,7 @@ if ($ACTION=="HangupConfDial") $rowx=mysql_fetch_row($rslt); $channel=$rowx[0]; $ACTION="Hangup"; - $queryCID = eregi_replace("^.","G",$queryCID); + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... } } } @@ -702,6 +703,13 @@ if ($ACTION=="RedirectXtraCXNeW") if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + } + echo "NeWSessioN|$exten|\n"; echo "|$stmtB|\n"; @@ -897,6 +905,13 @@ if ($ACTION=="RedirectXtraNeW") if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + } + echo "NeWSessioN|$exten|\n"; echo "|$stmtB|\n"; diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index b831ff9a..a4886f59 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -165,10 +165,11 @@ # 80831-0545 - Added extended alt dial number info display support # 80909-1710 - Added support for campaign-specific DNC lists # 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call # -$version = '2.0.5-83'; -$build = '81010-1048'; +$version = '2.0.5-84'; +$build = '81011-1404'; require("dbconnect.php"); @@ -1761,7 +1762,8 @@ if ($stage == "end") $affected_rows = mysql_affected_rows($linkB); } - $stmt = "DELETE from vicidial_auto_calls lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + # $stmt = "DELETE from vicidial_auto_calls lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls lead_id='$lead_id' and campaign_id='$campaign' and callerid LIKE \"M%\";"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index ed246814..20999d44 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -193,10 +193,11 @@ # 81002-1908 - Fixed double-login bug in some conditions # 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 # -$version = '2.0.5-171'; -$build = '81010-1047'; +$version = '2.0.5-172'; +$build = '81011-1403'; require("dbconnect.php"); @@ -2195,12 +2196,12 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if (threeway_end == '0') { + document.vicidial_form.xferchannel.value = ''; + xfercall_send_hangup(); + document.vicidial_form.callchannel.value = ''; document.vicidial_form.callserverip.value = ''; dialedcall_send_hangup(); - - document.vicidial_form.xferchannel.value = ''; - xfercall_send_hangup(); } if( document.images ) { document.images['livecall'].src = image_livecall_OFF.src;} @@ -2940,7 +2941,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} DispO3wayCalLxfernumber = document.vicidial_form.xfernumber.value; DispO3wayCalLcamptail = ''; - xferredirect_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=" + redirecttype + "&format=text&channel=" + redirectvalue + "&call_server_ip=" + redirectserverip + "&queryCID=" + queryCID + "&exten=" + redirectdestination + "&ext_context=" + ext_context + "&ext_priority=1&extrachannel=" + redirectXTRAvalue + "&lead_id=" + document.vicidial_form.lead_id.value + "&phone_code=" + document.vicidial_form.phone_code.value + "&phone_number=" + document.vicidial_form.phone_number.value + "&filename=" + taskdebugnote + "&campaign=" + XfeRSelecT.value + "&session_id=" + session_id + "&agentchannel=" + agentchannel + "&protocol=" + protocol + "&extension=" + extension; + xferredirect_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=" + redirecttype + "&format=text&channel=" + redirectvalue + "&call_server_ip=" + redirectserverip + "&queryCID=" + queryCID + "&exten=" + redirectdestination + "&ext_context=" + ext_context + "&ext_priority=1&extrachannel=" + redirectXTRAvalue + "&lead_id=" + document.vicidial_form.lead_id.value + "&phone_code=" + document.vicidial_form.phone_code.value + "&phone_number=" + document.vicidial_form.phone_number.value + "&filename=" + taskdebugnote + "&campaign=" + XfeRSelecT.value + "&session_id=" + session_id + "&agentchannel=" + agentchannel + "&protocol=" + protocol + "&extension=" + extension + "&auto_dial_level=" + auto_dial_level; if (taskdebugnote == 'FIRST') { @@ -3185,7 +3186,6 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } RedirecTxFEr=0; conf_dialed=0; - leaving_threeway=0; } @@ -4803,7 +4803,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if ( (RedirecTxFEr < 1) && ( (MD_channel_look==1) || (auto_dial_level == 0) ) ) { MD_channel_look=0; - DialTimeHangup(); + DialTimeHangup('MAIN'); } if (form_cust_channel.length > 3) { @@ -5010,10 +5010,10 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var xferchannel = document.vicidial_form.xferchannel.value; var xfer_channel = lastxferchannel; var process_post_hangup=0; - if (MD_channel_look==1) + if ( (MD_channel_look==1) && (leaving_threeway < 1) ) { MD_channel_look=0; - DialTimeHangup(); + DialTimeHangup('XFER'); } if (xferchannel.length > 3) { @@ -5086,9 +5086,9 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // ################################################################################ // Send Hangup command for any Local call that is not in the quiet(7) entry - used to stop manual dials even if no connect - function DialTimeHangup() + function DialTimeHangup(tasktypecall) { - if (RedirecTxFEr < 1) + if ( (RedirecTxFEr < 1) && (leaving_threeway < 1) ) { // alert("RedirecTxFEr|" + RedirecTxFEr); MD_channel_look=0; @@ -5124,8 +5124,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { Nactiveext = null; Nactiveext = xmlhttp.responseText; - // alert(xmlhttp.responseText); - } + // alert(xmlhttp.responseText + "\n" + tasktypecall + "\n" + leaving_threeway); + } } delete xmlhttp; } @@ -5271,6 +5271,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // open web form, then submit disposition function WeBForMDispoSelect_submit() { + leaving_threeway=0; + var DispoChoice = document.vicidial_form.DispoSelection.value; if (DispoChoice.length < 1) {alert("You Must Select a Disposition");} @@ -5294,6 +5296,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // Update vicidial_list lead record with disposition selection function DispoSelect_submit() { + leaving_threeway=0; + var DispoChoice = document.vicidial_form.DispoSelection.value; if (DispoChoice.length < 1) {alert("You Must Select a Disposition");}