Added "Agent Call Hangup Route" campaign settings, allowing you to send calls that an agent is finished with to a Call Menu, In-Group or a pre-recorded message before hanging up the call.
NOTE: After upgrading your system, be sure to set each dialer to "Rebuild conf files" = 'Y' for this feature to work properly. Changed year in admin screens to 2023. git-svn-id: svn://192.168.202.10@3672 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
# non_agent_api.php
|
||||
#
|
||||
# Copyright (C) 2022 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||
# Copyright (C) 2023 Matt Florell <vicidial@gmail.com> 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
|
||||
@@ -198,10 +198,11 @@
|
||||
# 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
|
||||
# 221108-1849 - Added include_ip option for agent_status function
|
||||
# 230118-0833 - Added ingroup_list and callmenu_list functions
|
||||
#
|
||||
|
||||
$version = '2.14-175';
|
||||
$build = '221108-1849';
|
||||
$version = '2.14-176';
|
||||
$build = '230118-0833';
|
||||
$php_script='non_agent_api.php';
|
||||
$api_url_log = 0;
|
||||
|
||||
@@ -1947,6 +1948,254 @@ if ($function == 'vm_list')
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
### ingroup_list - sends a list of the inbound groups in the system
|
||||
################################################################################
|
||||
if ($function == 'ingroup_list')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_users where user='$user' and user_level > 6 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 = "ingroup_list USER DOES NOT HAVE PERMISSION TO VIEW INBOUND GROUPS LIST";
|
||||
echo "$result: $result_reason: |$user|$allowed_user|\n";
|
||||
$data = "$allowed_user";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
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 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];
|
||||
|
||||
$LOGadmin_viewable_groupsSQL='';
|
||||
$whereLOGadmin_viewable_groupsSQL='';
|
||||
if ( (!preg_match('/\-\-ALL\-\-/i',$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
|
||||
{
|
||||
$rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
|
||||
$rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
|
||||
$LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
|
||||
$whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
|
||||
}
|
||||
|
||||
$server_name = getenv("SERVER_NAME");
|
||||
$server_port = getenv("SERVER_PORT");
|
||||
if (preg_match("/443/i",$server_port)) {$HTTPprotocol = 'https://';}
|
||||
else {$HTTPprotocol = 'http://';}
|
||||
$admDIR = "$HTTPprotocol$server_name:$server_port";
|
||||
|
||||
echo "\n";
|
||||
echo "<HTML><head><title>NON-AGENT API</title>\n";
|
||||
echo "<script language=\"Javascript\">\n";
|
||||
echo "function choose_file(filename,fieldname)\n";
|
||||
echo " {\n";
|
||||
echo " if (filename.length > 0)\n";
|
||||
echo " {\n";
|
||||
echo " parent.document.getElementById(fieldname).value = filename;\n";
|
||||
echo " document.getElementById(\"selectframe\").innerHTML = '';\n";
|
||||
echo " document.getElementById(\"selectframe\").style.visibility = 'hidden';\n";
|
||||
echo " parent.close_chooser();\n";
|
||||
echo " }\n";
|
||||
echo " }\n";
|
||||
echo "function close_file()\n";
|
||||
echo " {\n";
|
||||
echo " document.getElementById(\"selectframe\").innerHTML = '';\n";
|
||||
echo " document.getElementById(\"selectframe\").style.visibility = 'hidden';\n";
|
||||
echo " parent.close_chooser();\n";
|
||||
echo " }\n";
|
||||
echo "</script>\n";
|
||||
echo "</head>\n\n";
|
||||
|
||||
echo "<body>\n";
|
||||
echo "<a href=\"javascript:close_file();\"><font size=1 face=\"Arial,Helvetica\">"._QXZ("close frame")."</font></a>\n";
|
||||
echo "<div id='selectframe' style=\"height:400px;width:710px;overflow:scroll;\">\n";
|
||||
echo "<table border=0 cellpadding=1 cellspacing=2 width=690 bgcolor=white><tr>\n";
|
||||
echo "<td width=30>#</td>\n";
|
||||
echo "<td colspan=2>"._QXZ("Inbound Groups")."</td>\n";
|
||||
echo "<td>"._QXZ("Name")."</td>\n";
|
||||
echo "<td>"._QXZ("Color")."</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
$rowx=array();
|
||||
$group_id=array();
|
||||
$fullname=array();
|
||||
$color=array();
|
||||
|
||||
$stmt="SELECT group_id,group_name,group_color from vicidial_inbound_groups where active='Y' $LOGadmin_viewable_groupsSQL order by group_id";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vm_to_print = mysqli_num_rows($rslt);
|
||||
$k=0;
|
||||
$sf=0;
|
||||
while ($vm_to_print > $k)
|
||||
{
|
||||
$rowx=mysqli_fetch_row($rslt);
|
||||
$group_id[$k] = $rowx[0];
|
||||
$fullname[$k] = $rowx[1];
|
||||
$color[$k] = $rowx[2];
|
||||
$sf++;
|
||||
if (preg_match("/1$|3$|5$|7$|9$/i", $sf))
|
||||
{$bgcolor='bgcolor="#E6E6E6"';}
|
||||
else
|
||||
{$bgcolor='bgcolor="#F6F6F6"';}
|
||||
echo "<tr $bgcolor><td width=30><font size=1 face=\"Arial,Helvetica\">$sf</td>\n";
|
||||
echo "<td colspan=2><a href=\"javascript:choose_file('$group_id[$k]','$comments');\"><font size=2 face=\"Arial,Helvetica\">$group_id[$k]</a></td>\n";
|
||||
echo "<td><font size=2 face=\"Arial,Helvetica\">$fullname[$k]</td>\n";
|
||||
echo "<td bgcolor=\"$color[$k]\"><font size=2 face=\"Arial,Helvetica\"> </td></tr>\n";
|
||||
|
||||
$k++;
|
||||
}
|
||||
echo "</table></div></body></HTML>\n";
|
||||
|
||||
exit;
|
||||
}
|
||||
}
|
||||
################################################################################
|
||||
### END ingroup_list
|
||||
################################################################################
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
### callmenu_list - sends a list of the inbound groups in the system
|
||||
################################################################################
|
||||
if ($function == 'callmenu_list')
|
||||
{
|
||||
$stmt="SELECT count(*) from vicidial_users where user='$user' and user_level > 6 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 = "callmenu_list USER DOES NOT HAVE PERMISSION TO VIEW CALL MENUS LIST";
|
||||
echo "$result: $result_reason: |$user|$allowed_user|\n";
|
||||
$data = "$allowed_user";
|
||||
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||
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 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];
|
||||
|
||||
$LOGadmin_viewable_groupsSQL='';
|
||||
$whereLOGadmin_viewable_groupsSQL='';
|
||||
if ( (!preg_match('/\-\-ALL\-\-/i',$LOGadmin_viewable_groups)) and (strlen($LOGadmin_viewable_groups) > 3) )
|
||||
{
|
||||
$rawLOGadmin_viewable_groupsSQL = preg_replace("/ -/",'',$LOGadmin_viewable_groups);
|
||||
$rawLOGadmin_viewable_groupsSQL = preg_replace("/ /","','",$rawLOGadmin_viewable_groupsSQL);
|
||||
$LOGadmin_viewable_groupsSQL = "and user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
|
||||
$whereLOGadmin_viewable_groupsSQL = "where user_group IN('---ALL---','$rawLOGadmin_viewable_groupsSQL')";
|
||||
}
|
||||
|
||||
$server_name = getenv("SERVER_NAME");
|
||||
$server_port = getenv("SERVER_PORT");
|
||||
if (preg_match("/443/i",$server_port)) {$HTTPprotocol = 'https://';}
|
||||
else {$HTTPprotocol = 'http://';}
|
||||
$admDIR = "$HTTPprotocol$server_name:$server_port";
|
||||
|
||||
echo "\n";
|
||||
echo "<HTML><head><title>NON-AGENT API</title>\n";
|
||||
echo "<script language=\"Javascript\">\n";
|
||||
echo "function choose_file(filename,fieldname)\n";
|
||||
echo " {\n";
|
||||
echo " if (filename.length > 0)\n";
|
||||
echo " {\n";
|
||||
echo " parent.document.getElementById(fieldname).value = filename;\n";
|
||||
echo " document.getElementById(\"selectframe\").innerHTML = '';\n";
|
||||
echo " document.getElementById(\"selectframe\").style.visibility = 'hidden';\n";
|
||||
echo " parent.close_chooser();\n";
|
||||
echo " }\n";
|
||||
echo " }\n";
|
||||
echo "function close_file()\n";
|
||||
echo " {\n";
|
||||
echo " document.getElementById(\"selectframe\").innerHTML = '';\n";
|
||||
echo " document.getElementById(\"selectframe\").style.visibility = 'hidden';\n";
|
||||
echo " parent.close_chooser();\n";
|
||||
echo " }\n";
|
||||
echo "</script>\n";
|
||||
echo "</head>\n\n";
|
||||
|
||||
echo "<body>\n";
|
||||
echo "<a href=\"javascript:close_file();\"><font size=1 face=\"Arial,Helvetica\">"._QXZ("close frame")."</font></a>\n";
|
||||
echo "<div id='selectframe' style=\"height:400px;width:710px;overflow:scroll;\">\n";
|
||||
echo "<table border=0 cellpadding=1 cellspacing=2 width=690 bgcolor=white><tr>\n";
|
||||
echo "<td width=30>#</td>\n";
|
||||
echo "<td colspan=2>"._QXZ("Call Menus")."</td>\n";
|
||||
echo "<td>"._QXZ("Name")."</td>\n";
|
||||
# echo "<td>"._QXZ("Color")."</td>\n";
|
||||
echo "</tr>\n";
|
||||
|
||||
$rowx=array();
|
||||
$group_id=array();
|
||||
$fullname=array();
|
||||
$color=array();
|
||||
|
||||
$stmt="SELECT menu_id,menu_name,menu_prompt from vicidial_call_menu $whereLOGadmin_viewable_groupsSQL order by menu_id";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
$vm_to_print = mysqli_num_rows($rslt);
|
||||
$k=0;
|
||||
$sf=0;
|
||||
while ($vm_to_print > $k)
|
||||
{
|
||||
$rowx=mysqli_fetch_row($rslt);
|
||||
$group_id[$k] = $rowx[0];
|
||||
$fullname[$k] = $rowx[1];
|
||||
$color[$k] = $rowx[2];
|
||||
$sf++;
|
||||
if (preg_match("/1$|3$|5$|7$|9$/i", $sf))
|
||||
{$bgcolor='bgcolor="#E6E6E6"';}
|
||||
else
|
||||
{$bgcolor='bgcolor="#F6F6F6"';}
|
||||
echo "<tr $bgcolor><td width=30><font size=1 face=\"Arial,Helvetica\">$sf</td>\n";
|
||||
echo "<td colspan=2><a href=\"javascript:choose_file('$group_id[$k]','$comments');\"><font size=2 face=\"Arial,Helvetica\">$group_id[$k]</a></td>\n";
|
||||
echo "<td><font size=2 face=\"Arial,Helvetica\">$fullname[$k]</td></tr>\n";
|
||||
# echo "<td bgcolor=\"$color[$k]\"><font size=2 face=\"Arial,Helvetica\"> </td></tr>\n";
|
||||
|
||||
$k++;
|
||||
}
|
||||
echo "</table></div></body></HTML>\n";
|
||||
|
||||
exit;
|
||||
}
|
||||
}
|
||||
################################################################################
|
||||
### END callmenu_list
|
||||
################################################################################
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user