diff --git a/agc_2-X/trunk/UPGRADE b/agc_2-X/trunk/UPGRADE index 1933665b..878d6fff 100644 --- a/agc_2-X/trunk/UPGRADE +++ b/agc_2-X/trunk/UPGRADE @@ -504,6 +504,11 @@ OTHER CHANGES: after you have viewed the callbacks, but if the number of callbacks changes the red and/or blink will start again. +117. Added add_list and update_list functions to the Non-Agent API, allowing + you to add, modify and delete lists, as well as reset leads in a list, + change a list to active or inactive, change the campaign of a list and + delete the leads inside of a list. + diff --git a/agc_2-X/trunk/docs/NON-AGENT_API.txt b/agc_2-X/trunk/docs/NON-AGENT_API.txt index 15762b89..64c7fccd 100644 --- a/agc_2-X/trunk/docs/NON-AGENT_API.txt +++ b/agc_2-X/trunk/docs/NON-AGENT_API.txt @@ -24,6 +24,8 @@ recording_lookup - looks up recordings based upon user and date or lead_id did_log_export - exports all calls inbound to a DID for one day add_user - adds a user to the system add_phone - adds a phone to the system +add_list - adds a list to the system +update_list - updates list settings in the system, reset leads in list, delete list @@ -50,6 +52,7 @@ Changes: 101117-1104 - Added callback and custom field entry delete to delete_lead option 101206-2126 - Added recording_lookup and did_log_export functions 110127-2245 - Added add_user and add_phone functions +110306-1044 - Added add_list and update_list functions @@ -482,8 +485,6 @@ ERROR: update_lead NO VALID SEARCH METHOD - 6666|SYSTEM||| ERROR: update_lead USER DOES NOT HAVE PERMISSION TO UPDATE LEADS IN THE SYSTEM - 6666|0 -ERROR: NO FUNCTION SPECIFIED - @@ -563,3 +564,102 @@ ERROR: add_phone YOU MUST USE A VALID TIMEZONE - 6666|-5 SUCCESS: add_phone PHONE HAS BEEN ADDED - 6666|cc100|10.0.9.8|SIP|100 + + + +-------------------------------------------------------------------------------- +add_list - adds a list to the system + +REQUIRED FIELDS- +list_id - 2-14 digits +list_name - 6-30 characters +campaign_id - 2-8 characters, must be a valid campaign_id + +OPTIONAL FIELDS- +active - Must be one of these: 'Y','N', will default to 'N' +outbound_cid - 6-20 digits +script - 1-10 characters, must be a valid script +am_message - 2-100 characters +drop_inbound_group - 1-10 characters, must be a valid in-group +web_form_address - 6-100 characters +web_form_address_two - 6-100 characters + + +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 + +Example responses: +ERROR: add_list USER DOES NOT HAVE PERMISSION TO ADD LISTS - 6666|0 +ERROR: add_list YOU MUST USE ALL REQUIRED FIELDS - 6666|1000|| +ERROR: add_list CAMPAIGN DOES NOT EXIST - 6666|TESTCIMP +ERROR: add_list LIST ALREADY EXISTS - 6666|1101 +ERROR: add_list SCRIPT DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TESTSCRIPT +ERROR: add_list IN-GROUP DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TEST_IN8 +SUCCESS: add_list LIST HAS BEEN ADDED - 6666|1101|TESTCAMP + + + + + + +-------------------------------------------------------------------------------- +update_list - updates list information in the vicidial_lists table + +REQUIRED FIELDS- +list_id - must be all numbers, 2-14 digits +source - description of what originated the API call (maximum 20 characters) + +SETTINGS FIELDS- +insert_if_not_found - Y or N, will attempt to insert as a new list if no match is found, default is N. + If list is not found, the function will change to add_list and be processed in that way +reset_list - Y or N, Setting this to Y will reset the Called-Since-Last-Reset flag for all of the leads in this list, default is N. +delete_list - Y or N, Setting this to Y will delete the list from the vicidial_lists table, default is N. +delete_leads - Y or N, Setting this to Y will delete all of the leads with this list_id from the vicidial_list table, default is N. + +EDITABLE FIELDS- +list_name - 6-30 characters +campaign_id - 2-8 characters, must be a valid campaign_id +active - Must be one of these: 'Y','N', will default to 'N' +outbound_cid - 6-20 digits +script - 1-10 characters, must be a valid script +am_message - 2-100 characters +drop_inbound_group - 1-10 characters, must be a valid in-group +web_form_address - 6-100 characters +web_form_address_two - 6-100 characters +NOTES: + - in order to set a field to empty('') set it equal to --BLANK--, i.e. "&drop_inbound_group=--BLANK--" + - please use no special characters like apostrophes, quotes or amphersands + + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_list&list_id=1101&list_name=Updated+test+API+list +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_list&list_id=1101&active=N +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_list&list_id=1102&active=N&insert_if_not_found=Y&list_name=Updated+test+API+list&campaign_id=TESTCAMP&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&user=6666&pass=1234&function=update_list&list_id=1102&reset_list=Y +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_list&list_id=1102&delete_list=Y&delete_leads=Y +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=update_list&list_id=1102&campaign_id=ASTRICON + +Example responses: +ERROR: update_list USER DOES NOT HAVE PERMISSION TO UPDATE LISTS - 6666 +ERROR: update_list YOU MUST USE ALL REQUIRED FIELDS - 6666|1 +NOTICE: update_list LIST DOES NOT EXIST, SENDING TO add_list FUNCTION - 6666|1000 +ERROR: update_list LIST DOES NOT EXIST - 6666|1000 +ERROR: update_list CAMPAIGN DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TESTCIMP +ERROR: update_list SCRIPT DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TESTSCRIPT +ERROR: update_list IN-GROUP DOES NOT EXIST, THIS IS AN OPTIONAL FIELD - 6666|TEST_IN8 +ERROR: update_list LIST NAME MUST BE FROM 6 TO 30 CHARACTERS, THIS IS AN OPTIONAL FIELD - 6666|test +ERROR: update_list ACTIVE MUST BE Y OR N, THIS IS AN OPTIONAL FIELD - 6666|U +ERROR: update_list OUTBOUND CID MUST BE FROM 6 TO 18 DIGITS, THIS IS AN OPTIONAL FIELD - 6666|12345 +ERROR: update_list ANSWERING MACHINE MESSAGE MUST LESS THAN 101 DIGITS, THIS IS AN OPTIONAL FIELD - 6666|123... +NOTICE: update_list NO UPDATES DEFINED - 6666| +SUCCESS: update_list LIST HAS BEEN UPDATED - 6666|1101 +NOTICE: update_list LEADS IN LIST HAVE BEEN RESET - 6666|1101|324 +NOTICE: update_list USER DOES NOT HAVE PERMISSION TO DELETE LISTS - 6666|0 +NOTICE: update_list LIST HAS BEEN DELETED - 6666|1101|1 +NOTICE: update_list USER DOES NOT HAVE PERMISSION TO DELETE LEADS - 6666|0 +NOTICE: update_list LEADS IN LIST HAVE BEEN DELETED - 6666|1101|324 + +ERROR: NO FUNCTION SPECIFIED + + diff --git a/agc_2-X/trunk/www/vicidial/non_agent_api.php b/agc_2-X/trunk/www/vicidial/non_agent_api.php index 0651283f..65b43bde 100644 --- a/agc_2-X/trunk/www/vicidial/non_agent_api.php +++ b/agc_2-X/trunk/www/vicidial/non_agent_api.php @@ -1,7 +1,7 @@ LICENSE: AGPLv2 +# Copyright (C) 2011 Matt Florell LICENSE: AGPLv2 # # This script is designed as an API(Application Programming Interface) to allow # other programs to interact with all non-agent-screen VICIDIAL functions @@ -9,7 +9,7 @@ # required variables: # - $user # - $pass -# - $function - ('add_lead','update_lead','version','sounds_list','moh_list','vm_list','blind_monitor','agent_ingroup_info') +# - $function - ('add_lead','update_lead','version','sounds_list','moh_list','vm_list','blind_monitor','agent_ingroup_info','add_list',etc...) # - $source - ('vtiger','webform','adminweb') # - $format - ('text','debug') @@ -42,10 +42,11 @@ # 101206-2126 - Added recording_lookup and did_log_export functions # 110127-2245 - Added add_user and add_phone functions # 110303-2122 - Added information on agent-on-hook phone to real-time report popup +# 110306-1044 - Added add_list and update_list functions # -$version = '2.4-28'; -$build = '110303-2122'; +$version = '2.4-29'; +$build = '110306-1044'; require("dbconnect.php"); @@ -210,6 +211,26 @@ if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["script"])) {$script=$_GET["script"];} + elseif (isset($_POST["script"])) {$script=$_POST["script"];} +if (isset($_GET["am_message"])) {$am_message=$_GET["am_message"];} + elseif (isset($_POST["am_message"])) {$am_message=$_POST["am_message"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["delete_list"])) {$delete_list=$_GET["delete_list"];} + elseif (isset($_POST["delete_list"])) {$delete_list=$_POST["delete_list"];} +if (isset($_GET["delete_leads"])) {$delete_leads=$_GET["delete_leads"];} + elseif (isset($_POST["delete_leads"])) {$delete_leads=$_POST["delete_leads"];} header ("Content-type: text/html; charset=utf-8"); @@ -323,6 +344,16 @@ if ($non_latin < 1) $local_gmt=ereg_replace("[^-\.0-9]","",$local_gmt); $outbound_cid=ereg_replace("[^0-9]","",$outbound_cid); $phone_context=ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $list_name=ereg_replace("[^- \+\.\:\/\@\?\&\_0-9a-zA-Z]","",$list_name); + $active=ereg_replace("[^A-Z]","",$active); + $script=ereg_replace("[^-_0-9a-zA-Z]","",$script); + $am_message=ereg_replace("[^-_0-9a-zA-Z]","",$am_message); + $drop_inbound_group=ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $web_form_address=ereg_replace("[^- \+\.\:\/\@\?\&\_0-9a-zA-Z]","",$web_form_address); + $web_form_address_two=ereg_replace("[^- \+\.\:\/\@\?\&\_0-9a-zA-Z]","",$web_form_address_two); + $reset_list=ereg_replace("[^A-Z]","",$reset_list); + $delete_list=ereg_replace("[^A-Z]","",$delete_list); + $delete_leads=ereg_replace("[^A-Z]","",$delete_leads); } else { @@ -1418,6 +1449,545 @@ if ($function == 'add_phone') +################################################################################ +### update_list - updates list information in the vicidial_lists table and other functions +################################################################################ +if ($function == 'update_list') + { + 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 + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_lists='1' and user_level >= 8;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "update_list USER DOES NOT HAVE PERMISSION TO UPDATE LISTS"; + $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($list_id)<2) or (strlen($list_id)>14) ) + { + $result = 'ERROR'; + $result_reason = "update_list YOU MUST USE ALL REQUIRED FIELDS"; + $data = "$list_id|$list_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 count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_exists=$row[0]; + if ($list_exists < 1) + { + if ($insert_if_not_found == 'Y') + { + $result = 'NOTICE'; + $result_reason = "update_list LIST DOES NOT EXIST, SENDING TO add_list FUNCTION"; + $data = "$list_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); + + $function = 'add_list'; + } + else + { + $result = 'ERROR'; + $result_reason = "update_list LIST DOES NOT EXIST"; + $data = "$list_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 + { + $campaignSQL=''; + $scriptSQL=''; + $dropingroupSQL=''; + $listnameSQL=''; + $activeSQL=''; + $outboundcidSQL=''; + $ammessageSQL=''; + $webformSQL=''; + $webformtwoSQL=''; + if (strlen($campaign_id) > 0) + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_exists=$row[0]; + if ($campaign_exists < 1) + { + $result = 'ERROR'; + $result_reason = "update_list CAMPAIGN DOES NOT EXIST, THIS IS AN OPTIONAL FIELD"; + $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 + {$campaignSQL = " ,campaign_id='$campaign_id'";} + } + if (strlen($script) > 0) + { + if ($script == '--BLANK--') + {$scriptSQL = " ,agent_script_override=''";} + else + { + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_exists=$row[0]; + if ($script_exists < 1) + { + $result = 'ERROR'; + $result_reason = "update_list SCRIPT DOES NOT EXIST, THIS IS AN OPTIONAL FIELD"; + $data = "$script"; + 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 + {$scriptSQL = " ,agent_script_override='$script'";} + } + } + if (strlen($drop_inbound_group) > 0) + { + if ($drop_inbound_group == '--BLANK--') + {$dropingroupSQL = " ,drop_inbound_group_override=''";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$drop_inbound_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_exists=$row[0]; + if ($script_exists < 1) + { + $result = 'ERROR'; + $result_reason = "update_list IN-GROUP DOES NOT EXIST, THIS IS AN OPTIONAL FIELD"; + $data = "$drop_inbound_group"; + 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 + {$dropingroupSQL = " ,drop_inbound_group_override='$drop_inbound_group'";} + } + } + if (strlen($list_name) > 0) + { + if ( (strlen($list_name) > 30) or (strlen($list_name) < 6) ) + { + $result = 'ERROR'; + $result_reason = "update_list LIST NAME MUST BE FROM 6 TO 30 CHARACTERS, THIS IS AN OPTIONAL FIELD"; + $data = "$list_name"; + 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 + {$listnameSQL = " ,list_name='$list_name'";} + } + if (strlen($active) > 0) + { + if ( ($active != 'Y') and ($active != 'N') ) + { + $result = 'ERROR'; + $result_reason = "update_list ACTIVE MUST BE Y OR N, THIS IS AN OPTIONAL FIELD"; + $data = "$active"; + 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 + {$activeSQL = " ,active='$active'";} + } + if (strlen($outbound_cid) > 0) + { + if ($outbound_cid == '--BLANK--') + {$outboundcidSQL = " ,campaign_cid_override=''";} + else + { + if ( (strlen($outbound_cid) > 18) or (strlen($outbound_cid) < 6) ) + { + $result = 'ERROR'; + $result_reason = "update_list OUTBOUND CID MUST BE FROM 6 TO 18 DIGITS, THIS IS AN OPTIONAL FIELD"; + $data = "$outbound_cid"; + 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 + {$outboundcidSQL = " ,campaign_cid_override='$outbound_cid'";} + } + } + if (strlen($am_message) > 0) + { + if ($am_message == '--BLANK--') + {$ammessageSQL = " ,am_message_exten_override=''";} + else + { + if (strlen($am_message) > 100) + { + $result = 'ERROR'; + $result_reason = "update_list ANSWERING MACHINE MESSAGE MUST LESS THAN 101 DIGITS, THIS IS AN OPTIONAL FIELD"; + $data = "$am_message"; + 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 + {$ammessageSQL = " ,am_message_exten_override='$am_message'";} + } + } + if (strlen($web_form_address) > 0) + { + if ($web_form_address == '--BLANK--') + {$webformSQL = " ,web_form_address=''";} + else + {$webformSQL = " ,web_form_address='$web_form_address'";} + } + if (strlen($web_form_address_two) > 0) + { + if ($web_form_address_two == '--BLANK--') + {$webformtwoSQL = " ,web_form_address_two=''";} + else + {$webformtwoSQL = " ,web_form_address_two='$web_form_address_two'";} + } + + $updateSQL = "$webformtwoSQL$webformSQL$ammessageSQL$outboundcidSQL$activeSQL$listnameSQL$campaignSQL$scriptSQL$dropingroupSQL"; + + if (strlen($updateSQL)< 3) + { + $result = 'NOTICE'; + $result_reason = "update_list 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 (strlen($campaignSQL) > 3) + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $old_campaign_id=$row[0]; + if ($campaign_id != "$old_campaign_id") + { + $stmt="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "|$stmt|\n";} + } + } + + $stmt="UPDATE vicidial_lists SET list_changedate='$NOW_TIME' $updateSQL WHERE list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "|$stmt|\n";} + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_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='MODIFY', record_id='$list_id', event_code='ADMIN API UPDATE LIST', event_sql=\"$SQL_log\", event_notes='list: $list_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'SUCCESS'; + $result_reason = "update_list LIST HAS BEEN UPDATED"; + $data = "$list_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); + } + + if ($reset_list == 'Y') + { + $stmt="UPDATE vicidial_lists SET list_changedate='$NOW_TIME' WHERE list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "|$stmt|\n";} + + $stmt="UPDATE vicidial_list SET called_since_last_reset='N' WHERE list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($DB) {echo "|$stmt|\n";} + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_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='RESET', record_id='$list_id', event_code='ADMIN API RESET LIST', event_sql=\"$SQL_log\", event_notes='list: $list_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'NOTICE'; + $result_reason = "update_list LEADS IN LIST HAVE BEEN RESET"; + $data = "$list_id|$affected_rows"; + echo "$result: $result_reason - $user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($delete_list == 'Y') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_lists='1' and delete_lists='1' and user_level >= 8;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'NOTICE'; + $result_reason = "update_list USER DOES NOT HAVE PERMISSION TO DELETE LISTS"; + $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 + { + $stmt="DELETE FROM vicidial_lists WHERE list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($DB) {echo "|$stmt|\n";} + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_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='DELETE', record_id='$list_id', event_code='ADMIN API DELETE LIST', event_sql=\"$SQL_log\", event_notes='list: $list_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'NOTICE'; + $result_reason = "update_list LIST HAS BEEN DELETED"; + $data = "$list_id|$affected_rows"; + echo "$result: $result_reason - $user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + + if ($delete_leads == 'Y') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_lists='1' and delete_lists='1' and modify_leads='1' and user_level >= 8;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'NOTICE'; + $result_reason = "update_list USER DOES NOT HAVE PERMISSION TO DELETE LEADS"; + $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 + { + $stmt="DELETE FROM vicidial_list WHERE list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($DB) {echo "|$stmt|\n";} + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_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='DELETE', record_id='$list_id', event_code='ADMIN API DELETE LEADS', event_sql=\"$SQL_log\", event_notes='list: $list_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'NOTICE'; + $result_reason = "update_list LEADS IN LIST HAVE BEEN DELETED"; + $data = "$list_id|$affected_rows"; + echo "$result: $result_reason - $user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + } + if ($function != 'add_list') + {exit;} + } +################################################################################ +### END update_list +################################################################################ + + + + + +################################################################################ +### add_list - adds list to the vicidial_lists table +################################################################################ +if ($function == 'add_list') + { + 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 + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_lists='1' and user_level >= 8;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "add_list USER DOES NOT HAVE PERMISSION TO ADD LISTS"; + $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($list_id)<2) or (strlen($list_id)>14) or (strlen($campaign_id)<1) or (strlen($campaign_id)>8) or (strlen($list_name)<6) or (strlen($list_name)>30) ) + { + $result = 'ERROR'; + $result_reason = "add_list YOU MUST USE ALL REQUIRED FIELDS"; + $data = "$list_id|$list_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 count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_exists=$row[0]; + if ($campaign_exists < 1) + { + $result = 'ERROR'; + $result_reason = "add_list 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 + { + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_exists=$row[0]; + if ($list_exists > 0) + { + $result = 'ERROR'; + $result_reason = "add_list LIST ALREADY EXISTS"; + $data = "$list_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 count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + if ($phone_exists > 0) + { + $result = 'ERROR'; + $result_reason = "add_phone PHONE LOGIN ALREADY EXISTS"; + $data = "$phone_login"; + 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($script) > 0) + { + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_exists=$row[0]; + if ($script_exists < 1) + { + $result = 'ERROR'; + $result_reason = "add_list SCRIPT DOES NOT EXIST, THIS IS AN OPTIONAL FIELD"; + $data = "$script"; + 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; + } + } + if (strlen($drop_inbound_group) > 0) + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$drop_inbound_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_exists=$row[0]; + if ($script_exists < 1) + { + $result = 'ERROR'; + $result_reason = "add_list IN-GROUP DOES NOT EXIST, THIS IS AN OPTIONAL FIELD"; + $data = "$drop_inbound_group"; + 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; + } + } + if (strlen($active)<1) {$active='N';} + + $stmt="INSERT INTO vicidial_lists SET list_id='$list_id', list_name='$list_name', campaign_id='$campaign_id', active='$active', campaign_cid_override='$outbound_cid', agent_script_override='$script', am_message_exten_override='$am_message', drop_inbound_group_override='$drop_inbound_group', web_form_address='$web_form_address', web_form_address_two='$web_form_address_two';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "|$stmt|\n";} + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_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';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'SUCCESS'; + $result_reason = "add_list LIST HAS BEEN ADDED"; + $data = "$list_id|$list_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 add_list +################################################################################ + + + + + ################################################################################ ### recording_lookup - looks up recordings based upon user and date or lead_id ################################################################################