Added include_ip option for the agent_status Non-Agent API function

git-svn-id: svn://192.168.202.10@3654 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2022-11-09 13:38:20 +00:00
parent 6a76595f1a
commit e989d9638b
3 changed files with 43 additions and 12 deletions
@@ -2989,7 +2989,7 @@ if (!$T)
} }
$sthA->finish(); $sthA->finish();
if (!$Q) {print "\nProcessing vicidial_agent table... ($vicidial_agent_log_count|$vicidial_agent_log_archive_count)\n";} if (!$Q) {print "\nProcessing vicidial_agent_log table... ($vicidial_agent_log_count|$vicidial_agent_log_archive_count)\n";}
$stmtA = "INSERT IGNORE INTO vicidial_agent_log_archive SELECT * from vicidial_agent_log;"; $stmtA = "INSERT IGNORE INTO vicidial_agent_log_archive SELECT * from vicidial_agent_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
@@ -3041,7 +3041,7 @@ if (!$T)
} }
$sthA->finish(); $sthA->finish();
if (!$Q) {print "\nProcessing vicidial_agent table... ($vicidial_agent_visibility_log_count|$vicidial_agent_visibility_log_archive_count)\n";} if (!$Q) {print "\nProcessing vicidial_agent_visibility_log table... ($vicidial_agent_visibility_log_count|$vicidial_agent_visibility_log_archive_count)\n";}
$stmtA = "INSERT IGNORE INTO vicidial_agent_visibility_log_archive SELECT * from vicidial_agent_visibility_log;"; $stmtA = "INSERT IGNORE INTO vicidial_agent_visibility_log_archive SELECT * from vicidial_agent_visibility_log;";
$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr;
$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; $sthA->execute or die "executing: $stmtA ", $dbhA->errstr;
+8 -6
View File
@@ -1,4 +1,4 @@
NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2022-09-20 NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2022-11-09
This document describes the functions of an API(Application Programming This document describes the functions of an API(Application Programming
Interface) for all functions NOT directly relating to the VICIDIAL Agent screen. Interface) for all functions NOT directly relating to the VICIDIAL Agent screen.
@@ -204,6 +204,7 @@ Changes:
220310-0825 - Added DELETE action to the 'update_presets' function 220310-0825 - Added DELETE action to the 'update_presets' function
220902-0823 - Added dial_status_add/dial_status_remove options to update_campaign function 220902-0823 - Added dial_status_add/dial_status_remove options to update_campaign function
220920-0814 - Added more "XDAY" options to add_lead duplicate checks 220920-0814 - Added more "XDAY" options to add_lead duplicate checks
221108-1849 - Added include_ip option for agent_status function
API Functions use the 'function' variable API Functions use the 'function' variable
@@ -676,9 +677,10 @@ agent_user - 2-20 characters, use only for one agent status
SETTINGS FIELDS- SETTINGS FIELDS-
stage - the format of the exported data: csv, tab, pipe(default) stage - the format of the exported data: csv, tab, pipe(default)
header - include a header(YES) or not(NO). This is optional, default is not to include a header header - include a header(YES) or not(NO). This is optional, default is not to include a header
include_ip - include computer_ip field(YES) or not(NO), the last ip address that the agent used to log in to the agent screen
Example URL strings for API calls: Example URL strings for API calls:
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=agent_status&agent_user=1234&stage=csv&header=YES http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=agent_status&agent_user=1234&stage=csv&header=YES&include_ip=YES
Example responses: Example responses:
ERROR: agent_status USER DOES NOT HAVE PERMISSION TO GET AGENT INFO - 6666|0 ERROR: agent_status USER DOES NOT HAVE PERMISSION TO GET AGENT INFO - 6666|0
@@ -687,10 +689,10 @@ ERROR: agent_status AGENT NOT FOUND - 6666||
ERROR: agent_status AGENT NOT LOGGED IN - 6666|| ERROR: agent_status AGENT NOT LOGGED IN - 6666||
A SUCCESS response will not show "SUCCESS", but instead will just print the results in the following format: A SUCCESS response will not show "SUCCESS", but instead will just print the results in the following format:
status,call_id,lead_id,campaign_id,calls_today,full_name,user_group,user_level,pause_code,real_time_sub_status,phone_number,vendor_lead_code,session_id status,call_id,lead_id,campaign_id,calls_today,full_name,user_group,user_level,pause_code,real_time_sub_status,phone_number,vendor_lead_code,session_id,computer_ip
INCALL,M4050908070000012345,12345,TESTCAMP,1,Test Agent,AGENTS,3,LOGIN,,7275551212,123456,8600051 INCALL,M4050908070000012345,12345,TESTCAMP,1,Test Agent,AGENTS,3,LOGIN,,7275551212,123456,8600051,192.168.1.205
INCALL|M4181606420000000104|104|TESTBLND|1|Admin|ADMIN|9|BRK2|DEAD|3125551212|123457|8600051 INCALL|M4181606420000000104|104|TESTBLND|1|Admin|ADMIN|9|BRK2|DEAD|3125551212|123457|8600051,192.168.1.206
PAUSED||105|TESTBLND|1|Admin|ADMIN|9||PREVIEW|9545551212|123458|8600052 PAUSED||105|TESTBLND|1|Admin|ADMIN|9||PREVIEW|9545551212|123458|8600052,192.168.1.202
NOTE: real_time_sub_status field can consist of: DEAD, DISPO, 3-WAY, PARK, RING, PREVIEW, DIAL or it can be empty NOTE: real_time_sub_status field can consist of: DEAD, DISPO, 3-WAY, PARK, RING, PREVIEW, DIAL or it can be empty
+33 -4
View File
@@ -197,10 +197,11 @@
# 220519-2206 - Small fix for 'update_lead' delete_lead feature # 220519-2206 - Small fix for 'update_lead' delete_lead feature
# 220902-0823 - Added dial_status_add/dial_status_remove options to update_campaign function # 220902-0823 - Added dial_status_add/dial_status_remove options to update_campaign function
# 220920-0814 - Added more "XDAY" options to add_lead duplicate checks # 220920-0814 - Added more "XDAY" options to add_lead duplicate checks
# 221108-1849 - Added include_ip option for agent_status function
# #
$version = '2.14-174'; $version = '2.14-175';
$build = '220920-0814'; $build = '221108-1849';
$php_script='non_agent_api.php'; $php_script='non_agent_api.php';
$api_url_log = 0; $api_url_log = 0;
@@ -706,6 +707,8 @@ if (isset($_GET["dial_status_add"])) {$dial_status_add=$_GET["dial_status_add"
elseif (isset($_POST["dial_status_add"])) {$dial_status_add=$_POST["dial_status_add"];} elseif (isset($_POST["dial_status_add"])) {$dial_status_add=$_POST["dial_status_add"];}
if (isset($_GET["dial_status_remove"])) {$dial_status_remove=$_GET["dial_status_remove"];} if (isset($_GET["dial_status_remove"])) {$dial_status_remove=$_GET["dial_status_remove"];}
elseif (isset($_POST["dial_status_remove"])) {$dial_status_remove=$_POST["dial_status_remove"];} elseif (isset($_POST["dial_status_remove"])) {$dial_status_remove=$_POST["dial_status_remove"];}
if (isset($_GET["include_ip"])) {$include_ip=$_GET["include_ip"];}
elseif (isset($_POST["include_ip"])) {$include_ip=$_POST["include_ip"];}
$DB=preg_replace('/[^0-9]/','',$DB); $DB=preg_replace('/[^0-9]/','',$DB);
@@ -859,6 +862,7 @@ $preset_hide_number = preg_replace('/[^0-9a-zA-Z]/','',$preset_hide_number);
$preset_number = preg_replace('/[^\*\#\.\_0-9a-zA-Z]/','',$preset_number); $preset_number = preg_replace('/[^\*\#\.\_0-9a-zA-Z]/','',$preset_number);
$preset_dtmf = preg_replace('/[^- \,\*\#0-9a-zA-Z]/','',$preset_dtmf); $preset_dtmf = preg_replace('/[^- \,\*\#0-9a-zA-Z]/','',$preset_dtmf);
$action = preg_replace('/[^0-9a-zA-Z]/','',$action); $action = preg_replace('/[^0-9a-zA-Z]/','',$action);
$include_ip = preg_replace('/[^0-9a-zA-Z]/','',$include_ip);
if ($non_latin < 1) if ($non_latin < 1)
{ {
@@ -11460,7 +11464,12 @@ if ($function == 'agent_status')
if (strlen($time_format) < 1) if (strlen($time_format) < 1)
{$time_format = 'HF';} {$time_format = 'HF';}
if ($header == 'YES') if ($header == 'YES')
{$output .= 'status' . $DL . 'callerid' . $DL . 'lead_id' . $DL . 'campaign_id' . $DL . 'calls_today' . $DL . 'full_name' . $DL . 'user_group' . $DL . 'user_level' . "\n";} {
$output .= 'status' . $DL . 'callerid' . $DL . 'lead_id' . $DL . 'campaign_id' . $DL . 'calls_today' . $DL . 'full_name' . $DL . 'user_group' . $DL . 'user_level' . $DL . 'pause_code' . $DL . 'real_time_sub_status' . $DL . 'phone_number' . $DL . 'vendor_lead_code' . $DL . 'session_id';
if ($include_ip == 'YES')
{$output .= $DL . 'computer_ip';}
$output .= "\n";
}
$stmt="SELECT full_name,user_group,user_level from vicidial_users $agent_search_SQL $LOGadmin_viewable_groupsSQL;"; $stmt="SELECT full_name,user_group,user_level from vicidial_users $agent_search_SQL $LOGadmin_viewable_groupsSQL;";
$rslt=mysql_to_mysqli($stmt, $link); $rslt=mysql_to_mysqli($stmt, $link);
@@ -11617,8 +11626,28 @@ if ($function == 'agent_status')
{$phone_number = $row[0];} {$phone_number = $row[0];}
} }
} }
$computer_ipOUTPUT='';
if ($include_ip == 'YES')
{
$computer_ip='';
$two_days_ago = date("Y-m-d H:i:s", mktime(date("H"),date("i"),date("s"),date("m"),date("d")-2,date("Y")));
$stmt="SELECT computer_ip from vicidial_user_log where user='$agent_user' and event='LOGIN' and event_date < \"$two_days_ago\" order by event_date desc limit 1;";
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {echo "$stmt\n";}
$ipinfo_ct = mysqli_num_rows($rslt);
if ($ipinfo_ct > 0)
{
$row=mysqli_fetch_row($rslt);
if (strlen($row[0])>3)
{
$computer_ip = $row[0];
$computer_ipOUTPUT = "$DL$computer_ip";
}
}
}
$output .= "$status$DL$callerid$DL$lead_id$DL$campaign_id$DL$calls_today$DL$full_name$DL$user_group$DL$user_level$DL$pause_code$DL$rtr_status$DL$phone_number$DL$vendor_lead_code$DL$conf_exten\n";
$output .= "$status$DL$callerid$DL$lead_id$DL$campaign_id$DL$calls_today$DL$full_name$DL$user_group$DL$user_level$DL$pause_code$DL$rtr_status$DL$phone_number$DL$vendor_lead_code$DL$conf_exten$computer_ipOUTPUT\n";
echo "$output"; echo "$output";