diff --git a/UPGRADE b/UPGRADE
index 5dd29615..1fa24813 100644
--- a/UPGRADE
+++ b/UPGRADE
@@ -159,6 +159,9 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom
service message for invalid phone numbers that cannot be dialing in North
America
+37. Rewrote Leave-3way function for external calling to work more reliably on
+ high load systems.
+
diff --git a/bin/AST_conf_update.pl b/bin/AST_conf_update.pl
index 9a1b7a0d..71618553 100644
--- a/bin/AST_conf_update.pl
+++ b/bin/AST_conf_update.pl
@@ -11,6 +11,7 @@
# 60717-1135 - changed to DBI by Marin Blu
# 60717-1536 - changed to use /etc/astguiclient.conf for configs
# 80506-1055 - Added check for vicidial_conferences in 3WAY
+# 80914-1533 - Added kickall for leave-3way calls after one hour
#
# constants
@@ -138,11 +139,76 @@ if ($sthArows > 0)
$sthA->finish();
+($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
+$year = ($year + 1900);
+$mon++;
+if ($mon < 10) {$mon = "0$mon";}
+if ($mday < 10) {$mday = "0$mday";}
+if ($hour < 10) {$hour = "0$hour";}
+if ($min < 10) {$min = "0$min";}
+if ($sec < 10) {$sec = "0$sec";}
+
+$now_date_epoch = time();
+$now_date = "$year-$mon-$mday $hour:$min:$sec";
+
+##### Find date-time one hour in the past
+$secX = time();
+$TDtarget = ($secX - 3600);
+($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget);
+$Tyear = ($Tyear + 1900);
+$Tmon++;
+if ($Tmon < 10) {$Tmon = "0$Tmon";}
+if ($Tmday < 10) {$Tmday = "0$Tmday";}
+if ($Thour < 10) {$Thour = "0$Thour";}
+if ($Tmin < 10) {$Tmin = "0$Tmin";}
+if ($Tsec < 10) {$Tsec = "0$Tsec";}
+ $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec";
+ $TDnum = "$Tyear$Tmon$Tmday$Thour$Tmin$Tsec";
+
+######################################################################
+##### CLEAR vicidial_conferences ENTRIES IN LEAVE-3WAY FOR MORE THAN ONE HOUR
+######################################################################
+@PTextensions=@MT; @PT_conf_extens=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT;
+$stmtA = "SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and leave_3way='1' and leave_3way_datetime < \"$TDSQLdate\";";
+if ($DB) {print "|$stmtA|\n";}
+$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
+$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
+$sthArows=$sthA->rows;
+$rec_count=0;
+while ($sthArows > $rec_count)
+ {
+ @aryA = $sthA->fetchrow_array;
+ $PT_conf_extens[$rec_count] = "$aryA[0]";
+ if ($DB) {print "|$PT_conf_extens[$rec_count]|$PTextensions[$rec_count]|\n";}
+ $rec_count++;
+ }
+$sthA->finish();
+$k=0;
+while ($k < $rec_count)
+ {
+ $local_DEF = 'Local/5555';
+ $local_AMP = '@';
+ $kick_local_channel = "$local_DEF$PT_conf_extens[$k]$local_AMP$ext_context";
+ $queryCID = "ULGC35$TDnum";
+
+ $stmtA="INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','','');";
+ $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n";
+
+ $stmtA = "UPDATE vicidial_conferences set extension='',leave_3way='0' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$k]';";
+ if($DB){print STDERR "\n|$stmtA|\n";}
+ $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n";
+
+ $k++;
+ }
+
+
+
+
######################################################################
##### CHECK vicidial_conferences TABLE #####
######################################################################
@PTextensions=@MT; @PT_conf_extens=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT;
-$stmtA = "SELECT extension,conf_exten from vicidial_conferences where server_ip='$server_ip' and extension LIKE \"3WAY%\";";
+$stmtA = "SELECT extension,conf_exten from vicidial_conferences where server_ip='$server_ip' and leave_3way='1';";
if ($DB) {print "|$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -217,13 +283,14 @@ foreach(@PTextensions)
else
{
$NEWexten[$i] = $PTextensions[$i];
+ $leave_3waySQL='1';
if ($PTextensions[$i] =~ /Xtimeout3$/i) {$NEWexten[$i] =~ s/Xtimeout3$/Xtimeout2/gi;}
if ($PTextensions[$i] =~ /Xtimeout2$/i) {$NEWexten[$i] =~ s/Xtimeout2$/Xtimeout1/gi;}
- if ($PTextensions[$i] =~ /Xtimeout1$/i) {$NEWexten[$i] = '';}
+ if ($PTextensions[$i] =~ /Xtimeout1$/i) {$NEWexten[$i] = ''; $leave_3waySQL='0';}
if ( ($PTextensions[$i] !~ /Xtimeout\d$/i) and (length($PTextensions[$i])> 0) ) {$NEWexten[$i] .= 'Xtimeout3';}
- $stmtA = "UPDATE vicidial_conferences set extension='$NEWexten[$i]' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$i]';";
+ $stmtA = "UPDATE vicidial_conferences set extension='$NEWexten[$i]',leave_3way='$leave_3waySQL' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$i]';";
if($DB){print STDERR "\n|$stmtA|\n";}
$affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n";
}
diff --git a/docs/conf_examples/extensions.conf.sample b/docs/conf_examples/extensions.conf.sample
index eeb6f368..cf10b553 100644
--- a/docs/conf_examples/extensions.conf.sample
+++ b/docs/conf_examples/extensions.conf.sample
@@ -155,6 +155,15 @@ exten => _91NXXNXXXXXX,3,Hangup
; exten => _91XXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
; exten => _91XXXXXXXX,3,Hangup
+; exten => _91XXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91XXXXXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
+; exten => _91XXXXXXXXXXX,3,Hangup
+; exten => _91XXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91XXXXXXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
+; exten => _91XXXXXXXXXXXX,3,Hangup
+; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91XXXXXXXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
+; exten => _91XXXXXXXXXXXXX,3,Hangup
; parameters for call_inbound.agi (7 fields separated by five dashes "-----"):
@@ -249,8 +258,7 @@ exten => 8300,1,Hangup
exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
; VICIDIAL conferences
exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
-exten => _86001XX,1,Meetme,${EXTEN}|F
-exten => _8600200,1,Meetme,${EXTEN}|F
+exten => _8600[1-2]XX,1,Meetme,${EXTEN}|F
; quiet entry and leaving conferences for VICIDIAL (inbound announce and SendDTMF)
exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
; quiet monitor-only extensions for meetme rooms (for room managers)
@@ -381,127 +389,65 @@ exten => 8500998,4,Hangup
; if the status is DNC it will also add them to the internal dnc table
; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
-exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8364,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
+exten => 8364,1,Playback(sip-silence)
+exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,5,Hangup
; VICIDIAL_auto_dialer transfer script:
-exten => 8365,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8365,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
+exten => 8365,1,Playback(sip-silence)
+exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
exten => 8365,5,Hangup
; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
-exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
+exten => 8366,1,Playback(sip-silence)
+exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8366,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
-exten => 8367,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8367,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
+exten => 8367,1,Playback(sip-silence)
+exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
exten => 8367,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balanced:
-exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8368,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
+exten => 8368,1,Playback(sip-silence)
+exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8368,5,Hangup
; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
-exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8369,2,AMD(2000|2000|1000|5000|120|50|4|256)
-exten => 8369,3,AGI(VD_amd.agi,${EXTEN})
-exten => 8369,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
+exten => 8369,1,Playback(sip-silence)
+exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
+exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256)
+exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,7,Hangup
; VICIDIAL auto-dial reminder script
-exten => 8372,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
+exten => 8372,1,Playback(sip-silence)
+exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
; VICIDIAL SURVEY transfer script AMD with Load Balanced:
-exten => 8373,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8373,2,AMD(2000|2000|1000|5000|120|50|4|256)
-exten => 8373,3,AGI(VD_amd.agi,${EXTEN})
-exten => 8373,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
+exten => 8373,1,Playback(sip-silence)
+exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log)
+exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256)
+exten => 8373,4,AGI(VD_amd.agi,${EXTEN})
exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-exten => 8373,6,Hangup
+exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
+exten => 8373,7,Hangup
-;#### VDAD SIP UNREGISTERED TRANSFER ENTRIES ####
-;#### Use these entries IN PLACE OF the entries above if you are using SIP trunks
-;#### and are not registering your provider in sip.conf
-;; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
-;exten => 8364,1,Playback(sip-silence)
-;exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8364,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script:
-;exten => 8365,1,Playback(sip-silence)
-;exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
-;exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
-;exten => 8365,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
-;exten => 8366,1,Playback(sip-silence)
-;exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8366,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
-;exten => 8367,1,Playback(sip-silence)
-;exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
-;exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
-;exten => 8367,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script Load Balanced:
-;exten => 8368,1,Playback(sip-silence)
-;exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8368,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
-;exten => 8369,1,Playback(sip-silence)
-;exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256)
-;exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
-;exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8369,7,Hangup
-;
-;; VICIDIAL auto-dial reminder script
-;exten => 8372,1,Playback(sip-silence)
-;exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
-;exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
-;exten => 8372,5,Hangup
-;
-;; VICIDIAL SURVEY transfer script AMD with Load Balanced:
-;exten => 8373,1,Playback(sip-silence)
-;exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256)
-;exten => 8373,4,AGI(VD_amd.agi,${EXTEN})
-;exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8373,7,Hangup
-;
diff --git a/docs/conf_examples/extensions.conf.sample-1.4 b/docs/conf_examples/extensions.conf.sample-1.4
index 06ea4a9d..5a65eb75 100644
--- a/docs/conf_examples/extensions.conf.sample-1.4
+++ b/docs/conf_examples/extensions.conf.sample-1.4
@@ -155,6 +155,15 @@ exten => _91NXXNXXXXXX,3,Hangup
; exten => _91XXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
; exten => _91XXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
; exten => _91XXXXXXXX,3,Hangup
+; exten => _91XXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91XXXXXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
+; exten => _91XXXXXXXXXXX,3,Hangup
+; exten => _91XXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91XXXXXXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
+; exten => _91XXXXXXXXXXXX,3,Hangup
+; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
+; exten => _91XXXXXXXXXXXXX,2,Dial(${TRUNKloop}/9990011112,,to)
+; exten => _91XXXXXXXXXXXXX,3,Hangup
; parameters for call_inbound.agi (7 fields separated by five dashes "-----"):
; 1. the extension of the phone to ring as defined in the asterisk.phones table
@@ -248,8 +257,7 @@ exten => 8300,1,Hangup
exten => _86000[0-4]X,1,Meetme,${EXTEN}|q
; VICIDIAL conferences
exten => _86000[5-9]X,1,Meetme,${EXTEN}|F
-exten => _86001XX,1,Meetme,${EXTEN}|F
-exten => _8600200,1,Meetme,${EXTEN}|F
+exten => _8600[1-2]XX,1,Meetme,${EXTEN}|F
; quiet entry and leaving conferences for VICIDIAL
exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq
; quiet monitor extensions for meetme rooms (for room managers)
@@ -380,127 +388,65 @@ exten => 8500998,4,Hangup
; if the status is DNC it will also add them to the internal dnc table
; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
-exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8364,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
+exten => 8364,1,Playback(sip-silence)
+exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8364,5,Hangup
; VICIDIAL_auto_dialer transfer script:
-exten => 8365,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8365,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
+exten => 8365,1,Playback(sip-silence)
+exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
exten => 8365,5,Hangup
; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
-exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
+exten => 8366,1,Playback(sip-silence)
+exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
exten => 8366,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
-exten => 8367,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8367,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
+exten => 8367,1,Playback(sip-silence)
+exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
exten => 8367,5,Hangup
; VICIDIAL_auto_dialer transfer script Load Balanced:
-exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8368,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
+exten => 8368,1,Playback(sip-silence)
+exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8368,5,Hangup
; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
-exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8369,2,AMD(2000|2000|1000|5000|120|50|4|256)
-exten => 8369,3,AGI(VD_amd.agi,${EXTEN})
-exten => 8369,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
+exten => 8369,1,Playback(sip-silence)
+exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
+exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256)
+exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
exten => 8369,7,Hangup
; VICIDIAL auto-dial reminder script
-exten => 8372,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
+exten => 8372,1,Playback(sip-silence)
+exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
exten => 8372,5,Hangup
; VICIDIAL SURVEY transfer script AMD with Load Balanced:
-exten => 8373,1,AGI(agi://127.0.0.1:4577/call_log)
-exten => 8373,2,AMD(2000|2000|1000|5000|120|50|4|256)
-exten => 8373,3,AGI(VD_amd.agi,${EXTEN})
-exten => 8373,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
+exten => 8373,1,Playback(sip-silence)
+exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log)
+exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256)
+exten => 8373,4,AGI(VD_amd.agi,${EXTEN})
exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-exten => 8373,6,Hangup
+exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
+exten => 8373,7,Hangup
-;#### VDAD SIP UNREGISTERED TRANSFER ENTRIES ####
-;#### Use these entries IN PLACE OF the entries above if you are using SIP trunks
-;#### and are not registering your provider in sip.conf
-;; VICIDIAL_auto_dialer transfer script for no-agent campaigns:
-;exten => 8364,1,Playback(sip-silence)
-;exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8364,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script:
-;exten => 8365,1,Playback(sip-silence)
-;exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
-;exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO)
-;exten => 8365,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script SURVEY at beginning:
-;exten => 8366,1,Playback(sip-silence)
-;exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8366,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script Load Balance Overflow:
-;exten => 8367,1,Playback(sip-silence)
-;exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
-;exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO)
-;exten => 8367,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script Load Balanced:
-;exten => 8368,1,Playback(sip-silence)
-;exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8368,5,Hangup
-;
-;; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
-;exten => 8369,1,Playback(sip-silence)
-;exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256)
-;exten => 8369,4,AGI(VD_amd.agi,${EXTEN})
-;exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
-;exten => 8369,7,Hangup
-;
-;; VICIDIAL auto-dial reminder script
-;exten => 8372,1,Playback(sip-silence)
-;exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
-;exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN})
-;exten => 8372,5,Hangup
-;
-;; VICIDIAL SURVEY transfer script AMD with Load Balanced:
-;exten => 8373,1,Playback(sip-silence)
-;exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log)
-;exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256)
-;exten => 8373,4,AGI(VD_amd.agi,${EXTEN})
-;exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB)
-;exten => 8373,7,Hangup
-;
diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql
index 68659653..4b00249a 100644
--- a/extras/MySQL_AST_CREATE_tables.sql
+++ b/extras/MySQL_AST_CREATE_tables.sql
@@ -628,7 +628,9 @@ index (campaign_id)
CREATE TABLE vicidial_conferences (
conf_exten INT(7) UNSIGNED NOT NULL,
server_ip VARCHAR(15) NOT NULL,
-extension VARCHAR(100)
+extension VARCHAR(100),
+leave_3way ENUM('0','1') default '0',
+leave_3way_datetime DATETIME
);
CREATE TABLE vicidial_phone_codes (
@@ -1262,7 +1264,7 @@ INSERT INTO vicidial_shifts SET shift_id='24HRMIDNIGHT',shift_name='24 hours 7 d
UPDATE system_settings SET qc_last_pull_time=NOW();
-UPDATE system_settings SET db_schema_version='1105';
+UPDATE system_settings SET db_schema_version='1106';
GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost;
diff --git a/extras/first_server_install.sql b/extras/first_server_install.sql
index 15713ab4..5b5687ec 100644
--- a/extras/first_server_install.sql
+++ b/extras/first_server_install.sql
@@ -56,156 +56,255 @@ INSERT INTO conferences values('8600047','10.10.10.15','');
INSERT INTO conferences values('8600048','10.10.10.15','');
INSERT INTO conferences values('8600049','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600051','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600052','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600053','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600054','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600055','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600056','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600057','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600058','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600059','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600060','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600061','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600062','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600063','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600064','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600065','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600066','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600067','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600068','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600069','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600070','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600071','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600072','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600073','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600074','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600075','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600076','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600077','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600078','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600079','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600080','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600081','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600082','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600083','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600084','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600085','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600086','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600087','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600088','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600089','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600090','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600091','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600092','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600093','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600094','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600095','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600096','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600097','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600098','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600099','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600100','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600101','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600102','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600103','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600104','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600105','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600106','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600107','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600108','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600109','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600110','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600111','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600112','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600113','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600114','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600115','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600116','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600117','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600118','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600119','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600120','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600121','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600122','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600123','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600124','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600125','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600126','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600127','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600128','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600129','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600130','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600131','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600132','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600133','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600134','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600135','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600136','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600137','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600138','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600139','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600140','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600141','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600142','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600143','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600144','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600145','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600146','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600147','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600148','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600149','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600150','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600151','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600152','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600153','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600154','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600155','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600156','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600157','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600158','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600159','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600160','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600161','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600162','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600163','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600164','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600165','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600166','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600167','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600168','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600169','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600170','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600171','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600172','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600173','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600174','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600175','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600176','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600177','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600178','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600179','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600180','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600181','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600182','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600183','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600184','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600185','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600186','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600187','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600188','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600189','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600190','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600191','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600192','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600193','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600194','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600195','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600196','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600197','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600198','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600199','10.10.10.15','');
-INSERT INTO vicidial_conferences values('8600200','10.10.10.15','');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600051','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600052','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600053','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600054','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600055','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600056','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600057','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600058','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600059','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600060','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600061','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600062','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600063','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600064','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600065','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600066','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600067','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600068','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600069','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600070','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600071','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600072','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600073','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600074','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600075','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600076','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600077','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600078','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600079','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600080','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600081','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600082','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600083','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600084','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600085','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600086','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600087','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600088','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600089','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600090','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600091','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600092','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600093','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600094','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600095','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600096','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600097','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600098','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600099','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600100','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600101','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600102','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600103','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600104','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600105','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600106','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600107','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600108','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600109','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600110','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600111','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600112','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600113','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600114','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600115','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600116','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600117','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600118','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600119','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600120','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600121','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600122','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600123','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600124','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600125','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600126','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600127','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600128','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600129','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600130','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600131','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600132','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600133','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600134','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600135','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600136','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600137','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600138','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600139','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600140','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600141','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600142','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600143','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600144','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600145','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600146','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600147','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600148','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600149','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600150','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600151','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600152','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600153','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600154','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600155','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600156','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600157','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600158','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600159','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600160','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600161','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600162','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600163','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600164','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600165','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600166','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600167','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600168','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600169','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600170','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600171','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600172','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600173','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600174','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600175','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600176','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600177','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600178','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600179','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600180','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600181','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600182','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600183','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600184','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600185','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600186','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600187','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600188','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600189','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600190','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600191','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600192','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600193','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600194','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600195','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600196','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600197','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600198','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600199','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600200','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600201','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600202','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600203','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600204','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600205','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600206','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600207','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600208','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600209','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600210','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600211','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600212','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600213','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600214','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600215','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600216','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600217','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600218','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600219','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600220','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600221','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600222','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600223','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600224','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600225','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600226','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600227','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600228','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600229','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600230','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600231','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600232','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600233','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600234','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600235','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600236','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600237','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600238','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600239','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600240','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600241','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600242','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600243','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600244','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600245','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600246','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600247','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600248','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600249','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600250','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600251','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600252','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600253','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600254','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600255','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600256','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600257','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600258','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600259','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600260','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600261','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600262','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600263','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600264','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600265','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600266','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600267','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600268','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600269','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600270','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600271','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600272','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600273','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600274','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600275','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600276','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600277','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600278','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600279','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600280','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600281','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600282','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600283','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600284','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600285','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600286','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600287','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600288','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600289','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600290','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600291','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600292','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600293','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600294','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600295','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600296','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600297','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600298','10.10.10.15');
+INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600299','10.10.10.15');
INSERT INTO vicidial_list values('','2004-01-06','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead01','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
INSERT INTO vicidial_list values('','2004-01-06','','NEW','','','TEST01','101','TESTCAMP','N','1','7275551212','Mr','Matt','X','lead02','1234 Fake St.','','','Clearwater','FL','','33760','USA','M','1970-01-01','','test@test.com','suprise','comments go here','0');
diff --git a/extras/upgrade_2.0.5.sql b/extras/upgrade_2.0.5.sql
index 8f05fbb5..e61a2614 100644
--- a/extras/upgrade_2.0.5.sql
+++ b/extras/upgrade_2.0.5.sql
@@ -401,3 +401,8 @@ UNIQUE INDEX phonecamp (phone_number, campaign_id)
);
UPDATE system_settings SET db_schema_version='1105';
+
+ALTER TABLE vicidial_conferences ADD leave_3way ENUM('0','1') default '0';
+ALTER TABLE vicidial_conferences ADD leave_3way_datetime DATETIME;
+
+UPDATE system_settings SET db_schema_version='1106';
diff --git a/www/agc/manager_send.php b/www/agc/manager_send.php
index 751f34b0..5ec0b6ae 100644
--- a/www/agc/manager_send.php
+++ b/www/agc/manager_send.php
@@ -35,6 +35,7 @@
# - $stage - ('UP','DOWN','2NDXfeR')
# - $session_id - ('8600051')
# - $FROMvdc - ('YES','NO')
+# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...)
# CHANGELOG:
# 50401-1002 - First build of script, Hangup function only
@@ -73,6 +74,7 @@
# 80402-0121 - Fixes for manual dial transfers on some systems
# 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
#
require("dbconnect.php");
@@ -132,10 +134,10 @@ if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];}
elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];}
if (isset($_GET["stage"])) {$stage=$_GET["stage"];}
elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];}
-if (isset($_GET["extension"])) {$extension=$_GET["extension"];}
- elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];}
-if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];}
- elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];}
+if (isset($_GET["extension"])) {$extension=$_GET["extension"];}
+ elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];}
+if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];}
+ elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];}
if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];}
elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];}
if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];}
@@ -143,9 +145,11 @@ if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["e
if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];}
elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];}
if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];}
- elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];}
+ elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];}
if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];}
elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];}
+if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];}
+ elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];}
header ("Content-type: text/html; charset=utf-8");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
@@ -179,11 +183,12 @@ if (!isset($ACTION)) {$ACTION="Originate";}
if (!isset($format)) {$format="alert";}
if (!isset($ext_priority)) {$ext_priority="1";}
-$version = '2.0.5-30';
-$build = '80402-0121';
+$version = '2.0.5-32';
+$build = '80915-1755';
$StarTtime = date("U");
$NOW_DATE = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s");
+$NOWnum = date("YmdHis");
if (!isset($query_date)) {$query_date = $NOW_DATE;}
$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;";
@@ -779,7 +784,7 @@ if ($ACTION=="RedirectXtraNeW")
$row=''; $rowx='';
$channel_liveX=1;
$channel_liveY=1;
- if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($extrachannel)<3) or (strlen($session_id)<3) )
+ if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and ($exten != "NEXTAVAILABLE") ) )
{
$channel_liveX=0;
$channel_liveY=0;
@@ -802,30 +807,52 @@ if ($ACTION=="RedirectXtraNeW")
}
}
}
- else
+ else
{
- if ($exten == "NEXTAVAILABLE")
+ if ($exten == "NEXTAVAILABLE")
{
- $stmt="SELECT conf_exten FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;";
+ $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';";
if ($format=='debug') {echo "\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
- if (strlen($row[0]) > 3)
+ if ($row[0] > 1)
{
- $stmt="UPDATE vicidial_conferences set extension='$user' where server_ip='$server_ip' and conf_exten='$row[0]';";
+ $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;";
if ($format=='debug') {echo "\n";}
$rslt=mysql_query($stmt, $link);
+
+ $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmt, $link);
+ $row=mysql_fetch_row($rslt);
$exten = $row[0];
- $stmt="UPDATE vicidial_conferences set extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';";
+ $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;";
if ($format=='debug') {echo "\n";}
$rslt=mysql_query($stmt, $link);
- $exten = $row[0];
+
+ $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmt, $link);
+
+ $queryCID = "CXAR23$NOWnum";
+ $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmtB, $link);
+
+ $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmt, $link);
+
+ echo "NeWSessioN|$exten|\n";
+ echo "|$stmtB|\n";
+
+ exit;
}
- else
+ else
{
$channel_liveX=0;
- echo "Cannot find empty conference on $server_ip, Redirect command not inserted\n";
+ echo "Cannot find empty vicidial_conference on $server_ip, Redirect command not inserted\n|$stmt|";
if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Cannot find empty conference on $server_ip";}
}
}
diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php
index 54ba6862..6aac304d 100644
--- a/www/agc/vicidial.php
+++ b/www/agc/vicidial.php
@@ -189,10 +189,11 @@
# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature)
# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls
# 80909-1717 - Added support for campaign-specific DNC lists
+# 80915-1754 - Rewrote leave-3way functions for external calling
#
-$version = '2.0.5-167';
-$build = '80909-1717';
+$version = '2.0.5-168';
+$build = '80915-1754';
require("dbconnect.php");
@@ -1307,21 +1308,23 @@ else
else
{
##### grab the next available vicidial_conference room and reserve it
- $stmt="SELECT conf_exten FROM vicidial_conferences where server_ip = '$server_ip' and ((extension='') or (extension is null)) LIMIT 1;";
- $rslt=mysql_query($stmt, $link);
+ $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));";
if ($DB) {echo "$stmt\n";}
- $free_conf_ct = mysql_num_rows($rslt);
- $i=0;
- while ($i < $free_conf_ct)
- {
- $row=mysql_fetch_row($rslt);
- $session_id =$row[0];
- $i++;
- }
- $stmt="UPDATE vicidial_conferences set extension='$SIP_user' where server_ip='$server_ip' and conf_exten='$session_id';";
$rslt=mysql_query($stmt, $link);
- print "\n";
+ $row=mysql_fetch_row($rslt);
+ if ($row[0] > 0)
+ {
+ $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmt, $link);
+ $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$user';";
+ if ($format=='debug') {echo "\n";}
+ $rslt=mysql_query($stmt, $link);
+ $row=mysql_fetch_row($rslt);
+ $session_id = $row[0];
+ }
+ print "\n";
}
### mark leads that were not dispositioned during previous calls as ERI
@@ -1997,6 +2000,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var inOUT = 'OUT';
var useIE = ' echo $useIE ?>';
var random = ' echo $random ?>';
+ var threeway_end = 0;
+ var agentphonelive = 0;
var DiaLControl_auto_HTML = "
";
var DiaLControl_auto_HTML_ready = "
";
var DiaLControl_auto_HTML_OFF = "
";
@@ -2172,15 +2177,21 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
// place 3way and customer into other conference and fake-hangup the lines
function leave_3way_call(tempvarattempt)
{
+ threeway_end=0;
+
mainxfer_send_redirect('3WAY','','',tempvarattempt);
- document.vicidial_form.callchannel.value = '';
- document.vicidial_form.callserverip.value = '';
- if( document.images ) { document.images['livecall'].src = image_livecall_OFF.src;}
- dialedcall_send_hangup();
+ if (threeway_end == '0')
+ {
+ document.vicidial_form.callchannel.value = '';
+ document.vicidial_form.callserverip.value = '';
+ dialedcall_send_hangup();
- document.vicidial_form.xferchannel.value = '';
- xfercall_send_hangup();
+ document.vicidial_form.xferchannel.value = '';
+ xfercall_send_hangup();
+ }
+
+ if( document.images ) { document.images['livecall'].src = image_livecall_OFF.src;}
}
// ################################################################################
@@ -2296,10 +2307,11 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
else
{
var dialnum = tasknum;
- if (protocol == 'EXTERNAL')
+ if ( (protocol == 'EXTERNAL') || (protocol == 'Local') )
{
var protodial = 'Local';
- var extendial = extension + "@" + ext_context;
+ var extendial = extension;
+ // var extendial = extension + "@" + ext_context;
}
else
{
@@ -2321,7 +2333,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
- alert(xmlhttp.responseText);
+ // alert(xmlhttp.responseText);
if ((taskdialvalue.length > 0) && (tasknowait != 'YES'))
{
@@ -2523,6 +2535,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var LMAalter=0;
var LMAcontent_change=0;
var LMAcontent_match=0;
+ agentphonelive=0;
var conv_start=-1;
var live_conf_HTML = "LIVE CALLS IN YOUR SESSION:
| Select a CallBack Date : @@ -7420,7 +7463,7 @@ Your Status: Calls Dialing: - + |