diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index 84ee1605..019edd53 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -128,6 +128,13 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom agent frame to AGENTDIRECT transfers when clicking on the NUMBER TO CALL field in the transfer conference frame +34. Added Calls in Queue display to Agent screen, along with click to grab a + call from this listing. + +35. Added a Re-Queue Call button to send the current call back to an AGENTDIRECT + in-group for the agent to take later + + 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 1819af57..aed2a4b4 100644 --- a/agc_2-X/trunk/agi/agi-VDAD_ALL_inbound.agi +++ b/agc_2-X/trunk/agi/agi-VDAD_ALL_inbound.agi @@ -97,6 +97,7 @@ # 90627-0546 - Added no-agent-no-queue options # 90702-2129 - Fixed rare agent alert bug, added option to send to remote agent as phone*vendor_id # 90709-1648 - Fixed alt-number transfers +# 90712-2307 - Added agent grab call in queue # $script = 'agi-VDAD_ALL_inbound.agi'; @@ -107,7 +108,7 @@ $start_moh=1; $at='@'; $S='*'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=103; +$mysql_log_count=112; $one_mysql_log=0; @@ -1131,6 +1132,17 @@ if ($Uaffected_rows < 1) if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02030'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtB ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02109'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $insert_call_id = "$aryA[0]"; + } + $sthA->finish(); } $stmtA = "INSERT INTO vicidial_closer_log SET lead_id='$insert_lead_id', campaign_id='$channel_group', call_date='$SQLdate', start_epoch='$now_date_epoch', status='QUEUE', phone_code='$phone_code', phone_number='$phone_number', user='VDCL', processed='N', xfercallid='$insert_xfer_id', uniqueid='$uniqueid' $adSQL;"; @@ -1206,8 +1218,8 @@ if ($channel_status < 1) $aco_sub=0; $agent_call_order='order by last_call_finish'; if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} - if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} - if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by vicidial_live_agents.last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by vicidial_live_agents.last_call_finish';} if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} if ($CAMP_callorder =~ /fewest_calls_campaign/i) {$agent_call_order = 'order by vicidial_live_agents.calls_today,vicidial_live_agents.last_call_finish';} @@ -1231,6 +1243,27 @@ $sthArows=$sthA->rows; } $sthA->finish(); + +################################################################ +##### BEGIN Check for Agent Grab of this call +$AGENTgrab=0; +$AGENTuser=''; +$stmtA = "SELECT agent_grab FROM vicidial_auto_calls where auto_call_id='$insert_call_id' and agent_grab!='';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02110'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $AGENTuser = "$aryA[0]"; + $AGENTgrab++; + } +$sthA->finish(); +##### END Check for Agent Grab of this call +################################################################ + + ################################################################ ##### Attempt to send call to an agent on this server only ##### if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) @@ -1250,7 +1283,7 @@ if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) } $sthA->finish(); - if ($rec_countWAIT < 1) + if ( ($rec_countWAIT < 1) || ($AGENTgrab > 0) ) { $qp_countWAIT=0; ### Get count of number of waiting calls in higher priority groups than this call or the same priority with longer wait time @@ -1272,7 +1305,7 @@ if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) $qp_groupWAIT_aco=''; $qp_groupWAIT_aco_SQL=''; $qp_groupWAIT_camp_SQL=''; - if ($qp_countWAIT > 0) + if ( ($qp_countWAIT > 0) && ($AGENTgrab < 1) ) { ### Get group/campaign ids of calls in higher priority groups than this call or the same priority with longer wait time $stmtA = "SELECT distinct campaign_id FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and lead_id != '$insert_lead_id' and ( (queue_priority > '$queue_priority') or (queue_priority = '$queue_priority' and call_time < \"$SQLdateBEGIN\") );"; @@ -1303,7 +1336,7 @@ if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) $sthA->finish(); } - if ($aco_sub>0) + if ( ($aco_sub>0) || ($AGENTgrab > 0) ) { $stmtA = "LOCK TABLES vicidial_live_agents WRITE, vicidial_live_inbound_agents WRITE;"; my $LOCKaffected_rows = $dbhA->do($stmtA); @@ -1316,7 +1349,7 @@ if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) $sthArows=$sthA->rows; $dbhP=$dbhA; $mysql_count='02038'; $MEL_aff_rows=$sthArows; &mysql_error_logging; - if ($sthArows > 0) + if ($sthArows > 0) { @aryA = $sthA->fetchrow_array; $VDADconf_exten = "$aryA[0]"; @@ -1325,18 +1358,34 @@ if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) } $sthA->finish(); + if ($AGENTgrab > 0) + { + $stmtA = "SELECT conf_exten,extension from vicidial_live_agents WHERE user='$AGENTuser';"; + 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; + $dbhP=$dbhA; $mysql_count='02111'; $MEL_aff_rows=$sthArows; &mysql_error_logging; if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADextension = "$aryA[1]"; + $VDADuser = $AGENTuser; + } + $sthA->finish(); + } + if ($sthArows > 0) { $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$insert_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid',comments='INBOUND' where user='$VDADuser';"; $Faffected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02039'; $MEL_aff_rows=$Faffected_rows; &mysql_error_logging; $found_agents=$Faffected_rows; } - else + else { $Faffected_rows=0; } - $stmtA = "UNLOCK TABLES;"; $LOCKaffected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02040'; $MEL_aff_rows=$LOCKaffected_rows; &mysql_error_logging; @@ -1574,7 +1623,7 @@ if ($agent_search_method =~ /^LO|^LB/) } $sthA->finish(); - if ($rec_countWAITrem < 1) + if ( ($rec_countWAITrem < 1) || ($AGENTgrab > 0) ) { $qp_countWAIT=0; ### Get count of number of waiting calls in higher priority groups than this call or the same priority with longer wait time @@ -1596,7 +1645,7 @@ if ($agent_search_method =~ /^LO|^LB/) $qp_groupWAIT_aco=''; $qp_groupWAIT_aco_SQL=''; $qp_groupWAIT_camp_SQL=''; - if ($qp_countWAIT > 0) + if ( ($qp_countWAIT > 0) && ($AGENTgrab < 1) ) { ### Get group/campaign ids of calls in higher priority groups than this call or the same priority with longer wait time $stmtA = "SELECT distinct campaign_id FROM vicidial_auto_calls where status = 'LIVE' and lead_id != '$insert_lead_id' $ADfindSQL and ( (queue_priority > '$queue_priority') or (queue_priority = '$queue_priority' and call_time < \"$SQLdateBEGIN\") );"; @@ -1629,7 +1678,7 @@ if ($agent_search_method =~ /^LO|^LB/) $sthA->finish(); } - if ($aco_sub>0) + if ( ($aco_sub>0) || ($AGENTgrab > 0) ) { $stmtA = "LOCK TABLES vicidial_live_agents WRITE, vicidial_live_inbound_agents WRITE;"; my $LOCKaffected_rows = $dbhA->do($stmtA); @@ -1642,7 +1691,7 @@ if ($agent_search_method =~ /^LO|^LB/) $rec_countCUSTDATA=0; $dbhP=$dbhA; $mysql_count='02058'; $MEL_aff_rows=$sthArows; &mysql_error_logging; - if ($sthArows > 0) + if ($sthArows > 0) { @aryA = $sthA->fetchrow_array; @@ -1652,16 +1701,33 @@ if ($agent_search_method =~ /^LO|^LB/) $VDADserver_ip = "$aryA[3]"; } $sthA->finish(); - if ($AGILOG) {$agi_string = "$VDADuser|$stmtA|"; &agi_output;} + if ($AGILOG) {$agi_string = "$VDADuser|$stmtA|"; &agi_output;} + if ($AGENTgrab > 0) + { + $stmtA = "SELECT conf_exten,extension from vicidial_live_agents WHERE user='$AGENTuser';"; + 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; + $dbhP=$dbhA; $mysql_count='02112'; $MEL_aff_rows=$sthArows; &mysql_error_logging; if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADextension = "$aryA[1]"; + $VDADuser = $AGENTuser; + } + $sthA->finish(); + } + if ($sthArows > 0) { $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$insert_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip',comments='INBOUND' where user='$VDADuser';"; $Faffected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02059'; $MEL_aff_rows=$Faffected_rows; &mysql_error_logging; $found_agents=$Faffected_rows; } - else + else { $Faffected_rows=0; } diff --git a/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl b/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl index e02769f7..e3829495 100644 --- a/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl +++ b/agc_2-X/trunk/bin/ADMIN_keepalive_ALL.pl @@ -29,6 +29,7 @@ # 90621-1425 - Added tracking group for call menus # 90622-2146 - Added 83047777777777 for dynamic agent alert extension # 90630-2259 - Added vicidial_process_triggers functionality +# 90713-0140 - Changed direct dial phone extensions to failover to voicemail forwarder # $DB=0; # Debug flag @@ -884,8 +885,7 @@ if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($r $Piax .= "host=dynamic\n"; } $Pext .= "exten => $dialplan[$i],1,Dial(IAX2/$extension[$i]|$phone_ring_timeout[$i]|)\n"; - $Pext .= "exten => $dialplan[$i],2,Voicemail($voicemail[$i]|u)\n"; - $Pext .= "exten => $dialplan[$i],3,Hangup\n"; + $Pext .= "exten => $dialplan[$i],2,Goto(default,85026666666666$voicemail[$i],1)\n"; $vm .= "$voicemail[$i] => $voicemail[$i],$extension[$i] Mailbox,$email[$i]\n"; @@ -966,8 +966,7 @@ if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($r $Psip .= "host=dynamic\n"; } $Pext .= "exten => $dialplan[$i],1,Dial(SIP/$extension[$i]|$phone_ring_timeout[$i]|)\n"; - $Pext .= "exten => $dialplan[$i],2,Voicemail($voicemail[$i]|u)\n"; - $Pext .= "exten => $dialplan[$i],3,Hangup\n"; + $Pext .= "exten => $dialplan[$i],2,Goto(default,85026666666666$voicemail[$i],1)\n"; $vm .= "$voicemail[$i] => $voicemail[$i],$extension[$i] Mailbox,$email[$i]\n"; 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 d66b65d7..44dcefa8 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -368,6 +368,7 @@ last_update_time TIMESTAMP, alt_dial VARCHAR(6) default 'NONE', queue_priority TINYINT(2) default '0', agent_only VARCHAR(20) default '', +agent_grab VARCHAR(20) default '', index (uniqueid), index (callerid), index (call_time), @@ -656,7 +657,12 @@ survey_fourth_exten VARCHAR(20) default '8300', drop_lockout_time VARCHAR(6) default '0', quick_transfer_button ENUM('N','IN_GROUP','PRESET_1','PRESET_2') default 'N', prepopulate_transfer_preset ENUM('N','PRESET_1','PRESET_2') default 'N', -drop_rate_group VARCHAR(20) default 'DISABLED' +drop_rate_group VARCHAR(20) default 'DISABLED', +view_calls_in_queue ENUM('NONE','ALL','1','2','3','4','5') default 'NONE', +view_calls_in_queue_launch ENUM('AUTO','MANUAL') default 'MANUAL', +grab_calls_in_queue ENUM('Y','N') default 'N', +call_requeue_button ENUM('Y','N') default 'N', +pause_after_each_call ENUM('Y','N') default 'N' ); CREATE TABLE vicidial_lists ( @@ -1721,7 +1727,7 @@ CREATE INDEX phone_number on vicidial_closer_log (phone_number); CREATE INDEX date_user on vicidial_closer_log (call_date,user); CREATE INDEX comment_a on live_inbound_log (comment_a); -UPDATE system_settings SET db_schema_version='1161'; +UPDATE system_settings SET db_schema_version='1162'; GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/agc_2-X/trunk/extras/first_server_install.sql b/agc_2-X/trunk/extras/first_server_install.sql index aa3d9b07..5a4830d5 100644 --- a/agc_2-X/trunk/extras/first_server_install.sql +++ b/agc_2-X/trunk/extras/first_server_install.sql @@ -351,3 +351,4 @@ INSERT INTO vicidial_statuses values('SVYVM','Survey sent to Voicemail','N','N', INSERT INTO vicidial_statuses values('SVYHU','Survey Hungup','N','N','UNDEFINED','N','N','N','N','N'); INSERT INTO vicidial_statuses values('SVYREC','Survey sent to Record','N','N','UNDEFINED','N','N','N','N','N'); INSERT INTO vicidial_statuses values('QVMAIL','Queue Abandon Voicemail Left','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('RQXFER','Re-Queue','N','Y','UNDEFINED','N','N','N','N','N'); diff --git a/agc_2-X/trunk/extras/upgrade_2.2.0.sql b/agc_2-X/trunk/extras/upgrade_2.2.0.sql index 45586e18..bf8ddbc1 100644 --- a/agc_2-X/trunk/extras/upgrade_2.2.0.sql +++ b/agc_2-X/trunk/extras/upgrade_2.2.0.sql @@ -291,3 +291,13 @@ ALTER TABLE vicidial_user_groups ADD agent_status_viewable_groups TEXT; ALTER TABLE vicidial_user_groups ADD agent_status_view_time ENUM('Y','N') default 'N'; UPDATE system_settings SET db_schema_version='1161'; + +ALTER TABLE vicidial_campaigns ADD view_calls_in_queue ENUM('NONE','ALL','1','2','3','4','5') default 'NONE'; +ALTER TABLE vicidial_campaigns ADD view_calls_in_queue_launch ENUM('AUTO','MANUAL') default 'MANUAL'; +ALTER TABLE vicidial_campaigns ADD grab_calls_in_queue ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD call_requeue_button ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD pause_after_each_call ENUM('Y','N') default 'N'; + +ALTER TABLE vicidial_auto_calls ADD agent_grab VARCHAR(20) default ''; + +UPDATE system_settings SET db_schema_version='1162'; diff --git a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt index c1dfb1a2..e19b54a4 100644 --- a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt +++ b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt @@ -228,6 +228,16 @@ This is a selectable list of User Groups and user functions to which members of Agent Status View Time|| This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|| This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|| +Agent View Calls in Queue|| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|| +View Calls in Queue Launch|| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|| +Agent Grab Calls in Queue|| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|| +Agent Call Re-Queue Button|| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|| +Agent Pause After Each Call|| +This option if set to Y will pause the agent after every call automatically. Default is N|| add-file: user_territories.php @@ -241,6 +251,11 @@ You are not allowed to dial into other agent sessions|| QUICK TRANSFER|| Other Agents Status|| Available Agents Transfer|| +Show Calls In Queue|| +Calls In Queue|| +Hide Calls In Queue|| +Calls in Queue View Disabled for this campaign|| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|| ############################################################ MANAGER Manual diff --git a/agc_2-X/trunk/www/agc/images/vdc_LB_requeue_call.gif b/agc_2-X/trunk/www/agc/images/vdc_LB_requeue_call.gif new file mode 100644 index 00000000..c5ef23f3 Binary files /dev/null and b/agc_2-X/trunk/www/agc/images/vdc_LB_requeue_call.gif differ diff --git a/agc_2-X/trunk/www/agc/images/vdc_LB_requeue_call_OFF.gif b/agc_2-X/trunk/www/agc/images/vdc_LB_requeue_call_OFF.gif new file mode 100644 index 00000000..2db22e3a Binary files /dev/null and b/agc_2-X/trunk/www/agc/images/vdc_LB_requeue_call_OFF.gif differ diff --git a/agc_2-X/trunk/www/agc/vdc_db_query.php b/agc_2-X/trunk/www/agc/vdc_db_query.php index 7e6ba19d..84b4d1bb 100644 --- a/agc_2-X/trunk/www/agc/vdc_db_query.php +++ b/agc_2-X/trunk/www/agc/vdc_db_query.php @@ -13,7 +13,7 @@ # - $pass # optional variables: # - $format - ('text','debug') -# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview') +# - $ACTION - ('regCLOSER','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab') # - $stage - ('start','finish','lookup','new') # - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') # - $conf_exten - ('8600011',...) @@ -203,12 +203,13 @@ # 90611-1423 - Fixed agent log and vicidial log bugs # 90705-2008 - Added AGENTSview function # 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue # -$version = '2.2.0-114'; -$build = '90706-1431'; +$version = '2.2.0-115'; +$build = '90712-2303'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=227; +$mysql_log_count=234; $one_mysql_log=0; require("dbconnect.php"); @@ -4251,21 +4252,24 @@ if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) $retry_count++; } - $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} - $retry_count=0; - while ( ($errno > 0) and ($retry_count < 9) ) - { - $rslt=mysql_query($stmt, $link); - $one_mysql_log=1; - $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); - $one_mysql_log=0; - $retry_count++; - } - $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) { ############################################# ##### START QUEUEMETRICS LOGGING LOOKUP ##### @@ -4552,11 +4556,10 @@ if ($ACTION == 'AGENTSview') if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} - $andSQL=' and'; $AGENTviewSQL = "and $AGENTviewSQL"; } if ($comments=='AgentXferViewSelect') - {$AGENTviewSQL .= "$andSQL (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} echo ""; @@ -4566,7 +4569,7 @@ if ($ACTION == 'AGENTSview') if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($rslt) {$agents_count = mysql_num_rows($rslt);} $loop_count=0; - while ($agents_count > $loop_count) + while ($agents_count > $loop_count) { $row=mysql_fetch_row($rslt); $user = $row[0]; @@ -4635,6 +4638,237 @@ if ($ACTION == 'AGENTSview') } +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Calls in Queue View Disabled for this campaign\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data on calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info on the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CALL GROUP     TYPE  
TAKE CALL     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Calls in Queue View Disabled for this campaign\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + ################################################################################ ### CalLBacKLisT - List the USERONLY callbacks for an agent ################################################################################ diff --git a/agc_2-X/trunk/www/agc/vicidial.php b/agc_2-X/trunk/www/agc/vicidial.php index 0edf8d5b..6bc05778 100644 --- a/agc_2-X/trunk/www/agc/vicidial.php +++ b/agc_2-X/trunk/www/agc/vicidial.php @@ -237,10 +237,11 @@ # 90705-1400 - Added Agent view sidebar option # 90706-1432 - Added Agent view transfer selection # 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button # -$version = '2.2.0-215'; -$build = '90709-1649'; +$version = '2.2.0-216'; +$build = '90712-2304'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=61; $one_mysql_log=0; @@ -399,14 +400,17 @@ $SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point $MNwidth = ($MASTERwidth + 330); # 760 - main frame $XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference $HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings $AMwidth = ($MASTERwidth + 270); # 700 - agent mute and preset-dial links $SCwidth = ($MASTERwidth + 230); # 670 - live call seconds counter, sidebar link $SSwidth = ($MASTERwidth + 176); # 606 - scroll script $SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session $HKwidth = ($MASTERwidth + 70); # 500 - Hotkeys button $HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 60); # 370 - Calls in queue link -$SLheight = ($MASTERheight + 125); # 425 - SideBar link +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link $HKheight = ($MASTERheight + 105); # 405 - HotKey active Button $AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links $MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons @@ -1061,7 +1065,7 @@ $VDloginDISPLAY=0; $HKstatusnames = substr("$HKstatusnames", 0, -1); ##### grab the campaign settings - $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -1113,6 +1117,29 @@ $VDloginDISPLAY=0; $default_group_alias = $row[44]; $quick_transfer_button = $row[45]; $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + + + if (preg_match("/Y/",$call_requeue_button)) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if (preg_match("/AUTO/",$view_calls_in_queue_launch)) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if (!preg_match("/NONE/",$view_calls_in_queue)) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} $quick_transfer_button_enabled=0; if (preg_match("/IN_GROUP|PRESET_1|PRESET_2/",$quick_transfer_button)) @@ -2453,6 +2480,10 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var quick_transfer_button_enabled = ''; var prepopulate_transfer_preset = ''; var prepopulate_transfer_preset_enabled = ''; + var view_calls_in_queue = ''; + var view_calls_in_queue_launch = ''; + var view_calls_in_queue_active = ''; + var call_requeue_button = ''; var no_empty_session_warnings = ''; var DiaLControl_auto_HTML = "\"\"Resume\""; var DiaLControl_auto_HTML_ready = "\"\"Resume\""; @@ -3433,7 +3464,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // ################################################################################ // Send Redirect command for live call to Manager sends phone name where call is going to // Covers the following types: XFER, VMAIL, ENTRY, CONF, PARK, FROMPARK, XfeRLOCAL, XfeRINTERNAL, XfeRBLIND, VfeRVMAIL - function mainxfer_send_redirect(taskvar,taskxferconf,taskserverip,taskdebugnote) + function mainxfer_send_redirect(taskvar,taskxferconf,taskserverip,taskdebugnote,taskdispowindow) { blind_transfer=1; // conf_dialed=1; @@ -3690,7 +3721,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} document.vicidial_form.callserverip.value = ''; if( document.images ) { document.images['livecall'].src = image_livecall_OFF.src;} // alert(RedirecTxFEr + "|" + auto_dial_level); - dialedcall_send_hangup(); + dialedcall_send_hangup(taskdispowindow); } } @@ -4245,6 +4276,20 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} {document.vicidial_form.xfernumber.value = CalL_XC_b_NuMber;} } + if (call_requeue_button > 0) + { + var CloserSelectChoices = document.vicidial_form.CloserSelectList.value; + var regCRB = new RegExp("AGENTDIRECT","ig"); + if (CloserSelectChoices.match(regCRB)) + { + document.getElementById("ReQueueCall").innerHTML = "\"Re-Queue"; + } + else + { + document.getElementById("ReQueueCall").innerHTML = "\"Re-Queue"; + } + } + // Build transfer pull-down list var loop_ct = 0; var live_XfeR_HTML = ''; @@ -4900,7 +4945,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} // ################################################################################ // Set the client to READY and start looking for calls (VDADready, VDADpause) - function AutoDial_ReSume_PauSe(taskaction,taskagentlog,taskwrapup) + function AutoDial_ReSume_PauSe(taskaction,taskagentlog,taskwrapup,taskstatuschange) { if (taskaction == 'VDADready') { @@ -4968,7 +5013,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } if (xmlhttp) { - autoDiaLready_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=" + taskaction + "&user=" + user + "&pass=" + pass + "&stage=" + VDRP_stage + "&agent_log_id=" + agent_log_id + "&agent_log=" + taskagentlog + "&wrapup=" + taskwrapup + "&campaign=" + campaign + "&dial_method" + dial_method; + autoDiaLready_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=" + taskaction + "&user=" + user + "&pass=" + pass + "&stage=" + VDRP_stage + "&agent_log_id=" + agent_log_id + "&agent_log=" + taskagentlog + "&wrapup=" + taskwrapup + "&campaign=" + campaign + "&dial_method" + dial_method + "&comments=" + taskstatuschange; xmlhttp.open('POST', 'vdc_db_query.php'); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); xmlhttp.send(autoDiaLready_query); @@ -5357,6 +5402,20 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} {document.vicidial_form.xfernumber.value = CalL_XC_b_NuMber;} } + if (call_requeue_button > 0) + { + var CloserSelectChoices = document.vicidial_form.CloserSelectList.value; + var regCRB = new RegExp("AGENTDIRECT","ig"); + if (CloserSelectChoices.match(regCRB)) + { + document.getElementById("ReQueueCall").innerHTML = "\"Re-Queue"; + } + else + { + document.getElementById("ReQueueCall").innerHTML = "\"Re-Queue"; + } + } + // Build transfer pull-down list var loop_ct = 0; var live_XfeR_HTML = ''; @@ -5818,6 +5877,11 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} if (quick_transfer_button_enabled > 0) {document.getElementById("QuickXfer").innerHTML = "\"QUICK";} + if (call_requeue_button > 0) + { + document.getElementById("ReQueueCall").innerHTML = "\"Re-Queue"; + } + document.vicidial_form.custdatetime.value = ''; if (auto_dial_level == 0) @@ -6622,7 +6686,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { if (VU_agent_choose_ingroups == '1') { - var live_CSC_HTML = "
GROUPS NOT SELECTEDSELECTED GROUPS
"; + var live_CSC_HTML = " - +
GROUPS NOT SELECTEDSELECTED GROUPS
  --- ADD ALL ---
