Patched sec_convert to fix rounding time bug, issue #1011
Added start_call_url function to manual-dial calls git-svn-id: svn://192.168.202.10@2746 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -156,6 +156,8 @@ OTHER CHANGES:
|
||||
32. Added campaign options to stop recording when a 3-way call is started and
|
||||
start recording when the hangup xfer line button is clicked
|
||||
|
||||
33. Added start call URL feature support for manual dial calls
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+692
-8
@@ -428,13 +428,14 @@
|
||||
# 170327-1656 - Added USER_CUSTOM_ options to campaign custom callerID setting
|
||||
# 170401-1437 - Added translation of callbacks statuses, issue #1006
|
||||
# 170429-0835 - Added callback_display_days option
|
||||
# 170504-1056 - Added start_call_url to manual-dial calls
|
||||
#
|
||||
|
||||
$version = '2.14-322';
|
||||
$build = '170429-0835';
|
||||
$version = '2.14-323';
|
||||
$build = '170504-1056';
|
||||
$php_script = 'vdc_db_query.php';
|
||||
$mel=1; # Mysql Error Log enabled = 1
|
||||
$mysql_log_count=661;
|
||||
$mysql_log_count=684;
|
||||
$one_mysql_log=0;
|
||||
$DB=0;
|
||||
$VD_login=0;
|
||||
@@ -3909,7 +3910,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;}
|
||||
### check for custom cid use
|
||||
$use_custom_cid=0;
|
||||
$stmt = "SELECT use_custom_cid,manual_dial_hopper_check FROM vicidial_campaigns where campaign_id='$campaign';";
|
||||
$stmt = "SELECT use_custom_cid,manual_dial_hopper_check,start_call_url FROM vicidial_campaigns where campaign_id='$campaign';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00313',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -3919,6 +3920,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$use_custom_cid = $row[0];
|
||||
$manual_dial_hopper_check = $row[1];
|
||||
$OUT_start_call_url = $row[2];
|
||||
if ( (preg_match('/^USER_CUSTOM/', $use_custom_cid)) and ($cid_lock < 1) )
|
||||
{
|
||||
$temp_vu='';
|
||||
@@ -4052,7 +4054,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
{
|
||||
### look for a dial-ingroup cid
|
||||
$dial_ingroup_cid='';
|
||||
$stmt = "SELECT dial_ingroup_cid FROM vicidial_inbound_groups where group_id='$dial_ingroup';";
|
||||
$stmt = "SELECT dial_ingroup_cid,start_call_url FROM vicidial_inbound_groups where group_id='$dial_ingroup';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00440',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -4060,7 +4062,8 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
if ($digcid_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$dial_ingroup_cid = $row[0];
|
||||
$dial_ingroup_cid = $row[0];
|
||||
$IN_start_call_url = $row[1];
|
||||
}
|
||||
if (strlen($dial_ingroup_cid) > 6) {$CCID = "$dial_ingroup_cid"; $CCID_on++;}
|
||||
|
||||
@@ -4284,6 +4287,321 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$agent_dialed_number|$user|M|$MqueryCID||$province\n");
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
### BEGIN start_call_url processing ###
|
||||
if (strlen($IN_start_call_url) > 7)
|
||||
{$VDCL_start_call_url = $IN_start_call_url;}
|
||||
else
|
||||
{$VDCL_start_call_url = $OUT_start_call_url;}
|
||||
|
||||
### Issue Start Call URL if defined
|
||||
if (strlen($VDCL_start_call_url) > 7)
|
||||
{
|
||||
if (preg_match('/--A--user_custom_/i',$VDCL_start_call_url))
|
||||
{
|
||||
$stmt = "SELECT custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00662',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$VUC_ct = mysqli_num_rows($rslt);
|
||||
if ($VUC_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$user_custom_one = urlencode(trim($row[0]));
|
||||
$user_custom_two = urlencode(trim($row[1]));
|
||||
$user_custom_three = urlencode(trim($row[2]));
|
||||
$user_custom_four = urlencode(trim($row[3]));
|
||||
$user_custom_five = urlencode(trim($row[4]));
|
||||
}
|
||||
}
|
||||
$VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--lead_id--B--/i',urlencode(trim($lead_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--vendor_id--B--/i',urlencode(trim($vendor_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--vendor_lead_code--B--/i',urlencode(trim($vendor_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--list_id--B--/i',urlencode(trim($list_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--list_name--B--/i',urlencode(trim($list_name)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--list_description--B--/i',urlencode(trim($list_description)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--gmt_offset_now--B--/i',urlencode(trim($gmt_offset_now)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_code--B--/i',urlencode(trim($phone_code)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_number--B--/i',urlencode(trim($phone_number)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--title--B--/i',urlencode(trim($title)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--first_name--B--/i',urlencode(trim($first_name)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--middle_initial--B--/i',urlencode(trim($middle_initial)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--last_name--B--/i',urlencode(trim($last_name)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--address1--B--/i',urlencode(trim($address1)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--address2--B--/i',urlencode(trim($address2)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--address3--B--/i',urlencode(trim($address3)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--city--B--/i',urlencode(trim($city)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--state--B--/i',urlencode(trim($state)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--province--B--/i',urlencode(trim($province)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--postal_code--B--/i',urlencode(trim($postal_code)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--country_code--B--/i',urlencode(trim($country_code)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--gender--B--/i',urlencode(trim($gender)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--date_of_birth--B--/i',urlencode(trim($date_of_birth)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--alt_phone--B--/i',urlencode(trim($alt_phone)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--email--B--/i',urlencode(trim($email)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--security_phrase--B--/i',urlencode(trim($security_phrase)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--comments--B--/i',urlencode(trim($comments)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user--B--/i',urlencode(trim($user)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--pass--B--/i',urlencode(trim($orig_pass)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--campaign--B--/i',urlencode(trim($campaign)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_login--B--/i',urlencode(trim($phone_login)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--original_phone_login--B--/i',urlencode(trim($original_phone_login)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_pass--B--/i',urlencode(trim($phone_pass)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--fronter--B--/i',urlencode(trim($fronter)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--closer--B--/i',urlencode(trim($closer)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--group--B--/i',urlencode(trim($VDADchannel_group)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--channel_group--B--/i',urlencode(trim($VDADchannel_group)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--SQLdate--B--/i',urlencode(trim($SQLdate)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--epoch--B--/i',urlencode(trim($epoch)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--uniqueid--B--/i',urlencode(trim($uniqueid)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--customer_zap_channel--B--/i',urlencode(trim($channel)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--customer_server_ip--B--/i',urlencode(trim($server_ip)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--server_ip--B--/i',urlencode(trim($server_ip)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--SIPexten--B--/i',urlencode(trim($exten)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--session_id--B--/i',urlencode(trim($conf_exten)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone--B--/i',urlencode(trim($phone_number)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--parked_by--B--/i',urlencode(trim($parked_by)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--dispo--B--/i',urlencode(trim($dispo)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--dialed_number--B--/i',urlencode(trim($agent_dialed_number)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--dialed_label--B--/i',urlencode(trim($agent_dialed_type)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--source_id--B--/i',urlencode(trim($source_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--rank--B--/i',urlencode(trim($rank)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--owner--B--/i',urlencode(trim($owner)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--camp_script--B--/i',urlencode(trim($camp_script)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--in_script--B--/i',urlencode(trim($VDCL_ingroup_script)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--fullname--B--/i',urlencode(trim($fullname)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_one--B--/i',urlencode(trim($user_custom_one)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_two--B--/i',urlencode(trim($user_custom_two)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_three--B--/i',urlencode(trim($user_custom_three)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_four--B--/i',urlencode(trim($user_custom_four)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_five--B--/i',urlencode(trim($user_custom_five)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--talk_time--B--/i',"0",$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--talk_time_min--B--/i',"0",$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--entry_list_id--B--/i',urlencode(trim($entry_list_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--closecallid--B--/i',urlencode(trim($INclosecallid)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--xfercallid--B--/i',urlencode(trim($INxfercallid)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--agent_log_id--B--/i',urlencode(trim($agent_log_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--call_id--B--/i',urlencode(trim($MqueryCID)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_group--B--/i',urlencode(trim($user_group)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--entry_date--B--/i',urlencode(trim($entry_date)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--agent_email--B--/i',urlencode(trim($agent_email)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--called_count--B--/i',urlencode(trim($called_count)),$VDCL_start_call_url);
|
||||
|
||||
if (strlen($custom_field_names)>2)
|
||||
{
|
||||
$custom_field_names = preg_replace("/^\||\|$/",'',$custom_field_names);
|
||||
$custom_field_names = preg_replace("/\|/",",",$custom_field_names);
|
||||
$custom_field_names_ARY = explode(',',$custom_field_names);
|
||||
$custom_field_names_ct = count($custom_field_names_ARY);
|
||||
$custom_field_names_SQL = $custom_field_names;
|
||||
|
||||
if (preg_match("/cf_encrypt/",$active_modules))
|
||||
{
|
||||
$enc_fields=0;
|
||||
$stmt = "SELECT count(*) from vicidial_lists_fields where field_encrypt='Y' and list_id='$entry_list_id';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00663',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$enc_field_ct = mysqli_num_rows($rslt);
|
||||
if ($enc_field_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enc_fields = $row[0];
|
||||
}
|
||||
if ($enc_fields > 0)
|
||||
{
|
||||
$stmt = "SELECT field_label from vicidial_lists_fields where field_encrypt='Y' and list_id='$entry_list_id';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00664',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$enc_field_ct = mysqli_num_rows($rslt);
|
||||
$r=0;
|
||||
while ($enc_field_ct > $r)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$encrypt_list .= "$row[0],";
|
||||
$r++;
|
||||
}
|
||||
$encrypt_list = ",$encrypt_list";
|
||||
}
|
||||
}
|
||||
|
||||
##### BEGIN grab the data from custom table for the lead_id
|
||||
$stmt="SELECT $custom_field_names_SQL FROM custom_$entry_list_id where lead_id='$lead_id' LIMIT 1;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00665',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$list_lead_ct = mysqli_num_rows($rslt);
|
||||
if ($list_lead_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$o=0;
|
||||
while ($custom_field_names_ct > $o)
|
||||
{
|
||||
$field_name_id = $custom_field_names_ARY[$o];
|
||||
$field_name_tag = "--A--" . $field_name_id . "--B--";
|
||||
if ($enc_fields > 0)
|
||||
{
|
||||
$field_enc=''; $field_enc_all='';
|
||||
if ($DB) {echo "|$column_list|$encrypt_list|\n";}
|
||||
if ( (preg_match("/,$field_name_id,/",$encrypt_list)) and (strlen($row[$o]) > 0) )
|
||||
{
|
||||
exec("../agc/aes.pl --decrypt --text=$row[$o]", $field_enc);
|
||||
$field_enc_ct = count($field_enc);
|
||||
$k=0;
|
||||
while ($field_enc_ct > $k)
|
||||
{
|
||||
$field_enc_all .= $field_enc[$k];
|
||||
$k++;
|
||||
}
|
||||
$field_enc_all = preg_replace("/CRYPT: |\n|\r|\t/",'',$field_enc_all);
|
||||
$row[$o] = base64_decode($field_enc_all);
|
||||
}
|
||||
}
|
||||
$form_field_value = urlencode(trim("$row[$o]"));
|
||||
$VDCL_start_call_url = preg_replace("/$field_name_tag/i","$form_field_value",$VDCL_start_call_url);
|
||||
$o++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$stmt="UPDATE vicidial_log_extended set start_url_processed='Y' where uniqueid='$uniqueid';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00666',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$vle_update = mysqli_affected_rows($link);
|
||||
|
||||
### insert a new url log entry
|
||||
$SQL_log = "$VDCL_start_call_url";
|
||||
$SQL_log = preg_replace('/;/','',$SQL_log);
|
||||
$SQL_log = addslashes($SQL_log);
|
||||
$stmt = "INSERT INTO vicidial_url_log SET uniqueid='$uniqueid',url_date='$NOW_TIME',url_type='start',url='$SQL_log',url_response='';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00667',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$affected_rows = mysqli_affected_rows($link);
|
||||
$url_id = mysqli_insert_id($link);
|
||||
|
||||
$URLstart_sec = date("U");
|
||||
|
||||
### grab the call_start_url ###
|
||||
if ($DB > 0) {echo "$VDCL_start_call_url<BR>\n";}
|
||||
$SCUfile = file("$VDCL_start_call_url");
|
||||
if ( !($SCUfile) )
|
||||
{
|
||||
$error_array = error_get_last();
|
||||
$error_type = $error_array["type"];
|
||||
$error_message = $error_array["message"];
|
||||
$error_line = $error_array["line"];
|
||||
$error_file = $error_array["file"];
|
||||
}
|
||||
|
||||
if ($DB > 0) {echo "$SCUfile[0]<BR>\n";}
|
||||
|
||||
### update url log entry
|
||||
$URLend_sec = date("U");
|
||||
$URLdiff_sec = ($URLend_sec - $URLstart_sec);
|
||||
if ($SCUfile)
|
||||
{
|
||||
$SCUfile_contents = implode("", $SCUfile);
|
||||
$SCUfile_contents = ereg_replace(';','',$SCUfile_contents);
|
||||
$SCUfile_contents = addslashes($SCUfile_contents);
|
||||
}
|
||||
else
|
||||
{
|
||||
$SCUfile_contents = "PHP ERROR: Type=$error_type - Message=$error_message - Line=$error_line - File=$error_file";
|
||||
}
|
||||
$stmt = "UPDATE vicidial_url_log SET response_sec='$URLdiff_sec',url_response='$SCUfile_contents' where url_log_id='$url_id';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00668',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$affected_rows = mysqli_affected_rows($link);
|
||||
|
||||
$stage .= "|SCU|$URLdiff_sec";
|
||||
|
||||
##### BEGIN special filtering and response for Vtiger account balance function #####
|
||||
# http://vtiger/vicidial/api.php?mode=callxfer&contactwsid=--A--vendor_lead_code--B--&minuteswarning=3
|
||||
$stmt = "SELECT enable_vtiger_integration FROM system_settings;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00669',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$ss_conf_ct = mysqli_num_rows($rslt);
|
||||
if ($ss_conf_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enable_vtiger_integration = $row[0];
|
||||
}
|
||||
if ( ( ($enable_vtiger_integration > 0) and (preg_match('/callxfer/',$VDCL_start_call_url)) and (preg_match('/contactwsid/',$VDCL_start_call_url)) ) or (preg_match("/minuteswarning/",$VDCL_start_call_url)) )
|
||||
{
|
||||
$SCUoutput='';
|
||||
foreach ($SCUfile as $SCUline)
|
||||
{$SCUoutput .= "$SCUline";}
|
||||
# {"result":true,"durationLimit":3071}
|
||||
if ( (strlen($SCUoutput) > 4) or (preg_match("/minuteswarning/",$VDCL_start_call_url)) )
|
||||
{
|
||||
$minuteswarning=3; # default to 3
|
||||
if (preg_match("/minuteswarning/",$VDCL_start_call_url))
|
||||
{
|
||||
$minuteswarningARY = explode('minuteswarning=',$VDCL_start_call_url);
|
||||
$minuteswarning = preg_replace('/&.*/','',$minuteswarningARY[1]);
|
||||
}
|
||||
### add this to the Start Call URL for callcard calls to be logged "&minuteswarning=1&callcard=1"
|
||||
if (preg_match("/callcard=/",$VDCL_start_call_url))
|
||||
{
|
||||
$stmt="SELECT balance_minutes_start FROM callcard_log where uniqueid='$uniqueid' order by call_time desc LIMIT 1;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00670',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$bms_ct = mysqli_num_rows($rslt);
|
||||
if ($bms_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$durationLimit = $row[0];
|
||||
|
||||
$stmt="UPDATE callcard_log set agent_time='$NOW_TIME',agent='$user' where uniqueid='$uniqueid' order by call_time desc LIMIT 1;";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00671',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$ccl_update = mysqli_affected_rows($link);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$SCUresponse = explode('durationLimit',$SCUoutput);
|
||||
$durationLimit = preg_replace('/\D/','',$SCUresponse[1]);
|
||||
}
|
||||
if (strlen($durationLimit) < 1) {$durationLimit = 0;}
|
||||
$durationLimitSECnext = ( ($minuteswarning + 0) * 60);
|
||||
$durationLimitSEC = ( ( ($durationLimit + 0) - $minuteswarning) * 60); # minutes - 3 for 3-minute-warning
|
||||
if ($durationLimitSEC < 5) {$durationLimitSEC = 5;}
|
||||
if ( ($durationLimitSECnext < 30) or (strlen($durationLimitSECnext)<1) ) {$durationLimitSECnext = 30;}
|
||||
|
||||
$timer_action_destination='';
|
||||
if (preg_match("/nextstep=/",$VDCL_start_call_url))
|
||||
{
|
||||
$nextstepARY = explode('nextstep=',$VDCL_start_call_url);
|
||||
$nextstep = preg_replace("/&.*/",'',$nextstepARY[1]);
|
||||
$nextmessageARY = explode('nextmessage=',$VDCL_start_call_url);
|
||||
$nextmessage = preg_replace("/&.*/",'',$nextmessageARY[1]);
|
||||
$destinationARY = explode('destination=',$VDCL_start_call_url);
|
||||
$destination = preg_replace("/&.*/",'',$destinationARY[1]);
|
||||
$timer_action_destination = "nextstep---$nextstep--$durationLimitSECnext--$destination--$nextmessage--";
|
||||
}
|
||||
|
||||
$stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='$minuteswarning minute warning for customer',external_timer_action_seconds='$durationLimitSEC',external_timer_action_destination='$timer_action_destination' where user='$user';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00672',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$vla_update_timer = mysqli_affected_rows($link);
|
||||
|
||||
$fp = fopen ("./call_url_log.txt", "a");
|
||||
fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer|$minuteswarning|$uniqueid|\n");
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
##### END special filtering and response for Vtiger account balance function #####
|
||||
}
|
||||
### END start_call_url processing ###
|
||||
}
|
||||
##### END if NOT preview dialing, send the call #####
|
||||
|
||||
@@ -4515,7 +4833,7 @@ if ($ACTION == 'manDiaLnextCaLL')
|
||||
echo "HOPPER EMPTY\n";
|
||||
}
|
||||
}
|
||||
$stage .= "|$agent_log_id|$vla_status|";
|
||||
$stage .= "|$agent_log_id|$vla_status|$agent_dialed_type|$agent_dialed_number|";
|
||||
}
|
||||
|
||||
|
||||
@@ -4687,7 +5005,7 @@ if ($ACTION == 'manDiaLonly')
|
||||
### check for manual dial filter and extension append settings in campaign
|
||||
$use_eac=0;
|
||||
$use_custom_cid=0;
|
||||
$stmt = "SELECT manual_dial_filter,use_internal_dnc,use_campaign_dnc,use_other_campaign_dnc,extension_appended_cidname FROM vicidial_campaigns where campaign_id='$campaign';";
|
||||
$stmt = "SELECT manual_dial_filter,use_internal_dnc,use_campaign_dnc,use_other_campaign_dnc,extension_appended_cidname,start_call_url FROM vicidial_campaigns where campaign_id='$campaign';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00325',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
@@ -4700,6 +5018,7 @@ if ($ACTION == 'manDiaLonly')
|
||||
$use_campaign_dnc = $row[2];
|
||||
$use_other_campaign_dnc = $row[3];
|
||||
$extension_appended_cidname = $row[4];
|
||||
$start_call_url = $row[5];
|
||||
if ($extension_appended_cidname == 'Y')
|
||||
{$use_eac++;}
|
||||
}
|
||||
@@ -5268,6 +5587,369 @@ if ($ACTION == 'manDiaLonly')
|
||||
fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n");
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
### BEGIN start_call_url processing ###
|
||||
$VDCL_start_call_url = $start_call_url;
|
||||
|
||||
### Issue Start Call URL if defined
|
||||
if (strlen($VDCL_start_call_url) > 7)
|
||||
{
|
||||
if (preg_match('/--A--user_custom_/i',$VDCL_start_call_url))
|
||||
{
|
||||
$stmt = "SELECT custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00673',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$VUC_ct = mysqli_num_rows($rslt);
|
||||
if ($VUC_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$user_custom_one = urlencode(trim($row[0]));
|
||||
$user_custom_two = urlencode(trim($row[1]));
|
||||
$user_custom_three = urlencode(trim($row[2]));
|
||||
$user_custom_four = urlencode(trim($row[3]));
|
||||
$user_custom_five = urlencode(trim($row[4]));
|
||||
}
|
||||
}
|
||||
|
||||
##### grab the data from vicidial_list for the lead_id
|
||||
$stmt="SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner,entry_list_id FROM vicidial_list where lead_id='$lead_id' LIMIT 1;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00674',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$list_lead_ct = mysqli_num_rows($rslt);
|
||||
if ($list_lead_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
# $lead_id = trim("$row[0]");
|
||||
$entry_date = trim("$row[1]");
|
||||
$dispo = trim("$row[3]");
|
||||
$tsr = trim("$row[4]");
|
||||
$vendor_id = trim("$row[5]");
|
||||
$source_id = trim("$row[6]");
|
||||
$list_id = trim("$row[7]");
|
||||
$lead_list_id = trim("$row[7]");
|
||||
$gmt_offset_now = trim("$row[8]");
|
||||
$called_since_last_reset = trim("$row[9]");
|
||||
$phone_code = trim("$row[10]");
|
||||
if ($override_phone < 1)
|
||||
{$phone_number = trim("$row[11]");}
|
||||
$title = trim("$row[12]");
|
||||
$first_name = trim("$row[13]");
|
||||
$middle_initial = trim("$row[14]");
|
||||
$last_name = trim("$row[15]");
|
||||
$address1 = trim("$row[16]");
|
||||
$address2 = trim("$row[17]");
|
||||
$address3 = trim("$row[18]");
|
||||
$city = trim("$row[19]");
|
||||
$state = trim("$row[20]");
|
||||
$province = trim("$row[21]");
|
||||
$postal_code = trim("$row[22]");
|
||||
$country_code = trim("$row[23]");
|
||||
$gender = trim("$row[24]");
|
||||
$date_of_birth = trim("$row[25]");
|
||||
$alt_phone = trim("$row[26]");
|
||||
$email = trim("$row[27]");
|
||||
$security_phrase = trim("$row[28]");
|
||||
$comments = stripslashes(trim("$row[29]"));
|
||||
$called_count = trim("$row[30]");
|
||||
$call_date = trim("$row[31]");
|
||||
$rank = trim("$row[32]");
|
||||
$owner = trim("$row[33]");
|
||||
$entry_list_id = trim("$row[34]");
|
||||
if ($entry_list_id < 100) {$entry_list_id = $list_id;}
|
||||
}
|
||||
|
||||
$VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--lead_id--B--/i',urlencode(trim($lead_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--vendor_id--B--/i',urlencode(trim($vendor_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--vendor_lead_code--B--/i',urlencode(trim($vendor_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--list_id--B--/i',urlencode(trim($list_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--list_name--B--/i',urlencode(trim($list_name)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--list_description--B--/i',urlencode(trim($list_description)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--gmt_offset_now--B--/i',urlencode(trim($gmt_offset_now)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_code--B--/i',urlencode(trim($phone_code)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_number--B--/i',urlencode(trim($phone_number)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--title--B--/i',urlencode(trim($title)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--first_name--B--/i',urlencode(trim($first_name)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--middle_initial--B--/i',urlencode(trim($middle_initial)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--last_name--B--/i',urlencode(trim($last_name)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--address1--B--/i',urlencode(trim($address1)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--address2--B--/i',urlencode(trim($address2)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--address3--B--/i',urlencode(trim($address3)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--city--B--/i',urlencode(trim($city)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--state--B--/i',urlencode(trim($state)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--province--B--/i',urlencode(trim($province)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--postal_code--B--/i',urlencode(trim($postal_code)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--country_code--B--/i',urlencode(trim($country_code)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--gender--B--/i',urlencode(trim($gender)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--date_of_birth--B--/i',urlencode(trim($date_of_birth)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--alt_phone--B--/i',urlencode(trim($alt_phone)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--email--B--/i',urlencode(trim($email)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--security_phrase--B--/i',urlencode(trim($security_phrase)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--comments--B--/i',urlencode(trim($comments)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user--B--/i',urlencode(trim($user)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--pass--B--/i',urlencode(trim($orig_pass)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--campaign--B--/i',urlencode(trim($campaign)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_login--B--/i',urlencode(trim($phone_login)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--original_phone_login--B--/i',urlencode(trim($original_phone_login)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone_pass--B--/i',urlencode(trim($phone_pass)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--fronter--B--/i',urlencode(trim($fronter)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--closer--B--/i',urlencode(trim($closer)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--group--B--/i',urlencode(trim($VDADchannel_group)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--channel_group--B--/i',urlencode(trim($VDADchannel_group)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--SQLdate--B--/i',urlencode(trim($SQLdate)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--epoch--B--/i',urlencode(trim($epoch)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--uniqueid--B--/i',urlencode(trim($uniqueid)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--customer_zap_channel--B--/i',urlencode(trim($channel)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--customer_server_ip--B--/i',urlencode(trim($server_ip)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--server_ip--B--/i',urlencode(trim($server_ip)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--SIPexten--B--/i',urlencode(trim($exten)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--session_id--B--/i',urlencode(trim($conf_exten)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--phone--B--/i',urlencode(trim($phone_number)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--parked_by--B--/i',urlencode(trim($parked_by)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--dispo--B--/i',urlencode(trim($dispo)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--dialed_number--B--/i',urlencode(trim($agent_dialed_number)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--dialed_label--B--/i',urlencode(trim($agent_dialed_type)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--source_id--B--/i',urlencode(trim($source_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--rank--B--/i',urlencode(trim($rank)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--owner--B--/i',urlencode(trim($owner)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--camp_script--B--/i',urlencode(trim($camp_script)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--in_script--B--/i',urlencode(trim($VDCL_ingroup_script)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--fullname--B--/i',urlencode(trim($fullname)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_one--B--/i',urlencode(trim($user_custom_one)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_two--B--/i',urlencode(trim($user_custom_two)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_three--B--/i',urlencode(trim($user_custom_three)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_four--B--/i',urlencode(trim($user_custom_four)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_custom_five--B--/i',urlencode(trim($user_custom_five)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--talk_time--B--/i',"0",$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--talk_time_min--B--/i',"0",$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--entry_list_id--B--/i',urlencode(trim($entry_list_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--closecallid--B--/i',urlencode(trim($INclosecallid)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--xfercallid--B--/i',urlencode(trim($INxfercallid)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--agent_log_id--B--/i',urlencode(trim($agent_log_id)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--call_id--B--/i',urlencode(trim($MqueryCID)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--user_group--B--/i',urlencode(trim($user_group)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--entry_date--B--/i',urlencode(trim($entry_date)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--agent_email--B--/i',urlencode(trim($agent_email)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--called_count--B--/i',urlencode(trim($called_count)),$VDCL_start_call_url);
|
||||
|
||||
if (strlen($custom_field_names)>2)
|
||||
{
|
||||
$custom_field_names = preg_replace("/^\||\|$/",'',$custom_field_names);
|
||||
$custom_field_names = preg_replace("/\|/",",",$custom_field_names);
|
||||
$custom_field_names_ARY = explode(',',$custom_field_names);
|
||||
$custom_field_names_ct = count($custom_field_names_ARY);
|
||||
$custom_field_names_SQL = $custom_field_names;
|
||||
|
||||
if (preg_match("/cf_encrypt/",$active_modules))
|
||||
{
|
||||
$enc_fields=0;
|
||||
$stmt = "SELECT count(*) from vicidial_lists_fields where field_encrypt='Y' and list_id='$entry_list_id';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00675',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$enc_field_ct = mysqli_num_rows($rslt);
|
||||
if ($enc_field_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enc_fields = $row[0];
|
||||
}
|
||||
if ($enc_fields > 0)
|
||||
{
|
||||
$stmt = "SELECT field_label from vicidial_lists_fields where field_encrypt='Y' and list_id='$entry_list_id';";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00676',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$enc_field_ct = mysqli_num_rows($rslt);
|
||||
$r=0;
|
||||
while ($enc_field_ct > $r)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$encrypt_list .= "$row[0],";
|
||||
$r++;
|
||||
}
|
||||
$encrypt_list = ",$encrypt_list";
|
||||
}
|
||||
}
|
||||
|
||||
##### BEGIN grab the data from custom table for the lead_id
|
||||
$stmt="SELECT $custom_field_names_SQL FROM custom_$entry_list_id where lead_id='$lead_id' LIMIT 1;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00677',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$list_lead_ct = mysqli_num_rows($rslt);
|
||||
if ($list_lead_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$o=0;
|
||||
while ($custom_field_names_ct > $o)
|
||||
{
|
||||
$field_name_id = $custom_field_names_ARY[$o];
|
||||
$field_name_tag = "--A--" . $field_name_id . "--B--";
|
||||
if ($enc_fields > 0)
|
||||
{
|
||||
$field_enc=''; $field_enc_all='';
|
||||
if ($DB) {echo "|$column_list|$encrypt_list|\n";}
|
||||
if ( (preg_match("/,$field_name_id,/",$encrypt_list)) and (strlen($row[$o]) > 0) )
|
||||
{
|
||||
exec("../agc/aes.pl --decrypt --text=$row[$o]", $field_enc);
|
||||
$field_enc_ct = count($field_enc);
|
||||
$k=0;
|
||||
while ($field_enc_ct > $k)
|
||||
{
|
||||
$field_enc_all .= $field_enc[$k];
|
||||
$k++;
|
||||
}
|
||||
$field_enc_all = preg_replace("/CRYPT: |\n|\r|\t/",'',$field_enc_all);
|
||||
$row[$o] = base64_decode($field_enc_all);
|
||||
}
|
||||
}
|
||||
$form_field_value = urlencode(trim("$row[$o]"));
|
||||
$VDCL_start_call_url = preg_replace("/$field_name_tag/i","$form_field_value",$VDCL_start_call_url);
|
||||
$o++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$stmt="UPDATE vicidial_log_extended set start_url_processed='Y' where uniqueid='$uniqueid';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00678',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$vle_update = mysqli_affected_rows($link);
|
||||
|
||||
### insert a new url log entry
|
||||
$SQL_log = "$VDCL_start_call_url";
|
||||
$SQL_log = preg_replace('/;/','',$SQL_log);
|
||||
$SQL_log = addslashes($SQL_log);
|
||||
$stmt = "INSERT INTO vicidial_url_log SET uniqueid='$uniqueid',url_date='$NOW_TIME',url_type='start',url='$SQL_log',url_response='';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00679',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$affected_rows = mysqli_affected_rows($link);
|
||||
$url_id = mysqli_insert_id($link);
|
||||
|
||||
$URLstart_sec = date("U");
|
||||
|
||||
### grab the call_start_url ###
|
||||
if ($DB > 0) {echo "$VDCL_start_call_url<BR>\n";}
|
||||
$SCUfile = file("$VDCL_start_call_url");
|
||||
if ( !($SCUfile) )
|
||||
{
|
||||
$error_array = error_get_last();
|
||||
$error_type = $error_array["type"];
|
||||
$error_message = $error_array["message"];
|
||||
$error_line = $error_array["line"];
|
||||
$error_file = $error_array["file"];
|
||||
}
|
||||
|
||||
if ($DB > 0) {echo "$SCUfile[0]<BR>\n";}
|
||||
|
||||
### update url log entry
|
||||
$URLend_sec = date("U");
|
||||
$URLdiff_sec = ($URLend_sec - $URLstart_sec);
|
||||
if ($SCUfile)
|
||||
{
|
||||
$SCUfile_contents = implode("", $SCUfile);
|
||||
$SCUfile_contents = ereg_replace(';','',$SCUfile_contents);
|
||||
$SCUfile_contents = addslashes($SCUfile_contents);
|
||||
}
|
||||
else
|
||||
{
|
||||
$SCUfile_contents = "PHP ERROR: Type=$error_type - Message=$error_message - Line=$error_line - File=$error_file";
|
||||
}
|
||||
$stmt = "UPDATE vicidial_url_log SET response_sec='$URLdiff_sec',url_response='$SCUfile_contents' where url_log_id='$url_id';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00680',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$affected_rows = mysqli_affected_rows($link);
|
||||
|
||||
$stage .= "|SCU|$URLdiff_sec";
|
||||
|
||||
##### BEGIN special filtering and response for Vtiger account balance function #####
|
||||
# http://vtiger/vicidial/api.php?mode=callxfer&contactwsid=--A--vendor_lead_code--B--&minuteswarning=3
|
||||
$stmt = "SELECT enable_vtiger_integration FROM system_settings;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00681',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$ss_conf_ct = mysqli_num_rows($rslt);
|
||||
if ($ss_conf_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$enable_vtiger_integration = $row[0];
|
||||
}
|
||||
if ( ( ($enable_vtiger_integration > 0) and (preg_match('/callxfer/',$VDCL_start_call_url)) and (preg_match('/contactwsid/',$VDCL_start_call_url)) ) or (preg_match("/minuteswarning/",$VDCL_start_call_url)) )
|
||||
{
|
||||
$SCUoutput='';
|
||||
foreach ($SCUfile as $SCUline)
|
||||
{$SCUoutput .= "$SCUline";}
|
||||
# {"result":true,"durationLimit":3071}
|
||||
if ( (strlen($SCUoutput) > 4) or (preg_match("/minuteswarning/",$VDCL_start_call_url)) )
|
||||
{
|
||||
$minuteswarning=3; # default to 3
|
||||
if (preg_match("/minuteswarning/",$VDCL_start_call_url))
|
||||
{
|
||||
$minuteswarningARY = explode('minuteswarning=',$VDCL_start_call_url);
|
||||
$minuteswarning = preg_replace('/&.*/','',$minuteswarningARY[1]);
|
||||
}
|
||||
### add this to the Start Call URL for callcard calls to be logged "&minuteswarning=1&callcard=1"
|
||||
if (preg_match("/callcard=/",$VDCL_start_call_url))
|
||||
{
|
||||
$stmt="SELECT balance_minutes_start FROM callcard_log where uniqueid='$uniqueid' order by call_time desc LIMIT 1;";
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00682',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$bms_ct = mysqli_num_rows($rslt);
|
||||
if ($bms_ct > 0)
|
||||
{
|
||||
$row=mysqli_fetch_row($rslt);
|
||||
$durationLimit = $row[0];
|
||||
|
||||
$stmt="UPDATE callcard_log set agent_time='$NOW_TIME',agent='$user' where uniqueid='$uniqueid' order by call_time desc LIMIT 1;";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00683',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$ccl_update = mysqli_affected_rows($link);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$SCUresponse = explode('durationLimit',$SCUoutput);
|
||||
$durationLimit = preg_replace('/\D/','',$SCUresponse[1]);
|
||||
}
|
||||
if (strlen($durationLimit) < 1) {$durationLimit = 0;}
|
||||
$durationLimitSECnext = ( ($minuteswarning + 0) * 60);
|
||||
$durationLimitSEC = ( ( ($durationLimit + 0) - $minuteswarning) * 60); # minutes - 3 for 3-minute-warning
|
||||
if ($durationLimitSEC < 5) {$durationLimitSEC = 5;}
|
||||
if ( ($durationLimitSECnext < 30) or (strlen($durationLimitSECnext)<1) ) {$durationLimitSECnext = 30;}
|
||||
|
||||
$timer_action_destination='';
|
||||
if (preg_match("/nextstep=/",$VDCL_start_call_url))
|
||||
{
|
||||
$nextstepARY = explode('nextstep=',$VDCL_start_call_url);
|
||||
$nextstep = preg_replace("/&.*/",'',$nextstepARY[1]);
|
||||
$nextmessageARY = explode('nextmessage=',$VDCL_start_call_url);
|
||||
$nextmessage = preg_replace("/&.*/",'',$nextmessageARY[1]);
|
||||
$destinationARY = explode('destination=',$VDCL_start_call_url);
|
||||
$destination = preg_replace("/&.*/",'',$destinationARY[1]);
|
||||
$timer_action_destination = "nextstep---$nextstep--$durationLimitSECnext--$destination--$nextmessage--";
|
||||
}
|
||||
|
||||
$stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='$minuteswarning minute warning for customer',external_timer_action_seconds='$durationLimitSEC',external_timer_action_destination='$timer_action_destination' where user='$user';";
|
||||
if ($DB) {echo "$stmt\n";}
|
||||
$rslt=mysql_to_mysqli($stmt, $link);
|
||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00684',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||
$vla_update_timer = mysqli_affected_rows($link);
|
||||
|
||||
$fp = fopen ("./call_url_log.txt", "a");
|
||||
fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer|$minuteswarning|$uniqueid|\n");
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
##### END special filtering and response for Vtiger account balance function #####
|
||||
}
|
||||
### END start_call_url processing ###
|
||||
|
||||
$stage .= "|$agent_dialed_type|$agent_dialed_number|";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7955,6 +8637,7 @@ if ($ACTION == 'VDADcheckINCOMING')
|
||||
$VDCL_start_call_url = preg_replace('/--A--did_custom_four--B--/i',urlencode(trim($DID_custom_four)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--did_custom_five--B--/i',urlencode(trim($DID_custom_five)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--agent_email--B--/i',urlencode(trim($agent_email)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--called_count--B--/i',urlencode(trim($called_count)),$VDCL_start_call_url);
|
||||
|
||||
if (strlen($custom_field_names)>2)
|
||||
{
|
||||
@@ -9190,6 +9873,7 @@ if ($ACTION == 'VDADcheckINCOMINGother')
|
||||
$VDCL_start_call_url = preg_replace('/--A--did_custom_four--B--/i',urlencode(trim($DID_custom_four)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--did_custom_five--B--/i',urlencode(trim($DID_custom_five)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--agent_email--B--/i',urlencode(trim($agent_email)),$VDCL_start_call_url);
|
||||
$VDCL_start_call_url = preg_replace('/--A--called_count--B--/i',urlencode(trim($called_count)),$VDCL_start_call_url);
|
||||
|
||||
if (strlen($custom_field_names)>2)
|
||||
{
|
||||
|
||||
+36
-46
@@ -29,6 +29,7 @@
|
||||
# 161102-0039 - Patched sec_convert function to display hours
|
||||
# 170227-2230 - Change to allow horizontal_bar_chart header to be translated, issue #991
|
||||
# 170409-1003 - Added IP List features to user_authorization
|
||||
# 170503-2130 - Patched sec_convert to fix rounding time bug, issue #1011
|
||||
#
|
||||
|
||||
##### BEGIN validate user login credentials, check for failed lock out #####
|
||||
@@ -225,57 +226,46 @@ function sec_convert($sec,$precision)
|
||||
{
|
||||
if ($precision == 'HF' || $precision == 'H')
|
||||
{return "0:00:00";}
|
||||
elseif ($precision == 'S')
|
||||
{return "0";}
|
||||
else
|
||||
{
|
||||
if ($precision == 'S')
|
||||
{return "0";}
|
||||
else
|
||||
{return "0:00";}
|
||||
|
||||
}
|
||||
{return "0:00";}
|
||||
}
|
||||
|
||||
if ($precision == 'HF')
|
||||
{$precision='H';}
|
||||
else
|
||||
{
|
||||
if ($precision == 'HF')
|
||||
{$precision='H';}
|
||||
else
|
||||
{
|
||||
# if ( ($sec < 3600) and ($precision != 'S') ) {$precision='M';}
|
||||
}
|
||||
|
||||
if ($precision == 'H')
|
||||
{
|
||||
$Fhours_H = MathZDC($sec, 3600);
|
||||
$Fhours_H_int = floor($Fhours_H);
|
||||
$Fhours_H_int = intval("$Fhours_H_int");
|
||||
$Fhours_M = ($Fhours_H - $Fhours_H_int);
|
||||
$Fhours_M = ($Fhours_M * 60);
|
||||
$Fhours_M_int = floor($Fhours_M);
|
||||
$Fhours_M_int = intval("$Fhours_M_int");
|
||||
$Fhours_S = ($Fhours_M - $Fhours_M_int);
|
||||
$Fhours_S = ($Fhours_S * 60);
|
||||
$Fhours_S = round($Fhours_S, 0);
|
||||
if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";}
|
||||
if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";}
|
||||
$Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S";
|
||||
}
|
||||
if ($precision == 'M')
|
||||
{
|
||||
$Fminutes_M = MathZDC($sec, 60);
|
||||
$Fminutes_M_int = floor($Fminutes_M);
|
||||
$Fminutes_M_int = intval("$Fminutes_M_int");
|
||||
$Fminutes_S = ($Fminutes_M - $Fminutes_M_int);
|
||||
$Fminutes_S = ($Fminutes_S * 60);
|
||||
$Fminutes_S = round($Fminutes_S, 0);
|
||||
if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";}
|
||||
$Ftime = "$Fminutes_M_int:$Fminutes_S";
|
||||
}
|
||||
if ($precision == 'S')
|
||||
{
|
||||
$Ftime = $sec;
|
||||
}
|
||||
return "$Ftime";
|
||||
# if ( ($sec < 3600) and ($precision != 'S') ) {$precision='M';}
|
||||
}
|
||||
|
||||
if ($precision == 'H')
|
||||
{
|
||||
$hours = floor($sec / 3600);
|
||||
$hours_sec = $hours * 3600;
|
||||
$seconds = $sec - $hours_sec;
|
||||
$minutes = floor($seconds / 60);
|
||||
$seconds -= ($minutes * 60);
|
||||
$Ftime = sprintf('%s:%s:%s',
|
||||
$hours,
|
||||
str_pad($minutes,2,'0',STR_PAD_LEFT),
|
||||
str_pad($seconds,2,'0',STR_PAD_LEFT)
|
||||
);
|
||||
}
|
||||
elseif ($precision == 'M')
|
||||
{
|
||||
$minutes = floor($sec / 60);
|
||||
$seconds = $sec - ($minutes * 60);
|
||||
$Ftime = sprintf('%s:%s',
|
||||
$minutes,
|
||||
str_pad($seconds,2,'0',STR_PAD_LEFT)
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$Ftime = $sec;
|
||||
}
|
||||
return "$Ftime";
|
||||
}
|
||||
##### END reformat seconds into HH:MM:SS or MM:SS #####
|
||||
|
||||
|
||||
@@ -1995,7 +1995,7 @@ if ($SSqc_features_active > 0)
|
||||
<BR>
|
||||
<A NAME="campaigns-start_call_url">
|
||||
<BR>
|
||||
<B><?php echo _QXZ("Start Call URL"); ?> -</B><?php echo _QXZ("This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank."); ?>
|
||||
<B><?php echo _QXZ("Start Call URL"); ?> -</B><?php echo _QXZ("This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. For Manual dial calls, the Start Call URL will be sent when the call is placed. Default is blank."); ?>
|
||||
|
||||
<BR>
|
||||
<A NAME="campaigns-dispo_call_url">
|
||||
|
||||
Reference in New Issue
Block a user