diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index 6fcf8e6f..0f5045a8 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -237,6 +237,12 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom more accurate time zone encoding. The data is NOT included but can be purchased from the VICIDIAL Group. +54. Added System Settings option to disable auto-dialing(list dialing) from the + system to simplify administration for inbound-only call centers + +55. Added patch and configuration options to allow VICIDIAL to work with Sangoma + ParaXip CPD(Call Progress Detection) + 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 82b73bcf..b1ff42c0 100644 --- a/agc_2-X/trunk/agi/agi-VDAD_ALL_outbound.agi +++ b/agc_2-X/trunk/agi/agi-VDAD_ALL_outbound.agi @@ -45,7 +45,7 @@ #exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact-----OPTOUT-----DNC) #exten => 8366,5,Hangup # -# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 # # changes: # 80218-2027 - First Build @@ -58,12 +58,13 @@ # 81020-0235 - Fixed Drop hangup bug and other small bugs # 81104-0255 - Changed code to alter callerIDnumber for remote agents to the number of the caller # 81105-0424 - Added MySQL error logging +# 90202-0505 - Added CPD AMD detection and routing options # $script = 'agi-VDAD_ALL_outbound.agi'; $AGILOG = '0'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=53; +$mysql_log_count=55; $one_mysql_log=0; @@ -377,7 +378,7 @@ if ($affected_rows > 0) $sthA->finish(); ### Grab campaign values from the database - $stmtA = "SELECT drop_call_seconds,drop_action,safe_harbor_exten,concurrent_transfers,next_agent_call,voicemail_ext,drop_inbound_group,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $stmtA = "SELECT drop_call_seconds,drop_action,safe_harbor_exten,concurrent_transfers,next_agent_call,voicemail_ext,drop_inbound_group,use_internal_dnc,use_campaign_dnc,cpd_amd_action,am_message_exten FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -398,6 +399,8 @@ if ($affected_rows > 0) $drop_inbound_group = "$aryA[6]"; $use_internal_dnc = "$aryA[7]"; $use_campaign_dnc = "$aryA[8]"; + $cpd_amd_action = "$aryA[9]"; + $am_message_exten = "$aryA[10]"; $rec_count++; } $sthA->finish(); @@ -876,17 +879,140 @@ if ($channel_status < 1) } } - $rec_countCUSTDATA=0; - $rec_countWAIT=0; - $cbc=0; - $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 =~ /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/i) {$aco_sub=1; $agent_call_order = 'order by calls_today';} + ############# BEGIN CPD AMD SECTION ############################ + if ($cpd_amd_action =~ /DISPO|MESSAGE/) + { + $stmtA = "SELECT count(*) FROM vicidial_cpd_log where callerid='$callerid' and result='Answering-Machine' and status='NEW';"; + 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='01054'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_amd = "$aryA[0]"; + } + $sthA->finish(); + + if ($cpd_amd > 0) + { + if ($AGILOG) {$agi_string = "CALL CPD AMD Detected $channel $callerid|$drop_timer"; &agi_output;} + + ($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01048'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='AA',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01049'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + } + + if ($cpd_amd_action =~ /MESSAGE/) + { + if (length($am_message_exten)>0) + {$DROPexten = "$am_message_exten";} + } + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='AA',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='AGENT' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01050'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD CPD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='AA' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01051'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD CPD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01052'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD CPD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_cpd_log SET status='PROCESSED',cpd_seconds='$drop_timer' where callerid='$callerid' and result='Answering-Machine' and status='NEW';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01055'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + + $AGI->stream_file('ding'); # stop music-on-hold process + + sleep(1); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, CPD transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01053'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL call_hungup CPD timout: |$CIDlead_id|$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + $AGI->hangup(); + } + + } + + } + ############# END CPD AMD SECTION ############################ + + +$rec_countCUSTDATA=0; +$rec_countWAIT=0; +$cbc=0; +$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 =~ /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/i) {$aco_sub=1; $agent_call_order = 'order by calls_today';} ##### Attempt to send call to an agent on this server only ##### diff --git a/agc_2-X/trunk/bin/AST_VDauto_dial.pl b/agc_2-X/trunk/bin/AST_VDauto_dial.pl index c748b3b5..3a2d728e 100644 --- a/agc_2-X/trunk/bin/AST_VDauto_dial.pl +++ b/agc_2-X/trunk/bin/AST_VDauto_dial.pl @@ -73,6 +73,7 @@ # 81013-2216 - Fixed improper deletion of auto_calls records # 81020-0125 - Bug fixes from changes to auto_calls deletion changes # 90124-0721 - Added parameter to ensure no auto-dial calls are placed for MANUAL campaigns +# 90202-0203 - Added outbound_autodial_active option to halt all dialing # @@ -229,21 +230,22 @@ $sthA->finish(); ############################################# ##### START QUEUEMETRICS LOGGING LOOKUP ##### -$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; +$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,outbound_autodial_active FROM system_settings;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; $rec_count=0; while ($sthArows > $rec_count) { - @aryA = $sthA->fetchrow_array; - $enable_queuemetrics_logging = "$aryA[0]"; - $queuemetrics_server_ip = "$aryA[1]"; - $queuemetrics_dbname = "$aryA[2]"; - $queuemetrics_login= "$aryA[3]"; - $queuemetrics_pass = "$aryA[4]"; - $queuemetrics_log_id = "$aryA[5]"; - $rec_count++; + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $outbound_autodial_active = "$aryA[6]"; + $rec_count++; } $sthA->finish(); ##### END QUEUEMETRICS LOGGING LOOKUP ##### @@ -311,6 +313,19 @@ while($one_day_interval > 0) $campaigns_update = ''; $CPcount=0; + ############################################# + ##### Check if auto-dialing is enabled + $stmtA = "SELECT outbound_autodial_active FROM system_settings;"; + $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; + $outbound_autodial_active = "$aryA[0]"; + } + $sthA->finish(); + ##### Get a listing of the users that are active and ready to take calls ##### Also get a listing of the campaigns and campaigns/serverIP that will be used $stmtA = "SELECT user,server_ip,campaign_id,conf_exten,status FROM vicidial_live_agents where status IN($active_agents) and server_ip='$server_ip' and last_update_time > '$BDtsSQLdate' order by last_call_time"; @@ -699,7 +714,7 @@ while($one_day_interval > 0) $user_CIPct = 0; foreach(@DBIPcampaign) { - if ($DBIPdial_method[$user_CIPct] =~ /MANUAL|INBOUND_MAN/) + if ( ($DBIPdial_method[$user_CIPct] =~ /MANUAL|INBOUND_MAN/) || ($outbound_autodial_active < 1) ) { $event_string="$DBIPcampaign[$user_CIPct] $DBIPaddress[$user_CIPct]: MANUAL DIAL CAMPAIGN, NO DIALING"; &event_logger; diff --git a/agc_2-X/trunk/bin/AST_manager_listen.pl b/agc_2-X/trunk/bin/AST_manager_listen.pl index 4e0a795e..a6b699e6 100644 --- a/agc_2-X/trunk/bin/AST_manager_listen.pl +++ b/agc_2-X/trunk/bin/AST_manager_listen.pl @@ -308,7 +308,7 @@ while($one_day_interval > 0) } ##### parse through all other important events ##### - if ( ($input_lines[$ILcount] =~ /State: Ringing|State: Up|State: Dialing|Event: Newstate|Event: Hangup|Event: Newcallerid|Event: Shutdown/) && ($input_lines[$ILcount] !~ /ZOMBIE/) ) + if ( ($input_lines[$ILcount] =~ /State: Ringing|State: Up|State: Dialing|Event: Newstate|Event: Hangup|Event: Newcallerid|Event: Shutdown|Event: CPD-Result/) && ($input_lines[$ILcount] !~ /ZOMBIE/) ) { $input_lines[$ILcount] =~ s/^\n|^\n\n//gi; @command_line=split(/\n/, $input_lines[$ILcount]); @@ -552,7 +552,39 @@ while($one_day_interval > 0) # } # } } - + if ($input_lines[$ILcount] =~ /Event: CPD-Result/) + { + # Event: CPD-Result + # Privilege: system,all + # ChannelDriver: SIP + # Channel: SIP/paraxip-out-08291448 + # CallerIDName: V0202034729000030735 + # Uniqueid: 1233564450.141 + # Result: Answering-Machine + if ( ($command_line[3] =~ /^Channel: /i) && ($command_line[5] =~ /^Uniqueid: /i) ) + { + &get_time_now; + + $channel = $command_line[3]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[4]; + $callid =~ s/CallerIDName: |\s*$//gi; + $uniqueid = $command_line[5]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $result = $command_line[6]; + $result =~ s/Result: |\s*$//gi; + if (length($result)>0) + { + $lead_id = substr($callid, 11, 9); + $lead_id = ($lead_id + 0); + $stmtA = "INSERT INTO vicidial_cpd_log set channel='$channel', uniqueid='$uniqueid', callerid='$callid', server_ip='$server_ip', lead_id='$lead_id', event_date='$now_date', result='$result';"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows CPD_log inserted|\n";} + } + } + } + } $ILcount++; } 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 8fbe99c1..c8cc8865 100644 --- a/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql +++ b/agc_2-X/trunk/extras/MySQL_AST_CREATE_tables.sql @@ -609,7 +609,8 @@ web_form_target VARCHAR(100) NOT NULL default 'vdcwebform', vtiger_search_category VARCHAR(100) default 'LEAD', vtiger_create_call_record ENUM('Y','N') default 'Y', vtiger_create_lead_record ENUM('Y','N') default 'Y', -vtiger_screen_login ENUM('Y','N') default 'Y' +vtiger_screen_login ENUM('Y','N') default 'Y', +cpd_amd_action ENUM('DISABLED','DISPO','MESSAGE') default 'DISABLED' ); CREATE TABLE vicidial_lists ( @@ -1046,7 +1047,9 @@ vtiger_server_ip VARCHAR(15), vtiger_dbname VARCHAR(50), vtiger_login VARCHAR(50), vtiger_pass VARCHAR(50), -vtiger_url VARCHAR(255) +vtiger_url VARCHAR(255), +qc_features_active ENUM('1','0') default '0', +outbound_autodial_active ENUM('1','0') default '1' ); CREATE TABLE vicidial_campaigns_list_mix ( @@ -1349,6 +1352,21 @@ longitude VARCHAR(17) CREATE INDEX areaprefix on vicidial_nanpa_prefix_codes (areacode,prefix); +CREATE TABLE vicidial_cpd_log ( +cpd_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +channel VARCHAR(100) NOT NULL, +uniqueid VARCHAR(20), +callerid VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +lead_id INT(9) UNSIGNED, +event_date DATETIME, +result VARCHAR(20), +status ENUM('NEW','PROCESSED') default 'NEW', +cpd_seconds DECIMAL(7,2) default '0', +index(uniqueid), +index(callerid), +index(lead_id) +); ALTER TABLE vicidial_campaign_server_stats ENGINE=HEAP; @@ -1437,7 +1455,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='1127'; +UPDATE system_settings SET db_schema_version='1128'; GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@localhost; diff --git a/agc_2-X/trunk/extras/upgrade_2.0.5.sql b/agc_2-X/trunk/extras/upgrade_2.0.5.sql index e81df4ef..d4c20ce7 100644 --- a/agc_2-X/trunk/extras/upgrade_2.0.5.sql +++ b/agc_2-X/trunk/extras/upgrade_2.0.5.sql @@ -659,3 +659,26 @@ longitude VARCHAR(17) CREATE INDEX areaprefix on vicidial_nanpa_prefix_codes (areacode,prefix); UPDATE system_settings SET db_schema_version='1127'; + +ALTER TABLE system_settings ADD qc_features_active ENUM('1','0') default '0'; +ALTER TABLE system_settings ADD outbound_autodial_active ENUM('1','0') default '1'; + +CREATE TABLE vicidial_cpd_log ( +cpd_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +channel VARCHAR(100) NOT NULL, +uniqueid VARCHAR(20), +callerid VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +lead_id INT(9) UNSIGNED, +event_date DATETIME, +result VARCHAR(20), +status ENUM('NEW','PROCESSED') default 'NEW', +cpd_seconds DECIMAL(7,2) default '0', +index(uniqueid), +index(callerid), +index(lead_id) +); + +ALTER TABLE vicidial_campaigns ADD cpd_amd_action ENUM('DISABLED','DISPO','MESSAGE') default 'DISABLED'; + +UPDATE system_settings SET db_schema_version='1128'; diff --git a/agc_2-X/trunk/extras/vicidial_paraxip_chan_sip.patch b/agc_2-X/trunk/extras/vicidial_paraxip_chan_sip.patch new file mode 100644 index 00000000..2109d383 --- /dev/null +++ b/agc_2-X/trunk/extras/vicidial_paraxip_chan_sip.patch @@ -0,0 +1,32 @@ +--- ./channels/chan_sip.c 2008-12-23 11:33:09.000000000 -0500 ++++ ./channels/chan_sip.c 2009-02-02 03:43:48.000000000 -0500 +@@ -6964,6 +6964,7 @@ + char tmp2[SIPBUFSIZE/2]; + const char *l = NULL, *n = NULL; + const char *urioptions = ""; ++ const char *paraxipcpd = ";cpd=on"; /* string used to enable ParaXip's CPD */ + + if (ast_test_flag(&p->flags[0], SIP_USEREQPHONE)) { + const char *s = p->username; /* being a string field, cannot be NULL */ +@@ -7050,6 +7051,9 @@ + if (p->options && !ast_strlen_zero(p->options->uri_options)) + ast_build_string(&invite, &invite_max, ";%s", p->options->uri_options); + ++ /* Tell ParaXip to enable CPD */ ++ ast_build_string(&invite, &invite_max, "%s", paraxipcpd); ++ + ast_string_field_set(p, uri, invite_buf); + + if (sipmethod == SIP_NOTIFY && !ast_strlen_zero(p->theirtag)) { +@@ -12214,6 +12218,11 @@ + ast_set_flag(&p->flags[0], SIP_PENDINGBYE); + } + ++ /* See what ParaXip had to say */ ++ char cpd_result[SIPBUFSIZE]; ++ ast_copy_string(cpd_result, get_header(req, "CPD-Result"), sizeof(cpd_result)); ++ manager_event(EVENT_FLAG_SYSTEM, "CPD-Result", "ChannelDriver: SIP\r\nChannel: %s\r\nCallerIDName: %s\r\nUniqueid: %s\r\nResult: %s\r\n", p->owner->name, p->owner->cid.cid_name, p->owner->uniqueid, cpd_result); ++ + /* Parse contact header for continued conversation */ + /* When we get 200 OK, we know which device (and IP) to contact for this call */ + /* This is important when we have a SIP proxy between us and the phone */ diff --git a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt index eb80ebde..16b1f63f 100644 --- a/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt +++ b/agc_2-X/trunk/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt @@ -377,6 +377,16 @@ Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settin Vtiger Screen Login:|| Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|| Alert Enabled:|| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|| +QC Features Active:|| +Outbound Auto-Dial Active:|| +Close Panel|| +Choose Report Display Options|| +To select more than 1 campaign, hold down the Ctrl key and click|| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|| +CPD AMD Action:|| + ############################################################ CLIENT diff --git a/agc_2-X/trunk/www/agc/vicidial.php b/agc_2-X/trunk/www/agc/vicidial.php index 6c4fc077..71d49541 100644 --- a/agc_2-X/trunk/www/agc/vicidial.php +++ b/agc_2-X/trunk/www/agc/vicidial.php @@ -216,10 +216,11 @@ # 90120-1719 - Added API pause/resume and number dial functionality # 90126-2302 - Added Vtiger login option and agent alert option # 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox # -$version = '2.0.5-195'; -$build = '90128-0230'; +$version = '2.0.5-196'; +$build = '90202-0148'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=53; $one_mysql_log=0; @@ -294,7 +295,7 @@ $random = (rand(1000000, 9999999) + 10000000); ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration FROM system_settings;"; +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} if ($DB) {echo "$stmt\n";} @@ -311,6 +312,7 @@ while ($i < $qm_conf_ct) $timeclock_end_of_day = $row[5]; $vtiger_url = $row[6]; $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; $i++; } @@ -346,6 +348,7 @@ $LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent log $PhoneSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login $DefaulTAlTDiaL = '0'; # set to 1 to enable ALT DIAL by default if enabled for the campaign $AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen @@ -964,7 +967,7 @@ $VDloginDISPLAY=0; } if ($display_queue_count=='N') {$callholdstatus='0';} - if ($dial_method == 'INBOUND_MAN') + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) {$VU_closer_default_blended=0;} $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); @@ -7935,7 +7938,14 @@ Your Status:
Calls Dialing: height=460> CLOSER INBOUND GROUP SELECTION
Closer Inbound Group Selection
- BLENDED CALLING(outbound activated)
+ 0) and ($disable_blended_checkbox < 1) ) + { + ?> + BLENDED CALLING(outbound activated)
+ RESET | SUBMIT



  @@ -7949,6 +7959,8 @@ Your Status:
Calls Dialing: MY CALLBACK ONLY
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) ) + {echo " BLENDED CALLING
";} ?>
diff --git a/agc_2-X/trunk/www/vicidial/AST_timeonVDADall.php b/agc_2-X/trunk/www/vicidial/AST_timeonVDADall.php index 7f54268d..3aa712f2 100644 --- a/agc_2-X/trunk/www/vicidial/AST_timeonVDADall.php +++ b/agc_2-X/trunk/www/vicidial/AST_timeonVDADall.php @@ -8,7 +8,7 @@ # STOP=4000, SLOW=40, GO=4 seconds refresh interval # # CHANGELOG: -# 50406-0920 - Added Paused agents < 1 min (Chris Doyle) +# 50406-0920 - Added Paused agents < 1 min # 51130-1218 - Modified layout and info to show all servers in a vicidial system # 60421-1043 - check GET/POST vars lines with isset to not trigger PHP NOTICES # 60511-1343 - Added leads and drop info at the top of the screen @@ -43,8 +43,12 @@ # 81029-1706 - Added pause code display if enabled per campaign # 81108-2337 - Added inbound-only section # 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option # +$version = '2.0.5-35'; +$build = '90202-0108'; + header ("Content-type: text/html; charset=utf-8"); require("dbconnect.php"); @@ -95,7 +99,7 @@ if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -104,6 +108,7 @@ while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -119,8 +124,14 @@ if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes -if (!isset($with_inbound)) {$with_inbound='N';} # N=no, Y=yes, O=only if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } $ingroup_detail=''; if (strlen($group)>1) {$groups[0] = $group; $RR=40;} @@ -229,8 +240,8 @@ else # $group_SQL = "group_id IN($group_SQL)"; } -if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') ) - {$with_inbound='N';} +#if ( (eregi('ALL-ACTIVE',$group_string)) and ($with_inbound=='O') and ($outbound_autodial_active > 0) ) +# {$with_inbound='N';} $stmt="select * from vicidial_user_groups;"; $rslt=mysql_query($stmt, $link); @@ -251,7 +262,7 @@ $NFB = ''; $NFE = ''; $F=''; $FG=''; $B=''; $BG=''; -$select_list = "
Select Campaigns:
"; +$select_list = ""; +$select_list .= ""; +$select_list .= "
Select Campaigns:
"; $select_list .= ""; $o++; } $select_list .= ""; -$select_list .= "
CLOSE PANEL"; -$select_list .= "
"; +$select_list .= "
(To select more than 1 campaign, hold down the Ctrl key and click)"; +$select_list .= "
"; +$select_list .= "Close Panel

"; if ($UGdisplay > 0) { + $select_list .= "Select User Group:
"; $select_list .= "

"; } -if (!eregi('ALL-ACTIVE',$group_string)) - { - $select_list .= "   Inbound:
"; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "VERSION: $version   BUILD: $build"; $select_list .= "
"; -$open_list = "
Choose Real-Time Display Options
"; +$open_list = "
Choose Report Display Options
"; ?> @@ -385,10 +403,10 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; -echo "VICIDIAL                                                                                                             \n"; -echo "\n"; -echo "
\n"; -echo "Choose Real-Time Display Options"; +echo "VICIDIAL Real-Time                                                                          \n"; +echo "\n"; +echo "
\n"; +echo "Choose Report Display Options"; echo "
\n"; echo "
\n"; echo "STOP | "; @@ -548,6 +566,11 @@ if (ereg('O',$with_inbound)) $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + if (eregi('ALL-ACTIVE',$group_string)) + { + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats;"; + } + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats where campaign_id IN($group_SQL);"; @@ -700,9 +723,9 @@ else } else { - $stmt="select avg(auto_dial_level),dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,max(hopper_level),dial_method,max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),available_only_ratio_tally,max(adaptive_latest_server_time),local_call_time,max(dial_timeout),dial_statuses,agent_pause_codes_active from vicidial_campaigns where campaign_id IN($group_SQL);"; + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active) from vicidial_campaigns where campaign_id IN($group_SQL);"; - $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),status_category_1,sum(status_category_count_1),status_category_2,sum(status_category_count_2),status_category_3,sum(status_category_count_3),status_category_4,sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; } } if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} diff --git a/agc_2-X/trunk/www/vicidial/admin.php b/agc_2-X/trunk/www/vicidial/admin.php index ce8ac70e..2b4edd37 100644 --- a/agc_2-X/trunk/www/vicidial/admin.php +++ b/agc_2-X/trunk/www/vicidial/admin.php @@ -881,6 +881,12 @@ if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_G elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -893,7 +899,7 @@ if (strlen($dial_status) > 0) ############################################# ##### START SYSTEM_SETTINGS LOOKUP ##### -$stmt = "SELECT use_non_latin FROM system_settings;"; +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active FROM system_settings;"; $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $qm_conf_ct = mysql_num_rows($rslt); @@ -901,7 +907,11 @@ $i=0; while ($i < $qm_conf_ct) { $row=mysql_fetch_row($rslt); - $non_latin = $row[0]; + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; $i++; } ##### END SETTINGS LOOKUP ##### @@ -1053,6 +1063,8 @@ $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); +$qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); +$outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); ### DIGITS and COLONS $shift_length = ereg_replace("[^\:0-9]","",$shift_length); @@ -1251,6 +1263,7 @@ $vtiger_search_category = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_search_categ $vtiger_create_call_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_call_record); $vtiger_create_lead_record = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_create_lead_record); $vtiger_screen_login = ereg_replace("[^-\_0-9a-zA-Z]","",$vtiger_screen_login); +$cpd_amd_action = ereg_replace("[^-\_0-9a-zA-Z]","",$cpd_amd_action); ### ALPHA-NUMERIC and underscore and dash and comma $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); @@ -1525,11 +1538,14 @@ $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); # 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options # 90115-0502 - Activated AGENT DID routing option # 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages # # 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.0.5-159'; -$build = '90126-2256'; +$admin_version = '2.0.5-162'; +$build = '90202-0444'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -2448,10 +2464,17 @@ echo "
Vicidial Transfers - This option can prevent an agent from opening the transfer - conference session of vicidial. If this is disabled, the agent cannot third party call or blind transfer any calls. -
- -
-Closer Default Blended - This option simply defaults the Blended checkbox on a CLOSER login screen. + 0) + { + ?> +
+
+
+ Closer Default Blended - This option simply defaults the Blended checkbox on a CLOSER login screen. +
@@ -2518,10 +2541,17 @@ echo "
Delete Remote Agents - This option if set to 1 allows the user to delete vicidial remote agents from the system. -
- -
-Load Leads - This option if set to 1 allows the user to load vicidial leads into the vicidial_list table by way of the web based lead loader. + 0) + { + ?> +
+
+
+ Load Leads - This option if set to 1 allows the user to load vicidial leads into the vicidial_list table by way of the web based lead loader. +
@@ -2553,10 +2583,17 @@ echo "
Change Agent Campaign - This option if set to 1 allows the user to alter the campaign that an agent is logged into while they are logged into it. -
- -
-Delete Filters - This option allows the user to be able to delete vicidial lead filters from the system. + 0) + { + ?> +
+
+
+ Delete Filters - This option allows the user to be able to delete vicidial lead filters from the system. +
@@ -2578,37 +2615,44 @@ echo "
View Reports - This option allows the user to view the VICIDIAL reports. -
- -
-QC Enabled - This option allows the user to log in to the Quality Control agent screen. + 0) + { + ?> +
+
+
+ QC Enabled - This option allows the user to log in to the Quality Control agent screen. -
-
-
-QC User Level - This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section:
-1 - Modify Nothing
-2 - Modify Nothing Except Status
-3 - Modify All Fields
-4 - Verify First Round of QC
-5 - View QC Statistics
-6 - Ability to Modify FINISHed records
-7 - Manager Level
+
+
+
+ QC User Level - This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section:
+ 1 - Modify Nothing
+ 2 - Modify Nothing Except Status
+ 3 - Modify All Fields
+ 4 - Verify First Round of QC
+ 5 - View QC Statistics
+ 6 - Ability to Modify FINISHed records
+ 7 - Manager Level
-
-
-
-QC Record Pass - This option allows the agent to specify that a record has passed the first round of QC after reviewing the record. +
+
+
+ QC Record Pass - This option allows the agent to specify that a record has passed the first round of QC after reviewing the record. -
-
-
-QC Record Finish - This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record. +
+
+
+ QC Record Finish - This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record. -
-
-
-QC Record Commit - This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone. +
+
+
+ QC Record Commit - This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone. +
@@ -2706,101 +2750,254 @@ echo "
Allowed Transfer Groups - With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up. -
- -
-Allow Inbound and Blended - This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N. + 0) + { + ?> +
+
+
+ Allow Inbound and Blended - This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N. -
-
-
-Dial Status - This is where you set the statuses that you are wanting to dial on within the lists that are active for the campaign below. To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove. +
+
+
+ Dial Status - This is where you set the statuses that you are wanting to dial on within the lists that are active for the campaign below. To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove. -
-
-
-List Order - This menu is where you select how the leads that match the statuses selected above will be put in the lead hopper: -
  - DOWN: select the first leads loaded into the vicidial_list table -
  - UP: select the last leads loaded into the vicidial_list table -
  - UP PHONE: select the highest phone number and works its way down -
  - DOWN PHONE: select the lowest phone number and works its way up -
  - UP LAST NAME: starts with last names starting with Z and works its way down -
  - DOWN LAST NAME: starts with last names starting with A and works its way up -
  - UP COUNT: starts with most called leads and works its way down -
  - DOWN COUNT: starts with least called leads and works its way up -
  - DOWN COUNT 2nd NEW: starts with least called leads and works its way up inserting a NEW lead in every other lead - Must NOT have NEW selected in the dial statuses -
  - DOWN COUNT 3nd NEW: starts with least called leads and works its way up inserting a NEW lead in every third lead - Must NOT have NEW selected in the dial statuses -
  - DOWN COUNT 4th NEW: starts with least called leads and works its way up inserting a NEW lead in every forth lead - Must NOT have NEW selected in the dial statuses +
+
+
+ List Order - This menu is where you select how the leads that match the statuses selected above will be put in the lead hopper: +
  - DOWN: select the first leads loaded into the vicidial_list table +
  - UP: select the last leads loaded into the vicidial_list table +
  - UP PHONE: select the highest phone number and works its way down +
  - DOWN PHONE: select the lowest phone number and works its way up +
  - UP LAST NAME: starts with last names starting with Z and works its way down +
  - DOWN LAST NAME: starts with last names starting with A and works its way up +
  - UP COUNT: starts with most called leads and works its way down +
  - DOWN COUNT: starts with least called leads and works its way up +
  - DOWN COUNT 2nd NEW: starts with least called leads and works its way up inserting a NEW lead in every other lead - Must NOT have NEW selected in the dial statuses +
  - DOWN COUNT 3nd NEW: starts with least called leads and works its way up inserting a NEW lead in every third lead - Must NOT have NEW selected in the dial statuses +
  - DOWN COUNT 4th NEW: starts with least called leads and works its way up inserting a NEW lead in every forth lead - Must NOT have NEW selected in the dial statuses -
-
-
-Hopper Level - This is how many leads the VDhopper script tries to keep in the vicidial_hopper table for this campaign. If running VDhopper script every minute, make this slightly greater than the number of leads you go through in a minute. +
+
+
+ Hopper Level - This is how many leads the VDhopper script tries to keep in the vicidial_hopper table for this campaign. If running VDhopper script every minute, make this slightly greater than the number of leads you go through in a minute. -
-
-
-Lead Filter - This is a method of filtering your leads using a fragment of a SQL query. Use this feature with caution, it is easy to stop dialing accidentally with the slightest alteration to the SQL statement. Default is NONE. +
+
+
+ Lead Filter - This is a method of filtering your leads using a fragment of a SQL query. Use this feature with caution, it is easy to stop dialing accidentally with the slightest alteration to the SQL statement. Default is NONE. -
-
-
-Force Reset of Hopper - This allows you to wipe out the hopper contents upon form submission. It should be filled again when the VDhopper script runs. +
+
+
+ Force Reset of Hopper - This allows you to wipe out the hopper contents upon form submission. It should be filled again when the VDhopper script runs. -
-
-
-Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls. +
+
+
+ Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls. -
-
-
-Auto Dial Level - This is where you set how many lines VICIDIAL should use per active agent. zero 0 means auto dialing is off and the agents will click to dial each number. Otherwise VICIDIAL will keep dialing lines equal to active agents multiplied by the dial level to arrive at how many lines this campaign on each server should allow. The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually. +
+
+
+ Auto Dial Level - This is where you set how many lines VICIDIAL should use per active agent. zero 0 means auto dialing is off and the agents will click to dial each number. Otherwise VICIDIAL will keep dialing lines equal to active agents multiplied by the dial level to arrive at how many lines this campaign on each server should allow. The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually. -
-
-
-Available Only Tally - This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N. +
+
+
+ Available Only Tally - This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N. -
-
-
-Drop Percentage Limit - This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO. +
+
+
+ Drop Percentage Limit - This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO. -
-
-
-Maximum Adapt Dial Level - This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0. +
+
+
+ Maximum Adapt Dial Level - This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0. -
-
-
-Latest Server Time - This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling. +
+
+
+ Latest Server Time - This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling. -
-
-
-Adapt Intensity Modifier - This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods. +
+
+
+ Adapt Intensity Modifier - This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods. -
-
-
-Dial Level Difference Target - This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods. +
+
+
+ Dial Level Difference Target - This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods. -
-
-
-Concurrent Transfers - This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method. +
+
+
+ Concurrent Transfers - This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method. -
-
-
-Queue Priority - This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode. +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode. -
-
-
-Auto Alt-Number Dialing - This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method. EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record. +
+
+
+ Auto Alt-Number Dialing - This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method. EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record. + +
+
+
+ Dial Timeout - If defined, calls that would normally hang up after the timeout defined in extensions.conf would instead timeout at this amount of seconds if it is less than the extensions.conf timeout. This allows for quickly changing dial timeouts from server to server and limiting the effects to a single campaign. If you are having a lot of Answering Machine or Voicemail calls you may want to try changing this value to between 21-26 and see if results improve. + +
+
+
+ Campaign VDAD extension - This field allows for a custom VDAD transfer extension. This allows you to use different VDADtransfer...agi scripts depending upon your campaign. The default transfer AGI - exten 8365 agi-VDADtransfer.agi - just immediately sends the calls on to agents as soon as they are picked up. An additional sample political survey AGI is also now included - 8366 agi-VDADtransferSURVEY.agi - that plays a message to the called person and allows them to make a choice by pressing buttons - effectively pre-screening the lead - . Please note that except for surveys, political calls and charities this form of calling is illegal in the United States. + +
+
+
+ Answering Machine Message - This field is for entering in an extension to blind transfer calls to when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this exten up in the dial plan - extensions.conf - and make sure it plays an audio file then hangs up. + +
+
+
+ AMD send to vm exten - This menu allows you to define whether a message is left on an answering machine when it is detected. the call will be immediately forwarded to the Answering-Machine-Message extension if AMD is active and it is determined that the call is an answering machine. + +
+
+
+ CPD AMD Action - If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED. + +
+
+
+ Agent Alt Num Dialing - This option allows an agent to manually dial the alternate phone number or address3 field after the main number has been called. + +
+
+
+ Drop Call Seconds - The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls. + +
+
+
+ Drop Action - This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|| + +
+
+
+ Safe Harbor Exten - This is the dial plan extension that the desired Safe Harbor audio file is located at on your server. + +
+
+
+ Voicemail - If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message. + +
+
+
+ Drop Transfer Group - If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds. + +
+
+
+ Allow No-Hopper-Leads Logins - If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N. + +
+
+
+ List Order Mix - Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED. + +
+
+
+ List Mix ID - ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation. + +
+
+
+ List Mix Name - Descriptive name of the list mix. Must be from 2-50 characters in length. + +
+
+
+ List Mix Detail - The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated. + +
+
+
+ List Mix Method - The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER. + +
+
+
+ Agent Screen Extended Alt Dial - This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information. + +
+
+
+ Survey First Audio File - This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign. + +
+
+
+ Survey DTMF Digits - This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are 0123456789*# + +
+
+
+ Survey Not Interested Digit - This field is where you define the customer digit pressed that will show they are Not Interested. + +
+
+
+ Survey Not Interested Status - This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list and possibly the campaign-specific DNC list. + +
+
+
+ Survey Opt-in Audio File - This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken. + +
+
+
+ Survey Not Interested Audio File - This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up. + +
+
+
+ Survey Method - This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory. + +
+
+
+ Survey No-Response Action - This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit. + +
+
+
+ Survey Response Digit Map - This is the section where you can define a description to go with each dtmf digit option that the customer may select. + +
+
+
+ Survey Xfer Extension - If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension. + +
+
+
+ Survey Campaign Recording Directory - If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory. + +
@@ -2818,11 +3015,6 @@ echo "
Local Call Time - This is where you set during which hours you would like to dial, as determined by the local time in the are in which you are calling. This is controlled by area code and is adjusted for Daylight Savings time if applicable. General Guidelines in the USA for Business to Business is 9am to 5pm and Business to Consumer calls is 9am to 9pm. -
- -
-Dial Timeout - If defined, calls that would normally hang up after the timeout defined in extensions.conf would instead timeout at this amount of seconds if it is less than the extensions.conf timeout. This allows for quickly changing dial timeouts from server to server and limiting the effects to a single campaign. If you are having a lot of Answering Machine or Voicemail calls you may want to try changing this value to between 21-26 and see if results improve. -

@@ -2838,11 +3030,6 @@ echo "
Campaign CallerID - This field allows for the sending of a custom callerid number on the outbound calls. This is the number that would show up on the callerid of the person you are calling. The default is UNKNOWN. If you are using T1 or E1s to dial out this option is only available if you are using PRIs - ISDN T1s or E1s - that have the custom callerid feature turned on, this will not work with Robbed-bit service -RBS- circuits. This will also work through most VOIP -SIP or IAX trunks- providers that allow dynamic outbound callerID. The custom callerID only applies to calls placed for the VICIDIAL campaign directly, any 3rd party calls or transfers will not send the custom callerID. NOTE: Sometimes putting UNKNOWN or PRIVATE in the field will yield the sending of your default callerID number by your carrier with the calls. You may want to test this and put 0000000000 in the callerid field instead if you do not want to send you CallerID. -
- -
-Campaign VDAD extension - This field allows for a custom VDAD transfer extension. This allows you to use different VDADtransfer...agi scripts depending upon your campaign. The default transfer AGI - exten 8365 agi-VDADtransfer.agi - just immediately sends the calls on to agents as soon as they are picked up. An additional sample political survey AGI is also now included - 8366 agi-VDADtransferSURVEY.agi - that plays a message to the called person and allows them to make a choice by pressing buttons - effectively pre-screening the lead - . Please note that except for surveys, political calls and charities this form of calling is illegal in the United States. -

@@ -2873,56 +3060,16 @@ echo "
Get Call Launch - This menu allows you to choose whether you want to auto-launch the web-form page in a separate window, auto-switch to the SCRIPT tab or do nothing when a call is sent to the agent for this campaign. -
- -
-Answering Machine Message - This field is for entering in an extension to blind transfer calls to when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this exten up in the dial plan - extensions.conf - and make sure it plays an audio file then hangs up. - -
-
-
-AMD send to vm exten - This menu allows you to define whether a message is left on an answering machine when it is detected. the call will be immediately forwarded to the Answering-Machine-Message extension if AMD is active and it is determined that the call is an answering machine. -

Xfer-Conf DTMF - These four fields allow for you to have two sets of Transfer Conference and DTMF presets. When the call or campaign is loaded, the vicidial.php script will show two buttons on the transfer-conference frame and auto-populate the number-to-dial and the send-dtmf fields when pressed. If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dial string will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field. -
-
-
-Agent Alt Num Dialing - This option allows an agent to manually dial the alternate phone number or address3 field after the main number has been called. -

Scheduled Callbacks - This option allows an agent to disposition a call as CALLBK and choose the data and time at which the lead will be re-activated. -
-
-
-Drop Call Seconds - The number of seconds from the time the customer line is picked up until the call is considered a DROP, only applies to outbound calls. - -
-
-
-Drop Action - This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|| - -
-
-
-Safe Harbor Exten - This is the dial plan extension that the desired Safe Harbor audio file is located at on your server. - -
-
-
-Voicemail - If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message. - -
-
-
-Drop Transfer Group - If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds. -

@@ -2963,41 +3110,11 @@ echo "
Disable Alter Customer Phone - If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y. -
- -
-Allow No-Hopper-Leads Logins - If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N. -

Agent Display Queue Count - If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y. -
-
-
-List Order Mix - Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED. - -
-
-
-List Mix ID - ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation. - -
-
-
-List Mix Name - Descriptive name of the list mix. Must be from 2-50 characters in length. - -
-
-
-List Mix Detail - The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated. - -
-
-
-List Mix Method - The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER. -

@@ -3013,11 +3130,6 @@ echo "
Agent Screen Clipboard Copy - THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer. -
- -
-Agent Screen Extended Alt Dial - This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information. -

@@ -3028,95 +3140,47 @@ echo "
3-Way Call Dial Prefix - This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88. -
- -
-QC Enabled - Setting this field to Y allows for the agent Quality Control features to work. Default is N. + 0) + { + ?> +
+
+
+ QC Enabled - Setting this field to Y allows for the agent Quality Control features to work. Default is N. -
-
-
-QC Statuses - This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. +
+
+
+ QC Statuses - This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. -
-
-
-QC Shift - This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions. +
+
+
+ QC Shift - This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions. -
-
-
-QC Get Record Launch- This allows one of the following actions to be triggered upon a QC agent receiving a new record. +
+
+
+ QC Get Record Launch- This allows one of the following actions to be triggered upon a QC agent receiving a new record. -
-
-
-QC Show Recording - This allows for a recording that may be linked with the QC record to be display in the QC agent screen. +
+
+
+ QC Show Recording - This allows for a recording that may be linked with the QC record to be display in the QC agent screen. -
-
-
-QC WebForm Address - This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen. +
+
+
+ QC WebForm Address - This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen. -
-
-
-QC Script - This is the script that can be used by QC agents in the SCRIPT tab in the QC screen. - -
-
-
-Survey First Audio File - This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign. - -
-
-
-Survey DTMF Digits - This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are 0123456789*# - -
-
-
-Survey Not Interested Digit - This field is where you define the customer digit pressed that will show they are Not Interested. - -
-
-
-Survey Not Interested Status - This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list and possibly the campaign-specific DNC list. - -
-
-
-Survey Opt-in Audio File - This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken. - -
-
-
-Survey Not Interested Audio File - This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up. - -
-
-
-Survey Method - This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory. - -
-
-
-Survey No-Response Action - This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit. - -
-
-
-Survey Response Digit Map - This is the section where you can define a description to go with each dtmf digit option that the customer may select. - -
-
-
-Survey Xfer Extension - If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension. - -
-
-
-Survey Campaign Recording Directory - If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory. +
+
+
+ QC Script - This is the script that can be used by QC agents in the SCRIPT tab in the QC screen. +
@@ -3142,6 +3206,7 @@ echo "



VICIDIAL_LISTS TABLE

@@ -3406,40 +3471,47 @@ echo "
In-Group Recording Filename - This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE. -
- -
-QC Enabled - Setting this field to Y allows for the agent Quality Control features to work. Default is N. + 0) + { + ?> +
+
+
+ QC Enabled - Setting this field to Y allows for the agent Quality Control features to work. Default is N. -
-
-
-QC Statuses - This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. +
+
+
+ QC Statuses - This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. -
-
-
-QC Shift - This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions. +
+
+
+ QC Shift - This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions. -
-
-
-QC Get Record Launch- This allows one of the following actions to be triggered upon a QC agent receiving a new record. +
+
+
+ QC Get Record Launch- This allows one of the following actions to be triggered upon a QC agent receiving a new record. -
-
-
-QC Show Recording - This allows for a recording that may be linked with the QC record to be display in the QC agent screen. +
+
+
+ QC Show Recording - This allows for a recording that may be linked with the QC record to be display in the QC agent screen. -
-
-
-QC WebForm Address - This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen. +
+
+
+ QC WebForm Address - This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen. -
-
-
-QC Script - This is the script that can be used by QC agents in the SCRIPT tab in the QC screen. +
+
+
+ QC Script - This is the script that can be used by QC agents in the SCRIPT tab in the QC screen. +
@@ -3610,36 +3682,42 @@ echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - - $o=0; - while ($Ds_to_print > $o) + if ($SSoutbound_autodial_active > 0) { - $o++; - $Dstatus = $Dstatuses[$o]; + echo "\n"; - echo "\n"; + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE\n"; + } } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $dtl = 'Balanced'; + if ($n<0) {$dtl = 'Less Intense';} + if ($n>0) {$dtl = 'More Intense';} + if ($n == $adaptive_intensity) + {echo "\n";} + else + {echo "\n";} + $n--; } + echo " $NWB#vicidial_campaigns-adaptive_intensity$NWE\n"; } - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; echo "\n"; @@ -13092,120 +13390,123 @@ if ($ADD==34) echo "
\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
LISTS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_lists$NWE\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
LISTS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "



+ 0) + { + ?> +



-VICIDIAL_CAMPAIGN_HOTKEYS TABLE

- -
-Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + VICIDIAL_CAMPAIGN_HOTKEYS TABLE

+
+
+ Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. -



+



-VICIDIAL_LEAD_RECYCLE TABLE

-
-
-Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. + VICIDIAL_LEAD_RECYCLE TABLE

+
+
+ Through the use of lead recycling, you can call specific statuses of leads again at a specified interval without resetting the entire list. Lead recycling is campaign-specific and does not have to be a selected dialable status in your campaign. The attempt delay field is the number of seconds until the lead can be placed back in the hopper, this number must be at least 120 seconds. The attempt maximum field is the maximum number of times that a lead of this status can be attempted before the list needs to be reset, this number can be from 1 to 10. You can activate and deactivate a lead recycle entry with the provided links. -



- -VICIDIAL AUTO ALT DIAL STATUSES

-
-
-If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set. +



+ VICIDIAL AUTO ALT DIAL STATUSES

+
+
+ If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set. + @@ -3681,16 +3759,22 @@ echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - $o=0; - while ($Ds_to_print > $o) + if ($SSoutbound_autodial_active > 0) { - $o++; - $Dstatus = $Dstatuses[$o]; + echo "\n"; - echo "\n"; + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE\n"; + } } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + $n--; } + echo "% $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; } - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - - - - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; echo "\n"; - echo "\n"; - + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -12190,8 +12467,12 @@ if ($ADD==31) echo "\n"; - echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } echo "\n"; echo "\n"; @@ -12200,22 +12481,26 @@ if ($ADD==31) echo "\n"; - echo "\n"; - + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; - echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; - echo "\n"; - - echo "\n"; + echo "\n"; + echo "\n"; + } echo "\n"; echo "\n"; @@ -12231,8 +12516,10 @@ if ($ADD==31) echo "\n"; echo "\n"; - echo "\n"; - + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; @@ -12241,13 +12528,15 @@ if ($ADD==31) echo "\n"; - echo "\n"; - + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; - if ($enable_vtiger_integration_LU > 0) + if ($SSenable_vtiger_integration > 0) { echo "\n"; @@ -12295,106 +12584,105 @@ if ($ADD==31) echo "\n"; echo "\n"; echo "\n"; - echo "
LISTS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_lists$NWE\n"; - echo "
Allowed Campaigns - This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system. -
- -
-QC Allowed Campaigns - This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system. - -
-
-
-QC Allowed Inbound Groups - This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system. + 0) + { + ?> +
+
+
+ QC Allowed Campaigns - This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system. +
+
+
+ QC Allowed Inbound Groups - This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system. + @@ -3728,25 +3812,31 @@ echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } } if ($LOGuser_level > 8) { @@ -11645,9 +11900,11 @@ if ($ADD==3) echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; - + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -11812,6 +12069,7 @@ if ($ADD==31) $vtiger_create_call_record = $row[100]; $vtiger_create_lead_record = $row[101]; $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -12007,12 +12265,23 @@ if ($ADD==31) echo ""; echo ""; echo ""; - echo ""; - echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } echo ""; - echo ""; - echo ""; - echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } echo "\n"; echo "



