Added recent session per-call logging and force_fronter_audio_stop Agent API function

git-svn-id: svn://192.168.202.10@3066 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2019-02-22 18:32:05 +00:00
parent c56407d8ed
commit 884a60ad22
29 changed files with 506 additions and 49 deletions
+4
View File
@@ -379,6 +379,10 @@ OTHER CHANGES:
Screen. For example, Putting "SMITH" in the SendDTMF field would result Screen. For example, Putting "SMITH" in the SendDTMF field would result
in "76484" being sent over DTMF. in "76484" being sent over DTMF.
106. Added "force_fronter_audio_stop" Agent API function, allowing an API
command to be sent to the fronter session of a closer call to stop
playing of an audio_playback pre-recorded audio stream
+48 -2
View File
@@ -15,7 +15,7 @@
# - Auto reset lists at defined times # - Auto reset lists at defined times
# - Auto restarts Asterisk process if enabled in servers settings # - Auto restarts Asterisk process if enabled in servers settings
# #
# Copyright (C) 2018 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # Copyright (C) 2019 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# #
# CHANGES # CHANGES
# 61011-1348 - First build # 61011-1348 - First build
@@ -134,9 +134,10 @@
# 180916-1003 - Added vicidial_lists.resets_today resetting at TEOD, timed reset resets_today verification before reset # 180916-1003 - Added vicidial_lists.resets_today resetting at TEOD, timed reset resets_today verification before reset
# 180930-1007 - Added more allowed codecs to conf file generation # 180930-1007 - Added more allowed codecs to conf file generation
# 181028-1451 - Added vicidial_list stuck QUEUE reset at TEoD # 181028-1451 - Added vicidial_list stuck QUEUE reset at TEoD
# 190220-2258 - Added flushing of vicidial_sessions_recent table
# #
$build = '181028-1451'; $build = '190220-2258';
$DB=0; # Debug flag $DB=0; # Debug flag
$teodDB=0; # flag to log Timeclock End of Day processes to log file $teodDB=0; # flag to log Timeclock End of Day processes to log file
@@ -1462,6 +1463,33 @@ if ($timeclock_end_of_day_NOW > 0)
} }
# roll of SENT/EXPIRED vicidial_sessions_recent records
if (!$Q) {print "\nProcessing vicidial_sessions_recent table...\n";}
$stmtA = "INSERT IGNORE INTO vicidial_sessions_recent_archive SELECT * from vicidial_sessions_recent where call_date < \"$TDSQLdate\";";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
$event_string = "$sthArows rows inserted into vicidial_sessions_recent_archive table";
if (!$Q) {print "$event_string \n";}
if ($teodDB) {&teod_logger;}
$rv = $sthA->err();
if (!$rv)
{
$stmtA = "DELETE FROM vicidial_sessions_recent WHERE call_date < \"$TDSQLdate\";";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows = $sthA->rows;
$event_string = "$sthArows rows deleted from vicidial_sessions_recent table";
if (!$Q) {print "$event_string \n";}
if ($teodDB) {&teod_logger;}
$stmtA = "optimize table vicidial_sessions_recent;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
}
# roll of vicidial_ccc_log records, keep only 1 day of records in active table # roll of vicidial_ccc_log records, keep only 1 day of records in active table
if (!$Q) {print "\nProcessing vicidial_ccc_log table...\n";} if (!$Q) {print "\nProcessing vicidial_ccc_log table...\n";}
$stmtA = "INSERT IGNORE INTO vicidial_ccc_log_archive SELECT * from vicidial_ccc_log;"; $stmtA = "INSERT IGNORE INTO vicidial_ccc_log_archive SELECT * from vicidial_ccc_log;";
@@ -1727,6 +1755,24 @@ if ($timeclock_end_of_day_NOW > 0)
##### END vicidial_recent_ascb_calls_archive end of day process removing records older than 7 days ##### ##### END vicidial_recent_ascb_calls_archive end of day process removing records older than 7 days #####
##### BEGIN vicidial_sessions_recent_archive end of day process removing records older than 7 days #####
$stmtA = "DELETE from vicidial_sessions_recent_archive where call_date < \"$SDSQLdate\";";
if($DBX){print STDERR "\n|$stmtA|\n";}
$affected_rows = $dbhA->do($stmtA);
if($DB){print STDERR "\n|$affected_rows vicidial_sessions_recent_archive records older than 7 days purged|\n";}
if ($teodDB) {$event_string = "vicidial_sessions_recent_archive records older than 7 days purged: |$stmtA|$affected_rows|"; &teod_logger;}
$stmtA = "optimize table vicidial_sessions_recent_archive;";
if($DBX){print STDERR "\n|$stmtA|\n";}
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@aryA = $sthA->fetchrow_array;
if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";}
$sthA->finish();
##### END vicidial_sessions_recent_archive end of day process removing records older than 7 days #####
##### BEGIN usacan_phone_dialcode_fix funciton ##### ##### BEGIN usacan_phone_dialcode_fix funciton #####
if ($usacan_phone_dialcode_fix > 0) if ($usacan_phone_dialcode_fix > 0)
{ {
+30
View File
@@ -27,8 +27,11 @@
# 180519-1431 - Added vicidial_inbound_groups optimization # 180519-1431 - Added vicidial_inbound_groups optimization
# 181003-2115 - Added optimize of cid_channels_recent_ tables # 181003-2115 - Added optimize of cid_channels_recent_ tables
# 190214-1758 - Fix for cid_recent_ table optimization issue # 190214-1758 - Fix for cid_recent_ table optimization issue
# 190222-1321 - Added optional flushing of vicidial_sessions_recent table
# #
$session_flush=0;
### begin parsing run-time options ### ### begin parsing run-time options ###
if (length($ARGV[0])>1) if (length($ARGV[0])>1)
{ {
@@ -46,6 +49,7 @@ if (length($ARGV[0])>1)
print " [-t] = test\n"; print " [-t] = test\n";
print " [--debug] = debugging messages\n"; print " [--debug] = debugging messages\n";
print " [--seconds=XXX] = optional, minimum number of seconds worth of records to keep(default 3600)\n"; print " [--seconds=XXX] = optional, minimum number of seconds worth of records to keep(default 3600)\n";
print " [--session-flush] = flush the vicidial_sessions_recent table\n";
print "\n"; print "\n";
exit; exit;
@@ -66,6 +70,11 @@ if (length($ARGV[0])>1)
$T=1; $TEST=1; $T=1; $TEST=1;
print "\n-----TESTING -----\n\n"; print "\n-----TESTING -----\n\n";
} }
if ($args =~ /--session-flush/i)
{
$session_flush=1;
print "\n----- SESSION FLUSH(vicidial_sessions_recent) ----- $session_flush \n\n";
}
if ($args =~ /--seconds=/i) if ($args =~ /--seconds=/i)
{ {
@data_in = split(/--seconds=/,$args); @data_in = split(/--seconds=/,$args);
@@ -428,6 +437,27 @@ while ($sthArowsSERVERS > $aas)
} }
$sthA->finish(); $sthA->finish();
if ($session_flush > 0)
{
$stmtA = "DELETE from vicidial_sessions_recent where call_date < '$SQLdate_NEG_1hour';";
if($DB){print STDERR "\n|$stmtA|\n";}
if (!$T) { $affected_rows = $dbhA->do($stmtA);}
if (!$Q) {print " - vicidial_sessions_recent flush: $affected_rows rows\n";}
$stmtA = "OPTIMIZE table vicidial_sessions_recent;";
if($DB){print STDERR "\n|$stmtA|\n";}
if (!$T)
{
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
$sthArows=$sthA->rows;
@aryA = $sthA->fetchrow_array;
if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";}
$sthA->finish();
}
if (!$Q) {print " - OPTIMIZE vicidial_sessions_recent \n";}
}
$dbhA->disconnect(); $dbhA->disconnect();
+37 -1
View File
@@ -1,4 +1,4 @@
AGENT API DOCUMENT Started: 2008-07-03 Updated: 2018-09-08 AGENT API DOCUMENT Started: 2008-07-03 Updated: 2019-02-22
This document describes the functions of an API(Application Programming Interface) This document describes the functions of an API(Application Programming Interface)
for the VICIDIAL Agent screen. This functionality will be rather limited at first for the VICIDIAL Agent screen. This functionality will be rather limited at first
@@ -36,6 +36,7 @@ audio_playback - basic play/pause/resume/stop/restart audio in agent session
switch_lead - for inbound calls, switches lead_id of live inbound call on agent screen switch_lead - for inbound calls, switches lead_id of live inbound call on agent screen
calls_in_queue_count - display a count of the calls waiting in queue for the specific agent calls_in_queue_count - display a count of the calls waiting in queue for the specific agent
force_fronter_leave_3way - will send a command to fronter agent to leave-3way call that executing agent is on force_fronter_leave_3way - will send a command to fronter agent to leave-3way call that executing agent is on
force_fronter_audio_stop - will send a command to fronter agent session to stop any audio_playback playing on it
New scripts: New scripts:
@@ -944,6 +945,41 @@ SUCCESS: force_fronter_leave_3way command sent over CCC - test_ccc
--------------------------------------------------------------------------------
force_fronter_audio_stop -
DESCRIPTION:
will send a command to fronter agent session to stop any audio_playback playing on it. Will not execute command for the named 'agent_user', but will look for other user session currently on a call with the same lead_id that the named agent_user is on the phone with.
VALUES:
value -
REQUIRED, choices are below:
LOCAL_ONLY - looks for fronter only on local cluster
LOCAL_AND_CCC - looks on local cluster and remote CCC to send command to (will always check local first)
CCC_REMOTE - use this when the closer is not on this cluster
lead_id -
OPTIONAL, only to be used with CCC_REMOTE value commands
EXAMPLE URLS:
http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=force_fronter_audio_stop&value=LOCAL_ONLY
http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=force_fronter_audio_stop&value=LOCAL_AND_CCC
RESPONSES:
ERROR: force_fronter_audio_stop not valid - LOCAL_AND_CCC|6666
ERROR: auth USER DOES NOT HAVE PERMISSION TO USE THIS FUNCTION - LOCAL_AND_CCC|6666|force_fronter_audio_stop
ERROR: no user found - 6666
ERROR: agent_user is not logged in - 6666
ERROR: agent_user is not on a phone call - 6666
ERROR: no fronter session found - |6666|1234
ERROR: no fronter found - 6666
ERROR: force_fronter_audio_stop error - no audio playing in other agent session - 8600051|10.0.0.5||6666|1234
SUCCESS: force_fronter_audio_stop function SENT - LOCAL_AND_CCC||6667|1234
SUCCESS: force_fronter_audio_stop command sent over CCC - test_ccc
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Other information: Other information:
@@ -1,4 +1,4 @@
CROSS-CLUSTER COMMUNICATION Started: 2011-05-27 Updated: 2018-09-08 CROSS-CLUSTER COMMUNICATION Started: 2011-05-27 Updated: 2019-02-22
-------------------------------- --------------------------------
@@ -42,7 +42,7 @@ NOTES:
# If lead is not found on external system, call will go to the 'B' option in the call menu # If lead is not found on external system, call will go to the 'B' option in the call menu
# If container is not found, call will go to the 'C' option in the call menu # If container is not found, call will go to the 'C' option in the call menu
# If call_id is not defined, call will go to the 'D' option in the call menu # If call_id is not defined, call will go to the 'D' option in the call menu
# If you are planning to use the 'force_fronter_leave_3way' function across this CCC connection, make sure you have that API permission set for the API user above # If you are planning to use the 'force_fronter_leave_3way' or 'force_fronter_audio_stop' functions across this CCC connection, make sure you have that API permission set for the API user above
@@ -4008,6 +4008,18 @@ index (call_date),
index (lead_id) index (lead_id)
) ENGINE=MyISAM; ) ENGINE=MyISAM;
CREATE TABLE vicidial_sessions_recent (
lead_id INT(9) UNSIGNED,
server_ip VARCHAR(15) NOT NULL,
call_date DATETIME,
user VARCHAR(20),
campaign_id VARCHAR(20),
conf_exten VARCHAR(20),
call_type VARCHAR(1) default '',
index(lead_id),
index(call_date)
) ENGINE=MyISAM;
ALTER TABLE vicidial_email_list MODIFY message text character set utf8; ALTER TABLE vicidial_email_list MODIFY message text character set utf8;
@@ -4227,6 +4239,8 @@ CREATE TABLE vicidial_recent_ascb_calls_archive LIKE vicidial_recent_ascb_calls;
CREATE TABLE vicidial_ccc_log_archive LIKE vicidial_ccc_log; CREATE TABLE vicidial_ccc_log_archive LIKE vicidial_ccc_log;
CREATE UNIQUE INDEX ccc_unq_key on vicidial_ccc_log_archive(uniqueid, call_date, lead_id); CREATE UNIQUE INDEX ccc_unq_key on vicidial_ccc_log_archive(uniqueid, call_date, lead_id);
CREATE TABLE vicidial_sessions_recent_archive LIKE vicidial_sessions_recent;
GRANT RELOAD ON *.* TO cron@'%'; GRANT RELOAD ON *.* TO cron@'%';
GRANT RELOAD ON *.* TO cron@localhost; GRANT RELOAD ON *.* TO cron@localhost;
@@ -4306,4 +4320,4 @@ INSERT INTO vicidial_settings_containers(container_id,container_notes,container_
UPDATE system_settings set vdc_agent_api_active='1'; UPDATE system_settings set vdc_agent_api_active='1';
UPDATE system_settings SET db_schema_version='1562',db_schema_update_date=NOW(),reload_timestamp=NOW(); UPDATE system_settings SET db_schema_version='1563',db_schema_update_date=NOW(),reload_timestamp=NOW();
+16
View File
@@ -783,3 +783,19 @@ ALTER TABLE system_settings ADD manual_dial_validation ENUM('0','1','2','3','4')
ALTER TABLE vicidial_campaigns ADD manual_dial_validation ENUM('Y','N') default 'N'; ALTER TABLE vicidial_campaigns ADD manual_dial_validation ENUM('Y','N') default 'N';
UPDATE system_settings SET db_schema_version='1562',db_schema_update_date=NOW() where db_schema_version < 1562; UPDATE system_settings SET db_schema_version='1562',db_schema_update_date=NOW() where db_schema_version < 1562;
CREATE TABLE vicidial_sessions_recent (
lead_id INT(9) UNSIGNED,
server_ip VARCHAR(15) NOT NULL,
call_date DATETIME,
user VARCHAR(20),
campaign_id VARCHAR(20),
conf_exten VARCHAR(20),
call_type VARCHAR(1) default '',
index(lead_id),
index(call_date)
) ENGINE=MyISAM;
CREATE TABLE vicidial_sessions_recent_archive LIKE vicidial_sessions_recent;
UPDATE system_settings SET db_schema_version='1563',db_schema_update_date=NOW() where db_schema_version < 1563;
@@ -74,7 +74,7 @@ $VUselected_language = $SSdefault_language;
########################################### ###########################################
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'chat');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+275 -4
View File
@@ -1,7 +1,7 @@
<?php <?php
# api.php # api.php
# #
# Copyright (C) 2018 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # Copyright (C) 2019 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
# #
# This script is designed as an API(Application Programming Interface) to allow # This script is designed as an API(Application Programming Interface) to allow
# other programs to interact with the VICIDIAL Agent screen # other programs to interact with the VICIDIAL Agent screen
@@ -97,10 +97,11 @@
# 180323-2227 - Fix for dial_ingroup error message on external_dial function # 180323-2227 - Fix for dial_ingroup error message on external_dial function
# 180903-1606 - Added count for waiting emails to calls_in_queue_count function # 180903-1606 - Added count for waiting emails to calls_in_queue_count function
# 180908-1433 - Added force_fronter_leave_3way function # 180908-1433 - Added force_fronter_leave_3way function
# 190222-1152 - Added force_fronter_audio_stop function
# #
$version = '2.14-63'; $version = '2.14-64';
$build = '180908-1433'; $build = '190222-1152';
$startMS = microtime(); $startMS = microtime();
@@ -448,7 +449,7 @@ else
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,1); $auth_message = user_authorization($user,$pass,'',0,0,0,1,'api');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
@@ -4388,6 +4389,276 @@ if ($function == 'force_fronter_leave_3way')
################################################################################
### BEGIN - force_fronter_audio_stop - will send a command to fronter session to stop playing soundboard audio
################################################################################
if ($function == 'force_fronter_audio_stop')
{
if ( ( ($value!='LOCAL_ONLY') and ($value!='LOCAL_AND_CCC') and ($value!='CCC_REMOTE') ) or ( (strlen($agent_user)<1) and (strlen($alt_user)<2) ) )
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("force_fronter_audio_stop 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) or ($value == 'CCC_REMOTE') )
{
$Alead_id=0;
### grab the lead_id for this logged-in agent
$stmt="SELECT lead_id from vicidial_live_agents where user='$agent_user';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$vla_ct = mysqli_num_rows($rslt);
if ($vla_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$Alead_id = $row[0];
}
if ( ($Alead_id > 0) or ( (strlen($lead_id) > 0) and ($value == 'CCC_REMOTE') ) )
{
$QUERYlead_id = $Alead_id;
if ($value == 'CCC_REMOTE')
{$QUERYlead_id = $lead_id;}
$other_agent='';
$fronter_found=0;
$VLAconf_exten='';
$VLAserver_ip='';
### user ID of fronter agent
$stmt="SELECT user from vicidial_live_agents where user!='$agent_user' and lead_id='$QUERYlead_id' order by last_call_time limit 1;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$vla_ct = mysqli_num_rows($rslt);
if ($vla_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$other_agent = $row[0];
$fronter_found++;
}
else
{
### search recent sessions on this cluster for this lead ID, if the fronter has left the 3way call
$stmt="SELECT user,conf_exten,server_ip from vicidial_sessions_recent where user!='$agent_user' and lead_id='$QUERYlead_id' and call_date > DATE_SUB(NOW(), INTERVAL 5 MINUTE) order by call_date desc limit 1;";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$vla_ct = mysqli_num_rows($rslt);
if ($vla_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$other_agent = $row[0];
$VLAconf_exten = $row[1];
$VLAserver_ip = $row[2];
$fronter_found++;
}
}
if ($fronter_found > 0)
{
if ( (strlen($VLAserver_ip) < 5) and (strlen($VLAconf_exten) < 1) )
{
$stmt = "select conf_exten,server_ip from vicidial_live_agents where user='$other_agent';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$rl_ct = mysqli_num_rows($rslt);
if ($rl_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$VLAconf_exten = $row[0];
$VLAserver_ip = $row[1];
}
}
if ( (strlen($VLAconf_exten) > 5) and (strlen($VLAserver_ip) > 5) )
{
$valueCIDfull = "\"STOP\" <473782158521111>";
$stmt = "SELECT channel from live_channels where extension='$VLAconf_exten' and server_ip='$VLAserver_ip' and channel LIKE \"IAX2/ASTplay%\";";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$rl_ct = mysqli_num_rows($rslt);
if ($rl_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$VLAchannel = $row[0];
$VLAchannel_inc = $VLAchannel;
$VLAchannel_inc = preg_replace("/IAX2\/ASTplay-/",'',$VLAchannel_inc);
$stmtX="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$VLAserver_ip','','Hangup','PLAYHU$ENTRYdate','Channel: $VLAchannel','','','','','','','','','');";
}
else
{
$result = _QXZ("ERROR");
$data = "$VLAconf_exten|$VLAserver_ip|$stage";
$result_reason = _QXZ("force_fronter_audio_stop error - no audio playing in other agent session");
echo "$result: $result_reason - $data|$agent_user|$other_agent\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
if ($format=='debug') {echo "\n<!-- $stmtX -->";}
$rslt=mysql_to_mysqli($stmtX, $link);
$result = _QXZ("SUCCESS");
$data = "$value|$stage";
$result_reason = _QXZ("force_fronter_audio_stop function sent");
echo "$result: $result_reason - $data|$agent_user|$other_agent\n";
$data = "$epoch";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
else
{
$result = _QXZ("ERROR");
$data = "$stage";
$result_reason = _QXZ("force_fronter_audio_stop error - no fronter session found");
echo "$result: $result_reason - $data|$agent_user|$other_agent\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
if ($value == 'LOCAL_AND_CCC')
{
# check for CCC-fronted call on this server
$stmt="SELECT remote_lead_id,container_id from vicidial_ccc_log where lead_id='$QUERYlead_id';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$vcl_ct = mysqli_num_rows($rslt);
if ($vcl_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$remote_lead_id = $row[0];
$container_id = $row[1];
$stmt="SELECT container_entry from vicidial_settings_containers where container_id='$container_id';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$vsc_ct = mysqli_num_rows($rslt);
if ($vsc_ct > 0)
{
$row=mysqli_fetch_row($rslt);
$container_entry = $row[0];
$container_entry = preg_replace("/ccc_lead_info/","force_fronter_audio_stop&value=CCC_REMOTE&lead_id=$remote_lead_id&agent_user=CCC_REMOTE",$container_entry);
$container_entry = preg_replace("/vicidial\/non_agent_|admin\/non_agent_/","agc/",$container_entry);
$SQL_log = "$container_entry";
$SQL_log = preg_replace('/;/','',$SQL_log);
$SQL_log = addslashes($SQL_log);
$stmt = "INSERT INTO vicidial_url_log SET uniqueid='$uniqueid',url_date='$NOW_TIME',url_type='start',url='$SQL_log',url_response='';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$affected_rows = mysqli_affected_rows($link);
$url_id = mysqli_insert_id($link);
$URLstart_sec = date("U");
### grab the call_start_url ###
if ($DB > 0) {echo "$container_entry<BR>\n";}
$SCUfile = file("$container_entry");
if ( !($SCUfile) )
{
$error_array = error_get_last();
$error_type = $error_array["type"];
$error_message = $error_array["message"];
$error_line = $error_array["line"];
$error_file = $error_array["file"];
}
if ($DB > 0) {echo "$SCUfile[0]<BR>\n";}
### update url log entry
$URLend_sec = date("U");
$URLdiff_sec = ($URLend_sec - $URLstart_sec);
if ($SCUfile)
{
$SCUfile_contents = implode("", $SCUfile);
$SCUfile_contents = preg_replace('/;/','',$SCUfile_contents);
$SCUfile_contents = addslashes($SCUfile_contents);
$fronter_found++;
$result = _QXZ("SUCCESS");
$result_reason = _QXZ("force_fronter_audio_stop command sent over CCC")." - $container_id";
echo "$result: $result_reason\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
else
{
$SCUfile_contents = "PHP ERROR: Type=$error_type - Message=$error_message - Line=$error_line - File=$error_file";
}
$stmt = "UPDATE vicidial_url_log SET response_sec='$URLdiff_sec',url_response='$SCUfile_contents' where url_log_id='$url_id';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link);
$affected_rows = mysqli_affected_rows($link);
}
}
}
}
if ($fronter_found < 1)
{
$result = _QXZ("ERROR");
$result_reason = _QXZ("no fronter found");
echo "$result: $result_reason - $agent_user\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 on a phone call");
echo "$result: $result_reason - $agent_user\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 - force_fronter_audio_stop
################################################################################
################################################################################ ################################################################################
### BEGIN - optional "close window" link ### BEGIN - optional "close window" link
################################################################################ ################################################################################
+1 -1
View File
@@ -147,7 +147,7 @@ $VUselected_language = $SSdefault_language;
########################################### ###########################################
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'chat_db_query');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -212,7 +212,7 @@ $random = (rand(1000000, 9999999) + 10000000);
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,$bcrypt,0,0); $auth_message = user_authorization($user,$pass,'',0,$bcrypt,0,0,'conf_exten_check');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -125,7 +125,7 @@ if (preg_match("/$TD$dispo$TD/",$sale_status))
} }
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'deactivate_lead');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -153,7 +153,7 @@ if ($match_found > 0)
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'dispo_add_FPG');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
@@ -165,7 +165,7 @@ if ($match_found > 0)
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'dispo_change_status');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -401,7 +401,7 @@ if ($match_found > 0)
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'dispo_move_list');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -256,7 +256,7 @@ if ($match_found > 0)
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'dispo_send_email');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+2 -2
View File
@@ -52,7 +52,7 @@
# $mysql_queries = 26 # $mysql_queries = 26
##### BEGIN validate user login credentials, check for failed lock out ##### ##### BEGIN validate user login credentials, check for failed lock out #####
function user_authorization($user,$pass,$user_option,$user_update,$bcrypt,$return_hash,$api_call) function user_authorization($user,$pass,$user_option,$user_update,$bcrypt,$return_hash,$api_call,$source)
{ {
require("dbconnect_mysqli.php"); require("dbconnect_mysqli.php");
@@ -115,7 +115,7 @@ function user_authorization($user,$pass,$user_option,$user_update,$bcrypt,$retur
if ($auth < 1) if ($auth < 1)
{ {
$auth_key='BAD'."|$stmt"; $auth_key='BAD'."|$bcrypt|$source|$stmt";
$stmt="SELECT failed_login_count,UNIX_TIMESTAMP(last_login_date) from vicidial_users where user='$user';"; $stmt="SELECT failed_login_count,UNIX_TIMESTAMP(last_login_date) from vicidial_users where user='$user';";
if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);} if ($non_latin > 0) {$rslt=mysql_to_mysqli("SET NAMES 'UTF8'", $link);}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
+14 -5
View File
@@ -1,7 +1,7 @@
<?php <?php
# manager_send.php version 2.14 # manager_send.php version 2.14
# #
# Copyright (C) 2018 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 # Copyright (C) 2019 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 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 # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table
@@ -140,13 +140,14 @@
# 170528-0850 - Fix for rare inbound logging issue #1017, Added additional variable filtering # 170528-0850 - Fix for rare inbound logging issue #1017, Added additional variable filtering
# 170921-2009 - Fix for CALLID in beginning of recording filename # 170921-2009 - Fix for CALLID in beginning of recording filename
# 180522-1920 - Added more agent debug output for recordings # 180522-1920 - Added more agent debug output for recordings
# 190222-1318 - Added recent session per-call logging
# #
$version = '2.14-87'; $version = '2.14-88';
$build = '180522-1920'; $build = '190222-1318';
$php_script = 'manager_send.php'; $php_script = 'manager_send.php';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=142; $mysql_log_count=143;
$one_mysql_log=0; $one_mysql_log=0;
$SSagent_debug_logging=0; $SSagent_debug_logging=0;
$startMS = microtime(); $startMS = microtime();
@@ -362,7 +363,7 @@ if (strlen($meetme_enter_leave3way_filename) > 0)
{$threeway_context = 'meetme-enter-leave3way';} {$threeway_context = 'meetme-enter-leave3way';}
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,1,0,0); $auth_message = user_authorization($user,$pass,'',0,1,0,0,'manager_send');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
@@ -576,6 +577,14 @@ if ($ACTION=="Originate")
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02119',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02119',$user,$server_ip,$session_name,$one_mysql_log);}
if ( (strlen($lead_id) > 0) and (strlen($session_id) > 0) and (preg_match("/^DC/",$queryCID)) )
{
$stmt="INSERT INTO vicidial_sessions_recent SET lead_id='$lead_id',server_ip='$server_ip',call_date=NOW(),user='$user',campaign_id='$campaign',conf_exten='$session_id',call_type='X';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02143',$user,$server_ip,$session_name,$one_mysql_log);}
}
if ($agent_dialed_number > 0) if ($agent_dialed_number > 0)
{ {
if (strlen($lead_id)<1) {$lead_id='0';} if (strlen($lead_id)<1) {$lead_id='0';}
+1 -1
View File
@@ -364,7 +364,7 @@ else
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($VD_login,$VD_pass,'',1,0,0,0); $auth_message = user_authorization($VD_login,$VD_pass,'',1,0,0,0,'phone_only');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -125,7 +125,7 @@ if ($SSallow_chats < 1)
} }
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'vdc_chat_display');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+36 -7
View File
@@ -467,13 +467,14 @@
# 181005-1744 - Added SYSTEM option for manual_dial_filter # 181005-1744 - Added SYSTEM option for manual_dial_filter
# 190106-1353 - Added manual_dial_validation feature # 190106-1353 - Added manual_dial_validation feature
# 190216-0805 - Fix for user-group, in-group and campaign allowed/permissions matching issues # 190216-0805 - Fix for user-group, in-group and campaign allowed/permissions matching issues
# 190220-1005 - Added vicidial_sessions_recent inserts when lead is set to INCALL status
# #
$version = '2.14-361'; $version = '2.14-362';
$build = '190216-0805'; $build = '190220-1005';
$php_script = 'vdc_db_query.php'; $php_script = 'vdc_db_query.php';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=787; $mysql_log_count=792;
$one_mysql_log=0; $one_mysql_log=0;
$DB=0; $DB=0;
$VD_login=0; $VD_login=0;
@@ -1138,7 +1139,7 @@ if ($ACTION == 'LogiNCamPaigns')
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,1,0,0); $auth_message = user_authorization($user,$pass,'',0,1,0,0,'vdc_db_query');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
@@ -4064,7 +4065,6 @@ if ($ACTION == 'manDiaLnextCaLL')
$CBcallback_time = trim("$row[1]"); $CBcallback_time = trim("$row[1]");
$CBuser = trim("$row[2]"); $CBuser = trim("$row[2]");
$CBcomments = trim("$row[3]"); $CBcomments = trim("$row[3]");
} }
} }
@@ -4122,6 +4122,11 @@ if ($ACTION == 'manDiaLnextCaLL')
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00439',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00439',$user,$server_ip,$session_name,$one_mysql_log);}
$stmt="INSERT INTO vicidial_sessions_recent SET lead_id='$lead_id',server_ip='$server_ip',call_date=NOW(),user='$user',campaign_id='$campaign',conf_exten='$conf_exten',call_type='M';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00788',$user,$server_ip,$session_name,$one_mysql_log);}
$campaign_cid_override=''; $campaign_cid_override='';
$LISTweb_form_address=''; $LISTweb_form_address='';
$LISTweb_form_address_two=''; $LISTweb_form_address_two='';
@@ -8155,6 +8160,7 @@ if ($ACTION == 'VDADcheckINCOMING')
$alt_phone_count=''; $alt_phone_count='';
$INclosecallid=''; $INclosecallid='';
$INxfercallid=''; $INxfercallid='';
$rct = 'Q';
if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) if ( (strlen($campaign)<1) || (strlen($server_ip)<1) )
{ {
@@ -8439,6 +8445,8 @@ if ($ACTION == 'VDADcheckINCOMING')
else else
{$dialed_label = 'ALT';} {$dialed_label = 'ALT';}
} }
if ($call_type == 'IN') {$rct = 'Y';}
else {$rct = 'V';}
} }
else else
{ {
@@ -8447,11 +8455,13 @@ if ($ACTION == 'VDADcheckINCOMING')
if (preg_match('/^M|^V/',$callerid)) if (preg_match('/^M|^V/',$callerid))
{ {
$call_type = 'OUT'; $call_type = 'OUT';
$rct = 'V';
$VDADchannel_group = $campaign; $VDADchannel_group = $campaign;
} }
else else
{ {
$call_type = 'IN'; $call_type = 'IN';
$rct = 'Y';
$stmt = "SELECT campaign_id,closecallid,xfercallid from vicidial_closer_log where lead_id = '$lead_id' order by closecallid desc limit 1;"; $stmt = "SELECT campaign_id,closecallid,xfercallid from vicidial_closer_log where lead_id = '$lead_id' order by closecallid desc limit 1;";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
@@ -8473,6 +8483,11 @@ if ($ACTION == 'VDADcheckINCOMING')
} }
} }
$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='$rct';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00789',$user,$server_ip,$session_name,$one_mysql_log);}
if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') )
{ {
$stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';";
@@ -9792,6 +9807,11 @@ if ($ACTION == 'VDADcheckINCOMINGother')
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00493',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00493',$user,$server_ip,$session_name,$one_mysql_log);}
$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='E';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00790',$user,$server_ip,$session_name,$one_mysql_log);}
### IF incoming result => answer email, not chat... ### IF incoming result => answer email, not chat...
@@ -9958,7 +9978,11 @@ if ($ACTION == 'VDADcheckINCOMINGother')
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00645',$user,$server_ip,$session_name,$one_mysql_log);} if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00645',$user,$server_ip,$session_name,$one_mysql_log);}
$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='C';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00791',$user,$server_ip,$session_name,$one_mysql_log);}
} }
if ($email_ct>0 || $chat_ct>0) { if ($email_ct>0 || $chat_ct>0) {
@@ -11090,6 +11114,11 @@ if ($ACTION == 'LeaDSearcHSelecTUpdatE')
fclose($fp); 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';";
if ($format=='debug') {echo "\n<!-- $stmt -->";}
$rslt=mysql_to_mysqli($stmt, $link);
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00792',$user,$server_ip,$session_name,$one_mysql_log);}
### update the recording_log lead_id to the new lead_id ### update the recording_log lead_id to the new lead_id
$stmt = "UPDATE recording_log set lead_id='$lead_id' where lead_id='$stage' and user='$user' and vicidial_id='$INclosecallid';"; $stmt = "UPDATE recording_log set lead_id='$lead_id' where lead_id='$stage' and user='$user' and vicidial_id='$INclosecallid';";
if ($DB) {echo "$stmt\n";} if ($DB) {echo "$stmt\n";}
@@ -14883,7 +14912,7 @@ if ($ACTION == 'PauseCodeMgrApr')
} }
else else
{ {
$auth_message = user_authorization($MgrApr_user,$MgrApr_pass,'',0,0,0,0); $auth_message = user_authorization($MgrApr_user,$MgrApr_pass,'',0,0,0,0,'vdc_db_query_mgr');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{ {
$auth_pca=0; $auth_pca=0;
+1 -1
View File
@@ -164,7 +164,7 @@ if (!isset($ACTION)) {$ACTION="refresh";}
if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($query_date)) {$query_date = $NOW_DATE;}
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'vdc_email_display');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -299,7 +299,7 @@ if ( ($submit_button=='YES') or ($admin_submit=='YES') )
{$auth_api_flag = 1;} {$auth_api_flag = 1;}
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,$bcrypt,0,$auth_api_flag); $auth_message = user_authorization($user,$pass,'',0,$bcrypt,0,$auth_api_flag,'vdc_form_display');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -348,7 +348,7 @@ if (!isset($ACTION)) {$ACTION="refresh";}
if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($query_date)) {$query_date = $NOW_DATE;}
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,1,0,0); $auth_message = user_authorization($user,$pass,'',0,1,0,0,'vdc_script_display');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+1 -1
View File
@@ -328,7 +328,7 @@ if (!isset($ACTION)) {$ACTION="refresh";}
if (!isset($query_date)) {$query_date = $NOW_DATE;} if (!isset($query_date)) {$query_date = $NOW_DATE;}
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,0,0,0); $auth_message = user_authorization($user,$pass,'',0,0,0,0,'script_notes');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
@@ -133,7 +133,7 @@ if (!isset($query_date)) {$query_date = $NOW_DATE;}
if ( (strlen($soundboard_id) < 1) and (strlen($avatar_id) > 0) ) {$soundboard_id=$avatar_id;} if ( (strlen($soundboard_id) < 1) and (strlen($avatar_id) > 0) ) {$soundboard_id=$avatar_id;}
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,$bcrypt,0,0); $auth_message = user_authorization($user,$pass,'',0,$bcrypt,0,0,'vdc_soundboard_display');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
+7 -6
View File
@@ -607,10 +607,11 @@
# 181003-1737 - Added external_web_socket_url option # 181003-1737 - Added external_web_socket_url option
# 181005-1909 - Added SYSTEM manual_dial_filter option # 181005-1909 - Added SYSTEM manual_dial_filter option
# 190108-0833 - Added manual_dial_validation option, updated dates for 2019 # 190108-0833 - Added manual_dial_validation option, updated dates for 2019
# 190222-1316 - Added recent session per-call logging
# #
$version = '2.14-576c'; $version = '2.14-577c';
$build = '190108-0833'; $build = '190222-1316';
$mel=1; # Mysql Error Log enabled = 1 $mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=87; $mysql_log_count=87;
$one_mysql_log=0; $one_mysql_log=0;
@@ -1014,7 +1015,7 @@ if ($campaign_login_list > 0)
$MGR_pass = preg_replace("/\'|\"|\\\\|;/","",$MGR_pass); $MGR_pass = preg_replace("/\'|\"|\\\\|;/","",$MGR_pass);
$MGR_auth=0; $MGR_auth=0;
$auth_message = user_authorization($MGR_login,$MGR_pass,'MGR',0,0,0,0); $auth_message = user_authorization($MGR_login,$MGR_pass,'MGR',0,0,0,0,'vicidial_mgr_ovrd');
if (preg_match("/^GOOD/",$auth_message)) if (preg_match("/^GOOD/",$auth_message))
{$MGR_auth=1;} {$MGR_auth=1;}
@@ -1384,7 +1385,7 @@ else
else else
{ {
$auth=0; $auth=0;
$auth_message = user_authorization($VD_login,$VD_pass,'',1,0,1,0); $auth_message = user_authorization($VD_login,$VD_pass,'',1,0,1,0,'vicidial');
if (preg_match("/^GOOD/",$auth_message)) if (preg_match("/^GOOD/",$auth_message))
{ {
$auth=1; $auth=1;
@@ -5475,7 +5476,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
{var call_cid = campaign_cid;} {var call_cid = campaign_cid;}
} }
VMCoriginate_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=Originate&format=text&channel=" + originatevalue + "&queryCID=" + queryCID + "&exten=" + call_prefix + "" + dialnum + "&ext_context=" + ext_context + "&ext_priority=1&outbound_cid=" + call_cid + "&usegroupalias="+ usegroupalias + "&preset_name=" + taskpresetname + "&campaign=" + campaign + "&account=" + active_group_alias + "&agent_dialed_number=" + agent_dialed_number + "&agent_dialed_type=" + agent_dialed_type + "&lead_id=" + document.vicidial_form.lead_id.value + "&stage=" + CheckDEADcallON + "&" + alertquery + "&cid_lock=" + cid_lock + "&call_variables=" + taskvariables; VMCoriginate_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&ACTION=Originate&format=text&channel=" + originatevalue + "&queryCID=" + queryCID + "&exten=" + call_prefix + "" + dialnum + "&ext_context=" + ext_context + "&ext_priority=1&outbound_cid=" + call_cid + "&usegroupalias="+ usegroupalias + "&preset_name=" + taskpresetname + "&campaign=" + campaign + "&account=" + active_group_alias + "&agent_dialed_number=" + agent_dialed_number + "&agent_dialed_type=" + agent_dialed_type + "&lead_id=" + document.vicidial_form.lead_id.value + "&stage=" + CheckDEADcallON + "&" + alertquery + "&cid_lock=" + cid_lock + "&session_id=" + session_id + "&call_variables=" + taskvariables;
xmlhttp.open('POST', 'manager_send.php'); xmlhttp.open('POST', 'manager_send.php');
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttp.send(VMCoriginate_query); xmlhttp.send(VMCoriginate_query);
@@ -7787,7 +7788,7 @@ function set_length(SLnumber,SLlength_goal,SLdirection)
} }
if (xmlhttprequestselectupdate) if (xmlhttprequestselectupdate)
{ {
checkVDAI_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&campaign=" + campaign + "&ACTION=LeaDSearcHSelecTUpdatE" + "&lead_id=" + LSSlead_id + "&stage=" + document.vicidial_form.lead_id.value + "&agent_log_id=" + agent_log_id + "&phone_number=" + document.vicidial_form.phone_number.value + "&user_group=" + VU_user_group; checkVDAI_query = "server_ip=" + server_ip + "&session_name=" + session_name + "&user=" + user + "&pass=" + pass + "&campaign=" + campaign + "&ACTION=LeaDSearcHSelecTUpdatE" + "&lead_id=" + LSSlead_id + "&stage=" + document.vicidial_form.lead_id.value + "&agent_log_id=" + agent_log_id + "&phone_number=" + document.vicidial_form.phone_number.value + "&user_group=" + VU_user_group + "&conf_exten=" + session_id;
xmlhttprequestselectupdate.open('POST', 'vdc_db_query.php'); xmlhttprequestselectupdate.open('POST', 'vdc_db_query.php');
xmlhttprequestselectupdate.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); xmlhttprequestselectupdate.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
xmlhttprequestselectupdate.send(checkVDAI_query); xmlhttprequestselectupdate.send(checkVDAI_query);
+1 -1
View File
@@ -107,7 +107,7 @@ if ($non_latin < 1)
} }
$auth=0; $auth=0;
$auth_message = user_authorization($user,$pass,'',0,1,0,0); $auth_message = user_authorization($user,$pass,'',0,1,0,0,'voicemail_check');
if ($auth_message == 'GOOD') if ($auth_message == 'GOOD')
{$auth=1;} {$auth=1;}
if (strlen($SSagent_debug_logging) > 1) if (strlen($SSagent_debug_logging) > 1)
+4 -3
View File
@@ -126,7 +126,7 @@ $UGreports = 'ALL REPORTS, NONE, Real-Time Main Report, Real-Time Campaign Summa
$Vtables = 'NONE,log_noanswer,did_agent_log,contact_information'; $Vtables = 'NONE,log_noanswer,did_agent_log,contact_information';
$APIfunctions = 'ALL_FUNCTIONS add_group_alias add_lead add_list add_phone add_phone_alias add_user agent_ingroup_info agent_stats_export agent_status audio_playback blind_monitor call_agent callid_info change_ingroups check_phone_number did_log_export external_add_lead external_dial external_hangup external_pause external_status in_group_status logout moh_list park_call pause_code preview_dial_action ra_call_control recording recording_lookup send_dtmf server_refresh set_timer_action sounds_list st_get_agent_active_lead st_login_log transfer_conference update_fields update_lead update_list update_log_entry update_phone update_phone_alias update_user user_group_status vm_list webphone_url webserver logged_in_agents update_campaign update_did lead_field_info phone_number_log switch_lead ccc_lead_info lead_status_search call_status_stats calls_in_queue_count force_fronter_leave_3way'; $APIfunctions = 'ALL_FUNCTIONS add_group_alias add_lead add_list add_phone add_phone_alias add_user agent_ingroup_info agent_stats_export agent_status audio_playback blind_monitor call_agent callid_info change_ingroups check_phone_number did_log_export external_add_lead external_dial external_hangup external_pause external_status in_group_status logout moh_list park_call pause_code preview_dial_action ra_call_control recording recording_lookup send_dtmf server_refresh set_timer_action sounds_list st_get_agent_active_lead st_login_log transfer_conference update_fields update_lead update_list update_log_entry update_phone update_phone_alias update_user user_group_status vm_list webphone_url webserver logged_in_agents update_campaign update_did lead_field_info phone_number_log switch_lead ccc_lead_info lead_status_search call_status_stats calls_in_queue_count force_fronter_leave_3way force_fronter_audio_stop';
### BEGIN housecleaning of old static report files, if not done before ### ### BEGIN housecleaning of old static report files, if not done before ###
@@ -4468,12 +4468,13 @@ else
# 190108-0806 - Added manual_dial_validation system and campaign options, update date for 2019 # 190108-0806 - Added manual_dial_validation system and campaign options, update date for 2019
# 190121-2019 - Added RA_AGENT_PHONE on-hook agent option # 190121-2019 - Added RA_AGENT_PHONE on-hook agent option
# 190207-2301 - Fix for user-group, in-group and campaign allowed/permissions matching issues # 190207-2301 - Fix for user-group, in-group and campaign allowed/permissions matching issues
# 190221-1831 - Added force_fronter_audio_stop API function
# #
# make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time # make sure you have added a user to the vicidial_users MySQL table with at least user_level 9 to access this page the first time
$admin_version = '2.14-698a'; $admin_version = '2.14-699a';
$build = '190207-2301'; $build = '190221-1831';
$STARTtime = date("U"); $STARTtime = date("U");
$SQLdate = date("Y-m-d H:i:s"); $SQLdate = date("Y-m-d H:i:s");