diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index cbf1264b..95cc581d 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -786,6 +786,10 @@ OTHER CHANGES: generated from the logs in real-time on the back end, they are not recalculated every time the screen loads as with most other reports. +180. Added Timer Action for Dx_DIAL_QUIET options and timer_rebeep.agi script to + allow for periodic beep in agent session required by some organizations + to make customers aware of a recorded line. + diff --git a/agc_2-X/trunk/agi/agi-VDAD_ALL_inbound.agi b/agc_2-X/trunk/agi/agi-VDAD_ALL_inbound.agi index 073ee8b9..92b493d8 100644 --- a/agc_2-X/trunk/agi/agi-VDAD_ALL_inbound.agi +++ b/agc_2-X/trunk/agi/agi-VDAD_ALL_inbound.agi @@ -1176,7 +1176,7 @@ else $stmtA = "INSERT INTO vicidial_daily_max_stats SET stats_date='$YMD',update_time=NOW(),max_inbound='$incalls_count',campaign_id='$channel_group',stats_type='INGROUP',stats_flag='OPEN';"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02195'; $MEL_aff_rows=$sthArows; &mysql_error_logging; - if ($AGILOG) {$agi_string = "DAILY STATS INSERT $channel_group|$affected_rows|$stmtA|\n"; &agi_output;} + if ($AGILOG) {$agi_string = "DAILY STATS INSERT $channel_group|$affected_rows|$stmtA|"; &agi_output;} } diff --git a/agc_2-X/trunk/agi/agi-VDAD_ALL_outbound.agi b/agc_2-X/trunk/agi/agi-VDAD_ALL_outbound.agi index 749f6801..94f67d2f 100644 --- a/agc_2-X/trunk/agi/agi-VDAD_ALL_outbound.agi +++ b/agc_2-X/trunk/agi/agi-VDAD_ALL_outbound.agi @@ -2298,7 +2298,6 @@ while ($drop_timer <= $DROP_TIME) $AGENTDIRECT_user_ids=''; ### find number of outbound calls waiting in line in front of this call $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and lead_id != '$CIDlead_id' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\";"; - if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -2309,12 +2308,12 @@ while ($drop_timer <= $DROP_TIME) $rec_countWAITremOUT = $aryA[0]; } $sthA->finish(); + if ($AGILOG) {$agi_string = "$rec_countWAITremOUT|$stmtA|"; &agi_output;} if (length($closer_campaigns) > 3) { ### find number of inbound calls waiting in line in front of this call - $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and ( (queue_priority > '$VDADqueue_priority') and (call_type='IN') and (campaign_id IN($closer_campaigns)) );"; - if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where ( (status = 'LIVE') and ( (queue_priority > $VDADqueue_priority) and (call_type='IN') and (campaign_id IN($closer_campaigns)) ) );"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -2326,6 +2325,7 @@ while ($drop_timer <= $DROP_TIME) $rec_countWAITremINallowed = $aryA[0]; } $sthA->finish(); + if ($AGILOG) {$agi_string = "$rec_countWAITremIN|$stmtA|"; &agi_output;} } ### if there are inbound calls waiting, see if any READY agents are able to take them @@ -2384,8 +2384,7 @@ while ($drop_timer <= $DROP_TIME) } ### find number of inbound calls from in-groups that READY agents are able to take calls from are waiting in line in front of this call - $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and ( ( (queue_priority > '$VDADqueue_priority') and (call_type='IN') and (campaign_id IN($READY_agent_closer_camps)) ) $AGENTDIRECT_user_ids );"; - if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where ( (status = 'LIVE') and ( ( (queue_priority > $VDADqueue_priority) and (call_type='IN') and (campaign_id IN($READY_agent_closer_camps)) ) ) $AGENTDIRECT_user_ids );"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -2396,6 +2395,7 @@ while ($drop_timer <= $DROP_TIME) $rec_countWAITremIN = $aryA[0]; } $sthA->finish(); + if ($AGILOG) {$agi_string = "$rec_countWAITremIN|$stmtA|"; &agi_output;} } } diff --git a/agc_2-X/trunk/agi/timer_rebeep.agi b/agc_2-X/trunk/agi/timer_rebeep.agi new file mode 100644 index 00000000..3e7b1ccd --- /dev/null +++ b/agc_2-X/trunk/agi/timer_rebeep.agi @@ -0,0 +1,282 @@ +#!/usr/bin/perl +# +# timer_rebeep.agi +# +# This script is designed to be launched from the in-group/campaign timer +# setting to set another trigger event for the next X seconds. Often used for +# calls that need to have a periodic beep signifying that the call is being +# recorded +# +# Just add the following to the System Settings Custom Dialplan Entry +# and set rebuild conf=Y +# exten => 8399,1,Answer +# exten => 8399,n,Wait(1) +# exten => 8399,n,Playback(beep) +# exten => 8399,n,AGI(timer_rebeep.agi,20---D1_DIAL_QUIET) +# exten => 8399,n,Hangup +# +# ; Below are the parameters needed for the script to be run properly +# ; 1. seconds delay before next trigger goes +# ; 2. timer action to launch +# +# Then set the in-groups/campaigns that you want to have this enabled +# "Timer Action" = D1_DIAL_QUIET +# "Timer Action Seconds" = 20 +# "Transfer Conf Number 1" = 8399 +# +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 111227-1418 - First build +# + +$US='_'; + +&get_time_now; + $start_epoch = $now_date_epoch; + +$script = 'timer_rebeep.agi'; + +$now_date_epoch = time(); +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$now_day = "$year-$mon-$mday"; + +($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) {$Fhour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +$US='_'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/rebeep.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +# defaults: +$AGILOG = 2; +$seconds_delay = '20'; +$timer_action = 'D1_DIAL_QUIET'; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/---/, $ARGV[0]); + + if (length($ARGV_vars[0]) > 0) {$seconds_delay = $ARGV_vars[0];} + if (length($ARGV_vars[1]) > 0) {$timer_action = $ARGV_vars[1];} + } + +$|=1; +while() + { + chomp; + last unless length($_); + if ($V) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_context\:\s+(.*)$/) {$context = $1;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + } + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} +$phone_number=$callerid; + + +### Grab vicidial_manager record +$man_id=''; +$stmtA = "SELECT man_id,entry_date,cmd_line_d,server_ip FROM vicidial_manager where callerid='$calleridname' order by man_id desc limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $man_id = $aryA[0]; + $entry_date = $aryA[1]; + $EXTsession = $aryA[2]; + $EXTsession =~ s/Exten: //gi; + while (length($EXTsession) > 7) {$EXTsession =~ s/^.//gi;} + $EXTserver_ip = $aryA[3]; + } +$sthA->finish(); + +$AGI->stream_file('sip-silence'); +$AGI->stream_file('sip-silence'); +$AGI->stream_file('sip-silence'); + + +if (length($man_id) > 0) + { + $stmtA = "SELECT user,UNIX_TIMESTAMP(last_call_time) FROM vicidial_live_agents where server_ip='$EXTserver_ip' and conf_exten='$EXTsession' order by last_update_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $user = $aryA[0]; + $last_call_time = $aryA[1]; + $call_length = ($now_date_epoch - $last_call_time); + $next_length = ($call_length + $seconds_delay - 4); + $sthA->finish(); + + ### update the agent live record for the next timer trigger + $stmtA="UPDATE vicidial_live_agents set external_timer_action='$timer_action',external_timer_action_message='',external_timer_action_seconds='$next_length' where user='$user' and conf_exten='$EXTsession' and server_ip='$EXTserver_ip';"; + $affected_rows = $dbhA->do($stmtA); + print STDERR "|$affected_rows|$man_id|$entry_date|$timer_action|$next_length|$EXTserver_ip|$EXTsession|$stmtA|\n"; + } + else + { + $sthA->finish(); + print STDERR "|ERROR|$man_id|$entry_date|$timer_action|$seconds_delay|$EXTserver_ip|$EXTsession|\n"; + } + } +else + { + print STDERR "|ERROR|$man_id|$entry_date|$timer_action|$seconds_delay|$EXTserver_ip|$EXTsession|\n"; + } + +$dbhA->disconnect(); +exit; + + + + +####################### +##### Subroutines ##### + +sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes + { + ($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) {$Fhour = "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"; + $filedate = "$year$mon$mday$hour$min$sec"; + } + +sub checkresult { + my ($res) = @_; + my $retval; + $tests++; + chomp $res; + if ($res =~ /^200/) { + $res =~ /result=(-?\d+)/; + if (!length($1)) { + print STDERR "FAIL ($res)\n"; + $fail++; + } else { + print STDERR "PASS ($1)\n"; + $pass++; + } + } else { + print STDERR "FAIL (unexpected result '$res')\n"; + $fail++; + } +} + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} + +sub leading_zero($) +{ + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + diff --git a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql index 5189ea8a..4536c050 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -777,7 +777,7 @@ agent_select_territories ENUM('Y','N') default 'N', campaign_calldate DATETIME, crm_popup_login ENUM('Y','N') default 'N', crm_login_address TEXT, -timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY','HANGUP','CALLMENU','EXTENSION','IN_GROUP') default 'NONE', +timer_action VARCHAR(20) default 'NONE', timer_action_message VARCHAR(255) default '', timer_action_seconds MEDIUMINT(7) default '-1', start_call_url TEXT, @@ -997,7 +997,7 @@ no_agent_no_queue ENUM('N','Y','NO_PAUSED') default 'N', no_agent_action ENUM('CALLMENU','INGROUP','DID','MESSAGE','EXTENSION','VOICEMAIL') default 'MESSAGE', no_agent_action_value VARCHAR(255) default 'nbdy-avail-to-take-call|vm-goodbye', web_form_address_two TEXT, -timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY','HANGUP','CALLMENU','EXTENSION','IN_GROUP') default 'NONE', +timer_action VARCHAR(20) default 'NONE', timer_action_message VARCHAR(255) default '', timer_action_seconds MEDIUMINT(7) default '-1', start_call_url TEXT, @@ -2777,7 +2777,7 @@ CREATE TABLE vicidial_log_noanswer_archive LIKE vicidial_log_noanswer; CREATE TABLE vicidial_did_agent_log_archive LIKE vicidial_did_agent_log; CREATE UNIQUE INDEX vdala on vicidial_did_agent_log_archive (uniqueid,call_date,did_route); -UPDATE system_settings SET db_schema_version='1311',db_schema_update_date=NOW(); +UPDATE system_settings SET db_schema_version='1312',db_schema_update_date=NOW(); GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/agc_2-X/trunk/extras/upgrade_2.4.sql b/agc_2-X/trunk/extras/upgrade_2.4.sql index 8cde9404..2f28aaba 100644 --- a/agc_2-X/trunk/extras/upgrade_2.4.sql +++ b/agc_2-X/trunk/extras/upgrade_2.4.sql @@ -1239,3 +1239,7 @@ index (campaign_id) UPDATE system_settings SET db_schema_version='1311',db_schema_update_date=NOW() where db_schema_version < 1311; +ALTER TABLE vicidial_campaigns MODIFY timer_action VARCHAR(20) default 'NONE'; +ALTER TABLE vicidial_inbound_groups MODIFY timer_action VARCHAR(20) default 'NONE'; + +UPDATE system_settings SET db_schema_version='1312',db_schema_update_date=NOW() where db_schema_version < 1312; diff --git a/agc_2-X/trunk/www/agc/vicidial.php b/agc_2-X/trunk/www/agc/vicidial.php index 34d4e1b0..2871cc7e 100644 --- a/agc_2-X/trunk/www/agc/vicidial.php +++ b/agc_2-X/trunk/www/agc/vicidial.php @@ -372,10 +372,11 @@ # 111024-1237 - Added callback_list_calltime option # 111114-0039 - Added scheduled callback and qm-dispo-code fields to API # 111202-1444 - Added grade-random next-agent-call options +# 111227-1940 - Added Timer Action for Dx_DIAL_QUIET options # -$version = '2.4-339c'; -$build = '111202-1444'; +$version = '2.4-340c'; +$build = '111227-1940'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=75; $one_mysql_log=0; @@ -9248,32 +9249,47 @@ function set_length(SLnumber,SLlength_goal,SLdirection) document.vicidial_form.xfername.value = 'D5'; } - function DtMf_PreSet_a_DiaL() + function DtMf_PreSet_a_DiaL(taskquiet) { document.vicidial_form.conf_dtmf.value = CalL_XC_a_Dtmf; document.vicidial_form.xfernumber.value = CalL_XC_a_NuMber; - basic_originate_call(CalL_XC_a_NuMber,'NO','YES',session_id,'YES','','1','0'); + var session_id_dial = session_id; + if (taskquiet == 'YES') + {session_id_dial = '7' + session_id}; + basic_originate_call(CalL_XC_a_NuMber,'NO','YES',session_id_dial,'YES','','1','0'); } - function DtMf_PreSet_b_DiaL() + function DtMf_PreSet_b_DiaL(taskquiet) { document.vicidial_form.conf_dtmf.value = CalL_XC_b_Dtmf; document.vicidial_form.xfernumber.value = CalL_XC_b_NuMber; - basic_originate_call(CalL_XC_b_NuMber,'NO','YES',session_id,'YES','','1','0'); + var session_id_dial = session_id; + if (taskquiet == 'YES') + {session_id_dial = '7' + session_id}; + basic_originate_call(CalL_XC_b_NuMber,'NO','YES',session_id_dial,'YES','','1','0'); } - function DtMf_PreSet_c_DiaL() + function DtMf_PreSet_c_DiaL(taskquiet) { document.vicidial_form.xfernumber.value = CalL_XC_c_NuMber; - basic_originate_call(CalL_XC_c_NuMber,'NO','YES',session_id,'YES','','1','0'); + var session_id_dial = session_id; + if (taskquiet == 'YES') + {session_id_dial = '7' + session_id}; + basic_originate_call(CalL_XC_c_NuMber,'NO','YES',session_id_dial,'YES','','1','0'); } - function DtMf_PreSet_d_DiaL() + function DtMf_PreSet_d_DiaL(taskquiet) { document.vicidial_form.xfernumber.value = CalL_XC_d_NuMber; - basic_originate_call(CalL_XC_d_NuMber,'NO','YES',session_id,'YES','','1','0'); + var session_id_dial = session_id; + if (taskquiet == 'YES') + {session_id_dial = '7' + session_id}; + basic_originate_call(CalL_XC_d_NuMber,'NO','YES',session_id_dial,'YES','','1','0'); } - function DtMf_PreSet_e_DiaL() + function DtMf_PreSet_e_DiaL(taskquiet) { document.vicidial_form.xfernumber.value = CalL_XC_e_NuMber; - basic_originate_call(CalL_XC_e_NuMber,'NO','YES',session_id,'YES','','1','0'); + var session_id_dial = session_id; + if (taskquiet == 'YES') + {session_id_dial = '7' + session_id}; + basic_originate_call(CalL_XC_e_NuMber,'NO','YES',session_id_dial,'YES','','1','0'); } function hangup_timer_xfer() { @@ -11595,6 +11611,26 @@ function phone_number_format(formatphone) { { DtMf_PreSet_e_DiaL(); } + if (timer_action == 'D1_DIAL_QUIET') + { + DtMf_PreSet_a_DiaL('YES'); + } + if (timer_action == 'D2_DIAL_QUIET') + { + DtMf_PreSet_b_DiaL('YES'); + } + if (timer_action == 'D3_DIAL_QUIET') + { + DtMf_PreSet_c_DiaL('YES'); + } + if (timer_action == 'D4_DIAL_QUIET') + { + DtMf_PreSet_d_DiaL('YES'); + } + if (timer_action == 'D5_DIAL_QUIET') + { + DtMf_PreSet_e_DiaL('YES'); + } if ( (timer_action == 'HANGUP') && (VD_live_customer_call==1) ) { hangup_timer_xfer(); diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index 624fd77f..d5e84222 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -3021,12 +3021,13 @@ else # 111122-1333 - Added Inbound Daily Report # 111201-0939 - Added graded-random next-agent-call option # 111223-0043 - Added max stats displays for in-groups and , fixed several ereg issues +# 111227-1938 - Added Timer Action for Dx_DIAL_QUIET options # # 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.4-351a'; -$build = '111223-0043'; +$admin_version = '2.4-352a'; +$build = '111227-1938'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -21190,7 +21191,7 @@ if ($ADD==31) echo "Park Call IVR AGI: $NWB#vicidial_campaigns-ivr_park_call_agi$NWE\n"; - echo "Timer Action: $NWB#vicidial_campaigns-timer_action$NWE\n"; + echo "Timer Action: $NWB#vicidial_campaigns-timer_action$NWE\n"; echo "Timer Action Message: $NWB#vicidial_campaigns-timer_action_message$NWE\n"; @@ -24924,7 +24925,7 @@ if ($ADD==3111) echo "Transfer-Conf Number 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE\n"; - echo "Timer Action: $NWB#vicidial_inbound_groups-timer_action$NWE\n"; + echo "Timer Action: $NWB#vicidial_inbound_groups-timer_action$NWE\n"; echo "Timer Action Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE\n";