+ 0) + { + ?> +



-VICIDIAL_LEAD_FILTERS TABLE

- -
-Filter ID - This is the short name of a Vicidial Lead Filter. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters. + VICIDIAL_LEAD_FILTERS TABLE

+
+
+ Filter ID - This is the short name of a Vicidial Lead Filter. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 10 characters, minimum of 2 characters. -
-
-Filter Name - This is a more descriptive name of the Filter. This is a short summary of the filter. max 30 characters, minimum of 2 characters. +
+
+ Filter Name - This is a more descriptive name of the Filter. This is a short summary of the filter. max 30 characters, minimum of 2 characters. -
-
-Filter Comments - This is where you can place comments for a Vicidial Filter such as -calls all California leads-. max 255 characters, minimum of 2 characters. - -
-
-Filter SQL - This is where you place the SQL query fragment that you want to filter by. do not begin or end with an AND, that will be added by the hopper cron script automatically. an example SQL query that would work here is- called_count > 4 and called_count < 8 -. +
+
+ Filter Comments - This is where you can place comments for a Vicidial Filter such as -calls all California leads-. max 255 characters, minimum of 2 characters. +
+
+ Filter SQL - This is where you place the SQL query fragment that you want to filter by. do not begin or end with an AND, that will be added by the hopper cron script automatically. an example SQL query that would work here is- called_count > 4 and called_count < 8 -. + @@ -3810,46 +3900,52 @@ echo " - + 0) + { + ?> + + ";} +?> - + 0) + { + ?> + + ";} +?> @@ -5127,10 +5266,25 @@ if (strlen($campaigns_hh) > 1) - - + 0) + { + ?> + + + + ";} +?> - +\n"; + } +?> 1) { @@ -5368,14 +5522,20 @@ if ($ADD==11) echo "\n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } echo "\n"; echo "\n"; - echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; @@ -6626,7 +6786,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) 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 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) 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 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');"; @@ -7859,6 +8019,12 @@ if ($ADD=="4A") } else { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } echo "
USER MODIFIED - ADMIN: $user\n"; $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active' where user='$user';"; @@ -8000,6 +8166,12 @@ if ($ADD=="4B") } else { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } echo "
USER MODIFIED - ADMIN: $user\n"; $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active' where user='$user';"; @@ -8268,7 +8440,7 @@ $ADD=3; # go to user modification below } ###################### -# ADD=41 submit campaign modifications to the system +# ADD=41 submit campaign modifications to the system - DETAIL ###################### if ($ADD==41) @@ -8277,6 +8449,51 @@ if ($ADD==41) { echo ""; + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8300'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + } if (ereg('list_activation',$stage)) { $p=0; @@ -8347,7 +8564,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' 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' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -8499,6 +8716,39 @@ if ($ADD==44) { echo ""; + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8300'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } if (ereg('list_activation',$stage)) { $p=0; @@ -8686,10 +8936,9 @@ $ADD=31; # go to campaign modification form below ###################### # ADD=48 modify campaign QC settings in the system ###################### - if ($ADD==48) { - if ($LOGmodify_campaigns==1) + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) { echo ""; @@ -9823,7 +10072,7 @@ if ($ADD==411111111111111) echo "
VICIDIAL SYSTEM SETTINGS MODIFIED\n"; - $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url';"; + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active';"; $rslt=mysql_query($stmt, $link); ### LOG CHANGES TO LOG FILE ### @@ -9988,7 +10237,7 @@ $ADD=331111111111111; # go to system settings modification form below if ($ADD==441111111111111) { - if ($LOGmodify_servers==1) + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) { echo ""; @@ -11587,7 +11836,10 @@ if ($ADD==3) echo "
\n"; echo "\n"; echo "\n"; - echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } echo "\n"; echo "\n"; echo "\n"; @@ -11603,11 +11855,14 @@ if ($ADD==3) echo "$RANKgroups_list"; echo "
0) + { + ?> -



+



-VICIDIAL LIST LOADER FUNCTIONALITY

- -
-The VICIDIAL basic web-based lead loader is designed simply to take a lead file - up to 8MB in size - that is either tab or pipe delimited and load it into the vicidial_list table. The lead loader allows for field choosing and TXT- Plain Text, CSV- Comma Separated Values and XLS- Excel file formats. The lead loader does not do data validation, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files: -
    -
  1. Vendor Lead Code - shows up in the Vendor ID field of the GUI -
  2. Source Code - internal use only for admins and DBAs -
  3. List ID - the list number that these leads will show up under -
  4. Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc -
  5. Phone Number - must be at least 8 digits long -
  6. Title - title of the customer - Mr. Ms. Mrs, etc... -
  7. First Name -
  8. Middle Initial -
  9. Last Name -
  10. Address Line 1 -
  11. Address Line 2 -
  12. Address Line 3 -
  13. City -
  14. State - limited to 2 characters -
  15. Province -
  16. Postal Code -
  17. Country -
  18. Gender -
  19. Date of Birth -
  20. Alternate Phone Number -
  21. Email Address -
  22. Security Phrase -
  23. Comments -
+ VICIDIAL LIST LOADER FUNCTIONALITY

+
+
+ The VICIDIAL basic web-based lead loader is designed simply to take a lead file - up to 8MB in size - that is either tab or pipe delimited and load it into the vicidial_list table. The lead loader allows for field choosing and TXT- Plain Text, CSV- Comma Separated Values and XLS- Excel file formats. The lead loader does not do data validation, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files: +
    +
  1. Vendor Lead Code - shows up in the Vendor ID field of the GUI +
  2. Source Code - internal use only for admins and DBAs +
  3. List ID - the list number that these leads will show up under +
  4. Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc +
  5. Phone Number - must be at least 8 digits long +
  6. Title - title of the customer - Mr. Ms. Mrs, etc... +
  7. First Name +
  8. Middle Initial +
  9. Last Name +
  10. Address Line 1 +
  11. Address Line 2 +
  12. Address Line 3 +
  13. City +
  14. State - limited to 2 characters +
  15. Province +
  16. Postal Code +
  17. Country +
  18. Gender +
  19. Date of Birth +
  20. Alternate Phone Number +
  21. Email Address +
  22. Security Phrase +
  23. Comments +
-
NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf file in place on the web server. Also, a couple perl modules must be loaded for it to work as well - OLE-Storage_Lite and Spreadsheet-ParseExcel. You can check for runtime errors in these by looking at your apache error_log file. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads. +
NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf file in place on the web server. Also, a couple perl modules must be loaded for it to work as well - OLE-Storage_Lite and Spreadsheet-ParseExcel. You can check for runtime errors in these by looking at your apache error_log file. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads. -



- +



+ @@ -4352,13 +4448,19 @@ The VICIDIAL basic web-based lead loader is designed simply to take a lead file -



- -VICIDIAL_SERVER_TRUNKS TABLE

-
-
-VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting. + 0) + { + ?> +



+ VICIDIAL_SERVER_TRUNKS TABLE

+
+
+ VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting. + @@ -4452,6 +4554,13 @@ FR_SPAC 00 00 00 00 00 - France space separated phone number

Agent interface API Access Active - This option allows you to enable or disable the agent interface API. Default is 0. +
+
+QC Features Active - This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive. + +
+
+Outbound Auto-Dial Active - This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active.
@@ -4494,7 +4603,7 @@ FR_SPAC 00 00 00 00 00 - France space separated phone number
QueueMetrics EnterQueue Prepend - This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything.
-
+
Enable Vtiger Integration - This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0. @@ -4540,13 +4649,19 @@ FR_SPAC 00 00 00 00 00 - France space separated phone number
Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report. The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics. -



- -VICIDIAL QC STATUS CODES

-
-
-The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length. + 0) + { + ?> +



+ VICIDIAL QC STATUS CODES

+
+
+ The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length. + @@ -4802,9 +4917,12 @@ if ($hh=='users') if ($hh=='campaigns') {$campaigns_hh="bgcolor=\"$campaigns_color\""; $campaigns_fc="$campaigns_font"; $campaigns_bold="$header_selected_bold";} else {$campaigns_hh=''; $campaigns_fc='WHITE'; $campaigns_bold="$header_nonselected_bold";} -if ($hh=='lists') - {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} - else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } if ($hh=='ingroups') {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} @@ -4817,9 +4935,12 @@ if ($hh=='usergroups') if ($hh=='scripts') {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} -if ($hh=='filters') - {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} - else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } if ($hh=='admin') {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} @@ -5079,9 +5200,27 @@ $admin_home_url_LU = $row[0];
> SIZE=> Users > SIZE=> Campaigns > SIZE=> Lists > SIZE=> Lists > SIZE=> Scripts > SIZE=> Filters > SIZE=> Filters > SIZE=> In-Groups > SIZE=> User Groups > SIZE=> Remote Agents COLSPAN=2> SIZE=> Campaigns Main COLSPAN=1> SIZE=> Statuses COLSPAN=1> SIZE=> HotKeys COLSPAN=2> SIZE=> Lead Recycle COLSPAN=1> SIZE=> Auto-Alt Dial COLSPAN=2> SIZE=> Lead Recycle COLSPAN=1> SIZE=> Auto-Alt Dial COLSPAN=2> SIZE=> List Mix COLSPAN=1> SIZE=> Pause Codes COLSPAN=2> SIZE=> List Mix
Park Extension: $NWB#vicidial_campaigns-park_ext$NWE
Park Filename: $NWB#vicidial_campaigns-park_file_name$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Allow Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Allow Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Next Agent Call: $NWB#vicidial_campaigns-next_agent_call$NWE
Local Call Time: $NWB#vicidial_campaigns-local_call_time$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Agent Call Manual: $NWB#vicidial_users-agentcall_manual$NWE
Vicidial Recording: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial Transfers: $NWB#vicidial_users-vicidial_transfers$NWE
Closer Default Blended: $NWB#vicidial_users-closer_default_blended$NWE
Closer Default Blended: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL Recording Override: $NWB#vicidial_users-vicidial_recording_override$NWE
Agent Alter Customer Data Override: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Customer Phone Override: $NWB#vicidial_users-alter_custphone_override$NWE
\n"; echo "
QC Enabled: $NWB#vicidial_users-qc_enabled$NWE
QC User Level: $NWB#vicidial_users-qc_user_level$NWE
QC Pass: $NWB#vicidial_users-qc_pass$NWE
QC Finish: $NWB#vicidial_users-qc_finish$NWE
QC Commit: $NWB#vicidial_users-qc_commit$NWE
QC Enabled: $NWB#vicidial_users-qc_enabled$NWE
QC User Level: $NWB#vicidial_users-qc_user_level$NWE
QC Pass: $NWB#vicidial_users-qc_pass$NWE
QC Finish: $NWB#vicidial_users-qc_finish$NWE
QC Commit: $NWB#vicidial_users-qc_commit$NWE
Modify Scripts: $NWB#vicidial_users-modify_sections$NWE
Delete Scripts: $NWB#vicidial_users-delete_scripts$NWE
Modify Filters: $NWB#vicidial_users-modify_sections$NWE
Delete Filters: $NWB#vicidial_users-delete_filters$NWE
Modify Filters: $NWB#vicidial_users-modify_sections$NWE
Delete Filters: $NWB#vicidial_users-delete_filters$NWE
AGC Admin Access: $NWB#vicidial_users-ast_admin_access$NWE
AGC Delete Phones: $NWB#vicidial_users-ast_delete_phones$NWE
Modify Call Times: $NWB#vicidial_users-modify_call_times$NWE
Detail StatusesHotKeysLead RecyclingAuto Alt DialLead RecyclingAuto Alt DialList MixSurveyPause CodesQCList MixSurveyQC Real-Time
\n"; @@ -12037,125 +12306,129 @@ if ($ADD==31) echo "
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form Target: $NWB#vicidial_campaigns-web_form_target$NWE
Allow Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Allow Inbound and Blended: $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Allow Inbound and Blended: $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Dial Status $o: \n"; - - if ($DEFstatusDISABLED > 0) + $o=0; + while ($Ds_to_print > $o) { - echo "$Dstatus - $statname_list[$Dstatus]         \n"; - echo "REMOVE
Dial Status $o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Status:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
List Order: $NWB#vicidial_campaigns-lead_order$NWE
List Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Lead Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPT OVERRIDE
Available Only Tally: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Drop Percentage Limit:
Maximum Adapt Dial Level: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
Latest Server Time: 4 digits only $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Adapt Intensity Modifier: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Dial Level Difference Target: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Concurrent Transfers: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Queue Priority: $NWB#vicidial_campaigns-queue_priority$NWE
Auto Alt-Number Dialing: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Add A Dial Status:   \n"; - echo "     $NWB#vicidial_campaigns-dial_status$NWE
List Order: $NWB#vicidial_campaigns-lead_order$NWE
List Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Lead Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPT OVERRIDE
Available Only Tally: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Drop Percentage Limit: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Maximum Adapt Dial Level: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
Latest Server Time: 4 digits only $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Adapt Intensity Modifier: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Dial Level Difference Target: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Concurrent Transfers: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Queue Priority: $NWB#vicidial_campaigns-queue_priority$NWE
Auto Alt-Number Dialing: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Next Agent Call: $NWB#vicidial_campaigns-next_agent_call$NWE
Local Call Time: $NWB#vicidial_campaigns-local_call_time$NWE
Dial Timeout: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Dial Timeout: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Dial Prefix: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Omit Phone Code: $NWB#vicidial_campaigns-omit_phone_code$NWE
Campaign CallerID: $NWB#vicidial_campaigns-campaign_cid$NWE
Campaign VDAD exten: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Campaign VDAD exten: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Campaign Rec exten: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Campaign Recording: $NWB#vicidial_campaigns-campaign_recording$NWE
Answering Machine Message: $NWB#vicidial_campaigns-am_message_exten$NWE
AMD Send to VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
AMD Send to VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Action: $NWB#vicidial_campaigns-cpd_amd_action$NWE
Transfer-Conf DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfer-Conf Number 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfer-Conf Number 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Alt Number Dialing: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Alt Number Dialing: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Scheduled Callbacks: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
Drop Call Seconds: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop Call Seconds: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop Action: $NWB#vicidial_campaigns-drop_action$NWE
Drop Action: $NWB#vicidial_campaigns-drop_action$NWE
Safe Harbor Exten: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Safe Harbor Exten: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Drop Transfer Group: $NWB#vicidial_campaigns-drop_inbound_group$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Drop Transfer Group: $NWB#vicidial_campaigns-drop_inbound_group$NWE
Wrap Up Seconds: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Wrap Up Message: $NWB#vicidial_campaigns-wrapup_message$NWE
Disable Alter Customer Data: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Disable Alter Customer Phone: $NWB#vicidial_campaigns-disable_alter_custphone$NWE
Allow No-Hopper-Leads Logins: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Allow No-Hopper-Leads Logins: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Agent Display Queue Count: $NWB#vicidial_campaigns-display_queue_count$NWE
Manual Dial List ID: $NWB#vicidial_campaigns-manual_dial_list_id$NWE
Agent Screen Clipboard Copy: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Extended Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
Agent Screen Extended Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way Call Outbound CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Dial Prefix: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Vtiger Search Category: $NWB#vicidial_campaigns-vtiger_search_category$NWE
"; echo ""; echo ""; - echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } echo "\n"; echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } echo "
\n"; - echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_lists$NWE\n"; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); + echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "\n"; - - $o++; + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); + echo " - HIDE

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - SHOW

