Better compatibility with non-latin data input in agent screen and main admin web pages
Translation bug fixed in list merge script, Issue #1236 git-svn-id: svn://192.168.202.10@3327 3d104415-ff17-0410-8863-d5cf3c621b8a
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
AGENT MULTI-CAMPAIGN DIALING DOC Started: 2020-08-24 Updated: 2020-08-26
|
AGENT MULTI-CAMPAIGN DIALING DOC Started: 2020-08-24 Updated: 2020-11-17
|
||||||
|
|
||||||
NOTE: Requires VICIdial svn/trunk code revision 3284 or higher to work properly!!!
|
NOTE: Requires VICIdial svn/trunk code revision 3284 or higher to work properly!!!
|
||||||
|
|
||||||
@@ -100,3 +100,64 @@ HOW IT WORKS:
|
|||||||
When an outbound dialing campaign has the "Drop Call Seconds" set to '-1' and the "Drop Action" set to 'IN_GROUP' then the predictive dialing system will look for active agents logged in to other campaigns that have selected that campaign's "Drop Transfer Group" and will count them as agents in the outbound campaign, for the purposes of calculating how many calls to place outbound. For this reason, we recommend enabling the campaign "Available Only Tally" settings, to ensure too many calls are not being placed for agents already in phone calls since any agent with more than one campaign "drop in-group" selected will appear as more than one agent to the dialing system. The Remote Agents are used as a way of telling the system that the outbound dialing campaigns should be active, and when the "Drop Call Seconds" set to '-1' and the "Drop Action" set to 'IN_GROUP' then the first remote agent entry will be ignored for a campaign when the system calculates how many calls to place outbound.
|
When an outbound dialing campaign has the "Drop Call Seconds" set to '-1' and the "Drop Action" set to 'IN_GROUP' then the predictive dialing system will look for active agents logged in to other campaigns that have selected that campaign's "Drop Transfer Group" and will count them as agents in the outbound campaign, for the purposes of calculating how many calls to place outbound. For this reason, we recommend enabling the campaign "Available Only Tally" settings, to ensure too many calls are not being placed for agents already in phone calls since any agent with more than one campaign "drop in-group" selected will appear as more than one agent to the dialing system. The Remote Agents are used as a way of telling the system that the outbound dialing campaigns should be active, and when the "Drop Call Seconds" set to '-1' and the "Drop Action" set to 'IN_GROUP' then the first remote agent entry will be ignored for a campaign when the system calculates how many calls to place outbound.
|
||||||
|
|
||||||
When "Drop Call Seconds" set to '-1' in a campaign, and a call is answered by a customer, the system will not even look for an agent in that campaign to send a call to, it will immediately drop the call to the selected drop in-group. With the In-Group "No Delay Call Route" set to 'Y', the system will attempt to send the call to an agent as fast as possible.
|
When "Drop Call Seconds" set to '-1' in a campaign, and a call is answered by a customer, the system will not even look for an agent in that campaign to send a call to, it will immediately drop the call to the selected drop in-group. With the In-Group "No Delay Call Route" set to 'Y', the system will attempt to send the call to an agent as fast as possible.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
THE PROBLEM OF "OVER-DIALING":
|
||||||
|
|
||||||
|
When you allow a single agent to have multiple calls placed for them, there can always be a problem with "over-dialing", even when only using a single campaign. This issue is more complicated though when that same level of dialing is happening across multiple campaigns. At a minimum, the campaign "Available Only Tally" settings should be the first things you check to see if they are active. Beyond that, there really are not any simple solutions for it.
|
||||||
|
|
||||||
|
One possible development option would be allowing for campaigns to have their dial levels set to a value below "1.0", which would not dial any calls unless there were more agents available to take calls from a specific campaign. There are multiple issues with making this work on the back-end that will need to be programmed around, as well as the problem that some campaigns which can't get above the 1.0 threshold to place a call with the number of agents logged-in not being able to place any calls at all. But if you aren't planning on having single agents dialing by themselves for a campaign at any point, this would be the simplest and quickest solution to try. This option would be 12 hours of development time.
|
||||||
|
|
||||||
|
Another much more complex development option would be to add a new campaign dialing method "SHARED_RATIO" that would be specifically for shared agent campaigns that would operate somewhat like a round-robin system for shared campaign dialing. For instance, if only one agent is logged-in with dialing happening for that agent across 3 campaigns, each of those 3 campaigns would take turns dialing for that one agent. The number of calls would be calculated based on the number of agents that could take calls from each campaign, and the number of campaigns each agent is set to take calls from. This would be a very complex project to complete, but it would be the most efficient option with the best possibility for a balance between keeping agents on the phone and not dropping calls under all conditions(even single-agent dialing). This option would be 40 hours of development time.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*********************** The following are notes for how this second option might work:
|
||||||
|
|
||||||
|
|
||||||
|
How a "SHARED_RATIO" dial method would work:
|
||||||
|
1. New code added to the AST_VDadapt.pl and AST_VDauto_dial.pl(and FILL) scripts that would for agents logged into shared-dialing campaigns, for dialing purposes only, rotate them among the campaigns that they are able to take calls from, while still allowing them to have calls from any of those campaigns sent to them any time they are available.
|
||||||
|
2. Change the dialing algorithm, for campaigns with this dial method only, to use a count of calls placed by all shared campaigns on the system as a total, instead of only each campaign. This would prevent over-dialing as agents are rotated from dialing-campaign to dialing-campaign.
|
||||||
|
3. The agent-dialing-campaign-rotation process would attempt to balance agents by time(round-robin-like) across the campaigns that they are assigned to take calls from.
|
||||||
|
4. New database fields/tables to store the temporary dialing campaign designations for each agent and what other campaigns they had just been assigned to
|
||||||
|
5. New debug Admin Utilities report that would show everything that is going on for shared campaigns in the process of agent rotation and shared ratio dialing
|
||||||
|
|
||||||
|
Agent rotation steps: (see new database changes below for details on the DB storage of this data)
|
||||||
|
- runs once every interval[2.5 sec, 15 sec, 1 minute] <- haven't decided this yet
|
||||||
|
- for each agent, gather all campaigns they can dial for, and their current dial_campaign
|
||||||
|
- delete from vicidial_agent_dial_campaigns any campaigns agent is no longer dialing for, update validate_time for others
|
||||||
|
- set dial_campaign to ''(blank)
|
||||||
|
- grab oldest vicidial_agent_dial_campaigns.dial_time campaign_id for each agent and update vicidial_live_agents.dial_campaign_id then update dial_time
|
||||||
|
- at Timeclock-end-of-day, wipe out everything in vicidial_agent_dial_campaigns table older than 5 minutes and optimize table
|
||||||
|
|
||||||
|
Shared campaigns outbound dialing steps:
|
||||||
|
- gather all campaigns that are using a SHARED_ dial method, use that list to count current calls and calculate how many new calls can be placed for all shared campaigns
|
||||||
|
- when counting for agents in the campaign, use the vicidial_live_agents.dial_campaign_id field
|
||||||
|
- when allocating dials for each campaign, sort by oldest dial first(vicidial_campaigns.campaign_calldate) or by new ranking field(vicidial_campaigns.shared_dial_rank)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DATABASE CHANGES:
|
||||||
|
|
||||||
|
CREATE TABLE vicidial_agent_dial_campaigns (
|
||||||
|
campaign_id VARCHAR(8),
|
||||||
|
user VARCHAR(20),
|
||||||
|
validate_time DATETIME,
|
||||||
|
dial_time DATETIME,
|
||||||
|
index (user),
|
||||||
|
index (campaign_id)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX vadc_key on vicidial_agent_dial_campaigns(campaign_id, user);
|
||||||
|
|
||||||
|
ALTER TABLE vicidial_live_agents ADD dial_campaign_id VARCHAR(8) default '';
|
||||||
|
|
||||||
|
ALTER TABLE vicidial_campaigns ADD shared_dial_rank TINYINT(3) default '0';
|
||||||
|
|
||||||
|
ALTER TABLE system_settings ADD allow_shared_dial ENUM('0','1') default '0';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# agc_agent_manager_chat_interface.php
|
# agc_agent_manager_chat_interface.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2018 Joe Johnson, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Joe Johnson, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This page is for agents to chat with managers via the agent interface.
|
# This page is for agents to chat with managers via the agent interface.
|
||||||
#
|
#
|
||||||
@@ -15,10 +15,11 @@
|
|||||||
# 161217-0827 - Added code for multi-user internal chat sessions
|
# 161217-0827 - Added code for multi-user internal chat sessions
|
||||||
# 161221-0801 - Added color-coding for users in internal chat sessions
|
# 161221-0801 - Added color-coding for users in internal chat sessions
|
||||||
# 180927-0624 - Fix for missing translationm issue #1125
|
# 180927-0624 - Fix for missing translationm issue #1125
|
||||||
|
# 201117-2239 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$admin_version = '2.14-9';
|
$admin_version = '2.14-10';
|
||||||
$build = '180927-0624';
|
$build = '201117-2239';
|
||||||
|
|
||||||
$sh="managerchats";
|
$sh="managerchats";
|
||||||
|
|
||||||
@@ -39,19 +40,6 @@ if (isset($_GET["pass"])) {$pass=$_GET["pass"];}
|
|||||||
elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];}
|
elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];}
|
||||||
if (!$user) {echo "Page should only be viewed through the agent interface."; die;}
|
if (!$user) {echo "Page should only be viewed through the agent interface."; die;}
|
||||||
|
|
||||||
if ($non_latin < 1)
|
|
||||||
{
|
|
||||||
$user = preg_replace('/[^-\_0-9a-zA-Z]/','',$user);
|
|
||||||
$pass = preg_replace('/[^-\_0-9a-zA-Z]/','',$pass);
|
|
||||||
$manager_chat_id = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$user);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
|
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
|
||||||
$manager_chat_id = preg_replace("/\'|\"|\\\\|;/","",$user);
|
|
||||||
}
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS LOOKUP #####
|
##### START SYSTEM_SETTINGS LOOKUP #####
|
||||||
$VUselected_language = '';
|
$VUselected_language = '';
|
||||||
@@ -73,6 +61,19 @@ $VUselected_language = $SSdefault_language;
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$user = preg_replace('/[^-\_0-9a-zA-Z]/','',$user);
|
||||||
|
$pass = preg_replace('/[^-\_0-9a-zA-Z]/','',$pass);
|
||||||
|
$manager_chat_id = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$user);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
|
||||||
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
|
$manager_chat_id = preg_replace("/\'|\"|\\\\|;/","",$user);
|
||||||
|
}
|
||||||
|
|
||||||
$auth=0;
|
$auth=0;
|
||||||
$auth_message = user_authorization($user,$pass,'',0,0,0,0,'chat');
|
$auth_message = user_authorization($user,$pass,'',0,0,0,0,'chat');
|
||||||
if ($auth_message == 'GOOD')
|
if ($auth_message == 'GOOD')
|
||||||
|
|||||||
@@ -1882,6 +1882,7 @@ if ($function == 'external_dial')
|
|||||||
if ($api_manual_dial=='STANDARD')
|
if ($api_manual_dial=='STANDARD')
|
||||||
{
|
{
|
||||||
$stmt="UPDATE vicidial_live_agents set external_dial='$value!$phone_code!$search!$preview!$focus!$vendor_id!$epoch!$dial_prefix!$group_alias!$caller_id_number!$vtiger_callback_id!$lead_id!$alt_dial!$dial_ingroup' where user='$agent_user';";
|
$stmt="UPDATE vicidial_live_agents set external_dial='$value!$phone_code!$search!$preview!$focus!$vendor_id!$epoch!$dial_prefix!$group_alias!$caller_id_number!$vtiger_callback_id!$lead_id!$alt_dial!$dial_ingroup' where user='$agent_user';";
|
||||||
|
if ($DB) {echo "$stmt\n";}
|
||||||
$success=1;
|
$success=1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# call_log_display.php version 2.14
|
# call_log_display.php version 2.14
|
||||||
#
|
#
|
||||||
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This script is designed purely to send the inbound and outbound calls for a specific phone
|
# This script is designed purely to send the inbound and outbound calls for a specific phone
|
||||||
# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table
|
# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table
|
||||||
@@ -40,10 +40,11 @@
|
|||||||
# 150723-1714 - Added ajax logging
|
# 150723-1714 - Added ajax logging
|
||||||
# 170526-2215 - Added additional variable filtering
|
# 170526-2215 - Added additional variable filtering
|
||||||
# 190111-0904 - Fix for PHP7
|
# 190111-0904 - Fix for PHP7
|
||||||
|
# 201117-2200 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-20';
|
$version = '2.14-21';
|
||||||
$build = '190111-0904';
|
$build = '201117-2200';
|
||||||
$php_script = 'call_log_display.php';
|
$php_script = 'call_log_display.php';
|
||||||
$SSagent_debug_logging=0;
|
$SSagent_debug_logging=0;
|
||||||
$startMS = microtime();
|
$startMS = microtime();
|
||||||
@@ -73,6 +74,8 @@ $session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
|||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
$exten = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$exten);
|
$exten = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$exten);
|
||||||
$protocol = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$protocol);
|
$protocol = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$protocol);
|
||||||
|
$in_limit = preg_replace('/[^0-9]/','',$in_limit);
|
||||||
|
$out_limit = preg_replace('/[^0-9]/','',$out_limit);
|
||||||
|
|
||||||
# default optional vars if not set
|
# default optional vars if not set
|
||||||
if (!isset($format)) {$format="text";}
|
if (!isset($format)) {$format="text";}
|
||||||
|
|||||||
+31
-19
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# chat_db_query.php
|
# chat_db_query.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2017 Joe Johnson, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Joe Johnson, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# Called by vdc_chat_display.php and vicidial_chat_agent.js. This contains all actions taken by the
|
# Called by vdc_chat_display.php and vicidial_chat_agent.js. This contains all actions taken by the
|
||||||
# agent's interface when chatting with customers, other agents, and managers, through
|
# agent's interface when chatting with customers, other agents, and managers, through
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
# 161221-0800 - Added color-coding for users in internal chat sessions
|
# 161221-0800 - Added color-coding for users in internal chat sessions
|
||||||
# 170526-2257 - Added additional variable filtering
|
# 170526-2257 - Added additional variable filtering
|
||||||
# 170528-1028 - Added more variable filtering
|
# 170528-1028 - Added more variable filtering
|
||||||
|
# 201117-2238 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
require("dbconnect_mysqli.php");
|
require("dbconnect_mysqli.php");
|
||||||
@@ -106,24 +107,6 @@ if (file_exists('options.php'))
|
|||||||
# variable filtering
|
# variable filtering
|
||||||
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
|
||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
|
||||||
$agent_manager = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$agent_manager);
|
|
||||||
$agent_user = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$agent_user);
|
|
||||||
$manager_chat_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$manager_chat_id);
|
|
||||||
$chat_creator = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_creator);
|
|
||||||
$group_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$group_id);
|
|
||||||
$chat_member_name = preg_replace('/[^- \.\,\_0-9a-zA-Z]/',"",$chat_member_name);
|
|
||||||
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
|
||||||
$agent_to_add = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$agent_to_add);
|
|
||||||
$chat_group_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_group_id);
|
|
||||||
$chat_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_id);
|
|
||||||
$chat_level = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_level);
|
|
||||||
$chat_xfer_type = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_xfer_type);
|
|
||||||
$chat_xfer_value = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_xfer_value);
|
|
||||||
$email = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$email);
|
|
||||||
$field_name = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$field_name);
|
|
||||||
$manager_chat_subid = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$manager_chat_subid);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS LOOKUP #####
|
##### START SYSTEM_SETTINGS LOOKUP #####
|
||||||
@@ -146,6 +129,35 @@ $VUselected_language = $SSdefault_language;
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
||||||
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
|
$agent_manager = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$agent_manager);
|
||||||
|
$agent_user = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$agent_user);
|
||||||
|
$manager_chat_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$manager_chat_id);
|
||||||
|
$chat_creator = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_creator);
|
||||||
|
$group_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$group_id);
|
||||||
|
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
||||||
|
$agent_to_add = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$agent_to_add);
|
||||||
|
$chat_group_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_group_id);
|
||||||
|
$chat_id = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_id);
|
||||||
|
$chat_level = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_level);
|
||||||
|
$chat_xfer_type = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_xfer_type);
|
||||||
|
$chat_xfer_value = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$chat_xfer_value);
|
||||||
|
$email = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$email);
|
||||||
|
$field_name = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$field_name);
|
||||||
|
$manager_chat_subid = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$manager_chat_subid);
|
||||||
|
|
||||||
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
|
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
|
||||||
|
$chat_member_name = preg_replace('/[^- \.\,\_0-9a-zA-Z]/',"",$chat_member_name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$chat_member_name = preg_replace('/[^- \.\,\_0-9\p{L}]/u',"",$chat_member_name);
|
||||||
|
}
|
||||||
|
|
||||||
$auth=0;
|
$auth=0;
|
||||||
$auth_message = user_authorization($user,$pass,'',0,0,0,0,'chat_db_query');
|
$auth_message = user_authorization($user,$pass,'',0,0,0,0,'chat_db_query');
|
||||||
if ($auth_message == 'GOOD')
|
if ($auth_message == 'GOOD')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# deactivate_lead.php
|
# deactivate_lead.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2017 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This script is designed to be used in the "Dispo URL" field of a campaign
|
# This script is designed to be used in the "Dispo URL" field of a campaign
|
||||||
# or in-group. It should take in the campaign_id to check for the same source_id
|
# or in-group. It should take in the campaign_id to check for the same source_id
|
||||||
@@ -31,6 +31,7 @@
|
|||||||
# 141118-1234 - Formatting changes for QXZ output
|
# 141118-1234 - Formatting changes for QXZ output
|
||||||
# 141216-2130 - Added language settings lookups and user/pass variable standardization
|
# 141216-2130 - Added language settings lookups and user/pass variable standardization
|
||||||
# 170526-2301 - Added additional variable filtering
|
# 170526-2301 - Added additional variable filtering
|
||||||
|
# 201117-2222 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$api_script = 'deactivate';
|
$api_script = 'deactivate';
|
||||||
@@ -81,10 +82,6 @@ $search_value='';
|
|||||||
# filter variables
|
# filter variables
|
||||||
$user = preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user = preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass = preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass = preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$search_field = preg_replace("/\'|\"|\\\\|;| /","",$search_field);
|
|
||||||
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
|
||||||
$campaign_check = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign_check);
|
|
||||||
$new_status = preg_replace('/[^-_0-9a-zA-Z]/','',$new_status);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
||||||
@@ -115,6 +112,22 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$search_field = preg_replace("/\'|\"|\\\\|;| /","",$search_field);
|
||||||
|
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
||||||
|
|
||||||
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
|
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
|
||||||
|
$campaign_check = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign_check);
|
||||||
|
$new_status = preg_replace('/[^-_0-9a-zA-Z]/','',$new_status);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$campaign_check = preg_replace('/[^-_0-9\p{L}]/u','',$campaign_check);
|
||||||
|
$new_status = preg_replace('/[^-_0-9\p{L}]/u','',$new_status);
|
||||||
|
}
|
||||||
|
|
||||||
if ($DB>0) {echo "$lead_id|$search_field|$campaign_check|$sale_status|$dispo|$new_status|$user|$pass|$DB|$log_to_file|\n";}
|
if ($DB>0) {echo "$lead_id|$search_field|$campaign_check|$sale_status|$dispo|$new_status|$user|$pass|$DB|$log_to_file|\n";}
|
||||||
|
|
||||||
if (preg_match("/$TD$dispo$TD/",$sale_status))
|
if (preg_match("/$TD$dispo$TD/",$sale_status))
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# dispo_change_status.php
|
# dispo_change_status.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2017 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This script is designed to be used in the "Dispo URL" field of a campaign
|
# This script is designed to be used in the "Dispo URL" field of a campaign
|
||||||
# or in-group. It can update the status of a lead to a new status if the lead
|
# or in-group. It can update the status of a lead to a new status if the lead
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
#
|
#
|
||||||
# CHANGES
|
# CHANGES
|
||||||
# 171127-1736 - First Build
|
# 171127-1736 - First Build
|
||||||
|
# 201117-2217 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$api_script = 'dispo_change_status';
|
$api_script = 'dispo_change_status';
|
||||||
@@ -80,14 +81,6 @@ $k=0;
|
|||||||
# filter variables
|
# filter variables
|
||||||
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
|
||||||
$logged_status = preg_replace('/[^-_0-9a-zA-Z]/','',$logged_status);
|
|
||||||
$logged_count = preg_replace('/[^0-9]/','',$logged_count);
|
|
||||||
$new_status = preg_replace('/[^-_0-9a-zA-Z]/','',$new_status);
|
|
||||||
$days_search = preg_replace('/[^0-9]/','',$days_search);
|
|
||||||
$archive_search = preg_replace('/[^-_0-9a-zA-Z]/','',$archive_search);
|
|
||||||
$in_out_search = preg_replace('/[^-_0-9a-zA-Z]/','',$in_out_search);
|
|
||||||
$log_to_file = preg_replace('/[^0-9]/','',$log_to_file);
|
|
||||||
|
|
||||||
# set defaults for variables not set
|
# set defaults for variables not set
|
||||||
if (strlen($days_search) < 1)
|
if (strlen($days_search) < 1)
|
||||||
@@ -124,10 +117,24 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
||||||
|
$logged_count = preg_replace('/[^0-9]/','',$logged_count);
|
||||||
|
$days_search = preg_replace('/[^0-9]/','',$days_search);
|
||||||
|
$archive_search = preg_replace('/[^-_0-9a-zA-Z]/','',$archive_search);
|
||||||
|
$in_out_search = preg_replace('/[^-_0-9a-zA-Z]/','',$in_out_search);
|
||||||
|
$log_to_file = preg_replace('/[^0-9]/','',$log_to_file);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
|
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
|
||||||
|
$logged_status = preg_replace('/[^-_0-9a-zA-Z]/','',$logged_status);
|
||||||
|
$new_status = preg_replace('/[^-_0-9a-zA-Z]/','',$new_status);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$logged_status = preg_replace('/[^-_0-9\p{L}]/u','',$logged_status);
|
||||||
|
$new_status = preg_replace('/[^-_0-9\p{L}]/u','',$new_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($DB>0) {echo "$lead_id|$dispo|$logged_status|$logged_count|$new_status|$days_search|$archive_search|$in_out_search|$user|$pass|$DB|$log_to_file|\n";}
|
if ($DB>0) {echo "$lead_id|$dispo|$logged_status|$logged_count|$new_status|$days_search|$archive_search|$in_out_search|$user|$pass|$DB|$log_to_file|\n";}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
# 190521-1715 - Added --A--dispo--B-- and --A--dispo_name--B-- to email_body
|
# 190521-1715 - Added --A--dispo--B-- and --A--dispo_name--B-- to email_body
|
||||||
# 191013-2113 - Fixes for PHP7
|
# 191013-2113 - Fixes for PHP7
|
||||||
# 200814-1829 - added email_body_html, email_body_utf8 flags
|
# 200814-1829 - added email_body_html, email_body_utf8 flags
|
||||||
|
# 201117-2104 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$api_script = 'send_email';
|
$api_script = 'send_email';
|
||||||
@@ -148,33 +149,6 @@ $email_charset = 'iso-8859-1';
|
|||||||
# filter variables
|
# filter variables
|
||||||
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$call_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $call_id);
|
|
||||||
$lead_id = preg_replace('/[^_0-9]/', '', $lead_id);
|
|
||||||
$container_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $container_id);
|
|
||||||
$call_notes=preg_replace("/\\\\/","",$call_notes);
|
|
||||||
$stage = preg_replace('/[^-_0-9a-zA-Z]/', '', $stage);
|
|
||||||
$additional_notes=preg_replace("/\\\\/","",$additional_notes);
|
|
||||||
$email_attachment_1=preg_replace("/\\\\/","",$email_attachment_1);
|
|
||||||
$email_attachment_2=preg_replace("/\\\\/","",$email_attachment_2);
|
|
||||||
$email_attachment_3=preg_replace("/\\\\/","",$email_attachment_3);
|
|
||||||
$email_attachment_4=preg_replace("/\\\\/","",$email_attachment_4);
|
|
||||||
$email_attachment_5=preg_replace("/\\\\/","",$email_attachment_5);
|
|
||||||
$email_attachment_6=preg_replace("/\\\\/","",$email_attachment_6);
|
|
||||||
$email_attachment_7=preg_replace("/\\\\/","",$email_attachment_7);
|
|
||||||
$email_attachment_8=preg_replace("/\\\\/","",$email_attachment_8);
|
|
||||||
$email_attachment_9=preg_replace("/\\\\/","",$email_attachment_9);
|
|
||||||
$email_attachment_10=preg_replace("/\\\\/","",$email_attachment_10);
|
|
||||||
$email_attachment_11=preg_replace("/\\\\/","",$email_attachment_11);
|
|
||||||
$email_attachment_12=preg_replace("/\\\\/","",$email_attachment_12);
|
|
||||||
$email_attachment_13=preg_replace("/\\\\/","",$email_attachment_13);
|
|
||||||
$email_attachment_14=preg_replace("/\\\\/","",$email_attachment_14);
|
|
||||||
$email_attachment_15=preg_replace("/\\\\/","",$email_attachment_15);
|
|
||||||
$email_attachment_16=preg_replace("/\\\\/","",$email_attachment_16);
|
|
||||||
$email_attachment_17=preg_replace("/\\\\/","",$email_attachment_17);
|
|
||||||
$email_attachment_18=preg_replace("/\\\\/","",$email_attachment_18);
|
|
||||||
$email_attachment_19=preg_replace("/\\\\/","",$email_attachment_19);
|
|
||||||
$email_attachment_20=preg_replace("/\\\\/","",$email_attachment_20);
|
|
||||||
$email_to=preg_replace("/\\\\/","",$email_to);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
||||||
@@ -205,9 +179,41 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$call_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $call_id);
|
||||||
|
$lead_id = preg_replace('/[^_0-9]/', '', $lead_id);
|
||||||
|
$call_notes=preg_replace("/\\\\/","",$call_notes);
|
||||||
|
$stage = preg_replace('/[^-_0-9a-zA-Z]/', '', $stage);
|
||||||
|
$additional_notes=preg_replace("/\\\\/","",$additional_notes);
|
||||||
|
$email_attachment_1=preg_replace("/\\\\/","",$email_attachment_1);
|
||||||
|
$email_attachment_2=preg_replace("/\\\\/","",$email_attachment_2);
|
||||||
|
$email_attachment_3=preg_replace("/\\\\/","",$email_attachment_3);
|
||||||
|
$email_attachment_4=preg_replace("/\\\\/","",$email_attachment_4);
|
||||||
|
$email_attachment_5=preg_replace("/\\\\/","",$email_attachment_5);
|
||||||
|
$email_attachment_6=preg_replace("/\\\\/","",$email_attachment_6);
|
||||||
|
$email_attachment_7=preg_replace("/\\\\/","",$email_attachment_7);
|
||||||
|
$email_attachment_8=preg_replace("/\\\\/","",$email_attachment_8);
|
||||||
|
$email_attachment_9=preg_replace("/\\\\/","",$email_attachment_9);
|
||||||
|
$email_attachment_10=preg_replace("/\\\\/","",$email_attachment_10);
|
||||||
|
$email_attachment_11=preg_replace("/\\\\/","",$email_attachment_11);
|
||||||
|
$email_attachment_12=preg_replace("/\\\\/","",$email_attachment_12);
|
||||||
|
$email_attachment_13=preg_replace("/\\\\/","",$email_attachment_13);
|
||||||
|
$email_attachment_14=preg_replace("/\\\\/","",$email_attachment_14);
|
||||||
|
$email_attachment_15=preg_replace("/\\\\/","",$email_attachment_15);
|
||||||
|
$email_attachment_16=preg_replace("/\\\\/","",$email_attachment_16);
|
||||||
|
$email_attachment_17=preg_replace("/\\\\/","",$email_attachment_17);
|
||||||
|
$email_attachment_18=preg_replace("/\\\\/","",$email_attachment_18);
|
||||||
|
$email_attachment_19=preg_replace("/\\\\/","",$email_attachment_19);
|
||||||
|
$email_attachment_20=preg_replace("/\\\\/","",$email_attachment_20);
|
||||||
|
$email_to=preg_replace("/\\\\/","",$email_to);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
|
$container_id = preg_replace('/[^-_0-9a-zA-Z]/', '', $container_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$container_id = preg_replace('/[^-_0-9\p{L}]/u', '', $container_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($DB>0) {echo "$lead_id|$container_id|$call_id|$sale_status|$dispo|$new_status|$called_count|$called_count_trigger|$user|$pass|$DB|$log_to_file|\n";}
|
if ($DB>0) {echo "$lead_id|$container_id|$call_id|$sale_status|$dispo|$new_status|$called_count|$called_count_trigger|$user|$pass|$DB|$log_to_file|\n";}
|
||||||
|
|||||||
+47
-34
@@ -144,10 +144,11 @@
|
|||||||
# 190310-1202 - Added MuteRecording function
|
# 190310-1202 - Added MuteRecording function
|
||||||
# 191013-2114 - Fixes for PHP7
|
# 191013-2114 - Fixes for PHP7
|
||||||
# 201107-2228 - Added campaign/in-group logging in park_log
|
# 201107-2228 - Added campaign/in-group logging in park_log
|
||||||
|
# 201117-1751 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-91';
|
$version = '2.14-92';
|
||||||
$build = '201107-2228';
|
$build = '201117-1751';
|
||||||
$php_script = 'manager_send.php';
|
$php_script = 'manager_send.php';
|
||||||
$mel=1; # Mysql Error Log enabled = 1
|
$mel=1; # Mysql Error Log enabled = 1
|
||||||
$mysql_log_count=143;
|
$mysql_log_count=143;
|
||||||
@@ -256,6 +257,26 @@ if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];}
|
|||||||
if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];}
|
if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];}
|
||||||
elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];}
|
elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];}
|
||||||
|
|
||||||
|
#############################################
|
||||||
|
##### START SYSTEM_SETTINGS LOOKUP #####
|
||||||
|
$stmt = "SELECT use_non_latin,allow_sipsak_messages,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,agent_debug_logging FROM system_settings;";
|
||||||
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
|
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);}
|
||||||
|
if ($DB) {echo "$stmt\n";}
|
||||||
|
$qm_conf_ct = mysqli_num_rows($rslt);
|
||||||
|
if ($qm_conf_ct > 0)
|
||||||
|
{
|
||||||
|
$row=mysqli_fetch_row($rslt);
|
||||||
|
$non_latin = $row[0];
|
||||||
|
$allow_sipsak_messages = $row[1];
|
||||||
|
$SSenable_languages = $row[2];
|
||||||
|
$SSlanguage_method = $row[3];
|
||||||
|
$meetme_enter_login_filename = $row[4];
|
||||||
|
$meetme_enter_leave3way_filename = $row[5];
|
||||||
|
$SSagent_debug_logging = $row[6];
|
||||||
|
}
|
||||||
|
##### END SETTINGS LOOKUP #####
|
||||||
|
###########################################
|
||||||
|
|
||||||
header ("Content-type: text/html; charset=utf-8");
|
header ("Content-type: text/html; charset=utf-8");
|
||||||
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
||||||
@@ -266,21 +287,14 @@ $user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
|||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
|
||||||
$phone_number = preg_replace('/[^-_0-9a-zA-Z]/','',$phone_number);
|
|
||||||
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
||||||
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
||||||
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
|
||||||
$exten = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$exten);
|
$exten = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$exten);
|
||||||
$extension = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$extension);
|
$extension = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$extension);
|
||||||
$protocol = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$protocol);
|
$protocol = preg_replace("/\||`|&|\'|\"|\\\\|;| /","",$protocol);
|
||||||
$ACTION = preg_replace("/\'|\"|\\\\|;/","",$ACTION);
|
$ACTION = preg_replace("/\'|\"|\\\\|;/","",$ACTION);
|
||||||
$CalLCID = preg_replace("/\'|\"|\\\\|;/","",$CalLCID);
|
$CalLCID = preg_replace("/\'|\"|\\\\|;/","",$CalLCID);
|
||||||
$FROMvdc = preg_replace('/[^-_0-9a-zA-Z]/','',$FROMvdc);
|
$FROMvdc = preg_replace('/[^-_0-9a-zA-Z]/','',$FROMvdc);
|
||||||
$account = preg_replace('/[^-_0-9a-zA-Z]/','',$account);
|
|
||||||
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
|
|
||||||
$agent_dialed_number = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_dialed_number);
|
|
||||||
$agent_dialed_type = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_dialed_type);
|
|
||||||
$agent_log_id = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_log_id);
|
$agent_log_id = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_log_id);
|
||||||
$agentchannel = preg_replace("/\'|\"|\\\\/","",$agentchannel);
|
$agentchannel = preg_replace("/\'|\"|\\\\/","",$agentchannel);
|
||||||
$auto_dial_level = preg_replace('/[^-\._0-9a-zA-Z]/','',$auto_dial_level);
|
$auto_dial_level = preg_replace('/[^-\._0-9a-zA-Z]/','',$auto_dial_level);
|
||||||
@@ -307,7 +321,30 @@ $queryCID = preg_replace("/\'|\"|\\\\|;/","",$queryCID);
|
|||||||
$secondS = preg_replace('/[^0-9]/','',$secondS);
|
$secondS = preg_replace('/[^0-9]/','',$secondS);
|
||||||
$stage = preg_replace("/\'|\"|\\\\|;/","",$stage);
|
$stage = preg_replace("/\'|\"|\\\\|;/","",$stage);
|
||||||
$usegroupalias = preg_replace('/[^0-9]/','',$usegroupalias);
|
$usegroupalias = preg_replace('/[^0-9]/','',$usegroupalias);
|
||||||
$group_id = preg_replace('/[^-_0-9a-zA-Z]/','',$group_id);
|
|
||||||
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
|
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
||||||
|
$phone_number = preg_replace('/[^-_0-9a-zA-Z]/','',$phone_number);
|
||||||
|
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
||||||
|
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
|
||||||
|
$agent_dialed_number = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_dialed_number);
|
||||||
|
$agent_dialed_type = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_dialed_type);
|
||||||
|
$account = preg_replace('/[^-_0-9a-zA-Z]/','',$account);
|
||||||
|
$group_id = preg_replace('/[^-_0-9a-zA-Z]/','',$group_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$campaign = preg_replace('/[^-_0-9\p{L}]/u','',$campaign);
|
||||||
|
$phone_number = preg_replace('/[^-_0-9\p{L}]/u','',$phone_number);
|
||||||
|
$uniqueid = preg_replace('/[^-_\.0-9\p{L}]/u','',$uniqueid);
|
||||||
|
$user_group = preg_replace('/[^-_0-9\p{L}]/u','',$user_group);
|
||||||
|
$agent_dialed_number = preg_replace('/[^-_0-9\p{L}]/u','',$agent_dialed_number);
|
||||||
|
$agent_dialed_type = preg_replace('/[^-_0-9\p{L}]/u','',$agent_dialed_type);
|
||||||
|
$account = preg_replace('/[^-_0-9\p{L}]/u','',$account);
|
||||||
|
$group_id = preg_replace('/[^-_0-9\p{L}]/u','',$group_id);
|
||||||
|
}
|
||||||
|
|
||||||
# default optional vars if not set
|
# default optional vars if not set
|
||||||
if (!isset($ACTION)) {$ACTION="Originate";}
|
if (!isset($ACTION)) {$ACTION="Originate";}
|
||||||
@@ -335,30 +372,6 @@ if ($sl_ct > 0)
|
|||||||
$VUselected_language = $row[0];
|
$VUselected_language = $row[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
$stmt = "SELECT use_non_latin,allow_sipsak_messages,enable_languages,language_method,meetme_enter_login_filename,meetme_enter_leave3way_filename,agent_debug_logging FROM system_settings;";
|
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
|
||||||
if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);}
|
|
||||||
if ($DB) {echo "$stmt\n";}
|
|
||||||
$qm_conf_ct = mysqli_num_rows($rslt);
|
|
||||||
if ($qm_conf_ct > 0)
|
|
||||||
{
|
|
||||||
$row=mysqli_fetch_row($rslt);
|
|
||||||
$non_latin = $row[0];
|
|
||||||
$allow_sipsak_messages = $row[1];
|
|
||||||
$SSenable_languages = $row[2];
|
|
||||||
$SSlanguage_method = $row[3];
|
|
||||||
$meetme_enter_login_filename = $row[4];
|
|
||||||
$meetme_enter_leave3way_filename = $row[5];
|
|
||||||
$SSagent_debug_logging = $row[6];
|
|
||||||
}
|
|
||||||
##### END SETTINGS LOOKUP #####
|
|
||||||
###########################################
|
|
||||||
|
|
||||||
if ($non_latin < 1)
|
|
||||||
{
|
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
|
||||||
$secondS = preg_replace("/[^0-9]/","",$secondS);
|
|
||||||
}
|
|
||||||
if (strlen($SSagent_debug_logging) > 1)
|
if (strlen($SSagent_debug_logging) > 1)
|
||||||
{
|
{
|
||||||
if ($SSagent_debug_logging == "$user")
|
if ($SSagent_debug_logging == "$user")
|
||||||
|
|||||||
+19
-11
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# timeclock.php - VICIDIAL system user timeclock
|
# timeclock.php - VICIDIAL system user timeclock
|
||||||
#
|
#
|
||||||
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
# 80523-0134 - First Build
|
# 80523-0134 - First Build
|
||||||
@@ -23,10 +23,11 @@
|
|||||||
# 150727-0912 - Added default_language
|
# 150727-0912 - Added default_language
|
||||||
# 161106-2112 - Added screen colors, fixed formatting
|
# 161106-2112 - Added screen colors, fixed formatting
|
||||||
# 190111-0901 - Fix for PHP7
|
# 190111-0901 - Fix for PHP7
|
||||||
|
# 201117-2117 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.12-18';
|
$version = '2.12-19';
|
||||||
$build = '190111-0901';
|
$build = '201117-2117';
|
||||||
|
|
||||||
$StarTtimE = date("U");
|
$StarTtimE = date("U");
|
||||||
$NOW_TIME = date("Y-m-d H:i:s");
|
$NOW_TIME = date("Y-m-d H:i:s");
|
||||||
@@ -87,16 +88,8 @@ if (!isset($phone_pass))
|
|||||||
|
|
||||||
### security strip all non-alphanumeric characters out of the variables ###
|
### security strip all non-alphanumeric characters out of the variables ###
|
||||||
$DB=preg_replace("/[^0-9a-z]/","",$DB);
|
$DB=preg_replace("/[^0-9a-z]/","",$DB);
|
||||||
$phone_login=preg_replace("/[^\,0-9a-zA-Z]/","",$phone_login);
|
|
||||||
$phone_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$phone_pass);
|
|
||||||
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
|
||||||
$VD_login=preg_replace("/\'|\"|\\\\|;| /","",$VD_login);
|
$VD_login=preg_replace("/\'|\"|\\\\|;| /","",$VD_login);
|
||||||
$VD_pass=preg_replace("/\'|\"|\\\\|;| /","",$VD_pass);
|
$VD_pass=preg_replace("/\'|\"|\\\\|;| /","",$VD_pass);
|
||||||
$VD_campaign=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_campaign);
|
|
||||||
$stage=preg_replace("/[^0-9a-zA-Z]/","",$stage);
|
|
||||||
$commit=preg_replace("/[^0-9a-zA-Z]/","",$commit);
|
|
||||||
$referrer=preg_replace("/[^0-9a-zA-Z]/","",$referrer);
|
|
||||||
|
|
||||||
require_once("dbconnect_mysqli.php");
|
require_once("dbconnect_mysqli.php");
|
||||||
require_once("functions.php");
|
require_once("functions.php");
|
||||||
@@ -139,12 +132,27 @@ if (strlen($VUselected_language) < 1)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
|
$phone_login=preg_replace("/\'|\"|\\\\|;| /","",$phone_login);
|
||||||
|
$phone_pass=preg_replace("/\'|\"|\\\\|;| /","",$phone_pass);
|
||||||
|
$stage=preg_replace("/[^0-9a-zA-Z]/","",$stage);
|
||||||
|
$commit=preg_replace("/[^0-9a-zA-Z]/","",$commit);
|
||||||
|
$referrer=preg_replace("/[^0-9a-zA-Z]/","",$referrer);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
|
$pass=preg_replace("/[^-_0-9a-zA-Z]/","",$pass);
|
||||||
$VD_login=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_login);
|
$VD_login=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_login);
|
||||||
$VD_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_pass);
|
$VD_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_pass);
|
||||||
|
$VD_campaign=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_campaign);
|
||||||
|
$phone_login=preg_replace("/[^\,0-9a-zA-Z]/","",$phone_login);
|
||||||
|
$phone_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$phone_pass);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$VD_campaign=preg_replace("/[^-_0-9\p{L}]/u","",$VD_campaign);
|
||||||
}
|
}
|
||||||
|
|
||||||
header ("Content-type: text/html; charset=utf-8");
|
header ("Content-type: text/html; charset=utf-8");
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# vdc_chat_display.php
|
# vdc_chat_display.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2019 Joe Johnson, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Joe Johnson, Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This is the interface for agents to chat with customers and each other. It's separate from the manager-to-agent
|
# This is the interface for agents to chat with customers and each other. It's separate from the manager-to-agent
|
||||||
# chat interface out of necessity and calls the chat_db_query.php page to send information and display it. It will
|
# chat interface out of necessity and calls the chat_db_query.php page to send information and display it. It will
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
# 160818-1235 - Added line colors and scrolling
|
# 160818-1235 - Added line colors and scrolling
|
||||||
# 170528-1001 - Added variable filtering
|
# 170528-1001 - Added variable filtering
|
||||||
# 190902-0914 - Fix for PHP 7.2
|
# 190902-0914 - Fix for PHP 7.2
|
||||||
|
# 201117-2207 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
require("dbconnect_mysqli.php");
|
require("dbconnect_mysqli.php");
|
||||||
@@ -90,10 +91,8 @@ if ($clickmute!="1") {$clickmute="0";} // Prevents annoying quirk of playing the
|
|||||||
|
|
||||||
$lead_id = preg_replace("/[^0-9]/","",$lead_id);
|
$lead_id = preg_replace("/[^0-9]/","",$lead_id);
|
||||||
$chat_id = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$chat_id);
|
$chat_id = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$chat_id);
|
||||||
$chat_group_id = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$chat_group_id);
|
|
||||||
$server_ip = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$server_ip);
|
$server_ip = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$server_ip);
|
||||||
$email = preg_replace("/\'|\"|\\\\|;/","",$email);
|
$email = preg_replace("/\'|\"|\\\\|;/","",$email);
|
||||||
$campaign = preg_replace('/[^-\_0-9a-zA-Z]/','',$campaign);
|
|
||||||
$dial_method = preg_replace('/[^-\_0-9a-zA-Z]/','',$dial_method);
|
$dial_method = preg_replace('/[^-\_0-9a-zA-Z]/','',$dial_method);
|
||||||
$clickmute = preg_replace("/\'|\"|\\\\|;/","",$clickmute);
|
$clickmute = preg_replace("/\'|\"|\\\\|;/","",$clickmute);
|
||||||
$stage = preg_replace('/[^-\_0-9a-zA-Z]/','',$stage);
|
$stage = preg_replace('/[^-\_0-9a-zA-Z]/','',$stage);
|
||||||
@@ -108,12 +107,18 @@ if ($non_latin < 1)
|
|||||||
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
||||||
$first_name = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$first_name);
|
$first_name = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$first_name);
|
||||||
$last_name = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$last_name);
|
$last_name = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$last_name);
|
||||||
|
$campaign = preg_replace('/[^-\_0-9a-zA-Z]/','',$campaign);
|
||||||
|
$chat_group_id = preg_replace('/[^- \_\.0-9a-zA-Z]/','',$chat_group_id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
|
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$outside_user_name = preg_replace("/\'|\"|\\\\|;/","",$user);
|
$outside_user_name = preg_replace("/\'|\"|\\\\|;/","",$user);
|
||||||
|
$first_name = preg_replace('/[^- \_\.0-9\p{L}]/u','',$first_name);
|
||||||
|
$last_name = preg_replace('/[^- \_\.0-9\p{L}]/u','',$last_name);
|
||||||
|
$campaign = preg_replace('/[^-\_0-9\p{L}]/u','',$campaign);
|
||||||
|
$chat_group_id = preg_replace('/[^- \_\.0-9\p{L}]/u','',$chat_group_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (strlen($stage) > 0) and ($stage == 'WELCOME') )
|
if( (strlen($stage) > 0) and ($stage == 'WELCOME') )
|
||||||
@@ -139,7 +144,7 @@ if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0))
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_stmt="select full_name,user_level,selected_language from vicidial_users where user='$user'";
|
$user_stmt="SELECT full_name,user_level,selected_language from vicidial_users where user='$user';";
|
||||||
$user_level=0;
|
$user_level=0;
|
||||||
$user_rslt=mysql_to_mysqli($user_stmt, $link);
|
$user_rslt=mysql_to_mysqli($user_stmt, $link);
|
||||||
if (mysqli_num_rows($user_rslt)>0) {
|
if (mysqli_num_rows($user_rslt)>0) {
|
||||||
@@ -149,7 +154,7 @@ if (mysqli_num_rows($user_rslt)>0) {
|
|||||||
$VUselected_language = $user_row[2];
|
$VUselected_language = $user_row[2];
|
||||||
|
|
||||||
if ($chat_id) {
|
if ($chat_id) {
|
||||||
$chat_stmt="select * from vicidial_live_chats where chat_creator='$user' and chat_id='$chat_id'";
|
$chat_stmt="SELECT * from vicidial_live_chats where chat_creator='$user' and chat_id='$chat_id';";
|
||||||
# echo "<!-- \n$chat_stmt\n";
|
# echo "<!-- \n$chat_stmt\n";
|
||||||
$chat_rslt=mysql_to_mysqli($chat_stmt, $link);
|
$chat_rslt=mysql_to_mysqli($chat_stmt, $link);
|
||||||
if (mysqli_num_rows($chat_rslt)>0) {
|
if (mysqli_num_rows($chat_rslt)>0) {
|
||||||
@@ -164,14 +169,14 @@ if (mysqli_num_rows($user_rslt)>0) {
|
|||||||
unset($pass);
|
unset($pass);
|
||||||
|
|
||||||
## Since user is not a vicidial user, check to see if they belong to another chat and use that as the default chat variable.
|
## Since user is not a vicidial user, check to see if they belong to another chat and use that as the default chat variable.
|
||||||
$chat_stmt="select chat_id from vicidial_chat_participants where chat_member='$user'";
|
$chat_stmt="SELECT chat_id from vicidial_chat_participants where chat_member='$user';";
|
||||||
$chat_rslt=mysql_to_mysqli($chat_stmt, $link);
|
$chat_rslt=mysql_to_mysqli($chat_stmt, $link);
|
||||||
if (mysqli_num_rows($chat_rslt)>0) {
|
if (mysqli_num_rows($chat_rslt)>0) {
|
||||||
$chat_row=mysqli_fetch_row($chat_rslt);
|
$chat_row=mysqli_fetch_row($chat_rslt);
|
||||||
$chat_id=$chat_row[0];
|
$chat_id=$chat_row[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$stmt="select * from vicidial_list where lead_id='$lead_id'";
|
$stmt="SELECT * from vicidial_list where lead_id='$lead_id';";
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
if (mysqli_num_rows($rslt)>0) {
|
if (mysqli_num_rows($rslt)>0) {
|
||||||
$row=mysqli_fetch_array($rslt);
|
$row=mysqli_fetch_array($rslt);
|
||||||
@@ -801,7 +806,7 @@ if (!$user) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_stmt="select if(user_nickname!='' and user_nickname is not null, user_nickname, full_name) from vicidial_users where user='$user' limit 1";
|
$user_stmt="SELECT if(user_nickname!='' and user_nickname is not null, user_nickname, full_name) from vicidial_users where user='$user' limit 1;";
|
||||||
$user_rslt=mysql_to_mysqli($user_stmt, $link);
|
$user_rslt=mysql_to_mysqli($user_stmt, $link);
|
||||||
$inchat_html=""; $nochat_html="";
|
$inchat_html=""; $nochat_html="";
|
||||||
$autojoin_js_fx="StartRefresh();";
|
$autojoin_js_fx="StartRefresh();";
|
||||||
@@ -811,7 +816,7 @@ if (mysqli_num_rows($user_rslt)==0) {
|
|||||||
$inchat_html.="<input type='hidden' name='chat_member_name' id='chat_member_name' value='$outside_user_name'>";
|
$inchat_html.="<input type='hidden' name='chat_member_name' id='chat_member_name' value='$outside_user_name'>";
|
||||||
$autojoin_js_fx.="JoinChat('$chat_id');";
|
$autojoin_js_fx.="JoinChat('$chat_id');";
|
||||||
} else {
|
} else {
|
||||||
$chat_stmt="select chat_member_name from vicidial_chat_log where poster='$user' order by message_time desc limit 1";
|
$chat_stmt="SELECT chat_member_name from vicidial_chat_log where poster='$user' order by message_time desc limit 1;";
|
||||||
$chat_rslt=mysql_to_mysqli($chat_stmt, $link);
|
$chat_rslt=mysql_to_mysqli($chat_stmt, $link);
|
||||||
if (mysqli_num_rows($chat_rslt)==0) {
|
if (mysqli_num_rows($chat_rslt)==0) {
|
||||||
$nochat_html.="Please enter your name below before joining a chat:<BR>";
|
$nochat_html.="Please enter your name below before joining a chat:<BR>";
|
||||||
@@ -918,13 +923,13 @@ if($child_window) {
|
|||||||
if (count($chat_group_ids)>0) {
|
if (count($chat_group_ids)>0) {
|
||||||
$chat_group_idsSQL = implode("','", $chat_group_ids);
|
$chat_group_idsSQL = implode("','", $chat_group_ids);
|
||||||
$chat_group_idsSQL = preg_replace("/\\\\|;/","",$chat_group_idsSQL);
|
$chat_group_idsSQL = preg_replace("/\\\\|;/","",$chat_group_idsSQL);
|
||||||
$group_stmt="select group_id, group_name from vicidial_inbound_groups where group_handling='CHAT' and group_id in ('$chat_group_idsSQL') order by group_name asc";
|
$group_stmt="SELECT group_id, group_name from vicidial_inbound_groups where group_handling='CHAT' and group_id in ('$chat_group_idsSQL') order by group_name asc;";
|
||||||
$group_rslt=mysql_to_mysqli($group_stmt, $link);
|
$group_rslt=mysql_to_mysqli($group_stmt, $link);
|
||||||
while ($group_row=mysqli_fetch_row($group_rslt)) {
|
while ($group_row=mysqli_fetch_row($group_rslt)) {
|
||||||
echo "<option value='".$group_row[0]."'>".$group_row[1]."</option>\n";
|
echo "<option value='".$group_row[0]."'>".$group_row[1]."</option>\n";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$vla_stmt="select closer_campaigns from vicidial_live_agents where user='$user'";
|
$vla_stmt="SELECT closer_campaigns from vicidial_live_agents where user='$user';";
|
||||||
$vla_rslt=mysql_to_mysqli($vla_stmt, $link);
|
$vla_rslt=mysql_to_mysqli($vla_stmt, $link);
|
||||||
if (mysqli_num_rows($vla_rslt)>0) {
|
if (mysqli_num_rows($vla_rslt)>0) {
|
||||||
$vla_row=mysqli_fetch_row($vla_rslt);
|
$vla_row=mysqli_fetch_row($vla_rslt);
|
||||||
@@ -934,7 +939,7 @@ if($child_window) {
|
|||||||
echo "*$closer_campaigns*";
|
echo "*$closer_campaigns*";
|
||||||
$closer_campaigns_SQL="'".$closer_campaigns."'";
|
$closer_campaigns_SQL="'".$closer_campaigns."'";
|
||||||
|
|
||||||
$group_stmt="select group_id, group_name from vicidial_inbound_groups where group_handling='CHAT' and group_id in ($closer_campaigns_SQL) order by group_name asc";
|
$group_stmt="SELECT group_id, group_name from vicidial_inbound_groups where group_handling='CHAT' and group_id in ($closer_campaigns_SQL) order by group_name asc;";
|
||||||
$group_rslt=mysql_to_mysqli($group_stmt, $link);
|
$group_rslt=mysql_to_mysqli($group_stmt, $link);
|
||||||
while ($group_row=mysqli_fetch_row($group_rslt)) {
|
while ($group_row=mysqli_fetch_row($group_rslt)) {
|
||||||
echo "<option value='".$group_row[0]."'>".$group_row[1]."</option>\n";
|
echo "<option value='".$group_row[0]."'>".$group_row[1]."</option>\n";
|
||||||
|
|||||||
+69
-42
@@ -497,10 +497,11 @@
|
|||||||
# 200825-2342 - Added option for manual-only sip actions
|
# 200825-2342 - Added option for manual-only sip actions
|
||||||
# 200828-1535 - Fixed issue with dispo URL statuse being sent for CBHOLD statuses
|
# 200828-1535 - Fixed issue with dispo URL statuse being sent for CBHOLD statuses
|
||||||
# 201111-2139 - Fix for AGENTDIRECT selected in-groups issue #1241
|
# 201111-2139 - Fix for AGENTDIRECT selected in-groups issue #1241
|
||||||
|
# 201117-0820 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-390';
|
$version = '2.14-391';
|
||||||
$build = '201111-2139';
|
$build = '201117-0820';
|
||||||
$php_script = 'vdc_db_query.php';
|
$php_script = 'vdc_db_query.php';
|
||||||
$mel=1; # Mysql Error Log enabled = 1
|
$mel=1; # Mysql Error Log enabled = 1
|
||||||
$mysql_log_count=839;
|
$mysql_log_count=839;
|
||||||
@@ -1011,27 +1012,6 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
if ($non_latin < 1)
|
|
||||||
{
|
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
|
||||||
$orig_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$orig_pass);
|
|
||||||
$phone_code = preg_replace("/[^0-9a-zA-Z]/","",$phone_code);
|
|
||||||
$phone_number = preg_replace("/[^0-9a-zA-Z]/","",$phone_number);
|
|
||||||
$status = preg_replace("/[^-_0-9a-zA-Z]/","",$status);
|
|
||||||
$MgrApr_user = preg_replace("/[^-_0-9a-zA-Z]/","",$MgrApr_user);
|
|
||||||
$MgrApr_pass = preg_replace("/[^-_0-9a-zA-Z]/","",$MgrApr_pass);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
|
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
|
||||||
$orig_pass = preg_replace("/\'|\"|\\\\|;/","",$orig_pass);
|
|
||||||
$status = preg_replace("/\'|\"|\\\\|;/","",$status);
|
|
||||||
$MgrApr_user = preg_replace("/\'|\"|\\\\|;/","",$MgrApr_user);
|
|
||||||
$MgrApr_pass = preg_replace("/\'|\"|\\\\|;/","",$MgrApr_pass);
|
|
||||||
}
|
|
||||||
|
|
||||||
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
$alt_phone = preg_replace("/\s/","",$alt_phone);
|
$alt_phone = preg_replace("/\s/","",$alt_phone);
|
||||||
@@ -1058,16 +1038,12 @@ $agent_dialed_type = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_dialed_type);
|
|||||||
$agent_email = preg_replace("/\'|\"|\\\\|;/","",$agent_email);
|
$agent_email = preg_replace("/\'|\"|\\\\|;/","",$agent_email);
|
||||||
$agent_log = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_log);
|
$agent_log = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_log);
|
||||||
$agent_log_id = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_log_id);
|
$agent_log_id = preg_replace('/[^-_0-9a-zA-Z]/','',$agent_log_id);
|
||||||
$agent_territories = preg_replace('/[^- _0-9a-zA-Z]/','',$agent_territories);
|
|
||||||
$agentchannel = preg_replace("/\'|\"|\\\\/","",$agentchannel);
|
$agentchannel = preg_replace("/\'|\"|\\\\/","",$agentchannel);
|
||||||
$alt_dial = preg_replace('/[^-_0-9a-zA-Z]/','',$alt_dial);
|
$alt_dial = preg_replace('/[^-_0-9a-zA-Z]/','',$alt_dial);
|
||||||
$alt_num_status = preg_replace('/[^-_0-9a-zA-Z]/','',$alt_num_status);
|
|
||||||
$auto_dial_level = preg_replace('/[^-\._0-9a-zA-Z]/','',$auto_dial_level);
|
$auto_dial_level = preg_replace('/[^-\._0-9a-zA-Z]/','',$auto_dial_level);
|
||||||
$blind_transfer = preg_replace('/[^-_0-9a-zA-Z]/','',$blind_transfer);
|
$blind_transfer = preg_replace('/[^-_0-9a-zA-Z]/','',$blind_transfer);
|
||||||
$callback_id = preg_replace('/[^-_0-9a-zA-Z]/','',$callback_id);
|
$callback_id = preg_replace('/[^-_0-9a-zA-Z]/','',$callback_id);
|
||||||
$called_count = preg_replace('/[^0-9]/','',$called_count);
|
$called_count = preg_replace('/[^0-9]/','',$called_count);
|
||||||
$camp_script = preg_replace('/[^-_0-9a-zA-Z]/','',$camp_script);
|
|
||||||
$campaign_cid = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign_cid);
|
|
||||||
$channel = preg_replace("/\'|\"|\\\\/","",$channel);
|
$channel = preg_replace("/\'|\"|\\\\/","",$channel);
|
||||||
$cid_lock = preg_replace('/[^0-9]/','',$cid_lock);
|
$cid_lock = preg_replace('/[^0-9]/','',$cid_lock);
|
||||||
$closer_blended = preg_replace('/[^-_0-9a-zA-Z]/','',$closer_blended);
|
$closer_blended = preg_replace('/[^-_0-9a-zA-Z]/','',$closer_blended);
|
||||||
@@ -1077,16 +1053,11 @@ $custom_field_names = preg_replace("/\'|\"|\\\\|;/","",$custom_field_names);
|
|||||||
$customer_server_ip = preg_replace("/\'|\"|\\\\|;/","",$customer_server_ip);
|
$customer_server_ip = preg_replace("/\'|\"|\\\\|;/","",$customer_server_ip);
|
||||||
$customer_zap_channel = preg_replace("/\'|\"|\\\\/","",$customer_zap_channel);
|
$customer_zap_channel = preg_replace("/\'|\"|\\\\/","",$customer_zap_channel);
|
||||||
$date = preg_replace('/[^-_0-9]/','',$date);
|
$date = preg_replace('/[^-_0-9]/','',$date);
|
||||||
$dial_ingroup = preg_replace('/[^-_0-9a-zA-Z]/','',$dial_ingroup);
|
|
||||||
$dial_method = preg_replace('/[^-_0-9a-zA-Z]/','',$dial_method);
|
|
||||||
$dial_prefix = preg_replace('/[^-_0-9a-zA-Z]/','',$dial_prefix);
|
|
||||||
$dial_timeout = preg_replace('/[^0-9]/','',$dial_timeout);
|
$dial_timeout = preg_replace('/[^0-9]/','',$dial_timeout);
|
||||||
$disable_alter_custphone = preg_replace('/[^-_0-9a-zA-Z]/','',$disable_alter_custphone);
|
$disable_alter_custphone = preg_replace('/[^-_0-9a-zA-Z]/','',$disable_alter_custphone);
|
||||||
$dispo_choice = preg_replace('/[^-_0-9a-zA-Z]/','',$dispo_choice);
|
|
||||||
$email_enabled = preg_replace('/[^0-9]/','',$email_enabled);
|
$email_enabled = preg_replace('/[^0-9]/','',$email_enabled);
|
||||||
$email_row_id = preg_replace('/[^-_0-9a-zA-Z]/','',$email_row_id);
|
$email_row_id = preg_replace('/[^-_0-9a-zA-Z]/','',$email_row_id);
|
||||||
$enable_sipsak_messages = preg_replace('/[^0-9]/','',$enable_sipsak_messages);
|
$enable_sipsak_messages = preg_replace('/[^0-9]/','',$enable_sipsak_messages);
|
||||||
$ext_context = preg_replace('/[^-_0-9a-zA-Z]/','',$ext_context);
|
|
||||||
$ext_priority = preg_replace('/[^-_0-9a-zA-Z]/','',$ext_priority);
|
$ext_priority = preg_replace('/[^-_0-9a-zA-Z]/','',$ext_priority);
|
||||||
$exten = preg_replace("/\'|\"|\\\\|;/","",$exten);
|
$exten = preg_replace("/\'|\"|\\\\|;/","",$exten);
|
||||||
$extension = preg_replace("/\'|\"|\\\\|;/","",$extension);
|
$extension = preg_replace("/\'|\"|\\\\|;/","",$extension);
|
||||||
@@ -1096,17 +1067,13 @@ $gender = preg_replace('/[^-_0-9a-zA-Z]/','',$gender);
|
|||||||
$group_name = preg_replace("/\'|\"|\\\\|;/","",$group_name);
|
$group_name = preg_replace("/\'|\"|\\\\|;/","",$group_name);
|
||||||
$hangup_all_non_reserved = preg_replace('/[^0-9]/','',$hangup_all_non_reserved);
|
$hangup_all_non_reserved = preg_replace('/[^0-9]/','',$hangup_all_non_reserved);
|
||||||
$inOUT = preg_replace('/[^-_0-9a-zA-Z]/','',$inOUT);
|
$inOUT = preg_replace('/[^-_0-9a-zA-Z]/','',$inOUT);
|
||||||
$in_script = preg_replace('/[^-_0-9a-zA-Z]/','',$in_script);
|
|
||||||
$inbound_lead_search = preg_replace('/[^0-9]/','',$inbound_lead_search);
|
$inbound_lead_search = preg_replace('/[^0-9]/','',$inbound_lead_search);
|
||||||
$last_VDRP_stage = preg_replace('/[^-_0-9a-zA-Z]/','',$last_VDRP_stage);
|
$last_VDRP_stage = preg_replace('/[^-_0-9a-zA-Z]/','',$last_VDRP_stage);
|
||||||
$leaving_threeway = preg_replace('/[^0-9]/','',$leaving_threeway);
|
$leaving_threeway = preg_replace('/[^0-9]/','',$leaving_threeway);
|
||||||
$manual_dial_call_time_check = preg_replace('/[^-_0-9a-zA-Z]/','',$manual_dial_call_time_check);
|
$manual_dial_call_time_check = preg_replace('/[^-_0-9a-zA-Z]/','',$manual_dial_call_time_check);
|
||||||
$manual_dial_filter = preg_replace('/[^-_0-9a-zA-Z]/','',$manual_dial_filter);
|
|
||||||
$manual_dial_search_filter = preg_replace('/[^-_0-9a-zA-Z]/','',$manual_dial_search_filter);
|
|
||||||
$no_delete_sessions = preg_replace('/[^0-9]/','',$no_delete_sessions);
|
$no_delete_sessions = preg_replace('/[^0-9]/','',$no_delete_sessions);
|
||||||
$nocall_dial_flag = preg_replace('/[^-_0-9a-zA-Z]/','',$nocall_dial_flag);
|
$nocall_dial_flag = preg_replace('/[^-_0-9a-zA-Z]/','',$nocall_dial_flag);
|
||||||
$nodeletevdac = preg_replace('/[^0-9]/','',$nodeletevdac);
|
$nodeletevdac = preg_replace('/[^0-9]/','',$nodeletevdac);
|
||||||
$old_CID = preg_replace('/[^- _0-9a-zA-Z]/','',$old_CID);
|
|
||||||
$omit_phone_code = preg_replace('/[^-_0-9a-zA-Z]/','',$omit_phone_code);
|
$omit_phone_code = preg_replace('/[^-_0-9a-zA-Z]/','',$omit_phone_code);
|
||||||
$original_phone_login = preg_replace("/\'|\"|\\\\|;/","",$original_phone_login);
|
$original_phone_login = preg_replace("/\'|\"|\\\\|;/","",$original_phone_login);
|
||||||
$parked_hangup = preg_replace('/[^-_0-9a-zA-Z]/','',$parked_hangup);
|
$parked_hangup = preg_replace('/[^-_0-9a-zA-Z]/','',$parked_hangup);
|
||||||
@@ -1116,16 +1083,12 @@ $phone_pass = preg_replace("/\'|\"|\\\\|;/","",$phone_pass);
|
|||||||
$preview = preg_replace('/[^-_0-9a-zA-Z]/','',$preview);
|
$preview = preg_replace('/[^-_0-9a-zA-Z]/','',$preview);
|
||||||
$previous_agent_log_id = preg_replace('/[^-_0-9a-zA-Z]/','',$previous_agent_log_id);
|
$previous_agent_log_id = preg_replace('/[^-_0-9a-zA-Z]/','',$previous_agent_log_id);
|
||||||
$protocol = preg_replace('/[^-_0-9a-zA-Z]/','',$protocol);
|
$protocol = preg_replace('/[^-_0-9a-zA-Z]/','',$protocol);
|
||||||
$qm_dispo_code = preg_replace('/[^-_0-9a-zA-Z]/','',$qm_dispo_code);
|
|
||||||
$qm_extension = preg_replace("/\'|\"|\\\\|;/","",$qm_extension);
|
$qm_extension = preg_replace("/\'|\"|\\\\|;/","",$qm_extension);
|
||||||
$qm_phone = preg_replace("/\'|\"|\\\\|;/","",$qm_phone);
|
$qm_phone = preg_replace("/\'|\"|\\\\|;/","",$qm_phone);
|
||||||
$recipient = preg_replace('/[^-_0-9a-zA-Z]/','',$recipient);
|
|
||||||
$recording_filename = preg_replace("/\'|\"|\\\\|;/","",$recording_filename);
|
$recording_filename = preg_replace("/\'|\"|\\\\|;/","",$recording_filename);
|
||||||
$recording_id = preg_replace('/[^0-9]/','',$recording_id);
|
$recording_id = preg_replace('/[^0-9]/','',$recording_id);
|
||||||
$search = preg_replace('/[^-_0-9a-zA-Z]/','',$search);
|
|
||||||
$stage = preg_replace("/\'|\"|\\\\|;/","",$stage);
|
$stage = preg_replace("/\'|\"|\\\\|;/","",$stage);
|
||||||
$start_epoch = preg_replace("/\'|\"|\\\\|;/","",$start_epoch);
|
$start_epoch = preg_replace("/\'|\"|\\\\|;/","",$start_epoch);
|
||||||
$sub_status = preg_replace('/[^-_0-9a-zA-Z]/','',$sub_status);
|
|
||||||
$url_ids = preg_replace("/\'|\"|\\\\|;/","",$url_ids);
|
$url_ids = preg_replace("/\'|\"|\\\\|;/","",$url_ids);
|
||||||
$use_campaign_dnc = preg_replace('/[^-_0-9a-zA-Z]/','',$use_campaign_dnc);
|
$use_campaign_dnc = preg_replace('/[^-_0-9a-zA-Z]/','',$use_campaign_dnc);
|
||||||
$use_internal_dnc = preg_replace('/[^-_0-9a-zA-Z]/','',$use_internal_dnc);
|
$use_internal_dnc = preg_replace('/[^-_0-9a-zA-Z]/','',$use_internal_dnc);
|
||||||
@@ -1134,7 +1097,6 @@ $user_abb = preg_replace("/\'|\"|\\\\|;/","",$user_abb);
|
|||||||
$vtiger_callback_id = preg_replace("/\'|\"|\\\\|;/","",$vtiger_callback_id);
|
$vtiger_callback_id = preg_replace("/\'|\"|\\\\|;/","",$vtiger_callback_id);
|
||||||
$wrapup = preg_replace("/\'|\"|\\\\|;/","",$wrapup);
|
$wrapup = preg_replace("/\'|\"|\\\\|;/","",$wrapup);
|
||||||
$url_link = preg_replace("/\'|\"|\\\\|;/","",$url_link);
|
$url_link = preg_replace("/\'|\"|\\\\|;/","",$url_link);
|
||||||
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
|
|
||||||
$routing_initiated_recording = preg_replace('/[^-_0-9a-zA-Z]/','',$routing_initiated_recording);
|
$routing_initiated_recording = preg_replace('/[^-_0-9a-zA-Z]/','',$routing_initiated_recording);
|
||||||
$dead_time = preg_replace('/[^0-9]/','',$dead_time);
|
$dead_time = preg_replace('/[^0-9]/','',$dead_time);
|
||||||
$callback_gmt_offset = preg_replace('/[^- \._0-9a-zA-Z]/','',$callback_gmt_offset);
|
$callback_gmt_offset = preg_replace('/[^- \._0-9a-zA-Z]/','',$callback_gmt_offset);
|
||||||
@@ -1144,6 +1106,64 @@ $start_date = preg_replace('/[^-_0-9]/','',$start_date);
|
|||||||
$end_date = preg_replace('/[^-_0-9]/','',$end_date);
|
$end_date = preg_replace('/[^-_0-9]/','',$end_date);
|
||||||
$customer_sec = preg_replace('/[^-_0-9]/','',$customer_sec);
|
$customer_sec = preg_replace('/[^-_0-9]/','',$customer_sec);
|
||||||
|
|
||||||
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
|
$orig_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$orig_pass);
|
||||||
|
$phone_code = preg_replace("/[^0-9a-zA-Z]/","",$phone_code);
|
||||||
|
$phone_number = preg_replace("/[^0-9a-zA-Z]/","",$phone_number);
|
||||||
|
$status = preg_replace("/[^-_0-9a-zA-Z]/","",$status);
|
||||||
|
$MgrApr_user = preg_replace("/[^-_0-9a-zA-Z]/","",$MgrApr_user);
|
||||||
|
$MgrApr_pass = preg_replace("/[^-_0-9a-zA-Z]/","",$MgrApr_pass);
|
||||||
|
$agent_territories = preg_replace('/[^- _0-9a-zA-Z]/','',$agent_territories);
|
||||||
|
$alt_num_status = preg_replace('/[^-_0-9a-zA-Z]/','',$alt_num_status);
|
||||||
|
$camp_script = preg_replace('/[^-_0-9a-zA-Z]/','',$camp_script);
|
||||||
|
$campaign_cid = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign_cid);
|
||||||
|
$dial_ingroup = preg_replace('/[^-_0-9a-zA-Z]/','',$dial_ingroup);
|
||||||
|
$dial_method = preg_replace('/[^-_0-9a-zA-Z]/','',$dial_method);
|
||||||
|
$dial_prefix = preg_replace('/[^-_0-9a-zA-Z]/','',$dial_prefix);
|
||||||
|
$dispo_choice = preg_replace('/[^-_0-9a-zA-Z]/','',$dispo_choice);
|
||||||
|
$ext_context = preg_replace('/[^-_0-9a-zA-Z]/','',$ext_context);
|
||||||
|
$in_script = preg_replace('/[^-_0-9a-zA-Z]/','',$in_script);
|
||||||
|
$manual_dial_filter = preg_replace('/[^-_0-9a-zA-Z]/','',$manual_dial_filter);
|
||||||
|
$manual_dial_search_filter = preg_replace('/[^-_0-9a-zA-Z]/','',$manual_dial_search_filter);
|
||||||
|
$old_CID = preg_replace('/[^- _0-9a-zA-Z]/','',$old_CID);
|
||||||
|
$qm_dispo_code = preg_replace('/[^-_0-9a-zA-Z]/','',$qm_dispo_code);
|
||||||
|
$recipient = preg_replace('/[^-_0-9a-zA-Z]/','',$recipient);
|
||||||
|
$search = preg_replace('/[^-_0-9a-zA-Z]/','',$search);
|
||||||
|
$sub_status = preg_replace('/[^-_0-9a-zA-Z]/','',$sub_status);
|
||||||
|
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user = preg_replace("/\'|\"|\\\\|;/","",$user);
|
||||||
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
|
$orig_pass = preg_replace("/\'|\"|\\\\|;/","",$orig_pass);
|
||||||
|
$status = preg_replace("/\'|\"|\\\\|;/","",$status);
|
||||||
|
$MgrApr_user = preg_replace("/\'|\"|\\\\|;/","",$MgrApr_user);
|
||||||
|
$MgrApr_pass = preg_replace("/\'|\"|\\\\|;/","",$MgrApr_pass);
|
||||||
|
$agent_territories = preg_replace('/[^- _0-9\p{L}]/u','',$agent_territories);
|
||||||
|
$alt_num_status = preg_replace('/[^-_0-9\p{L}]/u','',$alt_num_status);
|
||||||
|
$camp_script = preg_replace('/[^-_0-9\p{L}]/u','',$camp_script);
|
||||||
|
$campaign_cid = preg_replace('/[^-_0-9\p{L}]/u','',$campaign_cid);
|
||||||
|
$dial_ingroup = preg_replace('/[^-_0-9\p{L}]/u','',$dial_ingroup);
|
||||||
|
$dial_method = preg_replace('/[^-_0-9\p{L}]/u','',$dial_method);
|
||||||
|
$dial_prefix = preg_replace('/[^-_0-9\p{L}]/u','',$dial_prefix);
|
||||||
|
$dispo_choice = preg_replace('/[^-_0-9\p{L}]/u','',$dispo_choice);
|
||||||
|
$ext_context = preg_replace('/[^-_0-9\p{L}]/u','',$ext_context);
|
||||||
|
$in_script = preg_replace('/[^-_0-9\p{L}]/u','',$in_script);
|
||||||
|
$manual_dial_filter = preg_replace('/[^-_0-9\p{L}]/u','',$manual_dial_filter);
|
||||||
|
$manual_dial_search_filter = preg_replace('/[^-_0-9\p{L}]/u','',$manual_dial_search_filter);
|
||||||
|
$old_CID = preg_replace('/[^- _0-9\p{L}]/u','',$old_CID);
|
||||||
|
$qm_dispo_code = preg_replace('/[^-_0-9\p{L}]/u','',$qm_dispo_code);
|
||||||
|
$recipient = preg_replace('/[^-_0-9\p{L}]/u','',$recipient);
|
||||||
|
$search = preg_replace('/[^-_0-9\p{L}]/u','',$search);
|
||||||
|
$sub_status = preg_replace('/[^-_0-9\p{L}]/u','',$sub_status);
|
||||||
|
$user_group = preg_replace('/[^-_0-9\p{L}]/u','',$user_group);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# default optional vars if not set
|
# default optional vars if not set
|
||||||
if (!isset($format)) {$format="text";}
|
if (!isset($format)) {$format="text";}
|
||||||
if ($format == 'debug') {$DB=1;}
|
if ($format == 'debug') {$DB=1;}
|
||||||
@@ -16264,7 +16284,14 @@ if ($ACTION == 'SBC_timezone_build')
|
|||||||
$line_country = $cust_timezome_line[0];
|
$line_country = $cust_timezome_line[0];
|
||||||
$line_zone = $cust_timezome_line[1];
|
$line_zone = $cust_timezome_line[1];
|
||||||
$line_dst = $cust_timezome_line[2];
|
$line_dst = $cust_timezome_line[2];
|
||||||
$line_name = preg_replace('/[^-, _0-9a-zA-Z]/','',$cust_timezome_line[3]);
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$line_name = preg_replace('/[^-, _0-9a-zA-Z]/','',$cust_timezome_line[3]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$line_name = preg_replace('/[^-, _0-9\p{L}]/u','',$cust_timezome_line[3]);
|
||||||
|
}
|
||||||
$stmt = "SELECT php_tz from vicidial_phone_codes where country='$line_country' and DST='$line_dst' and tz_code='$line_zone' limit 1;";
|
$stmt = "SELECT php_tz from vicidial_phone_codes where country='$line_country' and DST='$line_dst' and tz_code='$line_zone' limit 1;";
|
||||||
if ($DB) {echo "$stmt\n";}
|
if ($DB) {echo "$stmt\n";}
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
|
|||||||
@@ -106,11 +106,6 @@ $IFRAME=0;
|
|||||||
|
|
||||||
$user = preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user = preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass = preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass = preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$campaign = preg_replace("/\'|\"|\\\\|;/","",$campaign);
|
|
||||||
$attachment_id = preg_replace("/[^0-9]/","",$attachment_id);
|
|
||||||
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
|
||||||
$email_row_id = preg_replace('/[^0-9]/','',$email_row_id);
|
|
||||||
$reply_to_address = preg_replace("/\'|\"|\\\\|;/","",$reply_to_address);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
||||||
@@ -151,6 +146,12 @@ if ($allow_emails<1)
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$campaign = preg_replace("/\'|\"|\\\\|;/","",$campaign);
|
||||||
|
$attachment_id = preg_replace("/[^0-9]/","",$attachment_id);
|
||||||
|
$lead_id = preg_replace('/[^0-9]/','',$lead_id);
|
||||||
|
$email_row_id = preg_replace('/[^0-9]/','',$email_row_id);
|
||||||
|
$reply_to_address = preg_replace("/\'|\"|\\\\|;/","",$reply_to_address);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
|
|||||||
@@ -44,10 +44,11 @@
|
|||||||
# 171116-2333 - Added code for duplicate fields
|
# 171116-2333 - Added code for duplicate fields
|
||||||
# 180503-1813 - Added code for SWITCH field type
|
# 180503-1813 - Added code for SWITCH field type
|
||||||
# 200406-1137 - Added hide_gender and gender default population
|
# 200406-1137 - Added hide_gender and gender default population
|
||||||
|
# 201117-2056 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-34';
|
$version = '2.14-35';
|
||||||
$build = '200406-1137';
|
$build = '201117-2056';
|
||||||
$php_script = 'vdc_form_display.php';
|
$php_script = 'vdc_form_display.php';
|
||||||
|
|
||||||
require_once("dbconnect_mysqli.php");
|
require_once("dbconnect_mysqli.php");
|
||||||
@@ -233,15 +234,6 @@ $SUBMIT_only=0;
|
|||||||
|
|
||||||
$user = preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user = preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass = preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass = preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$lead_id = preg_replace('/[^0-9]/', '', $lead_id);
|
|
||||||
$list_id = preg_replace('/[^0-9]/', '', $list_id);
|
|
||||||
$new_list_id = preg_replace('/[^0-9]/', '', $new_list_id);
|
|
||||||
$agent_log_id = preg_replace('/[^0-9]/', '', $agent_log_id);
|
|
||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
|
||||||
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
|
||||||
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
|
||||||
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
|
||||||
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
||||||
@@ -276,12 +268,29 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
|
||||||
|
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
|
||||||
|
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
||||||
|
$lead_id = preg_replace('/[^0-9]/', '', $lead_id);
|
||||||
|
$list_id = preg_replace('/[^0-9]/', '', $list_id);
|
||||||
|
$new_list_id = preg_replace('/[^0-9]/', '', $new_list_id);
|
||||||
|
$agent_log_id = preg_replace('/[^0-9]/', '', $agent_log_id);
|
||||||
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
|
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
||||||
|
$call_id = preg_replace('/[^-_\.0-9a-zA-Z]/','',$call_id);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
|
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
||||||
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
|
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
||||||
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
$user_group = preg_replace('/[^-_0-9a-zA-Z]/','',$user_group);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$uniqueid = preg_replace('/[^-_\.0-9\p{L}]/u','',$uniqueid);
|
||||||
|
$campaign = preg_replace('/[^-_0-9\p{L}]/u','',$campaign);
|
||||||
|
$user_group = preg_replace('/[^-_0-9\p{L}]/u','',$user_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
# default optional vars if not set
|
# default optional vars if not set
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# vdc_script_display.php
|
# vdc_script_display.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2019 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This script is designed display the contents of the SCRIPT tab in the agent interface
|
# This script is designed display the contents of the SCRIPT tab in the agent interface
|
||||||
#
|
#
|
||||||
@@ -41,10 +41,11 @@
|
|||||||
# 180327-1356 - Added code for LOCALFQDN conversion to browser-used server URL for script iframes
|
# 180327-1356 - Added code for LOCALFQDN conversion to browser-used server URL for script iframes
|
||||||
# 191013-2145 - Fixes for PHP7
|
# 191013-2145 - Fixes for PHP7
|
||||||
# 191031-1158 - Added Script2 feature
|
# 191031-1158 - Added Script2 feature
|
||||||
|
# 201117-2107 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-35';
|
$version = '2.14-36';
|
||||||
$build = '191013-2145';
|
$build = '201117-2107';
|
||||||
|
|
||||||
require_once("dbconnect_mysqli.php");
|
require_once("dbconnect_mysqli.php");
|
||||||
require_once("functions.php");
|
require_once("functions.php");
|
||||||
@@ -291,22 +292,6 @@ $IFRAMEencode=1;
|
|||||||
|
|
||||||
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$orig_pass = preg_replace("/\'|\"|\\\\|;| /","",$orig_pass);
|
|
||||||
$lead_id = preg_replace('/[^0-9]/', '', $lead_id);
|
|
||||||
$list_id = preg_replace('/[^0-9]/', '', $list_id);
|
|
||||||
$email_row_id = preg_replace('/[^0-9]/', '', $email_row_id);
|
|
||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
|
||||||
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
|
||||||
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
|
||||||
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
|
||||||
$group = preg_replace('/[^-_0-9a-zA-Z]/','',$group);
|
|
||||||
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
|
||||||
$LOGINvarONE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarONE);
|
|
||||||
$LOGINvarTWO=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTWO);
|
|
||||||
$LOGINvarTHREE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTHREE);
|
|
||||||
$LOGINvarFOUR=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFOUR);
|
|
||||||
$LOGINvarFIVE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFIVE);
|
|
||||||
$script_span=preg_replace("/[^-_0-9a-zA-Z]/","",$script_span);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
||||||
@@ -341,14 +326,43 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$orig_pass = preg_replace("/\'|\"|\\\\|;| /","",$orig_pass);
|
||||||
|
$lead_id = preg_replace('/[^0-9]/', '', $lead_id);
|
||||||
|
$list_id = preg_replace('/[^0-9]/', '', $list_id);
|
||||||
|
$email_row_id = preg_replace('/[^0-9]/', '', $email_row_id);
|
||||||
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
|
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
||||||
|
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
||||||
|
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
||||||
|
$script_span=preg_replace("/[^-_0-9a-zA-Z]/","",$script_span);
|
||||||
|
$inOUT=preg_replace("/[^-_0-9a-zA-Z]/","",$inOUT);
|
||||||
|
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
|
||||||
|
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
|
||||||
|
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
$orig_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$orig_pass);
|
$orig_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$orig_pass);
|
||||||
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
|
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
||||||
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
|
$group = preg_replace('/[^-_0-9a-zA-Z]/','',$group);
|
||||||
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
|
||||||
$session_name=preg_replace("/[^-_0-9a-zA-Z]/","",$session_name);
|
$session_name=preg_replace("/[^-_0-9a-zA-Z]/","",$session_name);
|
||||||
|
$LOGINvarONE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarONE);
|
||||||
|
$LOGINvarTWO=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTWO);
|
||||||
|
$LOGINvarTHREE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTHREE);
|
||||||
|
$LOGINvarFOUR=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFOUR);
|
||||||
|
$LOGINvarFIVE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFIVE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$campaign = preg_replace('/[^-_0-9\p{L}]/u','',$campaign);
|
||||||
|
$group = preg_replace('/[^-_0-9\p{L}]/u','',$group);
|
||||||
|
$session_name=preg_replace("/[^-_0-9\p{L}]/u","",$session_name);
|
||||||
|
$LOGINvarONE=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarONE);
|
||||||
|
$LOGINvarTWO=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarTWO);
|
||||||
|
$LOGINvarTHREE=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarTHREE);
|
||||||
|
$LOGINvarFOUR=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarFOUR);
|
||||||
|
$LOGINvarFIVE=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarFIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
# default optional vars if not set
|
# default optional vars if not set
|
||||||
@@ -373,7 +387,7 @@ if ($format=='debug')
|
|||||||
echo "<html>\n";
|
echo "<html>\n";
|
||||||
echo "<head>\n";
|
echo "<head>\n";
|
||||||
echo "<!-- VERSION: $version BUILD: $build USER: $user server_ip: $server_ip-->\n";
|
echo "<!-- VERSION: $version BUILD: $build USER: $user server_ip: $server_ip-->\n";
|
||||||
echo "<title>"._QXZ("VICIDiaL Script Display Script");
|
echo "<title>"._QXZ("VICIdial Script Display Script");
|
||||||
echo "</title>\n";
|
echo "</title>\n";
|
||||||
echo "</head>\n";
|
echo "</head>\n";
|
||||||
echo "<BODY BGCOLOR=white marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>\n";
|
echo "<BODY BGCOLOR=white marginheight=0 marginwidth=0 leftmargin=0 topmargin=0>\n";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
# vdc_script_notes.php
|
# vdc_script_notes.php
|
||||||
#
|
#
|
||||||
# Copyright (C) 2017 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
# Copyright (C) 2020 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2
|
||||||
#
|
#
|
||||||
# This script is designed open in the SCRIPT tab in the agent interface through
|
# This script is designed open in the SCRIPT tab in the agent interface through
|
||||||
# an IFRAME. It will create a new record for every SUBMIT
|
# an IFRAME. It will create a new record for every SUBMIT
|
||||||
@@ -19,10 +19,11 @@
|
|||||||
# 141216-2132 - Added language settings lookups and user/pass variable standardization
|
# 141216-2132 - Added language settings lookups and user/pass variable standardization
|
||||||
# 170526-2345 - Added additional variable filtering
|
# 170526-2345 - Added additional variable filtering
|
||||||
# 170528-0901 - Added more variable filtering
|
# 170528-0901 - Added more variable filtering
|
||||||
|
# 201117-2213 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-9';
|
$version = '2.14-10';
|
||||||
$build = '170528-0901';
|
$build = '201117-2213';
|
||||||
|
|
||||||
require_once("dbconnect_mysqli.php");
|
require_once("dbconnect_mysqli.php");
|
||||||
require_once("functions.php");
|
require_once("functions.php");
|
||||||
@@ -221,15 +222,6 @@ if (strlen($call_date) < 1)
|
|||||||
|
|
||||||
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
$user=preg_replace("/\'|\"|\\\\|;| /","",$user);
|
||||||
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
$pass=preg_replace("/\'|\"|\\\\|;| /","",$pass);
|
||||||
$lead_id = preg_replace('/[^0-9]/', '', $lead_id);
|
|
||||||
$list_id = preg_replace('/[^0-9]/', '', $list_id);
|
|
||||||
$notesid = preg_replace('/[^0-9]/', '', $notesid);
|
|
||||||
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
|
||||||
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
|
||||||
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
|
||||||
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
|
||||||
$group = preg_replace('/[^-_0-9a-zA-Z]/','',$group);
|
|
||||||
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
##### START SYSTEM_SETTINGS AND USER LANGUAGE LOOKUP #####
|
||||||
@@ -263,12 +255,27 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$lead_id = preg_replace('/[^0-9]/', '', $lead_id);
|
||||||
|
$list_id = preg_replace('/[^0-9]/', '', $list_id);
|
||||||
|
$notesid = preg_replace('/[^0-9]/', '', $notesid);
|
||||||
|
$server_ip = preg_replace("/\'|\"|\\\\|;/","",$server_ip);
|
||||||
|
$session_id = preg_replace('/[^0-9]/','',$session_id);
|
||||||
|
$uniqueid = preg_replace('/[^-_\.0-9a-zA-Z]/','',$uniqueid);
|
||||||
|
$session_name = preg_replace("/\'|\"|\\\\|;/","",$session_name);
|
||||||
|
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
|
||||||
|
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
|
||||||
|
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
$user=preg_replace("/[^-_0-9a-zA-Z]/","",$user);
|
||||||
$length_in_sec = preg_replace("/[^0-9]/","",$length_in_sec);
|
$campaign = preg_replace('/[^-_0-9a-zA-Z]/','',$campaign);
|
||||||
$phone_code = preg_replace("/[^0-9]/","",$phone_code);
|
$group = preg_replace('/[^-_0-9a-zA-Z]/','',$group);
|
||||||
$phone_number = preg_replace("/[^0-9]/","",$phone_number);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$campaign = preg_replace('/[^-_0-9\p{L}]/u','',$campaign);
|
||||||
|
$group = preg_replace('/[^-_0-9\p{L}]/u','',$group);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($DB > 0)
|
if ($DB > 0)
|
||||||
|
|||||||
+29
-13
@@ -650,10 +650,11 @@
|
|||||||
# 201026-0143 - Fix for pause_max_exceptions issue
|
# 201026-0143 - Fix for pause_max_exceptions issue
|
||||||
# 201107-2236 - Change for parked call logging
|
# 201107-2236 - Change for parked call logging
|
||||||
# 201112-1110 - Added better QueueMetrics misconfiguration error handling
|
# 201112-1110 - Added better QueueMetrics misconfiguration error handling
|
||||||
|
# 201117-0818 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-618c';
|
$version = '2.14-619c';
|
||||||
$build = '201112-1110';
|
$build = '201117-0818';
|
||||||
$mel=1; # Mysql Error Log enabled = 1
|
$mel=1; # Mysql Error Log enabled = 1
|
||||||
$mysql_log_count=92;
|
$mysql_log_count=92;
|
||||||
$one_mysql_log=0;
|
$one_mysql_log=0;
|
||||||
@@ -717,7 +718,7 @@ if (!isset($phone_pass))
|
|||||||
}
|
}
|
||||||
if (isset($VD_campaign))
|
if (isset($VD_campaign))
|
||||||
{
|
{
|
||||||
$VD_campaign = strtoupper($VD_campaign);
|
$VD_campaign = mb_strtoupper($VD_campaign,'utf-8');
|
||||||
$VD_campaign = preg_replace("/\s/i",'',$VD_campaign);
|
$VD_campaign = preg_replace("/\s/i",'',$VD_campaign);
|
||||||
}
|
}
|
||||||
if (!isset($flag_channels))
|
if (!isset($flag_channels))
|
||||||
@@ -728,19 +729,9 @@ if (!isset($flag_channels))
|
|||||||
|
|
||||||
### security strip all non-alphanumeric characters out of the variables ###
|
### security strip all non-alphanumeric characters out of the variables ###
|
||||||
$DB=preg_replace("/[^0-9a-z]/","",$DB);
|
$DB=preg_replace("/[^0-9a-z]/","",$DB);
|
||||||
$phone_login=preg_replace("/[^\,0-9a-zA-Z]/","",$phone_login);
|
|
||||||
$phone_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$phone_pass);
|
|
||||||
$VD_login=preg_replace("/\'|\"|\\\\|;| /","",$VD_login);
|
$VD_login=preg_replace("/\'|\"|\\\\|;| /","",$VD_login);
|
||||||
$VD_pass=preg_replace("/\'|\"|\\\\|;| /","",$VD_pass);
|
$VD_pass=preg_replace("/\'|\"|\\\\|;| /","",$VD_pass);
|
||||||
$VD_campaign = preg_replace("/[^-_0-9a-zA-Z]/","",$VD_campaign);
|
|
||||||
$VD_language = preg_replace("/\'|\"|\\\\|;/","",$VD_language);
|
$VD_language = preg_replace("/\'|\"|\\\\|;/","",$VD_language);
|
||||||
$admin_test = preg_replace("/[^0-9a-zA-Z]/","",$admin_test);
|
|
||||||
$LOGINvarONE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarONE);
|
|
||||||
$LOGINvarTWO=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTWO);
|
|
||||||
$LOGINvarTHREE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTHREE);
|
|
||||||
$LOGINvarFOUR=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFOUR);
|
|
||||||
$LOGINvarFIVE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFIVE);
|
|
||||||
$hide_relogin_fields=preg_replace("/[^-_0-9a-zA-Z]/","",$hide_relogin_fields);
|
|
||||||
$set_pass=preg_replace("/\'|\"|\\\\|;| /","",$set_pass);
|
$set_pass=preg_replace("/\'|\"|\\\\|;| /","",$set_pass);
|
||||||
$new_pass1=preg_replace("/\'|\"|\\\\|;| /","",$new_pass1);
|
$new_pass1=preg_replace("/\'|\"|\\\\|;| /","",$new_pass1);
|
||||||
$new_pass2=preg_replace("/\'|\"|\\\\|;| /","",$new_pass2);
|
$new_pass2=preg_replace("/\'|\"|\\\\|;| /","",$new_pass2);
|
||||||
@@ -851,6 +842,31 @@ if ($non_latin < 1)
|
|||||||
{
|
{
|
||||||
$VD_login=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_login);
|
$VD_login=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_login);
|
||||||
$VD_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_pass);
|
$VD_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$VD_pass);
|
||||||
|
$phone_login=preg_replace("/[^\,0-9a-zA-Z]/","",$phone_login);
|
||||||
|
$phone_pass=preg_replace("/[^-_0-9a-zA-Z]/","",$phone_pass);
|
||||||
|
$VD_campaign = preg_replace("/[^-_0-9a-zA-Z]/","",$VD_campaign);
|
||||||
|
$admin_test = preg_replace("/[^0-9a-zA-Z]/","",$admin_test);
|
||||||
|
$LOGINvarONE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarONE);
|
||||||
|
$LOGINvarTWO=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTWO);
|
||||||
|
$LOGINvarTHREE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarTHREE);
|
||||||
|
$LOGINvarFOUR=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFOUR);
|
||||||
|
$LOGINvarFIVE=preg_replace("/[^-_0-9a-zA-Z]/","",$LOGINvarFIVE);
|
||||||
|
$hide_relogin_fields=preg_replace("/[^-_0-9a-zA-Z]/","",$hide_relogin_fields);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$VD_login = preg_replace("/\'|\"|\\\\|;/","",$VD_login);
|
||||||
|
$VD_pass=preg_replace("/\'|\"|\\\\|;| /","",$VD_pass);
|
||||||
|
$phone_login=preg_replace("/[^\,0-9\p{L}]/u","",$phone_login);
|
||||||
|
$phone_pass=preg_replace("/[^-_0-9\p{L}]/u","",$phone_pass);
|
||||||
|
$VD_campaign = preg_replace("/[^-_0-9\p{L}]/u","",$VD_campaign);
|
||||||
|
$admin_test = preg_replace("/[^0-9\p{L}]/u","",$admin_test);
|
||||||
|
$LOGINvarONE=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarONE);
|
||||||
|
$LOGINvarTWO=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarTWO);
|
||||||
|
$LOGINvarTHREE=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarTHREE);
|
||||||
|
$LOGINvarFOUR=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarFOUR);
|
||||||
|
$LOGINvarFIVE=preg_replace("/[^-_0-9\p{L}]/u","",$LOGINvarFIVE);
|
||||||
|
$hide_relogin_fields=preg_replace("/[^-_0-9\p{L}]/u","",$hide_relogin_fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($force_logout)
|
if ($force_logout)
|
||||||
|
|||||||
@@ -3496,7 +3496,7 @@ if ($talking_to_print > 0)
|
|||||||
if ( ($report_display_type!='HTML') and ($report_display_type!='LIMITED') )
|
if ( ($report_display_type!='HTML') and ($report_display_type!='LIMITED') )
|
||||||
{
|
{
|
||||||
$extension = sprintf("%-48s", $extension);
|
$extension = sprintf("%-48s", $extension);
|
||||||
while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'UTF8');}
|
while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf-8');}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3637,7 +3637,7 @@ if ($talking_to_print > 0)
|
|||||||
$user_group = sprintf("%-40s", $Auser_group[$i]);
|
$user_group = sprintf("%-40s", $Auser_group[$i]);
|
||||||
if ( ($report_display_type!='HTML') and ($report_display_type!='LIMITED') )
|
if ( ($report_display_type!='HTML') and ($report_display_type!='LIMITED') )
|
||||||
{
|
{
|
||||||
while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'UTF8');}
|
while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf-8');}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3656,7 +3656,7 @@ if ($talking_to_print > 0)
|
|||||||
$user = sprintf("%-60s", $Afull_name[$i]);
|
$user = sprintf("%-60s", $Afull_name[$i]);
|
||||||
if ( ($report_display_type!='HTML') and ($report_display_type!='LIMITED') )
|
if ( ($report_display_type!='HTML') and ($report_display_type!='LIMITED') )
|
||||||
{
|
{
|
||||||
while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'UTF8');}
|
while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf-8');}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1431
-677
File diff suppressed because it is too large
Load Diff
@@ -100,6 +100,7 @@
|
|||||||
# 200815-0017 - Added support for additional modify_leads setting
|
# 200815-0017 - Added support for additional modify_leads setting
|
||||||
# 200916-2321 - Added options to allow users to modify any call or agent log status
|
# 200916-2321 - Added options to allow users to modify any call or agent log status
|
||||||
# 201113-0841 - Added server_ip information to extended log view
|
# 201113-0841 - Added server_ip information to extended log view
|
||||||
|
# 201117-0807 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
require("dbconnect_mysqli.php");
|
require("dbconnect_mysqli.php");
|
||||||
@@ -284,90 +285,124 @@ if ($qm_conf_ct > 0)
|
|||||||
##### END SETTINGS LOOKUP #####
|
##### END SETTINGS LOOKUP #####
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
$DB=preg_replace('/[^0-9]/','',$DB);
|
||||||
|
$list_id = preg_replace('/[^0-9]/','',$list_id);
|
||||||
$lead_id = preg_replace('/[^0-9a-zA-Z]/','',$lead_id);
|
$lead_id = preg_replace('/[^0-9a-zA-Z]/','',$lead_id);
|
||||||
$modify_log_submit = preg_replace('/[^-_0-9a-zA-Z]/','',$modify_log_submit);
|
$entry_list_id = preg_replace('/[^0-9]/','',$entry_list_id);
|
||||||
$modify_log_table = preg_replace('/[^-_0-9a-zA-Z]/','',$modify_log_table);
|
$phone_code = preg_replace('/[^0-9]/','',$phone_code);
|
||||||
$vicidial_id = preg_replace('/[^-\+\.\:\_0-9a-zA-Z]/','',$vicidial_id);
|
$update_phone_number=preg_replace('/[^A-Z]/','',$update_phone_number);
|
||||||
|
$phone_number = preg_replace('/[^0-9]/','',$phone_number);
|
||||||
|
$old_phone = preg_replace('/[^0-9]/','',$old_phone);
|
||||||
|
$vendor_lead_code = preg_replace('/;|#/','',$vendor_lead_code);
|
||||||
|
$vendor_lead_code = preg_replace('/\+/',' ',$vendor_lead_code);
|
||||||
|
$source_id = preg_replace('/;|#/','',$source_id);
|
||||||
|
$source_id = preg_replace('/\+/',' ',$source_id);
|
||||||
|
$gmt_offset_now = preg_replace('/[^-\_\.0-9]/','',$gmt_offset_now);
|
||||||
|
$country_code = preg_replace('/[^A-Z]/','',$country_code);
|
||||||
|
$gender = preg_replace('/[^A-Z]/','',$gender);
|
||||||
|
$date_of_birth = preg_replace('/[^-0-9]/','',$date_of_birth);
|
||||||
|
$comments = preg_replace('/;|#/','',$comments);
|
||||||
|
$comments = preg_replace('/\+/',' ',$comments);
|
||||||
|
$rank = preg_replace('/[^0-9]/','',$rank);
|
||||||
|
$no_update = preg_replace('/[^A-Z]/','',$no_update);
|
||||||
|
$called_count=preg_replace('/[^0-9]/','',$called_count);
|
||||||
|
$local_gmt=preg_replace('/[^-\.0-9]/','',$local_gmt);
|
||||||
|
$callback = preg_replace('/[^A-Z]/','',$callback);
|
||||||
|
$callback_type = preg_replace('/[^A-Z]/','',$callback_type);
|
||||||
|
|
||||||
if ($non_latin < 1)
|
if ($non_latin < 1)
|
||||||
{
|
{
|
||||||
$PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_USER);
|
$PHP_AUTH_USER = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_USER);
|
||||||
$PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_PW);
|
$PHP_AUTH_PW = preg_replace('/[^-_0-9a-zA-Z]/','',$PHP_AUTH_PW);
|
||||||
|
|
||||||
$DB=preg_replace('/[^0-9]/','',$DB);
|
|
||||||
$user=preg_replace('/[^-_0-9a-zA-Z]/','',$user);
|
$user=preg_replace('/[^-_0-9a-zA-Z]/','',$user);
|
||||||
$pass=preg_replace('/[^-_0-9a-zA-Z]/','',$pass);
|
$pass=preg_replace('/[^-_0-9a-zA-Z]/','',$pass);
|
||||||
$function = preg_replace('/[^-\_0-9a-zA-Z]/', '',$function);
|
$function = preg_replace('/[^-\_0-9a-zA-Z]/', '',$function);
|
||||||
$format = preg_replace('/[^0-9a-zA-Z]/','',$format);
|
$format = preg_replace('/[^0-9a-zA-Z]/','',$format);
|
||||||
$list_id = preg_replace('/[^0-9]/','',$list_id);
|
|
||||||
$entry_list_id = preg_replace('/[^0-9]/','',$entry_list_id);
|
|
||||||
$phone_code = preg_replace('/[^0-9]/','',$phone_code);
|
|
||||||
$update_phone_number=preg_replace('/[^A-Z]/','',$update_phone_number);
|
|
||||||
$phone_number = preg_replace('/[^0-9]/','',$phone_number);
|
|
||||||
$old_phone = preg_replace('/[^0-9]/','',$old_phone);
|
|
||||||
$vendor_lead_code = preg_replace('/;|#/','',$vendor_lead_code);
|
|
||||||
$vendor_lead_code = preg_replace('/\+/',' ',$vendor_lead_code);
|
|
||||||
$source_id = preg_replace('/;|#/','',$source_id);
|
|
||||||
$source_id = preg_replace('/\+/',' ',$source_id);
|
|
||||||
$gmt_offset_now = preg_replace('/[^-\_\.0-9]/','',$gmt_offset_now);
|
|
||||||
$title = preg_replace('/[^- \'\_\.0-9a-zA-Z]/','',$title);
|
$title = preg_replace('/[^- \'\_\.0-9a-zA-Z]/','',$title);
|
||||||
$first_name = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$first_name);
|
$first_name = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$first_name);
|
||||||
$first_name = preg_replace('/\+/',' ',$first_name);
|
|
||||||
$middle_initial = preg_replace('/[^0-9a-zA-Z]/','',$middle_initial);
|
$middle_initial = preg_replace('/[^0-9a-zA-Z]/','',$middle_initial);
|
||||||
$last_name = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$last_name);
|
$last_name = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$last_name);
|
||||||
$last_name = preg_replace('/\+/',' ',$last_name);
|
|
||||||
$address1 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address1);
|
$address1 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address1);
|
||||||
$address2 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address2);
|
$address2 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address2);
|
||||||
$address3 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address3);
|
$address3 = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$address3);
|
||||||
$address1 = preg_replace('/\+/',' ',$address1);
|
|
||||||
$address2 = preg_replace('/\+/',' ',$address2);
|
|
||||||
$address3 = preg_replace('/\+/',' ',$address3);
|
|
||||||
$city = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$city);
|
$city = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$city);
|
||||||
$city = preg_replace('/\+/',' ',$city);
|
|
||||||
$state = preg_replace('/[^- 0-9a-zA-Z]/','',$state);
|
$state = preg_replace('/[^- 0-9a-zA-Z]/','',$state);
|
||||||
$province = preg_replace('/[^- \'\+\.\_0-9a-zA-Z]/','',$province);
|
$province = preg_replace('/[^- \'\+\.\_0-9a-zA-Z]/','',$province);
|
||||||
$province = preg_replace('/\+/',' ',$province);
|
|
||||||
$postal_code = preg_replace('/[^- \'\+0-9a-zA-Z]/','',$postal_code);
|
$postal_code = preg_replace('/[^- \'\+0-9a-zA-Z]/','',$postal_code);
|
||||||
$postal_code = preg_replace('/\+/',' ',$postal_code);
|
|
||||||
$country_code = preg_replace('/[^A-Z]/','',$country_code);
|
|
||||||
$gender = preg_replace('/[^A-Z]/','',$gender);
|
|
||||||
$date_of_birth = preg_replace('/[^-0-9]/','',$date_of_birth);
|
|
||||||
$alt_phone = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$alt_phone);
|
$alt_phone = preg_replace('/[^- \'\+\_\.0-9a-zA-Z]/','',$alt_phone);
|
||||||
$alt_phone = preg_replace('/\+/',' ',$alt_phone);
|
|
||||||
$email = preg_replace('/[^- \'\+\.\:\/\@\%\_0-9a-zA-Z]/','',$email);
|
$email = preg_replace('/[^- \'\+\.\:\/\@\%\_0-9a-zA-Z]/','',$email);
|
||||||
$email = preg_replace('/\+/',' ',$email);
|
|
||||||
$security_phrase = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$security_phrase);
|
$security_phrase = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$security_phrase);
|
||||||
$security_phrase = preg_replace('/\+/',' ',$security_phrase);
|
|
||||||
$comments = preg_replace('/;|#/','',$comments);
|
|
||||||
$comments = preg_replace('/\+/',' ',$comments);
|
|
||||||
$campaign_id = preg_replace('/[^-\_0-9a-zA-Z]/', '',$campaign_id);
|
$campaign_id = preg_replace('/[^-\_0-9a-zA-Z]/', '',$campaign_id);
|
||||||
$multi_alt_phones = preg_replace('/[^- \+\!\:\_0-9a-zA-Z]/','',$multi_alt_phones);
|
$multi_alt_phones = preg_replace('/[^- \+\!\:\_0-9a-zA-Z]/','',$multi_alt_phones);
|
||||||
$multi_alt_phones = preg_replace('/\+/',' ',$multi_alt_phones);
|
|
||||||
$source = preg_replace('/[^0-9a-zA-Z]/','',$source);
|
$source = preg_replace('/[^0-9a-zA-Z]/','',$source);
|
||||||
$stage = preg_replace('/[^a-zA-Z]/','',$stage);
|
$stage = preg_replace('/[^a-zA-Z]/','',$stage);
|
||||||
$rank = preg_replace('/[^0-9]/','',$rank);
|
|
||||||
$owner = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$owner);
|
$owner = preg_replace('/[^- \'\+\.\:\/\@\_0-9a-zA-Z]/','',$owner);
|
||||||
$owner = preg_replace('/\+/',' ',$owner);
|
|
||||||
$custom_fields = preg_replace('/[^0-9a-zA-Z]/','',$custom_fields);
|
$custom_fields = preg_replace('/[^0-9a-zA-Z]/','',$custom_fields);
|
||||||
$no_update = preg_replace('/[^A-Z]/','',$no_update);
|
|
||||||
$called_count=preg_replace('/[^0-9]/','',$called_count);
|
|
||||||
$local_gmt=preg_replace('/[^-\.0-9]/','',$local_gmt);
|
|
||||||
$callback = preg_replace('/[^A-Z]/','',$callback);
|
|
||||||
$callback_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$callback_status);
|
$callback_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$callback_status);
|
||||||
$callback_datetime = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$callback_datetime);
|
$callback_datetime = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$callback_datetime);
|
||||||
$callback_type = preg_replace('/[^A-Z]/','',$callback_type);
|
|
||||||
$callback_user = preg_replace('/[^-\_0-9a-zA-Z]/', '',$callback_user);
|
$callback_user = preg_replace('/[^-\_0-9a-zA-Z]/', '',$callback_user);
|
||||||
$callback_comments = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$callback_comments);
|
$callback_comments = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$callback_comments);
|
||||||
$modify_log_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$modify_log_status);
|
$modify_log_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$modify_log_status);
|
||||||
$modify_old_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$modify_old_status);
|
$modify_old_status = preg_replace('/[^-\_0-9a-zA-Z]/', '',$modify_old_status);
|
||||||
$log_date = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$log_date);
|
$log_date = preg_replace('/[^- \+\.\:\/\@\_0-9a-zA-Z]/','',$log_date);
|
||||||
} # end of non_latin
|
$modify_log_submit = preg_replace('/[^-_0-9a-zA-Z]/','',$modify_log_submit);
|
||||||
|
$modify_log_table = preg_replace('/[^-_0-9a-zA-Z]/','',$modify_log_table);
|
||||||
|
$vicidial_id = preg_replace('/[^-\+\.\:\_0-9a-zA-Z]/','',$vicidial_id);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER);
|
$PHP_AUTH_USER = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_USER);
|
||||||
$PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW);
|
$PHP_AUTH_PW = preg_replace("/'|\"|\\\\|;/","",$PHP_AUTH_PW);
|
||||||
|
$user=preg_replace('/[^-_0-9\p{L}]/u','',$user);
|
||||||
|
$pass=preg_replace('/[^-_0-9\p{L}]/u','',$pass);
|
||||||
|
$function = preg_replace('/[^-\_0-9\p{L}]/u', '',$function);
|
||||||
|
$format = preg_replace('/[^0-9\p{L}]/u','',$format);
|
||||||
|
$title = preg_replace('/[^- \'\_\.0-9\p{L}]/u','',$title);
|
||||||
|
$first_name = preg_replace('/[^- \'\+\_\.0-9\p{L}]/u','',$first_name);
|
||||||
|
$middle_initial = preg_replace('/[^0-9\p{L}]/u','',$middle_initial);
|
||||||
|
$last_name = preg_replace('/[^- \'\+\_\.0-9\p{L}]/u','',$last_name);
|
||||||
|
$address1 = preg_replace('/[^- \'\+\.\:\/\@\_0-9\p{L}]/u','',$address1);
|
||||||
|
$address2 = preg_replace('/[^- \'\+\.\:\/\@\_0-9\p{L}]/u','',$address2);
|
||||||
|
$address3 = preg_replace('/[^- \'\+\.\:\/\@\_0-9\p{L}]/u','',$address3);
|
||||||
|
$city = preg_replace('/[^- \'\+\.\:\/\@\_0-9\p{L}]/u','',$city);
|
||||||
|
$state = preg_replace('/[^- 0-9\p{L}]/u','',$state);
|
||||||
|
$province = preg_replace('/[^- \'\+\.\_0-9\p{L}]/u','',$province);
|
||||||
|
$postal_code = preg_replace('/[^- \'\+0-9\p{L}]/u','',$postal_code);
|
||||||
|
$alt_phone = preg_replace('/[^- \'\+\_\.0-9\p{L}]/u','',$alt_phone);
|
||||||
|
$email = preg_replace('/[^- \'\+\.\:\/\@\%\_0-9\p{L}]/u','',$email);
|
||||||
|
$security_phrase = preg_replace('/[^- \'\+\.\:\/\@\_0-9\p{L}]/u','',$security_phrase);
|
||||||
|
$campaign_id = preg_replace('/[^-\_0-9\p{L}]/u', '',$campaign_id);
|
||||||
|
$multi_alt_phones = preg_replace('/[^- \+\!\:\_0-9\p{L}]/u','',$multi_alt_phones);
|
||||||
|
$source = preg_replace('/[^0-9\p{L}]/u','',$source);
|
||||||
|
$stage = preg_replace('/[^\p{L}]/u','',$stage);
|
||||||
|
$owner = preg_replace('/[^- \'\+\.\:\/\@\_0-9\p{L}]/u','',$owner);
|
||||||
|
$custom_fields = preg_replace('/[^0-9\p{L}]/u','',$custom_fields);
|
||||||
|
$callback_status = preg_replace('/[^-\_0-9\p{L}]/u', '',$callback_status);
|
||||||
|
$callback_datetime = preg_replace('/[^- \+\.\:\/\@\_0-9\p{L}]/u','',$callback_datetime);
|
||||||
|
$callback_user = preg_replace('/[^-\_0-9\p{L}]/u', '',$callback_user);
|
||||||
|
$callback_comments = preg_replace('/[^- \+\.\:\/\@\_0-9\p{L}]/u','',$callback_comments);
|
||||||
|
$modify_log_status = preg_replace('/[^-\_0-9\p{L}]/u', '',$modify_log_status);
|
||||||
|
$modify_old_status = preg_replace('/[^-\_0-9\p{L}]/u', '',$modify_old_status);
|
||||||
|
$log_date = preg_replace('/[^- \+\.\:\/\@\_0-9\p{L}]/u','',$log_date);
|
||||||
|
$modify_log_submit = preg_replace('/[^-_0-9\p{L}]/u','',$modify_log_submit);
|
||||||
|
$modify_log_table = preg_replace('/[^-_0-9\p{L}]/u','',$modify_log_table);
|
||||||
|
$vicidial_id = preg_replace('/[^-\+\.\:\_0-9\p{L}]/u','',$vicidial_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$first_name = preg_replace('/\+/',' ',$first_name);
|
||||||
|
$last_name = preg_replace('/\+/',' ',$last_name);
|
||||||
|
$address1 = preg_replace('/\+/',' ',$address1);
|
||||||
|
$address2 = preg_replace('/\+/',' ',$address2);
|
||||||
|
$address3 = preg_replace('/\+/',' ',$address3);
|
||||||
|
$city = preg_replace('/\+/',' ',$city);
|
||||||
|
$province = preg_replace('/\+/',' ',$province);
|
||||||
|
$postal_code = preg_replace('/\+/',' ',$postal_code);
|
||||||
|
$alt_phone = preg_replace('/\+/',' ',$alt_phone);
|
||||||
|
$email = preg_replace('/\+/',' ',$email);
|
||||||
|
$security_phrase = preg_replace('/\+/',' ',$security_phrase);
|
||||||
|
$multi_alt_phones = preg_replace('/\+/',' ',$multi_alt_phones);
|
||||||
|
$owner = preg_replace('/\+/',' ',$owner);
|
||||||
|
|
||||||
if (strlen($phone_number)<6) {$phone_number=$old_phone;}
|
if (strlen($phone_number)<6) {$phone_number=$old_phone;}
|
||||||
|
|
||||||
$auth=0;
|
$auth=0;
|
||||||
@@ -1496,7 +1531,14 @@ if ($end_call > 0)
|
|||||||
$tomorrow = date("Y-m-d", mktime(date("H"),date("i"),date("s"),date("m"),date("d")+1,date("Y")));
|
$tomorrow = date("Y-m-d", mktime(date("H"),date("i"),date("s"),date("m"),date("d")+1,date("Y")));
|
||||||
$CLEAN_campaign_id = mysqli_real_escape_string($link, $campaign_id);
|
$CLEAN_campaign_id = mysqli_real_escape_string($link, $campaign_id);
|
||||||
$CLEAN_campaign_id = preg_replace("/'|\"|\\\\|;/","",$CLEAN_campaign_id);
|
$CLEAN_campaign_id = preg_replace("/'|\"|\\\\|;/","",$CLEAN_campaign_id);
|
||||||
$CLEAN_campaign_id = preg_replace('/[^-_0-9a-zA-Z]/','',$CLEAN_campaign_id);
|
if ($non_latin < 1)
|
||||||
|
{
|
||||||
|
$CLEAN_campaign_id = preg_replace('/[^-_0-9a-zA-Z]/','',$CLEAN_campaign_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$CLEAN_campaign_id = preg_replace('/[^-_0-9\p{L}]/u','',$CLEAN_campaign_id);
|
||||||
|
}
|
||||||
|
|
||||||
if (strlen($CLEAN_campaign_id)<1)
|
if (strlen($CLEAN_campaign_id)<1)
|
||||||
{
|
{
|
||||||
@@ -3137,7 +3179,7 @@ else
|
|||||||
{$bgcolor="bgcolor=\"#$SSstd_row2_background\"";}
|
{$bgcolor="bgcolor=\"#$SSstd_row2_background\"";}
|
||||||
else
|
else
|
||||||
{$bgcolor="bgcolor=\"#$SSstd_row1_background\"";}
|
{$bgcolor="bgcolor=\"#$SSstd_row1_background\"";}
|
||||||
if (strlen($row[6])>100) {$row[6]=substr($row[6],0,100)."...";}
|
if (mb_strlen($row[6],'utf-8')>100) {$row[6]=mb_substr($row[6],0,100,'utf-8')."...";}
|
||||||
$row[8]=preg_replace('/\|/', ', ', $row[8]);
|
$row[8]=preg_replace('/\|/', ', ', $row[8]);
|
||||||
$row[8]=preg_replace('/,\s+$/', '', $row[8]);
|
$row[8]=preg_replace('/,\s+$/', '', $row[8]);
|
||||||
$u++;
|
$u++;
|
||||||
@@ -3223,8 +3265,8 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($location)>30)
|
if (mb_strlen($location,'utf-8')>30)
|
||||||
{$locat = substr($location,0,27); $locat = "$locat...";}
|
{$locat = mb_substr($location,0,27,'utf-8'); $locat = "$locat...";}
|
||||||
else
|
else
|
||||||
{$locat = $location;}
|
{$locat = $location;}
|
||||||
$play_audio='<td align=left><font size=2> </font></td>';
|
$play_audio='<td align=left><font size=2> </font></td>';
|
||||||
@@ -3318,8 +3360,8 @@ else
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($location)>30)
|
if (mb_strlen($location,'utf-8')>30)
|
||||||
{$locat = substr($location,0,27); $locat = "$locat...";}
|
{$locat = mb_substr($location,0,27,'utf-8'); $locat = "$locat...";}
|
||||||
else
|
else
|
||||||
{$locat = $location;}
|
{$locat = $location;}
|
||||||
$play_audio='<td align=left><font size=2> </font></td>';
|
$play_audio='<td align=left><font size=2> </font></td>';
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
# 180421-0813 - Fix for slave db use, issue #1092
|
# 180421-0813 - Fix for slave db use, issue #1092
|
||||||
# 191014-1316 - Fix for foreign language, issue #1187
|
# 191014-1316 - Fix for foreign language, issue #1187
|
||||||
# 201111-1957 - Fix for side menu issue #1233
|
# 201111-1957 - Fix for side menu issue #1233
|
||||||
|
# 201117-2353 - Changes for better compatibility with non-latin data input
|
||||||
#
|
#
|
||||||
|
|
||||||
require("dbconnect_mysqli.php");
|
require("dbconnect_mysqli.php");
|
||||||
@@ -74,8 +75,8 @@ if (isset($_GET["log_phone"])) {$log_phone=$_GET["log_phone"];}
|
|||||||
elseif (isset($_POST["log_phone"])) {$log_phone=$_POST["log_phone"];}
|
elseif (isset($_POST["log_phone"])) {$log_phone=$_POST["log_phone"];}
|
||||||
if (isset($_GET["log_lead_id"])) {$log_lead_id=$_GET["log_lead_id"];}
|
if (isset($_GET["log_lead_id"])) {$log_lead_id=$_GET["log_lead_id"];}
|
||||||
elseif (isset($_POST["log_lead_id"])) {$log_lead_id=$_POST["log_lead_id"];}
|
elseif (isset($_POST["log_lead_id"])) {$log_lead_id=$_POST["log_lead_id"];}
|
||||||
if (isset($_GET["log_phone_archive"])) {$log_phone_archive=$_GET["log_phone_archive"];}
|
if (isset($_GET["log_phone_archive"])) {$log_phone_archive=$_GET["log_phone_archive"];}
|
||||||
elseif (isset($_POST["log_phone_archive"])) {$log_phone_archive=$_POST["log_phone_archive"];}
|
elseif (isset($_POST["log_phone_archive"])) {$log_phone_archive=$_POST["log_phone_archive"];}
|
||||||
if (isset($_GET["log_lead_id_archive"])) {$log_lead_id_archive=$_GET["log_lead_id_archive"];}
|
if (isset($_GET["log_lead_id_archive"])) {$log_lead_id_archive=$_GET["log_lead_id_archive"];}
|
||||||
elseif (isset($_POST["log_lead_id_archive"])) {$log_lead_id_archive=$_POST["log_lead_id_archive"];}
|
elseif (isset($_POST["log_lead_id_archive"])) {$log_lead_id_archive=$_POST["log_lead_id_archive"];}
|
||||||
if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
|
if (isset($_GET["submit"])) {$submit=$_GET["submit"];}
|
||||||
@@ -665,10 +666,12 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
### LOG INSERTION Admin Log Table ###
|
### LOG INSERTION Admin Log Table ###
|
||||||
|
$event_notes = "$DB|$SUBMIT|$alt_phone_search|$archive_search|$first_name|$last_name|$lead_id|$list_id|$log_lead_id|$log_lead_id_archive|$log_phone|$log_phone_archive|$owner|$phone|$status|$submit|$user|$vendor_id|$called_count";
|
||||||
|
$event_notes = preg_replace("/\"|\\\\|;/","",$event_notes);
|
||||||
$SQL_log = "$stmtA|$stmtB|$stmtC|";
|
$SQL_log = "$stmtA|$stmtB|$stmtC|";
|
||||||
$SQL_log = preg_replace('/;/', '', $SQL_log);
|
$SQL_log = preg_replace('/;/', '', $SQL_log);
|
||||||
$SQL_log = addslashes($SQL_log);
|
$SQL_log = addslashes($SQL_log);
|
||||||
$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes=\"$DB|$SUBMIT|$alt_phone_search|$archive_search|$first_name|$last_name|$lead_id|$list_id|$log_lead_id|$log_lead_id_archive|$log_phone|$log_phone_archive|$owner|$phone|$status|$submit|$user|$vendor_id|$called_count\";";
|
$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes=\"$event_notes\";";
|
||||||
if ($DB) {echo "|$stmt|\n";}
|
if ($DB) {echo "|$stmt|\n";}
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
|
|
||||||
@@ -911,10 +914,12 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
### LOG INSERTION Admin Log Table ###
|
### LOG INSERTION Admin Log Table ###
|
||||||
|
$event_notes = "$DB|$SUBMIT|$alt_phone_search|$archive_search|$first_name|$last_name|$lead_id|$list_id|$log_lead_id|$log_lead_id_archive|$log_phone|$log_phone_archive|$owner|$phone|$status|$submit|$user|$vendor_id|$called_count";
|
||||||
|
$event_notes = preg_replace("/\"|\\\\|;/","",$event_notes);
|
||||||
$SQL_log = "$stmtA|$stmtB|$stmtC|";
|
$SQL_log = "$stmtA|$stmtB|$stmtC|";
|
||||||
$SQL_log = preg_replace('/;/', '', $SQL_log);
|
$SQL_log = preg_replace('/;/', '', $SQL_log);
|
||||||
$SQL_log = addslashes($SQL_log);
|
$SQL_log = addslashes($SQL_log);
|
||||||
$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes=\"ARCHIVE $DB|$SUBMIT|$alt_phone_search|$archive_search|$first_name|$last_name|$lead_id|$list_id|$log_lead_id|$log_lead_id_archive|$log_phone|$log_phone_archive|$owner|$phone|$status|$submit|$user|$vendor_id|$called_count\";";
|
$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes=\"ARCHIVE $event_notes\";";
|
||||||
if ($DB) {echo "|$stmt|\n";}
|
if ($DB) {echo "|$stmt|\n";}
|
||||||
$rslt=mysql_to_mysqli($stmt, $link);
|
$rslt=mysql_to_mysqli($stmt, $link);
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
# 170819-1000 - Added allow_manage_active_lists option
|
# 170819-1000 - Added allow_manage_active_lists option
|
||||||
# 180508-2215 - Added new help display
|
# 180508-2215 - Added new help display
|
||||||
# 191101-1630 - Translation patch, removed function.js
|
# 191101-1630 - Translation patch, removed function.js
|
||||||
|
# 201117-1350 - Translation bug fixed, Issue #1236
|
||||||
#
|
#
|
||||||
|
|
||||||
$version = '2.14-3';
|
$version = '2.14-3';
|
||||||
@@ -64,8 +65,6 @@ if (isset($_GET["create_new_list"])) {$create_new_list=$_GET["create_new_list"];
|
|||||||
|
|
||||||
$DB = preg_replace('/[^0-9]/','',$DB);
|
$DB = preg_replace('/[^0-9]/','',$DB);
|
||||||
$retain_original_list = preg_replace('/[^NY]/i','',$retain_original_list);
|
$retain_original_list = preg_replace('/[^NY]/i','',$retain_original_list);
|
||||||
$submit = preg_replace('/[^-_0-9a-zA-Z]/','',$submit);
|
|
||||||
$confirm = preg_replace('/[^-_0-9a-zA-Z]/','',$confirm);
|
|
||||||
$available_lists = preg_replace('/[^0-9\|]/','',$available_lists);
|
$available_lists = preg_replace('/[^0-9\|]/','',$available_lists);
|
||||||
$start_dest_list_id = preg_replace('/[^0-9]/','',$start_dest_list_id);
|
$start_dest_list_id = preg_replace('/[^0-9]/','',$start_dest_list_id);
|
||||||
$destination_list_id = preg_replace('/[^0-9]/','',$destination_list_id);
|
$destination_list_id = preg_replace('/[^0-9]/','',$destination_list_id);
|
||||||
@@ -368,7 +367,7 @@ else
|
|||||||
|
|
||||||
|
|
||||||
# confirmation page
|
# confirmation page
|
||||||
if ($submit == "submit" )
|
if ($submit == _QXZ("submit") )
|
||||||
{
|
{
|
||||||
|
|
||||||
if(count($available_lists)<1) {
|
if(count($available_lists)<1) {
|
||||||
@@ -390,8 +389,8 @@ if ($submit == "submit" )
|
|||||||
$campaign_id=$list_row[3];
|
$campaign_id=$list_row[3];
|
||||||
$active=$list_row[4];
|
$active=$list_row[4];
|
||||||
|
|
||||||
if (!preg_match("/ $campaign_id /", $allowed_campaigns)) {
|
if (!preg_match("/ $campaign_id /", $allowed_campaigns) && !preg_match("/ALL\-CAMPAIGNS/i",$allowed_campaigns)) {
|
||||||
echo "<p>"._QXZ("Cannot move leads - access is denied to the specified list ID:")." $new_list_id</p>\n";
|
echo "<p>"._QXZ("Cannot move leads - access is denied to the specified list ID ($campaign_id - $allowed_campaigns):")." $new_list_id</p>\n";
|
||||||
echo "<p><a href='$PHP_SELF?new_list_id=$new_list_id&destination_list_id=$destination_list_id&new_campaign_id=$new_campaign_id&new_list_name=".urlencode($new_list_name)."&new_list_description=".urlencode($new_list_description)."&active=$active&retain_original_list=$retain_original_list&available_lists[]=".implode("&available_lists[]=", $available_lists)."'>"._QXZ("Click here to start over.")."</a></p>\n";
|
echo "<p><a href='$PHP_SELF?new_list_id=$new_list_id&destination_list_id=$destination_list_id&new_campaign_id=$new_campaign_id&new_list_name=".urlencode($new_list_name)."&new_list_description=".urlencode($new_list_description)."&active=$active&retain_original_list=$retain_original_list&available_lists[]=".implode("&available_lists[]=", $available_lists)."'>"._QXZ("Click here to start over.")."</a></p>\n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@@ -436,7 +435,7 @@ if ($submit == "submit" )
|
|||||||
echo ""._QXZ("You are about to merge list(s) <UL><LI>%1s</UL><BR>into list ID %2s.<BR><BR><B>TOTAL LEADS TO BE MOVED: %3s",0,'',implode("<LI>", $available_lists),$destination_list_id,$orig_count)."\n";
|
echo ""._QXZ("You are about to merge list(s) <UL><LI>%1s</UL><BR>into list ID %2s.<BR><BR><B>TOTAL LEADS TO BE MOVED: %3s",0,'',implode("<LI>", $available_lists),$destination_list_id,$orig_count)."\n";
|
||||||
|
|
||||||
if ($orig_count>=400000) {
|
if ($orig_count>=400000) {
|
||||||
echo "<BR><BR><redalert>*** WARNING: Lists should not have more than 400,000 records in them!!! ***</redalert><BR><BR>";
|
echo "<BR><BR><redalert>*** "._QXZ("WARNING: Lists should not have more than 400,000 records in them!!!")." ***</redalert><BR><BR>";
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "<center><form action=$PHP_SELF method=POST>\n";
|
echo "<center><form action=$PHP_SELF method=POST>\n";
|
||||||
@@ -455,14 +454,14 @@ if ($submit == "submit" )
|
|||||||
# keep debug active
|
# keep debug active
|
||||||
echo "<input type=hidden name=DB value='$DB'>\n";
|
echo "<input type=hidden name=DB value='$DB'>\n";
|
||||||
|
|
||||||
echo "<input type=submit name='confirm' class='red_btn' value='CONFIRM'>\n";
|
echo "<input type=submit name='confirm' class='red_btn' value='"._QXZ("CONFIRM")."'>\n";
|
||||||
echo "</form>\n";
|
echo "</form>\n";
|
||||||
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over.")."</a></p></center>\n";
|
echo "<p><a href='$PHP_SELF'>"._QXZ("Click here to start over.")."</a></p></center>\n";
|
||||||
echo "</body>\n</html>\n";
|
echo "</body>\n</html>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
# actually do the merge
|
# actually do the merge
|
||||||
if ($confirm == "CONFIRM")
|
if ($confirm == _QXZ("CONFIRM"))
|
||||||
{
|
{
|
||||||
$available_lists_array=explode("|", $available_lists);
|
$available_lists_array=explode("|", $available_lists);
|
||||||
# Get the number of leads in the available_lists
|
# Get the number of leads in the available_lists
|
||||||
|
|||||||
@@ -561,7 +561,7 @@ if ($function == 'external_dial_lead')
|
|||||||
### If no errors, run the update to place the call ###
|
### If no errors, run the update to place the call ###
|
||||||
if ($api_manual_dial=='STANDARD')
|
if ($api_manual_dial=='STANDARD')
|
||||||
{
|
{
|
||||||
$stmt="UPDATE vicidial_live_agents set external_dial='$value!$phone_code!$search!$preview!$focus!$vendor_id!$epoch!$dial_prefix!$group_alias!$caller_id_number!$vtiger_callback_id' where user='$agent_user';";
|
$stmt="UPDATE vicidial_live_agents set external_dial='$value!$phone_code!$search!$preview!$focus!$vendor_id!$epoch!$dial_prefix!$group_alias!$caller_id_number!$vtiger_callback_id!$lead_id!$alt_dial!$dial_ingroup' where user='$agent_user';";
|
||||||
if ($DB) {echo "$stmt\n";}
|
if ($DB) {echo "$stmt\n";}
|
||||||
$success=1;
|
$success=1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ function is_user_logged_in($user)
|
|||||||
$qc_user_logged_in=is_user_logged_in($PHP_AUTH_USER);
|
$qc_user_logged_in=is_user_logged_in($PHP_AUTH_USER);
|
||||||
if ($qc_user_logged_in===true)
|
if ($qc_user_logged_in===true)
|
||||||
{
|
{
|
||||||
echo "<A HREF=qc_api.php?source=test&user=$PHP_AUTH_USER&pass=$PHP_AUTH_PW&agent_user=$PHP_AUTH_USER&function=external_dial_lead&value=$phone_number&phone_code=$phone_code&search=YES&preview=NO&focus=YES target='_SELF'>"._QXZ("Call Lead")."</A>";
|
echo "<A HREF='../agc/api.php?source=test&user=$PHP_AUTH_USER&pass=$PHP_AUTH_PW&agent_user=$PHP_AUTH_USER&function=external_dial&value=$phone_number&phone_code=$phone_code&search=YES&preview=NO&focus=YES&lead_id=$lead_id' target='_SELF'>"._QXZ("Call Lead")."</A>";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user