Stereo Call Recording commit
git-svn-id: svn://192.168.202.10@3941 3d104415-ff17-0410-8863-d5cf3c621b8a
@@ -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
|
||||
################################################################################
|
||||
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
######################
|
||||
|
||||
@@ -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);}
|
||||
|
||||
@@ -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 + " ";
|
||||
|
||||
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 + " " + 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)
|
||||
|
||||