"; } - - echo "\n"; - echo "
\n"; + echo ""; - echo "
\n"; - echo ""; - echo ""; - echo ""; - echo "\n"; - echo "\n"; - echo ""; - echo ""; - echo "\n"; - echo "\n"; + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); - $o=0; - while ($lists_to_print > $o) + echo "
LIST IDLIST NAMEDESCRIPTIONLEADS COUNTACTIVELAST CALL DATEMODIFY
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
LIST IDLIST NAMEDESCRIPTIONLEADS COUNTACTIVELAST CALL DATEMODIFY
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFY

\n"; + + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "This campaign has $active_lists active lists and $inactive_lists inactive lists

\n"; + + if ($display_dialable_count == 'Y') { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - echo "
$row[0] $row[1] $row[2] $row[3] $row[4]"; - - if (ereg('Y',$row[4])) - { - $active_lists++; - $camp_lists .= "'$row[0]',"; - echo ""; - } - else - { - $inactive_lists++; - echo ""; - echo " $row[5]MODIFY

\n"; - - echo "
\n"; - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "This campaign has $active_lists active lists and $inactive_lists inactive lists

\n"; - - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - HIDE

"; - } - else - { - echo "Popup Dialable Leads Count"; - echo " - SHOW

"; - } - - - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; if ($DB) {echo "$stmt\n";} @@ -12404,10 +12692,11 @@ if ($ADD==31) echo "This campaign has $hopper_leads leads in the dial hopper

