Added tw_check option for transfer_conference API function
git-svn-id: svn://192.168.202.10@3832 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
AGENT API DOCUMENT Started: 2008-07-03 Updated: 2024-04-25
|
AGENT API DOCUMENT Started: 2008-07-03 Updated: 2024-04-27
|
||||||
|
|
||||||
This document describes the functions of an API(Application Programming Interface)
|
This document describes the functions of an API(Application Programming Interface)
|
||||||
for the VICIDIAL Agent screen. This functionality will be rather limited at first
|
for the VICIDIAL Agent screen. This functionality will be rather limited at first
|
||||||
@@ -718,7 +718,9 @@ VALUES:
|
|||||||
multi_dial_phones -
|
multi_dial_phones -
|
||||||
OPTIONAL, for use only with "Agent 3-way Press-1 Calls", contains up to 10 phone numbers separated by commas: "2125551212,4075551212,3125551212" (duplicates will be removed)
|
OPTIONAL, for use only with "Agent 3-way Press-1 Calls", contains up to 10 phone numbers separated by commas: "2125551212,4075551212,3125551212" (duplicates will be removed)
|
||||||
md_check -
|
md_check -
|
||||||
OPTIONAL, for use only with 'multi_dial_phones' option above, if this is set to 'YES' it will check for still-active previous 3-way calls and show an error if any are found
|
OPTIONAL, for use only with 'multi_dial_phones' option above, if this is set to 'YES' it will check for still-active previous 3-way press-1 calls and show an error if any are found
|
||||||
|
tw_check -
|
||||||
|
OPTIONAL, for use only with the dialing 3-way call options above, if this is set to 'YES' it will check for still-active previous 3-way calls and show an error if any are found
|
||||||
|
|
||||||
EXAMPLE URLS:
|
EXAMPLE URLS:
|
||||||
http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=transfer_conference&value=HANGUP_XFER
|
http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=transfer_conference&value=HANGUP_XFER
|
||||||
@@ -746,6 +748,7 @@ ERROR: caller_id_number from group_alias is not valid - 6666|TESTING|123
|
|||||||
ERROR: group_alias is not valid - 6666|TESTING
|
ERROR: group_alias is not valid - 6666|TESTING
|
||||||
ERROR: cid_choice is not valid - 6666|TESTING
|
ERROR: cid_choice is not valid - 6666|TESTING
|
||||||
ERROR: agent_user has previous active 3-way calls - 6666|1|0|YES
|
ERROR: agent_user has previous active 3-way calls - 6666|1|0|YES
|
||||||
|
ERROR: agent_user has current active 3-way call - 6666|1|0|YES
|
||||||
SUCCESS: transfer_conference function set - LOCAL_CLOSER|SALESLINE||YES|6666|M2141842580000000044|
|
SUCCESS: transfer_conference function set - LOCAL_CLOSER|SALESLINE||YES|6666|M2141842580000000044|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -114,10 +114,11 @@
|
|||||||
# 231222-2105 - Added multi_dial_phones option to the transfer_conference function
|
# 231222-2105 - Added multi_dial_phones option to the transfer_conference function
|
||||||
# 240219-1500 - Added daily_limit setting to change_ingroups function
|
# 240219-1500 - Added daily_limit setting to change_ingroups function
|
||||||
# 240425-1901 - Added md_check option for transfer_conference function
|
# 240425-1901 - Added md_check option for transfer_conference function
|
||||||
|
# 240427-0809 - Added tw_check option for transfer_conference function
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-79';
|
$version = '2.14-80';
|
||||||
$build = '240425-1901';
|
$build = '240427-0809';
|
||||||
$php_script = 'api.php';
|
$php_script = 'api.php';
|
||||||
|
|
||||||
$startMS = microtime();
|
$startMS = microtime();
|
||||||
@@ -295,6 +296,8 @@ if (isset($_GET["multi_dial_phones"])) {$multi_dial_phones=$_GET["multi_dial_p
|
|||||||
elseif (isset($_POST["multi_dial_phones"])) {$multi_dial_phones=$_POST["multi_dial_phones"];}
|
elseif (isset($_POST["multi_dial_phones"])) {$multi_dial_phones=$_POST["multi_dial_phones"];}
|
||||||
if (isset($_GET["md_check"])) {$md_check=$_GET["md_check"];}
|
if (isset($_GET["md_check"])) {$md_check=$_GET["md_check"];}
|
||||||
elseif (isset($_POST["md_check"])) {$md_check=$_POST["md_check"];}
|
elseif (isset($_POST["md_check"])) {$md_check=$_POST["md_check"];}
|
||||||
|
if (isset($_GET["tw_check"])) {$tw_check=$_GET["tw_check"];}
|
||||||
|
elseif (isset($_POST["tw_check"])) {$tw_check=$_POST["tw_check"];}
|
||||||
|
|
||||||
$DB=preg_replace("/[^0-9a-zA-Z]/","",$DB);
|
$DB=preg_replace("/[^0-9a-zA-Z]/","",$DB);
|
||||||
|
|
||||||
@@ -358,6 +361,7 @@ $campaign_dnc_check=preg_replace("/[^-_0-9a-zA-Z]/","",$campaign_dnc_check);
|
|||||||
$notification_date = preg_replace('/[^- \:0-9]/','',$notification_date);
|
$notification_date = preg_replace('/[^- \:0-9]/','',$notification_date);
|
||||||
$multi_dial_phones = preg_replace('/[^\,0-9]/','',$multi_dial_phones);
|
$multi_dial_phones = preg_replace('/[^\,0-9]/','',$multi_dial_phones);
|
||||||
$md_check = preg_replace("/[^0-9a-zA-Z]/","",$md_check);
|
$md_check = preg_replace("/[^0-9a-zA-Z]/","",$md_check);
|
||||||
|
$tw_check = preg_replace("/[^0-9a-zA-Z]/","",$tw_check);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
@@ -4030,12 +4034,15 @@ if ($function == 'transfer_conference')
|
|||||||
$row=mysqli_fetch_row($rslt);
|
$row=mysqli_fetch_row($rslt);
|
||||||
if ($row[0] > 0)
|
if ($row[0] > 0)
|
||||||
{
|
{
|
||||||
$stmt = "select lead_id,callerid from vicidial_live_agents where user='$agent_user';";
|
$stmt = "select lead_id,callerid,server_ip,conf_exten,status from vicidial_live_agents where user='$agent_user';";
|
||||||
if ($DB) {echo "$stmt\n";}
|
if ($DB) {echo "$stmt\n";}
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
$row=mysqli_fetch_row($rslt);
|
$row=mysqli_fetch_row($rslt);
|
||||||
$lead_id = $row[0];
|
$lead_id = $row[0];
|
||||||
$callerid = $row[1];
|
$callerid = $row[1];
|
||||||
|
$AGENTserver_ip = $row[2];
|
||||||
|
$AGENTconf_exten = $row[3];
|
||||||
|
$AGENTstatus = $row[4];
|
||||||
if ( ($lead_id > 0) and (strlen($callerid)>15) )
|
if ( ($lead_id > 0) and (strlen($callerid)>15) )
|
||||||
{
|
{
|
||||||
### START In-group transfer or bridge ###
|
### START In-group transfer or bridge ###
|
||||||
@@ -4224,6 +4231,7 @@ if ($function == 'transfer_conference')
|
|||||||
$multi_dial_phones_STRING='';
|
$multi_dial_phones_STRING='';
|
||||||
if (strlen($multi_dial_phones) > 4)
|
if (strlen($multi_dial_phones) > 4)
|
||||||
{
|
{
|
||||||
|
### START 3-way press-1 multi-dial calls processing ###
|
||||||
$multi_dial_phonesARY=array();
|
$multi_dial_phonesARY=array();
|
||||||
$multi_dial_phones_ct=0;
|
$multi_dial_phones_ct=0;
|
||||||
if (preg_match("/,/",$multi_dial_phones))
|
if (preg_match("/,/",$multi_dial_phones))
|
||||||
@@ -4256,8 +4264,9 @@ if ($function == 'transfer_conference')
|
|||||||
$md_check_ct=0;
|
$md_check_ct=0;
|
||||||
if (preg_match("/YES/i",$md_check))
|
if (preg_match("/YES/i",$md_check))
|
||||||
{
|
{
|
||||||
|
$half_hour_ago = date("Y-m-d H:i:s", mktime(date("H"),date("i")-30,date("s"),date("m"),date("d"),date("Y")));
|
||||||
# check for still-active previous 3-way calls from this agent and send error if any are found
|
# check for still-active previous 3-way calls from this agent and send error if any are found
|
||||||
$stmt = "select count(*) from vicidial_3way_press_live where user='$agent_user' and status NOT IN('HUNGUP','DEFEATED','TRANSFER','TOOSLOW','DECLINED');";
|
$stmt = "select count(*) from vicidial_3way_press_live where user='$agent_user' and status NOT IN('HUNGUP','DEFEATED','TRANSFER','TOOSLOW','DECLINED') and call_date > \"$half_hour_ago\";";
|
||||||
if ($DB) {echo "$stmt\n";}
|
if ($DB) {echo "$stmt\n";}
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
$VDTW_live_ct = mysqli_num_rows($rslt);
|
$VDTW_live_ct = mysqli_num_rows($rslt);
|
||||||
@@ -4285,8 +4294,45 @@ if ($function == 'transfer_conference')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$multi_dial_phones_OUTPUT = "|Multi-phones: $vp $mp $affected_rowsVP";
|
$multi_dial_phones_OUTPUT = "|Multi-phones: $vp $mp $affected_rowsVP";
|
||||||
|
### END 3-way press-1 multi-dial calls processing ###
|
||||||
}
|
}
|
||||||
|
|
||||||
|
### START Check for already active 3-way calls in agent session, if enabled ###
|
||||||
|
if (preg_match("/YES/i",$tw_check))
|
||||||
|
{
|
||||||
|
$conf_engine='';
|
||||||
|
$conf_table = 'vicidial_conferences';
|
||||||
|
$tw_check_ct=0;
|
||||||
|
|
||||||
|
$stmt = "SELECT conf_engine from servers where server_ip='$AGENTserver_ip';";
|
||||||
|
if ($DB) {echo "$stmt\n";}
|
||||||
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
|
$row=mysqli_fetch_row($rslt);
|
||||||
|
$conf_engine = $row[0];
|
||||||
|
if (preg_match("/CONFBRIDGE/i",$conf_engine)) {$conf_table = 'vicidial_confbridges';}
|
||||||
|
|
||||||
|
# check for active 3-way call from this agent and send error if any are found
|
||||||
|
$stmt = "SELECT count(*) from live_sip_channels where server_ip='$AGENTserver_ip' and channel_group LIKE \"DC%W\" and extension='$AGENTconf_exten';";
|
||||||
|
if ($DB) {echo "$stmt\n";}
|
||||||
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
|
$TW_live_ct = mysqli_num_rows($rslt);
|
||||||
|
if ($TW_live_ct > 0)
|
||||||
|
{
|
||||||
|
$row=mysqli_fetch_row($rslt);
|
||||||
|
$tw_check_ct = $row[0];
|
||||||
|
}
|
||||||
|
if ($tw_check_ct > 0)
|
||||||
|
{
|
||||||
|
$result = _QXZ("ERROR");
|
||||||
|
$result_reason = _QXZ("agent_user has current active 3-way call");
|
||||||
|
$data = "$tw_check_ct|0|$tw_check";
|
||||||
|
echo "$result: $result_reason - $agent_user|$data\n";
|
||||||
|
api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
### END Check for already active 3-way calls in agent session, if enabled ###
|
||||||
|
|
||||||
$stmt="UPDATE vicidial_live_agents set external_transferconf='$external_transferconf' where user='$agent_user';";
|
$stmt="UPDATE vicidial_live_agents set external_transferconf='$external_transferconf' where user='$agent_user';";
|
||||||
if ($format=='debug') {echo "\n<!-- $stmt -->";}
|
if ($format=='debug') {echo "\n<!-- $stmt -->";}
|
||||||
if ($DB) {echo "$stmt\n";}
|
if ($DB) {echo "$stmt\n";}
|
||||||
|
|||||||
Reference in New Issue
Block a user