Added code for LOCALFQDN conversion to browser-used server URL for webform and script iframes

git-svn-id: svn://192.168.202.10@2952 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
mattf
2018-03-27 18:14:03 +00:00
parent ecd14f2ece
commit 397ad60e37
5 changed files with 54 additions and 4 deletions
+3
View File
@@ -288,6 +288,9 @@ OTHER CHANGES:
76. Added "Admin Lead Source ID Display" System Settings option to allow Modify
Lead page modification of Source ID field, and display in hopper list.
77. Added LOCALFQDN trigger for webforms and script Iframes to allow for use of
absolute URLs on multi-home networks. See CALL_URL_FEATURES.txt doc.
+18
View File
@@ -14,12 +14,26 @@ the variable names that you want to use --A--phone_number--B-- just
like in the SCRIPTS tab section. If you want to use custom fields in a web form
address, you need to add &CF_uses_custom_fields=Y as part of your URL.
For multi-home networks where the agents may have more than one restricted path
to the webserver, you can use the "LOCALFQDN" variable as part of the webform
URL to grab the server that the agent used to get to the agent screen and use
that as the server in the URL. So, if you have http://LOCALFQDN/agc/test.php as
the webform URL, and one agent goes to http://10.0.0.2/agc/vicidial.php to log
in to the agent screen, then the agent screen will change that webform link to
http://10.0.0.2/agc/test.php. If another agent, on a different network segment,
has to log in to the same server using http://10.0.1.2:8080/agc/vicidial.php,
then that agent will have the same webform URL changed to
http://10.0.1.2:8080/agc/test.php. This allows you to still use absolute links
in both webforms and script IFRAMES to avoid issues with using relative links.
Start Call URL - 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.
Dispo Call URL - This web URL address is not seen by the agent, but it
is called every time a call is dispositioned by an agent if it is
populated. Uses the same variables as the web form fields and scripts.
@@ -31,6 +45,7 @@ agent, and callback_datetime is the agent selected date and time for a callback.
The actual talk time in seconds of the call is talk_time. This URL can NOT be a
relative path. It is always called from the webserver. Default is blank.
Add Lead URL - This web URL address is not seen by the agent, but it is called
every time a lead is added to the system through the inbound process. Default
is blank. You must begin this URL with VAR if you want to use variables, and of
@@ -40,6 +55,7 @@ lead_id, vendor_lead_code, list_id, phone_number, phone_code, did_id,
did_extension, did_pattern, did_description, uniqueid, call_id. This feature is
only available for In-Groups.
No Agent Call URL - This is similar to Dispo Call URL, but it is for calls
that are not sent to agents such as DROPs, No Answers, Busys and timeouts. This
option is available for Campaigns and In-Groups. This feature will only work for
@@ -47,9 +63,11 @@ auto-dial and inbound calls, not manual dial calls. For inbound calls, the
specific in-group that a call was sent to needs to have the No Agent Call URL
field filled in or this function will not run for that call.
CRM Popup Login - If set to Y, the CRM Popup Address is used to open a new
window on agent login to this campaign. Default is N.
CRM Popup Address - The web address of a CRM login page, it can have variables
populated just like the web form address, with the VAR in the front and using
--A--user_custom_one--B-- to define variables.
+9
View File
@@ -44,6 +44,7 @@
# 171116-2333 - Added code for duplicate custom fields
# 171129-0812 - Fixed issue with duplicate custom fields
# 180319-1339 - Added entry_date as custom field SCRIPT type variable
# 180327-1357 - Added code for LOCALFQDN conversion to browser-used server URL script iframes
#
# $mysql_queries = 26
@@ -323,6 +324,13 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
$TODAY = date("Y-m-d");
$NOW_TIME = date("Y-m-d H:i:s");
$server_name = getenv("SERVER_NAME");
$server_port = getenv("SERVER_PORT");
$CL=':';
if (($server_port == '80') or ($server_port == '443') ) {$server_port='';}
else {$server_port = "$CL$server_port";}
$FQDN = "$server_name$server_port";
$vicidial_list_fields = '|lead_id|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|';
$custom_required_fields='|';
$custom_required_fields_check='|';
@@ -1216,6 +1224,7 @@ function custom_list_fields_values($lead_id,$list_id,$uniqueid,$user,$DB,$call_i
$CFoutput = preg_replace('/--A--list_description--B--/i',"$list_description",$CFoutput);
$CFoutput = preg_replace('/--A--TABLEper_call_notes--B--/i',"$NOTESout",$CFoutput);
$CFoutput = preg_replace("/LOCALFQDN/",$FQDN,$CFoutput);
# custom fields replacement
$o=0;
+10 -1
View File
@@ -38,9 +38,10 @@
# 171006-2055 - Added inbound_list_script_override option
# 171126-1124 - Added email message display from inbound emails only
# 180224-1406 - Added LOGINvar variables, and options.php $INSERT_ variables
# 180327-1356 - Added code for LOCALFQDN conversion to browser-used server URL for script iframes
#
$version = '2.14-32';
$version = '2.14-33';
$build = '180224-1406';
require_once("dbconnect_mysqli.php");
@@ -270,6 +271,13 @@ $agents='@agents';
$script_height = ($script_height - 20);
$full_script_height = ($script_height + 200);
$server_name = getenv("SERVER_NAME");
$server_port = getenv("SERVER_PORT");
$CL=':';
if (($server_port == '80') or ($server_port == '443') ) {$server_port='';}
else {$server_port = "$CL$server_port";}
$FQDN = "$server_name$server_port";
$IFRAME=0;
$IFRAMEencode=1;
@@ -693,6 +701,7 @@ $script_text = preg_replace('/--A--LOGINvarTHREE--B--/i',"$LOGINvarTHREE",$scrip
$script_text = preg_replace('/--A--LOGINvarFOUR--B--/i',"$LOGINvarFOUR",$script_text);
$script_text = preg_replace('/--A--LOGINvarFIVE--B--/i',"$LOGINvarFIVE",$script_text);
$script_text = preg_replace('/--A--web_vars--B--/i',"$web_vars",$script_text);
$script_text = preg_replace("/LOCALFQDN/",$FQDN,$script_text);
if ($CF_uses_custom_fields=='Y')
{
+14 -3
View File
@@ -588,10 +588,11 @@
# 180306-1717 - Added script_top_dispo feature
# 180314-2222 - Fix for lead search screen hidden fields, issue #1079
# 180323-2228 - Added more logging for notices
# 180327-1355 - Added code for LOCALFQDN conversion to browser-used server URL for webform and script iframes
#
$version = '2.14-558c';
$build = '180323-2228';
$version = '2.14-559c';
$build = '180327-1355';
$mel=1; # Mysql Error Log enabled = 1
$mysql_log_count=87;
$one_mysql_log=0;
@@ -899,7 +900,6 @@ if ( ($SSweb_logo!='default_new') and ($SSweb_logo!='default_old') )
$hide_gender=0;
$US='_';
$CL=':';
$AT='@';
$DS='-';
$date = date("r");
@@ -909,10 +909,14 @@ $browser=preg_replace("/\'|\"|\\\\/","",$browser);
$script_name = getenv("SCRIPT_NAME");
$server_name = getenv("SERVER_NAME");
$server_port = getenv("SERVER_PORT");
$CL=':';
if (preg_match("/443/i",$server_port)) {$HTTPprotocol = 'https://';}
else {$HTTPprotocol = 'http://';}
if (($server_port == '80') or ($server_port == '443') ) {$server_port='';}
else {$server_port = "$CL$server_port";}
$FQDN = "$server_name$server_port";
$chat_URL = preg_replace("/LOCALFQDN/",$FQDN,$chat_URL);
$agent_push_url = preg_replace("/LOCALFQDN/",$FQDN,$agent_push_url);
$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name";
$agcDIR = preg_replace('/vicidial\.php/i','',$agcPAGE);
$agcDIR = preg_replace("/$SSagent_script/i",'',$agcDIR);
@@ -923,6 +927,8 @@ if (strlen($VUselected_language) < 1)
$vdc_form_display = 'vdc_form_display.php';
if (preg_match("/cf_encrypt/",$active_modules))
{$vdc_form_display = 'vdc_form_display_encrypt.php';}
header ("Content-type: text/html; charset=utf-8");
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
@@ -3349,6 +3355,7 @@ else
if ($webphone_debug == 'Y') {$webphone_options .= "--DEBUG";}
if (strlen($web_socket_url) > 5) {$webphone_options .= "--WEBSOCKETURL$web_socket_url";}
if (strlen($webphone_layout) > 0) {$webphone_options .= "--WEBPHONELAYOUT$webphone_layout";}
$webphone_url = preg_replace("/LOCALFQDN/",$FQDN,$webphone_url);
### base64 encode variables
$b64_phone_login = base64_encode($extension);
@@ -4162,6 +4169,7 @@ $CCAL_OUT .= "</table>";
var filedate = '<?php echo $FILE_TIME ?>';
var agcDIR = '<?php echo $agcDIR ?>';
var agcPAGE = '<?php echo $agcPAGE ?>';
var FQDN = '<?php echo $FQDN ?>';
var extension = '<?php echo $extension ?>';
var extension_xfer = '<?php echo $extension ?>';
var dialplan_number = '<?php echo $dialplan_number ?>';
@@ -4386,6 +4394,7 @@ if ($enable_fast_refresh < 1) {echo "\tvar refresh_interval = 1000;\n";}
var adfREGrank = new RegExp("rank","g");
var adfREGowner = new RegExp("owner","g");
var adfREGlast_local_call_time = new RegExp("last_local_call_time","g");
var regLOCALFQDN = new RegExp("LOCALFQDN","g");
var DispO3waychannel = '';
var DispO3wayXtrAchannel = '';
var DispO3wayCalLserverip = '';
@@ -15634,6 +15643,7 @@ else
var regWFAencode = new RegExp("^VAR","ig");
encoded = encoded.replace(regWFAencode, '');
encoded = encoded.replace(regLOCALFQDN, FQDN);
decoded=encoded; // simple no ?
decoded = decoded.replace(RGnl, '+');
@@ -17342,6 +17352,7 @@ function phone_number_format(formatphone) {
var regWFAcustom = new RegExp("^VAR","ig");
var TEMP_crm_login_address = URLDecode(crm_login_address,'YES');
TEMP_crm_login_address = TEMP_crm_login_address.replace(regWFAcustom, '');
TEMP_crm_login_address = TEMP_crm_login_address.replace(regLOCALFQDN, FQDN);
var CRMwin = 'CRMwin';
CRMwin = window.open(TEMP_crm_login_address, CRMwin,'toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1,width=700,height=480');