\n"; echo "Click here to see what leads are in the hopper right now

\n"; - echo "Click here to see all CallBack Holds in this campaign

\n"; echo "Click here to see a VDAD report for this campaign

\n"; - echo "
\n"; } + echo "Click here to see all CallBack Holds in this campaign

\n"; + echo "\n"; + } ##### CAMPAIGN CUSTOM STATUSES ##### @@ -12720,7 +13009,7 @@ if ($ADD==31) } ##### CAMPAIGN QC SETTINGS ##### - if ($SUB==28) + if ( ($SUB==28) and ($SSqc_features_active > 0) ) { $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; $rslt=mysql_query($stmt, $link); @@ -12993,9 +13282,16 @@ if ($ADD==34) echo "
$row[0]: Basic View Detail View List Mix List Mix Real-Time Screen  
\n"; if ($SUB < 1) @@ -13017,72 +13313,74 @@ if ($ADD==34) echo "
Web Form: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Allow Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Default Transfer Group: $default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
Allow Inbound and Blended: $campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Allow Inbound and Blended: $campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Dial Status $o: \n"; - if ($DEFstatusDISABLED > 0) + $o=0; + while ($Ds_to_print > $o) { - echo "$Dstatus - $statname_list[$Dstatus]         \n"; - echo "REMOVE
Dial Status $o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Status:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
List Order: $NWB#vicidial_campaigns-lead_order$NWE
List Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Lead Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Adapt Intensity Modifier:
Add A Dial Status:   \n"; - echo "     $NWB#vicidial_campaigns-dial_status$NWE
List Order: $NWB#vicidial_campaigns-lead_order$NWE
List Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Lead Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Adapt Intensity Modifier: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Script: $script_id
Get Call Launch: $get_call_launch
\n"; - echo "\n"; - echo "\n"; + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } echo "\n"; echo "
\n"; - echo ""; + echo "\n"; - echo "\n"; - echo "\n"; - - ##### get status listings for dynamic pulldown - $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); - $QCstatuses = explode(" ", $qc_statuses); - $QCs_to_print = (count($QCstatuses) -0); - $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; - $rslt=mysql_query($stmt, $link); - $statuses_to_print = mysql_num_rows($rslt); - $qc_statuses_list=''; - - $o=0; - while ($statuses_to_print > $o) + if ($SSqc_features_active > 0) { - $rowx=mysql_fetch_row($rslt); - $qc_statuses_list .= " $o) - { - $rowx=mysql_fetch_row($rslt); - if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT * from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) { + $rowx=mysql_fetch_row($rslt); $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; } - ##### get scripts listings for pulldown - $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; - $rslt=mysql_query($stmt, $link); - $scripts_to_print = mysql_num_rows($rslt); - $QCscripts_list=""; - $o=0; - while ($scripts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCscripts_list .= "\n"; - $scriptname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - ##### get shifts listings for pulldown - $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; - $rslt=mysql_query($stmt, $link); - $shifts_to_print = mysql_num_rows($rslt); - $QCshifts_list=""; - $o=0; - while ($shifts_to_print > $o) - { - $rowx=mysql_fetch_row($rslt); - $QCshifts_list .= "\n"; - $shiftname_list["$rowx[0]"] = "$rowx[1]"; - $o++; - } - - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - - echo "\n"; echo "
\n"; + echo ""; - $LISTlink='stage=LISTIDDOWN'; - $TALLYlink='stage=TALLYDOWN'; - $ACTIVElink='stage=ACTIVEDOWN'; - $CAMPAIGNlink='stage=CAMPAIGNDOWN'; - $CALLDATElink='stage=CALLDATEDOWN'; - $SQLorder='order by list_id'; - if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} - if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} - if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} - if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} - if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} - if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} - if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} - if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} - if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} - if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} - $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; - $rslt=mysql_query($stmt, $link); - $lists_to_print = mysql_num_rows($rslt); - - echo "
\n"; - echo ""; - echo ""; - echo ""; - echo "\n"; - echo "\n"; - echo ""; - echo ""; - echo "\n"; - echo "\n"; - - $o=0; - while ($lists_to_print > $o) - { - $row=mysql_fetch_row($rslt); - if (eregi("1$|3$|5$|7$|9$", $o)) - {$bgcolor='bgcolor="#B9CBFD"';} - else - {$bgcolor='bgcolor="#9BB9FB"';} - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo "\n"; - - $o++; - } - - echo "\n"; - echo "
LIST IDLIST NAMEDESCRIPTIONLEADS COUNTACTIVELAST CALL DATEMODIFY
$row[0] $row[1] $row[2] $row[3] $row[4]"; - - if (ereg('Y',$row[4])) - { - $active_lists++; - $camp_lists .= "'$row[0]',"; - echo ""; - } - else - { - $inactive_lists++; - echo ""; - echo " $row[5]MODIFY

