Added Talk Seconds URLs features to campaigns and in-groups

Small fix for Stereo Call Recordings
Added code for Monitor Deprecation after Asterisk 20

git-svn-id: svn://192.168.202.10@3945 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2025-09-25 17:02:37 +00:00
parent e586f78868
commit fa012bfea0
18 changed files with 1075 additions and 140 deletions
+12 -3
View File
@@ -25,7 +25,7 @@
# exten => _91NXXNXXXXXX,n,Set(__AMDMINLEN=7)
# NOTE: the above variable setting will ensure that this script has run for a minimum of 7 seconds before ending and hanging up
#
# Copyright (C) 2024 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# changes:
# 60206-1434 - first build
@@ -70,10 +70,11 @@
# 230412-1023 - Added Code to dispo NOAUDIODATA as ADAIR (Dead Air Auto) with Settings Container option, Issue #1459
# 230726-0932 - Added manual_vm_status_updates campaign option
# 240906-2228 - Added AMD minimum length handling to increase short call durations
# 250924-2152 - Added code for deprecation of "Monitor" application after Asterisk 20
#
$script = 'VD_amd.agi';
$build = '230726-0932';
$build = '250924-2152';
$A = 1; # set to 1 for AMD output messages mode
$AMD_LOG = 3; # set to 1 for logfile and 2 forDB log, 3 for both
@@ -713,7 +714,15 @@ else
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$campaign_rec_filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$campaign_rec_filename-in.wav)t($PATHmonitor/MIX/$campaign_rec_filename-out.wav)");
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$campaign_rec_filename");
}
}
### insert record into recording_log table ###
+11 -2
View File
@@ -13,7 +13,7 @@
# ;inbound DID catch-all:
#exten => _X.,1,AGI(agi-DID_route.agi)
#
# Copyright (C) 2024 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# changes:
# 81007-0324 - First Build
@@ -51,6 +51,7 @@
# 220507-0811 - Added pre_filter_recent_call function
# 230124-1228 - Added logging of VICIrecGatewayID channel variable, and vicidial_did_gateway_log table
# 241208-1748 - Changed DID filter_phone_group_id & pre_filter_phone_group_id to multi-selects
# 250924-2156 - Added code for deprecation of "Monitor" application after Asterisk 20
#
@@ -879,7 +880,15 @@ if ($record_call =~ /Y/)
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$filename-in.wav)t($PATHmonitor/MIX/$filename-out.wav)");
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$filename");
}
}
### insert record into recording_log table ###
+11 -2
View File
@@ -42,7 +42,7 @@
#exten => _83002*.,5,Hangup
#
#
# Copyright (C) 2013 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGELOG
# 70912-1105 - First build, non-functional
@@ -53,6 +53,7 @@
# 71120-1337 - added playing of recording ID at beginning of session
# 120430-2214 - Converted call to Monitor app to be asterisk 1.8 compatible
# 130108-1816 - Changes for Asterisk 1.8 compatibility
# 250924-2158 - Added code for deprecation of "Monitor" application after Asterisk 20
#
&get_time_now;
@@ -386,7 +387,15 @@ if ($record_call =~ /Y/)
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$filename,m");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$filename-in.wav)t($PATHmonitor/MIX/$filename-out.wav)");
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$filename,m");
}
}
### insert record into recording_log table ###
+11 -2
View File
@@ -47,7 +47,7 @@
#exten => _X.,n,Goto(default,${EXTEN},1)
#exten => _X.,n,Hangup
#
# Copyright (C) 2015 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGELOG
# 91105-1402 - First build
@@ -60,6 +60,7 @@
# 151211-0932 - Added phone search and phone NVA URL features
# 151214-2148 - Added more variables to be used by nva url feature
# 151220-1521 - Added phone NVA List ID option for not found phone numbers
# 250924-2137 - Added code for deprecation of "Monitor" application after Asterisk 20
#
&get_time_now;
@@ -404,7 +405,15 @@ if ($record_call =~ /Y/)
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("MixMonitor",",r(/var/spool/asterisk/monitor/MIX/$filename-in.wav)t(/var/spool/asterisk/monitor/MIX/$filename-out.wav)");
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$filename");
}
}
}
+20 -3
View File
@@ -265,7 +265,8 @@
# 240723-1632 - Small fix for ConfBridge
# 240906-1032 - Added testing for stereo_recording in-group option *NOT PRODUCTION READY*
# 250325-1724 - Fix for possible daily_limit issue
# 250825-1824 - Added stereo_recording code
# 250825-1824 - Added stereo_recording code
# 250924-2147 - Added code for deprecation of "Monitor" application after Asterisk 20
#
$script = 'agi-VDAD_ALL_inbound.agi';
@@ -2691,7 +2692,15 @@ if ( ($CLchannel_group =~ /DID_INBOUND/) && (length($CLend_epoch) < 5) )
}
else
{
$AGI->exec("StopMonitor","wav,$PATHmonitor/MIX/$CLfilename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("StopMixMonitor","");
}
else
{
$AGI->exec("StopMonitor","wav,$PATHmonitor/MIX/$CLfilename");
}
}
@@ -5034,7 +5043,15 @@ while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) && ($MCdrop_override
}
else
{
$retval = $AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$retval = $AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$campaign_rec_filename-in.wav)t($PATHmonitor/MIX/$campaign_rec_filename-out.wav)");
}
else
{
$retval = $AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
}
}
}
+32 -7
View File
@@ -133,6 +133,7 @@
# 241001-2222 - Fixes for Khomp call processing
# 241020-1928 - Added khomp campaign settings options
# 250827-1556 - Added stereo_recording code
# 250924-2150 - Added code for deprecation of "Monitor" application after Asterisk 20
#
$script = 'agi-VDAD_ALL_outbound.agi';
@@ -1212,7 +1213,15 @@ if ($VDACaffected_rows > 0)
}
else
{
$AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$campaign_rec_filename-in.wav)t($PATHmonitor/MIX/$campaign_rec_filename-out.wav)");
}
else
{
$AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
}
}
### insert record into recording_log table ###
@@ -3228,7 +3237,15 @@ while ($drop_timer <= $DROP_TIME)
}
else
{
$retval = $AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$retval = $AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$campaign_rec_filename-in.wav)t($PATHmonitor/MIX/$campaign_rec_filename-out.wav)");
}
else
{
$retval = $AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
}
}
}
@@ -3938,7 +3955,7 @@ while ($drop_timer <= $DROP_TIME)
$SRaffected_rows = $dbhA->do($stmtA);
$dbhP=$dbhA; $mysql_count='01XXX'; $MEL_aff_rows=$SRaffected_rows; &mysql_error_logging;
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed) values('$recording_id','$temp_parallel_rec_ag_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0')";
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed,rir_type) values('$recording_id','$temp_parallel_rec_ag_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0','S')";
$affected_rowsB = $dbhA->do($stmtB);
$dbhP=$dbhA; $mysql_count='02XXX'; $MEL_aff_rows=$affected_rowsB; &mysql_error_logging;
@@ -3987,7 +4004,7 @@ while ($drop_timer <= $DROP_TIME)
$SRaffected_rows = $dbhA->do($stmtA);
$dbhP=$dbhA; $mysql_count='01XXX'; $MEL_aff_rows=$SRaffected_rows; &mysql_error_logging;
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed) values('$recording_id','$stereo_rec_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0')";
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed,rir_type) values('$recording_id','$stereo_rec_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0','S')";
$affected_rowsB = $dbhA->do($stmtB);
$dbhP=$dbhA; $mysql_count='02XXX'; $MEL_aff_rows=$affected_rowsB; &mysql_error_logging;
@@ -4642,7 +4659,15 @@ while ($drop_timer <= $DROP_TIME)
}
else
{
$retval = $AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$retval = $AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$campaign_rec_filename-in.wav)t($PATHmonitor/MIX/$campaign_rec_filename-out.wav)");
}
else
{
$retval = $AGI->exec("Monitor","wav,$PATHmonitor/MIX/$campaign_rec_filename");
}
}
}
@@ -5349,7 +5374,7 @@ while ($drop_timer <= $DROP_TIME)
$SRaffected_rows = $dbhA->do($stmtA);
$dbhP=$dbhA; $mysql_count='01XXX'; $MEL_aff_rows=$SRaffected_rows; &mysql_error_logging;
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed) values('$recording_id','$temp_parallel_rec_ag_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0')";
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed,rir_type) values('$recording_id','$temp_parallel_rec_ag_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0','S')";
$affected_rowsB = $dbhA->do($stmtB);
$dbhP=$dbhA; $mysql_count='02XXX'; $MEL_aff_rows=$affected_rowsB; &mysql_error_logging;
@@ -5398,7 +5423,7 @@ while ($drop_timer <= $DROP_TIME)
$SRaffected_rows = $dbhA->do($stmtA);
$dbhP=$dbhA; $mysql_count='01XXX'; $MEL_aff_rows=$SRaffected_rows; &mysql_error_logging;
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed) values('$recording_id','$stereo_rec_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0')";
$stmtB = "INSERT INTO routing_initiated_recordings (recording_id,filename,launch_time,lead_id,vicidial_id,user,processed,rir_type) values('$recording_id','$stereo_rec_filename','$now_date','$CIDlead_id','$uniqueid','$VDADuser','0','S')";
$affected_rowsB = $dbhA->do($stmtB);
$dbhP=$dbhA; $mysql_count='02XXX'; $MEL_aff_rows=$affected_rowsB; &mysql_error_logging;
+11 -2
View File
@@ -12,7 +12,7 @@
# exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
# exten => _8331*.,n,Hangup
#
# Copyright (C) 2024 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# changes:
# 110303-2325 - First build
@@ -24,6 +24,7 @@
# 140421-1448 - Added code to halt ringing of other channels in ring_all NAC method
# 240420-2241 - Added ConfBridge code
# 240415-1702 - Fix for ConfBridge code
# 250924-2157 - Added code for deprecation of "Monitor" application after Asterisk 20
#
$script = 'agi-VDAD_RINGALL.agi';
@@ -387,7 +388,15 @@ if ($NAGcount > 0)
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$campaign_rec_filename");
if ($ast_ver_str{major} > 20)
{
# Deprecation of "Monitor" application after Asterisk 20
$AGI->exec("MixMonitor",",r($PATHmonitor/MIX/$campaign_rec_filename-in.wav)t($PATHmonitor/MIX/$campaign_rec_filename-out.wav)");
}
else
{
$AGI->exec("Monitor","wav,/var/spool/asterisk/monitor/MIX/$campaign_rec_filename");
}
}
### insert record into recording_log table ###