Stereo Call Recording commit

git-svn-id: svn://192.168.202.10@3941 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2025-09-19 17:23:26 +00:00
parent 437b3c463a
commit 4c6019a6be
36 changed files with 5618 additions and 279 deletions
+138 -4
View File
@@ -1,7 +1,7 @@
<?php
# api.php
#
# Copyright (C) 2024 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# This script is designed as an API(Application Programming Interface) to allow
# other programs to interact with the VICIDIAL Agent screen
@@ -117,10 +117,11 @@
# 240427-0809 - Added tw_check option for transfer_conference function
# 240429-2220 - Added PARK_XFER|GRAB_XFER options for park_call function
# 250122-1010 - Allow for letters in phone_number variable, for AGENTDIRECT transfers
# 250830-2102 - Added stereo_recording function
#
$version = '2.14-82';
$build = '250122-1010';
$version = '2.14-83';
$build = '250830-2102';
$php_script = 'api.php';
$startMS = microtime();
@@ -319,7 +320,7 @@ $pass = preg_replace("/'|\"|\\\\|;| /","",$pass);
#############################################
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
$stmt = "SELECT use_non_latin,enable_languages,language_method,agent_debug_logging,outbound_cid_any,allow_web_debug,agent_notifications FROM system_settings;";
$stmt = "SELECT use_non_latin,enable_languages,language_method,agent_debug_logging,outbound_cid_any,allow_web_debug,agent_notifications,stereo_recording FROM system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
#if ($DB) {echo "$stmt\n";}
@@ -334,6 +335,7 @@ if ($qm_conf_ct > 0)
$SSoutbound_cid_any = $row[4];
$SSallow_web_debug = $row[5];
$SSagent_notifications = $row[6];
$SSstereo_recording = $row[7];
}
if ($SSallow_web_debug < 1) {$DB=0;}
@@ -1280,6 +1282,138 @@ if ($function == 'recording')
################################################################################
### BEGIN - stereo_recording - send a start or stop stereo agent recording signal to agent screen
################################################################################
if ($function == 'stereo_recording')
{
if ( ( (!preg_match("/BEGIN/",$value)) and (!preg_match("/END/",$value)) and (!preg_match("/STATUS/",$value)) ) or ($SSstereo_recording < 1) or ( (strlen($agent_user)<1) and (strlen($alt_user)<2) ) )
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("stereo_recording not valid");
echo "$result: $result_reason - $value|$agent_user\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
else
{
if ( (!preg_match("/ $function /",$VUapi_allowed_functions)) and (!preg_match("/ALL_FUNCTIONS/",$VUapi_allowed_functions)) )
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("auth USER DOES NOT HAVE PERMISSION TO USE THIS FUNCTION");
echo "$result: $result_reason - $value|$user|$function|$VUuser_group\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
if (strlen($alt_user)>1)
{
$stmt = "select count(*) from vicidial_users where custom_three='$alt_user';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ($row[0] > 0)
{
$stmt = "select user from vicidial_users where custom_three='$alt_user' order by user;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$agent_user = $row[0];
}
else
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("no user found");
echo "$result: $result_reason - $alt_user\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
$stmt = "select count(*) from vicidial_live_agents where user='$agent_user';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ($row[0] > 0)
{
$stmt = "select external_recording,server_ip,conf_exten,status from vicidial_live_agents where user='$agent_user';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$AGENTserver_ip = $row[1];
$AGENTconf_exten = $row[2];
$AGENTstatus = $row[3];
$RECfilename = '';
$RECserver_ip = '';
$RECstart_time = '';
$stmt = "SELECT recording_id,filename,server_ip,start_time FROM recording_live where user='$agent_user' and recording_status='STARTED' and recording_type LIKE \"%AGENT-CONTROLLED%\" and end_time IS NULL order by start_time desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
$rl_ct = mysqli_num_rows($rslt);
if ($rl_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$recording_id = $row[0];
$RECfilename = $row[1];
$RECserver_ip = $row[2];
$RECstart_time = $row[3];
}
if ($value=='STATUS')
{
if ($rl_ct > 0)
{
$result = _QXZ("NOTICE");
$result_reason = _QXZ("stereo_recording active");
echo "$result: $result_reason - $agent_user|$recording_id|$RECfilename|$RECserver_ip|$RECstart_time|$AGENTserver_ip|$AGENTconf_exten|$AGENTstatus\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
else
{
$result = _QXZ("NOTICE");
$result_reason = _QXZ("not stereo_recording");
echo "$result: $result_reason - $agent_user|||||$AGENTserver_ip|$AGENTconf_exten|$AGENTstatus\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
if ( (preg_match("/END/",$value)) and ( ($recording_id=='END') or ($recording_id < 1) ) )
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("stop stereo_recording error");
echo "$result: $result_reason - $agent_user|$recording_id||||$AGENTserver_ip|$AGENTconf_exten|$AGENTstatus\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
if ( (strlen($stage)>0) and (preg_match("/BEGIN/",$value)) )
{
while (strlen($stage)>14) {$stage = preg_replace("/.$/",'',$stage);}
$value = "$value$stage";
}
$stmt="UPDATE vicidial_live_agents set external_recording='$value' where user='$agent_user';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
$result = _QXZ("SUCCESS");
$result_reason = _QXZ("stereo_recording function sent");
echo "$result: $result_reason - $agent_user|$value||||$AGENTserver_ip|$AGENTconf_exten|$AGENTstatus\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("agent_user is not logged in");
echo "$result: $result_reason - $agent_user\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
}
################################################################################
### END - stereo_recording
################################################################################
################################################################################
### BEGIN - webphone_url - display or launch the webphone url for the current agent's session
################################################################################
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

+380 -11
View File
@@ -1,7 +1,7 @@
<?php
# manager_send.php version 2.14
#
# Copyright (C) 2024 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2025 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
#
# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server
# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table
@@ -158,10 +158,11 @@
# 240430-1046 - Allow for park/grab of xfer line through API
# 240709-2010 - Changes to input variable filtering
# 241122-1544 - Fix for DTMF issue #1525
# 250831-0839 - Added MonitorStereo/StopMonitorStereo functions
#
$version = '2.14-105';
$build = '241122-1544';
$version = '2.14-106';
$build = '250831-0839';
$php_script = 'manager_send.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=161;
@@ -285,7 +286,7 @@ $pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
#############################################
##### START SYSTEM_SETTINGS LOOKUP #####
$stmt = "SELECT use_non_latin,allow_sipsak_messages,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,agent_debug_logging,allow_web_debug FROM system_settings;";
$stmt = "SELECT use_non_latin,allow_sipsak_messages,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,agent_debug_logging,allow_web_debug,stereo_recording,stereo_parallel_recording FROM system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);}
#if ($DB) {echo "$stmt\n";}
@@ -301,6 +302,8 @@ if ($qm_conf_ct > 0)
$meetme_enter_leave3way_filename = $row[5];
$SSagent_debug_logging = $row[6];
$SSallow_web_debug = $row[7];
$SSstereo_recording = $row[8];
$SSstereo_parallel_recording = $row[9];
}
if ($SSallow_web_debug < 1) {$DB=0;}
##### END SETTINGS LOOKUP #####
@@ -2494,7 +2497,6 @@ if ($ACTION=="Redirect")
}
######################
# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel
######################
@@ -2598,7 +2600,7 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") )
$stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename' order by start_epoch desc;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);}
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
echo _QXZ("%1s command sent for Channel %2s on %3s",0,'',$ACTION,$channel,$server_ip)."\nFilename: $filename\nRecorDing_ID: $recording_id\n";
@@ -2608,10 +2610,6 @@ if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") )
}
######################
# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference
######################
@@ -2633,7 +2631,7 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") )
if ($ACTION=="MonitorConf")
{
$stmt="SELECT recording_id,filename FROM routing_initiated_recordings where user='$user' and processed='0' order by launch_time desc limit 1;";
$stmt="SELECT recording_id,filename FROM routing_initiated_recordings where user='$user' and processed='0' and rir_type='' order by launch_time desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02139',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -2818,6 +2816,11 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") )
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt = "UPDATE recording_live set end_time='$NOW_TIME',recording_status='FINISHED' where recording_id='$recording_id' and recording_status='STARTED';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
# find and hang up all recordings going on in this conference # and extension = '$exten'
@@ -2850,7 +2853,373 @@ if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") )
}
######################
# ACTION=MonitorStereo or StopMonitorStereo - insert Monitor/StopMonitor Manager statement to start recording on a customer channel
######################
if ( ($ACTION=="MonitorStereo") || ($ACTION=="StopMonitorStereo") )
{
$row=''; $rowx='';
$channel_live=1;
$uniqueidSQL='';
if ( (($ACTION=="MonitorStereo") && ((strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8))) || (($ACTION=="StopMonitorStereo") && ((strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<4))) )
{
$channel_live=0;
echo _QXZ("Channel %1s is not valid or exten %2s is not valid or filename: %3s is not valid, %4s command not inserted",0,'',$channel,$exten,$filename,$ACTION)."\n";
$stage .= " REC-Invalid $exten $filename $channel";
}
else
{
$VDvicidial_id='';
if ($ACTION=="MonitorStereo")
{
$stmt="SELECT recording_id,filename FROM routing_initiated_recordings where user='$user' and processed='0' and rir_type='S' order by launch_time desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02139',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$rir_ct = mysqli_num_rows($rslt);
if ($rir_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$recording_id = $row[0];
$filename = $row[1];
$stmt = "UPDATE routing_initiated_recordings SET processed='1' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02140',$user,$server_ip,$session_name,$one_mysql_log);}
$stage .= " RIR $recording_id";
}
else
{
if ($FROMvdc=='YES')
{
##### update vla recording record to blank
$stmt = "UPDATE vicidial_live_agents SET external_recording='' where user='$user';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
##### get call type from vicidial_live_agents table
$VLA_inOUT='NONE';
$stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VLA_inOUT_ct = mysqli_num_rows($rslt);
if ($VLA_inOUT_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$VLA_inOUT = $row[0];
}
if ($VLA_inOUT == 'INBOUND')
{
$four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y")));
##### look for the vicidial ID in the vicidial_closer_log table
$stmt="SELECT closecallid,campaign_id FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;";
}
else
{
##### look for the vicidial ID in the vicidial_log table
$stmt="SELECT uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';";
}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VM_mancall_ct = mysqli_num_rows($rslt);
if ($VM_mancall_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$VDvicidial_id = $row[0];
$VDcampaign_id = $row[1];
$stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);}
}
##### gather stereo recording settings for this specific campaign/in-group
if ($VLA_inOUT == 'INBOUND')
{
$stmt="SELECT stereo_recording,stereo_parallel_recording,stereo_rec_filename,stereo_recording_agent FROM vicidial_inbound_groups where group_id='$VDcampaign_id';";
}
else
{
$stmt="SELECT stereo_recording,stereo_parallel_recording,stereo_rec_filename,stereo_recording_agent FROM vicidial_campaigns where campaign_id='$VDcampaign_id';";
}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VM_mancall_ct = mysqli_num_rows($rslt);
if ($VM_mancall_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$stereo_recording = $row[0];
$stereo_parallel_recording = $row[1];
$stereo_rec_filename = $row[2];
$stereo_recording_agent = $row[3];
}
}
if (preg_match("/CUSTOMER|BOTH/",$stereo_recording) )
{
if ( ($SSstereo_parallel_recording > 0) and (!preg_match("/DISABLED/i",$stereo_parallel_recording)) )
{
$stereo_exten = 'SPAC';
if (preg_match("/BOTH_CHANNELS/",$stereo_recording) )
{$stereo_exten='SPACBC';}
if (preg_match("/CUSTOMER_ONLY/",$stereo_recording) )
{$stereo_exten='SPACCO';}
if (preg_match("/CUSTOMER_MUTE/",$stereo_recording) )
{$stereo_exten='SPACCM';}
$stereo_ac = $stereo_exten.'-'.$stereo_recording_agent."\n";
}
else
{
$stereo_exten = 'SAC';
if (preg_match("/BOTH_CHANNELS/",$stereo_recording) )
{$stereo_exten='SACBC';}
if (preg_match("/CUSTOMER_ONLY/",$stereo_recording) )
{$stereo_exten='SACCO';}
if (preg_match("/CUSTOMER_MUTE/",$stereo_recording) )
{$stereo_exten='SACCM';}
$stereo_ac = $stereo_exten.'-'.$stereo_recording_agent."\n";
}
# if VENDORLEADCODE is used in the stereo recording filenames, look it up for this lead
if (preg_match("/VENDORLEADCODE/",$stereo_rec_filename))
{
$stmt="SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VM_mancall_ct = mysqli_num_rows($rslt);
if ($VM_mancall_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$vendor_lead_code = $row[0];
}
}
$recdate = date("Ymd-His");
$tinydate = date("ymdHis");
$stereo_rec_filename = preg_replace("/CAMPAIGN/",$campaign,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/INGROUP/",$VDcampaign_id,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/CUSTPHONE/",$phone_number,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/FULLDATE/",$recdate,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/TINYDATE/",$tinydate,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/EPOCH/",$StarTtime,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/AGENT/",$user,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/VENDORLEADCODE/",$vendor_lead_code,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/LEADID/",$lead_id,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/CALLID/",$CalLCID,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/\"|\'/",'',$stereo_rec_filename);
if (preg_match("/RECID/",$filename) )
{
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','$stereo_exten','$NOW_TIME','$StarTtime','$stereo_rec_filename','$lead_id','$user','$VDvicidial_id')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02133',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
$stereo_rec_filename = preg_replace("/RECID/","$recording_id",$stereo_rec_filename);
$stmt = "UPDATE recording_log SET filename='$stereo_rec_filename' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02134',$user,$server_ip,$session_name,$one_mysql_log);}
}
else
{
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','$stereo_exten','$NOW_TIME','$StarTtime','$stereo_rec_filename','$lead_id','$user','$VDvicidial_id')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
}
if ( ($SSstereo_parallel_recording > 0) and (!preg_match("/DISABLED/i",$stereo_parallel_recording)) )
{
$four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y")));
$parallel_recording_id=0;
# gather parallel_recording_id from recording_log_parallel
$stmt="SELECT parallel_recording_id FROM recording_log_parallel where lead_id='$lead_id' and user='$user' and channel='$channel' and start_time > \"$four_hours_ago\" order by parallel_recording_id desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$PR_ct = mysqli_num_rows($rslt);
if ($PR_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$parallel_recording_id = $row[0];
}
# stereo_parallel_recording is enabled, only insert DB records, don't initiate recording
$stmtA = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,recording_status,parallel_recording_id) values('$recording_id','$server_ip','$NOW_TIME','0','$stereo_rec_filename','$lead_id','$VDcampaign_id STEREO_PARALLEL AGENT-CONTROLLED $stereo_recording $stereo_recording_agent','start: $now_date|vicidial_id: $VDvicidial_id|user: $user|channel: $channel|','STEREO START','$parallel_recording_id');";
if ($format=='debug') {echo "\n<!-- $stmtA -->";}
$rslt=mysql_to_mysqli($stmtA, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$stmtD = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO_PARALLEL AGENT-CONTROLLED','$server_ip','$NOW_TIME','$channel','$stereo_rec_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmtD -->";}
$rslt=mysql_to_mysqli($stmtD, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
else
{
### start the stereo recording
$PATHmonitorT = '/var/spool/asterisk/monitorS';
$stereo_recording_options = "r($PATHmonitorT/$stereo_rec_filename-out.wav)t($PATHmonitorT/$stereo_rec_filename-in.wav)";
$vmgr_callerid = substr($stereo_rec_filename, 0, 17) . '...';
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitor','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Options: $stereo_recording_options','','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02135',$user,$server_ip,$session_name,$one_mysql_log);}
$stmtA = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,recording_status) values('$recording_id','$server_ip','$NOW_TIME','0','$stereo_rec_filename','$lead_id','$VDcampaign_id STEREO AGENT-CONTROLLED $stereo_recording $stereo_recording_agent','start: $now_date|vicidial_id: $VDvicidial_id|user: $user|channel: $channel|','STEREO START');";
if ($format=='debug') {echo "\n<!-- $stmtA -->";}
$rslt=mysql_to_mysqli($stmtA, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$stmtD = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO AGENT-CONTROLLED','$server_ip','$NOW_TIME','$channel','$stereo_rec_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmtD -->";}
$rslt=mysql_to_mysqli($stmtD, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if (preg_match("/CUSTOMER_ONLY/",$stereo_recording) )
{
$vmgr_callerid = substr($stereo_rec_filename, 0, 16) . 'M...';
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitorMute','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Direction: write','State: 1','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
if (preg_match("/CUSTOMER_MUTE/",$stereo_recording) )
{
$vmgr_callerid = substr($stereo_rec_filename, 0, 16) . 'M...';
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitorMute','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Direction: read','State: 1','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
$filename = $stereo_rec_filename;
}
$stage .= " AIR $recording_id $stereo_rec_filename";
}
}
##### BEGIN StopMonitorStereo steps #####
else
{
$recording_type='';
if ($FROMvdc=='YES')
{
##### update vla recording record to blank
$stmt = "UPDATE vicidial_live_agents SET external_recording='' where user='$user';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
if ($uniqueid=='IN')
{
$four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y")));
### find the value to put in the vicidial_id field if this was an inbound call
$stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);}
$VAC_qm_ct = mysqli_num_rows($rslt);
if ($VAC_qm_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$uniqueidSQL = ",vicidial_id='$row[0]'";
}
}
else
{
if (strlen($uniqueid) > 8)
{$uniqueidSQL = ",vicidial_id='$uniqueid'";}
}
$rec_searchSQL = "filename='$filename'";
if (preg_match("/^ID:/",$filename))
{
$recording_id = $filename;
$recording_id = preg_replace("/^ID:/",'',$recording_id);
$rec_searchSQL = "recording_id='$recording_id'";
}
$stmt="SELECT recording_id,UNIX_TIMESTAMP(start_time),filename,recording_type FROM recording_live where channel='$channel' and user='$user' and recording_status='STARTED' and recording_type LIKE \"STEREO%\" and recording_type LIKE \"%AGENT-CONTROLLED%\" order by start_time desc;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$rec_count = mysqli_num_rows($rslt);
if ($rec_count>0)
{
$row=mysqli_fetch_row($rslt);
$recording_id = $row[0];
$start_time = $row[1];
$filename = $row[2];
$recording_type = $row[3];
$vmgr_callerid = substr($filename, 0, 17) . '...';
$length_in_sec = ($StarTtime - $start_time);
$length_in_min = ($length_in_sec / 60);
$length_in_min = sprintf("%8.2f", $length_in_min);
$stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where recording_id='$recording_id';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt = "UPDATE recording_log_stereo set end_time='$NOW_TIME',recording_status='FINISHED',length_in_sec=$length_in_sec where recording_id='$recording_id';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt = "UPDATE recording_live set end_time='$NOW_TIME',recording_status='FINISHED' where recording_id='$recording_id' and recording_status='STARTED';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt = "UPDATE routing_initiated_recordings set processed='1' where user='$user' and processed='0' and rir_type='S' order by launch_time desc limit 1;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
# if ($WeBRooTWritablE > 0)
# {
# $fp = fopen ("./vicidial_debug.txt", "a");
# fwrite ($fp, "$NOW_TIME|STEREO_START|$user|$channel|$rec_count|$stmt|\n");
# fclose($fp);
# }
if (!preg_match("/PARALLEL/",$recording_type))
{
# stop all stereo recordings on the customer channel
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','StopMixMonitor','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','','','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
##### END StopMonitorStereo steps #####
echo _QXZ("%1s command sent for Channel %2s on %3s",0,'',$ACTION,$channel,$server_ip)."\nFilename: $filename\nRecorDing_ID: $recording_id\n RECORDING WILL LAST UP TO 60 MINUTES\n";
}
}
######################
+472 -69
View File
@@ -560,10 +560,11 @@
# 250326-1937 - Fix for missing vicidial_inbound_group_agents entries
# 250601-0843 - Fix for fronter/closer start/dispo URL variables
# 250723-2002 - Fix for issue #1548
# 250916-1918 - Added stereo recording features
#
$version = '2.14-453';
$build = '250723-2002';
$version = '2.14-454';
$build = '250916-1918';
$php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=913;
@@ -1089,7 +1090,7 @@ $sip_hangup_cause_dictionary = array(
#############################################
##### START SYSTEM_SETTINGS LOOKUP #####
$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,agent_debug_logging,default_language,active_modules,allow_chats,default_phone_code,user_new_lead_limit,sip_event_logging,call_quota_lead_ranking,daily_call_count_limit,call_limit_24hour,allow_web_debug,abandon_check_queue,inbound_credits FROM system_settings;";
$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock,alt_log_server_ip,alt_log_dbname,alt_log_login,alt_log_pass,tables_use_alt_log_db,qc_features_active,allow_emails,callback_time_24hour,enable_languages,language_method,agent_debug_logging,default_language,active_modules,allow_chats,default_phone_code,user_new_lead_limit,sip_event_logging,call_quota_lead_ranking,daily_call_count_limit,call_limit_24hour,allow_web_debug,abandon_check_queue,inbound_credits,stereo_recording,stereo_parallel_recording FROM system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);}
#if ($DB) {echo "$stmt\n";}
@@ -1123,6 +1124,8 @@ if ($qm_conf_ct > 0)
$SSallow_web_debug = $row[23];
$SSabandon_check_queue = $row[24];
$SSinbound_credits = $row[25];
$SSstereo_recording = $row[26];
$SSstereo_parallel_recording = $row[27];
}
if ($SSallow_web_debug < 1) {$DB=0; $format='text';}
##### END SETTINGS LOOKUP #####
@@ -5391,6 +5394,8 @@ if ($ACTION == 'manDiaLnextCaLL')
$stage .= "|RIR";
}
# NOTE: Do NOT start stereo call recording yet, since the customer channel hasn't Answered and resolved yet
### Skip logging and list overrides if dial in-group is used
if (strlen($dial_ingroup) < 1)
{
@@ -7431,6 +7436,8 @@ if ($ACTION == 'manDiaLonly')
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00741',$user,$server_ip,$session_name,$one_mysql_log);}
# NOTE: Do NOT start stereo call recording yet, since the customer channel hasn't Answered and resolved yet
$stage .= "|RIR";
}
@@ -8100,6 +8107,7 @@ if ($ACTION == 'manDiaLlookCaLL')
if ($call_good > 0)
{
$stereo_ac="\n";
if ($stage != "YES")
{
$wait_sec=0;
@@ -8134,46 +8142,365 @@ if ($ACTION == 'manDiaLlookCaLL')
if ( ($routing_initiated_recording == 'Y') and (preg_match("/^M/",$MDnextCID)) )
{
if (preg_match("/CUSTOMER/",$stereo_recording))
{
$stmt="SELECT conf_engine FROM servers where server_ip='$server_ip';";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ( $row[0] == 'CONFBRIDGE' )
{
if ( (strlen($recording_filename) < 1) or (strlen($recording_id) < 1) )
{
$stmt = "SELECT recording_id,filename from recording_log where lead_id='$lead_id' and vicidial_id='$MDnextCID';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$RL_ct = mysqli_num_rows($rslt);
if ($RL_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$recording_id = $row[0];
$recording_filename = $row[1];
}
}
$tempMDnextCID = $MDnextCID;
$tempMDnextCID = preg_replace("/^../",'SR',$tempMDnextCID);
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitor','$tempMDnextCID','ActionID: $tempMDnextCID','Channel: $channel','options: r(../monitorS/$recording_filename-in.wav)t(../monitorS/$recording_filename-out.wav)','','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt="INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log) values('$recording_id','$server_ip','$NOW_TIME','0','$recording_filename','$lead_id','$stereo_recording $campaign','start: $NOW_TIME|vicidial_id: $uniqueid|user: $user|channel: $channel|CID: $MDnextCID|');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
$stmt="UPDATE recording_log set vicidial_id='$uniqueid' where lead_id='$lead_id' and vicidial_id='$MDnextCID';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00742',$user,$server_ip,$session_name,$one_mysql_log);}
}
if ( (preg_match("/CUSTOMER|BOTH/",$stereo_recording)) and (preg_match("/^M/",$MDnextCID)) and ($SSstereo_recording > 0) )
{
$stmt="SELECT conf_engine FROM servers where server_ip='$server_ip';";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
if ( $row[0] == 'CONFBRIDGE' )
{
$stmt="SELECT stereo_recording,stereo_parallel_recording,stereo_rec_filename,stereo_recording_agent,parallel_rec_co_filename,parallel_rec_cm_filename,parallel_rec_fr_filename FROM vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VM_mancall_ct = mysqli_num_rows($rslt);
if ($VM_mancall_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$stereo_recording = $row[0];
$stereo_parallel_recording = $row[1];
$stereo_rec_filename = $row[2];
$stereo_recording_agent = $row[3];
$parallel_rec_co_filename = $row[4];
$parallel_rec_cm_filename = $row[5];
$parallel_rec_fr_filename = $row[6];
}
if ( (preg_match("/CUSTOMER|BOTH/",$stereo_recording) ) and (strlen($stereo_rec_filename) > 5) )
{
# if VENDORLEADCODE is used in any of the stereo recording filenames, look it up for this lead
if ( (preg_match("/VENDORLEADCODE/",$stereo_rec_filename)) or (preg_match("/VENDORLEADCODE/",$parallel_rec_co_filename)) or (preg_match("/VENDORLEADCODE/",$parallel_rec_cm_filename)) or (preg_match("/VENDORLEADCODE/",$parallel_rec_fr_filename)) )
{
$stmt="SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
$VM_mancall_ct = mysqli_num_rows($rslt);
if ($VM_mancall_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$vendor_lead_code = $row[0];
}
}
$recdate = date("Ymd-His");
$tinydate = date("ymdHis");
$stereo_rec_filename = preg_replace("/CAMPAIGN/",$campaign,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/INGROUP/",$campaign,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/CUSTPHONE/",$phone_number,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/FULLDATE/",$recdate,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/TINYDATE/",$tinydate,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/EPOCH/",$StarTtime,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/AGENT/",$user,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/VENDORLEADCODE/",$vendor_lead_code,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/LEADID/",$lead_id,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/CALLID/",$MDnextCID,$stereo_rec_filename);
$stereo_rec_filename = preg_replace("/\"|\'/",'',$stereo_rec_filename);
$PATHmonitorS = '/var/spool/asterisk/monitorS';
$PATHmonitorP = '/var/spool/asterisk/monitorP';
$PATHmonitorT = $PATHmonitorS;
if ( ($SSstereo_parallel_recording > 0) && (preg_match("/CUSTOMER|FULL/",$stereo_parallel_recording)) )
{
$PATHmonitorT = $PATHmonitorP;
$filename = "PL$stereo_rec_filename";
$stmt = "INSERT INTO recording_log_parallel (channel,server_ip,extension,start_time,length_in_sec,filename,lead_id,user,vicidial_id,recording_status) values('$channel','$server_ip','','$NOW_TIME','0','$filename','$lead_id','$user','$uniqueid','START');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$PRLaffected_rows = mysqli_affected_rows($link);
if ($PRLaffected_rows > 0)
{
$parallel_recording_id = mysqli_insert_id($link);
}
$vmgr_callerid = substr($filename, 0, 17) . '...';
$stereo_recording_options = "r($PATHmonitorT/$filename-out.wav)t($PATHmonitorT/$filename-in.wav)";
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitor','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Options: $stereo_recording_options','','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if ((preg_match("/CUSTOMER-ONLY/",$stereo_parallel_recording)))
{
$temp_parallel_rec_co_filename = "CO".$stereo_rec_filename;
if (strlen($parallel_rec_co_filename) > 0)
{
$temp_parallel_rec_co_filename = $parallel_rec_co_filename;
$temp_parallel_rec_co_filename = preg_replace("/CAMPAIGN/",$campaign,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/INGROUP/",$campaign,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/CUSTPHONE/",$phone_number,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/FULLDATE/",$recdate,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/TINYDATE/",$tinydate,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/EPOCH/",$StarTtime,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/AGENT/",$user,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/VENDORLEADCODE/",$vendor_lead_code,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/LEADID/",$lead_id,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/CALLID/",$MDnextCID,$temp_parallel_rec_co_filename);
$temp_parallel_rec_co_filename = preg_replace("/\"|\'/",'',$temp_parallel_rec_co_filename);
}
### insert a record into the recording_log table
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','SPCO','$NOW_TIME','$StarTtime','$temp_parallel_rec_co_filename','$lead_id','$user','$uniqueid')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
if (preg_match("/RECID/",$temp_parallel_rec_co_filename))
{
$temp_parallel_rec_co_filename = preg_replace("/RECID/",$recording_id,$temp_parallel_rec_co_filename);
$stmt = "UPDATE recording_log SET filename='$temp_parallel_rec_co_filename' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
### insert record into recording_log_stereo table ###
$stmt = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,parallel_recording_id,recording_status) values('$recording_id','$server_ip','$NOW_TIME','0','$temp_parallel_rec_co_filename','$lead_id','$campaign STEREO_PARALLEL CUSTOMER-ONLY $stereo_recording','vicidial_id: $uniqueid|user: $user|channel: $channel|','$parallel_recording_id','PARALLEL START');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### insert record into recording_live table ###
$stmt = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO_PARALLEL CUSTOMER-ONLY','$server_ip','$NOW_TIME','$channel','$temp_parallel_rec_co_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
if ((preg_match("/CUSTOMER-MUTED/",$stereo_parallel_recording)))
{
$temp_parallel_rec_cm_filename = "CM".$stereo_rec_filename;
if (strlen($parallel_rec_cm_filename) > 0)
{
$temp_parallel_rec_cm_filename = $parallel_rec_cm_filename;
$temp_parallel_rec_cm_filename = preg_replace("/CAMPAIGN/",$campaign,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/INGROUP/",$campaign,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/CUSTPHONE/",$phone_number,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/FULLDATE/",$recdate,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/TINYDATE/",$tinydate,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/EPOCH/",$StarTtime,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/AGENT/",$user,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/VENDORLEADCODE/",$vendor_lead_code,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/LEADID/",$lead_id,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/CALLID/",$MDnextCID,$temp_parallel_rec_cm_filename);
$temp_parallel_rec_cm_filename = preg_replace("/\"|\'/",'',$temp_parallel_rec_cm_filename);
}
### insert a record into the recording_log table
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','SPCM','$NOW_TIME','$StarTtime','$temp_parallel_rec_cm_filename','$lead_id','$user','$uniqueid')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
if (preg_match("/RECID/",$temp_parallel_rec_cm_filename))
{
$temp_parallel_rec_cm_filename = preg_replace("/RECID/",$recording_id,$temp_parallel_rec_cm_filename);
$stmt = "UPDATE recording_log SET filename='$temp_parallel_rec_cm_filename' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
### insert record into recording_log_stereo table ###
$stmt = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,parallel_recording_id,recording_status) values('$recording_id','$server_ip','$NOW_TIME','0','$temp_parallel_rec_cm_filename','$lead_id','$campaign STEREO_PARALLEL CUSTOMER-MUTED $stereo_recording','vicidial_id: $uniqueid|user: $user|channel: $channel|','$parallel_recording_id','PARALLEL START');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### insert record into recording_live table ###
$stmt = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO_PARALLEL CUSTOMER-MUTED','$server_ip','$NOW_TIME','$channel','$temp_parallel_rec_cm_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
if ((preg_match("/FULL-RECORDING/",$stereo_parallel_recording)))
{
$temp_parallel_rec_fr_filename = "FR".$stereo_rec_filename;
if (strlen($parallel_rec_fr_filename) > 0)
{
$temp_parallel_rec_fr_filename = $parallel_rec_fr_filename;
$temp_parallel_rec_fr_filename = preg_replace("/CAMPAIGN/",$campaign,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/INGROUP/",$campaign,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/CUSTPHONE/",$phone_number,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/FULLDATE/",$recdate,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/TINYDATE/",$tinydate,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/EPOCH/",$StarTtime,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/AGENT/",$user,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/VENDORLEADCODE/",$vendor_lead_code,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/LEADID/",$lead_id,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/CALLID/",$MDnextCID,$temp_parallel_rec_fr_filename);
$temp_parallel_rec_fr_filename = preg_replace("/\"|\'/",'',$temp_parallel_rec_fr_filename);
}
### insert a record into the recording_log table
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','SPFR','$NOW_TIME','$StarTtime','$temp_parallel_rec_fr_filename','$lead_id','$user','$uniqueid')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
if (preg_match("/RECID/",$temp_parallel_rec_fr_filename))
{
$temp_parallel_rec_fr_filename = preg_replace("/RECID/",$recording_id,$temp_parallel_rec_fr_filename);
$stmt = "UPDATE recording_log SET filename='$temp_parallel_rec_fr_filename' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
### insert record into recording_log_stereo table ###
$stmt = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,parallel_recording_id,recording_status) values('$recording_id','$server_ip','$NOW_TIME','0','$temp_parallel_rec_fr_filename','$lead_id','$campaign STEREO_PARALLEL FULL-RECORDING $stereo_recording','vicidial_id: $uniqueid|user: $user|channel: $channel|','$parallel_recording_id','PARALLEL START');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### insert record into recording_live table ###
$stmt = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO_PARALLEL FULL-RECORDING','$server_ip','$NOW_TIME','$channel','$temp_parallel_rec_fr_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
# insert logs for agent-controlled stereo call recordings while parallel recordings are enabled
if ((preg_match("/ALLCALLS|ALLFORCE/",$stereo_recording_agent)))
{
$stereo_exten='SPAC';
if (preg_match("/BOTH_CHANNELS/",$stereo_recording) )
{$stereo_exten='SPACBC';}
if (preg_match("/CUSTOMER_ONLY/",$stereo_recording) )
{$stereo_exten='SPACCO';}
if (preg_match("/CUSTOMER_MUTE/",$stereo_recording) )
{$stereo_exten='SPACCM';}
$stereo_ac = $stereo_exten.'-'.$stereo_recording_agent."\n";
$temp_parallel_rec_ag_filename = $stereo_rec_filename;
### insert a record into the recording_log table
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','$stereo_exten','$NOW_TIME','$StarTtime','$temp_parallel_rec_ag_filename','$lead_id','$user','$uniqueid')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
if (preg_match("/RECID/",$temp_parallel_rec_fr_filename))
{
$temp_parallel_rec_fr_filename = preg_replace("/RECID/",$recording_id,$temp_parallel_rec_fr_filename);
$stmt = "UPDATE recording_log SET filename='$temp_parallel_rec_ag_filename' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
### insert record into recording_log_stereo table ###
$stmt = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,parallel_recording_id,recording_status) values('$recording_id','$server_ip','$NOW_TIME','0','$temp_parallel_rec_ag_filename','$lead_id','$campaign STEREO_PARALLEL AGENT-CONTROLLED $stereo_recording','vicidial_id: $uniqueid|user: $user|channel: $channel|','$parallel_recording_id','PARALLEL START');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### insert record into recording_live table ###
$stmt = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO_PARALLEL AGENT-CONTROLLED','$server_ip','$NOW_TIME','$channel','$temp_parallel_rec_ag_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
if ((preg_match("/ONDEMAND/",$stereo_recording_agent)))
{
$stereo_ac='SOD-'.$stereo_recording_agent."\n";
}
}
else
{
if ((preg_match("/ALLCALLS|ALLFORCE/",$stereo_recording_agent)))
{
$stereo_ac='SAC-'.$stereo_recording_agent."\n";
## Start NON-parallel stereo call recording ##
# insert a record into the recording_log table
$stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user,vicidial_id) values('$channel','$server_ip','SAC','$NOW_TIME','$StarTtime','$stereo_rec_filename','$lead_id','$user','$uniqueid')";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$RLaffected_rows = mysqli_affected_rows($link);
if ($RLaffected_rows > 0)
{
$recording_id = mysqli_insert_id($link);
}
if (preg_match("/RECID/",$stereo_rec_filename))
{
$stereo_rec_filename = preg_replace("/RECID/",$recording_id,$stereo_rec_filename);
$stmt = "UPDATE recording_log SET filename='$stereo_rec_filename' where recording_id='$recording_id';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
$vmgr_callerid = substr($stereo_rec_filename, 0, 17) . '...';
$stereo_recording_options = "r($PATHmonitorT/$stereo_rec_filename-out.wav)t($PATHmonitorT/$stereo_rec_filename-in.wav)";
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitor','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Options: $stereo_recording_options','','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### insert record into recording_log_stereo table ###
$stmt = "INSERT INTO recording_log_stereo (recording_id,server_ip,start_time,length_in_sec,filename,lead_id,options,processing_log,parallel_recording_id,recording_status) values('$recording_id','$server_ip','$NOW_TIME','0','$stereo_rec_filename','$lead_id','$campaign STEREO AGENT-CONTROLLED $stereo_recording','vicidial_id: $uniqueid|user: $user|channel: $channel|','$parallel_recording_id','START');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### insert record into recording_live table ###
$stmt = "INSERT INTO recording_live (recording_id,recording_type,server_ip,start_time,channel,filename,lead_id,user,dtmf_muting_end_time,recording_status) values('$recording_id','STEREO AGENT-CONTROLLED','$server_ip','$NOW_TIME','$channel','$stereo_rec_filename','$lead_id','$user','2020-12-31 23:59:59','STARTED');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
if (preg_match("/CUSTOMER_ONLY/",$stereo_recording) )
{
$vmgr_callerid = substr($stereo_rec_filename, 0, 16) . 'M...';
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitorMute','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Direction: write','State: 1','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
if (preg_match("/CUSTOMER_MUTE/",$stereo_recording) )
{
$vmgr_callerid = substr($stereo_rec_filename, 0, 16) . 'M...';
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','MixMonitorMute','$vmgr_callerid','ActionID: $vmgr_callerid','Channel: $channel','Direction: read','State: 1','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
}
}
if ((preg_match("/ONDEMAND/",$stereo_recording_agent)))
{
$stereo_ac='SOD-'.$stereo_recording_agent."\n";
}
}
}
}
}
if ($SSabandon_check_queue > 0)
{
$stmt="UPDATE vicidial_abandon_check_queue SET check_status='CONNECTED' where lead_id='$lead_id' and check_status IN('NEW','QUEUE','PROCESSING','COMPLETE') and abandon_time > \"$twentyfour_hours_ago\" order by abandon_time desc limit 1;";
@@ -8338,7 +8665,7 @@ if ($ACTION == 'manDiaLlookCaLL')
}
##### END SIP event logging, if enabled in the system #####
echo "$call_output$sip_event_action_output";
echo "$call_output$sip_event_action_output$stereo_ac";
$stage .= " $uniqueid $channel";
}
@@ -8389,10 +8716,10 @@ if ($stage == "start")
{
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "w");
# fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n");
fwrite ($fp, "$NOW_TIME|VL_LOG_0|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|VL_LOG_0|\n");
# fclose($fp);
}
echo "LOG NOT ENTERED\n";
@@ -8526,10 +8853,10 @@ if ($stage == "end")
if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') )
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "a");
# fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n");
fwrite ($fp, "$NOW_TIME|INBND_LOG_0|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|INBND_LOG_0|\n");
# fclose($fp);
$uniqueid='6666.1';
}
@@ -8602,10 +8929,10 @@ if ($stage == "end")
if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') )
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "a");
# fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n");
fwrite ($fp, "$NOW_TIME|INBND_LOG_1|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|INBND_LOG_1|\n");
# fclose($fp);
##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log
$stmt="SELECT start_epoch,term_reason,campaign_id,status FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' and called_count='$called_count' order by call_date desc limit 1;";
@@ -8664,10 +8991,10 @@ if ($stage == "end")
}
else
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "a");
# fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n");
fwrite ($fp, "$NOW_TIME|INBND_LOG_2|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|INBND_LOG_2|\n");
# fclose($fp);
}
}
@@ -9648,7 +9975,7 @@ if ($stage == "end")
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);}
if ($rslt) {$rec_list = mysqli_num_rows($rslt);}
while ($rec_list>$loop_count)
while ($rec_list>$loop_count)
{
$row=mysqli_fetch_row($rslt);
if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0]))
@@ -9679,7 +10006,7 @@ if ($stage == "end")
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00548',$user,$server_ip,$session_name,$one_mysql_log);}
if ($rslt) {$rec_list = mysqli_num_rows($rslt);}
while ($rec_list>$loop_count)
while ($rec_list>$loop_count)
{
$row=mysqli_fetch_row($rslt);
if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0]))
@@ -9704,6 +10031,73 @@ if ($stage == "end")
$loop_count++;
}
### if stereo_recording enabled, then halt recording on the customer channel and look for recording logs to update
if ($SSstereo_recording > 0)
{
if ($WeBRooTWritablE > 0)
{
# $fp = fopen ("./vicidial_debug.txt", "a");
# fwrite ($fp, "$NOW_TIME|SR_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$SSstereo_recording|$server_ip|$channel|\n");
# fclose($fp);
}
# stop stereo recording on customer channel
$stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','StopMixMonitor','SH123467$StarTtime','ActionID: SH123467$StarTtime','Channel: $channel','','','','','','','','');";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### gather live recordings tied to this customer channel
$stmt="SELECT recording_id,filename,start_time,UNIX_TIMESTAMP(start_time) from recording_live where channel='$channel' and lead_id='$lead_id' and recording_status='STARTED' and user='$user' and recording_type LIKE \"STEREO%\" limit 10;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$ST_rec_ct = mysqli_num_rows($rslt);
$st=0;
while ($ST_rec_ct > $st)
{
$row=mysqli_fetch_row($rslt);
$STrecording_id[$st] = $row[0];
$STfilename[$st] = $row[1];
$STstart_time[$st] = $row[2];
$STstart_epoch[$st] = $row[3];
$st++;
}
$st=0;
while ($ST_rec_ct > $st)
{
$length_in_sec = ($StarTtime - $STstart_epoch[$st]);
$length_in_min = ($length_in_sec / 60);
$length_in_min = sprintf("%8.2f", $length_in_min);
### update record in recording_live table ###
$stmt = "UPDATE recording_live SET end_time=NOW(),recording_status='FINISHED END-CALL' where recording_id='$STrecording_id[$st]';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### update record in recording_log table ###
$stmt = "UPDATE recording_log SET end_time=NOW(),end_epoch='$StarTtime',length_in_sec='$length_in_sec',length_in_min='$length_in_min' where recording_id='$STrecording_id[$st]';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
### update record in recording_log_stereo table ###
$stmt = "UPDATE recording_log_stereo SET end_time=NOW(),recording_status='FINISHED END-CALL',length_in_sec='$length_in_sec' where recording_id='$STrecording_id[$st]';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
$st++;
}
if ($WeBRooTWritablE > 0)
{
# $fp = fopen ("./vicidial_debug.txt", "a");
# fwrite ($fp, "$NOW_TIME|SR_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$SSstereo_recording|$st|$STrecording_id[$st]|$STfilename[$st]|$stmt|\n");
# fwrite ($fp, "$NOW_TIME|INBND_LOG_3|\n");
# fclose($fp);
}
}
### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel
if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) )
@@ -9781,10 +10175,10 @@ if ($stage == "end")
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "w");
# fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n");
fwrite ($fp, "$NOW_TIME|INBND_LOG_3|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|INBND_LOG_3|\n");
# fclose($fp);
}
}
}
@@ -9797,6 +10191,11 @@ if ($stage == "end")
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt = "UPDATE recording_live set end_time='$NOW_TIME',recording_status='FINISHED END-CALL' where filename='$filename[$loop_count]' and recording_status='STARTED';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);}
echo "$recording_id|$length_in_min|";
# $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a");
@@ -10208,7 +10607,7 @@ if ($ACTION == 'VDADcheckINCOMING')
$CBcomments = trim("$row[3]");
}
}
$stmt="SELECT owner_populate,user_group_script,custom_one,custom_two,custom_three,custom_four,custom_five,state_descriptions FROM vicidial_campaigns where campaign_id='$campaign';";
$stmt="SELECT owner_populate,user_group_script,custom_one,custom_two,custom_three,custom_four,custom_five,state_descriptions,stereo_recording,stereo_recording_agent FROM vicidial_campaigns where campaign_id='$campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00444',$user,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -10224,6 +10623,8 @@ if ($ACTION == 'VDADcheckINCOMING')
$camp_custom_four = $row[5];
$camp_custom_five = $row[6];
$state_descriptions = $row[7];
$stereo_recording = $row[8];
$stereo_recording_agent = $row[9];
}
$ownerSQL='';
if ( ($owner_populate=='ENABLED') and ( (strlen($owner) < 1) or ($owner=='NULL') ) )
@@ -10376,10 +10777,10 @@ if ($ACTION == 'VDADcheckINCOMING')
}
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "w");
# fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label|$INclosecallid|$INxfercallid|\n");
fwrite ($fp, "$NOW_TIME|INBND|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|INBND|\n");
# fclose($fp);
}
}
@@ -10523,7 +10924,7 @@ if ($ACTION == 'VDADcheckINCOMING')
}
}
echo "$VDCL_group_web|$VDCL_group_name||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number||||$VDCL_timer_action_destination|||||||$VDCL_group_web_three|$VDCL_ingroup_script_color|||$VDCL_campaign_script_two|$VDCL_ingroup_script_color_two|\n|\n";
echo "$VDCL_group_web|$VDCL_group_name||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X||||$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number||||$VDCL_timer_action_destination|||||||$VDCL_group_web_three|$VDCL_ingroup_script_color|||$VDCL_campaign_script_two|$VDCL_ingroup_script_color_two|||$stereo_recording|$stereo_recording_agent|\n|\n";
if (preg_match('/X/',$dialed_label))
{
@@ -10643,7 +11044,7 @@ if ($ACTION == 'VDADcheckINCOMING')
$ig_custom_five='';
$ig_state_descriptions='';
$stmt = "SELECT group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,uniqueid_status_display,uniqueid_status_prefix,timer_action_destination,web_form_address_three,status_group_id,inbound_survey,ingroup_script_two,browser_alert_sound,browser_alert_volume,custom_one,custom_two,custom_three,custom_four,custom_five,state_descriptions from vicidial_inbound_groups where group_id='$VDADchannel_group';";
$stmt = "SELECT group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,uniqueid_status_display,uniqueid_status_prefix,timer_action_destination,web_form_address_three,status_group_id,inbound_survey,ingroup_script_two,browser_alert_sound,browser_alert_volume,custom_one,custom_two,custom_three,custom_four,custom_five,state_descriptions,stereo_recording,stereo_recording_agent from vicidial_inbound_groups where group_id='$VDADchannel_group';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);}
@@ -10688,6 +11089,8 @@ if ($ACTION == 'VDADcheckINCOMING')
$ig_custom_four = $row[35];
$ig_custom_five = $row[36];
$ig_state_descriptions = $row[37];
$stereo_recording = $row[38];
$stereo_recording_agent = $row[39];
$status_group_gather_data = status_group_gather($row[27],'INGROUP');
@@ -11041,8 +11444,8 @@ if ($ACTION == 'VDADcheckINCOMING')
}
### if web form is set then send on to vicidial.php for override of WEB_FORM address
if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|$VDCL_uniqueid_status_display|$custom_call_id|$VDCL_uniqueid_status_prefix|$VDCL_timer_action_destination|$DID_id|$DID_extension|$DID_pattern|$DID_description|$INclosecallid|$INxfercallid|$VDCL_group_web_three|$VDCL_ingroup_script_color|$VDCL_inbound_survey|$VDCL_survey_participate|$VDCL_ingroup_script_two|$VDCL_ingroup_script_color_two|$VDCL_browser_alert_sound|$VDCL_browser_alert_volume|\n";}
else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|$VDCL_uniqueid_status_display|$custom_call_id|$VDCL_uniqueid_status_prefix|$VDCL_timer_action_destination|$DID_id|$DID_extension|$DID_pattern|$DID_description|$INclosecallid|$INxfercallid|$VDCL_group_web_three|$VDCL_ingroup_script_color|$VDCL_inbound_survey|$VDCL_survey_participate|$VDCL_ingroup_script_two|$VDCL_ingroup_script_color_two|$VDCL_browser_alert_sound|$VDCL_browser_alert_volume|\n";}
if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|$VDCL_uniqueid_status_display|$custom_call_id|$VDCL_uniqueid_status_prefix|$VDCL_timer_action_destination|$DID_id|$DID_extension|$DID_pattern|$DID_description|$INclosecallid|$INxfercallid|$VDCL_group_web_three|$VDCL_ingroup_script_color|$VDCL_inbound_survey|$VDCL_survey_participate|$VDCL_ingroup_script_two|$VDCL_ingroup_script_color_two|$VDCL_browser_alert_sound|$VDCL_browser_alert_volume|$stereo_recording|$stereo_recording_agent|\n";}
else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|$VDCL_uniqueid_status_display|$custom_call_id|$VDCL_uniqueid_status_prefix|$VDCL_timer_action_destination|$DID_id|$DID_extension|$DID_pattern|$DID_description|$INclosecallid|$INxfercallid|$VDCL_group_web_three|$VDCL_ingroup_script_color|$VDCL_inbound_survey|$VDCL_survey_participate|$VDCL_ingroup_script_two|$VDCL_ingroup_script_color_two|$VDCL_browser_alert_sound|$VDCL_browser_alert_volume|$stereo_recording|$stereo_recording_agent|\n";}
if (strlen($fronter) < 2) {$fronter = $tsr;}
$stmt = "SELECT full_name from vicidial_users where user='$fronter';";
@@ -13619,10 +14022,10 @@ if ($ACTION == 'LeaDSearcHSelecTUpdatE')
}
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "w");
# fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label|$INclosecallid|$INxfercallid|\n");
fwrite ($fp, "$NOW_TIME|INBND|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|INBND|\n");
# fclose($fp);
}
$stmt="INSERT INTO vicidial_sessions_recent SET lead_id='$lead_id',server_ip='$server_ip',call_date=NOW(),user='$user',campaign_id='$VDADchannel_group',conf_exten='$conf_exten',call_type='S';";
@@ -21051,10 +21454,10 @@ if ($ACTION == 'CALLSINQUEUEgrab')
$row=mysqli_fetch_row($rslt);
if ($WeBRooTWritablE > 0)
{
$fp = fopen ("./vicidial_debug.txt", "w");
# $fp = fopen ("./vicidial_debug.txt", "w");
# fwrite ($fp, "$NOW_TIME|GRAB_CALL |$stmtU|$VACaffected_rows|$stmtD|$row[0]|$row[1]|$row[2]|$row[3]|$row[4]|$row[5]|$row[6]|$row[7]|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|$row[14]|$row[15]|$row[16]|$row[17]|$row[18]|\n");
fwrite ($fp, "$NOW_TIME|GRAB_CALL|\n");
fclose($fp);
# fwrite ($fp, "$NOW_TIME|GRAB_CALL|\n");
# fclose($fp);
}
}
if ($SSagent_debug_logging > 0) {vicidial_ajax_log($NOW_TIME,$startMS,$link,$ACTION,$php_script,$user,$stage,$lead_id,$session_name,$stmt);}
+238 -7
View File
@@ -748,10 +748,11 @@
# 250326-2032 - Added agent_hide_dial_fail system_setting
# 250806-0859 - Added manual_dial_lead_id 'ONLY' option and user override setting
# 250808-1322 - Added agent_man_dial_filter & agent_3way_dial_filter system settings
# 250916-2055 - Added stereo recording features
#
$version = '2.14-714c';
$build = '250808-1322';
$version = '2.14-715c';
$build = '250916-2055';
$php_script = 'vicidial.php';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=103;
@@ -3154,7 +3155,7 @@ else
$HKstatusnames = substr("$HKstatusnames", 0, -1);
##### grab the campaign settings
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days,three_way_record_stop,hangup_xfer_record_start,max_inbound_calls_outcome,manual_auto_next_options,agent_screen_time_display,pause_max_dispo,script_top_dispo,routing_initiated_recordings,dead_trigger_seconds,dead_trigger_action,dead_trigger_repeat,dead_trigger_filename,scheduled_callbacks_force_dial,callback_hours_block,callback_display_days,scheduled_callbacks_timezones_container,three_way_volume_buttons,manual_dial_validation,mute_recordings,leave_vm_no_dispo,leave_vm_message_group_id,campaign_script_two,browser_alert_sound,browser_alert_volume,three_way_record_stop_exception,pause_max_exceptions,transfer_button_launch,leave_3way_start_recording,leave_3way_start_recording_exception,calls_waiting_vl_one,calls_waiting_vl_two,in_man_dial_next_ready_seconds,in_man_dial_next_ready_seconds_override,transfer_no_dispo,local_call_time,pause_max_url,agent_hide_hangup,ig_xfer_list_sort,script_tab_frame_size,user_group_script,agent_hangup_route,agent_hangup_value,agent_hangup_ig_override,show_confetti,custom_one,custom_two,custom_three,custom_four,custom_five,allow_chats,dead_stop_recording,force_per_call_notes,state_descriptions,script_tab_height,leave_3way_stop_recording,manual_minimum_ring_seconds,manual_minimum_attempt_seconds,manual_minimum_answer_seconds,sip_event_logging,stereo_recording FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number,use_custom_cid,scheduled_callbacks_alert,scheduled_callbacks_count,manual_dial_override,blind_monitor_warning,blind_monitor_message,blind_monitor_filename,timer_action_destination,enable_xfer_presets,hide_xfer_number_to_dial,manual_dial_prefix,customer_3way_hangup_logging,customer_3way_hangup_seconds,customer_3way_hangup_action,ivr_park_call,manual_preview_dial,api_manual_dial,manual_dial_call_time_check,my_callback_option,per_call_notes,agent_lead_search,agent_lead_search_method,queuemetrics_phone_environment,auto_pause_precall,auto_pause_precall_code,auto_resume_precall,manual_dial_cid,custom_3way_button_transfer,callback_days_limit,disable_dispo_screen,disable_dispo_status,screen_labels,status_display_fields,pllb_grouping,pllb_grouping_limit,in_group_dial,in_group_dial_select,pause_after_next_call,owner_populate,manual_dial_lead_id,dead_max,dispo_max,pause_max,dead_max_dispo,dispo_max_dispo,max_inbound_calls,manual_dial_search_checkbox,hide_call_log_info,timer_alt_seconds,wrapup_bypass,wrapup_after_hotkey,callback_active_limit,callback_active_limit_override,comments_all_tabs,comments_dispo_screen,comments_callback_screen,qc_comment_history,show_previous_callback,clear_script,manual_dial_search_filter,web_form_address_three,manual_dial_override_field,status_display_ingroup,customer_gone_seconds,agent_display_fields,manual_dial_timeout,manual_auto_next,manual_auto_show,allow_required_fields,dead_to_dispo,agent_xfer_validation,ready_max_logout,callback_display_days,three_way_record_stop,hangup_xfer_record_start,max_inbound_calls_outcome,manual_auto_next_options,agent_screen_time_display,pause_max_dispo,script_top_dispo,routing_initiated_recordings,dead_trigger_seconds,dead_trigger_action,dead_trigger_repeat,dead_trigger_filename,scheduled_callbacks_force_dial,callback_hours_block,callback_display_days,scheduled_callbacks_timezones_container,three_way_volume_buttons,manual_dial_validation,mute_recordings,leave_vm_no_dispo,leave_vm_message_group_id,campaign_script_two,browser_alert_sound,browser_alert_volume,three_way_record_stop_exception,pause_max_exceptions,transfer_button_launch,leave_3way_start_recording,leave_3way_start_recording_exception,calls_waiting_vl_one,calls_waiting_vl_two,in_man_dial_next_ready_seconds,in_man_dial_next_ready_seconds_override,transfer_no_dispo,local_call_time,pause_max_url,agent_hide_hangup,ig_xfer_list_sort,script_tab_frame_size,user_group_script,agent_hangup_route,agent_hangup_value,agent_hangup_ig_override,show_confetti,custom_one,custom_two,custom_three,custom_four,custom_five,allow_chats,dead_stop_recording,force_per_call_notes,state_descriptions,script_tab_height,leave_3way_stop_recording,manual_minimum_ring_seconds,manual_minimum_attempt_seconds,manual_minimum_answer_seconds,sip_event_logging,stereo_recording,stereo_recording_agent FROM vicidial_campaigns where campaign_id = '$VD_campaign';";
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);}
if ($DB) {echo "$stmt\n";}
@@ -3358,6 +3359,7 @@ else
$manual_minimum_answer_seconds =$row[196];
$CAMPsip_event_logging = $row[197];
$stereo_recording = $row[198];
$stereo_recording_agent = $row[199];
if ( (!preg_match("/DISABLED/",$VU_manual_dial_lead_id)) and (strlen($VU_manual_dial_lead_id) > 0) )
{
@@ -3365,7 +3367,7 @@ else
$manual_dial_lead_id = $VU_manual_dial_lead_id;
}
if ($SSstereo_recording < 1) {$stereo_recording='DISABLED';}
if ($SSstereo_recording < 1) {$stereo_recording='DISABLED'; $stereo_recording_agent='NEVER';}
if ( ($manual_minimum_ring_seconds > 0) and ($SSsip_event_logging < 1) )
{
@@ -5691,6 +5693,10 @@ $start_recording_GIF = 'vdc_LB_startrecording.gif';
$start_recording_GIF_off = 'vdc_LB_startrecording_OFF.gif';
$stop_recording_GIF = 'vdc_LB_stoprecording.gif';
$stop_recording_GIF_off = 'vdc_LB_stoprecording_OFF.gif';
$STstart_recording_GIF = 'vdc_LB_STstartrecording.gif';
$STstart_recording_GIF_off = 'vdc_LB_STstartrecording_OFF.gif';
$STstop_recording_GIF = 'vdc_LB_STstoprecording.gif';
$STstop_recording_GIF_off = 'vdc_LB_STstoprecording_OFF.gif';
if (preg_match("/RECORDING/",$SSrecording_buttons))
{
if (preg_match("/2xHEIGHT/",$SSrecording_buttons))
@@ -5699,6 +5705,10 @@ if (preg_match("/RECORDING/",$SSrecording_buttons))
$start_recording_GIF_off = 'vdc_LB_startrecording_altx2_OFF.gif';
$stop_recording_GIF = 'vdc_LB_stoprecording_altx2.gif';
$stop_recording_GIF_off = 'vdc_LB_stoprecording_altx2_OFF.gif';
$STstart_recording_GIF = 'vdc_LB_STstartrecording_altx2.gif';
$STstart_recording_GIF_off = 'vdc_LB_STstartrecording_altx2_OFF.gif';
$STstop_recording_GIF = 'vdc_LB_STstoprecording_altx2.gif';
$STstop_recording_GIF_off = 'vdc_LB_STstoprecording_altx2_OFF.gif';
}
else
{
@@ -5706,6 +5716,10 @@ if (preg_match("/RECORDING/",$SSrecording_buttons))
$start_recording_GIF_off = 'vdc_LB_startrecording_alt_OFF.gif';
$stop_recording_GIF = 'vdc_LB_stoprecording_alt.gif';
$stop_recording_GIF_off = 'vdc_LB_stoprecording_alt_OFF.gif';
$STstart_recording_GIF = 'vdc_LB_STstartrecording_alt.gif';
$STstart_recording_GIF_off = 'vdc_LB_STstartrecording_alt_OFF.gif';
$STstop_recording_GIF = 'vdc_LB_STstoprecording_alt.gif';
$STstop_recording_GIF_off = 'vdc_LB_STstoprecording_alt_OFF.gif';
}
}
@@ -6261,6 +6275,12 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var campaign_rec_filename = '<?php echo $campaign_rec_filename ?>';
var LIVE_campaign_recording = '<?php echo $campaign_recording ?>';
var LIVE_campaign_rec_filename = '<?php echo $campaign_rec_filename ?>';
var STcampaign_recording = '<?php echo $stereo_recording_agent ?>';
var STcampaign_rec_filename = '<?php echo $stereo_rec_filename ?>';
var VDICstereo_recording = '<?php echo $stereo_recording ?>';
var VDICstereo_recording_agent = '<?php echo $stereo_recording_agent ?>';
var LIVE_STcampaign_recording = '<?php echo $stereo_recording_agent ?>';
var LIVE_STcampaign_rec_filename = '<?php echo $stereo_rec_filename ?>';
var LIVE_default_group_alias = '<?php echo $default_group_alias ?>';
var LIVE_caller_id_number = '<?php echo $default_group_alias_cid ?>';
var LIVE_web_vars = '<?php echo $default_web_vars ?>';
@@ -6488,6 +6508,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var external_igb_set_name='';
var recording_filename='';
var recording_id='';
var STrecording_filename='';
var STrecording_id='';
var delayed_script_load='';
var script_recording_delay='';
var VDRP_stage='PAUSED';
@@ -6656,6 +6678,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var mrglock_ig_select_ct='<?php echo $mrglock_ig_select_ct ?>';
var agent_select_territories_skip_count=0;
var last_recording_filename='';
var STlast_recording_filename='';
var dead_max='<?php echo $dead_max ?>';
var dead_max_dispo='<?php echo $dead_max_dispo ?>';
var dead_to_dispo='<?php echo $dead_to_dispo ?>';
@@ -6746,6 +6769,8 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var MD_dial_timed_out=0;
var routing_initiated_recording='<?php echo $routing_initiated_recording ?>';
var stereo_recording='<?php echo $stereo_recording ?>';
var SSstereo_recording=<?php echo $SSstereo_recording ?>;
var stereo_recording_agent='<?php echo $stereo_recording_agent ?>';
var dead_trigger_count=0;
var dead_recording_triggered=0;
var dead_trigger_first_ran=0;
@@ -6803,6 +6828,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var user_pass_webform = '<?php echo $user_pass_webform ?>';
var phone_login_webform = '<?php echo $phone_login_webform ?>';
var recording_active=0;
var STrecording_active=0;
var pause_max_url_trigger = '<?php echo $pause_max_url_trigger ?>';
var agent_hide_hangup_ACTIVE = '<?php $agent_hide_hangup_ACTIVE ?>';
var agent_datetime='';
@@ -6874,6 +6900,10 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
image_LB_stoprecording.src="./images/<?php echo _QXZ("$stop_recording_GIF") ?>";
var image_LB_startrecording = new Image();
image_LB_startrecording.src="./images/<?php echo _QXZ("$start_recording_GIF") ?>";
var image_LB_STstoprecording = new Image();
image_LB_STstoprecording.src="./images/<?php echo _QXZ("$STstop_recording_GIF") ?>";
var image_LB_STstartrecording = new Image();
image_LB_STstartrecording.src="./images/<?php echo _QXZ("$STstart_recording_GIF") ?>";
var image_LB_paused = new Image();
image_LB_paused.src="./images/<?php echo _QXZ("vdc_LB_paused.gif") ?>";
var image_LB_active = new Image();
@@ -6898,6 +6928,10 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
image_LB_stoprecording_OFF.src="./images/<?php echo _QXZ("$stop_recording_GIF_off") ?>";
var image_LB_startrecording_OFF = new Image();
image_LB_startrecording_OFF.src="./images/<?php echo _QXZ("$start_recording_GIF_off") ?>";
var image_LB_STstoprecording_OFF = new Image();
image_LB_STstoprecording_OFF.src="./images/<?php echo _QXZ("$STstop_recording_GIF_off") ?>";
var image_LB_STstartrecording_OFF = new Image();
image_LB_STstartrecording_OFF.src="./images/<?php echo _QXZ("$STstart_recording_GIF_off") ?>";
var image_LB_senddtmf_OFF = new Image();
image_LB_senddtmf_OFF.src="./images/<?php echo _QXZ("vdc_LB_senddtmf_OFF.gif") ?>";
var image_LB_ivrgrabparkedcall = new Image();
@@ -8358,6 +8392,21 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
{
conf_send_recording('StopMonitorConf', session_id, recording_filename,'1','','YES');
}
var regAPIrec = new RegExp("BEGIN","g");
if (api_recording.match(regAPIrec))
{
var APIrec_append = api_recording;
if (APIrec_append.length > 5)
{APIrec_append = APIrec_append.replace(regAPIrec, '');}
else
{APIrec_append='';}
conf_send_stereo_recording('MonitorStereo', session_id,'','1', APIrec_append,'YES');
}
if (api_recording=='END')
{
conf_send_stereo_recording('StopMonitorStereo', session_id, recording_filename,'1','','YES');
}
if (api_transferconf_function.length > 0)
{
if (api_transferconf_ID == api_transferconf_values_array[7])
@@ -8729,6 +8778,12 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
{
parked_hangup='1';
}
if ( (SSstereo_recording > 0) && ( (VDICstereo_recording == 'BOTH_CHANNELS') || (VDICstereo_recording == 'CUSTOMER_ONLY') || (VDICstereo_recording == 'CUSTOMER_MUTE') ) )
{
// call is dead set stereo recording button to disabled
var conf_rec_start_html = "<img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF_off") ?>\" border=\"0\" alt=\"Start Stereo Recording\" />";
document.getElementById("StRecorDControl").innerHTML = conf_rec_start_html;
}
}
}
if ( (CheckDEADcall > 0) && (VD_live_customer_call==1) && (VD_live_call_secondS > 5) && ((CalL_AutO_LauncH == 'CHAT')) && (currently_in_email_or_chat > 0) )
@@ -9172,6 +9227,117 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
}
}
// ################################################################################
// Send MonitorStereo/StopMonitorStereo command for stereo_recording of conferences
function conf_send_stereo_recording(taskconfrectype,taskconfrec,taskconffile,taskfromapi,taskapiappend,CSRclick)
{
if (CSRclick=='YES')
{button_click_log = button_click_log + "" + SQLdate + "-----conf_send_stereo_recording---" + taskconfrectype + " " + taskconfrec + " " + taskconffile + " " + taskfromapi + " " + taskapiappend + "|";}
else
{button_click_log = button_click_log + "" + SQLdate + "-----conf_send_stereo_recordingAUTO---" + taskconfrectype + " " + taskconfrec + " " + taskconffile + " " + taskfromapi + " " + taskapiappend + " " + all_record + "|";}
if (inOUT == 'OUT')
{
tmp_vicidial_id = document.vicidial_form.uniqueid.value;
}
else
{
tmp_vicidial_id = 'IN';
}
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
if (xmlhttp)
{
if (taskconfrectype == 'MonitorStereo')
{
recording_active=1;
var REGrecCLEANvlc = new RegExp(" ","g");
var recVendorLeadCode = document.vicidial_form.vendor_lead_code.value;
recVendorLeadCode = recVendorLeadCode.replace(REGrecCLEANvlc, '');
var recLeadID = document.vicidial_form.lead_id.value;
var query_recording_exten = recording_exten;
var channelrec = "Local/" + conf_silent_prefix + '' + taskconfrec + "@" + ext_context;
var conf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_stereo_recording('StopMonitorStereo','" + taskconfrec + "','" + filename + "','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" /></a>";
if (VDICstereo_recording_agent == 'ALLFORCE')
{
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF_off") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" />";
}
else
{
document.getElementById("StRecorDControl").innerHTML = conf_rec_start_html;
}
}
if (taskconfrectype == 'StopMonitorStereo')
{
recording_active=0;
filename = taskconffile;
var query_recording_exten = session_id;
var channelrec = "Local/" + conf_silent_prefix + '' + taskconfrec + "@" + ext_context;
var conf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_stereo_recording('MonitorStereo','" + taskconfrec + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF") ?>\" border=\"0\" alt=\"Start Stereo Recording\" /></a>";
if (VDICstereo_recording_agent == 'ALLFORCE')
{
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF_off") ?>\" border=\"0\" alt=\"Start Stereo Recording\" />";
}
else
{
document.getElementById("StRecorDControl").innerHTML = conf_rec_start_html;
}
}
confmonitor_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&campaign=" + campaign + "&user=" + user + "&pass=" + pass + "&ACTION=" + taskconfrectype + "&format=text&channel=" + lastcustchannel + "&filename=NOfilenameNEEDED&exten=" + query_recording_exten + "&ext_context=" + ext_context + "&lead_id=" + document.vicidial_form.lead_id.value + "&CalLCID=" + LasTCID + "&phone_number=" + lead_dial_number + "&ext_priority=1&FROMvdc=YES&uniqueid=" + tmp_vicidial_id + "&FROMapi=" + taskfromapi;
xmlhttp.open('POST', 'manager_send.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(confmonitor_query);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var RClookResponse = null;
// document.getElementById("busycallsdebug").innerHTML = confmonitor_query;
// alert(confmonitor_query);
// alert(xmlhttp.responseText);
RClookResponse = xmlhttp.responseText;
var RClookResponse_array=RClookResponse.split("\n");
var RClookFILE = RClookResponse_array[1];
var RClookID = RClookResponse_array[2];
var RClookFILE_array = RClookFILE.split("Filename: ");
var RClookID_array = RClookID.split("RecorDing_ID: ");
if (taskconfrectype == 'MonitorStereo')
{
var conf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_stereo_recording('StopMonitorStereo','" + taskconfrec + "','ID:" + recording_id + "','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" /></a>";
if (VDICstereo_recording_agent == 'ALLFORCE')
{
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF_off") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" />";
}
else
{
document.getElementById("StRecorDControl").innerHTML = conf_rec_start_html;
}
}
}
}
delete xmlhttp;
}
}
// ################################################################################
// Send Redirect command for live call to Manager sends phone name where call is going to
// Covers the following types: XFER, VMAIL, ENTRY, CONF, PARK, FROMPARK, XfeRLOCAL, XfeRINTERNAL, XfeRBLIND, VfeRVMAIL
@@ -9821,6 +9987,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
{
var conf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_recording('MonitorConf','" + session_id + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$start_recording_GIF") ?>\" border=\"0\" alt=\"Start Recording\" /></a>";
var conf_rec_mute_html = "<img src=\"./images/<?php echo _QXZ("vdc_LB_mute_recording_DISABLED.gif") ?>\" border=\"0\" alt=\"Mute Recording Disabled\" /><br />";
var STconf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_stereo_recording('MonitorStereo','" + session_id + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF") ?>\" border=\"0\" alt=\"Start Stereo Recording\" /></a>";
if ( (LIVE_campaign_recording == 'NEVER') || (LIVE_campaign_recording == 'ALLFORCE') )
{
document.getElementById("RecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$start_recording_GIF_off") ?>\" border=\"0\" alt=\"Start Recording\" />";
@@ -9832,6 +9999,8 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
document.getElementById("RecorDMute").innerHTML = conf_rec_mute_html;
}
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF_off") ?>\" border=\"0\" alt=\"Start Stereo Recording\" />";
MDlogRecorDings = MDlogResponse_array[3];
if (window.MDlogRecorDings)
{
@@ -11449,7 +11618,6 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
debug_response = debug_response.replace(REGcommentsDBNL, "<br>");
// document.getElementById("debugbottomspan").innerHTML = "<br>|" + manDiaLlook_query + "|<br>\n" + debug_response;
MDlookResponse = xmlhttp.responseText;
var MDlookResponse_array=MDlookResponse.split("\n");
var MDlookCID = MDlookResponse_array[0];
@@ -11508,6 +11676,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
button_click_log = button_click_log + "" + SQLdate + "-----DiaLAlerT---Call-Rejected" + XDerrorDesc + "|";
agent_events('agent_alert', "Call Rejected: " + XDerrorDesc + ' ' + XDerrorDescSIP, aec); aec++;
}
if ( (XDchannel.match(regMDL)) && (asterisk_version != '1.0.8') && (asterisk_version != '1.0.9') && (MD_ring_secondS < 10) )
{
// bad grab of Local channel, try again
@@ -11586,8 +11755,9 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
else
{
custchannellive=1;
document.vicidial_form.uniqueid.value = MDlookResponse_array[0];
document.vicidial_form.uniqueid.value = MDlookResponse_array[0];
document.getElementById("callchannel").innerHTML = MDlookResponse_array[1];
var stereo_info = MDlookResponse_array[2];
lastcustchannel = MDlookResponse_array[1];
if( document.images ) { document.images['livecall'].src = image_livecall_ON.src;}
document.vicidial_form.SecondS.value = 0;
@@ -11608,6 +11778,32 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
document.getElementById("MainStatuSSpan").innerHTML = " <?php echo _QXZ("Called:"); ?> " + status_display_number + " " + status_display_content + " &nbsp;";
var regSRC = new RegExp("^SAC|^SPAC","ig");
var regSRD = new RegExp("^SOD","ig");
var regSRAF = new RegExp("ALLFORCE","ig");
if (stereo_info.match(regSRC))
{
// stereo recording was started
var conf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_stereo_recording('StopMonitorStereo','" + session_id + "','" + filename + "','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" /></a>";
if (stereo_info.match(regSRAF))
{
// Agent-control is ALLFORCE, use disabled button
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF_off") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" />";
}
else
{
document.getElementById("StRecorDControl").innerHTML = conf_rec_start_html;
}
}
if (stereo_info.match(regSRD))
{
// stereo recording not started, but set to ONDEMAND
var conf_rec_start_html = "<a href=\"#\" onclick=\"conf_send_stereo_recording('MonitorStereo','" + session_id + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF") ?>\" border=\"0\" alt=\"Start Stereo Recording\" /></a>";
document.getElementById("StRecorDControl").innerHTML = conf_rec_start_html;
}
document.getElementById("ParkControl").innerHTML ="<a href=\"#\" onclick=\"mainxfer_send_redirect('ParK','" + lastcustchannel + "','" + lastcustserverip + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("vdc_LB_parkcall.gif"); ?>\" border=\"0\" alt=\"Park Call\" /></a>";
if ( (ivr_park_call=='ENABLED') || (ivr_park_call=='ENABLED_PARK_ONLY') )
{
@@ -14100,6 +14296,8 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
browser_alert_sound = VDIC_data_VDIG[40];
browser_alert_volume = VDIC_data_VDIG[41];
}
VDICstereo_recording = VDIC_data_VDIG[42];
VDICstereo_recording_agent = VDIC_data_VDIG[43];
var VDIC_data_VDFR=check_VDIC_array[3].split("|");
if ( (VDIC_data_VDFR[1].length > 1) && (VDCL_fronter_display == 'Y') )
@@ -14460,6 +14658,30 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
document.getElementById("MainStatuSSpan").innerHTML = " <?php echo _QXZ("Incoming:"); ?> " + dial_display_number + " " + custom_call_id + " " + temp_status_display_ingroup + "&nbsp; " + VDIC_fronter + " " + status_display_content;
}
if ( (SSstereo_recording > 0) && ( (VDICstereo_recording == 'BOTH_CHANNELS') || (VDICstereo_recording == 'CUSTOMER_ONLY') || (VDICstereo_recording == 'CUSTOMER_MUTE') ) )
{
if (VDICstereo_recording_agent == 'ALLCALLS')
{
// stereo recording was started, allow agent to stop it
document.getElementById("StRecorDControl").innerHTML = "<a href=\"#\" onclick=\"conf_send_stereo_recording('StopMonitorStereo','" + session_id + "','" + filename + "','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" /></a>";
}
if (VDICstereo_recording_agent == 'ALLFORCE')
{
// Agent-control is ALLFORCE, use disabled button
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstop_recording_GIF_off") ?>\" border=\"0\" alt=\"Stop Stereo Recording\" />";
}
if (VDICstereo_recording_agent == 'ONDEMAND')
{
// stereo recording not started, but agent control set to ONDEMAND
document.getElementById("StRecorDControl").innerHTML = "<a href=\"#\" onclick=\"conf_send_stereo_recording('MonitorStereo','" + session_id + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF") ?>\" border=\"0\" alt=\"Start Stereo Recording\" /></a>";
}
if (VDICstereo_recording_agent == 'NEVER')
{
// stereo recording not started, and agent control set to NEVER
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF_off") ?>\" border=\"0\" alt=\"Start Stereo Recording\" />";
}
}
document.getElementById("ParkControl").innerHTML ="<a href=\"#\" onclick=\"mainxfer_send_redirect('ParK','" + lastcustchannel + "','" + lastcustserverip + "','','','','YES');return false;\"><img src=\"./images/<?php echo _QXZ("vdc_LB_parkcall.gif"); ?>\" border=\"0\" alt=\"Park Call\" /></a>";
if ( (ivr_park_call=='ENABLED') || (ivr_park_call=='ENABLED_PARK_ONLY') )
{
@@ -21669,6 +21891,8 @@ function phone_number_format(formatphone) {
hideDiv('InvalidOpenerSpan');
hideDiv('OtherTabCommentsSpan');
hideDiv('AgentTimeDisplayBox');
if ( (SSstereo_recording < 1) || (stereo_recording == 'DISABLED') )
{hideDiv('StRecorDControl');}
if (launch_scb_force_dial < 1)
{hideDiv('SCForceDialBox');}
else
@@ -21759,6 +21983,9 @@ function phone_number_format(formatphone) {
var conf_rec_mute_html = "<img src=\"./images/<?php echo _QXZ("vdc_LB_mute_recording_DISABLED.gif") ?>\" border=\"0\" alt=\"Mute Recording Disabled\" /><br />";
document.getElementById("RecorDMute").innerHTML = conf_rec_mute_html;
}
document.getElementById("StRecorDControl").innerHTML = "<img src=\"./images/<?php echo _QXZ("$STstart_recording_GIF_off"); ?>\" border=\"0\" alt=\"Start Stereo Recording\" />";
if (INgroupCOUNT > 0)
{
if (VU_closer_default_blended == 1)
@@ -23570,7 +23797,11 @@ $zi=2;
<!-- <a href=\"#\" onclick=\"conf_send_recording('MonitorConf','" + head_conf + "','','','');return false;\">Record</a> -->
<span style="background-color: <?php echo $MAIN_COLOR ?>" id="RecorDControl"><a href="#" onclick="conf_send_recording('MonitorConf',session_id,'','','','YES');return false;"><img src="./images/<?php echo _QXZ("$start_recording_GIF"); ?>" border="0" alt="Start Recording" /></a></span><br />
<span style="background-color: <?php echo $MAIN_COLOR ?>" id="RecorDMute"></span>
<?php
<?php
if ($SSstereo_recording > 0)
{echo "<span style=\"background-color:$MAIN_COLOR\" id=\"StRecorDControl\"><img src=\"./images/"._QXZ("$STstart_recording_GIF_off")."\" border=\"0\" alt=\"Start Stereo Recording\" /></span><br />";}
else
{echo "<span style=\"background-color:$MAIN_COLOR\" id=\"StRecorDControl\"></span>";}
if (!preg_match("/NOGAP/",$SSrecording_buttons))
{echo "<span id=\"SpacerSpanA\"><img src=\"./images/"._QXZ("blank.gif")."\" width=\"145px\" height=\"16px\" border=\"0\" /></span><br />\n";}
if ($SSenable_first_webform > 0)