\n"; - echo "
\n"; - - $filterSQL = $filtersql_list[$lead_filter_id]; - $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); - if (strlen($filterSQL)>4) - {$fSQL = "and $filterSQL";} - else - {$fSQL = '';} - - $camp_lists = eregi_replace(".$","",$camp_lists); - echo "This campaign has $active_lists active lists and $inactive_lists inactive lists

\n"; - - - if ($display_dialable_count == 'Y') - { - ### call function to calculate and print dialable leads - dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); - echo " - HIDE

"; - } - else - { - echo "Popup Dialable Leads Count"; - echo " - SHOW

"; - } - - - - $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; - if ($DB) {echo "$stmt\n";} + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; $rslt=mysql_query($stmt, $link); - $rowx=mysql_fetch_row($rslt); - $hopper_leads = "$rowx[0]"; + $lists_to_print = mysql_num_rows($rslt); - echo "This campaign has $hopper_leads leads in the dial hopper

\n"; - echo "Click here to see what leads are in the hopper right now

\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
LIST IDLIST NAMEDESCRIPTIONLEADS COUNTACTIVELAST CALL DATEMODIFY
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFY

\n"; + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "This campaign has $active_lists active lists and $inactive_lists inactive lists

\n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$fSQL); + echo " - HIDE

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - SHOW

"; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "This campaign has $hopper_leads leads in the dial hopper

\n"; + echo "Click here to see what leads are in the hopper right now

\n"; + echo "Click here to see a VDAD report for this campaign

\n"; + } echo "Click here to see all CallBack Holds in this campaign

\n"; - echo "Click here to see a VDAD report for this campaign

\n"; echo "
\n"; echo "
\n"; @@ -14478,47 +14779,24 @@ if ($ADD==3111) echo "
 
Inbound Group QC Settings:
 
Inbound Group QC Settings:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Statuses:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm: $NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Show Recording: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Statuses:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm: $NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Show Recording: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; echo "

\n"; @@ -14896,12 +15200,15 @@ if ($ADD==311111) } echo "
 
QC Allowed Campaigns:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; - echo "$qc_campaigns_list"; - echo "
 
QC Allowed Inbound Groups:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; - echo "$qc_groups_list"; - echo "
 
QC Allowed Campaigns:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC Allowed Inbound Groups:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; @@ -15991,7 +16298,7 @@ if ($ADD==311111111111111) echo "\n"; echo "\n"; - + echo "\n"; + echo "\n"; echo "\n"; echo "\n"; @@ -16343,7 +16653,7 @@ if ($ADD==331111111111111) if ($ADD==341111111111111) { - if ($LOGmodify_servers==1) + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) { echo "
\n"; echo ""; - $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url from system_settings;"; + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $version = $row[0]; @@ -16025,6 +16332,8 @@ if ($ADD==311111111111111) $vtiger_login = $row[28]; $vtiger_pass = $row[29]; $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; echo "
MODIFY VICIDIAL SYSTEM SETTINGS
\n"; echo "\n"; @@ -16081,7 +16390,8 @@ if ($ADD==311111111111111) echo "\n"; echo "$NWB#settings-vdc_header_phone_format$NWE
Agent API Active: $NWB#settings-vdc_agent_api_active$NWE
QC Features Active: $NWB#settings-qc_features_active$NWE
Outbound Auto-Dial Active: $NWB#settings-outbound_autodial_active$NWE
Enable QueueMetrics Logging: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics Server IP: $NWB#settings-queuemetrics_server_ip$NWE
"; echo ""; echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } echo "\n"; $o=0; @@ -16786,10 +17099,13 @@ if ($ADD==10) echo ""; echo ""; echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } echo "\n"; $o++; } @@ -17513,13 +17829,11 @@ if ($ADD==999999) $i++; } - $stmt="SELECT enable_queuemetrics_logging,queuemetrics_url,enable_vtiger_integration,vtiger_url from system_settings;"; + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - $enable_queuemetrics_logging_LU = $row[0]; - $queuemetrics_url_LU = $row[1]; - $enable_vtiger_integration_LU = $row[2]; - $vtiger_url_LU = $row[3]; + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; ?> @@ -17541,11 +17855,11 @@ if ($ADD==999999) USER GROUP TIMECLOCK STATUS REPORT
  • SERVER PERFORMANCE 0) + if ($SSenable_queuemetrics_logging > 0) { echo "
  • QUEUEMETRICS REPORTS\n"; } - if ($enable_vtiger_integration_LU > 0) + if ($SSenable_vtiger_integration > 0) { echo "
  • VTIGER HOME\n"; }
  • \n"; echo ""; @@ -16769,10 +17079,13 @@ if ($ADD==10) echo "CAMPAIGN ID
    NAME
    ACTIVE   DIAL METHOD   LEVEL   LEAD ORDER   DIAL STATUSES   DIAL METHOD   LEVEL   LEAD ORDER   DIAL STATUSES   MODIFY
    $row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]$row[3]   $row[4]   $row[5]   $row[6]MODIFY