"; var loop_ct = 0; while (loop_ct < INgroupCOUNT) { @@ -6650,6 +6714,9 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var CloserSelectListValue = document.vicidial_form.CloserSelectList.value; var CSCchange = 0; var regCS = new RegExp(" "+taskCSgrp+" ","ig"); + var regCSall = new RegExp("-ALL-----","ig"); + var regCSallADD = new RegExp("-----ADD-ALL-----","ig"); + var regCSallDELETE = new RegExp("-----DELETE-ALL-----","ig"); if ( (CloserSelectListValue.match(regCS)) && (CloserSelectListValue.length > 3) ) { if (taskCSchange == 'DELETE') {CSCchange = 1;} @@ -6658,8 +6725,10 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} { if (taskCSchange == 'ADD') {CSCchange = 1;} } + if (taskCSgrp.match(regCSall)) + {CSCchange = 1;} - // alert(taskCSgrp+"|"+taskCSchange+"|"+CloserSelectListValue.length+"|"+CSCchange+"|"+CSCcolumn) + // alert(taskCSgrp+"|"+taskCSchange+"|"+CloserSelectListValue.length+"|"+CSCchange+"|"+CSCcolumn+"|"+INgroupCOUNT) if (CSCchange==1) { @@ -6673,8 +6742,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var regCSL = new RegExp(" "+VARingroups[loop_ct]+" ","ig"); if (CloserSelectListValue.match(regCSL)) {CSCcolumn = 'DELETE';} else {CSCcolumn = 'ADD';} - if ( (VARingroups[loop_ct] == taskCSgrp) && (taskCSchange == 'DELETE') ) {CSCcolumn = 'ADD';} - if ( (VARingroups[loop_ct] == taskCSgrp) && (taskCSchange == 'ADD') ) {CSCcolumn = 'DELETE';} + if ( ( (VARingroups[loop_ct] == taskCSgrp) && (taskCSchange == 'DELETE') ) || (taskCSgrp.match(regCSallDELETE)) ) {CSCcolumn = 'ADD';} + if ( ( (VARingroups[loop_ct] == taskCSgrp) && (taskCSchange == 'ADD') ) || (taskCSgrp.match(regCSallADD)) ) {CSCcolumn = 'DELETE';} if (CSCcolumn == 'DELETE') @@ -6690,8 +6759,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} } document.vicidial_form.CloserSelectList.value = live_CSC_LIST_value; - document.getElementById("CloserSelectAdd").innerHTML = live_CSC_HTML_ADD; - document.getElementById("CloserSelectDelete").innerHTML = live_CSC_HTML_DELETE; + document.getElementById("CloserSelectAdd").innerHTML = "  
--- ADD ALL ---
" + live_CSC_HTML_ADD; + document.getElementById("CloserSelectDelete").innerHTML = "  
--- DELETE ALL ---
" + live_CSC_HTML_DELETE; } } @@ -6708,6 +6777,15 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";} var CloserSelectChoices = document.vicidial_form.CloserSelectList.value; + if (call_requeue_button > 0) + { + document.getElementById("ReQueueCall").innerHTML = "\"Re-Queue"; + } + else + { + document.getElementById("ReQueueCall").innerHTML = ""; + } + if (VU_agent_choose_ingroups_DV == "MGRLOCK") {CloserSelectChoices = "MGRLOCK";} @@ -7296,6 +7374,136 @@ function phone_number_format(formatphone) { } +// ################################################################################ +// Grab the call in queue and bring it into the session + function callinqueuegrab(CQauto_call_id) + { + if (CQauto_call_id > 0) + { + if ( (AutoDialWaiting == 1) || (VD_live_customer_call==1) || (alt_dial_active==1) ) + { + alert("YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE"); + } + else + { + var xmlhttp=false; + /*@cc_on @*/ + /*@if (@_jscript_version >= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + RAview_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=CALLSINQUEUEgrab&format=text&user=" + user + "&pass=" + pass + "&conf_exten=" + session_id + "&extension=" + extension + "&protocol=" + protocol + "&campaign=" + campaign + "&stage=" + CQauto_call_id; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(RAview_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + var CQgrabresponse = xmlhttp.responseText; + var regCQerror = new RegExp("ERROR","ig"); + if (CQgrabresponse.match(regCQerror)) + { + alert(CQgrabresponse); + } + else + { + AutoDial_ReSume_PauSe("VDADready",'','','NO_STATUS_CHANGE'); + AutoDialWaiting=1; + } + } + } + delete xmlhttp; + } + + } + } + } + + +// ################################################################################ +// Refresh the calls in queue bottombar + function refresh_calls_in_queue(CQcount) + { + if (CQcount > 0) + { + if (even > 0) + { + var xmlhttp=false; + /*@cc_on @*/ + /*@if (@_jscript_version >= 5) + // JScript gives us Conditional compilation, we can cope with old IE versions. + // and security blocked creation of the objects. + try { + xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (E) { + xmlhttp = false; + } + } + @end @*/ + if (!xmlhttp && typeof XMLHttpRequest!='undefined') + { + xmlhttp = new XMLHttpRequest(); + } + if (xmlhttp) + { + RAview_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&ACTION=CALLSINQUEUEview&format=text&user=" + user + "&pass=" + pass + "&conf_exten=" + session_id + "&extension=" + extension + "&protocol=" + protocol + "&campaign=" + campaign + "&stage="; + xmlhttp.open('POST', 'vdc_db_query.php'); + xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); + xmlhttp.send(RAview_query); + xmlhttp.onreadystatechange = function() + { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) + { + // alert(xmlhttp.responseText); + document.getElementById('callsinqueuelist').innerHTML = xmlhttp.responseText + "\n"; + } + } + delete xmlhttp; + } + + } + } + } + + +// ################################################################################ +// Open or close the callsinqueue view bottombar + function show_calls_in_queue(CQoperation) + { + if (CQoperation=='SHOW') + { + document.getElementById("callsinqueuelink").innerHTML = "
Hide Calls In Queue"; + view_calls_in_queue_active=1; + showDiv('callsinqueuedisplay'); + } + else + { + document.getElementById("callsinqueuelink").innerHTML = "Show Calls In Queue"; + view_calls_in_queue_active=0; + hideDiv('callsinqueuedisplay'); + } + } + + // ################################################################################ // Open or close the agents view sidebar or xfer frame function AgentsViewOpen(AVlocation,AVoperation) @@ -7304,7 +7512,7 @@ function phone_number_format(formatphone) { { if (AVlocation=='AgentViewSpan') { - document.getElementById("AgentViewLink").innerHTML = "Agents View -"; + document.getElementById("AgentViewLink").innerHTML = "Agents View -"; agent_status_view_active=1; } showDiv(AVlocation); @@ -7313,7 +7521,7 @@ function phone_number_format(formatphone) { { if (AVlocation=='AgentViewSpan') { - document.getElementById("AgentViewLink").innerHTML = "Agents View +"; + document.getElementById("AgentViewLink").innerHTML = "Agents View +"; agent_status_view_active=0; } hideDiv(AVlocation); @@ -7348,6 +7556,33 @@ function phone_number_format(formatphone) { } +// ################################################################################ +// Call ReQueue call back to AGENTDIRECT queue launch + function call_requeue_launch() + { + document.vicidial_form.xfernumber.value = user; + + // Build transfer pull-down list + var loop_ct = 0; + var live_XfeR_HTML = ''; + var XfeR_SelecT = ''; + while (loop_ct < XFgroupCOUNT) + { + if (VARxfergroups[loop_ct] == 'AGENTDIRECT') + {XfeR_SelecT = 'SELECTED ';} + else {XfeR_SelecT = '';} + live_XfeR_HTML = live_XfeR_HTML + "\n"; + loop_ct++; + } + document.getElementById("XfeRGrouPLisT").innerHTML = ""; + + mainxfer_send_redirect('XfeRLOCAL',lastcustchannel,lastcustserverip,'','NO'); + + document.vicidial_form.DispoSelection.value = 'RQXFER'; + DispoSelect_submit(); + } + + // ################################################################################ // Move the Dispo frame out of the way and change the link to maximize function DispoMinimize() @@ -7569,6 +7804,8 @@ else hideDiv('GroupAliasSelectBox'); hideDiv('AgentViewSpan'); hideDiv('AgentXferViewSpan'); + if (view_calls_in_queue_launch != '1') + {hidediv('callsinqueuedisplay');} if (agentonly_callbacks != '1') {hideDiv('CallbacksButtons');} // if ( (agentcall_manual != '1') && (starting_dial_level > 0) ) @@ -7588,6 +7825,8 @@ else {document.vicidial_form.DiaLAltPhonE.checked=true;} if (agent_status_view != '1') {document.getElementById("AgentViewLink").innerHTML = "";} + if (dispo_check_all_pause == '1') + {document.vicidial_form.DispoSelectStop.checked=true;} document.vicidial_form.LeadLookuP.checked=true; @@ -7698,6 +7937,10 @@ else { refresh_agents_view('AgentViewStatus',agent_status_view); } + if (view_calls_in_queue_active > 0) + { + refresh_calls_in_queue(view_calls_in_queue); + } if (xfer_select_agents_active > 0) { refresh_agents_view('AgentXferViewSelect',agent_status_view); @@ -8292,7 +8535,7 @@ echo "\n";
MAIN SCRIPT VALIGN=MIDDLE ALIGN=CENTER>   LIVE     session ID:     VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:     Live Call
@@ -8436,13 +8679,28 @@ Your Status:
Calls Dialing: px;top:0px;height:500;overflow:scroll;z-index:23;background-color:;" id="AgentViewSpan">\n"; + echo "
  +
 Calls In Queue:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Hide Calls In Queue\n";} + else + {echo "Show Calls In Queue\n";} + } +?> + + + +
  Other Agents Status:  
 
