Added external_add_lead api.php function

git-svn-id: svn://192.168.202.10@1396 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2010-04-02 04:56:38 +00:00
parent 81741311b8
commit d522b0ff44
3 changed files with 229 additions and 3 deletions
+61
View File
@@ -15,6 +15,7 @@ external_hangup - sends command to hangup the current phone call for one specifi
external_status - sends command to set the disposition for one specific agent and move on to next call
external_pause - sends command to pause/resume an agent now if not on a call, or pause after their next call if on call
external_dial - sends command to manually dial a number on the agent's screen
external_add_lead - Adds a lead in the manual dial list of the campaign for logged-in agent
change_ingroups - changes the selected in-groups for a logged-in agent
update_fields - changes values for selected data fields in the agent interface
set_timer_action - sets timer action for the current call the agent is on
@@ -183,6 +184,66 @@ SUCCESS: external_dial function set - 7275551212|6666|1|YES|NO|YES|123456|123202
--------------------------------------------------------------------------------
external_add_lead -
DESCRIPTION:
Adds a lead in the manual dial list of the campaign for logged-in agent. A much simplified add lead function compared to the Non-Agent API function
VALUES:
agent_user -
REQUIRED alphanumeric string for agent user
dnc_check -
OPTIONAL - Check for number against system DNC
campaign_dnc_check -
OPTIONAL - Check for number against campaign DNC from the agent's campaign
LEAD DATA (must populate at least one)
NOTE: Only fields that are specified in the API call will be modified
address1
address2
address3
alt_phone
city
comments
country_code
date_of_birth
email
first_name
gender
gmt_offset_now
last_name
middle_initial
phone_number
phone_code
postal_code
province
security_phrase
source_id
state
title
vendor_lead_code
rank
owner
EXAMPLE URLS:
http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_add_lead&phone_number=7275551212&phone_code=1&first_name=Bob&last_name=Smith=NO&dnc_check=YES
RESPONSES:
ERROR: external_add_lead not valid - 7275551212|1|6666|
ERROR: no user found - 6666
ERROR: lead insertion failed - 7275551212|TESTCAMP|101|6666
ERROR: add_lead PHONE NUMBER IN DNC - 7275551212|6666
ERROR: add_lead PHONE NUMBER IN CAMPAIGN DNC - 7275551212|TESTCAMP|6666
ERROR: campaign manual dial list undefined - 7275551212|TESTCAMP|6666
ERROR: agent_user is not logged in - 6666
SUCCESS: lead added - 7275551212|TESTCAMP|101|123456|6666
--------------------------------------------------------------------------------
change_ingroups -
+1 -1
View File
@@ -16,7 +16,7 @@ AB - Busy Auto - Carrier-received Busy signal
DC - Disconnected Number - Agent-Defined Disconnected number
ADC - Disconnected Number Auto - Carrier-received Disconnected number
DEC - Declined Sale - Agent-defined status
DNC - DO NOT CALL - If defined, lead will also go int he VICIDIAL DNC list
DNC - DO NOT CALL - If defined, lead will also go in the VICIDIAL DNC list
DNCL - DO NOT CALL Hopper Match - status of a lead that matches the phone number of a lead that has been placed in the VICIDIAL DNC list
DNCC - DO NOT CALL Hopper Match Campaign- status of a lead that matches the phone number of a lead that has been placed in the VICIDIAL Campaign-specific DNC list for this Campaign
SALE - Sale Made - Agent-defined status
+167 -2
View File
@@ -46,9 +46,11 @@
# 91228-1059 - Added update_fields function
# 100315-2021 - Added ra_call_control function
# 100318-0605 - Added close_window_link and language options
# 100401-2357 - Added external_add_lead function (contributed by aouyar)
#
$version = '2.2.0-13';
$build = '100318-0605';
$version = '2.4-14';
$build = '100401-2357';
require("dbconnect.php");
@@ -151,6 +153,12 @@ if (isset($_GET["status"])) {$status=$_GET["status"];}
elseif (isset($_POST["status"])) {$status=$_POST["status"];}
if (isset($_GET["close_window_link"])) {$close_window_link=$_GET["close_window_link"];}
elseif (isset($_POST["close_window_link"])) {$close_window_link=$_POST["close_window_link"];}
if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];}
elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];}
if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];}
elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];}
if (isset($_GET["DB"])) {$DB=$_GET["DB"];}
elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];}
header ("Content-type: text/html; charset=utf-8");
@@ -783,6 +791,163 @@ if ($function == 'external_dial')
################################################################################
### BEGIN - external_add_lead - add lead in manual dial list of the campaign for logged-in agent
################################################################################
if ($function == 'external_add_lead')
{
if ( (strlen($value) < 1) and (strlen($phone_number) > 1) )
{$value = $phone_number;}
if ( ( (strlen($agent_user)<2) and (strlen($alt_user)<2) ) or (strlen($phone_code)<1) or (strlen($value)<2) )
{
$result = 'ERROR';
$result_reason = "external_add_lead not valid";
$data = "$value|$phone_code";
echo "$result: $result_reason - $data|$agent_user|$alt_user\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
exit;
}
else
{
if (strlen($vendor_id) > 0 )
{
$vendor_lead_code = $vendor_id;
}
if (strlen($alt_user)>1)
{
$stmt = "select count(*) from vicidial_users where custom_three='$alt_user';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_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_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$agent_user = $row[0];
}
else
{
$result = 'ERROR';
$result_reason = "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_query($stmt, $link);
$row=mysql_fetch_row($rslt);
if ($row[0] > 0)
{
$stmt = "select c.campaign_id,c.manual_dial_list_id from vicidial_campaigns c,vicidial_live_agents a where a.user='$agent_user' and a.campaign_id=c.campaign_id;";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$nrow=mysql_num_rows($rslt);
if ($nrow > 0)
{
$list_id = $row[1];
$campaign_id = $row[0];
# DNC Check
if ($dnc_check == 'YES' or $dnc_check=='Y')
{
$stmt="SELECT count(*) from vicidial_dnc where phone_number='$value';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$dnc_found=$row[0];
}
else
{
$dnc_found=0;
}
# Campaign DNC Check
if ($campaign_dnc_check == 'YES' or $campaign_dnc_check=='Y')
{
$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$value' and campaign_id='$campaign_id';";
if ($DB) {echo "|$stmt|\n";}
$rslt=mysql_query($stmt, $link);
$row=mysql_fetch_row($rslt);
$camp_dnc_found=$row[0];
}
else
{
$camp_dnc_found=0;
}
if ($dnc_found==0 and $camp_dnc_found==0)
{
### insert a new lead in the system with this phone number
$stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$value',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',title='$title',first_name='$first_name',middle_initial='$middle_initial',last_name='$last_name',address1='$address1',address2='$address2',address3='$address3',city='$city',state='$state',province='$province',postal_code='$postal_code',country_code='$country_code',gender='$gender',date_of_birth='$date_of_birth',alt_phone='$alt_phone',email='$email',security_phrase='$security_phrase',comments='$comments',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';";
if ($DB) {echo "$stmt\n";}
$rslt=mysql_query($stmt, $link);
$affected_rows = mysql_affected_rows($link);
if ($affected_rows > 0)
{
$lead_id = mysql_insert_id($link);
$result = 'SUCCESS';
$result_reason = "lead added";
echo "$result: $result_reason - $value|$campaign_id|$list_id|$lead_id|$agent_user\n";
$data = "$value|$list_id|$lead_id";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
else
{
$result = 'ERROR';
$result_reason = "lead insertion failed";
echo "$result: $result_reason - $value|$campaign_id|$list_id|$agent_user\n";
$data = "$value|$list_id|$stmt";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
if ($dnc_found>0)
{
$result = 'ERROR';
$result_reason = "add_lead PHONE NUMBER IN DNC";
echo "$result: $result_reason - $value|$agent_user\n";
$data = "$value";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
if ($camp_dnc_found>0)
{
$result = 'ERROR';
$result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC";
echo "$result: $result_reason - $value|$campaign_id|$agent_user\n";
$data = "$value|$campaign_id";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
}
else
{
$result = 'ERROR';
$result_reason = "campaign manual dial list undefined";
echo "$result: $result_reason - $value|$campaign_id|$agent_user\n";
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
}
}
else
{
$result = 'ERROR';
$result_reason = "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 - external_add_lead
################################################################################
################################################################################
### BEGIN - change_ingroups - change selected in-groups for logged-in agent
################################################################################