diff --git a/UPGRADE b/UPGRADE index 8ef66ee1..89265919 100644 --- a/UPGRADE +++ b/UPGRADE @@ -33,8 +33,8 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom 6. Added option for shorter enter and leave sounds(done during Asterisk build) BASE/SCRATCH_INSTALL or extras/Changed_meetme_sounds for more details -7. Added patch to meetme in Asterisk 1.2.X that will allow for better DTMF - passthru. Need to use the "F" flag to enable on Meetme in +7. Added optional patch to meetme in Asterisk 1.2.X that will allow for better + DTMF passthru. Need to use the "F" flag to enable on Meetme in extensiosn.conf. Feature is backported from Asterisk 1.4.X 8. Changed the FastAGI_log process to consolidate the "h" exten hangup process @@ -55,6 +55,9 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom exten => _010*010*010*015*78600XXX,... See LOAD_BALANCING.txt and extensions.conf.sample for more information +12. Inbound, Blended and Closer-type campaigns are no longer required to have + campaign_id incude specific words or characters to be treated as such. + There is now a new campaign_allow_inbound field where this is set. diff --git a/agi/agi-VDAD_ALL_inbound.agi b/agi/agi-VDAD_ALL_inbound.agi index 1d7ac0dc..3e11a781 100644 --- a/agi/agi-VDAD_ALL_inbound.agi +++ b/agi/agi-VDAD_ALL_inbound.agi @@ -45,7 +45,8 @@ # 71013-0310 - Added use of default Music-on-hold instead of generic on-hold message # 71020-1714 - fixed issues with MoH and stream_file messages # 71024-2153 - Added CLOSER functionality for calls coming from VICIDIAL fronters -# +# 71029-1726 - Changed CLOSER-type campaigns to use new campaign_allow_inbound field +# $script = 'agi-VDAD_ALL_inbound.agi'; @@ -544,6 +545,22 @@ else } +$vci=0; +$INBOUNDcampsSQL=''; +$stmtA = "SELECT campaign_id FROM vicidial_campaigns where active='Y' and campaign_allow_inbound='Y';"; + 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; + while ($sthArows > $vci) + { + @aryA = $sthA->fetchrow_array; + if ($vci==0) {$INBOUNDcampsSQL .= "'$aryA[0]'";} + else {$INBOUNDcampsSQL .= ",'$aryA[0]'";} + $vci++; + } +$sthA->finish(); + $new_lead_id = $insert_lead_id; if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} @@ -636,13 +653,13 @@ if ($agent_search_method =~ /^SO|^LO/) if ($rec_countWAIT < 1) { - $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id IN($INBOUNDcampsSQL) and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; my $affected_rows = $dbhA->do($stmtA); if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} if ($affected_rows > 0) { $cbc=0; - $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id IN($INBOUNDcampsSQL) and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -757,13 +774,13 @@ if ($agent_search_method =~ /^LO|^LB/) if ($rec_countWAITrem < 1) { - $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and campaign_id IN($INBOUNDcampsSQL) and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; my $affected_rows = $dbhA->do($stmtA); if ($AGILOG) {$agi_string = "-- VDAD get agent: |$DROP_TIME|$drop_timer|$affected_rows|update of vla table: $channel_group|\n|$stmtA|"; &agi_output;} if ($affected_rows > 0) { $cbc=0; - $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and campaign_id IN($INBOUNDcampsSQL) and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; diff --git a/bin/AST_VDadapt.pl b/bin/AST_VDadapt.pl index 86db584d..448a88b6 100644 --- a/bin/AST_VDadapt.pl +++ b/bin/AST_VDadapt.pl @@ -23,6 +23,7 @@ # 70409-1219 - Removed CLOSER-type campaign restriction # 70521-1038 - Fixed bug when no live campaigns are running, define $vicidial_log # 70619-1339 - Added Status Category tally calculations +# 71029-1906 - Changed CLOSER-type campaign_id restriction # # constants @@ -345,7 +346,7 @@ if ($CLIcampaign) } else { - $stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,UNIX_TIMESTAMP(campaign_changedate),campaign_stats_refresh from vicidial_campaigns where ( (active='Y') or (campaign_stats_refresh='Y') )"; + $stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,UNIX_TIMESTAMP(campaign_changedate),campaign_stats_refresh,campaign_allow_inbound from vicidial_campaigns where ( (active='Y') or (campaign_stats_refresh='Y') )"; } $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; @@ -373,6 +374,7 @@ while ($sthArows > $rec_count) $adaptive_dl_diff_target[$rec_count] = $aryA[13]; $campaign_changedate[$rec_count] = $aryA[14]; $campaign_stats_refresh[$rec_count] = $aryA[15]; + $campaign_allow_inbound[$rec_count] = $aryA[16]; $rec_count++; } @@ -1129,7 +1131,7 @@ $VCSagents_active[$i] = ($VCSINCALL[$i] + $VCSREADY[$i] + $VCSCLOSER[$i]); ### END - GATHER STATS FOR THE vicidial_campaign_stats TABLE ### -if ($campaign_id[$i] =~ /(CLOSER|BLEND|INBND|_C$|_B$|_I$)/) +if ($campaign_allow_inbound[$i] =~ /Y/) { # GET AVERAGES FROM THIS CAMPAIGN $stmtA = "SELECT differential_onemin,agents_average_onemin from vicidial_campaign_stats where campaign_id='$campaign_id[$i]';"; diff --git a/bin/AST_VDauto_dial.pl b/bin/AST_VDauto_dial.pl index 429b00f5..e2039440 100644 --- a/bin/AST_VDauto_dial.pl +++ b/bin/AST_VDauto_dial.pl @@ -63,7 +63,8 @@ # 70215-1123 - Added queue_log ABANDON logging # 70302-1412 - Fixed max_vicidial_trunks update if set to 0 # 70320-1458 - Fixed several errors in calculating trunk shortage for campaigns -# +# 71029-1909 - Changed CLOSER-type campaign_id restriction +# ### begin parsing run-time options ### @@ -437,7 +438,7 @@ while($one_day_interval > 0) ### grab the dial_level and multiply by active agents to get your goalcalls $DBIPadlevel[$user_CIPct]=0; - $stmtA = "SELECT auto_dial_level,local_call_time,dial_timeout,dial_prefix,campaign_cid,active,campaign_vdad_exten,closer_campaigns,omit_phone_code,available_only_ratio_tally,auto_alt_dial FROM vicidial_campaigns where campaign_id='$DBIPcampaign[$user_CIPct]'"; + $stmtA = "SELECT auto_dial_level,local_call_time,dial_timeout,dial_prefix,campaign_cid,active,campaign_vdad_exten,closer_campaigns,omit_phone_code,available_only_ratio_tally,auto_alt_dial,campaign_allow_inbound FROM vicidial_campaigns where campaign_id='$DBIPcampaign[$user_CIPct]'"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -464,6 +465,7 @@ while($one_day_interval > 0) $active_only=1; } $DBIPautoaltdial[$user_CIPct] = "$aryA[10]"; + $DBIPcampaign_allow_inbound[$user_CIPct] = "$aryA[11]"; $rec_count++; } $sthA->finish(); @@ -498,7 +500,7 @@ while($one_day_interval > 0) ### see how many calls are alrady active per campaign per server and ### subtract that number from goalcalls to determine how many new ### calls need to be placed in this loop - if ($DBIPcampaign[$user_CIPct] =~ /(CLOSER|BLEND|INBND|_C$|_B$|_I$)/) + if ($DBIPcampaign_allow_inbound[$user_CIPct] =~ /Y/) { if (length($DBIPclosercamp[$user_CIPct]) > 2) { diff --git a/bin/AST_VDhopper.pl b/bin/AST_VDhopper.pl index c1fd6d84..8145290b 100644 --- a/bin/AST_VDhopper.pl +++ b/bin/AST_VDhopper.pl @@ -44,6 +44,7 @@ # 60925-1330 - Fixed recycling leads issues # 61110-1513 - Changed Xth NEW to fill to hopper_level with standard if not enough NEW # 70219-1247 - Changed to use dial_statuses field instead of dial_status_x fields +# 71029-1929 - Added 5th and 6th NEW to list order # # constants @@ -982,7 +983,7 @@ foreach(@campaign_id) } $sthA->finish(); - if ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW/) + if ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW|DOWN COUNT 5th NEW|DOWN COUNT 6th NEW/) { $stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN('NEW') and list_id IN($camp_lists[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i];"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; @@ -1001,10 +1002,10 @@ foreach(@campaign_id) } ##### IF no NEW leads to be called, error out of this campaign ##### - if ( ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW/) && ($NEW_campaign_leads_to_call[$i] > 0) ) {$GOOD=1;} + if ( ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW|DOWN COUNT 5th NEW|DOWN COUNT 6th NEW/) && ($NEW_campaign_leads_to_call[$i] > 0) ) {$GOOD=1;} else { - if ($lead_order[$i] !~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW/) + if ($lead_order[$i] !~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW|DOWN COUNT 5th NEW|DOWN COUNT 6th NEW/) { if ($DB) {print " NO SHUFFLE-NEW-LEADS INTO HOPPER DEFINED FOR LEAD ORDER\n";} } @@ -1065,6 +1066,8 @@ foreach(@campaign_id) if ($lead_order[$i] eq "DOWN COUNT 2nd NEW") {$NEW_count = 2;} if ($lead_order[$i] eq "DOWN COUNT 3rd NEW") {$NEW_count = 3;} if ($lead_order[$i] eq "DOWN COUNT 4th NEW") {$NEW_count = 4;} + if ($lead_order[$i] eq "DOWN COUNT 5th NEW") {$NEW_count = 5;} + if ($lead_order[$i] eq "DOWN COUNT 6th NEW") {$NEW_count = 6;} ### BEGIN recycle grab leads ### $REC_rec_countLEADS=0; diff --git a/bin/AST_VDhopper_MIXtest.pl b/bin/AST_VDhopper_MIXtest.pl index 5a5a6957..bf95eba3 100644 --- a/bin/AST_VDhopper_MIXtest.pl +++ b/bin/AST_VDhopper_MIXtest.pl @@ -46,6 +46,7 @@ # 70219-1247 - Changed to use dial_statuses field instead of dial_status_x fields # 70708-1218 - Start of List-Mix-aware version of the hopper script # 70709-2033 - Functional Beta of List-Mix-aware version of the hopper script +# 71029-1929 - Added 5th and 6th NEW to list order # # constants @@ -1032,7 +1033,7 @@ foreach(@campaign_id) } $sthA->finish(); - if ( ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW/) && ($list_order_mix[$i] =~ /DISABLED/) ) + if ( ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW|DOWN COUNT 5th NEW|DOWN COUNT 6th NEW/) && ($list_order_mix[$i] =~ /DISABLED/) ) { $stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN('NEW') and list_id IN($camp_lists[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i];"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; @@ -1051,10 +1052,10 @@ foreach(@campaign_id) } ##### IF no NEW leads to be called, error out of this campaign ##### - if ( ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW/) && ($NEW_campaign_leads_to_call[$i] > 0) && ($list_order_mix[$i] =~ /DISABLED/) ) {$GOOD=1;} + if ( ($lead_order[$i] =~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW|DOWN COUNT 5th NEW|DOWN COUNT 6th NEW/) && ($NEW_campaign_leads_to_call[$i] > 0) && ($list_order_mix[$i] =~ /DISABLED/) ) {$GOOD=1;} else { - if ($lead_order[$i] !~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW/) + if ($lead_order[$i] !~ /DOWN COUNT 2nd NEW|DOWN COUNT 3rd NEW|DOWN COUNT 4th NEW|DOWN COUNT 5th NEW|DOWN COUNT 6th NEW/) { if ($DB) {print " NO SHUFFLE-NEW-LEADS INTO HOPPER DEFINED FOR LEAD ORDER\n";} } @@ -1115,6 +1116,8 @@ foreach(@campaign_id) if ($lead_order[$i] eq "DOWN COUNT 2nd NEW") {$NEW_count = 2;} if ($lead_order[$i] eq "DOWN COUNT 3rd NEW") {$NEW_count = 3;} if ($lead_order[$i] eq "DOWN COUNT 4th NEW") {$NEW_count = 4;} + if ($lead_order[$i] eq "DOWN COUNT 5th NEW") {$NEW_count = 5;} + if ($lead_order[$i] eq "DOWN COUNT 6th NEW") {$NEW_count = 6;} ### BEGIN recycle grab leads ### $REC_rec_countLEADS=0; diff --git a/docs/conf_examples/extensions.conf.sample b/docs/conf_examples/extensions.conf.sample index ebbb1a32..6920a284 100644 --- a/docs/conf_examples/extensions.conf.sample +++ b/docs/conf_examples/extensions.conf.sample @@ -633,7 +633,7 @@ exten => 8368,5,Hangup ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => 8369,1,AGI(call_log.agi,${EXTEN}) -exten => 8369,2,AMD(3500|1500|300|5000|120|50|5|256) +exten => 8369,2,AMD(2000|2000|1000|5000|120|50|4|256) exten => 8369,3,AGI(VD_amd.agi,${EXTEN}) exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) @@ -695,7 +695,7 @@ exten => 8372,5,Hangup ;exten => 8369,1,Playback(sip-silence) ;exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log) ;;exten => 8369,2,AGI(call_log.agi,${EXTEN}) -;exten => 8369,3,AMD(3500|1500|300|5000|120|50|5|256) +;exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256) ;exten => 8369,4,AGI(VD_amd.agi,${EXTEN}) ;exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) ;exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) diff --git a/docs/conf_examples/extensions.conf.sample-1.4 b/docs/conf_examples/extensions.conf.sample-1.4 index 0b681df8..ae2c0a4a 100644 --- a/docs/conf_examples/extensions.conf.sample-1.4 +++ b/docs/conf_examples/extensions.conf.sample-1.4 @@ -633,7 +633,7 @@ exten => 8368,5,Hangup ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log) ;exten => 8369,1,AGI(call_log.agi,${EXTEN}) -exten => 8369,2,AMD(3500|1500|300|5000|120|50|5|256) +exten => 8369,2,AMD(2000|2000|1000|5000|120|50|4|256) exten => 8369,3,AGI(VD_amd.agi,${EXTEN}) exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) @@ -695,7 +695,7 @@ exten => 8372,5,Hangup ;exten => 8369,1,Playback(sip-silence) ;exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log) ;;exten => 8369,2,AGI(call_log.agi,${EXTEN}) -;exten => 8369,3,AMD(3500|1500|300|5000|120|50|5|256) +;exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256) ;exten => 8369,4,AGI(VD_amd.agi,${EXTEN}) ;exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) ;exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index f682f88e..77c38a9b 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -268,7 +268,7 @@ alt_phone VARCHAR(12), email VARCHAR(70), security_phrase VARCHAR(100), comments VARCHAR(255), -called_count INT(8) UNSIGNED NOT NULL default '0', +called_count SMALLINT(5) UNSIGNED default '0', index (phone_number), index (list_id), index (called_since_last_reset), @@ -966,6 +966,30 @@ index (entry_time) ALTER TABLE vicidial_ivr AUTO_INCREMENT = 1000000; +CREATE TABLE vicidial_inbound_group_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_rank TINYINT(1) default '0', +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +index (group_id), +index (user) +); + +CREATE TABLE vicidial_live_inbound_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0'; +last_call_time DATETIME, +last_call_finish DATETIME, +index (group_id), +index (group_weight) +); + + +INSERT INTO vicidial_lists SET list_id='999',list_name='Default inbound list',campaign_id='TESTCAMP',active='N'; + INSERT INTO system_settings (version,install_date) values('2.0.X', CURDATE()); INSERT INTO vicidial_status_categories (vsc_id,vsc_name) values('UNDEFINED','Default Category'); diff --git a/extras/upgrade_2.0.4.sql b/extras/upgrade_2.0.4.sql index 4fd94c55..22550862 100644 --- a/extras/upgrade_2.0.4.sql +++ b/extras/upgrade_2.0.4.sql @@ -77,7 +77,7 @@ index (phone_number), index (entry_time) ); -ALTER TABLE vicidial_ivr AUTO_INCREMENT = 1000000; +ALTER TABLE vicidial_ivr AUTO_INCREMENT = 1357091; ALTER TABLE vicidial_inbound_groups ADD call_time_id VARCHAR(20) default '24hours'; ALTER TABLE vicidial_inbound_groups ADD after_hours_action ENUM('HANGUP','MESSAGE','EXTENSION','VOICEMAIL') default 'MESSAGE'; @@ -105,6 +105,27 @@ index (user) + + +CREATE TABLE vicidial_live_inbound_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +last_call_time DATETIME, +last_call_finish DATETIME, +index (group_id), +index (group_weight) +); + +ALTER TABLE vicidial_campaigns ADD campaign_allow_inbound ENUM('Y','N') default 'N'; + +UPDATE vicidial_campaigns SET campaign_allow_inbound='Y' where campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)'; + +INSERT INTO vicidial_lists SET list_id='999',list_name='Default inbound list',campaign_id='TESTCAMP',active='N'; + + + #!!!!!!! CHANGES BELOW THIS LINE ARE NOT FOR PRODUCTION USE YET, DO NOT APPLY THEM!!!!!!!!!!!!!!!!!!!!! # # @@ -116,22 +137,9 @@ index (user) #ALTER TABLE vicidial_inbound_groups ADD allow_leave_queue_message ENUM('Y','N') default 'N'; #ALTER TABLE vicidial_inbound_groups ADD callback_number_validation ENUM('6','7','8','9','10','11','12','13','14','NORTH_AMERICA','UK','NONE'); # -#ALTER TABLE servers ADD hold_queue_prompt_filename VARCHAR(50) default 'park'; -# #ALTER TABLE vicidial_user_groups ADD allowable_xfer_inbound_groups TEXT #ALTER TABLE vicidial_user_groups ADD default_xfer_inbound_group VARCHAR(20) # -# CREATE TABLE vicidial_live_inbound_agents ( -# user VARCHAR(20), -# group_id VARCHAR(20), -# group_weight TINYINT(1) default '0', -# calls_today SMALLINT(5) UNSIGNED default '0'; -# last_call_time DATETIME, -# last_call_finish DATETIME, -# random_id INT(8) UNSIGNED, -# index (group_id), -# index (group_weight) -# ); # diff --git a/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt b/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt index 6a067de4..19413bb6 100644 --- a/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt +++ b/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt @@ -105,6 +105,8 @@ On Hold Prompt Interval: || Agent Alert Extension: || Agent Alert Delay: || You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|| +Allow Inbound and Blended -<\/B> 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|| +Allow Inbound and Blended: || ############################################################ CLIENT diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index 0683901b..cc9a00f0 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -132,10 +132,11 @@ # 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records # 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling # 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns # -$version = '2.0.4-59'; -$build = '70828-1443'; +$version = '2.0.4-60'; +$build = '71029-1855'; require("dbconnect.php"); @@ -379,6 +380,33 @@ if ($ACTION == 'regCLOSER') if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); } + + $in_groups = explode(" ",$closer_choice); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $k++; + } + } echo "Closer In Group Choice $closer_choice has been registered to user $user\n"; } @@ -907,7 +935,11 @@ if ($stage == "end") { if ($start_epoch < 1000) { - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$campaign)) + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) { ##### look for the start epoch in the vicidial_closer_log table $stmt="SELECT start_epoch FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; @@ -930,7 +962,11 @@ if ($stage == "end") { $length_in_sec = 0; } - if ( ($length_in_sec < 1) and (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$campaign)) ) + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($length_in_sec < 1) and ($row[0] > 0) ) { ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log $stmt="SELECT start_epoch FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; @@ -951,7 +987,11 @@ if ($stage == "end") } else {$length_in_sec = ($StarTtime - $start_epoch);} - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$campaign)) + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) { $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec',status='DONE' where lead_id='$lead_id' order by start_epoch desc limit 1;"; if ($DB) {echo "$stmt\n";} @@ -1478,7 +1518,11 @@ if ($ACTION == 'VDADcheckINCOMING') if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$campaign)) + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) { ### update the vicidial_closer_log user to INCALL $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; @@ -1749,6 +1793,12 @@ else $rslt=mysql_query($stmt, $link); $vla_delete = mysql_affected_rows($link); + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $vlia_delete = mysql_affected_rows($link); + ##### Delete the web_client_sessions $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; if ($DB) {echo "$stmt\n";} @@ -1852,7 +1902,7 @@ else } } - echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel\n"; + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; } } @@ -1880,7 +1930,11 @@ if ($ACTION == 'updateDISPO') if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$campaign)) + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) { $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; if ($DB) {echo "$stmt\n";} diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index bb7be217..4f911856 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -163,10 +163,11 @@ # 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE # 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM # 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions # -$version = '2.0.4-134'; -$build = '71022-1427'; +$version = '2.0.4-135'; +$build = '71029-1848'; require("dbconnect.php"); @@ -621,40 +622,41 @@ $VDloginDISPLAY=0; $HKstatusnames = substr("$HKstatusnames", 0, -1); ##### grab the statuses to be dialed for your campaign as well as other campaign settings - $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); if ($DB) {echo "$stmt\n";} $row=mysql_fetch_row($rslt); - $park_ext = $row[0]; - $park_file_name = $row[1]; - $web_form_address = $row[2]; - $allow_closers = $row[3]; - $auto_dial_level = $row[4]; - $dial_timeout = $row[5]; - $dial_prefix = $row[6]; - $campaign_cid = $row[7]; - $campaign_vdad_exten = $row[8]; - $campaign_rec_exten = $row[9]; - $campaign_recording = $row[10]; - $campaign_rec_filename = $row[11]; - $campaign_script = $row[12]; - $get_call_launch = $row[13]; - $campaign_am_message_exten = $row[14]; - $xferconf_a_dtmf = $row[15]; - $xferconf_a_number = $row[16]; - $xferconf_b_dtmf = $row[17]; - $xferconf_b_number = $row[18]; - $alt_number_dialing = $row[19]; - $VC_scheduled_callbacks = $row[20]; - $wrapup_seconds = $row[21]; - $wrapup_message = $row[22]; - $closer_campaigns = $row[23]; - $use_internal_dnc = $row[24]; - $allcalls_delay = $row[25]; - $omit_phone_code = $row[26]; - $agent_pause_codes_active = $row[27]; - $no_hopper_leads_logins = $row[28]; + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = $row[2]; + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = $row[14]; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) { @@ -699,7 +701,7 @@ $VDloginDISPLAY=0; ##### grab the inbound groups to choose from if campaign contains CLOSER $VARingroups="''"; - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)", $VD_campaign)) + if ($campaign_allow_inbound == 'Y') { $VARingroups=''; $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 20;"; @@ -960,7 +962,7 @@ else if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); - if ( (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)", $VD_campaign)) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + if ( ($campaign_allow_inbound == 'Y') || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) { ### insert an entry into the user log for the login event $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; @@ -1026,6 +1028,13 @@ else $affected_rows = mysql_affected_rows($link); print "\n"; + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + # print "You have logged in as user: $VD_login on phone: $SIP_user to campaign: $VD_campaign
\n"; $VICIDiaL_is_logged_in=1; @@ -1108,7 +1117,7 @@ else } - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)", $VD_campaign)) + if ($campaign_allow_inbound == 'Y') { print "\n"; } diff --git a/www/vicidial/AST_timeonVDADall.php b/www/vicidial/AST_timeonVDADall.php index ac2721df..ec8eb52a 100644 --- a/www/vicidial/AST_timeonVDADall.php +++ b/www/vicidial/AST_timeonVDADall.php @@ -27,7 +27,8 @@ # 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu # 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) # 70619-1339 - Added Status Category tally display -# +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# header ("Content-type: text/html; charset=utf-8"); @@ -214,6 +215,10 @@ $F=''; $FG=''; $B=''; $BG=''; \n"; echo"\n"; @@ -466,7 +471,7 @@ echo "\n\n"; ################################################################################### ###### OUTBOUND CALLS ################################################################################### -if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$group)) +if ($campaign_allow_inbound > 0) { $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; if ($non_latin > 0) @@ -523,7 +528,7 @@ $parked_to_print = mysql_num_rows($rslt); if ($out_live > 9) {$F=''; $FG='';} if ($out_live > 14) {$F=''; $FG='';} - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$group)) + if ($campaign_allow_inbound > 0) {echo "$NFB$out_total$NFE current active calls      \n";} else {echo "$NFB$out_total$NFE calls being placed       \n";} diff --git a/www/vicidial/AST_timeonVDADallSUMMARY.php b/www/vicidial/AST_timeonVDADallSUMMARY.php index 34d704eb..242b27a0 100644 --- a/www/vicidial/AST_timeonVDADallSUMMARY.php +++ b/www/vicidial/AST_timeonVDADallSUMMARY.php @@ -12,6 +12,7 @@ # 61215-1131 - added answered calls and drop percent taken from answered calls # 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns # 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction # header ("Content-type: text/html; charset=utf-8"); @@ -131,6 +132,12 @@ $group = $groups[$k]; echo "$group   -   "; echo "Modify\n"; + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + $stmt="select auto_dial_level,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,lead_order,lead_filter_id,hopper_level,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -271,7 +278,7 @@ echo ""; ################################################################################ ###### OUTBOUND CALLS ################################################################################ -if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$group)) +if ($campaign_allow_inbound > 0) { $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; $rslt=mysql_query($stmt, $link); @@ -320,7 +327,7 @@ $parked_to_print = mysql_num_rows($rslt); if ($out_live > 9) {$F=''; $FG='';} if ($out_live > 14) {$F=''; $FG='';} - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$group)) + if ($campaign_allow_inbound > 0) {echo "$NFB$out_total$NFE current active calls      \n";} else {echo "$NFB$out_total$NFE calls being placed       \n";} diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index fdbd838a..a1b73363 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -653,6 +653,8 @@ if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} @@ -816,7 +818,8 @@ $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); $human_answered = ereg_replace("[^NY]","",$human_answered); -$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); +$tovdad_display = ereg_replace("[^NY]","",$tovdad_display); +$campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); ### ALPHA-NUMERIC ONLY ### $PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); @@ -1108,11 +1111,13 @@ $list_mix_container = ereg_replace(";","",$list_mix_container); # 70908-0941 - Added agc logile enable system_settings # 71020-1934 - Added inbound groups options: on-hold music, messages, call_times # 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.0.4-111'; -$build = '71022-1343'; +$admin_version = '2.0.4-112'; +$build = '71029-1710'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -1940,6 +1945,11 @@ echo "\n"; echo "\n"; echo "\n"; + echo "\n"; $o=0; while ($Ds_to_print > $o) @@ -8482,7 +8494,7 @@ if ($ADD==31) echo "   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE\n"; - echo "\n"; + echo "\n"; echo "\n"; - - if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)", $campaign_id)) + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) { echo "\n"; } - - echo "\n"; echo "
Allow Closers - This is where you can set whether the users of this campaign will have the option to send the call to a closer. +
+ +
+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. +

