Added custom_fields_copy option to add_list Non-Agent API function

git-svn-id: svn://192.168.202.10@3120 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2019-07-03 14:13:35 +00:00
parent 617f159a42
commit ece5e126a1
4 changed files with 115 additions and 10 deletions
+6
View File
@@ -414,6 +414,12 @@ OTHER CHANGES:
each dialer's astguiclient.conf/extensions.conf/manager.conf files
Read SIP_EVENT_LOGGING.txt doc for more details
115. Added new Non-Agent API function 'update_cid_group_entry' which allows you
to add/update/delete/info CID Group entries and AC-CID entries
116. Added new Non-Agent API 'custom_fields_copy' option to the 'add_list'
function
+8 -1
View File
@@ -1,4 +1,4 @@
NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2019-06-28
NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2019-07-03
This document describes the functions of an API(Application Programming
Interface) for all functions NOT directly relating to the VICIDIAL Agent screen.
@@ -143,6 +143,7 @@ Changes:
181214-1606 - Added lead_callback_info function
190325-1055 - Added agent_campaigns function
190628-1504 - Added update_cid_group_entry function
190703-0858 - Added custom_fields_copy option to add_list function
API Functions use the 'function' variable
@@ -1401,13 +1402,16 @@ web_form_address_two - 6-100 characters
web_form_address_three - 6-100 characters
reset_time - 4-100 characters, must be in valid 4-digit groups of 24-hour time (i.e. 0900-1700-2359)
expiration_date - 10 characters, must be in valid date format YYYY-MM-DD (i.e. 2012-11-25)
custom_fields_copy - A valid list ID with custom fields to be copied to this new list, 2-14 digits
NOTES:
- for the web form addresses, you can URL encode them to include standard URL special characters
- to use the 'custom_fields_copy' option, the API user must have the "Custom Fields Modify" user option enabled
Example URL strings for API calls:
http://server/vicidial/non_agent_api.php?source=test&function=add_list&user=6666&pass=1234&list_id=1101&list_name=Test+API+list&campaign_id=TESTCAMP
http://server/vicidial/non_agent_api.php?source=test&function=add_list&user=6666&pass=1234&list_id=1101&list_name=Test+API+list&campaign_id=TESTCAMP&active=N&outbound_cid=7275551212&script=DEMOSCRIPT&am_message=8304&drop_inbound_group=SALESLINE&web_form_address=http://www.vicidial.org/?testing=hghg
http://server/vicidial/non_agent_api.php?source=test&function=add_list&user=6666&pass=1234&list_id=303&list_name=Test+API+list+3&campaign_id=TESTCAMP&custom_fields_copy=222
Example responses:
ERROR: add_list USER DOES NOT HAVE PERMISSION TO ADD LISTS - 6666|0
@@ -1418,6 +1422,9 @@ ERROR: add_list SCRIPT DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TESTSCRI
ERROR: add_list IN-GROUP DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TEST_IN8
ERROR: add_list RESET TIME IS NOT VALID, THIS IS AN OPTIONAL FIELD - 6666|012
ERROR: add_list EXPIRATION DATE IS NOT VALID, THIS IS AN OPTIONAL FIELD - 6666|012
ERROR: add_list CUSTOM FIELDS LIST ID TO COPY FROM DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|12
ERROR: add_list CUSTOM FIELDS LIST ID TO COPY FROM HAS NO CUSTOM FIELDS, THIS IS AN OPTIONAL FIELD - 6666|12
ERROR: add_list USER DOES NOT HAVE PERMISSION TO MODIFY CUSTOM FIELDS, THIS IS AN OPTIONAL FIELD - 6666|12
SUCCESS: add_list LIST HAS BEEN ADDED - 6666|1101|TESTCAMP
+7 -5
View File
@@ -1,7 +1,7 @@
<?php
# list_split.php - split one big list into smaller lists. Part of Admin Utilities.
#
# Copyright (C) 2017 Matt Florell,Michael Cargile <vicidial@gmail.com> LICENSE: AGPLv2
# Copyright (C) 2019 Matt Florell,Michael Cargile <vicidial@gmail.com> LICENSE: AGPLv2
#
# CHANGES
# 140916-1215 - Initial Build
@@ -11,10 +11,11 @@
# 161014-0842 - Added screen colors
# 170409-1542 - Added IP List validation code
# 170819-1001 - Added allow_manage_active_lists option
# 190703-0925 - Added use of admin_web_directory system setting
#
$version = '2.14-7';
$build = '170819-1001';
$version = '2.14-8';
$build = '190703-0925';
require("dbconnect_mysqli.php");
require("functions.php");
@@ -55,7 +56,7 @@ $num_leads = preg_replace('/[^0-9]/','',$num_leads);
#############################################
##### START SYSTEM_SETTINGS LOOKUP #####
$sys_settings_stmt = "SELECT use_non_latin,outbound_autodial_active,sounds_central_control_active,enable_languages,language_method,active_modules,admin_screen_colors,allow_manage_active_lists FROM system_settings;";
$sys_settings_stmt = "SELECT use_non_latin,outbound_autodial_active,sounds_central_control_active,enable_languages,language_method,active_modules,admin_screen_colors,allow_manage_active_lists,admin_web_directory FROM system_settings;";
$sys_settings_rslt=mysql_to_mysqli($sys_settings_stmt, $link);
if ($DB) {echo "$sys_settings_stmt\n";}
$num_rows = mysqli_num_rows($sys_settings_rslt);
@@ -70,6 +71,7 @@ if ($num_rows > 0)
$SSactive_modules = $sys_settings_row[5];
$SSadmin_screen_colors = $sys_settings_row[6];
$SSallow_manage_active_lists = $sys_settings_row[7];
$SSadmin_web_directory = $sys_settings_row[8];
}
else
{
@@ -440,7 +442,7 @@ if ($confirm == "confirm")
{
$admin_lists_custom = 'admin_lists_custom.php';
$url = "http" . (isset($_SERVER['HTTPS']) ? 's' : '') . "://$_SERVER[HTTP_HOST]/vicidial/" . $admin_lists_custom . "?action=COPY_FIELDS_SUBMIT&list_id=$new_list_id&source_list_id=$orig_list&copy_option=APPEND";
$url = "http" . (isset($_SERVER['HTTPS']) ? 's' : '') . "://$_SERVER[HTTP_HOST]/$SSadmin_web_directory/" . $admin_lists_custom . "?action=COPY_FIELDS_SUBMIT&list_id=$new_list_id&source_list_id=$orig_list&copy_option=APPEND";
# use cURL to call the copy custom fields code
$curl = curl_init();
+94 -4
View File
@@ -137,10 +137,11 @@
# 190313-0710 - Fix for update_lead custom fields issue #1134
# 190325-1055 - Added agent_campaigns function
# 190628-1504 - Added update_cid_group_entry function
# 190703-0858 - Added custom_fields_copy option to add_list function
#
$version = '2.14-114';
$build = '190628-1504';
$version = '2.14-115';
$build = '190703-0858';
$api_url_log = 0;
$startMS = microtime();
@@ -505,6 +506,8 @@ if (isset($_GET["cid_group_id"])) {$cid_group_id=$_GET["cid_group_id"];}
elseif (isset($_POST["cid_group_id"])) {$cid_group_id=$_POST["cid_group_id"];}
if (isset($_GET["cid_description"])) {$cid_description=$_GET["cid_description"];}
elseif (isset($_POST["cid_description"])) {$cid_description=$_POST["cid_description"];}
if (isset($_GET["custom_fields_copy"])) {$custom_fields_copy=$_GET["custom_fields_copy"];}
elseif (isset($_POST["custom_fields_copy"])) {$custom_fields_copy=$_POST["custom_fields_copy"];}
header ("Content-type: text/html; charset=utf-8");
@@ -513,7 +516,7 @@ header ("Pragma: no-cache"); // HTTP/1.0
#############################################
##### START SYSTEM_SETTINGS LOOKUP #####
$stmt = "SELECT use_non_latin,custom_fields_enabled,pass_hash_enabled,agent_whisper_enabled,active_modules,auto_dial_limit,enable_languages,language_method FROM system_settings;";
$stmt = "SELECT use_non_latin,custom_fields_enabled,pass_hash_enabled,agent_whisper_enabled,active_modules,auto_dial_limit,enable_languages,language_method,admin_web_directory FROM system_settings;";
$rslt=mysql_to_mysqli($stmt, $link);
$qm_conf_ct = mysqli_num_rows($rslt);
if ($qm_conf_ct > 0)
@@ -529,6 +532,7 @@ if ($qm_conf_ct > 0)
$SSauto_dial_limit = ($SSauto_dial_limit + 0.001);
$SSenable_languages = $row[6];
$SSlanguage_method = $row[7];
$SSadmin_web_directory = $row[8];
}
##### END SETTINGS LOOKUP #####
###########################################
@@ -722,6 +726,7 @@ if ($non_latin < 1)
$areacode = preg_replace('/[^-_0-9a-zA-Z]/','',$areacode);
$cid_group_id = preg_replace('/[^-_0-9a-zA-Z]/','',$cid_group_id);
$cid_description = preg_replace('/[^- \.\,\_0-9a-zA-Z]/','',$cid_description);
$custom_fields_copy = preg_replace('/[^0-9]/','',$custom_fields_copy);
if ($outbound_cid != '---ALL---')
{$outbound_cid=preg_replace('/[^0-9]/','',$outbound_cid);}
if ($areacode != '---ALL---')
@@ -4712,6 +4717,64 @@ if ($function == 'add_list')
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
$copy_custom_fields_trigger=0;
if ( (strlen($custom_fields_copy) > 1) and (strlen($custom_fields_copy) < 15) )
{
$stmt="SELECT count(*) from vicidial_lists where list_id='$custom_fields_copy';";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$custom_fields_copy_exists=$row[0];
if ($DB>0) {echo "$custom_fields_copy_exists|$stmt|\n";}
if ($custom_fields_copy_exists < 1)
{
$result = 'ERROR';
$result_reason = "add_list CUSTOM FIELDS LIST ID TO COPY FROM DOES NOT EXIST, THIS IS AN OPTIONAL FIELD";
$data = "$custom_fields_copy_exists";
echo "$result: $result_reason: |$user|$data\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
else
{
$stmt="SELECT count(*) from vicidial_lists_fields where list_id='$custom_fields_copy';";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$vicidial_lists_fields_exists=$row[0];
if ($DB>0) {echo "$vicidial_lists_fields_exists|$stmt|\n";}
if ($vicidial_lists_fields_exists < 1)
{
$result = 'ERROR';
$result_reason = "add_list CUSTOM FIELDS LIST ID TO COPY FROM HAS NO CUSTOM FIELDS, THIS IS AN OPTIONAL FIELD";
$data = "$custom_fields_copy";
echo "$result: $result_reason: |$user|$data\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
else
{
$stmt="SELECT count(*) from vicidial_users where user='$user' and custom_fields_modify='1';";
$rslt=mysql_to_mysqli($stmt, $link);
$row=mysqli_fetch_row($rslt);
$custom_fields_modify_exists=$row[0];
if ($DB>0) {echo "$custom_fields_modify_exists|$stmt|\n";}
if ($custom_fields_modify_exists < 1)
{
$result = 'ERROR';
$result_reason = "add_list USER DOES NOT HAVE PERMISSION TO MODIFY CUSTOM FIELDS, THIS IS AN OPTIONAL FIELD";
$data = "$custom_fields_copy";
echo "$result: $result_reason: |$user|$data\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
else
{
if ($DB>0) {echo "Copy custom fields triggered|$copy_custom_fields_trigger|\n";}
$copy_custom_fields_trigger++;
}
}
}
}
$webformSQL='';
$webformtwoSQL='';
$webformthreeSQL='';
@@ -4758,11 +4821,38 @@ if ($function == 'add_list')
$rslt=mysql_to_mysqli($stmt, $link);
if ($DB) {echo "|$stmt|\n";}
if ( ($copy_custom_fields_trigger > 0) and (strlen($custom_fields_copy) > 1) )
{
### BEGIN copy custom fields ###
$admin_lists_custom = 'admin_lists_custom.php';
$url = "http" . (isset($_SERVER['HTTPS']) ? 's' : '') . "://$_SERVER[HTTP_HOST]/$SSadmin_web_directory/" . $admin_lists_custom . "?copy_option=APPEND&action=COPY_FIELDS_SUBMIT&list_id=$list_id&source_list_id=$custom_fields_copy";
if ($DB>0) {echo "Copy custom fields url|$url|\n";}
# use cURL to call the copy custom fields code
$curl = curl_init();
# Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_USERPWD => "$user:$pass",
CURLOPT_USERAGENT => 'non_agent_api.php'
));
# Send the request & save response to $resp
$resp = curl_exec($curl);
# Close request to clear up some resources
curl_close($curl);
### END copy custom fields ###
}
### LOG INSERTION Admin Log Table ###
$SQL_log = "$stmt|";
$SQL_log = preg_replace('/;/', '', $SQL_log);
$SQL_log = addslashes($SQL_log);
$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$user', ip_address='$ip', event_section='LISTS', event_type='ADD', record_id='$list_id', event_code='ADMIN API ADD LIST', event_sql=\"$SQL_log\", event_notes='list: $list_id|$campaign_id';";
$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$user', ip_address='$ip', event_section='LISTS', event_type='ADD', record_id='$list_id', event_code='ADMIN API ADD LIST', event_sql=\"$SQL_log\", event_notes='list: $list_id|$campaign_id|$custom_fields_copy';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_to_mysqli($stmt, $link);