-
+
Available Agents Transfer:
-
Agents View +
+
Agents View +
@@ -8691,7 +8949,9 @@ Available Agents Transfer:
> @@ -8750,6 +9010,11 @@ if ($quick_transfer_button_enabled > 0) {echo "\"Quick
\n";} ?> + 0) + {echo "\"Re-Queue
\n";} +?> +
Hangup Customer

diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index c4bc64db..bfd69c00 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -1071,6 +1071,16 @@ if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_grou elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -1361,6 +1371,11 @@ if ($non_latin < 1) $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); ### DIGITS and Dots $server_ip = ereg_replace("[^\.0-9]","",$server_ip); @@ -1867,11 +1882,12 @@ else # 90628-0924 - Added Text To Speech(TTS) fields # 90628-2213 - Added Multi-campaign drop rate groups # 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause 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.2.0-204'; -$build = '90705-0926'; +$admin_version = '2.2.0-205'; +$build = '90710-1528'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -3730,6 +3746,31 @@ if ($SSqc_features_active > 0)
Default Group Alias - If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty. +
+ +
+Agent View Calls in Queue - If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE. + +
+
+
+View Calls in Queue Launch - This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL. + +
+
+
+Agent Grab Calls in Queue - This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N. + +
+
+
+Agent Call Re-Queue Button - This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N. + +
+
+
+Agent Pause After Each Call - This option if set to Y will pause the agent after every call automatically. Default is N. + @@ -8039,7 +8080,7 @@ if ($ADD==20) { echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; - $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,park_ext,park_file_name,web_form_address,allow_closers,hopper_level,auto_dial_level,next_agent_call,local_call_time,voicemail_ext,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call from vicidial_campaigns where campaign_id='$source_campaign_id';"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; @@ -10522,7 +10563,7 @@ if ($ADD==41) if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) {$hopper_level='100';} - $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group' where campaign_id='$campaign_id';"; + $stmtA="UPDATE vicidial_campaigns set campaign_name='$campaign_name',active='$active',dial_status_a='$dial_status_a',dial_status_b='$dial_status_b',dial_status_c='$dial_status_c',dial_status_d='$dial_status_d',dial_status_e='$dial_status_e',lead_order='$lead_order',allow_closers='$allow_closers',hopper_level='$hopper_level', $adlSQL next_agent_call='$next_agent_call', local_call_time='$local_call_time', voicemail_ext='$voicemail_ext', dial_timeout='$dial_timeout', dial_prefix='$dial_prefix', campaign_cid='$campaign_cid', campaign_vdad_exten='$campaign_vdad_exten', web_form_address='" . mysql_real_escape_string($web_form_address) . "', park_ext='$park_ext', park_file_name='$park_file_name', campaign_rec_exten='$campaign_rec_exten', campaign_recording='$campaign_recording', campaign_rec_filename='$campaign_rec_filename', campaign_script='$script_id', get_call_launch='$get_call_launch', am_message_exten='$am_message_exten', amd_send_to_vmx='$amd_send_to_vmx', xferconf_a_dtmf='$xferconf_a_dtmf',xferconf_a_number='$xferconf_a_number',xferconf_b_dtmf='$xferconf_b_dtmf',xferconf_b_number='$xferconf_b_number',lead_filter_id='$lead_filter_id',alt_number_dialing='$alt_number_dialing',scheduled_callbacks='$scheduled_callbacks',drop_action='$drop_action',drop_call_seconds='$drop_call_seconds',safe_harbor_exten='$safe_harbor_exten',wrapup_seconds='$wrapup_seconds',wrapup_message='$wrapup_message',closer_campaigns='$groups_value',use_internal_dnc='$use_internal_dnc',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -14817,6 +14858,12 @@ if ($ADD==31) $quick_transfer_button = $row[117]; $prepopulate_transfer_preset = $row[118]; $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -15443,6 +15490,16 @@ if ($ADD==31) } echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; echo "\n"; @@ -15531,8 +15588,8 @@ if ($ADD==31) echo "\n"; } - echo "\n"; - echo "
Agent web-client version:     BUILD:               Server:              
-Show conference call channel information

 
+ +Show conference call channel information +

 
Agent Display Queue Count: $NWB#vicidial_campaigns-display_queue_count$NWE
Agent View Calls in Queue: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
View Calls in Queue Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent Grab Calls in Queue: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agent Call Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Pause After Each Call: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Manual Dial List ID: $NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manual Dial Filter: $NWB#vicidial_campaigns-manual_dial_filter$NWE
\n"; + echo "
\n"; echo "
\n";