@@ -5533,7 +5543,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',safe_harbor_message='$safe_harbor_message',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' 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',safe_harbor_message='$safe_harbor_message',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' where campaign_id='$campaign_id';"; $rslt=mysql_query($stmtA, $link); if ($reset_hopper == 'Y') @@ -8337,6 +8347,7 @@ if ($ADD==31) $disable_alter_custdata = $row[62]; $no_hopper_leads_logins = $row[63]; $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; if (ereg("DISABLED",$list_order_mix)) {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} @@ -8454,6 +8465,7 @@ if ($ADD==31) echo "
Park Extension: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Allow Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Allow Inbound and Blended: $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
List Order: $NWB#vicidial_campaigns-lead_order$NWE
List Order: $NWB#vicidial_campaigns-lead_order$NWE
List Mix:
Allow No-Hopper-Leads Logins: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Allowed Inbound Groups:
"; echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
\n"; @@ -8637,8 +8651,6 @@ if ($ADD==31) echo "
\n"; @@ -9180,7 +9192,7 @@ if ($ADD==34) echo "   \n"; echo "     $NWB#vicidial_campaigns-dial_status$NWE\n"; - echo "List Order: $NWB#vicidial_campaigns-lead_order$NWE\n"; + echo "List Order: $NWB#vicidial_campaigns-lead_order$NWE\n"; echo "List Mix: