diff --git a/UPGRADE b/UPGRADE index a4f926f3..f1206ba7 100644 --- a/UPGRADE +++ b/UPGRADE @@ -9,6 +9,8 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom ########## UPGRADING FROM 2.2.0 TO 2.4 ########## +REQUIRED STEPS!!! + 1. install new files: perl ./install.pl NOTES: If you have customized any scripts in the bin or agi folders, @@ -21,6 +23,17 @@ NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom \. /path/from/root/extras/upgrade_2.4.sql quit +OTHER CHANGES: + +1. Changed "After hours", "No agent no queue" and "drop timeout reached" DROPs + to use AFTHRS/NANQUE/TIMEOT statuses respectively + +2. Added an option to record calls that enter through a DID until they end or + enter an in-group queue + +3. Added ability to have AGENTDIRECT calls that drop go to user's defined + voicemail box + diff --git a/agi/agi-DID_route.agi b/agi/agi-DID_route.agi index d36f09b4..656cfef2 100644 --- a/agi/agi-DID_route.agi +++ b/agi/agi-DID_route.agi @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# agi-DID_route.agi version 2.2.0 +# agi-DID_route.agi version 2.4y # # runs when a call comes into an inbound context on a trunk. This script will # send the calls to various places depending on the settings for each DID. @@ -24,6 +24,7 @@ # 90825-2252 - Changed PHONE to route using dialplan number # 91122-0743 - Added QueueMetrics logging as DID INFO entries # 100116-0631 - Logging bug fixes +# 100123-1423 - Added record call DID option # $script = 'agi-DID_route.agi'; @@ -180,7 +181,7 @@ if ( (!$callerid) or ($callerid =~ /unknown/) ) ### Grab DID values from the database $DIDs_in_system=0; -$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id FROM vicidial_inbound_dids where did_pattern = '$extension' and did_active='Y';"; +$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id,record_call FROM vicidial_inbound_dids where did_pattern = '$extension' and did_active='Y';"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -201,7 +202,7 @@ if ($sthArows > 0) $user_unavailable_action = $aryA[11]; $user_route_settings_ingroup = $aryA[12]; $menu_id = $aryA[13]; - $record_call = ''; + $record_call = $aryA[14]; $DIDs_in_system++; } @@ -210,7 +211,7 @@ $sthA->finish(); if ($sthArows < 1) { ### Grab DID values from the database for a default DID pattern if there is one - $stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id FROM vicidial_inbound_dids where did_pattern = 'default' and did_active='Y';"; + $stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id,record_call FROM vicidial_inbound_dids where did_pattern = 'default' and did_active='Y';"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $DIDs_in_system=$sthA->rows; @@ -231,7 +232,7 @@ if ($sthArows < 1) $user_unavailable_action = $aryA[11]; $user_route_settings_ingroup = $aryA[12]; $menu_id = $aryA[13]; - $record_call = ''; + $record_call = $aryA[14]; } $sthA->finish(); } @@ -266,7 +267,7 @@ if ($record_call =~ /Y/) $AGI->exec("Monitor wav|/var/spool/asterisk/monitor/MIX/$filename"); ### insert record into recording_log table ### - $stmtA = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,length_in_sec,filename,lead_id,user,location,vicidial_id) values('$channel','$VARserver_ip','$extension','$SQLdate','now_date_epoch','0','$filename','0','$callerid','$filename','$unique_id');"; + $stmtA = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,length_in_sec,filename,lead_id,user,location,vicidial_id) values('$channel','$VARserver_ip','$extension','$SQLdate','$now_date_epoch','0','$filename','0','$callerid','$filename','$unique_id');"; $affected_rowsR = $dbhA->do($stmtA); if ($affected_rowsR > 0) { diff --git a/agi/agi-NVA_recording.agi b/agi/agi-NVA_recording.agi index 3f6b4f34..f8a9a02d 100644 --- a/agi/agi-NVA_recording.agi +++ b/agi/agi-NVA_recording.agi @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# agi-NVA_recording.agi version 0.1 +# agi-NVA_recording.agi version 2.4 # # This script is designed to give recording ability to agents not the using # ViciDial agent screen @@ -10,22 +10,24 @@ # ; 3. log this call in user_call_log (Y|N) default N # ; 4. log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND AND INTERSYSTEM CALLS!!! # ; 5. audio record this call (Y|N) default N +# ; 6. double-log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND CALLMENU FORWARDED CALLS!!! # # ;custom dialplan entry example: -#exten => _.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y) +#exten => _.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N) #exten => _.,n,Goto(default,${EXTEN},1) #exten => _.,n,Hangup # # ;inbound to agent example: -#exten => 5678,1,AGI(agi-NVA_recording.agi,BOTH------Y---Y---Y) +#exten => 5678,1,AGI(agi-NVA_recording.agi,BOTH------Y---Y---Y---N) #exten => 5678,n,Goto(vicidial-auto,5678,1) #exten => 5678,n,Hangup # # -# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # CHANGELOG # 91105-1402 - First build +# 100123-1434 - Added double-log option for CallMenu forwarded calls # &get_time_now; @@ -107,13 +109,14 @@ if (length($ARGV[0])>1) $log_user_call = $ARGV_vars[2]; $log_call = $ARGV_vars[3]; $record_call = $ARGV_vars[4]; + $double_log = $ARGV_vars[5]; if ($AGI_output =~ /STDERR/) {$AGILOG = '1';} if ($AGI_output =~ /FILE/) {$AGILOG = '2';} if ($AGI_output =~ /BOTH/) {$AGILOG = '3';} if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} - if ($AGILOG) {$agi_string = "$AGI_output|$user|$log_call|$record_call|$uniqueid_log"; &agi_output;} + if ($AGILOG) {$agi_string = "$AGI_output|$user|$log_call|$record_call|$uniqueid_log|$double_log"; &agi_output;} } } @@ -164,7 +167,7 @@ if ($record_call =~ /Y/) $AGI->exec("Monitor wav|/var/spool/asterisk/monitor/MIX/$filename"); ### insert record into recording_log table ### - $stmtA = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,length_in_sec,filename,lead_id,user,location,vicidial_id) values('$channel','$VARserver_ip','$extension','$now_date','start_epoch','0','$filename','0','$accountcode','$filename','$unique_id');"; + $stmtA = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,length_in_sec,filename,lead_id,user,location,vicidial_id) values('$channel','$VARserver_ip','$extension','$now_date','$start_epoch','0','$filename','0','$accountcode','$filename','$unique_id');"; $affected_rows = $dbhA->do($stmtA); } @@ -184,6 +187,14 @@ if ($log_call =~ /Y/) $affected_rows = $dbhA->do($stmtA); } +### if set to double-log this call, insert call_log entry with uniqueid appended with a 99 ### +if ($double_log =~ /Y/) + { + ### insert record into call_log table ### + $stmtA = "INSERT INTO call_log SET uniqueid='" . $unique_id . "99', channel='$channel', channel_group='DOUBLE_LOG', server_ip='$VARserver_ip', type='$type', extension='$accountcode', number_dialed='$extension', caller_code='$callerid', start_time='$now_date', start_epoch='$start_epoch';"; + $affected_rows = $dbhA->do($stmtA); + } + exit; diff --git a/agi/agi-VDAD_ALL_inbound.agi b/agi/agi-VDAD_ALL_inbound.agi index 0068d00a..dd271275 100644 --- a/agi/agi-VDAD_ALL_inbound.agi +++ b/agi/agi-VDAD_ALL_inbound.agi @@ -118,6 +118,8 @@ # 91214-2034 - Fixes for rare in-group rank route bug # 91223-0959 - Added VID(vendor_lead_code) options # 91230-0911 - Reset to original callerID when sending the call to VMAIL/CALLMENU/PHONE/etc... +# 100121-1954 - Added TIMEOT/AFTHRS/NANQUE dropping event statuses +# 100123-1015 - Added voicemail_id lookup for user from AGENTDIRECT drop # $script = 'agi-VDAD_ALL_inbound.agi'; @@ -522,7 +524,7 @@ while ($sthArows > $cbc) $drop_exten = "$aryA[13]"; $CAMP_callorder = "$aryA[14]"; $VDADvoicemail_ext = "$aryA[15]"; - $VDADvoicemail_ext =~ s/\D//gi; +# $VDADvoicemail_ext =~ s/\D//gi; $queue_priority = "$aryA[16]"; $drop_inbound_group = "$aryA[17]"; $afterhours_xfer_group = "$aryA[18]"; @@ -752,7 +754,7 @@ if ( ($hm < $ct_default_start) || ($hm > $ct_default_stop) ) { $VHqueryCID = "VA$CIDdate$hour$min$sec$sec"; - $stmtA = "INSERT INTO vicidial_closer_log set status='DROP',start_epoch='$now_date_epoch',end_epoch='$now_date_epoch',length_in_sec='1',queue_seconds='0',lead_id = '$insert_lead_id',campaign_id='$channel_group',user='VDCL',list_id='$list_id',call_date='$now_date',phone_code='$phone_code',phone_number='$phone_number',comments='AFTER HOURS DROP',term_reason='AFTERHOURS',uniqueid='$uniqueid';"; + $stmtA = "INSERT INTO vicidial_closer_log set status='AFTHRS',start_epoch='$now_date_epoch',end_epoch='$now_date_epoch',length_in_sec='1',queue_seconds='0',lead_id = '$insert_lead_id',campaign_id='$channel_group',user='VDCL',list_id='$list_id',call_date='$now_date',phone_code='$phone_code',phone_number='$phone_number',comments='AFTER HOURS DROP',term_reason='AFTERHOURS',uniqueid='$uniqueid';"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02016'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; @@ -769,7 +771,7 @@ if ( ($hm < $ct_default_start) || ($hm > $ct_default_stop) ) $sthA->finish(); if ($AGILOG) {$agi_string = "-- AH VDCL vcl insert: |$affected_rows|$insert_lead_id|$insert_close_id|\n|$stmtA|"; &agi_output;} - $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$insert_lead_id';"; + $stmtA = "UPDATE vicidial_list set status='AFTHRS' where lead_id = '$insert_lead_id';"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02018'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; if ($AGILOG) {$agi_string = "-- AH VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} @@ -912,7 +914,7 @@ if ($no_agent_no_queue =~ /Y|NO_PAUSED/) { $VHqueryCID = "VA$CIDdate$hour$min$sec$sec"; - $stmtA = "INSERT INTO vicidial_closer_log set status='DROP',start_epoch='$now_date_epoch',end_epoch='$now_date_epoch',length_in_sec='1',queue_seconds='0',lead_id = '$insert_lead_id',campaign_id='$channel_group',user='VDCL',list_id='$list_id',call_date='$now_date',phone_code='$phone_code',phone_number='$phone_number',comments='NO AGENT DROP',term_reason='NOAGENT',uniqueid='$uniqueid';"; + $stmtA = "INSERT INTO vicidial_closer_log set status='NANQUE',start_epoch='$now_date_epoch',end_epoch='$now_date_epoch',length_in_sec='1',queue_seconds='0',lead_id = '$insert_lead_id',campaign_id='$channel_group',user='VDCL',list_id='$list_id',call_date='$now_date',phone_code='$phone_code',phone_number='$phone_number',comments='NO AGENT DROP',term_reason='NOAGENT',uniqueid='$uniqueid';"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02105'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; @@ -929,7 +931,7 @@ if ($no_agent_no_queue =~ /Y|NO_PAUSED/) $sthA->finish(); if ($AGILOG) {$agi_string = "-- NA VDCL vcl insert: |$affected_rows|$insert_lead_id|$insert_close_id|\n|$stmtA|"; &agi_output;} - $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$insert_lead_id';"; + $stmtA = "UPDATE vicidial_list set status='NANQUE' where lead_id = '$insert_lead_id';"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02106'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; if ($AGILOG) {$agi_string = "-- NA VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} @@ -1339,7 +1341,7 @@ else ########################################################## ### end logging for call_log logged DID_INBOUND calls ### $CLchannel_group=''; -$stmtA = "SELECT channel_group,start_epoch FROM call_log where uniqueid='$unique_id' order by start_time desc limit 1;"; +$stmtA = "SELECT channel_group,start_epoch,number_dialed,end_epoch FROM call_log where uniqueid='$unique_id' order by start_time desc limit 1;"; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthArows=$sthA->rows; @@ -1348,10 +1350,12 @@ if ($sthArows > 0) @aryA = $sthA->fetchrow_array; $CLchannel_group = $aryA[0]; $CLstart_epoch = $aryA[1]; + $CLnumber_dialed = $aryA[2]; + $CLend_epoch = $aryA[3]; } $sthA->finish(); -if ($CLchannel_group =~ /DID_INBOUND/) +if ( ($CLchannel_group =~ /DID_INBOUND/) && (length($CLend_epoch) < 5) ) { $CLlength_in_sec = ($now_date_epoch - $CLstart_epoch); $CLlength_in_min = ($CLlength_in_sec / 60); @@ -1360,6 +1364,58 @@ if ($CLchannel_group =~ /DID_INBOUND/) $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$CLlength_in_sec,length_in_min='$CLlength_in_min',extension='$callerid' where uniqueid='$unique_id'"; $affected_rowsCL = $dbhA->do($stmtA); if ($AGILOG) {$agi_string = "DID IVR time logged: $start_time|$now_date_epoch|$affected_rowsCL|$stmtA|"; &agi_output;} + + $stmtA = "SELECT record_call FROM vicidial_inbound_dids where did_pattern = '$CLnumber_dialed';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $DIDs_in_system=$sthA->rows; + if ($DIDs_in_system > 0) + { + @aryA = $sthA->fetchrow_array; + $record_call = $aryA[0]; + } + else + { + $stmtA = "SELECT record_call FROM vicidial_inbound_dids where did_pattern = 'default';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $DIDs_in_system=$sthA->rows; + if ($DIDs_in_system > 0) + { + @aryA = $sthA->fetchrow_array; + $record_call = $aryA[0]; + } + } + $sthA->finish(); + if ($record_call =~ /QUEUESTOP/) + { + $stmtA = "SELECT recording_id,start_epoch,filename,end_epoch FROM recording_log where vicidial_id='$unique_id' order by start_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CLrecording_id = $aryA[0]; + $CLstart_epoch = $aryA[1]; + $CLfilename = $aryA[2]; + $CLend_epoch = $aryA[3]; + + if (length($CLend_epoch) < 5) + { + $CLlength_in_sec = ($now_date_epoch - $CLstart_epoch); + $CLlength_in_min = ($CLlength_in_sec / 60); + $CLlength_in_min = sprintf("%8.2f", $CLlength_in_min); + + $AGI->exec("StopMonitor wav|/var/spool/asterisk/monitor/MIX/$CLfilename"); + + $stmtA = "UPDATE recording_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$CLlength_in_sec,length_in_min='$CLlength_in_min' where recording_id='$CLrecording_id'"; + $affected_rowsRL = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "Recording stopped: $CLstart_epoch|$now_date_epoch|$affected_rowsRL|$stmtA|"; &agi_output;} + } + } + $sthA->finish(); + } } @@ -1441,8 +1497,11 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) ) ################################################################ ##### Attempt to send call to an agent on this server only ##### + if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) { + if ($agent_search_method =~ /^SO/) + {$agent_search_method = 'LO';} ### Get count of number of calls in this group that are ahead of this call $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$insert_lead_id';"; if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} @@ -2905,7 +2964,7 @@ if ($drop_timer > $DROP_TIME) $Baffected_rows = $dbhB->do($stmtB); $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02097'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; - $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='CALLSTATUS',data1='DROP',serverid='$queuemetrics_log_id';"; + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='CALLSTATUS',data1='TIMEOT',serverid='$queuemetrics_log_id';"; $Baffected_rows = $dbhB->do($stmtB); $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02098'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; @@ -2918,11 +2977,29 @@ if ($drop_timer > $DROP_TIME) $drop_seconds = $DROP_TIME; } - if ( ($channel_group =~ /AGENTDIRECT/) && (length($agent_only) > 1) && (length($user_unavailable_action) > 1) ) + if ( ($channel_group =~ /AGENTDIRECT/) && (length($agent_only) > 1) && ( (length($user_unavailable_action) > 1) || ($VDADvoicemail_ext =~ /AGENTVMAIL/) ) ) { - $drop_action = $user_unavailable_action; - $drop_inbound_group = $did_in_group; + if ($VDADvoicemail_ext !~ /AGENTVMAIL/) + { + $drop_action = $user_unavailable_action; + $drop_inbound_group = $did_in_group; + } $VDADvoicemail_ext = $did_voicemail_ext; + if (length($did_voicemail_ext) < 1) + { + ### Grab user's voicemail ID from the database + $stmtA = "SELECT voicemail_id FROM vicidial_users where user='$agent_only';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02XXX'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = $aryA[0]; + } + $sthA->finish(); + } } if ($drop_action =~ /MESSAGE|EXTEN/) @@ -3011,12 +3088,12 @@ if ($drop_timer > $DROP_TIME) $dbhP=$dbhA; $mysql_count='02099'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} - $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds',term_reason='QUEUETIMEOUT' where lead_id = '$insert_lead_id' order by start_epoch desc limit 1;"; + $stmtA = "UPDATE vicidial_closer_log set status='TIMEOT',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds',term_reason='QUEUETIMEOUT' where lead_id = '$insert_lead_id' order by start_epoch desc limit 1;"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02100'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} - $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$insert_lead_id';"; + $stmtA = "UPDATE vicidial_list set status='TIMEOT' where lead_id = '$insert_lead_id';"; $affected_rows = $dbhA->do($stmtA); $dbhP=$dbhA; $mysql_count='02101'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} diff --git a/agi/agi-VDAD_ALL_outbound.agi b/agi/agi-VDAD_ALL_outbound.agi index f8700ff3..f303fda8 100644 --- a/agi/agi-VDAD_ALL_outbound.agi +++ b/agi/agi-VDAD_ALL_outbound.agi @@ -1357,6 +1357,8 @@ while ($drop_timer <= $DROP_TIME) ##### Attempt to send call to an agent on this server only ##### if ($agent_search_method =~ /^SO|^LO/) { + if ($agent_search_method =~ /^SO/) + {$agent_search_method = 'LO';} $rec_countWAIT=0; $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$CIDlead_id';"; if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} diff --git a/bin/FastAGI_log.pl b/bin/FastAGI_log.pl index b0d14221..9cf66ab9 100644 --- a/bin/FastAGI_log.pl +++ b/bin/FastAGI_log.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# FastAGI_log.pl version 2.2.0 *DBI-version* +# FastAGI_log.pl version 2.4 # # Experimental Deamon using perl Net::Server that runs as FastAGI to reduce load # replaces the following AGI scripts: @@ -25,7 +25,7 @@ # exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) # # -# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# Copyright (C) 2010 Matt Florell LICENSE: AGPLv2 # # CHANGELOG: # 61010-1007 - First test build @@ -53,6 +53,7 @@ # 91026-1148 - Added AREACODE DNC option # 91213-1213 - Added queue_position to queue_log COMPLETE... and ABANDON records # 100108-2242 - Added answered_time to vicidial_carrier_log +# 100123-1449 - Added double-log end logging # # defaults for PreFork @@ -631,12 +632,65 @@ sub process_request $length_in_min = ($length_in_sec / 60); $length_in_min = sprintf("%8.2f", $length_in_min); - if ($AGILOG) {$agi_string = "QUERY done: start time = $start_time | sec: $length_in_sec | min: $length_in_min |"; &agi_output;} - $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$length_in_sec,length_in_min='$length_in_min',channel='$channel' where uniqueid='$unique_id'"; if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} - $affected_rows = $dbhA->do($stmtA); + $affected_rowsL = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "QUERY done: start time = $start_time | sec: $length_in_sec | min: $length_in_min |$affected_rowsL"; &agi_output;} + + if ($channel_group =~ /DID_INBOUND/) + { + $stmtA = "SELECT recording_id,start_epoch,filename,end_epoch FROM recording_log where vicidial_id='$unique_id' order by start_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CLrecording_id = $aryA[0]; + $CLstart_epoch = $aryA[1]; + $CLfilename = $aryA[2]; + $CLend_epoch = $aryA[3]; + + if (length($CLend_epoch) < 5) + { + $CLlength_in_sec = ($now_date_epoch - $CLstart_epoch); + $CLlength_in_min = ($CLlength_in_sec / 60); + $CLlength_in_min = sprintf("%8.2f", $CLlength_in_min); + + $stmtA = "UPDATE recording_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$CLlength_in_sec,length_in_min='$CLlength_in_min' where recording_id='$CLrecording_id'"; + $affected_rowsRL = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "Recording stopped: $CLstart_epoch|$now_date_epoch|$affected_rowsRL|$stmtA|"; &agi_output;} + } + } + $sthA->finish(); + + ### BEGIN Double-log end logging ### + $DOUBLEunique_id = $unique_id . "99"; + $stmtA = "SELECT start_epoch FROM call_log where uniqueid='$DOUBLEunique_id' and channel_group='DOUBLE_LOG' order by start_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DOUBLEstart_epoch = $aryA[0]; + + $DOUBLElength_in_sec = ($now_date_epoch - $DOUBLEstart_epoch); + $DOUBLElength_in_min = ($DOUBLElength_in_sec / 60); + $DOUBLElength_in_min = sprintf("%8.2f", $DOUBLElength_in_min); + + $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$DOUBLElength_in_sec,length_in_min='$DOUBLElength_in_min' where uniqueid='$DOUBLEunique_id' and channel_group='DOUBLE_LOG' order by start_time desc limit 1"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rowsDB = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "DOUBLE QUERY done: start time = $DOUBLEstart_epoch | sec: $DOUBLElength_in_sec | min: $DOUBLElength_in_min |$affected_rowsDB"; &agi_output;} + } + $sthA->finish(); + ### END Double-log end logging ### + } } $stmtA = "DELETE from live_inbound where uniqueid IN('$unique_id','$CALLunique_id') and server_ip='$VARserver_ip'"; diff --git a/docs/BASE_INSTALL.txt b/docs/BASE_INSTALL.txt index 9a415f39..ea9caf26 100644 --- a/docs/BASE_INSTALL.txt +++ b/docs/BASE_INSTALL.txt @@ -408,9 +408,9 @@ PHASE 6: ADDING CRONTAB ENTRIES FOR ASTGUICLIENT/VICIDIAL SCRIPTS - add the following entries(here's what we used): ### recording mixing/compressing/ftping scripts -0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl -#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX -#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM #2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM diff --git a/docs/SCRATCH_INSTALL.txt b/docs/SCRATCH_INSTALL.txt index f5f31054..f8851f59 100644 --- a/docs/SCRATCH_INSTALL.txt +++ b/docs/SCRATCH_INSTALL.txt @@ -2377,9 +2377,9 @@ SUBPHASE 6.5: setting up astguiclient scripts for continuous running - add the following entries(here's what we used): ### recording mixing/compressing/ftping scripts -0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl -#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX -#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM #2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM diff --git a/docs/VICIDIAL_statuses.txt b/docs/VICIDIAL_statuses.txt index da48c1ec..9e70d877 100644 --- a/docs/VICIDIAL_statuses.txt +++ b/docs/VICIDIAL_statuses.txt @@ -49,3 +49,6 @@ CPDSUK - Sangoma Call Progress Detection CPD Sit-Unknown CPDSV - Sangoma Call Progress Detection CPD Sit-Vacant CPDUK - Sangoma Call Progress Detection CPD Unknown CPDERR - Sangoma Call Progress Detection CPD Error +TIMEOT - Inbound call Drop Timeout, call waited until drop-seconds and was sent on to the drop action +AFTHRS - Inbound after hours drop, call received outside of in-group call time +NANQUE - Inbound no agent no queue drop, no agent logged in diff --git a/extras/MySQL_AST_CREATE_tables.sql b/extras/MySQL_AST_CREATE_tables.sql index 3a8c3245..5245c689 100644 --- a/extras/MySQL_AST_CREATE_tables.sql +++ b/extras/MySQL_AST_CREATE_tables.sql @@ -537,7 +537,8 @@ custom_one VARCHAR(100) default '', custom_two VARCHAR(100) default '', custom_three VARCHAR(100) default '', custom_four VARCHAR(100) default '', -custom_five VARCHAR(100) default '' +custom_five VARCHAR(100) default '', +voicemail_id VARCHAR(10) ); @@ -1457,6 +1458,7 @@ list_id BIGINT(14) UNSIGNED default '999', campaign_id VARCHAR(8), phone_code VARCHAR(10) default '1', menu_id VARCHAR(50) default '', +record_call ENUM('Y','N','Y_QUEUESTOP') default 'N', unique index (did_pattern), index (group_id) ); diff --git a/extras/first_server_install.sql b/extras/first_server_install.sql index 5a4830d5..0c704225 100644 --- a/extras/first_server_install.sql +++ b/extras/first_server_install.sql @@ -352,3 +352,6 @@ INSERT INTO vicidial_statuses values('SVYHU','Survey Hungup','N','N','UNDEFINED' INSERT INTO vicidial_statuses values('SVYREC','Survey sent to Record','N','N','UNDEFINED','N','N','N','N','N'); INSERT INTO vicidial_statuses values('QVMAIL','Queue Abandon Voicemail Left','N','N','UNDEFINED','N','N','N','N','N'); INSERT INTO vicidial_statuses values('RQXFER','Re-Queue','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('TIMEOT','Inbound Queue Timeout Drop','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('AFTHRS','Inbound After Hours Drop','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('NANQUE','Inbound No Agent No Queue Drop','N','Y','UNDEFINED','N','N','N','N','N'); diff --git a/extras/upgrade_2.4.sql b/extras/upgrade_2.4.sql index 7104c52e..8b23ca03 100644 --- a/extras/upgrade_2.4.sql +++ b/extras/upgrade_2.4.sql @@ -1,2 +1,17 @@ UPDATE system_settings SET version='2.4b0.5',db_schema_update_date=NOW(); +INSERT INTO vicidial_statuses values('TIMEOT','Inbound Queue Timeout Drop','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('AFTHRS','Inbound After Hours Drop','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('NANQUE','Inbound No Agent No Queue Drop','N','Y','UNDEFINED','N','N','N','N','N'); + +UPDATE system_settings SET db_schema_version='1194',db_schema_update_date=NOW(); + + + + + +ALTER TABLE vicidial_users ADD voicemail_id VARCHAR(10) default ''; + +ALTER TABLE vicidial_inbound_dids ADD record_call ENUM('Y','N','Y_QUEUESTOP') default 'N'; + +UPDATE system_settings SET db_schema_version='1195',db_schema_update_date=NOW(); diff --git a/www/agc/vdc_db_query.php b/www/agc/vdc_db_query.php index 07056e0a..b92f34f3 100644 --- a/www/agc/vdc_db_query.php +++ b/www/agc/vdc_db_query.php @@ -231,12 +231,13 @@ # 100109-0745 - Added alt_num_status for ALTNUM dialing status # 100109-1336 - Fixed Manual dial live call detection # 100113-1949 - Fixed dispo_choice bug and added dispo_status to dispo URL call +# 100122-0757 - Added NOT-LOGGED-IN-AGENTS option for sidebar view and transfer view # -$version = '2.2.0-139'; -$build = '100113-1949'; +$version = '2.4-140'; +$build = '100122-0757'; $mel=1; # Mysql Error Log enabled = 1 -$mysql_log_count=300; +$mysql_log_count=301; $one_mysql_log=0; require("dbconnect.php"); @@ -6191,6 +6192,8 @@ if ($ACTION == 'AGENTSview') echo ""; ### Gather agents data and statuses + $agentviewlistSQL=''; + $j=0; $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; $rslt=mysql_query($stmt, $link); if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} @@ -6204,6 +6207,7 @@ if ($ACTION == 'AGENTSview') $full_name = $row[2]; $call_start = $row[3]; $call_finish = $row[4]; + $agentviewlistSQL .= "'$user',"; if ( ($status=='READY') or ($status=='CLOSER') ) { @@ -6239,10 +6243,11 @@ if ($ACTION == 'AGENTSview') if ($comments=='AgentXferViewSelect') { - echo ""; - if ($agent_status_view_time > 0) - {echo "";} - echo ""; + $AXVSuser[$j] = $user; + $AXVSfull_name[$j] = $full_name; + $AXVScall_time[$j] = $call_time; + $AXVSstatuscolor[$j] = $statuscolor; + $j++; } else { @@ -6255,8 +6260,84 @@ if ($ACTION == 'AGENTSview') } $loop_count++; } + $agentviewlistSQL = eregi_replace(".$","",$agentviewlistSQL); + if (strlen($agentviewlistSQL)<3) + {$agentviewlistSQL = "''";} + + if (ereg("NOT-LOGGED-IN-AGENTS",$agent_status_viewable_groups)) + { + $stmt="SELECT user,full_name from vicidial_users where user NOT IN($agentviewlistSQL) order by full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00301',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $full_name = $row[1]; + + if ($comments=='AgentXferViewSelect') + { + $AXVSuser[$j] = $user; + $AXVSfull_name[$j] = $full_name; + $AXVScall_time[$j] = '0:00'; + $AXVSstatuscolor[$j] = 'white'; + $j++; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + } + + ### BEGIN Display the agent transfer select view ### + $k=0; + if ($comments=='AgentXferViewSelect') + { + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$user - $full_name"; + echo "   0:00  
"; + echo "
"; + + $AXVSrecords=100; + $AXVScolumns=1; + $AXVSfontsize='12px'; + if ($j > 30) {$AXVScolumns++;} + if ($j > 60) {$AXVScolumns++; $AXVSfontsize='11px';} + if ($j > 90) {$AXVScolumns++; $AXVSfontsize='10px';} + if ($j > 120) {$AXVScolumns++; $AXVSfontsize='9px';} + $AXVSrecords = ($j / $AXVScolumns); + $AXVSrecords = round($AXVSrecords, 0); + $m=0; + while ($j > $k) + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + + $k++; + $m++; + if ($m >= $AXVSrecords) + { + echo "
  $AXVSuser[$k] - $AXVSfull_name[$k]   $AXVScall_time[$k]  
  "; + $m=0; + } + } + echo "
"; + } + echo "

\n"; echo "    -READY      -INCALL      -PAUSED  \n"; + if (ereg("NOT-LOGGED-IN-AGENTS",$agent_status_viewable_groups)) + {echo "    -LOGGED-OUT  \n";} + if ($comments=='AgentXferViewSelect') { echo "

Close Window "; diff --git a/www/agc/vicidial.php b/www/agc/vicidial.php index 43179bdd..b01beb12 100644 --- a/www/agc/vicidial.php +++ b/www/agc/vicidial.php @@ -272,10 +272,11 @@ # 100109-0801 - Added ALTNUM alt number status, fixed alt number dialing from setting # 100109-1338 - Fixed Manual dial live call detection # 100116-0709 - Added presets to script and web form variables +# 100123-0954 - changes to AGENTDIRECT selection span # -$version = '2.2.0-250'; -$build = '100116-0709'; +$version = '2.4-251'; +$build = '100123-0954'; $mel=1; # Mysql Error Log enabled = 1 $mysql_log_count=64; $one_mysql_log=0; @@ -10772,7 +10773,7 @@ if ($view_calls_in_queue > 0)
  Other Agents Status:  
 
-
+
Available Agents Transfer:
Agents View +
diff --git a/www/vicidial/admin.php b/www/vicidial/admin.php index 2cd8e624..5267642e 100644 --- a/www/vicidial/admin.php +++ b/www/vicidial/admin.php @@ -1165,6 +1165,8 @@ if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_n elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} +if (isset($_GET["record_call"])) {$record_call=$_GET["record_call"];} + elseif (isset($_POST["record_call"])) {$record_call=$_POST["record_call"];} if (isset($script_id)) {$script_id= strtoupper($script_id);} if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} @@ -1307,7 +1309,6 @@ if ($non_latin < 1) $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); - $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); @@ -1477,6 +1478,7 @@ if ($non_latin < 1) $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + $voicemail_id = ereg_replace("[^0-9a-zA-Z]","",$voicemail_id); ### DIGITS and Dots $server_ip = ereg_replace("[^\.0-9]","",$server_ip); @@ -1630,6 +1632,7 @@ if ($non_latin < 1) $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + $record_call = ereg_replace("[^-_0-9a-zA-Z]","",$record_call); ### ALPHA-NUMERIC and underscore and dash and slash and dot $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); @@ -2044,11 +2047,13 @@ else # 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides # 100104-1454 - Fixed in-group/campaign copy duplication issue # 100116-0718 - Added presets to script select list +# 100122-0747 - Added NOT-LOGGED-IN-AGENTS option for User Groups +# 100123-1301 - Added DID record call option # # make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time -$admin_version = '2.2.0-234'; -$build = '100116-0718'; +$admin_version = '2.4-236'; +$build = '100123-1301'; $STARTtime = date("U"); $SQLdate = date("Y-m-d H:i:s"); @@ -3038,6 +3043,11 @@ if ($ADD==99999)
Active - This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y +
+ +
+ Voicemail ID - This is the voicemail box that calls will be directed to in an AGENTDIRECT in-group at the drop time if the in-group has the drop method set to VOICEMAIL and the Voicemail field set to AGENTVMAIL. +

@@ -4218,7 +4228,7 @@ if ($ADD==99999)

- Voicemail - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + Voicemail - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. In an AGENTDIRECT in-group, setting this to AGENTVMAIL will select the User voicemail ID to use.
@@ -4464,6 +4474,11 @@ if ($ADD==99999)
DID Route - This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN. CALLMENU will send the call to the defined Call Menu. +
+
+
+ Record Call - This option allows you to set the calls coming into this DID to be recorded. Y will record the entire call, Y_QUEUESTOP will record the call until the call is hungup or enters an in-group queue, N will not record the call. Default is N. +

@@ -4773,7 +4788,7 @@ if ($ADD==99999)

- Agent Status Viewable Groups - This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into. + Agent Status Viewable Groups - This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into. The NOT-LOGGED-IN-AGENTS option allows all users in the system to be displayed, even if they are not logged-in curently.
@@ -8340,7 +8355,7 @@ if ($ADD=="2A") $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; $rslt=mysql_query($stmt, $link); } - $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id from vicidial_users where user=\"$source_user_id\";"; $rslt=mysql_query($stmt, $link); $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; @@ -9221,7 +9236,7 @@ if ($ADD==2411) } else { - $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call from vicidial_inbound_dids where did_id=\"$source_did\";"; $rslt=mysql_query($stmt, $link); $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; @@ -10459,7 +10474,7 @@ if ($ADD=="4A") } 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',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $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',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id' where user='$user';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -10692,7 +10707,7 @@ if ($ADD=="4B") } 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',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $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',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five',voicemail_id='$voicemail_id' where user='$user';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -12167,7 +12182,7 @@ if ($ADD==4311) { echo "
DID MODIFIED: $did_pattern\n"; - $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id',record_call='$record_call' where did_id='$did_id';"; $rslt=mysql_query($stmt, $link); ### LOG INSERTION Admin Log Table ### @@ -15604,7 +15619,7 @@ if ($ADD==3) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -19879,7 +19896,7 @@ if ($ADD==3311) $didSQL = "did_id='$did_id'"; if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) {$didSQL = "did_pattern='$did_pattern'";} - $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id,record_call from vicidial_inbound_dids where $didSQL;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); @@ -19903,6 +19920,7 @@ if ($ADD==3311) $campaign_id = $row[17]; $phone_code = $row[18]; $menu_id = $row[19]; + $record_call = $row[20]; $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; @@ -19975,6 +19993,7 @@ if ($ADD==3311) echo "\n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -20483,6 +20502,10 @@ if ($ADD==311111) if (ereg(" --CAMPAIGN-AGENTS-- ", $VGROUP_vgroups)) {echo " CHECKED";} echo ">CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + echo "NOT-LOGGED-IN-AGENTS - All users in the system, even not logged-in users
\n"; $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; $rslt=mysql_query($stmt, $link); @@ -23345,7 +23368,7 @@ if ($ADD==1300) echo "
\n"; echo ""; - $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five,voicemail_id from vicidial_users where user='$user';"; $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); $user_id = $row[0]; @@ -15681,6 +15696,7 @@ if ($ADD==3) $user_custom_three = $row[73]; $user_custom_four = $row[74]; $user_custom_five = $row[75]; + $voicemail_id = $row[76]; if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) { @@ -15730,6 +15746,7 @@ if ($ADD==3) echo "
Phone Login: $NWB#vicidial_users-phone_login$NWE
Phone Pass: $NWB#vicidial_users-phone_pass$NWE
Active: $NWB#vicidial_users-active$NWE
Voicemail ID: voicemail chooser$NWB#vicidial_users-voicemail_id$NWE
Email: $NWB#vicidial_users-optional$NWE
User Code: $NWB#vicidial_users-optional$NWE
Main Territory: $NWB#vicidial_users-optional$NWE
DID Description: $NWB#vicidial_inbound_dids-did_description$NWE
Active: $NWB#vicidial_inbound_dids-did_active$NWE
DID Route: $NWB#vicidial_inbound_dids-did_route$NWE
Record Call: $NWB#vicidial_inbound_dids-record_call$NWE
Extension: $NWB#vicidial_inbound_dids-extension$NWE
Extension Context: $NWB#vicidial_inbound_dids-exten_context$NWE
Voicemail Box: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
\n"; echo ""; echo ""; + echo ""; echo "\n"; echo "\n"; @@ -23373,6 +23397,7 @@ if ($ADD==1300) echo ""; echo ""; echo ""; + echo ""; echo "\n"; $o++; }
\n"; echo ""; - $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,record_call from vicidial_inbound_dids order by did_pattern"; $rslt=mysql_query($stmt, $link); $dids_to_print = mysql_num_rows($rslt); @@ -23357,6 +23380,7 @@ if ($ADD==1300) echo "DESCRIPTIONACTIVEROUTERECMODIFY
$row[2] $row[3] $row[4] $row[5]MODIFY