From 48c5edc7a960832efcb1d8b031f64f2ace8752e1 Mon Sep 17 00:00:00 2001 From: mattf Date: Thu, 10 Aug 2006 15:08:29 +0000 Subject: [PATCH] several fixes for consultative transfers git-svn-id: svn://192.168.202.10@150 3d104415-ff17-0410-8863-d5cf3c621b8a --- agi/agi-VDADfixCXFER.agi | 19 +++++++++++++++---- www/agc/manager_send.php | 6 +++++- www/agc/vicidial.php | 8 +++++--- www/vicidial/AST_timeonVDAD_closer.php | 2 +- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/agi/agi-VDADfixCXFER.agi b/agi/agi-VDADfixCXFER.agi index f1e80227..a33c1032 100644 --- a/agi/agi-VDADfixCXFER.agi +++ b/agi/agi-VDADfixCXFER.agi @@ -75,6 +75,7 @@ if ($mday < 10) {$mday = "0$mday";} if ($hour < 10) {$Fhour = "0$hour";} if ($min < 10) {$min = "0$min";} if ($sec < 10) {$sec = "0$sec";} + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; ### begin parsing run-time options ### if (length($ARGV[0])>1) @@ -145,9 +146,12 @@ while() } @EXTEN = split(/\*/, $extension); - $conf_exten = $EXTEN[0]; - $lead_id = $EXTEN[1]; - $user = $EXTEN[2]; + $conf_exten = $EXTEN[0]; + $lead_id = $EXTEN[1]; + $user = $EXTEN[2]; + $phone_code = $EXTEN[3]; + $phone_number = $EXTEN[4]; + $campaign_id = $EXTEN[5]; if ($V) { @@ -160,7 +164,6 @@ if ($V) if ($V) {print STDERR "AGI Environment Dump: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|\n";} - if ($V) {print STDERR "\nCXFERfix : $lead_id $user $channel $uniqueid\n";} $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") @@ -172,6 +175,14 @@ $stmtA = "UPDATE vicidial_live_agents SET channel='$channel',call_server_ip='$se $affected_rows = $dbhA->do($stmtA); if ($M) {print STDERR "-- VDAD vicidial_live_agents update: |$affected_rows|$lead_id\n";} + $CIDlead = sprintf("%010s", $lead_id); + $CIDlead = "C123412345$CIDlead"; +########## INSERT NEW vicidial_auto_calls record ########## +$stmtA = "INSERT INTO vicidial_auto_calls SET channel='$channel',server_ip='$server_ip',uniqueid='$uniqueid',campaign_id='$campaign_id',status='CLOSER',lead_id='$lead_id',phone_code='$phone_code',phone_number='$phone_number',call_time='$SQLdate',call_type='IN',callerid='$CIDlead';"; + if($M){print STDERR "\n\n|$stmtA|\n";} +$affected_rows = $dbhA->do($stmtA); +if ($M) {print STDERR "-- VDAD vicidial_auto_calls insert: |$affected_rows|$lead_id\n";} + $dbhA->disconnect(); print STDERR "\nexiting the CXFERfix app, transferring call to $conf_exten\n"; diff --git a/www/agc/manager_send.php b/www/agc/manager_send.php index e1961665..5bfe93f1 100644 --- a/www/agc/manager_send.php +++ b/www/agc/manager_send.php @@ -113,6 +113,10 @@ if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"]; elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} $user=ereg_replace("[^0-9a-zA-Z]","",$user); $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); @@ -633,7 +637,7 @@ if ($ACTION=="RedirectXtraCX") if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} - $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S"; + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; if ($format=='debug') {echo "\n";} diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index be16a2e5..40599e14 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -116,6 +116,7 @@ # 60808-2232 - Added campaign name to pulldown for login screen # 60809-1603 - Added option to locally transfer consult xfers # 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs # require("dbconnect.php"); @@ -161,8 +162,8 @@ if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} $forever_stop=0; -$version = '2.0.90'; -$build = '60809-1732'; +$version = '2.0.91'; +$build = '60810-1011'; if ($force_logout) { @@ -2061,12 +2062,13 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var redirectdestination = "NEXTAVAILABLE"; var redirectXTRAvalue = XDchannel; var redirecttype_test = document.vicidial_form.xfernumber.value; + var closerxfercamptail = '_L' + document.vicidial_form.xfercode.value; var regRXFvars = new RegExp("CXFER","g"); if ( (redirecttype_test.match(regRXFvars)) && (local_consult_xfers > 0) ) {var redirecttype = 'RedirectXtraCX';} else {var redirecttype = 'RedirectXtra';} - 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; + 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 + "&campaign=CL_" + campaign + '' + closerxfercamptail; } if (taskvar == 'ParK') { diff --git a/www/vicidial/AST_timeonVDAD_closer.php b/www/vicidial/AST_timeonVDAD_closer.php index eb7d3c39..f8ba16b0 100644 --- a/www/vicidial/AST_timeonVDAD_closer.php +++ b/www/vicidial/AST_timeonVDAD_closer.php @@ -173,7 +173,7 @@ $talking_to_print = mysql_num_rows($rslt); while ($i < $ext_count) { - $stmt="select campaign_id from vicidial_auto_calls where uniqueid='$uniqueid[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';"; + $stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $camp_to_print = mysql_num_rows($rslt);