Added 'update_presets' function to the Non-Agent API
Added 'tab-CSScustomUSA' format to AST_VDsales_export.pl git-svn-id: svn://192.168.202.10@3581 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
#
|
||||
# /usr/share/astguiclient/AST_VDsales_export.pl --campaign=GOODB-GROUP1-GROUP3-GROUP4-SPECIALS-DNC_BEDS --output-format=fixed-as400 --sale-statuses=SALE --debug --filename=BEDSsaleMMDD.txt --date=yesterday --email-list=test@gmail.com --email-sender=test@test.com
|
||||
#
|
||||
# Copyright (C) 2016 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||
# Copyright (C) 2022 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||
#
|
||||
# CHANGES
|
||||
# 61219-1118 - First version
|
||||
@@ -34,6 +34,7 @@
|
||||
# 130811-0902 - Added wget HTTP auth options and added more debug output
|
||||
# 140403-1603 - Added --skip-rec-xtra option to not perform additional recording lookups beyond vicidial_id
|
||||
# 160722-1140 - Added --nodatedir option
|
||||
# 220307-0915 - Added 'tab-CSScustomUSA' format
|
||||
#
|
||||
|
||||
$txt = '.txt';
|
||||
@@ -42,6 +43,7 @@ $MT[0] = '';
|
||||
$Q=0;
|
||||
$DB=0;
|
||||
$uniqueidLIST='|';
|
||||
$recordings_ct=0;
|
||||
|
||||
# Default FTP account variables
|
||||
$VARREPORT_host = '10.0.0.4';
|
||||
@@ -201,7 +203,7 @@ if (length($ARGV[0])>1)
|
||||
print " [--debugX] = Super debugging messages\n";
|
||||
print "\n";
|
||||
print " format options:\n";
|
||||
print " pipe-standard|csv-standard|tab-standard|pipe-triplep|pipe-vici|html-rec|fixed-as400|tab-QMcustomUSA|tab-SCcustomUSA\n";
|
||||
print " pipe-standard|csv-standard|tab-standard|pipe-triplep|pipe-vici|html-rec|fixed-as400|tab-QMcustomUSA|tab-SCcustomUSA|tab-CSScustomUSA\n";
|
||||
print "\n";
|
||||
|
||||
|
||||
@@ -1137,6 +1139,7 @@ sub select_format_loop
|
||||
$sthB->finish();
|
||||
}
|
||||
}
|
||||
$recordings_ct = $rec_countB;
|
||||
|
||||
if ( ($ftp_audio_transfer > 0) && (length($ivr_filename) > 3) && (length($ivr_location) > 5) )
|
||||
{
|
||||
@@ -1198,6 +1201,7 @@ sub select_format_loop
|
||||
}
|
||||
}
|
||||
$sthB->finish();
|
||||
$recordings_ct = $rec_countB;
|
||||
|
||||
if ($skip_rec_extra < 1)
|
||||
{
|
||||
@@ -1556,6 +1560,63 @@ sub select_format_loop
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($output_format =~ /^tab-CSScustomUSA$/)
|
||||
{
|
||||
# 03-03-2022 17:16:31 1646345763.4347 TEST_IN3 9998887112 SALE 6666 Admin user 0.67 1 1922348
|
||||
# Date | Time | Call ID* | Campaign | ANI [customer phone number] | Call Disposition **| CSS Agent ID | CSS Agent Name | Length of call in Mins | Recordings***| Confirmation Number | Lead ID |
|
||||
|
||||
# 1- Date: call date in EST
|
||||
# 2- Time: call time in EST.
|
||||
# 3- Call id: uniqueid padded
|
||||
# 4- Campaign ID
|
||||
# 5- ANI (customer phone number)
|
||||
# 6- Status of the call(from agent or system)
|
||||
# 7- Agent id: Who handled the call(user ID in the system)
|
||||
# 8- Agent Name (user fullname in the system)
|
||||
# 9- Talk: time in minutes for how long the agent was talking with the customer
|
||||
# 10- Recordings: If there is a recording, put the first recording start time here ($recordings_ct)
|
||||
# 11- EMPTY (saved for 'Confirmation Number')
|
||||
# 12- Lead ID (lead_id from the system)
|
||||
|
||||
@call_date_array = split(/ /,$call_date);
|
||||
@call_date_format = split(/-/,$call_date_array[0]);
|
||||
$call_date_array[0] = "$call_date_format[1]-$call_date_format[2]-$call_date_format[0]";
|
||||
|
||||
while (length($phone_number)>10) {$phone_number =~ s/^.//gi;}
|
||||
$phone_areacode = substr($phone_number, 0, 3);
|
||||
if (length($closer) < 1) {$closer = $user;}
|
||||
if ($closer =~ /VDCL|VDAD/) {$closer='-';}
|
||||
$application = substr($did_name, 0, 4);
|
||||
$queue_seconds = int($queue_seconds + .5);
|
||||
$talk_seconds = ( ($length_in_sec - $queue_seconds) - $agent_alert_delay);
|
||||
if ($talk_seconds < 0) {$talk_seconds=0; $talk_minutes=0;}
|
||||
else
|
||||
{$talk_minutes = ($talk_seconds / 60); $talk_minutes = sprintf("%.2f", $talk_minutes);}
|
||||
|
||||
$dispo_time = 0;
|
||||
$stmtB = "select dispo_sec from vicidial_agent_log where lead_id='$lead_id' and user='$closer' and event_time >= '$shipdate 00:00:00' and event_time <= '$shipdate 23:59:59' order by event_time desc limit 1;";
|
||||
$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr;
|
||||
$sthB->execute or die "executing: $stmtB ", $dbhB->errstr;
|
||||
$sthBrows=$sthB->rows;
|
||||
if ($DB) {print "$sthBrows|$stmtB|\n";}
|
||||
$rec_countB=0;
|
||||
while ($sthBrows > $rec_countB)
|
||||
{
|
||||
@aryB = $sthB->fetchrow_array;
|
||||
$dispo_time = $aryB[0];
|
||||
$rec_countB++;
|
||||
}
|
||||
$sthB->finish();
|
||||
|
||||
$str = "$call_date_array[0]\t$call_date_array[1]\t$uniqueid\t$campaign_id\t$phone_number\t$status\t$user\t$agent_name\t$talk_minutes\t$recordings_ct\t\t$lead_id\t\n";
|
||||
|
||||
# if ($DBX > 0) {print "$uniqueid|$talk_seconds|$outbound|$INcalls|$OUTcalls\n";}
|
||||
|
||||
if ($outbound =~ /Y/) {$OUTtalk = ($OUTtalk + $talk_seconds); $OUTcalls++;}
|
||||
else {$INtalk = ($INtalk + $talk_seconds); $INcalls++;}
|
||||
}
|
||||
|
||||
$Ealert .= "$str";
|
||||
|
||||
print out "$str";
|
||||
@@ -1575,7 +1636,7 @@ sub select_format_loop
|
||||
if ($rec_count =~ /70$/i) {print STDERR "| $rec_count\r";}
|
||||
if ($rec_count =~ /80$/i) {print STDERR "+ $rec_count\r";}
|
||||
if ($rec_count =~ /90$/i) {print STDERR "0 $rec_count\r";}
|
||||
if ($rec_count =~ /00$/i) {print "$rec_count|$TOTAL_SALES|$CALLTIME_KICK| |$phone_number|\n";}
|
||||
if ($rec_count =~ /00$/i) {print "$rec_count($OUTcalls/$INcalls)|$TOTAL_SALES|$CALLTIME_KICK| |$phone_number|\n";}
|
||||
}
|
||||
$rec_count++;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2022-01-27
|
||||
NON-AGENT API DOCUMENT Started: 2008-07-24 Updated: 2022-03-07
|
||||
|
||||
This document describes the functions of an API(Application Programming
|
||||
Interface) for all functions NOT directly relating to the VICIDIAL Agent screen.
|
||||
@@ -62,7 +62,8 @@ add_dnc_phone - adds a phone number to one of the DNC lists
|
||||
add_fpg_phone - adds a phone number to a Filter Phone Group
|
||||
campaigns_list - displays information about all campaigns in the system
|
||||
hopper_list - displays information about leads in the hopper for a campaign
|
||||
update_alt_url - updates alternate dispo call url entries for a campaign
|
||||
update_alt_url - updates/adds/displays alternate dispo call url entries for a campaign
|
||||
update_presets - updates/adds/displays campaign preset entries
|
||||
|
||||
|
||||
New scripts:
|
||||
@@ -199,6 +200,7 @@ Changes:
|
||||
211107-1556 - Added optional phone_number search for lead_all_info function
|
||||
211118-1946 - Added 'delete_cf_data' setting to the update_lead function
|
||||
220126-2116 - Added dispo_call_url and alt URL options for update_campaign. Added 'update_alt_url' function
|
||||
220307-0937 - Added 'update_presets' function
|
||||
|
||||
|
||||
API Functions use the 'function' variable
|
||||
@@ -2287,7 +2289,7 @@ SUCCESS: update_campaign CAMPAIGN HAS BEEN UPDATED - 6666|1101
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
update_alt_url - updates alternate dispo call url entries for a campaign
|
||||
update_alt_url - updates/adds/displays alternate dispo call url entries for a campaign
|
||||
|
||||
NOTE: api user for this function must have user_level set to 8 or higher and "modify campaigns" enabled
|
||||
|
||||
@@ -2354,6 +2356,55 @@ url_id|campaign_id|entry_type|active|url_type|url_rank|url_statuses|url_descript
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
update_presets - updates/adds/displays campaign preset entries
|
||||
|
||||
NOTE: api user for this function must have user_level set to 8 or higher and "modify campaigns" enabled
|
||||
|
||||
REQUIRED FIELDS-
|
||||
campaign_id - 2-8 characters
|
||||
source - description of what originated the API call (maximum 20 characters)
|
||||
preset_name - name of the preset in the system
|
||||
NOTE: If only one preset exists for this campaign, then this field can be left blank
|
||||
action - 'UPDATE', 'NEW' or 'LIST' (default is 'UPDATE')
|
||||
NOTE: 'stage'(csv, tab, pipe[default]) and 'header'(YES, NO) options are available for an action of 'LIST'
|
||||
|
||||
EDITABLE FIELDS-
|
||||
preset_hide_number - One of these: 'Y','N', default is 'N'
|
||||
preset_number - Digits only (must be from 1 to 50 digits in length)
|
||||
preset_dtmf - Digits and certain characters only ('0123456789PSQ' [P = #-pound, S = *-star, Q = half-second-quiet])
|
||||
|
||||
NOTES:
|
||||
- Please use no special characters like apostrophes, quotes or amphersands
|
||||
- A value of '--BLANK--' can be used on the preset_dtmf option above to set its value to empty
|
||||
|
||||
Example URL strings for API calls:
|
||||
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_presets&campaign_id=ALTTEST&preset_name=SALES&preset_number=3125551212&preset_hide_number=N&action=NEW
|
||||
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_presets&campaign_id=ALTTEST&preset_number=3125551213&preset_hide_number=N&preset_dtmf=1234
|
||||
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_presets&campaign_id=ALTTEST&action=LIST
|
||||
http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_presets&campaign_id=ALTTEST&preset_name=SUPPORT+LINE&preset_number=3125551214&preset_hide_number=Y&preset_dtmf=1&action=NEW
|
||||
|
||||
|
||||
Example responses:
|
||||
ERROR: update_presets USER DOES NOT HAVE PERMISSION TO UPDATE CAMPAIGNS - 6666
|
||||
ERROR: update_presets YOU MUST USE ALL REQUIRED FIELDS - 6666|1
|
||||
ERROR: update_presets NOT AN ALLOWED CAMPAIGN ID - 98762
|
||||
ERROR: update_presets CAMPAIGN DOES NOT EXIST - 6666|1000
|
||||
ERROR: update_presets PRESET NAME DOES NOT EXIST - 6666|2|dispo|campaign|TESTCAMP|2
|
||||
ERROR: update_presets PRESET HIDE NUMBER MUST BE Y OR N, THIS IS AN OPTIONAL FIELD - 6666|U
|
||||
ERROR: update_presets PRESET DTMF IS NOT VALID, THIS IS AN OPTIONAL FIELD - 6666|
|
||||
NOTICE: update_campaign NO UPDATES DEFINED - 6666|
|
||||
SUCCESS: update_presets PRESET HAS BEEN UPDATED - 6666|1|campaign|TESTCAMP
|
||||
SUCCESS: update_presets PRESET HAS BEEN ADDED - 6666|NEW PRESET: SUPPORT LINE|campaign|TESTCAMP
|
||||
NOTICE: update_presets LIST, No Records Found - 6666|TESTCAMP|0
|
||||
|
||||
A LIST response will not show "SUCCESS", but instead will just print the results in the following format:
|
||||
preset_name|campaign_id|preset_number|preset_hide_number|preset_dtmf
|
||||
SALES|ALTTEST|3125551213|N|1234
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
add_did - adds new Inbound DID entries to the system in the vicidial_inbound_dids table
|
||||
|
||||
|
||||
@@ -191,10 +191,11 @@
|
||||
# 220120-0914 - Added download_invalid_files user function for audio store file listings
|
||||
# 220126-2116 - Added dispo_call_url and alt URL options for update_campaign. Added 'update_alt_url' function
|
||||
# 220223-0838 - Added allow_web_debug system setting
|
||||
# 220307-0937 - Added 'update_presets' function
|
||||
#
|
||||
|
||||
$version = '2.14-168';
|
||||
$build = '220223-0838';
|
||||
$version = '2.14-169';
|
||||
$build = '220307-0937';
|
||||
$php_script='non_agent_api.php';
|
||||
$api_url_log = 0;
|
||||
|
||||
@@ -686,7 +687,16 @@ if (isset($_GET["url_lists"])) {$url_lists=$_GET["url_lists"];}
|
||||
elseif (isset($_POST["url_lists"])) {$url_lists=$_POST["url_lists"];}
|
||||
if (isset($_GET["url_call_length"])) {$url_call_length=$_GET["url_call_length"];}
|
||||
elseif (isset($_POST["url_call_length"])) {$url_call_length=$_POST["url_call_length"];}
|
||||
|
||||
if (isset($_GET["preset_name"])) {$preset_name=$_GET["preset_name"];}
|
||||
elseif (isset($_POST["preset_name"])) {$preset_name=$_POST["preset_name"];}
|
||||
if (isset($_GET["preset_number"])) {$preset_number=$_GET["preset_number"];}
|
||||
elseif (isset($_POST["preset_number"])) {$preset_number=$_POST["preset_number"];}
|
||||
if (isset($_GET["preset_dtmf"])) {$preset_dtmf=$_GET["preset_dtmf"];}
|
||||
elseif (isset($_POST["preset_dtmf"])) {$preset_dtmf=$_POST["preset_dtmf"];}
|
||||
if (isset($_GET["preset_hide_number"])) {$preset_hide_number=$_GET["preset_hide_number"];}
|
||||
elseif (isset($_POST["preset_hide_number"])) {$preset_hide_number=$_POST["preset_hide_number"];}
|
||||
if (isset($_GET["action"])) {$action=$_GET["action"];}
|
||||
elseif (isset($_POST["action"])) {$action=$_POST["action"];}
|
||||
|
||||
$DB=preg_replace('/[^0-9]/','',$DB);
|
||||
|
||||
@@ -836,6 +846,10 @@ $query_time=preg_replace('/[^:0-9]/','',$query_time);
|
||||
$gmt_offset_now = preg_replace('/[^-\_\.0-9]/','',$gmt_offset_now);
|
||||
$date=preg_replace('/[^-0-9]/','',$date);
|
||||
$header = preg_replace('/[^0-9a-zA-Z]/','',$header);
|
||||
$preset_hide_number = preg_replace('/[^0-9a-zA-Z]/','',$preset_hide_number);
|
||||
$preset_number = preg_replace('/[^\*\#\.\_0-9a-zA-Z]/','',$preset_number);
|
||||
$preset_dtmf = preg_replace('/[^- \,\*\#0-9a-zA-Z]/','',$preset_dtmf);
|
||||
$action = preg_replace('/[^0-9a-zA-Z]/','',$action);
|
||||
|
||||
if ($non_latin < 1)
|
||||
{
|
||||
@@ -987,6 +1001,7 @@ if ($non_latin < 1)
|
||||
$group_id = preg_replace('/[^_0-9a-zA-Z]/','',$group_id);
|
||||
$url_statuses = preg_replace('/[^- 0-9a-zA-Z]/', '',$url_statuses);
|
||||
$url_description = preg_replace('/[^ \.\,-\_0-9a-zA-Z]/','',$url_description);
|
||||
$preset_name = preg_replace('/[^- \_0-9a-zA-Z]/','',$preset_name);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1138,6 +1153,7 @@ else
|
||||
$group_id = preg_replace('/[^_0-9\p{L}]/u','',$group_id);
|
||||
$url_statuses = preg_replace('/[^- 0-9\p{L}]/u', '',$url_statuses);
|
||||
$url_description = preg_replace('/[^ \.\,-\_0-9\p{L}]/u','',$url_description);
|
||||
$preset_name = preg_replace('/[^- \_0-9\p{L}]/u','',$preset_name);
|
||||
}
|
||||
|
||||
$USarea = substr($phone_number, 0, 3);
|
||||
@@ -7910,7 +7926,7 @@ if ($function == 'update_campaign')
|
||||
|
||||
|
||||
################################################################################
|
||||
### update_alt_url - updates alternate dispo call url entries for a campaign
|
||||
### update_alt_url - updates/adds/displays alternate dispo call url entries for a campaign
|
||||
################################################################################
|
||||
if ($function == 'update_alt_url')
|
||||
{
|
||||
@@ -8343,6 +8359,285 @@ if ($function == 'update_alt_url')
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
### update_presets - updates/adds/displays campaign preset entries
|
||||
################################################################################
|
||||
if ($function == 'update_presets')
|
||||
{
|
||||
if(strlen($source)<2)
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "Invalid Source";
|
||||
echo "$result: $result_reason - $source\n";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
echo "ERROR: Invalid Source: |$source|\n";
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( (!preg_match("/ $function /",$api_allowed_functions)) and (!preg_match("/ALL_FUNCTIONS/",$api_allowed_functions)) )
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "auth USER DOES NOT HAVE PERMISSION TO USE THIS FUNCTION";
|
||||
echo "$result: $result_reason: |$user|$function|\n";
|
||||
$data = "$allowed_user";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
exit;
|
||||
}
|
||||
$stmt="SELECT count(*) from vicidial_users where user='$user' and vdc_agent_api_access='1' and modify_campaigns='1' and user_level >= 8 and active='Y';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$allowed_user=$row[0];
|
||||
if ($allowed_user < 1)
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets USER DOES NOT HAVE PERMISSION TO UPDATE CAMPAIGNS";
|
||||
$data = "$allowed_user";
|
||||
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 ( (strlen($campaign_id)<2) or (strlen($campaign_id)>8) )
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets YOU MUST USE ALL REQUIRED FIELDS";
|
||||
$data = "$campaign_id|$campaign_name|$campaign_id";
|
||||
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 allowed_campaigns,admin_viewable_groups from vicidial_user_groups where user_group='$LOGuser_group';";
|
||||
if ($DB>0) {echo "|$stmt|\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$LOGallowed_campaigns = $row[0];
|
||||
$LOGadmin_viewable_groups = $row[1];
|
||||
|
||||
$LOGallowed_campaignsSQL='';
|
||||
$whereLOGallowed_campaignsSQL='';
|
||||
if ( (!preg_match('/\-ALL/i', $LOGallowed_campaigns)) )
|
||||
{
|
||||
$rawLOGallowed_campaignsSQL = preg_replace("/ -/",'',$LOGallowed_campaigns);
|
||||
$rawLOGallowed_campaignsSQL = preg_replace("/ /","','",$rawLOGallowed_campaignsSQL);
|
||||
$LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')";
|
||||
$whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')";
|
||||
}
|
||||
|
||||
$stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' $LOGallowed_campaignsSQL;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$camp_exists=$row[0];
|
||||
if ($camp_exists < 1)
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets CAMPAIGN DOES NOT EXIST";
|
||||
$data = "$campaign_id";
|
||||
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 ($action == 'LIST')
|
||||
{
|
||||
$output='';
|
||||
$DLset=0;
|
||||
if ($stage == 'csv')
|
||||
{$DL = ','; $DLset++;}
|
||||
if ($stage == 'tab')
|
||||
{$DL = "\t"; $DLset++;}
|
||||
if ($stage == 'pipe')
|
||||
{$DL = '|'; $DLset++;}
|
||||
if ($DLset < 1)
|
||||
{$DL='|';}
|
||||
if ($header == 'YES')
|
||||
{$output .= 'preset_name' . $DL . 'campaign_id' . $DL . 'preset_number' . $DL . 'preset_hide_number' . $DL . "preset_dtmf\n";}
|
||||
|
||||
$stmt="SELECT preset_name,campaign_id,preset_number,preset_hide_number,preset_dtmf from vicidial_xfer_presets where campaign_id='$campaign_id' order by preset_name limit 1000;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vum_recs = mysqli_num_rows($rslt);
|
||||
if ($DB>0) {echo "$vum_recs|$stmt|\n";}
|
||||
$M=0;
|
||||
while ($vum_recs > $M)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$preset_name = $row[0];
|
||||
$campaign_id = $row[1];
|
||||
$preset_number = $row[2];
|
||||
$preset_hide_number = $row[3];
|
||||
$preset_dtmf = $row[4];
|
||||
|
||||
$output .= "$preset_name" . $DL . "$campaign_id" . $DL . "$preset_number" . $DL . "$preset_hide_number" . $DL . "$preset_dtmf\n";
|
||||
|
||||
$M++;
|
||||
}
|
||||
if ($M < 1)
|
||||
{echo "NOTICE: update_presets LIST, No Records Found - $user|$campaign_id|0\n";}
|
||||
else
|
||||
{echo $output;}
|
||||
|
||||
$result = 'SUCCESS';
|
||||
$result_reason = "update_presets PRESET LIST DISPLAYED";
|
||||
$data = "$campaign_id|$M";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($action != 'NEW')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_xfer_presets where campaign_id='$campaign_id' and preset_name='$preset_name';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$alt_id_exists=$row[0];
|
||||
if ($alt_id_exists < 1)
|
||||
{
|
||||
$stmt="SELECT preset_name from vicidial_xfer_presets where campaign_id='$campaign_id' order by preset_name limit 2;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vum_recs = mysqli_num_rows($rslt);
|
||||
if ($vum_recs < 2)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$preset_name = $row[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets PRESET NAME DOES NOT EXIST";
|
||||
$data = "$preset_name|$campaign_id|$vum_recs";
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$preset_numberSQL='';
|
||||
$preset_dtmfSQL='';
|
||||
$preset_hide_numberSQL='';
|
||||
|
||||
if (strlen($preset_hide_number) > 0)
|
||||
{
|
||||
if ( ($preset_hide_number != 'Y') and ($preset_hide_number != 'N') )
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets PRESET HIDE NUMBER MUST BE Y OR N, THIS IS AN OPTIONAL FIELD";
|
||||
$data = "$preset_hide_number";
|
||||
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
|
||||
{$preset_hide_numberSQL = " ,preset_hide_number='$preset_hide_number'";}
|
||||
}
|
||||
if (strlen($preset_number) > 0)
|
||||
{
|
||||
if ( (strlen($preset_number) > 50) or (strlen($preset_number) < 1) )
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets PRESET NUMBER IS NOT VALID, THIS IS AN OPTIONAL FIELD";
|
||||
$data = "$preset_number";
|
||||
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
|
||||
{$preset_numberSQL = " ,preset_number='$preset_number'";}
|
||||
}
|
||||
if (strlen($preset_dtmf) > 0)
|
||||
{
|
||||
if ($preset_dtmf == '--BLANK--')
|
||||
{$preset_dtmfSQL = " ,preset_dtmf=''";}
|
||||
else
|
||||
{
|
||||
if (strlen($preset_dtmf) > 50)
|
||||
{
|
||||
$result = 'ERROR';
|
||||
$result_reason = "update_presets PRESET DTMF IS NOT VALID, THIS IS AN OPTIONAL FIELD";
|
||||
$data = "$preset_dtmf";
|
||||
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
|
||||
{$preset_dtmfSQL = " ,preset_dtmf='$preset_dtmf'";}
|
||||
}
|
||||
}
|
||||
|
||||
$updateSQL = "$preset_numberSQL$preset_dtmfSQL$preset_hide_numberSQL";
|
||||
|
||||
if (strlen($updateSQL)< 3)
|
||||
{
|
||||
$result = 'NOTICE';
|
||||
$result_reason = "update_presets NO UPDATES DEFINED";
|
||||
$data = "$updateSQL";
|
||||
echo "$result: $result_reason: |$user|$data\n";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($action == 'NEW')
|
||||
{
|
||||
$updateSQLx = ltrim($updateSQL, ' ,');
|
||||
$stmt="INSERT INTO vicidial_xfer_presets SET campaign_id='$campaign_id',preset_name='$preset_name', $updateSQLx;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$add_count = mysqli_affected_rows($link);
|
||||
if ($DB) {echo "$add_count|$preset_name|$stmt|\n";}
|
||||
|
||||
### 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='$event_section', event_type='ADD', record_id='$campaign_id', event_code='ADMIN API UPDATE PRESET', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id|preset_name: $preset_name';";
|
||||
if ($DB) {echo "|$stmt|\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
|
||||
$result = 'SUCCESS';
|
||||
$result_reason = "update_presets PRESET HAS BEEN ADDED";
|
||||
$data = "NEW PRESET: $preset_name|$campaign_id";
|
||||
echo "$result: $result_reason - $user|$data\n";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
}
|
||||
else
|
||||
{
|
||||
$updateSQLx = ltrim($updateSQL, ' ,');
|
||||
$stmt="UPDATE vicidial_xfer_presets SET $updateSQLx WHERE campaign_id='$campaign_id' and preset_name='$preset_name';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($DB) {echo "|$stmt|\n";}
|
||||
|
||||
### 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='$event_section', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN API UPDATE PRESET', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id|preset_name: $preset_name';";
|
||||
if ($DB) {echo "|$stmt|\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
|
||||
$result = 'SUCCESS';
|
||||
$result_reason = "update_presets PRESET HAS BEEN UPDATED";
|
||||
$data = "$preset_name|$campaign_id";
|
||||
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;
|
||||
}
|
||||
################################################################################
|
||||
### END update_presets
|
||||
################################################################################
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
### add_did - adds new Inbound DID entries to the system in the vicidial_inbound_dids table
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user